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