encrypted_strings 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,194 +0,0 @@
1
- require File.dirname(__FILE__) + '/test_helper'
2
-
3
- class AsymmetricEncryptorByDefaultTest < Test::Unit::TestCase
4
- def setup
5
- @asymmetric_encryptor = PluginAWeek::EncryptedStrings::AsymmetricEncryptor.new(:public_key_file => File.dirname(__FILE__) + '/keys/public')
6
- end
7
-
8
- def test_should_raise_an_exception
9
- assert_raise(ArgumentError) {PluginAWeek::EncryptedStrings::AsymmetricEncryptor.new}
10
- end
11
-
12
- def test_should_not_have_a_public_key_file
13
- @asymmetric_encryptor = PluginAWeek::EncryptedStrings::AsymmetricEncryptor.new(:private_key_file => File.dirname(__FILE__) + '/keys/private')
14
- assert_nil @asymmetric_encryptor.public_key_file
15
- end
16
-
17
- def test_should_not_have_a_private_key_file
18
- assert_nil @asymmetric_encryptor.private_key_file
19
- end
20
-
21
- def test_should_not_have_an_algorithm
22
- assert_nil @asymmetric_encryptor.algorithm
23
- end
24
-
25
- def test_should_not_have_a_password
26
- assert_nil @asymmetric_encryptor.password
27
- end
28
- end
29
-
30
- class AsymmetricEncryptorWithCustomDefaultsTest < Test::Unit::TestCase
31
- def setup
32
- @original_default_public_key_file = PluginAWeek::EncryptedStrings::AsymmetricEncryptor.default_public_key_file
33
- @original_default_private_key_file = PluginAWeek::EncryptedStrings::AsymmetricEncryptor.default_private_key_file
34
- @original_default_algorithm = PluginAWeek::EncryptedStrings::AsymmetricEncryptor.default_algorithm
35
-
36
- PluginAWeek::EncryptedStrings::AsymmetricEncryptor.default_public_key_file = File.dirname(__FILE__) + '/keys/public'
37
- PluginAWeek::EncryptedStrings::AsymmetricEncryptor.default_private_key_file = File.dirname(__FILE__) + '/keys/private'
38
- PluginAWeek::EncryptedStrings::AsymmetricEncryptor.default_algorithm = 'DES-EDE3-CBC'
39
-
40
- @asymmetric_encryptor = PluginAWeek::EncryptedStrings::AsymmetricEncryptor.new
41
- end
42
-
43
- def test_should_use_default_public_key_file
44
- assert_equal File.dirname(__FILE__) + '/keys/public', @asymmetric_encryptor.public_key_file
45
- end
46
-
47
- def test_should_use_default_private_key_file
48
- assert_equal File.dirname(__FILE__) + '/keys/private', @asymmetric_encryptor.private_key_file
49
- end
50
-
51
- def test_should_use_the_default_algorithm
52
- assert_equal 'DES-EDE3-CBC', @asymmetric_encryptor.algorithm
53
- end
54
-
55
- def test_should_not_have_a_password
56
- assert_nil @asymmetric_encryptor.password
57
- end
58
-
59
- def teardown
60
- PluginAWeek::EncryptedStrings::AsymmetricEncryptor.default_public_key_file = @original_default_public_key_file
61
- PluginAWeek::EncryptedStrings::AsymmetricEncryptor.default_private_key_file = @original_default_private_key_file
62
- PluginAWeek::EncryptedStrings::AsymmetricEncryptor.default_algorithm = @original_default_algorithm
63
- end
64
- end
65
-
66
- class AsymmetricEncryptorWithInvalidOptionsTest < Test::Unit::TestCase
67
- def test_should_throw_an_exception
68
- assert_raise(ArgumentError) {PluginAWeek::EncryptedStrings::AsymmetricEncryptor.new(:invalid => true)}
69
- end
70
- end
71
-
72
- class AsymmetricEncryptorTest < Test::Unit::TestCase
73
- def setup
74
- @asymmetric_encryptor = PluginAWeek::EncryptedStrings::AsymmetricEncryptor.new(:public_key_file => File.dirname(__FILE__) + '/keys/public')
75
- end
76
-
77
- def test_should_be_able_to_decrypt
78
- assert @asymmetric_encryptor.can_decrypt?
79
- end
80
- end
81
-
82
- class AsymmetricEncryptorWithoutPublicKeyTest < Test::Unit::TestCase
83
- def setup
84
- @asymmetric_encryptor = PluginAWeek::EncryptedStrings::AsymmetricEncryptor.new(:public_key_file => nil, :private_key_file => File.dirname(__FILE__) + '/keys/private')
85
- end
86
-
87
- def test_should_not_be_public
88
- assert !@asymmetric_encryptor.public?
89
- end
90
-
91
- def test_should_not_be_able_to_encrypt
92
- assert_raise(PluginAWeek::EncryptedStrings::NoPublicKeyError) {@asymmetric_encryptor.encrypt('test')}
93
- end
94
- end
95
-
96
- class AsymmetricEncryptorWithPublicKeyTest < Test::Unit::TestCase
97
- def setup
98
- @asymmetric_encryptor = PluginAWeek::EncryptedStrings::AsymmetricEncryptor.new(:public_key_file => File.dirname(__FILE__) + '/keys/public')
99
- end
100
-
101
- def test_should_be_public
102
- assert @asymmetric_encryptor.public?
103
- end
104
-
105
- def test_should_not_be_private
106
- assert !@asymmetric_encryptor.private?
107
- end
108
-
109
- def test_should_be_able_to_encrypt
110
- assert_equal 90, @asymmetric_encryptor.encrypt('test').length
111
- end
112
-
113
- def test_should_not_be_able_to_decrypt
114
- assert_raise(PluginAWeek::EncryptedStrings::NoPrivateKeyError) {@asymmetric_encryptor.decrypt("HbEh0Hwri26S7SWYqO26DBbzfhR1h/0pXYLjSKUpxF5DOaOCtD9oRN748+Na\nrfNaVN5Eg7RUhbRFZE+UnNHo6Q==\n")}
115
- end
116
- end
117
-
118
- class AsymmetricEncryptorWithoutPrivateKeyTest < Test::Unit::TestCase
119
- def setup
120
- @asymmetric_encryptor = PluginAWeek::EncryptedStrings::AsymmetricEncryptor.new(:private_key_file => nil, :public_key_file => File.dirname(__FILE__) + '/keys/public')
121
- end
122
-
123
- def test_should_not_be_private
124
- assert !@asymmetric_encryptor.private?
125
- end
126
-
127
- def test_should_not_be_able_to_decrypt
128
- assert_raise(PluginAWeek::EncryptedStrings::NoPrivateKeyError) {@asymmetric_encryptor.decrypt("HbEh0Hwri26S7SWYqO26DBbzfhR1h/0pXYLjSKUpxF5DOaOCtD9oRN748+Na\nrfNaVN5Eg7RUhbRFZE+UnNHo6Q==\n")}
129
- end
130
- end
131
-
132
- class AsymmetricEncryptorWithPrivateKeyTest < Test::Unit::TestCase
133
- def setup
134
- @asymmetric_encryptor = PluginAWeek::EncryptedStrings::AsymmetricEncryptor.new(:private_key_file => File.dirname(__FILE__) + '/keys/private')
135
- end
136
-
137
- def test_should_not_be_public
138
- assert !@asymmetric_encryptor.public?
139
- end
140
-
141
- def test_should_be_private
142
- assert @asymmetric_encryptor.private?
143
- end
144
-
145
- def test_not_should_be_able_to_encrypt
146
- assert_raise(PluginAWeek::EncryptedStrings::NoPublicKeyError) {@asymmetric_encryptor.encrypt('test')}
147
- end
148
-
149
- def test_should_be_able_to_decrypt
150
- assert_equal 'test', @asymmetric_encryptor.decrypt("HbEh0Hwri26S7SWYqO26DBbzfhR1h/0pXYLjSKUpxF5DOaOCtD9oRN748+Na\nrfNaVN5Eg7RUhbRFZE+UnNHo6Q==\n")
151
- end
152
- end
153
-
154
- class AsymmetricEncryptorWithEncryptedPrivateKeyTest < Test::Unit::TestCase
155
- def setup
156
- @asymmetric_encryptor = PluginAWeek::EncryptedStrings::AsymmetricEncryptor.new(:private_key_file => File.dirname(__FILE__) + '/keys/encrypted_private', :algorithm => 'DES-EDE3-CBC', :password => 'secret')
157
- end
158
-
159
- def test_should_not_be_public
160
- assert !@asymmetric_encryptor.public?
161
- end
162
-
163
- def test_should_be_private
164
- assert @asymmetric_encryptor.private?
165
- end
166
-
167
- def test_should_not_be_able_to_encrypt
168
- assert_raise(PluginAWeek::EncryptedStrings::NoPublicKeyError) {@asymmetric_encryptor.encrypt('test')}
169
- end
170
-
171
- def test_should_be_able_to_decrypt
172
- assert_equal 'test', @asymmetric_encryptor.decrypt("HbEh0Hwri26S7SWYqO26DBbzfhR1h/0pXYLjSKUpxF5DOaOCtD9oRN748+Na\nrfNaVN5Eg7RUhbRFZE+UnNHo6Q==\n")
173
- end
174
- end
175
-
176
- class AsymmetricEncryptorWithPKCS5CompliancyTest < Test::Unit::TestCase
177
- def setup
178
- @asymmetric_encryptor = PluginAWeek::EncryptedStrings::AsymmetricEncryptor.new(:private_key_file => File.dirname(__FILE__) + '/keys/pkcs5_encrypted_private', :algorithm => 'DES-EDE3-CBC', :password => 'secret', :pkcs5_compliant => true)
179
- end
180
-
181
- def test_should_be_able_to_decrypt
182
- assert_equal 'test', @asymmetric_encryptor.decrypt("HbEh0Hwri26S7SWYqO26DBbzfhR1h/0pXYLjSKUpxF5DOaOCtD9oRN748+Na\nrfNaVN5Eg7RUhbRFZE+UnNHo6Q==\n")
183
- end
184
- end
185
-
186
- class AsymmetricEncyrptorWithDeprecatedKeyTest < Test::Unit::TestCase
187
- def setup
188
- @asymmetric_encryptor = PluginAWeek::EncryptedStrings::AsymmetricEncryptor.new(:private_key_file => File.dirname(__FILE__) + '/keys/encrypted_private', :key => 'secret')
189
- end
190
-
191
- def test_should_set_password
192
- assert_equal 'secret', @asymmetric_encryptor.password
193
- end
194
- end
@@ -1,15 +0,0 @@
1
- require File.dirname(__FILE__) + '/test_helper'
2
-
3
- class EncryptorByDefaultTest < Test::Unit::TestCase
4
- def setup
5
- @encryptor = PluginAWeek::EncryptedStrings::Encryptor.new
6
- end
7
-
8
- def test_should_be_able_to_decrypt_by_default
9
- assert @encryptor.can_decrypt?
10
- end
11
-
12
- def test_should_raise_exception_if_decrypt_not_implemented
13
- assert_raises(NotImplementedError) {@encryptor.decrypt('test')}
14
- end
15
- end
@@ -1,12 +0,0 @@
1
- TGr8Jm/7zh1dfjjoNJtOncvX/BdUL47b8k2rQbMTY7VD6ZpD317NTuVX1hHV
2
- 54Nm6pnCId5wcga3sI3TqolTxkqKBy7Rb1mPVBeJyd7ZuoD7zp65+ws+o4Lr
3
- Xn/3WculfuThUnDESqD53vnKPCfRK6hoMDygEV7urmuide5ogpZp52lidUku
4
- cXOHDqfVETX7NNnHHghg/6qDUX7+0qf+XeKe8uiI0cPoE5YFnOHyF7oOBGtR
5
- IqJG97q1InCJMeAbMSxcjO71Te51Z098yI+XN4rGmXbmzSrVKHMUk0tdsVxi
6
- CE5OmnzLeXK1xomxkRmXZzl10WDBn9e4knoLJTlDdNR3fA4gLRfy3r6RBlDl
7
- j7HI53o5gi9PTshSXwHr6Q8SV9fty2Nz3/yRT/ZPLUJC1GUqErLl2j6zYbVR
8
- 8YMaLt1Zqi79ycPZxZV4Zh57YE86nUqepS1pzVpcS8dHZMne846lTyaOyxZ8
9
- dxW+18s7E7KqpHj17QYrF6c7R5ZHgoNAbLFeGSUCXqkW8YdyidLqQTzWN7hF
10
- roVcZWFe8YfSUKmgndVBOHGHxMGr+OYgVdAStOEwmRHaNGgSBE4FCkKXYJUj
11
- ec3zNpiOCb8zxfNku5nT5nIHnGqO4JKWDvDGVioV+ffHwXpAw3OFE5n+M/uo
12
- 4ZZbVSh1qZxd
@@ -1,7 +0,0 @@
1
- require File.dirname(__FILE__) + '/test_helper'
2
-
3
- class NoKeyErrorTest < Test::Unit::TestCase
4
- def test_should_exist
5
- assert_not_nil PluginAWeek::EncryptedStrings::NoKeyError
6
- end
7
- end
@@ -1,7 +0,0 @@
1
- require File.dirname(__FILE__) + '/test_helper'
2
-
3
- class NoPrivateKeyErrorTest < Test::Unit::TestCase
4
- def test_should_exist
5
- assert_not_nil PluginAWeek::EncryptedStrings::NoPrivateKeyError
6
- end
7
- end
@@ -1,7 +0,0 @@
1
- require File.dirname(__FILE__) + '/test_helper'
2
-
3
- class NoPublicKeyErrorTest < Test::Unit::TestCase
4
- def test_should_exist
5
- assert_not_nil PluginAWeek::EncryptedStrings::NoPublicKeyError
6
- end
7
- end
@@ -1,81 +0,0 @@
1
- require File.dirname(__FILE__) + '/test_helper'
2
-
3
- class ShaEncryptorByDefaulTest < Test::Unit::TestCase
4
- def setup
5
- @sha_encryptor = PluginAWeek::EncryptedStrings::ShaEncryptor.new
6
- end
7
-
8
- def test_should_use_default_salt
9
- assert_equal 'salt', @sha_encryptor.salt
10
- end
11
-
12
- def test_should_encrypt_using_default_salt
13
- assert_equal 'f438229716cab43569496f3a3630b3727524b81b', @sha_encryptor.encrypt('test')
14
- end
15
- end
16
-
17
- class ShaEncryptorWithCustomDefaultsTest < Test::Unit::TestCase
18
- def setup
19
- @original_default_salt = PluginAWeek::EncryptedStrings::ShaEncryptor.default_salt
20
- PluginAWeek::EncryptedStrings::ShaEncryptor.default_salt = 'custom_salt'
21
- @sha_encryptor = PluginAWeek::EncryptedStrings::ShaEncryptor.new
22
- end
23
-
24
- def test_should_use_custom_default_salt
25
- assert_equal 'custom_salt', @sha_encryptor.salt
26
- end
27
-
28
- def test_should_encrypt_using_custom_default_salt
29
- assert_equal '280f3c516070b09aa3eb755378509c725a9c6561', @sha_encryptor.encrypt('test')
30
- end
31
-
32
- def teardown
33
- PluginAWeek::EncryptedStrings::ShaEncryptor.default_salt = @original_default_salt
34
- end
35
- end
36
-
37
- class ShaEncryptorWithInvalidOptionsTest < Test::Unit::TestCase
38
- def test_should_throw_an_exception
39
- assert_raise(ArgumentError) {PluginAWeek::EncryptedStrings::ShaEncryptor.new(:invalid => true)}
40
- end
41
- end
42
-
43
- class ShaEncryptorTest < Test::Unit::TestCase
44
- def setup
45
- @sha_encryptor = PluginAWeek::EncryptedStrings::ShaEncryptor.new
46
- end
47
-
48
- def test_should_not_be_able_to_decrypt
49
- assert !PluginAWeek::EncryptedStrings::ShaEncryptor.new.can_decrypt?
50
- end
51
-
52
- def test_should_raise_exception_if_trying_to_decrypt
53
- assert_raises(NotImplementedError) {PluginAWeek::EncryptedStrings::ShaEncryptor.new.decrypt('test')}
54
- end
55
- end
56
-
57
- class ShaEncryptorWithCustomOptionsTest < Test::Unit::TestCase
58
- def setup
59
- @sha_encryptor = PluginAWeek::EncryptedStrings::ShaEncryptor.new(:salt => 'different salt')
60
- end
61
-
62
- def test_should_use_custom_salt
63
- assert_equal 'different salt', @sha_encryptor.salt
64
- end
65
-
66
- def test_should_encrypt_using_custom_salt
67
- assert_equal '18e3256d71529db8fa65b2eef24a69ddad7070f3', @sha_encryptor.encrypt('test')
68
- end
69
- end
70
-
71
- class ShaEncryptorWithNonStringSaltTest < Test::Unit::TestCase
72
- require 'time'
73
-
74
- def setup
75
- @sha_encryptor = PluginAWeek::EncryptedStrings::ShaEncryptor.new(:salt => Time.parse('Tue Jan 01 00:00:00 UTC 2008'))
76
- end
77
-
78
- def test_should_stringify_salt
79
- assert_equal 'Tue Jan 01 00:00:00 UTC 2008', @sha_encryptor.salt
80
- end
81
- end
@@ -1,137 +0,0 @@
1
- require File.dirname(__FILE__) + '/test_helper'
2
-
3
- class SymmetricEncryptorByDefaultTest < Test::Unit::TestCase
4
- def setup
5
- @symmetric_encryptor = PluginAWeek::EncryptedStrings::SymmetricEncryptor.new(:password => 'secret')
6
- end
7
-
8
- def test_should_use_default_algorithm
9
- assert_equal 'DES-EDE3-CBC', @symmetric_encryptor.algorithm
10
- end
11
-
12
- def test_should_raise_exception
13
- assert_raise(PluginAWeek::EncryptedStrings::NoKeyError) {PluginAWeek::EncryptedStrings::SymmetricEncryptor.new}
14
- end
15
-
16
- def test_should_encrypt_using_default_configuration
17
- assert_equal "MU6e/5LvhKA=\n", @symmetric_encryptor.encrypt('test')
18
- end
19
-
20
- def test_should_decrypt_encrypted_string_using_default_configuration
21
- assert_equal 'test', @symmetric_encryptor.decrypt("MU6e/5LvhKA=\n")
22
- end
23
- end
24
-
25
- class SymmetricEncryptorWithCustomDefaultsTest < Test::Unit::TestCase
26
- def setup
27
- @original_default_algorithm = PluginAWeek::EncryptedStrings::SymmetricEncryptor.default_algorithm
28
- @original_default_password = PluginAWeek::EncryptedStrings::SymmetricEncryptor.default_password
29
-
30
- PluginAWeek::EncryptedStrings::SymmetricEncryptor.default_algorithm = 'DES-EDE3-CFB'
31
- PluginAWeek::EncryptedStrings::SymmetricEncryptor.default_password = 'secret'
32
- @symmetric_encryptor = PluginAWeek::EncryptedStrings::SymmetricEncryptor.new
33
- end
34
-
35
- def test_should_use_custom_default_algorithm
36
- assert_equal 'DES-EDE3-CFB', @symmetric_encryptor.algorithm
37
- end
38
-
39
- def test_should_use_custom_default_password
40
- assert_equal 'secret', @symmetric_encryptor.password
41
- end
42
-
43
- def test_should_encrypt_using_custom_default_configuration
44
- assert_equal "C7D9mg==\n", @symmetric_encryptor.encrypt('test')
45
- end
46
-
47
- def test_should_decrypt_encrypted_string_using_custom_default_configuration
48
- assert_equal 'test', @symmetric_encryptor.decrypt("C7D9mg==\n")
49
- end
50
-
51
- def teardown
52
- PluginAWeek::EncryptedStrings::SymmetricEncryptor.default_algorithm = @original_default_algorithm
53
- PluginAWeek::EncryptedStrings::SymmetricEncryptor.default_password = @original_default_password
54
- end
55
- end
56
-
57
- class SymmetricEncryptorWithInvalidOptionsTest < Test::Unit::TestCase
58
- def test_should_throw_an_exception
59
- assert_raise(ArgumentError) {PluginAWeek::EncryptedStrings::SymmetricEncryptor.new(:invalid => true)}
60
- end
61
- end
62
-
63
- class SymmetricEncryptorTest < Test::Unit::TestCase
64
- def setup
65
- @symmetric_encryptor = PluginAWeek::EncryptedStrings::SymmetricEncryptor.new(:password => 'secret')
66
- end
67
-
68
- def test_should_be_able_to_decrypt
69
- assert @symmetric_encryptor.can_decrypt?
70
- end
71
- end
72
-
73
- class SymmetricEncryptorWithCustomOptionsTest < Test::Unit::TestCase
74
- def setup
75
- @symmetric_encryptor = PluginAWeek::EncryptedStrings::SymmetricEncryptor.new(:algorithm => 'DES-EDE3-CFB', :password => 'secret')
76
- end
77
-
78
- def test_should_use_custom_algorithm
79
- assert_equal 'DES-EDE3-CFB', @symmetric_encryptor.algorithm
80
- end
81
-
82
- def test_should_use_custom_password
83
- assert_equal 'secret', @symmetric_encryptor.password
84
- end
85
-
86
- def test_should_encrypt_using_custom_options
87
- assert_equal "C7D9mg==\n", @symmetric_encryptor.encrypt('test')
88
- end
89
-
90
- def test_should_decrypt_using_custom_options
91
- assert_equal 'test', @symmetric_encryptor.decrypt("C7D9mg==\n")
92
- end
93
- end
94
-
95
- class SymmetricEncryptorWithPKCS5CompliancyTest < Test::Unit::TestCase
96
- def setup
97
- @symmetric_encryptor = PluginAWeek::EncryptedStrings::SymmetricEncryptor.new(:password => 'secret', :pkcs5_compliant => true)
98
- end
99
-
100
- def test_should_encrypt_using_pkcs5_generated_key
101
- assert_equal "oTxJd67ElLY=\n", @symmetric_encryptor.encrypt('test')
102
- end
103
-
104
- def test_should_decrypt_using_pkcs5_generated_key
105
- assert_equal 'test', @symmetric_encryptor.decrypt("oTxJd67ElLY=\n" )
106
- end
107
- end
108
-
109
- class SymmetricEncryptorWithDeprecatedDefaultsTest < Test::Unit::TestCase
110
- def setup
111
- @original_default_password = PluginAWeek::EncryptedStrings::SymmetricEncryptor.default_password
112
- end
113
-
114
- def test_should_set_password_when_setting_key
115
- PluginAWeek::EncryptedStrings::SymmetricEncryptor.default_key = 'secret'
116
- assert_equal 'secret', PluginAWeek::EncryptedStrings::SymmetricEncryptor.default_password
117
- end
118
-
119
- def test_should_get_password_when_getting_key
120
- PluginAWeek::EncryptedStrings::SymmetricEncryptor.default_key = 'secret'
121
- assert_equal 'secret', PluginAWeek::EncryptedStrings::SymmetricEncryptor.default_key
122
- end
123
-
124
- def teardown
125
- PluginAWeek::EncryptedStrings::SymmetricEncryptor.default_password = @original_default_password
126
- end
127
- end
128
-
129
- class SymmetricEncryptorWithDeprecatedKeyTest < Test::Unit::TestCase
130
- def setup
131
- @symmetric_encryptor = PluginAWeek::EncryptedStrings::SymmetricEncryptor.new(:key => 'secret')
132
- end
133
-
134
- def test_should_set_password
135
- assert_equal 'secret', @symmetric_encryptor.password
136
- end
137
- end