xref: /inferno-os/libsec/port/dsaalloc.c (revision 37da2899f40661e3e9631e497da8dc59b971cbd0)
1*37da2899SCharles.Forsyth #include "os.h"
2*37da2899SCharles.Forsyth #include <mp.h>
3*37da2899SCharles.Forsyth #include <libsec.h>
4*37da2899SCharles.Forsyth 
5*37da2899SCharles.Forsyth DSApub*
dsapuballoc(void)6*37da2899SCharles.Forsyth dsapuballoc(void)
7*37da2899SCharles.Forsyth {
8*37da2899SCharles.Forsyth 	DSApub *dsa;
9*37da2899SCharles.Forsyth 
10*37da2899SCharles.Forsyth 	dsa = mallocz(sizeof(*dsa), 1);
11*37da2899SCharles.Forsyth 	if(dsa == nil)
12*37da2899SCharles.Forsyth 		sysfatal("dsapuballoc");
13*37da2899SCharles.Forsyth 	return dsa;
14*37da2899SCharles.Forsyth }
15*37da2899SCharles.Forsyth 
16*37da2899SCharles.Forsyth void
dsapubfree(DSApub * dsa)17*37da2899SCharles.Forsyth dsapubfree(DSApub *dsa)
18*37da2899SCharles.Forsyth {
19*37da2899SCharles.Forsyth 	if(dsa == nil)
20*37da2899SCharles.Forsyth 		return;
21*37da2899SCharles.Forsyth 	mpfree(dsa->p);
22*37da2899SCharles.Forsyth 	mpfree(dsa->q);
23*37da2899SCharles.Forsyth 	mpfree(dsa->alpha);
24*37da2899SCharles.Forsyth 	mpfree(dsa->key);
25*37da2899SCharles.Forsyth 	free(dsa);
26*37da2899SCharles.Forsyth }
27*37da2899SCharles.Forsyth 
28*37da2899SCharles.Forsyth 
29*37da2899SCharles.Forsyth DSApriv*
dsaprivalloc(void)30*37da2899SCharles.Forsyth dsaprivalloc(void)
31*37da2899SCharles.Forsyth {
32*37da2899SCharles.Forsyth 	DSApriv *dsa;
33*37da2899SCharles.Forsyth 
34*37da2899SCharles.Forsyth 	dsa = mallocz(sizeof(*dsa), 1);
35*37da2899SCharles.Forsyth 	if(dsa == nil)
36*37da2899SCharles.Forsyth 		sysfatal("dsaprivalloc");
37*37da2899SCharles.Forsyth 	return dsa;
38*37da2899SCharles.Forsyth }
39*37da2899SCharles.Forsyth 
40*37da2899SCharles.Forsyth void
dsaprivfree(DSApriv * dsa)41*37da2899SCharles.Forsyth dsaprivfree(DSApriv *dsa)
42*37da2899SCharles.Forsyth {
43*37da2899SCharles.Forsyth 	if(dsa == nil)
44*37da2899SCharles.Forsyth 		return;
45*37da2899SCharles.Forsyth 	mpfree(dsa->pub.p);
46*37da2899SCharles.Forsyth 	mpfree(dsa->pub.q);
47*37da2899SCharles.Forsyth 	mpfree(dsa->pub.alpha);
48*37da2899SCharles.Forsyth 	mpfree(dsa->pub.key);
49*37da2899SCharles.Forsyth 	mpfree(dsa->secret);
50*37da2899SCharles.Forsyth 	free(dsa);
51*37da2899SCharles.Forsyth }
52*37da2899SCharles.Forsyth 
53*37da2899SCharles.Forsyth DSAsig*
dsasigalloc(void)54*37da2899SCharles.Forsyth dsasigalloc(void)
55*37da2899SCharles.Forsyth {
56*37da2899SCharles.Forsyth 	DSAsig *dsa;
57*37da2899SCharles.Forsyth 
58*37da2899SCharles.Forsyth 	dsa = mallocz(sizeof(*dsa), 1);
59*37da2899SCharles.Forsyth 	if(dsa == nil)
60*37da2899SCharles.Forsyth 		sysfatal("dsasigalloc");
61*37da2899SCharles.Forsyth 	return dsa;
62*37da2899SCharles.Forsyth }
63*37da2899SCharles.Forsyth 
64*37da2899SCharles.Forsyth void
dsasigfree(DSAsig * dsa)65*37da2899SCharles.Forsyth dsasigfree(DSAsig *dsa)
66*37da2899SCharles.Forsyth {
67*37da2899SCharles.Forsyth 	if(dsa == nil)
68*37da2899SCharles.Forsyth 		return;
69*37da2899SCharles.Forsyth 	mpfree(dsa->r);
70*37da2899SCharles.Forsyth 	mpfree(dsa->s);
71*37da2899SCharles.Forsyth 	free(dsa);
72*37da2899SCharles.Forsyth }
73