Class: MailgunWebhooks::Signature

Inherits:
Object
  • Object
show all
Defined in:
lib/mailgun_webhooks/signature.rb

Class Method Summary collapse

Class Method Details

.valid?(data) ⇒ Boolean

Public: Verifies the incoming data according to the MailgunWebhooks specs: documentation.mailgun.net/user_manual.html#events-webhooks

Returns a boolean.

Returns:

  • (Boolean)


9
10
11
12
13
14
15
16
17
18
19
# File 'lib/mailgun_webhooks/signature.rb', line 9

def self.valid?(data)
  signature = data.fetch('signature')
  api_key   = data.fetch('api_key')
  timestamp = data.fetch('timestamp')
  token     = data.fetch('token')
  digest    = OpenSSL::Digest.new('sha256')

  signature == OpenSSL::HMAC.hexdigest(digest,
                                       api_key,
                                       '%s%s' % [timestamp, token])
end