diff --git a/testsuite/des3-test.m4 b/testsuite/des3-test.m4
new file mode 100644
index 0000000000000000000000000000000000000000..7baa2cfa299fba7167733868e5f7862661765521
--- /dev/null
+++ b/testsuite/des3-test.m4
@@ -0,0 +1,27 @@
+#include "des.h"
+
+BEGIN_TEST
+
+struct des3_ctx ctx;
+
+uint8_t msg[DES3_BLOCK_SIZE] = "Now is t";
+uint8_t cipher[DES3_BLOCK_SIZE];
+uint8_t clear[DES3_BLOCK_SIZE];
+
+/* Intermediate values: "cd ea 2a 20 c2 e0 9e 48"
+ *                      "69 52 6e 95 8b ea 49 bd"
+ */
+if (!des3_set_key(&ctx, H("3e 0b 10 b0 5d 49 c2 54"
+			  "6b 46 e0 75 8a 91 61 85"
+			  "cb 04 07 d3 20 16 cb a2")))
+  FAIL;
+
+des3_encrypt(&ctx, DES_BLOCK_SIZE, cipher, msg);
+
+if (!MEMEQ(DES_BLOCK_SIZE, cipher,
+	H("0a 5d b5 2d 85 74 d1 c9")))
+  FAIL;
+
+des3_decrypt(&ctx, DES_BLOCK_SIZE, clear, cipher);
+if (!MEMEQ(DES_BLOCK_SIZE, msg, clear))
+  FAIL;