linux加密框架 crypto 算法管理 - 算法查找接口 crypto_find_alg
算法查找接口crypto_find_alg
- 算法实例tfm是算法的一个可运行的副本,因此在创建算法实例前首先要查找确认算法是否已经注册有效,此时算法查找由函数crypto_find_alg实现。
- 补充:
- struct crypto_tfm *tfm;
- crypto_tfm类型指针tfm可以理解为指代了一个算法对象
- crypto.h - include/linux/crypto.h - Linux source code (v5.15.12) - Bootlin crypto_alg
- crypto.h - include/linux/crypto.h - Linux source code (v5.15.12) - Bootlin crypto_tfm
- Linux加密框架crypto crypto_alg|cipher_alg数据结构|AES例子_CHYabc123456hh的博客-CSDN博客
- crypto_find_alg函数输入参数包括算法名name、算法前端frontend、算法类型type和算法类型屏蔽位mask,查找命中时返回查找到的算法alg,查找未命中时返回异常。
- 补充:
- Linux内核 crypto文件夹 密码学知识学习_CHYabc123456hh的博客-CSDN博客 crypto_type
- crypto_find_alg函数的处理逻辑比较简单,调用查找接口lookup进行算法查找。如果算法前端frontend定义了查找接口,lookup=frontend->lookup,否则lookup=crypto_alg_mod_lookup。(截止到目前为止 版本v5.15.12 不支持,1,frontend的类型是crypto_type,里面没有这个函数接口;2,函数crypto_alg_mod_lookup的返回类型是 crypto_alg)
- 算法前端frontend的数据类型为struct crypto_type,即通用算法说明中的算法类型常量。加密框架中定义的大部分算法类型常量,如同步哈希算法类型常量crypto_shash_type、异步哈希算法类型常量crypto_ahash_type、块加密算法类型常量crypto_blkcipher_type都未定义lookup接口,因此调用crypto_find_alg函数使用的查找接口都是默认查找接口
- crypto_alg_mod_lookup,这样crypto_find_alg函数相当于crypto_alg_mod_lookup函数的包裹函数。
- 输入参数中的算法类型type表示最佳的算法类型,type&mask表示允许使用的算法类型。异步哈希算法实例前端crypto_ahash_type中,type=CRYPTO_ALG_TYPE_AHASH(0x09)表示最佳的算法类型为异步哈希算法,mask=CRYPTO_ALG_TYPE_AHASH_MASK(0x0C),而type&mask=0x08(CRYPTO_ALG_TYPE_HASH)表示只要是哈希算法就行,不强求实现方式。
- crypto.h - include/linux/crypto.h - Linux source code (v5.15.12) - Bootlin
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/446076.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!