From 8777215a3d7da1696c1eb06cf55c62a7cc10c1d5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se>
Date: Fri, 18 Apr 1997 22:07:50 +0200
Subject: [PATCH] New testsuite

Rev: src/modules/_Crypto/testsuite.in:1.2
---
 src/modules/_Crypto/testsuite.in | 136 +++++++++++++++++++++++++++++++
 1 file changed, 136 insertions(+)

diff --git a/src/modules/_Crypto/testsuite.in b/src/modules/_Crypto/testsuite.in
index e69de29bb2..51fda6e50f 100644
--- a/src/modules/_Crypto/testsuite.in
+++ b/src/modules/_Crypto/testsuite.in
@@ -0,0 +1,136 @@
+// Crypto
+test_true([[objectp(Crypto)]])
+
+// C-programs
+test_true([[programp(Crypto.cbc)]])
+test_true([[programp(Crypto.crypto)]])
+test_true([[programp(Crypto.des)]])
+test_true([[programp(Crypto.idea)]])
+test_true([[programp(Crypto.invert)]])
+test_true([[programp(Crypto.md5)]])
+test_true([[programp(Crypto.pipe)]])
+test_true([[programp(Crypto.rc4)]])
+test_true([[programp(Crypto.sha)]])
+
+// Functions
+test_true([[functionp(Crypto.des_parity)]])
+test_true([[functionp(Crypto.hex_to_string)]])
+test_true([[functionp(Crypto.string_to_hex)]])
+
+// Pike programs
+test_true([[programp(Crypto.des3)]])
+test_true([[programp(Crypto.des3_cbc)]])
+test_true([[programp(Crypto.des_cbc)]])
+test_true([[programp(Crypto.idea_cbc)]])
+test_true([[programp(Crypto.rsa)]])
+
+// Randomness submodule
+test_true([[objectp(Crypto.randomness)]])
+test_true([[programp(Crypto.randomness.pike_random)]])
+test_true([[programp(Crypto.randomness.rc4_random)]])
+test_true([[functionp(Crypto.randomness.reasonably_random)]])
+test_true([[functionp(Crypto.randomness.really_random)]])
+
+// DES
+test_true([[objectp(Crypto.des())]])
+test_eq([[Crypto.des()->set_encrypt_key(Crypto.hex_to_string("0101010101010180"))
+		->crypt_block(Crypto.hex_to_string("0000000000000000"))]],
+	[[Crypto.hex_to_string("9cc62df43b6eed74")]])
+test_eq([[Crypto.des()->set_encrypt_key(Crypto.hex_to_string("8001010101010101"))
+		->crypt_block(Crypto.hex_to_string("0000000000000040"))]],
+	[[Crypto.hex_to_string("a380e02a6be54696")]])
+test_eq([[Crypto.des()->set_encrypt_key(Crypto.hex_to_string("08192a3b4c5d6e7f"))
+		->crypt_block(Crypto.hex_to_string("0000000000000000"))]],
+	[[Crypto.hex_to_string("25DDAC3E96176467")]])
+test_eq([[Crypto.des()->set_encrypt_key(Crypto.hex_to_string("0123456789abcdef"))
+		->crypt_block("Now is t")]],
+	[[Crypto.hex_to_string("3fa40e8a984d4815")]])
+test_eq([[Crypto.des()->set_encrypt_key(Crypto.hex_to_string("0123456789abcdef"))
+		->crypt_block(Crypto.hex_to_string("0123456789abcde7"))]],
+	[[Crypto.hex_to_string("c95744256a5ed31d")]])
+
+test_eq([[Crypto.des()->set_decrypt_key(Crypto.hex_to_string("0123456789abcdef"))
+		->crypt_block(Crypto.hex_to_string("3fa40e8a984d4815"))]],
+	[["Now is t"]])
+
+// IDEA
+test_true([[objectp(Crypto.idea())]])
+test_eq([[Crypto.idea()->set_encrypt_key(Crypto.hex_to_string("0123456789abcdef"
+							      "0123456789abcdef"))
+		->crypt_block(Crypto.hex_to_string("0123456789abcde7"))]],
+	[[Crypto.hex_to_string("2011aacef6f4bc7f")]])
+
+// RC4
+test_true([[objectp(Crypto.rc4())]])
+test_eq([[Crypto.rc4()->set_encrypt_key(Crypto.hex_to_string("0123456789abcdef"))
+		->crypt(Crypto.hex_to_string("0123456789abcdef"))]],
+	[[Crypto.hex_to_string("75b7878099e0c596")]])
+test_eq([[Crypto.rc4()->set_encrypt_key(Crypto.hex_to_string("0123456789abcdef"))
+		->crypt(Crypto.hex_to_string("0000000000000000"))]],
+	[[Crypto.hex_to_string("7494c2e7104b0879")]])
+test_eq([[Crypto.rc4()->set_encrypt_key(Crypto.hex_to_string("0000000000000000"))
+		->crypt(Crypto.hex_to_string("0000000000000000"))]],
+	[[Crypto.hex_to_string("de188941a3375d3a")]])
+test_eq([[Crypto.rc4()->set_encrypt_key(Crypto.hex_to_string("ef012345"))
+		->crypt(Crypto.hex_to_string("00000000000000000000"))]],
+	[[Crypto.hex_to_string("d6a141a7ec3c38dfbd61")]])
+test_eq([[Crypto.rc4()->set_encrypt_key(Crypto.hex_to_string("0123456789abcdef"))
+		->crypt(Crypto.hex_to_string(
+		  "0101010101010101010101010101010101010101010101010101010101010101"
+		  "0101010101010101010101010101010101010101010101010101010101010101"
+		  "0101010101010101010101010101010101010101010101010101010101010101"
+		  "0101010101010101010101010101010101010101010101010101010101010101"
+		  "0101010101010101010101010101010101010101010101010101010101010101"
+		  "0101010101010101010101010101010101010101010101010101010101010101"
+		  "0101010101010101010101010101010101010101010101010101010101010101"
+		  "0101010101010101010101010101010101010101010101010101010101010101"
+		  "0101010101010101010101010101010101010101010101010101010101010101"
+		  "0101010101010101010101010101010101010101010101010101010101010101"
+		  "0101010101010101010101010101010101010101010101010101010101010101"
+		  "0101010101010101010101010101010101010101010101010101010101010101"
+		  "0101010101010101010101010101010101010101010101010101010101010101"
+		  "0101010101010101010101010101010101010101010101010101010101010101"
+		  "0101010101010101010101010101010101010101010101010101010101010101"
+		  "0101010101010101010101010101010101010101010101010101010101010101"))]],
+	[[Crypto.hex_to_string(
+	  "7595c3e6114a09780c4ad452338e1ffd9a1be9498f813d76533449b6778dcad8"
+	  "c78a8d2ba9ac66085d0e53d59c26c2d1c490c1ebbe0ce66d1b6b1b13b6b919b8"
+	  "47c25a91447a95e75e4ef16779cde8bf0a95850e32af9689444fd377108f98fd"
+	  "cbd4e726567500990bcc7e0ca3c4aaa304a387d20f3b8fbbcd42a1bd311d7a43"
+	  "03dda5ab078896ae80c18b0af66dff319616eb784e495ad2ce90d7f772a81747"
+	  "b65f62093b1e0db9e5ba532fafec47508323e671327df9444432cb7367cec82f"
+	  "5d44c0d00b67d650a075cd4b70dedd77eb9b10231b6b5b741347396d62897421"
+	  "d43df9b42e446e358e9c11a9b2184ecbef0cd8e7a877ef968f1390ec9b3d35a5"
+	  "585cb009290e2fcde7b5ec66d9084be44055a619d9dd7fc3166f9487f7cb2729"
+	  "12426445998514c15d53a18c864ce3a2b7555793988126520eacf2e3066e230c"
+	  "91bee4dd5304f5fd0405b35bd99c73135d3d9bc335ee049ef69b3867bf2d7bd1"
+	  "eaa595d8bfc0066ff8d31509eb0c6caa006c807a623ef84c3d33c195d23ee320"
+	  "c40de0558157c822d4b8c569d849aed59d4e0fd7f379586b4b7ff684ed6a189f"
+	  "7486d49b9c4bad9ba24b96abf924372c8a8fffb10d55354900a77a3db5f205e1"
+	  "b99fcd8660863a159ad4abe40fa48934163ddde542a6585540fd683cbfd8c00f"
+	  "12129a284deacc4cdefe58be7137541c047126c8d49e2755ab181ab7e940b0c0")]])
+  
+// MD5
+test_true([[objectp(Crypto.md5())]])
+test_eq([[Crypto.md5()->update("")->digest()]],
+	[[Crypto.hex_to_string("d41d8cd98f00b204e9800998ecf8427e")]])
+test_eq([[Crypto.md5()->update("a")->digest()]],
+	[[Crypto.hex_to_string("0cc175b9c0f1b6a831c399e269772661")]])
+test_eq([[Crypto.md5()->update("abc")->digest()]],
+	[[Crypto.hex_to_string("900150983cd24fb0d6963f7d28e17f72")]])
+test_eq([[Crypto.md5()->update("message digest")->digest()]],
+	[[Crypto.hex_to_string("f96b697d7cb7938d525a2f31aaf161d0")]])
+test_eq([[Crypto.md5()->update("abcdefghijklmnopqrstuvwxyz")->digest()]],
+	[[Crypto.hex_to_string("c3fcd3d76192e4007dfb496cca67e13b")]])
+test_eq([[Crypto.md5()->update("ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+			       "abcdefghijklmnopqrstuvwxyz0123456789")->digest()]],
+	[[Crypto.hex_to_string("d174ab98d277d9f5a5611c2c9f419d9f")]])
+test_eq([[Crypto.md5()->update("1234567890123456789012345678901234567890"
+			       "1234567890123456789012345678901234567890")->digest()]],
+	[[Crypto.hex_to_string("57edf4a22be3c955ac49da2e2107b67a")]])
+  
+// SHA
+test_true([[objectp(Crypto.sha())]])
+test_eq([[Crypto.sha()->update("abc")->digest()]],
+	[[Crypto.hex_to_string("a9993e364706816aba3e25717850c26c9cd0d89d")]])
+
-- 
GitLab