diff --git a/testsuite/des-test.m4 b/testsuite/des-test.m4 new file mode 100644 index 0000000000000000000000000000000000000000..9d2c40cba4039de935f232fbf1e383b1ce76caf2 --- /dev/null +++ b/testsuite/des-test.m4 @@ -0,0 +1,86 @@ +#include "des.h" + +BEGIN_TEST + +struct des_ctx ctx; + +uint8_t msg[DES_BLOCK_SIZE]; +uint8_t cipher[DES_BLOCK_SIZE]; +uint8_t clear[DES_BLOCK_SIZE]; + +H(msg, "00 00 00 00 00 00 00 00"); + +if (!des_set_key(&ctx, H("01 01 01 01 01 01 01 80"))) + FAIL; + +des_encrypt(&ctx, DES_BLOCK_SIZE, cipher, msg); + +if (!MEMEQ(DES_BLOCK_SIZE, cipher, + H("9C C6 2D F4 3B 6E ED 74"))) + FAIL; + +des_decrypt(&ctx, DES_BLOCK_SIZE, clear, cipher); +if (!MEMEQ(DES_BLOCK_SIZE, msg, clear)) + FAIL; + +H(msg, "00 00 00 00 00 00 00 40"); + +if (!des_set_key(&ctx, H("80 01 01 01 01 01 01 01"))) + FAIL; + +des_encrypt(&ctx, DES_BLOCK_SIZE, cipher, msg); + +if (!MEMEQ(DES_BLOCK_SIZE, cipher, + H("A3 80 E0 2A 6B E5 46 96"))) + FAIL; + +des_decrypt(&ctx, DES_BLOCK_SIZE, clear, cipher); +if (!MEMEQ(DES_BLOCK_SIZE, msg, clear)) + FAIL; + +H(msg, "00 00 00 00 00 00 00 00"); + +if (!des_set_key(&ctx, H("08 19 2A 3B 4C 5D 6E 7F"))) + FAIL; + +des_encrypt(&ctx, DES_BLOCK_SIZE, cipher, msg); + +if (!MEMEQ(DES_BLOCK_SIZE, cipher, + H("25 DD AC 3E 96 17 64 67"))) + FAIL; + +des_decrypt(&ctx, DES_BLOCK_SIZE, clear, cipher); +if (!MEMEQ(DES_BLOCK_SIZE, msg, clear)) + FAIL; + +if (!des_set_key(&ctx, H("01 23 45 67 89 AB CD EF"))) + FAIL; + +des_encrypt(&ctx, DES_BLOCK_SIZE, cipher, "Now is t"); + +if (!MEMEQ(DES_BLOCK_SIZE, cipher, + H("3F A4 0E 8A 98 4D 48 15"))) + FAIL; + +des_decrypt(&ctx, DES_BLOCK_SIZE, clear, cipher); +if (!MEMEQ(DES_BLOCK_SIZE, "Now is t", clear)) + FAIL; + +/* Parity check */ +if (des_set_key(&ctx, H("01 01 01 01 01 01 01 00")) + || (ctx.status != DES_BAD_PARITY)) + FAIL; + +/* Weak key check */ +if (des_set_key(&ctx, H("01 01 01 01 01 01 01 01")) + || (ctx.status != DES_WEAK_KEY)) + FAIL; + +if (des_set_key(&ctx, H("01 FE 01 FE 01 FE 01 FE")) + || (ctx.status != DES_WEAK_KEY)) + FAIL; + +if (des_set_key(&ctx, H("FE E0 FE E0 FE F1 FE F1")) + || (ctx.status != DES_WEAK_KEY)) + FAIL; + diff --git a/testsuite/sha1-test.m4 b/testsuite/sha1-test.m4 new file mode 100644 index 0000000000000000000000000000000000000000..fea00db3fa14251a49d505bc8e6697893f3690b1 --- /dev/null +++ b/testsuite/sha1-test.m4 @@ -0,0 +1,85 @@ +#include "sha1.h" + +BEGIN_TEST + +struct sha1_ctx ctx; +uint8_t digest[SHA1_DIGEST_SIZE]; + +sha1_init(&ctx); +sha1_final(&ctx); +sha1_digest(&ctx, SHA1_DIGEST_SIZE, digest); + +if (!MEMEQ(SHA1_DIGEST_SIZE, digest, + H("DA39A3EE5E6B4B0D 3255BFEF95601890 AFD80709"))) + FAIL; + +sha1_init(&ctx); +sha1_update(&ctx, 1, "a"); +sha1_final(&ctx); +sha1_digest(&ctx, SHA1_DIGEST_SIZE, digest); + +if (!MEMEQ(SHA1_DIGEST_SIZE, digest, + H("86F7E437FAA5A7FC E15D1DDCB9EAEAEA 377667B8"))) + FAIL; + +memset(digest, 0, SHA1_DIGEST_SIZE); +sha1_digest(&ctx, SHA1_DIGEST_SIZE - 1, digest); + +if (!MEMEQ(SHA1_DIGEST_SIZE, digest, + H("86F7E437FAA5A7FC E15D1DDCB9EAEAEA 37766700"))) + FAIL; + +sha1_init(&ctx); +sha1_update(&ctx, 1, "a"); +sha1_final(&ctx); +sha1_digest(&ctx, SHA1_DIGEST_SIZE, digest); + +if (!MEMEQ(SHA1_DIGEST_SIZE, digest, + H("86F7E437FAA5A7FC E15D1DDCB9EAEAEA 377667B8"))) + FAIL; + +sha1_init(&ctx); +sha1_update(&ctx, 3, "abc"); +sha1_final(&ctx); +sha1_digest(&ctx, SHA1_DIGEST_SIZE, digest); + +if (!MEMEQ(SHA1_DIGEST_SIZE, digest, + H("A9993E364706816A BA3E25717850C26C 9CD0D89D"))) + FAIL; + +sha1_init(&ctx); +sha1_update(&ctx, 26, "abcdefghijklmnopqrstuvwxyz"); +sha1_final(&ctx); +sha1_digest(&ctx, SHA1_DIGEST_SIZE, digest); + +if (!MEMEQ(SHA1_DIGEST_SIZE, digest, + H("32D10C7B8CF96570 CA04CE37F2A19D84 240D3A89"))) + FAIL; + +sha1_init(&ctx); +sha1_update(&ctx, 14, "message digest"); +sha1_final(&ctx); +sha1_digest(&ctx, SHA1_DIGEST_SIZE, digest); + +if (!MEMEQ(SHA1_DIGEST_SIZE, digest, + H("C12252CEDA8BE899 4D5FA0290A47231C 1D16AAE3"))) + FAIL; + +sha1_init(&ctx); +sha1_update(&ctx, 62, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"); +sha1_final(&ctx); +sha1_digest(&ctx, SHA1_DIGEST_SIZE, digest); + +if (!MEMEQ(SHA1_DIGEST_SIZE, digest, + H("761C457BF73B14D2 7E9E9265C46F4B4D DA11F940"))) + FAIL; + +sha1_init(&ctx); +sha1_update(&ctx, 80, "1234567890123456789012345678901234567890" + "1234567890123456789012345678901234567890"); +sha1_final(&ctx); +sha1_digest(&ctx, SHA1_DIGEST_SIZE, digest); + +if (!MEMEQ(SHA1_DIGEST_SIZE, digest, + H("50ABF5706A150990 A08B2C5EA40FA0E5 85554732"))) + FAIL;