| #include <u.h> |
| #include <libc.h> |
| #include <ip.h> |
| |
| int verbose = 1; |
| static char testmess[] = "__secstore\tPAK\nC=%s\nm=0\n"; |
| |
| void |
| main(int argc, char **argv) |
| { |
| int n, m, fd; |
| uchar buf[500]; |
| |
| if(argc != 2) |
| exits("usage: secacct userid"); |
| |
| n = snprint((char*)buf, sizeof buf, testmess, argv[1]); |
| hnputs(buf, 0x8000+n-2); |
| |
| fd = dial("tcp!ruble.cs.bell-labs.com!5356", 0, 0, 0); |
| if(fd < 0) |
| exits("cannot dial ruble"); |
| if(write(fd, buf, n) != n || readn(fd, buf, 2) != 2) |
| exits("cannot exchange first round"); |
| n = ((buf[0]&0x7f)<<8) + buf[1]; |
| if(n+1 > sizeof buf) |
| exits("implausibly large count"); |
| m = readn(fd, buf, n); |
| close(fd); |
| if(m != n) |
| fprint(2,"short read from secstore\n"); |
| buf[m] = 0; |
| print("%s\n", (char*)buf); |
| exits(0); |
| } |