Module: GoSecure::SecureJson

Defined in:
lib/go_secure.rb

Class Method Summary collapse

Class Method Details

.db_encryption(bool) ⇒ Object



118
119
120
# File 'lib/go_secure.rb', line 118

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

.dump(obj) ⇒ Object



132
133
134
135
136
# File 'lib/go_secure.rb', line 132

def self.dump(obj)
  json = JSON.dump(obj)
  res = encrypted_dump(json)
  res
end

.encrypted_dump(json) ⇒ Object



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

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



122
123
124
125
126
127
128
129
130
# File 'lib/go_secure.rb', line 122

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