mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* ext/openssl/ossl_ssl.c: Add SSL constants and allow to unset SSL option to prevent BEAST attack. See [Bug #5353]. In OpenSSL, OP_DONT_INSERT_EMPTY_FRAGMENTS is used to prevent TLS-CBC-IV vulunerability described at http://www.openssl.org/~bodo/tls-cbc.txt It's known issue of TLSv1/SSLv3 but it attracts lots of attention these days as BEAST attack. (CVE-2011-3389) Until now ossl sets OP_ALL at SSLContext allocation and call SSL_CTX_set_options at connection. SSL_CTX_set_options updates the value by using |= so bits set by OP_ALL cannot be unset afterwards. This commit changes to call SSL_CTX_set_options only 1 time for each SSLContext. It sets the specified value if SSLContext#options= are called and sets OP_ALL if not. To help users to unset bits in OP_ALL, this commit also adds several constant to SSL such as OpenSSL::SSL::OP_DONT_INSERT_EMPTY_FRAGMENTS. These constants were not exposed in Ruby because there's no way to unset bits in OP_ALL before. Following is an example to enable 0/n split for BEAST prevention. ctx.options = OP_ALL & ~OP_DONT_INSERT_EMPTY_FRAGMENTS * test/openssl/test_ssl.rb: Test above option exists. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_2@34525 b2dd03c8-39d4-4d8f-98ff-823fe69b080e |
||
|---|---|---|
| .. | ||
| lib | ||
| .cvsignore | ||
| extconf.rb | ||
| openssl_missing.c | ||
| openssl_missing.h | ||
| ossl.c | ||
| ossl.h | ||
| ossl_asn1.c | ||
| ossl_asn1.h | ||
| ossl_bio.c | ||
| ossl_bio.h | ||
| ossl_bn.c | ||
| ossl_bn.h | ||
| ossl_cipher.c | ||
| ossl_cipher.h | ||
| ossl_config.c | ||
| ossl_config.h | ||
| ossl_digest.c | ||
| ossl_digest.h | ||
| ossl_engine.c | ||
| ossl_engine.h | ||
| ossl_hmac.c | ||
| ossl_hmac.h | ||
| ossl_ns_spki.c | ||
| ossl_ns_spki.h | ||
| ossl_ocsp.c | ||
| ossl_ocsp.h | ||
| ossl_pkcs5.c | ||
| ossl_pkcs5.h | ||
| ossl_pkcs7.c | ||
| ossl_pkcs7.h | ||
| ossl_pkcs12.c | ||
| ossl_pkcs12.h | ||
| ossl_pkey.c | ||
| ossl_pkey.h | ||
| ossl_pkey_dh.c | ||
| ossl_pkey_dsa.c | ||
| ossl_pkey_ec.c | ||
| ossl_pkey_rsa.c | ||
| ossl_rand.c | ||
| ossl_rand.h | ||
| ossl_ssl.c | ||
| ossl_ssl.h | ||
| ossl_ssl_session.c | ||
| ossl_version.h | ||
| ossl_x509.c | ||
| ossl_x509.h | ||
| ossl_x509attr.c | ||
| ossl_x509cert.c | ||
| ossl_x509crl.c | ||
| ossl_x509ext.c | ||
| ossl_x509name.c | ||
| ossl_x509req.c | ||
| ossl_x509revoked.c | ||
| ossl_x509store.c | ||
| ruby_missing.h | ||