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