summaryrefslogtreecommitdiff
path: root/crypto/asymmetric_keys/verify_pefile.c
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2014-07-01 16:02:52 +0100
committerDavid Howells <dhowells@redhat.com>2014-07-09 14:58:37 +0100
commit4c0b4b1d1ae0cbc86f150e2905a1c3d2a17b7c1e (patch)
treebbb779c5438a9cef8260569fae85493abf2522eb /crypto/asymmetric_keys/verify_pefile.c
parent3968280c7699f11e27a21aeafacf50bc86c2ed25 (diff)
pefile: Parse the "Microsoft individual code signing" data blob
The PKCS#7 certificate should contain a "Microsoft individual code signing" data blob as its signed content. This blob contains a digest of the signed content of the PE binary and the OID of the digest algorithm used (typically SHA256). Signed-off-by: David Howells <dhowells@redhat.com> Acked-by: Vivek Goyal <vgoyal@redhat.com> Reviewed-by: Kees Cook <keescook@chromium.org>
Diffstat (limited to 'crypto/asymmetric_keys/verify_pefile.c')
-rw-r--r--crypto/asymmetric_keys/verify_pefile.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/crypto/asymmetric_keys/verify_pefile.c b/crypto/asymmetric_keys/verify_pefile.c
index 13f3b44b5046..b975918e82d2 100644
--- a/crypto/asymmetric_keys/verify_pefile.c
+++ b/crypto/asymmetric_keys/verify_pefile.c
@@ -245,6 +245,13 @@ int verify_pefile_signature(const void *pebuf, unsigned pelen,
goto error;
}
+ ret = mscode_parse(&ctx);
+ if (ret < 0)
+ goto error;
+
+ pr_debug("Digest: %u [%*ph]\n",
+ ctx.digest_len, ctx.digest_len, ctx.digest);
+
ret = -ENOANO; // Not yet complete
error: