Skip to content

Commit 8bf31f6

Browse files
add code to test HMAC message validation (#95)
1 parent e21fdd2 commit 8bf31f6

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

connect_test.rb

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
def ComputeHash(secret, payload)
2+
require 'openssl'
3+
require 'base64'
4+
5+
digest = OpenSSL::Digest.new('sha256')
6+
hashBytes = OpenSSL::HMAC.digest(digest, secret, payload)
7+
base64Hash = Base64.encode64(hashBytes)
8+
return base64Hash;
9+
end
10+
11+
def HashIsValid(secret, payload, signature)
12+
ver = ComputeHash(secret, payload)
13+
OpenSSL.secure_compare(ver.chomp, signature)
14+
end
15+
16+
secret = 'xxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxGE=' # Replace this value with your own secret
17+
signature = 'c60xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxew=' # Replace this value with your own signature
18+
payload = File.read('payload.txt') # Read the payload from a file named payload.txt
19+
puts HashIsValid(secret, payload, signature) # should return true for valid

0 commit comments

Comments
 (0)