日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux加密框架 crypto 通用算法注册接口__crypto_register_alg注册流程

發布時間:2023/12/13 linux 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux加密框架 crypto 通用算法注册接口__crypto_register_alg注册流程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

函數介紹

  • __crypto_register_alg函數實現向加密框架注冊算法(包括靜態算法和動態算法)的功能,輸入參數為算法說明alg,注冊成功時返回算法注冊用的算法幼蟲larval,注冊失敗時返回失敗原因。
  • __crypto_register_alg函數執行的算法注冊流程如下所示。

  • 1)算法注冊過程可類比為幼蟲(larval)成長為成蟲(adult)的過程,成蟲指的是帶注冊算法,而幼蟲指的是在注冊和算法正確性檢驗過程中使用的臨時算法(之所以稱之為幼蟲是因為這個臨時的算法不能提供可供調用的算法接口,只是提供算法的一些基本屬性,而且其生命周期有限)。算法幼蟲雖然是臨時的算法,但是也可以表示為通用算法說明的一個實例,并且加密框架也是通過算法管理鏈表管理算法幼蟲的,通過算法標志cra_flags中的標志位CRYPTO_ALG_LARVAL標識算法幼蟲。
  • 2)在算法注冊前,首先要遍歷算法管理鏈表確認是否可以進行本次注冊,包括以下幾種情況:
  • a)算法不能重復注冊,如果同名算法已注冊或正在注冊(即算法管理鏈表上有同名的算法幼蟲,說明同名算法正在注冊中)則終止注冊流程;
  • b)算法處于瀕死狀態(CRYPTO_ALG_DEAD狀態或CRYPTO_ALG_DYING狀態),說明該算法正在被刪除或卸載,終止注冊流程;
  • c)如果待注冊的算法是已注冊算法的算法驅動(即注冊算法的算法名和已注冊算法的算法驅動名相同),說明算法注冊流程有問題,終止注冊流程。
  • 3)如果遍歷算法管理鏈表確認可以繼續執行算法注冊流程時,調用crypto_larval_alloc函數創建對應的算法幼蟲larval,這個算法幼蟲稱之為檢測用算法幼蟲。檢測用算法幼蟲繼承待注冊算法的算法名、算法驅動名、優先級(>0)、算法類型等屬性,設置算法幼蟲標志CRYPTO_ALG_LARVAL和已檢驗標志CRYPTO_ALG_TESTED,初始化完成量completion,將通用算法說明的cra_destroy接口設置為crypto_larval_destroy函數,再將待注冊算法設置為對應的算法成蟲adult(此時待注冊算法的引用計數為2)。
  • 4)某個算法第一次注冊時,__crypto_register_alg函數中接口調用情況如下所示。?

  • ?5)假設在向加密框架注冊AES算法,__crypto_register_alg函數執行完畢時,管理算法鏈表中已注冊算法情況如下所示:

  • 其中aes_alg為AES算法的通用算法說明,aes_larval_t表示AES算法注冊時的檢測用算法幼蟲,也是算法幼蟲對應的通用算法說明。?

函數調用完整流程?

?參考鏈接

  • Linux加密框架的算法管理(一)_家有一希的博客-CSDN博客_linux加密框架設計與實現

總結

以上是生活随笔為你收集整理的linux加密框架 crypto 通用算法注册接口__crypto_register_alg注册流程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。