/// <summary>
 /// Gets the hash code
 /// </summary>
 /// <returns>Hash code</returns>
 public override int GetHashCode()
 {
     // credit: http://stackoverflow.com/a/263416/677735
     unchecked // Overflow is fine, just wrap
     {
         var hash = 41;
         // Suitable nullity checks etc, of course :)
         if (FingerprintToken != null)
         {
             hash = hash * 59 + FingerprintToken.GetHashCode();
         }
         if (ChallengeToken != null)
         {
             hash = hash * 59 + ChallengeToken.GetHashCode();
         }
         return(hash);
     }
 }
        public bool Equals(Authentication other)
        {
            if (other == null)
            {
                return(false);
            }

            return
                ((
                     FingerprintToken == other.FingerprintToken ||
                     FingerprintToken != null &&
                     FingerprintToken.Equals(other.FingerprintToken)
                     ) &&
                 (
                     ChallengeToken == other.ChallengeToken ||
                     ChallengeToken != null &&
                     ChallengeToken.Equals(other.ChallengeToken)
                 ));
        }