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)); } }
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); } }
/// <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(); }