crypto: testmgr - Added testvectors for the hmac(sm3) ahash
authorPascal van Leeuwen <pascalvanl@gmail.com>
Fri, 13 Sep 2019 15:20:38 +0000 (17:20 +0200)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 4 Oct 2019 15:06:03 +0000 (01:06 +1000)
Added testvectors for the hmac(sm3) ahash authentication algorithm

changes since v1 & v2:
-nothing

Signed-off-by: Pascal van Leeuwen <pvanleeuwen@verimatrix.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/testmgr.c
crypto/testmgr.h

index c39e39e55dc203be3284458184a611bcfc65c612..40d94ad706d408f5db73c740ef9c18d5b4d68d75 100644 (file)
@@ -4654,6 +4654,12 @@ static const struct alg_test_desc alg_test_descs[] = {
                .suite = {
                        .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,
index 001feca8a5355977aa039b75a90f4c9185483f8f..56ee6264bde9e384ac681c48da231ab6a23f1b44 100644 (file)
@@ -2628,6 +2628,62 @@ static const struct hash_testvec sm3_tv_template[] = {
        }
 };
 
+/* 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