EVP_PKEY_CTX_CTRL(3ssl) OpenSSL EVP_PKEY_CTX_CTRL(3ssl) EVP_PKEY_CTX_ctrl, EVP_PKEY_CTX_ctrl_str, EVP_PKEY_CTX_ctrl_uint64, EVP_PKEY_CTX_md, EVP_PKEY_CTX_set_signature_md, EVP_PKEY_CTX_get_signature_md, EVP_PKEY_CTX_set_mac_key, EVP_PKEY_CTX_set_group_name, EVP_PKEY_CTX_get_group_name, EVP_PKEY_CTX_set_rsa_padding, EVP_PKEY_CTX_get_rsa_padding, EVP_PKEY_CTX_set_rsa_pss_saltlen, EVP_PKEY_CTX_get_rsa_pss_saltlen, EVP_PKEY_CTX_set_rsa_keygen_bits, EVP_PKEY_CTX_set_rsa_keygen_pubexp, EVP_PKEY_CTX_set1_rsa_keygen_pubexp, EVP_PKEY_CTX_set_rsa_keygen_primes, EVP_PKEY_CTX_set_rsa_mgf1_md_name, EVP_PKEY_CTX_set_rsa_mgf1_md, EVP_PKEY_CTX_get_rsa_mgf1_md, EVP_PKEY_CTX_get_rsa_mgf1_md_name, EVP_PKEY_CTX_set_rsa_oaep_md_name, EVP_PKEY_CTX_set_rsa_oaep_md, EVP_PKEY_CTX_get_rsa_oaep_md, EVP_PKEY_CTX_get_rsa_oaep_md_name, EVP_PKEY_CTX_set0_rsa_oaep_label, EVP_PKEY_CTX_get0_rsa_oaep_label, EVP_PKEY_CTX_set_dsa_paramgen_bits, EVP_PKEY_CTX_set_dsa_paramgen_q_bits, EVP_PKEY_CTX_set_dsa_paramgen_md, EVP_PKEY_CTX_set_dsa_paramgen_md_props, EVP_PKEY_CTX_set_dsa_paramgen_gindex, EVP_PKEY_CTX_set_dsa_paramgen_type, EVP_PKEY_CTX_set_dsa_paramgen_seed, EVP_PKEY_CTX_set_dh_paramgen_prime_len, EVP_PKEY_CTX_set_dh_paramgen_subprime_len, EVP_PKEY_CTX_set_dh_paramgen_generator, EVP_PKEY_CTX_set_dh_paramgen_type, EVP_PKEY_CTX_set_dh_paramgen_gindex, EVP_PKEY_CTX_set_dh_paramgen_seed, EVP_PKEY_CTX_set_dh_rfc5114, EVP_PKEY_CTX_set_dhx_rfc5114, EVP_PKEY_CTX_set_dh_pad, EVP_PKEY_CTX_set_dh_nid, EVP_PKEY_CTX_set_dh_kdf_type, EVP_PKEY_CTX_get_dh_kdf_type, EVP_PKEY_CTX_set0_dh_kdf_oid, EVP_PKEY_CTX_get0_dh_kdf_oid, EVP_PKEY_CTX_set_dh_kdf_md, EVP_PKEY_CTX_get_dh_kdf_md, EVP_PKEY_CTX_set_dh_kdf_outlen, EVP_PKEY_CTX_get_dh_kdf_outlen, EVP_PKEY_CTX_set0_dh_kdf_ukm, EVP_PKEY_CTX_get0_dh_kdf_ukm, EVP_PKEY_CTX_set_ec_paramgen_curve_nid, EVP_PKEY_CTX_set_ec_param_enc, EVP_PKEY_CTX_set_ecdh_cofactor_mode, EVP_PKEY_CTX_get_ecdh_cofactor_mode, EVP_PKEY_CTX_set_ecdh_kdf_type, EVP_PKEY_CTX_get_ecdh_kdf_type, EVP_PKEY_CTX_set_ecdh_kdf_md, EVP_PKEY_CTX_get_ecdh_kdf_md, EVP_PKEY_CTX_set_ecdh_kdf_outlen, EVP_PKEY_CTX_get_ecdh_kdf_outlen, EVP_PKEY_CTX_set0_ecdh_kdf_ukm, EVP_PKEY_CTX_get0_ecdh_kdf_ukm, EVP_PKEY_CTX_set1_id, EVP_PKEY_CTX_get1_id, EVP_PKEY_CTX_get1_id_len, EVP_PKEY_CTX_set_kem_op - #include int EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype, int cmd, int p1, void *p2); int EVP_PKEY_CTX_ctrl_uint64(EVP_PKEY_CTX *ctx, int keytype, int optype, int cmd, uint64_t value); int EVP_PKEY_CTX_ctrl_str(EVP_PKEY_CTX *ctx, const char *type, const char *value); int EVP_PKEY_CTX_md(EVP_PKEY_CTX *ctx, int optype, int cmd, const char *md); int EVP_PKEY_CTX_set_signature_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); int EVP_PKEY_CTX_get_signature_md(EVP_PKEY_CTX *ctx, const EVP_MD **pmd); int EVP_PKEY_CTX_set_mac_key(EVP_PKEY_CTX *ctx, const unsigned char *key, int len); int EVP_PKEY_CTX_set_group_name(EVP_PKEY_CTX *ctx, const char *name); int EVP_PKEY_CTX_get_group_name(EVP_PKEY_CTX *ctx, char *name, size_t namelen); int EVP_PKEY_CTX_set_kem_op(EVP_PKEY_CTX *ctx, const char *op); #include int EVP_PKEY_CTX_set_rsa_padding(EVP_PKEY_CTX *ctx, int pad); int EVP_PKEY_CTX_get_rsa_padding(EVP_PKEY_CTX *ctx, int *pad); int EVP_PKEY_CTX_set_rsa_pss_saltlen(EVP_PKEY_CTX *ctx, int saltlen); int EVP_PKEY_CTX_get_rsa_pss_saltlen(EVP_PKEY_CTX *ctx, int *saltlen); int EVP_PKEY_CTX_set_rsa_keygen_bits(EVP_PKEY_CTX *ctx, int mbits); int EVP_PKEY_CTX_set1_rsa_keygen_pubexp(EVP_PKEY_CTX *ctx, BIGNUM *pubexp); int EVP_PKEY_CTX_set_rsa_keygen_primes(EVP_PKEY_CTX *ctx, int primes); int EVP_PKEY_CTX_set_rsa_mgf1_md_name(EVP_PKEY_CTX *ctx, const char *mdname, const char *mdprops); int EVP_PKEY_CTX_set_rsa_mgf1_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); int EVP_PKEY_CTX_get_rsa_mgf1_md(EVP_PKEY_CTX *ctx, const EVP_MD **md); int EVP_PKEY_CTX_get_rsa_mgf1_md_name(EVP_PKEY_CTX *ctx, char *name, size_t namelen); int EVP_PKEY_CTX_set_rsa_oaep_md_name(EVP_PKEY_CTX *ctx, const char *mdname, const char *mdprops); int EVP_PKEY_CTX_set_rsa_oaep_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); int EVP_PKEY_CTX_get_rsa_oaep_md(EVP_PKEY_CTX *ctx, const EVP_MD **md); int EVP_PKEY_CTX_get_rsa_oaep_md_name(EVP_PKEY_CTX *ctx, char *name, size_t namelen); int EVP_PKEY_CTX_set0_rsa_oaep_label(EVP_PKEY_CTX *ctx, void *label, int len); int EVP_PKEY_CTX_get0_rsa_oaep_label(EVP_PKEY_CTX *ctx, unsigned char **label); #include int EVP_PKEY_CTX_set_dsa_paramgen_bits(EVP_PKEY_CTX *ctx, int nbits); int EVP_PKEY_CTX_set_dsa_paramgen_q_bits(EVP_PKEY_CTX *ctx, int qbits); int EVP_PKEY_CTX_set_dsa_paramgen_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); int EVP_PKEY_CTX_set_dsa_paramgen_md_props(EVP_PKEY_CTX *ctx, const char *md_name, const char *md_properties); int EVP_PKEY_CTX_set_dsa_paramgen_type(EVP_PKEY_CTX *ctx, const char *name); int EVP_PKEY_CTX_set_dsa_paramgen_gindex(EVP_PKEY_CTX *ctx, int gindex); int EVP_PKEY_CTX_set_dsa_paramgen_seed(EVP_PKEY_CTX *ctx, const unsigned char *seed, size_t seedlen); #include int EVP_PKEY_CTX_set_dh_paramgen_prime_len(EVP_PKEY_CTX *ctx, int len); int EVP_PKEY_CTX_set_dh_paramgen_subprime_len(EVP_PKEY_CTX *ctx, int len); int EVP_PKEY_CTX_set_dh_paramgen_generator(EVP_PKEY_CTX *ctx, int gen); int EVP_PKEY_CTX_set_dh_paramgen_type(EVP_PKEY_CTX *ctx, int type); int EVP_PKEY_CTX_set_dh_pad(EVP_PKEY_CTX *ctx, int pad); int EVP_PKEY_CTX_set_dh_nid(EVP_PKEY_CTX *ctx, int nid); int EVP_PKEY_CTX_set_dh_rfc5114(EVP_PKEY_CTX *ctx, int rfc5114); int EVP_PKEY_CTX_set_dhx_rfc5114(EVP_PKEY_CTX *ctx, int rfc5114); int EVP_PKEY_CTX_set_dh_paramgen_gindex(EVP_PKEY_CTX *ctx, int gindex); int EVP_PKEY_CTX_set_dh_paramgen_seed(EVP_PKEY_CTX *ctx, const unsigned char *seed, size_t seedlen); int EVP_PKEY_CTX_set_dh_kdf_type(EVP_PKEY_CTX *ctx, int kdf); int EVP_PKEY_CTX_get_dh_kdf_type(EVP_PKEY_CTX *ctx); int EVP_PKEY_CTX_set0_dh_kdf_oid(EVP_PKEY_CTX *ctx, ASN1_OBJECT *oid); int EVP_PKEY_CTX_get0_dh_kdf_oid(EVP_PKEY_CTX *ctx, ASN1_OBJECT **oid); int EVP_PKEY_CTX_set_dh_kdf_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); int EVP_PKEY_CTX_get_dh_kdf_md(EVP_PKEY_CTX *ctx, const EVP_MD **md); int EVP_PKEY_CTX_set_dh_kdf_outlen(EVP_PKEY_CTX *ctx, int len); int EVP_PKEY_CTX_get_dh_kdf_outlen(EVP_PKEY_CTX *ctx, int *len); int EVP_PKEY_CTX_set0_dh_kdf_ukm(EVP_PKEY_CTX *ctx, unsigned char *ukm, int len); #include int EVP_PKEY_CTX_set_ec_paramgen_curve_nid(EVP_PKEY_CTX *ctx, int nid); int EVP_PKEY_CTX_set_ec_param_enc(EVP_PKEY_CTX *ctx, int param_enc); int EVP_PKEY_CTX_set_ecdh_cofactor_mode(EVP_PKEY_CTX *ctx, int cofactor_mode); int EVP_PKEY_CTX_get_ecdh_cofactor_mode(EVP_PKEY_CTX *ctx); int EVP_PKEY_CTX_set_ecdh_kdf_type(EVP_PKEY_CTX *ctx, int kdf); int EVP_PKEY_CTX_get_ecdh_kdf_type(EVP_PKEY_CTX *ctx); int EVP_PKEY_CTX_set_ecdh_kdf_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); int EVP_PKEY_CTX_get_ecdh_kdf_md(EVP_PKEY_CTX *ctx, const EVP_MD **md); int EVP_PKEY_CTX_set_ecdh_kdf_outlen(EVP_PKEY_CTX *ctx, int len); int EVP_PKEY_CTX_get_ecdh_kdf_outlen(EVP_PKEY_CTX *ctx, int *len); int EVP_PKEY_CTX_set0_ecdh_kdf_ukm(EVP_PKEY_CTX *ctx, unsigned char *ukm, int len); int EVP_PKEY_CTX_set1_id(EVP_PKEY_CTX *ctx, void *id, size_t id_len); int EVP_PKEY_CTX_get1_id(EVP_PKEY_CTX *ctx, void *id); int EVP_PKEY_CTX_get1_id_len(EVP_PKEY_CTX *ctx, size_t *id_len); OpenSSL 3.0 OPENSSL_API_COMPAT openssl_user_macros(7): #include int EVP_PKEY_CTX_set_rsa_keygen_pubexp(EVP_PKEY_CTX *ctx, BIGNUM *pubexp); #include int EVP_PKEY_CTX_get0_dh_kdf_ukm(EVP_PKEY_CTX *ctx, unsigned char **ukm); #include int EVP_PKEY_CTX_get0_ecdh_kdf_ukm(EVP_PKEY_CTX *ctx, unsigned char **ukm); EVP_PKEY_CTX_ctrl() ctx. keytype -1. optype . cmd p1 p2. cmd = EVP_PKEY_CTRL_SET_MAC_KEY p1 MAC p2 MAC. Poly1305 SipHash HMAC CMAC. EVP_PKEY_CTX_ctrl() . EVP_PKEY_CTX_ctrl_uint64() uint64 p2 EVP_PKEY_CTX_ctrl(). EVP_PKEY_CTX_ctrl_str() ctx . . openssl -pkeyopt pkeyutl genpkey req. EVP_PKEY_CTX_md() ctx. md. EVP_PKEY_CTX_set_signature_md() . RSA DSA ECDSA. EVP_PKEY_CTX_get_signature_md() . RSA DSA ECDSA. . EVP_PKEY_CTX_set_mac_key(). . EVP_PKEY_new_raw_private_key(3) . EVP_PKEY_CTX_set_mac_key() EVP_PKEY_new_raw_private_key(3). EVP_PKEY_CTX_set_group_name() name . EC DH . EVP_PKEY_CTX_get_group_name() ctx name namelen NUL . RSA EVP_PKEY_CTX_set_rsa_padding() RSA ctx. pad RSA_PKCS1_PADDING PKCS#1 RSA_NO_PADDING RSA_PKCS1_OAEP_PADDING OAEP ( ) RSA_X931_PADDING X9.31 ( ) RSA_PKCS1_PSS_PADDING ( ) RSA_PKCS1_WITH_TLS_PADDING TLS RSA ClientKeyExchange ( ). RSA EVP_PKEY_CTX_set_signature_md(). PKCS#1 DigestInfo PKCS#1 () . RSA PKCS#1 . X9.31 RSA . . EVP_PKEY_CTX_get_rsa_padding() RSA ctx. EVP_PKEY_CTX_set_rsa_pss_saltlen() RSA PSS saltlen. PSS. . : RSA_PSS_SALTLEN_DIGEST . RSA_PSS_SALTLEN_MAX . RSA_PSS_SALTLEN_AUTO PSS . RSA_PSS_SALTLEN_MAX. RSA_PSS_SALTLEN_AUTO_DIGEST_MAX PSS RSA_PSS_SALTLEN_AUTO. FIPS 186-4 5.5. EVP_PKEY_CTX_get_rsa_pss_saltlen() RSA PSS ctx. RSA_PKCS1_PSS_PADDING. EVP_PKEY_CTX_set_rsa_keygen_bits() RSA RSA bits. 2048 . EVP_PKEY_CTX_set1_rsa_keygen_pubexp() RSA pubexp. . OpenSSL pubexp EVP_PKEY_CTX ( ). 65537. EVP_PKEY_CTX_set_rsa_keygen_pubexp() EVP_PKEY_CTX_set1_rsa_keygen_pubexp() pubexp . EVP_PKEY_CTX_set_rsa_keygen_primes() RSA primes. 2. EVP_PKEY_CTX_set_rsa_mgf1_md_name() MGF1 RSA mdname. RSA mdprops. . RSA_PKCS1_OAEP_PADDING RSA_PKCS1_PSS_PADDING. EVP_PKEY_CTX_set_rsa_mgf1_md() EVP_PKEY_CTX_set_rsa_mgf1_md_name() md . EVP_PKEY_CTX_get_rsa_mgf1_md_name() MGF1 ctx. . RSA_PKCS1_OAEP_PADDING RSA_PKCS1_PSS_PADDING. EVP_PKEY_CTX_get_rsa_mgf1_md() EVP_PKEY_CTX_get_rsa_mgf1_md_name() EVP_MD . EVP_MD . EVP_MD NULL ( ). EVP_PKEY_CTX_set_rsa_oaep_md_name() RSA OAEP mdname. RSA mdprops. RSA_PKCS1_OAEP_PADDING. EVP_PKEY_CTX_set_rsa_oaep_md() EVP_PKEY_CTX_set_rsa_oaep_md_name() md . EVP_PKEY_CTX_get_rsa_oaep_md_name() RSA OAEP name namelen. RSA_PKCS1_OAEP_PADDING. . EVP_PKEY_CTX_get_rsa_oaep_md() EVP_PKEY_CTX_get_rsa_oaep_md_name() EVP_MD . EVP_MD . EVP_MD NULL ( ). EVP_PKEY_CTX_set0_rsa_oaep_label() RSA OAEP label len. label NULL len 0 . label. RSA_PKCS1_OAEP_PADDING. EVP_PKEY_CTX_get0_rsa_oaep_label() RSA OAEP label. . RSA_PKCS1_OAEP_PADDING. . RSA_PKCS1_WITH_TLS_PADDING TLS RSA ClientKeyExchange TLS. RSA_PKCS1_PADDING . . TLS . EVP_PKEY_CTX_set_params(3). OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION . TLS ( 0x0303 TLSv1.2 0x0302 TLSv1.1 ). . OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION . . RSA_PKCS1_WITH_TLS_PADDING OpenSSL 3.2.0 RSA_PKCS1_PADDING . OpenSSL RSA . Bleichenbacher OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION ( ) 0. DSA EVP_PKEY_CTX_set_dsa_paramgen_bits() DSA nbits. 2048. EVP_PKEY_CTX_set_dsa_paramgen_q_bits() q DSA qbits. 224. q . EVP_PKEY_CTX_set_dsa_paramgen_md() DSA md. SHA-1 SHA-224 SHA-256 q . EVP_PKEY_CTX_set_dsa_paramgen_md_props() DSA md_name md_properties . md_name SHA-1 SHA-224 SHA-256 q . md_properties '' . EVP_PKEY_CTX_set_dsa_paramgen_gindex() gindex G. -1 g g . g . EVP_PKEY_CTX_set_dsa_paramgen_seed() seed . p q . p q g . EVP_PKEY_CTX_set_dsa_paramgen_type() FIPS186-4 name "fips186_4" FIPS186-2 name "fips186_2". "fips186_2". FIPS "fips186_4". DH EVP_PKEY_CTX_set_dh_paramgen_prime_len() DH p DH. 2048. 256. EVP_PKEY_CTX_set_dh_paramgen_subprime_len() q DH. 256 2048 160 . DH "fips186_4". EVP_PKEY_CTX_set_dh_paramgen_generator() DH gen DH. 2. EVP_PKEY_CTX_set_dh_paramgen_type() DH. : DH_PARAMGEN_TYPE_GROUP . p ffdhe . DH_PARAMGEN_TYPE_FIPS_186_4 FFC FIPS186-4. DH_PARAMGEN_TYPE_FIPS_186_2 FFC FIPS186-2 (X9.42 DH). DH_PARAMGEN_TYPE_GENERATOR g ( PKCS#3). DH_PARAMGEN_TYPE_GENERATOR "DH" DH_PARAMGEN_TYPE_FIPS_186_2 "DHX". FIPS DH_PARAMGEN_TYPE_GROUP "DH" "DHX". EVP_PKEY_CTX_set_dh_paramgen_gindex() gindex G. -1 g g . g . EVP_PKEY_CTX_set_dh_paramgen_seed() seed . p q . p q g . EVP_PKEY_CTX_set_dh_pad() DH. pad 1 DH p. pad () . EVP_PKEY_CTX_set_dh_nid() DH nid RFC7919 RFC3526. nid NID_ffdhe2048 NID_ffdhe3072 NID_ffdhe4096 NID_ffdhe6144 NID_ffdhe8192 NID_modp_1536 NID_modp_2048 NID_modp_3072 NID_modp_4096 NID_modp_6144 NID_modp_8192 NID_undef . . nid rfc5114 . EVP_PKEY_CTX_set_dh_rfc5114() EVP_PKEY_CTX_set_dhx_rfc5114() DH RFC5114. rfc5114 1 2 3 RFC5114 2.1 2.2 2.3 0 . . ctx EVP_PKEY_DHX. rfc5114 nid . DH ctx EVP_PKEY_DHX. EVP_PKEY_derive() KDF DH. KDF (KEK) (CEK). EVP_PKEY_CTX_set_dh_kdf_type() kdf DH. EVP_PKEY_DH_KDF_NONE EVP_PKEY_DH_KDF_X9_42 RFC2631 ( X9.42). kdf_oid kdf_md kdf_outlen. EVP_PKEY_CTX_get_dh_kdf_type() ctx DH. EVP_PKEY_DH_KDF_NONE EVP_PKEY_DH_KDF_X9_42. EVP_PKEY_CTX_set0_dh_kdf_oid() oid DH. OID . oid. EVP_PKEY_CTX_get0_dh_kdf_oid() oid ctx DH. . EVP_PKEY_CTX_set_dh_kdf_md() md DH. RFC2631 SHA1 OpenSSL . EVP_PKEY_CTX_get_dh_kdf_md() ctx DH. EVP_PKEY_CTX_set_dh_kdf_outlen() len DH. EVP_PKEY_CTX_get_dh_kdf_outlen() ctx DH. EVP_PKEY_CTX_set0_dh_kdf_ukm() ukm len DH. partyAInfo RFC2631. 512 OpenSSL . ukm. EVP_PKEY_CTX_get0_dh_kdf_ukm() ctx. . . EC EVP_PKEY_CTX_set_group_name() ( ) name . EVP_PKEY_CTX_set_ec_paramgen_curve_nid() EVP_PKEY_CTX_set_group_name() EC nid . EC EVP_PKEY_CTX_set_group_name() EVP_PKEY_CTX_set_ec_paramgen_curve_nid() . EC. EVP_PKEY_CTX_get_group_name() ( ) ctx. EVP_PKEY_CTX_set_ec_param_enc() EC param_enc EC EC. OPENSSL_EC_EXPLICIT_CURVE ( OpenSSL 1.1.0) OPENSSL_EC_NAMED_CURVE . . : OPENSSL_EC_NAMED_CURVE OpenSSL 1.1.0 0 . ECDH EVP_PKEY_CTX_set_ecdh_cofactor_mode() cofactor_mode ECDH. 1 0 -1 . EVP_PKEY_CTX_get_ecdh_cofactor_mode() ctx ECDH. 1 0 . ECDH EVP_PKEY_CTX_set_ecdh_kdf_type() kdf ECDH. EVP_PKEY_ECDH_KDF_NONE EVP_PKEY_ECDH_KDF_X9_63 X9.63. kdf_md kdf_outlen. EVP_PKEY_CTX_get_ecdh_kdf_type() ctx ECDH. EVP_PKEY_ECDH_KDF_NONE EVP_PKEY_ECDH_KDF_X9_63. EVP_PKEY_CTX_set_ecdh_kdf_md() md ECDH. X9.63 SHA1 OpenSSL . EVP_PKEY_CTX_get_ecdh_kdf_md() ctx ECDH. EVP_PKEY_CTX_set_ecdh_kdf_outlen() len ECDH. EVP_PKEY_CTX_get_ecdh_kdf_outlen() ctx ECDH. EVP_PKEY_CTX_set0_ecdh_kdf_ukm() ukm ECDH. X9.63. ukm. EVP_PKEY_CTX_get0_ecdh_kdf_ukm() ctx. . . EVP_PKEY_CTX_set1_id() EVP_PKEY_CTX_get1_id() EVP_PKEY_CTX_get1_id_len() SM2. EVP_PKEY_CTX_set1_id() id id_len . id . EVP_PKEY_CTX_get1_id_len() EVP_PKEY_CTX_set1_id(). EVP_PKEY_CTX_get1_id(). EVP_PKEY_CTX_get1_id() id. id EVP_PKEY_CTX_get1_id(). EVP_PKEY_CTX_set_kem_op() KEM . EVP_PKEY_encapsulate_init() EVP_PKEY_decapsulate_init() kem. RSA EVP_PKEY_encapsulate() EVP_PKEY_decapsulate(). EVP_KEM-RSA(7) EVP_KEM-EC(7) EVP_KEM-X25519(7) EVP_KEM-X448(7) EVP_KEM-ML-KEM(7). 0 . -2 . EVP_PKEY_CTX_set_params(3) EVP_PKEY_CTX_new(3) EVP_PKEY_encrypt(3) EVP_PKEY_decrypt(3) EVP_PKEY_sign(3) EVP_PKEY_verify(3) EVP_PKEY_verify_recover(3) EVP_PKEY_derive(3) EVP_PKEY_keygen(3) EVP_PKEY_encapsulate(3) EVP_PKEY_decapsulate(3) EVP_PKEY_CTX_get_rsa_oaep_md_name() EVP_PKEY_CTX_get_rsa_mgf1_md_name() EVP_PKEY_CTX_set_rsa_mgf1_md_name() EVP_PKEY_CTX_set_rsa_oaep_md_name() EVP_PKEY_CTX_set_dsa_paramgen_md_props() EVP_PKEY_CTX_set_dsa_paramgen_gindex() EVP_PKEY_CTX_set_dsa_paramgen_type() EVP_PKEY_CTX_set_dsa_paramgen_seed() EVP_PKEY_CTX_set_group_name() EVP_PKEY_CTX_get_group_name() OpenSSL 3.0. EVP_PKEY_CTX_set1_id() EVP_PKEY_CTX_get1_id() EVP_PKEY_CTX_get1_id_len() 1.1.1 OpenSSL 1.0.0. OpenSSL 1.1.1 . OpenSSL 3.0 . EVP_PKEY_CTX_set_rsa_keygen_pubexp(), EVP_PKEY_CTX_get0_dh_kdf_ukm(), EVP_PKEY_CTX_get0_ecdh_kdf_ukm() OpenSSL 3.0. 2006-2025 OpenSSL. . Apache 2.0 ( ""). . LICENSE . 3 . . : . 3.6.2 7 2026 EVP_PKEY_CTX_CTRL(3ssl)