forked from wolfSSL/wolfssl
static analysis : Fix warnings with wc_AesCcmSetKey
This commit is contained in:
26
src/keys.c
26
src/keys.c
@ -2473,6 +2473,8 @@ static int SetKeys(Ciphers* enc, Ciphers* dec, Keys* keys, CipherSpecs* specs,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (specs->bulk_cipher_algorithm == wolfssl_aes_ccm) {
|
if (specs->bulk_cipher_algorithm == wolfssl_aes_ccm) {
|
||||||
|
int CcmRet;
|
||||||
|
|
||||||
if (enc && enc->aes == NULL)
|
if (enc && enc->aes == NULL)
|
||||||
enc->aes = (Aes*)XMALLOC(sizeof(Aes), heap, DYNAMIC_TYPE_CIPHER);
|
enc->aes = (Aes*)XMALLOC(sizeof(Aes), heap, DYNAMIC_TYPE_CIPHER);
|
||||||
if (enc && enc->aes == NULL)
|
if (enc && enc->aes == NULL)
|
||||||
@ -2484,24 +2486,40 @@ static int SetKeys(Ciphers* enc, Ciphers* dec, Keys* keys, CipherSpecs* specs,
|
|||||||
|
|
||||||
if (side == WOLFSSL_CLIENT_END) {
|
if (side == WOLFSSL_CLIENT_END) {
|
||||||
if (enc) {
|
if (enc) {
|
||||||
wc_AesCcmSetKey(enc->aes, keys->client_write_key, specs->key_size);
|
CcmRet = wc_AesCcmSetKey(enc->aes, keys->client_write_key,
|
||||||
|
specs->key_size);
|
||||||
|
if (CcmRet != 0) {
|
||||||
|
return CcmRet;
|
||||||
|
}
|
||||||
XMEMCPY(keys->aead_enc_imp_IV, keys->client_write_IV,
|
XMEMCPY(keys->aead_enc_imp_IV, keys->client_write_IV,
|
||||||
AESGCM_IMP_IV_SZ);
|
AESGCM_IMP_IV_SZ);
|
||||||
}
|
}
|
||||||
if (dec) {
|
if (dec) {
|
||||||
wc_AesCcmSetKey(dec->aes, keys->server_write_key, specs->key_size);
|
CcmRet = wc_AesCcmSetKey(dec->aes, keys->server_write_key,
|
||||||
|
specs->key_size);
|
||||||
|
if (CcmRet != 0) {
|
||||||
|
return CcmRet;
|
||||||
|
}
|
||||||
XMEMCPY(keys->aead_dec_imp_IV, keys->server_write_IV,
|
XMEMCPY(keys->aead_dec_imp_IV, keys->server_write_IV,
|
||||||
AESGCM_IMP_IV_SZ);
|
AESGCM_IMP_IV_SZ);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (enc) {
|
if (enc) {
|
||||||
wc_AesCcmSetKey(enc->aes, keys->server_write_key, specs->key_size);
|
CcmRet = wc_AesCcmSetKey(enc->aes, keys->server_write_key,
|
||||||
|
specs->key_size);
|
||||||
|
if (CcmRet != 0) {
|
||||||
|
return CcmRet;
|
||||||
|
}
|
||||||
XMEMCPY(keys->aead_enc_imp_IV, keys->server_write_IV,
|
XMEMCPY(keys->aead_enc_imp_IV, keys->server_write_IV,
|
||||||
AESGCM_IMP_IV_SZ);
|
AESGCM_IMP_IV_SZ);
|
||||||
}
|
}
|
||||||
if (dec) {
|
if (dec) {
|
||||||
wc_AesCcmSetKey(dec->aes, keys->client_write_key, specs->key_size);
|
CcmRet = wc_AesCcmSetKey(dec->aes, keys->client_write_key,
|
||||||
|
specs->key_size);
|
||||||
|
if (CcmRet != 0) {
|
||||||
|
return CcmRet;
|
||||||
|
}
|
||||||
XMEMCPY(keys->aead_dec_imp_IV, keys->client_write_IV,
|
XMEMCPY(keys->aead_dec_imp_IV, keys->client_write_IV,
|
||||||
AESGCM_IMP_IV_SZ);
|
AESGCM_IMP_IV_SZ);
|
||||||
}
|
}
|
||||||
|
@ -742,8 +742,12 @@ void bench_aesccm(void)
|
|||||||
Aes enc;
|
Aes enc;
|
||||||
double start, total, persec;
|
double start, total, persec;
|
||||||
int i;
|
int i;
|
||||||
|
int ret;
|
||||||
|
|
||||||
wc_AesCcmSetKey(&enc, key, 16);
|
if ((ret = wc_AesCcmSetKey(&enc, key, 16)) != 0) {
|
||||||
|
printf("wc_AesCcmSetKey failed, ret = %d\n", ret);
|
||||||
|
return;
|
||||||
|
}
|
||||||
start = current_time(1);
|
start = current_time(1);
|
||||||
BEGIN_INTEL_CYCLES
|
BEGIN_INTEL_CYCLES
|
||||||
|
|
||||||
|
@ -131,9 +131,10 @@ int wc_GmacUpdate(Gmac* gmac, const byte* iv, word32 ivSz,
|
|||||||
|
|
||||||
#endif /* HAVE_AESGCM */
|
#endif /* HAVE_AESGCM */
|
||||||
#ifdef HAVE_AESCCM
|
#ifdef HAVE_AESCCM
|
||||||
void wc_AesCcmSetKey(Aes* aes, const byte* key, word32 keySz)
|
int wc_AesCcmSetKey(Aes* aes, const byte* key, word32 keySz)
|
||||||
{
|
{
|
||||||
AesCcmSetKey(aes, key, keySz);
|
AesCcmSetKey(aes, key, keySz);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -4029,15 +4030,15 @@ WOLFSSL_API int wc_GmacUpdate(Gmac* gmac, const byte* iv, word32 ivSz,
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void wc_AesCcmSetKey(Aes* aes, const byte* key, word32 keySz)
|
int wc_AesCcmSetKey(Aes* aes, const byte* key, word32 keySz)
|
||||||
{
|
{
|
||||||
byte nonce[AES_BLOCK_SIZE];
|
byte nonce[AES_BLOCK_SIZE];
|
||||||
|
|
||||||
if (!((keySz == 16) || (keySz == 24) || (keySz == 32)))
|
if (!((keySz == 16) || (keySz == 24) || (keySz == 32)))
|
||||||
return;
|
return BAD_FUNC_ARG;
|
||||||
|
|
||||||
XMEMSET(nonce, 0, sizeof(nonce));
|
XMEMSET(nonce, 0, sizeof(nonce));
|
||||||
wc_AesSetKey(aes, key, keySz, nonce, AES_ENCRYPTION);
|
return wc_AesSetKey(aes, key, keySz, nonce, AES_ENCRYPTION);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -4285,15 +4285,15 @@ int wc_AesGcmDecrypt(Aes* aes, byte* out, const byte* in, word32 sz,
|
|||||||
/* Software version of AES-CCM from wolfcrypt/src/aes.c
|
/* Software version of AES-CCM from wolfcrypt/src/aes.c
|
||||||
* Gets some speed up from hardware acceleration of wc_AesEncrypt */
|
* Gets some speed up from hardware acceleration of wc_AesEncrypt */
|
||||||
|
|
||||||
void wc_AesCcmSetKey(Aes* aes, const byte* key, word32 keySz)
|
int wc_AesCcmSetKey(Aes* aes, const byte* key, word32 keySz)
|
||||||
{
|
{
|
||||||
byte nonce[AES_BLOCK_SIZE];
|
byte nonce[AES_BLOCK_SIZE];
|
||||||
|
|
||||||
if (!((keySz == 16) || (keySz == 24) || (keySz == 32)))
|
if (!((keySz == 16) || (keySz == 24) || (keySz == 32)))
|
||||||
return;
|
return BAD_FUNC_ARG;
|
||||||
|
|
||||||
XMEMSET(nonce, 0, sizeof(nonce));
|
XMEMSET(nonce, 0, sizeof(nonce));
|
||||||
wc_AesSetKey(aes, key, keySz, nonce, AES_ENCRYPTION);
|
return wc_AesSetKey(aes, key, keySz, nonce, AES_ENCRYPTION);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -518,9 +518,9 @@ WOLFSSL_API int wc_GmacUpdate(Gmac* gmac, const byte* iv, word32 ivSz,
|
|||||||
#endif /* HAVE_AESGCM */
|
#endif /* HAVE_AESGCM */
|
||||||
|
|
||||||
#ifdef HAVE_AESCCM
|
#ifdef HAVE_AESCCM
|
||||||
WOLFSSL_API void wc_AesCcmSetKey(Aes* aes, const byte* key, word32 keySz)
|
WOLFSSL_API int wc_AesCcmSetKey(Aes* aes, const byte* key, word32 keySz)
|
||||||
{
|
{
|
||||||
AesAuthSetKey(aes, key, keySz) ;
|
return AesAuthSetKey(aes, key, keySz) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
WOLFSSL_API int wc_AesCcmEncrypt(Aes* aes, byte* out, const byte* in, word32 inSz,
|
WOLFSSL_API int wc_AesCcmEncrypt(Aes* aes, byte* out, const byte* in, word32 inSz,
|
||||||
|
@ -3349,7 +3349,10 @@ int aesccm_test(void)
|
|||||||
XMEMSET(c2, 0, sizeof(c2));
|
XMEMSET(c2, 0, sizeof(c2));
|
||||||
XMEMSET(p2, 0, sizeof(p2));
|
XMEMSET(p2, 0, sizeof(p2));
|
||||||
|
|
||||||
wc_AesCcmSetKey(&enc, k, sizeof(k));
|
result = wc_AesCcmSetKey(&enc, k, sizeof(k));
|
||||||
|
if (result != 0)
|
||||||
|
return -105;
|
||||||
|
|
||||||
/* AES-CCM encrypt and decrypt both use AES encrypt internally */
|
/* AES-CCM encrypt and decrypt both use AES encrypt internally */
|
||||||
result = wc_AesCcmEncrypt(&enc, c2, p, sizeof(c2), iv, sizeof(iv),
|
result = wc_AesCcmEncrypt(&enc, c2, p, sizeof(c2), iv, sizeof(iv),
|
||||||
t2, sizeof(t2), a, sizeof(a));
|
t2, sizeof(t2), a, sizeof(a));
|
||||||
|
@ -154,7 +154,7 @@ WOLFSSL_API int wc_AesCbcDecrypt(Aes* aes, byte* out,
|
|||||||
byte* authTag, word32 authTagSz);
|
byte* authTag, word32 authTagSz);
|
||||||
#endif /* HAVE_AESGCM */
|
#endif /* HAVE_AESGCM */
|
||||||
#ifdef HAVE_AESCCM
|
#ifdef HAVE_AESCCM
|
||||||
WOLFSSL_API void wc_AesCcmSetKey(Aes* aes, const byte* key, word32 keySz);
|
WOLFSSL_API int wc_AesCcmSetKey(Aes* aes, const byte* key, word32 keySz);
|
||||||
WOLFSSL_API int wc_AesCcmEncrypt(Aes* aes, byte* out,
|
WOLFSSL_API int wc_AesCcmEncrypt(Aes* aes, byte* out,
|
||||||
const byte* in, word32 inSz,
|
const byte* in, word32 inSz,
|
||||||
const byte* nonce, word32 nonceSz,
|
const byte* nonce, word32 nonceSz,
|
||||||
|
Reference in New Issue
Block a user