我的系统是Ubuntu16.04LTS。当我使用OpenSSL EVP_MD_CTX时,出现了这个错误。有谁可以帮我?
码
#include <stdio.h>
#include <openssl/evp.h>
#include <openssl/rsa.h>
int main()
{
int ret,inlen,outlen=0;
unsigned long e=RSA_3;
char data[100],out[500];
EVP_MD_CTX md_ctx, md_ctx2;
...
}误差
root@ubuntu:/work/test# gcc evp_openssl_test.c -I/usr/local/include -L/usr/local/lib -lssl -lcrypto -o
evptestevp_openssl_test.c: In function ‘main’:
evp_openssl_test.c:13:19: error: storage size of ‘md_ctx’ isn’t known
EVP_MD_CTX md_ctx,md_ctx2;发布于 2017-03-08 09:03:03
您使用的是OpenSSL 1.1.0,它使这个结构(和许多其他结构)变得不透明--这意味着您不能堆栈分配它。相反,请这样做:
EVP_MD_CTX *md_ctx;
md_ctx = EVP_MD_CTX_new();
if (md_ctx == NULL)
...
...
EVP_MD_CTX_free(md_ctx);发布于 2020-05-29 19:22:36
我也犯了一个类似的错误,但是在EVP_CIPHER_CTX上
error: storage size of ‘ctx’ isn’t known
EVP_CIPHER_CTX ctx;我解决了这个问题:
EVP_CIPHER_CTX *ctx;
ctx = EVP_CIPHER_CTX_new();我希望这能帮助有同样问题的人。
https://stackoverflow.com/questions/42662733
复制相似问题