<div dir="ltr"><div>Hey all,</div><div><br></div><div>testing a bit the systemd-sysext with verity+signature, running a sample like this:</div><div><br></div><div>systemd-repart -S -s extension/ /run/extensions/k3sv1.30.0+k3s1.sysext.raw --private-key=db.key --certificate=db.pem</div><div><br></div><div>This generates a nice sysextension with verity and signed! (Nice work there BTW, its dead simple!)<br></div><div><br></div><div>But when trying to load it asks for a password, saying that the required key is not available</div><div><br></div><div>root@localhost:~# systemd-sysext status<br>HIERARCHY EXTENSIONS SINCE<br>/opt none - <br>/usr none - <br>root@localhost:~# systemd-sysext refresh<br>[ 658.620707] device-mapper: table: 252:2: verity: Root hash verification failed (-ENOKEY)<br>[ 658.621192] device-mapper: ioctl: error adding target to table<br>device-mapper: reload ioctl on 266b153bfd5592bf005a9ce9b15734f9293ecb3e095d1cb4b9f641f897ed7a22-verity (252:2) failed: Required key not available<br>🔐 Please enter image passphrase: (press TAB for no echo) <br></div><div><br></div><div>Is
this not supported? I can see some of my keys in the kernel keyring that match the keys in my FW:</div><div>3dcac152 I------ 1 perm 1f010000 0 0 asymmetri ITXAKA: 92b4fa443577dc2ccb116ca59f479a6652dc7b2d: X509.rsa 52dc7b2d []</div><div><br></div><div>But sysext claims that it cannot get it from the kernel keyring:</div><div><br></div><div>Validation of dm-verity signature failed via the kernel, trying userspace validation instead: Required key not available</div><div><br></div><div><br></div><div>The workaround is just to get the certificate and transform it into a nice x509 DER format under /run/verity.d/WHATEVER.crt</div><div><br></div><div>But I was wondering if there was a way for the sysext to just check against the EFI FW directly, get the public certs and try to verify against that?</div><div><br></div><div>Thanks!<br></div><div><br></div><div><br></div></div>