aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/factotum/plan9.c
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2005-02-11 20:32:41 +0000
committerrsc <devnull@localhost>2005-02-11 20:32:41 +0000
commit6c0209f6f0eb41151397e4784730d2b6bca8d7ea (patch)
tree12a915fa08bf4f333bbad34f03347d4444729c07 /src/cmd/factotum/plan9.c
parent7d59ed711467b2b2c8ac25f86724225c8be7524c (diff)
downloadplan9port-6c0209f6f0eb41151397e4784730d2b6bca8d7ea.tar.gz
plan9port-6c0209f6f0eb41151397e4784730d2b6bca8d7ea.tar.bz2
plan9port-6c0209f6f0eb41151397e4784730d2b6bca8d7ea.zip
build changes
Diffstat (limited to 'src/cmd/factotum/plan9.c')
-rw-r--r--src/cmd/factotum/plan9.c65
1 files changed, 1 insertions, 64 deletions
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