ref: 8188b4f4f0e07b6669e6ae3c6c1099af917eaab4
dir: /sys/src/libsec/port/dsaalloc.c/
#include "os.h" #include <mp.h> #include <libsec.h> DSApub* dsapuballoc(void) { DSApub *dsa; dsa = mallocz(sizeof(*dsa), 1); if(dsa == nil) sysfatal("dsapuballoc"); return dsa; } void dsapubfree(DSApub *dsa) { if(dsa == nil) return; mpfree(dsa->p); mpfree(dsa->q); mpfree(dsa->alpha); mpfree(dsa->key); free(dsa); } DSApriv* dsaprivalloc(void) { DSApriv *dsa; dsa = mallocz(sizeof(*dsa), 1); if(dsa == nil) sysfatal("dsaprivalloc"); return dsa; } void dsaprivfree(DSApriv *dsa) { if(dsa == nil) return; mpfree(dsa->pub.p); mpfree(dsa->pub.q); mpfree(dsa->pub.alpha); mpfree(dsa->pub.key); mpfree(dsa->secret); free(dsa); } DSAsig* dsasigalloc(void) { DSAsig *dsa; dsa = mallocz(sizeof(*dsa), 1); if(dsa == nil) sysfatal("dsasigalloc"); return dsa; } void dsasigfree(DSAsig *dsa) { if(dsa == nil) return; mpfree(dsa->r); mpfree(dsa->s); free(dsa); }