| #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); |
| } |