2017-03-08 91 views
2

私のシステムはUbuntu16.04 LTSです。 OpenSSL EVP_MD_CTXを使用すると、このエラーが発生しました。誰でも助けてくれますか?EVP_MD_CTX "エラー: 'ctx'の記憶容量がわからない"


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

[email protected]:/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; 

答えて

4

あなたはこのような構造を作ったの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); 
+0

このようにしてコードを修正したところ、作業が開始されました。 – tianmt

関連する問題