没有用于调用 'EVP_DigestFinal' 的匹配函数 - 在 C++ 中使用 openssl 库

No matching function for call to 'EVP_DigestFinal' - Using openssl lib in C++

我已经成功地将 openssl 开发库集成到 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);

根据我在 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);
__________________________^