Commit Graph

30798 Commits

Author SHA1 Message Date
David Horstmann 7c58bc6c3f Update reference to (previously) mbedtls_dev
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2024-05-03 14:55:22 +01:00
David Horstmann 6cca5c5b06 Merge branch 'tmp-branch-move-files-to-framework' into dev/davidhorstmann-arm/add-mbedtls-framework-module 2024-05-03 14:33:45 +01:00
David Horstmann 75541028a9 Move some files to framework repository
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2024-05-03 14:33:43 +01:00
Manuel Pégourié-Gonnard 61734ec61d Merge pull request #9073 from valeriosetti/issue9068
Undefined reference to mbedtls_md_error_from_psa() function
2024-05-03 07:52:37 +00:00
Gilles Peskine aa82464dec Merge pull request #8897 from IVOES/cpp/unbounded-write
ssl_mail_client: Fix unbounded write of sprintf()
2024-05-02 16:06:23 +00:00
Gilles Peskine 9791ee9296 Merge pull request #8538 from Ryan-Everett-arm/8537-fix-error-handling-for-secure-element-keys-in-psa_start_key_creation
Fix error handling for secure element keys in `psa_start_key_creation`
2024-05-02 16:06:07 +00:00
Gilles Peskine fa8fc2705a Merge pull request #9069 from Ryan-Everett-arm/fix-get-and-lock-key-slot-threading-bug
Wipe the returned slot pointer upon failure in `psa_get_and_lock_key_slot`
2024-05-02 15:48:21 +00:00
Gilles Peskine cedb011c50 Merge pull request #9087 from ronald-cron-arm/add-cve-2024-30166-ref
ChangeLog: Add missing reference to CVE in security entry
2024-05-02 15:47:43 +00:00
Ronald Cron 93b660b67a ChangeLog: Add missing reference to CVE in security entry
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2024-05-02 15:36:16 +02:00
Manuel Pégourié-Gonnard 898066b851 Merge pull request #9049 from gilles-peskine-arm/test-dependencies-20240314-development
Fix some test case dependencies (PEM_C)
2024-05-02 08:00:25 +00:00
Ryan Everett c51e948370 Add changelog
Signed-off-by: Ryan Everett <ryan.everett@arm.com>
2024-04-30 14:04:17 +01:00
Gilles Peskine 489688c0f7 Merge pull request #9065 from paul-elliott-arm/fix_ubsan_mp_aead_gcm
Add early exit if zero length AEAD additional data passed in.
2024-04-30 09:48:20 +00:00
Valerio Setti 28cc31c9d5 md: fix guards for mbedtls_md_error_from_psa()
This should be CRYPTO_CLIENT and not CRYPTO_C as this function
can be used even when CRYPTO_C is not defined.

Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
2024-04-30 10:49:00 +02:00
Ryan Everett 925b2d76f4 Clarify psa_get_and_lock_key_slot return behaviour
Signed-off-by: Ryan Everett <ryan.everett@arm.com>
2024-04-29 18:29:48 +01:00
Ryan Everett 04e2b04f7f Explicitly document return behaviour
A bug existed previously where this guarantee was not met,
causing some issues in multi-threaded code.

Signed-off-by: Ryan Everett <ryan.everett@arm.com>
2024-04-29 18:26:19 +01:00
Ryan Everett dd90507dc6 Fix potential non-NULL slot return on failure
If psa_get_and_lock_key_slot fails, the slot must be wiped.
This fixes a bug where a pointer to some valid key slot can
be incorrectly returned

Signed-off-by: Ryan Everett <ryan.everett@arm.com>
2024-04-29 18:24:58 +01:00
Ronald Cron a627342536 Merge pull request #4 from gilles-peskine-arm/design-doc-20240303
Framework design document
2024-04-29 15:02:14 +02:00
Gilles Peskine 068c393737 More copyediting
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-04-29 14:45:49 +02:00
Gilles Peskine a12a2fdd2a Miscellaneous minor corrections and improvements
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-04-29 13:28:46 +02:00
Gilles Peskine 764064720e unfinished sentence
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-04-29 13:28:46 +02:00
Gilles Peskine e8da47fa0f Terminology: "consuming repository" -> "consuming branch"
"Consuming repository" is wrong: there can be non-consuming branches in a
repository (mbedtls-2.28 in mbedtls).

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-04-29 13:28:46 +02:00
Gilles Peskine fdcef6b1b2 Criteria for inclusion: example of test_suite_*
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-04-29 13:28:46 +02:00
Gilles Peskine ae2db70273 Open question on not having to upload branches to mbedtls-framework
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-04-29 13:28:46 +02:00
Gilles Peskine 638223d748 Clarify and justify the requirements for consuming repositories
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-04-29 13:28:46 +02:00
Gilles Peskine ca093571c6 Miscellaneous clarifications and minor corrections
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-04-29 13:28:46 +02:00
Gilles Peskine 0a5fe2dfc0 Framework design document: work in progress
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-04-29 13:28:46 +02:00
Manuel Pégourié-Gonnard 024d3daa7d Merge pull request #8986 from valeriosetti/issue8871
Improve test key generation in test_suite_pk
2024-04-29 09:25:37 +00:00
Paul Elliott 0f37a157a2 Add Changelog entry
Signed-off-by: Paul Elliott <paul.elliott@arm.com>
2024-04-26 18:56:00 +01:00
Paul Elliott a3daff47d8 Add early exit if zero length AEAD AD passed in.
With multipart AEAD, if we attempt to add zero length additional data,
then with the buffer sharing fixes this can now lead to undefined
behaviour when using gcm. Fix this by returning early, as there is
nothing to do if the input length is zero.

Signed-off-by: Paul Elliott <paul.elliott@arm.com>
2024-04-26 18:47:40 +01:00
Gilles Peskine 014a63b2cf Convert recent RSA key files in PEM format from PKCS8 to PKCS1
Like `openssl rsa`, `openssl genrsa` changed its output format from PKCS8 to
PKCS1 in OpenSSL 3.0. Note that the makefile instructions assume older
OpenSSL. Convert the files that were generated with OpenSSL 3.x and hence
were not in the intended format. The files are converted, not regenerated,
so the key material is the same.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-04-26 11:51:08 +02:00
Gilles Peskine 0652b62d5e Fix rsa_pkcs1_*_clear.der to actually be PKCS#1 files
With OpenSSL 3.0.2 (which I used to generate the previous set of "pkcs1" DER
files), the output of `openssl rsa -outform DER` is actually a
PKCS#8-encoded key, despite what the documentation says. This is a change
from OpenSSL 1.x, where the output is a PKCS#1-encoded key. OpenSSL 3.0.8
documents the output as PKCS#8.

Change to `openssl pkey`, which seems more reliable. The documentation
states that the output is PKCS#8, but the output is actually consistently
PKCS#1 at least from 1.0.2g to 3.3.0.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-04-25 16:32:38 +02:00
Gilles Peskine cbb4507b44 Use large enough keys when testing parsing of non-word-aligned RSA sizes
When PSA is available, we exercise the parsed RSA key with PKCS#1v1.5
signature, which requires the modulus size in bytes to be at least
tLen + 11 (per RFC 8017 §9.2) where tLen = hLen + oidLen + 6 and
hLen = 32, oidLen = 9 for SHA-512 or SHA3-512. 10 is the DER overhead
(3 ASN.1 type-length headers with lengths <128). Replace 512-bit test
cases (good enough for SHA-256 but not SHA-384 and up) by 768-bit and
up (good enough for SHA-512).

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-04-24 16:28:00 +02:00
Gilles Peskine 9c3ebe30b8 Add some test RSA keys of sizes 768 and up
These are sufficiently large for PKCS#1v1.5 signature with SHA-512 or
SHA3-512. Cover some non-word-aligned sizes.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-04-24 16:21:59 +02:00
Gilles Peskine b612f9fe7c Cleartext RSA keys: also make DER formats available
We can use DER keys in builds without PEM, so it's good to have them around.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-04-24 16:21:19 +02:00
Manuel Pégourié-Gonnard 771fd7d1dc Merge pull request #9022 from mpg/compat-fixes-dev
[dev] Small fixes to compat.sh (partial forward-port)
2024-04-24 07:11:49 +00:00
Ronald Cron 87a6d277a8 Merge pull request #9040 from Ryan-Everett-arm/crypto-config-psa_crypto_rsa_no_genprime
Make component_test_psa_crypto_rsa_no_genprime work with PSA_CRYPTO_CONFIG set
2024-04-23 06:30:39 +00:00
Gilles Peskine 1f4e0390bd Fix misspelled dependency: there is no MBEDTLS_PEM_C
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-04-22 17:24:45 +02:00
Gilles Peskine 6b3a9ee2d8 Allow PSA to not support RSA keys with non-byte-aligned sizes
Work around https://github.com/Mbed-TLS/mbedtls/issues/9048

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-04-22 17:24:45 +02:00
Gilles Peskine 57a0b915fd Remove redundant dependency
In the test data, remove a dependency that is already present on the function.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-04-22 17:24:45 +02:00
Ryan Everett fcd744fe69 Set MBEDTLS_PSA_CRYPTO_CONFIG in component_test_no_rsa_key_pair_gen
Signed-off-by: Ryan Everett <ryan.everett@arm.com>
2024-04-22 10:44:24 +01:00
Manuel Pégourié-Gonnard eb86b906d7 Fix full invocation of ssl-opt.sh
The previous commit had:
- one obvious mistake (-f NULL with default -e runs nothing)
- one unforeseen issue: OPENSSL_NEXT skips static ECDH
- arguably scope creep: the stated goal was to simplify the full
invocation (in particular, make it obvious that everything is run
without having to remember the default value of EXCLUDE), but it also
made an unrelated change: running most tests with OPENSSL_NEXT (hence
the previous point).

This commit should fix all this, in particular it switches back to
running most tests with OPENSSL and using OPENSSL_NEXT only when needed.

Hopefully in the future we'll do the opposite: most tests will run with
a recent OpenSSL, and only those that need an older one will use
something older. But that will be another PR.

Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2024-04-22 10:25:09 +02:00
Manuel Pégourié-Gonnard 3caada646e Merge pull request #9035 from valeriosetti/asn1-missing-guard-in-rsa
Auto-enable ASN1 when RSA is enabled
2024-04-22 07:48:43 +00:00
Tom Cosgrove ceab9796e8 Merge pull request #8 from gilles-peskine-arm/psasim-publish
Publish PSA framework simulator
2024-04-19 12:24:48 +02:00
Valerio Setti ec3b90f348 changelog: fix text
Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
2024-04-19 11:09:56 +02:00
Valerio Setti ce86865258 add changelog
Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
2024-04-19 09:38:23 +02:00
Valerio Setti 89f5af84af adjust_legacy_crypto: enable ASN1_[PARSE|WRITE]_C when RSA_C
RSA needs ASN1 functions to parse/write private and public keys,
but there is no guards in the code for that. So we need to enable
ASN1 support whenever RSA is enabled.

Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
2024-04-18 18:47:34 +02:00
Ryan Everett daa322a2de Update component_test_psa_crypto_rsa_no_genprime
Prepare this component for PSA_CRYPTO_CONFIG to be on by default.
Rename it so that the name is still accurate when we remove legacy symbols

Signed-off-by: Ryan Everett <ryan.everett@arm.com>
2024-04-18 16:50:02 +01:00
Valerio Setti 36188219fc generate_test_keys: split group_id and key bitsize in the generated structure
- group_id is only used for EC keys;
- key bitsize only for RSA.

Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
2024-04-17 17:06:26 +02:00
Valerio Setti 40eaf120af test_suite_pk: fix some descriptions in data file
Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
2024-04-17 17:06:26 +02:00
Valerio Setti ee74339180 generate_test_keys: minor improvements
Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
2024-04-17 17:06:21 +02:00