Example #1
0
        public RequestModel(string action, HmacType signatureMethod)
        {
            Action          = action;
            SignatureMethod = signatureMethod.ToString();

            Timestamp = DateTimeOffset.Now.ToUnixTimeSeconds();
            Nonce     = new Random(DateTime.Now.Millisecond).Next(10000, 99999);
        }
Example #2
0
 /// <summary>
 /// HMAC VerityData
 /// </summary>
 /// <param name="key"></param>
 /// <param name="content"></param>
 /// <param name="hmacType"></param>
 /// <returns></returns>
 public static bool VerifyData(string key, string content, HmacType hmacType)
 {
     var data = content.Base64ToBytes();
     var alg = GetHmac(key, hmacType);
     return data.Take(alg.HashSize >> 3).SequenceEqual(alg.ComputeHash(data.Skip(alg.HashSize >> 3).ToArray()));
 }
Example #3
0
 private static HMAC GetHmac(string key, HmacType hmacType)
 {
     var bytes = key.ToDefaultBytes();
     switch (hmacType)
     {
         case HmacType.Ripemd160:
             return new HMACRIPEMD160(bytes);
         case HmacType.Sha1:
             return new HMACSHA1(bytes);
         case HmacType.Sha256:
             return new HMACSHA256(bytes);
         case HmacType.Sha384:
             return new HMACSHA384(bytes);
         case HmacType.Sha512:
             return new HMACSHA512(bytes);
         default:
             return new HMACMD5(bytes);
     }
 }
Example #4
0
 /// <summary>
 /// HMAC SignData
 /// </summary>
 /// <param name="key"></param>
 /// <param name="content"></param>
 /// <param name="hmacType"></param>
 /// <returns></returns>
 public static string SignData(string key, string content, HmacType hmacType)
 {
     var data = content.ToDefaultBytes();
     var alg = GetHmac(key, hmacType);
     return alg.ComputeHash(data).Concat(data).ToArray().Bytes2Base64();
 }