xref: /plan9/sys/src/libsec/port/egalloc.c (revision 39734e7ed1eb944f5e7b41936007d0d38b560d7f)
180ee5cbfSDavid du Colombier #include "os.h"
280ee5cbfSDavid du Colombier #include <mp.h>
380ee5cbfSDavid du Colombier #include <libsec.h>
480ee5cbfSDavid du Colombier 
580ee5cbfSDavid du Colombier EGpub*
egpuballoc(void)680ee5cbfSDavid du Colombier egpuballoc(void)
780ee5cbfSDavid du Colombier {
880ee5cbfSDavid du Colombier 	EGpub *eg;
980ee5cbfSDavid du Colombier 
1080ee5cbfSDavid du Colombier 	eg = mallocz(sizeof(*eg), 1);
1180ee5cbfSDavid du Colombier 	if(eg == nil)
1280ee5cbfSDavid du Colombier 		sysfatal("egpuballoc");
1380ee5cbfSDavid du Colombier 	return eg;
1480ee5cbfSDavid du Colombier }
1580ee5cbfSDavid du Colombier 
1680ee5cbfSDavid du Colombier void
egpubfree(EGpub * eg)1780ee5cbfSDavid du Colombier egpubfree(EGpub *eg)
1880ee5cbfSDavid du Colombier {
1980ee5cbfSDavid du Colombier 	if(eg == nil)
2080ee5cbfSDavid du Colombier 		return;
2180ee5cbfSDavid du Colombier 	mpfree(eg->p);
2280ee5cbfSDavid du Colombier 	mpfree(eg->alpha);
2380ee5cbfSDavid du Colombier 	mpfree(eg->key);
24*39734e7eSDavid du Colombier 	free(eg);
2580ee5cbfSDavid du Colombier }
2680ee5cbfSDavid du Colombier 
2780ee5cbfSDavid du Colombier 
2880ee5cbfSDavid du Colombier EGpriv*
egprivalloc(void)2980ee5cbfSDavid du Colombier egprivalloc(void)
3080ee5cbfSDavid du Colombier {
3180ee5cbfSDavid du Colombier 	EGpriv *eg;
3280ee5cbfSDavid du Colombier 
3380ee5cbfSDavid du Colombier 	eg = mallocz(sizeof(*eg), 1);
3480ee5cbfSDavid du Colombier 	if(eg == nil)
3580ee5cbfSDavid du Colombier 		sysfatal("egprivalloc");
3680ee5cbfSDavid du Colombier 	return eg;
3780ee5cbfSDavid du Colombier }
3880ee5cbfSDavid du Colombier 
3980ee5cbfSDavid du Colombier void
egprivfree(EGpriv * eg)4080ee5cbfSDavid du Colombier egprivfree(EGpriv *eg)
4180ee5cbfSDavid du Colombier {
4280ee5cbfSDavid du Colombier 	if(eg == nil)
4380ee5cbfSDavid du Colombier 		return;
4480ee5cbfSDavid du Colombier 	mpfree(eg->pub.p);
4580ee5cbfSDavid du Colombier 	mpfree(eg->pub.alpha);
4680ee5cbfSDavid du Colombier 	mpfree(eg->pub.key);
4780ee5cbfSDavid du Colombier 	mpfree(eg->secret);
48*39734e7eSDavid du Colombier 	free(eg);
4980ee5cbfSDavid du Colombier }
5080ee5cbfSDavid du Colombier 
5180ee5cbfSDavid du Colombier EGsig*
egsigalloc(void)5280ee5cbfSDavid du Colombier egsigalloc(void)
5380ee5cbfSDavid du Colombier {
5480ee5cbfSDavid du Colombier 	EGsig *eg;
5580ee5cbfSDavid du Colombier 
5680ee5cbfSDavid du Colombier 	eg = mallocz(sizeof(*eg), 1);
5780ee5cbfSDavid du Colombier 	if(eg == nil)
5880ee5cbfSDavid du Colombier 		sysfatal("egsigalloc");
5980ee5cbfSDavid du Colombier 	return eg;
6080ee5cbfSDavid du Colombier }
6180ee5cbfSDavid du Colombier 
6280ee5cbfSDavid du Colombier void
egsigfree(EGsig * eg)6380ee5cbfSDavid du Colombier egsigfree(EGsig *eg)
6480ee5cbfSDavid du Colombier {
6580ee5cbfSDavid du Colombier 	if(eg == nil)
6680ee5cbfSDavid du Colombier 		return;
6780ee5cbfSDavid du Colombier 	mpfree(eg->r);
6880ee5cbfSDavid du Colombier 	mpfree(eg->s);
69*39734e7eSDavid du Colombier 	free(eg);
7080ee5cbfSDavid du Colombier }
71