- 论坛徽章:
- 0
|
我发现问题了,crypto.h里面提供的借口函数和api.c里面的不一样,之后我把代码修改成这样,但是每次生成的md5摘要都不一样,求解是怎么一回事?- char *do_digest(char * code) {
- char *result;
- int code_len = strlen(code);
-
- tfm = crypto_alloc_hash("md5",0,CRYPTO_ALG_ASYNC);
- if(IS_ERR(tfm))
- return 0;
- desc = (struct hash_desc *)kmalloc(sizeof(struct hash_desc),GFP_KERNEL);
- desc->tfm = tfm;
- desc->flags = 0;
- sg_init_one(sg,code,code_len);
- crypto_hash_init(desc);
- crypto_hash_update(desc,sg,1);
- result = (char *)kmalloc(sizeof(char)*50,GFP_KERNEL);
- if(result == NULL) {
- crypto_free_hash(tfm);
- return 0;
- }
- memset(result,0,sizeof(char)*50);
- crypto_hash_final(desc,result);
- crypto_free_hash(tfm);
- return result;
- }
复制代码 |
|