mbedtls/tests/suites
Tom Cosgrove e16a945421
Add unit tests for mbedtls_mpi_core_mul()
The test cases use the following MPI values.

The .data file only includes those (a, b) values where a <= b; the test code
does a * b and b * a.

    0 1 80 ff 100 fffe ffff 10000 ffffffff 100000000
    20000000000000 7f7f7f7f7f7f7f7f 8000000000000000 ffffffffffffffff
    10000000000000000 10000000000000001 1234567890abcdef0
    fffffffffffffffffefefefefefefefe 100000000000000000000000000000000
    1234567890abcdef01234567890abcdef0
    ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
    1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0
    4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b

The lines in the .data file were generated by the following script

```
    #!/usr/bin/env perl
    #
    # mpi-test-core-mul.pl - generate MPI tests in Perl for mbedtls_mpi_core_mul()
    #
    use strict;
    use warnings;
    use Math::BigInt;
    use sort 'stable';

    my $echo = 0;

    my @mul_mpis = qw(
        0 1 80 ff 100 fffe ffff 10000 ffffffff 100000000
        20000000000000 7f7f7f7f7f7f7f7f 8000000000000000 ffffffffffffffff
        10000000000000000 10000000000000001 1234567890abcdef0 fffffffffffffffffefefefefefefefe
        100000000000000000000000000000000 1234567890abcdef01234567890abcdef0
        ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
        1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0
        4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b
    );

    generate_tests();

    sub generate_tests {
        generate_mbedtls_mpi_core_mul();
    }

    sub generate_mbedtls_mpi_core_mul {

        my $sub_name = (caller(0))[3];      # e.g. main::generate_mbedtls_mpi_sub_mpi
        my ($ignore, $test_name) = split("main::generate_", $sub_name);

        my @cases = ();

        for my $ah (@mul_mpis) {
            for my $bh (@mul_mpis) {

                my $a = Math::BigInt->from_hex($ah);
                my $b = Math::BigInt->from_hex($bh);
                next if $a > $b;		# don't need to repeat test cases

                my $r = $a * $b;
                my $rh = $r->to_hex();

                my $desc = "$test_name #NUMBER: 0x$ah * 0x$bh = 0x$rh";
                my $case = output($test_name, str($ah), str($bh), str($rh));

                push(@cases, [$case, $desc]);
            }
        }

        output_cases("", @cases);
    }

    sub output_cases {

        my ($explain, @cases) = @_;

        my $count = 1;
        for my $c (@cases) {

            my ($case, $desc, $dep) = @$c;
            $desc =~ s/NUMBER/$count/; $count++;
            if (defined($explain) && $desc =~ /EXPLAIN/) {
                $desc =~ s/EXPLAIN/$explain/;
                $explain = "";
            }

            my $depends = "";
            $depends = "depends_on:$dep\n" if defined($dep) && length($dep);

            print <<EOF;

    $desc
    $depends$case
    EOF
        }
    }

    sub output {
        return join(":", @_);
    }

    sub str {
        return '"' . $_[0] . '"';
    }
```

Signed-off-by: Tom Cosgrove <tom.cosgrove@arm.com>
Signed-off-by: Gabor Mezei <gabor.mezei@arm.com>
2023-03-31 16:16:05 +02:00
..
helpers.function Fix build error in CI about test_fail_if_psa_leaking 2023-03-13 19:20:42 +08:00
host_test.function Switch to the new code style 2023-01-11 14:50:10 +01:00
main_test.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_aes.cbc.data
test_suite_aes.cfb.data
test_suite_aes.ecb.data Move copy-context testing to an auxiliary function 2023-03-16 14:42:39 +01:00
test_suite_aes.function Fix use of arithmetic on void* 2023-03-16 21:39:47 +01:00
test_suite_aes.ofb.data
test_suite_aes.rest.data
test_suite_aes.xts.data
test_suite_alignment.data Improve parsing of test data 2022-12-01 13:31:20 +00:00
test_suite_alignment.function Remove not-needed stdio include from tests 2023-01-20 14:04:48 +00:00
test_suite_aria.data
test_suite_aria.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_asn1parse.data Deprecate mbedtls_asn1_free_named_data() 2022-11-07 15:42:44 -05:00
test_suite_asn1parse.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_asn1write.data Fix copypasta in test data 2022-06-15 21:16:42 +02:00
test_suite_asn1write.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_base64.data
test_suite_base64.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_bignum.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_bignum.misc.data Move tests of random-in-range functions to their own suite 2022-12-06 22:50:11 +01:00
test_suite_bignum_core.function Add unit tests for mbedtls_mpi_core_mul() 2023-03-31 16:16:05 +02:00
test_suite_bignum_core.misc.data Add unit tests for mbedtls_mpi_core_mul() 2023-03-31 16:16:05 +02:00
test_suite_bignum_mod.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_bignum_mod.misc.data Add tests for mod_mul 2022-12-20 17:30:19 +01:00
test_suite_bignum_mod_raw.data Remove unneeded check 2023-01-23 19:05:37 +01:00
test_suite_bignum_mod_raw.function Rename variables to follow the naming convention 2023-01-24 14:21:10 +01:00
test_suite_bignum_random.data Fix representation of mod-random output 2022-12-20 20:28:02 +01:00
test_suite_bignum_random.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_camellia.data
test_suite_camellia.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_ccm.data Fix missing AES dependencies 2022-10-19 08:35:08 -04:00
test_suite_ccm.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_chacha20.data
test_suite_chacha20.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_chachapoly.data
test_suite_chachapoly.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_cipher.aes.data Fix test dependencies for cases that are PSA-based 2022-10-21 13:39:00 -04:00
test_suite_cipher.aria.data Fix missing padding dependencies 2022-10-19 08:35:08 -04:00
test_suite_cipher.camellia.data Fix missing padding dependencies 2022-10-19 08:35:08 -04:00
test_suite_cipher.ccm.data Fix test dependencies for cases that are PSA-based 2022-10-21 13:39:00 -04:00
test_suite_cipher.chacha20.data
test_suite_cipher.chachapoly.data
test_suite_cipher.des.data Fix missing padding dependencies 2022-10-19 08:35:08 -04:00
test_suite_cipher.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_cipher.gcm.data Fix test dependencies for cases that are PSA-based 2022-10-21 13:39:00 -04:00
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 Fix missing AES dependencies 2022-10-19 08:35:08 -04:00
test_suite_cmac.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_common.data Add tests for mbedtls_xor 2022-11-22 17:32:43 +00:00
test_suite_common.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_constant_time.data Test memcmp with differences starting after the first byte 2023-01-21 10:29:00 +00:00
test_suite_constant_time.function Fix warning with GCC 12 2023-02-21 16:31:56 +00:00
test_suite_constant_time_hmac.data SSL: use MD_CAN macros 2023-03-21 16:29:31 +01:00
test_suite_constant_time_hmac.function Remove legacy_or_psa.h 2023-03-21 16:29:31 +01:00
test_suite_ctr_drbg.data
test_suite_ctr_drbg.function Fix use of sizeof without brackets 2023-02-02 12:40:50 +00:00
test_suite_debug.data SSL: use MD_CAN macros 2023-03-21 16:29:31 +01:00
test_suite_debug.function Remove legacy_or_psa.h 2023-03-21 16:29:31 +01:00
test_suite_des.data
test_suite_des.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_dhm.data test_suite_dhm: Add missing dependencies on MBEDTLS_PEM_PARSE_C 2022-10-11 20:57:21 +02:00
test_suite_dhm.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_ecdh.data
test_suite_ecdh.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_ecdsa.data OID + misc crypto: use MD_CAN and fix failures 2023-03-21 16:28:00 +01:00
test_suite_ecdsa.function Enable ECDSA-det in driver-only hashes component 2023-03-21 16:42:06 +01:00
test_suite_ecjpake.data mbedtls_ecp_point_read_binary from compressed fmt 2022-10-03 05:43:27 -04:00
test_suite_ecjpake.function Remove legacy_or_psa.h 2023-03-21 16:29:31 +01:00
test_suite_ecp.data ecp_curves: Minor refactoring. 2023-02-20 13:53:06 +00:00
test_suite_ecp.function ecp_mod_p224_raw: Added MBEDTLS_ECP_DP_SECP224R1_ENABLED as a dependency 2023-03-27 18:19:22 +01:00
test_suite_entropy.data
test_suite_entropy.function Use MD-light in entropy.c 2023-03-24 10:43:40 +01:00
test_suite_error.data
test_suite_error.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_gcm.aes128_de.data
test_suite_gcm.aes128_en.data Fix missing AES dependencies 2022-10-19 08:35:08 -04:00
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 Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_gcm.misc.data
test_suite_hkdf.data Enable HKDF in driver-only hashes test 2023-03-21 16:42:05 +01:00
test_suite_hkdf.function Enable HKDF in driver-only hashes test 2023-03-21 16:42:05 +01:00
test_suite_hmac_drbg.function Enable HMAC-DRBG in driver-only hashes component 2023-03-21 16:42:05 +01:00
test_suite_hmac_drbg.misc.data Enable HMAC-DRBG in driver-only hashes component 2023-03-21 16:42:05 +01:00
test_suite_hmac_drbg.no_reseed.data Enable HMAC-DRBG in driver-only hashes component 2023-03-21 16:42:05 +01:00
test_suite_hmac_drbg.nopr.data Enable HMAC-DRBG in driver-only hashes component 2023-03-21 16:42:05 +01:00
test_suite_hmac_drbg.pr.data Enable HMAC-DRBG in driver-only hashes component 2023-03-21 16:42:05 +01:00
test_suite_lmots.data Fix file names in reproduction instructions in test data 2022-10-13 20:48:15 +02:00
test_suite_lmots.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_lms.data Fix instructions and test data for pyhsslms interop tests 2022-10-13 20:45:05 +02:00
test_suite_lms.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_md.data MD: use MD_CAN in test suite and check for parity 2023-03-21 16:29:31 +01:00
test_suite_md.function Make MD_PSA_INIT/DONE available to all suites 2023-03-21 16:28:00 +01:00
test_suite_md.psa.data MD: use MD_CAN in test suite and check for parity 2023-03-21 16:29:31 +01:00
test_suite_mdx.data
test_suite_mdx.function Fix use of sizeof without brackets 2023-02-02 12:40:50 +00:00
test_suite_memory_buffer_alloc.data
test_suite_memory_buffer_alloc.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_mps.data
test_suite_mps.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_net.data
test_suite_net.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_nist_kw.data
test_suite_nist_kw.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_oid.data OID + misc crypto: use MD_CAN and fix failures 2023-03-21 16:28:00 +01:00
test_suite_oid.function Remove legacy_or_psa.h 2023-03-21 16:29:31 +01:00
test_suite_pem.data PEM: use MD_CAN macros 2023-03-21 16:28:00 +01:00
test_suite_pem.function Remove legacy_or_psa.h 2023-03-21 16:29:31 +01:00
test_suite_pk.data PK: use MD_CAN macros 2023-03-21 16:28:00 +01:00
test_suite_pk.function Disable built-in SHA-256 in accel_hash too 2023-03-24 10:43:40 +01:00
test_suite_pkcs1_v15.data RSA: use MD_CAN macros 2023-03-21 16:28:00 +01:00
test_suite_pkcs1_v15.function Remove legacy_or_psa.h 2023-03-21 16:29:31 +01:00
test_suite_pkcs1_v21.data RSA: use MD_CAN macros 2023-03-21 16:28:00 +01:00
test_suite_pkcs1_v21.function Remove legacy_or_psa.h 2023-03-21 16:29:31 +01:00
test_suite_pkcs5.data PKCS5: use MD_CAN macros 2023-03-21 16:28:00 +01:00
test_suite_pkcs5.function Remove legacy_or_psa.h 2023-03-21 16:29:31 +01:00
test_suite_pkcs7.data X.509: use MD_CAN macros 2023-03-21 16:28:00 +01:00
test_suite_pkcs7.function X.509: fix test failures 2023-03-21 16:28:00 +01:00
test_suite_pkcs12.data PKCS12: use MD_CAN macros 2023-03-21 16:28:00 +01:00
test_suite_pkcs12.function Remove legacy_or_psa.h 2023-03-21 16:29:31 +01:00
test_suite_pkparse.data PK: use MD_CAN macros 2023-03-21 16:28:00 +01:00
test_suite_pkparse.function Remove legacy_or_psa.h 2023-03-21 16:29:31 +01:00
test_suite_pkwrite.data
test_suite_pkwrite.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_platform_util.data Add tests that cover msan explicit_bzero issue 2023-03-16 12:02:15 +00:00
test_suite_platform_util.function Add explanatory comment 2023-03-16 13:43:32 +00:00
test_suite_poly1305.data
test_suite_poly1305.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_psa_crypto.data Remove now-spurious dependencies 2023-03-21 16:42:06 +01:00
test_suite_psa_crypto.function Remove legacy_or_psa.h 2023-03-21 16:29:31 +01:00
test_suite_psa_crypto_attributes.data
test_suite_psa_crypto_attributes.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_psa_crypto_driver_wrappers.data Merge pull request #6567 from mprse/ecjpake-driver-dispatch 2023-03-09 19:23:05 +00:00
test_suite_psa_crypto_driver_wrappers.function Fix driver_wrappers test 2023-03-24 10:43:40 +01:00
test_suite_psa_crypto_entropy.data Redo of PR#5345. Fixed spelling and typographical errors found by CodeSpell. 2022-05-11 21:25:51 +01:00
test_suite_psa_crypto_entropy.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_psa_crypto_generate_key.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_psa_crypto_hash.data
test_suite_psa_crypto_hash.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_psa_crypto_init.data
test_suite_psa_crypto_init.function Use MD-light in entropy.c 2023-03-24 10:43:40 +01:00
test_suite_psa_crypto_metadata.data Add metadata test case for PSA_ALG_TLS12_ECJPAKE_TO_PMS 2023-01-19 12:11:20 +01:00
test_suite_psa_crypto_metadata.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_psa_crypto_not_supported.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_psa_crypto_not_supported.misc.data
test_suite_psa_crypto_op_fail.function Enable all keys for interruptible op fail tests 2023-03-02 16:03:43 +00:00
test_suite_psa_crypto_op_fail.misc.data Test attempts to use a public key for a private-key operation 2022-04-05 15:02:44 +02:00
test_suite_psa_crypto_pake.data rework psa_pake_set_role to be consistent with requirements and adapt tests 2023-03-12 16:59:28 +01:00
test_suite_psa_crypto_pake.function Fix documentation and tests 2023-03-14 11:49:36 +01:00
test_suite_psa_crypto_persistent_key.data test: remove dependencies on PK_WRITE and PK_PARSE from test_suite_psa_crypto suites 2023-03-08 11:03:09 +01:00
test_suite_psa_crypto_persistent_key.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_psa_crypto_se_driver_hal.data test: driver-only: fix disparities in psa_crypto_se_driver_hal 2023-01-25 11:30:46 +01:00
test_suite_psa_crypto_se_driver_hal.function Manually fix two remaining instances of old macros 2023-03-24 10:43:40 +01:00
test_suite_psa_crypto_se_driver_hal_mocks.data
test_suite_psa_crypto_se_driver_hal_mocks.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_psa_crypto_slot_management.data
test_suite_psa_crypto_slot_management.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_psa_crypto_storage_format.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_psa_crypto_storage_format.misc.data
test_suite_psa_its.data
test_suite_psa_its.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_random.data Fix instances of old feature macros being used 2023-03-24 10:43:40 +01:00
test_suite_random.function Fix failures in test_suite_random 2023-03-24 10:43:40 +01:00
test_suite_rsa.data RSA: use MD_CAN macros 2023-03-21 16:28:00 +01:00
test_suite_rsa.function Remove legacy_or_psa.h 2023-03-21 16:29:31 +01:00
test_suite_shax.data test: sha: test SHA224 and SHA256 separately 2022-12-14 10:58:02 +01:00
test_suite_shax.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_ssl.data test_suite_ssl: remove redundant dependencies when the key exchange is specified 2023-03-22 10:40:05 +01:00
test_suite_ssl.function Remove legacy_or_psa.h 2023-03-21 16:29:31 +01:00
test_suite_timing.data Remove the dependency on MBEDTLS_HAVE_TIME from MBEDTLS_TIMING_C 2022-04-08 04:41:42 -04:00
test_suite_timing.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_version.data Bump library, libcrypto and libx509 versions 2023-03-23 10:57:39 +00:00
test_suite_version.function Switch to the new code style 2023-01-11 14:50:10 +01:00
test_suite_x509parse.data X.509: use MD_CAN macros 2023-03-21 16:28:00 +01:00
test_suite_x509parse.function Remove legacy_or_psa.h 2023-03-21 16:29:31 +01:00
test_suite_x509write.data X.509: use MD_CAN macros 2023-03-21 16:28:00 +01:00
test_suite_x509write.function Remove legacy_or_psa.h 2023-03-21 16:29:31 +01:00