1 #include "os.h" 2 #include <mp.h> 3 #include <libsec.h> 4 5 DSApub* 6 dsapuballoc(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 17 dsapubfree(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 free(dsa); 26 } 27 28 29 DSApriv* 30 dsaprivalloc(void) 31 { 32 DSApriv *dsa; 33 34 dsa = mallocz(sizeof(*dsa), 1); 35 if(dsa == nil) 36 sysfatal("dsaprivalloc"); 37 return dsa; 38 } 39 40 void 41 dsaprivfree(DSApriv *dsa) 42 { 43 if(dsa == nil) 44 return; 45 mpfree(dsa->pub.p); 46 mpfree(dsa->pub.q); 47 mpfree(dsa->pub.alpha); 48 mpfree(dsa->pub.key); 49 mpfree(dsa->secret); 50 free(dsa); 51 } 52 53 DSAsig* 54 dsasigalloc(void) 55 { 56 DSAsig *dsa; 57 58 dsa = mallocz(sizeof(*dsa), 1); 59 if(dsa == nil) 60 sysfatal("dsasigalloc"); 61 return dsa; 62 } 63 64 void 65 dsasigfree(DSAsig *dsa) 66 { 67 if(dsa == nil) 68 return; 69 mpfree(dsa->r); 70 mpfree(dsa->s); 71 free(dsa); 72 } 73