diff options
Diffstat (limited to 'src/cmd/factotum')
-rw-r--r-- | src/cmd/factotum/attr.c | 2 | ||||
-rw-r--r-- | src/cmd/factotum/plan9.c | 65 |
2 files changed, 3 insertions, 64 deletions
diff --git a/src/cmd/factotum/attr.c b/src/cmd/factotum/attr.c index 98ffb2c9..b92e96a0 100644 --- a/src/cmd/factotum/attr.c +++ b/src/cmd/factotum/attr.c @@ -130,6 +130,7 @@ attrnamefmt(Fmt *fmt) return fmtstrcpy(fmt, buf+1); } +/* static int hasqueries(Attr *a) { @@ -138,6 +139,7 @@ hasqueries(Attr *a) return 1; return 0; } +*/ char *ignored[] = { "role", diff --git a/src/cmd/factotum/plan9.c b/src/cmd/factotum/plan9.c index 36082c3b..0b6bb601 100644 --- a/src/cmd/factotum/plan9.c +++ b/src/cmd/factotum/plan9.c @@ -12,73 +12,10 @@ memrandom(void *p, int n) return 0; } -/* - * create a change uid capability - */ -static int caphashfd = -1; - -static char* -mkcap(char *from, char *to) -{ - uchar rand[20]; - char *cap; - char *key; - int nfrom, nto; - uchar hash[SHA1dlen]; - - if(caphashfd < 0) - return nil; - - /* create the capability */ - nto = strlen(to); - nfrom = strlen(from); - cap = emalloc(nfrom+1+nto+1+sizeof(rand)*3+1); - sprint(cap, "%s@%s", from, to); - memrandom(rand, sizeof(rand)); - key = cap+nfrom+1+nto+1; - enc64(key, sizeof(rand)*3, rand, sizeof(rand)); - - /* hash the capability */ - hmac_sha1((uchar*)cap, strlen(cap), (uchar*)key, strlen(key), hash, nil); - - /* give the kernel the hash */ - key[-1] = '@'; - if(write(caphashfd, hash, SHA1dlen) < 0){ - free(cap); - return nil; - } - - return cap; -} - Attr* addcap(Attr *a, char *from, Ticket *t) { - char *cap; - - cap = mkcap(from, t->suid); - return addattr(a, "cuid=%q suid=%q cap=%q", t->cuid, t->suid, cap); -} - -/* bind in the default network and cs */ -static int -bindnetcs(void) -{ - int srvfd; - - if(access("/net/tcp", AEXIST) < 0) - bind("#I", "/net", MBEFORE); - - if(access("/net/cs", AEXIST) < 0){ - if((srvfd = open("#s/cs", ORDWR)) >= 0){ - /* mount closes srvfd on success */ - if(mount(srvfd, -1, "/net", MBEFORE, "") >= 0) - return 0; - close(srvfd); - } - return -1; - } - return 0; + return addattr(a, "cuid=%q suid=%q cap=''", t->cuid, t->suid); } int |