class HttpSignatures::Verification

Public Class Methods

new(message:, key_store:) click to toggle source
# File lib/http_signatures/verification.rb, line 4
def initialize(message:, key_store:)
  @message = message
  @key_store = key_store
end

Public Instance Methods

valid?() click to toggle source
# File lib/http_signatures/verification.rb, line 9
def valid?
  signature_header_present? && VerificationAlgorithm.create(algorithm).valid?(
    message: @message,
    key: key,
    header_list: header_list,
    provided_signature_base64: provided_signature_base64
  )
rescue SignatureParametersParser::Error
  false
end

Private Instance Methods

algorithm() click to toggle source
# File lib/http_signatures/verification.rb, line 34
def algorithm
  Algorithm.create(parsed_parameters["algorithm"])
end
fetch_header(name) click to toggle source
# File lib/http_signatures/verification.rb, line 46
def fetch_header(name)
  @message.fetch(name)
end
header_list() click to toggle source
# File lib/http_signatures/verification.rb, line 38
def header_list
  HeaderList.from_string(parsed_parameters["headers"])
end
key() click to toggle source
# File lib/http_signatures/verification.rb, line 30
def key
  @key_store.fetch(parsed_parameters["keyId"])
end
parsed_parameters() click to toggle source
# File lib/http_signatures/verification.rb, line 42
def parsed_parameters
  @_parsed_parameters ||= SignatureParametersParser.new(fetch_header("Signature")).parse
end
provided_signature_base64() click to toggle source
# File lib/http_signatures/verification.rb, line 26
def provided_signature_base64
  parsed_parameters.fetch("signature")
end
signature_header_present?() click to toggle source
# File lib/http_signatures/verification.rb, line 22
def signature_header_present?
  @message.key?("Signature")
end