49 lines · 841 B · C
RawDownload
#include <u.h>#include <libc.h>#include <authsrv.h>#include <ctype.h>#include "authcmdlib.h" voidmain(int argc, char **argv){	char user[ANAMELEN];	char p9pass[32];	char key[DESKEYLEN];	int fd; 	ARGBEGIN{	}ARGEND; 	switch(argc){	case 2:		strncpy(user, argv[0], ANAMELEN);		user[ANAMELEN-1] = 0;		passtokey(key, argv[1]);		break;	case 1:		strncpy(user, argv[0], ANAMELEN);		user[ANAMELEN-1] = 0;		getpass(key, p9pass, 0, 0);		break;	case 0:		strcpy(user, getuser());		getpass(key, p9pass, 0, 0);		break;	default:		fprint(2, "usage: auth/iam [user [password]]\n");		break; 	} 	fd = open("/dev/key", OWRITE);	if(fd < 0)		sysfatal("open key");	write(fd, key, DESKEYLEN);	close(fd); 	fd = open("/dev/hostowner", OWRITE);	if(fd < 0)		sysfatal("open hostowner");	write(fd, user, strlen(user));	close(fd);}