jruby-openssl-maven 0.7.4.1 → 0.7.6.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.
Files changed (99) hide show
  1. data/.gemtest +0 -0
  2. data/History.txt +51 -14
  3. data/Manifest.txt +136 -79
  4. data/README.txt +1 -1
  5. data/Rakefile +17 -8
  6. data/lib/{openssl.rb → 1.8/openssl.rb} +2 -11
  7. data/lib/{openssl → 1.8/openssl}/bn.rb +2 -2
  8. data/lib/{openssl → 1.8/openssl}/buffering.rb +3 -1
  9. data/lib/{openssl → 1.8/openssl}/cipher.rb +0 -0
  10. data/lib/{openssl → 1.8/openssl}/config.rb +1 -1
  11. data/lib/{openssl → 1.8/openssl}/digest.rb +2 -2
  12. data/lib/{openssl → 1.8/openssl}/pkcs7.rb +0 -0
  13. data/lib/{openssl/ssl.rb → 1.8/openssl/ssl-internal.rb} +2 -2
  14. data/lib/1.8/openssl/ssl.rb +1 -0
  15. data/lib/{openssl/x509.rb → 1.8/openssl/x509-internal.rb} +8 -9
  16. data/lib/1.8/openssl/x509.rb +1 -0
  17. data/lib/1.9/openssl.rb +22 -0
  18. data/lib/1.9/openssl/bn.rb +35 -0
  19. data/lib/1.9/openssl/buffering.rb +448 -0
  20. data/lib/1.9/openssl/cipher.rb +65 -0
  21. data/lib/1.9/openssl/config.rb +313 -0
  22. data/lib/1.9/openssl/digest.rb +72 -0
  23. data/lib/1.9/openssl/ssl-internal.rb +177 -0
  24. data/lib/1.9/openssl/ssl.rb +2 -0
  25. data/lib/1.9/openssl/x509-internal.rb +158 -0
  26. data/lib/1.9/openssl/x509.rb +2 -0
  27. data/lib/shared/jopenssl.jar +0 -0
  28. data/lib/{jopenssl → shared/jopenssl}/version.rb +1 -1
  29. data/lib/shared/openssl.rb +20 -0
  30. data/lib/{openssl → shared/openssl}/dummy.rb +0 -0
  31. data/lib/{openssl → shared/openssl}/dummyssl.rb +0 -0
  32. data/lib/shared/openssl/pkcs12.rb +50 -0
  33. data/lib/shared/openssl/ssl.rb +1 -0
  34. data/lib/shared/openssl/x509.rb +1 -0
  35. data/test/{openssl → 1.8}/ssl_server.rb +0 -0
  36. data/test/{openssl → 1.8}/test_asn1.rb +15 -0
  37. data/test/{openssl → 1.8}/test_cipher.rb +0 -0
  38. data/test/{openssl → 1.8}/test_config.rb +0 -0
  39. data/test/{openssl → 1.8}/test_digest.rb +0 -0
  40. data/test/{openssl → 1.8}/test_ec.rb +0 -0
  41. data/test/{openssl → 1.8}/test_hmac.rb +0 -0
  42. data/test/{openssl → 1.8}/test_ns_spki.rb +0 -0
  43. data/test/{openssl → 1.8}/test_pair.rb +10 -2
  44. data/test/{openssl → 1.8}/test_pkcs7.rb +0 -0
  45. data/test/{openssl → 1.8}/test_pkey_rsa.rb +0 -0
  46. data/test/{openssl → 1.8}/test_ssl.rb +17 -20
  47. data/test/{openssl → 1.8}/test_x509cert.rb +0 -0
  48. data/test/{openssl → 1.8}/test_x509crl.rb +0 -0
  49. data/test/{openssl → 1.8}/test_x509ext.rb +0 -0
  50. data/test/{openssl → 1.8}/test_x509name.rb +0 -0
  51. data/test/{openssl → 1.8}/test_x509req.rb +0 -0
  52. data/test/{openssl → 1.8}/test_x509store.rb +0 -0
  53. data/test/{openssl → 1.8}/utils.rb +0 -0
  54. data/test/1.9/ssl_server.rb +81 -0
  55. data/test/1.9/test_asn1.rb +589 -0
  56. data/test/1.9/test_bn.rb +23 -0
  57. data/test/1.9/test_buffering.rb +88 -0
  58. data/test/1.9/test_cipher.rb +107 -0
  59. data/test/1.9/test_config.rb +288 -0
  60. data/test/1.9/test_digest.rb +118 -0
  61. data/test/1.9/test_engine.rb +15 -0
  62. data/test/1.9/test_hmac.rb +32 -0
  63. data/test/1.9/test_ns_spki.rb +50 -0
  64. data/test/1.9/test_ocsp.rb +47 -0
  65. data/test/1.9/test_pair.rb +257 -0
  66. data/test/1.9/test_pkcs12.rb +209 -0
  67. data/test/1.9/test_pkcs7.rb +151 -0
  68. data/test/1.9/test_pkey_dh.rb +72 -0
  69. data/test/1.9/test_pkey_dsa.rb +224 -0
  70. data/test/1.9/test_pkey_ec.rb +182 -0
  71. data/test/1.9/test_pkey_rsa.rb +244 -0
  72. data/test/1.9/test_ssl.rb +455 -0
  73. data/test/1.9/test_ssl_session.rb +327 -0
  74. data/test/1.9/test_x509cert.rb +217 -0
  75. data/test/1.9/test_x509crl.rb +221 -0
  76. data/test/1.9/test_x509ext.rb +69 -0
  77. data/test/1.9/test_x509name.rb +296 -0
  78. data/test/1.9/test_x509req.rb +150 -0
  79. data/test/1.9/test_x509store.rb +229 -0
  80. data/test/1.9/utils.rb +304 -0
  81. data/test/fixture/ids_in_subject_rdn_set.pem +31 -0
  82. data/test/fixture/purpose/ca/ca_config.rb +1 -1
  83. data/test/fixture/purpose/ca/gen_cert.rb +128 -0
  84. data/test/fixture/purpose/ca/newcerts/4_cert.pem +19 -0
  85. data/test/fixture/purpose/ca/serial +1 -1
  86. data/test/fixture/purpose/sslserver_no_dsig_in_keyUsage.pem +19 -0
  87. data/test/ruby/envutil.rb +208 -0
  88. data/test/ruby/ut_eof.rb +128 -0
  89. data/test/test_certificate.rb +9 -0
  90. data/test/test_java.rb +1 -1
  91. data/test/test_openssl.rb +1 -1
  92. data/test/test_pkcs7.rb +16 -0
  93. data/test/test_pkey_dsa.rb +180 -0
  94. data/test/test_pkey_rsa.rb +298 -0
  95. data/test/test_ssl.rb +1 -1
  96. data/test/test_x509store.rb +8 -0
  97. metadata +135 -79
  98. data/lib/jopenssl.jar +0 -0
  99. data/test/test_pkey.rb +0 -204
@@ -3,7 +3,7 @@ require 'test/unit'
3
3
  require 'webrick/https'
4
4
  require 'net/https'
5
5
  require 'logger'
6
- require File.join(File.dirname(__FILE__), "openssl/utils.rb")
6
+ require File.join(File.dirname(__FILE__), (RUBY_VERSION >= '1.9.0' ? '1.9' : '1.8'), "utils.rb")
7
7
 
8
8
 
9
9
  class TestSSL < Test::Unit::TestCase
@@ -63,6 +63,14 @@ class TestX509Store < Test::Unit::TestCase
63
63
  assert_equal(true, @store.verify(cert))
64
64
  end
65
65
 
66
+ # keyUsage: no digitalSignature bit, keyEncipherment bit only.
67
+ def test_purpose_ssl_server_no_dsig_in_keyUsage
68
+ @store.add_file(path("fixture/purpose/cacert.pem"))
69
+ cert = OpenSSL::X509::Certificate.new(File.read(path("fixture/purpose/sslserver_no_dsig_in_keyUsage.pem")))
70
+ @store.purpose = OpenSSL::X509::PURPOSE_SSL_SERVER
71
+ assert_equal(true, @store.verify(cert))
72
+ end
73
+
66
74
  def test_add_file_multiple
67
75
  f = Tempfile.new("globalsign-root.pem")
68
76
  f << GLOBALSIGN_ROOT_CA
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: jruby-openssl-maven
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.7.4.1
5
+ version: 0.7.6.1
6
6
  platform: ruby
7
7
  authors:
8
8
  - Ola Bini and JRuby contributors
@@ -10,11 +10,20 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-04-27 00:00:00 +05:30
14
- default_executable:
15
- dependencies: []
16
-
17
- description: clone with jar dependencies of JRuby-OpenSSL is an add-on gem for JRuby that emulates the Ruby OpenSSL native library.
13
+ date: 2012-02-15 00:00:00 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rdoc
17
+ prerelease: false
18
+ requirement: &id001 !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ~>
22
+ - !ruby/object:Gem::Version
23
+ version: "3.10"
24
+ type: :development
25
+ version_requirements: *id001
26
+ description: JRuby-OpenSSL is an add-on gem for JRuby that emulates the Ruby OpenSSL native library.
18
27
  email: ola.bini@gmail.com
19
28
  executables: []
20
29
 
@@ -31,102 +40,152 @@ files:
31
40
  - Manifest.txt
32
41
  - README.txt
33
42
  - License.txt
34
- - lib/jopenssl.jar
35
- - lib/openssl.rb
36
- - lib/openssl/dummy.rb
37
- - lib/openssl/dummyssl.rb
38
- - lib/openssl/config.rb
39
- - lib/openssl/cipher.rb
40
- - lib/openssl/ssl.rb
41
- - lib/openssl/bn.rb
42
- - lib/openssl/x509.rb
43
- - lib/openssl/digest.rb
44
- - lib/openssl/buffering.rb
45
- - lib/openssl/pkcs7.rb
46
- - lib/jopenssl/version.rb
47
- - test/test_imaps.rb
43
+ - lib/shared/jopenssl.jar
44
+ - lib/1.9/openssl.rb
45
+ - lib/1.9/openssl/bn.rb
46
+ - lib/1.9/openssl/x509-internal.rb
47
+ - lib/1.9/openssl/cipher.rb
48
+ - lib/1.9/openssl/digest.rb
49
+ - lib/1.9/openssl/ssl.rb
50
+ - lib/1.9/openssl/buffering.rb
51
+ - lib/1.9/openssl/ssl-internal.rb
52
+ - lib/1.9/openssl/x509.rb
53
+ - lib/1.9/openssl/config.rb
54
+ - lib/shared/openssl.rb
55
+ - lib/shared/openssl/dummyssl.rb
56
+ - lib/shared/openssl/ssl.rb
57
+ - lib/shared/openssl/pkcs12.rb
58
+ - lib/shared/openssl/x509.rb
59
+ - lib/shared/openssl/dummy.rb
60
+ - lib/shared/jopenssl/version.rb
61
+ - lib/1.8/openssl.rb
62
+ - lib/1.8/openssl/bn.rb
63
+ - lib/1.8/openssl/pkcs7.rb
64
+ - lib/1.8/openssl/x509-internal.rb
65
+ - lib/1.8/openssl/cipher.rb
66
+ - lib/1.8/openssl/digest.rb
67
+ - lib/1.8/openssl/ssl.rb
68
+ - lib/1.8/openssl/buffering.rb
69
+ - lib/1.8/openssl/ssl-internal.rb
70
+ - lib/1.8/openssl/x509.rb
71
+ - lib/1.8/openssl/config.rb
48
72
  - test/test_all.rb
73
+ - test/test_pkey_dsa.rb
49
74
  - test/test_integration.rb
50
- - test/ut_eof.rb
51
- - test/test_java.rb
75
+ - test/test_ssl.rb
76
+ - test/test_parse_certificate.rb
52
77
  - test/test_openssl.rb
53
- - test/test_pkey.rb
54
- - test/test_cipher.rb
55
78
  - test/cert_with_ec_pk.cer
56
- - test/test_pkcs7.rb
79
+ - test/ut_eof.rb
57
80
  - test/test_x509store.rb
81
+ - test/test_imaps.rb
58
82
  - test/test_certificate.rb
59
- - test/test_parse_certificate.rb
60
- - test/test_ssl.rb
61
- - test/openssl/test_x509name.rb
62
- - test/openssl/test_ns_spki.rb
63
- - test/openssl/test_x509cert.rb
64
- - test/openssl/ssl_server.rb
65
- - test/openssl/test_pair.rb
66
- - test/openssl/test_ec.rb
67
- - test/openssl/test_config.rb
68
- - test/openssl/utils.rb
69
- - test/openssl/test_x509req.rb
70
- - test/openssl/test_cipher.rb
71
- - test/openssl/test_digest.rb
72
- - test/openssl/test_x509ext.rb
73
- - test/openssl/test_asn1.rb
74
- - test/openssl/test_pkcs7.rb
75
- - test/openssl/test_x509store.rb
76
- - test/openssl/test_pkey_rsa.rb
77
- - test/openssl/test_ssl.rb
78
- - test/openssl/test_x509crl.rb
79
- - test/openssl/test_hmac.rb
80
- - test/ref/compile.rb
83
+ - test/test_pkcs7.rb
84
+ - test/test_cipher.rb
85
+ - test/test_pkey_rsa.rb
86
+ - test/test_java.rb
87
+ - test/1.9/test_ssl_session.rb
88
+ - test/1.9/test_engine.rb
89
+ - test/1.9/test_asn1.rb
90
+ - test/1.9/test_pkey_dh.rb
91
+ - test/1.9/test_pkey_dsa.rb
92
+ - test/1.9/test_ocsp.rb
93
+ - test/1.9/ssl_server.rb
94
+ - test/1.9/test_x509ext.rb
95
+ - test/1.9/utils.rb
96
+ - test/1.9/test_ssl.rb
97
+ - test/1.9/test_buffering.rb
98
+ - test/1.9/test_ns_spki.rb
99
+ - test/1.9/test_digest.rb
100
+ - test/1.9/test_pair.rb
101
+ - test/1.9/test_x509crl.rb
102
+ - test/1.9/test_x509store.rb
103
+ - test/1.9/test_bn.rb
104
+ - test/1.9/test_pkey_ec.rb
105
+ - test/1.9/test_pkcs7.rb
106
+ - test/1.9/test_pkcs12.rb
107
+ - test/1.9/test_cipher.rb
108
+ - test/1.9/test_pkey_rsa.rb
109
+ - test/1.9/test_x509req.rb
110
+ - test/1.9/test_x509name.rb
111
+ - test/1.9/test_hmac.rb
112
+ - test/1.9/test_x509cert.rb
113
+ - test/1.9/test_config.rb
81
114
  - test/ref/a.out
82
115
  - test/ref/pkcs1
83
116
  - test/ref/pkcs1.c
84
- - test/fixture/cacert.pem
85
- - test/fixture/ca-bundle.crt
117
+ - test/ref/compile.rb
86
118
  - test/fixture/common.pem
87
119
  - test/fixture/key_then_cert.pem
120
+ - test/fixture/keypair.pem
121
+ - test/fixture/cacert.pem
88
122
  - test/fixture/verisign.pem
89
123
  - test/fixture/cert_localhost.pem
90
- - test/fixture/localhost_keypair.pem
91
- - test/fixture/verisign_c3.pem
92
124
  - test/fixture/selfcert.pem
93
125
  - test/fixture/max.pem
94
- - test/fixture/keypair.pem
126
+ - test/fixture/localhost_keypair.pem
127
+ - test/fixture/ids_in_subject_rdn_set.pem
128
+ - test/fixture/ca-bundle.crt
129
+ - test/fixture/verisign_c3.pem
130
+ - test/fixture/ca_path/72fa7371.0
131
+ - test/fixture/ca_path/verisign.pem
132
+ - test/fixture/imaps/cacert.pem
133
+ - test/fixture/imaps/server.crt
134
+ - test/fixture/imaps/server.key
135
+ - test/fixture/purpose/sslserver_no_dsig_in_keyUsage.pem
95
136
  - test/fixture/purpose/cacert.pem
96
- - test/fixture/purpose/b70a5bc1.0
97
- - test/fixture/purpose/sslclient.pem
98
137
  - test/fixture/purpose/sslserver.pem
99
- - test/fixture/purpose/sslclient/sslclient.pem
100
- - test/fixture/purpose/sslclient/csr.pem
101
- - test/fixture/purpose/sslclient/keypair.pem
102
- - test/fixture/purpose/ca/cacert.pem
138
+ - test/fixture/purpose/sslclient.pem
139
+ - test/fixture/purpose/b70a5bc1.0
140
+ - test/fixture/purpose/ca/serial
141
+ - test/fixture/purpose/ca/gen_cert.rb
103
142
  - test/fixture/purpose/ca/PASSWD_OF_CA_KEY_IS_1234
104
143
  - test/fixture/purpose/ca/ca_config.rb
105
- - test/fixture/purpose/ca/serial
106
- - test/fixture/purpose/ca/newcerts/2_cert.pem
107
- - test/fixture/purpose/ca/newcerts/3_cert.pem
144
+ - test/fixture/purpose/ca/cacert.pem
108
145
  - test/fixture/purpose/ca/private/cakeypair.pem
146
+ - test/fixture/purpose/ca/newcerts/4_cert.pem
147
+ - test/fixture/purpose/ca/newcerts/3_cert.pem
148
+ - test/fixture/purpose/ca/newcerts/2_cert.pem
149
+ - test/fixture/purpose/sslclient/csr.pem
150
+ - test/fixture/purpose/sslclient/keypair.pem
151
+ - test/fixture/purpose/sslclient/sslclient.pem
109
152
  - test/fixture/purpose/scripts/gen_cert.rb
110
153
  - test/fixture/purpose/scripts/init_ca.rb
111
154
  - test/fixture/purpose/scripts/gen_csr.rb
112
- - test/fixture/purpose/sslserver/sslserver.pem
113
155
  - test/fixture/purpose/sslserver/csr.pem
114
156
  - test/fixture/purpose/sslserver/keypair.pem
115
- - test/fixture/imaps/cacert.pem
116
- - test/fixture/imaps/server.crt
117
- - test/fixture/imaps/server.key
118
- - test/fixture/ca_path/verisign.pem
119
- - test/fixture/ca_path/72fa7371.0
157
+ - test/fixture/purpose/sslserver/sslserver.pem
158
+ - test/ruby/ut_eof.rb
159
+ - test/ruby/envutil.rb
120
160
  - test/java/pkcs7_mime_enveloped.message
121
- - test/java/pkcs7_mime_signed.message
161
+ - test/java/test_java_attribute.rb
122
162
  - test/java/test_java_pkcs7.rb
123
- - test/java/test_java_bio.rb
124
- - test/java/pkcs7_multipart_signed.message
125
163
  - test/java/test_java_mime.rb
126
- - test/java/test_java_attribute.rb
164
+ - test/java/pkcs7_mime_signed.message
127
165
  - test/java/test_java_smime.rb
128
- has_rdoc: true
129
- homepage: http://jruby-extras.rubyforge.org/jruby-openssl
166
+ - test/java/pkcs7_multipart_signed.message
167
+ - test/java/test_java_bio.rb
168
+ - test/1.8/test_asn1.rb
169
+ - test/1.8/ssl_server.rb
170
+ - test/1.8/test_x509ext.rb
171
+ - test/1.8/utils.rb
172
+ - test/1.8/test_ssl.rb
173
+ - test/1.8/test_ec.rb
174
+ - test/1.8/test_ns_spki.rb
175
+ - test/1.8/test_digest.rb
176
+ - test/1.8/test_pair.rb
177
+ - test/1.8/test_x509crl.rb
178
+ - test/1.8/test_x509store.rb
179
+ - test/1.8/test_pkcs7.rb
180
+ - test/1.8/test_cipher.rb
181
+ - test/1.8/test_pkey_rsa.rb
182
+ - test/1.8/test_x509req.rb
183
+ - test/1.8/test_x509name.rb
184
+ - test/1.8/test_hmac.rb
185
+ - test/1.8/test_x509cert.rb
186
+ - test/1.8/test_config.rb
187
+ - .gemtest
188
+ homepage: https://github.com/jruby/jruby-ossl
130
189
  licenses: []
131
190
 
132
191
  post_install_message:
@@ -134,7 +193,7 @@ rdoc_options:
134
193
  - --main
135
194
  - README.txt
136
195
  require_paths:
137
- - lib
196
+ - lib/shared
138
197
  required_ruby_version: !ruby/object:Gem::Requirement
139
198
  none: false
140
199
  requirements:
@@ -148,12 +207,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
148
207
  - !ruby/object:Gem::Version
149
208
  version: "0"
150
209
  requirements:
151
- - |+
152
- jar 'bouncycastle:bcmail-jdk15', '140'
153
- jar('org.jruby:jruby-complete', '1.6.4').scope :provided
154
-
210
+ - jar 'org.bouncycastle:bcmail-jdk15on', '1.47'
155
211
  rubyforge_project: jruby-extras
156
- rubygems_version: 1.5.1
212
+ rubygems_version: 1.8.9
157
213
  signing_key:
158
214
  specification_version: 3
159
215
  summary: OpenSSL add-on for JRuby
Binary file
@@ -1,204 +0,0 @@
1
- begin
2
- require "openssl"
3
- rescue LoadError
4
- end
5
-
6
- require "test/unit"
7
-
8
- class TestPKey < Test::Unit::TestCase
9
- def test_has_correct_methods
10
- pkey_methods = OpenSSL::PKey::PKey.instance_methods(false).sort - ["initialize"]
11
- assert_equal ["sign", "verify"], pkey_methods
12
-
13
- rsa_methods = OpenSSL::PKey::RSA.instance_methods(false).sort - ["initialize"]
14
- assert_equal ["d", "d=", "dmp1", "dmp1=", "dmq1", "dmq1=", "e", "e=", "export", "iqmp", "iqmp=", "n", "n=", "p", "p=", "params", "private?", "private_decrypt", "private_encrypt", "public?", "public_decrypt", "public_encrypt", "public_key", "q", "q=", "to_der", "to_pem", "to_s", "to_text"], rsa_methods
15
-
16
- assert_equal ["generate"], OpenSSL::PKey::RSA.methods(false)
17
-
18
- # dsa_methods = OpenSSL::PKey::DSA.instance_methods(false).sort - ["initialize"]
19
- # assert_equal ["export", "g", "g=", "p", "p=", "params", "priv_key", "priv_key=", "private?", "pub_key", "pub_key=", "public?", "public_key", "q", "q=", "syssign", "sysverify", "to_der", "to_pem", "to_s", "to_text"], dsa_methods
20
-
21
- # assert_equal ["generate"], OpenSSL::PKey::DSA.methods(false)
22
- end
23
-
24
- #iqmp == coefficient
25
- #e == public exponent
26
- #n == modulus
27
- #d == private exponent
28
- #p == prime1
29
- #q == prime2
30
- #dmq1 == exponent2
31
- #dmp1 == exponent1
32
-
33
- def test_can_generate_rsa_key
34
- OpenSSL::PKey::RSA.generate(512)
35
- end
36
-
37
- def test_can_generate_dsa_key
38
- OpenSSL::PKey::DSA.generate(512)
39
- end
40
-
41
- def test_malformed_rsa_handling
42
- pem = <<__EOP__
43
- -----BEGIN PUBLIC KEY-----
44
- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtiU1/UMzIQ1On9OlZGoV
45
- S0yySFYWoXLH12nmP69fg9jwdRbQlb0rxLn7zATbwfqcvGpCcW+8SmdwW74elNrc
46
- wRtbKjJKfbJCsVfDssbbj6BF+Bcq3ihi8+CGNXFdJOYhZZ+5Adg2Qc9Qp3Ubw9wu
47
- /3Ai87+1aQxoZPMFwdX2BRiZvxch9dwHVyL8EuFGUOYId/8JQepHyZMbTqp/8wlA
48
- UAbMcPW+IKp3N0WMgred3CjXKHAqqM0Ira9RLSXdlO2uFV4OrM0ak8rnTN5w1DsI
49
- McjvVvOck0aIxfHEEmeadt3YMn4PCW33/j8geulZLvt0ci60/OWMSCcIqByITlvY
50
- DwIDAQAB
51
- -----END PUBLIC KEY-----
52
- __EOP__
53
- pkey = OpenSSL::PKey::RSA.new(pem)
54
- # jruby-openssl/0.6 raises NativeException
55
- assert_raise(OpenSSL::PKey::RSAError, 'JRUBY-4492') do
56
- pkey.public_decrypt("rah")
57
- end
58
- end
59
-
60
- # http://github.com/jruby/jruby-openssl/issues#issue/1
61
- def test_load_pkey_rsa
62
- pem = <<__EOP__
63
- -----BEGIN PRIVATE KEY-----
64
- MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALRiMLAh9iimur8V
65
- A7qVvdqxevEuUkW4K+2KdMXmnQbG9Aa7k7eBjK1S+0LYmVjPKlJGNXHDGuy5Fw/d
66
- 7rjVJ0BLB+ubPK8iA/Tw3hLQgXMRRGRXXCn8ikfuQfjUS1uZSatdLB81mydBETlJ
67
- hI6GH4twrbDJCR2Bwy/XWXgqgGRzAgMBAAECgYBYWVtleUzavkbrPjy0T5FMou8H
68
- X9u2AC2ry8vD/l7cqedtwMPp9k7TubgNFo+NGvKsl2ynyprOZR1xjQ7WgrgVB+mm
69
- uScOM/5HVceFuGRDhYTCObE+y1kxRloNYXnx3ei1zbeYLPCHdhxRYW7T0qcynNmw
70
- rn05/KO2RLjgQNalsQJBANeA3Q4Nugqy4QBUCEC09SqylT2K9FrrItqL2QKc9v0Z
71
- zO2uwllCbg0dwpVuYPYXYvikNHHg+aCWF+VXsb9rpPsCQQDWR9TT4ORdzoj+Nccn
72
- qkMsDmzt0EfNaAOwHOmVJ2RVBspPcxt5iN4HI7HNeG6U5YsFBb+/GZbgfBT3kpNG
73
- WPTpAkBI+gFhjfJvRw38n3g/+UeAkwMI2TJQS4n8+hid0uus3/zOjDySH3XHCUno
74
- cn1xOJAyZODBo47E+67R4jV1/gzbAkEAklJaspRPXP877NssM5nAZMU0/O/NGCZ+
75
- 3jPgDUno6WbJn5cqm8MqWhW1xGkImgRk+fkDBquiq4gPiT898jusgQJAd5Zrr6Q8
76
- AO/0isr/3aa6O6NLQxISLKcPDk2NOccAfS/xOtfOz4sJYM3+Bs4Io9+dZGSDCA54
77
- Lw03eHTNQghS0A==
78
- -----END PRIVATE KEY-----
79
- __EOP__
80
- assert_nothing_raised do
81
- pkey = OpenSSL::PKey::RSA.new(pem)
82
- pkey2 = OpenSSL::PKey::RSA.new(pkey.to_pem)
83
- assert_equal(pkey.n, pkey2.n)
84
- assert_equal(pkey.e, pkey2.e)
85
- assert_equal(pkey.d, pkey2.d)
86
- end
87
- end
88
-
89
- def test_load_pkey_rsa_enc
90
- # password is '1234'
91
- pem = <<__EOP__
92
- -----BEGIN ENCRYPTED PRIVATE KEY-----
93
- MIICoTAbBgkqhkiG9w0BBQMwDgQIfvehP6JEg2wCAggABIICgD7kzSr+xWgdAuzG
94
- cYNkCEWyKF6V0cJ58AKSoL4FQ59OQvQP/hMnSZEMiUpeGNRE6efC7O02RUjNarIk
95
- ciCYIBqd5EFG3OSypK5l777AbCChIkzZHbyE/pIbadr8ZX9C4pkwzPqS0Avzavxi
96
- 5s1WDX2GggJkBcQUijqG9QuOZcOvoYbojHPT4tdJq+J6s+0LFas9Jp3a6dYkxtgv
97
- u8Z6EFDZoLGOSVy/jCSMuZAnhoOxUCYqd9FFo2jryV7tQ/CaYAUApAQFTLgBA9qk
98
- 4WmyKRpwzIx6EG1pkqulvPXJCcTat9YwllEDVuQ2rKVwDepSl9O7X170Kx1sBecz
99
- mGcfqviU9xwP5mkXO/TLoTZExkHF08Y3d/PTMdxGEDZH37/yRqCIb3Uyqv/jLibM
100
- /s9fm52aWsfO1ndHEhciovlMJvGXq3+e+9gmq1w2TyNQahRc5fwfhwWKhPKfYDBk
101
- 7AtjPGfELDX61WZ5m+4Kb70BcGSAEgXCaBydVsMROy0B8jkYgtAnVBb4EMrGOsCG
102
- jmNeW9MRIhrhDcifdyq1DMNg7IONMF+5mDdQ3FhK6WzlFU+8cTN517qA8L3A3+ZX
103
- asiS+rx5/50InINknjuvVkmTGMzjl89nMNrZCjhx9sIDfXQ3ZKFmh1mvnXq/fLan
104
- CgXn/UtLoykrSlobgqIxZslhj3p01kMCgGe62S3kokYrDTQEc57rlKWWR3Xyjy/T
105
- LsecXAKEROj95IHSMMnT4jl+TJnbvGKQ2U9tOOB3W+OOOlDEFE59pQlcmQPAwdzr
106
- mzI4kupi3QRTFjOgvX29leII9sPtpr4dKMKVIRxKnvMZhUAkS/n3+Szfa6zKexLa
107
- 4CHVgDo=
108
- -----END ENCRYPTED PRIVATE KEY-----
109
- __EOP__
110
- assert_nothing_raised do
111
- pkey = OpenSSL::PKey::RSA.new(pem, '1234')
112
- pkey2 = OpenSSL::PKey::RSA.new(pkey.to_pem)
113
- assert_equal(pkey.n, pkey2.n)
114
- assert_equal(pkey.e, pkey2.e)
115
- assert_equal(pkey.d, pkey2.d)
116
- end
117
- end
118
-
119
- # jruby-openssl/0.6 causes NPE
120
- def test_generate_pkey_rsa_empty
121
- assert_nothing_raised do
122
- OpenSSL::PKey::RSA.new.to_pem
123
- end
124
- end
125
-
126
- def test_generate_pkey_rsa_length
127
- assert_nothing_raised do
128
- OpenSSL::PKey::RSA.new(512).to_pem
129
- end
130
- end
131
-
132
- def test_generate_pkey_rsa_to_text
133
- assert_match(
134
- /Private-Key: \(512 bit\)/,
135
- OpenSSL::PKey::RSA.new(512).to_text
136
- )
137
- end
138
-
139
- def test_load_pkey_rsa
140
- pkey = OpenSSL::PKey::RSA.new(512)
141
- assert_equal(pkey.to_pem, OpenSSL::PKey::RSA.new(pkey.to_pem).to_pem)
142
- end
143
-
144
- def test_load_pkey_rsa_public
145
- pkey = OpenSSL::PKey::RSA.new(512).public_key
146
- assert_equal(pkey.to_pem, OpenSSL::PKey::RSA.new(pkey.to_pem).to_pem)
147
- end
148
-
149
- def test_load_pkey_rsa_der
150
- pkey = OpenSSL::PKey::RSA.new(512)
151
- assert_equal(pkey.to_der, OpenSSL::PKey::RSA.new(pkey.to_der).to_der)
152
- end
153
-
154
- def test_load_pkey_rsa_public_der
155
- pkey = OpenSSL::PKey::RSA.new(512).public_key
156
- assert_equal(pkey.to_der, OpenSSL::PKey::RSA.new(pkey.to_der).to_der)
157
- end
158
-
159
- # jruby-openssl/0.6 causes NPE
160
- def test_generate_pkey_dsa_empty
161
- assert_nothing_raised do
162
- OpenSSL::PKey::DSA.new.to_pem
163
- end
164
- end
165
-
166
- # jruby-openssl/0.6 ignores fixnum arg => to_pem returned 65 bytes with 'MAA='
167
- def test_generate_pkey_dsa_length
168
- assert(OpenSSL::PKey::DSA.new(512).to_pem.size > 100)
169
- end
170
-
171
- # jruby-openssl/0.6 returns nil for DSA#to_text
172
- def test_generate_pkey_dsa_to_text
173
- assert_match(
174
- /Private-Key: \(512 bit\)/,
175
- OpenSSL::PKey::DSA.new(512).to_text
176
- )
177
- end
178
-
179
- def test_load_pkey_dsa
180
- pkey = OpenSSL::PKey::DSA.new(512)
181
- assert_equal(pkey.to_pem, OpenSSL::PKey::DSA.new(pkey.to_pem).to_pem)
182
- end
183
-
184
- def test_load_pkey_dsa_public
185
- pkey = OpenSSL::PKey::DSA.new(512).public_key
186
- assert_equal(pkey.to_pem, OpenSSL::PKey::DSA.new(pkey.to_pem).to_pem)
187
- end
188
-
189
- def test_load_pkey_dsa_der
190
- pkey = OpenSSL::PKey::DSA.new(512)
191
- assert_equal(pkey.to_der, OpenSSL::PKey::DSA.new(pkey.to_der).to_der)
192
- end
193
-
194
- def test_load_pkey_dsa_public_der
195
- pkey = OpenSSL::PKey::DSA.new(512).public_key
196
- assert_equal(pkey.to_der, OpenSSL::PKey::DSA.new(pkey.to_der).to_der)
197
- end
198
-
199
- def test_load_pkey_dsa_net_ssh
200
- blob = "0\201\367\002\001\000\002A\000\203\316/\037u\272&J\265\003l3\315d\324h\372{\t8\252#\331_\026\006\035\270\266\255\343\353Z\302\276\335\336\306\220\375\202L\244\244J\206>\346\b\315\211\302L\246x\247u\a\376\366\345\302\016#\002\025\000\244\274\302\221Og\275/\302+\356\346\360\024\373wI\2573\361\002@\027\215\270r*\f\213\350C\245\021:\350 \006\\\376\345\022`\210b\262\3643\023XLKS\320\370\002\276\347A\nU\204\276\324\256`=\026\240\330\306J\316V\213\024\e\030\215\355\006\037q\337\356ln\002@\017\257\034\f\260\333'S\271#\237\230E\321\312\027\021\226\331\251Vj\220\305\316\036\v\266+\000\230\270\177B\003?t\a\305]e\344\261\334\023\253\323\251\223M\2175)a(\004\"lI8\312\303\307\a\002\024_\aznW\345\343\203V\326\246ua\203\376\201o\350\302\002"
201
- pkey = OpenSSL::PKey::DSA.new(blob)
202
- assert_equal(blob, pkey.to_der)
203
- end
204
- end