diff options
author | wpaul <wpaul@FreeBSD.org> | 1997-05-28 15:58:29 +0000 |
---|---|---|
committer | wpaul <wpaul@FreeBSD.org> | 1997-05-28 15:58:29 +0000 |
commit | fe00e3fc910b0654062d41f95bf2c9bc7ed8a652 (patch) | |
tree | ece1a6c4d759d1bf355d13bf5fe5587dab10198f /usr.bin/keylogin | |
parent | 9433a9ddfc538f57ddb8f2ef098979e7caf53520 (diff) | |
parent | cbed870251fb7bc4ebc423952a3da74c594567cf (diff) | |
download | FreeBSD-src-fe00e3fc910b0654062d41f95bf2c9bc7ed8a652.zip FreeBSD-src-fe00e3fc910b0654062d41f95bf2c9bc7ed8a652.tar.gz |
This commit was generated by cvs2svn to compensate for changes in r26242,
which included commits to RCS files with non-trunk default branches.
Diffstat (limited to 'usr.bin/keylogin')
-rw-r--r-- | usr.bin/keylogin/Makefile | 10 | ||||
-rw-r--r-- | usr.bin/keylogin/keylogin.1 | 25 | ||||
-rw-r--r-- | usr.bin/keylogin/keylogin.c | 80 |
3 files changed, 115 insertions, 0 deletions
diff --git a/usr.bin/keylogin/Makefile b/usr.bin/keylogin/Makefile new file mode 100644 index 0000000..971a746 --- /dev/null +++ b/usr.bin/keylogin/Makefile @@ -0,0 +1,10 @@ +# @(#)Makefile 8.1 (Berkeley) 6/6/93 + +PROG= keylogin +SRCS= keylogin.c + +MAN1= keylogin.1 + +LDADD+= -lrpcsvc + +.include <bsd.prog.mk> diff --git a/usr.bin/keylogin/keylogin.1 b/usr.bin/keylogin/keylogin.1 new file mode 100644 index 0000000..424454982 --- /dev/null +++ b/usr.bin/keylogin/keylogin.1 @@ -0,0 +1,25 @@ +.\" @(#)keylogin.1 1.5 91/03/11 TIRPC 1.0; +.\" Copyright (c) 1988 Sun Microsystems, Inc. - All Rights Reserved. +.\" +.TH KEYLOGIN 1 "9 September 1987" +.SH NAME +keylogin \- decrypt and store secret key +.SH SYNOPSIS +.B keylogin +.SH DESCRIPTION +.LP +.B keylogin +prompts the user for their login password, and uses it to decrypt +the user's secret key stored in the +.BR publickey (5) +database. Once decrypted, the user's key is stored by the local +key server process +.BR keyserv (8C) +to be used by any secure network services, such as +.SM NFS\s0. +.SH "SEE ALSO" +.BR chkey (1), +.BR login (1), +.BR publickey (5), +.BR keyserv (8C), +.BR newkey (8) diff --git a/usr.bin/keylogin/keylogin.c b/usr.bin/keylogin/keylogin.c new file mode 100644 index 0000000..55529c8 --- /dev/null +++ b/usr.bin/keylogin/keylogin.c @@ -0,0 +1,80 @@ +/* + * Sun RPC is a product of Sun Microsystems, Inc. and is provided for + * unrestricted use provided that this legend is included on all tape + * media and as a part of the software program in whole or part. Users + * may copy or modify Sun RPC without charge, but are not authorized + * to license or distribute it to anyone else except as part of a product or + * program developed by the user or with the express written consent of + * Sun Microsystems, Inc. + * + * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE + * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR + * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. + * + * Sun RPC is provided with no support and without any obligation on the + * part of Sun Microsystems, Inc. to assist in its use, correction, + * modification or enhancement. + * + * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE + * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC + * OR ANY PART THEREOF. + * + * In no event will Sun Microsystems, Inc. be liable for any lost revenue + * or profits or other special, indirect and consequential damages, even if + * Sun has been advised of the possibility of such damages. + * + * Sun Microsystems, Inc. + * 2550 Garcia Avenue + * Mountain View, California 94043 + */ +#if !defined(lint) && defined(SCCSIDS) +static char sccsid[] = "@(#)keylogin.c 1.4 91/03/11 Copyr 1986 Sun Micro"; +#endif + +/* + * Copyright (C) 1986, Sun Microsystems, Inc. + */ + +/* + * Set secret key on local machine + */ +#include <stdio.h> +#include <string.h> +#include <pwd.h> +#include <unistd.h> +#include <rpc/rpc.h> +#include <rpc/key_prot.h> + +int +main() +{ + char fullname[MAXNETNAMELEN + 1]; + struct netstarg netst; + + if (!getnetname(fullname)) { + fprintf(stderr, "netname lookup failed -- make sure the "); + fprintf(stderr, "system domain name is set.\n"); + exit(1); + } + + if (! getsecretkey(fullname, (char *)&(netst.st_priv_key), + getpass("Password:"))) { + fprintf(stderr, "Can't find %s's secret key\n", fullname); + exit(1); + } + if (netst.st_priv_key[0] == 0) { + fprintf(stderr, "Password incorrect for %s\n", fullname); + exit(1); + } + + netst.st_pub_key[0] = 0; + netst.st_netname = strdup(fullname); + + if (key_setnet(&netst) < 0) { + fprintf(stderr, "Could not set %s's secret key\n", fullname); + fprintf(stderr, "Maybe the keyserver is down?\n"); + exit(1); + } + exit(0); + /* NOTREACHED */ +} |