|
| 1 | +Version 4.0.0 |
| 2 | +============= |
| 3 | + |
| 4 | +Compatibility |
| 5 | +------------- |
| 6 | + |
| 7 | +* Ruby >= 2.7 |
| 8 | +* OpenSSL >= 1.1.1, LibreSSL >= 3.9, and AWS-LC 1.66.0 |
| 9 | + - Removed support for OpenSSL 1.0.2-1.1.0 and LibreSSL 3.1-3.8. |
| 10 | + [[GitHub #835]](https://github.com/ruby/openssl/issues/835) |
| 11 | + - Added support for AWS-LC. |
| 12 | + [[GitHub #833]](https://github.com/ruby/openssl/issues/833) |
| 13 | + |
| 14 | + |
| 15 | +Notable changes |
| 16 | +--------------- |
| 17 | + |
| 18 | +* `OpenSSL::SSL` |
| 19 | + - Reduce overhead when writing to `OpenSSL::SSL::SSLSocket`. `#syswrite` no |
| 20 | + longer creates a temporary String object. |
| 21 | + [[GitHub #831]](https://github.com/ruby/openssl/pull/831) |
| 22 | + - Make `OpenSSL::SSL::SSLContext#min_version=` and `#max_version=` wrap the |
| 23 | + corresponding OpenSSL APIs directly, and remove the fallback to SSL options. |
| 24 | + [[GitHub #849]](https://github.com/ruby/openssl/pull/849) |
| 25 | + - Add `OpenSSL::SSL::SSLContext#sigalgs=` and `#client_sigalgs=` for |
| 26 | + specifying signature algorithms to use for connections. |
| 27 | + [[GitHub #895]](https://github.com/ruby/openssl/pull/895) |
| 28 | + - Rename `OpenSSL::SSL::SSLContext#ecdh_curves=` to `#groups=` following |
| 29 | + the underlying OpenSSL API rename. This method is no longer specific to |
| 30 | + ECDHE. The old method remains as an alias. |
| 31 | + [[GitHub #900]](https://github.com/ruby/openssl/pull/900) |
| 32 | + - Add `OpenSSL::SSL::SSLSocket#sigalg`, `#peer_sigalg`, and `#group` for |
| 33 | + getting the signature algorithm and the key agreement group used in the |
| 34 | + current connection. |
| 35 | + [[GitHub #908]](https://github.com/ruby/openssl/pull/908) |
| 36 | + - Enable `SSL_CTX_set_dh_auto()` for servers by default. |
| 37 | + [[GitHub #924]](https://github.com/ruby/openssl/pull/924) |
| 38 | + - Improve Ractor compatibility. Note that the internal-use constant |
| 39 | + `OpenSSL::SSL::SSLContext::DEFAULT_PARAMS` is now frozen. |
| 40 | + [[GitHub #925]](https://github.com/ruby/openssl/pull/925) |
| 41 | +* `OpenSSL::PKey` |
| 42 | + - Remove `OpenSSL::PKey::EC::Point#mul` support with array arguments. The |
| 43 | + underlying OpenSSL API has been removed, and the method has been deprecated |
| 44 | + since ruby/openssl v3.0.0. |
| 45 | + [[GitHub #843]](https://github.com/ruby/openssl/pull/843) |
| 46 | + - `OpenSSL::PKey::{RSA,DSA,DH}#params` uses `nil` to indicate missing fields |
| 47 | + instead of the number `0`. |
| 48 | + [[GitHub #774]](https://github.com/ruby/openssl/pull/774) |
| 49 | + - Unify `OpenSSL::PKey::PKeyError` classes. The former subclasses |
| 50 | + `OpenSSL::PKey::DHError`, `OpenSSL::PKey::DSAError`, |
| 51 | + `OpenSSL::PKey::ECError`, and `OpenSSL::PKey::RSAError` have been merged |
| 52 | + into a single class. |
| 53 | + [[GitHub #929]](https://github.com/ruby/openssl/pull/929) |
| 54 | +* `OpenSSL::Cipher` |
| 55 | + - `OpenSSL::Cipher#encrypt` and `#decrypt` no longer accept arguments. |
| 56 | + Passing passwords has been deprecated since Ruby 1.8.2 (released in 2004). |
| 57 | + [[GitHub #887]](https://github.com/ruby/openssl/pull/887) |
| 58 | + - `OpenSSL::Cipher#final` raises `OpenSSL::Cipher::AuthTagError` when the |
| 59 | + integrity check fails for AEAD ciphers. `OpenSSL::Cipher::AuthTagError` is a |
| 60 | + new subclass of `OpenSSL::Cipher::CipherError`, which was previously raised. |
| 61 | + [[GitHub #939]](https://github.com/ruby/openssl/pull/939) |
| 62 | + - `OpenSSL::Cipher.new` now raises `OpenSSL::Cipher::CipherError` instead of |
| 63 | + `RuntimeError` when OpenSSL does not recognize the algorithm. |
| 64 | + [[GitHub #958]](https://github.com/ruby/openssl/pull/958) |
| 65 | + - Add support for "fetched" cipher algorithms with OpenSSL 3.0 or later. |
| 66 | + [[GitHub #958]](https://github.com/ruby/openssl/pull/958) |
| 67 | +* `OpenSSL::Digest` |
| 68 | + - `OpenSSL::Digest.new` now raises `OpenSSL::Digest::DigestError` instead of |
| 69 | + `RuntimeError` when OpenSSL does not recognize the algorithm. |
| 70 | + [[GitHub #958]](https://github.com/ruby/openssl/pull/958) |
| 71 | + - Add support for "fetched" digest algorithms with OpenSSL 3.0 or later. |
| 72 | + [[GitHub #958]](https://github.com/ruby/openssl/pull/958) |
| 73 | +* `OpenSSL::ASN1.decode` now assumes a 1950-2049 year range for `UTCTime` |
| 74 | + according to RFC 5280. It previously used a 1969-2068 range. The encoder |
| 75 | + has always used the 1950-2049 range. |
| 76 | + [[GitHub #909]](https://github.com/ruby/openssl/pull/909) |
| 77 | +* `OpenSSL::OpenSSLError`, the base class for all ruby/openssl errors, carry |
| 78 | + an additional attribute `#errors` to keep the content of OpenSSL's error |
| 79 | + queue. Also, add `#detailed_message` for Ruby 3.2 or later. |
| 80 | + [[GitHub #976]](https://github.com/ruby/openssl/pull/976) |
| 81 | +* `OpenSSL::PKCS7.new` raises `OpenSSL::PKCS7::PKCS7Error` instead of |
| 82 | + `ArgumentError` on error to be consistent with other constructors. |
| 83 | + [[GitHub #983]](https://github.com/ruby/openssl/pull/983) |
| 84 | + |
| 85 | + |
1 | 86 | Version 3.3.2 |
2 | 87 | ============= |
3 | 88 |
|
|
0 commit comments