c - 对 request_module() 的调用不会在 Linux 内核中返回
问题描述
我目前正在努力使用 IMA/EVM 签名对文件进行签名。
类似的事情已经在基于 3.14.79 的嵌入式 Linux 系统上完成。现在我正在处理一个基于 Linux 4.14.98 的系统。问题不在于签名本身,而是在验证新签名时开始出现问题。
系统当前处于非强制状态,即丢失或不正确的签名不会导致程序终止。
在错误的情况下,系统只是在签名验证过程中卡住了。如果它在 shell 上输入命令后发生,我可以用 中断Ctrl-C
,但如果它发生在引导期间,就是这样。
在我寻找错误的过程中,我整理了内核中与密钥环搜索和完整性密钥环缓存相关的一些错误。但现在我被困住了。
我在代码中放置了一些printk
日志,发现问题出在这段代码中:
struct crypto_alg *crypto_larval_lookup(const char *name, u32 type, u32 mask)
{
...
alg = crypto_alg_lookup(name, type, mask);
if (!alg && !(mask & CRYPTO_NOLOAD)) {
request_module("crypto-%s", name);
...
在哪里name
举行"pkcs1pad(rsa,sha256)"
在某些情况下,此函数调用会返回,在其他情况下,它不会返回,直到我输入“Ctrl-C”或根本不返回。
我不确定在哪里可以找到更多信息、错误配置、缺少标志或任何其他提示如何解决问题。
解决方案
推荐阅读
- javascript - Python程序和JS之间的本地套接字连接
- ionic-framework - 如何在离子中保存字符串资源
- python - SWIG - python 中的 C++ 代码
- sql - 为什么查询优化器选择完全不同的查询计划?
- .net - 构建包时如何限制版本?
- apache - Apache重定向到另一个端口
- polymer - Polymer 2.0 无法从 id 获取孩子
- office-js - 我是否需要 Office 365 来安装加载项
- android - ProGuard 找不到引用的类 android.net.http.AndroidHttpClient
- mysql - MariaDB 系统变量引用了哪些数据,例如 innodb_log_buffer_size