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