Skip to content

Commit 5af1eda

Browse files
committed
Ruby/OpenSSL 4.0.0
1 parent 5880083 commit 5af1eda

File tree

4 files changed

+97
-11
lines changed

4 files changed

+97
-11
lines changed

History.md

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,88 @@
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+
186
Version 3.3.2
287
=============
388

README.md

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,16 @@ the standard library of Ruby. This is called a [default gem].
1616
Each stable branch of OpenSSL for Ruby will remain supported as long as it is
1717
included as a default gem in [supported Ruby branches][Ruby Maintenance Branches].
1818

19-
|Version|Maintenance status |Ruby compatibility|OpenSSL compatibility |
20-
|-------|-------------------------------|------------------|--------------------------------------------|
21-
|3.3.x |normal maintenance (Ruby 3.4) |Ruby 2.7+ |OpenSSL 1.0.2-3.4 (current) or LibreSSL 3.1+|
22-
|3.2.x |normal maintenance (Ruby 3.3) |Ruby 2.7+ |OpenSSL 1.0.2-3.4 (current) or LibreSSL 3.1+|
23-
|3.1.x |normal maintenance (Ruby 3.2) |Ruby 2.6+ |OpenSSL 1.0.2-3.4 (current) or LibreSSL 3.1+|
24-
|3.0.x |security maintenance (Ruby 3.1)|Ruby 2.6+ |OpenSSL 1.0.2-3.4 (current) or LibreSSL 3.1+|
25-
|2.2.x |end-of-life (Ruby 3.0) |Ruby 2.3+ |OpenSSL 1.0.1-1.1.1 or LibreSSL 2.9+ |
26-
|2.1.x |end-of-life (Ruby 2.5-2.7) |Ruby 2.3+ |OpenSSL 1.0.1-1.1.1 or LibreSSL 2.5+ |
27-
|2.0.x |end-of-life (Ruby 2.4) |Ruby 2.3+ |OpenSSL 0.9.8-1.1.1 or LibreSSL 2.3+ |
19+
|Version|Minimum Ruby|OpenSSL compatibility |Bundled with|Maintenance |
20+
|-------|------------|-----------------------------------------|------------|-------------|
21+
|4.0.x |Ruby 2.7 |OpenSSL 1.1.1-3.x, LibreSSL 3.9+, AWS-LC |Ruby 4.0 |bug fixes |
22+
|3.3.x |Ruby 2.7 |OpenSSL 1.0.2-3.x, LibreSSL 3.1+ |Ruby 3.4 |bug fixes |
23+
|3.2.x |Ruby 2.7 |OpenSSL 1.0.2-3.x, LibreSSL 3.1+ |Ruby 3.3 |bug fixes |
24+
|3.1.x |Ruby 2.6 |OpenSSL 1.0.2-3.x, LibreSSL 3.1+ |Ruby 3.2 |security only|
25+
|3.0.x |Ruby 2.6 |OpenSSL 1.0.2-3.x, LibreSSL 3.1+ |Ruby 3.1 |end-of-life |
26+
|2.2.x |Ruby 2.3 |OpenSSL 1.0.1-1.1.1, LibreSSL 2.9+ |Ruby 3.0 |end-of-life |
27+
|2.1.x |Ruby 2.3 |OpenSSL 1.0.1-1.1.1, LibreSSL 2.5+ |Ruby 2.5-2.7|end-of-life |
28+
|2.0.x |Ruby 2.3 |OpenSSL 0.9.8-1.1.1, LibreSSL 2.3+ |Ruby 2.4 |end-of-life |
2829

2930
[default gem]: https://docs.ruby-lang.org/en/master/standard_library_md.html
3031
[Ruby Maintenance Branches]: https://www.ruby-lang.org/en/downloads/branches/

lib/openssl/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22

33
module OpenSSL
44
# The version string of Ruby/OpenSSL.
5-
VERSION = "4.0.0.pre"
5+
VERSION = "4.0.0"
66
end

openssl.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Gem::Specification.new do |spec|
22
spec.name = "openssl"
3-
spec.version = "4.0.0.pre"
3+
spec.version = "4.0.0"
44
spec.authors = ["Martin Bosslet", "SHIBATA Hiroshi", "Zachary Scott", "Kazuki Yamaguchi"]
55
spec.email = ["[email protected]"]
66
spec.summary = %q{SSL/TLS and general-purpose cryptography for Ruby}

0 commit comments

Comments
 (0)