class Encryption::Symmetric

Public Class Methods

new() click to toggle source
# File lib/modules/symmetric.rb, line 6
def initialize
  @configuration = Encryption::Configuration::Symmetric.new
end

Public Instance Methods

decrypt(data) click to toggle source
# File lib/modules/symmetric.rb, line 27
def decrypt(data)
  cipher_init(:decipher, :decrypt)
  @decipher.update(data) + @decipher.final
end
encrypt(data) click to toggle source
# File lib/modules/symmetric.rb, line 22
def encrypt(data)
  cipher_init(:cipher, :encrypt)
  @cipher.update(data) + @cipher.final
end
method_missing(name, *args, &block) click to toggle source
Calls superclass method
# File lib/modules/symmetric.rb, line 10
def method_missing(name, *args, &block)
  if @configuration.respond_to? name
    return @configuration.send(name, *args, &block)
  end
  super
end
respond_to?(name, include_all = false) click to toggle source
Calls superclass method
# File lib/modules/symmetric.rb, line 17
def respond_to?(name, include_all = false)
  return true if @configuration.respond_to? name
  super
end

Private Instance Methods

cipher_init(name, mode) click to toggle source
# File lib/modules/symmetric.rb, line 34
def cipher_init(name, mode)
  obj = instance_variable_get((name = '@' + name.to_s))
  if obj.nil?
    obj = instance_variable_set(name, OpenSSL::Cipher.new(@configuration.cipher))
    obj.send mode
  end
  
  obj.key = @configuration.key
  obj.iv = @configuration.iv
end