Lines Matching refs:pkey
67 software_key_determine_akcipher(const struct public_key *pkey,
79 if (strcmp(pkey->pkey_algo, "rsa") == 0) {
89 pkey->pkey_algo);
93 pkey->pkey_algo, hash_algo);
106 } else if (strncmp(pkey->pkey_algo, "ecdsa", 5) == 0) {
124 } else if (strcmp(pkey->pkey_algo, "sm2") == 0) {
131 } else if (strcmp(pkey->pkey_algo, "ecrdsa") == 0) {
143 if (strscpy(alg_name, pkey->pkey_algo, CRYPTO_MAX_ALG_NAME) < 0)
161 struct public_key *pkey = params->key->payload.data[asym_crypto];
168 ret = software_key_determine_akcipher(pkey, params->encoding,
174 key = kmalloc(pkey->keylen + sizeof(u32) * 2 + pkey->paramlen,
179 memcpy(key, pkey->key, pkey->keylen);
180 ptr = key + pkey->keylen;
181 ptr = pkey_pack_u32(ptr, pkey->algo);
182 ptr = pkey_pack_u32(ptr, pkey->paramlen);
183 memcpy(ptr, pkey->params, pkey->paramlen);
192 if (pkey->key_is_private)
193 ret = crypto_sig_set_privkey(sig, key, pkey->keylen);
195 ret = crypto_sig_set_pubkey(sig, key, pkey->keylen);
202 if (pkey->key_is_private)
207 if (pkey->key_is_private)
217 if (pkey->key_is_private)
218 ret = crypto_akcipher_set_priv_key(tfm, key, pkey->keylen);
220 ret = crypto_akcipher_set_pub_key(tfm, key, pkey->keylen);
227 if (pkey->key_is_private)
233 if (strncmp(pkey->pkey_algo, "ecdsa", 5) == 0) {
276 const struct public_key *pkey = params->key->payload.data[asym_crypto];
287 ret = software_key_determine_akcipher(pkey, params->encoding,
293 key = kmalloc(pkey->keylen + sizeof(u32) * 2 + pkey->paramlen,
298 memcpy(key, pkey->key, pkey->keylen);
299 ptr = key + pkey->keylen;
300 ptr = pkey_pack_u32(ptr, pkey->algo);
301 ptr = pkey_pack_u32(ptr, pkey->paramlen);
302 memcpy(ptr, pkey->params, pkey->paramlen);
311 if (pkey->key_is_private)
312 ret = crypto_sig_set_privkey(sig, key, pkey->keylen);
314 ret = crypto_sig_set_pubkey(sig, key, pkey->keylen);
326 if (pkey->key_is_private)
327 ret = crypto_akcipher_set_priv_key(tfm, key, pkey->keylen);
329 ret = crypto_akcipher_set_pub_key(tfm, key, pkey->keylen);
379 int public_key_verify_signature(const struct public_key *pkey,
390 BUG_ON(!pkey);
403 if (strcmp(pkey->pkey_algo, sig->pkey_algo) != 0 &&
404 (strncmp(pkey->pkey_algo, "ecdsa-", 6) != 0 ||
409 ret = software_key_determine_akcipher(pkey, sig->encoding,
419 key = kmalloc(pkey->keylen + sizeof(u32) * 2 + pkey->paramlen,
426 memcpy(key, pkey->key, pkey->keylen);
427 ptr = key + pkey->keylen;
428 ptr = pkey_pack_u32(ptr, pkey->algo);
429 ptr = pkey_pack_u32(ptr, pkey->paramlen);
430 memcpy(ptr, pkey->params, pkey->paramlen);
432 if (pkey->key_is_private)
433 ret = crypto_sig_set_privkey(tfm, key, pkey->keylen);
435 ret = crypto_sig_set_pubkey(tfm, key, pkey->keylen);