diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2016-01-06 03:09:00 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2016-01-06 03:09:00 +0100 |
commit | 2dae1ed53a73d81bfb86778793a6bda265d5140d (patch) | |
tree | e037c4a663fc9d17906cc2045c488232ac223ece /sys/src/libauthsrv/_asgetpakkey.c | |
parent | e064752dd476b7a2f76567f8cc15f9c2645e5d3d (diff) |
auth: release dp9ik implementation and reentrant factotum
Diffstat (limited to 'sys/src/libauthsrv/_asgetpakkey.c')
-rw-r--r-- | sys/src/libauthsrv/_asgetpakkey.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/sys/src/libauthsrv/_asgetpakkey.c b/sys/src/libauthsrv/_asgetpakkey.c new file mode 100644 index 000000000..c30b16b84 --- /dev/null +++ b/sys/src/libauthsrv/_asgetpakkey.c @@ -0,0 +1,26 @@ +#include <u.h> +#include <libc.h> +#include <authsrv.h> + +int +_asgetpakkey(int fd, Ticketreq *tr, Authkey *a) +{ + uchar y[PAKYLEN]; + PAKpriv p; + int type; + + type = tr->type; + tr->type = AuthPAK; + if(_asrequest(fd, tr) != 0){ + tr->type = type; + return -1; + } + tr->type = type; + authpak_new(&p, a, y, 1); + if(write(fd, y, PAKYLEN) != PAKYLEN + || _asrdresp(fd, (char*)y, PAKYLEN) != PAKYLEN){ + memset(&p, 0, sizeof(p)); + return -1; + } + return authpak_finish(&p, a, y); +} |