SSL_CTX_SET1_CURVES(3ssl) OpenSSL SSL_CTX_SET1_CURVES(3ssl) SSL_CTX_set1_groups, SSL_CTX_set1_groups_list, SSL_set1_groups, SSL_set1_groups_list, SSL_get1_groups, SSL_get0_iana_groups, SSL_get_shared_group, SSL_get_negotiated_group, SSL_CTX_set1_curves, SSL_CTX_set1_curves_list, SSL_set1_curves, SSL_set1_curves_list, SSL_get1_curves, SSL_get_shared_curve, SSL_CTX_get0_implemented_groups - EC #include int SSL_CTX_set1_groups(SSL_CTX *ctx, int *glist, int glistlen); int SSL_CTX_set1_groups_list(SSL_CTX *ctx, char *list); int SSL_set1_groups(SSL *ssl, int *glist, int glistlen); int SSL_set1_groups_list(SSL *ssl, char *list); int SSL_get1_groups(SSL *ssl, int *groups); int SSL_get0_iana_groups(SSL *ssl, uint16_t **out); int SSL_get_shared_group(SSL *s, int n); int SSL_get_negotiated_group(SSL *s); int SSL_CTX_set1_curves(SSL_CTX *ctx, int *clist, int clistlen); int SSL_CTX_set1_curves_list(SSL_CTX *ctx, char *list); int SSL_set1_curves(SSL *ssl, int *clist, int clistlen); int SSL_set1_curves_list(SSL *ssl, char *list); int SSL_get1_curves(SSL *ssl, int *curves); int SSL_get_shared_curve(SSL *s, int n); int SSL_CTX_get0_implemented_groups(SSL_CTX *ctx, int all, STACK_OF(OPENSSL_CSTRING) *names); . NID. . NID . "" ( SSL_CTX_set1_groups_list() SSL_set1_groups_list()). SSL_CTX_set1_groups() ctx glistlen glist. NIDs . TLSv1.3 : NID_X9_62_prime256v1, NID_secp384r1, NID_secp521r1, NID_X25519, NID_X448, NID_brainpoolP256r1tls13, NID_brainpoolP384r1tls13, NID_brainpoolP512r1tls13, NID_ffdhe2048, NID_ffdhe3072, NID_ffdhe4096, NID_ffdhe6144, NID_ffdhe8192. OpenSSL TLS . TLS . . TLS 1.2 . SSL_OP_SERVER_PREFERENCE . . TLS 1.3 . TLS 1.3 . . . SSL_CTX_set1_groups() NID OpenSSL clist . OpenSSL . SSL_CTX_set1_groups_list() tuples . SSL_CTX_set1_groups_list() ctx list. SSL_CTX_set1_groups() NIDs . TLS 1.2 TLS 1.3 : $ openssl list -tls1_2 -tls-groups $ openssl list -tls1_3 -tls-groups NIST ( P-256) ( X25519 ffdhe2048) OID OpenSSL ( prime256v1). OpenSSL 3.5 . IANA . list tuples . tuples TLS OpenSSL (HRR) . OpenSSL tuples list . ( ). . list "P-521:P-384:P-256:X25519:ffdhe2048". key_share TLSv1.3 ClientHello. . tuples "/". "*" . "*" . "?" . . OpenSSL OpenSSL / . "?" . "-" . . . "DEFAULT" OpenSSL . "DEFAULT" ":" . "/". "DEFAULT" ":" . "/". DEFAULT X25519MLKEM768 . TLS Client Hello TCP TLS . "?X25519MLKEM768:" "*" . (HRR). X25519MLKEM768 . list : P-521:*P-256/*P-384/*X25519:P-384:ffdhe2048. TLS 1.3 list "ClientHello" . . "*" . "DEFAULT" "*" OpenSSL . "*" . 4 . : "P-521:*P-256/*P-384" P-521 P-256 P-384 "ClientHello" P-256 P-384. TLS 1.3 list . . SSL_OP_SERVER_PREFERENCE SSL_set_options (: ). - : (= ) : SH : HRR (= = SSL_OP_SERVER_PREFERENCE) : SH : HRR : SH: HRR: (HRR) Hello . . "*" "?" "-" "*" "DEFAULT". ":" "/" list . SSL_set1_groups() SSL_set1_groups_list() SSL ssl. SSL_get1_groups() . . groups NULL . groups NIDs . . NID OR TLSEXT_nid_unknown (0x1000000) . SSL_get0_iana_groups() supported_groups. *out uint16_t IANA. ClientHello. . SSL_get_shared_group() NID n SSL ssl . n -1 . n . n NID_undef. NID OR TLSEXT_nid_unknown (0x1000000) . SSL_get_negotiated_group() NID . TLSv1.3 PSK . TLS ( ). . NID OR TLSEXT_nid_unknown (0x1000000) . SSL_get0_group_name(3) SSL_get_negotiated_group(). SSL_CTX_get0_implemented_groups() TLS TLS ctx. . all IANA . SSL_CTX . names . -tls-groups -all-tls-groups openssl list TLS 1.2 TLS 1.3 ( ). . . TLS1.3 . TLS1.3 Diffie Hellman. . SSL_CONF . SSL_CTX_set1_groups() SSL_CTX_set1_groups_list() SSL_set1_groups() SSL_set1_groups_list() SSL_CTX_get0_implemented_groups() 1 0 . SSL_get1_groups() . SSL_get0_iana_groups() (uint16_t) . SSL_get_shared_group() NID n NID_undef n n -1. ssl SSL_get_shared_group() -1. SSL_get_negotiated_group() NID NID_undef . list "P-521:P-256/P-384/X25519:ffdhe2048" list "P-521:*P-384" "P-521" "P-384" . HRR "P-521" P-384 . list "A:B/C:D/E:F". 3 : "A:B" "C:D" "E:F". list / : - "A:D:*F": "A" . HRR "A". - "B:*C": "B" "A:B" HRR "B". - "C:*F": "C" "C:D" HRR "C". - "C:*D": "C" "D" "D". . - "*C:*D": "C". - "F": "*" "F". "F". - "*E:C:A": "A" "A:B" HRR "A". - "*E:B:*A": "A". / : - "*D:*C" - : "D". - : "C". - "B:A:*C" - : (HRR) "B". "A" "B" . "B" (HRR) "B". - : (HRR) "A". ssl(7) SSL_CTX_add_extra_chain_cert(3) SSL_get0_group_name(3) OpenSSL 1.0.2. OpenSSL 1.1.1. SSL_get_negotiated_group() OpenSSL 3.0.0. SSL_CTX_set1_groups_list() SSL_set1_groups_list() OpenSSL 3.3. ML-KEM OpenSSL 3.5. OpenSSL 3.5 ECDH PQ TLS: X25519MLKEM768 SecP256r1MLKEM768 SecP384r1MLKEM1024. (CPU) ECDH . SecP384r1MLKEM1024 ECDH P-384. 1700 1200 . OpenSSL 3.5 . SSL_CTX_get0_implemented_groups OpenSSL 3.5. . OpenSSL's TLS 1.3 . 2013-2026 OpenSSL. . Apache 2.0 ( ""). . LICENSE . 3 . . : . 3.6.2 7 2026 SSL_CTX_SET1_CURVES(3ssl)