diff --git a/ChangeLog b/ChangeLog index 7996f69241707cb925606ab8efdbb8b3971e4712..09fdbb020509c22ee4bb7fd792664857136d3710 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2014-03-26 Niels Möller <nisse@lysator.liu.se> + * examples/hogweed-benchmark.c: Update dsa benchmarking to use new + DSA interface. + * 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. diff --git a/examples/hogweed-benchmark.c b/examples/hogweed-benchmark.c index 3b124117515a7dc669a1ec32eb869ed3c1ceb1fe..3b189c4cc90947956f7b45ee30d2d1c4d43ecd2a 100644 --- a/examples/hogweed-benchmark.c +++ b/examples/hogweed-benchmark.c @@ -2,7 +2,7 @@ /* nettle, low-level cryptographics library * - * Copyright (C) 2013 Niels Möller + * Copyright (C) 2013, 2014 Niels Möller * * 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 @@ -264,9 +264,10 @@ bench_rsa_clear (void *p) } struct dsa_ctx -{ - struct dsa_public_key pub; - struct dsa_private_key key; +{ + struct dsa_params params; + mpz_t pub; + mpz_t key; struct knuth_lfib_ctx lfib; struct dsa_signature s; uint8_t *digest; @@ -292,8 +293,9 @@ bench_dsa_init (unsigned size) ctx = xalloc(sizeof(*ctx)); - dsa_public_key_init (&ctx->pub); - dsa_private_key_init (&ctx->key); + dsa_params_init (&ctx->params); + mpz_init (ctx->pub); + mpz_init (ctx->key); dsa_signature_init (&ctx->s); knuth_lfib_init (&ctx->lfib, 1); @@ -303,16 +305,15 @@ bench_dsa_init (unsigned size) if (! (sexp_transport_iterator_first (&i, sizeof(dsa1024) - 1, dsa1024) && sexp_iterator_check_type (&i, "private-key") && sexp_iterator_check_type (&i, "dsa") - && dsa_keypair_from_sexp_alist ((struct dsa_params *) &ctx->pub, - ctx->pub.y, ctx->key.x, + && dsa_keypair_from_sexp_alist (&ctx->params, ctx->pub, ctx->key, 0, DSA_SHA1_Q_BITS, &i)) ) die ("Internal error.\n"); ctx->digest = hash_string (&nettle_sha1, 3, "foo"); - dsa_sha1_sign_digest (&ctx->pub, &ctx->key, - &ctx->lfib, (nettle_random_func *)knuth_lfib_random, - ctx->digest, &ctx->s); + dsa_sign (&ctx->params, ctx->key, + &ctx->lfib, (nettle_random_func *)knuth_lfib_random, + SHA1_DIGEST_SIZE, ctx->digest, &ctx->s); return ctx; } @@ -324,9 +325,9 @@ bench_dsa_sign (void *p) struct dsa_signature s; dsa_signature_init (&s); - dsa_sha1_sign_digest (&ctx->pub, &ctx->key, - &ctx->lfib, (nettle_random_func *)knuth_lfib_random, - ctx->digest, &s); + dsa_sign (&ctx->params, ctx->key, + &ctx->lfib, (nettle_random_func *)knuth_lfib_random, + SHA1_DIGEST_SIZE, ctx->digest, &s); dsa_signature_clear (&s); } @@ -334,7 +335,7 @@ static void bench_dsa_verify (void *p) { struct dsa_ctx *ctx = p; - if (! dsa_sha1_verify_digest (&ctx->pub, ctx->digest, &ctx->s)) + if (! dsa_verify (&ctx->params, ctx->pub, SHA1_DIGEST_SIZE, ctx->digest, &ctx->s)) die ("Internal error, dsa_sha1_verify_digest failed.\n"); } @@ -342,8 +343,9 @@ static void bench_dsa_clear (void *p) { struct dsa_ctx *ctx = p; - dsa_public_key_clear (&ctx->pub); - dsa_private_key_clear (&ctx->key); + dsa_params_clear (&ctx->params); + mpz_clear (ctx->pub); + mpz_clear (ctx->key); dsa_signature_clear (&ctx->s); free (ctx->digest); free (ctx);