2014-03-26 Niels Möller <nisse@lysator.liu.se>
+ * dsa2sexp.c (dsa_keypair_to_sexp): Converted to new DSA
+ interface.
+ * tools/pkcs1-conv.c: Updated uses of dsa_keypair_to_sexp.
+
* dsa.h (struct dsa_params): New struct.
* dsa-sign.c (dsa_sign): Use struct dsa_params, with key as a
int
dsa_keypair_to_sexp(struct nettle_buffer *buffer,
const char *algorithm_name, /* NULL means "dsa" */
- const struct dsa_public_key *pub,
- const struct dsa_private_key *priv);
+ const struct dsa_params *params,
+ const mpz_t pub,
+ const mpz_t priv);
struct sexp_iterator;
/* nettle, low-level cryptographics library
*
- * Copyright (C) 2002, 2009 Niels Möller, Magnus Holmgren
+ * Copyright (C) 2002, 2009, 2014 Niels Möller, Magnus Holmgren
*
* The nettle library is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
int
dsa_keypair_to_sexp(struct nettle_buffer *buffer,
const char *algorithm_name,
- const struct dsa_public_key *pub,
- const struct dsa_private_key *priv)
+ const struct dsa_params *params,
+ const mpz_t pub,
+ const mpz_t priv)
{
if (!algorithm_name)
algorithm_name = "dsa";
-
+
if (priv)
return sexp_format(buffer,
"(private-key(%0s(p%b)(q%b)"
"(g%b)(y%b)(x%b)))",
- algorithm_name, pub->p, pub->q,
- pub->g, pub->y, priv->x);
+ algorithm_name, params->p, params->q,
+ params->g, pub, priv);
+
else
return sexp_format(buffer,
"(public-key(%0s(p%b)(q%b)"
"(g%b)(y%b)))",
- algorithm_name, pub->p, pub->q,
- pub->g, pub->y);
+ algorithm_name, params->p, params->q,
+ params->g, pub);
}
{
/* Reuses the buffer */
nettle_buffer_reset(buffer);
- res = dsa_keypair_to_sexp(buffer, NULL, &pub, &priv);
+ res = dsa_keypair_to_sexp(buffer, NULL,
+ (const struct dsa_params *) &pub,
+ pub.y, priv.x);
}
else
{
&& dsa_public_key_from_der_iterator(&pub, 0, &j))
{
nettle_buffer_reset(buffer);
- res = dsa_keypair_to_sexp(buffer, NULL, &pub, NULL) > 0;
+ res = dsa_keypair_to_sexp(buffer, NULL,
+ (const struct dsa_params *) &pub,
+ pub.y, NULL) > 0;
}
dsa_public_key_clear(&pub);
}