diff options
author | Niels Provos <provos@cvs.openbsd.org> | 1998-07-04 18:27:05 +0000 |
---|---|---|
committer | Niels Provos <provos@cvs.openbsd.org> | 1998-07-04 18:27:05 +0000 |
commit | c8858a33a93977c7d777c5422773a3fa26004118 (patch) | |
tree | b9765bb85702cd28b8335a93707f178d9c1db179 | |
parent | 98b78d36e1a9145cf8bcebda1a327016ac49479e (diff) |
enable variable number of rounds for extended crypt, this is the crypt
variant used by BSDI, reminded of this fact by Solar Designer.
-rw-r--r-- | usr.bin/passwd/pwd_gensalt.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/usr.bin/passwd/pwd_gensalt.c b/usr.bin/passwd/pwd_gensalt.c index 526e914c4c6..628b94a7c6e 100644 --- a/usr.bin/passwd/pwd_gensalt.c +++ b/usr.bin/passwd/pwd_gensalt.c @@ -1,4 +1,4 @@ -/* $OpenBSD: pwd_gensalt.c,v 1.7 1997/04/10 20:04:54 provos Exp $ */ +/* $OpenBSD: pwd_gensalt.c,v 1.8 1998/07/04 18:27:04 provos Exp $ */ /* * Copyright 1997 Niels Provos <provos@physnet.uni-hamburg.de> * All rights reserved. @@ -90,10 +90,13 @@ pwd_gensalt(salt, max, pwd, type) to64(&salt[0], arc4random(), 2); salt[2] = '\0'; } else if (!strcmp(now, "newsalt")) { + u_int32_t rounds = atol(next); + if (rounds < 725) + rounds = 725; if (max < 10) return 0; salt[0] = _PASSWORD_EFMT1; - to64(&salt[1], (int32_t) (29 * 25), 4); + to64(&salt[1], (u_int32_t) rounds, 4); to64(&salt[5], arc4random(), 4); salt[9] = '\0'; } else if (!strcmp(now, "md5")) { |