Commit Graph

9608 Commits

Author SHA1 Message Date
Manuel Pégourié-Gonnard
56efc52d6b Merge pull request #4628 from ronald-cron-arm/dhm-key-generation-bias
dhm: Fix bias in private key generation
2021-06-16 13:13:34 +02:00
Gilles Peskine
ebe9ec448b Add changelog entry for non-uniform MPI random generation
Fix #4245.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2021-06-11 08:52:21 +02:00
Ronald Cron
2e0969abce ecp: Fix bias in the generation of blinding values
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2021-06-11 08:52:14 +02:00
Dave Rodgman
7ef266045b Merge pull request #4645 from daverodgman/travis-disable-osx-2.16
Backport 2.16: Disable OS X Travis builds
2021-06-10 17:48:42 +01:00
Dave Rodgman
58d238a3a4 Disable OS X builds on Travis
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
2021-06-10 15:51:28 +01:00
Gilles Peskine
424d13ce7d DHM: add test case with x_size < 0
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2021-06-10 10:40:48 +02:00
Gilles Peskine
60c4fec07f DHM tests: add some explanations
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2021-06-10 10:40:42 +02:00
Gilles Peskine
39b1a51cc3 DHM: add notes about leading zeros
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2021-06-10 10:40:37 +02:00
Ronald Cron
b4367a358f dhm: Fix bias in private key generation and blinding
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2021-06-10 10:40:34 +02:00
Gilles Peskine
260be63e7d dhm_check_range: microoptimization
No need to build a bignum for the value 2.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2021-06-10 10:40:30 +02:00
Gilles Peskine
c53560ea00 DHM refactoring: use dhm_random_below in dhm_make_common
dhm_make_common includes a piece of code that is identical to
dhm_random_below except for returning a different error code in one
case. Call dhm_random_below instead of repeating the code.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2021-06-10 10:40:26 +02:00
Gilles Peskine
b2fbda3867 DHM blinding: don't accept P-1 as a blinding value
P-1 is as bad as 1 as a blinding value. Don't accept it.

The chance that P-1 would be randomly generated is infinitesimal, so
this is not a practical issue, but it makes the code cleaner. It was
inconsistent to accept P-1 as a blinding value but not as a private key.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2021-06-10 10:40:19 +02:00
Gilles Peskine
e75bb6308a DHM refactoring: unify mbedtls_dhm_make_{params,public}
Unify the common parts of mbedtls_dhm_make_params and mbedtls_dhm_make_public.

No intended behavior change, except that the exact error code may
change in some corner cases which are too exotic for the existing unit
tests.

Removed usage of MBEDTLS_ERROR_ADD which does not exist in 2.16.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2021-06-10 10:35:51 +02:00
Gilles Peskine
d1eb14ae8a Test mbedtls_dhm_make_params with different x_size
mbedtls_dhm_make_params() with x_size != size of P is not likely to be
useful, but it's supported, so test it.

Cherry-picked 33ec863570
Changed mbedtls_test_rnd_pseudo_info type to rnd_pseudo_info

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2021-06-10 10:35:36 +02:00
Gilles Peskine
863b83b666 Repeat a few DH tests
Repeat a few tests that use random data. This way the code is
exercised with a few different random values.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2021-06-10 10:35:18 +02:00
Gilles Peskine
92f4714e7e Test range and format of dhm_make_params output
Improve the validation of the output from mbedtls_dhm_make_params:
* Test that the output in the byte buffer matches the value in the
  context structure.
* Test that the calculated values are in the desired range.

Cherry-picked dc0b6e44b0.
Changed mbedtls_test_rnd_pseudo_rand to rnd_pseudo_rand.
Removed test step code.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2021-06-10 10:34:37 +02:00
Gilles Peskine
6db34e6e01 Merge pull request #4542 from mpg/fix-ssl-cf-hmac-alt-2.16
[Backport 2.16] Fix misuse of MD API in SSL constant-flow HMAC
2021-06-07 20:53:53 +02:00
Gilles Peskine
806281a663 Merge pull request #4598 from gilles-peskine-arm/ecp_muladd-tests_not_executed-2.16
Backport 2.16: Fix null pointer arithmetic in NIST_KW
2021-06-01 16:40:11 +02:00
Gilles Peskine
995d89c9f2 Fix null pointer arithmetic in error case
When mbedtls_nist_kw_wrap was called with output=NULL and out_size=0, it
performed arithmetic on the null pointer before detecting that the output
buffer is too small and returning an error code. This was unlikely to have
consequences on real-world hardware today, but it is undefined behavior and
UBSan with Clang 10 flagged it. So fix it (fix #4025).

Fix a similar-looking pattern in unwrap, though I haven't verified that it's
reachable there.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2021-06-01 13:03:34 +02:00
Gilles Peskine
8e7d7ee1ae Fix ecp_muladd test cases never getting executed
These test cases had been backported from Mbed TLS 2.x with a dependency
symbol that didn't exist in 2.16. Declare that symbol.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2021-05-31 20:25:26 +02:00
Gilles Peskine
5f45bd2bab New macros TEST_EQUAL, ASSERT_ALLOC, ASSERT_ALLOC_WEAK
Backports some test helper macros added after 2.16. This will facilitate
backporting new test code.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2021-05-31 15:40:31 +02:00
Gilles Peskine
e0b455fb51 Remove spurious dependencies on PEM
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2021-05-31 15:23:00 +02:00
Gilles Peskine
7f3f02d230 Merge pull request #4558 from gilles-peskine-arm/aria_alt-2.16
Backport 2.16: Fix ARIA_ALT header and self-test and CAMELLIA_ALT self-test
2021-05-25 20:32:49 +02:00
Gilles Peskine
a776bf8deb Changelog entry for the ARIA_ALT and CAMELLIA_ALT fixes
Fix ARMmbed/mbed-os#14694

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2021-05-25 18:45:46 +02:00
Gilles Peskine
39f5dae5b6 CAMELLIA: add missing context init/free
This fixes the self-test with alternative implementations.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2021-05-25 18:45:46 +02:00
Gilles Peskine
ba93f598cc ARIA: add missing context init/free
This fixes the self-test with alternative implementations.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2021-05-25 18:45:46 +02:00
Gilles Peskine
e0e132f847 Fix misplaced extern "C" affecting MBEDTLS_ARIA_ALT
Reported via Mbed OS:
https://github.com/ARMmbed/mbed-os/issues/14694

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2021-05-25 18:45:46 +02:00
Ronald Cron
1bc2c9cb8b Merge pull request #4534 from gilles-peskine-arm/host_test-int32-2.16
Backport 2.16: Fix build error in host_test.function when int32_t is not int
2021-05-21 16:01:50 +02:00
Manuel Pégourié-Gonnard
5ee166b264 Merge pull request #4326 from gilles-peskine-arm/openssl-dhparam-robustness-2.16
Backport 2.16: Fix SSL tests scripts with recent OpenSSL server with Diffie-Hellman
2021-05-21 10:15:54 +02:00
Gilles Peskine
85060d2fad Merge pull request #4498 from netfoundry/gcc11.fixes_2.16
Backport 2.16: build with gcc11
2021-05-20 15:54:17 +02:00
Gilles Peskine
1012b7c696 Merge pull request #4504 from gilles-peskine-arm/ciphersuite-sha384-guard-2.16
Backport 2.16: fix SHA384 guards in TLS
2021-05-19 21:13:10 +02:00
Gilles Peskine
f26d12caa5 Fix dependency for TLS-RSA-WITH-CAMELLIA-256-GCM-SHA384
Fix #4472

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2021-05-19 16:54:32 +02:00
Dave Rodgman
8e405103b8 Merge pull request #4540 from daverodgman/padlock-docs-fix-2.16
Fix docs for mbedtls_padlock_has_support: 2.16 backport
2021-05-19 12:12:32 +01:00
Manuel Pégourié-Gonnard
7f0d193c94 Fix misuse of MD API in SSL constant-flow HMAC
The sequence of calls starts-update-starts-update-finish is not a
guaranteed valid way to abort an operation and start a new one. Our
software implementation just happens to support it, but alt
implementations may very well not support it.

Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2021-05-19 10:44:43 +02:00
Dave Rodgman
2317f7f9a1 Fix docs for mbedtls_padlock_has_support
Fix a slight inaccuracy in the docs for the return value of
mbedtls_padlock_has_support.

Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
2021-05-19 09:05:33 +01:00
Gilles Peskine
04e12cf81e Fix build error when int32_t is not int
Fix a pointer mismatch when int32_t is not int, for example on Cortex-M where
in32_t is long int. Fix #4530

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2021-05-18 16:44:22 +02:00
Ronald Cron
174b18ba4a Merge pull request #4461 from gilles-peskine-arm/generate-tests-python3-make-2.16
Generate tests python3 make 2.16
2021-05-18 13:07:29 +02:00
Gilles Peskine
6c0f91ec00 Merge pull request #4502 from d3zd3z/bp216-posix-define
Backport 2.16: Check if feature macro is defined before define it
2021-05-17 12:10:07 +02:00
David Brown
6e57cb9d5d Add changelog for posix definition
Signed-off-by: David Brown <david.brown@linaro.org>
2021-05-13 11:18:59 -06:00
Flavio Ceolin
9911e4add4 Check if feature macro is defined before define it
Zephyr's native posix port define _POSIX_C_SOURCE with a higher value
during the build, so when mbedTLS defines it with a different value
breaks the build.

As Zephyr is already defining a higher value is guaranteed that mbedTLS
required features will be available. So, just define it in case it was
not defined before.

[taken from Zephyr mbedtls module:
76dcd6eeca]

Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
Signed-off-by: David Brown <david.brown@linaro.org>
2021-05-13 11:18:59 -06:00
Shawn Carey
69c5f5d81c avoid -Wstringop-overflow when buiding with gcc11
Signed-off-by: Shawn Carey <shawn.carey@netfoundry.io>
2021-05-13 09:16:16 -04:00
Shawn Carey
7b81dcf90f avoid -Wfree-nonheap-object when buiding with gcc11
Signed-off-by: Shawn Carey <shawn.carey@netfoundry.io>
2021-05-13 09:08:02 -04:00
Gilles Peskine
3c546f71c9 Test that generate_test_code.py is still compatible with Python 2
When Mbed TLS 2.16 was released, the requirement was Python 2, not
Python 3. Since then, upstream Python 2 support has stopped, but it is
still maintained in some long-term-support distributions. For the sake
of users who build the unit tests in such environments, test that
generate_test_code.py remains compatible with Python 2.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2021-05-12 19:01:31 +02:00
Gilles Peskine
484df7583b Changelog entry for no longer explicitly invoking python2
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2021-05-12 19:01:26 +02:00
Gilles Peskine
99705a6813 Use Python 3 instead of Python 2 to generate test files
Python 2 is no longer officially supported, but we were still using it
to generate test suite .c files from .function files when using GNU
make. Switch to looking for Python 3.

CMake currently uses a system-dependent version of the Python language.
This commit does not affect CMake builds.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2021-05-12 19:00:31 +02:00
Ronald Cron
f2fa6e54a7 Merge pull request #4487 from gilles-peskine-arm/tniessen-typos-in-header-files-2.16
Backport 2.16: Fix typos in C header files
2021-05-12 18:23:33 +02:00
Tobias Nießen
00a01c90bf Fix typos in C header files
Signed-off-by: Tobias Nießen <tniessen@tnie.de>
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2021-05-12 10:39:39 +02:00
Gilles Peskine
5b8f4db757 Merge pull request #4439 from gilles-peskine-arm/aes2crypt-removal-2.16
Backport 2.16: Remove the sample program aescrypt2
2021-04-30 11:15:29 +02:00
Gilles Peskine
23e5f715f1 Merge pull request #4325 from gilles-peskine-arm/dhm_min_bitlen-bits-2.16
Backport 2.16: Enforce dhm_min_bitlen exactly
2021-04-29 14:55:41 +02:00
Gilles Peskine
e2c417d324 Remove the sample program aescrypt2
The sample program aescrypt2 shows bad practice: hand-rolled CBC
implementation, CBC+HMAC for AEAD, hand-rolled iterated SHA-2 for key
stretching, no algorithm agility. The new sample program pbcrypt does
the same thing, but better. So remove aescrypt2.

Fix #1906

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2021-04-28 17:45:12 +02:00