Lines Matching defs:key

2 /* In-software asymmetric public-key crypto subtype
23 MODULE_DESCRIPTION("In-software asymmetric public-key subtype");
28 * Provide a part of a description of the key for /proc/keys.
30 static void public_key_describe(const struct key *asymmetric_key,
33 struct public_key *key = asymmetric_key->payload.data[asym_crypto];
35 if (key)
36 seq_printf(m, "%s.%s", key->id_type, key->pkey_algo);
40 * Destroy a public key algorithm key.
42 void public_key_free(struct public_key *key)
44 if (key) {
45 kfree_sensitive(key->key);
46 kfree(key->params);
47 kfree(key);
53 * Destroy a public key algorithm key.
63 * and/or verification with that key, determine the name of the corresponding
143 /* Unknown public key algorithm */
158 * Query information about a key.
164 struct public_key *pkey = params->key->payload.data[asym_crypto];
167 u8 *key, *ptr;
177 key = kmalloc(pkey->keylen + sizeof(u32) * 2 + pkey->paramlen,
179 if (!key)
182 memcpy(key, pkey->key, pkey->keylen);
183 ptr = key + pkey->keylen;
196 ret = crypto_sig_set_privkey(sig, key, pkey->keylen);
198 ret = crypto_sig_set_pubkey(sig, key, pkey->keylen);
221 ret = crypto_akcipher_set_priv_key(tfm, key, pkey->keylen);
223 ret = crypto_akcipher_set_pub_key(tfm, key, pkey->keylen);
239 * ECDSA key sizes are much smaller than RSA, and thus could
240 * operate on (hashed) inputs that are larger than key size.
280 kfree_sensitive(key);
291 const struct public_key *pkey = params->key->payload.data[asym_crypto];
295 char *key, *ptr;
308 key = kmalloc(pkey->keylen + sizeof(u32) * 2 + pkey->paramlen,
310 if (!key)
313 memcpy(key, pkey->key, pkey->keylen);
314 ptr = key + pkey->keylen;
327 ret = crypto_sig_set_privkey(sig, key, pkey->keylen);
329 ret = crypto_sig_set_pubkey(sig, key, pkey->keylen);
342 ret = crypto_akcipher_set_priv_key(tfm, key, pkey->keylen);
344 ret = crypto_akcipher_set_pub_key(tfm, key, pkey->keylen);
386 kfree_sensitive(key);
392 * Verify a signature using a public key.
399 char *key, *ptr;
410 * If the signature specifies a public key algorithm, it *must* match
411 * the key's actual public key algorithm.
415 * "ecdsa-nist-*" for the key, but "ecdsa" for the signature.
434 key = kmalloc(pkey->keylen + sizeof(u32) * 2 + pkey->paramlen,
436 if (!key) {
441 memcpy(key, pkey->key, pkey->keylen);
442 ptr = key + pkey->keylen;
448 ret = crypto_sig_set_privkey(tfm, key, pkey->keylen);
450 ret = crypto_sig_set_pubkey(tfm, key, pkey->keylen);
458 kfree_sensitive(key);
468 static int public_key_verify_signature_2(const struct key *key,
471 const struct public_key *pk = key->payload.data[asym_crypto];
476 * Public key algorithm asymmetric key subtype