class SecretX::AES

Public Class Methods

decrypt(msg) click to toggle source
# File lib/secretx/aes.rb, line 21
def self.decrypt(msg)
  self.mode.decrypt msg
end
encrypt(msg) click to toggle source
# File lib/secretx/aes.rb, line 17
def self.encrypt(msg)
  self.mode.encrypt msg
end
mode(mode = Mode::AES_256_CBC) click to toggle source
# File lib/secretx/aes.rb, line 13
def self.mode(mode = Mode::AES_256_CBC)
  self.new(mode)
end
new(mode = Mode::AES_256_CBC) click to toggle source
# File lib/secretx/aes.rb, line 9
def initialize(mode = Mode::AES_256_CBC)
  @cipher = OpenSSL::Cipher::Cipher.new mode
end

Public Instance Methods

decrypt(msg, key = SecretX.conf.aes_key, iv = SecretX.conf.aes_iv) click to toggle source
# File lib/secretx/aes.rb, line 32
def decrypt(msg, key = SecretX.conf.aes_key, iv = SecretX.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 = SecretX.conf.aes_key, iv = SecretX.conf.aes_iv) click to toggle source
# File lib/secretx/aes.rb, line 25
def encrypt(msg, key = SecretX.conf.aes_key, iv = SecretX.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/secretx/aes.rb, line 41
def digest_key(key)
  hash_mode = SecretX.conf.hash_mode
  if hash_mode
    hash_mode.hexdigest key
  else
    key
  end
end