1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202
|
include(AwsLibFuzzer)
include(AwsTestHarness)
enable_testing()
file(GLOB TEST_HDRS "*.h")
file(GLOB TEST_SRC "*.c")
file(GLOB TESTS ${TEST_HDRS} ${TEST_SRC})
add_test_case(sha256_nist_test_case_1)
add_test_case(sha256_nist_test_case_2)
add_test_case(sha256_nist_test_case_3)
add_test_case(sha256_nist_test_case_4)
add_test_case(sha256_nist_test_case_5)
add_test_case(sha256_nist_test_case_5_truncated)
add_test_case(sha256_nist_test_case_6)
add_test_case(sha256_test_invalid_buffer)
add_test_case(sha256_test_oneshot)
add_test_case(sha256_test_invalid_state)
add_test_case(sha256_test_extra_buffer_space)
add_test_case(sha512_nist_test_case_1)
add_test_case(sha512_nist_test_case_2)
add_test_case(sha512_nist_test_case_3)
add_test_case(sha512_nist_test_case_4)
add_test_case(sha512_nist_test_case_5)
add_test_case(sha512_nist_test_case_5_truncated)
add_test_case(sha512_nist_test_case_6)
add_test_case(sha512_test_invalid_buffer)
add_test_case(sha512_test_oneshot)
add_test_case(sha512_test_invalid_state)
add_test_case(sha512_test_extra_buffer_space)
add_test_case(sha1_nist_test_case_1)
add_test_case(sha1_nist_test_case_2)
add_test_case(sha1_nist_test_case_3)
add_test_case(sha1_nist_test_case_4)
add_test_case(sha1_nist_test_case_5)
add_test_case(sha1_nist_test_case_5_truncated)
add_test_case(sha1_nist_test_case_6)
add_test_case(sha1_test_invalid_buffer)
add_test_case(sha1_test_oneshot)
add_test_case(sha1_test_invalid_state)
add_test_case(sha1_test_extra_buffer_space)
add_test_case(md5_rfc1321_test_case_1)
add_test_case(md5_rfc1321_test_case_2)
add_test_case(md5_rfc1321_test_case_3)
add_test_case(md5_rfc1321_test_case_4)
add_test_case(md5_rfc1321_test_case_5)
add_test_case(md5_rfc1321_test_case_6)
add_test_case(md5_rfc1321_test_case_7)
add_test_case(md5_rfc1321_test_case_7_truncated)
add_test_case(md5_verify_known_collision)
add_test_case(md5_invalid_buffer_size)
add_test_case(md5_test_invalid_state)
add_test_case(md5_test_extra_buffer_space)
add_test_case(sha256_hmac_rfc4231_test_case_1)
add_test_case(sha256_hmac_rfc4231_test_case_2)
add_test_case(sha256_hmac_rfc4231_test_case_3)
add_test_case(sha256_hmac_rfc4231_test_case_4)
add_test_case(sha256_hmac_rfc4231_test_case_5)
add_test_case(sha256_hmac_rfc4231_test_case_6)
add_test_case(sha256_hmac_rfc4231_test_case_7)
add_test_case(sha256_hmac_test_oneshot)
add_test_case(sha256_hmac_test_invalid_buffer)
add_test_case(sha256_hmac_test_invalid_state)
add_test_case(sha256_hmac_test_extra_buffer_space)
add_test_case(sha512_hmac_rfc4231_test_case_1)
add_test_case(sha512_hmac_rfc4231_test_case_2)
add_test_case(sha512_hmac_rfc4231_test_case_3)
add_test_case(sha512_hmac_rfc4231_test_case_4)
add_test_case(sha512_hmac_rfc4231_test_case_5)
add_test_case(sha512_hmac_rfc4231_test_case_6)
add_test_case(sha512_hmac_rfc4231_test_case_7)
add_test_case(sha512_hmac_test_oneshot)
add_test_case(sha512_hmac_test_invalid_buffer)
add_test_case(sha512_hmac_test_invalid_state)
add_test_case(sha512_hmac_test_extra_buffer_space)
add_test_case(ecdsa_p256_test_pub_key_derivation)
add_test_case(ecdsa_p384_test_pub_key_derivation)
add_test_case(ecdsa_p256_test_known_signing_value)
add_test_case(ecdsa_p384_test_known_signing_value)
add_test_case(ecdsa_test_invalid_signature)
add_test_case(ecdsa_p256_test_key_gen)
add_test_case(ecdsa_p384_test_key_gen)
add_test_case(ecdsa_p256_test_key_gen_export)
add_test_case(ecdsa_p384_test_key_gen_export)
add_test_case(ecdsa_p256_test_import_asn1_key_pair)
add_test_case(ecdsa_p256_test_import_asn1_pkcs8_key_pair)
add_test_case(ecdsa_p384_test_import_asn1_key_pair)
add_test_case(ecdsa_test_import_asn1_key_pair_public_only)
add_test_case(ecdsa_test_import_asn1_key_pair_invalid_fails)
add_test_case(ecdsa_test_signature_format)
add_test_case(ecdsa_p256_test_small_coordinate_verification)
add_test_case(ecdsa_signature_encode_helper_roundtrip)
add_test_case(ecdsa_export_sec1_roundtrip)
add_test_case(ecdsa_export_pkcs8_roundtrip)
add_test_case(ecdsa_export_spki_roundtrip)
add_test_case(rsa_encryption_roundtrip_pkcs1_from_user)
add_test_case(rsa_encryption_roundtrip_oaep_sha256_from_user)
add_test_case(rsa_encryption_roundtrip_oaep_sha512_from_user)
add_test_case(rsa_signing_roundtrip_pkcs1_sha256_from_user)
add_test_case(rsa_signing_roundtrip_pss_sha256_from_user)
add_test_case(rsa_signing_roundtrip_pkcs1_sha1_from_user)
add_test_case(rsa_getters)
add_test_case(rsa_private_pkcs1_der_parsing)
add_test_case(rsa_public_pkcs1_der_parsing)
add_test_case(rsa_verify_signing_pkcs1_sha256)
add_test_case(rsa_verify_signing_pkcs1_sha1)
add_test_case(rsa_verify_signing_pss_sha256)
add_test_case(rsa_decrypt_pkcs1)
add_test_case(rsa_decrypt_oaep256)
add_test_case(rsa_decrypt_oaep512)
add_test_case(rsa_signing_mismatch_pkcs1_sha256)
add_test_case(rsa_signing_mismatch_pkcs1_sha1)
add_test_case(rsa_encryption_roundtrip_pkcs15_from_user_pkcs8)
add_test_case(aes_cbc_NIST_CBCGFSbox256_case_1)
add_test_case(aes_cbc_NIST_CBCVarKey256_case_254)
add_test_case(aes_cbc_NIST_CBCVarTxt256_case_110)
add_test_case(aes_cbc_NIST_CBCMMT256_case_4)
add_test_case(aes_cbc_NIST_CBCMMT256_case_9)
add_test_case(aes_cbc_test_with_generated_key_iv)
add_test_case(aes_cbc_validate_materials_fails)
add_test_case(aes_ctr_RFC3686_Case_7)
add_test_case(aes_ctr_RFC3686_Case_8)
add_test_case(aes_ctr_RFC3686_Case_9)
add_test_case(aes_ctr_test_with_generated_key_iv)
add_test_case(aes_ctr_validate_materials_fails)
add_test_case(gcm_NIST_gcmEncryptExtIV256_PTLen_128_Test_0)
add_test_case(gcm_NIST_gcmEncryptExtIV256_PTLen_104_Test_3)
add_test_case(gcm_NIST_gcmEncryptExtIV256_PTLen_256_Test_6)
add_test_case(gcm_NIST_gcmEncryptExtIV256_PTLen_408_Test_8)
add_test_case(gcm_256_KAT_1)
add_test_case(gcm_256_KAT_2)
add_test_case(gcm_256_KAT_3)
add_test_case(gcm_test_with_generated_key_iv)
add_test_case(aes_gcm_validate_materials_fails)
add_test_case(aes_keywrap_RFC3394_256BitKey256CekTestVector)
add_test_case(aes_keywrap_Rfc3394_256BitKey_TestIntegrityCheckFailed)
add_test_case(aes_keywrap_RFC3394_256BitKeyTestBadPayload)
add_test_case(aes_keywrap_RFC3394_256BitKey128BitCekTestVector)
add_test_case(aes_keywrap_RFC3394_256BitKey128BitCekIntegrityCheckFailedTestVector)
add_test_case(aes_keywrap_RFC3394_256BitKey128BitCekPayloadCheckFailedTestVector)
add_test_case(aes_keywrap_validate_materials_fails)
add_test_case(aes_test_input_too_large)
add_test_case(aes_test_encrypt_empty_input)
add_test_case(aes_test_empty_input_gcm_tag_corner_cases)
add_test_case(aes_test_gcm_tag_corner_cases)
add_test_case(aes_test_gcm_tag_large_input_corner_cases)
add_test_case(der_encode_integer)
add_test_case(der_encode_integer_zero)
add_test_case(der_encode_boolean)
add_test_case(der_encode_null)
add_test_case(der_encode_bit_string)
add_test_case(der_encode_octet_string)
add_test_case(der_encode_sequence)
add_test_case(der_encode_set)
add_test_case(der_decode_negative_int)
add_test_case(der_decode_positive_int)
add_test_case(der_decode_zero_int)
add_test_case(der_decode_bad_length)
add_test_case(der_decode_zero_length_int)
add_test_case(der_roundtrip_context_specific_tags)
add_test_case(der_decode_integer)
add_test_case(der_decode_integer_zero)
add_test_case(der_decode_boolean)
add_test_case(der_decode_null)
add_test_case(der_decode_bit_string)
add_test_case(der_decode_octet_string)
add_test_case(der_decode_sequence)
add_test_case(der_decode_set)
add_test_case(der_decode_key_pair)
add_test_case(ecc_key_pair_random_ref_count_test)
add_test_case(ecc_key_pair_public_ref_count_test)
add_test_case(ecc_key_pair_asn1_ref_count_test)
add_test_case(ecc_key_pair_private_ref_count_test)
add_test_case(ecc_key_gen_from_private_fuzz_test)
add_test_case(ed25519_key_pair_generate_test)
generate_test_driver(${PROJECT_NAME}-tests)
if (AWS_USE_LIBCRYPTO_TO_SUPPORT_ED25519_EVERYWHERE)
target_compile_definitions(${PROJECT_NAME}-tests PRIVATE -DAWS_USE_LIBCRYPTO_TO_SUPPORT_ED25519_EVERYWHERE)
endif()
# OpenBSD 7.4+ defaults to linking with --execute-only which is not always safe for AWS-LC.
# We have similar link flags in bindings, but in this case we need on the test executable,
# because ed25519 keygen is hitting the same issue
# (according to aws-lc huge tables in text section for ed25519 is the likely culprit)
if(CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
target_link_options(${PROJECT_NAME}-tests PRIVATE "-Wl,--no-execute-only")
endif()
|