在编译和测试了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不太适合初学者使用,欢迎任何形式的建议
答案 0 :(得分:0)
函数gnutls_hash_init
不会为gnutls_hash_hd_t
分配内存。相反,它需要一个指向现有分配的指针。
因此正确的用法例如是
gnutls_hash_hd_t dig = {0}; // zero-initialize
gnutls_hash_init(&dig, GNUTLS_DIG_SHA1);