Exemplo n.º 1
0
        public override byte[] EvaluateChallenge(byte[] challenge)
        {
            if (challenge == null || challenge.Length == 0)
            {
                throw new ArgumentNullException("challenge");
            }

            NameCallback     nameCB = new NameCallback(AuthorizationId);
            PasswordCallback pwdCB  = new PasswordCallback();

            ISaslCallback[] callbacks = { nameCB, pwdCB };
            Handler.Handle(callbacks);

            string username = nameCB.Text;
            string passwd   = pwdCB.Text.PadRight(MinPwdLen, '\0');

            byte[] secret = Encoding.UTF8.GetBytes(passwd);

            //using ( HMAC hmac = new HMACMD5(secret) )
            using (MD5HMAC hmac = new MD5HMAC(secret))
            {
                byte[] value   = hmac.ComputeHash(challenge);
                string encoded = ToHex(value);
                SetComplete();
                return(Encoding.UTF8.GetBytes(username + " " + encoded));
            }
        }
Exemplo n.º 2
0
      public override byte[] EvaluateChallenge(byte[] challenge)
      {
         if ( challenge == null || challenge.Length == 0 )
            throw new ArgumentNullException("challenge");

         NameCallback nameCB = new NameCallback(AuthorizationId);
         PasswordCallback pwdCB = new PasswordCallback();
         ISaslCallback[] callbacks = { nameCB, pwdCB };
         Handler.Handle(callbacks);

         string username = nameCB.Text;
         string passwd = pwdCB.Text.PadRight(MinPwdLen, '\0');

         byte[] secret = Encoding.UTF8.GetBytes(passwd);

         //using ( HMAC hmac = new HMACMD5(secret) )
         using ( MD5HMAC hmac = new MD5HMAC(secret) )
         {
            byte[] value = hmac.ComputeHash(challenge);
            string encoded = ToHex(value);
            SetComplete();
            return Encoding.UTF8.GetBytes(username + " " + encoded);
         }

      }
Exemplo n.º 3
0
 /// <summary>
 /// Initializes all required instances.
 /// </summary>
 public HashAlgorithmRegister()
 {
     psi_128bit    = new implementations.psi.utility.UsageHelper_Hash();
     md5           = new MD5();
     md5hmac       = new MD5HMAC();
     ripemd160     = new RIPEMD160();
     ripemd160hmac = new RIPEMD160HMAC();
     sha1          = new SHA1();
     sha1hmac      = new SHA1HMAC();
     sha256        = new SHA256();
     sha256hmac    = new SHA256HMAC();
     sha384        = new SHA384();
     sha384hmac    = new SHA384HMAC();
     sha512        = new SHA512();
     sha512hmac    = new SHA512HMAC();
 }