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