diff options
author | markm <markm@FreeBSD.org> | 2001-07-09 17:34:22 +0000 |
---|---|---|
committer | markm <markm@FreeBSD.org> | 2001-07-09 17:34:22 +0000 |
commit | 84b43d43754c0f108200d2d8c22d0a27bd8ec17c (patch) | |
tree | a80089ac8a75f1c2b2608dc52c99f8714719fcd4 /libexec | |
parent | d5a4de320ff715932d1878580aacd2e0a6a24762 (diff) | |
download | FreeBSD-src-84b43d43754c0f108200d2d8c22d0a27bd8ec17c.zip FreeBSD-src-84b43d43754c0f108200d2d8c22d0a27bd8ec17c.tar.gz |
Goodbye S/Key, Hello OPIE.
I believe I have done due dilligence on this, but I'd appreciate
decent test scenarios and sucess (or failure) reports.
Diffstat (limited to 'libexec')
-rw-r--r-- | libexec/rexecd/Makefile | 7 | ||||
-rw-r--r-- | libexec/rexecd/rexecd.c | 23 |
2 files changed, 17 insertions, 13 deletions
diff --git a/libexec/rexecd/Makefile b/libexec/rexecd/Makefile index 59d0260..4fc7190 100644 --- a/libexec/rexecd/Makefile +++ b/libexec/rexecd/Makefile @@ -3,9 +3,10 @@ PROG= rexecd MAN= rexecd.8 -CFLAGS+= -DSKEY -DPADD= ${LIBSKEY} ${LIBMD} ${LIBCRYPT} ${LIBUTIL} -LDADD= -lskey -lmd -lcrypt -lutil +CFLAGS= -DOPIE + +DPADD= ${LIBOPIE} ${LIBMD} ${LIBCRYPT} ${LIBUTIL} +LDADD= -lopie -lmd -lcrypt -lutil .include <bsd.prog.mk> diff --git a/libexec/rexecd/rexecd.c b/libexec/rexecd/rexecd.c index a12072c..f820b90 100644 --- a/libexec/rexecd/rexecd.c +++ b/libexec/rexecd/rexecd.c @@ -56,10 +56,11 @@ static const char rcsid[] = #include <fcntl.h> #endif #include <libutil.h> +#include <opie.h> #include <paths.h> +#include <pwd.h> #include <signal.h> #include <stdio.h> -#include <skey.h> #include <string.h> #include <syslog.h> #include <unistd.h> @@ -137,11 +138,13 @@ doit(f, fromp) FILE *fp; char cmdbuf[NCARGS+1], *cp; const char *namep; -#ifdef SKEY - char user[16], pass[100]; -#else /* SKEY */ + char user[16]; +#ifdef OPIE + struct opie opiedata; + char pass[OPIE_RESPONSE_MAX+1], opieprompt[OPIE_CHALLENGE_MAX+1]; +#else /* OPIE */ char user[16], pass[16]; -#endif /* SKEY */ +#endif /* OPIE */ struct passwd *pwd; int s; u_short port; @@ -197,13 +200,13 @@ doit(f, fromp) } endpwent(); if (*pwd->pw_passwd != '\0') { -#ifdef SKEY - namep = skey_crypt(pass, pwd->pw_passwd, pwd, - skeyaccess(user, NULL, remote, NULL)); -#else /* SKEY */ +#ifdef OPIE + opiechallenge(&opiedata, user, opieprompt); + if (opieverify(&opiedata, pass)) { +#else /* OPIE */ namep = crypt(pass, pwd->pw_passwd); -#endif /* SKEY */ if (strcmp(namep, pwd->pw_passwd)) { +#endif /* OPIE */ syslog(LOG_ERR, "LOGIN FAILURE from %s, %s", remote, user); error("Login incorrect.\n"); |