diff options
-rw-r--r-- | meta-integrity/README.md | 1 | ||||
-rw-r--r-- | meta-integrity/classes/ima-evm-rootfs.bbclass | 10 |
2 files changed, 9 insertions, 2 deletions
diff --git a/meta-integrity/README.md b/meta-integrity/README.md index 75dadd4..6439729 100644 --- a/meta-integrity/README.md +++ b/meta-integrity/README.md | |||
@@ -95,6 +95,7 @@ the image, enable image signing in the local.conf like this: | |||
95 | 95 | ||
96 | IMA_EVM_KEY_DIR = "${INTEGRITY_BASE}/data/debug-keys" | 96 | IMA_EVM_KEY_DIR = "${INTEGRITY_BASE}/data/debug-keys" |
97 | IMA_EVM_PRIVKEY = "${IMA_EVM_KEY_DIR}/privkey_ima.pem" | 97 | IMA_EVM_PRIVKEY = "${IMA_EVM_KEY_DIR}/privkey_ima.pem" |
98 | IMA_EVM_PRIVKEY_KEYID_OPT = "<options to use while signing>" | ||
98 | IMA_EVM_X509 = "${IMA_EVM_KEY_DIR}/x509_ima.der" | 99 | IMA_EVM_X509 = "${IMA_EVM_KEY_DIR}/x509_ima.der" |
99 | IMA_EVM_ROOT_CA = "${IMA_EVM_KEY_DIR}/ima-local-ca.pem" | 100 | IMA_EVM_ROOT_CA = "${IMA_EVM_KEY_DIR}/ima-local-ca.pem" |
100 | 101 | ||
diff --git a/meta-integrity/classes/ima-evm-rootfs.bbclass b/meta-integrity/classes/ima-evm-rootfs.bbclass index bc07d58..4890ba6 100644 --- a/meta-integrity/classes/ima-evm-rootfs.bbclass +++ b/meta-integrity/classes/ima-evm-rootfs.bbclass | |||
@@ -8,6 +8,10 @@ IMA_EVM_KEY_DIR ?= "IMA_EVM_KEY_DIR_NOT_SET" | |||
8 | # using the example key directory. | 8 | # using the example key directory. |
9 | IMA_EVM_PRIVKEY ?= "${IMA_EVM_KEY_DIR}/privkey_ima.pem" | 9 | IMA_EVM_PRIVKEY ?= "${IMA_EVM_KEY_DIR}/privkey_ima.pem" |
10 | 10 | ||
11 | # Additional option when signing. Allows to for example provide | ||
12 | # --keyid <id> or --keyid-from-cert <filename>. | ||
13 | IMA_EVM_PRIVKEY_KEYID_OPT ?= "" | ||
14 | |||
11 | # Public part of certificates (used for both IMA and EVM). | 15 | # Public part of certificates (used for both IMA and EVM). |
12 | # The default is okay when using the example key directory. | 16 | # The default is okay when using the example key directory. |
13 | IMA_EVM_X509 ?= "${IMA_EVM_KEY_DIR}/x509_ima.der" | 17 | IMA_EVM_X509 ?= "${IMA_EVM_KEY_DIR}/x509_ima.der" |
@@ -69,7 +73,8 @@ ima_evm_sign_rootfs () { | |||
69 | fi | 73 | fi |
70 | 74 | ||
71 | bbnote "IMA/EVM: Signing root filesystem at ${IMAGE_ROOTFS} with key ${IMA_EVM_PRIVKEY}" | 75 | bbnote "IMA/EVM: Signing root filesystem at ${IMAGE_ROOTFS} with key ${IMA_EVM_PRIVKEY}" |
72 | evmctl sign --imasig ${evmctl_param} --portable -a sha256 --key ${IMA_EVM_PRIVKEY} -r "${IMAGE_ROOTFS}" | 76 | evmctl sign --imasig ${evmctl_param} --portable -a sha256 \ |
77 | --key "${IMA_EVM_PRIVKEY}" ${IMA_EVM_PRIVKEY_KEYID_OPT} -r "${IMAGE_ROOTFS}" | ||
73 | 78 | ||
74 | # check signing key and signature verification key | 79 | # check signing key and signature verification key |
75 | evmctl ima_verify ${evmctl_param} --key "${IMA_EVM_X509}" "${IMAGE_ROOTFS}/lib/libc.so.6" || exit 1 | 80 | evmctl ima_verify ${evmctl_param} --key "${IMA_EVM_X509}" "${IMAGE_ROOTFS}/lib/libc.so.6" || exit 1 |
@@ -82,7 +87,8 @@ ima_evm_sign_rootfs () { | |||
82 | install "${IMA_EVM_POLICY}" ./${sysconfdir}/ima/ima-policy | 87 | install "${IMA_EVM_POLICY}" ./${sysconfdir}/ima/ima-policy |
83 | 88 | ||
84 | bbnote "IMA/EVM: Signing IMA policy with key ${IMA_EVM_PRIVKEY}" | 89 | bbnote "IMA/EVM: Signing IMA policy with key ${IMA_EVM_PRIVKEY}" |
85 | evmctl sign --imasig ${evmctl_param} --portable -a sha256 --key "${IMA_EVM_PRIVKEY}" "${IMAGE_ROOTFS}/etc/ima/ima-policy" | 90 | evmctl sign --imasig ${evmctl_param} --portable -a sha256 \ |
91 | --key "${IMA_EVM_PRIVKEY}" ${IMA_EVM_PRIVKEY_KEYID_OPT} "${IMAGE_ROOTFS}/etc/ima/ima-policy" | ||
86 | fi | 92 | fi |
87 | 93 | ||
88 | # Optionally write the file names and ima and evm signatures into files | 94 | # Optionally write the file names and ima and evm signatures into files |