Sha256: 75fc3b86bd6ace2f33ba2644aefa769bc548e5a4f373659c83e6ae2f3910457c

Contents?: true

Size: 624 Bytes

Versions: 1

Compression:

Stored size: 624 Bytes

Contents

require 'secret_service/database_store'

require 'securerandom'
require 'singleton'
require 'gibberish'

module SecretService
  class Store
    include Singleton

    def get(source_secret)
      hash("#{source_secret}--#{database_secret(source_secret)}")
    end

    private

    def database_store
      @database_store ||= DatabaseStore.get
    end

    def database_secret(source_secret)
      secret = database_store.find(hash(source_secret)) do
        generate_secret
      end
    end

    def hash(value)
      Gibberish::SHA256(value)
    end

    def generate_secret
      SecureRandom.hex(32)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
secret_service-0.0.1 lib/secret_service/store.rb