Como definir opções de contexto TLS no Ruby (como OpenSSL :: SSL :: SSL_OP_NO_SSLv2)

Ao usar o OpenSSL em C, definimos opções no contexto para remover protocolos fracos e prejudicados, como SSLv2 e SSLv3. Dessl.h, aqui está uma máscara de bits de algumas das opções úteis:

#define SSL_OP_NO_SSLv2     0x01000000L
#define SSL_OP_NO_SSLv3     0x02000000L
#define SSL_OP_NO_TLSv1     0x04000000L
#define SSL_OP_NO_TLSv1_2   0x08000000L
#define SSL_OP_NO_TLSv1_1   0x10000000L

No entanto, estou tendo problemas para defini-los no Ruby:

if uri.scheme == "https"
  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_PEER
  http.options = OpenSSL::SSL::SSL_OP_NO_SSLv2 | OpenSSL::SSL::OP_NO_SSLv3 |
                 OpenSSL::SSL::SSL_OP_NO_COMPRESSION
end

Resulta em:

$ ./TestCert.rb
./TestCert.rb:12:in `<main>': uninitialized constant OpenSSL::SSL::SSL_OP_SSL2 (NameError)

oDocumentos em Ruby para 1.9.3 (e 2.0.0) nem se preocupam em mencioná-lo.

Como alguém define as opções de contexto TLS no Ruby?

Palavras-chave:definindo opções do SSLContext em ruby. Mas não há como anexar o contexto a umhttp quandohttp.use_ssl = true.

questionAnswers(1)

yourAnswerToTheQuestion