mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-30 18:57:27 +02:00
Updated wolfSSL_EVP_Cipher() for AES GCM
This commit is contained in:
41
src/ssl.c
41
src/ssl.c
@ -14405,12 +14405,41 @@ int wolfSSL_EVP_MD_type(const WOLFSSL_EVP_MD *md)
|
|||||||
case AES_192_GCM_TYPE :
|
case AES_192_GCM_TYPE :
|
||||||
case AES_256_GCM_TYPE :
|
case AES_256_GCM_TYPE :
|
||||||
WOLFSSL_MSG("AES GCM");
|
WOLFSSL_MSG("AES GCM");
|
||||||
if (ctx->enc)
|
if (ctx->enc) {
|
||||||
ret = 1;
|
if (dst){
|
||||||
// ret = wc_AesGcmEncrypt(&ctx->cipher.aes, dst, src, len);
|
/* encrypt confidential data*/
|
||||||
else
|
ret = wc_AesGcmEncrypt(&ctx->cipher.aes, dst, src, len,
|
||||||
// ret = wc_AesGcmDecrypt(&ctx->cipher.aes, dst, src, len);
|
ctx->iv, ctx->ivSz, ctx->authTag, ctx->authTagSz,
|
||||||
ret = 0;
|
NULL, 0);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
/* authenticated, non-confidential data */
|
||||||
|
ret = wc_AesGcmEncrypt(&ctx->cipher.aes, NULL, NULL, 0,
|
||||||
|
ctx->iv, ctx->ivSz, ctx->authTag, ctx->authTagSz,
|
||||||
|
src, len);
|
||||||
|
/* Reset partial authTag error for AAD*/
|
||||||
|
if (ret == AES_GCM_AUTH_E)
|
||||||
|
ret = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (dst){
|
||||||
|
/* decrypt confidential data*/
|
||||||
|
ret = wc_AesGcmDecrypt(&ctx->cipher.aes, dst, src, len,
|
||||||
|
ctx->iv, ctx->ivSz, ctx->authTag, ctx->authTagSz,
|
||||||
|
NULL, 0);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
/* authenticated, non-confidential data*/
|
||||||
|
ret = wc_AesGcmDecrypt(&ctx->cipher.aes, NULL, NULL, 0,
|
||||||
|
ctx->iv, ctx->ivSz,
|
||||||
|
ctx->authTag, ctx->authTagSz,
|
||||||
|
src, len);
|
||||||
|
/* Reset partial authTag error for AAD*/
|
||||||
|
if (ret == AES_GCM_AUTH_E)
|
||||||
|
ret = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
#endif /* HAVE_AESGCM */
|
#endif /* HAVE_AESGCM */
|
||||||
#ifdef HAVE_AES_ECB
|
#ifdef HAVE_AES_ECB
|
||||||
|
Reference in New Issue
Block a user