jruby-openssl 0.9.4 → 0.14.0-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. checksums.yaml +7 -0
  2. data/History.md +652 -0
  3. data/LICENSE.txt +37 -0
  4. data/Mavenfile +163 -5
  5. data/README.md +75 -0
  6. data/Rakefile +52 -2
  7. data/lib/jopenssl/_compat23.rb +71 -0
  8. data/lib/jopenssl/load.rb +75 -16
  9. data/lib/jopenssl/version.rb +9 -4
  10. data/lib/jopenssl.jar +0 -0
  11. data/lib/openssl/bn.rb +40 -5
  12. data/lib/openssl/buffering.rb +477 -4
  13. data/lib/openssl/cipher.rb +67 -5
  14. data/lib/openssl/config.rb +500 -4
  15. data/lib/openssl/digest.rb +73 -5
  16. data/lib/openssl/hmac.rb +13 -0
  17. data/lib/openssl/marshal.rb +30 -0
  18. data/lib/openssl/pkcs12.rb +60 -99
  19. data/lib/openssl/pkcs5.rb +22 -0
  20. data/lib/openssl/pkey.rb +42 -0
  21. data/lib/openssl/ssl.rb +542 -4
  22. data/lib/openssl/x509.rb +368 -4
  23. data/lib/openssl.rb +3 -1
  24. data/lib/org/bouncycastle/bcpkix-jdk18on/1.71/bcpkix-jdk18on-1.71.jar +0 -0
  25. data/lib/org/bouncycastle/bcprov-jdk18on/1.71/bcprov-jdk18on-1.71.jar +0 -0
  26. data/lib/org/bouncycastle/bctls-jdk18on/1.71/bctls-jdk18on-1.71.jar +0 -0
  27. data/lib/org/bouncycastle/bcutil-jdk18on/1.71/bcutil-jdk18on-1.71.jar +0 -0
  28. data/pom.xml +772 -0
  29. metadata +40 -107
  30. data/History.txt +0 -218
  31. data/License.txt +0 -30
  32. data/README.txt +0 -13
  33. data/TODO-1_9-support.txt +0 -23
  34. data/lib/jopenssl18/openssl/bn.rb +0 -35
  35. data/lib/jopenssl18/openssl/buffering.rb +0 -241
  36. data/lib/jopenssl18/openssl/cipher.rb +0 -65
  37. data/lib/jopenssl18/openssl/config.rb +0 -316
  38. data/lib/jopenssl18/openssl/digest.rb +0 -61
  39. data/lib/jopenssl18/openssl/pkcs7.rb +0 -25
  40. data/lib/jopenssl18/openssl/ssl-internal.rb +0 -179
  41. data/lib/jopenssl18/openssl/ssl.rb +0 -1
  42. data/lib/jopenssl18/openssl/x509-internal.rb +0 -153
  43. data/lib/jopenssl18/openssl/x509.rb +0 -1
  44. data/lib/jopenssl18/openssl.rb +0 -67
  45. data/lib/jopenssl19/openssl/bn.rb +0 -35
  46. data/lib/jopenssl19/openssl/buffering.rb +0 -449
  47. data/lib/jopenssl19/openssl/cipher.rb +0 -65
  48. data/lib/jopenssl19/openssl/config.rb +0 -313
  49. data/lib/jopenssl19/openssl/digest.rb +0 -72
  50. data/lib/jopenssl19/openssl/ssl-internal.rb +0 -177
  51. data/lib/jopenssl19/openssl/ssl.rb +0 -2
  52. data/lib/jopenssl19/openssl/x509-internal.rb +0 -158
  53. data/lib/jopenssl19/openssl/x509.rb +0 -2
  54. data/lib/jopenssl19/openssl.rb +0 -23
  55. data/lib/openssl/pkcs7.rb +0 -5
  56. data/lib/openssl/ssl-internal.rb +0 -5
  57. data/lib/openssl/x509-internal.rb +0 -5
  58. data/test/java/pkcs7_mime_enveloped.message +0 -19
  59. data/test/java/pkcs7_mime_signed.message +0 -30
  60. data/test/java/pkcs7_multipart_signed.message +0 -45
  61. data/test/java/test_java_attribute.rb +0 -25
  62. data/test/java/test_java_bio.rb +0 -42
  63. data/test/java/test_java_mime.rb +0 -173
  64. data/test/java/test_java_pkcs7.rb +0 -772
  65. data/test/java/test_java_smime.rb +0 -177
  66. data/test/test_java.rb +0 -98
  67. data/test/ut_eof.rb +0 -128
@@ -1,177 +0,0 @@
1
- module PKCS7Test
2
- class TestJavaSMIME < Test::Unit::TestCase
3
- def test_read_pkcs7_should_raise_error_when_parsing_headers_fails
4
- bio = BIO.new
5
- mime = Mime.new
6
- mime.stubs(:parseHeaders).returns(nil)
7
-
8
- begin
9
- SMIME.new(mime).readPKCS7(bio, nil)
10
- assert false
11
- rescue PKCS7Exception => e
12
- assert_equal PKCS7::F_SMIME_READ_PKCS7, e.cause.get_method
13
- assert_equal PKCS7::R_MIME_PARSE_ERROR, e.cause.get_reason
14
- end
15
- end
16
-
17
- def test_read_pkcs7_should_raise_error_when_content_type_is_not_there
18
- bio = BIO.new
19
- mime = Mime.new
20
-
21
- headers = ArrayList.new
22
- mime.expects(:parseHeaders).with(bio).returns(headers)
23
- mime.expects(:findHeader).with(headers, "content-type").returns(nil)
24
-
25
- begin
26
- SMIME.new(mime).readPKCS7(bio, nil)
27
- assert false
28
- rescue PKCS7Exception => e
29
- assert_equal PKCS7::F_SMIME_READ_PKCS7, e.cause.get_method
30
- assert_equal PKCS7::R_NO_CONTENT_TYPE, e.cause.get_reason
31
- end
32
-
33
-
34
-
35
-
36
- mime = Mime.new
37
- mime.expects(:parseHeaders).with(bio).returns(headers)
38
- mime.expects(:findHeader).with(headers, "content-type").returns(MimeHeader.new("content-type", nil))
39
-
40
- begin
41
- SMIME.new(mime).readPKCS7(bio, nil)
42
- assert false
43
- rescue PKCS7Exception => e
44
- assert_equal PKCS7::F_SMIME_READ_PKCS7, e.cause.get_method
45
- assert_equal PKCS7::R_NO_CONTENT_TYPE, e.cause.get_reason
46
- end
47
- end
48
-
49
- def test_read_pkcs7_should_set_the_second_arguments_contents_to_null_if_its_there
50
- mime = Mime.new
51
- mime.stubs(:parseHeaders).raises("getOutOfJailForFree")
52
-
53
- bio2 = BIO.new
54
- arr = [bio2].to_java BIO
55
-
56
- begin
57
- SMIME.new(mime).readPKCS7(nil, arr)
58
- rescue
59
- end
60
-
61
- assert_nil arr[0]
62
-
63
-
64
- arr = [bio2, bio2].to_java BIO
65
- begin
66
- SMIME.new(mime).readPKCS7(nil, arr)
67
- rescue
68
- end
69
-
70
- assert_nil arr[0]
71
- assert_equal bio2, arr[1]
72
- end
73
-
74
- def test_read_pkcs7_should_call_methods_on_mime
75
- bio = BIO.new
76
- mime = Mime.new
77
-
78
- headers = ArrayList.new
79
- mime.expects(:parseHeaders).with(bio).returns(headers)
80
- mime.expects(:findHeader).with(headers, "content-type").returns(MimeHeader.new("content-type", "application/pkcs7-mime"))
81
-
82
- begin
83
- SMIME.new(mime).readPKCS7(bio, nil)
84
- rescue java.lang.UnsupportedOperationException
85
- # This error is expected, since the bio used is not a real one
86
- end
87
- end
88
-
89
- def test_read_pkcs7_throws_correct_exception_if_wrong_content_type
90
- bio = BIO.new
91
- mime = Mime.new
92
-
93
- headers = ArrayList.new
94
- mime.expects(:parseHeaders).with(bio).returns(headers)
95
- mime.expects(:findHeader).with(headers, "content-type").returns(MimeHeader.new("content-type", "foo"))
96
-
97
- begin
98
- SMIME.new(mime).readPKCS7(bio, nil)
99
- assert false
100
- rescue PKCS7Exception => e
101
- assert_equal PKCS7::F_SMIME_READ_PKCS7, e.cause.get_method
102
- assert_equal PKCS7::R_INVALID_MIME_TYPE, e.cause.get_reason
103
- assert_equal "type: foo", e.cause.error_data
104
- end
105
- end
106
-
107
- def test_read_pkcs7_with_multipart_should_fail_if_no_boundary_found
108
- bio = BIO.new
109
- mime = Mime.new
110
-
111
- headers = ArrayList.new
112
- hdr = MimeHeader.new("content-type", "multipart/signed")
113
- mime.expects(:parseHeaders).with(bio).returns(headers)
114
- mime.expects(:findHeader).with(headers, "content-type").returns(hdr)
115
-
116
- mime.expects(:findParam).with(hdr, "boundary").returns(nil)
117
-
118
- begin
119
- SMIME.new(mime).readPKCS7(bio, nil)
120
- assert false
121
- rescue PKCS7Exception => e
122
- assert_equal PKCS7::F_SMIME_READ_PKCS7, e.cause.get_method
123
- assert_equal PKCS7::R_NO_MULTIPART_BOUNDARY, e.cause.get_reason
124
- end
125
- end
126
-
127
- def test_read_pkcs7_with_multipart_should_fail_if_null_boundary_value
128
- bio = BIO.new
129
- mime = Mime.new
130
-
131
- headers = ArrayList.new
132
- hdr = MimeHeader.new("content-type", "multipart/signed")
133
- mime.expects(:parseHeaders).with(bio).returns(headers)
134
- mime.expects(:findHeader).with(headers, "content-type").returns(hdr)
135
-
136
- mime.expects(:findParam).with(hdr, "boundary").returns(MimeParam.new("boundary", nil))
137
-
138
- begin
139
- SMIME.new(mime).readPKCS7(bio, nil)
140
- assert false
141
- rescue PKCS7Exception => e
142
- assert_equal PKCS7::F_SMIME_READ_PKCS7, e.cause.get_method
143
- assert_equal PKCS7::R_NO_MULTIPART_BOUNDARY, e.cause.get_reason
144
- end
145
- end
146
-
147
- # TODO: redo this test to be an integration test
148
- def _test_read_pkcs7_happy_path_without_multipart
149
- bio = BIO.new
150
- mime = Mime.new
151
-
152
- headers = ArrayList.new
153
- mime.expects(:parseHeaders).with(bio).returns(headers)
154
- mime.expects(:findHeader).with(headers, "content-type").returns(MimeHeader.new("content-type", "application/pkcs7-mime"))
155
-
156
- SMIME.new(mime).readPKCS7(bio, nil)
157
- end
158
-
159
- def test_read_pkcs7_happy_path_multipart
160
- bio = BIO::from_string(MultipartSignedString)
161
- mime = Mime::DEFAULT
162
- p7 = SMIME.new(mime).readPKCS7(bio, nil)
163
- end
164
-
165
- def test_read_pkcs7_happy_path_without_multipart_enveloped
166
- bio = BIO::from_string(MimeEnvelopedString)
167
- mime = Mime::DEFAULT
168
- p7 = SMIME.new(mime).readPKCS7(bio, nil)
169
- end
170
-
171
- def test_read_pkcs7_happy_path_without_multipart_signed
172
- bio = BIO::from_string(MimeSignedString)
173
- mime = Mime::DEFAULT
174
- p7 = SMIME.new(mime).readPKCS7(bio, nil)
175
- end
176
- end
177
- end
data/test/test_java.rb DELETED
@@ -1,98 +0,0 @@
1
- $:.unshift File.join(File.dirname(__FILE__), '..', 'build_lib', 'mocha', 'lib')
2
-
3
- require "test/unit"
4
- require 'mocha'
5
-
6
- if defined?(JRUBY_VERSION)
7
- require "java"
8
- $CLASSPATH << 'pkg/classes'
9
- $CLASSPATH << Dir["build_lib/bcprov-*"].first
10
-
11
- module PKCS7Test
12
- module ASN1
13
- OctetString = org.bouncycastle.asn1.DEROctetString
14
- end
15
-
16
- PKCS7 = org.jruby.ext.openssl.impl.PKCS7 unless defined?(PKCS7)
17
- Attribute = org.jruby.ext.openssl.impl.Attribute unless defined?(Attribute)
18
- CipherSpec = org.jruby.ext.openssl.impl.CipherSpec unless defined?(CipherSpec)
19
- Digest = org.jruby.ext.openssl.impl.Digest unless defined?(Digest)
20
- EncContent = org.jruby.ext.openssl.impl.EncContent unless defined?(EncContent)
21
- Encrypt = org.jruby.ext.openssl.impl.Encrypt unless defined?(Encrypt)
22
- Envelope = org.jruby.ext.openssl.impl.Envelope unless defined?(Envelope)
23
- IssuerAndSerial = org.jruby.ext.openssl.impl.IssuerAndSerial unless defined?(IssuerAndSerial)
24
- RecipInfo = org.jruby.ext.openssl.impl.RecipInfo unless defined?(RecipInfo)
25
- SignEnvelope = org.jruby.ext.openssl.impl.SignEnvelope unless defined?(SignEnvelope)
26
- Signed = org.jruby.ext.openssl.impl.Signed unless defined?(Signed)
27
- SMIME = org.jruby.ext.openssl.impl.SMIME unless defined?(SMIME)
28
- Mime = org.jruby.ext.openssl.impl.Mime unless defined?(Mime)
29
- MimeHeader = org.jruby.ext.openssl.impl.MimeHeader unless defined?(MimeHeader)
30
- MimeParam = org.jruby.ext.openssl.impl.MimeParam unless defined?(MimeParam)
31
- BIO = org.jruby.ext.openssl.impl.BIO unless defined?(BIO)
32
- PKCS7Exception = org.jruby.ext.openssl.impl.PKCS7Exception unless defined?(PKCS7Exception)
33
- ASN1Registry = org.jruby.ext.openssl.impl.ASN1Registry unless defined?(ASN1Registry)
34
- AlgorithmIdentifier = org.bouncycastle.asn1.x509.AlgorithmIdentifier unless defined?(AlgorithmIdentifier)
35
- SignerInfoWithPkey = org.jruby.ext.openssl.impl.SignerInfoWithPkey unless defined?(SignerInfoWithPkey)
36
- IssuerAndSerialNumber = org.bouncycastle.asn1.pkcs.IssuerAndSerialNumber unless defined?(IssuerAndSerialNumber)
37
- ASN1InputStream = org.bouncycastle.asn1.ASN1InputStream unless defined?(ASN1InputStream)
38
- X509AuxCertificate = org.jruby.ext.openssl.x509store.X509AuxCertificate unless defined?(X509AuxCertificate)
39
-
40
- ArrayList = java.util.ArrayList unless defined?(ArrayList)
41
- CertificateFactory = java.security.cert.CertificateFactory unless defined?(CertificateFactory)
42
- BCP = org.bouncycastle.jce.provider.BouncyCastleProvider unless defined?(BCP)
43
- ByteArrayInputStream = java.io.ByteArrayInputStream unless defined?(ByteArrayInputStream)
44
- BigInteger = java.math.BigInteger unless defined?(BigInteger)
45
- Cipher = javax.crypto.Cipher unless defined?(Cipher)
46
-
47
- ASN1Integer = org.bouncycastle.asn1.ASN1Integer
48
- DERSet = org.bouncycastle.asn1.DERSet
49
- DEROctetString = org.bouncycastle.asn1.DEROctetString
50
- X500Name = org.bouncycastle.asn1.x500.X500Name
51
-
52
-
53
- MimeEnvelopedString = File::read(File.join(File.dirname(__FILE__), 'java', 'pkcs7_mime_enveloped.message'))
54
- MimeSignedString = File::read(File.join(File.dirname(__FILE__), 'java', 'pkcs7_mime_signed.message'))
55
- MultipartSignedString = File::read(File.join(File.dirname(__FILE__), 'java', 'pkcs7_multipart_signed.message'))
56
-
57
- X509CertString = <<CERT
58
- -----BEGIN CERTIFICATE-----
59
- MIICijCCAXKgAwIBAgIBAjANBgkqhkiG9w0BAQUFADA9MRMwEQYKCZImiZPyLGQB
60
- GRYDb3JnMRkwFwYKCZImiZPyLGQBGRYJcnVieS1sYW5nMQswCQYDVQQDDAJDQTAe
61
- Fw0wODA3MDgxOTE1NDZaFw0wODA3MDgxOTQ1NDZaMEQxEzARBgoJkiaJk/IsZAEZ
62
- FgNvcmcxGTAXBgoJkiaJk/IsZAEZFglydWJ5LWxhbmcxEjAQBgNVBAMMCWxvY2Fs
63
- aG9zdDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAy8LEsNRApz7U/j5DoB4X
64
- BgO9Z8Atv5y/OVQRp0ag8Tqo1YewsWijxEWB7JOATwpBN267U4T1nPZIxxEEO7n/
65
- WNa2ws9JWsjah8ssEBFSxZqdXKSLf0N4Hi7/GQ/aYoaMCiQ8jA4jegK2FJmXM71u
66
- Pe+jFN/peeBOpRfyXxRFOYcCAwEAAaMSMBAwDgYDVR0PAQH/BAQDAgWgMA0GCSqG
67
- SIb3DQEBBQUAA4IBAQCU879BALJIM9avHiuZ3WTjDy0UYP3ZG5wtuSqBSnD1k8pr
68
- hXfRaga7mDj6EQaGUovImb+KrRi6mZc+zsx4rTxwBNJT9U8yiW2eYxmgcT9/qKrD
69
- /1nz+e8NeUCCDY5UTUHGszZw5zLEDgDX2n3E/CDIZsoRSyq5vXq1jpfih/tSWanj
70
- Y9uP/o8Dc7ZcRJOAX7NPu1bbZcbxEbZ8sMe5wZ5HNiAR6gnOrjz2Yyazb//PSskE
71
- 4flt/2h4pzGA0/ZHcnDjcoLdiLtInsqPOlVDLgqd/XqRYWtj84N4gw1iS9cHyrIZ
72
- dqbS54IKvzElD+R0QVS2z6TIGJSpuSBnZ4yfuNuq
73
- -----END CERTIFICATE-----
74
- CERT
75
-
76
- X509CRLString = <<CRL
77
- ----BEGIN X509 CRL-----
78
- MIIBlTB/AgEBMA0GCSqGSIb3DQEBBQUAMD0xEzARBgoJkiaJk/IsZAEZFgNvcmcx
79
- GTAXBgoJkiaJk/IsZAEZFglydWJ5LWxhbmcxCzAJBgNVBAMMAkNBFw0wODA3MTgx
80
- NzQxMjhaFw0wODA3MTgxODA4MDhaoA4wDDAKBgNVHRQEAwIBATANBgkqhkiG9w0B
81
- AQUFAAOCAQEASJaj1keN+tMmsF3QmjH2RhbW/9rZAl4gjv+uQQqrcS2ByfkXLU1d
82
- l/8rCHeT/XMoeU6xhQNHPP3uZBwfuuETcp65BMBcZFOUhUR0U5AaGhvSDS/+6EsP
83
- zFdQgAagmThFdN5ei9guTLqWwN0ZyqiaHyevFJuk+L9qbKavaSeKqfJbU7Sj/Z3J
84
- WLKoixvyj3N6W7evygH80lTvjZugmxJ1/AjICVSYr1hpHHd6EWq0b0YFrGFmg27R
85
- WmsAXd0QV5UChfAJ2+Cz5U1bPszvIJGrzfAIoLxHv5rI5rseQzqZdPaFSe4Oehln
86
- 9qEYmsK3PS6bYoQol0cgj97Ep4olS8CulA==
87
- -----END X509 CRL-----
88
- CRL
89
-
90
- X509Cert = X509AuxCertificate.new(CertificateFactory.getInstance("X.509",BCP.new).generateCertificate(ByteArrayInputStream.new(X509CertString.to_java_bytes)))
91
- X509CRL = CertificateFactory.getInstance("X.509",BCP.new).generateCRL(ByteArrayInputStream.new(X509CRLString.to_java_bytes))
92
- end
93
-
94
- files = File.join(File.dirname(__FILE__), 'java', 'test_*.rb')
95
- Dir.glob(files).sort.each do |tc|
96
- require tc
97
- end
98
- end
data/test/ut_eof.rb DELETED
@@ -1,128 +0,0 @@
1
- require 'test/unit'
2
-
3
- module TestEOF
4
- def test_eof_0
5
- open_file("") {|f|
6
- assert_equal("", f.read(0))
7
- assert_equal("", f.read(0))
8
- assert_equal("", f.read)
9
- assert_nil(f.read(0))
10
- assert_nil(f.read(0))
11
- }
12
- open_file("") {|f|
13
- assert_nil(f.read(1))
14
- assert_equal("", f.read)
15
- assert_nil(f.read(1))
16
- }
17
- open_file("") {|f|
18
- s = "x"
19
- assert_equal("", f.read(nil, s))
20
- assert_equal("", s)
21
- }
22
- open_file("") {|f|
23
- s = "x"
24
- assert_nil(f.read(10, s))
25
- assert_equal("", s)
26
- }
27
- end
28
-
29
- def test_eof_0_rw
30
- return unless respond_to? :open_file_rw
31
- open_file_rw("") {|f|
32
- assert_equal("", f.read)
33
- assert_equal("", f.read)
34
- assert_equal(0, f.syswrite(""))
35
- assert_equal("", f.read)
36
- }
37
- end
38
-
39
- def test_eof_1
40
- open_file("a") {|f|
41
- assert_equal("", f.read(0))
42
- assert_equal("a", f.read(1))
43
- assert_equal("" , f.read(0))
44
- assert_equal("" , f.read(0))
45
- assert_equal("", f.read)
46
- assert_nil(f.read(0))
47
- assert_nil(f.read(0))
48
- }
49
- open_file("a") {|f|
50
- assert_equal("a", f.read(1))
51
- assert_nil(f.read(1))
52
- }
53
- open_file("a") {|f|
54
- assert_equal("a", f.read(2))
55
- assert_nil(f.read(1))
56
- assert_equal("", f.read)
57
- assert_nil(f.read(1))
58
- }
59
- open_file("a") {|f|
60
- assert_equal("a", f.read)
61
- assert_nil(f.read(1))
62
- assert_equal("", f.read)
63
- assert_nil(f.read(1))
64
- }
65
- open_file("a") {|f|
66
- assert_equal("a", f.read(2))
67
- assert_equal("", f.read)
68
- assert_equal("", f.read)
69
- }
70
- open_file("a") {|f|
71
- assert_equal("a", f.read)
72
- assert_nil(f.read(0))
73
- }
74
- open_file("a") {|f|
75
- s = "x"
76
- assert_equal("a", f.read(nil, s))
77
- assert_equal("a", s)
78
- }
79
- open_file("a") {|f|
80
- s = "x"
81
- assert_equal("a", f.read(10, s))
82
- assert_equal("a", s)
83
- }
84
- end
85
-
86
- def test_eof_2
87
- open_file("") {|f|
88
- assert_equal("", f.read)
89
- assert(f.eof?)
90
- }
91
- end
92
-
93
- def test_eof_3
94
- open_file("") {|f|
95
- assert(f.eof?)
96
- }
97
- end
98
-
99
- module Seek
100
- def open_file_seek(content, pos)
101
- open_file(content) do |f|
102
- f.seek(pos)
103
- yield f
104
- end
105
- end
106
-
107
- def test_eof_0_seek
108
- open_file_seek("", 10) {|f|
109
- assert_equal(10, f.pos)
110
- assert_equal("", f.read(0))
111
- assert_equal("", f.read)
112
- assert_nil(f.read(0))
113
- assert_equal("", f.read)
114
- }
115
- end
116
-
117
- def test_eof_1_seek
118
- open_file_seek("a", 10) {|f|
119
- assert_equal("", f.read)
120
- assert_equal("", f.read)
121
- }
122
- open_file_seek("a", 1) {|f|
123
- assert_equal("", f.read)
124
- assert_equal("", f.read)
125
- }
126
- end
127
- end
128
- end