From 05d62ef8e4846f353a724bd281164793ec6cb6b9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se>
Date: Wed, 2 Jun 2010 16:09:48 +0200
Subject: [PATCH] (test_dsa160): Added argument for expected signature.
 (test_dsa256): Likewise.

Rev: nettle/testsuite/dsa-keygen-test.c:1.5
Rev: nettle/testsuite/testutils.c:1.8
Rev: nettle/testsuite/testutils.h:1.5
---
 testsuite/dsa-keygen-test.c |  4 ++--
 testsuite/testutils.c       | 21 ++++++++++++++-------
 testsuite/testutils.h       |  6 ++++--
 3 files changed, 20 insertions(+), 11 deletions(-)

diff --git a/testsuite/dsa-keygen-test.c b/testsuite/dsa-keygen-test.c
index 83786293..12dc3096 100644
--- a/testsuite/dsa-keygen-test.c
+++ b/testsuite/dsa-keygen-test.c
@@ -28,7 +28,7 @@ test_main(void)
     FAIL();
 
   test_dsa_key(&pub, &key, 160);
-  test_dsa160(&pub, &key);
+  test_dsa160(&pub, &key, NULL);
 
   if (!dsa_generate_keypair(&pub, &key,
 			    &lfib, (nettle_random_func *) knuth_lfib_random,
@@ -37,7 +37,7 @@ test_main(void)
     FAIL();
 
   test_dsa_key(&pub, &key, 256);
-  test_dsa256(&pub, &key);
+  test_dsa256(&pub, &key, NULL);
   
   dsa_public_key_clear(&pub);
   dsa_private_key_clear(&key);
diff --git a/testsuite/testutils.c b/testsuite/testutils.c
index 82797352..f07b7c44 100644
--- a/testsuite/testutils.c
+++ b/testsuite/testutils.c
@@ -826,7 +826,8 @@ test_rsa_key(struct rsa_public_key *pub,
 
 void
 test_dsa160(const struct dsa_public_key *pub,
-	    const struct dsa_private_key *key)
+	    const struct dsa_private_key *key,
+	    const struct dsa_signature *expected)
 {
   struct sha1_ctx sha1;
   struct dsa_signature signature;
@@ -840,7 +841,7 @@ test_dsa160(const struct dsa_public_key *pub,
   ASSERT (dsa_sha1_sign(pub, key,
 			&lfib, (nettle_random_func *) knuth_lfib_random,
 			&sha1, &signature));
-  
+
   if (verbose)
     {
       fprintf(stderr, "dsa160 signature: ");
@@ -849,6 +850,11 @@ test_dsa160(const struct dsa_public_key *pub,
       mpz_out_str(stderr, 16, signature.s);
       fprintf(stderr, "\n");
     }
+
+  if (expected)
+    if (mpz_cmp (signature.r, expected->r)
+	|| mpz_cmp (signature.s, expected->s))
+      FAIL();
   
   /* Try bad data */
   if (DSA_VERIFY(pub, sha1,
@@ -872,7 +878,8 @@ test_dsa160(const struct dsa_public_key *pub,
 
 void
 test_dsa256(const struct dsa_public_key *pub,
-	    const struct dsa_private_key *key)
+	    const struct dsa_private_key *key,
+	    const struct dsa_signature *expected)
 {
   struct sha256_ctx sha256;
   struct dsa_signature signature;
@@ -896,10 +903,10 @@ test_dsa256(const struct dsa_public_key *pub,
       fprintf(stderr, "\n");
     }
 
-#if 0
-  if (mpz_cmp(signature, expected))
-    FAIL();
-#endif
+  if (expected)
+    if (mpz_cmp (signature.r, expected->r)
+	|| mpz_cmp (signature.s, expected->s))
+      FAIL();
   
   /* Try bad data */
   if (DSA_VERIFY(pub, sha256,
diff --git a/testsuite/testutils.h b/testsuite/testutils.h
index 966eca38..91ec4962 100644
--- a/testsuite/testutils.h
+++ b/testsuite/testutils.h
@@ -168,11 +168,13 @@ test_rsa_key(struct rsa_public_key *pub,
 
 void
 test_dsa160(const struct dsa_public_key *pub,
-	    const struct dsa_private_key *key);
+	    const struct dsa_private_key *key,
+	    const struct dsa_signature *expected);
 
 void
 test_dsa256(const struct dsa_public_key *pub,
-	    const struct dsa_private_key *key);
+	    const struct dsa_private_key *key,
+	    const struct dsa_signature *expected);
 
 void
 test_dsa_key(struct dsa_public_key *pub,
-- 
GitLab