Module: Loadrunner::SignatureHelper

Included in:
Server
Defined in:
lib/loadrunner/signature_helper.rb

Instance Method Summary collapse

Instance Method Details

#generate_signature(payload_body) ⇒ Object



13
14
15
# 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_tokenObject



17
18
19
# File 'lib/loadrunner/signature_helper.rb', line 17

def secret_token
  ENV['GITHUB_SECRET_TOKEN']
end

#verify_signature(payload_body, signature) ⇒ Object



3
4
5
6
7
8
9
10
11
# 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