mirror of https://github.com/wolfSSL/wolfssl.git
Ensure ChaCha20 updates out length during cipher update
parent
824d44b705
commit
e8febaf414
|
@ -51683,9 +51683,12 @@ static int test_wolfssl_EVP_chacha20_poly1305(void)
|
|||
AssertIntEQ(EVP_EncryptInit_ex(ctx, NULL, NULL, key, iv), WOLFSSL_SUCCESS);
|
||||
AssertIntEQ(EVP_EncryptUpdate(ctx, NULL, &outSz, aad, sizeof(aad)),
|
||||
WOLFSSL_SUCCESS);
|
||||
AssertIntEQ(outSz, sizeof(aad));
|
||||
AssertIntEQ(EVP_EncryptUpdate(ctx, cipherText, &outSz, plainText,
|
||||
sizeof(plainText)), WOLFSSL_SUCCESS);
|
||||
AssertIntEQ(outSz, sizeof(plainText));
|
||||
AssertIntEQ(EVP_EncryptFinal_ex(ctx, cipherText, &outSz), WOLFSSL_SUCCESS);
|
||||
AssertIntEQ(outSz, 0);
|
||||
/* Invalid tag length. */
|
||||
AssertIntEQ(EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_GET_TAG,
|
||||
CHACHA20_POLY1305_AEAD_AUTHTAG_SIZE-1, tag), WOLFSSL_FAILURE);
|
||||
|
@ -51705,10 +51708,13 @@ static int test_wolfssl_EVP_chacha20_poly1305(void)
|
|||
AssertIntEQ(EVP_DecryptInit_ex(ctx, NULL, NULL, key, iv), WOLFSSL_SUCCESS);
|
||||
AssertIntEQ(EVP_DecryptUpdate(ctx, NULL, &outSz, aad, sizeof(aad)),
|
||||
WOLFSSL_SUCCESS);
|
||||
AssertIntEQ(outSz, sizeof(aad));
|
||||
AssertIntEQ(EVP_DecryptUpdate(ctx, decryptedText, &outSz, cipherText,
|
||||
sizeof(cipherText)), WOLFSSL_SUCCESS);
|
||||
AssertIntEQ(outSz, sizeof(cipherText));
|
||||
AssertIntEQ(EVP_DecryptFinal_ex(ctx, decryptedText, &outSz),
|
||||
WOLFSSL_SUCCESS);
|
||||
AssertIntEQ(outSz, 0);
|
||||
EVP_CIPHER_CTX_free(ctx);
|
||||
|
||||
printf(resultFmt, passed);
|
||||
|
|
|
@ -687,6 +687,7 @@ int wolfSSL_EVP_CipherUpdate(WOLFSSL_EVP_CIPHER_CTX *ctx,
|
|||
return WOLFSSL_FAILURE;
|
||||
}
|
||||
else {
|
||||
*outl = inl;
|
||||
return WOLFSSL_SUCCESS;
|
||||
}
|
||||
}
|
||||
|
@ -697,6 +698,7 @@ int wolfSSL_EVP_CipherUpdate(WOLFSSL_EVP_CIPHER_CTX *ctx,
|
|||
return WOLFSSL_FAILURE;
|
||||
}
|
||||
else {
|
||||
*outl = inl;
|
||||
return WOLFSSL_SUCCESS;
|
||||
}
|
||||
}
|
||||
|
@ -946,6 +948,7 @@ int wolfSSL_EVP_CipherFinal(WOLFSSL_EVP_CIPHER_CTX *ctx, unsigned char *out,
|
|||
return WOLFSSL_FAILURE;
|
||||
}
|
||||
else {
|
||||
*outl = 0;
|
||||
return WOLFSSL_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue