[PATCH 09/12] wolfssl: improve error checking and logging in aes functions
Juliusz Sosinowicz
juliusz at wolfssl.com
Wed Mar 8 09:18:47 PST 2023
Signed-off-by: Juliusz Sosinowicz <juliusz at wolfssl.com>
---
src/crypto/crypto_wolfssl.c | 30 ++++++++++++++++++++++++------
1 file changed, 24 insertions(+), 6 deletions(-)
diff --git a/src/crypto/crypto_wolfssl.c b/src/crypto/crypto_wolfssl.c
index 62eeee6a4..14576a98d 100644
--- a/src/crypto/crypto_wolfssl.c
+++ b/src/crypto/crypto_wolfssl.c
@@ -453,15 +453,20 @@ int des_encrypt(const u8 *clear, const u8 *key, u8 *cypher)
void * aes_encrypt_init(const u8 *key, size_t len)
{
Aes *aes;
+ int err;
if (TEST_FAIL())
return NULL;
aes = os_malloc(sizeof(Aes));
- if (!aes)
+ if (!aes) {
+ LOG_WOLF_ERROR_FUNC_NULL(os_malloc);
return NULL;
+ }
- if (wc_AesSetKey(aes, key, len, NULL, AES_ENCRYPTION) < 0) {
+ err = wc_AesSetKey(aes, key, len, NULL, AES_ENCRYPTION);
+ if (err < 0) {
+ LOG_WOLF_ERROR_FUNC(wc_AesSetKey, err);
os_free(aes);
return NULL;
}
@@ -472,7 +477,11 @@ void * aes_encrypt_init(const u8 *key, size_t len)
int aes_encrypt(void *ctx, const u8 *plain, u8 *crypt)
{
- wc_AesEncryptDirect(ctx, crypt, plain);
+ int err = wc_AesEncryptDirect(ctx, crypt, plain);
+ if (err != 0) {
+ LOG_WOLF_ERROR_FUNC(wc_AesEncryptDirect, err);
+ return -1;
+ }
return 0;
}
@@ -486,15 +495,20 @@ void aes_encrypt_deinit(void *ctx)
void * aes_decrypt_init(const u8 *key, size_t len)
{
Aes *aes;
+ int err;
if (TEST_FAIL())
return NULL;
aes = os_malloc(sizeof(Aes));
- if (!aes)
+ if (!aes) {
+ LOG_WOLF_ERROR_FUNC_NULL(os_malloc);
return NULL;
+ }
- if (wc_AesSetKey(aes, key, len, NULL, AES_DECRYPTION) < 0) {
+ err = wc_AesSetKey(aes, key, len, NULL, AES_DECRYPTION);
+ if (err < 0) {
+ LOG_WOLF_ERROR_FUNC(wc_AesSetKey, err);
os_free(aes);
return NULL;
}
@@ -505,7 +519,11 @@ void * aes_decrypt_init(const u8 *key, size_t len)
int aes_decrypt(void *ctx, const u8 *crypt, u8 *plain)
{
- wc_AesDecryptDirect(ctx, plain, crypt);
+ int err = wc_AesDecryptDirect(ctx, plain, crypt);
+ if (err != 0) {
+ LOG_WOLF_ERROR_FUNC(wc_AesDecryptDirect, err);
+ return -1;
+ }
return 0;
}
--
2.25.1
More information about the Hostap
mailing list