diff options
Diffstat (limited to 'lib/libskey/skey_crypt.c')
-rw-r--r-- | lib/libskey/skey_crypt.c | 38 |
1 files changed, 0 insertions, 38 deletions
diff --git a/lib/libskey/skey_crypt.c b/lib/libskey/skey_crypt.c deleted file mode 100644 index 4e3a141..0000000 --- a/lib/libskey/skey_crypt.c +++ /dev/null @@ -1,38 +0,0 @@ -/* Author: Wietse Venema, Eindhoven University of Technology. */ - -#include <string.h> -#include <stdio.h> -#include <pwd.h> -#include <unistd.h> - -#include "skey.h" - -/* skey_crypt - return encrypted UNIX passwd if s/key or regular password ok */ - -const char *skey_crypt(pp, salt, pwd, pwok) -char *pp; -char *salt; -struct passwd *pwd; -int pwok; -{ - struct skey skey; - char *p; - - /* Try s/key authentication even when the UNIX password is permitted. */ - - if (pwd != 0 && skeyinfo(&skey, pwd->pw_name, (char *) 0) == 0 - && skeyverify(&skey, pp) == 0) { - /* s/key authentication succeeded */ - return (pwd->pw_passwd); - } - - /* When s/key authentication does not work, always invoke crypt(). */ - - p = crypt(pp, salt); - if (pwok && pwd != 0 && strcmp(p, pwd->pw_passwd) == 0) - return (pwd->pw_passwd); - - /* The user does not exist or entered bad input. */ - - return (":"); -} |