aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/factotum
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/factotum')
-rw-r--r--src/cmd/factotum/attr.c2
-rw-r--r--src/cmd/factotum/plan9.c65
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