我正在使用AES-GCM解密一些数据。我有一些额外的身份验证数据(AAD),身份验证标记和实际加密数据。
我需要做的是在实际解密之前验证AAD和加密数据。
我知道如果数据验证失败,OpenSSL的EVP_DecryptFinal_ex
函数将返回0,但似乎没有办法验证数据而不实际解密它。
我需要这样做的原因是我的加密数据可能非常大,所以我只想使用EVP_DecryptUpdate
一次解密它。但是,这样做会提供数据,我无法确定是否真实。
我需要做的是验证所有AAD和加密数据,然后使用EVP_DecryptUpdate
一次解密它。我可以一次解密所有数据来验证它,虽然这会增加我的应用程序的额外计算时间,我想避免。