Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'crypt/rijndael'
- require 'base64'
- require 'ruby-aes/aes'
- require 'openssl'
- # Modify Crypt::Rijndael lib to accept an IV
- module Crypt
- class Rijndael
- def vector() @vector; end
- alias orig_initialize initialize
- def initialize(key, vector, keyBits = 256, blockBits = 128)
- @vector = vector
- orig_initialize(key, keyBits, blockBits)
- end
- alias orig_generate_initialization_vector generate_initialization_vector
- def generate_initialization_vector( *p )
- @vector || orig_generate_initialization_vector( *p )
- end
- def iv_length() block_size; end
- end
- end
- def test_crypt_encryption
- key = '0123456789abcdef0123456789abcdef'
- rijndael = Crypt::Rijndael.new( key, 128, 128 )
- raise Base64.encode64( rijndael.encrypt_string( 'abcdef' ) )
- # returns 'F2wpWlldcZPQlfHOBWZatk8Zq9XNHMRJiB0vC04rZEE='
- end
- def test_openssl_encryption
- key = '0123456789abcdef0123456789abcdef'
- alg = "AES-256-CBC"
- iv = 'abcdefghijklmnop'
- aes = OpenSSL::Cipher::Cipher.new(alg)
- aes.encrypt
- aes.key = key
- aes.iv = iv
- out = aes.update('abcdef')
- out << aes.final
- raise Base64.encode64(out)
- # returns 'jQeE5X55BSwJQav1VV w1g=='
- end
- def test_aes_encryption
- key = '0123456789abcdef0123456789abcdef'
- iv = 'abcdefghijklmnop'
- raise Base64.encode64( Aes.encrypt_buffer(128, 'CBC', key, iv, 'abcdef') )
- # returns 'fa3taon6wtaPGQ4KgmLrCQ=='
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement