32407 Commits

Author SHA1 Message Date
Gilles Peskine
0068fceba3 Note the equivalence of two macros, thanks to RSA-PSK removal
Removing the now-duplicate internal macro is left for future work.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-11-05 15:49:12 +01:00
Gilles Peskine
fdf7db019b Remove support for RSA-PSK in compat.sh
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-11-05 15:49:12 +01:00
Gilles Peskine
91e7ebebfe Remove RSA_PSK suites from cipher suite lists
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-11-05 15:49:12 +01:00
Gilles Peskine
b3ec125580 Remove mentions of RSA-PSK key exchange from documentation
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-11-05 15:49:12 +01:00
Gilles Peskine
712e9a1c3e Remove MBEDTLS_KEY_EXCHANGE_RSA_PSK
Remove mentions of MBEDTLS_KEY_EXCHANGE_RSA_PSK that were not guarded by the
configuration option MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED. This finishes the
removal of library code that supports the RSA-PSK key exchange in TLS 1.2.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-11-05 15:49:12 +01:00
Gilles Peskine
ac767e5c69 Remove MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED
Remove the configuration option MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED and all
code guarded by it. This remove support for the RSA-PSK key exchange in TLS
1.2.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-11-05 15:49:01 +01:00
Gilles Peskine
7dfe7c9e4a Remove RSA-PSK test cases
The test cases removed by this commit are specific to RSA-PSK, not
incidentally using RSA-PSK when testing other features, so there is no loss
of test coverage.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-11-05 15:48:11 +01:00
Waleed Elmelegy
1ea62b11e1 Remove generate key brainpool160r1 & SECP224K1 test cases
Remove generate key brainpool160r1 & SECP224K1 test cases
as they are scheduled to be removed in 4.0 .

Signed-off-by: Waleed Elmelegy <waleed.elmelegy@arm.com>
2024-11-05 12:39:16 +00:00
Manuel Pégourié-Gonnard
e71f3c3a50
Merge pull request #9571 from Harry-Ramsey/improve-submodule-error-messages-development
Improve submodule error messages for Github archives
2024-11-05 10:26:52 +00:00
Elena Uziunaite
3a5f03d097 Update submodule with the merge
Signed-off-by: Elena Uziunaite <elena.uziunaite@arm.com>
2024-11-05 09:56:58 +00:00
Waleed Elmelegy
df186be8f5 Add extra tests cases for different Weierstrass curves for key generation
Signed-off-by: Waleed Elmelegy <waleed.elmelegy@arm.com>
2024-11-04 17:28:54 +00:00
Waleed Elmelegy
1f5075b23f Revert "Add testing valid attributes after aborting an invalid input in iop key generation"
This reverts commit 005b78c307eab92b8ebbee922ed54a145417e3e9.

Signed-off-by: Waleed Elmelegy <waleed.elmelegy@arm.com>
2024-11-04 17:28:34 +00:00
Gilles Peskine
9602ce7d8b Fix MD_PSA_INIT called before initializing some data structures
This fixes accesses to uninitialized memory in test code if
`psa_crypto_init()` fails.

A lot of those were pointed out by Coverity. I quickly reviewed all calls to
`MD_PSA_INIT()` manually, rather than follow any particular list.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-11-04 18:28:01 +01:00
Gabor Mezei
e6cfa3b428
Update dependencies
Signed-off-by: Gabor Mezei <gabor.mezei@arm.com>
2024-11-04 17:43:12 +01:00
Gabor Mezei
fb6b0dbbfd
Use crypto_knowledge to determine the cipher key types
Replace the old implementation which uses `cipher.h` to gather
information.

Signed-off-by: Gabor Mezei <gabor.mezei@arm.com>
2024-11-04 17:43:12 +01:00
Gabor Mezei
03cc5921be
Collect key types
Use KeyType from crypto_knowledge to use its functionality.

Signed-off-by: Gabor Mezei <gabor.mezei@arm.com>
2024-11-04 17:43:12 +01:00
Gabor Mezei
06a060ddd8
Collect the cipher algorithms
Signed-off-by: Gabor Mezei <gabor.mezei@arm.com>
2024-11-04 17:43:10 +01:00
Gabor Mezei
402381d2a6
Collect the algorithms
Use Algorithm from crypto_knowledge to use its functionality.

Signed-off-by: Gabor Mezei <gabor.mezei@arm.com>
2024-11-04 17:41:42 +01:00
Gilles Peskine
98a4f88760
Merge pull request #9751 from gilles-peskine-arm/mbedtls_psa_ecp_generate_key-no_public_key-dev
PSA ECC key generation: don't generate the public key
2024-11-04 16:36:44 +00:00
Gilles Peskine
f1210191e3 Don't use Unicode in .function file
generate_test_code.py doesn't support UTF-8 in .function files (but does
in .data files) when run in a non-UTF-8 locale with Python <=3.6.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-11-04 14:07:20 +01:00
Gilles Peskine
dc7d7875ac More explanation of what we do and do not test
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-11-04 14:07:20 +01:00
Gilles Peskine
18e8389452 Add changelog entry
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-11-04 14:07:20 +01:00
Gilles Peskine
fce3f0dd84 mbedtls_psa_ecp_generate_key: don't calculate the public key
mbedtls_ecp_gen_key() generates a private key and calculates the public key.
Calculating the public key takes most of the CPU time. But the PSA key store
doesn't store the key, in order to simplify the plumbing when drivers are
involved. So the time spent calculating the public key is a waste.

Instead, call mbedtls_ecp_gen_privkey(), which does not calculate the public
key.

This also saves 8 instructions in a sample arm thumb build.

Resolves #9732.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-11-04 14:07:20 +01:00
Gilles Peskine
091941e849 Basic statistical tests for mbedtls_psa_ecp_generate_key()
Run a few iterations and check that there is some diversity in the results.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-11-04 14:07:20 +01:00
Gilles Peskine
77587ce12d Unit tests for mbedtls_psa_ecp_generate_key()
Run the function on a few different curves with shorter, just-right and
larger buffer sizes. Perform some basic sanity checks on the output (which
is random).

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-11-04 14:07:20 +01:00
Harry Ramsey
0f07e76b4b Fix undefined variable in makefile
This commit replaces an undefined variable ${MBEDTLS_FRAMEWORK_DIR} for
${MBEDTLS_PATH}.

Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
2024-11-04 12:16:50 +00:00
Harry Ramsey
66ce986ef3 Improve makefile error message
This commit improves the makefile error message when using make, it no
longer incorrectly reports that CMakeLists.txt cannot be found instead
of exported.make.

Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
2024-11-04 11:40:50 +00:00
Janos Follath
e7c28d6847
Merge pull request #9727 from gilles-peskine-arm/use_psa_crypto-always_forced
Force MBEDTLS_USE_PSA_CRYPTO enabled
2024-11-04 11:32:45 +00:00
Harry Ramsey
e2c7a090fa Fix typo in gcm.h function comment
This commit fixes a type in a comment inside gcm.h.

Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
2024-11-04 11:02:29 +00:00
Harry Ramsey
af3962491d Update GCM buffer overlap documentation
This commit updates the GCM buffer overlap documentation to explicity
state that alternative implementations may not support input/output
buffer overlap for GCM encrypt/decrypt functions.

Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
2024-11-04 11:02:29 +00:00
Harry Ramsey
099623c8e9 Improve GCM buffer overlap test cases
This commit fixes an issue with GCM testing to handle edge cases by
replacing malloc with calloc. Additionally, fix an issue where different
buffers were used for encryption.

Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
2024-11-04 11:02:29 +00:00
Harry Ramsey
415d1bc99c Fix issues with new GCM overlap buffer test cases
This commit code style and initialisation issues with the new buffer
overlap test cases for GCM.

Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
2024-11-04 11:02:29 +00:00
Harry Ramsey
2e2036c84b Fix indentation in test_suite_gcm.function
Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
2024-11-04 11:02:29 +00:00
Harry Ramsey
b070eb6c52 Add test cases for AES GCM input and output buffer overlap
This commit adds test cases for input and output buffer overlap. The
data for the test cases is a duplicate of existing encrypt/decrypt test
cases.

The two test functions gcm_<encrypt/decrypt>_input_output_buffer_overlap
are modified to use a single malloc buffer rounded to the nearest
128-bits/16-bytes for input and output.

Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
2024-11-04 11:02:29 +00:00
Chien Wong
ea2e5ebe4e Revert "Remove outdated doc on mbedtls_gcm_update()"
This reverts commit 0be523356005960e07ead277dbf5354823a4afae.

Signed-off-by: Chien Wong <m@xv97.com>
2024-11-04 11:02:29 +00:00
Chien Wong
c22de4aeba Revert "Clarify output_length in mbedtls_gcm_update()"
This reverts commit e01b539222d462cabc6ecc927f3d2eb1e7e18615.

Signed-off-by: Chien Wong <m@xv97.com>
2024-11-04 11:02:29 +00:00
Chien Wong
57739fffc4 Revert "Fix a grammar error"
This reverts commit f5773c5188cca4e9d1037501bb9ac3c918467812.

Signed-off-by: Chien Wong <m@xv97.com>
2024-11-04 11:02:29 +00:00
Chien Wong
e6d28c6048 Fix a grammar error
Signed-off-by: Chien Wong <m@xv97.com>
2024-11-04 11:02:29 +00:00
Chien Wong
591f98e039 Clarify output_length in mbedtls_gcm_update()
Signed-off-by: Chien Wong <m@xv97.com>
2024-11-04 11:02:29 +00:00
Chien Wong
2328f9ea9e Remove outdated doc on mbedtls_gcm_update()
Signed-off-by: Chien Wong <m@xv97.com>
2024-11-04 11:02:29 +00:00
Chien Wong
89bbc3a4c5 Fix doc on buffer requirements of GCM API
Signed-off-by: Chien Wong <m@xv97.com>
2024-11-04 11:02:29 +00:00
Manuel Pégourié-Gonnard
dea700dd38 all.sh: improve wrapper error reporting
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2024-11-04 11:40:44 +01:00
Manuel Pégourié-Gonnard
0b7faf9011
Merge pull request #9746 from gilles-peskine-arm/ffdh-memsan-skip-dev
Skip slowest FFDH tests against GnuTLS with MSan or Valgrind
2024-11-04 08:10:26 +00:00
Waleed Elmelegy
005b78c307 Add testing valid attributes after aborting an invalid input in iop key generation
Signed-off-by: Waleed Elmelegy <waleed.elmelegy@arm.com>
2024-11-01 17:08:57 +00:00
Elena Uziunaite
4cf5a0e368 Add a Python utility function to get the 3.6 feature macro
Signed-off-by: Elena Uziunaite <elena.uziunaite@arm.com>
2024-11-01 14:52:05 +00:00
Gilles Peskine
05030d4141 Skip slowest FFDH tests against GnuTLS with MSan or Valgrind
Skip 6144-bit and 8192-bit FFDH tests in MSan or Valgrind test
configurations. These test cases are slow and sometimes trigger GnuTLS's
built-in timeout (which cannot be configured until more recent versions).

Resolves #9742.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-10-31 18:52:40 +01:00
Waleed Elmelegy
b16edbef72 Improve comments for interuptible key agreement APIs
Signed-off-by: Waleed Elmelegy <waleed.elmelegy@arm.com>
2024-10-31 16:41:00 +00:00
Waleed Elmelegy
bb0683274b Remove useless define check for interuptible key agreement APIs
Signed-off-by: Waleed Elmelegy <waleed.elmelegy@arm.com>
2024-10-31 16:39:38 +00:00
Waleed Elmelegy
e3abcc3ff5 Improve interuptible key generation testing
Signed-off-by: Waleed Elmelegy <waleed.elmelegy@arm.com>
2024-10-31 16:39:02 +00:00
Waleed Elmelegy
75a412f5a3 Remove mention of drivers for interuptible key generation
Signed-off-by: Waleed Elmelegy <waleed.elmelegy@arm.com>
2024-10-31 16:37:09 +00:00