jruby-openssl 0.19.0-java → 0.19.2-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: e2a2b1fb32208ee3d9a8d7d396c254a3abf7a2663cce26bafda818c8306964d4
4
- data.tar.gz: 7047f2d22daf89569aa1a100572dedcd637247a6bb3b5a95899a70d7726bfc72
3
+ metadata.gz: 333ea31e2b8e97fe3952c679a5c7e4518d5044bb4022015db9307481ee1a8bb8
4
+ data.tar.gz: 7439667603e352d2158e3778e9060664c94e529cb2c205578613169b7cea45e8
5
5
  SHA512:
6
- metadata.gz: eb37c06db9d13bf09b02868f778869b7cb0d71fc6c22b216099348824f67b387aaf39e987f1a544e28bc780f6aa371adf65aab13ede236f164d20aa1c3347d64
7
- data.tar.gz: 9efbab3330d20e966c98df007491bd2e76a244a30562aa0aca36a09947fe16e657f26c8b9f96f39ae6c7bbc16e0fd90322365cbea332412b22a5d56d1d845db0
6
+ metadata.gz: 636424c4fe4bd18e956cdb93e6c4cf9397531b5cc3d5c56d791a3759a036f2848ded320fee858a18516d3010f2d2cffab567fde6e7186ec3fa3a60def96f9451
7
+ data.tar.gz: d5520d35c471b83aaf32b64fa534f7268d2b6d0d6873289cf28286eb35bdf3c4f41546d4ee46674c449c8d92d238d5f5d490d70409bfb8b0db3615d495aae1c1
data/History.md CHANGED
@@ -1,3 +1,84 @@
1
+ ## 0.19.2
2
+
3
+ ASN.1 and X.509 compatibility improvements, new OpenSSL::Timestamp support &
4
+ upgrading Bouncy Castle to latest.
5
+
6
+ - [feat] implement `OpenSSL::Timestamp` support (#372)
7
+ - [feat] implement `SSLContext#add_certificate`
8
+ - [compat] improve ASN.1 BER parsing, including high tags, indefinite lengths,
9
+ nested constructed values, malformed input, EOC, SET ordering and tagging
10
+ - [compat] preserve X.509 RDN sets and CRL extension order
11
+ - [compat] implement `OCSP::Request#signed?` and `X509::Revoked#to_der`
12
+ - [compat] improve CRL and `Time` writer handling
13
+ - [compat] align `ASN1::ObjectId` handling with MRI
14
+ - [compat] improve extended key usage parsing
15
+ - [compat] reject invalid DH peer values
16
+ - [compat] add BN `mod_sqrt` and left/right shift support
17
+ - [compat] reject incomplete PKCS7 recipients and non-SET X.509 attribute values
18
+ - [compat] ignore `FAIL_IF_NO_PEER_CERT` without `VERIFY_PEER`
19
+ - [compat] reject unexpected TLS EOFs unless `OP_IGNORE_UNEXPECTED_EOF` is enabled
20
+ - [compat] align SSL `close_notify` handling with OpenSSL
21
+ - [compat] add `SSLSocket#readbyte`
22
+ - [compat] verify PKCS12 PBMAC1 across BC-FIPS versions
23
+ - [fix] harden OCSP response verification
24
+ - [fix] encode long-form ASN.1 lengths correctly
25
+ - [fix] preserve changes made to `X509::CRL`
26
+ - [fix] try all certificates with the issuer's subject name
27
+ - [fix] match CRLs from the same issuer
28
+ - [fix] encode empty PKCS7 signer signatures (#373)
29
+ - [fix] wait for partial TLS records before unwrapping
30
+ - [fix] interrupt blocking SSL reads when the socket is closed concurrently
31
+ - [fix] avoid shutdown spin on non-blocking SSL writes
32
+ - [fix] retry a full handshake when TLS session reuse fails (#369)
33
+ - [deps] upgrade BC to version 1.86
34
+
35
+ ## 0.16.3
36
+
37
+ - [deps] upgrade BC to version 1.86
38
+
39
+ ## 0.19.1
40
+
41
+ X25519/X448 key support and DH key reading, and a (final) round of provider
42
+ routing driven by the FIPS variant
43
+
44
+ - [feat] X25519/X448 type `PKey` support
45
+ `PKey.read`, `generate_key` and `new_raw_private/public_key` now handle XDH
46
+ - [feat] read DH keys (not just DH parameters)
47
+ PKCS#8 and SubjectPublicKeyInfo DH keys previously failed to parse
48
+ - [compat] read DH parameters via `OpenSSL::PKey.read`
49
+ - [compat] ASN.1 objects for the RFC 8410 curves
50
+ `ASN1::ObjectId` could not resolve X25519/X448/ED25519/ED448 by name or OID
51
+ - [compat] `PKey#inspect` reporting `oid` and `type_name`
52
+ - [compat] define `OP_NO_RENEGOTIATION` constant
53
+ - [fix] read back DER written by `PKey#to_der`
54
+ `PKey.read` only tried PKCS#8 on DER input
55
+ - [fix] raise `PKeyError` for unsupported public key algorithm
56
+ - [fix] raise `SSLError` on handshake failure in connect (#204)
57
+ JSSE may abort handshake with a plain exception when no protocol is enabled
58
+ - [compat] read and write PKCS12 through Bouncy Castle
59
+ supports OpenSSL 3 PBES2/PBKDF2 encryption and PBMAC1 MACs without JDK KeyStore
60
+ - [compat] honor `PKCS12.create` PBE and iteration arguments
61
+ regular mode writes requested legacy PBE algorithms (FIPS rejects unapproved)
62
+ - [feat] honor configured Java trust store properties
63
+ load explicit `javax.net.ssl.trustStore` using the configured `trustStoreType`,
64
+ `trustStoreProvider` and `trustStorePassword`
65
+ - [deps] bump bcprov artifact to latest patch (1.85.2)
66
+
67
+ ### Provider Routing
68
+
69
+ Operations that resolved through JDK security now go to the configured provider.
70
+
71
+ - [fips] pin provider when signing certificates and CRLs
72
+ - [fips] use provider when verifying certificates
73
+ `X509Certificate#verify(PublicKey)` goes to the JDK default and a certificate
74
+ read from a JKS keystore stays a `sun.security.x509.X509CertImpl`
75
+ - [fips] generate DSA keys through provider
76
+ `generate_key!` derived private exponent by hand instead of asking for a key pair
77
+ - [fips] keep cipher policy + OCSP digests on provider
78
+ - [fips] report **fips_mode** based on approved-only
79
+ `OpenSSL.fips_mode` now reports whether FIPS is being *enforced*, as C does;
80
+ `OPENSSL_FIPS` reports whether the build is FIPS-*capable*
81
+
1
82
  ## 0.19.0
2
83
 
3
84
  FIPS support, distributed as a **separate, dual GPL/commercial artifact**.
data/Mavenfile CHANGED
@@ -101,7 +101,7 @@ plugin :deploy, '3.1.4' do
101
101
  execute_goals( :deploy, skip: '${gem.deploy.skip}' )
102
102
  end
103
103
 
104
- supported_bc_versions = %w{ 1.80 1.81 1.82 1.83 1.84 1.85 }
104
+ supported_bc_versions = %w{ 1.80 1.81 1.82 1.83 1.84 1.85 1.86 }
105
105
 
106
106
  default_bc_version = File.read File.expand_path('lib/jopenssl/version.rb', File.dirname(__FILE__))
107
107
  default_bc_version = default_bc_version[/BOUNCY_CASTLE_VERSION\s?=\s?'(.*?)'/, 1]
@@ -149,7 +149,7 @@ jruby_versions = []
149
149
  jruby_versions += %w{ 9.2.19.0 9.2.20.1 }
150
150
  jruby_versions += %w{ 9.3.3.0 9.3.13.0 }
151
151
  jruby_versions += %w{ 9.4.8.0 9.4.14.0 9.4.15.0 9.4.16.0 }
152
- jruby_versions += %w{ 10.0.1.0 10.0.3.0 10.0.5.0 10.0.6.0 }
152
+ jruby_versions += %w{ 10.0.1.0 10.0.3.0 10.0.5.0 10.0.6.0 10.0.7.0 10.1.1.0 10.1.2.0 }
153
153
 
154
154
  jruby_versions.each do |version|
155
155
  profile id: "test-#{version}" do
data/README.md CHANGED
@@ -13,7 +13,9 @@ the JRuby [mailing list][1] or the [bug tracker][2].
13
13
 
14
14
  ## Compatibility
15
15
 
16
- Check latest jruby-openssl gem spec's `jar` *requirements* for compatibility.
16
+ Java compatibility is expected to be the same as with supported JRuby versions.
17
+
18
+ Check latest jruby-openssl gem spec's `jar` *requirements* for (BC) compatibility.
17
19
 
18
20
  ```ruby
19
21
  require 'openssl'
@@ -28,7 +30,7 @@ For older versions of the gem compatibility wasn't reported:
28
30
  | ~>0.13.x | 9.1.x-9.4.x | Java 8-17 | 1.68-1.69 |
29
31
  | ~>0.14.x | 9.1.x-9.4.x | Java 8-21 | 1.71-1.74 |
30
32
  | ~>0.15.x | 9.2.x-10.0.x | Java 8-25 | 1.78-1.83 |
31
- | ~>0.16.x | 9.3.x-10.0.x | Java 8-25 | 1.83-1.85 |
33
+ | ~>0.16.x | 9.3.x-10.1.x | Java 8-25 | 1.83-1.86 |
32
34
 
33
35
  ## Security
34
36
 
@@ -78,7 +80,7 @@ same `require 'openssl'`. But there are limitations on the JVM (with JCE and JSS
78
80
  Bouncy Castle libraries, so some entry points are unavailable, behave differently, or are no-ops.
79
81
 
80
82
  **Engine**
81
- - `OpenSSL::Engine` is not implemented - there is no hardware/engine layer, `OpenSSL::Engine.*`
83
+ - `OpenSSL::Engine` is not implemented - there is no hardware/engine layer, `OpenSSL::Engine`
82
84
  raises `NameError` (uninitialized constant)
83
85
 
84
86
  **SSL / TLS** (backed by JSSE)
@@ -103,13 +105,17 @@ Bouncy Castle libraries, so some entry points are unavailable, behave differentl
103
105
  - EdDSA (`Ed25519` / `Ed448`) rejects digest arguments
104
106
 
105
107
  **X509**
106
- - multi-valued RDNs (the `+` separator in a DN string) are not supported and raise `X509::NameError`.
108
+ - multi-valued RDNs (the `+` separator in a DN string) are not supported and raise `X509::NameError`
107
109
  - few `authorityKeyIdentifier` extension configurations are unsupported
108
110
 
109
111
  **Random**
110
112
  - randomness comes from the JVM's `SecureRandom`; the EGD and seed-file APIs (`Random.egd`,
111
113
  `egd_bytes`, `load_random_file`, `write_random_file`) are no-ops
112
114
 
115
+ **BN**
116
+ - `BN#get_flags` always returns zero; `BN#set_flags(0)` is a no-op; the OpenSSL constant-time mode
117
+ (`BN::CONSTTIME`) is not supported
118
+
113
119
  **Other**
114
120
  - `OpenSSL.fips_mode = true` raises `NotImplementedError` unless the separate [FIPS variant](#fips)
115
121
  gem is installed
data/Rakefile CHANGED
@@ -25,16 +25,17 @@ task :clean do
25
25
  sh("#{mvnw} clean")
26
26
  end
27
27
 
28
- task :build do
28
+ task :build_release do
29
29
  source_date_epoch!
30
- sh("#{mvnw} -Prelease -DupdateReleaseInfo=true #{_build_output_timestamp} clean package")
30
+ sh("#{mvnw} -Prelease -DupdateReleaseInfo=true #{_build_output_timestamp} package")
31
31
  end
32
32
 
33
- desc "Sanity-check the tree/version, then build a reproducible release gem"
33
+ desc "Sanity-check tree/version, then build a reproducible release gem"
34
34
  task :release => :release_check do
35
35
  source_date_epoch! # pin to the release commit so the gem + jar use the same
36
36
  puts "SOURCE_DATE_EPOCH=#{ENV['SOURCE_DATE_EPOCH']} (#{Time.at(ENV['SOURCE_DATE_EPOCH'].to_i).utc})"
37
- Rake::Task[:build].invoke
37
+ Rake::Task[:clean].invoke
38
+ Rake::Task[:build_release].invoke
38
39
  gem = Dir['target/*.gem', 'pkg/*.gem'].max_by { |f| File.mtime(f) }
39
40
  abort "release aborted - no .gem produced" unless gem
40
41
  puts "built #{gem}"
@@ -55,8 +56,12 @@ task :release_check do
55
56
  branch = `git rev-parse --abbrev-ref HEAD`.strip
56
57
  warn "WARNING: releasing from '#{branch}' (not 'master')" unless branch == 'master'
57
58
 
58
- tag = `git tag --points-at HEAD`.split("\n").find { |t| t =~ /#{Regexp.escape(version)}/ }
59
- warn "WARNING: no git tag matching #{version} points at HEAD" unless tag
59
+ expected_tag = "v#{version}" # release tags are vX.Y.Z
60
+ tags = `git tag --points-at HEAD`.split("\n")
61
+ unless tags.include?(expected_tag)
62
+ found = tags.empty? ? 'none' : tags.join(', ')
63
+ warn "WARNING: no #{expected_tag} tag points at HEAD (tags at HEAD: #{found})"
64
+ end
60
65
 
61
66
  puts "release checks passed for #{version}"
62
67
  end
@@ -69,7 +74,7 @@ task :jar_release => :release_check do
69
74
  # deploy (gpg-sign + push): #{File.basename(mvnw)} deploy -Prelease,jar-release -D...
70
75
  end
71
76
 
72
- task :default => :build
77
+ task :default => :jar
73
78
 
74
79
  file('lib/jopenssl.jar') { Rake::Task[:jar].invoke }
75
80
 
@@ -90,6 +95,37 @@ task :test => ['lib/jopenssl.jar', 'pkg/test-classes/org/jruby/ext/openssl/Secur
90
95
  require_relative 'tasks/vendor_tests'
91
96
  define_vendor_test_tasks # root + jopenssl_lib default to this tree
92
97
 
98
+ require_relative 'tasks/provider_tests'
99
+ namespace :test do
100
+ namespace :provider do
101
+ define_provider_test_task :bc_all,
102
+ description: 'Run tests with BC providers registered through java.security',
103
+ providers: [
104
+ { name: 'BC', class: 'org.bouncycastle.jce.provider.BouncyCastleProvider' },
105
+ { name: 'BCJSSE', class: 'org.bouncycastle.jsse.provider.BouncyCastleJsseProvider' }
106
+ ],
107
+ jars: -> { FileList['vendor/**/*.jar'].map { |path| File.expand_path(path) } }
108
+ define_provider_test_task :bc_wout_jsse,
109
+ description: 'Run tests with only BC provider registered (without BC-JSSE)',
110
+ providers: [
111
+ { name: 'BC', class: 'org.bouncycastle.jce.provider.BouncyCastleProvider' },
112
+ ],
113
+ jdk_providers: ['SUN', 'SunJSSE', 'SunJCE', 'SunEC'],
114
+ jars: -> { FileList['vendor/**/*.jar'].map { |path| File.expand_path(path) } }
115
+ end
116
+
117
+ desc 'Run regular and provider test suites'
118
+ task :all do
119
+ %w[
120
+ test
121
+ test:provider:bc_all
122
+ test:provider:bc_wout_jsse
123
+ ].each do |name|
124
+ Rake::Task[name].invoke
125
+ end
126
+ end
127
+ end
128
+
93
129
  namespace :integration do
94
130
  it_path = File.expand_path('integration', File.dirname(__FILE__))
95
131
  task :install do
data/lib/jopenssl/load.rb CHANGED
@@ -1,24 +1,26 @@
1
1
  require_relative 'version'
2
2
 
3
3
  # NOTE: assuming user does pull in BC .jars from somewhere else on the class-path
4
- if ENV_JAVA['jruby.openssl.load.jars'] != 'false' &&
5
- java.security.Security.getProvider('BC').nil?
6
- version = JOpenSSL::BOUNCY_CASTLE_VERSION
4
+ if ENV_JAVA['jruby.openssl.load.jars'] != 'false' && java.security.Security.getProvider('BC').nil?
7
5
  bc_jars = begin
8
6
  require 'jar_dependencies' unless respond_to?(:require_jar, true)
9
- require_jar 'org.bouncycastle', 'bcprov-jdk18on', version
10
- require_jar 'org.bouncycastle', 'bcpkix-jdk18on', version
11
- require_jar 'org.bouncycastle', 'bcutil-jdk18on', version
12
- require_jar 'org.bouncycastle', 'bctls-jdk18on', version
7
+ require_jar 'org.bouncycastle', 'bcprov-jdk18on', JOpenSSL.version('bcprov-jdk18on')
8
+ require_jar 'org.bouncycastle', 'bcpkix-jdk18on', JOpenSSL.version('bcpkix-jdk18on')
9
+ require_jar 'org.bouncycastle', 'bcutil-jdk18on', JOpenSSL.version('bcutil-jdk18on')
10
+ require_jar 'org.bouncycastle', 'bctls-jdk18on', JOpenSSL.version('bctls-jdk18on')
13
11
  true
14
12
  rescue LoadError, RuntimeError
15
13
  false
16
14
  end
17
15
  unless bc_jars
18
- vendor = File.expand_path('../../vendor', __dir__)
16
+ vendor = File.expand_path('../../vendor', File.dirname(__FILE__))
17
+ version = JOpenSSL.version('bcprov-jdk18on')
19
18
  load "#{vendor}/org/bouncycastle/bcprov-jdk18on/#{version}/bcprov-jdk18on-#{version}.jar"
19
+ version = JOpenSSL.version('bcpkix-jdk18on')
20
20
  load "#{vendor}/org/bouncycastle/bcpkix-jdk18on/#{version}/bcpkix-jdk18on-#{version}.jar"
21
+ version = JOpenSSL.version('bcutil-jdk18on')
21
22
  load "#{vendor}/org/bouncycastle/bcutil-jdk18on/#{version}/bcutil-jdk18on-#{version}.jar"
23
+ version = JOpenSSL.version('bctls-jdk18on')
22
24
  load "#{vendor}/org/bouncycastle/bctls-jdk18on/#{version}/bctls-jdk18on-#{version}.jar"
23
25
  end
24
26
  end
@@ -1,5 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
  module JOpenSSL
3
- VERSION = '0.19.0'
4
- BOUNCY_CASTLE_VERSION = '1.85'
3
+ VERSION = '0.19.2'
4
+ BOUNCY_CASTLE_VERSION = '1.86'
5
+
6
+ # @private
7
+ BOUNCY_CASTLE_PATCH_VERSIONS = {
8
+ 'bctls-jdk18on' => "#{BOUNCY_CASTLE_VERSION}.1"
9
+ }.freeze
10
+ private_constant :BOUNCY_CASTLE_PATCH_VERSIONS
11
+
12
+ # @private
13
+ def self.version(artifact_id)
14
+ BOUNCY_CASTLE_PATCH_VERSIONS.fetch(artifact_id, BOUNCY_CASTLE_VERSION)
15
+ end
5
16
  end
data/lib/jopenssl.jar CHANGED
Binary file
@@ -107,6 +107,12 @@ module OpenSSL::Buffering
107
107
  read(1)&.ord
108
108
  end
109
109
 
110
+ # Get the next 8bit byte. Raises EOFError on EOF
111
+ def readbyte
112
+ raise EOFError if eof?
113
+ getbyte
114
+ end
115
+
110
116
  ##
111
117
  # Reads _size_ bytes from the stream. If _buf_ is provided it must
112
118
  # reference a string which will receive the data.
@@ -225,7 +231,7 @@ module OpenSSL::Buffering
225
231
  #
226
232
  # Unlike IO#gets the separator must be provided if a limit is provided.
227
233
 
228
- def gets(eol=$/, limit=nil)
234
+ def gets(eol=$/, limit=nil, chomp: false)
229
235
  idx = @rbuffer.index(eol)
230
236
  until @eof
231
237
  break if idx
@@ -240,7 +246,9 @@ module OpenSSL::Buffering
240
246
  if size && limit && limit >= 0
241
247
  size = [size, limit].min
242
248
  end
243
- consume_rbuff(size)
249
+ line = consume_rbuff(size)
250
+ line.chomp!(eol) if chomp && line
251
+ line
244
252
  end
245
253
 
246
254
  ##
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.0</version>
14
+ <version>0.19.2</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>
@@ -55,7 +55,7 @@ DO NOT MODIFY - GENERATED CODE
55
55
  </snapshotRepository>
56
56
  </distributionManagement>
57
57
  <properties>
58
- <bc.versions>1.85</bc.versions>
58
+ <bc.versions>1.86</bc.versions>
59
59
  <gem.deploy.skip>false</gem.deploy.skip>
60
60
  <invoker.skip>${maven.test.skip}</invoker.skip>
61
61
  <invoker.test>${bc.versions}</invoker.test>
@@ -75,22 +75,22 @@ DO NOT MODIFY - GENERATED CODE
75
75
  <dependency>
76
76
  <groupId>org.bouncycastle</groupId>
77
77
  <artifactId>bcprov-jdk18on</artifactId>
78
- <version>[1.80,1.85]</version>
78
+ <version>[1.80,1.86]</version>
79
79
  </dependency>
80
80
  <dependency>
81
81
  <groupId>org.bouncycastle</groupId>
82
82
  <artifactId>bcpkix-jdk18on</artifactId>
83
- <version>[1.80,1.85]</version>
83
+ <version>[1.80,1.86]</version>
84
84
  </dependency>
85
85
  <dependency>
86
86
  <groupId>org.bouncycastle</groupId>
87
87
  <artifactId>bctls-jdk18on</artifactId>
88
- <version>[1.80,1.85]</version>
88
+ <version>[1.80,1.86.1]</version>
89
89
  </dependency>
90
90
  <dependency>
91
91
  <groupId>org.bouncycastle</groupId>
92
92
  <artifactId>bcutil-jdk18on</artifactId>
93
- <version>[1.80,1.85]</version>
93
+ <version>[1.80,1.86]</version>
94
94
  </dependency>
95
95
  <dependency>
96
96
  <groupId>org.jruby</groupId>
@@ -405,7 +405,7 @@ DO NOT MODIFY - GENERATED CODE
405
405
  </plugins>
406
406
  </build>
407
407
  <properties>
408
- <bc.versions>1.80,1.81,1.82,1.83,1.84,1.85</bc.versions>
408
+ <bc.versions>1.80,1.81,1.82,1.83,1.84,1.85,1.86</bc.versions>
409
409
  <jruby.version>9.2.19.0</jruby.version>
410
410
  <jruby.versions>9.2.19.0</jruby.versions>
411
411
  </properties>
@@ -442,7 +442,7 @@ DO NOT MODIFY - GENERATED CODE
442
442
  </plugins>
443
443
  </build>
444
444
  <properties>
445
- <bc.versions>1.80,1.81,1.82,1.83,1.84,1.85</bc.versions>
445
+ <bc.versions>1.80,1.81,1.82,1.83,1.84,1.85,1.86</bc.versions>
446
446
  <jruby.version>9.2.20.1</jruby.version>
447
447
  <jruby.versions>9.2.20.1</jruby.versions>
448
448
  </properties>
@@ -479,7 +479,7 @@ DO NOT MODIFY - GENERATED CODE
479
479
  </plugins>
480
480
  </build>
481
481
  <properties>
482
- <bc.versions>1.80,1.81,1.82,1.83,1.84,1.85</bc.versions>
482
+ <bc.versions>1.80,1.81,1.82,1.83,1.84,1.85,1.86</bc.versions>
483
483
  <jruby.version>9.3.3.0</jruby.version>
484
484
  <jruby.versions>9.3.3.0</jruby.versions>
485
485
  </properties>
@@ -516,7 +516,7 @@ DO NOT MODIFY - GENERATED CODE
516
516
  </plugins>
517
517
  </build>
518
518
  <properties>
519
- <bc.versions>1.80,1.81,1.82,1.83,1.84,1.85</bc.versions>
519
+ <bc.versions>1.80,1.81,1.82,1.83,1.84,1.85,1.86</bc.versions>
520
520
  <jruby.version>9.3.13.0</jruby.version>
521
521
  <jruby.versions>9.3.13.0</jruby.versions>
522
522
  </properties>
@@ -553,7 +553,7 @@ DO NOT MODIFY - GENERATED CODE
553
553
  </plugins>
554
554
  </build>
555
555
  <properties>
556
- <bc.versions>1.80,1.81,1.82,1.83,1.84,1.85</bc.versions>
556
+ <bc.versions>1.80,1.81,1.82,1.83,1.84,1.85,1.86</bc.versions>
557
557
  <jruby.version>9.4.8.0</jruby.version>
558
558
  <jruby.versions>9.4.8.0</jruby.versions>
559
559
  </properties>
@@ -590,7 +590,7 @@ DO NOT MODIFY - GENERATED CODE
590
590
  </plugins>
591
591
  </build>
592
592
  <properties>
593
- <bc.versions>1.80,1.81,1.82,1.83,1.84,1.85</bc.versions>
593
+ <bc.versions>1.80,1.81,1.82,1.83,1.84,1.85,1.86</bc.versions>
594
594
  <jruby.version>9.4.14.0</jruby.version>
595
595
  <jruby.versions>9.4.14.0</jruby.versions>
596
596
  </properties>
@@ -627,7 +627,7 @@ DO NOT MODIFY - GENERATED CODE
627
627
  </plugins>
628
628
  </build>
629
629
  <properties>
630
- <bc.versions>1.80,1.81,1.82,1.83,1.84,1.85</bc.versions>
630
+ <bc.versions>1.80,1.81,1.82,1.83,1.84,1.85,1.86</bc.versions>
631
631
  <jruby.version>9.4.15.0</jruby.version>
632
632
  <jruby.versions>9.4.15.0</jruby.versions>
633
633
  </properties>
@@ -664,7 +664,7 @@ DO NOT MODIFY - GENERATED CODE
664
664
  </plugins>
665
665
  </build>
666
666
  <properties>
667
- <bc.versions>1.80,1.81,1.82,1.83,1.84,1.85</bc.versions>
667
+ <bc.versions>1.80,1.81,1.82,1.83,1.84,1.85,1.86</bc.versions>
668
668
  <jruby.version>9.4.16.0</jruby.version>
669
669
  <jruby.versions>9.4.16.0</jruby.versions>
670
670
  </properties>
@@ -701,7 +701,7 @@ DO NOT MODIFY - GENERATED CODE
701
701
  </plugins>
702
702
  </build>
703
703
  <properties>
704
- <bc.versions>1.80,1.81,1.82,1.83,1.84,1.85</bc.versions>
704
+ <bc.versions>1.80,1.81,1.82,1.83,1.84,1.85,1.86</bc.versions>
705
705
  <jruby.version>10.0.1.0</jruby.version>
706
706
  <jruby.versions>10.0.1.0</jruby.versions>
707
707
  </properties>
@@ -738,7 +738,7 @@ DO NOT MODIFY - GENERATED CODE
738
738
  </plugins>
739
739
  </build>
740
740
  <properties>
741
- <bc.versions>1.80,1.81,1.82,1.83,1.84,1.85</bc.versions>
741
+ <bc.versions>1.80,1.81,1.82,1.83,1.84,1.85,1.86</bc.versions>
742
742
  <jruby.version>10.0.3.0</jruby.version>
743
743
  <jruby.versions>10.0.3.0</jruby.versions>
744
744
  </properties>
@@ -775,7 +775,7 @@ DO NOT MODIFY - GENERATED CODE
775
775
  </plugins>
776
776
  </build>
777
777
  <properties>
778
- <bc.versions>1.80,1.81,1.82,1.83,1.84,1.85</bc.versions>
778
+ <bc.versions>1.80,1.81,1.82,1.83,1.84,1.85,1.86</bc.versions>
779
779
  <jruby.version>10.0.5.0</jruby.version>
780
780
  <jruby.versions>10.0.5.0</jruby.versions>
781
781
  </properties>
@@ -812,11 +812,122 @@ DO NOT MODIFY - GENERATED CODE
812
812
  </plugins>
813
813
  </build>
814
814
  <properties>
815
- <bc.versions>1.80,1.81,1.82,1.83,1.84,1.85</bc.versions>
815
+ <bc.versions>1.80,1.81,1.82,1.83,1.84,1.85,1.86</bc.versions>
816
816
  <jruby.version>10.0.6.0</jruby.version>
817
817
  <jruby.versions>10.0.6.0</jruby.versions>
818
818
  </properties>
819
819
  </profile>
820
+ <profile>
821
+ <id>test-10.0.7.0</id>
822
+ <build>
823
+ <plugins>
824
+ <plugin>
825
+ <artifactId>maven-invoker-plugin</artifactId>
826
+ <version>3.8.1</version>
827
+ <executions>
828
+ <execution>
829
+ <goals>
830
+ <goal>install</goal>
831
+ <goal>run</goal>
832
+ </goals>
833
+ <configuration>
834
+ <projectsDirectory>src/it</projectsDirectory>
835
+ <pomIncludes>
836
+ <pomInclude>*/pom.xml</pomInclude>
837
+ </pomIncludes>
838
+ <streamLogs>true</streamLogs>
839
+ <properties>
840
+ <jruby.versions>${jruby.versions}</jruby.versions>
841
+ <jruby.openssl.version>${project.version}</jruby.openssl.version>
842
+ <bc.versions>${bc.versions}</bc.versions>
843
+ <runit.dir>${runit.dir}</runit.dir>
844
+ </properties>
845
+ </configuration>
846
+ </execution>
847
+ </executions>
848
+ </plugin>
849
+ </plugins>
850
+ </build>
851
+ <properties>
852
+ <bc.versions>1.80,1.81,1.82,1.83,1.84,1.85,1.86</bc.versions>
853
+ <jruby.version>10.0.7.0</jruby.version>
854
+ <jruby.versions>10.0.7.0</jruby.versions>
855
+ </properties>
856
+ </profile>
857
+ <profile>
858
+ <id>test-10.1.1.0</id>
859
+ <build>
860
+ <plugins>
861
+ <plugin>
862
+ <artifactId>maven-invoker-plugin</artifactId>
863
+ <version>3.8.1</version>
864
+ <executions>
865
+ <execution>
866
+ <goals>
867
+ <goal>install</goal>
868
+ <goal>run</goal>
869
+ </goals>
870
+ <configuration>
871
+ <projectsDirectory>src/it</projectsDirectory>
872
+ <pomIncludes>
873
+ <pomInclude>*/pom.xml</pomInclude>
874
+ </pomIncludes>
875
+ <streamLogs>true</streamLogs>
876
+ <properties>
877
+ <jruby.versions>${jruby.versions}</jruby.versions>
878
+ <jruby.openssl.version>${project.version}</jruby.openssl.version>
879
+ <bc.versions>${bc.versions}</bc.versions>
880
+ <runit.dir>${runit.dir}</runit.dir>
881
+ </properties>
882
+ </configuration>
883
+ </execution>
884
+ </executions>
885
+ </plugin>
886
+ </plugins>
887
+ </build>
888
+ <properties>
889
+ <bc.versions>1.80,1.81,1.82,1.83,1.84,1.85,1.86</bc.versions>
890
+ <jruby.version>10.1.1.0</jruby.version>
891
+ <jruby.versions>10.1.1.0</jruby.versions>
892
+ </properties>
893
+ </profile>
894
+ <profile>
895
+ <id>test-10.1.2.0</id>
896
+ <build>
897
+ <plugins>
898
+ <plugin>
899
+ <artifactId>maven-invoker-plugin</artifactId>
900
+ <version>3.8.1</version>
901
+ <executions>
902
+ <execution>
903
+ <goals>
904
+ <goal>install</goal>
905
+ <goal>run</goal>
906
+ </goals>
907
+ <configuration>
908
+ <projectsDirectory>src/it</projectsDirectory>
909
+ <pomIncludes>
910
+ <pomInclude>*/pom.xml</pomInclude>
911
+ </pomIncludes>
912
+ <streamLogs>true</streamLogs>
913
+ <properties>
914
+ <jruby.versions>${jruby.versions}</jruby.versions>
915
+ <jruby.openssl.version>${project.version}</jruby.openssl.version>
916
+ <bc.versions>${bc.versions}</bc.versions>
917
+ <runit.dir>${runit.dir}</runit.dir>
918
+ </properties>
919
+ </configuration>
920
+ </execution>
921
+ </executions>
922
+ </plugin>
923
+ </plugins>
924
+ </build>
925
+ <properties>
926
+ <bc.versions>1.80,1.81,1.82,1.83,1.84,1.85,1.86</bc.versions>
927
+ <jruby.version>10.1.2.0</jruby.version>
928
+ <jruby.versions>10.1.2.0</jruby.versions>
929
+ </properties>
930
+ </profile>
820
931
  <profile>
821
932
  <id>release</id>
822
933
  <build>
@@ -931,6 +1042,7 @@ DO NOT MODIFY - GENERATED CODE
931
1042
  <include>org/jruby/ext/openssl/PKeyEdDSA.java</include>
932
1043
  <include>org/jruby/ext/openssl/PKeyHMAC.java</include>
933
1044
  <include>org/jruby/ext/openssl/PKeyRSA.java</include>
1045
+ <include>org/jruby/ext/openssl/PKeyXDH.java</include>
934
1046
  <include>org/jruby/ext/openssl/Random.java</include>
935
1047
  <include>org/jruby/ext/openssl/SSL.java</include>
936
1048
  <include>org/jruby/ext/openssl/SSLContext.java</include>
@@ -939,6 +1051,7 @@ DO NOT MODIFY - GENERATED CODE
939
1051
  <include>org/jruby/ext/openssl/SecurityHelper.java</include>
940
1052
  <include>org/jruby/ext/openssl/SimpleSecretKey.java</include>
941
1053
  <include>org/jruby/ext/openssl/StringHelper.java</include>
1054
+ <include>org/jruby/ext/openssl/Timestamp.java</include>
942
1055
  <include>org/jruby/ext/openssl/X509.java</include>
943
1056
  <include>org/jruby/ext/openssl/X509Attribute.java</include>
944
1057
  <include>org/jruby/ext/openssl/X509CRL.java</include>
@@ -982,6 +1095,7 @@ DO NOT MODIFY - GENERATED CODE
982
1095
  <include>org/jruby/ext/openssl/impl/PKCS7DataDigest.java</include>
983
1096
  <include>org/jruby/ext/openssl/impl/PKCS7DataEncrypted.java</include>
984
1097
  <include>org/jruby/ext/openssl/impl/PKCS7DataEnveloped.java</include>
1098
+ <include>org/jruby/ext/openssl/impl/PKCS7DataOther.java</include>
985
1099
  <include>org/jruby/ext/openssl/impl/PKCS7DataSigned.java</include>
986
1100
  <include>org/jruby/ext/openssl/impl/PKCS7DataSignedAndEnveloped.java</include>
987
1101
  <include>org/jruby/ext/openssl/impl/PKCS7Exception.java</include>
@@ -992,8 +1106,6 @@ DO NOT MODIFY - GENERATED CODE
992
1106
  <include>org/jruby/ext/openssl/impl/Signed.java</include>
993
1107
  <include>org/jruby/ext/openssl/impl/SignerInfoWithPkey.java</include>
994
1108
  <include>org/jruby/ext/openssl/impl/TypeDiscriminating.java</include>
995
- <include>org/jruby/ext/openssl/impl/pem/MiscPEMGeneratorHelper.java</include>
996
- <include>org/jruby/ext/openssl/impl/pem/PEMUtilities.java</include>
997
1109
  <include>org/jruby/ext/openssl/log/DefaultLogger.java</include>
998
1110
  <include>org/jruby/ext/openssl/log/JULLogger.java</include>
999
1111
  <include>org/jruby/ext/openssl/log/Logger.java</include>
@@ -1002,10 +1114,10 @@ DO NOT MODIFY - GENERATED CODE
1002
1114
  <include>org/jruby/ext/openssl/shim/CipherShim.java</include>
1003
1115
  <include>org/jruby/ext/openssl/shim/ErrorShim.java</include>
1004
1116
  <include>org/jruby/ext/openssl/shim/PKeyShim.java</include>
1117
+ <include>org/jruby/ext/openssl/shim/ProviderShim.java</include>
1005
1118
  <include>org/jruby/ext/openssl/util/ByteArrayOutputStream.java</include>
1006
1119
  <include>org/jruby/ext/openssl/util/Cache.java</include>
1007
1120
  <include>org/jruby/ext/openssl/util/ExceptionUtil.java</include>
1008
- <include>org/jruby/ext/openssl/util/PEMGenerator.java</include>
1009
1121
  <include>org/jruby/ext/openssl/util/RubySupport.java</include>
1010
1122
  <include>org/jruby/ext/openssl/x509store/CRL.java</include>
1011
1123
  <include>org/jruby/ext/openssl/x509store/Certificate.java</include>
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.0
4
+ version: 0.19.2
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-07-29 00:00:00.000000000 Z
12
+ date: 2026-09-25 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).
@@ -40,10 +40,10 @@ files:
40
40
  - lib/openssl/ssl.rb
41
41
  - lib/openssl/x509.rb
42
42
  - pom.xml
43
- - vendor/org/bouncycastle/bcpkix-jdk18on/1.85/bcpkix-jdk18on-1.85.jar
44
- - vendor/org/bouncycastle/bcprov-jdk18on/1.85/bcprov-jdk18on-1.85.jar
45
- - vendor/org/bouncycastle/bctls-jdk18on/1.85/bctls-jdk18on-1.85.jar
46
- - vendor/org/bouncycastle/bcutil-jdk18on/1.85/bcutil-jdk18on-1.85.jar
43
+ - vendor/org/bouncycastle/bcpkix-jdk18on/1.86/bcpkix-jdk18on-1.86.jar
44
+ - vendor/org/bouncycastle/bcprov-jdk18on/1.86/bcprov-jdk18on-1.86.jar
45
+ - vendor/org/bouncycastle/bctls-jdk18on/1.86.1/bctls-jdk18on-1.86.1.jar
46
+ - vendor/org/bouncycastle/bcutil-jdk18on/1.86/bcutil-jdk18on-1.86.jar
47
47
  licenses:
48
48
  - EPL-1.0
49
49
  - GPL-2.0
@@ -67,10 +67,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  requirements:
70
- - jar org.bouncycastle:bcprov-jdk18on, [1.80,1.85]
71
- - jar org.bouncycastle:bcpkix-jdk18on, [1.80,1.85]
72
- - jar org.bouncycastle:bctls-jdk18on, [1.80,1.85]
73
- - jar org.bouncycastle:bcutil-jdk18on, [1.80,1.85]
70
+ - jar org.bouncycastle:bcprov-jdk18on, [1.80,1.86]
71
+ - jar org.bouncycastle:bcpkix-jdk18on, [1.80,1.86]
72
+ - jar org.bouncycastle:bctls-jdk18on, [1.80,1.86.1]
73
+ - jar org.bouncycastle:bcutil-jdk18on, [1.80,1.86]
74
74
  rubygems_version: 3.6.3
75
75
  specification_version: 4
76
76
  summary: SSL/TLS and general-purpose cryptography for JRuby