jruby-openssl 0.16.2-java → 0.19.0-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.
metadata CHANGED
@@ -1,20 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jruby-openssl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.2
4
+ version: 0.19.0
5
5
  platform: java
6
6
  authors:
7
7
  - Karol Bucek
8
8
  - Ola Bini
9
9
  - JRuby contributors
10
- autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2026-07-20 00:00:00.000000000 Z
12
+ date: 2026-07-29 00:00:00.000000000 Z
14
13
  dependencies: []
15
- description: JRuby-OpenSSL is an add-on gem for JRuby that emulates the Ruby OpenSSL
16
- native library.
17
- email: self+jruby-openssl@kares.org
14
+ description: Ruby OpenSSL compatibility for JRuby, based on Java JCA/JCE and Bouncy
15
+ Castle libraries (does not depend on native OpenSSL).
16
+ email: jossl@kares.org
18
17
  executables: []
19
18
  extensions: []
20
19
  extra_rdoc_files: []
@@ -36,23 +35,24 @@ files:
36
35
  - lib/openssl/digest.rb
37
36
  - lib/openssl/hmac.rb
38
37
  - lib/openssl/marshal.rb
39
- - lib/openssl/pkcs12.rb
40
38
  - lib/openssl/pkcs5.rb
41
39
  - lib/openssl/pkey.rb
42
40
  - lib/openssl/ssl.rb
43
41
  - lib/openssl/x509.rb
44
- - lib/org/bouncycastle/bcpkix-jdk18on/1.85/bcpkix-jdk18on-1.85.jar
45
- - lib/org/bouncycastle/bcprov-jdk18on/1.85/bcprov-jdk18on-1.85.jar
46
- - lib/org/bouncycastle/bctls-jdk18on/1.85/bctls-jdk18on-1.85.jar
47
- - lib/org/bouncycastle/bcutil-jdk18on/1.85/bcutil-jdk18on-1.85.jar
48
42
  - pom.xml
49
- homepage: https://github.com/jruby/jruby-openssl
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
50
47
  licenses:
51
48
  - EPL-1.0
52
49
  - GPL-2.0
53
50
  - LGPL-2.1
54
- metadata: {}
55
- post_install_message:
51
+ metadata:
52
+ jopenssl_variant: main
53
+ source_code_uri: https://github.com/jruby/jruby-openssl
54
+ bug_tracker_uri: https://github.com/jruby/jruby-openssl/issues
55
+ rubygems_mfa_required: 'true'
56
56
  rdoc_options: []
57
57
  require_paths:
58
58
  - lib
@@ -67,12 +67,11 @@ 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.85
71
- - jar org.bouncycastle:bcpkix-jdk18on, 1.85
72
- - jar org.bouncycastle:bctls-jdk18on, 1.85
73
- - jar org.bouncycastle:bcutil-jdk18on, 1.85
74
- rubygems_version: 3.1.6
75
- signing_key:
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]
74
+ rubygems_version: 3.6.3
76
75
  specification_version: 4
77
- summary: JRuby OpenSSL
76
+ summary: SSL/TLS and general-purpose cryptography for JRuby
78
77
  test_files: []
@@ -1,101 +0,0 @@
1
- require 'java'
2
-
3
- module OpenSSL
4
- class PKCS12
5
- class PKCS12Error < OpenSSLError
6
- end
7
-
8
- java_import 'org.jruby.ext.openssl.PEMUtils'
9
- java_import 'org.jruby.ext.openssl.SecurityHelper'
10
-
11
- def self.create(pass, name, key, cert, ca = nil)
12
- pkcs12 = self.new
13
- pkcs12.generate(pass, name, key, cert, ca)
14
- pkcs12
15
- end
16
-
17
- attr_reader :key, :certificate, :ca_certs
18
-
19
- def initialize(str = nil, password = '')
20
- return @der = nil unless str
21
-
22
- if str.is_a?(File)
23
- file = File.open(str.path, "rb")
24
- @der = file.read
25
- file.close
26
- else
27
- str.force_encoding(Encoding::ASCII_8BIT) if str.respond_to?(:force_encoding)
28
- @der = str
29
- end
30
-
31
- store = SecurityHelper.getKeyStore("PKCS12")
32
- store.load(java.io.ByteArrayInputStream.new(@der.to_java_bytes), password.to_java.to_char_array)
33
-
34
- aliases = store.aliases
35
- aliases.each do |alias_name|
36
- if store.is_key_entry(alias_name)
37
- if java_certificate = store.get_certificate(alias_name)
38
- der = String.from_java_bytes(java_certificate.get_encoded)
39
- @certificate = OpenSSL::X509::Certificate.new(der)
40
- end
41
-
42
- java_key = store.get_key(alias_name, password.to_java.to_char_array)
43
- if java_key
44
- der = String.from_java_bytes(java_key.get_encoded)
45
- algorithm = java_key.get_algorithm
46
- if algorithm == "RSA"
47
- @key = OpenSSL::PKey::RSA.new(der)
48
- elsif algorithm == "DSA"
49
- @key = OpenSSL::PKey::DSA.new(der)
50
- elsif algorithm == "DH"
51
- @key = OpenSSL::PKey::DH.new(der)
52
- elsif algorithm == "EC"
53
- @key = OpenSSL::PKey::EC.new(der)
54
- else
55
- raise PKCS12Error, "Unknown key algorithm #{algorithm}"
56
- end
57
- end
58
-
59
- @ca_certs = Array.new
60
- java_ca_certs = store.get_certificate_chain(alias_name)
61
- if java_ca_certs
62
- java_ca_certs.each do |java_ca_cert|
63
- der = String.from_java_bytes(java_ca_cert.get_encoded)
64
- ruby_cert = OpenSSL::X509::Certificate.new(der)
65
- if (ruby_cert.to_pem != @certificate.to_pem)
66
- @ca_certs << ruby_cert
67
- end
68
- end
69
- end
70
- break
71
- end
72
- end
73
- rescue java.lang.Exception => e
74
- raise PKCS12Error, e.inspect
75
- end
76
-
77
- def generate(pass, alias_name, key, cert, ca = nil)
78
- @key, @certificate, @ca_certs = key, cert, ca
79
-
80
- certificates = cert.to_pem
81
- ca.each { |ca_cert| certificates << ca_cert.to_pem } if ca
82
-
83
- begin
84
- der_bytes = PEMUtils.generatePKCS12(
85
- java.io.StringReader.new(key.to_pem), certificates.to_java_bytes,
86
- alias_name, ( pass.nil? ? "" : pass ).to_java.to_char_array
87
- )
88
- rescue java.security.KeyStoreException, java.security.cert.CertificateException => e
89
- raise PKCS12Error, e.message
90
- rescue java.security.GeneralSecurityException, java.io.IOException => e
91
- raise PKCS12Error, e.inspect
92
- end
93
-
94
- @der = String.from_java_bytes(der_bytes)
95
- end
96
-
97
- def to_der
98
- @der
99
- end
100
- end
101
- end