aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTadeusz Struk <tadeusz.struk@intel.com>2016-02-02 10:08:58 -0800
committerDavid Howells <dhowells@redhat.com>2016-02-18 14:52:32 +0000
commiteb5798f2e28f3b43091cecc71c84c3f6fb35c7de (patch)
treeb2558b3614f515b9b672fdcdd4b3a65cae7af081
parentcrypto: KEYS: convert public key and digsig asym to the akcipher api (diff)
downloadlinux-dev-eb5798f2e28f3b43091cecc71c84c3f6fb35c7de.tar.xz
linux-dev-eb5798f2e28f3b43091cecc71c84c3f6fb35c7de.zip
integrity: convert digsig to akcipher api
Convert asymmetric_verify to akcipher api. Signed-off-by: Tadeusz Struk <tadeusz.struk@intel.com> Acked-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David Howells <dhowells@redhat.com>
-rw-r--r--security/integrity/Kconfig1
-rw-r--r--security/integrity/digsig_asymmetric.c10
2 files changed, 4 insertions, 7 deletions
diff --git a/security/integrity/Kconfig b/security/integrity/Kconfig
index 7543398b79e3..979be65d22c4 100644
--- a/security/integrity/Kconfig
+++ b/security/integrity/Kconfig
@@ -36,6 +36,7 @@ config INTEGRITY_ASYMMETRIC_KEYS
select ASYMMETRIC_KEY_TYPE
select ASYMMETRIC_PUBLIC_KEY_SUBTYPE
select PUBLIC_KEY_ALGO_RSA
+ select CRYPTO_RSA
select X509_CERTIFICATE_PARSER
help
This option enables digital signature verification using
diff --git a/security/integrity/digsig_asymmetric.c b/security/integrity/digsig_asymmetric.c
index 5ade2a7517a6..2fa3bc681a1b 100644
--- a/security/integrity/digsig_asymmetric.c
+++ b/security/integrity/digsig_asymmetric.c
@@ -106,13 +106,9 @@ int asymmetric_verify(struct key *keyring, const char *sig,
pks.pkey_hash_algo = hdr->hash_algo;
pks.digest = (u8 *)data;
pks.digest_size = datalen;
- pks.nr_mpi = 1;
- pks.rsa.s = mpi_read_raw_data(hdr->sig, siglen);
-
- if (pks.rsa.s)
- ret = verify_signature(key, &pks);
-
- mpi_free(pks.rsa.s);
+ pks.s = hdr->sig;
+ pks.s_size = siglen;
+ ret = verify_signature(key, &pks);
key_put(key);
pr_debug("%s() = %d\n", __func__, ret);
return ret;