Module: GoSecure::SecureJson

Defined in:
lib/go_secure.rb

Class Method Summary collapse

Class Method Details

.db_encryption(bool) ⇒ Object



135
136
137
# File 'lib/go_secure.rb', line 135

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

.dump(obj) ⇒ Object



149
150
151
152
153
# File 'lib/go_secure.rb', line 149

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

.encrypted_dump(json) ⇒ Object



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

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



139
140
141
142
143
144
145
146
147
# File 'lib/go_secure.rb', line 139

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