首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux库中的alloc_ahash与alloc_shash

Linux库中的alloc_ahash与alloc_shash
EN

Stack Overflow用户
提问于 2015-11-25 14:36:22
回答 1查看 901关注 0票数 2

在Linux密码库中,以下方面有什么区别:

  • Crypto_alloc_hash(.);
  • Crypto_alloc_ahash(.);
  • Crypto_alloc_shash(.);

我猜'a‘代表异步,'s’代表同步。

如果是这样的话,在执行选择方面意味着什么?

(在使用密码库处理SHA1数据包时,我试图找到计算HMAC()值的正确方法)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-25 17:50:32

所以Question1所以Question2是你的好起点。

没有什么叫做异步和同步functions.All函数(被调用者)需要返回给调用者。

但也有异步和同步操作。

crypto_alloc_ahash() & crypto_alloc_shash()的不同之处在于,前者由异步操作组成,后者由同步操作组成。

在第一种情况下,该功能在调用时立即返回主方案,使其业务得以完成。当操作完成时,他们通常使用信号/中断来让主程序知道他们已经完成了。您可以看到实现这里,下面给出了一个摘录。

代码语言:javascript
复制
struct crypto_ahash *crypto_alloc_ahash(const char *alg_name, u32 type,
                                        u32 mask)
 {
         return crypto_alloc_tfm(alg_name, &crypto_ahash_type, type, mask);
 }

在后一种情况下,主程序(主叫者)必须等待函数中的操作完成才能继续。在这种情况下,我想不出同步是强制性的特定场景。您可以看到实现这里

实际上,这两个函数看起来都是一样的,但它们返回的值类型是相同的。

函数的异步变体通常是您应该寻找的程序的速度原因。此外,由于明显的原因,您不能从同步变体中进行异步调用。

编辑:

哈希是同步散列,我无法找出散列和shash之间的区别。

两种方法都会在成功的情况下返回分配的密码句柄;如果出现错误,则IS_ERR为真,PTR_ERR返回错误代码。

沙什 vs 哈希

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33919247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档