My system is Ubuntu16.04 LTS. when I use the OpenSSL EVP_MD_CTX
, this error appeared. Can anyone help me?
CODE:
#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;
...
}
ERROR:
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;
You are using OpenSSL 1.1.0 which made this structure (and many others) opaque - which means you cannot stack allocate it. Instead do this: