forked from wolfSSL/wolfssl
update AES CTR API with ARMv8 port
This commit is contained in:
@ -887,11 +887,17 @@ void wc_AesFree(Aes* aes)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void wc_AesCtrEncrypt(Aes* aes, byte* out, const byte* in, word32 sz)
|
int wc_AesCtrEncrypt(Aes* aes, byte* out, const byte* in, word32 sz)
|
||||||
{
|
{
|
||||||
byte* tmp = (byte*)aes->tmp + AES_BLOCK_SIZE - aes->left;
|
byte* tmp;
|
||||||
word32 numBlocks;
|
word32 numBlocks;
|
||||||
|
|
||||||
|
if (aes == NULL || out == NULL || in == NULL) {
|
||||||
|
return BAD_FUNC_ARG;
|
||||||
|
}
|
||||||
|
|
||||||
|
tmp = (byte*)aes->tmp + AES_BLOCK_SIZE - aes->left;
|
||||||
|
|
||||||
/* consume any unused bytes left in aes->tmp */
|
/* consume any unused bytes left in aes->tmp */
|
||||||
while (aes->left && sz) {
|
while (aes->left && sz) {
|
||||||
*(out++) = *(in++) ^ *(tmp++);
|
*(out++) = *(in++) ^ *(tmp++);
|
||||||
@ -1374,7 +1380,7 @@ void wc_AesFree(Aes* aes)
|
|||||||
|
|
||||||
default:
|
default:
|
||||||
WOLFSSL_MSG("Bad AES-CTR round value");
|
WOLFSSL_MSG("Bad AES-CTR round value");
|
||||||
return;
|
return BAD_FUNC_ARG;
|
||||||
}
|
}
|
||||||
|
|
||||||
aes->left = 0;
|
aes->left = 0;
|
||||||
@ -1393,6 +1399,7 @@ void wc_AesFree(Aes* aes)
|
|||||||
aes->left--;
|
aes->left--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* WOLFSSL_AES_COUNTER */
|
#endif /* WOLFSSL_AES_COUNTER */
|
||||||
@ -3503,11 +3510,17 @@ int wc_AesGcmDecrypt(Aes* aes, byte* out, const byte* in, word32 sz,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void wc_AesCtrEncrypt(Aes* aes, byte* out, const byte* in, word32 sz)
|
int wc_AesCtrEncrypt(Aes* aes, byte* out, const byte* in, word32 sz)
|
||||||
{
|
{
|
||||||
byte* tmp = (byte*)aes->tmp + AES_BLOCK_SIZE - aes->left;
|
byte* tmp;
|
||||||
word32 numBlocks;
|
word32 numBlocks;
|
||||||
|
|
||||||
|
if (aes == NULL || out == NULL || in == NULL) {
|
||||||
|
return BAD_FUNC_ARG;
|
||||||
|
}
|
||||||
|
|
||||||
|
tmp = (byte*)aes->tmp + AES_BLOCK_SIZE - aes->left;
|
||||||
|
|
||||||
/* consume any unused bytes left in aes->tmp */
|
/* consume any unused bytes left in aes->tmp */
|
||||||
while (aes->left && sz) {
|
while (aes->left && sz) {
|
||||||
*(out++) = *(in++) ^ *(tmp++);
|
*(out++) = *(in++) ^ *(tmp++);
|
||||||
@ -3997,7 +4010,7 @@ int wc_AesGcmDecrypt(Aes* aes, byte* out, const byte* in, word32 sz,
|
|||||||
|
|
||||||
default:
|
default:
|
||||||
WOLFSSL_MSG("Bad AES-CTR round qalue");
|
WOLFSSL_MSG("Bad AES-CTR round qalue");
|
||||||
return;
|
return BAD_FUNC_ARG;
|
||||||
}
|
}
|
||||||
|
|
||||||
aes->left = 0;
|
aes->left = 0;
|
||||||
@ -4016,6 +4029,8 @@ int wc_AesGcmDecrypt(Aes* aes, byte* out, const byte* in, word32 sz,
|
|||||||
aes->left--;
|
aes->left--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* WOLFSSL_AES_COUNTER */
|
#endif /* WOLFSSL_AES_COUNTER */
|
||||||
|
Reference in New Issue
Block a user