class AttrSecure::Secure

Attributes

secret[R]

Public Class Methods

new(secret) click to toggle source
# File lib/attr_secure/secure.rb, line 11
def initialize(secret)
  self.secret = secret
end

Public Instance Methods

decrypt(value) click to toggle source
# File lib/attr_secure/secure.rb, line 29
def decrypt(value)
  return nil if value.nil?
  [secret].flatten.each do |_secret|
    begin
      verifier = Fernet.verifier(_secret, value)
      return verifier.data['value'] if verifier.valid?
    rescue
    end
  end
  raise OpenSSL::Cipher::CipherError
end
encrypt(value) click to toggle source
# File lib/attr_secure/secure.rb, line 23
def encrypt(value)
  Fernet.generate([secret].flatten.first) do |generator|
    generator.data = { value: value }
  end
end
secret=(val) click to toggle source
# File lib/attr_secure/secure.rb, line 15
def secret=(val)
  @secret = if val.is_a? Array
              val
            else
              val.split(",")
            end
end