GnuTLS无法调用哈希函数

时间:2018-11-27 13:21:54

标签: hash cryptography gnutls

在编译和测试了gnuTLS库中的一些可用功能之后,我在使用加密库时遇到了问题。 当我尝试使用

生成哈希时
gnutls_hash_hd_t *dig;
gnutls_hash_init (dig, GNUTLS_DIG_SHA1);

for然后使用

计算哈希
 gnutls_hash (dig, const void * ptext, size_t ptext_len);

我的问题出现在

gnutls_hash_init (dig, GNUTLS_DIG_SHA1);

在crypto-api.c内调用gnutls_malloc()给我一个段错误。 我不知道该怎么做和做错了什么,并且gnuTLS API不太适合初学者使用,欢迎任何形式的建议

1 个答案:

答案 0 :(得分:0)

函数gnutls_hash_init不会为gnutls_hash_hd_t分配内存。相反,它需要一个指向现有分配的指针。

因此正确的用法例如是

  gnutls_hash_hd_t dig = {0}; // zero-initialize
  gnutls_hash_init(&dig, GNUTLS_DIG_SHA1);