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.
#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);
}
#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
mpz_t g;
};
+void
+dsa_params_init (struct dsa_params *params);
+
+void
+dsa_params_clear (struct dsa_params *params);
+
struct dsa_public_key
{
/* Modulo */