【问题标题】:‘EVP_MD_CTX_new’ was not declared in this scope in openssl“EVP_MD_CTX_new”未在 openssl 的此范围内声明
【发布时间】:2021-07-08 15:42:26
【问题描述】:

我正在使用 OpenSSL 文档中的模板并收到以下错误。尝试使用 init 的替代方法也不起作用。我正在使用 openssl 版本 1.1.1(通过命令 openssl version 检查)

错误:“EVP_MD_CTX_new”未在此范围内声明错误

注意:建议的替代方案:“EVP_MD_CTX_init”

“EVP_MD_CTX_free”未在此范围内声明

void digest_message(const unsigned char *message, size_t message_len, unsigned char **digest, unsigned int *digest_len)
{
    EVP_MD_CTX *mdctx;

    if((mdctx = EVP_MD_CTX_create()) == NULL)
        printf("error while hahsing");
//      handleErrors();

    if(1 != EVP_DigestInit_ex(mdctx, EVP_sha256(), NULL))
        printf("error while hahsing");

    if(1 != EVP_DigestUpdate(mdctx, message, message_len))
        printf("error while hahsing");

    if((*digest = (unsigned char *)OPENSSL_malloc(EVP_MD_size(EVP_sha256()))) == NULL)
        printf("error while hahsing");

    if(1 != EVP_DigestFinal_ex(mdctx, *digest, digest_len))
        printf("error while hahsing");

    EVP_MD_CTX_destroy(mdctx);
}

【问题讨论】:

    标签: openssl sha


    【解决方案1】:

    openssl API changed 1.1 版:

    EVP_MD_CTX_create()EVP_MD_CTX_destroy() 在 OpenSSL 1.1 中重命名为 EVP_MD_CTX_new()EVP_MD_CTX_free()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-20
      • 2016-08-09
      • 2019-02-17
      • 2021-01-07
      • 2016-10-27
      • 2016-06-03
      相关资源
      最近更新 更多