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