crypto: testmgr - add test cases for cbcmac(aes)
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Fri, 3 Feb 2017 14:49:35 +0000 (14:49 +0000)
committerHerbert Xu <herbert@gondor.apana.org.au>
Sat, 11 Feb 2017 09:50:44 +0000 (17:50 +0800)
In preparation of splitting off the CBC-MAC transform in the CCM
driver into a separate algorithm, define some test cases for the
AES incarnation of cbcmac.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/testmgr.c
crypto/testmgr.h

index 98eb09782db81730cd10f6667fde05fa193723b2..f9c378af39078c2ad9f8fce0c02d1d4faf432f9f 100644 (file)
@@ -2513,6 +2513,13 @@ static const struct alg_test_desc alg_test_descs[] = {
                                .dec = __VECS(tf_cbc_dec_tv_template)
                        }
                }
+       }, {
+               .alg = "cbcmac(aes)",
+               .fips_allowed = 1,
+               .test = alg_test_hash,
+               .suite = {
+                       .hash = __VECS(aes_cbcmac_tv_template)
+               }
        }, {
                .alg = "ccm(aes)",
                .test = alg_test_aead,
index 64595f067d72e7a6e87c4170c9557b6d904b9bff..f85e51cf7dcca639873cef179d21066202c7079b 100644 (file)
@@ -3413,6 +3413,66 @@ static struct hash_testvec aes_cmac128_tv_template[] = {
        }
 };
 
+static struct hash_testvec aes_cbcmac_tv_template[] = {
+       {
+               .key            = "\x2b\x7e\x15\x16\x28\xae\xd2\xa6"
+                                 "\xab\xf7\x15\x88\x09\xcf\x4f\x3c",
+               .plaintext      = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96"
+                                 "\xe9\x3d\x7e\x11\x73\x93\x17\x2a",
+               .digest         = "\x3a\xd7\x7b\xb4\x0d\x7a\x36\x60"
+                                 "\xa8\x9e\xca\xf3\x24\x66\xef\x97",
+               .psize          = 16,
+               .ksize          = 16,
+       }, {
+               .key            = "\x2b\x7e\x15\x16\x28\xae\xd2\xa6"
+                                 "\xab\xf7\x15\x88\x09\xcf\x4f\x3c",
+               .plaintext      = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96"
+                                 "\xe9\x3d\x7e\x11\x73\x93\x17\x2a"
+                                 "\xae\x2d\x8a\x57\x1e\x03\xac\x9c"
+                                 "\x9e\xb7\x6f\xac\x45\xaf\x8e\x51"
+                                 "\x30",
+               .digest         = "\x9d\x0d\xd0\x63\xfb\xcb\x24\x43"
+                                 "\xf8\xf2\x76\x03\xac\x39\xb0\x9d",
+               .psize          = 33,
+               .ksize          = 16,
+               .np             = 2,
+               .tap            = { 7, 26 },
+       }, {
+               .key            = "\x2b\x7e\x15\x16\x28\xae\xd2\xa6"
+                                 "\xab\xf7\x15\x88\x09\xcf\x4f\x3c",
+               .plaintext      = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96"
+                                 "\xe9\x3d\x7e\x11\x73\x93\x17\x2a"
+                                 "\xae\x2d\x8a\x57\x1e\x03\xac\x9c"
+                                 "\x9e\xb7\x6f\xac\x45\xaf\x8e\x51"
+                                 "\x30\xc8\x1c\x46\xa3\x5c\xe4\x11"
+                                 "\xe5\xfb\xc1\x19\x1a\x0a\x52\xef"
+                                 "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17"
+                                 "\xad\x2b\x41\x7b\xe6\x6c\x37",
+               .digest         = "\xc0\x71\x73\xb8\xa0\x2c\x11\x7c"
+                                 "\xaf\xdc\xb2\xf8\x89\x32\xa3\x3a",
+               .psize          = 63,
+               .ksize          = 16,
+       }, {
+               .key            = "\x60\x3d\xeb\x10\x15\xca\x71\xbe"
+                                 "\x2b\x73\xae\xf0\x85\x7d\x77\x81"
+                                 "\x1f\x35\x2c\x07\x3b\x61\x08\xd7"
+                                 "\x2d\x98\x10\xa3\x09\x14\xdf\xf4",
+               .plaintext      = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96"
+                                 "\xe9\x3d\x7e\x11\x73\x93\x17\x2a"
+                                 "\xae\x2d\x8a\x57\x1e\x03\xac\x9c"
+                                 "\x9e\xb7\x6f\xac\x45\xaf\x8e\x51"
+                                 "\x30\xc8\x1c\x46\xa3\x5c\xe4\x11"
+                                 "\xe5\xfb\xc1\x19\x1a\x0a\x52\xef"
+                                 "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17"
+                                 "\xad\x2b\x41\x7b\xe6\x6c\x37\x10"
+                                 "\x1c",
+               .digest         = "\x6a\x4e\xdb\x21\x47\x51\xdf\x4f"
+                                 "\xa8\x4d\x4c\x10\x3b\x72\x7d\xd6",
+               .psize          = 65,
+               .ksize          = 32,
+       }
+};
+
 static struct hash_testvec des3_ede_cmac64_tv_template[] = {
 /*
  * From NIST Special Publication 800-38B, Three Key TDEA