|
| 1 | +Version 3.3.0 |
| 2 | +============= |
| 3 | + |
| 4 | +Compatibility |
| 5 | +------------- |
| 6 | + |
| 7 | +* Ruby version: 2.7 or later |
| 8 | +* OpenSSL version: OpenSSL 1.0.2 or later, and LibreSSL 3.1 or later |
| 9 | + |
| 10 | +Notable changes |
| 11 | +--------------- |
| 12 | + |
| 13 | +* `OpenSSL::SSL` |
| 14 | + - `OpenSSL::SSL::SSLSocket#set_params` no longer sets `#min_version=` to TLS |
| 15 | + 1.0 except when OpenSSL 1.0.2 is used. This has been done to disable |
| 16 | + SSL 3.0, which is not supported by default in OpenSSL 1.1.0 or later, or in |
| 17 | + LibreSSL. This lets it respect the system default if the system-wide |
| 18 | + configuration file specifies a higher minimum protocol version. |
| 19 | + [[GitHub #710]](https://github.com/ruby/openssl/pull/710) |
| 20 | + - `OpenSSL::SSL::SSLSocket.new` no longer enables the `OpenSSL::SSL::OP_ALL` |
| 21 | + SSL options by default and follows the system default. |
| 22 | + [[GitHub #767]](https://github.com/ruby/openssl/pull/767) |
| 23 | + - Add the following IO methods to `OpenSSL::SSL::SSLSocket`, which will pass |
| 24 | + along to the underlying socket: `#local_address`, `#remote_address`, |
| 25 | + `#close_on_exec=`, `#close_on_exec?`, `#wait`, `#wait_readable`, and |
| 26 | + `#wait_writable`. |
| 27 | + [[GitHub #708]](https://github.com/ruby/openssl/pull/708) |
| 28 | + - Update `OpenSSL::SSL::SSLSocket#gets` to take the `chomp` keyword argument. |
| 29 | + [[GitHub #708]](https://github.com/ruby/openssl/pull/708) |
| 30 | + - Make `OpenSSL::SSL::SSLSocket` respect the `IO#timeout` value of the |
| 31 | + underlying socket on Ruby 3.2 or later. `#timeout` and `#timeout=` methods |
| 32 | + are also added. |
| 33 | + [[GitHub #714]](https://github.com/ruby/openssl/pull/714) |
| 34 | + - Add `OpenSSL::SSL::SSLSocket#close_read` and `#close_write`. |
| 35 | + [[GitHub #743]](https://github.com/ruby/openssl/pull/743) |
| 36 | + - Add `OpenSSL::Digest.digests` to get a list of all available digest |
| 37 | + algorithms. |
| 38 | + [[GitHub #726]](https://github.com/ruby/openssl/pull/726) |
| 39 | + - Fix `OpenSSL::SSL::SSLSocket#read_nonblock` clearing the passed String |
| 40 | + buffer when nothing can be read from the connection. |
| 41 | + [[GitHub #739]](https://github.com/ruby/openssl/pull/739) |
| 42 | +* Add `#to_text` methods to `OpenSSL::Timestamp::Response`, |
| 43 | + `OpenSSL::Timestamp::Request`, `OpenSSL::Timestamp::TokenInfo`, and |
| 44 | + `OpenSSL::PKCS7` to get a human-readable representation of the object. |
| 45 | + [[GitHub #756]](https://github.com/ruby/openssl/pull/756) |
| 46 | +* Add `OpenSSL::X509::Certificate#tbs_bytes` to get the DER encoding of the |
| 47 | + TBSCertificate. |
| 48 | + [[GitHub #753]](https://github.com/ruby/openssl/pull/753) |
| 49 | +* Allow passing `nil` as the digest algorithm to `#sign` methods on |
| 50 | + `OpenSSL::X509::Certificate`, `OpenSSL::X509::Request`, and |
| 51 | + `OpenSSL::X509::CRL`. This adds supports for signing with EdDSA keys. |
| 52 | + [[GitHub #761]](https://github.com/ruby/openssl/pull/761) |
| 53 | + [[GitHub #804]](https://github.com/ruby/openssl/pull/804) |
| 54 | +* Add `OpenSSL::SSL::SSLSocket#readbyte`. |
| 55 | + [[GitHub #771]](https://github.com/ruby/openssl/pull/771) |
| 56 | +* Change `OpenSSL::X509::Store#time=` to set the time to the `X509_VERIFY_PARAM` |
| 57 | + in the `X509_STORE`. This allows `OpenSSL::Timestamp::Response#verify` to |
| 58 | + verify a signature with the specified timestamp. |
| 59 | + [[GitHub #770]](https://github.com/ruby/openssl/pull/770) |
| 60 | +* Make `OpenSSL::PKCS7.encrypt`'s third parameter `cipher` mandatory. It had |
| 61 | + an undocumented default value "RC2-40-CBC", which is not only insecure, but |
| 62 | + also not supported in OpenSSL 3.0 or later. |
| 63 | + [[GitHub #796]](https://github.com/ruby/openssl/pull/796) |
| 64 | +* Make `OpenSSL::BN` shareable between ractors when frozen. |
| 65 | + [[GitHub #808]](https://github.com/ruby/openssl/pull/808) |
| 66 | +* Make `OpenSSL::Config` instances frozen by default, and make it shareable |
| 67 | + between ractors. `OpenSSL::Config::DEFAULT_CONFIG_FILE` is also frozen. |
| 68 | + [[GitHub #809]](https://github.com/ruby/openssl/pull/809) |
| 69 | +* Add `OpenSSL::PKCS12#set_mac` to configure the MAC parameters and recalculate |
| 70 | + a MAC for the content. |
| 71 | + [[GitHub #788]](https://github.com/ruby/openssl/pull/788) |
| 72 | + |
| 73 | +And various non-user-visible changes and bug fixes. Please see the commit |
| 74 | +history for more details. |
| 75 | + |
| 76 | + |
1 | 77 | Version 3.2.1
|
2 | 78 | =============
|
3 | 79 |
|
|
0 commit comments