Module: GoSecure::SecureJson

Defined in:
lib/go_secure.rb

Class Method Summary collapse

Class Method Details

.db_encryption(bool) ⇒ Object



131
132
133
# File 'lib/go_secure.rb', line 131

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

.dump(obj) ⇒ Object



145
146
147
148
149
# File 'lib/go_secure.rb', line 145

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

.encrypted_dump(json) ⇒ Object



151
152
153
154
155
156
157
158
# File 'lib/go_secure.rb', line 151

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



135
136
137
138
139
140
141
142
143
# File 'lib/go_secure.rb', line 135

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