mbedtls/tests/suites
Paul Elliott 5752b4b7d0 Add expected output for tests
Expected output generated by OpenSSL (see below) apart from the case
where both password and salt are either NULL or zero length, as OpenSSL
does not support this. For these test cases we have had to use our own
output as that which is expected. Code to generate test cases is as
follows:

 #include <openssl/pkcs12.h>
 #include <openssl/evp.h>
 #include <string.h>

int Keygen_Uni( const char * test_name, unsigned char *pass, int
    passlen, unsigned char *salt,
                    int saltlen, int id, int iter, int n,
                                    unsigned char *out, const EVP_MD
                                    *md_type )
{
   size_t index;

   printf( "%s\n", test_name );

   int ret = PKCS12_key_gen_uni( pass, passlen, salt, saltlen, id, iter,
                                        n, out, md_type );

   if( ret != 1 )
   {
         printf( "Key generation returned %d\n", ret );
      }
   else
   {
         for( index = 0; index < n; ++index )
         {
                  printf( "%02x", out[index] );
               }

         printf( "\n" );
      }

   printf( "\n" );

}

int main(void)
{
   unsigned char out_buf[48];
   unsigned char pass[64];
   int pass_len;
   unsigned char salt[64];
   int salt_len;

   /* If ID=1, then the pseudorandom bits being produced are to be used
      as key material for performing encryption or decryption.

            If ID=2, then the pseudorandom bits being produced are to be
            used as an IV (Initial Value) for encryption or decryption.

                  If ID=3, then the pseudorandom bits being produced are
                  to be used as an integrity key for MACing.
                     */

   int id = 1;
   int iter = 3;

   memset( out_buf, 0, sizeof( out_buf ) );
   memset( pass, 0, sizeof( pass ) );
   memset( salt, 0, sizeof( salt ) );

   Keygen_Uni( "Zero length pass and salt", pass, 0, salt, 0, id, iter,
       sizeof(out_buf),
                      out_buf, EVP_md5( ) );

   memset( out_buf, 0, sizeof( out_buf ) );

   Keygen_Uni( "NULL pass and salt", NULL, 0, NULL, 0, id, iter,
       sizeof(out_buf),
                      out_buf, EVP_md5( ) );

   memset( out_buf, 0, sizeof( out_buf ) );

   salt[0] = 0x01;
   salt[1] = 0x23;
   salt[2] = 0x45;
   salt[3] = 0x67;
   salt[4] = 0x89;
   salt[5] = 0xab;
   salt[6] = 0xcd;
   salt[7] = 0xef;

   Keygen_Uni( "Zero length pass", pass, 0, salt, 8, id, iter,
       sizeof(out_buf),
                      out_buf, EVP_md5( ) );

   memset( out_buf, 0, sizeof( out_buf ) );

   Keygen_Uni( "NULL pass", NULL, 0, salt, 8, id, iter, sizeof(out_buf),
                      out_buf, EVP_md5( ) );

   memset( out_buf, 0, sizeof( out_buf ) );
   memset( salt, 0, sizeof( salt ) );

   pass[0] = 0x01;
   pass[1] = 0x23;
   pass[2] = 0x45;
   pass[3] = 0x67;
   pass[4] = 0x89;
   pass[5] = 0xab;
   pass[6] = 0xcd;
   pass[7] = 0xef;

   Keygen_Uni( "Zero length salt", pass, 8, salt, 0, id, iter,
       sizeof(out_buf),
                      out_buf, EVP_md5( ) );

   memset( out_buf, 0, sizeof( out_buf ) );

   Keygen_Uni( "NULL salt", pass, 8, NULL, 0, id, iter, sizeof(out_buf),
                      out_buf, EVP_md5( ) );

   memset( out_buf, 0, sizeof( out_buf ) );

   salt[0] = 0x01;
   salt[1] = 0x23;
   salt[2] = 0x45;
   salt[3] = 0x67;
   salt[4] = 0x89;
   salt[5] = 0xab;
   salt[6] = 0xcd;
   salt[7] = 0xef;

   Keygen_Uni( "Valid pass and salt", pass, 8, salt, 8, id, iter,
       sizeof(out_buf),
                      out_buf, EVP_md5( ) );

   return 0;
}

Signed-off-by: Paul Elliott <paul.elliott@arm.com>
2021-12-13 11:15:28 +00:00
..
helpers.function Make {USE_,}PSA_{INIT,DONE} available in all test suites 2021-02-22 19:08:14 +01:00
host_test.function Show values when TEST_EQUAL fails 2021-10-22 11:06:52 +02:00
main_test.function Rewrite error addition interface 2021-04-13 15:24:25 +01:00
test_suite_aes.cbc.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_aes.cfb.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_aes.ecb.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_aes.function Catch failures of AES or DES operations 2021-09-29 20:40:31 +02:00
test_suite_aes.ofb.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_aes.rest.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_aes.xts.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_arc4.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_arc4.function tests: suites: Remove hex in name of variables of type data_t 2020-07-01 17:10:15 +02:00
test_suite_aria.data aria: Remove duplicate test cases 2019-09-20 15:58:27 +02:00
test_suite_aria.function tests: Replace "TEST_ASSERT(!memcmp ...)" by ASSERT_COMPARE 2020-07-30 14:18:02 +02:00
test_suite_asn1parse.data Merge pull request #350 from gilles-peskine-arm/asn1-tests-parse_prefixes-trailing_garbage 2020-02-05 15:40:22 +00:00
test_suite_asn1parse.function Use mbedtls_test_read_mpi in test suites 2021-06-22 12:39:17 +02:00
test_suite_asn1write.data Add test cases for ASN.1 ENUMERATED tag 2019-10-31 19:17:36 +02:00
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 Move the list of Base64 digits out of the test data 2021-10-25 21:24:23 +02:00
test_suite_base64.function Delete base64_invasive.h due to functions are moved to the constant-time module 2021-12-08 16:20:27 +01:00
test_suite_blowfish.data Uniquify test case descriptions 2019-09-20 15:59:31 +02:00
test_suite_blowfish.function tests: suites: Remove hex in name of variables of type data_t 2020-07-01 17:10:15 +02:00
test_suite_camellia.data Uniquify test case descriptions 2019-09-20 15:59:31 +02:00
test_suite_camellia.function tests: suites: Remove hex in name of variables of type data_t 2020-07-01 17:10:15 +02:00
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 Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_chacha20.function tests: Replace "TEST_ASSERT(!memcmp ...)" by ASSERT_COMPARE 2020-07-30 14:18:02 +02:00
test_suite_chachapoly.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_chachapoly.function tests: Get rid of mbedtls_test_unhexify() in unit test code 2020-06-26 10:45:16 +02:00
test_suite_cipher.aes.data Address review comments 2021-09-30 12:29:27 +02:00
test_suite_cipher.arc4.data Uniquify test case descriptions 2019-09-20 15:59:31 +02:00
test_suite_cipher.aria.data Add negative tests for empty buffer decoding for certain ciphers 2019-07-29 17:46:29 +02:00
test_suite_cipher.blowfish.data Uniquify test case descriptions 2019-09-20 15:59:31 +02:00
test_suite_cipher.camellia.data Increase test coverage by adding AES and CAMELLIA empty buffer tests 2020-03-24 13:18:58 -04:00
test_suite_cipher.ccm.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_cipher.chacha20.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_cipher.chachapoly.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_cipher.des.data Uniquify test case descriptions 2019-09-20 15:59:31 +02:00
test_suite_cipher.function Don't fail until everything is initialized 2021-12-10 14:45:41 +01:00
test_suite_cipher.gcm.data Fix dependency in AES GCM test case 2020-06-26 22:40:58 +02:00
test_suite_cipher.misc.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_cipher.nist_kw.data Test data: replace "::" by ":" 2019-09-20 16:01:59 +02:00
test_suite_cipher.null.data Uniquify test case descriptions 2019-09-20 15:59:31 +02:00
test_suite_cipher.padding.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_cmac.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_cmac.function Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_ctr_drbg.data Remove selftest dependency in the test suite 2019-11-21 13:49:20 +01:00
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 Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_des.function Catch failures of AES or DES operations 2021-09-29 20:40:31 +02:00
test_suite_dhm.data Unify G=1 and G=-1 test cases 2021-06-22 12:39:17 +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 Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
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 tests: Reformating due to rnd_* renaming 2020-06-12 14:33:08 +02:00
test_suite_ecp.data Fix ecp_check_pub() test cases 2021-06-25 14:59:15 +01:00
test_suite_ecp.function Merge remote-tracking branch 'restricted/development_2.x-restricted' into mbedtls-2.27.0rc0-pr 2021-07-01 17:26:38 +01: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 Uniquify test case descriptions 2019-09-20 15:59:31 +02:00
test_suite_gcm.aes128_en.data Uniquify test case descriptions 2019-09-20 15:59:31 +02:00
test_suite_gcm.aes192_de.data Uniquify test case descriptions 2019-09-20 15:59:31 +02:00
test_suite_gcm.aes192_en.data Uniquify test case descriptions 2019-09-20 15:59:31 +02:00
test_suite_gcm.aes256_de.data Uniquify test case descriptions 2019-09-20 15:59:31 +02:00
test_suite_gcm.aes256_en.data Uniquify test case descriptions 2019-09-20 15:59:31 +02:00
test_suite_gcm.camellia.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_gcm.function tests: suites: Remove hex in name of variables of type data_t 2020-07-01 17:10:15 +02:00
test_suite_gcm.misc.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_hkdf.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_hkdf.function tests: Replace "TEST_ASSERT(!memcmp ...)" by ASSERT_COMPARE 2020-07-30 14:18:02 +02:00
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 Declare test dependencies on !SHA512_NO_SHA384 2020-01-06 11:40:23 +01:00
test_suite_hmac_drbg.no_reseed.data Declare test dependencies on !SHA512_NO_SHA384 2020-01-06 11:40:23 +01:00
test_suite_hmac_drbg.nopr.data Declare test dependencies on !SHA512_NO_SHA384 2020-01-06 11:40:23 +01:00
test_suite_hmac_drbg.pr.data Declare test dependencies on !SHA512_NO_SHA384 2020-01-06 11:40:23 +01:00
test_suite_md.data Declare test dependencies on !SHA512_NO_SHA384 2020-01-06 11:40:23 +01:00
test_suite_md.function tests: suites: Remove hex in name of variables of type data_t 2020-07-01 17:10:15 +02:00
test_suite_mdx.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_mdx.function tests: suites: Remove hex in name of variables of type data_t 2020-07-01 17:10:15 +02:00
test_suite_memory_buffer_alloc.data More accurate test case description 2019-10-31 15:07:35 +01:00
test_suite_memory_buffer_alloc.function Enable more test cases without MBEDTLS_MEMORY_DEBUG 2019-10-31 15:07:45 +01:00
test_suite_mpi.data Fix copypasta in test data 2021-06-22 12:39:17 +02:00
test_suite_mpi.function Fix copypasta in test function argument name 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 Fix test code to can be built on alpine 2021-09-23 20:58:45 +09:00
test_suite_nist_kw.data Uniquify test case descriptions 2019-09-20 15:59:31 +02:00
test_suite_nist_kw.function tests: Get rid of mbedtls_test_unhexify() in unit test code 2020-06-26 10:45:16 +02:00
test_suite_oid.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_oid.function Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_pem.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_pem.function Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_pk.data Rename ECC Family Macros According to PSA Spec 2020-07-02 16:59:30 +01:00
test_suite_pk.function test_suite_pk.function: Do not use MD_MAX_SIZE 2021-06-29 09:31:06 -04:00
test_suite_pkcs1_v15.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
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 Declare test dependencies on !SHA512_NO_SHA384 2020-01-06 11:40:23 +01:00
test_suite_pkcs5.function tests: Reformating due to hexcmp() renaming 2020-06-12 14:33:08 +02:00
test_suite_pkcs12.data Add expected output for tests 2021-12-13 11:15:28 +00:00
test_suite_pkcs12.function Add expected output for tests 2021-12-13 11:15:28 +00:00
test_suite_pkparse.data Remove spurious dependencies on PEM 2021-05-31 20:26:12 +02:00
test_suite_pkparse.function Clean up test function pk_parse_key 2020-02-18 10:18:43 +01:00
test_suite_pkwrite.data pk_write test cases with short/long private key 2019-11-05 15:32:53 +01:00
test_suite_pkwrite.function Remove Extraneous bytes from buffer post pem write 2020-12-07 17:29:42 +00:00
test_suite_poly1305.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_poly1305.function tests: Replace "TEST_ASSERT(!memcmp ...)" by ASSERT_COMPARE 2020-07-30 14:18:02 +02:00
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 tests: psa: Fix the dependencies on some driver wrappers fallback tests 2021-11-30 13:24:47 +01:00
test_suite_psa_crypto_driver_wrappers.function tests: psa: Remove wrong test function dependencies 2021-11-30 13:24:47 +01: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_generate_key.function Adapt generate_key() test code to mbedTLS standards 2021-11-09 12:01:19 +01:00
test_suite_psa_crypto_generate_key.generated.data Add generated test data 2021-11-09 14:41:28 +01: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 CTR_DRBG: define a constant for the default entropy nonce length 2019-10-23 19:47:05 +02:00
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 Correct block size for MD2 2021-11-03 13:19:02 +01:00
test_suite_psa_crypto_metadata.function Fix test bug: some classification flags were not tested 2021-11-03 14:29:20 +01:00
test_suite_psa_crypto_not_supported.function Remove key generation when given argument is invalid from NotSupported class 2021-11-09 11:55:58 +01:00
test_suite_psa_crypto_not_supported.generated.data Add generated test data 2021-11-09 14:41:28 +01: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 Add negative tests for psa_destroy_key 2021-05-28 12:53:15 +02:00
test_suite_psa_crypto_persistent_key.function Add negative tests for psa_destroy_key 2021-05-28 12:53:15 +02:00
test_suite_psa_crypto_se_driver_hal_mocks.data Update SE support to pass a location when registering a driver 2020-05-11 11:15:26 +02:00
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 Add ARIA to the PSA API 2021-10-08 18:28:15 +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 Remove dependency of builtin keys on storage 2021-09-11 22:31:06 +05:30
test_suite_psa_crypto_slot_management.function Rename function to conform to the library 2021-06-28 15:37:36 +02:00
test_suite_psa_crypto_storage_format.current.data Merge pull request #5117 from gilles-peskine-arm/psa-rsa-pss_any_salt-2.x 2021-10-29 16:36:46 +02:00
test_suite_psa_crypto_storage_format.function Check that attempting to destroy a read-only key fails 2021-05-28 12:53:15 +02:00
test_suite_psa_crypto_storage_format.misc.data Remove obsolete MBEDTLS_xxx dependencies 2021-07-21 19:26:50 +02:00
test_suite_psa_crypto_storage_format.v0.data Merge pull request #5117 from gilles-peskine-arm/psa-rsa-pss_any_salt-2.x 2021-10-29 16:36:46 +02:00
test_suite_psa_crypto.data tests: psa: Add dependencies on built-in hash 2021-11-30 14:49:19 +01:00
test_suite_psa_crypto.function Fix derive_input test ignoring parameter 2021-11-17 10:02:52 +00: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 RSA tests with message=0 2021-06-22 12:39:17 +02:00
test_suite_rsa.function Add RSA tests with message=0 2021-06-22 12:39:17 +02:00
test_suite_shax.data Declare test dependencies on !SHA512_NO_SHA384 2020-01-06 11:40:23 +01:00
test_suite_shax.function tests: suites: Remove hex in name of variables of type data_t 2020-07-01 17:10:15 +02:00
test_suite_ssl.data tests: ssl: Add misssing dependencies on SHA-1 2021-11-30 13:24:47 +01:00
test_suite_ssl.function Fix compilation errors. 2021-11-25 18:08:23 +00:00
test_suite_timing.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_timing.function Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_version.data Bump Library Version Number 2021-07-01 17:52:07 +01:00
test_suite_version.function Fix GCC format-signedness warnings 2020-04-22 16:01:48 +02:00
test_suite_x509parse.data tests: Fix x509parse test dependency 2021-11-30 13:24:47 +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 Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_xtea.function tests: suites: Remove hex in name of variables of type data_t 2020-07-01 17:10:15 +02:00