Fixes for AES with STM32 and CubeMX. The key size was not being set and causing issues with AES GCM.

This commit is contained in:
David Garske
2017-02-21 15:12:40 -08:00
parent e9c806a639
commit 5a539751a2

View File

@@ -210,6 +210,7 @@ void wc_AesAsyncFree(Aes* aes)
int ret = 0; int ret = 0;
#ifdef WOLFSSL_STM32_CUBEMX #ifdef WOLFSSL_STM32_CUBEMX
CRYP_HandleTypeDef hcryp; CRYP_HandleTypeDef hcryp;
XMEMSET(&hcryp, 0, sizeof(CRYP_HandleTypeDef));
/* load key into correct registers */ /* load key into correct registers */
switch(aes->rounds) { switch(aes->rounds) {
@@ -225,8 +226,6 @@ void wc_AesAsyncFree(Aes* aes)
default: default:
break; break;
} }
XMEMSET(&hcryp, 0, sizeof(CRYP_HandleTypeDef));
hcryp.Instance = CRYP; hcryp.Instance = CRYP;
hcryp.Init.DataType = CRYP_DATATYPE_8B; hcryp.Init.DataType = CRYP_DATATYPE_8B;
hcryp.Init.pKey = (uint8_t*)aes->key; hcryp.Init.pKey = (uint8_t*)aes->key;
@@ -330,7 +329,7 @@ void wc_AesAsyncFree(Aes* aes)
int ret = 0; int ret = 0;
#ifdef WOLFSSL_STM32_CUBEMX #ifdef WOLFSSL_STM32_CUBEMX
CRYP_HandleTypeDef hcryp; CRYP_HandleTypeDef hcryp;
XMEMSET(&hcryp, 0, sizeof(CRYP_HandleTypeDef));
/* load key into correct registers */ /* load key into correct registers */
switch(aes->rounds) { switch(aes->rounds) {
case 10: /* 128-bit key */ case 10: /* 128-bit key */
@@ -345,8 +344,6 @@ void wc_AesAsyncFree(Aes* aes)
default: default:
break; break;
} }
XMEMSET(&hcryp, 0, sizeof(CRYP_HandleTypeDef));
hcryp.Instance = CRYP; hcryp.Instance = CRYP;
hcryp.Init.DataType = CRYP_DATATYPE_8B; hcryp.Init.DataType = CRYP_DATATYPE_8B;
hcryp.Init.pKey = (uint8_t*)aes->key; hcryp.Init.pKey = (uint8_t*)aes->key;
@@ -2086,7 +2083,7 @@ int wc_InitAes_h(Aes* aes, void* h)
{ {
int ret = 0; int ret = 0;
CRYP_HandleTypeDef hcryp; CRYP_HandleTypeDef hcryp;
XMEMSET(&hcryp, 0, sizeof(CRYP_HandleTypeDef));
/* load key into correct registers */ /* load key into correct registers */
switch(aes->rounds) { switch(aes->rounds) {
case 10: /* 128-bit key */ case 10: /* 128-bit key */
@@ -2101,8 +2098,6 @@ int wc_InitAes_h(Aes* aes, void* h)
default: default:
break; break;
} }
XMEMSET(&hcryp, 0, sizeof(CRYP_HandleTypeDef));
hcryp.Instance = CRYP; hcryp.Instance = CRYP;
hcryp.Init.DataType = CRYP_DATATYPE_8B; hcryp.Init.DataType = CRYP_DATATYPE_8B;
hcryp.Init.pKey = (uint8_t*)aes->key; hcryp.Init.pKey = (uint8_t*)aes->key;
@@ -2886,7 +2881,7 @@ int wc_AesEcbDecrypt(Aes* aes, byte* out, const byte* in, word32 sz)
void wc_AesCtrEncrypt(Aes* aes, byte* out, const byte* in, word32 sz) void wc_AesCtrEncrypt(Aes* aes, byte* out, const byte* in, word32 sz)
{ {
CRYP_HandleTypeDef hcryp; CRYP_HandleTypeDef hcryp;
XMEMSET(&hcryp, 0, sizeof(CRYP_HandleTypeDef));
/* load key into correct registers */ /* load key into correct registers */
switch(aes->rounds) { switch(aes->rounds) {
case 10: /* 128-bit key */ case 10: /* 128-bit key */
@@ -2901,8 +2896,6 @@ int wc_AesEcbDecrypt(Aes* aes, byte* out, const byte* in, word32 sz)
default: default:
break; break;
} }
XMEMSET(&hcryp, 0, sizeof(CRYP_HandleTypeDef));
hcryp.Instance = CRYP; hcryp.Instance = CRYP;
hcryp.Init.DataType = CRYP_DATATYPE_8B; hcryp.Init.DataType = CRYP_DATATYPE_8B;
hcryp.Init.pKey = aes->key; hcryp.Init.pKey = aes->key;