OpenSSL: Implement aes_wrap/aes_unwrap through EVP for CONFIG_FIPS=y
authorJouni Malinen <j@w1.fi>
Sat, 1 Aug 2015 13:31:45 +0000 (16:31 +0300)
committerJouni Malinen <j@w1.fi>
Sat, 1 Aug 2015 13:56:59 +0000 (16:56 +0300)
commit276a3c44dd5ecf41ce586da2d9024d7f3e9665f9
treef158fc6cf629016ddb85988f0a77598e8462e2ad
parent266cf4a0bc833ac922632e18b72ad03a07df38cf
OpenSSL: Implement aes_wrap/aes_unwrap through EVP for CONFIG_FIPS=y

The OpenSSL internal AES_wrap_key() and AES_unwrap_key() functions are
unfortunately not available in FIPS mode. Trying to use them results in
"aes_misc.c(83): OpenSSL internal error, assertion failed: Low level API
call to cipher AES forbidden in FIPS mode!" and process termination.
Work around this by reverting commit
f19c907822ad0dec3480b1435b615ae22c5533a1 ('OpenSSL: Implement aes_wrap()
and aes_unwrap()') changes for CONFIG_FIPS=y case. In practice, this
ends up using the internal AES key wrap/unwrap implementation through
the OpenSSL EVP API which is available in FIPS mode. When CONFIG_FIPS=y
is not used, the OpenSSL AES_wrap_key()/AES_unwrap_key() API continues
to be used to minimize code size.

Signed-off-by: Jouni Malinen <j@w1.fi>
src/crypto/crypto_openssl.c
wpa_supplicant/Android.mk
wpa_supplicant/Makefile