网站建设高端网站,泰州哪家做网站建设比较好,婚庆公司排名,兴安盟seo函数介绍
__crypto_register_alg函数实现向加密框架注册算法#xff08;包括静态算法和动态算法#xff09;的功能#xff0c;输入参数为算法说明alg#xff0c;注册成功时返回算法注册用的算法幼虫larval#xff0c;注册失败时返回失败原因。__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加密框架设计与实现