poolparty 1.3.4 → 1.3.6
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.
- data/Rakefile +2 -2
- data/VERSION.yml +1 -1
- data/bin/cloud-bootstrap +1 -0
- data/bin/cloud-configure +1 -0
- data/bin/cloud-contract +1 -0
- data/bin/cloud-misc +34 -0
- data/bin/cloud-setup +36 -0
- data/bin/cloud-ssh +4 -1
- data/config/jeweler.rb +4 -3
- data/examples/monitored_cloud.rb +1 -1
- data/examples/thrift/thrift_example.rb +5 -3
- data/examples/vmware.rb +28 -0
- data/lib/cloud_providers/cloud_provider_instance.rb +14 -5
- data/lib/cloud_providers/connections.rb +1 -1
- data/lib/core/file.rb +12 -0
- data/lib/core/object.rb +2 -2
- data/lib/dependency_resolvers/base.rb +1 -1
- data/lib/dependency_resolvers/chef.rb +9 -7
- data/lib/dependency_resolvers/proxy_object.rb +11 -3
- data/lib/mixins/askable.rb +16 -7
- data/lib/poolparty/base.rb +8 -7
- data/lib/poolparty/cloud.rb +77 -7
- data/lib/poolparty/default.rb +1 -0
- data/lib/poolparty/installer.rb +8 -4
- data/lib/poolparty/installers/ec2.rb +75 -5
- data/lib/poolparty/installers/vmware.rb +17 -5
- data/lib/poolparty/plugin.rb +1 -5
- data/lib/poolparty/plugins/apache.rb +10 -7
- data/lib/poolparty/plugins/apache2/base.conf.erb +2 -2
- data/lib/poolparty/plugins/apache2/browser_fixes.conf.erb +1 -1
- data/lib/poolparty/plugins/apache2/passenger_site.rb +2 -2
- data/lib/poolparty/plugins/collectd/templates/collectd.conf.erb +369 -0
- data/lib/poolparty/plugins/collectd.rb +24 -0
- data/lib/poolparty/plugins/hermes.rb +89 -0
- data/lib/poolparty/pool.rb +33 -3
- data/lib/poolparty/resource.rb +32 -18
- data/lib/poolparty/resources/directory.rb +5 -1
- data/lib/poolparty/resources/exec.rb +2 -2
- data/lib/poolparty/resources/file.rb +8 -2
- data/lib/poolparty/resources/gem_package.rb +2 -2
- data/lib/poolparty/resources/line.rb +23 -6
- data/lib/poolparty/resources/mount.rb +2 -2
- data/lib/poolparty/resources/package.rb +2 -2
- data/lib/poolparty/resources/service.rb +2 -2
- data/lib/poolparty/resources/user.rb +2 -2
- data/lib/poolparty/resources/variable.rb +4 -3
- data/lib/poolparty.rb +5 -3
- data/lib/proto/command_interface_handler.rb +17 -1
- data/lib/proto/gen-py/cloudthrift/CommandInterface.pyc +0 -0
- data/lib/proto/gen-py/cloudthrift/__init__.pyc +0 -0
- data/lib/proto/gen-py/cloudthrift/constants.pyc +0 -0
- data/lib/proto/gen-py/cloudthrift/ttypes.pyc +0 -0
- data/lib/proto/gen-py/thrift/Thrift.pyc +0 -0
- data/lib/proto/gen-py/thrift/__init__.pyc +0 -0
- data/lib/proto/gen-py/thrift/protocol/TBinaryProtocol.pyc +0 -0
- data/lib/proto/gen-py/thrift/protocol/TProtocol.pyc +0 -0
- data/lib/proto/gen-py/thrift/protocol/__init__.pyc +0 -0
- data/lib/proto/gen-py/thrift/transport/TSocket.pyc +0 -0
- data/lib/proto/gen-py/thrift/transport/TTransport.pyc +0 -0
- data/lib/proto/gen-py/thrift/transport/__init__.pyc +0 -0
- data/test/lib/dependency_resolvers/chef_test.rb +92 -100
- data/test/lib/poolparty/base_test.rb +13 -0
- data/test/lib/poolparty/cloud_test.rb +50 -2
- data/test/lib/poolparty/monitor_test.rb +2 -2
- data/test/lib/poolparty/resource_test.rb +5 -0
- data/test/lib/poolparty/resources/line_test.rb +3 -3
- data/test/lib/poolparty/resources/service_test.rb +1 -1
- data/test/lib/poolparty/resources/variable_test.rb +33 -10
- data/vendor/gems/net-ssh/CHANGELOG.rdoc +127 -0
- data/vendor/gems/net-ssh/Manifest +104 -0
- data/vendor/gems/net-ssh/README.rdoc +110 -0
- data/vendor/gems/net-ssh/Rakefile +26 -0
- data/vendor/gems/net-ssh/THANKS.rdoc +16 -0
- data/vendor/gems/net-ssh/lib/net/ssh/authentication/agent.rb +176 -0
- data/vendor/gems/net-ssh/lib/net/ssh/authentication/constants.rb +18 -0
- data/vendor/gems/net-ssh/lib/net/ssh/authentication/key_manager.rb +193 -0
- data/vendor/gems/net-ssh/lib/net/ssh/authentication/methods/abstract.rb +60 -0
- data/vendor/gems/net-ssh/lib/net/ssh/authentication/methods/hostbased.rb +71 -0
- data/vendor/gems/net-ssh/lib/net/ssh/authentication/methods/keyboard_interactive.rb +66 -0
- data/vendor/gems/net-ssh/lib/net/ssh/authentication/methods/password.rb +39 -0
- data/vendor/gems/net-ssh/lib/net/ssh/authentication/methods/publickey.rb +92 -0
- data/vendor/gems/net-ssh/lib/net/ssh/authentication/pageant.rb +183 -0
- data/vendor/gems/net-ssh/lib/net/ssh/authentication/session.rb +134 -0
- data/vendor/gems/net-ssh/lib/net/ssh/buffer.rb +340 -0
- data/vendor/gems/net-ssh/lib/net/ssh/buffered_io.rb +149 -0
- data/vendor/gems/net-ssh/lib/net/ssh/config.rb +181 -0
- data/vendor/gems/net-ssh/lib/net/ssh/connection/channel.rb +625 -0
- data/vendor/gems/net-ssh/lib/net/ssh/connection/constants.rb +33 -0
- data/vendor/gems/net-ssh/lib/net/ssh/connection/session.rb +596 -0
- data/vendor/gems/net-ssh/lib/net/ssh/connection/term.rb +178 -0
- data/vendor/gems/net-ssh/lib/net/ssh/errors.rb +85 -0
- data/vendor/gems/net-ssh/lib/net/ssh/key_factory.rb +102 -0
- data/vendor/gems/net-ssh/lib/net/ssh/known_hosts.rb +129 -0
- data/vendor/gems/net-ssh/lib/net/ssh/loggable.rb +61 -0
- data/vendor/gems/net-ssh/lib/net/ssh/packet.rb +102 -0
- data/vendor/gems/net-ssh/lib/net/ssh/prompt.rb +93 -0
- data/vendor/gems/net-ssh/lib/net/ssh/proxy/errors.rb +14 -0
- data/vendor/gems/net-ssh/lib/net/ssh/proxy/http.rb +94 -0
- data/vendor/gems/net-ssh/lib/net/ssh/proxy/socks4.rb +70 -0
- data/vendor/gems/net-ssh/lib/net/ssh/proxy/socks5.rb +129 -0
- data/vendor/gems/net-ssh/lib/net/ssh/ruby_compat.rb +7 -0
- data/vendor/gems/net-ssh/lib/net/ssh/service/forward.rb +267 -0
- data/vendor/gems/net-ssh/lib/net/ssh/test/channel.rb +129 -0
- data/vendor/gems/net-ssh/lib/net/ssh/test/extensions.rb +152 -0
- data/vendor/gems/net-ssh/lib/net/ssh/test/kex.rb +44 -0
- data/vendor/gems/net-ssh/lib/net/ssh/test/local_packet.rb +51 -0
- data/vendor/gems/net-ssh/lib/net/ssh/test/packet.rb +81 -0
- data/vendor/gems/net-ssh/lib/net/ssh/test/remote_packet.rb +38 -0
- data/vendor/gems/net-ssh/lib/net/ssh/test/script.rb +157 -0
- data/vendor/gems/net-ssh/lib/net/ssh/test/socket.rb +59 -0
- data/vendor/gems/net-ssh/lib/net/ssh/test.rb +89 -0
- data/vendor/gems/net-ssh/lib/net/ssh/transport/algorithms.rb +384 -0
- data/vendor/gems/net-ssh/lib/net/ssh/transport/cipher_factory.rb +80 -0
- data/vendor/gems/net-ssh/lib/net/ssh/transport/constants.rb +30 -0
- data/vendor/gems/net-ssh/lib/net/ssh/transport/hmac/abstract.rb +78 -0
- data/vendor/gems/net-ssh/lib/net/ssh/transport/hmac/md5.rb +12 -0
- data/vendor/gems/net-ssh/lib/net/ssh/transport/hmac/md5_96.rb +11 -0
- data/vendor/gems/net-ssh/lib/net/ssh/transport/hmac/none.rb +15 -0
- data/vendor/gems/net-ssh/lib/net/ssh/transport/hmac/sha1.rb +13 -0
- data/vendor/gems/net-ssh/lib/net/ssh/transport/hmac/sha1_96.rb +11 -0
- data/vendor/gems/net-ssh/lib/net/ssh/transport/hmac.rb +31 -0
- data/vendor/gems/net-ssh/lib/net/ssh/transport/identity_cipher.rb +55 -0
- data/vendor/gems/net-ssh/lib/net/ssh/transport/kex/diffie_hellman_group1_sha1.rb +208 -0
- data/vendor/gems/net-ssh/lib/net/ssh/transport/kex/diffie_hellman_group_exchange_sha1.rb +77 -0
- data/vendor/gems/net-ssh/lib/net/ssh/transport/kex.rb +13 -0
- data/vendor/gems/net-ssh/lib/net/ssh/transport/openssl.rb +128 -0
- data/vendor/gems/net-ssh/lib/net/ssh/transport/packet_stream.rb +230 -0
- data/vendor/gems/net-ssh/lib/net/ssh/transport/server_version.rb +60 -0
- data/vendor/gems/net-ssh/lib/net/ssh/transport/session.rb +276 -0
- data/vendor/gems/net-ssh/lib/net/ssh/transport/state.rb +201 -0
- data/vendor/gems/net-ssh/lib/net/ssh/verifiers/lenient.rb +30 -0
- data/vendor/gems/net-ssh/lib/net/ssh/verifiers/null.rb +12 -0
- data/vendor/gems/net-ssh/lib/net/ssh/verifiers/strict.rb +53 -0
- data/vendor/gems/net-ssh/lib/net/ssh/version.rb +62 -0
- data/vendor/gems/net-ssh/lib/net/ssh.rb +215 -0
- data/vendor/gems/net-ssh/net-ssh.gemspec +33 -0
- data/vendor/gems/net-ssh/setup.rb +1585 -0
- data/vendor/gems/net-ssh/test/authentication/methods/common.rb +28 -0
- data/vendor/gems/net-ssh/test/authentication/methods/test_abstract.rb +51 -0
- data/vendor/gems/net-ssh/test/authentication/methods/test_hostbased.rb +114 -0
- data/vendor/gems/net-ssh/test/authentication/methods/test_keyboard_interactive.rb +98 -0
- data/vendor/gems/net-ssh/test/authentication/methods/test_password.rb +50 -0
- data/vendor/gems/net-ssh/test/authentication/methods/test_publickey.rb +127 -0
- data/vendor/gems/net-ssh/test/authentication/test_agent.rb +205 -0
- data/vendor/gems/net-ssh/test/authentication/test_key_manager.rb +105 -0
- data/vendor/gems/net-ssh/test/authentication/test_session.rb +93 -0
- data/vendor/gems/net-ssh/test/common.rb +106 -0
- data/vendor/gems/net-ssh/test/configs/eqsign +3 -0
- data/vendor/gems/net-ssh/test/configs/exact_match +8 -0
- data/vendor/gems/net-ssh/test/configs/wild_cards +14 -0
- data/vendor/gems/net-ssh/test/connection/test_channel.rb +452 -0
- data/vendor/gems/net-ssh/test/connection/test_session.rb +488 -0
- data/vendor/gems/net-ssh/test/test_all.rb +6 -0
- data/vendor/gems/net-ssh/test/test_buffer.rb +336 -0
- data/vendor/gems/net-ssh/test/test_buffered_io.rb +63 -0
- data/vendor/gems/net-ssh/test/test_config.rb +84 -0
- data/vendor/gems/net-ssh/test/test_key_factory.rb +67 -0
- data/vendor/gems/net-ssh/test/transport/hmac/test_md5.rb +39 -0
- data/vendor/gems/net-ssh/test/transport/hmac/test_md5_96.rb +25 -0
- data/vendor/gems/net-ssh/test/transport/hmac/test_none.rb +34 -0
- data/vendor/gems/net-ssh/test/transport/hmac/test_sha1.rb +34 -0
- data/vendor/gems/net-ssh/test/transport/hmac/test_sha1_96.rb +25 -0
- data/vendor/gems/net-ssh/test/transport/kex/test_diffie_hellman_group1_sha1.rb +146 -0
- data/vendor/gems/net-ssh/test/transport/kex/test_diffie_hellman_group_exchange_sha1.rb +92 -0
- data/vendor/gems/net-ssh/test/transport/test_algorithms.rb +302 -0
- data/vendor/gems/net-ssh/test/transport/test_cipher_factory.rb +171 -0
- data/vendor/gems/net-ssh/test/transport/test_hmac.rb +34 -0
- data/vendor/gems/net-ssh/test/transport/test_identity_cipher.rb +40 -0
- data/vendor/gems/net-ssh/test/transport/test_packet_stream.rb +435 -0
- data/vendor/gems/net-ssh/test/transport/test_server_version.rb +57 -0
- data/vendor/gems/net-ssh/test/transport/test_session.rb +315 -0
- data/vendor/gems/net-ssh/test/transport/test_state.rb +173 -0
- metadata +116 -4
- data/bin/install-poolparty +0 -20
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
require 'common'
|
|
2
|
+
require 'net/ssh/transport/cipher_factory'
|
|
3
|
+
|
|
4
|
+
module Transport
|
|
5
|
+
|
|
6
|
+
class TestCipherFactory < Test::Unit::TestCase
|
|
7
|
+
def self.if_supported?(name)
|
|
8
|
+
yield if Net::SSH::Transport::CipherFactory.supported?(name)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def test_lengths_for_none
|
|
12
|
+
assert_equal [0,0], factory.get_lengths("none")
|
|
13
|
+
assert_equal [0,0], factory.get_lengths("bogus")
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def test_lengths_for_blowfish_cbc
|
|
17
|
+
assert_equal [16,8], factory.get_lengths("blowfish-cbc")
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
if_supported?("idea-cbc") do
|
|
21
|
+
def test_lengths_for_idea_cbc
|
|
22
|
+
assert_equal [16,8], factory.get_lengths("idea-cbc")
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def test_lengths_for_rijndael_cbc
|
|
27
|
+
assert_equal [32,16], factory.get_lengths("rijndael-cbc@lysator.liu.se")
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def test_lengths_for_cast128_cbc
|
|
31
|
+
assert_equal [16,8], factory.get_lengths("cast128-cbc")
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def test_lengths_for_3des_cbc
|
|
35
|
+
assert_equal [24,8], factory.get_lengths("3des-cbc")
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def test_lengths_for_aes192_cbc
|
|
39
|
+
assert_equal [24,16], factory.get_lengths("aes192-cbc")
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def test_lengths_for_aes128_cbc
|
|
43
|
+
assert_equal [16,16], factory.get_lengths("aes128-cbc")
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def test_lengths_for_aes256_cbc
|
|
47
|
+
assert_equal [32,16], factory.get_lengths("aes256-cbc")
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
BLOWFISH = "\210\021\200\315\240_\026$\352\204g\233\244\242x\332e\370\001\327\224Nv@9_\323\037\252kb\037\036\237\375]\343/y\037\237\312Q\f7]\347Y\005\275%\377\0010$G\272\250B\265Nd\375\342\372\025r6}+Y\213y\n\237\267\\\374^\346BdJ$\353\220Ik\023<\236&H\277=\225"
|
|
51
|
+
|
|
52
|
+
def test_blowfish_cbc_for_encryption
|
|
53
|
+
assert_equal BLOWFISH, encrypt("blowfish-cbc")
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def test_blowfish_cbc_for_decryption
|
|
57
|
+
assert_equal TEXT, decrypt("blowfish-cbc", BLOWFISH)
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
if_supported?("idea-cbc") do
|
|
61
|
+
IDEA = "W\234\017G\231\b\357\370H\b\256U]\343M\031k\233]~\023C\363\263\177\262-\261\341$\022\376mv\217\322\b\2763\270H\306\035\343z\313\312\3531\351\t\201\302U\022\360\300\354ul7$z\320O]\360g\024\305\005`V\005\335A\351\312\270c\320D\232\eQH1\340\265\2118\031g*\303v"
|
|
62
|
+
|
|
63
|
+
def test_idea_cbc_for_encryption
|
|
64
|
+
assert_equal IDEA, encrypt("idea-cbc")
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def test_idea_cbc_for_decryption
|
|
68
|
+
assert_equal TEXT, decrypt("idea-cbc", IDEA)
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
RIJNDAEL = "$\253\271\255\005Z\354\336&\312\324\221\233\307Mj\315\360\310Fk\241EfN\037\231\213\361{'\310\204\347I\343\271\005\240`\325;\034\346uM>#\241\231C`\374\261\vo\226;Z\302:\b\250\366T\330\\#V\330\340\226\363\374!\bm\266\232\207!\232\347\340\t\307\370\356z\236\343=v\210\206y"
|
|
73
|
+
|
|
74
|
+
def test_rijndael_cbc_for_encryption
|
|
75
|
+
assert_equal RIJNDAEL, encrypt("rijndael-cbc@lysator.liu.se")
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def test_rijndael_cbc_for_decryption
|
|
79
|
+
assert_equal TEXT, decrypt("rijndael-cbc@lysator.liu.se", RIJNDAEL)
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
CAST128 = "qW\302\331\333P\223t[9 ~(sg\322\271\227\272\022I\223\373p\255>k\326\314\260\2003\236C_W\211\227\373\205>\351\334\322\227\223\e\236\202Ii\032!P\214\035:\017\360h7D\371v\210\264\317\236a\262w1\2772\023\036\331\227\240:\f/X\351\324I\t[x\350\323E\2301\016m"
|
|
83
|
+
|
|
84
|
+
def test_cast128_cbc_for_encryption
|
|
85
|
+
assert_equal CAST128, encrypt("cast128-cbc")
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def test_cast128_cbc_for_decryption
|
|
89
|
+
assert_equal TEXT, decrypt("cast128-cbc", CAST128)
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
TRIPLE_DES = "\322\252\216D\303Q\375gg\367A{\177\313\3436\272\353%\223K?\257\206|\r&\353/%\340\336 \203E8rY\206\234\004\274\267\031\233T/{\"\227/B!i?[qGaw\306T\206\223\213n \212\032\244%]@\355\250\334\312\265E\251\017\361\270\357\230\274KP&^\031r+r%\370"
|
|
93
|
+
|
|
94
|
+
def test_3des_cbc_for_encryption
|
|
95
|
+
assert_equal TRIPLE_DES, encrypt("3des-cbc")
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
def test_3des_cbc_for_decryption
|
|
99
|
+
assert_equal TEXT, decrypt("3des-cbc", TRIPLE_DES)
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
AES128 = "k\026\350B\366-k\224\313\3277}B\035\004\200\035\r\233\024$\205\261\231Q\2214r\245\250\360\315\237\266hg\262C&+\321\346Pf\267v\376I\215P\327\345-\232&HK\375\326_\030<\a\276\212\303g\342C\242O\233\260\006\001a&V\345`\\T\e\236.\207\223l\233ri^\v\252\363\245"
|
|
103
|
+
|
|
104
|
+
def test_aes128_cbc_for_encryption
|
|
105
|
+
assert_equal AES128, encrypt("aes128-cbc")
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
def test_aes128_cbc_for_decryption
|
|
109
|
+
assert_equal TEXT, decrypt("aes128-cbc", AES128)
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
AES192 = "\256\017)x\270\213\336\303L\003f\235'jQ\3231k9\225\267\242\364C4\370\224\201\302~\217I\202\374\2167='\272\037\225\223\177Y\r\212\376(\275\n\3553\377\177\252C\254\236\016MA\274Z@H\331<\rL\317\205\323[\305X8\376\237=\374\352bH9\244\0231\353\204\352p\226\326~J\242"
|
|
113
|
+
|
|
114
|
+
def test_aes192_cbc_for_encryption
|
|
115
|
+
assert_equal AES192, encrypt("aes192-cbc")
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
def test_aes192_cbc_for_decryption
|
|
119
|
+
assert_equal TEXT, decrypt("aes192-cbc", AES192)
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
AES256 = "$\253\271\255\005Z\354\336&\312\324\221\233\307Mj\315\360\310Fk\241EfN\037\231\213\361{'\310\204\347I\343\271\005\240`\325;\034\346uM>#\241\231C`\374\261\vo\226;Z\302:\b\250\366T\330\\#V\330\340\226\363\374!\bm\266\232\207!\232\347\340\t\307\370\356z\236\343=v\210\206y"
|
|
123
|
+
|
|
124
|
+
def test_aes256_cbc_for_encryption
|
|
125
|
+
assert_equal AES256, encrypt("aes256-cbc")
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
def test_aes256_cbc_for_decryption
|
|
129
|
+
assert_equal TEXT, decrypt("aes256-cbc", AES256)
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
def test_none_for_encryption
|
|
133
|
+
assert_equal TEXT, encrypt("none").strip
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
def test_none_for_decryption
|
|
137
|
+
assert_equal TEXT, decrypt("none", TEXT)
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
private
|
|
141
|
+
|
|
142
|
+
TEXT = "But soft! What light through yonder window breaks? It is the east, and Juliet is the sun!"
|
|
143
|
+
|
|
144
|
+
OPTIONS = { :iv => "ABC",
|
|
145
|
+
:key => "abc",
|
|
146
|
+
:digester => OpenSSL::Digest::MD5,
|
|
147
|
+
:shared => "1234567890123456780",
|
|
148
|
+
:hash => '!@#$%#$^%$&^&%#$@$'
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
def factory
|
|
152
|
+
Net::SSH::Transport::CipherFactory
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
def encrypt(type)
|
|
156
|
+
cipher = factory.get(type, OPTIONS.merge(:encrypt => true))
|
|
157
|
+
padding = TEXT.length % cipher.block_size
|
|
158
|
+
result = cipher.update(TEXT.dup)
|
|
159
|
+
result << cipher.update(" " * (cipher.block_size - padding)) if padding > 0
|
|
160
|
+
result << cipher.final
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
def decrypt(type, data)
|
|
164
|
+
cipher = factory.get(type, OPTIONS.merge(:decrypt => true))
|
|
165
|
+
result = cipher.update(data.dup)
|
|
166
|
+
result << cipher.final
|
|
167
|
+
result.strip
|
|
168
|
+
end
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
require 'common'
|
|
2
|
+
require 'net/ssh/transport/hmac'
|
|
3
|
+
|
|
4
|
+
module Transport
|
|
5
|
+
|
|
6
|
+
class TestHMAC < Test::Unit::TestCase
|
|
7
|
+
Net::SSH::Transport::HMAC::MAP.each do |name, value|
|
|
8
|
+
method = name.tr("-", "_")
|
|
9
|
+
define_method("test_get_with_#{method}_returns_new_hmac_instance") do
|
|
10
|
+
key = "abcdefghijklmnopqrstuvwxyz"[0,Net::SSH::Transport::HMAC::MAP[name].key_length]
|
|
11
|
+
hmac = Net::SSH::Transport::HMAC.get(name, key)
|
|
12
|
+
assert_instance_of Net::SSH::Transport::HMAC::MAP[name], hmac
|
|
13
|
+
assert_equal key, hmac.key
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
define_method("test_key_length_with_#{method}_returns_correct_key_length") do
|
|
17
|
+
assert_equal Net::SSH::Transport::HMAC::MAP[name].key_length, Net::SSH::Transport::HMAC.key_length(name)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def test_get_with_unrecognized_hmac_raises_argument_error
|
|
22
|
+
assert_raises(ArgumentError) do
|
|
23
|
+
Net::SSH::Transport::HMAC.get("bogus")
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def test_key_length_with_unrecognized_hmac_raises_argument_error
|
|
28
|
+
assert_raises(ArgumentError) do
|
|
29
|
+
Net::SSH::Transport::HMAC.get("bogus")
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
require 'common'
|
|
2
|
+
require 'net/ssh/transport/identity_cipher'
|
|
3
|
+
|
|
4
|
+
module Transport
|
|
5
|
+
|
|
6
|
+
class TestIdentityCipher < Test::Unit::TestCase
|
|
7
|
+
|
|
8
|
+
def test_block_size_should_be_8
|
|
9
|
+
assert_equal 8, cipher.block_size
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def test_encrypt_should_return_self
|
|
13
|
+
assert_equal cipher, cipher.encrypt
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def test_decrypt_should_return_self
|
|
17
|
+
assert_equal cipher, cipher.decrypt
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def test_update_should_return_argument
|
|
21
|
+
assert_equal "hello, world", cipher.update("hello, world")
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def test_final_should_return_empty_string
|
|
25
|
+
assert_equal "", cipher.final
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def test_name_should_be_identity
|
|
29
|
+
assert_equal "identity", cipher.name
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
private
|
|
33
|
+
|
|
34
|
+
def cipher
|
|
35
|
+
Net::SSH::Transport::IdentityCipher
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
end
|