jruby-openssl-maven 0.7.4.1
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.
- data/History.txt +171 -0
- data/License.txt +30 -0
- data/Manifest.txt +115 -0
- data/README.txt +13 -0
- data/Rakefile +79 -0
- data/lib/jopenssl.jar +0 -0
- data/lib/jopenssl/version.rb +5 -0
- data/lib/openssl.rb +76 -0
- data/lib/openssl/bn.rb +35 -0
- data/lib/openssl/buffering.rb +239 -0
- data/lib/openssl/cipher.rb +65 -0
- data/lib/openssl/config.rb +316 -0
- data/lib/openssl/digest.rb +61 -0
- data/lib/openssl/dummy.rb +33 -0
- data/lib/openssl/dummyssl.rb +14 -0
- data/lib/openssl/pkcs7.rb +25 -0
- data/lib/openssl/ssl.rb +179 -0
- data/lib/openssl/x509.rb +154 -0
- data/test/cert_with_ec_pk.cer +27 -0
- data/test/fixture/ca-bundle.crt +2794 -0
- data/test/fixture/ca_path/72fa7371.0 +19 -0
- data/test/fixture/ca_path/verisign.pem +19 -0
- data/test/fixture/cacert.pem +23 -0
- data/test/fixture/cert_localhost.pem +19 -0
- data/test/fixture/common.pem +48 -0
- data/test/fixture/imaps/cacert.pem +60 -0
- data/test/fixture/imaps/server.crt +61 -0
- data/test/fixture/imaps/server.key +15 -0
- data/test/fixture/key_then_cert.pem +34 -0
- data/test/fixture/keypair.pem +27 -0
- data/test/fixture/localhost_keypair.pem +18 -0
- data/test/fixture/max.pem +29 -0
- data/test/fixture/purpose/b70a5bc1.0 +24 -0
- data/test/fixture/purpose/ca/PASSWD_OF_CA_KEY_IS_1234 +0 -0
- data/test/fixture/purpose/ca/ca_config.rb +37 -0
- data/test/fixture/purpose/ca/cacert.pem +24 -0
- data/test/fixture/purpose/ca/newcerts/2_cert.pem +19 -0
- data/test/fixture/purpose/ca/newcerts/3_cert.pem +19 -0
- data/test/fixture/purpose/ca/private/cakeypair.pem +30 -0
- data/test/fixture/purpose/ca/serial +1 -0
- data/test/fixture/purpose/cacert.pem +24 -0
- data/test/fixture/purpose/scripts/gen_cert.rb +127 -0
- data/test/fixture/purpose/scripts/gen_csr.rb +50 -0
- data/test/fixture/purpose/scripts/init_ca.rb +66 -0
- data/test/fixture/purpose/sslclient.pem +19 -0
- data/test/fixture/purpose/sslclient/csr.pem +10 -0
- data/test/fixture/purpose/sslclient/keypair.pem +15 -0
- data/test/fixture/purpose/sslclient/sslclient.pem +19 -0
- data/test/fixture/purpose/sslserver.pem +19 -0
- data/test/fixture/purpose/sslserver/csr.pem +10 -0
- data/test/fixture/purpose/sslserver/keypair.pem +15 -0
- data/test/fixture/purpose/sslserver/sslserver.pem +19 -0
- data/test/fixture/selfcert.pem +23 -0
- data/test/fixture/verisign.pem +19 -0
- data/test/fixture/verisign_c3.pem +14 -0
- data/test/java/pkcs7_mime_enveloped.message +19 -0
- data/test/java/pkcs7_mime_signed.message +30 -0
- data/test/java/pkcs7_multipart_signed.message +45 -0
- data/test/java/test_java_attribute.rb +25 -0
- data/test/java/test_java_bio.rb +42 -0
- data/test/java/test_java_mime.rb +173 -0
- data/test/java/test_java_pkcs7.rb +772 -0
- data/test/java/test_java_smime.rb +177 -0
- data/test/openssl/ssl_server.rb +99 -0
- data/test/openssl/test_asn1.rb +197 -0
- data/test/openssl/test_cipher.rb +193 -0
- data/test/openssl/test_config.rb +290 -0
- data/test/openssl/test_digest.rb +88 -0
- data/test/openssl/test_ec.rb +128 -0
- data/test/openssl/test_hmac.rb +46 -0
- data/test/openssl/test_ns_spki.rb +59 -0
- data/test/openssl/test_pair.rb +141 -0
- data/test/openssl/test_pkcs7.rb +489 -0
- data/test/openssl/test_pkey_rsa.rb +49 -0
- data/test/openssl/test_ssl.rb +1035 -0
- data/test/openssl/test_x509cert.rb +277 -0
- data/test/openssl/test_x509crl.rb +253 -0
- data/test/openssl/test_x509ext.rb +99 -0
- data/test/openssl/test_x509name.rb +290 -0
- data/test/openssl/test_x509req.rb +195 -0
- data/test/openssl/test_x509store.rb +246 -0
- data/test/openssl/utils.rb +144 -0
- data/test/ref/a.out +0 -0
- data/test/ref/compile.rb +8 -0
- data/test/ref/pkcs1 +0 -0
- data/test/ref/pkcs1.c +21 -0
- data/test/test_all.rb +1 -0
- data/test/test_certificate.rb +123 -0
- data/test/test_cipher.rb +197 -0
- data/test/test_imaps.rb +107 -0
- data/test/test_integration.rb +144 -0
- data/test/test_java.rb +98 -0
- data/test/test_openssl.rb +4 -0
- data/test/test_parse_certificate.rb +27 -0
- data/test/test_pkcs7.rb +40 -0
- data/test/test_pkey.rb +204 -0
- data/test/test_ssl.rb +97 -0
- data/test/test_x509store.rb +160 -0
- data/test/ut_eof.rb +128 -0
- metadata +161 -0
data/History.txt
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
== 0.7.4
|
|
2
|
+
|
|
3
|
+
- JRUBY-5519: Avoid String encoding dependency in DER loading. PEM loading failed on JRuby 1.6.x. Fixed.
|
|
4
|
+
- JRUBY-5510: Add debug information to released jar
|
|
5
|
+
- JRUBY-5478: Update bouncycastle jars to the latest version. (1.46)
|
|
6
|
+
|
|
7
|
+
== 0.7.3
|
|
8
|
+
|
|
9
|
+
- JRUBY-5200: Net::IMAP + SSL(imaps) login could hang. Fixed.
|
|
10
|
+
- JRUBY-5253: Allow to load the certificate file which includes private
|
|
11
|
+
key for activemarchant compatibility.
|
|
12
|
+
- JRUBY-5267: Added SSL socket error-checks to avoid busy loop under an
|
|
13
|
+
unknown condition.
|
|
14
|
+
- JRUBY-5316: Improvements for J9's IBMJCE support. Now all testcases
|
|
15
|
+
pass on J9 JDK 6.
|
|
16
|
+
|
|
17
|
+
== 0.7.2
|
|
18
|
+
|
|
19
|
+
- JRUBY-5126: Ignore Cipher#reset and Cipher#iv= when it's a stream
|
|
20
|
+
cipher (Net::SSH compatibility)
|
|
21
|
+
- JRUBY-5125: let Cipher#name for 'rc4' to be 'RC4' (Net::SSH
|
|
22
|
+
compatibility)
|
|
23
|
+
- JRUBY-5096: Fixed inconsistent Certificate verification behavior
|
|
24
|
+
- JRUBY-5060: Avoid NPE from to_pem for empty X509 Objects
|
|
25
|
+
- JRUBY-5059: SSLSocket ignores Timeout (Fixed)
|
|
26
|
+
- JRUBY-4965: implemented OpenSSL::Config
|
|
27
|
+
- JRUBY-5023: make Certificate#signature_algorithm return correct algo
|
|
28
|
+
name; "sha1WithRSAEncryption" instead of "SHA1"
|
|
29
|
+
- JRUBY-5024: let HMAC.new accept a String as a digest name
|
|
30
|
+
- JRUBY-5018: SSLSocket holds selectors, keys, preventing quick
|
|
31
|
+
cleanup of resources when dereferenced
|
|
32
|
+
|
|
33
|
+
== 0.7.1
|
|
34
|
+
|
|
35
|
+
- NOTE: Now BouncyCastle jars has moved out to its own gem
|
|
36
|
+
"bouncy-castle-java" (http://rubygems.org/gems/bouncy-castle-java).
|
|
37
|
+
You don't need to care about it because "jruby-openssl" gem depends
|
|
38
|
+
on it from now on.
|
|
39
|
+
|
|
40
|
+
=== SSL bugfix
|
|
41
|
+
|
|
42
|
+
- JRUBY-4826 net/https client possibly raises "rbuf_fill': End of file
|
|
43
|
+
reached (EOFError)" for HTTP chunked read.
|
|
44
|
+
|
|
45
|
+
=== Misc
|
|
46
|
+
|
|
47
|
+
- JRUBY-4900: Set proper String to OpenSSL::OPENSSL_VERSION. Make sure
|
|
48
|
+
it's not an OpenSSL artifact: "OpenSSL 0.9.8b 04 May 2006
|
|
49
|
+
(JRuby-OpenSSL fake)" -> "jruby-ossl 0.7.1"
|
|
50
|
+
- JRUBY-4975: Moving BouncyCastle jars out to its own gem.
|
|
51
|
+
|
|
52
|
+
== 0.7
|
|
53
|
+
|
|
54
|
+
- Follow MRI 1.8.7 openssl API changes
|
|
55
|
+
- Fixes so that jruby-openssl can run on appengine
|
|
56
|
+
- Many bug and compatibility fixes, see below.
|
|
57
|
+
- This is the last release that will be compatible with JRuby 1.4.x.
|
|
58
|
+
- Compatibility issues
|
|
59
|
+
-- JRUBY-4342: Follow ruby-openssl of CRuby 1.8.7.
|
|
60
|
+
-- JRUBY-4346: Sync tests with tests for ruby-openssl of CRuby 1.8.7.
|
|
61
|
+
-- JRUBY-4444: OpenSSL crash running RubyGems tests
|
|
62
|
+
-- JRUBY-4075: Net::SSH gives OpenSSL::Cipher::CipherError "No message available"
|
|
63
|
+
-- JRUBY-4076: Net::SSH padding error using 3des-cbc on Solaris
|
|
64
|
+
-- JRUBY-4541: jruby-openssl doesn't load on App Engine.
|
|
65
|
+
-- JRUBY-4077: Net::SSH "all authorization methods failed" Solaris -> Solaris
|
|
66
|
+
-- JRUBY-4535: Issues with the BouncyCastle provider
|
|
67
|
+
-- JRUBY-4510: JRuby-OpenSSL crashes when JCE fails a initialise bcprov
|
|
68
|
+
-- JRUBY-4343: Update BouncyCastle jar to upstream version; jdk14-139 -> jdk15-144
|
|
69
|
+
- Cipher issues
|
|
70
|
+
-- JRUBY-4012: Initialization vector length handled differently than in MRI (longer IV sequence are trimmed to fit the required)
|
|
71
|
+
-- JRUBY-4473: Implemented DSA key generation
|
|
72
|
+
-- JRUBY-4472: Cipher does not support RC4 and CAST
|
|
73
|
+
-- JRUBY-4577: InvalidParameterException 'Wrong keysize: must be equal to 112 or 168' for DES3 + SunJCE
|
|
74
|
+
- SSL and X.509(PKIX) issues
|
|
75
|
+
-- JRUBY-4384: TCP socket connection causes busy loop of SSL server
|
|
76
|
+
-- JRUBY-4370: Implement SSLContext#ciphers
|
|
77
|
+
-- JRUBY-4688: SSLContext#ciphers does not accept 'DEFAULT'
|
|
78
|
+
-- JRUBY-4357: SSLContext#{setup,ssl_version=} are not implemented
|
|
79
|
+
-- JRUBY-4397: SSLContext#extra_chain_cert and SSLContext#client_ca
|
|
80
|
+
-- JRUBY-4684: SSLContext#verify_depth is ignored
|
|
81
|
+
-- JRUBY-4398: SSLContext#options does not affect to SSL sessions
|
|
82
|
+
-- JRUBY-4360: Implement SSLSocket#verify_result and dependents
|
|
83
|
+
-- JRUBY-3829: SSLSocket#read should clear given buffer before concatenating (ByteBuffer.java:328:in `allocate': java.lang.IllegalArgumentException when returning SOAP queries over a certain size)
|
|
84
|
+
-- JRUBY-4686: SSLSocket can drop last chunk of data just before inbound channel close
|
|
85
|
+
-- JRUBY-4369: X509Store#verify_callback is not called
|
|
86
|
+
-- JRUBY-4409: OpenSSL::X509::Store#add_file corrupts when it includes certificates which have the same subject (problem with ruby-openid-apps-discovery (github jruby-openssl issue #2))
|
|
87
|
+
-- JRUBY-4333: PKCS#8 formatted privkey read
|
|
88
|
+
-- JRUBY-4454: Loading Key file as a Certificate causes NPE
|
|
89
|
+
-- JRUBY-4455: calling X509::Certificate#sign for the Certificate initialized from PEM causes IllegalStateException
|
|
90
|
+
- PKCS#7 issues
|
|
91
|
+
-- JRUBY-4379: PKCS7#sign failed for DES3 cipher algorithm
|
|
92
|
+
-- JRUBY-4428: Allow to use DES-EDE3-CBC in PKCS#7 w/o the Policy Files (rake test doesn't finish on JDK5 w/o policy files update)
|
|
93
|
+
- Misc
|
|
94
|
+
-- JRUBY-4574: jruby-openssl deprecation warning cleanup
|
|
95
|
+
-- JRUBY-4591: jruby-1.4 support
|
|
96
|
+
|
|
97
|
+
== 0.6
|
|
98
|
+
|
|
99
|
+
- This is a recommended upgrade to jruby-openssl. A security problem
|
|
100
|
+
involving peer certificate verification was found where failed
|
|
101
|
+
verification silently did nothing, making affected applications
|
|
102
|
+
vulnerable to attackers. Attackers could lead a client application
|
|
103
|
+
to believe that a secure connection to a rogue SSL server is
|
|
104
|
+
legitimate. Attackers could also penetrate client-validated SSL
|
|
105
|
+
server applications with a dummy certificate. Your application would
|
|
106
|
+
be vulnerable if you're using the 'net/https' library with
|
|
107
|
+
OpenSSL::SSL::VERIFY_PEER mode and any version of jruby-openssl
|
|
108
|
+
prior to 0.6. Thanks to NaHi (NAKAMURA Hiroshi) for finding the
|
|
109
|
+
problem and providing the fix. See
|
|
110
|
+
http://www.jruby.org/2009/12/07/vulnerability-in-jruby-openssl.html
|
|
111
|
+
for details.
|
|
112
|
+
- This release addresses CVE-2009-4123 which was reserved for the
|
|
113
|
+
above vulnerability.
|
|
114
|
+
- Many fixes from NaHi, including issues related to certificate
|
|
115
|
+
verification and certificate store purpose verification.
|
|
116
|
+
- implement OpenSSL::X509::Store#set_default_paths
|
|
117
|
+
- MRI compat. fix: OpenSSL::X509::Store#add_file
|
|
118
|
+
- Fix nsCertType handling.
|
|
119
|
+
- Fix Cipher#key_len for DES-EDE3: 16 should be 24.
|
|
120
|
+
- Modified test expectations around Cipher#final.
|
|
121
|
+
- Public keys are lazily instantiated when the
|
|
122
|
+
X509::Certificate#public_key method is called (Dave Garcia)
|
|
123
|
+
|
|
124
|
+
== 0.5.2
|
|
125
|
+
|
|
126
|
+
* Multiple bugs fixed:
|
|
127
|
+
** JRUBY-3895 Could not verify server signature with net-ssh against Cygwin
|
|
128
|
+
** JRUBY-3864 jruby-openssl depends on Base64Coder from JvYAMLb
|
|
129
|
+
** JRUBY-3790 JRuby-OpenSSL test_post_connection_check is not passing
|
|
130
|
+
** JRUBY-3767 OpenSSL ssl implementation doesn't support client auth
|
|
131
|
+
** JRUBY-3673 jRuby-OpenSSL does not properly load certificate authority file
|
|
132
|
+
|
|
133
|
+
== 0.5.1
|
|
134
|
+
|
|
135
|
+
* Multiple fixes by Brice Figureau to get net/ssh working. Requires JRuby 1.3.1 to be 100%
|
|
136
|
+
* Fix by Frederic Jean for a character-decoding issue for some certificates
|
|
137
|
+
|
|
138
|
+
== 0.5
|
|
139
|
+
|
|
140
|
+
* Fixed JRUBY-3614: Unsupported HMAC algorithm (HMACSHA-256)
|
|
141
|
+
* Fixed JRUBY-3570: ActiveMerchant's AuthorizeNet Gateway throws OpenSSL Cert Validation Error, when there should be no error
|
|
142
|
+
* Fixed JRUBY-3557 Class cast exception in PKeyRSA.java
|
|
143
|
+
* Fixed JRUBY-3468 X.509 certificates: subjectKeyIdentifier corrupted
|
|
144
|
+
* Fixed JRUBY-3285 Unsupported HMAC algorithm (HMACSHA1) error when generating digest
|
|
145
|
+
* Misc code cleanup
|
|
146
|
+
|
|
147
|
+
== 0.2
|
|
148
|
+
|
|
149
|
+
- Enable remaining tests; fix a nil string issue in SSLSocket.sysread (JRUBY-1888)
|
|
150
|
+
- Fix socket buffering issue by setting socket IO sync = true
|
|
151
|
+
- Fix bad file descriptor issue caused by unnecessary close (JRUBY-2152)
|
|
152
|
+
- Fix AES key length (JRUBY-2187)
|
|
153
|
+
- Fix cipher initialization (JRUBY-1100)
|
|
154
|
+
- Now, only compatible with JRuby 1.1
|
|
155
|
+
|
|
156
|
+
== 0.1.1
|
|
157
|
+
|
|
158
|
+
- Fixed blocker issue preventing HTTPS/SSL from working (JRUBY-1222)
|
|
159
|
+
|
|
160
|
+
== 0.1
|
|
161
|
+
|
|
162
|
+
- PLEASE NOTE: This release is not compatible with JRuby releases earlier than
|
|
163
|
+
1.0.3 or 1.1b2. If you must use JRuby 1.0.2 or earlier, please install the
|
|
164
|
+
0.6 release.
|
|
165
|
+
- Release coincides with JRuby 1.0.3 and JRuby 1.1b2 releases
|
|
166
|
+
- Simultaneous support for JRuby trunk and 1.0 branch
|
|
167
|
+
- Start of support for OpenSSL::BN
|
|
168
|
+
|
|
169
|
+
== 0.0.5 and prior
|
|
170
|
+
|
|
171
|
+
- Initial versions with maintenance updates
|
data/License.txt
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
JRuby-OpenSSL is distributed under the same license as JRuby (http://www.jruby.org/).
|
|
2
|
+
|
|
3
|
+
Version: CPL 1.0/GPL 2.0/LGPL 2.1
|
|
4
|
+
|
|
5
|
+
The contents of this file are subject to the Common Public
|
|
6
|
+
License Version 1.0 (the "License"); you may not use this file
|
|
7
|
+
except in compliance with the License. You may obtain a copy of
|
|
8
|
+
the License at http://www.eclipse.org/legal/cpl-v10.html
|
|
9
|
+
|
|
10
|
+
Software distributed under the License is distributed on an "AS
|
|
11
|
+
IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
|
12
|
+
implied. See the License for the specific language governing
|
|
13
|
+
rights and limitations under the License.
|
|
14
|
+
|
|
15
|
+
Copyright (C) 2007 Ola Bini <ola.bini@gmail.com>
|
|
16
|
+
|
|
17
|
+
Alternatively, the contents of this file may be used under the terms of
|
|
18
|
+
either of the GNU General Public License Version 2 or later (the "GPL"),
|
|
19
|
+
or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
|
20
|
+
in which case the provisions of the GPL or the LGPL are applicable instead
|
|
21
|
+
of those above. If you wish to allow use of your version of this file only
|
|
22
|
+
under the terms of either the GPL or the LGPL, and not to allow others to
|
|
23
|
+
use your version of this file under the terms of the CPL, indicate your
|
|
24
|
+
decision by deleting the provisions above and replace them with the notice
|
|
25
|
+
and other provisions required by the GPL or the LGPL. If you do not delete
|
|
26
|
+
the provisions above, a recipient may use your version of this file under
|
|
27
|
+
the terms of any one of the CPL, the GPL or the LGPL.
|
|
28
|
+
|
|
29
|
+
JRuby-OpenSSL includes software by the Legion of the Bouncy Castle
|
|
30
|
+
(http://bouncycastle.org/license.html).
|
data/Manifest.txt
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
Rakefile
|
|
2
|
+
History.txt
|
|
3
|
+
Manifest.txt
|
|
4
|
+
README.txt
|
|
5
|
+
License.txt
|
|
6
|
+
lib/jopenssl.jar
|
|
7
|
+
lib/openssl
|
|
8
|
+
lib/jopenssl
|
|
9
|
+
lib/jopenssl.jar
|
|
10
|
+
lib/openssl.rb
|
|
11
|
+
lib/openssl/dummy.rb
|
|
12
|
+
lib/openssl/dummyssl.rb
|
|
13
|
+
lib/openssl/config.rb
|
|
14
|
+
lib/openssl/cipher.rb
|
|
15
|
+
lib/openssl/ssl.rb
|
|
16
|
+
lib/openssl/bn.rb
|
|
17
|
+
lib/openssl/x509.rb
|
|
18
|
+
lib/openssl/digest.rb
|
|
19
|
+
lib/openssl/buffering.rb
|
|
20
|
+
lib/openssl/pkcs7.rb
|
|
21
|
+
lib/jopenssl/version.rb
|
|
22
|
+
test/test_imaps.rb
|
|
23
|
+
test/test_all.rb
|
|
24
|
+
test/test_integration.rb
|
|
25
|
+
test/ut_eof.rb
|
|
26
|
+
test/openssl
|
|
27
|
+
test/test_java.rb
|
|
28
|
+
test/test_openssl.rb
|
|
29
|
+
test/test_pkey.rb
|
|
30
|
+
test/ref
|
|
31
|
+
test/test_cipher.rb
|
|
32
|
+
test/cert_with_ec_pk.cer
|
|
33
|
+
test/fixture
|
|
34
|
+
test/test_pkcs7.rb
|
|
35
|
+
test/test_x509store.rb
|
|
36
|
+
test/test_certificate.rb
|
|
37
|
+
test/test_parse_certificate.rb
|
|
38
|
+
test/test_ssl.rb
|
|
39
|
+
test/java
|
|
40
|
+
test/openssl/test_x509name.rb
|
|
41
|
+
test/openssl/test_ns_spki.rb
|
|
42
|
+
test/openssl/test_x509cert.rb
|
|
43
|
+
test/openssl/ssl_server.rb
|
|
44
|
+
test/openssl/test_pair.rb
|
|
45
|
+
test/openssl/test_ec.rb
|
|
46
|
+
test/openssl/test_config.rb
|
|
47
|
+
test/openssl/utils.rb
|
|
48
|
+
test/openssl/test_x509req.rb
|
|
49
|
+
test/openssl/test_cipher.rb
|
|
50
|
+
test/openssl/test_digest.rb
|
|
51
|
+
test/openssl/test_x509ext.rb
|
|
52
|
+
test/openssl/test_asn1.rb
|
|
53
|
+
test/openssl/test_pkcs7.rb
|
|
54
|
+
test/openssl/test_x509store.rb
|
|
55
|
+
test/openssl/test_pkey_rsa.rb
|
|
56
|
+
test/openssl/test_ssl.rb
|
|
57
|
+
test/openssl/test_x509crl.rb
|
|
58
|
+
test/openssl/test_hmac.rb
|
|
59
|
+
test/ref/compile.rb
|
|
60
|
+
test/ref/a.out
|
|
61
|
+
test/ref/pkcs1
|
|
62
|
+
test/ref/pkcs1.c
|
|
63
|
+
test/fixture/cacert.pem
|
|
64
|
+
test/fixture/ca-bundle.crt
|
|
65
|
+
test/fixture/common.pem
|
|
66
|
+
test/fixture/key_then_cert.pem
|
|
67
|
+
test/fixture/verisign.pem
|
|
68
|
+
test/fixture/cert_localhost.pem
|
|
69
|
+
test/fixture/localhost_keypair.pem
|
|
70
|
+
test/fixture/verisign_c3.pem
|
|
71
|
+
test/fixture/selfcert.pem
|
|
72
|
+
test/fixture/max.pem
|
|
73
|
+
test/fixture/keypair.pem
|
|
74
|
+
test/fixture/purpose
|
|
75
|
+
test/fixture/imaps
|
|
76
|
+
test/fixture/ca_path
|
|
77
|
+
test/fixture/purpose/cacert.pem
|
|
78
|
+
test/fixture/purpose/sslclient
|
|
79
|
+
test/fixture/purpose/b70a5bc1.0
|
|
80
|
+
test/fixture/purpose/ca
|
|
81
|
+
test/fixture/purpose/sslclient.pem
|
|
82
|
+
test/fixture/purpose/sslserver.pem
|
|
83
|
+
test/fixture/purpose/scripts
|
|
84
|
+
test/fixture/purpose/sslserver
|
|
85
|
+
test/fixture/purpose/sslclient/sslclient.pem
|
|
86
|
+
test/fixture/purpose/sslclient/csr.pem
|
|
87
|
+
test/fixture/purpose/sslclient/keypair.pem
|
|
88
|
+
test/fixture/purpose/ca/cacert.pem
|
|
89
|
+
test/fixture/purpose/ca/newcerts
|
|
90
|
+
test/fixture/purpose/ca/PASSWD_OF_CA_KEY_IS_1234
|
|
91
|
+
test/fixture/purpose/ca/ca_config.rb
|
|
92
|
+
test/fixture/purpose/ca/serial
|
|
93
|
+
test/fixture/purpose/ca/private
|
|
94
|
+
test/fixture/purpose/ca/newcerts/2_cert.pem
|
|
95
|
+
test/fixture/purpose/ca/newcerts/3_cert.pem
|
|
96
|
+
test/fixture/purpose/ca/private/cakeypair.pem
|
|
97
|
+
test/fixture/purpose/scripts/gen_cert.rb
|
|
98
|
+
test/fixture/purpose/scripts/init_ca.rb
|
|
99
|
+
test/fixture/purpose/scripts/gen_csr.rb
|
|
100
|
+
test/fixture/purpose/sslserver/sslserver.pem
|
|
101
|
+
test/fixture/purpose/sslserver/csr.pem
|
|
102
|
+
test/fixture/purpose/sslserver/keypair.pem
|
|
103
|
+
test/fixture/imaps/cacert.pem
|
|
104
|
+
test/fixture/imaps/server.crt
|
|
105
|
+
test/fixture/imaps/server.key
|
|
106
|
+
test/fixture/ca_path/verisign.pem
|
|
107
|
+
test/fixture/ca_path/72fa7371.0
|
|
108
|
+
test/java/pkcs7_mime_enveloped.message
|
|
109
|
+
test/java/pkcs7_mime_signed.message
|
|
110
|
+
test/java/test_java_pkcs7.rb
|
|
111
|
+
test/java/test_java_bio.rb
|
|
112
|
+
test/java/pkcs7_multipart_signed.message
|
|
113
|
+
test/java/test_java_mime.rb
|
|
114
|
+
test/java/test_java_attribute.rb
|
|
115
|
+
test/java/test_java_smime.rb
|
data/README.txt
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
= JRuby-OpenSSL
|
|
2
|
+
|
|
3
|
+
* http://jruby-extras.rubyforge.org/jruby-openssl
|
|
4
|
+
|
|
5
|
+
== DESCRIPTION:
|
|
6
|
+
|
|
7
|
+
JRuby-OpenSSL is an add-on gem for JRuby that emulates the Ruby OpenSSL native library.
|
|
8
|
+
|
|
9
|
+
Please report bugs and incompatibilities (preferably with testcases) to either the JRuby
|
|
10
|
+
mailing list [1] or the JRuby bug tracker [2].
|
|
11
|
+
|
|
12
|
+
[1]: http://xircles.codehaus.org/projects/jruby/lists
|
|
13
|
+
[2]: http://jira.codehaus.org/browse/JRUBY
|
data/Rakefile
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
require 'rake'
|
|
2
|
+
require 'rake/testtask'
|
|
3
|
+
|
|
4
|
+
MANIFEST = FileList["Rakefile", "History.txt", "Manifest.txt", "README.txt", "License.txt", "lib/jopenssl.jar", "lib/**/*", "test/**/*"]
|
|
5
|
+
BC_JARS = FileList["build_lib/bc*.jar"]
|
|
6
|
+
|
|
7
|
+
task :default => [:java_compile, :test]
|
|
8
|
+
|
|
9
|
+
def java_classpath_arg # myriad of ways to discover JRuby classpath
|
|
10
|
+
begin
|
|
11
|
+
cpath = Java::java.lang.System.getProperty('java.class.path').split(File::PATH_SEPARATOR)
|
|
12
|
+
cpath += Java::java.lang.System.getProperty('sun.boot.class.path').split(File::PATH_SEPARATOR)
|
|
13
|
+
jruby_cpath = cpath.compact.join(File::PATH_SEPARATOR)
|
|
14
|
+
rescue => e
|
|
15
|
+
end
|
|
16
|
+
unless jruby_cpath
|
|
17
|
+
jruby_cpath = ENV['JRUBY_PARENT_CLASSPATH'] || ENV['JRUBY_HOME'] &&
|
|
18
|
+
FileList["#{ENV['JRUBY_HOME']}/lib/*.jar"].join(File::PATH_SEPARATOR)
|
|
19
|
+
end
|
|
20
|
+
bc_jars = BC_JARS.join(File::PATH_SEPARATOR)
|
|
21
|
+
jruby_cpath ? "-cp \"#{jruby_cpath.gsub('\\', '/')}#{File::PATH_SEPARATOR}#{bc_jars}\"" : "-cp \"#{bc_jars}\""
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
desc "Compile the native Java code."
|
|
25
|
+
task :java_compile do
|
|
26
|
+
mkdir_p "pkg/classes"
|
|
27
|
+
|
|
28
|
+
File.open("pkg/compile_options", "w") do |f|
|
|
29
|
+
f << "-g -target 1.5 -source 1.5 -Xlint:unchecked -Xlint:deprecation -d pkg/classes"
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
File.open("pkg/compile_classpath", "w") do |f|
|
|
33
|
+
f << java_classpath_arg
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
File.open("pkg/compile_sourcefiles", "w") do |f|
|
|
37
|
+
f << FileList['src/java/**/*.java'].join(' ')
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
sh "javac @pkg/compile_options @pkg/compile_classpath @pkg/compile_sourcefiles"
|
|
41
|
+
sh "jar cf lib/jopenssl.jar -C pkg/classes/ ."
|
|
42
|
+
end
|
|
43
|
+
file "lib/jopenssl.jar" => :java_compile
|
|
44
|
+
|
|
45
|
+
task :more_clean do
|
|
46
|
+
rm_f FileList['lib/jopenssl.jar']
|
|
47
|
+
end
|
|
48
|
+
task :clean => :more_clean
|
|
49
|
+
|
|
50
|
+
File.open("Manifest.txt", "w") {|f| MANIFEST.each {|n| f.puts n } }
|
|
51
|
+
|
|
52
|
+
begin
|
|
53
|
+
require 'hoe'
|
|
54
|
+
Hoe.plugin :gemcutter
|
|
55
|
+
Hoe.add_include_dirs('build_lib')
|
|
56
|
+
hoe = Hoe.spec("jruby-openssl") do |p|
|
|
57
|
+
load File.dirname(__FILE__) + "/lib/jopenssl/version.rb"
|
|
58
|
+
p.version = Jopenssl::Version::VERSION
|
|
59
|
+
p.rubyforge_name = "jruby-extras"
|
|
60
|
+
p.url = "http://jruby-extras.rubyforge.org/jruby-openssl"
|
|
61
|
+
p.author = "Ola Bini and JRuby contributors"
|
|
62
|
+
p.email = "ola.bini@gmail.com"
|
|
63
|
+
p.summary = "OpenSSL add-on for JRuby"
|
|
64
|
+
p.changes = p.paragraphs_of('History.txt', 0..1).join("\n\n")
|
|
65
|
+
p.description = p.paragraphs_of('README.txt', 3...4).join("\n\n")
|
|
66
|
+
p.test_globs = ENV["TEST"] || ["test/test_all.rb"]
|
|
67
|
+
p.extra_deps << ['bouncy-castle-java', '>= 0']
|
|
68
|
+
end
|
|
69
|
+
hoe.spec.dependencies.delete_if { |dep| dep.name == "hoe" }
|
|
70
|
+
|
|
71
|
+
task :gemspec do
|
|
72
|
+
File.open("#{hoe.name}.gemspec", "w") {|f| f << hoe.spec.to_ruby }
|
|
73
|
+
end
|
|
74
|
+
task :package => :gemspec
|
|
75
|
+
rescue LoadError
|
|
76
|
+
puts "You really need Hoe installed to be able to package this gem"
|
|
77
|
+
rescue => e
|
|
78
|
+
puts "ignoring error while loading hoe: #{e.to_s}"
|
|
79
|
+
end
|
data/lib/jopenssl.jar
ADDED
|
Binary file
|
data/lib/openssl.rb
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
= $RCSfile$ -- Loader for all OpenSSL C-space and Ruby-space definitions
|
|
3
|
+
|
|
4
|
+
= Info
|
|
5
|
+
'OpenSSL for Ruby 2' project
|
|
6
|
+
Copyright (C) 2002 Michal Rokos <m.rokos@sh.cvut.cz>
|
|
7
|
+
All rights reserved.
|
|
8
|
+
|
|
9
|
+
= Licence
|
|
10
|
+
This program is licenced under the same licence as Ruby.
|
|
11
|
+
(See the file 'LICENCE'.)
|
|
12
|
+
|
|
13
|
+
= Version
|
|
14
|
+
$Id: openssl.rb 12496 2007-06-08 15:02:04Z technorama $
|
|
15
|
+
=end
|
|
16
|
+
|
|
17
|
+
# TODO: remove this chunk after 1.4 support is dropped
|
|
18
|
+
require 'digest'
|
|
19
|
+
unless defined?(::Digest::Class)
|
|
20
|
+
# restricted support for jruby <= 1.4 (1.8.6 Digest compat)
|
|
21
|
+
module Digest
|
|
22
|
+
class Class
|
|
23
|
+
def self.hexdigest(name, data)
|
|
24
|
+
digest(name, data).unpack('H*')[0]
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def self.digest(data, name)
|
|
28
|
+
digester = const_get(name).new
|
|
29
|
+
digester.update(data)
|
|
30
|
+
digester.finish
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def hexdigest
|
|
34
|
+
digest.unpack('H*')[0]
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def digest
|
|
38
|
+
dup.finish
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def ==(oth)
|
|
42
|
+
digest == oth.digest
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def to_s
|
|
46
|
+
hexdigest
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def size
|
|
50
|
+
digest_length
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def length
|
|
54
|
+
digest_length
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
# end of compat chunk.
|
|
60
|
+
|
|
61
|
+
begin
|
|
62
|
+
# require 'bouncy-castle-java'
|
|
63
|
+
rescue LoadError
|
|
64
|
+
# runs under restricted mode.
|
|
65
|
+
end
|
|
66
|
+
require 'jopenssl'
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
require 'openssl/bn'
|
|
70
|
+
require 'openssl/cipher'
|
|
71
|
+
require 'openssl/config'
|
|
72
|
+
require 'openssl/digest'
|
|
73
|
+
require 'openssl/pkcs7'
|
|
74
|
+
require 'openssl/ssl'
|
|
75
|
+
require 'openssl/x509'
|
|
76
|
+
|