jruby-openssl 0.9.4 → 0.14.0-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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