OpenSSL EVP“ EVP_CTRL_GCM_GET_TAG”失败

问题描述

我在C ++中使用Openssl EVP。以某种方式获取标签失败。 我的代码:

'dotnet' is not recognised as an internal or external command,operable program or batch file.

但是为什么呢?其他所有EVP功能都表现良好。我想念什么?我是否需要调用其他功能? @ \ 267 *而不是标签被写入tag.txt文件。

解决方法

代码中有两个错误:

  • 由于使用sizeof来确定IV的长度,所以也要计算0终止符,并确定错误的长度13。必须应用sizeof而不是strlen,它会返回正确的值12。
  • 在确定标签之前释放上下文,即在EVP_CIPHER_CTX_free之前调用EVP_CIPHER_CTX_ctrl。此顺序必须颠倒。

通过这些更改,将创建正确的密文和标记。

请注意,固定键/ IV对只能用于测试。实际上,密钥/ IV对只能使用一次,特别是对于GCM。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...