rscchangesf927c9521 years agoHistory
47 lines · 771 B · C
RawDownload
#include <u.h>#include <libc.h>#include <libsec.h>#include <authsrv.h> voidusage(void){	fprint(2, "usage: netkey\n");	exits("usage");} voidmain(int argc, char *argv[]){	char *chal, *pass, buf[32], key[DESKEYLEN];	char *s;	int n; 	ARGBEGIN{	default:		usage();	}ARGEND	if(argc)		usage(); 	s = getenv("service");	if(s && strcmp(s, "cpu") == 0){		fprint(2, "netkey must not be run on the cpu server\n");		exits("boofhead");	} 	pass = readcons("password", nil, 1);	if(pass == nil)		sysfatal("reading password: %r");	passtokey(key, pass); 	for(;;){		chal = readcons("challenge", nil, 0);		if(chal == nil || *chal == 0)			exits(nil);		n = strtol(chal, 0, 10);		sprint(buf, "%d", n);		netcrypt(key, buf);		print("response: %s\n", buf);	}}