class CryptoUtils::AesUtil

SYMMETRIC ENCRYPTION UTIL

Public Instance Methods

decrypt(encoded_cipher_text, encoded_key, encoded_iv) click to toggle source
# File lib/ig-crypto-utils.rb, line 62
def decrypt(encoded_cipher_text, encoded_key, encoded_iv)

  decoded_cipher_text = Base64.decode64 encoded_cipher_text
  decoded_iv = Base64.decode64 encoded_iv

  cipher = OpenSSL::Cipher::AES.new(256, :CBC)
  cipher.decrypt

  cipher.key = encoded_key
  cipher.iv = decoded_iv

  cipher.update(decoded_cipher_text) + cipher.final
end
encrypt(encoded_plain_text, encoded_key) click to toggle source

gist.github.com/byu/99651 ruby-doc.org/stdlib-1.9.3/libdoc/openssl/rdoc/OpenSSL/Cipher.html

# File lib/ig-crypto-utils.rb, line 43
def encrypt(encoded_plain_text, encoded_key)

  cipher = OpenSSL::Cipher::AES.new(256, :CBC) # CBC = cipher block chaining
  cipher.encrypt

  # generate a random iv
  iv = cipher.random_iv

  cipher.key = encoded_key
  cipher.iv = iv

  result = cipher.update(encoded_plain_text) + cipher.final

  encoded_result = Base64.encode64 result
  encoded_iv = Base64.encode64 iv

  {:cipher_text => encoded_result, :iv => encoded_iv}
end