diff --git a/CHANGES b/CHANGES index 237234db9e..99172adc52 100644 --- a/CHANGES +++ b/CHANGES @@ -4,6 +4,12 @@ Changes between 1.0.1 and 1.1.0 [xx XXX xxxx] + *) Add experimental option FIPSSYMS to give all symbols in + fipscanister.o and FIPS or fips prefix. This will avoid + conflicts with future versions of OpenSSL. Only works for + no-asm at present. + [Steve Henson] + *) Add selftest checks and algorithm block of non-fips algorithms in FIPS mode. Remove DES2 from selftests. [Steve Henson] diff --git a/fips/Makefile b/fips/Makefile index 84b32cacb0..1cbf9dc0e3 100644 --- a/fips/Makefile +++ b/fips/Makefile @@ -49,7 +49,7 @@ FIPS_OBJ_LISTS=sha/lib hmac/lib rand/lib des/lib aes/lib dsa/lib rsa/lib \ SRC= $(LIBSRC) -EXHEADER=fips.h fipshacks.h +EXHEADER=fips.h fipssyms.h HEADER=$(EXHEADER) fips_utl.h fips_locl.h EXE=fipsld diff --git a/fips/des/fips_desmovs.c b/fips/des/fips_desmovs.c index eab761ced9..16b8dc1936 100644 --- a/fips/des/fips_desmovs.c +++ b/fips/des/fips_desmovs.c @@ -66,6 +66,7 @@ #include #include #include +#include #include #include #include diff --git a/fips/fips.c b/fips/fips.c index ac4313f965..6b5e4d4ccb 100644 --- a/fips/fips.c +++ b/fips/fips.c @@ -49,6 +49,7 @@ #define OPENSSL_FIPSAPI +#include #include #include #include diff --git a/fips/fipssyms.h b/fips/fipssyms.h new file mode 100644 index 0000000000..64066d980d --- /dev/null +++ b/fips/fipssyms.h @@ -0,0 +1,553 @@ +#define AES_cbc_encrypt FIPS_aes_cbc_encrypt +#define AES_cfb128_encrypt FIPS_aes_cfb128_encrypt +#define AES_cfb1_encrypt FIPS_aes_cfb1_encrypt +#define AES_cfb8_encrypt FIPS_aes_cfb8_encrypt +#define AES_decrypt FIPS_aes_decrypt +#define AES_ecb_encrypt FIPS_aes_ecb_encrypt +#define AES_encrypt FIPS_aes_encrypt +#define AES_ofb128_encrypt FIPS_aes_ofb128_encrypt +#define AES_set_decrypt_key FIPS_aes_set_decrypt_key +#define AES_set_encrypt_key FIPS_aes_set_encrypt_key +#define BN_BLINDING_convert FIPS_bn_blinding_convert +#define BN_BLINDING_convert_ex FIPS_bn_blinding_convert_ex +#define BN_BLINDING_create_param FIPS_bn_blinding_create_param +#define BN_BLINDING_free FIPS_bn_blinding_free +#define BN_BLINDING_get_flags FIPS_bn_blinding_get_flags +#define BN_BLINDING_invert FIPS_bn_blinding_invert +#define BN_BLINDING_invert_ex FIPS_bn_blinding_invert_ex +#define BN_BLINDING_new FIPS_bn_blinding_new +#define BN_BLINDING_set_flags FIPS_bn_blinding_set_flags +#define BN_BLINDING_thread_id FIPS_bn_blinding_thread_id +#define BN_BLINDING_update FIPS_bn_blinding_update +#define BN_CTX_end FIPS_bn_ctx_end +#define BN_CTX_free FIPS_bn_ctx_free +#define BN_CTX_get FIPS_bn_ctx_get +#define BN_CTX_new FIPS_bn_ctx_new +#define BN_CTX_start FIPS_bn_ctx_start +#define BN_GENCB_call FIPS_bn_gencb_call +#define BN_GF2m_add FIPS_bn_gf2m_add +#define BN_GF2m_arr2poly FIPS_bn_gf2m_arr2poly +#define BN_GF2m_mod FIPS_bn_gf2m_mod +#define BN_GF2m_mod_arr FIPS_bn_gf2m_mod_arr +#define BN_GF2m_mod_div FIPS_bn_gf2m_mod_div +#define BN_GF2m_mod_div_arr FIPS_bn_gf2m_mod_div_arr +#define BN_GF2m_mod_exp FIPS_bn_gf2m_mod_exp +#define BN_GF2m_mod_exp_arr FIPS_bn_gf2m_mod_exp_arr +#define BN_GF2m_mod_inv FIPS_bn_gf2m_mod_inv +#define BN_GF2m_mod_inv_arr FIPS_bn_gf2m_mod_inv_arr +#define BN_GF2m_mod_mul FIPS_bn_gf2m_mod_mul +#define BN_GF2m_mod_mul_arr FIPS_bn_gf2m_mod_mul_arr +#define BN_GF2m_mod_solve_quad FIPS_bn_gf2m_mod_solve_quad +#define BN_GF2m_mod_solve_quad_arr FIPS_bn_gf2m_mod_solve_quad_arr +#define BN_GF2m_mod_sqr FIPS_bn_gf2m_mod_sqr +#define BN_GF2m_mod_sqr_arr FIPS_bn_gf2m_mod_sqr_arr +#define BN_GF2m_mod_sqrt FIPS_bn_gf2m_mod_sqrt +#define BN_GF2m_mod_sqrt_arr FIPS_bn_gf2m_mod_sqrt_arr +#define BN_GF2m_poly2arr FIPS_bn_gf2m_poly2arr +#define BN_MONT_CTX_copy FIPS_bn_mont_ctx_copy +#define BN_MONT_CTX_free FIPS_bn_mont_ctx_free +#define BN_MONT_CTX_init FIPS_bn_mont_ctx_init +#define BN_MONT_CTX_new FIPS_bn_mont_ctx_new +#define BN_MONT_CTX_set FIPS_bn_mont_ctx_set +#define BN_MONT_CTX_set_locked FIPS_bn_mont_ctx_set_locked +#define BN_RECP_CTX_free FIPS_bn_recp_ctx_free +#define BN_RECP_CTX_init FIPS_bn_recp_ctx_init +#define BN_RECP_CTX_new FIPS_bn_recp_ctx_new +#define BN_RECP_CTX_set FIPS_bn_recp_ctx_set +#define BN_X931_derive_prime_ex FIPS_bn_x931_derive_prime_ex +#define BN_X931_generate_Xpq FIPS_bn_x931_generate_xpq +#define BN_X931_generate_prime_ex FIPS_bn_x931_generate_prime_ex +#define BN_add FIPS_bn_add +#define BN_add_word FIPS_bn_add_word +#define BN_bin2bn FIPS_bn_bin2bn +#define BN_bn2bin FIPS_bn_bn2bin +#define BN_bntest_rand FIPS_bn_bntest_rand +#define BN_clear FIPS_bn_clear +#define BN_clear_bit FIPS_bn_clear_bit +#define BN_clear_free FIPS_bn_clear_free +#define BN_cmp FIPS_bn_cmp +#define BN_copy FIPS_bn_copy +#define BN_div FIPS_bn_div +#define BN_div_recp FIPS_bn_div_recp +#define BN_div_word FIPS_bn_div_word +#define BN_dup FIPS_bn_dup +#define BN_exp FIPS_bn_exp +#define BN_free FIPS_bn_free +#define BN_from_montgomery FIPS_bn_from_montgomery +#define BN_gcd FIPS_bn_gcd +#define BN_generate_prime_ex FIPS_bn_generate_prime_ex +#define BN_get0_nist_prime_192 FIPS_bn_get0_nist_prime_192 +#define BN_get0_nist_prime_224 FIPS_bn_get0_nist_prime_224 +#define BN_get0_nist_prime_256 FIPS_bn_get0_nist_prime_256 +#define BN_get0_nist_prime_384 FIPS_bn_get0_nist_prime_384 +#define BN_get0_nist_prime_521 FIPS_bn_get0_nist_prime_521 +#define BN_get_word FIPS_bn_get_word +#define BN_init FIPS_bn_init +#define BN_is_bit_set FIPS_bn_is_bit_set +#define BN_is_prime_ex FIPS_bn_is_prime_ex +#define BN_is_prime_fasttest_ex FIPS_bn_is_prime_fasttest_ex +#define BN_lshift FIPS_bn_lshift +#define BN_lshift1 FIPS_bn_lshift1 +#define BN_mask_bits FIPS_bn_mask_bits +#define BN_mod_add FIPS_bn_mod_add +#define BN_mod_add_quick FIPS_bn_mod_add_quick +#define BN_mod_exp FIPS_bn_mod_exp +#define BN_mod_exp2_mont FIPS_bn_mod_exp2_mont +#define BN_mod_exp_mont FIPS_bn_mod_exp_mont +#define BN_mod_exp_mont_consttime FIPS_bn_mod_exp_mont_consttime +#define BN_mod_exp_mont_word FIPS_bn_mod_exp_mont_word +#define BN_mod_exp_recp FIPS_bn_mod_exp_recp +#define BN_mod_exp_simple FIPS_bn_mod_exp_simple +#define BN_mod_inverse FIPS_bn_mod_inverse +#define BN_mod_lshift FIPS_bn_mod_lshift +#define BN_mod_lshift1 FIPS_bn_mod_lshift1 +#define BN_mod_lshift1_quick FIPS_bn_mod_lshift1_quick +#define BN_mod_lshift_quick FIPS_bn_mod_lshift_quick +#define BN_mod_mul FIPS_bn_mod_mul +#define BN_mod_mul_montgomery FIPS_bn_mod_mul_montgomery +#define BN_mod_mul_reciprocal FIPS_bn_mod_mul_reciprocal +#define BN_mod_sqr FIPS_bn_mod_sqr +#define BN_mod_sub FIPS_bn_mod_sub +#define BN_mod_sub_quick FIPS_bn_mod_sub_quick +#define BN_mod_word FIPS_bn_mod_word +#define BN_mul FIPS_bn_mul +#define BN_mul_word FIPS_bn_mul_word +#define BN_new FIPS_bn_new +#define BN_nist_mod_192 FIPS_bn_nist_mod_192 +#define BN_nist_mod_224 FIPS_bn_nist_mod_224 +#define BN_nist_mod_256 FIPS_bn_nist_mod_256 +#define BN_nist_mod_384 FIPS_bn_nist_mod_384 +#define BN_nist_mod_521 FIPS_bn_nist_mod_521 +#define BN_nist_mod_func FIPS_bn_nist_mod_func +#define BN_nnmod FIPS_bn_nnmod +#define BN_num_bits FIPS_bn_num_bits +#define BN_num_bits_word FIPS_bn_num_bits_word +#define BN_pseudo_rand FIPS_bn_pseudo_rand +#define BN_pseudo_rand_range FIPS_bn_pseudo_rand_range +#define BN_rand FIPS_bn_rand +#define BN_rand_range FIPS_bn_rand_range +#define BN_reciprocal FIPS_bn_reciprocal +#define BN_rshift FIPS_bn_rshift +#define BN_rshift1 FIPS_bn_rshift1 +#define BN_set_bit FIPS_bn_set_bit +#define BN_set_negative FIPS_bn_set_negative +#define BN_set_word FIPS_bn_set_word +#define BN_sqr FIPS_bn_sqr +#define BN_sub FIPS_bn_sub +#define BN_sub_word FIPS_bn_sub_word +#define BN_swap FIPS_bn_swap +#define BN_uadd FIPS_bn_uadd +#define BN_ucmp FIPS_bn_ucmp +#define BN_usub FIPS_bn_usub +#define BN_value_one FIPS_bn_value_one +#define BN_version FIPS_bn_version +#define BUF_memdup FIPS_buf_memdup +#define BUF_strdup FIPS_buf_strdup +#define BUF_strlcat FIPS_buf_strlcat +#define BUF_strlcpy FIPS_buf_strlcpy +#define BUF_strndup FIPS_buf_strndup +#define CRYPTO_THREADID_cmp FIPS_crypto_threadid_cmp +#define CRYPTO_THREADID_cpy FIPS_crypto_threadid_cpy +#define CRYPTO_THREADID_current FIPS_crypto_threadid_current +#define CRYPTO_THREADID_get_callback FIPS_crypto_threadid_get_callback +#define CRYPTO_THREADID_hash FIPS_crypto_threadid_hash +#define CRYPTO_THREADID_set_callback FIPS_crypto_threadid_set_callback +#define CRYPTO_THREADID_set_numeric FIPS_crypto_threadid_set_numeric +#define CRYPTO_THREADID_set_pointer FIPS_crypto_threadid_set_pointer +#define CRYPTO_cbc128_decrypt FIPS_crypto_cbc128_decrypt +#define CRYPTO_cbc128_encrypt FIPS_crypto_cbc128_encrypt +#define CRYPTO_cfb128_1_encrypt FIPS_crypto_cfb128_1_encrypt +#define CRYPTO_cfb128_8_encrypt FIPS_crypto_cfb128_8_encrypt +#define CRYPTO_cfb128_encrypt FIPS_crypto_cfb128_encrypt +#define CRYPTO_ctr128_encrypt FIPS_crypto_ctr128_encrypt +#define CRYPTO_ctr128_encrypt_ctr32 FIPS_crypto_ctr128_encrypt_ctr32 +#define CRYPTO_gcm128_aad FIPS_crypto_gcm128_aad +#define CRYPTO_gcm128_decrypt FIPS_crypto_gcm128_decrypt +#define CRYPTO_gcm128_decrypt_ctr32 FIPS_crypto_gcm128_decrypt_ctr32 +#define CRYPTO_gcm128_encrypt FIPS_crypto_gcm128_encrypt +#define CRYPTO_gcm128_encrypt_ctr32 FIPS_crypto_gcm128_encrypt_ctr32 +#define CRYPTO_gcm128_finish FIPS_crypto_gcm128_finish +#define CRYPTO_gcm128_init FIPS_crypto_gcm128_init +#define CRYPTO_gcm128_new FIPS_crypto_gcm128_new +#define CRYPTO_gcm128_release FIPS_crypto_gcm128_release +#define CRYPTO_gcm128_setiv FIPS_crypto_gcm128_setiv +#define CRYPTO_gcm128_tag FIPS_crypto_gcm128_tag +#define CRYPTO_ofb128_encrypt FIPS_crypto_ofb128_encrypt +#define DES_SPtrans FIPS_des_sptrans +#define DES_cfb64_encrypt FIPS_des_cfb64_encrypt +#define DES_cfb_encrypt FIPS_des_cfb_encrypt +#define DES_check_key_parity FIPS_des_check_key_parity +#define DES_crypt FIPS_des_crypt +#define DES_decrypt3 FIPS_des_decrypt3 +#define DES_ecb3_encrypt FIPS_des_ecb3_encrypt +#define DES_ede3_cbc_encrypt FIPS_des_ede3_cbc_encrypt +#define DES_ede3_cfb64_encrypt FIPS_des_ede3_cfb64_encrypt +#define DES_ede3_cfb_encrypt FIPS_des_ede3_cfb_encrypt +#define DES_ede3_ofb64_encrypt FIPS_des_ede3_ofb64_encrypt +#define DES_encrypt1 FIPS_des_encrypt1 +#define DES_encrypt2 FIPS_des_encrypt2 +#define DES_encrypt3 FIPS_des_encrypt3 +#define DES_fcrypt FIPS_des_fcrypt +#define DES_is_weak_key FIPS_des_is_weak_key +#define DES_key_sched FIPS_des_key_sched +#define DES_ncbc_encrypt FIPS_des_ncbc_encrypt +#define DES_set_key FIPS_des_set_key +#define DES_set_key_checked FIPS_des_set_key_checked +#define DES_set_key_unchecked FIPS_des_set_key_unchecked +#define DES_set_odd_parity FIPS_des_set_odd_parity +#define DH_OpenSSL FIPS_dh_openssl +#define DH_check FIPS_dh_check +#define DH_check_pub_key FIPS_dh_check_pub_key +#define DH_compute_key FIPS_dh_compute_key +#define DH_generate_key FIPS_dh_generate_key +#define DH_generate_parameters_ex FIPS_dh_generate_parameters_ex +#define DSA_OpenSSL FIPS_dsa_openssl +#define DSA_generate_key FIPS_dsa_generate_key +#define DSA_generate_parameters_ex FIPS_dsa_generate_parameters_ex +#define ECDSA_OpenSSL FIPS_ecdsa_openssl +#define EC_EX_DATA_clear_free_all_data FIPS_ec_ex_data_clear_free_all_data +#define EC_EX_DATA_clear_free_data FIPS_ec_ex_data_clear_free_data +#define EC_EX_DATA_free_all_data FIPS_ec_ex_data_free_all_data +#define EC_EX_DATA_free_data FIPS_ec_ex_data_free_data +#define EC_EX_DATA_get_data FIPS_ec_ex_data_get_data +#define EC_EX_DATA_set_data FIPS_ec_ex_data_set_data +#define EC_GF2m_simple_method FIPS_ec_gf2m_simple_method +#define EC_GFp_mont_method FIPS_ec_gfp_mont_method +#define EC_GFp_nist_method FIPS_ec_gfp_nist_method +#define EC_GFp_simple_method FIPS_ec_gfp_simple_method +#define EC_GROUP_check_discriminant FIPS_ec_group_check_discriminant +#define EC_GROUP_clear_free FIPS_ec_group_clear_free +#define EC_GROUP_cmp FIPS_ec_group_cmp +#define EC_GROUP_copy FIPS_ec_group_copy +#define EC_GROUP_dup FIPS_ec_group_dup +#define EC_GROUP_free FIPS_ec_group_free +#define EC_GROUP_get0_generator FIPS_ec_group_get0_generator +#define EC_GROUP_get0_seed FIPS_ec_group_get0_seed +#define EC_GROUP_get_asn1_flag FIPS_ec_group_get_asn1_flag +#define EC_GROUP_get_cofactor FIPS_ec_group_get_cofactor +#define EC_GROUP_get_curve_GF2m FIPS_ec_group_get_curve_gf2m +#define EC_GROUP_get_curve_GFp FIPS_ec_group_get_curve_gfp +#define EC_GROUP_get_curve_name FIPS_ec_group_get_curve_name +#define EC_GROUP_get_degree FIPS_ec_group_get_degree +#define EC_GROUP_get_order FIPS_ec_group_get_order +#define EC_GROUP_get_point_conversion_form FIPS_ec_group_get_point_conversion_form +#define EC_GROUP_get_seed_len FIPS_ec_group_get_seed_len +#define EC_GROUP_have_precompute_mult FIPS_ec_group_have_precompute_mult +#define EC_GROUP_method_of FIPS_ec_group_method_of +#define EC_GROUP_new FIPS_ec_group_new +#define EC_GROUP_new_by_curve_name FIPS_ec_group_new_by_curve_name +#define EC_GROUP_new_curve_GF2m FIPS_ec_group_new_curve_gf2m +#define EC_GROUP_new_curve_GFp FIPS_ec_group_new_curve_gfp +#define EC_GROUP_precompute_mult FIPS_ec_group_precompute_mult +#define EC_GROUP_set_asn1_flag FIPS_ec_group_set_asn1_flag +#define EC_GROUP_set_curve_GF2m FIPS_ec_group_set_curve_gf2m +#define EC_GROUP_set_curve_GFp FIPS_ec_group_set_curve_gfp +#define EC_GROUP_set_curve_name FIPS_ec_group_set_curve_name +#define EC_GROUP_set_generator FIPS_ec_group_set_generator +#define EC_GROUP_set_point_conversion_form FIPS_ec_group_set_point_conversion_form +#define EC_GROUP_set_seed FIPS_ec_group_set_seed +#define EC_KEY_check_key FIPS_ec_key_check_key +#define EC_KEY_copy FIPS_ec_key_copy +#define EC_KEY_dup FIPS_ec_key_dup +#define EC_KEY_free FIPS_ec_key_free +#define EC_KEY_generate_key FIPS_ec_key_generate_key +#define EC_KEY_get0_group FIPS_ec_key_get0_group +#define EC_KEY_get0_private_key FIPS_ec_key_get0_private_key +#define EC_KEY_get0_public_key FIPS_ec_key_get0_public_key +#define EC_KEY_get_conv_form FIPS_ec_key_get_conv_form +#define EC_KEY_get_enc_flags FIPS_ec_key_get_enc_flags +#define EC_KEY_get_key_method_data FIPS_ec_key_get_key_method_data +#define EC_KEY_insert_key_method_data FIPS_ec_key_insert_key_method_data +#define EC_KEY_new FIPS_ec_key_new +#define EC_KEY_new_by_curve_name FIPS_ec_key_new_by_curve_name +#define EC_KEY_precompute_mult FIPS_ec_key_precompute_mult +#define EC_KEY_set_asn1_flag FIPS_ec_key_set_asn1_flag +#define EC_KEY_set_conv_form FIPS_ec_key_set_conv_form +#define EC_KEY_set_enc_flags FIPS_ec_key_set_enc_flags +#define EC_KEY_set_group FIPS_ec_key_set_group +#define EC_KEY_set_private_key FIPS_ec_key_set_private_key +#define EC_KEY_set_public_key FIPS_ec_key_set_public_key +#define EC_KEY_set_public_key_affine_coordinates FIPS_ec_key_set_public_key_affine_coordinates +#define EC_KEY_up_ref FIPS_ec_key_up_ref +#define EC_METHOD_get_field_type FIPS_ec_method_get_field_type +#define EC_POINT_add FIPS_ec_point_add +#define EC_POINT_clear_free FIPS_ec_point_clear_free +#define EC_POINT_cmp FIPS_ec_point_cmp +#define EC_POINT_copy FIPS_ec_point_copy +#define EC_POINT_dbl FIPS_ec_point_dbl +#define EC_POINT_dup FIPS_ec_point_dup +#define EC_POINT_free FIPS_ec_point_free +#define EC_POINT_get_Jprojective_coordinates_GFp FIPS_ec_point_get_jprojective_coordinates_gfp +#define EC_POINT_get_affine_coordinates_GF2m FIPS_ec_point_get_affine_coordinates_gf2m +#define EC_POINT_get_affine_coordinates_GFp FIPS_ec_point_get_affine_coordinates_gfp +#define EC_POINT_invert FIPS_ec_point_invert +#define EC_POINT_is_at_infinity FIPS_ec_point_is_at_infinity +#define EC_POINT_is_on_curve FIPS_ec_point_is_on_curve +#define EC_POINT_make_affine FIPS_ec_point_make_affine +#define EC_POINT_method_of FIPS_ec_point_method_of +#define EC_POINT_mul FIPS_ec_point_mul +#define EC_POINT_new FIPS_ec_point_new +#define EC_POINT_set_Jprojective_coordinates_GFp FIPS_ec_point_set_jprojective_coordinates_gfp +#define EC_POINT_set_affine_coordinates_GF2m FIPS_ec_point_set_affine_coordinates_gf2m +#define EC_POINT_set_affine_coordinates_GFp FIPS_ec_point_set_affine_coordinates_gfp +#define EC_POINT_set_to_infinity FIPS_ec_point_set_to_infinity +#define EC_POINTs_make_affine FIPS_ec_points_make_affine +#define EC_POINTs_mul FIPS_ec_points_mul +#define EC_get_builtin_curves FIPS_ec_get_builtin_curves +#define EVP_aes_128_cbc FIPS_evp_aes_128_cbc +#define EVP_aes_128_cfb1 FIPS_evp_aes_128_cfb1 +#define EVP_aes_128_cfb128 FIPS_evp_aes_128_cfb128 +#define EVP_aes_128_cfb8 FIPS_evp_aes_128_cfb8 +#define EVP_aes_128_ctr FIPS_evp_aes_128_ctr +#define EVP_aes_128_ecb FIPS_evp_aes_128_ecb +#define EVP_aes_128_gcm FIPS_evp_aes_128_gcm +#define EVP_aes_128_ofb FIPS_evp_aes_128_ofb +#define EVP_aes_192_cbc FIPS_evp_aes_192_cbc +#define EVP_aes_192_cfb1 FIPS_evp_aes_192_cfb1 +#define EVP_aes_192_cfb128 FIPS_evp_aes_192_cfb128 +#define EVP_aes_192_cfb8 FIPS_evp_aes_192_cfb8 +#define EVP_aes_192_ctr FIPS_evp_aes_192_ctr +#define EVP_aes_192_ecb FIPS_evp_aes_192_ecb +#define EVP_aes_192_gcm FIPS_evp_aes_192_gcm +#define EVP_aes_192_ofb FIPS_evp_aes_192_ofb +#define EVP_aes_256_cbc FIPS_evp_aes_256_cbc +#define EVP_aes_256_cfb1 FIPS_evp_aes_256_cfb1 +#define EVP_aes_256_cfb128 FIPS_evp_aes_256_cfb128 +#define EVP_aes_256_cfb8 FIPS_evp_aes_256_cfb8 +#define EVP_aes_256_ctr FIPS_evp_aes_256_ctr +#define EVP_aes_256_ecb FIPS_evp_aes_256_ecb +#define EVP_aes_256_gcm FIPS_evp_aes_256_gcm +#define EVP_aes_256_ofb FIPS_evp_aes_256_ofb +#define EVP_des_ede FIPS_evp_des_ede +#define EVP_des_ede3 FIPS_evp_des_ede3 +#define EVP_des_ede3_cbc FIPS_evp_des_ede3_cbc +#define EVP_des_ede3_cfb1 FIPS_evp_des_ede3_cfb1 +#define EVP_des_ede3_cfb64 FIPS_evp_des_ede3_cfb64 +#define EVP_des_ede3_cfb8 FIPS_evp_des_ede3_cfb8 +#define EVP_des_ede3_ecb FIPS_evp_des_ede3_ecb +#define EVP_des_ede3_ofb FIPS_evp_des_ede3_ofb +#define EVP_des_ede_cbc FIPS_evp_des_ede_cbc +#define EVP_des_ede_cfb64 FIPS_evp_des_ede_cfb64 +#define EVP_des_ede_ecb FIPS_evp_des_ede_ecb +#define EVP_des_ede_ofb FIPS_evp_des_ede_ofb +#define EVP_sha1 FIPS_evp_sha1 +#define EVP_sha224 FIPS_evp_sha224 +#define EVP_sha256 FIPS_evp_sha256 +#define EVP_sha384 FIPS_evp_sha384 +#define EVP_sha512 FIPS_evp_sha512 +#define HMAC FIPS_hmac +#define HMAC_CTX_cleanup FIPS_hmac_ctx_cleanup +#define HMAC_CTX_copy FIPS_hmac_ctx_copy +#define HMAC_CTX_init FIPS_hmac_ctx_init +#define HMAC_CTX_set_flags FIPS_hmac_ctx_set_flags +#define HMAC_Final FIPS_hmac_final +#define HMAC_Init FIPS_hmac_init +#define HMAC_Init_ex FIPS_hmac_init_ex +#define HMAC_Update FIPS_hmac_update +#define OPENSSL_NONPIC_relocated FIPS_openssl_nonpic_relocated +#define OPENSSL_atomic_add FIPS_openssl_atomic_add +#define OPENSSL_cleanse FIPS_openssl_cleanse +#define OPENSSL_cpuid_setup FIPS_openssl_cpuid_setup +#define OPENSSL_ia32_cpuid FIPS_openssl_ia32_cpuid +#define OPENSSL_ia32cap_P FIPS_openssl_ia32cap_p +#define OPENSSL_ia32cap_loc FIPS_openssl_ia32cap_loc +#define OPENSSL_isservice FIPS_openssl_isservice +#define OPENSSL_issetugid FIPS_openssl_issetugid +#define OPENSSL_rdtsc FIPS_openssl_rdtsc +#define OPENSSL_showfatal FIPS_openssl_showfatal +#define OPENSSL_stderr FIPS_openssl_stderr +#define OPENSSL_wipe_cpu FIPS_openssl_wipe_cpu +#define OpenSSLDie FIPS_openssldie +#define PKCS1_MGF1 FIPS_pkcs1_mgf1 +#define RAND_SSLeay FIPS_rand_ssleay +#define RAND_add FIPS_rand_add +#define RAND_bytes FIPS_ossl_rand_bytes +#define RAND_cleanup FIPS_rand_cleanup +#define RAND_egd FIPS_rand_egd +#define RAND_egd_bytes FIPS_rand_egd_bytes +#define RAND_file_name FIPS_rand_file_name +#define RAND_get_rand_method FIPS_rand_get_rand_method +#define RAND_load_file FIPS_rand_load_file +#define RAND_poll FIPS_rand_poll +#define RAND_pseudo_bytes FIPS_rand_pseudo_bytes +#define RAND_query_egd_bytes FIPS_rand_query_egd_bytes +#define RAND_seed FIPS_ossl_rand_seed +#define RAND_set_rand_method FIPS_rand_set_rand_method +#define RAND_status FIPS_ossl_rand_status +#define RAND_version FIPS_rand_version +#define RAND_write_file FIPS_rand_write_file +#define RSA_PKCS1_SSLeay FIPS_rsa_pkcs1_ssleay +#define RSA_X931_derive_ex FIPS_rsa_x931_derive_ex +#define RSA_X931_generate_key_ex FIPS_rsa_x931_generate_key_ex +#define RSA_X931_hash_id FIPS_rsa_x931_hash_id +#define RSA_blinding_off FIPS_rsa_blinding_off +#define RSA_blinding_on FIPS_rsa_blinding_on +#define RSA_flags FIPS_rsa_flags +#define RSA_generate_key_ex FIPS_rsa_generate_key_ex +#define RSA_padding_add_PKCS1_OAEP FIPS_rsa_padding_add_pkcs1_oaep +#define RSA_padding_add_PKCS1_PSS FIPS_rsa_padding_add_pkcs1_pss +#define RSA_padding_add_PKCS1_PSS_mgf1 FIPS_rsa_padding_add_pkcs1_pss_mgf1 +#define RSA_padding_add_PKCS1_type_1 FIPS_rsa_padding_add_pkcs1_type_1 +#define RSA_padding_add_PKCS1_type_2 FIPS_rsa_padding_add_pkcs1_type_2 +#define RSA_padding_add_SSLv23 FIPS_rsa_padding_add_sslv23 +#define RSA_padding_add_X931 FIPS_rsa_padding_add_x931 +#define RSA_padding_add_none FIPS_rsa_padding_add_none +#define RSA_padding_check_PKCS1_OAEP FIPS_rsa_padding_check_pkcs1_oaep +#define RSA_padding_check_PKCS1_type_1 FIPS_rsa_padding_check_pkcs1_type_1 +#define RSA_padding_check_PKCS1_type_2 FIPS_rsa_padding_check_pkcs1_type_2 +#define RSA_padding_check_SSLv23 FIPS_rsa_padding_check_sslv23 +#define RSA_padding_check_X931 FIPS_rsa_padding_check_x931 +#define RSA_padding_check_none FIPS_rsa_padding_check_none +#define RSA_private_decrypt FIPS_rsa_private_decrypt +#define RSA_private_encrypt FIPS_rsa_private_encrypt +#define RSA_public_decrypt FIPS_rsa_public_decrypt +#define RSA_public_encrypt FIPS_rsa_public_encrypt +#define RSA_setup_blinding FIPS_rsa_setup_blinding +#define RSA_size FIPS_rsa_size +#define RSA_verify_PKCS1_PSS FIPS_rsa_verify_pkcs1_pss +#define RSA_verify_PKCS1_PSS_mgf1 FIPS_rsa_verify_pkcs1_pss_mgf1 +#define SHA1_Final FIPS_sha1_final +#define SHA1_Init FIPS_sha1_init +#define SHA1_Transform FIPS_sha1_transform +#define SHA1_Update FIPS_sha1_update +#define SHA1_version FIPS_sha1_version +#define SHA224 FIPS_sha224 +#define SHA224_Final FIPS_sha224_final +#define SHA224_Init FIPS_sha224_init +#define SHA224_Update FIPS_sha224_update +#define SHA256 FIPS_sha256 +#define SHA256_Final FIPS_sha256_final +#define SHA256_Init FIPS_sha256_init +#define SHA256_Transform FIPS_sha256_transform +#define SHA256_Update FIPS_sha256_update +#define SHA256_version FIPS_sha256_version +#define SHA384 FIPS_sha384 +#define SHA384_Final FIPS_sha384_final +#define SHA384_Init FIPS_sha384_init +#define SHA384_Update FIPS_sha384_update +#define SHA512 FIPS_sha512 +#define SHA512_Final FIPS_sha512_final +#define SHA512_Init FIPS_sha512_init +#define SHA512_Transform FIPS_sha512_transform +#define SHA512_Update FIPS_sha512_update +#define SHA512_version FIPS_sha512_version +#define _shadow_DES_check_key fips__shadow_des_check_key +#define aesni_cbc_encrypt fips_aesni_cbc_encrypt +#define aesni_ccm64_decrypt_blocks fips_aesni_ccm64_decrypt_blocks +#define aesni_ccm64_encrypt_blocks fips_aesni_ccm64_encrypt_blocks +#define aesni_ctr32_encrypt_blocks fips_aesni_ctr32_encrypt_blocks +#define aesni_decrypt fips_aesni_decrypt +#define aesni_ecb_encrypt fips_aesni_ecb_encrypt +#define aesni_encrypt fips_aesni_encrypt +#define aesni_set_decrypt_key fips_aesni_set_decrypt_key +#define aesni_set_encrypt_key fips_aesni_set_encrypt_key +#define bn_add_part_words fips_bn_add_part_words +#define bn_add_words fips_bn_add_words +#define bn_cmp_part_words fips_bn_cmp_part_words +#define bn_cmp_words fips_bn_cmp_words +#define bn_div_words fips_bn_div_words +#define bn_expand2 fips_bn_expand2 +#define bn_mul_add_words fips_bn_mul_add_words +#define bn_mul_comba4 fips_bn_mul_comba4 +#define bn_mul_comba8 fips_bn_mul_comba8 +#define bn_mul_high fips_bn_mul_high +#define bn_mul_low_normal fips_bn_mul_low_normal +#define bn_mul_low_recursive fips_bn_mul_low_recursive +#define bn_mul_mont fips_bn_mul_mont +#define bn_mul_normal fips_bn_mul_normal +#define bn_mul_part_recursive fips_bn_mul_part_recursive +#define bn_mul_recursive fips_bn_mul_recursive +#define bn_mul_words fips_bn_mul_words +#define bn_sqr_comba4 fips_bn_sqr_comba4 +#define bn_sqr_comba8 fips_bn_sqr_comba8 +#define bn_sqr_normal fips_bn_sqr_normal +#define bn_sqr_recursive fips_bn_sqr_recursive +#define bn_sqr_words fips_bn_sqr_words +#define bn_sub_part_words fips_bn_sub_part_words +#define bn_sub_words fips_bn_sub_words +#define dsa_builtin_paramgen fips_dsa_builtin_paramgen +#define dsa_builtin_paramgen2 fips_dsa_builtin_paramgen2 +#define ec_GF2m_have_precompute_mult fips_ec_gf2m_have_precompute_mult +#define ec_GF2m_precompute_mult fips_ec_gf2m_precompute_mult +#define ec_GF2m_simple_add fips_ec_gf2m_simple_add +#define ec_GF2m_simple_cmp fips_ec_gf2m_simple_cmp +#define ec_GF2m_simple_dbl fips_ec_gf2m_simple_dbl +#define ec_GF2m_simple_field_div fips_ec_gf2m_simple_field_div +#define ec_GF2m_simple_field_mul fips_ec_gf2m_simple_field_mul +#define ec_GF2m_simple_field_sqr fips_ec_gf2m_simple_field_sqr +#define ec_GF2m_simple_group_check_discriminant fips_ec_gf2m_simple_group_check_discriminant +#define ec_GF2m_simple_group_clear_finish fips_ec_gf2m_simple_group_clear_finish +#define ec_GF2m_simple_group_copy fips_ec_gf2m_simple_group_copy +#define ec_GF2m_simple_group_finish fips_ec_gf2m_simple_group_finish +#define ec_GF2m_simple_group_get_curve fips_ec_gf2m_simple_group_get_curve +#define ec_GF2m_simple_group_get_degree fips_ec_gf2m_simple_group_get_degree +#define ec_GF2m_simple_group_init fips_ec_gf2m_simple_group_init +#define ec_GF2m_simple_group_set_curve fips_ec_gf2m_simple_group_set_curve +#define ec_GF2m_simple_invert fips_ec_gf2m_simple_invert +#define ec_GF2m_simple_is_at_infinity fips_ec_gf2m_simple_is_at_infinity +#define ec_GF2m_simple_is_on_curve fips_ec_gf2m_simple_is_on_curve +#define ec_GF2m_simple_make_affine fips_ec_gf2m_simple_make_affine +#define ec_GF2m_simple_mul fips_ec_gf2m_simple_mul +#define ec_GF2m_simple_point_clear_finish fips_ec_gf2m_simple_point_clear_finish +#define ec_GF2m_simple_point_copy fips_ec_gf2m_simple_point_copy +#define ec_GF2m_simple_point_finish fips_ec_gf2m_simple_point_finish +#define ec_GF2m_simple_point_get_affine_coordinates fips_ec_gf2m_simple_point_get_affine_coordinates +#define ec_GF2m_simple_point_init fips_ec_gf2m_simple_point_init +#define ec_GF2m_simple_point_set_affine_coordinates fips_ec_gf2m_simple_point_set_affine_coordinates +#define ec_GF2m_simple_point_set_to_infinity fips_ec_gf2m_simple_point_set_to_infinity +#define ec_GF2m_simple_points_make_affine fips_ec_gf2m_simple_points_make_affine +#define ec_GFp_mont_field_decode fips_ec_gfp_mont_field_decode +#define ec_GFp_mont_field_encode fips_ec_gfp_mont_field_encode +#define ec_GFp_mont_field_mul fips_ec_gfp_mont_field_mul +#define ec_GFp_mont_field_set_to_one fips_ec_gfp_mont_field_set_to_one +#define ec_GFp_mont_field_sqr fips_ec_gfp_mont_field_sqr +#define ec_GFp_mont_group_clear_finish fips_ec_gfp_mont_group_clear_finish +#define ec_GFp_mont_group_copy fips_ec_gfp_mont_group_copy +#define ec_GFp_mont_group_finish fips_ec_gfp_mont_group_finish +#define ec_GFp_mont_group_init fips_ec_gfp_mont_group_init +#define ec_GFp_mont_group_set_curve fips_ec_gfp_mont_group_set_curve +#define ec_GFp_nist_field_mul fips_ec_gfp_nist_field_mul +#define ec_GFp_nist_field_sqr fips_ec_gfp_nist_field_sqr +#define ec_GFp_nist_group_copy fips_ec_gfp_nist_group_copy +#define ec_GFp_nist_group_set_curve fips_ec_gfp_nist_group_set_curve +#define ec_GFp_simple_add fips_ec_gfp_simple_add +#define ec_GFp_simple_cmp fips_ec_gfp_simple_cmp +#define ec_GFp_simple_dbl fips_ec_gfp_simple_dbl +#define ec_GFp_simple_field_mul fips_ec_gfp_simple_field_mul +#define ec_GFp_simple_field_sqr fips_ec_gfp_simple_field_sqr +#define ec_GFp_simple_get_Jprojective_coordinates_GFp fips_ec_gfp_simple_get_jprojective_coordinates_gfp +#define ec_GFp_simple_group_check_discriminant fips_ec_gfp_simple_group_check_discriminant +#define ec_GFp_simple_group_clear_finish fips_ec_gfp_simple_group_clear_finish +#define ec_GFp_simple_group_copy fips_ec_gfp_simple_group_copy +#define ec_GFp_simple_group_finish fips_ec_gfp_simple_group_finish +#define ec_GFp_simple_group_get_curve fips_ec_gfp_simple_group_get_curve +#define ec_GFp_simple_group_get_degree fips_ec_gfp_simple_group_get_degree +#define ec_GFp_simple_group_init fips_ec_gfp_simple_group_init +#define ec_GFp_simple_group_set_curve fips_ec_gfp_simple_group_set_curve +#define ec_GFp_simple_invert fips_ec_gfp_simple_invert +#define ec_GFp_simple_is_at_infinity fips_ec_gfp_simple_is_at_infinity +#define ec_GFp_simple_is_on_curve fips_ec_gfp_simple_is_on_curve +#define ec_GFp_simple_make_affine fips_ec_gfp_simple_make_affine +#define ec_GFp_simple_point_clear_finish fips_ec_gfp_simple_point_clear_finish +#define ec_GFp_simple_point_copy fips_ec_gfp_simple_point_copy +#define ec_GFp_simple_point_finish fips_ec_gfp_simple_point_finish +#define ec_GFp_simple_point_get_affine_coordinates fips_ec_gfp_simple_point_get_affine_coordinates +#define ec_GFp_simple_point_init fips_ec_gfp_simple_point_init +#define ec_GFp_simple_point_set_affine_coordinates fips_ec_gfp_simple_point_set_affine_coordinates +#define ec_GFp_simple_point_set_to_infinity fips_ec_gfp_simple_point_set_to_infinity +#define ec_GFp_simple_points_make_affine fips_ec_gfp_simple_points_make_affine +#define ec_GFp_simple_set_Jprojective_coordinates_GFp fips_ec_gfp_simple_set_jprojective_coordinates_gfp +#define ec_wNAF_have_precompute_mult fips_ec_wnaf_have_precompute_mult +#define ec_wNAF_mul fips_ec_wnaf_mul +#define ec_wNAF_precompute_mult fips_ec_wnaf_precompute_mult +#define fcrypt_body fips_fcrypt_body +#define gcm_ghash_4bit fips_gcm_ghash_4bit +#define gcm_ghash_clmul fips_gcm_ghash_clmul +#define gcm_gmult_4bit fips_gcm_gmult_4bit +#define gcm_gmult_clmul fips_gcm_gmult_clmul +#define gcm_init_clmul fips_gcm_init_clmul +#define int_bn_mod_inverse fips_int_bn_mod_inverse +#define sha1_block_data_order fips_sha1_block_data_order +#define sha256_block_data_order fips_sha256_block_data_order +#define sha512_block_data_order fips_sha512_block_data_order +#define cleanse_ctr fips_cleanse_ctr diff --git a/fips/rand/fips_rand.c b/fips/rand/fips_rand.c index f573b26b61..ebe0f735fc 100644 --- a/fips/rand/fips_rand.c +++ b/fips/rand/fips_rand.c @@ -52,7 +52,7 @@ /* * This is a FIPS approved AES PRNG based on ANSI X9.31 A.2.4. */ - +#include #include "e_os.h" /* If we don't define _XOPEN_SOURCE_EXTENDED, struct timeval won't diff --git a/fips/sha/fips_standalone_sha1.c b/fips/sha/fips_standalone_sha1.c index b1810a5f2c..07bd0091be 100644 --- a/fips/sha/fips_standalone_sha1.c +++ b/fips/sha/fips_standalone_sha1.c @@ -50,7 +50,7 @@ #include #include #include -#include +#include #include #include #include