dohruby 0.3.5 → 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,19 +1,22 @@
1
1
  require 'openssl'
2
+ require 'doh/core/string'
2
3
 
3
4
  module DohCrypt
4
- def self.encrypt3des(key, str)
5
+ def self.encrypt3des(key, str, encode_hex = nil)
5
6
  des = OpenSSL::Cipher::Cipher.new('des-ede3')
6
7
  des.encrypt
7
8
  des.key = key
8
9
  result = des.update(str)
9
10
  result << des.final
11
+ result = result.hex_encode if encode_hex
10
12
  result
11
13
  end
12
14
 
13
- def self.decrypt3des(key, str)
15
+ def self.decrypt3des(key, str, was_hex_encoded = nil)
14
16
  des = OpenSSL::Cipher::Cipher.new('des-ede3')
15
17
  des.decrypt
16
18
  des.key = key
19
+ str = str.hex_decode if was_hex_encoded
17
20
  result = des.update(str)
18
21
  result << des.final
19
22
  end
@@ -0,0 +1,17 @@
1
+ require 'test/unit'
2
+ require 'doh/crypt/3des'
3
+
4
+ module Doh
5
+
6
+ class TC_3des < Test::Unit::TestCase
7
+ def key
8
+ 'some long key string at least 24 bytes'
9
+ end
10
+ def test_3des
11
+ assert_equal(DohCrypt.decrypt3des(key, DohCrypt.encrypt3des(key, 'smoeblahblahblah')), 'smoeblahblahblah')
12
+ assert_equal(DohCrypt.decrypt3des(key, DohCrypt.encrypt3des(key, 'smoeblahblahblah', true), true), 'smoeblahblahblah')
13
+ end
14
+ end
15
+
16
+ end
17
+
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 3
8
- - 5
9
- version: 0.3.5
8
+ - 6
9
+ version: 0.3.6
10
10
  platform: ruby
11
11
  authors:
12
12
  - Makani & Kem Mason
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-12-29 00:00:00 +13:00
17
+ date: 2010-12-30 00:00:00 +13:00
18
18
  default_executable:
19
19
  dependencies: []
20
20
 
@@ -179,6 +179,7 @@ files:
179
179
  - test/core/tc_hash.rb
180
180
  - test/core/tc_socket.rb
181
181
  - test/core/tc_string.rb
182
+ - test/crypt/tc_3des.rb
182
183
  - test/local_tests.rb
183
184
  - test/local_tests_including_slow.rb
184
185
  - test/logger/sample.rb
@@ -261,6 +262,7 @@ test_files:
261
262
  - test/core/tc_hash.rb
262
263
  - test/core/tc_socket.rb
263
264
  - test/core/tc_string.rb
265
+ - test/crypt/tc_3des.rb
264
266
  - test/local_tests.rb
265
267
  - test/local_tests_including_slow.rb
266
268
  - test/logger/sample.rb