class PageletRails::Encryptor

Constants

DEFAULT_SALT

Attributes

salt[R]

Public Class Methods

decode(encrypted_data, opts = {}) click to toggle source
# File lib/pagelet_rails/encryptor.rb, line 11
def self.decode(encrypted_data, opts = {})
  self.new(opts).decode encrypted_data
end
encode(data, opts = {}) click to toggle source
# File lib/pagelet_rails/encryptor.rb, line 7
def self.encode(data, opts = {})
  self.new(opts).encode data
end
get_key(secret, salt) click to toggle source
# File lib/pagelet_rails/encryptor.rb, line 15
def self.get_key secret, salt
  @get_key_cache ||= {}
  key = [secret, salt]

  @get_key_cache[key] ||= ActiveSupport::KeyGenerator.new(secret).generate_key(salt)
end
new(opts = {}) click to toggle source
# File lib/pagelet_rails/encryptor.rb, line 22
def initialize(opts = {})
  @salt = opts.fetch :salt, DEFAULT_SALT
  @secret = opts[:secret]
end

Public Instance Methods

decode(encrypted_data) click to toggle source
# File lib/pagelet_rails/encryptor.rb, line 35
def decode(encrypted_data)
  encryptor.decrypt_and_verify(encrypted_data)
end
encode(data) click to toggle source
# File lib/pagelet_rails/encryptor.rb, line 31
def encode(data)
  encryptor.encrypt_and_sign(data)
end
secret() click to toggle source
# File lib/pagelet_rails/encryptor.rb, line 27
def secret
  @secret || Rails.application.secrets[:secret_key_base]
end

Private Instance Methods

encryptor() click to toggle source
# File lib/pagelet_rails/encryptor.rb, line 41
def encryptor
  @encryptor ||= begin
    key = self.class.get_key secret, salt
    key = key[0..31]
    ActiveSupport::MessageEncryptor.new(key)
  end
end