Пример #1
0
 public bool ValidateCanary(string canaryString)
 {
     byte[] userContextIdBinary;
     byte[] timeStampBinary;
     byte[] a;
     if (!Canary.ParseCanary(canaryString, out userContextIdBinary, out timeStampBinary, out a))
     {
         return(false);
     }
     if (Canary.IsExpired(timeStampBinary))
     {
         return(false);
     }
     byte[] b = Canary.ComputeHash(userContextIdBinary, timeStampBinary, this.LogonUniqueKey);
     return(Canary.AreEqual(a, b));
 }
Пример #2
0
 public static Canary RestoreCanary(string canaryString, string logonUniqueKey)
 {
     byte[] userContextIdBinary;
     byte[] timeStampBinary;
     byte[] b;
     if (Canary.ParseCanary(canaryString, out userContextIdBinary, out timeStampBinary, out b))
     {
         if (Canary.IsExpired(timeStampBinary))
         {
             return(null);
         }
         byte[] a = Canary.ComputeHash(userContextIdBinary, timeStampBinary, logonUniqueKey);
         if (Canary.AreEqual(a, b))
         {
             return(new Canary(userContextIdBinary, timeStampBinary, logonUniqueKey));
         }
     }
     return(null);
 }