Несмотря на то, что я только что обновил openssl до 1.0.2r, я получаю сообщение об ошибке, указанное в заголовке.Я немного осмотрелся и предположительно это обычно вызвано установкой более старой версии, поэтому я и обновился, хотя это не исправило ошибку.Неисправный код:
EVP_MD_CTX hashctx;
EVP_MD *hashptr = EVP_get_digestbyname("SHA512");
EVP_MD_CTX_init(&hashctx);
EVP_DigestInit_ex(&hashctx, hashptr, NULL));
do {
len = fread(buffer, 1, BUFSIZ, hashInBuf);
EVP_DigestUpdate(&hashctx, buffer, len);
} while (len == BUFSIZ);
EVP_DigestFinal_ex(&hashctx, buffer, &len);
EVP_MD_CTX_cleanup(&hashctx);
Я попытался определить hashctx
после main
, однако это не устранило проблему.
hashInBuf
определено / открытоfile, len
установлен как size_t len;
, а BUFSIZ
установлен как unsigned char buffer[BUFSIZ]
(все ниже основного).