Class: AttrSecure::Secure

Inherits:
Object
  • Object
show all
Defined in:
lib/attr_secure/secure.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(secret) ⇒ Secure

Returns a new instance of Secure.



11
12
13
# File 'lib/attr_secure/secure.rb', line 11

def initialize(secret)
  self.secret = secret
end

Instance Attribute Details

#secretObject

Returns the value of attribute secret.



9
10
11
# File 'lib/attr_secure/secure.rb', line 9

def secret
  @secret
end

Instance Method Details

#decrypt(value) ⇒ Object

Raises:

  • (OpenSSL::Cipher::CipherError)


29
30
31
32
33
34
35
36
37
38
39
# 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) ⇒ Object



23
24
25
26
27
# File 'lib/attr_secure/secure.rb', line 23

def encrypt(value)
  Fernet.generate([secret].flatten.first) do |generator|
    generator.data = { value: value }
  end
end