crypto: nhpoly1305 - add a test vector with len % 16 != 0
authorEric Biggers <ebiggers@google.com>
Thu, 14 Feb 2019 18:27:48 +0000 (10:27 -0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 22 Feb 2019 04:47:27 +0000 (12:47 +0800)
This is needed to test that the end of the message is zero-padded when
the length is not a multiple of 16 (NH_MESSAGE_UNIT).  It's already
tested indirectly by the 31-byte Adiantum test vector, but it should be
tested directly at the nhpoly1305 level too.

As with the other nhpoly1305 test vectors, this was generated by the
reference Python implementation at https://github.com/google/adiantum
and then automatically formatted for testmgr by a script.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/testmgr.h

index 31bacd0f682381b11f11fb714ebb77f1bf36fdfd..6bf5a4ddbb5c104ad145b1794d81d64946bec1f5 100644 (file)
@@ -5924,6 +5924,150 @@ static const struct hash_testvec nhpoly1305_tv_template[] = {
                .psize  = 16,
                .digest = "\x04\xbf\x7f\x6a\xce\x72\xea\x6a"
                          "\x79\xdb\xb0\xc9\x60\xf6\x12\xcc",
+       }, {
+               .key    = "\x2e\x77\x1e\x2c\x63\x76\x34\x3f"
+                         "\x71\x08\x4f\x5a\xe3\x3d\x74\x56"
+                         "\xc7\x98\x46\x52\xe5\x8a\xba\x0d"
+                         "\x72\x41\x11\x15\x14\x72\x50\x8a"
+                         "\xd5\xec\x60\x09\xdd\x71\xcc\xb9"
+                         "\x59\x81\x65\x2d\x9e\x50\x18\xf3"
+                         "\x32\xf3\xf1\xe7\x01\x82\x1c\xad"
+                         "\x88\xa0\x21\x0c\x4b\x80\x5e\x62"
+                         "\xfc\x81\xec\x52\xaa\xe4\xa5\x86"
+                         "\xc2\xe6\x03\x11\xdc\x66\x09\x86"
+                         "\x3c\x3b\xf0\x59\x0f\xb3\xf7\x44"
+                         "\x24\xb7\x88\xc5\xfc\xc8\x77\x9f"
+                         "\x8c\x44\xc4\x11\x55\xce\x7a\xa3"
+                         "\xe0\xa2\xb8\xbf\xb5\x3d\x07\x2c"
+                         "\x32\xb6\x6c\xfc\xb4\x42\x95\x95"
+                         "\x98\x32\x81\xc4\xe7\xe2\xd9\x6a"
+                         "\x87\xf4\xf4\x1e\x74\x7c\xb5\xcd"
+                         "\x51\x45\x68\x38\x51\xdb\x30\x74"
+                         "\x11\xe0\xaa\xae\x19\x8f\x15\x55"
+                         "\xdd\x47\x4a\x35\xb9\x0c\xb4\x4e"
+                         "\xa9\xce\x2f\xfa\x8f\xc1\x8a\x5e"
+                         "\x5b\xec\xa5\x81\x3b\xb3\x43\x06"
+                         "\x24\x81\xf4\x24\xe2\x21\xfa\xcb"
+                         "\x49\xa8\xf8\xbd\x31\x4a\x5b\x2d"
+                         "\x64\x0a\x07\xf0\x80\xc9\x0d\x81"
+                         "\x14\x58\x54\x2b\xba\x22\x31\xba"
+                         "\xef\x66\xc9\x49\x69\x69\x83\x0d"
+                         "\xf2\xf9\x80\x9d\x30\x36\xfb\xe3"
+                         "\xc0\x72\x2b\xcc\x5a\x81\x2c\x5d"
+                         "\x3b\x5e\xf8\x2b\xd3\x14\x28\x73"
+                         "\xf9\x1c\x70\xe6\xd8\xbb\xac\x30"
+                         "\xf9\xd9\xa0\xe2\x33\x7c\x33\x34"
+                         "\xa5\x6a\x77\x6d\xd5\xaf\xf4\xf3"
+                         "\xc7\xb3\x0e\x83\x3d\xcb\x01\xcc"
+                         "\x81\xc0\xf9\x4a\xae\x36\x92\xf7"
+                         "\x69\x7b\x65\x01\xc3\xc8\xb8\xae"
+                         "\x16\xd8\x30\xbb\xba\x6d\x78\x6e"
+                         "\x0d\xf0\x7d\x84\xb7\x87\xda\x28"
+                         "\x7a\x18\x10\x0b\x29\xec\x29\xf3"
+                         "\xb0\x7b\xa1\x28\xbf\xbc\x2b\x2c"
+                         "\x92\x2c\x16\xfb\x02\x39\xf9\xa6"
+                         "\xa2\x15\x05\xa6\x72\x10\xbc\x62"
+                         "\x4a\x6e\xb8\xb5\x5d\x59\xae\x3c"
+                         "\x32\xd3\x68\xd7\x8e\x5a\xcd\x1b"
+                         "\xef\xf6\xa7\x5e\x10\x51\x15\x4b"
+                         "\x2c\xe3\xba\x70\x4f\x2c\xa0\x1c"
+                         "\x7b\x97\xd7\xb2\xa5\x05\x17\xcc"
+                         "\xf7\x3a\x29\x6f\xd5\x4b\xb8\x24"
+                         "\xf4\x65\x95\x12\xc0\x86\xd1\x64"
+                         "\x81\xdf\x46\x55\x0d\x22\x06\x77"
+                         "\xd8\xca\x8d\xc8\x87\xc3\xfa\xb9"
+                         "\xe1\x98\x94\xe6\x7b\xed\x65\x66"
+                         "\x0e\xc7\x25\x15\xee\x4a\xe6\x7e"
+                         "\xea\x1b\x58\xee\x96\xa0\x75\x9a"
+                         "\xa3\x00\x9e\x42\xc2\x26\x20\x8c"
+                         "\x3d\x22\x1f\x94\x3e\x74\x43\x72"
+                         "\xe9\x1d\xa6\xa1\x6c\xa7\xb8\x03"
+                         "\xdf\xb9\x7a\xaf\xe9\xe9\x3b\xfe"
+                         "\xdf\x91\xc1\x01\xa8\xba\x5d\x29"
+                         "\xa5\xe0\x98\x9b\x13\xe5\x13\x11"
+                         "\x7c\x04\x3a\xe8\x44\x7e\x78\xfc"
+                         "\xd6\x96\xa8\xbc\x7d\xc1\x89\x3d"
+                         "\x75\x64\xa9\x0e\x86\x33\xfb\x73"
+                         "\xf7\x15\xbc\x2c\x9a\x3f\x29\xce"
+                         "\x1c\x9d\x10\x4e\x85\xe1\x77\x41"
+                         "\x01\xe2\xbc\x88\xec\x81\xef\xc2"
+                         "\x6a\xed\x4f\xf7\xdf\xac\x10\x71"
+                         "\x94\xed\x71\xa4\x01\xd4\xd6\xbe"
+                         "\xfe\x3e\xc3\x92\x6a\xf2\x2b\xb5"
+                         "\xab\x15\x96\xb7\x88\x2c\xc2\xe1"
+                         "\xb0\x04\x22\xe7\x3d\xa9\xc9\x7d"
+                         "\x2c\x7c\x21\xff\x97\x86\x6b\x0c"
+                         "\x2b\x5b\xe0\xb6\x48\x74\x8f\x24"
+                         "\xef\x8e\xdd\x0f\x2a\x5f\xff\x33"
+                         "\xf4\x8e\xc5\xeb\x9c\xd7\x2a\x45"
+                         "\xf3\x50\xf1\xc0\x91\x8f\xc7\xf9"
+                         "\x97\xc1\x3c\x9c\xf4\xed\x8a\x23"
+                         "\x61\x5b\x40\x1a\x09\xee\x23\xa8"
+                         "\x7c\x7a\x96\xe1\x31\x55\x3d\x12"
+                         "\x04\x1f\x21\x78\x72\xf0\x0f\xa5"
+                         "\x80\x58\x7c\x2f\x37\xb5\x67\x24"
+                         "\x2f\xce\xf9\xf6\x86\x9f\xb3\x34"
+                         "\x0c\xfe\x0a\xaf\x27\xe6\x5e\x0a"
+                         "\x21\x44\x68\xe1\x5d\x84\x25\xae"
+                         "\x2c\x5a\x94\x66\x9a\x3f\x0e\x5a"
+                         "\xd0\x60\x2a\xd5\x3a\x4e\x2f\x40"
+                         "\x87\xe9\x27\x3e\xee\x92\xe1\x07"
+                         "\x22\x43\x52\xed\x67\x49\x13\xdd"
+                         "\x68\xd7\x54\xc2\x76\x72\x7e\x75"
+                         "\xaf\x24\x98\x5c\xe8\x22\xaa\x35"
+                         "\x0f\x9a\x1c\x4c\x0b\x43\x68\x99"
+                         "\x45\xdd\xbf\x82\xa5\x6f\x0a\xef"
+                         "\x44\x90\x85\xe7\x57\x23\x22\x41"
+                         "\x2e\xda\x24\x28\x65\x7f\x96\x85"
+                         "\x9f\x4b\x0d\x43\xb9\xa8\xbd\x84"
+                         "\xad\x0b\x09\xcc\x2c\x4a\x0c\xec"
+                         "\x71\x58\xba\xf1\xfc\x49\x4c\xca"
+                         "\x5c\x5d\xb2\x77\x0c\x99\xae\x1c"
+                         "\xce\x70\x05\x5b\x73\x6b\x7c\x28"
+                         "\x3b\xeb\x21\x3f\xa3\x71\xe1\x6a"
+                         "\xf4\x87\xd0\xbf\x73\xaa\x0b\x0b"
+                         "\xed\x70\xb3\xd4\xa3\xca\x76\x3a"
+                         "\xdb\xfa\xd8\x08\x95\xec\xac\x59"
+                         "\xd0\x79\x90\xc2\x33\x7b\xcc\x28"
+                         "\x65\xb6\x5f\x92\xc4\xac\x23\x40"
+                         "\xd1\x20\x44\x1f\xd7\x29\xab\x46"
+                         "\x79\x32\xc6\x8f\x79\xe5\xaa\x2c"
+                         "\xa6\x76\x70\x3a\x9e\x46\x3f\x8c"
+                         "\x1a\x89\x32\x28\x61\x5c\xcf\x93"
+                         "\x1e\xde\x9e\x98\xbe\x06\x30\x23"
+                         "\xc4\x8b\xda\x1c\xd1\x67\x46\x93"
+                         "\x9d\x41\xa2\x8c\x03\x22\xbd\x55"
+                         "\x7e\x91\x51\x13\xdc\xcf\x5c\x1e"
+                         "\xcb\x5d\xfb\x14\x16\x1a\x44\x56"
+                         "\x27\x77\xfd\xed\x7d\xbd\xd1\x49"
+                         "\x7f\x0d\xc3\x59\x48\x6b\x3c\x02"
+                         "\x6b\xb5\xd0\x83\xd5\x81\x29\xe7"
+                         "\xe0\xc9\x36\x23\x8d\x41\x33\x77"
+                         "\xff\x5f\x54\xde\x4d\x3f\xd2\x4e"
+                         "\xb6\x4d\xdd\x85\xf8\x9b\x20\x7d"
+                         "\x39\x27\x68\x63\xd3\x8e\x61\x39"
+                         "\xfa\xe1\xc3\x04\x74\x27\x5a\x34"
+                         "\x7f\xec\x59\x2d\xc5\x6e\x54\x23"
+                         "\xf5\x7b\x4b\xbe\x58\x2b\xf2\x81"
+                         "\x93\x63\xcc\x13\xd9\x90\xbb\x6a"
+                         "\x41\x03\x8d\x95\xeb\xbb\x5d\x06"
+                         "\x38\x4c\x0e\xd6\xa9\x5b\x84\x97"
+                         "\x3e\x64\x72\xe9\x96\x07\x0f\x73"
+                         "\x6e\xc6\x3b\x32\xbe\xac\x13\x14"
+                         "\xd0\x0a\x17\x5f\xb9\x9c\x3e\x34"
+                         "\xd9\xec\xd6\x8f\x89\xbf\x1e\xd3"
+                         "\xda\x80\xb2\x29\xff\x28\x96\xb3"
+                         "\x46\x50\x5b\x15\x80\x97\xee\x1f"
+                         "\x6c\xd8\xe8\xe0\xbd\x09\xe7\x20"
+                         "\x8c\x23\x8e\xd9\xbb\x92\xfa\x82"
+                         "\xaa\x0f\xb5\xf8\x78\x60\x11\xf0",
+               .ksize  = 1088,
+               .plaintext      = "\x0b\xb2\x31\x2d\xad\xfe\xce\xf9"
+                         "\xec\x5d\x3d\x64\x5f\x3f\x75\x43"
+                         "\x05\x5b\x97",
+               .psize  = 19,
+               .digest = "\x5f\x02\xae\x65\x6c\x13\x21\x67"
+                         "\x77\x9e\xc4\x43\x58\x68\xde\x8f",
        }, {
                .key    = "\x65\x4d\xe3\xf8\xd2\x4c\xac\x28"
                          "\x68\xf5\xb3\x81\x71\x4b\xa1\xfa"