diff options
| author | ad <ad@NetBSD.org> | 2000-07-06 11:13:49 +0000 |
|---|---|---|
| committer | ad <ad@NetBSD.org> | 2000-07-06 11:13:49 +0000 |
| commit | ac9fc8f4e69ae151069e354b14562c2a88c64343 (patch) | |
| tree | a2b4199a64c0fdc8a0727c7096c478ee736adf4d /lib/libcrypt/crypt.c | |
| parent | 49de2aa1ceac28cb2e48685980740e6f3d5ba3ec (diff) | |
Handle non-DES encrypted passwords; currently only MD5.
Diffstat (limited to 'lib/libcrypt/crypt.c')
| -rw-r--r-- | lib/libcrypt/crypt.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/lib/libcrypt/crypt.c b/lib/libcrypt/crypt.c index d50169e9e38..588631352e6 100644 --- a/lib/libcrypt/crypt.c +++ b/lib/libcrypt/crypt.c @@ -1,4 +1,4 @@ -/* $NetBSD: crypt.c,v 1.15 2000/06/16 16:27:32 thorpej Exp $ */ +/* $NetBSD: crypt.c,v 1.16 2000/07/06 11:13:49 ad Exp $ */ /* * Copyright (c) 1989, 1993 @@ -41,7 +41,7 @@ #if 0 static char sccsid[] = "@(#)crypt.c 8.1.1.1 (Berkeley) 8/18/93"; #else -__RCSID("$NetBSD: crypt.c,v 1.15 2000/06/16 16:27:32 thorpej Exp $"); +__RCSID("$NetBSD: crypt.c,v 1.16 2000/07/06 11:13:49 ad Exp $"); #endif #endif /* not lint */ @@ -480,6 +480,7 @@ crypt(key, setting) const char *key; const char *setting; { + extern char *__md5crypt(const char *, const char *); /* XXX */ char *encp; int32_t i; int t; @@ -487,6 +488,19 @@ crypt(key, setting) int num_iter, salt_size; C_block keyblock, rsltblock; + /* Non-DES encryption schemes hook in here. */ + if (setting[0] == _PASSWORD_NONDES) { + switch (setting[1]) { +#ifdef notyet + case '2': + return (__bcrypt(key, setting)); +#endif + case '1': + default: + return (__md5crypt(key, setting)); + } + } + for (i = 0; i < 8; i++) { if ((t = 2*(unsigned char)(*key)) != 0) key++; |
