summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTianjia Zhang <tianjia.zhang@linux.alibaba.com>2022-02-21 16:37:12 +0800
committerNiels Möller <nisse@lysator.liu.se>2022-08-18 10:15:02 +0200
commitec5b48446a38c046fbd73941531a12a54e17a497 (patch)
tree488ad3b1e9cb0b1d2997589885c841a2578e8efe
parenta421b76d0deebca22e0e0c6b0df65e1cd033f3a0 (diff)
downloadnettle-ec5b48446a38c046fbd73941531a12a54e17a497.tar.gz
testsuite: add test for SM4 symmetric algorithm
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>
-rw-r--r--testsuite/.gitignore1
-rw-r--r--testsuite/Makefile.in2
-rw-r--r--testsuite/sm4-test.c19
3 files changed, 21 insertions, 1 deletions
diff --git a/testsuite/.gitignore b/testsuite/.gitignore
index ca41472e..07127d2b 100644
--- a/testsuite/.gitignore
+++ b/testsuite/.gitignore
@@ -98,6 +98,7 @@
/sha512-256-test
/sha512-test
/sm3-test
+/sm4-test
/streebog-test
/twofish-test
/umac-test
diff --git a/testsuite/Makefile.in b/testsuite/Makefile.in
index 4e20c7a1..604dc1ff 100644
--- a/testsuite/Makefile.in
+++ b/testsuite/Makefile.in
@@ -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
index 00000000..97d9d58a
--- /dev/null
+++ b/testsuite/sm4-test.c
@@ -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"));
+}