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.
- checksums.yaml +4 -4
- data/History.md +104 -0
- data/Mavenfile +180 -93
- data/README.md +100 -27
- data/Rakefile +77 -26
- data/lib/jopenssl/load.rb +13 -57
- data/lib/jopenssl/version.rb +2 -7
- data/lib/jopenssl.jar +0 -0
- data/lib/openssl/config.rb +13 -5
- data/lib/openssl/ssl.rb +21 -11
- data/lib/openssl.rb +43 -0
- data/pom.xml +656 -108
- metadata +20 -21
- data/lib/openssl/pkcs12.rb +0 -101
- /data/{lib → vendor}/org/bouncycastle/bcpkix-jdk18on/1.85/bcpkix-jdk18on-1.85.jar +0 -0
- /data/{lib → vendor}/org/bouncycastle/bcprov-jdk18on/1.85/bcprov-jdk18on-1.85.jar +0 -0
- /data/{lib → vendor}/org/bouncycastle/bctls-jdk18on/1.85/bctls-jdk18on-1.85.jar +0 -0
- /data/{lib → vendor}/org/bouncycastle/bcutil-jdk18on/1.85/bcutil-jdk18on-1.85.jar +0 -0
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.
|
|
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-
|
|
12
|
+
date: 2026-07-29 00:00:00.000000000 Z
|
|
14
13
|
dependencies: []
|
|
15
|
-
description:
|
|
16
|
-
native
|
|
17
|
-
email:
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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
|
|
76
|
+
summary: SSL/TLS and general-purpose cryptography for JRuby
|
|
78
77
|
test_files: []
|
data/lib/openssl/pkcs12.rb
DELETED
|
@@ -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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|