Messages in this thread Patch in this message | | | From | Dmitry Kasatkin <> | Subject | [PATCH 3/4] module: search the key only by keyid | Date | Fri, 03 Oct 2014 12:09:56 +0300 |
| |
Latest KEYS code change the way keys identified and module signing keys are not searchable anymore with original id.
This patch fixes this problem without change module signature data.
Signed-off-by: Dmitry Kasatkin <d.kasatkin@samsung.com> --- kernel/module_signing.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-)
diff --git a/kernel/module_signing.c b/kernel/module_signing.c index be5b8fa..f329de8 100644 --- a/kernel/module_signing.c +++ b/kernel/module_signing.c @@ -134,26 +134,20 @@ static struct key *request_asymmetric_key(const char *signer, size_t signer_len, const u8 *key_id, size_t key_id_len) { key_ref_t key; - size_t i; char *id, *q; pr_devel("==>%s(,%zu,,%zu)\n", __func__, signer_len, key_id_len); /* Construct an identifier. */ - id = kmalloc(signer_len + 2 + key_id_len * 2 + 1, GFP_KERNEL); + id = kmalloc(2 + 1 + key_id_len * 2 + 1, GFP_KERNEL); if (!id) return ERR_PTR(-ENOKEY); - memcpy(id, signer, signer_len); - - q = id + signer_len; + q = id; + *q++ = 'i'; + *q++ = 'd'; *q++ = ':'; - *q++ = ' '; - for (i = 0; i < key_id_len; i++) { - *q++ = hex_asc[*key_id >> 4]; - *q++ = hex_asc[*key_id++ & 0x0f]; - } - + q = bin2hex(q, key_id, key_id_len); *q = 0; pr_debug("Look up: \"%s\"\n", id); -- 1.9.1
| |