class Envault::Cryptor::Simple

Public Class Methods

new(profile) click to toggle source
# File lib/envault/cryptor/simple.rb, line 4
def initialize(profile)
  passphrase = profile[:passphrase] || ''
  sign_passphrase = profile[:sign_passphrase]
  salt = profile[:salt] || ''

  key = ActiveSupport::KeyGenerator.new(passphrase).generate_key(salt, 32)
  signature_key = ActiveSupport::KeyGenerator.new(sign_passphrase).generate_key(salt, 32) if sign_passphrase

  if signature_key
    @cryptor = ActiveSupport::MessageEncryptor.new(key, signature_key, cipher: DEFAULT_CIPHER, digest: DEFAULT_DIGEST)
  else
    @cryptor = ActiveSupport::MessageEncryptor.new(key, cipher: DEFAULT_CIPHER, digest: DEFAULT_DIGEST)
  end
end

Public Instance Methods

decrypt(value) click to toggle source
# File lib/envault/cryptor/simple.rb, line 23
def decrypt(value)
  @cryptor.decrypt_and_verify(value)
end
encrypt(value) click to toggle source
# File lib/envault/cryptor/simple.rb, line 19
def encrypt(value)
  @cryptor.encrypt_and_sign(value)
end