summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta-integrity/README.md1
-rw-r--r--meta-integrity/classes/ima-evm-rootfs.bbclass10
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.
9IMA_EVM_PRIVKEY ?= "${IMA_EVM_KEY_DIR}/privkey_ima.pem" 9IMA_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>.
13IMA_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.
13IMA_EVM_X509 ?= "${IMA_EVM_KEY_DIR}/x509_ima.der" 17IMA_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