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
140 /* Unknown public key algorithm */
155 * Query information about a key.
161 struct public_key *pkey = params->key->payload.data[asym_crypto];
164 u8 *key, *ptr;
174 key = kmalloc(pkey->keylen + sizeof(u32) * 2 + pkey->paramlen,
176 if (!key)
179 memcpy(key, pkey->key, pkey->keylen);
180 ptr = key + pkey->keylen;
193 ret = crypto_sig_set_privkey(sig, key, pkey->keylen);
195 ret = crypto_sig_set_pubkey(sig, key, pkey->keylen);
218 ret = crypto_akcipher_set_priv_key(tfm, key, pkey->keylen);
220 ret = crypto_akcipher_set_pub_key(tfm, key, pkey->keylen);
235 * ECDSA key sizes are much smaller than RSA, and thus could
236 * operate on (hashed) inputs that are larger than key size.
265 kfree_sensitive(key);
276 const struct public_key *pkey = params->key->payload.data[asym_crypto];
280 char *key, *ptr;
293 key = kmalloc(pkey->keylen + sizeof(u32) * 2 + pkey->paramlen,
295 if (!key)
298 memcpy(key, pkey->key, pkey->keylen);
299 ptr = key + pkey->keylen;
312 ret = crypto_sig_set_privkey(sig, key, pkey->keylen);
314 ret = crypto_sig_set_pubkey(sig, key, pkey->keylen);
327 ret = crypto_akcipher_set_priv_key(tfm, key, pkey->keylen);
329 ret = crypto_akcipher_set_pub_key(tfm, key, pkey->keylen);
371 kfree_sensitive(key);
377 * Verify a signature using a public key.
384 char *key, *ptr;
395 * If the signature specifies a public key algorithm, it *must* match
396 * the key's actual public key algorithm.
400 * "ecdsa-nist-*" for the key, but "ecdsa" for the signature.
419 key = kmalloc(pkey->keylen + sizeof(u32) * 2 + pkey->paramlen,
421 if (!key) {
426 memcpy(key, pkey->key, pkey->keylen);
427 ptr = key + pkey->keylen;
433 ret = crypto_sig_set_privkey(tfm, key, pkey->keylen);
435 ret = crypto_sig_set_pubkey(tfm, key, pkey->keylen);
443 kfree_sensitive(key);
453 static int public_key_verify_signature_2(const struct key *key,
456 const struct public_key *pk = key->payload.data[asym_crypto];
461 * Public key algorithm asymmetric key subtype