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