From 7ed8cf9479b581b928111859f7cce400b46ba3ef Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se>
Date: Sun, 29 Sep 2002 23:09:22 +0200
Subject: [PATCH] (test_rsa_key): Copied this function from...
 testsuite/rsa-keygen-test.c: ... here.

Rev: src/nettle/testsuite/rsa-keygen-test.c:1.3
Rev: src/nettle/testsuite/testutils.c:1.12
---
 testsuite/rsa-keygen-test.c | 71 -----------------------------------
 testsuite/testutils.c       | 74 +++++++++++++++++++++++++++++++++++++
 2 files changed, 74 insertions(+), 71 deletions(-)

diff --git a/testsuite/rsa-keygen-test.c b/testsuite/rsa-keygen-test.c
index eff094f7..8a2498da 100644
--- a/testsuite/rsa-keygen-test.c
+++ b/testsuite/rsa-keygen-test.c
@@ -14,77 +14,6 @@ progress(void *ctx UNUSED, int c)
   fputc(c, stderr);
 }
 
-static void
-test_rsa_key(struct rsa_public_key *pub,
-	     struct rsa_private_key *key)
-{
-  mpz_t tmp;
-  mpz_t phi;
-  
-  mpz_init(tmp); mpz_init(phi);
-  
-  if (verbose)
-    {
-      /* FIXME: Use gmp_printf */
-      fprintf(stderr, "Public key: n=");
-      mpz_out_str(stderr, 16, pub->n);
-      fprintf(stderr, "\n    e=");
-      mpz_out_str(stderr, 16, pub->e);
-
-      fprintf(stderr, "\n\nPrivate key: d=");
-      mpz_out_str(stderr, 16, key->d);
-      fprintf(stderr, "\n    p=");
-      mpz_out_str(stderr, 16, key->p);
-      fprintf(stderr, "\n    q=");
-      mpz_out_str(stderr, 16, key->q);
-      fprintf(stderr, "\n    a=");
-      mpz_out_str(stderr, 16, key->a);
-      fprintf(stderr, "\n    b=");
-      mpz_out_str(stderr, 16, key->b);
-      fprintf(stderr, "\n    c=");
-      mpz_out_str(stderr, 16, key->c);
-      fprintf(stderr, "\n\n");
-    }
-
-  /* Check n = p q */
-  mpz_mul(tmp, key->p, key->q);
-  if (mpz_cmp(tmp, pub->n))
-    FAIL();
-
-  /* Check c q = 1 mod p */
-  mpz_mul(tmp, key->c, key->q);
-  mpz_fdiv_r(tmp, tmp, key->p);
-  if (mpz_cmp_ui(tmp, 1))
-    FAIL();
-
-  /* Check ed = 1 (mod phi) */
-  mpz_sub_ui(phi, key->p, 1);
-  mpz_sub_ui(tmp, key->q, 1);
-
-  mpz_mul(phi, phi, tmp);
-
-  mpz_mul(tmp, pub->e, key->d);
-  mpz_fdiv_r(tmp, tmp, phi);
-  if (mpz_cmp_ui(tmp, 1))
-    FAIL();
-
-  /* Check a e = 1 (mod (p-1) ) */
-  mpz_sub_ui(phi, key->p, 1);
-  mpz_mul(tmp, pub->e, key->a);
-  mpz_fdiv_r(tmp, tmp, phi);
-  if (mpz_cmp_ui(tmp, 1))
-    FAIL();
-  
-  /* Check b e = 1 (mod (q-1) ) */
-  mpz_sub_ui(phi, key->q, 1);
-  mpz_mul(tmp, pub->e, key->b);
-  mpz_fdiv_r(tmp, tmp, phi);
-  if (mpz_cmp_ui(tmp, 1))
-    FAIL();
-  
-  mpz_clear(tmp); mpz_clear(phi);
-}
-
 int
 test_main(void)
 {
diff --git a/testsuite/testutils.c b/testsuite/testutils.c
index cfcc0734..203f8271 100644
--- a/testsuite/testutils.c
+++ b/testsuite/testutils.c
@@ -375,4 +375,78 @@ test_rsa_sha1(struct rsa_public_key *pub,
 
   mpz_clear(signature);
 }
+
+#if HAVE_LIBGMP
+void
+test_rsa_key(struct rsa_public_key *pub,
+	     struct rsa_private_key *key)
+{
+  mpz_t tmp;
+  mpz_t phi;
+  
+  mpz_init(tmp); mpz_init(phi);
+  
+  if (verbose)
+    {
+      /* FIXME: Use gmp_printf */
+      fprintf(stderr, "Public key: n=");
+      mpz_out_str(stderr, 16, pub->n);
+      fprintf(stderr, "\n    e=");
+      mpz_out_str(stderr, 16, pub->e);
+
+      fprintf(stderr, "\n\nPrivate key: d=");
+      mpz_out_str(stderr, 16, key->d);
+      fprintf(stderr, "\n    p=");
+      mpz_out_str(stderr, 16, key->p);
+      fprintf(stderr, "\n    q=");
+      mpz_out_str(stderr, 16, key->q);
+      fprintf(stderr, "\n    a=");
+      mpz_out_str(stderr, 16, key->a);
+      fprintf(stderr, "\n    b=");
+      mpz_out_str(stderr, 16, key->b);
+      fprintf(stderr, "\n    c=");
+      mpz_out_str(stderr, 16, key->c);
+      fprintf(stderr, "\n\n");
+    }
+
+  /* Check n = p q */
+  mpz_mul(tmp, key->p, key->q);
+  if (mpz_cmp(tmp, pub->n))
+    FAIL();
+
+  /* Check c q = 1 mod p */
+  mpz_mul(tmp, key->c, key->q);
+  mpz_fdiv_r(tmp, tmp, key->p);
+  if (mpz_cmp_ui(tmp, 1))
+    FAIL();
+
+  /* Check ed = 1 (mod phi) */
+  mpz_sub_ui(phi, key->p, 1);
+  mpz_sub_ui(tmp, key->q, 1);
+
+  mpz_mul(phi, phi, tmp);
+
+  mpz_mul(tmp, pub->e, key->d);
+  mpz_fdiv_r(tmp, tmp, phi);
+  if (mpz_cmp_ui(tmp, 1))
+    FAIL();
+
+  /* Check a e = 1 (mod (p-1) ) */
+  mpz_sub_ui(phi, key->p, 1);
+  mpz_mul(tmp, pub->e, key->a);
+  mpz_fdiv_r(tmp, tmp, phi);
+  if (mpz_cmp_ui(tmp, 1))
+    FAIL();
+  
+  /* Check b e = 1 (mod (q-1) ) */
+  mpz_sub_ui(phi, key->q, 1);
+  mpz_mul(tmp, pub->e, key->b);
+  mpz_fdiv_r(tmp, tmp, phi);
+  if (mpz_cmp_ui(tmp, 1))
+    FAIL();
+  
+  mpz_clear(tmp); mpz_clear(phi);
+}
+#endif /* HAVE_LIBGMP */
+
 #endif /* HAVE_LIBGMP */
-- 
GitLab