]> git.ipfire.org Git - thirdparty/nettle.git/commitdiff
testsuite: add test for SM4 symmetric algorithm
authorTianjia Zhang <tianjia.zhang@linux.alibaba.com>
Mon, 21 Feb 2022 08:37:12 +0000 (16:37 +0800)
committerNiels Möller <nisse@lysator.liu.se>
Thu, 18 Aug 2022 08:15:02 +0000 (10:15 +0200)
Add a testuite for SM4 symmetric algorithm. Test vectors are based
on: https://tools.ietf.org/id/draft-ribose-cfrg-sm4-10.html

Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
testsuite/.gitignore
testsuite/Makefile.in
testsuite/sm4-test.c [new file with mode: 0644]

index ca41472e6a84e97da3b823b2a40612b5a14bfa7d..07127d2bc35f3efe41331f871ccbc96e96873089 100644 (file)
@@ -98,6 +98,7 @@
 /sha512-256-test
 /sha512-test
 /sm3-test
+/sm4-test
 /streebog-test
 /twofish-test
 /umac-test
index 4e20c7a113767067e2b1985164ee62fd527c9e23..604dc1ff3c6433a3e20c741088486dbd51ca4a8f 100644 (file)
@@ -24,7 +24,7 @@ TS_NETTLE_SOURCES = aes-test.c aes-keywrap-test.c arcfour-test.c arctwo-test.c \
                    sha384-test.c sha512-test.c sha512-224-test.c sha512-256-test.c \
                    sha3-permute-test.c sha3-224-test.c sha3-256-test.c \
                    sha3-384-test.c sha3-512-test.c \
-                   shake256-test.c streebog-test.c sm3-test.c \
+                   shake256-test.c streebog-test.c sm3-test.c sm4-test.c \
                    serpent-test.c twofish-test.c version-test.c \
                    knuth-lfib-test.c \
                    cbc-test.c cfb-test.c ctr-test.c gcm-test.c eax-test.c ccm-test.c \
diff --git a/testsuite/sm4-test.c b/testsuite/sm4-test.c
new file mode 100644 (file)
index 0000000..97d9d58
--- /dev/null
@@ -0,0 +1,19 @@
+#include "testutils.h"
+#include "sm4.h"
+
+void
+test_main(void)
+{
+  /* test vectors from:
+   * https://tools.ietf.org/id/draft-ribose-cfrg-sm4-10.html
+   */
+  test_cipher(&nettle_sm4,
+             SHEX("0123456789ABCDEF FEDCBA9876543210"),
+             SHEX("0123456789ABCDEF FEDCBA9876543210"),
+             SHEX("681EDF34D206965E 86B3E94F536E4246"));
+
+  test_cipher(&nettle_sm4,
+             SHEX("FEDCBA9876543210 0123456789ABCDEF"),
+             SHEX("0001020304050607 08090A0B0C0D0E0F"),
+             SHEX("F766678F13F01ADE AC1B3EA955ADB594"));
+}