Module: GoSecure::SecureJson

Defined in:
lib/go_secure.rb

Class Method Summary collapse

Class Method Details

.db_encryption(bool) ⇒ Object



142
143
144
# File 'lib/go_secure.rb', line 142

def self.db_encryption(bool)
  @db_encryption = !!bool
end

.dump(obj) ⇒ Object



156
157
158
159
160
# File 'lib/go_secure.rb', line 156

def self.dump(obj)
  json = Oj.dump(obj, mode: :compat)
  res = encrypted_dump(json)
  res
end

.encrypted_dump(json) ⇒ Object



162
163
164
165
166
167
168
169
# File 'lib/go_secure.rb', line 162

def self.encrypted_dump(json)
  if @db_encryption == false
    "**" + json
  else
    secret, salt = GoSecure.encrypt(json, "secure_json")
    salt + "--" + secret
  end
end

.load(str) ⇒ Object



146
147
148
149
150
151
152
153
154
# File 'lib/go_secure.rb', line 146

def self.load(str)
  return nil unless str
  if str.match(/^\*\*/)
    Oj.load(str[2..-1], mode: :compat)
  else
    salt, secret = str.split(/--/, 2)
    Oj.load(GoSecure.decrypt(secret, salt, "secure_json"), mode: :compat)
  end
end