OpenSSL: Implement aes_wrap() and aes_unwrap()
This replaces the implementation in aes-wrap.c and aes-unwrap.c with OpenSSL AES_wrap_key() and AES_unwrap_key() functions when building hostapd or wpa_supplicant with OpenSSL. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
fee31f76cd
commit
f19c907822
5 changed files with 43 additions and 0 deletions
|
@ -297,6 +297,33 @@ void aes_decrypt_deinit(void *ctx)
|
|||
}
|
||||
|
||||
|
||||
int aes_wrap(const u8 *kek, size_t kek_len, int n, const u8 *plain, u8 *cipher)
|
||||
{
|
||||
AES_KEY actx;
|
||||
int res;
|
||||
|
||||
if (AES_set_encrypt_key(kek, kek_len << 3, &actx))
|
||||
return -1;
|
||||
res = AES_wrap_key(&actx, NULL, cipher, plain, n * 8);
|
||||
OPENSSL_cleanse(&actx, sizeof(actx));
|
||||
return res <= 0 ? -1 : 0;
|
||||
}
|
||||
|
||||
|
||||
int aes_unwrap(const u8 *kek, size_t kek_len, int n, const u8 *cipher,
|
||||
u8 *plain)
|
||||
{
|
||||
AES_KEY actx;
|
||||
int res;
|
||||
|
||||
if (AES_set_decrypt_key(kek, kek_len << 3, &actx))
|
||||
return -1;
|
||||
res = AES_unwrap_key(&actx, NULL, plain, cipher, (n + 1) * 8);
|
||||
OPENSSL_cleanse(&actx, sizeof(actx));
|
||||
return res <= 0 ? -1 : 0;
|
||||
}
|
||||
|
||||
|
||||
int crypto_mod_exp(const u8 *base, size_t base_len,
|
||||
const u8 *power, size_t power_len,
|
||||
const u8 *modulus, size_t modulus_len,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue