version 1.5, 1997/02/14 23:27:28 |
version 1.6, 1997/02/16 20:08:56 |
|
|
register char *p, *t; |
register char *p, *t; |
int tries; |
int tries; |
char buf[_PASSWORD_LEN+1], salt[_PASSWORD_LEN], *crypt(), *getpass(); |
char buf[_PASSWORD_LEN+1], salt[_PASSWORD_LEN], *crypt(), *getpass(); |
void pwd_gensalt __P(( char *, int, struct passwd *, char)); |
int pwd_gensalt __P(( char *, int, struct passwd *, char)); |
|
|
(void)printf("Changing local password for %s.\n", pw->pw_name); |
(void)printf("Changing local password for %s.\n", pw->pw_name); |
|
|
|
|
break; |
break; |
(void)printf("Mismatch; try again, EOF to quit.\n"); |
(void)printf("Mismatch; try again, EOF to quit.\n"); |
} |
} |
pwd_gensalt( salt, _PASSWORD_LEN, pw, 'l' ); |
if( !pwd_gensalt( salt, _PASSWORD_LEN, pw, 'l' )) { |
return(crypt(buf, salt)); |
(void)printf("Couldn't generate salt.\n"); |
} |
pw_error(NULL, 0, 0); |
|
|
static unsigned char itoa64[] = /* 0 ... 63 => ascii - 64 */ |
|
"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; |
|
|
|
to64(s, v, n) |
|
register char *s; |
|
register long v; |
|
register int n; |
|
{ |
|
while (--n >= 0) { |
|
*s++ = itoa64[v&0x3f]; |
|
v >>= 6; |
|
} |
} |
|
return(crypt(buf, salt)); |
} |
} |