Lines Matching refs:pkey
67 software_key_determine_akcipher(const struct public_key *pkey, in software_key_determine_akcipher() argument
79 if (strcmp(pkey->pkey_algo, "rsa") == 0) { in software_key_determine_akcipher()
89 pkey->pkey_algo); in software_key_determine_akcipher()
93 pkey->pkey_algo, hash_algo); in software_key_determine_akcipher()
106 } else if (strncmp(pkey->pkey_algo, "ecdsa", 5) == 0) { in software_key_determine_akcipher()
127 } else if (strcmp(pkey->pkey_algo, "ecrdsa") == 0) { in software_key_determine_akcipher()
139 if (strscpy(alg_name, pkey->pkey_algo, CRYPTO_MAX_ALG_NAME) < 0) in software_key_determine_akcipher()
157 struct public_key *pkey = params->key->payload.data[asym_crypto]; in software_key_query() local
164 ret = software_key_determine_akcipher(pkey, params->encoding, in software_key_query()
170 key = kmalloc(pkey->keylen + sizeof(u32) * 2 + pkey->paramlen, in software_key_query()
175 memcpy(key, pkey->key, pkey->keylen); in software_key_query()
176 ptr = key + pkey->keylen; in software_key_query()
177 ptr = pkey_pack_u32(ptr, pkey->algo); in software_key_query()
178 ptr = pkey_pack_u32(ptr, pkey->paramlen); in software_key_query()
179 memcpy(ptr, pkey->params, pkey->paramlen); in software_key_query()
188 if (pkey->key_is_private) in software_key_query()
189 ret = crypto_sig_set_privkey(sig, key, pkey->keylen); in software_key_query()
191 ret = crypto_sig_set_pubkey(sig, key, pkey->keylen); in software_key_query()
198 if (pkey->key_is_private) in software_key_query()
203 if (pkey->key_is_private) in software_key_query()
213 if (pkey->key_is_private) in software_key_query()
214 ret = crypto_akcipher_set_priv_key(tfm, key, pkey->keylen); in software_key_query()
216 ret = crypto_akcipher_set_pub_key(tfm, key, pkey->keylen); in software_key_query()
223 if (pkey->key_is_private) in software_key_query()
229 if (strncmp(pkey->pkey_algo, "ecdsa", 5) == 0) { in software_key_query()
248 if (strcmp(pkey->pkey_algo, "ecdsa-nist-p521") != 0) in software_key_query()
284 const struct public_key *pkey = params->key->payload.data[asym_crypto]; in software_key_eds_op() local
295 ret = software_key_determine_akcipher(pkey, params->encoding, in software_key_eds_op()
301 key = kmalloc(pkey->keylen + sizeof(u32) * 2 + pkey->paramlen, in software_key_eds_op()
306 memcpy(key, pkey->key, pkey->keylen); in software_key_eds_op()
307 ptr = key + pkey->keylen; in software_key_eds_op()
308 ptr = pkey_pack_u32(ptr, pkey->algo); in software_key_eds_op()
309 ptr = pkey_pack_u32(ptr, pkey->paramlen); in software_key_eds_op()
310 memcpy(ptr, pkey->params, pkey->paramlen); in software_key_eds_op()
319 if (pkey->key_is_private) in software_key_eds_op()
320 ret = crypto_sig_set_privkey(sig, key, pkey->keylen); in software_key_eds_op()
322 ret = crypto_sig_set_pubkey(sig, key, pkey->keylen); in software_key_eds_op()
334 if (pkey->key_is_private) in software_key_eds_op()
335 ret = crypto_akcipher_set_priv_key(tfm, key, pkey->keylen); in software_key_eds_op()
337 ret = crypto_akcipher_set_pub_key(tfm, key, pkey->keylen); in software_key_eds_op()
387 int public_key_verify_signature(const struct public_key *pkey, in public_key_verify_signature() argument
398 BUG_ON(!pkey); in public_key_verify_signature()
411 if (strcmp(pkey->pkey_algo, sig->pkey_algo) != 0 && in public_key_verify_signature()
412 (strncmp(pkey->pkey_algo, "ecdsa-", 6) != 0 || in public_key_verify_signature()
417 ret = software_key_determine_akcipher(pkey, sig->encoding, in public_key_verify_signature()
427 key = kmalloc(pkey->keylen + sizeof(u32) * 2 + pkey->paramlen, in public_key_verify_signature()
434 memcpy(key, pkey->key, pkey->keylen); in public_key_verify_signature()
435 ptr = key + pkey->keylen; in public_key_verify_signature()
436 ptr = pkey_pack_u32(ptr, pkey->algo); in public_key_verify_signature()
437 ptr = pkey_pack_u32(ptr, pkey->paramlen); in public_key_verify_signature()
438 memcpy(ptr, pkey->params, pkey->paramlen); in public_key_verify_signature()
440 if (pkey->key_is_private) in public_key_verify_signature()
441 ret = crypto_sig_set_privkey(tfm, key, pkey->keylen); in public_key_verify_signature()
443 ret = crypto_sig_set_pubkey(tfm, key, pkey->keylen); in public_key_verify_signature()