- // Give three attempts
- for( i = 0; i < 3; i ++ )
- {
- int ofs = strlen(pwd->pw_name)+strlen(salt);
- char tmpBuf[42];
- char tmp[ofs+20];
- char *pass = getpass("Password: ");
- uint8_t h[20];
-
- // Create hash string
- // <username><salt><hash>
- strcpy(tmp, pwd->pw_name);
- strcat(tmp, salt);
- SHA1( (unsigned char*)pass, strlen(pass), h );
- memcpy(tmp+ofs, h, 20);
-
- // Hash all that
- SHA1( (unsigned char*)tmp, ofs+20, h );
- sprintf(tmpBuf, "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
- h[ 0], h[ 1], h[ 2], h[ 3], h[ 4], h[ 5], h[ 6], h[ 7], h[ 8], h[ 9],
- h[10], h[11], h[12], h[13], h[14], h[15], h[16], h[17], h[18], h[19]
- );
-
- // Send password
- sendf(Socket, "PASS %s\n", tmpBuf);
- buf = ReadLine(Socket);
+ // Create hash string
+ // <username><salt><hash>
+ strcpy(tmp, Username);
+ strcat(tmp, salt);
+ SHA1( (unsigned char*)pass, strlen(pass), h );
+ memcpy(tmp+ofs, h, 20);