From: Niels Möller Date: Wed, 26 Mar 2014 21:02:19 +0000 (+0100) Subject: New functions dsa_params_init and dsa_params_clear. X-Git-Tag: nettle_3.0_release_20140607~105 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=38edca975bfda4fd3f57651ae14f567bafb5f9ae;p=thirdparty%2Fnettle.git New functions dsa_params_init and dsa_params_clear. --- diff --git a/ChangeLog b/ChangeLog index 86886a8e..7996f692 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2014-03-26 Niels Möller + * dsa.c (dsa_params_init, dsa_params_clear): New functions. + (dsa_public_key_init): Use dsa_params_init. + (dsa_public_key_clear): Use dsa_params_clear. + * sexp2dsa.c (dsa_keypair_from_sexp_alist): Converted to new DSA interface. Allow q_size == 0, meaning any q < p is allowed. Additional validity checks. diff --git a/dsa.c b/dsa.c index 0d241b79..cf036365 100644 --- a/dsa.c +++ b/dsa.c @@ -31,21 +31,33 @@ #include "bignum.h" +void +dsa_params_init (struct dsa_params *params) +{ + mpz_init(params->p); + mpz_init(params->q); + mpz_init(params->g); +} + +void +dsa_params_clear (struct dsa_params *params) +{ + mpz_clear(params->p); + mpz_clear(params->q); + mpz_clear(params->g); +} + void dsa_public_key_init(struct dsa_public_key *key) { - mpz_init(key->p); - mpz_init(key->q); - mpz_init(key->g); + dsa_params_init ((struct dsa_params *) key); mpz_init(key->y); } void dsa_public_key_clear(struct dsa_public_key *key) { - mpz_clear(key->p); - mpz_clear(key->q); - mpz_clear(key->g); + dsa_params_clear ((struct dsa_params *) key); mpz_clear(key->y); } diff --git a/dsa.h b/dsa.h index fa5e918b..e66918ed 100644 --- a/dsa.h +++ b/dsa.h @@ -38,6 +38,8 @@ extern "C" { #endif /* Name mangling */ +#define dsa_params_init nettle_dsa_params_init +#define dsa_params_clear nettle_dsa_params_clear #define dsa_public_key_init nettle_dsa_public_key_init #define dsa_public_key_clear nettle_dsa_public_key_clear #define dsa_private_key_init nettle_dsa_private_key_init @@ -87,6 +89,12 @@ struct dsa_params mpz_t g; }; +void +dsa_params_init (struct dsa_params *params); + +void +dsa_params_clear (struct dsa_params *params); + struct dsa_public_key { /* Modulo */