🔒 Support `SCRAM-*-PLUS` with channel binding
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 38/100
- Issue-Typ
- Feature
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- ruby
- Bereich
- authentication, security
Rechercherichtung
Beginne mit Net::IMAP::SASL::ScramSHA256Authenticator und vergleiche es mit der vorgeschlagenen ScramSHA256PlusAuthenticator-Unterklasse. Verfolge, wie ssl_server_socket.peer_cert das Zertifikat bereitstellen könnte, und identifiziere die vorhandenen SASL-Authentifizierungstests oder Einstiegspunkte, die erweitert werden sollen. Als abgeschlossen gilt die Aufgabe, wenn SCRAM-SHA-*-PLUS-Authentifikatoren Channel Binding mithilfe des Peer-Zertifikats unterstützen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
To use channel binding and
SCRAM-SHA-256-PLUS, I just made the following subclass. Sharing in case helpful for a broader implementation of-PLUSauthenticators.class ScramSHA256PlusAuthenticator < Net::IMAP::SASL::ScramSHA256Authenticator def initialize(*args, **options) super(*args, **options) @ssl_cert = options[:ssl_cert] end def gs2_cb_flag "p=tls-server-end-point" end def cbind_input cert_algo_raw = @ssl_cert.signature_algorithm cert_algo = OpenSSL::Digest.new(cert_algo_raw).name # standardize e.g. sha256WithRSAEncryption to SHA256 sasl_algo = cert_algo == "MD5" || cert_algo == "SHA1" ? "SHA256" : cert_algo hash = OpenSSL::Digest.digest(sasl_algo, @ssl_cert.to_der) "#{gs2_header}#{hash}" end endThe
ssl_certoption toScramSHA256PlusAuthenticator.newshould be passedssl_server_socket.peer_cert.
Originally posted by @jawj in #54
- Vorherrschende Sprache
- Ruby
- Sterne
- 121
- Forks
- 47
- Ø Merge
- 19 Std. 25 Min.
- Gemergte PRs (30 T.)
- 3
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
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/net-imap
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 77/100
-
bug
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 30/100
-
Cannot use FakeServerOffen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 25/100
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 15/100
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 20/100
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
Maintainer antworten meist innerhalb von 1 Tag
-
Websockify heartbeat for vnc_containerEvtl. vergeben @robinkar hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
Maintainer antworten meist innerhalb von 1 Tag
-
needs verification
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 7 Tagen
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
akitaonrails/ai-book-2026#13 ·
-
Mend: dependency security vulnerability
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 63/100
Maintainer antworten meist innerhalb von 1 Tag