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.pswp.cn/news/446076.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/446076.shtml
英文地址,請注明出處:http://en.pswp.cn/news/446076.shtml
如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!