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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 333ea31e2b8e97fe3952c679a5c7e4518d5044bb4022015db9307481ee1a8bb8
4
- data.tar.gz: 7439667603e352d2158e3778e9060664c94e529cb2c205578613169b7cea45e8
3
+ metadata.gz: 4b2d2e2cfb98fb276169353e0a96ef2c41b5ed9be72afe65f8a533f2af389303
4
+ data.tar.gz: 56891904f7804768cdf31d8a10f7f86c91ef1a1a86119d297648fb9b293a9f1e
5
5
  SHA512:
6
- metadata.gz: 636424c4fe4bd18e956cdb93e6c4cf9397531b5cc3d5c56d791a3759a036f2848ded320fee858a18516d3010f2d2cffab567fde6e7186ec3fa3a60def96f9451
7
- data.tar.gz: d5520d35c471b83aaf32b64fa534f7268d2b6d0d6873289cf28286eb35bdf3c4f41546d4ee46674c449c8d92d238d5f5d490d70409bfb8b0db3615d495aae1c1
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; `SSL::Session.new` on a non-socket raises `NotImplementedError`
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, `:hybrid` point compression, and encrypted EC private-key
103
- export are not implemented
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
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  module JOpenSSL
3
- VERSION = '0.19.2'
3
+ VERSION = '0.19.3'
4
4
  BOUNCY_CASTLE_VERSION = '1.86'
5
5
 
6
6
  # @private
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.map do |crl_distribution_point|
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&.find do |v|
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&.map(&:value)
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.2</version>
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.2
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-09-25 00:00:00.000000000 Z
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).