Module: ChatSDK::Discord::Signature

Defined in:
lib/chat_sdk/discord/signature.rb

Class Method Summary collapse

Class Method Details

.verify!(public_key_hex, signature_hex, timestamp, body) ⇒ Object



6
7
8
9
10
11
12
13
14
# File 'lib/chat_sdk/discord/signature.rb', line 6

def self.verify!(public_key_hex, signature_hex, timestamp, body)
  verify_key = Ed25519::VerifyKey.new([public_key_hex].pack("H*"))
  signature = [signature_hex].pack("H*")
  message = "#{timestamp}#{body}"
  verify_key.verify(signature, message)
  true
rescue Ed25519::VerifyError, ArgumentError
  raise ChatSDK::SignatureVerificationError, "Invalid Discord signature"
end