xref: /plan9/sys/src/libsec/port/rsaalloc.c (revision 80ee5cbfe36716af62da8896207e9763b8e3d760)
1*80ee5cbfSDavid du Colombier #include "os.h"
2*80ee5cbfSDavid du Colombier #include <mp.h>
3*80ee5cbfSDavid du Colombier #include <libsec.h>
4*80ee5cbfSDavid du Colombier 
5*80ee5cbfSDavid du Colombier RSApub*
rsapuballoc(void)6*80ee5cbfSDavid du Colombier rsapuballoc(void)
7*80ee5cbfSDavid du Colombier {
8*80ee5cbfSDavid du Colombier 	RSApub *rsa;
9*80ee5cbfSDavid du Colombier 
10*80ee5cbfSDavid du Colombier 	rsa = mallocz(sizeof(*rsa), 1);
11*80ee5cbfSDavid du Colombier 	if(rsa == nil)
12*80ee5cbfSDavid du Colombier 		sysfatal("rsapuballoc");
13*80ee5cbfSDavid du Colombier 	return rsa;
14*80ee5cbfSDavid du Colombier }
15*80ee5cbfSDavid du Colombier 
16*80ee5cbfSDavid du Colombier void
rsapubfree(RSApub * rsa)17*80ee5cbfSDavid du Colombier rsapubfree(RSApub *rsa)
18*80ee5cbfSDavid du Colombier {
19*80ee5cbfSDavid du Colombier 	if(rsa == nil)
20*80ee5cbfSDavid du Colombier 		return;
21*80ee5cbfSDavid du Colombier 	mpfree(rsa->ek);
22*80ee5cbfSDavid du Colombier 	mpfree(rsa->n);
23*80ee5cbfSDavid du Colombier 	free(rsa);
24*80ee5cbfSDavid du Colombier }
25*80ee5cbfSDavid du Colombier 
26*80ee5cbfSDavid du Colombier 
27*80ee5cbfSDavid du Colombier RSApriv*
rsaprivalloc(void)28*80ee5cbfSDavid du Colombier rsaprivalloc(void)
29*80ee5cbfSDavid du Colombier {
30*80ee5cbfSDavid du Colombier 	RSApriv *rsa;
31*80ee5cbfSDavid du Colombier 
32*80ee5cbfSDavid du Colombier 	rsa = mallocz(sizeof(*rsa), 1);
33*80ee5cbfSDavid du Colombier 	if(rsa == nil)
34*80ee5cbfSDavid du Colombier 		sysfatal("rsaprivalloc");
35*80ee5cbfSDavid du Colombier 	return rsa;
36*80ee5cbfSDavid du Colombier }
37*80ee5cbfSDavid du Colombier 
38*80ee5cbfSDavid du Colombier void
rsaprivfree(RSApriv * rsa)39*80ee5cbfSDavid du Colombier rsaprivfree(RSApriv *rsa)
40*80ee5cbfSDavid du Colombier {
41*80ee5cbfSDavid du Colombier 	if(rsa == nil)
42*80ee5cbfSDavid du Colombier 		return;
43*80ee5cbfSDavid du Colombier 	mpfree(rsa->pub.ek);
44*80ee5cbfSDavid du Colombier 	mpfree(rsa->pub.n);
45*80ee5cbfSDavid du Colombier 	mpfree(rsa->dk);
46*80ee5cbfSDavid du Colombier 	mpfree(rsa->p);
47*80ee5cbfSDavid du Colombier 	mpfree(rsa->q);
48*80ee5cbfSDavid du Colombier 	mpfree(rsa->kp);
49*80ee5cbfSDavid du Colombier 	mpfree(rsa->kq);
50*80ee5cbfSDavid du Colombier 	mpfree(rsa->c2);
51*80ee5cbfSDavid du Colombier 	free(rsa);
52*80ee5cbfSDavid du Colombier }
53