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算法注册成功后,算法管理链表上已注册算法情况如下所示。


函数整体的调用逻辑
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/CHYabc123456hh/article/details/122254730

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值