Sha256: 9e8822219c7caaa3c46e694bf2daabdb94a23b1cd5e5525ecd6e895b391a270c

Contents?: true

Size: 572 Bytes

Versions: 1

Compression:

Stored size: 572 Bytes

Contents

module Refcode

  class Encoder

    attr_accessor :secret, :salt

    def initialize
      yield self if block_given?
    end
    def encode val
      Base64URL.encode(encrypt(YAML.dump(val)))
    end
    def decode val
      YAML.load(decrypt(Base64URL.decode(val)))
    end

    private

    def encrypt val
      Encryptor.encrypt(:value => val, :key => @secret, :salt => @salt, :iv => iv)
    end
    def decrypt val
      Encryptor.decrypt(:value => val, :key => @secret, :salt => @salt, :iv => iv)
    end
    def iv
      [@secret, @salt].join
    end

  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
refcode-0.1.0 lib/refcode/encoder.rb