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

参考链接

crypto_larval_lookup函数介绍

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

crypto_larval_lookup函数执行流程

linux加密框架 crypto 算法管理 - 算法查找接口 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),创建完成后会进行第三次查找,如下所示。

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

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

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

上一篇:从openssl中剥离bn库编译成静态库


下一篇:元宇宙概念链游Game Fi2.0[Crypto Clans ]部落冲突强势上线