Project

General

Profile

Bug #15309

Updated by sevk (kk kk) over 5 years ago

~~~ ruby 
 #!/usr/bin/env ruby                                                                          
 require 'openssl' 

 # AES-128 ECB mode test vectors 
 KEY          = ["2b7e151628aed2a6abf7158809cf4f3c"].pack("H*") 
 PLAINTEXT    = ["6bc1bee22e409f96e93d7e117393172a"].pack("H*") 
 CIPHERTEXT = ["3ad77bb40d7a3660a89ecaf32466ef97"].pack("H*") 

 cipher = OpenSSL::Cipher::Cipher.new("aes-128-ecb") 
 cipher.key = KEY 
 cipher.padding = 0 # Padding is enabled by default o_O 

 puts "test encrypt : encry: " 
 cipher.encrypt 
 ciphertext = cipher.update(PLAINTEXT) << cipher.final 

 if ciphertext == CIPHERTEXT 
   puts "OK!" 
 else 
   puts "FAILED!" 
 end 

 puts "test decrypt : decry: " 
 cipher.reset 
 cipher.decrypt 
 plaintext = cipher.update(CIPHERTEXT) << cipher.final 

 if plaintext == PLAINTEXT 
   puts "OK!" 
 else 
   puts "FAILED!" 
 end 

 ~~~ 

Back