From fd60bffee98713ca47b5c736b1f6557768fe1bea Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se>
Date: Tue, 26 Aug 2003 08:44:51 +0200
Subject: [PATCH] New test cases.

Rev: src/nettle/testsuite/md2-test.c:1.1
Rev: src/nettle/testsuite/md4-test.c:1.1
Rev: src/nettle/testsuite/rsa-encrypt-test.c:1.1
---
 testsuite/md2-test.c         | 26 ++++++++++++++
 testsuite/md4-test.c         | 27 ++++++++++++++
 testsuite/rsa-encrypt-test.c | 68 ++++++++++++++++++++++++++++++++++++
 3 files changed, 121 insertions(+)
 create mode 100644 testsuite/md2-test.c
 create mode 100644 testsuite/md4-test.c
 create mode 100644 testsuite/rsa-encrypt-test.c

diff --git a/testsuite/md2-test.c b/testsuite/md2-test.c
new file mode 100644
index 00000000..087f4710
--- /dev/null
+++ b/testsuite/md2-test.c
@@ -0,0 +1,26 @@
+#include "testutils.h"
+#include "md2.h"
+
+int
+test_main(void)
+{
+  test_hash(&nettle_md2, 0, "",
+	    H("8350e5a3e24c153df2275c9f80692773"));
+  test_hash(&nettle_md2, LDATA("a"),
+	    H("32ec01ec4a6dac72c0ab96fb34c0b5d1"));
+  test_hash(&nettle_md2, LDATA("abc"),
+	    H("da853b0d3f88d99b30283a69e6ded6bb"));
+  test_hash(&nettle_md2, LDATA("message digest"),
+	    H("ab4f496bfb2a530b219ff33031fe06b0"));
+  test_hash(&nettle_md2, LDATA("abcdefghijklmnopqrstuvwxyz"),
+	    H("4e8ddff3650292ab5a4108c3aa47940b"));
+  test_hash(&nettle_md2,
+	    LDATA("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
+		  "0123456789"),
+	    H("da33def2a42df13975352846c30338cd"));
+  test_hash(&nettle_md2, LDATA("1234567890123456789012345678901234567890"
+			       "1234567890123456789012345678901234567890"),
+	    H("d5976f79d83d3a0dc9806c3c66f3efd8"));
+
+  SUCCESS();
+}
diff --git a/testsuite/md4-test.c b/testsuite/md4-test.c
new file mode 100644
index 00000000..52293464
--- /dev/null
+++ b/testsuite/md4-test.c
@@ -0,0 +1,27 @@
+#include "testutils.h"
+#include "md4.h"
+
+int
+test_main(void)
+{
+  test_hash(&nettle_md4, LDATA(""),
+	    H("31d6cfe0d16ae931b73c59d7e0c089c0"));
+  test_hash(&nettle_md4, LDATA("a"),
+	    H("bde52cb31de33e46245e05fbdbd6fb24"));
+  test_hash(&nettle_md4, LDATA("abc"),
+	    H("a448017aaf21d8525fc10ae87aa6729d"));
+  test_hash(&nettle_md4, LDATA("message digest"),
+	    H("d9130a8164549fe818874806e1c7014b"));
+  test_hash(&nettle_md4, LDATA("abcdefghijklmnopqrstuvwxyz"),
+	    H("d79e1c308aa5bbcdeea8ed63df412da9"));
+  test_hash(&nettle_md4,
+	    LDATA("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
+		  "0123456789"),
+	    H("043f8582f241db351ce627e153e7f0e4"));
+  test_hash(&nettle_md4,
+	    LDATA("12345678901234567890123456789012345678901234567890"
+		  "123456789012345678901234567890"),
+	    H("e33b4ddc9c38f2199c3e7b164fcc0536"));
+  
+  SUCCESS();
+}
diff --git a/testsuite/rsa-encrypt-test.c b/testsuite/rsa-encrypt-test.c
new file mode 100644
index 00000000..c1e901be
--- /dev/null
+++ b/testsuite/rsa-encrypt-test.c
@@ -0,0 +1,68 @@
+#include "testutils.h"
+
+#include "rsa.h"
+#include "knuth-lfib.h"
+
+int
+test_main(void)
+{
+#if WITH_PUBLIC_KEY
+  struct rsa_public_key pub;
+  struct rsa_private_key key;
+  struct knuth_lfib_ctx lfib;
+
+  /* FIXME: How is this spelled? */
+  const uint8_t *msg = "Squemish ossifrage";
+  unsigned msg_length;
+
+  uint8_t *decrypted;
+  unsigned decrypted_length;
+  
+  mpz_t gibberish;
+
+  rsa_private_key_init(&key);
+  rsa_public_key_init(&pub);
+  mpz_init(gibberish);
+
+  knuth_lfib_init(&lfib, 17);
+  
+  test_rsa_set_key_1(&pub, &key);
+  msg_length = strlen(msg);
+
+  if (verbose)
+    fprintf(stderr, "msg: `%s', length = %d\n", msg, msg_length);
+  
+  ASSERT(rsa_encrypt(&pub,
+		     &lfib, (nettle_random_func) knuth_lfib_random,
+		     msg_length, msg,
+		     gibberish));
+
+  if (verbose)
+    gmp_fprintf(stderr, "encrypted: %Zd\n", gibberish);
+  
+  decrypted = alloca(msg_length + 1);
+
+  decrypted_length = msg_length - 1;
+  ASSERT(!rsa_decrypt(&key, &decrypted_length, decrypted, gibberish));
+
+  decrypted_length = msg_length;
+  ASSERT(rsa_decrypt(&key, &decrypted_length, decrypted, gibberish));
+  ASSERT(decrypted_length == msg_length);
+  ASSERT(MEMEQ(msg_length, msg, decrypted));
+
+  decrypted_length = key.size;
+  ASSERT(rsa_decrypt(&key, &decrypted_length, decrypted, gibberish));
+  ASSERT(decrypted_length == msg_length);
+  ASSERT(MEMEQ(msg_length, msg, decrypted));
+  
+  rsa_private_key_clear(&key);
+  rsa_public_key_clear(&pub);
+  mpz_clear(gibberish);
+
+  SUCCESS();
+  
+#else /* !WITH_PUBLIC_KEY */
+  SKIP();
+#endif /* !WITH_PUBLIC_KEY */
+}
+  
-- 
GitLab