没有用于调用' EVP_DigestFinal'的匹配功能 - 在C ++中使用openssl lib

时间:2015-10-26 09:33:45

标签: c++ openssl

我已成功将openssl dev库集成到main.cpp文件中。目前包含openssl/evp.h

我可以成功使用EVP_DigestInitEVP_DigestUpdate个函数而不会出现任何错误。但是,如果我尝试拨打EVP_DigestFinal,则会出现以下错误:

No matching function for call to 'EVP_DigestFinal'

然而,函数在同一个头文件evp.h中定义。我该怎么办才能使用这个功能呢?谢谢你的帮助。

相关代码:

EVP_MD_CTX ctx;
char ch[128];
int val = 128;
EVP_DigestFinal(&ctx, ch, val);

1 个答案:

答案 0 :(得分:1)

我在OpenSSL.org找到的签名是

int EVP_DigestFinal(EVP_MD_CTX *ctx, unsigned char *md, int *s);

要匹配第二个参数需要unsigned char和第三个参数的地址,比如

EVP_MD_CTX ctx;
unsigned char ch[128];
_______^
int val = 128;
EVP_DigestFinal(&ctx, ch, &val);
__________________________^