linux加密框架 crypto 算法管理 - 算法查找接口 crypto_alg_mod_lookup
生活随笔
收集整理的這篇文章主要介紹了
linux加密框架 crypto 算法管理 - 算法查找接口 crypto_alg_mod_lookup
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
參考鏈接
- Linux加密框架的算法管理(二)_家有一希的博客-CSDN博客
- linux加密框架 crypto 算法管理 - 算法查找接口 crypto_find_alg_CHYabc123456hh的博客-CSDN博客
函數介紹
- crypto_alg_mod_lookup函數輸入參數包括待查找的算法名name、算法類型type和算法類型屏蔽位mask,查找命中時返回查找到的算法alg,查找未命中時返回異常。
- api.c - crypto/api.c - Linux source code (v5.15.12) - Bootlin
crypto_alg_mod_lookup函數執行流程
- 1)crypto_alg_mod_lookup函數的基本邏輯為要么從算法管理鏈表已注冊的算法中查找到符合條件的算法,要么按照查找條件動態創建并注冊新的算法。從外部調用者角度看,這兩種情況都是查找命中。
- 2)外部應用使用的算法必須是經過正確性檢驗(即算法標志中已置CRYPTO_ALG_TESTED狀態位)的,因此在查找前更新待查找算法的算法類型type和算法類型屏蔽位mask,確保后續查找到的算法是經過正確性檢驗的、可用的算法。
- 3)算法查找流程由crypto_larval_lookup函數實現,其基本邏輯為要么從算法管理鏈表已注冊的算法中查找到符合條件的算法,要么按照查找條件創建與待查找算法同名的算法幼蟲。crypto_larval_lookup函數的返回值為通用算法說明alg,通過檢查其算法標志cra_flags的CRYPTO_ALG_LARVAL狀態位確認alg是否為算法幼蟲(由內聯函數crypto_is_larval實現)
- 如果想查找名為"md5"的哈希算法,查找返回的是MD5算法的通用算法說明md5_alg;如果想查找名為"hmac(md5)"的哈希算法,假設第一次使用該算法,算法管理鏈表中未注冊該算法,因此查找返回的是同名的算法幼蟲對應的通用算法說明。
- 4)如果查找到的是算法幼蟲,即當前線程創建的注冊用算法幼蟲,在加密通知鏈發布創建動態算法的通知,由專門的內核線程負責創建并注冊動態算法,算法查找線程調用crypto_larval_wait函數等待算法注冊完成,然后調用crypto_larval_kill函數清理注冊用算法幼蟲。
- 5)crypto_alg_mod_lookup函數中接口調用情況如下所示
總結
以上是生活随笔為你收集整理的linux加密框架 crypto 算法管理 - 算法查找接口 crypto_alg_mod_lookup的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wpf将文字转化为图形_将创新转化为实际
- 下一篇: 中行优客分期卡怎么刷不出来?只能在这些P