在模块init期间使用Linux内核加密库

时间:2015-11-12 09:21:50

标签: linux linux-kernel

我正在编写一个Linux内核模块,它内置于内核映像。因此,在引导期间调用模块的初始化函数,即module_init(myinit)。在myinit内,我需要进行SHA1哈希操作。但是,函数crypto_alloc_hash("sha1", 0, CRYPTO_ALG_ASYNC);返回-2。我的猜测是myinit在加密库的初始化函数之前被称为,因此SHA1算法尚未注册。

然后我尝试使用late_initcall代替module_init。有效。我认为这很丑陋。如果加密模块也在使用late_initcall怎么办?有多少个模块,有多少初始级别足够?

有更好的方法吗?例如。通过指定模块依赖关系,或者,等待表示加密库加载完成的事件。

0 个答案:

没有答案