shithub: riscv

ref: c247ce1c3301222ccd445d3479c29f7eb0e9bfc4
dir: /sys/src/libauthsrv/_asgetpakkey.c/

View raw version
#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);
}