6013 Commits

Author SHA1 Message Date
Werner Lewis
478a4ce1fe Use typing casts for fixed-width tuples
Enforces fixed-width tuple types where mypy does not recognize.

Signed-off-by: Werner Lewis <werner.lewis@arm.com>
2022-09-21 16:46:39 +01:00
Werner Lewis
9509f44d79 Add missing typing
Signed-off-by: Werner Lewis <werner.lewis@arm.com>
2022-09-21 16:46:39 +01:00
Werner Lewis
cace1aa02e Use __new__() for case counting
Signed-off-by: Werner Lewis <werner.lewis@arm.com>
2022-09-21 16:46:39 +01:00
Werner Lewis
c34d037fa0 Split generate_tests to reduce code complexity
Previous implementation mixed the test case generation and the
recursive generation calls together. A separate method is added to
generate test cases for the current class' test function. This reduces
the need to override generate_tests().

Signed-off-by: Werner Lewis <werner.lewis@arm.com>
2022-09-21 16:46:39 +01:00
Werner Lewis
47e37b3b75 Use ABCMeta for abstract classes
Signed-off-by: Werner Lewis <werner.lewis@arm.com>
2022-09-21 16:46:39 +01:00
Werner Lewis
008d90d424 Add details to docstrings
Clarification is added to docstrings, mostly in abstract classes.

Signed-off-by: Werner Lewis <werner.lewis@arm.com>
2022-09-21 16:46:39 +01:00
Werner Lewis
1c2a732203 Convert bools to int before arithmetic
Signed-off-by: Werner Lewis <werner.lewis@arm.com>
2022-09-21 16:46:39 +01:00
Werner Lewis
02998c470a Remove unneeded list concatenation
Signed-off-by: Werner Lewis <werner.lewis@arm.com>
2022-09-21 16:46:39 +01:00
Werner Lewis
70d3f3dcdc Remove abbreviations and clarify attributes
Signed-off-by: Werner Lewis <werner.lewis@arm.com>
2022-09-21 16:46:39 +01:00
Werner Lewis
dcad1e93fe Separate common test generation classes/functions
Signed-off-by: Werner Lewis <werner.lewis@arm.com>
2022-09-21 16:46:39 +01:00
Werner Lewis
92bb1cd8cb Fix incorrect indentation
Signed-off-by: Werner Lewis <werner.lewis@arm.com>
2022-09-21 16:29:49 +01:00
Werner Lewis
f0910ae380 Remove is None from if statement
Signed-off-by: Werner Lewis <werner.lewis@arm.com>
2022-09-21 16:29:49 +01:00
Werner Lewis
d76c5edc8e Fix type issues
Signed-off-by: Werner Lewis <werner.lewis@arm.com>
2022-09-21 16:29:49 +01:00
Werner Lewis
1bdee226e3 Remove set() to preserve test case order
Signed-off-by: Werner Lewis <werner.lewis@arm.com>
2022-09-21 16:29:49 +01:00
Werner Lewis
1c413bda51 Sort tests when generating cases
Signed-off-by: Werner Lewis <werner.lewis@arm.com>
2022-09-21 16:29:49 +01:00
Werner Lewis
5c1173bc1b Add test case generation for bignum add
Signed-off-by: Werner Lewis <werner.lewis@arm.com>
2022-09-21 16:29:49 +01:00
Werner Lewis
423f99bcef Add test generation for bignum cmp variant
Signed-off-by: Werner Lewis <werner.lewis@arm.com>
2022-09-21 16:29:49 +01:00
Werner Lewis
545911f751 Add bignum test generation framework
Adds python script for generation of bignum test cases, with initial
classes for mpi_cmp_mpi test cases. Build scripts are updated to
generate test data.

Signed-off-by: Werner Lewis <werner.lewis@arm.com>
2022-09-21 16:29:49 +01:00
Werner Lewis
2b984dea77 Restore vbuf value after modification
Signed-off-by: Werner Lewis <werner.lewis@arm.com>
2022-09-20 12:07:39 +01:00
Werner Lewis
9a3463c9b7 Add explicit mbedtls_ecp_tls_read_group_id call
Signed-off-by: Werner Lewis <werner.lewis@arm.com>
2022-09-20 10:03:24 +01:00
Werner Lewis
c1498b3eb0 Add leading zeros to group metadata
Signed-off-by: Werner Lewis <werner.lewis@arm.com>
2022-09-20 10:03:24 +01:00
Werner Lewis
fad4030f90 Fix typo in MBEDTLS_ECP_DP_BP512R1
Signed-off-by: Werner Lewis <werner.lewis@arm.com>
2022-09-20 10:03:24 +01:00
Dave Rodgman
e3619d06c2 Correct copyright and license in crypto_spe.h
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
2022-09-12 17:58:29 +01:00
Neil Armstrong
11048661a5 Initialize mbedtls_x509write_csr struct before USE_PSA_INIT(), mbedtls_x509write_csr_free() will crash if uninitialized
When USE_PSA_INIT() failed because lack of seedfile, mbedtls_x509write_csr_free()
crashed when called on an unitialized mbedtls_x509write_csr struct.

This moves mbedtls_x509write_csr_init before calling USE_PSA_INIT(),
which could probably fail, and uses the same flow in x509_csr_check()
and x509_csr_check_opaque().

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
2022-08-30 15:56:40 +02:00
Werner Lewis
505a05073c Use spec values as-is for test data
Spec values are now always used for test data, and conversion to
internal representation is done in the test function.

Signed-off-by: Werner Lewis <werner.lewis@arm.com>
2022-08-25 14:05:23 +01:00
Zhangsen Wang
9d5b399b5d rebase with latest 2.28 branch 2022-08-16 03:27:48 +00:00
Werner Lewis
60b50e18fe Add test for ECP group metadata
Test cases added to check curve parameters and information for each
curve supported. Expected parameters are taken from references: SEC 2
for NIST, RFC 5639 for Brainpool, and RFC 7748 for curve25519/curve448.

Signed-off-by: Werner Lewis <werner.lewis@arm.com>
2022-08-15 15:49:18 +01:00
Werner Lewis
938dc19ef2 Add auxiliary ECP comparison function
Signed-off-by: Werner Lewis <werner.lewis@arm.com>
2022-08-15 12:57:48 +01:00
Werner Lewis
55a3285faf Add test case for mbedtls_ecp_set_zero
Tests function with various ECP point conditions, covering freshly
initialized, zeroed, non-zero, and freed points.

Signed-off-by: Werner Lewis <werner.lewis@arm.com>
2022-08-08 17:24:24 +01:00
Zhangsen Wang
1c981f5c84 skip test with openssl client because it will timeout with certain seed due to an openssl bug
Signed-off-by: Zhangsen Wang <zhangsen.wang@arm.com>
2022-08-02 06:18:40 +00:00
Werner Lewis
df336842a9 Use upper case for bignum string comparison
Test data which is compared as a hex string now uses upper case to
match output of mbedtls_mpi_write_string() output. This removes usage
of strcasecmp().

Signed-off-by: Werner Lewis <werner.lewis@arm.com>
2022-08-01 15:57:06 +01:00
Werner Lewis
d487776a61 Remove radix from added test cases
Signed-off-by: Werner Lewis <werner.lewis@arm.com>
2022-08-01 15:57:06 +01:00
Werner Lewis
3d52e445cc Fix formatting in bignum test functions
Signed-off-by: Werner Lewis <werner.lewis@arm.com>
2022-08-01 15:57:06 +01:00
Werner Lewis
3e005f3efc Remove remaining bignum radix args
Functions which are not covered by script, changes made to use radix
16.

Signed-off-by: Werner Lewis <werner.lewis@arm.com>
2022-08-01 15:57:06 +01:00
Werner Lewis
955a0bb18f Remove radix arg from bignum tests
Cases where radix was explictly declared are removed in most cases,
replaced using script. bignum arguments are represented as hexadecimal
strings. This reduces clutter in test data and makes bit patterns
clearer.

Signed-off-by: Werner Lewis <werner.lewis@arm.com>
2022-08-01 15:57:06 +01:00
Werner Lewis
24b6078306 Remove radix arg from mbedtls_test_read_mpi
All uses have radix argument removed, using script.

Signed-off-by: Werner Lewis <werner.lewis@arm.com>
2022-08-01 15:57:02 +01:00
Tom Cosgrove
c71bc7b7d3 Fix typographical errors in .md files found by cspell
Signed-off-by: Tom Cosgrove <tom.cosgrove@arm.com>
2022-07-29 13:54:52 +01:00
Tuvshinzaya Erdenekhuu
e63492aeea Add missing break
In ''int execute_tests( int argc , const char ** argv )'' function,
switch case is missing break statement.

Signed-off-by: Tuvshinzaya Erdenekhuu <tuvshinzaya.erdenekhuu@arm.com>
2022-07-20 15:18:55 +01:00
Dave Rodgman
fe9d08fd12 Bump version
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
2022-07-11 10:43:55 +01:00
Dave Rodgman
df275c4227 Merge remote-tracking branch 'restricted/mbedtls-2.28-restricted' into mbedtls-2.28.1rc0-pr 2022-07-11 10:42:55 +01:00
Andrzej Kurek
c87d97b2ac Rearrange the session resumption code
Previously, the transforms were populated before extension
parsing, which resulted in the client rejecting a server
hello that contained a connection ID.
Signed-off-by: Andrzej Kurek <andrzej.kurek@arm.com>
2022-07-06 06:43:00 -04:00
Manuel Pégourié-Gonnard
e3954e36d9
Merge pull request #5997 from gilles-peskine-arm/storage-format-doc-202206-2.28
Backport 2.28: Documentation about storage format compatibility
2022-07-01 12:21:21 +02:00
Ronald Cron
0ae1c1c49c
Merge pull request #5991 from gilles-peskine-arm/asn1write-0-fix-2.28
Backport 2.28: Improve ASN.1 write tests
2022-06-30 15:42:31 +02:00
Gilles Peskine
3d96ea1e4c Add warnings to test code and data about storage format stability
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2022-06-30 13:57:27 +02:00
Gilles Peskine
d97de551e4 Don't call memcpy(NULL, 0) which has undefined behavior
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2022-06-29 11:04:48 +02:00
Gilles Peskine
96b8d31ef6 ASN.1: test that we can parse what we can write
In asn1_write tests, when there's a parsing function corresponding to the
write function, call it and check that it can parse what we wrote.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2022-06-29 11:04:48 +02:00
Gilles Peskine
53875878b8 Fix copypasta in test data
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2022-06-29 11:04:48 +02:00
Gilles Peskine
53785928fa ASN.1 write tests: test with larger buffer
Test with the output buffer size up to *and including* the expected output
size plus one. `... < expected->len + 1` was evidently a mistake.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2022-06-29 11:04:48 +02:00
Gilles Peskine
bb34feea0d Fix bug whereby 0 was written as 0200 rather than 020100
0200 is not just non-DER, it's completely invalid, since there has to be a
sign bit.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2022-06-29 11:04:48 +02:00
Gilles Peskine
62f217b180 Add MPI write tests when the MPI object has a leading zero limb
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2022-06-29 11:04:48 +02:00