参考链接
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
1128

被折叠的 条评论
为什么被折叠?



