summaryrefslogtreecommitdiff
path: root/ruby_1_8_6/sample/openssl/cipher.rb
diff options
context:
space:
mode:
Diffstat (limited to 'ruby_1_8_6/sample/openssl/cipher.rb')
-rw-r--r--ruby_1_8_6/sample/openssl/cipher.rb33
1 files changed, 33 insertions, 0 deletions
diff --git a/ruby_1_8_6/sample/openssl/cipher.rb b/ruby_1_8_6/sample/openssl/cipher.rb
new file mode 100644
index 0000000000..6e8cdb9427
--- /dev/null
+++ b/ruby_1_8_6/sample/openssl/cipher.rb
@@ -0,0 +1,33 @@
+#!/usr/bin/env ruby
+require 'openssl'
+
+text = "abcdefghijklmnopqrstuvwxyz"
+pass = "secret password"
+salt = "8 octets" # or nil
+alg = "DES-EDE3-CBC"
+#alg = "AES-128-CBC"
+
+puts "--Setup--"
+puts %(clear text: "#{text}")
+puts %(password: "#{pass}")
+puts %(salt: "#{salt}")
+puts %(cipher alg: "#{alg}")
+puts
+
+puts "--Encrypting--"
+des = OpenSSL::Cipher::Cipher.new(alg)
+des.pkcs5_keyivgen(pass, salt)
+des.encrypt
+cipher = des.update(text)
+cipher << des.final
+puts %(encrypted text: #{cipher.inspect})
+puts
+
+puts "--Decrypting--"
+des = OpenSSL::Cipher::Cipher.new(alg)
+des.pkcs5_keyivgen(pass, salt)
+des.decrypt
+out = des.update(cipher)
+out << des.final
+puts %(decrypted text: "#{out}")
+puts