diff options
author | Niels Provos <provos@cvs.openbsd.org> | 1998-07-05 21:08:38 +0000 |
---|---|---|
committer | Niels Provos <provos@cvs.openbsd.org> | 1998-07-05 21:08:38 +0000 |
commit | f5a47d994d633015b1d28e0e9bfcc4c0d1454690 (patch) | |
tree | c1ce714d1f85cb63b86d399b1a8fc186ec1a316c /usr.bin/passwd/pwd_gensalt.c | |
parent | 61db3cc2c59b8a65075d56d23e1bb07b3e0051dd (diff) |
newsalt uses 24-bit count, and not 32-bit
Diffstat (limited to 'usr.bin/passwd/pwd_gensalt.c')
-rw-r--r-- | usr.bin/passwd/pwd_gensalt.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/usr.bin/passwd/pwd_gensalt.c b/usr.bin/passwd/pwd_gensalt.c index 628b94a7c6e..1000776e341 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.8 1998/07/04 18:27:04 provos Exp $ */ +/* $OpenBSD: pwd_gensalt.c,v 1.9 1998/07/05 21:08:32 provos Exp $ */ /* * Copyright 1997 Niels Provos <provos@physnet.uni-hamburg.de> * All rights reserved. @@ -91,10 +91,13 @@ pwd_gensalt(salt, max, pwd, type) salt[2] = '\0'; } else if (!strcmp(now, "newsalt")) { u_int32_t rounds = atol(next); - if (rounds < 725) - rounds = 725; if (max < 10) return 0; + /* Check rounds, 24 bit is max */ + if (rounds < 7250) + rounds = 7250; + else if (rounds > 0xffffff) + rounds = 0xffffff; salt[0] = _PASSWORD_EFMT1; to64(&salt[1], (u_int32_t) rounds, 4); to64(&salt[5], arc4random(), 4); |