微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

OpenSSL EVP“ EVP_CTRL_GCM_GET_TAG”失败

如何解决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。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。