Add OpenSSL::SSL::SSLContext#client_hello_cb= (binding for SSL_CTX_set_client_hello_cb())
Maintainer antworten meist innerhalb von 1 Tag
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 53/100
Rechercherichtung
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.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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)
- Vorherrschende Sprache
- C
- Sterne
- 276
- Forks
- 203
- Ø Merge
- 1 T. 41 Min.
- Gemergte PRs (30 T.)
- 8
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus ruby/openssl
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 55/100
ruby/openssl#1118 · 5 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
Expose XOFs like SHAKE128 and SHAKE256Evtl. vergeben @rhenium hat das vor 100 Tagen übernommen. Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 48/100
ruby/openssl#1082 · 4 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
ruby/openssl#1075 · 4 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
Unchecked *_set_* callsEvtl. vergeben @ndossche hat das vor 170 Tagen übernommen. Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
ruby/openssl#1038 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Add a method OpenSSL::PKey#sizeEvtl. vergeben @herwinw hat das vor 296 Tagen übernommen. Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 45/100
ruby/openssl#988 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
Ähnliche Issues
-
backlog bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
EchoTools/nevr-runtime#653 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
InfiniTimeOrg/InfiniTime#2492 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 80/100
Maintainer antworten meist innerhalb von 1 Tag
-
base-files: 82_config_generate: regenerate /etc/board.json if 0-bytes / truncated after power cutOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
openwrt/openwrt#25940 · 5 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
extension-modules topic-socket type-bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
python/cpython#159561 · 1 Reaktion ·
Maintainer antworten meist innerhalb von 1 Tag