Desejo adicionar uma chave pública do par de chaves que usei para assinar meu módulo do kernel em system_keyring. No entanto, há um problema:
Com o comando de cat /proc/keys | grep system_keyring
, obtive a entrada (ID) de system_keyring. No entanto, ao tentar adicionar minha chave pública com este comando: keyctl padd asymmetric "" 0xXXXXXXXX</test/signing_key.x509
, recebi o erro "Permissão negada".
Acho que é devido à restrição descrita no "module_signing.txt" https://01.org/linuxgraphics/gfx-docs/drm/admin-guide/module-signing.html :
Observe, no entanto, que o kernel só permitirá que as chaves sejam adicionadas ao .system_keyring se o wrapper X.509 da nova chave for validamente assinado por uma chave que já resida no .system_keyring no momento em que a chave foi adicionada.
No entanto, não consigo encontrar nenhum documento que descreva como assinar o "x.509 wrapper" com a chave já residente no .system_keyring.
Além disso, acho que as chaves nesse chaveiro são apenas chaves públicas. Então, eu nem acho que vai funcionar, mesmo que eu consiga extrair a chave pública do chaveiro e assinar o "invólucro X.509" com essa chave pública.
De qualquer forma, preciso de alguma ajuda aqui. Ou, mesmo que algo possa me dar uma dica de como enviar meu módulo do kernel para o RedHat para que ele possa ser assinado pelo RedHat e instalado na instalação do usuário sem reconstruir o kernel?