projects
/
deliverable
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'stable/for-linus-4.7' of git://git.kernel.org/pub/scm/linux/kernel...
[deliverable/linux.git]
/
security
/
integrity
/
digsig_asymmetric.c
diff --git
a/security/integrity/digsig_asymmetric.c
b/security/integrity/digsig_asymmetric.c
index 5ade2a7517a6341305ba4aafbb18469cd1ed8db8..80052ed8d4673c8abfb0c219bba47562003dde74 100644
(file)
--- a/
security/integrity/digsig_asymmetric.c
+++ b/
security/integrity/digsig_asymmetric.c
@@
-16,6
+16,7
@@
#include <linux/ratelimit.h>
#include <linux/key-type.h>
#include <crypto/public_key.h>
#include <linux/ratelimit.h>
#include <linux/key-type.h>
#include <crypto/public_key.h>
+#include <crypto/hash_info.h>
#include <keys/asymmetric-type.h>
#include <keys/system_keyring.h>
#include <keys/asymmetric-type.h>
#include <keys/system_keyring.h>
@@
-94,7
+95,7
@@
int asymmetric_verify(struct key *keyring, const char *sig,
if (siglen != __be16_to_cpu(hdr->sig_size))
return -EBADMSG;
if (siglen != __be16_to_cpu(hdr->sig_size))
return -EBADMSG;
- if (hdr->hash_algo >=
PKEY_HASH
__LAST)
+ if (hdr->hash_algo >=
HASH_ALGO
__LAST)
return -ENOPKG;
key = request_asymmetric_key(keyring, __be32_to_cpu(hdr->keyid));
return -ENOPKG;
key = request_asymmetric_key(keyring, __be32_to_cpu(hdr->keyid));
@@
-103,16
+104,13
@@
int asymmetric_verify(struct key *keyring, const char *sig,
memset(&pks, 0, sizeof(pks));
memset(&pks, 0, sizeof(pks));
- pks.pkey_hash_algo = hdr->hash_algo;
+ pks.pkey_algo = "rsa";
+ pks.hash_algo = hash_algo_name[hdr->hash_algo];
pks.digest = (u8 *)data;
pks.digest_size = datalen;
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;
key_put(key);
pr_debug("%s() = %d\n", __func__, ret);
return ret;
This page took
0.031614 seconds
and
5
git commands to generate.