我想将用于签署内核模块的密钥对中的公钥添加到 system_keyring 中。但是,有一个问题:
使用 的命令cat /proc/keys | grep system_keyring
,我得到了 system_keyring 的条目(ID)。但是,当尝试使用以下命令添加我的公钥时:keyctl padd asymmetric "" 0xXXXXXXXX</test/signing_key.x509
,我遇到了“权限被拒绝”错误。
我认为这是由于“module_signing.txt” https://01.org/linuxgraphics/gfx-docs/drm/admin-guide/module-signing.html中描述的限制:
但是请注意,如果新密钥的 X.509 包装器由在添加密钥时已驻留在 .system_keyring 中的密钥有效签名,则内核将只允许将密钥添加到 .system_keyring。
但是,我找不到任何文档来描述如何使用已驻留在 .system_keyring 中的密钥对“X.509 包装器”进行签名。
另外,我认为该密钥环中的密钥只是公钥。所以,我什至认为它不会起作用,即使我可以从密钥环中提取公钥并用该公钥签署“X.509 包装器”。
无论如何,这里需要一些帮助。或者,即使有些东西可以给我提示如何将我的内核模块提交给 RedHat,以便它可以由 RedHat 签名并在用户安装时安装而无需重建内核?