summaryrefslogtreecommitdiff
path: root/LibTSforge/Crypto/CryptoUtils.cs
diff options
context:
space:
mode:
Diffstat (limited to 'LibTSforge/Crypto/CryptoUtils.cs')
-rw-r--r--LibTSforge/Crypto/CryptoUtils.cs13
1 files changed, 12 insertions, 1 deletions
diff --git a/LibTSforge/Crypto/CryptoUtils.cs b/LibTSforge/Crypto/CryptoUtils.cs
index 4851570..11c2413 100644
--- a/LibTSforge/Crypto/CryptoUtils.cs
+++ b/LibTSforge/Crypto/CryptoUtils.cs
@@ -106,10 +106,21 @@ namespace LibTSforge.Crypto
public static bool HMACVerify(byte[] key, byte[] data, byte[] signature)
{
- HMACSHA1 hmac = new HMACSHA1(key);
return Enumerable.SequenceEqual(signature, HMACSign(key, data));
}
+ public static byte[] SaltSHASum(byte[] salt, byte[] data)
+ {
+ SHA1 sha1 = SHA1.Create();
+ byte[] sha_data = salt.Concat(data).ToArray();
+ return sha1.ComputeHash(sha_data);
+ }
+
+ public static bool SaltSHAVerify(byte[] salt, byte[] data, byte[] checksum)
+ {
+ return Enumerable.SequenceEqual(checksum, SaltSHASum(salt, data));
+ }
+
public static byte[] SHA256Hash(byte[] data)
{
using (SHA256 sha256 = SHA256.Create())