Skip to content

Commit ac64777

Browse files
authored
Merge pull request #47 from rubberduck-vba/webhook
Fix signature validation
2 parents d0119a3 + 07c4559 commit ac64777

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

rubberduckvba.Server/WebhookSignatureValidationService.cs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using rubberduckvba.Server.Api.Admin;
1+
using Newtonsoft.Json;
2+
using rubberduckvba.Server.Api.Admin;
23
using System.Security.Cryptography;
34
using System.Text;
45

@@ -64,11 +65,14 @@ private bool IsValidSignature(string? signature, string payload)
6465

6566
var secret = configuration.GitHubOptions.Value.WebhookToken;
6667
var secretBytes = Encoding.UTF8.GetBytes(secret);
67-
var payloadbytes = Encoding.UTF8.GetBytes(payload);
68+
69+
var payloadBytes = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(JsonConvert.DeserializeObject(payload)));
6870

6971
using var digest = new HMACSHA256(secretBytes);
70-
var check = $"sha256={Encoding.UTF8.GetString(digest.ComputeHash(payloadbytes))}";
72+
var hash = digest.ComputeHash(payloadBytes);
73+
74+
var check = $"sha256={Convert.ToHexString(hash).ToLowerInvariant()}";
7175

72-
return signature == check;
76+
return (signature == check);
7377
}
7478
}

0 commit comments

Comments
 (0)