jruby-openssl-maven 0.7.4.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
|