diff --git a/dsa.h b/dsa.h index 70641163bfff260de6c9f631a6dc38b7fdc227c0..5416b77fc656fbff8b75fa4aeef9f3f901befd19 100644 --- a/dsa.h +++ b/dsa.h @@ -34,7 +34,9 @@ /* For nettle_random_func */ #include "nettle-meta.h" -#define DSA_MINIMUM_BITS 512 +#define DSA_MIN_P_BITS 512 +#define DSA_Q_OCTETS 20 +#define DSA_Q_BITS 160 struct dsa_public_key { @@ -140,4 +142,23 @@ dsa_generate_keypair(struct dsa_public_key *pub, * NIS key sizes. */ unsigned bits); +struct sexp_iterator; + +int +dsa_keypair_from_sexp_alist(struct dsa_public_key *pub, + struct dsa_private_key *priv, + unsigned limit, + struct sexp_iterator *i); + +/* If PRIV is NULL, expect a public-key expression. If PUB is NULL, + * expect a private key expression and ignore the parts not needed for + * the public key. */ +/* Keys must be initialized before calling this function, as usual. */ +int +dsa_keypair_from_sexp(struct dsa_public_key *pub, + struct dsa_private_key *priv, + unsigned limit, + unsigned length, const uint8_t *expr); + + #endif /* NETTLE_DSA_H_INCLUDED */