Class: GrapeTokenAuth::CachingKeyGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/grape_token_auth/key_generator.rb

Overview

CachingKeyGenerator is a wrapper around KeyGenerator which allows users to avoid re-executing the key generation process when it’s called using the same salt and key_size

Instance Method Summary collapse

Constructor Details

#initialize(key_generator) ⇒ CachingKeyGenerator



32
33
34
35
# File 'lib/grape_token_auth/key_generator.rb', line 32

def initialize(key_generator)
  @key_generator = key_generator
  @cache_keys = ThreadSafe::Cache.new
end

Instance Method Details

#generate_key(salt, key_size = 64) ⇒ Object

Returns a derived key suitable for use. The default key_size is chosen to be compatible with the default settings of OpenSSL::Digest::SHA1#block_length



40
41
42
43
# File 'lib/grape_token_auth/key_generator.rb', line 40

def generate_key(salt, key_size = 64)
  key = "#{salt}#{key_size}"
  @cache_keys[key] ||= @key_generator.generate_key(salt, key_size)
end