From 70434af413c6ba0a618977f62735a85d1c36a0ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se> Date: Sat, 6 Feb 2016 09:14:30 +0100 Subject: [PATCH] Update libspki for nettle-3. --- spki/ChangeLog | 5 +++++ spki/verify.c | 28 ++++++++++++++++++---------- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/spki/ChangeLog b/spki/ChangeLog index 4aa0ce1f7..2363cc672 100644 --- a/spki/ChangeLog +++ b/spki/ChangeLog @@ -1,3 +1,8 @@ +2016-02-06 Niels Möller <nisse@lysator.liu.se> + + * verify.c (spki_verify_dsa_sha1, spki_verify_dsa_sha256): Update + for nettle-3. + 2012-07-13 Niels Möller <nisse@lysator.liu.se> Always use the installed nettle library, don't look for it in the diff --git a/spki/verify.c b/spki/verify.c index 6f16a9d71..13f1abd72 100644 --- a/spki/verify.c +++ b/spki/verify.c @@ -70,22 +70,26 @@ spki_verify_dsa_sha1(const uint8_t *digest, struct spki_iterator *key, struct spki_iterator *signature) { - struct dsa_public_key dsa; + struct dsa_params dsa_params; + mpz_t dsa_pub; struct dsa_signature rs; int res; - dsa_public_key_init(&dsa); + dsa_params_init(&dsa_params); + mpz_init(dsa_pub); dsa_signature_init(&rs); - res = (dsa_keypair_from_sexp_alist(&dsa, NULL, + res = (dsa_keypair_from_sexp_alist(&dsa_params, dsa_pub, NULL, DSA_SHA1_KEYSIZE_LIMIT, DSA_SHA1_Q_BITS, &key->sexp) && spki_parse_end(key) && dsa_signature_from_sexp(&rs, &signature->sexp, DSA_SHA1_Q_BITS) - && dsa_sha1_verify_digest(&dsa, digest, &rs)); + && dsa_verify(&dsa_params, dsa_pub, + SHA1_DIGEST_SIZE, digest, &rs)); dsa_signature_clear(&rs); - dsa_public_key_clear(&dsa); + mpz_clear(dsa_pub); + dsa_params_clear(&dsa_params); return res; } @@ -95,23 +99,27 @@ spki_verify_dsa_sha256(const uint8_t *digest, struct spki_iterator *key, struct spki_iterator *signature) { - struct dsa_public_key dsa; + struct dsa_params dsa_params; + mpz_t dsa_pub; struct dsa_signature rs; int res; - dsa_public_key_init(&dsa); + dsa_params_init(&dsa_params); + mpz_init(dsa_pub); dsa_signature_init(&rs); - res = (dsa_keypair_from_sexp_alist(&dsa, NULL, + res = (dsa_keypair_from_sexp_alist(&dsa_params, dsa_pub, NULL, DSA_SHA256_KEYSIZE_LIMIT, DSA_SHA256_Q_BITS, &key->sexp) && spki_parse_end(key) && dsa_signature_from_sexp(&rs, &signature->sexp, DSA_SHA256_Q_BITS) - && dsa_sha256_verify_digest(&dsa, digest, &rs)); + && dsa_verify(&dsa_params, dsa_pub, + SHA256_DIGEST_SIZE, digest, &rs)); dsa_signature_clear(&rs); - dsa_public_key_clear(&dsa); + mpz_clear(dsa_pub); + dsa_params_clear(&dsa_params); return res; } -- GitLab