Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Add OpenSSL::SSL::SSLContext#client_hello_cb= (binding for SSL_CTX_set_client_hello_cb())

Offen
#1,125 3 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

@kou arbeitet bereits daran.

Seit 13.10.2026.

  • #1126 von @kou — offen

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
53/100
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Aktiv
Tech-Stack
c, ruby
Bereich
backend, security

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:

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

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus ruby/openssl

Alle Issues in ruby/openssl

Ähnliche Issues

Weitere Issues zu C

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.