summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYunguo Wei <yunguo.wei@windriver.com>2019-10-10 18:10:52 +0800
committerJia Zhang <qianyue.zj@alibaba-inc.com>2019-10-10 18:10:52 +0800
commit701cbaf3c3428e393e93384bcbc94240753a4c40 (patch)
tree9acafdc2f54dd6229af2178d2823f5f1a4550caf
parent69117bef3a49ce645eee4cc6aaebb234da99c414 (diff)
downloadmeta-secure-core-701cbaf3c3428e393e93384bcbc94240753a4c40.tar.gz
lib-evm-utils: using the correct algo for v2 signature (#120)
When using rpmsign (with --signfiles --fskpath) to sign RPM package, the IMA signature is not correct, see: $ getfattr -d -m - rootfs/usr/sbin/grpconv file: rootfs/usr/sbin/grpconv security.ima=0sAwIEDy1SEQP3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== And the expected signature is like this: $ getfattr -d -m - rootfs/usr/sbin/grpconv file: rootfs/usr/sbin/grpconv security.ima=0sAwIEDy1SEQEAA6s8DwmRCVutcrE8NvHWWYXlg8L1AwH5teu44prkKRwmhZQ52Oa4UQoZZlxER/SJ9tijbve8ZAv++KW8EqgP4iZjEGh8ke76rpiRU5glnG/U+HUjnilJBpzpMJHxyNbAiFoHMESeCOtrhY0zZIUXK3DnIuIJSwpfl2HaNFxRrE38EaqgV9IQ8QiWFCvgDYXoJDwc3KdhjKjs214tCfZpKO1w4QJl2n4llZHw2RTHIuUOsMhRDEXs6onLHmdmhvqgxIHt7IvsT9v7H8GnoaiX0xgzxk2o/mE5EtPrnMtUoGSQwdY8CAfUbCwAp0c5QlsrHk5RBmewjJ/jxd/K1uKp7w== The root cause is libimaevm doesn't retrieve correct signing algo, so this patch is making things right. Signed-off-by: Yunguo Wei <yunguo.wei@windriver.com>
-rw-r--r--meta-integrity/recipes-support/ima-evm-utils/ima-evm-utils/0001-libimaevm-retrieve-correct-algo-for-v2-signature.patch26
-rw-r--r--meta-integrity/recipes-support/ima-evm-utils/ima-evm-utils_git.bb1
2 files changed, 27 insertions, 0 deletions
diff --git a/meta-integrity/recipes-support/ima-evm-utils/ima-evm-utils/0001-libimaevm-retrieve-correct-algo-for-v2-signature.patch b/meta-integrity/recipes-support/ima-evm-utils/ima-evm-utils/0001-libimaevm-retrieve-correct-algo-for-v2-signature.patch
new file mode 100644
index 0000000..25957c1
--- /dev/null
+++ b/meta-integrity/recipes-support/ima-evm-utils/ima-evm-utils/0001-libimaevm-retrieve-correct-algo-for-v2-signature.patch
@@ -0,0 +1,26 @@
1From c740d114ca213ece820da39ce2ce99fc4d6ae5c7 Mon Sep 17 00:00:00 2001
2From: Yunguo Wei <yunguo.wei@windriver.com>
3Date: Thu, 10 Oct 2019 16:40:21 +0800
4Subject: [PATCH] libimaevm: retrieve correct algo for v2 signature
5
6Signed-off-by: Yunguo Wei <yunguo.wei@windriver.com>
7---
8 src/libimaevm.c | 2 +-
9 1 file changed, 1 insertion(+), 1 deletion(-)
10
11diff --git a/src/libimaevm.c b/src/libimaevm.c
12index 7c17bf4..3586e02 100644
13--- a/src/libimaevm.c
14+++ b/src/libimaevm.c
15@@ -939,7 +939,7 @@ static int sign_hash_v2(const char *algo, const unsigned char *hash,
16 if (!EVP_PKEY_sign_init(ctx))
17 goto err;
18 st = "EVP_get_digestbyname";
19- if (!(md = EVP_get_digestbyname(imaevm_params.hash_algo)))
20+ if (!(md = EVP_get_digestbyname(algo)))
21 goto err;
22 st = "EVP_PKEY_CTX_set_signature_md";
23 if (!EVP_PKEY_CTX_set_signature_md(ctx, md))
24--
252.7.4
26
diff --git a/meta-integrity/recipes-support/ima-evm-utils/ima-evm-utils_git.bb b/meta-integrity/recipes-support/ima-evm-utils/ima-evm-utils_git.bb
index bc98ce6..46722b8 100644
--- a/meta-integrity/recipes-support/ima-evm-utils/ima-evm-utils_git.bb
+++ b/meta-integrity/recipes-support/ima-evm-utils/ima-evm-utils_git.bb
@@ -10,6 +10,7 @@ SRC_URI = "\
10 file://0001-Don-t-build-man-pages.patch \ 10 file://0001-Don-t-build-man-pages.patch \
11 file://0001-Install-evmctl-to-sbindir-rather-than-bindir.patch \ 11 file://0001-Install-evmctl-to-sbindir-rather-than-bindir.patch \
12 file://0001-ima-evm-utils-include-sys-types.h-in-header-to-fix-b.patch \ 12 file://0001-ima-evm-utils-include-sys-types.h-in-header-to-fix-b.patch \
13 file://0001-libimaevm-retrieve-correct-algo-for-v2-signature.patch \
13" 14"
14SRCREV = "3eab1f93b634249c1720f65fcb495b1996f0256e" 15SRCREV = "3eab1f93b634249c1720f65fcb495b1996f0256e"
15 16