linux加密框架 crypto 静态哈希算法crypto_register_shash注册流程
参考链接
- Linux加密框架的算法管理(一)_家有一希的博客-CSDN博客_linux加密框架设计与实现
- shash.c - crypto/shash.c - Linux source code (v5.15.12) - Bootlin
函数介绍
- crypto_register_shash函数实现向加密框架注册静态哈希算法的功能,输入参数为待注册哈希算法的哈希算法说明alg,返回值为0表示注册成功,否则表示注册过程中出现异常。
执行流程
函数详解
- 函数shash_prepare_alg实现哈希算法说明alg的有效性(包括摘要长度、描述符长度和上下文空间大小等)检查和注册前的准备工作(主要是统一设置部分成员变量值)。
- 以MD5算法的哈希算法说明md5_salg在注册前后各成员变量变化情况如下所示。
- 函数shash_prepare_alg中最重要的一点是设置了通用算法说明中的成员变量cra_type,(这一步具体是在 shash_prepare_alg函数中设定的)设置为crypto_shash_type,这样外部应用就可以访问到已注册的哈希算法了。
- shash.c - crypto/shash.c - Linux source code (v5.15.11) - Bootlin
- 2)准备工作完成后,静态哈希算法的注册流程也是由静态算法注册函数crypto_register_alg完成,注意的是crypto_register_shash函数的输入参数为哈希算法说明alg,而调用crypto_register_alg函数时的输入参数为哈希算法说明对应的通用算法说明base(=&alg->base)。
- 3)crypto_register_shash函数中接口调用情况如下所示,其中salg为待注册哈希算法的同步哈希算法说明,alg为待注册哈希算法的通用算法说明。
- 4)MD5算法注册成功后,算法管理链表上已注册算法情况如下所示。
函数整体的调用逻辑
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/446081.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!