jruby-openssl 0.9.20-java → 0.10.7-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 +132 -1
- data/LICENSE.txt +1 -1
- data/Mavenfile +49 -69
- data/README.md +14 -16
- data/Rakefile +4 -0
- data/lib/jopenssl/_compat23.rb +71 -0
- data/lib/jopenssl/load.rb +21 -12
- data/lib/jopenssl/version.rb +8 -10
- data/lib/jopenssl.jar +0 -0
- data/lib/jopenssl19/openssl/ssl-internal.rb +104 -0
- data/lib/jopenssl22/openssl/ssl.rb +16 -16
- data/lib/jopenssl23/openssl/bn.rb +2 -1
- data/lib/jopenssl23/openssl/buffering.rb +39 -35
- data/lib/jopenssl23/openssl/config.rb +12 -11
- data/lib/jopenssl23/openssl/digest.rb +1 -1
- data/lib/jopenssl23/openssl/pkey.rb +22 -34
- data/lib/jopenssl23/openssl/ssl.rb +210 -125
- data/lib/jopenssl23/openssl/x509.rb +76 -1
- data/lib/jopenssl23/openssl.rb +1 -1
- data/lib/openssl/bn.rb +1 -3
- data/lib/openssl/buffering.rb +1 -3
- data/lib/openssl/cipher.rb +1 -3
- data/lib/openssl/config.rb +10 -4
- data/lib/openssl/digest.rb +1 -3
- data/lib/openssl/pkcs12.rb +1 -3
- data/lib/openssl/pkcs5.rb +22 -0
- data/lib/openssl/ssl-internal.rb +1 -3
- data/lib/openssl/ssl.rb +1 -3
- data/lib/openssl/x509-internal.rb +1 -3
- data/lib/openssl/x509.rb +1 -3
- data/lib/org/bouncycastle/bcpkix-jdk15on/1.68/bcpkix-jdk15on-1.68.jar +0 -0
- data/lib/org/bouncycastle/bcprov-jdk15on/1.68/bcprov-jdk15on-1.68.jar +0 -0
- data/lib/org/bouncycastle/bctls-jdk15on/1.68/bctls-jdk15on-1.68.jar +0 -0
- data/pom.xml +100 -322
- metadata +19 -75
- data/integration/1.47/pom.xml +0 -15
- data/integration/1.48/pom.xml +0 -15
- data/integration/1.49/pom.xml +0 -15
- data/integration/1.50/pom.xml +0 -15
- data/integration/Mavenfile +0 -57
- data/integration/pom.xml +0 -122
- data/lib/jopenssl18/openssl/bn.rb +0 -25
- data/lib/jopenssl18/openssl/buffering.rb +0 -241
- data/lib/jopenssl18/openssl/cipher.rb +0 -28
- data/lib/jopenssl18/openssl/config.rb +0 -316
- data/lib/jopenssl18/openssl/digest.rb +0 -32
- data/lib/jopenssl18/openssl/pkcs7.rb +0 -25
- data/lib/jopenssl18/openssl/ssl-internal.rb +0 -112
- data/lib/jopenssl18/openssl/ssl.rb +0 -1
- data/lib/jopenssl18/openssl/x509-internal.rb +0 -110
- data/lib/jopenssl18/openssl/x509.rb +0 -1
- data/lib/jopenssl18/openssl.rb +0 -23
- data/lib/jopenssl24.rb +0 -112
- data/lib/openssl/pkcs7.rb +0 -5
- data/lib/org/bouncycastle/bcpkix-jdk15on/1.56/bcpkix-jdk15on-1.56.jar +0 -0
- data/lib/org/bouncycastle/bcprov-jdk15on/1.56/bcprov-jdk15on-1.56.jar +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5556d31972e0e74ffc7e20e662b8e1666cce85b0
|
4
|
+
data.tar.gz: '0439ad0115cdb8ebef38c1a10a514ee4dc48d58c'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fcd2ba1d6d0e2c43a9f30250c441590a1d1490b271c09ff8f08f014daf48c4f6ad77de55a59d7dc33bef17f93f3b9bdd6fa613418db9a6b7736fe95b6bce2865
|
7
|
+
data.tar.gz: 9dbb39508d7f2685c428605493984908c506251e4fcaf15c2dafb3f4ead92e5a556de3687ae273ca602e555cf8c9a8329b697c68a5e9da1794f0b66cf6f1b486
|
data/History.md
CHANGED
@@ -1,10 +1,141 @@
|
|
1
|
+
## 0.10.7
|
2
|
+
|
3
|
+
* [feat] upgrade BC library to 1.68
|
4
|
+
* [fix] SSLContext#ciphers= (fixes #221 and jruby/jruby#3100) (#222)
|
5
|
+
* [fix] Java::JavaLang::StringIndexOutOfBoundsException on ctx.cipher=[] (fixes #220) (#223)
|
6
|
+
* [fix] SSLContext#ciphers= compatibility (fixes #223) (#220)
|
7
|
+
* [fix] Match OpenSSL::X509::Name.hash implementation with Ruby (#216, #218)
|
8
|
+
* [fix] OpenSSL::SSL::SSLContext#min_version= failure (#215)
|
9
|
+
* [fix] adds OpenSSL::Cipher#iv_len= setter (#208)
|
10
|
+
|
11
|
+
## 0.10.6 (yanked)
|
12
|
+
|
13
|
+
Due several regressions please update to version 0.10.7 or higher.
|
14
|
+
|
15
|
+
## 0.10.5
|
16
|
+
|
17
|
+
* [fix] EC key sign/verify (#193)
|
18
|
+
* [feat] upgrade BC library to 1.65
|
19
|
+
* [refactor] clean security helpers to avoid reflection (#197)
|
20
|
+
* Just use normal getInstance to get KeyFactory (fixes #197)
|
21
|
+
* Allow multiple Certificates with the same SubjectDN in the store (#198)
|
22
|
+
* Try direct path for MessageDigest before invasive path (#194)
|
23
|
+
(relates to jruby/jruby#6098)
|
24
|
+
* [refactor] avoid NativeException usage (jruby/jruby#5646)
|
25
|
+
|
26
|
+
## 0.10.4
|
27
|
+
|
28
|
+
* Use CertificateFactory.getInstance rather than reflection
|
29
|
+
eliminates one of the module warnings we have been seeing (#161)
|
30
|
+
|
31
|
+
## 0.10.3
|
32
|
+
|
33
|
+
* [fix] implement (missing) PKey::DSA#params
|
34
|
+
* [fix] authorityKeyIdentifier ext (general-name) value
|
35
|
+
* [fix] authority keyid extension's :always part optional (#174)
|
36
|
+
* [fix] work-around for not setting certificate serial
|
37
|
+
raise a more friendly error (jruby/jruby#1691)
|
38
|
+
* [fix] PKey.read not parsing RSA pub-key (#176)
|
39
|
+
* [feat] support reading DSA (public key) in full DER
|
40
|
+
* [fix] RSA key DER format to closely follow OpenSSL
|
41
|
+
* [fix] add missing ASN1 factory methods (Null, EndOfContent)
|
42
|
+
* [fix] support getting password from block for PKeys
|
43
|
+
* [fix] incorrect ASN.1 for wrapped Integer type
|
44
|
+
* [fix] correct public key for subjectKeyIdentifier ext (#173)
|
45
|
+
* [fix] invalid Cert#sign handling -> raise (instead of ClassCastException)
|
46
|
+
* [feat] more TLS (GCM) ciphers - supported on Java 8+
|
47
|
+
* [feat] add ECDHE-RSA-AES128-GCM-SHA256 as supported cipher (#185)
|
48
|
+
* [feat] add support for ECDHE-RSA-AES256-GCM-SHA384 (#187)
|
49
|
+
* [fix] try hard not to fail on unkown oids (OpenSSL::X509::Certificate#to_text)
|
50
|
+
* update Bouncy-Castle to 1.62 (and handle supported BC compatibility)
|
51
|
+
|
52
|
+
## 0.10.2
|
53
|
+
|
54
|
+
* update Bouncy-Castle to 1.61 (and handle supported BC compatibility)
|
55
|
+
* [fix] avoid NPE when CRL fails to parse (invalid str) (jruby/jruby#5619)
|
56
|
+
* hide (deprecated) Jopenssl constant
|
57
|
+
* default OpenSSL.warn to warnings-enabled flag
|
58
|
+
* only un-restrict jce when its restricted
|
59
|
+
* OpenSSL::Cipher#update additional buffer argument (#170) (jruby/jruby#5242)
|
60
|
+
|
61
|
+
## 0.10.1
|
62
|
+
|
63
|
+
* loading JOpenSSL's native ext part the JRuby 9.2 (internal) way
|
64
|
+
* avoid, once again, installing BC provider on boot (due OCSP support)
|
65
|
+
* [feat] support OpenSSL::KDF as a (semi) OpenSSL::PKCS5 replacement
|
66
|
+
* rename ugly-sh "Jopenssl" constant to **JOpenSSL**
|
67
|
+
* support PKCS7#decrypt with 1 argument (pkey only - without certificate)
|
68
|
+
* undo some of the call-sites in SSLSocket - account for sub-classes (#165)
|
69
|
+
* follow-up to provide == for X.509 types (like C-OpenSSL does in 2.1)
|
70
|
+
* validate iter parameter on Cipher#pkcs5_keyivgen (since OpenSSL 2.0.8)
|
71
|
+
* remove openssl/pkcs7.rb -> since 1.8 no longer supported
|
72
|
+
|
73
|
+
## 0.10.0
|
74
|
+
|
75
|
+
**NOTE:** dropped support for anything below ~ JRuby 1.7.20
|
76
|
+
|
77
|
+
* drop support for Java 1.6 and compile using Java 7
|
78
|
+
* improve java.version detection for Java 9/10 (pre-releases)
|
79
|
+
* subject alt name parsing fixes (#140) - thanks @roadrunner2
|
80
|
+
* fix loading of Subject/Issuer-Alt-Name extensions. (#144)
|
81
|
+
* normalize all constants in CipherStrings as public (#146)
|
82
|
+
* upgrade BC to **1.59** and dropped support for BC < 1.55
|
83
|
+
* include BC's JSSE provider as we're planning on using it, eventually
|
84
|
+
* setup OpenSSL::ExtConfig emulation - mostly (conservative) guesses
|
85
|
+
* at last, do BN comparison `==` vs `eql?` properly - just like MRI
|
86
|
+
* get `BN.new("...", 0)` working as OpenSSL does - using MPI format
|
87
|
+
* allow for SSLContext#dup to work (copy-ing Ruby level i-vars only)
|
88
|
+
* fix signature-alg to default to NULL and report it as 0.0 (like MRI)
|
89
|
+
* account for ASN1Integers when transforming issuer serial numbers
|
90
|
+
to_text in AuthorityKeyIdentifier extensions (#147) - thanks @lampad
|
91
|
+
* copy bytes since it might be a shared (unsafe) buffer (#150)
|
92
|
+
* don't use padding for streaming cipher modes (#155) - thanks @dgolombek
|
93
|
+
* avoid ByteList#length() usage for forward (JRuby 9.2) compatibility
|
94
|
+
* prepare for using BC's JSSE implementation as an SSL support backend
|
95
|
+
allow to set SSL provider name (-Djruby.openssl.ssl.provider=...)
|
96
|
+
|
97
|
+
## 0.9.21
|
98
|
+
|
99
|
+
* adjust X.509 value handling to parse subjectAltName recursively (#134)
|
100
|
+
* SKI expected to be always octet wrapped - do not check for length (#131)
|
101
|
+
* respect jruby.preferred.prng and use/tune its SecureRandom defaults
|
102
|
+
trying to avoid BC generator's constant attempts for seeding itself
|
103
|
+
as an attempt to 'fix' low-entropy systems wating for */dev/random*
|
104
|
+
* Random#add; Random#egd shall return true on JVM
|
105
|
+
* move "DEFAULT" special case handling to match OpenSSL behaviour (#136)
|
106
|
+
(jruby/jruby#2193)
|
107
|
+
* If data is not provided, extract it from the PKCS7 instance (#132)
|
108
|
+
* Add cipher suite strings for IBM JRE (#126) - thanks @ysohda
|
109
|
+
* use the helper to printStackTrace (no System.err printing by default)
|
110
|
+
* add OCSP support (#124) - thanks so very much @lampad
|
111
|
+
* add support for renegotiation_cb on SSLContext (#121) - thanks @lampad
|
112
|
+
|
113
|
+
## 0.9.20
|
114
|
+
|
115
|
+
* upgrade Bouncy-Castle to 1.56 http://bouncycastle.org/releasenotes.html
|
116
|
+
(additional security and robustness with 10 CVEs submitted as a result)
|
117
|
+
* add a dummy SSLContext#security_level= implementation
|
118
|
+
* no dup-ing for SSLContext/SSLSocket and X509 Store/StoreContext
|
119
|
+
* implement PKey initialize_copy (dup-ing)
|
120
|
+
* digest can be passed in as a String on PKey#sign/verify
|
121
|
+
* DSA+SHA1 is actually a supported algorithm
|
122
|
+
* reset signed-request -> sub-sequent req.verify will work correctly
|
123
|
+
* allow for digest name to be passed into Cert#sign
|
124
|
+
* be less fatal on Java 9
|
125
|
+
won't attempt reflective SPIs when accessibility checks fail!
|
126
|
+
* remove obsolete (deprecated) renamed classes
|
127
|
+
* verify correct WaitReadable is raised on connect_nonblock (jruby/jruby#1716)
|
128
|
+
* non-connected ssl socket raises EPIPE on connect_nonblock (MRI compat)
|
129
|
+
* fine to close a SSLSocket which is not-yet-connected (like in MRI)
|
130
|
+
* fix NPE when reading private keys (with passwd) (jruby/jruby#1784)
|
131
|
+
|
1
132
|
## 0.9.19
|
2
133
|
|
3
134
|
* re-use secure random from thread-context on SSL context initialization
|
4
135
|
* preliminary OpenSSL 1.1 (Ruby 2.4) compatibility bits (#112)
|
5
136
|
* try using thread-shared secure random gen (in PKey-s) where possible
|
6
137
|
* implement PKeyDSA#syssign and PKeyDSA#sysverify methods
|
7
|
-
* avoid (unnecessary) byte[] copies in PKey#sign/verify
|
138
|
+
* avoid (unnecessary) byte[] copies in PKey#sign/verify
|
8
139
|
* fix ClassCastException error in X509Store.verify (#113)
|
9
140
|
* align BH#hash with eql? (+ equals/hashCode on Java)
|
10
141
|
|
data/LICENSE.txt
CHANGED
@@ -18,7 +18,7 @@ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
18
18
|
DEALINGS IN THE SOFTWARE.
|
19
19
|
|
20
20
|
Copyright (C) 2007-2009 Ola Bini <ola.bini@gmail.com>
|
21
|
-
Copyright (C) 2009-
|
21
|
+
Copyright (C) 2009-2018 The JRuby Team
|
22
22
|
|
23
23
|
Alternatively, the contents of this file may be used under the terms of
|
24
24
|
either of the GNU General Public License Version 2 or later (the "GPL"),
|
data/Mavenfile
CHANGED
@@ -2,15 +2,12 @@
|
|
2
2
|
|
3
3
|
gemspec :jar => 'jopenssl', :include_jars => true
|
4
4
|
|
5
|
-
sonatype_url = 'https://oss.sonatype.org/content/repositories/snapshots/'
|
6
|
-
snapshot_repository :id => 'sonatype', :url => sonatype_url
|
7
|
-
|
8
5
|
distribution_management do
|
9
6
|
snapshot_repository :id => :ossrh, :url => 'https://oss.sonatype.org/content/repositories/snapshots'
|
10
7
|
repository :id => :ossrh, :url => 'https://oss.sonatype.org/service/local/staging/deploy/maven2/'
|
11
8
|
end
|
12
9
|
|
13
|
-
java_target = '1.
|
10
|
+
java_target = '1.7'
|
14
11
|
gen_sources = '${basedir}/target/generated-sources' # hard-coded in AnnotationBinder
|
15
12
|
|
16
13
|
plugin( 'org.codehaus.mojo:exec-maven-plugin', '1.3.2' ) do
|
@@ -49,13 +46,14 @@ plugin( 'org.codehaus.mojo:build-helper-maven-plugin', '1.9' ) do
|
|
49
46
|
end
|
50
47
|
|
51
48
|
plugin( :compiler, '3.1',
|
52
|
-
:source =>
|
49
|
+
:source => '1.7', :target => java_target,
|
53
50
|
:encoding => 'UTF-8', :debug => true,
|
54
51
|
:showWarnings => true, :showDeprecation => true,
|
52
|
+
:excludes => [ 'module-info.java' ],
|
53
|
+
#:jdkToolchain => { :version => '[1.7,11)' },
|
55
54
|
|
56
55
|
:generatedSourcesDirectory => gen_sources,
|
57
|
-
:annotationProcessors => [ 'org.jruby.anno.AnnotationBinder' ]
|
58
|
-
:compilerArgs => [ '-XDignore.symbol.file=true' ] ) do
|
56
|
+
:annotationProcessors => [ 'org.jruby.anno.AnnotationBinder' ]) do
|
59
57
|
|
60
58
|
#execute_goal :compile, :id => 'annotation-binder', :phase => 'compile',
|
61
59
|
# :generatedSourcesDirectory => gen_sources, #:outputDirectory => gen_sources,
|
@@ -64,10 +62,19 @@ plugin( :compiler, '3.1',
|
|
64
62
|
# :useIncrementalCompilation => false, :fork => true, :verbose => true,
|
65
63
|
# :compilerArgs => [ '-XDignore.symbol.file=true', '-J-Dfile.encoding=UTF-8' ]
|
66
64
|
|
67
|
-
execute_goal :compile,
|
68
|
-
|
69
|
-
|
70
|
-
|
65
|
+
execute_goal :compile,
|
66
|
+
:id => 'compile-populators', :phase => 'process-classes',
|
67
|
+
:includes => [ 'org/jruby/gen/**/*.java' ],
|
68
|
+
:optimize => true,
|
69
|
+
:compilerArgs => [ '', '-XDignore.symbol.file=true' ]
|
70
|
+
end
|
71
|
+
|
72
|
+
profile 'module-info' do
|
73
|
+
activation { jdk '[9,)' }
|
74
|
+
plugin :compiler, '3.8.1',
|
75
|
+
:source => '9', :target => java_target,
|
76
|
+
:release => '9',
|
77
|
+
:includes => [ 'module-info.java' ]
|
71
78
|
end
|
72
79
|
|
73
80
|
plugin :clean do
|
@@ -80,49 +87,52 @@ plugin :clean do
|
|
80
87
|
'failOnError' => 'false' )
|
81
88
|
end
|
82
89
|
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
90
|
+
jar 'org.jruby:jruby-core', '1.7.20', :scope => :provided
|
91
|
+
jar 'junit:junit', '[4.13.1,)', :scope => :test
|
92
|
+
|
93
|
+
# 9.1.17.0 is Java 7 compatible (till supporting JRuby 1.7)
|
94
|
+
# NOTE: to build on Java 11 - installing gems fails (due old jossl) with:
|
95
|
+
# load error: jopenssl/load -- java.lang.StringIndexOutOfBoundsException
|
96
|
+
MVN_JRUBY_VERSION = ENV_JAVA['java.version'].to_i >= 9 ? '9.2.9.0' : '9.1.17.0'
|
87
97
|
|
88
98
|
jruby_plugin! :gem do
|
89
|
-
# when installing dependent gems we want to use the built in openssl
|
90
|
-
#
|
91
|
-
# we compile against jruby-core-1.7.17 and want to keep this out of
|
92
|
-
# the plugin execution here
|
99
|
+
# when installing dependent gems we want to use the built in openssl not the one from this lib directory
|
100
|
+
# we compile against jruby-core-1.7.20 and want to keep this out of the plugin execution here
|
93
101
|
execute_goal :id => 'default-initialize', :addProjectClasspath => false, :libDirectory => 'something-which-does-not-exists'
|
94
102
|
execute_goals :id => 'default-push', :skip => true
|
95
103
|
end
|
96
104
|
|
97
|
-
# we want to have the snapshots on oss.sonatype.org and the released gems
|
98
|
-
# on maven central
|
105
|
+
# we want to have the snapshots on oss.sonatype.org and the released gems on maven central
|
99
106
|
plugin :deploy, '2.8.1' do
|
100
107
|
execute_goals( :deploy, :skip => false )
|
101
108
|
end
|
102
109
|
|
103
|
-
supported_bc_versions = %w{ 1.
|
110
|
+
supported_bc_versions = %w{ 1.58 1.59 1.60 1.61 1.62 1.63 1.64 1.65 }
|
104
111
|
|
105
|
-
default_bc_version = File.expand_path('lib/jopenssl/version.rb', File.dirname(__FILE__))
|
112
|
+
default_bc_version = File.read File.expand_path('lib/jopenssl/version.rb', File.dirname(__FILE__))
|
106
113
|
default_bc_version = default_bc_version[/BOUNCY_CASTLE_VERSION\s?=\s?'(.*?)'/, 1]
|
107
114
|
|
108
|
-
properties( 'jruby.plugins.version' => '1.
|
109
|
-
'jruby.
|
115
|
+
properties( 'jruby.plugins.version' => '1.1.8',
|
116
|
+
'jruby.switches' => '-W0', # https://github.com/torquebox/jruby-maven-plugins/issues/94
|
110
117
|
'bc.versions' => default_bc_version,
|
111
118
|
'invoker.test' => '${bc.versions}',
|
112
119
|
# allow to skip all tests with -Dmaven.test.skip
|
113
120
|
'invoker.skip' => '${maven.test.skip}',
|
114
121
|
'runit.dir' => 'src/test/ruby/**/test_*.rb',
|
115
|
-
|
116
|
-
'
|
117
|
-
#
|
118
|
-
'
|
119
|
-
|
120
|
-
'
|
121
|
-
'tesla.dump.readonly' => true )
|
122
|
+
'mavengem.wagon.version' => '1.0.3', # for jruby plugin
|
123
|
+
'mavengem-wagon.version' => '1.0.3', # for polyglot-ruby
|
124
|
+
# use this version of jruby for the jruby-maven-plugins
|
125
|
+
'jruby.versions' => MVN_JRUBY_VERSION, 'jruby.version' => MVN_JRUBY_VERSION,
|
126
|
+
# dump pom.xml when running 'rmvn'
|
127
|
+
'polyglot.dump.pom' => 'pom.xml', 'polyglot.dump.readonly' => false )
|
122
128
|
|
123
129
|
# make sure we have the embedded jars in place before we run runit plugin
|
124
130
|
plugin! :dependency do
|
125
|
-
execute_goal 'copy-dependencies',
|
131
|
+
execute_goal 'copy-dependencies',
|
132
|
+
:phase => 'generate-test-resources',
|
133
|
+
:outputDirectory => '${basedir}/lib',
|
134
|
+
:useRepositoryLayout => true,
|
135
|
+
:includeGroupIds => 'org.bouncycastle'
|
126
136
|
end
|
127
137
|
|
128
138
|
jruby_plugin(:runit) { execute_goal( :test, :runitDirectory => '${runit.dir}' ) }
|
@@ -141,54 +151,24 @@ invoker_run_options = {
|
|
141
151
|
'runit.dir' => '${runit.dir}' }
|
142
152
|
}
|
143
153
|
|
144
|
-
|
145
|
-
|
146
|
-
execute_goals( :install, :run, invoker_run_options )
|
147
|
-
end
|
148
|
-
properties 'jruby.versions' => '1.6.8', 'jruby.modes' => '1.8,1.9',
|
149
|
-
'bc.versions' => supported_bc_versions.join(',')
|
150
|
-
end
|
151
|
-
|
152
|
-
profile :id => 'test-1.7.4' do
|
153
|
-
plugin :invoker, '1.8' do
|
154
|
-
execute_goals( :install, :run, invoker_run_options )
|
155
|
-
end
|
156
|
-
properties 'jruby.versions' => '1.7.4', 'jruby.modes' => '1.8,1.9',
|
157
|
-
'bc.versions' => supported_bc_versions.join(',')
|
158
|
-
end
|
159
|
-
|
160
|
-
jruby_1_7_versions = %w{ 1.7.13 1.7.15 1.7.16 1.7.18 1.7.20 1.7.22 1.7.23 }
|
161
|
-
jruby_1_7_versions += %w{ 1.7.24 1.7.25 1.7.26 }
|
162
|
-
|
163
|
-
jruby_1_7_versions.each { |version|
|
164
|
-
|
165
|
-
profile :id => "test-#{version}" do
|
166
|
-
plugin :invoker, '1.8' do
|
167
|
-
execute_goals( :install, :run, invoker_run_options )
|
168
|
-
end
|
169
|
-
properties 'jruby.versions' => version, 'jruby.modes' => '1.8,1.9,2.0',
|
170
|
-
'bc.versions' => supported_bc_versions.join(',')
|
171
|
-
end
|
172
|
-
|
173
|
-
}
|
174
|
-
|
175
|
-
jruby_9_K_versions = %w{ 9.0.1.0 9.0.5.0 9.1.0.0 9.1.1.0 9.1.2.0 9.1.5.0 }
|
154
|
+
jruby_9_K_versions = %w{ 9.0.5.0 9.1.2.0 9.1.8.0 9.1.12.0 9.1.16.0 9.1.17.0 }
|
155
|
+
jruby_9_K_versions += %w{ 9.2.0.0 9.2.5.0 9.2.6.0 9.2.7.0 9.2.8.0 9.2.9.0 }
|
176
156
|
|
177
157
|
jruby_9_K_versions.each { |version|
|
178
158
|
profile :id => "test-#{version}" do
|
179
159
|
plugin :invoker, '1.8' do
|
180
160
|
execute_goals( :install, :run, invoker_run_options )
|
181
161
|
end
|
182
|
-
|
183
|
-
|
184
|
-
properties 'jruby.version' => version, 'jruby.versions' => version,
|
162
|
+
properties 'jruby.version' => version,
|
163
|
+
'jruby.versions' => version,
|
185
164
|
'bc.versions' => supported_bc_versions.join(',')
|
186
165
|
end
|
187
166
|
}
|
188
167
|
|
189
168
|
profile :id => 'release' do
|
190
|
-
plugin :gpg, '1.
|
169
|
+
plugin :gpg, '1.6' do
|
191
170
|
execute_goal :sign, :phase => :verify
|
192
171
|
end
|
193
172
|
end
|
173
|
+
|
194
174
|
# vim: syntax=Ruby
|
data/README.md
CHANGED
@@ -16,12 +16,14 @@ the JRuby [mailing list][1] or the [bug tracker][2].
|
|
16
16
|
|
17
17
|
| JRuby-OpenSSL | JRuby compat | JVM compat | supported BC |
|
18
18
|
| ------------- |:-------------:| ----------:| ------------:|
|
19
|
-
| 0.9.6 | 1.6.8-9.0.2 |
|
20
|
-
| 0.9.12 | 1.6.8-9.0.5 |
|
21
|
-
| 0.9.13 | 1.6.8-9.1.2 |
|
22
|
-
| 0.9.14 | 1.6.8-9.1.5 |
|
23
|
-
| 0.9.17 | 1.6.8-9.1.5 |
|
24
|
-
|
|
19
|
+
| 0.9.6 | 1.6.8-9.0.2 | Java 6-8 | 1.47-1.50 |
|
20
|
+
| 0.9.12 | 1.6.8-9.0.5 | Java 6-8 | 1.47-1.52 |
|
21
|
+
| 0.9.13 | 1.6.8-9.1.2 | Java 6-8 | 1.49-1.52 |
|
22
|
+
| 0.9.14 | 1.6.8-9.1.5 | Java 6-8 | 1.49-1.54 |
|
23
|
+
| 0.9.17 | 1.6.8-9.1.5 | Java 6-8 | 1.50-1.54 |
|
24
|
+
| ~>0.9.18 | 1.6.8-9.1.x | Java 6-8 | 1.50-1.55 |
|
25
|
+
| 0.10.0 | 1.7.20-9.2.x | Java 7-10 | 1.55-1.59 |
|
26
|
+
| 0.10.3 | 1.7.20-9.2.x | Java 7-11 | 1.56-1.62 |
|
25
27
|
|
26
28
|
NOTE: backwards JRuby compatibility was not handled for versions <= **0.9.6**
|
27
29
|
|
@@ -41,30 +43,26 @@ any of OpenSSL's C code, only Ruby parts (*.rb) are the same as in MRI's OpenSSL
|
|
41
43
|
mvn test
|
42
44
|
|
43
45
|
will run (junit as well as ruby) tests and a some ruby tests against the default
|
44
|
-
jruby version. to pick a different version
|
46
|
+
jruby version. to pick a different JRuby version run
|
45
47
|
|
46
|
-
mvn test -Djruby.versions=
|
48
|
+
mvn test -Djruby.versions=9.2.8.0
|
47
49
|
|
48
50
|
for running integration-tests the gem will be first installed and then the same
|
49
51
|
tests run for each possible bouncy-castle version (see [listing][3]), run with
|
50
52
|
|
51
|
-
mvn verify -P test-9.
|
53
|
+
mvn verify -P test-9.2.9.0,test-9.1.17.0
|
52
54
|
|
53
55
|
or pick a bouncy-castle version
|
54
56
|
|
55
|
-
mvn verify -P test-
|
56
|
-
|
57
|
-
or simply be more picky
|
58
|
-
|
59
|
-
mvn verify -P test-1.7.4 -Dbc.versions=1.49 -Djruby.modes=1.9
|
57
|
+
mvn verify -P test-9.2.9.0 -Dbc.versions=1.60
|
60
58
|
|
61
59
|
NOTE: you can pick any jruby version which is on [central][4] or on [ci.jruby][5]
|
62
60
|
|
63
61
|
## License
|
64
62
|
|
65
|
-
(c) 2009-
|
63
|
+
(c) 2009-2020 JRuby distributed under EPL 1.0/GPL 2.0/LGPL 2.1
|
66
64
|
|
67
|
-
[0]: https://secure.travis-ci.org/jruby/jruby-openssl.
|
65
|
+
[0]: https://secure.travis-ci.org/jruby/jruby-openssl.svg
|
68
66
|
[1]: http://xircles.codehaus.org/projects/jruby/lists
|
69
67
|
[2]: https://github.com/jruby/jruby/issues
|
70
68
|
[3]: https://github.com/jruby/jruby-openssl/tree/master/integration
|
data/Rakefile
CHANGED
@@ -27,6 +27,10 @@ else
|
|
27
27
|
RubyMaven.exec( 'package -Dmaven.test.skip=true' )
|
28
28
|
end
|
29
29
|
end
|
30
|
+
task :test_prepare do
|
31
|
+
RubyMaven.exec( 'prepare-package -Dmaven.test.skip=true' )
|
32
|
+
RubyMaven.exec( 'test-compile' ) # separate step due -Dmaven.test.skip=true
|
33
|
+
end
|
30
34
|
end
|
31
35
|
|
32
36
|
task :build do
|
@@ -0,0 +1,71 @@
|
|
1
|
+
# frozen_string_literal: false
|
2
|
+
|
3
|
+
module OpenSSL
|
4
|
+
|
5
|
+
module PKey
|
6
|
+
|
7
|
+
class DH
|
8
|
+
|
9
|
+
def set_key(pub_key, priv_key)
|
10
|
+
self.pub_key = pub_key
|
11
|
+
self.priv_key = priv_key
|
12
|
+
self
|
13
|
+
end
|
14
|
+
|
15
|
+
def set_pqg(p, q, g)
|
16
|
+
self.p = p
|
17
|
+
if respond_to?(:q)
|
18
|
+
self.q = q
|
19
|
+
else # TODO self.q = q
|
20
|
+
OpenSSL.warn "JRuby-OpenSSL does not support setting q param on #{inspect}" if q
|
21
|
+
end
|
22
|
+
self.g = g
|
23
|
+
self
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
class DSA
|
29
|
+
|
30
|
+
def set_key(pub_key, priv_key)
|
31
|
+
self.pub_key = pub_key
|
32
|
+
self.priv_key = priv_key
|
33
|
+
self
|
34
|
+
end
|
35
|
+
|
36
|
+
def set_pqg(p, q, g)
|
37
|
+
self.p = p
|
38
|
+
self.q = q
|
39
|
+
self.g = g
|
40
|
+
self
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
class RSA
|
46
|
+
|
47
|
+
def set_key(n, e, d)
|
48
|
+
self.n = n
|
49
|
+
self.e = e
|
50
|
+
self.d = d
|
51
|
+
self
|
52
|
+
end
|
53
|
+
|
54
|
+
def set_factors(p, q)
|
55
|
+
self.p = p
|
56
|
+
self.q = q
|
57
|
+
self
|
58
|
+
end
|
59
|
+
|
60
|
+
def set_crt_params(dmp1, dmq1, iqmp)
|
61
|
+
self.dmp1 = dmp1
|
62
|
+
self.dmq1 = dmq1
|
63
|
+
self.iqmp = iqmp
|
64
|
+
self
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
data/lib/jopenssl/load.rb
CHANGED
@@ -1,41 +1,50 @@
|
|
1
|
-
warn 'Loading jruby-openssl in a non-JRuby interpreter' unless defined? JRUBY_VERSION
|
1
|
+
warn 'Loading jruby-openssl gem in a non-JRuby interpreter' unless defined? JRUBY_VERSION
|
2
2
|
|
3
|
-
require 'java'
|
4
3
|
require 'jopenssl/version'
|
5
4
|
|
5
|
+
warn "JRuby #{JRUBY_VERSION} is not supported by jruby-openssl #{JOpenSSL::VERSION}" if JRUBY_VERSION < '1.7.20'
|
6
|
+
|
6
7
|
# NOTE: assuming user does pull in BC .jars from somewhere else on the CP
|
7
8
|
unless ENV_JAVA['jruby.openssl.load.jars'].eql?('false')
|
8
|
-
version =
|
9
|
+
version = JOpenSSL::BOUNCY_CASTLE_VERSION
|
9
10
|
bc_jars = nil
|
10
11
|
begin
|
11
12
|
require 'jar-dependencies'
|
12
13
|
# if we have jar-dependencies we let it track the jars
|
13
|
-
require_jar( 'org.bouncycastle', 'bcpkix-jdk15on', version )
|
14
14
|
require_jar( 'org.bouncycastle', 'bcprov-jdk15on', version )
|
15
|
+
require_jar( 'org.bouncycastle', 'bcpkix-jdk15on', version )
|
16
|
+
require_jar( 'org.bouncycastle', 'bctls-jdk15on', version )
|
15
17
|
bc_jars = true
|
16
18
|
rescue LoadError
|
19
|
+
bc_jars = false
|
17
20
|
end
|
18
21
|
unless bc_jars
|
19
|
-
load "org/bouncycastle/bcpkix-jdk15on/#{version}/bcpkix-jdk15on-#{version}.jar"
|
20
22
|
load "org/bouncycastle/bcprov-jdk15on/#{version}/bcprov-jdk15on-#{version}.jar"
|
23
|
+
load "org/bouncycastle/bcpkix-jdk15on/#{version}/bcpkix-jdk15on-#{version}.jar"
|
24
|
+
load "org/bouncycastle/bctls-jdk15on/#{version}/bctls-jdk15on-#{version}.jar"
|
21
25
|
end
|
22
26
|
end
|
23
27
|
|
24
|
-
require 'jruby'
|
25
28
|
require 'jopenssl.jar'
|
26
|
-
|
29
|
+
|
30
|
+
if JRuby::Util.respond_to?(:load_ext) # JRuby 9.2
|
31
|
+
JRuby::Util.load_ext('org.jruby.ext.openssl.OpenSSL')
|
32
|
+
else; require 'jruby'
|
33
|
+
org.jruby.ext.openssl.OpenSSL.load(JRuby.runtime)
|
34
|
+
end
|
27
35
|
|
28
36
|
if RUBY_VERSION > '2.3'
|
29
37
|
load 'jopenssl23/openssl.rb'
|
30
|
-
load '
|
38
|
+
load 'jopenssl/_compat23.rb'
|
31
39
|
elsif RUBY_VERSION > '2.2'
|
32
40
|
load 'jopenssl22/openssl.rb'
|
33
41
|
elsif RUBY_VERSION > '2.1'
|
34
42
|
load 'jopenssl21/openssl.rb'
|
35
|
-
elsif RUBY_VERSION > '1.9'
|
36
|
-
load 'jopenssl19/openssl.rb'
|
37
43
|
else
|
38
|
-
load '
|
44
|
+
load 'jopenssl19/openssl.rb'
|
39
45
|
end
|
40
46
|
|
41
|
-
|
47
|
+
module OpenSSL
|
48
|
+
autoload :Config, 'openssl/config' unless const_defined?(:Config, false)
|
49
|
+
autoload :PKCS12, 'openssl/pkcs12'
|
50
|
+
end
|
data/lib/jopenssl/version.rb
CHANGED
@@ -1,11 +1,9 @@
|
|
1
|
-
module
|
2
|
-
VERSION = '0.
|
3
|
-
BOUNCY_CASTLE_VERSION = '1.
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
BOUNCY_CASTLE_VERSION = Jopenssl::BOUNCY_CASTLE_VERSION
|
10
|
-
end
|
1
|
+
module JOpenSSL
|
2
|
+
VERSION = '0.10.7'
|
3
|
+
BOUNCY_CASTLE_VERSION = '1.68'
|
4
|
+
end
|
5
|
+
|
6
|
+
Object.class_eval do
|
7
|
+
Jopenssl = JOpenSSL
|
8
|
+
private_constant :Jopenssl if respond_to?(:private_constant)
|
11
9
|
end
|
data/lib/jopenssl.jar
CHANGED
Binary file
|