Class: Clicksign::Webhooks::HMAC

Inherits:
Struct
  • Object
show all
Defined in:
lib/clicksign/webhooks/hmac.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#requestObject

Returns the value of attribute request

Returns:

  • (Object)

    the current value of request



3
4
5
# File 'lib/clicksign/webhooks/hmac.rb', line 3

def request
  @request
end

Instance Method Details

#dataObject



16
17
18
# File 'lib/clicksign/webhooks/hmac.rb', line 16

def data
  @data = request.body.read
end

#digestObject



12
13
14
# File 'lib/clicksign/webhooks/hmac.rb', line 12

def digest
  @digest = OpenSSL::Digest::SHA256.new
end

#hmacObject



20
21
22
# File 'lib/clicksign/webhooks/hmac.rb', line 20

def hmac
  @hmac = OpenSSL::HMAC.hexdigest(digest, ENV['CLICKSIGN_HMAC_KEY'], data)
end

#hmac_headerObject



24
25
26
# File 'lib/clicksign/webhooks/hmac.rb', line 24

def hmac_header
  @hmac_header = request.headers['Content-Hmac'] || ''
end

#valid?Boolean

Returns:

  • (Boolean)


8
9
10
# File 'lib/clicksign/webhooks/hmac.rb', line 8

def valid?
  hmac_header.include?(hmac)
end

#validate!Object

Raises:



4
5
6
# File 'lib/clicksign/webhooks/hmac.rb', line 4

def validate!
  raise InvalidHMACError unless valid?
end