From e5888a1ffdae813d7575f5fb02275c6bb07e5199 Mon Sep 17 00:00:00 2001 From: Taru Karttunen Date: Wed, 30 Mar 2011 15:46:40 +0300 Subject: Import sources from 2011-03-30 iso image --- sys/src/cmd/auth/challenge.c | 59 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100755 sys/src/cmd/auth/challenge.c (limited to 'sys/src/cmd/auth/challenge.c') diff --git a/sys/src/cmd/auth/challenge.c b/sys/src/cmd/auth/challenge.c new file mode 100755 index 000000000..c99027689 --- /dev/null +++ b/sys/src/cmd/auth/challenge.c @@ -0,0 +1,59 @@ +#include +#include +#include + +void +usage(void) +{ + fprint(2, "usage: auth/challenge 'params'\n"); + exits("usage"); +} + +void +main(int argc, char **argv) +{ + char buf[128], bufu[128]; + int afd, n; + AuthInfo *ai; + AuthRpc *rpc; + Chalstate *c; + + ARGBEGIN{ + default: + usage(); + }ARGEND + + if(argc != 1) + usage(); + + if((afd = open("/mnt/factotum/rpc", ORDWR)) < 0) + sysfatal("open /mnt/factotum/rpc: %r"); + + rpc = auth_allocrpc(afd); + if(rpc == nil) + sysfatal("auth_allocrpc: %r"); + + if((c = auth_challenge("%s", argv[0])) == nil) + sysfatal("auth_challenge: %r"); + + print("challenge: %s\n", c->chal); + print("user:"); + n = read(0, bufu, sizeof bufu); + if(n > 0){ + bufu[n-1] = '\0'; + c->user = bufu; + } + + print("response: "); + n = read(0, buf, sizeof buf); + if(n < 0) + sysfatal("read: %r"); + if(n == 0) + exits(nil); + c->nresp = n-1; + c->resp = buf; + if((ai = auth_response(c)) == nil) + sysfatal("auth_response: %r"); + + print("%s %s\n", ai->cuid, ai->suid); +} -- cgit v1.2.3