class EventQ::SignatureProviders::Sha256SignatureProvider

Public Class Methods

new() click to toggle source
# File lib/eventq_base/signature_providers/sha256_signature_provider.rb, line 5
def initialize
  require 'openssl'
  require 'base64'
  @serializer = serialization_provider_manager.get_provider(EventQ::Configuration.serialization_provider)
end

Public Instance Methods

valid?(message:, secret:) click to toggle source

This method is called to validate a message signature

# File lib/eventq_base/signature_providers/sha256_signature_provider.rb, line 19
def valid?(message:, secret:)
  signature = write(message: message, secret: secret)
  message.signature == signature
end
write(message:, secret:) click to toggle source

This method is called to create a signature for a message

# File lib/eventq_base/signature_providers/sha256_signature_provider.rb, line 12
def write(message:, secret:)
  json = @serializer.serialize(message.content)
  hash = OpenSSL::HMAC.digest('sha256', secret, json)
  Base64.encode64(hash)
end

Private Instance Methods

serialization_provider_manager() click to toggle source
# File lib/eventq_base/signature_providers/sha256_signature_provider.rb, line 26
def serialization_provider_manager
  EventQ::SerializationProviders::Manager.new
end