Lines Matching refs:pkey
53 static int pkey_set_type(EVP_PKEY *pkey, ENGINE *e, int type, const char *str,
62 int EVP_PKEY_get_bits(const EVP_PKEY *pkey) in EVP_PKEY_get_bits() argument
66 if (pkey != NULL) { in EVP_PKEY_get_bits()
67 size = pkey->cache.bits; in EVP_PKEY_get_bits()
68 if (pkey->ameth != NULL && pkey->ameth->pkey_bits != NULL) in EVP_PKEY_get_bits()
69 size = pkey->ameth->pkey_bits(pkey); in EVP_PKEY_get_bits()
74 int EVP_PKEY_get_security_bits(const EVP_PKEY *pkey) in EVP_PKEY_get_security_bits() argument
78 if (pkey != NULL) { in EVP_PKEY_get_security_bits()
79 size = pkey->cache.security_bits; in EVP_PKEY_get_security_bits()
80 if (pkey->ameth != NULL && pkey->ameth->pkey_security_bits != NULL) in EVP_PKEY_get_security_bits()
81 size = pkey->ameth->pkey_security_bits(pkey); in EVP_PKEY_get_security_bits()
86 int EVP_PKEY_save_parameters(EVP_PKEY *pkey, int mode) in EVP_PKEY_save_parameters() argument
89 if (pkey->type == EVP_PKEY_DSA) { in EVP_PKEY_save_parameters()
90 int ret = pkey->save_parameters; in EVP_PKEY_save_parameters()
93 pkey->save_parameters = mode; in EVP_PKEY_save_parameters()
98 if (pkey->type == EVP_PKEY_EC) { in EVP_PKEY_save_parameters()
99 int ret = pkey->save_parameters; in EVP_PKEY_save_parameters()
102 pkey->save_parameters = mode; in EVP_PKEY_save_parameters()
218 int EVP_PKEY_missing_parameters(const EVP_PKEY *pkey) in EVP_PKEY_missing_parameters() argument
220 if (pkey != NULL) { in EVP_PKEY_missing_parameters()
221 if (pkey->keymgmt != NULL) in EVP_PKEY_missing_parameters()
222 return !evp_keymgmt_util_has((EVP_PKEY *)pkey, SELECT_PARAMETERS); in EVP_PKEY_missing_parameters()
223 else if (pkey->ameth != NULL && pkey->ameth->param_missing != NULL) in EVP_PKEY_missing_parameters()
224 return pkey->ameth->param_missing(pkey); in EVP_PKEY_missing_parameters()
383 EVP_PKEY *pkey = NULL; in new_raw_key_int() local
428 if (EVP_PKEY_fromdata(ctx, &pkey, EVP_PKEY_KEYPAIR, params) != 1) { in new_raw_key_int()
435 return pkey; in new_raw_key_int()
443 pkey = EVP_PKEY_new(); in new_raw_key_int()
444 if (pkey == NULL) { in new_raw_key_int()
449 if (!pkey_set_type(pkey, e, nidtype, strtype, -1, NULL)) { in new_raw_key_int()
454 if (!ossl_assert(pkey->ameth != NULL)) in new_raw_key_int()
458 if (pkey->ameth->set_priv_key == NULL) { in new_raw_key_int()
463 if (!pkey->ameth->set_priv_key(pkey, key, len)) { in new_raw_key_int()
468 if (pkey->ameth->set_pub_key == NULL) { in new_raw_key_int()
473 if (!pkey->ameth->set_pub_key(pkey, key, len)) { in new_raw_key_int()
482 EVP_PKEY_free(pkey); in new_raw_key_int()
483 pkey = NULL; in new_raw_key_int()
486 return pkey; in new_raw_key_int()
550 int EVP_PKEY_get_raw_private_key(const EVP_PKEY *pkey, unsigned char *priv, in EVP_PKEY_get_raw_private_key() argument
553 if (pkey->keymgmt != NULL) { in EVP_PKEY_get_raw_private_key()
560 return evp_keymgmt_util_export(pkey, OSSL_KEYMGMT_SELECT_PRIVATE_KEY, in EVP_PKEY_get_raw_private_key()
564 if (pkey->ameth == NULL) { in EVP_PKEY_get_raw_private_key()
569 if (pkey->ameth->get_priv_key == NULL) { in EVP_PKEY_get_raw_private_key()
574 if (!pkey->ameth->get_priv_key(pkey, priv, len)) { in EVP_PKEY_get_raw_private_key()
582 int EVP_PKEY_get_raw_public_key(const EVP_PKEY *pkey, unsigned char *pub, in EVP_PKEY_get_raw_public_key() argument
585 if (pkey->keymgmt != NULL) { in EVP_PKEY_get_raw_public_key()
592 return evp_keymgmt_util_export(pkey, OSSL_KEYMGMT_SELECT_PUBLIC_KEY, in EVP_PKEY_get_raw_public_key()
596 if (pkey->ameth == NULL) { in EVP_PKEY_get_raw_public_key()
601 if (pkey->ameth->get_pub_key == NULL) { in EVP_PKEY_get_raw_public_key()
606 if (!pkey->ameth->get_pub_key(pkey, pub, len)) { in EVP_PKEY_get_raw_public_key()
625 EVP_PKEY *pkey = NULL; in new_cmac_key_int() local
659 if (EVP_PKEY_fromdata(ctx, &pkey, EVP_PKEY_KEYPAIR, params) <= 0) { in new_cmac_key_int()
667 return pkey; in new_cmac_key_int()
680 int EVP_PKEY_set_type(EVP_PKEY *pkey, int type) in EVP_PKEY_set_type() argument
682 return pkey_set_type(pkey, NULL, type, NULL, -1, NULL); in EVP_PKEY_set_type()
685 int EVP_PKEY_set_type_str(EVP_PKEY *pkey, const char *str, int len) in EVP_PKEY_set_type_str() argument
687 return pkey_set_type(pkey, NULL, EVP_PKEY_NONE, str, len, NULL); in EVP_PKEY_set_type_str()
691 int EVP_PKEY_set1_engine(EVP_PKEY *pkey, ENGINE *e) in EVP_PKEY_set1_engine() argument
698 if (ENGINE_get_pkey_meth(e, pkey->type) == NULL) { in EVP_PKEY_set1_engine()
704 ENGINE_finish(pkey->pmeth_engine); in EVP_PKEY_set1_engine()
705 pkey->pmeth_engine = e; in EVP_PKEY_set1_engine()
709 ENGINE *EVP_PKEY_get0_engine(const EVP_PKEY *pkey) in EVP_PKEY_get0_engine() argument
711 return pkey->engine; in EVP_PKEY_get0_engine()
716 static void detect_foreign_key(EVP_PKEY *pkey) in detect_foreign_key() argument
718 switch (pkey->type) { in detect_foreign_key()
720 pkey->foreign = pkey->pkey.rsa != NULL in detect_foreign_key()
721 && ossl_rsa_is_foreign(pkey->pkey.rsa); in detect_foreign_key()
726 pkey->foreign = pkey->pkey.ec != NULL in detect_foreign_key()
727 && ossl_ec_key_is_foreign(pkey->pkey.ec); in detect_foreign_key()
732 pkey->foreign = pkey->pkey.dsa != NULL in detect_foreign_key()
733 && ossl_dsa_is_foreign(pkey->pkey.dsa); in detect_foreign_key()
738 pkey->foreign = pkey->pkey.dh != NULL in detect_foreign_key()
739 && ossl_dh_is_foreign(pkey->pkey.dh); in detect_foreign_key()
743 pkey->foreign = 0; in detect_foreign_key()
748 int EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key) in EVP_PKEY_assign() argument
772 if (pkey == NULL || !EVP_PKEY_set_type(pkey, type)) in EVP_PKEY_assign()
775 pkey->pkey.ptr = key; in EVP_PKEY_assign()
776 detect_foreign_key(pkey); in EVP_PKEY_assign()
782 void *EVP_PKEY_get0(const EVP_PKEY *pkey) in EVP_PKEY_get0() argument
784 if (pkey == NULL) in EVP_PKEY_get0()
787 if (!evp_pkey_is_provided(pkey)) in EVP_PKEY_get0()
788 return pkey->pkey.ptr; in EVP_PKEY_get0()
793 const unsigned char *EVP_PKEY_get0_hmac(const EVP_PKEY *pkey, size_t *len) in EVP_PKEY_get0_hmac() argument
796 if (pkey->type != EVP_PKEY_HMAC) { in EVP_PKEY_get0_hmac()
800 os = evp_pkey_get_legacy((EVP_PKEY *)pkey); in EVP_PKEY_get0_hmac()
809 const unsigned char *EVP_PKEY_get0_poly1305(const EVP_PKEY *pkey, size_t *len) in EVP_PKEY_get0_poly1305() argument
812 if (pkey->type != EVP_PKEY_POLY1305) { in EVP_PKEY_get0_poly1305()
816 os = evp_pkey_get_legacy((EVP_PKEY *)pkey); in EVP_PKEY_get0_poly1305()
826 const unsigned char *EVP_PKEY_get0_siphash(const EVP_PKEY *pkey, size_t *len) in EVP_PKEY_get0_siphash() argument
830 if (pkey->type != EVP_PKEY_SIPHASH) { in EVP_PKEY_get0_siphash()
834 os = evp_pkey_get_legacy((EVP_PKEY *)pkey); in EVP_PKEY_get0_siphash()
844 static DSA *evp_pkey_get0_DSA_int(const EVP_PKEY *pkey) in evp_pkey_get0_DSA_int() argument
846 if (pkey->type != EVP_PKEY_DSA) { in evp_pkey_get0_DSA_int()
850 return evp_pkey_get_legacy((EVP_PKEY *)pkey); in evp_pkey_get0_DSA_int()
853 const DSA *EVP_PKEY_get0_DSA(const EVP_PKEY *pkey) in EVP_PKEY_get0_DSA() argument
855 return evp_pkey_get0_DSA_int(pkey); in EVP_PKEY_get0_DSA()
858 int EVP_PKEY_set1_DSA(EVP_PKEY *pkey, DSA *key) in EVP_PKEY_set1_DSA() argument
860 int ret = EVP_PKEY_assign_DSA(pkey, key); in EVP_PKEY_set1_DSA()
865 DSA *EVP_PKEY_get1_DSA(EVP_PKEY *pkey) in EVP_PKEY_get1_DSA() argument
867 DSA *ret = evp_pkey_get0_DSA_int(pkey); in EVP_PKEY_get1_DSA()
876 static const ECX_KEY *evp_pkey_get0_ECX_KEY(const EVP_PKEY *pkey, int type) in evp_pkey_get0_ECX_KEY() argument
878 if (EVP_PKEY_get_base_id(pkey) != type) { in evp_pkey_get0_ECX_KEY()
882 return evp_pkey_get_legacy((EVP_PKEY *)pkey); in evp_pkey_get0_ECX_KEY()
885 static ECX_KEY *evp_pkey_get1_ECX_KEY(EVP_PKEY *pkey, int type) in evp_pkey_get1_ECX_KEY() argument
887 ECX_KEY *ret = (ECX_KEY *)evp_pkey_get0_ECX_KEY(pkey, type); in evp_pkey_get1_ECX_KEY()
895 ECX_KEY *ossl_evp_pkey_get1_##NAME(EVP_PKEY *pkey) \
897 return evp_pkey_get1_ECX_KEY(pkey, EVP_PKEY_##NAME); \
908 int EVP_PKEY_set1_DH(EVP_PKEY *pkey, DH *dhkey) in IMPLEMENT_ECX_VARIANT()
936 ret = EVP_PKEY_assign(pkey, type, dhkey); in IMPLEMENT_ECX_VARIANT()
943 DH *evp_pkey_get0_DH_int(const EVP_PKEY *pkey) in evp_pkey_get0_DH_int() argument
945 if (pkey->type != EVP_PKEY_DH && pkey->type != EVP_PKEY_DHX) { in evp_pkey_get0_DH_int()
949 return evp_pkey_get_legacy((EVP_PKEY *)pkey); in evp_pkey_get0_DH_int()
952 const DH *EVP_PKEY_get0_DH(const EVP_PKEY *pkey) in EVP_PKEY_get0_DH() argument
954 return evp_pkey_get0_DH_int(pkey); in EVP_PKEY_get0_DH()
957 DH *EVP_PKEY_get1_DH(EVP_PKEY *pkey) in EVP_PKEY_get1_DH() argument
959 DH *ret = evp_pkey_get0_DH_int(pkey); in EVP_PKEY_get1_DH()
983 int EVP_PKEY_get_id(const EVP_PKEY *pkey) in EVP_PKEY_get_id() argument
985 return pkey->type; in EVP_PKEY_get_id()
988 int EVP_PKEY_get_base_id(const EVP_PKEY *pkey) in EVP_PKEY_get_base_id() argument
990 return EVP_PKEY_type(pkey->type); in EVP_PKEY_get_base_id()
1047 int EVP_PKEY_is_a(const EVP_PKEY *pkey, const char *name) in EVP_PKEY_is_a() argument
1049 if (pkey == NULL) in EVP_PKEY_is_a()
1051 if (pkey->keymgmt == NULL) in EVP_PKEY_is_a()
1052 return pkey->type == evp_pkey_name2type(name); in EVP_PKEY_is_a()
1053 return EVP_KEYMGMT_is_a(pkey->keymgmt, name); in EVP_PKEY_is_a()
1056 int EVP_PKEY_type_names_do_all(const EVP_PKEY *pkey, in EVP_PKEY_type_names_do_all() argument
1060 if (!evp_pkey_is_typed(pkey)) in EVP_PKEY_type_names_do_all()
1063 if (!evp_pkey_is_provided(pkey)) { in EVP_PKEY_type_names_do_all()
1064 const char *name = OBJ_nid2sn(EVP_PKEY_get_id(pkey)); in EVP_PKEY_type_names_do_all()
1069 return EVP_KEYMGMT_names_do_all(pkey->keymgmt, fn, data); in EVP_PKEY_type_names_do_all()
1072 int EVP_PKEY_can_sign(const EVP_PKEY *pkey) in EVP_PKEY_can_sign() argument
1074 if (pkey->keymgmt == NULL) { in EVP_PKEY_can_sign()
1075 switch (EVP_PKEY_get_base_id(pkey)) { in EVP_PKEY_can_sign()
1087 return EC_KEY_can_sign(pkey->pkey.ec); in EVP_PKEY_can_sign()
1093 const OSSL_PROVIDER *prov = EVP_KEYMGMT_get0_provider(pkey->keymgmt); in EVP_PKEY_can_sign()
1096 pkey->keymgmt->query_operation_name != NULL in EVP_PKEY_can_sign()
1097 ? pkey->keymgmt->query_operation_name(OSSL_OP_SIGNATURE) in EVP_PKEY_can_sign()
1098 : EVP_KEYMGMT_get0_name(pkey->keymgmt); in EVP_PKEY_can_sign()
1147 static int unsup_alg(BIO *out, const EVP_PKEY *pkey, int indent, in unsup_alg() argument
1152 kstr, OBJ_nid2ln(pkey->type)) > 0; in unsup_alg()
1155 static int print_pkey(const EVP_PKEY *pkey, BIO *out, int indent, in print_pkey() argument
1158 int (*legacy_print)(BIO *out, const EVP_PKEY *pkey, in print_pkey()
1170 ctx = OSSL_ENCODER_CTX_new_for_pkey(pkey, selection, "TEXT", NULL, in print_pkey()
1181 ret = legacy_print(out, pkey, 0, legacy_pctx); in print_pkey()
1183 ret = unsup_alg(out, pkey, 0, "Public Key"); in print_pkey()
1190 int EVP_PKEY_print_public(BIO *out, const EVP_PKEY *pkey, in EVP_PKEY_print_public() argument
1193 return print_pkey(pkey, out, indent, EVP_PKEY_PUBLIC_KEY, NULL, in EVP_PKEY_print_public()
1194 (pkey->ameth != NULL ? pkey->ameth->pub_print : NULL), in EVP_PKEY_print_public()
1198 int EVP_PKEY_print_private(BIO *out, const EVP_PKEY *pkey, in EVP_PKEY_print_private() argument
1201 return print_pkey(pkey, out, indent, EVP_PKEY_KEYPAIR, NULL, in EVP_PKEY_print_private()
1202 (pkey->ameth != NULL ? pkey->ameth->priv_print : NULL), in EVP_PKEY_print_private()
1206 int EVP_PKEY_print_params(BIO *out, const EVP_PKEY *pkey, in EVP_PKEY_print_params() argument
1209 return print_pkey(pkey, out, indent, EVP_PKEY_KEY_PARAMETERS, NULL, in EVP_PKEY_print_params()
1210 (pkey->ameth != NULL ? pkey->ameth->param_print : NULL), in EVP_PKEY_print_params()
1215 int EVP_PKEY_print_public_fp(FILE *fp, const EVP_PKEY *pkey, in EVP_PKEY_print_public_fp() argument
1223 ret = EVP_PKEY_print_public(b, pkey, indent, pctx); in EVP_PKEY_print_public_fp()
1228 int EVP_PKEY_print_private_fp(FILE *fp, const EVP_PKEY *pkey, in EVP_PKEY_print_private_fp() argument
1236 ret = EVP_PKEY_print_private(b, pkey, indent, pctx); in EVP_PKEY_print_private_fp()
1241 int EVP_PKEY_print_params_fp(FILE *fp, const EVP_PKEY *pkey, in EVP_PKEY_print_params_fp() argument
1249 ret = EVP_PKEY_print_params(b, pkey, indent, pctx); in EVP_PKEY_print_params_fp()
1267 static int legacy_asn1_ctrl_to_param(EVP_PKEY *pkey, int op, in legacy_asn1_ctrl_to_param() argument
1270 if (pkey->keymgmt == NULL) in legacy_asn1_ctrl_to_param()
1276 int rv = EVP_PKEY_get_default_digest_name(pkey, mdname, in legacy_asn1_ctrl_to_param()
1281 OSSL_LIB_CTX *libctx = ossl_provider_libctx(pkey->keymgmt->prov); in legacy_asn1_ctrl_to_param()
1316 static int evp_pkey_asn1_ctrl(EVP_PKEY *pkey, int op, int arg1, void *arg2) in evp_pkey_asn1_ctrl() argument
1318 if (pkey->ameth == NULL) in evp_pkey_asn1_ctrl()
1319 return legacy_asn1_ctrl_to_param(pkey, op, arg1, arg2); in evp_pkey_asn1_ctrl()
1320 if (pkey->ameth->pkey_ctrl == NULL) in evp_pkey_asn1_ctrl()
1322 return pkey->ameth->pkey_ctrl(pkey, op, arg1, arg2); in evp_pkey_asn1_ctrl()
1325 int EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid) in EVP_PKEY_get_default_digest_nid() argument
1327 if (pkey == NULL) in EVP_PKEY_get_default_digest_nid()
1329 return evp_pkey_asn1_ctrl(pkey, ASN1_PKEY_CTRL_DEFAULT_MD_NID, 0, pnid); in EVP_PKEY_get_default_digest_nid()
1332 int EVP_PKEY_get_default_digest_name(EVP_PKEY *pkey, in EVP_PKEY_get_default_digest_name() argument
1335 if (pkey->ameth == NULL) in EVP_PKEY_get_default_digest_name()
1336 return evp_keymgmt_util_get_deflt_digest_name(pkey->keymgmt, in EVP_PKEY_get_default_digest_name()
1337 pkey->keydata, in EVP_PKEY_get_default_digest_name()
1342 int rv = EVP_PKEY_get_default_digest_nid(pkey, &nid); in EVP_PKEY_get_default_digest_name()
1351 int EVP_PKEY_get_group_name(const EVP_PKEY *pkey, char *gname, size_t gname_sz, in EVP_PKEY_get_group_name() argument
1354 return EVP_PKEY_get_utf8_string_param(pkey, OSSL_PKEY_PARAM_GROUP_NAME, in EVP_PKEY_get_group_name()
1358 int EVP_PKEY_digestsign_supports_digest(EVP_PKEY *pkey, OSSL_LIB_CTX *libctx, in EVP_PKEY_digestsign_supports_digest() argument
1369 propq, pkey, NULL); in EVP_PKEY_digestsign_supports_digest()
1376 int EVP_PKEY_set1_encoded_public_key(EVP_PKEY *pkey, const unsigned char *pub, in EVP_PKEY_set1_encoded_public_key() argument
1379 if (pkey == NULL) in EVP_PKEY_set1_encoded_public_key()
1381 if (evp_pkey_is_provided(pkey)) in EVP_PKEY_set1_encoded_public_key()
1383 EVP_PKEY_set_octet_string_param(pkey, in EVP_PKEY_set1_encoded_public_key()
1390 if (evp_pkey_asn1_ctrl(pkey, ASN1_PKEY_CTRL_SET1_TLS_ENCPT, publen, in EVP_PKEY_set1_encoded_public_key()
1396 size_t EVP_PKEY_get1_encoded_public_key(EVP_PKEY *pkey, unsigned char **ppub) in EVP_PKEY_get1_encoded_public_key() argument
1400 if (pkey == NULL) in EVP_PKEY_get1_encoded_public_key()
1402 if (evp_pkey_is_provided(pkey)) { in EVP_PKEY_get1_encoded_public_key()
1410 EVP_PKEY_get_octet_string_param(pkey, in EVP_PKEY_get1_encoded_public_key()
1421 if (!EVP_PKEY_get_octet_string_param(pkey, in EVP_PKEY_get1_encoded_public_key()
1432 rv = evp_pkey_asn1_ctrl(pkey, ASN1_PKEY_CTRL_GET1_TLS_ENCPT, 0, ppub); in EVP_PKEY_get1_encoded_public_key()
1489 static int pkey_set_type(EVP_PKEY *pkey, ENGINE *e, int type, const char *str, in pkey_set_type() argument
1507 if (pkey != NULL) { in pkey_set_type()
1511 free_it = free_it || pkey->pkey.ptr != NULL; in pkey_set_type()
1513 free_it = free_it || pkey->keydata != NULL; in pkey_set_type()
1515 evp_pkey_free_it(pkey); in pkey_set_type()
1521 if (pkey->type != EVP_PKEY_NONE in pkey_set_type()
1522 && type == pkey->save_type in pkey_set_type()
1523 && pkey->ameth != NULL) in pkey_set_type()
1527 ENGINE_finish(pkey->engine); in pkey_set_type()
1528 pkey->engine = NULL; in pkey_set_type()
1529 ENGINE_finish(pkey->pmeth_engine); in pkey_set_type()
1530 pkey->pmeth_engine = NULL; in pkey_set_type()
1540 if (pkey == NULL && eptr != NULL) in pkey_set_type()
1558 if (pkey != NULL) { in pkey_set_type()
1564 pkey->keymgmt = keymgmt; in pkey_set_type()
1566 pkey->save_type = type; in pkey_set_type()
1567 pkey->type = type; in pkey_set_type()
1576 pkey->ameth = ameth; in pkey_set_type()
1588 pkey->type = ameth->pkey_id; in pkey_set_type()
1590 pkey->type = EVP_PKEY_KEYMGMT; in pkey_set_type()
1598 pkey->engine = e; in pkey_set_type()
1627 int EVP_PKEY_set_type_by_keymgmt(EVP_PKEY *pkey, EVP_KEYMGMT *keymgmt) in EVP_PKEY_set_type_by_keymgmt() argument
1648 return pkey_set_type(pkey, NULL, EVP_PKEY_NONE, in EVP_PKEY_set_type_by_keymgmt()
1656 int EVP_PKEY_up_ref(EVP_PKEY *pkey) in EVP_PKEY_up_ref() argument
1660 if (CRYPTO_UP_REF(&pkey->references, &i, pkey->lock) <= 0) in EVP_PKEY_up_ref()
1663 REF_PRINT_COUNT("EVP_PKEY", pkey); in EVP_PKEY_up_ref()
1669 EVP_PKEY *EVP_PKEY_dup(EVP_PKEY *pkey) in EVP_PKEY_dup() argument
1673 if (pkey == NULL) { in EVP_PKEY_dup()
1681 if (evp_pkey_is_blank(pkey)) in EVP_PKEY_dup()
1684 if (evp_pkey_is_provided(pkey)) { in EVP_PKEY_dup()
1685 if (!evp_keymgmt_util_copy(dup_pk, pkey, in EVP_PKEY_dup()
1691 if (evp_pkey_is_legacy(pkey)) { in EVP_PKEY_dup()
1692 const EVP_PKEY_ASN1_METHOD *ameth = pkey->ameth; in EVP_PKEY_dup()
1695 if (pkey->pkey.ptr == NULL /* empty key, just set type */ in EVP_PKEY_dup()
1696 && EVP_PKEY_set_type(dup_pk, pkey->type) != 0) in EVP_PKEY_dup()
1701 if (!ameth->copy(dup_pk, pkey)) in EVP_PKEY_dup()
1710 &dup_pk->ex_data, &pkey->ex_data)) in EVP_PKEY_dup()
1713 if (pkey->attributes != NULL) { in EVP_PKEY_dup()
1714 if ((dup_pk->attributes = ossl_x509at_dup(pkey->attributes)) == NULL) in EVP_PKEY_dup()
1737 assert(x->pkey.ptr == NULL); in evp_pkey_free_legacy()
1742 x->pkey = x->legacy_cache_pkey; in evp_pkey_free_legacy()
1747 x->pkey.ptr = NULL; in evp_pkey_free_legacy()
1799 int EVP_PKEY_get_size(const EVP_PKEY *pkey) in EVP_PKEY_get_size() argument
1803 if (pkey != NULL) { in EVP_PKEY_get_size()
1804 size = pkey->cache.size; in EVP_PKEY_get_size()
1806 if (pkey->ameth != NULL && pkey->ameth->pkey_size != NULL) in EVP_PKEY_get_size()
1807 size = pkey->ameth->pkey_size(pkey); in EVP_PKEY_get_size()
1813 const char *EVP_PKEY_get0_description(const EVP_PKEY *pkey) in EVP_PKEY_get0_description() argument
1815 if (!evp_pkey_is_assigned(pkey)) in EVP_PKEY_get0_description()
1818 if (evp_pkey_is_provided(pkey) && pkey->keymgmt->description != NULL) in EVP_PKEY_get0_description()
1819 return pkey->keymgmt->description; in EVP_PKEY_get0_description()
1821 if (pkey->ameth != NULL) in EVP_PKEY_get0_description()
1822 return pkey->ameth->info; in EVP_PKEY_get0_description()
1843 check = check && pk->pkey.ptr == NULL; in evp_pkey_export_to_provider()
1850 if (pk->pkey.ptr != NULL) { in evp_pkey_export_to_provider()
1884 if (pk->pkey.ptr != NULL) { in evp_pkey_export_to_provider()
2104 return pk->pkey.ptr; in evp_pkey_get_legacy()
2127 ret = pk->legacy_cache_pkey.ptr = tmp_copy->pkey.ptr; in evp_pkey_get_legacy()
2128 tmp_copy->pkey.ptr = NULL; in evp_pkey_get_legacy()
2143 int EVP_PKEY_get_bn_param(const EVP_PKEY *pkey, const char *key_name, in EVP_PKEY_get_bn_param() argument
2159 if (!EVP_PKEY_get_params(pkey, params)) { in EVP_PKEY_get_bn_param()
2173 if (!EVP_PKEY_get_params(pkey, params)) in EVP_PKEY_get_bn_param()
2192 int EVP_PKEY_get_octet_string_param(const EVP_PKEY *pkey, const char *key_name, in EVP_PKEY_get_octet_string_param() argument
2204 if ((ret1 = EVP_PKEY_get_params(pkey, params))) in EVP_PKEY_get_octet_string_param()
2211 int EVP_PKEY_get_utf8_string_param(const EVP_PKEY *pkey, const char *key_name, in EVP_PKEY_get_utf8_string_param() argument
2223 if ((ret1 = EVP_PKEY_get_params(pkey, params))) in EVP_PKEY_get_utf8_string_param()
2238 int EVP_PKEY_get_int_param(const EVP_PKEY *pkey, const char *key_name, in EVP_PKEY_get_int_param() argument
2248 return EVP_PKEY_get_params(pkey, params) in EVP_PKEY_get_int_param()
2252 int EVP_PKEY_get_size_t_param(const EVP_PKEY *pkey, const char *key_name, in EVP_PKEY_get_size_t_param() argument
2262 return EVP_PKEY_get_params(pkey, params) in EVP_PKEY_get_size_t_param()
2266 int EVP_PKEY_set_int_param(EVP_PKEY *pkey, const char *key_name, int in) in EVP_PKEY_set_int_param() argument
2275 return EVP_PKEY_set_params(pkey, params); in EVP_PKEY_set_int_param()
2278 int EVP_PKEY_set_size_t_param(EVP_PKEY *pkey, const char *key_name, size_t in) in EVP_PKEY_set_size_t_param() argument
2287 return EVP_PKEY_set_params(pkey, params); in EVP_PKEY_set_size_t_param()
2290 int EVP_PKEY_set_bn_param(EVP_PKEY *pkey, const char *key_name, in EVP_PKEY_set_bn_param() argument
2299 || pkey == NULL in EVP_PKEY_set_bn_param()
2300 || !evp_pkey_is_assigned(pkey)) in EVP_PKEY_set_bn_param()
2311 return EVP_PKEY_set_params(pkey, params); in EVP_PKEY_set_bn_param()
2314 int EVP_PKEY_set_utf8_string_param(EVP_PKEY *pkey, const char *key_name, in EVP_PKEY_set_utf8_string_param() argument
2324 return EVP_PKEY_set_params(pkey, params); in EVP_PKEY_set_utf8_string_param()
2327 int EVP_PKEY_set_octet_string_param(EVP_PKEY *pkey, const char *key_name, in EVP_PKEY_set_octet_string_param() argument
2338 return EVP_PKEY_set_params(pkey, params); in EVP_PKEY_set_octet_string_param()
2341 const OSSL_PARAM *EVP_PKEY_settable_params(const EVP_PKEY *pkey) in EVP_PKEY_settable_params() argument
2343 return (pkey != NULL && evp_pkey_is_provided(pkey)) in EVP_PKEY_settable_params()
2344 ? EVP_KEYMGMT_settable_params(pkey->keymgmt) in EVP_PKEY_settable_params()
2348 int EVP_PKEY_set_params(EVP_PKEY *pkey, OSSL_PARAM params[]) in EVP_PKEY_set_params() argument
2350 if (pkey != NULL) { in EVP_PKEY_set_params()
2351 if (evp_pkey_is_provided(pkey)) { in EVP_PKEY_set_params()
2352 pkey->dirty_cnt++; in EVP_PKEY_set_params()
2353 return evp_keymgmt_set_params(pkey->keymgmt, pkey->keydata, params); in EVP_PKEY_set_params()
2363 else if (evp_pkey_is_legacy(pkey)) { in EVP_PKEY_set_params()
2364 return evp_pkey_set_params_to_ctrl(pkey, params); in EVP_PKEY_set_params()
2373 const OSSL_PARAM *EVP_PKEY_gettable_params(const EVP_PKEY *pkey) in EVP_PKEY_gettable_params() argument
2375 return (pkey != NULL && evp_pkey_is_provided(pkey)) in EVP_PKEY_gettable_params()
2376 ? EVP_KEYMGMT_gettable_params(pkey->keymgmt) in EVP_PKEY_gettable_params()
2380 int EVP_PKEY_get_params(const EVP_PKEY *pkey, OSSL_PARAM params[]) in EVP_PKEY_get_params() argument
2382 if (pkey != NULL) { in EVP_PKEY_get_params()
2383 if (evp_pkey_is_provided(pkey)) in EVP_PKEY_get_params()
2384 return evp_keymgmt_get_params(pkey->keymgmt, pkey->keydata, params) > 0; in EVP_PKEY_get_params()
2386 else if (evp_pkey_is_legacy(pkey)) in EVP_PKEY_get_params()
2387 return evp_pkey_get_params_to_ctrl(pkey, params) > 0; in EVP_PKEY_get_params()
2395 int EVP_PKEY_get_ec_point_conv_form(const EVP_PKEY *pkey) in EVP_PKEY_get_ec_point_conv_form() argument
2400 if (pkey == NULL) in EVP_PKEY_get_ec_point_conv_form()
2403 if (pkey->keymgmt == NULL in EVP_PKEY_get_ec_point_conv_form()
2404 || pkey->keydata == NULL) { in EVP_PKEY_get_ec_point_conv_form()
2407 const EC_KEY *ec = EVP_PKEY_get0_EC_KEY(pkey); in EVP_PKEY_get_ec_point_conv_form()
2418 if (!EVP_PKEY_get_utf8_string_param(pkey, in EVP_PKEY_get_ec_point_conv_form()
2435 int EVP_PKEY_get_field_type(const EVP_PKEY *pkey) in EVP_PKEY_get_field_type() argument
2440 if (pkey == NULL) in EVP_PKEY_get_field_type()
2443 if (pkey->keymgmt == NULL in EVP_PKEY_get_field_type()
2444 || pkey->keydata == NULL) { in EVP_PKEY_get_field_type()
2447 const EC_KEY *ec = EVP_PKEY_get0_EC_KEY(pkey); in EVP_PKEY_get_field_type()
2462 if (!EVP_PKEY_get_utf8_string_param(pkey, OSSL_PKEY_PARAM_EC_FIELD_TYPE, in EVP_PKEY_get_field_type()