jruby-openssl 0.19.2-java → 0.19.3-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/History.md +29 -0
- data/README.md +7 -4
- data/Rakefile +3 -0
- data/lib/jopenssl/version.rb +1 -1
- data/lib/jopenssl.jar +0 -0
- data/lib/openssl/ssl.rb +2 -0
- data/lib/openssl/x509.rb +3 -3
- data/pom.xml +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4b2d2e2cfb98fb276169353e0a96ef2c41b5ed9be72afe65f8a533f2af389303
|
|
4
|
+
data.tar.gz: 56891904f7804768cdf31d8a10f7f86c91ef1a1a86119d297648fb9b293a9f1e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 898da59071f4969cd053072d181954355a668e9fd5011c9b099287bc899e24525e73ff1b8a43efc00a8fd9ca06bcc20e5293e0fc734379863bb62957d4412447
|
|
7
|
+
data.tar.gz: 58fe61d22c8346b07b27acce29b7aa8fb489e603e2aededac65f94fc05dcf51e6e788af5ae8473c59bf0470539e07e541fcd3dda823f1bbd370f48ed016e9462
|
data/History.md
CHANGED
|
@@ -1,3 +1,32 @@
|
|
|
1
|
+
## 0.19.3
|
|
2
|
+
|
|
3
|
+
Broader OpenSSL compatibility across PKCS7, X.509, key handling and big numbers,
|
|
4
|
+
with new DH validation and digest enumeration support.
|
|
5
|
+
|
|
6
|
+
- [feat] implement `Digest.digests` algorithm enumeration
|
|
7
|
+
- [feat] add `PKey::DH#params_ok?` parameter validation
|
|
8
|
+
- [compat] add `PKey::DH#public_key`
|
|
9
|
+
- [feat] add EC `on_curve?` checks and hybrid point serialization
|
|
10
|
+
- [compat] align PKCS7 behavior with OpenSSL
|
|
11
|
+
- [compat] align PKCS12 MAC handling (PKCS12KDF & PBMAC1) with OpenSSL
|
|
12
|
+
- [compat] support configured X.509 extensions
|
|
13
|
+
- [compat] load X.509 certificate chains
|
|
14
|
+
- [compat] support multiple CRL distribution point URIs
|
|
15
|
+
- [compat] format X.509 names like OpenSSL
|
|
16
|
+
- [compat] validate X.509 attribute values
|
|
17
|
+
- [compat] suppress X.509 store callback exceptions
|
|
18
|
+
- [compat] parse DER certificates before trying PEM
|
|
19
|
+
- [compat] align Netscape SPKI serialization with OpenSSL
|
|
20
|
+
- [compat] align OCSP signing with OpenSSL
|
|
21
|
+
- [compat] align BN modular arithmetic and negative string conversion
|
|
22
|
+
- [compat] raise `BNError` for invalid arithmetic
|
|
23
|
+
- [compat] reject `nil` BN values
|
|
24
|
+
- [compat] map invalid X.509 extension values to `ExtensionError`
|
|
25
|
+
- [compat] copy X.509 collection arguments to avoid retaining caller-owned arrays
|
|
26
|
+
- [fix] format zero BN as single hex digit
|
|
27
|
+
- [fix] report BouncyCastle `SecureRandom` initialization errors
|
|
28
|
+
- [fix] reset TLS output buffer after shutdown
|
|
29
|
+
|
|
1
30
|
## 0.19.2
|
|
2
31
|
|
|
3
32
|
ASN.1 and X.509 compatibility improvements, new OpenSSL::Timestamp support &
|
data/README.md
CHANGED
|
@@ -85,9 +85,13 @@ Bouncy Castle libraries, so some entry points are unavailable, behave differentl
|
|
|
85
85
|
|
|
86
86
|
**SSL / TLS** (backed by JSSE)
|
|
87
87
|
- `SSLSocket#state` and NPN (`#npn_protocol`) are unimplemented and return `nil` - use ALPN instead
|
|
88
|
+
- `SSLSocket#close_write` closes both TLS directions even on TLS 1.3; reading a peer response afterward
|
|
89
|
+
is unsupported, use message lengths or delimiters to frame requests instead of TLS EOF
|
|
90
|
+
NOTE: that you can enforce the half-close when using the JDK built-in SunJSSE provider
|
|
88
91
|
- Forced session resumption (`SSLSocket#session=`) is best-effort and only fully works with the
|
|
89
92
|
BouncyCastle JSSE provider; `session_reused?` may return `nil` ("can't decide")
|
|
90
|
-
- `SSL::Session#id=` / `#time=` are no-ops
|
|
93
|
+
- `SSL::Session#id=` / `#time=` are no-ops
|
|
94
|
+
- `SSL::Session.new` on a non-socket raises `NotImplementedError`
|
|
91
95
|
- Hostname / `subjectAltName` matching runs over Java's certificate parsing and can differ from
|
|
92
96
|
MRI's `GeneralName` handling in edge cases
|
|
93
97
|
|
|
@@ -99,9 +103,8 @@ Bouncy Castle libraries, so some entry points are unavailable, behave differentl
|
|
|
99
103
|
|
|
100
104
|
**PKey** (EC / DH / EdDSA)
|
|
101
105
|
- EC is limited to prime curves (`:GFp`); binary-field curves (`:GF2m`) fail
|
|
102
|
-
- `EC::Point#mul` with array arguments
|
|
103
|
-
|
|
104
|
-
- `DH#set_pqg` accepts but silently ignores the `q` parameter
|
|
106
|
+
- `EC::Point#mul` with array arguments and encrypted EC private-key export are not implemented
|
|
107
|
+
- `DH#set_pqg` ignores the `q` parameter (and warns when it is non-`nil`)
|
|
105
108
|
- EdDSA (`Ed25519` / `Ed448`) rejects digest arguments
|
|
106
109
|
|
|
107
110
|
**X509**
|
data/Rakefile
CHANGED
|
@@ -95,6 +95,9 @@ task :test => ['lib/jopenssl.jar', 'pkg/test-classes/org/jruby/ext/openssl/Secur
|
|
|
95
95
|
require_relative 'tasks/vendor_tests'
|
|
96
96
|
define_vendor_test_tasks # root + jopenssl_lib default to this tree
|
|
97
97
|
|
|
98
|
+
require_relative 'tasks/mri_tests'
|
|
99
|
+
define_mri_test_task
|
|
100
|
+
|
|
98
101
|
require_relative 'tasks/provider_tests'
|
|
99
102
|
namespace :test do
|
|
100
103
|
namespace :provider do
|
data/lib/jopenssl/version.rb
CHANGED
data/lib/jopenssl.jar
CHANGED
|
Binary file
|
data/lib/openssl/ssl.rb
CHANGED
|
@@ -489,6 +489,8 @@ YoaOffgTf5qxiwkjnlVZQc3whgnEt9FpVMvQ9eknyeGB5KHfayAc3+hUAvI3/Cr3
|
|
|
489
489
|
# Therefore, on TLS 1.2, this method will cause the connection to be
|
|
490
490
|
# completely shut down. On TLS 1.3, the connection will remain open for
|
|
491
491
|
# reading only.
|
|
492
|
+
#
|
|
493
|
+
# NOTE: JRuby, when using BC-JSSE, closes both directions even on TLS 1.3
|
|
492
494
|
def close_write
|
|
493
495
|
stop
|
|
494
496
|
end
|
data/lib/openssl/x509.rb
CHANGED
|
@@ -135,19 +135,19 @@ module OpenSSL
|
|
|
135
135
|
raise ASN1::ASN1Error, "invalid extension"
|
|
136
136
|
end
|
|
137
137
|
|
|
138
|
-
crl_uris = cdp_asn1.
|
|
138
|
+
crl_uris = cdp_asn1.flat_map do |crl_distribution_point|
|
|
139
139
|
distribution_point = crl_distribution_point.value.find do |v|
|
|
140
140
|
v.tag_class == :CONTEXT_SPECIFIC && v.tag == 0
|
|
141
141
|
end
|
|
142
142
|
full_name = distribution_point&.value&.find do |v|
|
|
143
143
|
v.tag_class == :CONTEXT_SPECIFIC && v.tag == 0
|
|
144
144
|
end
|
|
145
|
-
full_name&.value&.
|
|
145
|
+
full_name&.value&.select do |v|
|
|
146
146
|
v.tag_class == :CONTEXT_SPECIFIC && v.tag == 6 # uniformResourceIdentifier
|
|
147
147
|
end
|
|
148
148
|
end
|
|
149
149
|
|
|
150
|
-
crl_uris
|
|
150
|
+
crl_uris.empty? ? nil : crl_uris.map(&:value)
|
|
151
151
|
end
|
|
152
152
|
end
|
|
153
153
|
|
data/pom.xml
CHANGED
|
@@ -11,7 +11,7 @@ DO NOT MODIFY - GENERATED CODE
|
|
|
11
11
|
<modelVersion>4.0.0</modelVersion>
|
|
12
12
|
<groupId>org.jruby.openssl</groupId>
|
|
13
13
|
<artifactId>jruby-openssl</artifactId>
|
|
14
|
-
<version>0.19.
|
|
14
|
+
<version>0.19.3</version>
|
|
15
15
|
<packaging>gem</packaging>
|
|
16
16
|
<name>SSL/TLS and general-purpose cryptography for JRuby</name>
|
|
17
17
|
<description>Ruby OpenSSL compatibility for JRuby, based on Java JCA/JCE and Bouncy Castle libraries (does not depend on native OpenSSL).</description>
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: jruby-openssl
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.19.
|
|
4
|
+
version: 0.19.3
|
|
5
5
|
platform: java
|
|
6
6
|
authors:
|
|
7
7
|
- Karol Bucek
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
- JRuby contributors
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2026-
|
|
12
|
+
date: 2026-10-07 00:00:00.000000000 Z
|
|
13
13
|
dependencies: []
|
|
14
14
|
description: Ruby OpenSSL compatibility for JRuby, based on Java JCA/JCE and Bouncy
|
|
15
15
|
Castle libraries (does not depend on native OpenSSL).
|