class Keen::AESHelperOld
Constants
- BLOCK_SIZE
Public Class Methods
aes256_decrypt(key, iv_plus_encrypted)
click to toggle source
# File lib/keen/aes_helper_old.rb, line 11 def aes256_decrypt(key, iv_plus_encrypted) padded_key = pad(key) unhexed_iv_plus_encrypted = unhexlify(iv_plus_encrypted) iv = unhexed_iv_plus_encrypted[0, 16] encrypted = unhexed_iv_plus_encrypted[16, unhexed_iv_plus_encrypted.length] aes = OpenSSL::Cipher::AES.new(256, :CBC) aes.decrypt aes.key = padded_key aes.iv = iv aes.update(encrypted) + aes.final end
aes256_encrypt(key, plaintext, iv = nil)
click to toggle source
# File lib/keen/aes_helper_old.rb, line 23 def aes256_encrypt(key, plaintext, iv = nil) raise OpenSSL::Cipher::CipherError.new("iv must be 16 bytes") if !iv.nil? && iv.length != 16 padded_key = pad(key) aes = OpenSSL::Cipher::AES.new(256, :CBC) aes.encrypt aes.key = padded_key aes.iv = iv unless iv.nil? iv ||= aes.random_iv encrypted = aes.update(plaintext) + aes.final hexlify(iv) + hexlify(encrypted) end
hexlify(msg)
click to toggle source
# File lib/keen/aes_helper_old.rb, line 35 def hexlify(msg) msg.unpack('H*')[0] end
pad(msg)
click to toggle source
# File lib/keen/aes_helper_old.rb, line 43 def pad(msg) missing_chars = msg.length % BLOCK_SIZE return msg if missing_chars == 0 pad_len = BLOCK_SIZE - missing_chars padding = pad_len.chr * pad_len padded = msg + padding padded end
unhexlify(msg)
click to toggle source
# File lib/keen/aes_helper_old.rb, line 39 def unhexlify(msg) [msg].pack('H*') end