class SimpleEncryptable::Encryptor

Public Class Methods

decrypt(value, options) click to toggle source
# File lib/simple_encryptable/encryptor.rb, line 14
def decrypt(value, options)
  key = key(options)
  ActiveSupport::MessageEncryptor.new(key).decrypt_and_verify(value)
end
encrypt(value, options) click to toggle source
# File lib/simple_encryptable/encryptor.rb, line 9
def encrypt(value, options)
  key = key(options)
  ActiveSupport::MessageEncryptor.new(key).encrypt_and_sign(value)
end

Private Class Methods

key(arguments = {}) click to toggle source
# File lib/simple_encryptable/encryptor.rb, line 21
def key(arguments = {})
  raise Error, 'Secret option is missing.' if arguments[:secret].to_s.empty?
  raise Error, 'Salt option is missing' if arguments[:salt].to_s.empty?

  ::ActiveSupport::KeyGenerator
    .new(arguments[:secret])
    .generate_key(arguments[:salt], ActiveSupport::MessageEncryptor.key_len).freeze
end