diff -up openssl-1.0.0/crypto/engine/eng_aesni.c.fips-aesni openssl-1.0.0/crypto/engine/eng_aesni.c --- openssl-1.0.0/crypto/engine/eng_aesni.c.fips-aesni 2011-05-24 15:20:29.000000000 +0200 +++ openssl-1.0.0/crypto/engine/eng_aesni.c 2011-06-08 14:19:22.000000000 +0200 @@ -323,7 +323,7 @@ static const EVP_CIPHER aesni_##ksize##_ EVP_CIPHER_block_size_##umode, \ ksize / 8, \ AES_BLOCK_SIZE, \ - 0 | EVP_CIPH_##umode##_MODE, \ + EVP_CIPH_FLAG_FIPS | EVP_CIPH_##umode##_MODE, \ aesni_init_key, \ aesni_cipher_##lmode, \ NULL, \ diff -up openssl-1.0.0/crypto/fips/fips.c.fips-aesni openssl-1.0.0/crypto/fips/fips.c --- openssl-1.0.0/crypto/fips/fips.c.fips-aesni 2011-05-24 15:20:29.000000000 +0200 +++ openssl-1.0.0/crypto/fips/fips.c 2011-06-08 17:31:35.000000000 +0200 @@ -55,6 +55,7 @@ #include #include #include +#include #include #include #include @@ -444,14 +445,17 @@ int FIPS_mode_set(int onoff) } if(FIPS_selftest()) - fips_set_mode(1); - else { - fips_selftest_fail = 1; - ret = 0; - goto end; + ENGINE_load_aesni(); + if (FIPS_selftest_aes()) + { + fips_set_mode(1); + ret = 1; + goto end; + } } - ret = 1; + fips_selftest_fail = 1; + ret = 0; goto end; } fips_set_mode(0);