Sha256: a004f2d36a97d12a2a89462bfececcf3f89ce30e976004741bbe362bc8d1b7aa

Contents?: true

Size: 796 Bytes

Versions: 4

Compression:

Stored size: 796 Bytes

Contents

require 'multi_json'
require 'keen/aes_helper'

module Keen
  class ScopedKey
    include AESHelper
    extend AESHelper

    attr_accessor :api_key
    attr_accessor :data

    class << self
      def decrypt!(api_key, scoped_key)
        encrypted = unhexlify(scoped_key)
        padded_api_key = pad(api_key)
        decrypted = aes256_decrypt(padded_api_key, encrypted)
        data = MultiJson.load(decrypted)
        self.new(api_key, data)
      end
    end

    def initialize(api_key, data)
      self.api_key = api_key
      self.data = data
    end

    def encrypt!(iv = nil)
      json_str = MultiJson.dump(self.data)
      padded_api_key = pad(self.api_key)
      encrypted, iv = aes256_encrypt(padded_api_key, json_str, iv)
      hexlify(iv) + hexlify(encrypted)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
keen-0.9.4 lib/keen/scoped_key.rb
keen-0.9.3 lib/keen/scoped_key.rb
keen-0.9.2 lib/keen/scoped_key.rb
keen-0.9.1 lib/keen/scoped_key.rb