linux加密框架 crypto 算法管理 - 算法查找接口 crypto_larval_lookup

参考链接

crypto_larval_lookup函数介绍

crypto_larval_lookup函数执行流程

算法查找流程

  • 1)在算法查找前首先确认算法名是否有效,如果算法名为空,终止查找流程,返回异常。
  • 2)算法查找流程由函数crypto_alg_lookup实现,返回值为空说明未查找到符合的算法,否则为查找到符合条件的算法(可能是算法幼虫)。
  • 3)在crypto_larval_lookup函数中,最多可能进行三次算法查找,其中前两次显式地调用crypto_alg_lookup函数进行,第三次在crypto_larval_add函数中进行。
  • 4)在第一次未查找到算法时,尝试通过request_module函数按算法名自动加载静态算法模块(算法名.ko),然后进行第二次查找。
  • 5)如果第二次仍然未查找到算法,调用crypto_larval_add函数创建同名的算法幼虫(称之为注册用算法幼虫,算法优先级为-1),创建完成后会进行第三次查找,如下所示。

创建注册用算法幼虫

  •  crypto_larval_add函数要么返回第三次查找命中的算法(如果是算法幼虫,则调用crypto_larval_wait函数等待算法注册完成,返回新注册的算法)要么返回创建的注册用算法幼虫(已添加到算法管理链表中)。
  • 6)如果前两次查找命中,但查找到的是算法幼虫(可能是注册用算法幼虫也可能是检测用算法幼虫),说明符合要求的算法正在注册中,调用crypto_larval_wait函数等待算法注册完成,返回注册成功的算法。如果是检测用算法幼虫,注册完成的标志是算法成虫已完成正确性检验;如果是注册用算法幼虫,注册完成的标志是已设置有效的算法成虫(并且已完成正确性检验)。
  • 7)crypto_larval_lookup函数中接口调用情况如下所示。

接口调用情况

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值