Module: Keen::AESHelper
Constant Summary collapse
- BLOCK_SIZE =
32
Instance Method Summary collapse
- #aes256_decrypt(key, iv_plus_encrypted) ⇒ Object
- #aes256_encrypt(key, plaintext) ⇒ Object
- #hexlify(msg) ⇒ Object
- #pad(msg) ⇒ Object
- #unhexlify(msg) ⇒ Object
Instance Method Details
#aes256_decrypt(key, iv_plus_encrypted) ⇒ Object
18 19 20 21 22 23 24 25 26 |
# File 'lib/keen/aes_helper.rb', line 18 def aes256_decrypt(key, iv_plus_encrypted) iv = iv_plus_encrypted[0, 16] encrypted = iv_plus_encrypted[16, iv_plus_encrypted.length] aes = OpenSSL::Cipher::AES.new(256, :CBC) aes.decrypt aes.key = key aes.iv = iv aes.update(encrypted) + aes.final end |
#aes256_encrypt(key, plaintext) ⇒ Object
10 11 12 13 14 15 16 |
# File 'lib/keen/aes_helper.rb', line 10 def aes256_encrypt(key, plaintext) aes = OpenSSL::Cipher::AES.new(256, :CBC) aes.encrypt aes.key = key iv = aes.random_iv [aes.update(plaintext) + aes.final, iv] end |
#hexlify(msg) ⇒ Object
28 29 30 |
# File 'lib/keen/aes_helper.rb', line 28 def hexlify(msg) msg.unpack('H*')[0] end |
#pad(msg) ⇒ Object
36 37 38 39 40 41 |
# File 'lib/keen/aes_helper.rb', line 36 def pad(msg) pad_len = BLOCK_SIZE - (msg.length % BLOCK_SIZE) padding = pad_len.chr * pad_len padded = msg + padding padded end |
#unhexlify(msg) ⇒ Object
32 33 34 |
# File 'lib/keen/aes_helper.rb', line 32 def unhexlify(msg) [msg].pack('H*') end |