Added testvectors for the hmac(sm3) ahash authentication algorithm

changes since v1:
- nothing

Signed-off-by: Pascal van Leeuwen <pvanleeu...@verimatrix.com>
---
 crypto/testmgr.c |  6 ++++++
 crypto/testmgr.h | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 62 insertions(+)

diff --git a/crypto/testmgr.c b/crypto/testmgr.c
index 001e62f..3604c9d 100644
--- a/crypto/testmgr.c
+++ b/crypto/testmgr.c
@@ -4921,6 +4921,12 @@ static int alg_test_null(const struct alg_test_desc 
*desc,
                        .hash = __VECS(hmac_sha512_tv_template)
                }
        }, {
+               .alg = "hmac(sm3)",
+               .test = alg_test_hash,
+               .suite = {
+                       .hash = __VECS(hmac_sm3_tv_template)
+               }
+       }, {
                .alg = "hmac(streebog256)",
                .test = alg_test_hash,
                .suite = {
diff --git a/crypto/testmgr.h b/crypto/testmgr.h
index 25572c3..1f56293 100644
--- a/crypto/testmgr.h
+++ b/crypto/testmgr.h
@@ -2935,6 +2935,62 @@ struct len_range_sel {
        }
 };
 
+/* Example vectors below taken from
+ * GM/T 0042-2015 Appendix D.3
+ */
+static const struct hash_testvec hmac_sm3_tv_template[] = {
+       {
+               .key    = "\x01\x02\x03\x04\x05\x06\x07\x08"
+                         "\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10"
+                         "\x11\x12\x13\x14\x15\x16\x17\x18"
+                         "\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20",
+               .ksize  = 32,
+               .plaintext = 
"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"
+                            
"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
+               .psize  = 112,
+               .digest = "\xca\x05\xe1\x44\xed\x05\xd1\x85"
+                         "\x78\x40\xd1\xf3\x18\xa4\xa8\x66"
+                         "\x9e\x55\x9f\xc8\x39\x1f\x41\x44"
+                         "\x85\xbf\xdf\x7b\xb4\x08\x96\x3a",
+       }, {
+               .key    = "\x01\x02\x03\x04\x05\x06\x07\x08"
+                         "\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10"
+                         "\x11\x12\x13\x14\x15\x16\x17\x18"
+                         "\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20"
+                         "\x21\x22\x23\x24\x25",
+               .ksize  = 37,
+               .plaintext = "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd"
+                       "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd"
+                       "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd"
+                       "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd",
+               .psize  = 50,
+               .digest = "\x22\x0b\xf5\x79\xde\xd5\x55\x39"
+                         "\x3f\x01\x59\xf6\x6c\x99\x87\x78"
+                         "\x22\xa3\xec\xf6\x10\xd1\x55\x21"
+                         "\x54\xb4\x1d\x44\xb9\x4d\xb3\xae",
+       }, {
+               .key    = "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"
+                         "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"
+                        "\x0b\x0b\x0b\x0b\x0b\x0b",
+               .ksize  = 32,
+               .plaintext = "Hi There",
+               .psize  = 8,
+               .digest = "\xc0\xba\x18\xc6\x8b\x90\xc8\x8b"
+                         "\xc0\x7d\xe7\x94\xbf\xc7\xd2\xc8"
+                         "\xd1\x9e\xc3\x1e\xd8\x77\x3b\xc2"
+                         "\xb3\x90\xc9\x60\x4e\x0b\xe1\x1e",
+       }, {
+               .key    = "Jefe",
+               .ksize  = 4,
+               .plaintext = "what do ya want for nothing?",
+               .psize  = 28,
+               .digest = "\x2e\x87\xf1\xd1\x68\x62\xe6\xd9"
+                         "\x64\xb5\x0a\x52\x00\xbf\x2b\x10"
+                         "\xb7\x64\xfa\xa9\x68\x0a\x29\x6a"
+                         "\x24\x05\xf2\x4b\xec\x39\xf8\x82",
+       },
+};
+
 /*
  * SHA1 test vectors  from from FIPS PUB 180-1
  * Long vector from CAVS 5.0
-- 
1.8.3.1

Reply via email to