OpenSSL-1.1.1-pre5 undefined引用EVP_sha3_224

时间:2018-04-19 09:48:39

标签: c openssl cryptography sha

我已经安装了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]);
}

有人可以帮我弄清楚可能是什么原因。对于这个错误。

0 个答案:

没有答案