From 38edca975bfda4fd3f57651ae14f567bafb5f9ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se> Date: Wed, 26 Mar 2014 22:02:19 +0100 Subject: [PATCH] New functions dsa_params_init and dsa_params_clear. --- ChangeLog | 4 ++++ dsa.c | 24 ++++++++++++++++++------ dsa.h | 8 ++++++++ 3 files changed, 30 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 86886a8e..7996f692 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2014-03-26 Niels Möller <nisse@lysator.liu.se> + * 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 */ -- GitLab