🔒 Support `SCRAM-*-PLUS` with channel binding
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 38/100
- Tipo de issue
- Funcionalidade
- Clareza
- Razoavelmente clara
- Status de atividade
- Estagnada
- Stack de tecnologia
- ruby
- Domínio
- authentication, security
Direção de pesquisa
Comece com Net::IMAP::SASL::ScramSHA256Authenticator e compare-o com a subclasse ScramSHA256PlusAuthenticator proposta. Verifique como ssl_server_socket.peer_cert poderia fornecer o certificado e, em seguida, identifique os testes de autenticação SASL ou pontos de entrada existentes a serem estendidos. Está concluído quando os autenticadores SCRAM-SHA-*-PLUS derem suporte a channel binding usando o certificado do peer.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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
- Linguagem predominante
- Ruby
- Estrelas
- 121
- Forks
- 47
- Merge médio
- 19h 25min
- PRs com merge (30d)
- 3
Preparar o ambiente
Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de ruby/net-imap
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 77/100
-
bug
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 30/100
-
Cannot use FakeServerAberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 25/100
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 15/100
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 20/100
Todas as issues de ruby/net-imap
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
Mantenedores costumam responder em até 1 dia
-
Websockify heartbeat for vnc_containerTalvez já em andamento @robinkar assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
Mantenedores costumam responder em até 1 dia
-
needs verification
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
Mantenedores costumam responder em até 7 dias
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 88/100
akitaonrails/ai-book-2026#13 ·
-
Mend: dependency security vulnerability
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 63/100
Mantenedores costumam responder em até 1 dia