我已经安装了OpenSSL-1.1.1-pre5并尝试运行sha-3算法但是当我运行以下c代码时,我得到未定义的引用EVP_sha3_224
#define MSG_SIZE 190
#include <stdio.h>
#include <string.h>
#include <openssl/evp.h>
void str2hex(char *str, unsigned char *hex, int len) {
int tt, ss;
char temp[5];
for (tt = 0, ss = 0; tt < len, ss < 2 * len; tt++, ss += 2) {
temp[0] = '0';
temp[1] = 'x';
temp[2] = str[ss];
temp[3] = str[ss + 1];
temp[4] = 0;
hex[tt] = strtol(temp, NULL, 0);
}
}
int main()
{
unsigned char stringt[MSG_SIZE],digest[MSG_SIZE];
size_t len;
unsigned char buffer[32];
const EVP_MD *md;
char *string = "45927e32ddf801caf35e18e7b5078b7f5435278212ec6bb99df884f49b327c6486feae46ba187dc1cc9145121e1492e6b06e9007394dc33b7748f86ac3207cfe";
md = EVP_sha3_224();
str2hex(string, stringt, MSG_SIZE);
EVP_MD_CTX *hashctx;
hashctx = EVP_CIPHER_CTX_new();
EVP_DigestInit_ex(hashctx, md, NULL);
EVP_DigestUpdate(hashctx, stringt, strlen(string)/2);
unsigned int outlen;
EVP_DigestFinal_ex(hashctx, digest, &outlen);
EVP_MD_CTX_cleanup(hashctx);
int i;
for (i = 0; i < outlen; i++)
printf("%02x", digest[i]);
}
有人可以帮我弄清楚可能是什么原因。对于这个错误。