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.Forsythdsapuballoc(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.Forsythdsapubfree(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.Forsythdsaprivalloc(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.Forsythdsaprivfree(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.Forsythdsasigalloc(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.Forsythdsasigfree(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