| #include "os.h" |
| #include <mp.h> |
| #include <libsec.h> |
| |
| EGpub* |
| egpuballoc(void) |
| { |
| EGpub *eg; |
| |
| eg = mallocz(sizeof(*eg), 1); |
| if(eg == nil) |
| sysfatal("egpuballoc"); |
| return eg; |
| } |
| |
| void |
| egpubfree(EGpub *eg) |
| { |
| if(eg == nil) |
| return; |
| mpfree(eg->p); |
| mpfree(eg->alpha); |
| mpfree(eg->key); |
| free(eg); |
| } |
| |
| |
| EGpriv* |
| egprivalloc(void) |
| { |
| EGpriv *eg; |
| |
| eg = mallocz(sizeof(*eg), 1); |
| if(eg == nil) |
| sysfatal("egprivalloc"); |
| return eg; |
| } |
| |
| void |
| egprivfree(EGpriv *eg) |
| { |
| if(eg == nil) |
| return; |
| mpfree(eg->pub.p); |
| mpfree(eg->pub.alpha); |
| mpfree(eg->pub.key); |
| mpfree(eg->secret); |
| free(eg); |
| } |
| |
| EGsig* |
| egsigalloc(void) |
| { |
| EGsig *eg; |
| |
| eg = mallocz(sizeof(*eg), 1); |
| if(eg == nil) |
| sysfatal("egsigalloc"); |
| return eg; |
| } |
| |
| void |
| egsigfree(EGsig *eg) |
| { |
| if(eg == nil) |
| return; |
| mpfree(eg->r); |
| mpfree(eg->s); |
| free(eg); |
| } |