@@ -3189,6 +3189,9 @@ Init_ossl_ssl(void)
31893189 rb_define_const (mSSL , "VERIFY_CLIENT_ONCE" , INT2NUM (SSL_VERIFY_CLIENT_ONCE ));
31903190
31913191 rb_define_const (mSSL , "OP_ALL" , UINT64T2NUM (SSL_OP_ALL ));
3192+ #ifdef SSL_OP_NO_EXTENDED_MASTER_SECRET /* OpenSSL 3.0 */
3193+ rb_define_const (mSSL , "OP_NO_EXTENDED_MASTER_SECRET" , UINT64T2NUM (SSL_OP_NO_EXTENDED_MASTER_SECRET ));
3194+ #endif
31923195#ifdef SSL_OP_CLEANSE_PLAINTEXT /* OpenSSL 3.0 */
31933196 rb_define_const (mSSL , "OP_CLEANSE_PLAINTEXT" , UINT64T2NUM (SSL_OP_CLEANSE_PLAINTEXT ));
31943197#endif
@@ -3234,10 +3237,37 @@ Init_ossl_ssl(void)
32343237 rb_define_const (mSSL , "OP_NO_TLSv1_3" , UINT64T2NUM (SSL_OP_NO_TLSv1_3 ));
32353238 rb_define_const (mSSL , "OP_CIPHER_SERVER_PREFERENCE" , UINT64T2NUM (SSL_OP_CIPHER_SERVER_PREFERENCE ));
32363239 rb_define_const (mSSL , "OP_TLS_ROLLBACK_BUG" , UINT64T2NUM (SSL_OP_TLS_ROLLBACK_BUG ));
3237- #ifdef SSL_OP_NO_RENEGOTIATION /* OpenSSL 1.1.1, missing in LibreSSL */
3240+ #ifdef SSL_OP_NO_RENEGOTIATION /* OpenSSL 1.1.1 and LibreSSL 4.1.1 */
32383241 rb_define_const (mSSL , "OP_NO_RENEGOTIATION" , UINT64T2NUM (SSL_OP_NO_RENEGOTIATION ));
32393242#endif
32403243 rb_define_const (mSSL , "OP_CRYPTOPRO_TLSEXT_BUG" , UINT64T2NUM (SSL_OP_CRYPTOPRO_TLSEXT_BUG ));
3244+ #ifdef SSL_OP_NO_TX_CERTIFICATE_COMPRESSION /* OpenSSL 3.2 */
3245+ rb_define_const (mSSL , "OP_NO_TX_CERTIFICATE_COMPRESSION" , UINT64T2NUM (SSL_OP_NO_TX_CERTIFICATE_COMPRESSION ));
3246+ #endif
3247+ #ifdef SSL_OP_NO_RX_CERTIFICATE_COMPRESSION /* OpenSSL 3.2 */
3248+ rb_define_const (mSSL , "OP_NO_RX_CERTIFICATE_COMPRESSION" , UINT64T2NUM (SSL_OP_NO_RX_CERTIFICATE_COMPRESSION ));
3249+ #endif
3250+ #ifdef SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE /* OpenSSL 3.2 */
3251+ rb_define_const (mSSL , "OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE" , UINT64T2NUM (SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE ));
3252+ #endif
3253+ #ifdef SSL_OP_PREFER_NO_DHE_KEX /* OpenSSL 3.3 */
3254+ rb_define_const (mSSL , "OP_PREFER_NO_DHE_KEX" , UINT64T2NUM (SSL_OP_PREFER_NO_DHE_KEX ));
3255+ #endif
3256+ #ifdef SSL_OP_LEGACY_EC_POINT_FORMATS /* OpenSSL 3.6 */
3257+ rb_define_const (mSSL , "OP_LEGACY_EC_POINT_FORMATS" , UINT64T2NUM (SSL_OP_LEGACY_EC_POINT_FORMATS ));
3258+ #endif
3259+ #ifdef SSL_OP_ECH_GREASE /* OpenSSL 4.0 */
3260+ rb_define_const (mSSL , "OP_ECH_GREASE" , UINT64T2NUM (SSL_OP_ECH_GREASE ));
3261+ #endif
3262+ #ifdef SSL_OP_ECH_TRIALDECRYPT /* OpenSSL 4.0 */
3263+ rb_define_const (mSSL , "OP_ECH_TRIALDECRYPT" , UINT64T2NUM (SSL_OP_ECH_TRIALDECRYPT ));
3264+ #endif
3265+ #ifdef SSL_OP_ECH_IGNORE_CID /* OpenSSL 4.0 */
3266+ rb_define_const (mSSL , "OP_ECH_IGNORE_CID" , UINT64T2NUM (SSL_OP_ECH_IGNORE_CID ));
3267+ #endif
3268+ #ifdef SSL_OP_ECH_GREASE_RETRY_CONFIG /* OpenSSL 4.0 */
3269+ rb_define_const (mSSL , "OP_ECH_GREASE_RETRY_CONFIG" , UINT64T2NUM (SSL_OP_ECH_GREASE_RETRY_CONFIG ));
3270+ #endif
32413271
32423272 /* SSL_OP_* flags for DTLS */
32433273#if 0
0 commit comments