我的系统是Ubuntu16.04 LTS.当我使用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;
...
}
Run Code Online (Sandbox Code Playgroud)
错误:
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;
Run Code Online (Sandbox Code Playgroud)
Mat*_*ell 12
您正在使用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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10738 次 |
| 最近记录: |