Add OpenSSL::SSL::SSLContext#client_hello_cb= (binding for SSL_CTX_set_client_hello_cb())
Les mainteneurs répondent en général sous 1 jour
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 53/100
Piste de recherche
Start by reading the existing OpenSSL::SSL::SSLContext#servername_cb= binding and its tests, then inspect how the project handles OpenSSL version and LibreSSL support. Add the client_hello_cb= binding for OpenSSL 1.1.1 or later and AWS-LC, and verify it can switch contexts early enough for SNI-selected version settings to take effect.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
How about adding OpenSSL::SSL::SSLContext#client_hello_cb=, a binding for SSL_CTX_set_client_hello_cb()?
Motivation
Apache httpd and nginx use the ClientHello callback for SNI-based virtual host selection:
- Apache httpd (mod_ssl): https://github.com/apache/httpd/commit/076e28399c7336f2b287b102a6e4e40934f2057d
- nginx: https://github.com/nginx/nginx/commit/0373fe5d98c1
OpenSSL::SSL::SSLContext#servername_cb= uses the servername callback (SSL_CTX_set_tlsext_servername_callback()) for the same purpose.
The ClientHello callback is invoked at the beginning of ClientHello processing, before the protocol version is negotiated. The servername callback is invoked after that. So settings of the SSLContext selected by SNI, such as min_version and max_version, can take effect only when the context is switched in the ClientHello callback. Both commits above describe this as the reason for the change.
Compatibility
- OpenSSL 1.1.1 or later: supported
- AWS-LC: supported (
SSL_CTX_set_client_hello_cb()is available) - LibreSSL: not supported (the API isn't available)
- Langage dominant
- C
- Étoiles
- 276
- Forks
- 201
- Merge moyen
- 1 j 41 min
- PR mergées (30 j)
- 8
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de ruby/openssl
-
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
ruby/openssl#1118 · 5 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Expose XOFs like SHAKE128 and SHAKE256Peut-être pris @rhenium l’a pris il y a 98 jours. Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
ruby/openssl#1082 · 4 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
ruby/openssl#1075 · 4 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Unchecked *_set_* callsPeut-être pris @ndossche l’a pris il y a 168 jours. Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
ruby/openssl#1038 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Add a method OpenSSL::PKey#sizePeut-être pris @herwinw l’a pris il y a 295 jours. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 45/100
ruby/openssl#988 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de ruby/openssl
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
-
area:gates bug good first issue
Difficulté 1/5 Moins d'une heure Accessibilité débutants 85/100
InauguralSystems/EigenScript#1782 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
intel/intel-device-plugins-for-kubernetes#2384 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
zephyrproject-rtos/zephyr#122261 ·
Les mainteneurs répondent en général sous 3 jours