Skip to content

Instantly share code, notes, and snippets.

@brainded
Last active March 31, 2021 18:40

Revisions

  1. brainded revised this gist Mar 31, 2021. 1 changed file with 8 additions and 8 deletions.
    16 changes: 8 additions & 8 deletions WebhhookSigning.cs
    Original file line number Diff line number Diff line change
    @@ -7,15 +7,15 @@ public static class WebhookUtility
    public static bool IsVerified(string payload, string sharedSecret, string virtuousSignature)
    {
    byte[] valueByteArray = Encoding.UTF8.GetBytes(payload);
    byte[] secretByteArray = Encoding.UTF8.GetBytes(sharedSecret);
    byte[] secretByteArray = Encoding.UTF8.GetBytes(sharedSecret);

    using (var hmacSha256 = new HMACSHA256(secretByteArray))
    {
    var hashedValue = hmacSha256.ComputeHash(valueByteArray);
    var signedPayload = Convert.ToBase64String(hashedValue);
    using (var hmacSha256 = new HMACSHA256(secretByteArray))
    {
    var hashedValue = hmacSha256.ComputeHash(valueByteArray);
    var signedPayload = Convert.ToBase64String(hashedValue);

    if (signedPayload.Equals(virtuousSignature)) return true;
    return false;
    }
    if (signedPayload.Equals(virtuousSignature)) return true;
    return false;
    }
    }
    }
  2. brainded created this gist Mar 31, 2021.
    21 changes: 21 additions & 0 deletions WebhhookSigning.cs
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,21 @@
    using System;
    using System.Text;
    using System.Security.Cryptography;

    public static class WebhookUtility
    {
    public static bool IsVerified(string payload, string sharedSecret, string virtuousSignature)
    {
    byte[] valueByteArray = Encoding.UTF8.GetBytes(payload);
    byte[] secretByteArray = Encoding.UTF8.GetBytes(sharedSecret);

    using (var hmacSha256 = new HMACSHA256(secretByteArray))
    {
    var hashedValue = hmacSha256.ComputeHash(valueByteArray);
    var signedPayload = Convert.ToBase64String(hashedValue);

    if (signedPayload.Equals(virtuousSignature)) return true;
    return false;
    }
    }
    }