jruby-openssl 0.8.0.pre3 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (109) hide show
  1. data/Manifest.txt +5 -124
  2. data/Rakefile +3 -3
  3. data/lib/shared/jopenssl.jar +0 -0
  4. data/lib/shared/jopenssl/version.rb +1 -1
  5. metadata +10 -116
  6. data/test/1.8/ssl_server.rb +0 -99
  7. data/test/1.8/test_asn1.rb +0 -212
  8. data/test/1.8/test_cipher.rb +0 -193
  9. data/test/1.8/test_config.rb +0 -290
  10. data/test/1.8/test_digest.rb +0 -88
  11. data/test/1.8/test_ec.rb +0 -128
  12. data/test/1.8/test_hmac.rb +0 -46
  13. data/test/1.8/test_ns_spki.rb +0 -59
  14. data/test/1.8/test_pair.rb +0 -149
  15. data/test/1.8/test_pkcs7.rb +0 -489
  16. data/test/1.8/test_pkey_rsa.rb +0 -49
  17. data/test/1.8/test_ssl.rb +0 -1032
  18. data/test/1.8/test_x509cert.rb +0 -277
  19. data/test/1.8/test_x509crl.rb +0 -253
  20. data/test/1.8/test_x509ext.rb +0 -99
  21. data/test/1.8/test_x509name.rb +0 -290
  22. data/test/1.8/test_x509req.rb +0 -195
  23. data/test/1.8/test_x509store.rb +0 -246
  24. data/test/1.8/utils.rb +0 -144
  25. data/test/1.9/ssl_server.rb +0 -81
  26. data/test/1.9/test_asn1.rb +0 -589
  27. data/test/1.9/test_bn.rb +0 -23
  28. data/test/1.9/test_buffering.rb +0 -88
  29. data/test/1.9/test_cipher.rb +0 -107
  30. data/test/1.9/test_config.rb +0 -288
  31. data/test/1.9/test_digest.rb +0 -118
  32. data/test/1.9/test_engine.rb +0 -15
  33. data/test/1.9/test_hmac.rb +0 -32
  34. data/test/1.9/test_ns_spki.rb +0 -50
  35. data/test/1.9/test_ocsp.rb +0 -47
  36. data/test/1.9/test_pair.rb +0 -257
  37. data/test/1.9/test_pkcs12.rb +0 -209
  38. data/test/1.9/test_pkcs7.rb +0 -156
  39. data/test/1.9/test_pkey_dh.rb +0 -72
  40. data/test/1.9/test_pkey_dsa.rb +0 -224
  41. data/test/1.9/test_pkey_ec.rb +0 -182
  42. data/test/1.9/test_pkey_rsa.rb +0 -244
  43. data/test/1.9/test_ssl.rb +0 -499
  44. data/test/1.9/test_ssl_session.rb +0 -327
  45. data/test/1.9/test_x509cert.rb +0 -217
  46. data/test/1.9/test_x509crl.rb +0 -221
  47. data/test/1.9/test_x509ext.rb +0 -69
  48. data/test/1.9/test_x509name.rb +0 -366
  49. data/test/1.9/test_x509req.rb +0 -150
  50. data/test/1.9/test_x509store.rb +0 -229
  51. data/test/1.9/utils.rb +0 -304
  52. data/test/cert_with_ec_pk.cer +0 -27
  53. data/test/fixture/ca-bundle.crt +0 -2794
  54. data/test/fixture/ca_path/72fa7371.0 +0 -19
  55. data/test/fixture/ca_path/verisign.pem +0 -19
  56. data/test/fixture/cacert.pem +0 -23
  57. data/test/fixture/cert_localhost.pem +0 -19
  58. data/test/fixture/common.pem +0 -48
  59. data/test/fixture/ids_in_subject_rdn_set.pem +0 -31
  60. data/test/fixture/imaps/cacert.pem +0 -60
  61. data/test/fixture/imaps/server.crt +0 -61
  62. data/test/fixture/imaps/server.key +0 -15
  63. data/test/fixture/key_then_cert.pem +0 -34
  64. data/test/fixture/keypair.pem +0 -27
  65. data/test/fixture/localhost_keypair.pem +0 -18
  66. data/test/fixture/max.pem +0 -29
  67. data/test/fixture/purpose/b70a5bc1.0 +0 -24
  68. data/test/fixture/purpose/ca/PASSWD_OF_CA_KEY_IS_1234 +0 -0
  69. data/test/fixture/purpose/ca/ca_config.rb +0 -37
  70. data/test/fixture/purpose/ca/cacert.pem +0 -24
  71. data/test/fixture/purpose/ca/newcerts/2_cert.pem +0 -19
  72. data/test/fixture/purpose/ca/newcerts/3_cert.pem +0 -19
  73. data/test/fixture/purpose/ca/newcerts/4_cert.pem +0 -19
  74. data/test/fixture/purpose/ca/private/cakeypair.pem +0 -30
  75. data/test/fixture/purpose/ca/serial +0 -1
  76. data/test/fixture/purpose/cacert.pem +0 -24
  77. data/test/fixture/purpose/scripts/gen_cert.rb +0 -127
  78. data/test/fixture/purpose/scripts/gen_csr.rb +0 -50
  79. data/test/fixture/purpose/scripts/init_ca.rb +0 -66
  80. data/test/fixture/purpose/sslclient.pem +0 -19
  81. data/test/fixture/purpose/sslclient/csr.pem +0 -10
  82. data/test/fixture/purpose/sslclient/keypair.pem +0 -15
  83. data/test/fixture/purpose/sslclient/sslclient.pem +0 -19
  84. data/test/fixture/purpose/sslserver.pem +0 -19
  85. data/test/fixture/purpose/sslserver/csr.pem +0 -10
  86. data/test/fixture/purpose/sslserver/keypair.pem +0 -15
  87. data/test/fixture/purpose/sslserver/sslserver.pem +0 -19
  88. data/test/fixture/purpose/sslserver_no_dsig_in_keyUsage.pem +0 -19
  89. data/test/fixture/selfcert.pem +0 -23
  90. data/test/fixture/verisign.pem +0 -19
  91. data/test/fixture/verisign_c3.pem +0 -14
  92. data/test/ref/a.out +0 -0
  93. data/test/ref/compile.rb +0 -8
  94. data/test/ref/pkcs1 +0 -0
  95. data/test/ref/pkcs1.c +0 -21
  96. data/test/ruby/envutil.rb +0 -208
  97. data/test/ruby/ut_eof.rb +0 -128
  98. data/test/test_all.rb +0 -1
  99. data/test/test_certificate.rb +0 -132
  100. data/test/test_cipher.rb +0 -197
  101. data/test/test_imaps.rb +0 -107
  102. data/test/test_integration.rb +0 -144
  103. data/test/test_openssl.rb +0 -4
  104. data/test/test_parse_certificate.rb +0 -27
  105. data/test/test_pkcs7.rb +0 -56
  106. data/test/test_pkey_dsa.rb +0 -180
  107. data/test/test_pkey_rsa.rb +0 -329
  108. data/test/test_ssl.rb +0 -97
  109. data/test/test_x509store.rb +0 -168
@@ -1,23 +0,0 @@
1
- require_relative 'utils'
2
-
3
- if defined?(OpenSSL)
4
-
5
- class OpenSSL::TestBN < Test::Unit::TestCase
6
- def test_integer_to_bn
7
- assert_equal(999.to_bn, OpenSSL::BN.new(999.to_s(16), 16))
8
- assert_equal((2 ** 107 - 1).to_bn, OpenSSL::BN.new((2 ** 107 - 1).to_s(16), 16))
9
- end
10
-
11
- def test_prime_p
12
- assert_equal(true, OpenSSL::BN.new((2 ** 107 - 1).to_s(16), 16).prime?)
13
- assert_equal(true, OpenSSL::BN.new((2 ** 127 - 1).to_s(16), 16).prime?(1))
14
- end
15
-
16
- def test_cmp_nil
17
- bn = OpenSSL::BN.new('1')
18
- assert_equal(false, bn == nil)
19
- assert_equal(true, bn != nil)
20
- end
21
- end
22
-
23
- end
@@ -1,88 +0,0 @@
1
- require_relative 'utils'
2
- require 'stringio'
3
-
4
- class OpenSSL::TestBuffering < Test::Unit::TestCase
5
-
6
- class IO
7
- include OpenSSL::Buffering
8
-
9
- attr_accessor :sync
10
-
11
- def initialize
12
- @io = ""
13
- def @io.sync
14
- true
15
- end
16
-
17
- super
18
-
19
- @sync = false
20
- end
21
-
22
- def string
23
- @io
24
- end
25
-
26
- def sysread(size)
27
- str = @io.slice!(0, size)
28
- raise EOFError if str.empty?
29
- str
30
- end
31
-
32
- def syswrite(str)
33
- @io << str
34
- str.size
35
- end
36
- end
37
-
38
- def setup
39
- @io = IO.new
40
- end
41
-
42
- def test_flush
43
- @io.write 'a'
44
-
45
- refute @io.sync
46
- assert_empty @io.string
47
-
48
- assert_equal @io, @io.flush
49
-
50
- refute @io.sync
51
- assert_equal 'a', @io.string
52
- end
53
-
54
- def test_flush_error
55
- @io.write 'a'
56
-
57
- refute @io.sync
58
- assert_empty @io.string
59
-
60
- def @io.syswrite *a
61
- raise SystemCallError, 'fail'
62
- end
63
-
64
- assert_raises SystemCallError do
65
- @io.flush
66
- end
67
-
68
- refute @io.sync, 'sync must not change'
69
- end
70
-
71
- def test_getc
72
- @io.syswrite('abc')
73
- res = []
74
- assert_equal(?a, @io.getc)
75
- assert_equal(?b, @io.getc)
76
- assert_equal(?c, @io.getc)
77
- end
78
-
79
- def test_each_byte
80
- @io.syswrite('abc')
81
- res = []
82
- @io.each_byte do |c|
83
- res << c
84
- end
85
- assert_equal([97, 98, 99], res)
86
- end
87
-
88
- end if defined?(OpenSSL)
@@ -1,107 +0,0 @@
1
- require_relative 'utils'
2
-
3
- if defined?(OpenSSL)
4
-
5
- class OpenSSL::TestCipher < Test::Unit::TestCase
6
- def setup
7
- @c1 = OpenSSL::Cipher::Cipher.new("DES-EDE3-CBC")
8
- @c2 = OpenSSL::Cipher::DES.new(:EDE3, "CBC")
9
- @key = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
10
- @iv = "\0\0\0\0\0\0\0\0"
11
- @hexkey = "0000000000000000000000000000000000000000000000"
12
- @hexiv = "0000000000000000"
13
- @data = "DATA"
14
- end
15
-
16
- def teardown
17
- @c1 = @c2 = nil
18
- end
19
-
20
- def test_crypt
21
- @c1.encrypt.pkcs5_keyivgen(@key, @iv)
22
- @c2.encrypt.pkcs5_keyivgen(@key, @iv)
23
- s1 = @c1.update(@data) + @c1.final
24
- s2 = @c2.update(@data) + @c2.final
25
- assert_equal(s1, s2, "encrypt")
26
-
27
- @c1.decrypt.pkcs5_keyivgen(@key, @iv)
28
- @c2.decrypt.pkcs5_keyivgen(@key, @iv)
29
- assert_equal(@data, @c1.update(s1)+@c1.final, "decrypt")
30
- assert_equal(@data, @c2.update(s2)+@c2.final, "decrypt")
31
- end
32
-
33
- def test_info
34
- assert_equal("DES-EDE3-CBC", @c1.name, "name")
35
- assert_equal("DES-EDE3-CBC", @c2.name, "name")
36
- assert_kind_of(Fixnum, @c1.key_len, "key_len")
37
- assert_kind_of(Fixnum, @c1.iv_len, "iv_len")
38
- end
39
-
40
- def test_dup
41
- assert_equal(@c1.name, @c1.dup.name, "dup")
42
- assert_equal(@c1.name, @c1.clone.name, "clone")
43
- @c1.encrypt
44
- @c1.key = @key
45
- @c1.iv = @iv
46
- tmpc = @c1.dup
47
- s1 = @c1.update(@data) + @c1.final
48
- s2 = tmpc.update(@data) + tmpc.final
49
- assert_equal(s1, s2, "encrypt dup")
50
- end
51
-
52
- def test_reset
53
- @c1.encrypt
54
- @c1.key = @key
55
- @c1.iv = @iv
56
- s1 = @c1.update(@data) + @c1.final
57
- @c1.reset
58
- s2 = @c1.update(@data) + @c1.final
59
- assert_equal(s1, s2, "encrypt reset")
60
- end
61
-
62
- def test_empty_data
63
- @c1.encrypt
64
- assert_raise(ArgumentError){ @c1.update("") }
65
- end
66
-
67
- def test_initialize
68
- assert_raise(RuntimeError) {@c1.__send__(:initialize, "DES-EDE3-CBC")}
69
- assert_raise(RuntimeError) {OpenSSL::Cipher.allocate.final}
70
- end
71
-
72
- if OpenSSL::OPENSSL_VERSION_NUMBER > 0x00907000
73
- def test_ciphers
74
- OpenSSL::Cipher.ciphers.each{|name|
75
- assert(OpenSSL::Cipher::Cipher.new(name).is_a?(OpenSSL::Cipher::Cipher))
76
- }
77
- end
78
-
79
- # This test fails without unlimited US_export.policy
80
- def test_AES
81
- pt = File.read(__FILE__)
82
- %w(ECB CBC CFB OFB).each{|mode|
83
- c1 = OpenSSL::Cipher::AES256.new(mode)
84
- c1.encrypt
85
- c1.pkcs5_keyivgen("passwd")
86
- ct = c1.update(pt) + c1.final
87
-
88
- c2 = OpenSSL::Cipher::AES256.new(mode)
89
- c2.decrypt
90
- c2.pkcs5_keyivgen("passwd")
91
- assert_equal(pt, c2.update(ct) + c2.final)
92
- }
93
- end
94
-
95
- # In JRuby key must be provided first. (CipherError)
96
- def NOT_test_AES_crush
97
- 500.times do
98
- assert_nothing_raised("[Bug #2768]") do
99
- # it caused OpenSSL SEGV by uninitialized key
100
- OpenSSL::Cipher::AES128.new("ECB").update "." * 17
101
- end
102
- end
103
- end
104
- end
105
- end
106
-
107
- end
@@ -1,288 +0,0 @@
1
- require_relative 'utils'
2
-
3
- class OpenSSL::TestConfig < Test::Unit::TestCase
4
- def setup
5
- file = Tempfile.open("openssl.cnf")
6
- file << <<__EOD__
7
- HOME = .
8
- [ ca ]
9
- default_ca = CA_default
10
- [ CA_default ]
11
- dir = ./demoCA
12
- certs = ./certs
13
- __EOD__
14
- file.close
15
- @it = OpenSSL::Config.new(file.path)
16
- end
17
-
18
- def test_constants
19
- assert(defined?(OpenSSL::Config::DEFAULT_CONFIG_FILE))
20
- assert_nothing_raised do
21
- OpenSSL::Config.load(OpenSSL::Config::DEFAULT_CONFIG_FILE)
22
- end
23
- end
24
-
25
- def test_s_parse
26
- c = OpenSSL::Config.parse('')
27
- assert_equal("[ default ]\n\n", c.to_s)
28
- c = OpenSSL::Config.parse(@it.to_s)
29
- assert_equal(['CA_default', 'ca', 'default'], c.sections.sort)
30
- end
31
-
32
- def test_s_parse_format
33
- c = OpenSSL::Config.parse(<<__EOC__)
34
- baz =qx\t # "baz = qx"
35
-
36
- foo::bar = baz # shortcut section::key format
37
- default::bar = baz # ditto
38
- a=\t \t # "a = ": trailing spaces are ignored
39
- =b # " = b": empty key
40
- =c # " = c": empty key (override the above line)
41
- d= # "c = ": trailing comment is ignored
42
-
43
- sq = 'foo''b\\'ar'
44
- dq ="foo""''\\""
45
- dq2 = foo""bar
46
- esc=a\\r\\n\\b\\tb
47
- foo\\bar = foo\\b\\\\ar
48
- foo\\bar::foo\\bar = baz
49
- [default1 default2]\t\t # space is allowed in section name
50
- fo =b ar # space allowed in value
51
- [emptysection]
52
- [doller ]
53
- foo=bar
54
- bar = $(foo)
55
- baz = 123$(default::bar)456${foo}798
56
- qux = ${baz}
57
- quxx = $qux.$qux
58
- __EOC__
59
- assert_equal(['default', 'default1 default2', 'doller', 'emptysection', 'foo', 'foo\\bar'], c.sections.sort)
60
- assert_equal(['', 'a', 'bar', 'baz', 'd', 'dq', 'dq2', 'esc', 'foo\\bar', 'sq'], c['default'].keys.sort)
61
- assert_equal('c', c['default'][''])
62
- assert_equal('', c['default']['a'])
63
- assert_equal('qx', c['default']['baz'])
64
- assert_equal('', c['default']['d'])
65
- assert_equal('baz', c['default']['bar'])
66
- assert_equal("foob'ar", c['default']['sq'])
67
- assert_equal("foo''\"", c['default']['dq'])
68
- assert_equal("foobar", c['default']['dq2'])
69
- assert_equal("a\r\n\b\tb", c['default']['esc'])
70
- assert_equal("foo\b\\ar", c['default']['foo\\bar'])
71
- assert_equal('baz', c['foo']['bar'])
72
- assert_equal('baz', c['foo\\bar']['foo\\bar'])
73
- assert_equal('b ar', c['default1 default2']['fo'])
74
-
75
- # dolloer
76
- assert_equal('bar', c['doller']['foo'])
77
- assert_equal('bar', c['doller']['bar'])
78
- assert_equal('123baz456bar798', c['doller']['baz'])
79
- assert_equal('123baz456bar798', c['doller']['qux'])
80
- assert_equal('123baz456bar798.123baz456bar798', c['doller']['quxx'])
81
-
82
- excn = assert_raise(OpenSSL::ConfigError) do
83
- OpenSSL::Config.parse("foo = $bar")
84
- end
85
- assert_equal("error in line 1: variable has no value", excn.message)
86
-
87
- excn = assert_raise(OpenSSL::ConfigError) do
88
- OpenSSL::Config.parse("foo = $(bar")
89
- end
90
- assert_equal("error in line 1: no close brace", excn.message)
91
-
92
- excn = assert_raise(OpenSSL::ConfigError) do
93
- OpenSSL::Config.parse("f o =b ar # no space in key")
94
- end
95
- assert_equal("error in line 1: missing equal sign", excn.message)
96
-
97
- excn = assert_raise(OpenSSL::ConfigError) do
98
- OpenSSL::Config.parse(<<__EOC__)
99
- # comment 1 # comments
100
-
101
- #
102
- # comment 2
103
- \t#comment 3
104
- [second ]\t
105
- [third # section not terminated
106
- __EOC__
107
- end
108
- assert_equal("error in line 7: missing close square bracket", excn.message)
109
- end
110
-
111
- def test_s_load
112
- # alias of new
113
- c = OpenSSL::Config.load
114
- assert_equal("", c.to_s)
115
- assert_equal([], c.sections)
116
- #
117
- file = Tempfile.open("openssl.cnf")
118
- file.close
119
- c = OpenSSL::Config.load(file.path)
120
- assert_equal("[ default ]\n\n", c.to_s)
121
- assert_equal(['default'], c.sections)
122
- end
123
-
124
- def test_initialize
125
- c = OpenSSL::Config.new
126
- assert_equal("", c.to_s)
127
- assert_equal([], c.sections)
128
- end
129
-
130
- def test_initialize_with_empty_file
131
- file = Tempfile.open("openssl.cnf")
132
- file.close
133
- c = OpenSSL::Config.new(file.path)
134
- assert_equal("[ default ]\n\n", c.to_s)
135
- assert_equal(['default'], c.sections)
136
- end
137
-
138
- def test_initialize_with_example_file
139
- assert_equal(['CA_default', 'ca', 'default'], @it.sections.sort)
140
- end
141
-
142
- def test_get_value
143
- assert_equal('CA_default', @it.get_value('ca', 'default_ca'))
144
- assert_equal(nil, @it.get_value('ca', 'no such key'))
145
- assert_equal(nil, @it.get_value('no such section', 'no such key'))
146
- assert_equal('.', @it.get_value('', 'HOME'))
147
- assert_raise(TypeError) do
148
- @it.get_value(nil, 'HOME') # not allowed unlike Config#value
149
- end
150
- # fallback to 'default' ugly...
151
- assert_equal('.', @it.get_value('unknown', 'HOME'))
152
- end
153
-
154
- def test_get_value_ENV
155
- key = ENV.keys.first
156
- assert_not_nil(key) # make sure we have at least one ENV var.
157
- assert_equal(ENV[key], @it.get_value('ENV', key))
158
- end
159
-
160
- def test_value
161
- # supress deprecation warnings
162
- OpenSSL::TestUtils.silent do
163
- assert_equal('CA_default', @it.value('ca', 'default_ca'))
164
- assert_equal(nil, @it.value('ca', 'no such key'))
165
- assert_equal(nil, @it.value('no such section', 'no such key'))
166
- assert_equal('.', @it.value('', 'HOME'))
167
- assert_equal('.', @it.value(nil, 'HOME'))
168
- assert_equal('.', @it.value('HOME'))
169
- # fallback to 'default' ugly...
170
- assert_equal('.', @it.value('unknown', 'HOME'))
171
- end
172
- end
173
-
174
- def test_value_ENV
175
- OpenSSL::TestUtils.silent do
176
- key = ENV.keys.first
177
- assert_not_nil(key) # make sure we have at least one ENV var.
178
- assert_equal(ENV[key], @it.value('ENV', key))
179
- end
180
- end
181
-
182
- def test_aref
183
- assert_equal({'HOME' => '.'}, @it['default'])
184
- assert_equal({'dir' => './demoCA', 'certs' => './certs'}, @it['CA_default'])
185
- assert_equal({}, @it['no_such_section'])
186
- assert_equal({}, @it[''])
187
- end
188
-
189
- def test_section
190
- OpenSSL::TestUtils.silent do
191
- assert_equal({'HOME' => '.'}, @it.section('default'))
192
- assert_equal({'dir' => './demoCA', 'certs' => './certs'}, @it.section('CA_default'))
193
- assert_equal({}, @it.section('no_such_section'))
194
- assert_equal({}, @it.section(''))
195
- end
196
- end
197
-
198
- def test_sections
199
- assert_equal(['CA_default', 'ca', 'default'], @it.sections.sort)
200
- @it['new_section'] = {'foo' => 'bar'}
201
- assert_equal(['CA_default', 'ca', 'default', 'new_section'], @it.sections.sort)
202
- @it['new_section'] = {}
203
- assert_equal(['CA_default', 'ca', 'default', 'new_section'], @it.sections.sort)
204
- end
205
-
206
- def test_add_value
207
- c = OpenSSL::Config.new
208
- assert_equal("", c.to_s)
209
- # add key
210
- c.add_value('default', 'foo', 'bar')
211
- assert_equal("[ default ]\nfoo=bar\n\n", c.to_s)
212
- # add another key
213
- c.add_value('default', 'baz', 'qux')
214
- assert_equal('bar', c['default']['foo'])
215
- assert_equal('qux', c['default']['baz'])
216
- # update the value
217
- c.add_value('default', 'baz', 'quxxx')
218
- assert_equal('bar', c['default']['foo'])
219
- assert_equal('quxxx', c['default']['baz'])
220
- # add section and key
221
- c.add_value('section', 'foo', 'bar')
222
- assert_equal('bar', c['default']['foo'])
223
- assert_equal('quxxx', c['default']['baz'])
224
- assert_equal('bar', c['section']['foo'])
225
- end
226
-
227
- def test_aset
228
- @it['foo'] = {'bar' => 'baz'}
229
- assert_equal({'bar' => 'baz'}, @it['foo'])
230
- @it['foo'] = {'bar' => 'qux', 'baz' => 'quxx'}
231
- assert_equal({'bar' => 'qux', 'baz' => 'quxx'}, @it['foo'])
232
-
233
- # OpenSSL::Config is add only for now.
234
- @it['foo'] = {'foo' => 'foo'}
235
- assert_equal({'foo' => 'foo', 'bar' => 'qux', 'baz' => 'quxx'}, @it['foo'])
236
- # you cannot override or remove any section and key.
237
- @it['foo'] = {}
238
- assert_equal({'foo' => 'foo', 'bar' => 'qux', 'baz' => 'quxx'}, @it['foo'])
239
- end
240
-
241
- def test_each
242
- # each returns [section, key, value] array.
243
- ary = @it.map { |e| e }.sort { |a, b| a[0] <=> b[0] }
244
- assert_equal(4, ary.size)
245
- assert_equal('CA_default', ary[0][0])
246
- assert_equal('CA_default', ary[1][0])
247
- assert_equal(["ca", "default_ca", "CA_default"], ary[2])
248
- assert_equal(["default", "HOME", "."], ary[3])
249
- end
250
-
251
- def test_to_s
252
- c = OpenSSL::Config.parse("[empty]\n")
253
- assert_equal("[ default ]\n\n[ empty ]\n\n", c.to_s)
254
- end
255
-
256
- def test_inspect
257
- assert_match(/#<OpenSSL::Config sections=\[.*\]>/, @it.inspect)
258
- end
259
-
260
- def test_freeze
261
- c = OpenSSL::Config.new
262
- c['foo'] = [['key', 'value']]
263
- c.freeze
264
-
265
- bug = '[ruby-core:18377]'
266
- # RuntimeError for 1.9, TypeError for 1.8
267
- e = assert_raise(TypeError, bug) do
268
- c['foo'] = [['key', 'wrong']]
269
- end
270
- assert_match(/can't modify/, e.message, bug)
271
- end
272
-
273
- def test_dup
274
- assert(!@it.sections.empty?)
275
- c = @it.dup
276
- assert_equal(@it.sections.sort, c.sections.sort)
277
- @it['newsection'] = {'a' => 'b'}
278
- assert_not_equal(@it.sections.sort, c.sections.sort)
279
- end
280
-
281
- def test_clone
282
- assert(!@it.sections.empty?)
283
- c = @it.clone
284
- assert_equal(@it.sections.sort, c.sections.sort)
285
- @it['newsection'] = {'a' => 'b'}
286
- assert_not_equal(@it.sections.sort, c.sections.sort)
287
- end
288
- end if defined?(OpenSSL)