Module: Parsel

Defined in:
lib/parsel.rb,
lib/parsel/json.rb,
lib/parsel/marshal.rb,
lib/parsel/version.rb

Defined Under Namespace

Modules: JSON, Marshal, Version

Constant Summary collapse

DEFAULT_IV =
'f89209ffcdd1a225'.freeze
CIPHER =
'AES-256-CBC'.freeze

Class Method Summary collapse

Class Method Details

.decrypt(*args) ⇒ Object



26
27
28
29
30
31
# File 'lib/parsel.rb', line 26

def self.decrypt(*args)
  key, iv, data = expand_args(args)
  cipher(:decrypt, key, iv, decode(data))
rescue Exception
  false
end

.default_ivObject



16
17
18
# File 'lib/parsel.rb', line 16

def self.default_iv
  @default_iv
end

.default_iv=(iv) ⇒ Object



12
13
14
# File 'lib/parsel.rb', line 12

def self.default_iv=(iv)
  @default_iv = iv
end

.encrypt(*args) ⇒ Object



22
23
24
# File 'lib/parsel.rb', line 22

def self.encrypt(*args)
  encode cipher(:encrypt, *expand_args(args))
end

.expand_args(args) ⇒ Object



33
34
35
36
37
38
39
40
41
42
# File 'lib/parsel.rb', line 33

def self.expand_args(args)
  if args.size == 2
    iv = default_iv
    key, data = args
  else
    key, iv, data = args
  end

  [key, iv, data]
end