Module: Notion::Webhooks::Signature
- Defined in:
- lib/notion/webhooks/signature.rb
Class Method Summary collapse
Class Method Details
.secure_compare?(left, right) ⇒ Boolean
15 16 17 18 19 |
# File 'lib/notion/webhooks/signature.rb', line 15 def secure_compare?(left, right) return false unless left.bytesize == right.bytesize left.bytes.zip(right.bytes).reduce(0) { |difference, (a, b)| difference | (a ^ b) }.zero? end |
.valid?(secret:, payload:, signature:) ⇒ Boolean
10 11 12 13 |
# File 'lib/notion/webhooks/signature.rb', line 10 def valid?(secret:, payload:, signature:) expected = OpenSSL::HMAC.hexdigest("SHA256", secret, payload) secure_compare?(expected, signature.to_s.delete_prefix("sha256=")) end |