class Secret::AES

Public Class Methods

decrypt(msg) click to toggle source
# File lib/secret/aes.rb, line 22
def self.decrypt(msg)
  self.mode.decrypt msg
end
encrypt(msg) click to toggle source
# File lib/secret/aes.rb, line 18
def self.encrypt(msg)
  self.mode.encrypt msg
end
mode(mode = Mode::AES_256_CBC) click to toggle source
# File lib/secret/aes.rb, line 14
def self.mode(mode = Mode::AES_256_CBC)
  self.new(mode)
end
new(mode = Mode::AES_256_CBC) click to toggle source
# File lib/secret/aes.rb, line 10
def initialize(mode = Mode::AES_256_CBC)
  @cipher = OpenSSL::Cipher::Cipher.new mode
end

Public Instance Methods

decrypt(msg, key = Secret.conf.aes_key, iv = Secret.conf.aes_iv) click to toggle source
# File lib/secret/aes.rb, line 33
def decrypt(msg, key = Secret.conf.aes_key, iv = Secret.conf.aes_iv)
  @cipher.decrypt
  @cipher.key = digest_key(key)
  @cipher.iv = iv if iv != nil
  @cipher.update(decode_if_need(msg)) + @cipher.final
end
encrypt(msg, key = Secret.conf.aes_key, iv = Secret.conf.aes_iv) click to toggle source
# File lib/secret/aes.rb, line 26
def encrypt(msg, key = Secret.conf.aes_key, iv = Secret.conf.aes_iv)
  @cipher.encrypt
  @cipher.key = digest_key(key)
  @cipher.iv = iv if iv != nil
  encode_if_need(@cipher.update(msg) + @cipher.final)
end

Private Instance Methods

digest_key(key) click to toggle source
# File lib/secret/aes.rb, line 42
def digest_key(key)
  hash_mode = Secret.conf.hash_mode
  if hash_mode
    hash_mode.hexdigest key
  else
    key
  end
end