mbedtls/tests/suites
Gilles Peskine 77f55c9b00 Overhaul testing of mbedtls_mpi_copy
Replace the two test functions mbedtls_mpi_copy_sint (supporting signed
inputs but always with exactly one limb) and mbedtls_mpi_copy_binary
(supporting arbitrary-sized inputs but not negative inputs) by a single
function that supports both arbitrary-sized inputs and arbitrary-signed
inputs. This will allows testing combinations like negative source and
zero-sized destination.

Also generalize mpi_copy_self to support arbitrary inputs.

Generate a new list of test cases systematically enumerating all
possibilities among various categories: zero with 0 or 1 limb, negative or
positive with 1 limb, negative or positive with >1 limb. I used the
following Perl script:

```
sub rhs { $_ = $_[0]; s/bead/beef/; s/ca5cadedb01dfaceacc01ade/face1e55ca11ab1ecab005e5/; $_ }
%v = (
    "zero (null)" => "",
    "zero (1 limb)" => "0",
    "small positive" => "bead",
    "large positive" => "ca5cadedb01dfaceacc01ade",
    "small negative" => "-bead",
    "large negative" => "-ca5cadedb01dfaceacc01ade",
);
foreach $s (sort keys %v) {
    foreach $d (sort keys %v) {
        printf "Copy %s to %s\nmbedtls_mpi_copy:\"%s\":\"%s\"\n\n",
               $s, $d, $v{$s}, rhs($v{$d});
    }
}
foreach $s (sort keys %v) {
    printf "Copy self: %s\nmpi_copy_self:\"%s\"\n\n", $s, $v{$s};
}
```

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2021-06-22 12:39:17 +02:00
..
helpers.function Make {USE_,}PSA_{INIT,DONE} available in all test suites 2021-02-22 19:08:14 +01:00
host_test.function Fix build error when int32_t is not int 2021-05-18 16:43:00 +02:00
main_test.function Rewrite error addition interface 2021-04-13 15:24:25 +01:00
target_test.function Add documentation and minor style changes 2021-02-03 12:07:01 +00:00
test_suite_aes.cbc.data
test_suite_aes.cfb.data
test_suite_aes.ecb.data
test_suite_aes.function Free context in at the end of aes_crypt_xts_size() 2021-06-17 16:15:31 +01:00
test_suite_aes.ofb.data
test_suite_aes.rest.data
test_suite_aes.xts.data
test_suite_arc4.data
test_suite_arc4.function
test_suite_aria.data
test_suite_aria.function
test_suite_asn1parse.data
test_suite_asn1parse.function Use mbedtls_test_read_mpi in test suites 2021-06-22 12:39:17 +02:00
test_suite_asn1write.data
test_suite_asn1write.function Move helper testing functions to tests/src/helpers.c 2021-01-20 15:56:42 +00:00
test_suite_base64.data Fix misnamed base64 test 2021-03-04 14:23:03 +00:00
test_suite_base64.function Prevent false positive CF Test Failures 2021-03-02 22:48:40 +00:00
test_suite_blowfish.data
test_suite_blowfish.function
test_suite_camellia.data
test_suite_camellia.function
test_suite_ccm.data Merge pull request #3772 from frestr/bugfix/ccm_add_length 2020-10-21 22:31:48 +02:00
test_suite_ccm.function More robust code to set the IV 2021-02-09 12:00:13 +01:00
test_suite_chacha20.data
test_suite_chacha20.function
test_suite_chachapoly.data
test_suite_chachapoly.function
test_suite_cipher.aes.data
test_suite_cipher.arc4.data
test_suite_cipher.aria.data
test_suite_cipher.blowfish.data
test_suite_cipher.camellia.data
test_suite_cipher.ccm.data
test_suite_cipher.chacha20.data
test_suite_cipher.chachapoly.data
test_suite_cipher.des.data
test_suite_cipher.function Include psa_crypto_helpers.h in helpers.function 2021-01-06 18:21:18 +01:00
test_suite_cipher.gcm.data
test_suite_cipher.misc.data
test_suite_cipher.nist_kw.data
test_suite_cipher.null.data
test_suite_cipher.padding.data
test_suite_cmac.data
test_suite_cmac.function
test_suite_ctr_drbg.data
test_suite_ctr_drbg.function Support set *_drbg reseed interval before seed 2020-11-25 14:25:56 -08:00
test_suite_debug.data Add mbedtls_debug_print_mpi test case for 0 2021-06-07 21:41:53 +02:00
test_suite_debug.function Use mbedtls_test_read_mpi in test suites 2021-06-22 12:39:17 +02:00
test_suite_des.data
test_suite_des.function
test_suite_dhm.data DHM: add test case with x_size < 0 2021-06-02 21:39:31 +02:00
test_suite_dhm.function Use mbedtls_test_read_mpi in test suites 2021-06-22 12:39:17 +02:00
test_suite_ecdh.data
test_suite_ecdh.function Use mbedtls_test_read_mpi in test suites 2021-06-22 12:39:17 +02:00
test_suite_ecdsa.data Correct the new tests names 2021-04-07 19:19:47 +02:00
test_suite_ecdsa.function Use mbedtls_test_read_mpi in test suites 2021-06-22 12:39:17 +02:00
test_suite_ecjpake.data ecjpake_zkp_read() now returns ...BAD_INPUT_DATA when r len == 0 and test follows that 2021-03-17 11:36:31 +01:00
test_suite_ecjpake.function
test_suite_ecp.data Move mbedtls_mpi_random to the bignum module 2021-06-02 21:31:24 +02:00
test_suite_ecp.function Use mbedtls_test_read_mpi in test suites 2021-06-22 12:39:17 +02:00
test_suite_entropy.data Merge pull request #3616 from militant-daos/bug_3175 2021-03-30 17:33:08 +02:00
test_suite_entropy.function Merge pull request #3616 from militant-daos/bug_3175 2021-03-30 17:33:08 +02:00
test_suite_error.data
test_suite_error.function
test_suite_gcm.aes128_de.data
test_suite_gcm.aes128_en.data
test_suite_gcm.aes192_de.data
test_suite_gcm.aes192_en.data
test_suite_gcm.aes256_de.data
test_suite_gcm.aes256_en.data
test_suite_gcm.camellia.data
test_suite_gcm.function
test_suite_gcm.misc.data
test_suite_hkdf.data
test_suite_hkdf.function
test_suite_hmac_drbg.function Support set *_drbg reseed interval before seed 2020-11-25 14:25:56 -08:00
test_suite_hmac_drbg.misc.data
test_suite_hmac_drbg.no_reseed.data
test_suite_hmac_drbg.nopr.data
test_suite_hmac_drbg.pr.data
test_suite_md.data
test_suite_md.function
test_suite_mdx.data
test_suite_mdx.function
test_suite_memory_buffer_alloc.data
test_suite_memory_buffer_alloc.function
test_suite_mpi.data Overhaul testing of mbedtls_mpi_copy 2021-06-22 12:39:17 +02:00
test_suite_mpi.function Overhaul testing of mbedtls_mpi_copy 2021-06-22 12:39:17 +02:00
test_suite_mps.data Add unit test for integer overflow in mbedtls_mps_reader_reclaim() 2021-03-29 14:20:18 +01:00
test_suite_mps.function Update tests/suites/test_suite_mps.function 2021-03-29 14:20:18 +01:00
test_suite_net.data Add test for mbedtls_net_poll beyond FD_SETSIZE 2021-02-25 15:56:48 +01:00
test_suite_net.function Clarify how a file descriptor could still be more than the limit 2021-03-01 11:43:56 +01:00
test_suite_nist_kw.data
test_suite_nist_kw.function
test_suite_oid.data
test_suite_oid.function
test_suite_pem.data
test_suite_pem.function
test_suite_pk.data
test_suite_pk.function Use mbedtls_test_read_mpi in test suites 2021-06-22 12:39:17 +02:00
test_suite_pkcs1_v15.data
test_suite_pkcs1_v15.function Use mbedtls_test_read_mpi in test suites 2021-06-22 12:39:17 +02:00
test_suite_pkcs1_v21.data Added random material in the pkcs1 v21 salt length = max tests 2021-01-10 16:31:09 +01:00
test_suite_pkcs1_v21.function Make the fallback behavior of mbedtls_test_rnd_buffer_rand optional 2021-06-02 21:31:24 +02:00
test_suite_pkcs5.data
test_suite_pkcs5.function
test_suite_pkparse.data Remove spurious dependencies on PEM 2021-05-31 20:26:12 +02:00
test_suite_pkparse.function
test_suite_pkwrite.data
test_suite_pkwrite.function Remove Extraneous bytes from buffer post pem write 2020-12-07 17:29:42 +00:00
test_suite_poly1305.data
test_suite_poly1305.function
test_suite_psa_crypto_attributes.data Update PSA crypto test dependencies 2021-03-24 09:26:44 +01:00
test_suite_psa_crypto_attributes.function tests: psa: Test PSA client-only code 2021-02-01 13:17:23 +01:00
test_suite_psa_crypto_driver_wrappers.data Merge pull request #4357 from gabor-mezei-arm/3267_Implement_psa_sign_message_and_verify 2021-05-17 10:14:46 +02:00
test_suite_psa_crypto_driver_wrappers.function Merge pull request #4357 from gabor-mezei-arm/3267_Implement_psa_sign_message_and_verify 2021-05-17 10:14:46 +02:00
test_suite_psa_crypto_entropy.data tests: psa: Change Elliptic curve defines to PSA names 2021-03-10 13:19:45 -07:00
test_suite_psa_crypto_entropy.function Remove some remaining uses of deprecated constants 2021-05-17 22:31:15 +02:00
test_suite_psa_crypto_hash.data Update PSA crypto test dependencies 2021-03-24 09:26:44 +01:00
test_suite_psa_crypto_hash.function Include psa_crypto_helpers.h in helpers.function 2021-01-06 18:21:18 +01:00
test_suite_psa_crypto_init.data
test_suite_psa_crypto_init.function Include psa_crypto_helpers.h in helpers.function 2021-01-06 18:21:18 +01:00
test_suite_psa_crypto_metadata.data Update all uses of old AEAD output size macros 2021-04-15 17:32:06 +02:00
test_suite_psa_crypto_metadata.function Update all uses of old AEAD output size macros 2021-04-15 17:32:06 +02:00
test_suite_psa_crypto_not_supported.function Fix test code under MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER 2021-02-17 14:58:29 +01:00
test_suite_psa_crypto_not_supported.generated.data Add key material for twisted Edwards curves 2021-03-29 15:08:10 +02:00
test_suite_psa_crypto_not_supported.misc.data New test suite for not-supported cases: key creation (import, generate) 2021-02-17 14:50:17 +01:00
test_suite_psa_crypto_persistent_key.data tests: psa: Fix expected error code 2021-04-01 14:54:50 +02:00
test_suite_psa_crypto_persistent_key.function Include psa_crypto_helpers.h in helpers.function 2021-01-06 18:21:18 +01:00
test_suite_psa_crypto_se_driver_hal_mocks.data
test_suite_psa_crypto_se_driver_hal_mocks.function Include psa_crypto_helpers.h in helpers.function 2021-01-06 18:21:18 +01:00
test_suite_psa_crypto_se_driver_hal.data tests: psa: Fix expected error code 2021-04-01 14:54:50 +02:00
test_suite_psa_crypto_se_driver_hal.function Increment the test step number when invalidating a key 2021-02-23 20:36:07 +01:00
test_suite_psa_crypto_slot_management.data Merge pull request #4279 from ronald-cron-arm/fix-invalid-id-error-code 2021-04-06 18:46:30 +02:00
test_suite_psa_crypto_slot_management.function Update tests for other invalid key operations. 2021-03-17 16:11:05 +00:00
test_suite_psa_crypto_storage_format.current.data Abbreviate algorithms in test descriptions 2021-05-25 19:35:14 +02:00
test_suite_psa_crypto_storage_format.function key_storage_read: pass exercise as a flag rather than a boolean 2021-05-25 19:35:20 +02:00
test_suite_psa_crypto_storage_format.misc.data Test code for storage format stability 2021-03-10 23:22:35 +01:00
test_suite_psa_crypto_storage_format.v0.data key_storage_read: pass exercise as a flag rather than a boolean 2021-05-25 19:35:20 +02:00
test_suite_psa_crypto.data Fix copypasta in test data 2021-06-14 18:08:26 +02:00
test_suite_psa_crypto.function Add bad-workflow key derivation tests 2021-06-14 18:08:26 +02:00
test_suite_psa_its.data Update and add tests 2020-11-26 15:54:35 +01:00
test_suite_psa_its.function Fix potential buffer overflow in printf 2021-03-10 17:00:32 +00:00
test_suite_random.data Explain the "external RNG large" test case 2021-02-16 15:46:06 +01:00
test_suite_random.function Exclude random_twice tests with MBEDTLS_TEST_NULL_ENTROPY 2021-02-16 15:46:06 +01:00
test_suite_rsa.data Add init-free tests for RSA 2021-02-22 19:24:03 +01:00
test_suite_rsa.function Use mbedtls_test_read_mpi in test suites 2021-06-22 12:39:17 +02:00
test_suite_shax.data
test_suite_shax.function
test_suite_ssl.data tests: Fix test arguments separator 2021-05-05 09:02:13 +02:00
test_suite_ssl.function avoid -Wmaybe-uninitialized when buiding with gcc11 2021-05-13 10:26:52 -04:00
test_suite_timing.data
test_suite_timing.function
test_suite_version.data Bump version to 2.26.0 2021-03-09 16:09:18 +00:00
test_suite_version.function
test_suite_x509parse.data Merge pull request #773 from paul-elliott-arm/discrepancy_cert 2020-12-03 12:19:39 +01:00
test_suite_x509parse.function Apply MBEDTLS_ERROR_ADD to library 2021-04-15 11:19:47 +01:00
test_suite_x509write.data Mark basic constraints critical as appropriate. 2020-09-21 18:25:35 -07:00
test_suite_x509write.function Use mbedtls_test_read_mpi in test suites 2021-06-22 12:39:17 +02:00
test_suite_xtea.data
test_suite_xtea.function