module Loadrunner::SignatureHelper

Public Instance Methods

generate_signature(payload_body) click to toggle source
# File lib/loadrunner/signature_helper.rb, line 13
def generate_signature(payload_body)
  'sha1=' + OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha1'), secret_token, payload_body)
end
secret_token() click to toggle source
# File lib/loadrunner/signature_helper.rb, line 17
def secret_token
  ENV['GITHUB_SECRET_TOKEN']
end
verify_signature(payload_body, signature) click to toggle source
# File lib/loadrunner/signature_helper.rb, line 3
def verify_signature(payload_body, signature)
  return :no_client if secret_token and !signature
  return :no_server if !secret_token and signature
  return :ok        if !secret_token and !signature

  expected_signature = generate_signature payload_body
  signature_match = Rack::Utils.secure_compare(expected_signature, signature)
  return signature_match ? :ok : :mismatch
end