diff mbox

[2/2] crypto: testmgr: add test cases for CRC32

Message ID 1430730017-3712-2-git-send-email-ard.biesheuvel@linaro.org
State Accepted
Commit ebb3472f5cc9d4cffe3968dfd816978ab2dd06d6
Headers show

Commit Message

Ard Biesheuvel May 4, 2015, 9 a.m. UTC
This adds a couple of test cases for CRC32 (not CRC32c) to
ensure that the generic and arch specific implementations
are in sync.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
 crypto/testmgr.c |   9 ++
 crypto/testmgr.h | 434 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 443 insertions(+)

Comments

Steve Capper May 5, 2015, 10:12 a.m. UTC | #1
On 4 May 2015 at 10:00, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:
> This adds a couple of test cases for CRC32 (not CRC32c) to
> ensure that the generic and arch specific implementations
> are in sync.
>
> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Acked-by: Steve Capper <steve.capper@linaro.org>

> ---
>  crypto/testmgr.c |   9 ++
>  crypto/testmgr.h | 434 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 443 insertions(+)
>
> diff --git a/crypto/testmgr.c b/crypto/testmgr.c
> index f9bce3d7ee7f..2ad2a0e442ce 100644
> --- a/crypto/testmgr.c
> +++ b/crypto/testmgr.c
> @@ -2318,6 +2318,15 @@ static const struct alg_test_desc alg_test_descs[] = {
>                 .alg = "compress_null",
>                 .test = alg_test_null,
>         }, {
> +               .alg = "crc32",
> +               .test = alg_test_hash,
> +               .suite = {
> +                       .hash = {
> +                               .vecs = crc32_tv_template,
> +                               .count = CRC32_TEST_VECTORS
> +                       }
> +               }
> +       }, {
>                 .alg = "crc32c",
>                 .test = alg_test_crc32c,
>                 .fips_allowed = 1,
> diff --git a/crypto/testmgr.h b/crypto/testmgr.h
> index 62e2485bb428..dd4ede5c833c 100644
> --- a/crypto/testmgr.h
> +++ b/crypto/testmgr.h
> @@ -28946,6 +28946,440 @@ static struct hash_testvec michael_mic_tv_template[] = {
>  };
>
>  /*
> + * CRC32 test vectors
> + */
> +#define CRC32_TEST_VECTORS 14
> +
> +static struct hash_testvec crc32_tv_template[] = {
> +       {
> +               .key = "\x87\xa9\xcb\xed",
> +               .ksize = 4,
> +               .psize = 0,
> +               .digest = "\x87\xa9\xcb\xed",
> +       },
> +       {
> +               .key = "\xff\xff\xff\xff",
> +               .ksize = 4,
> +               .plaintext = "\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\x26\x27\x28",
> +               .psize = 40,
> +               .digest = "\x3a\xdf\x4b\xb0",
> +       },
> +       {
> +               .key = "\xff\xff\xff\xff",
> +               .ksize = 4,
> +               .plaintext = "\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30"
> +                            "\x31\x32\x33\x34\x35\x36\x37\x38"
> +                            "\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40"
> +                            "\x41\x42\x43\x44\x45\x46\x47\x48"
> +                            "\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50",
> +               .psize = 40,
> +               .digest = "\xa9\x7a\x7f\x7b",
> +       },
> +       {
> +               .key = "\xff\xff\xff\xff",
> +               .ksize = 4,
> +               .plaintext = "\x51\x52\x53\x54\x55\x56\x57\x58"
> +                            "\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60"
> +                            "\x61\x62\x63\x64\x65\x66\x67\x68"
> +                            "\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70"
> +                            "\x71\x72\x73\x74\x75\x76\x77\x78",
> +               .psize = 40,
> +               .digest = "\xba\xd3\xf8\x1c",
> +       },
> +       {
> +               .key = "\xff\xff\xff\xff",
> +               .ksize = 4,
> +               .plaintext = "\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80"
> +                            "\x81\x82\x83\x84\x85\x86\x87\x88"
> +                            "\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90"
> +                            "\x91\x92\x93\x94\x95\x96\x97\x98"
> +                            "\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0",
> +               .psize = 40,
> +               .digest = "\xa8\xa9\xc2\x02",
> +       },
> +       {
> +               .key = "\xff\xff\xff\xff",
> +               .ksize = 4,
> +               .plaintext = "\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8"
> +                            "\xa9\xaa\xab\xac\xad\xae\xaf\xb0"
> +                            "\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8"
> +                            "\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0"
> +                            "\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8",
> +               .psize = 40,
> +               .digest = "\x27\xf0\x57\xe2",
> +       },
> +       {
> +               .key = "\xff\xff\xff\xff",
> +               .ksize = 4,
> +               .plaintext = "\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0"
> +                            "\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8"
> +                            "\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0"
> +                            "\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8"
> +                            "\xe9\xea\xeb\xec\xed\xee\xef\xf0",
> +               .psize = 40,
> +               .digest = "\x49\x78\x10\x08",
> +       },
> +       {
> +               .key = "\x80\xea\xd3\xf1",
> +               .ksize = 4,
> +               .plaintext = "\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30"
> +                            "\x31\x32\x33\x34\x35\x36\x37\x38"
> +                            "\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40"
> +                            "\x41\x42\x43\x44\x45\x46\x47\x48"
> +                            "\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50",
> +               .psize = 40,
> +               .digest = "\x9a\xb1\xdc\xf0",
> +       },
> +       {
> +               .key = "\xf3\x4a\x1d\x5d",
> +               .ksize = 4,
> +               .plaintext = "\x51\x52\x53\x54\x55\x56\x57\x58"
> +                            "\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60"
> +                            "\x61\x62\x63\x64\x65\x66\x67\x68"
> +                            "\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70"
> +                            "\x71\x72\x73\x74\x75\x76\x77\x78",
> +               .psize = 40,
> +               .digest = "\xb4\x97\xcc\xd4",
> +       },
> +       {
> +               .key = "\x2e\x80\x04\x59",
> +               .ksize = 4,
> +               .plaintext = "\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80"
> +                            "\x81\x82\x83\x84\x85\x86\x87\x88"
> +                            "\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90"
> +                            "\x91\x92\x93\x94\x95\x96\x97\x98"
> +                            "\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0",
> +               .psize = 40,
> +               .digest = "\x67\x9b\xfa\x79",
> +       },
> +       {
> +               .key = "\xa6\xcc\x19\x85",
> +               .ksize = 4,
> +               .plaintext = "\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8"
> +                            "\xa9\xaa\xab\xac\xad\xae\xaf\xb0"
> +                            "\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8"
> +                            "\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0"
> +                            "\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8",
> +               .psize = 40,
> +               .digest = "\x24\xb5\x16\xef",
> +       },
> +       {
> +               .key = "\x41\xfc\xfe\x2d",
> +               .ksize = 4,
> +               .plaintext = "\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0"
> +                            "\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8"
> +                            "\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0"
> +                            "\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8"
> +                            "\xe9\xea\xeb\xec\xed\xee\xef\xf0",
> +               .psize = 40,
> +               .digest = "\x15\x94\x80\x39",
> +       },
> +       {
> +               .key = "\xff\xff\xff\xff",
> +               .ksize = 4,
> +               .plaintext = "\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\x26\x27\x28"
> +                            "\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30"
> +                            "\x31\x32\x33\x34\x35\x36\x37\x38"
> +                            "\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40"
> +                            "\x41\x42\x43\x44\x45\x46\x47\x48"
> +                            "\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50"
> +                            "\x51\x52\x53\x54\x55\x56\x57\x58"
> +                            "\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60"
> +                            "\x61\x62\x63\x64\x65\x66\x67\x68"
> +                            "\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70"
> +                            "\x71\x72\x73\x74\x75\x76\x77\x78"
> +                            "\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80"
> +                            "\x81\x82\x83\x84\x85\x86\x87\x88"
> +                            "\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90"
> +                            "\x91\x92\x93\x94\x95\x96\x97\x98"
> +                            "\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0"
> +                            "\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8"
> +                            "\xa9\xaa\xab\xac\xad\xae\xaf\xb0"
> +                            "\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8"
> +                            "\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0"
> +                            "\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8"
> +                            "\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0"
> +                            "\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8"
> +                            "\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0"
> +                            "\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8"
> +                            "\xe9\xea\xeb\xec\xed\xee\xef\xf0",
> +               .psize = 240,
> +               .digest = "\x6c\xc6\x56\xde",
> +               .np = 2,
> +               .tap = { 31, 209 }
> +       }, {
> +               .key = "\xff\xff\xff\xff",
> +               .ksize = 4,
> +               .plaintext =    "\x6e\x05\x79\x10\xa7\x1b\xb2\x49"
> +                               "\xe0\x54\xeb\x82\x19\x8d\x24\xbb"
> +                               "\x2f\xc6\x5d\xf4\x68\xff\x96\x0a"
> +                               "\xa1\x38\xcf\x43\xda\x71\x08\x7c"
> +                               "\x13\xaa\x1e\xb5\x4c\xe3\x57\xee"
> +                               "\x85\x1c\x90\x27\xbe\x32\xc9\x60"
> +                               "\xf7\x6b\x02\x99\x0d\xa4\x3b\xd2"
> +                               "\x46\xdd\x74\x0b\x7f\x16\xad\x21"
> +                               "\xb8\x4f\xe6\x5a\xf1\x88\x1f\x93"
> +                               "\x2a\xc1\x35\xcc\x63\xfa\x6e\x05"
> +                               "\x9c\x10\xa7\x3e\xd5\x49\xe0\x77"
> +                               "\x0e\x82\x19\xb0\x24\xbb\x52\xe9"
> +                               "\x5d\xf4\x8b\x22\x96\x2d\xc4\x38"
> +                               "\xcf\x66\xfd\x71\x08\x9f\x13\xaa"
> +                               "\x41\xd8\x4c\xe3\x7a\x11\x85\x1c"
> +                               "\xb3\x27\xbe\x55\xec\x60\xf7\x8e"
> +                               "\x02\x99\x30\xc7\x3b\xd2\x69\x00"
> +                               "\x74\x0b\xa2\x16\xad\x44\xdb\x4f"
> +                               "\xe6\x7d\x14\x88\x1f\xb6\x2a\xc1"
> +                               "\x58\xef\x63\xfa\x91\x05\x9c\x33"
> +                               "\xca\x3e\xd5\x6c\x03\x77\x0e\xa5"
> +                               "\x19\xb0\x47\xde\x52\xe9\x80\x17"
> +                               "\x8b\x22\xb9\x2d\xc4\x5b\xf2\x66"
> +                               "\xfd\x94\x08\x9f\x36\xcd\x41\xd8"
> +                               "\x6f\x06\x7a\x11\xa8\x1c\xb3\x4a"
> +                               "\xe1\x55\xec\x83\x1a\x8e\x25\xbc"
> +                               "\x30\xc7\x5e\xf5\x69\x00\x97\x0b"
> +                               "\xa2\x39\xd0\x44\xdb\x72\x09\x7d"
> +                               "\x14\xab\x1f\xb6\x4d\xe4\x58\xef"
> +                               "\x86\x1d\x91\x28\xbf\x33\xca\x61"
> +                               "\xf8\x6c\x03\x9a\x0e\xa5\x3c\xd3"
> +                               "\x47\xde\x75\x0c\x80\x17\xae\x22"
> +                               "\xb9\x50\xe7\x5b\xf2\x89\x20\x94"
> +                               "\x2b\xc2\x36\xcd\x64\xfb\x6f\x06"
> +                               "\x9d\x11\xa8\x3f\xd6\x4a\xe1\x78"
> +                               "\x0f\x83\x1a\xb1\x25\xbc\x53\xea"
> +                               "\x5e\xf5\x8c\x00\x97\x2e\xc5\x39"
> +                               "\xd0\x67\xfe\x72\x09\xa0\x14\xab"
> +                               "\x42\xd9\x4d\xe4\x7b\x12\x86\x1d"
> +                               "\xb4\x28\xbf\x56\xed\x61\xf8\x8f"
> +                               "\x03\x9a\x31\xc8\x3c\xd3\x6a\x01"
> +                               "\x75\x0c\xa3\x17\xae\x45\xdc\x50"
> +                               "\xe7\x7e\x15\x89\x20\xb7\x2b\xc2"
> +                               "\x59\xf0\x64\xfb\x92\x06\x9d\x34"
> +                               "\xcb\x3f\xd6\x6d\x04\x78\x0f\xa6"
> +                               "\x1a\xb1\x48\xdf\x53\xea\x81\x18"
> +                               "\x8c\x23\xba\x2e\xc5\x5c\xf3\x67"
> +                               "\xfe\x95\x09\xa0\x37\xce\x42\xd9"
> +                               "\x70\x07\x7b\x12\xa9\x1d\xb4\x4b"
> +                               "\xe2\x56\xed\x84\x1b\x8f\x26\xbd"
> +                               "\x31\xc8\x5f\xf6\x6a\x01\x98\x0c"
> +                               "\xa3\x3a\xd1\x45\xdc\x73\x0a\x7e"
> +                               "\x15\xac\x20\xb7\x4e\xe5\x59\xf0"
> +                               "\x87\x1e\x92\x29\xc0\x34\xcb\x62"
> +                               "\xf9\x6d\x04\x9b\x0f\xa6\x3d\xd4"
> +                               "\x48\xdf\x76\x0d\x81\x18\xaf\x23"
> +                               "\xba\x51\xe8\x5c\xf3\x8a\x21\x95"
> +                               "\x2c\xc3\x37\xce\x65\xfc\x70\x07"
> +                               "\x9e\x12\xa9\x40\xd7\x4b\xe2\x79"
> +                               "\x10\x84\x1b\xb2\x26\xbd\x54\xeb"
> +                               "\x5f\xf6\x8d\x01\x98\x2f\xc6\x3a"
> +                               "\xd1\x68\xff\x73\x0a\xa1\x15\xac"
> +                               "\x43\xda\x4e\xe5\x7c\x13\x87\x1e"
> +                               "\xb5\x29\xc0\x57\xee\x62\xf9\x90"
> +                               "\x04\x9b\x32\xc9\x3d\xd4\x6b\x02"
> +                               "\x76\x0d\xa4\x18\xaf\x46\xdd\x51"
> +                               "\xe8\x7f\x16\x8a\x21\xb8\x2c\xc3"
> +                               "\x5a\xf1\x65\xfc\x93\x07\x9e\x35"
> +                               "\xcc\x40\xd7\x6e\x05\x79\x10\xa7"
> +                               "\x1b\xb2\x49\xe0\x54\xeb\x82\x19"
> +                               "\x8d\x24\xbb\x2f\xc6\x5d\xf4\x68"
> +                               "\xff\x96\x0a\xa1\x38\xcf\x43\xda"
> +                               "\x71\x08\x7c\x13\xaa\x1e\xb5\x4c"
> +                               "\xe3\x57\xee\x85\x1c\x90\x27\xbe"
> +                               "\x32\xc9\x60\xf7\x6b\x02\x99\x0d"
> +                               "\xa4\x3b\xd2\x46\xdd\x74\x0b\x7f"
> +                               "\x16\xad\x21\xb8\x4f\xe6\x5a\xf1"
> +                               "\x88\x1f\x93\x2a\xc1\x35\xcc\x63"
> +                               "\xfa\x6e\x05\x9c\x10\xa7\x3e\xd5"
> +                               "\x49\xe0\x77\x0e\x82\x19\xb0\x24"
> +                               "\xbb\x52\xe9\x5d\xf4\x8b\x22\x96"
> +                               "\x2d\xc4\x38\xcf\x66\xfd\x71\x08"
> +                               "\x9f\x13\xaa\x41\xd8\x4c\xe3\x7a"
> +                               "\x11\x85\x1c\xb3\x27\xbe\x55\xec"
> +                               "\x60\xf7\x8e\x02\x99\x30\xc7\x3b"
> +                               "\xd2\x69\x00\x74\x0b\xa2\x16\xad"
> +                               "\x44\xdb\x4f\xe6\x7d\x14\x88\x1f"
> +                               "\xb6\x2a\xc1\x58\xef\x63\xfa\x91"
> +                               "\x05\x9c\x33\xca\x3e\xd5\x6c\x03"
> +                               "\x77\x0e\xa5\x19\xb0\x47\xde\x52"
> +                               "\xe9\x80\x17\x8b\x22\xb9\x2d\xc4"
> +                               "\x5b\xf2\x66\xfd\x94\x08\x9f\x36"
> +                               "\xcd\x41\xd8\x6f\x06\x7a\x11\xa8"
> +                               "\x1c\xb3\x4a\xe1\x55\xec\x83\x1a"
> +                               "\x8e\x25\xbc\x30\xc7\x5e\xf5\x69"
> +                               "\x00\x97\x0b\xa2\x39\xd0\x44\xdb"
> +                               "\x72\x09\x7d\x14\xab\x1f\xb6\x4d"
> +                               "\xe4\x58\xef\x86\x1d\x91\x28\xbf"
> +                               "\x33\xca\x61\xf8\x6c\x03\x9a\x0e"
> +                               "\xa5\x3c\xd3\x47\xde\x75\x0c\x80"
> +                               "\x17\xae\x22\xb9\x50\xe7\x5b\xf2"
> +                               "\x89\x20\x94\x2b\xc2\x36\xcd\x64"
> +                               "\xfb\x6f\x06\x9d\x11\xa8\x3f\xd6"
> +                               "\x4a\xe1\x78\x0f\x83\x1a\xb1\x25"
> +                               "\xbc\x53\xea\x5e\xf5\x8c\x00\x97"
> +                               "\x2e\xc5\x39\xd0\x67\xfe\x72\x09"
> +                               "\xa0\x14\xab\x42\xd9\x4d\xe4\x7b"
> +                               "\x12\x86\x1d\xb4\x28\xbf\x56\xed"
> +                               "\x61\xf8\x8f\x03\x9a\x31\xc8\x3c"
> +                               "\xd3\x6a\x01\x75\x0c\xa3\x17\xae"
> +                               "\x45\xdc\x50\xe7\x7e\x15\x89\x20"
> +                               "\xb7\x2b\xc2\x59\xf0\x64\xfb\x92"
> +                               "\x06\x9d\x34\xcb\x3f\xd6\x6d\x04"
> +                               "\x78\x0f\xa6\x1a\xb1\x48\xdf\x53"
> +                               "\xea\x81\x18\x8c\x23\xba\x2e\xc5"
> +                               "\x5c\xf3\x67\xfe\x95\x09\xa0\x37"
> +                               "\xce\x42\xd9\x70\x07\x7b\x12\xa9"
> +                               "\x1d\xb4\x4b\xe2\x56\xed\x84\x1b"
> +                               "\x8f\x26\xbd\x31\xc8\x5f\xf6\x6a"
> +                               "\x01\x98\x0c\xa3\x3a\xd1\x45\xdc"
> +                               "\x73\x0a\x7e\x15\xac\x20\xb7\x4e"
> +                               "\xe5\x59\xf0\x87\x1e\x92\x29\xc0"
> +                               "\x34\xcb\x62\xf9\x6d\x04\x9b\x0f"
> +                               "\xa6\x3d\xd4\x48\xdf\x76\x0d\x81"
> +                               "\x18\xaf\x23\xba\x51\xe8\x5c\xf3"
> +                               "\x8a\x21\x95\x2c\xc3\x37\xce\x65"
> +                               "\xfc\x70\x07\x9e\x12\xa9\x40\xd7"
> +                               "\x4b\xe2\x79\x10\x84\x1b\xb2\x26"
> +                               "\xbd\x54\xeb\x5f\xf6\x8d\x01\x98"
> +                               "\x2f\xc6\x3a\xd1\x68\xff\x73\x0a"
> +                               "\xa1\x15\xac\x43\xda\x4e\xe5\x7c"
> +                               "\x13\x87\x1e\xb5\x29\xc0\x57\xee"
> +                               "\x62\xf9\x90\x04\x9b\x32\xc9\x3d"
> +                               "\xd4\x6b\x02\x76\x0d\xa4\x18\xaf"
> +                               "\x46\xdd\x51\xe8\x7f\x16\x8a\x21"
> +                               "\xb8\x2c\xc3\x5a\xf1\x65\xfc\x93"
> +                               "\x07\x9e\x35\xcc\x40\xd7\x6e\x05"
> +                               "\x79\x10\xa7\x1b\xb2\x49\xe0\x54"
> +                               "\xeb\x82\x19\x8d\x24\xbb\x2f\xc6"
> +                               "\x5d\xf4\x68\xff\x96\x0a\xa1\x38"
> +                               "\xcf\x43\xda\x71\x08\x7c\x13\xaa"
> +                               "\x1e\xb5\x4c\xe3\x57\xee\x85\x1c"
> +                               "\x90\x27\xbe\x32\xc9\x60\xf7\x6b"
> +                               "\x02\x99\x0d\xa4\x3b\xd2\x46\xdd"
> +                               "\x74\x0b\x7f\x16\xad\x21\xb8\x4f"
> +                               "\xe6\x5a\xf1\x88\x1f\x93\x2a\xc1"
> +                               "\x35\xcc\x63\xfa\x6e\x05\x9c\x10"
> +                               "\xa7\x3e\xd5\x49\xe0\x77\x0e\x82"
> +                               "\x19\xb0\x24\xbb\x52\xe9\x5d\xf4"
> +                               "\x8b\x22\x96\x2d\xc4\x38\xcf\x66"
> +                               "\xfd\x71\x08\x9f\x13\xaa\x41\xd8"
> +                               "\x4c\xe3\x7a\x11\x85\x1c\xb3\x27"
> +                               "\xbe\x55\xec\x60\xf7\x8e\x02\x99"
> +                               "\x30\xc7\x3b\xd2\x69\x00\x74\x0b"
> +                               "\xa2\x16\xad\x44\xdb\x4f\xe6\x7d"
> +                               "\x14\x88\x1f\xb6\x2a\xc1\x58\xef"
> +                               "\x63\xfa\x91\x05\x9c\x33\xca\x3e"
> +                               "\xd5\x6c\x03\x77\x0e\xa5\x19\xb0"
> +                               "\x47\xde\x52\xe9\x80\x17\x8b\x22"
> +                               "\xb9\x2d\xc4\x5b\xf2\x66\xfd\x94"
> +                               "\x08\x9f\x36\xcd\x41\xd8\x6f\x06"
> +                               "\x7a\x11\xa8\x1c\xb3\x4a\xe1\x55"
> +                               "\xec\x83\x1a\x8e\x25\xbc\x30\xc7"
> +                               "\x5e\xf5\x69\x00\x97\x0b\xa2\x39"
> +                               "\xd0\x44\xdb\x72\x09\x7d\x14\xab"
> +                               "\x1f\xb6\x4d\xe4\x58\xef\x86\x1d"
> +                               "\x91\x28\xbf\x33\xca\x61\xf8\x6c"
> +                               "\x03\x9a\x0e\xa5\x3c\xd3\x47\xde"
> +                               "\x75\x0c\x80\x17\xae\x22\xb9\x50"
> +                               "\xe7\x5b\xf2\x89\x20\x94\x2b\xc2"
> +                               "\x36\xcd\x64\xfb\x6f\x06\x9d\x11"
> +                               "\xa8\x3f\xd6\x4a\xe1\x78\x0f\x83"
> +                               "\x1a\xb1\x25\xbc\x53\xea\x5e\xf5"
> +                               "\x8c\x00\x97\x2e\xc5\x39\xd0\x67"
> +                               "\xfe\x72\x09\xa0\x14\xab\x42\xd9"
> +                               "\x4d\xe4\x7b\x12\x86\x1d\xb4\x28"
> +                               "\xbf\x56\xed\x61\xf8\x8f\x03\x9a"
> +                               "\x31\xc8\x3c\xd3\x6a\x01\x75\x0c"
> +                               "\xa3\x17\xae\x45\xdc\x50\xe7\x7e"
> +                               "\x15\x89\x20\xb7\x2b\xc2\x59\xf0"
> +                               "\x64\xfb\x92\x06\x9d\x34\xcb\x3f"
> +                               "\xd6\x6d\x04\x78\x0f\xa6\x1a\xb1"
> +                               "\x48\xdf\x53\xea\x81\x18\x8c\x23"
> +                               "\xba\x2e\xc5\x5c\xf3\x67\xfe\x95"
> +                               "\x09\xa0\x37\xce\x42\xd9\x70\x07"
> +                               "\x7b\x12\xa9\x1d\xb4\x4b\xe2\x56"
> +                               "\xed\x84\x1b\x8f\x26\xbd\x31\xc8"
> +                               "\x5f\xf6\x6a\x01\x98\x0c\xa3\x3a"
> +                               "\xd1\x45\xdc\x73\x0a\x7e\x15\xac"
> +                               "\x20\xb7\x4e\xe5\x59\xf0\x87\x1e"
> +                               "\x92\x29\xc0\x34\xcb\x62\xf9\x6d"
> +                               "\x04\x9b\x0f\xa6\x3d\xd4\x48\xdf"
> +                               "\x76\x0d\x81\x18\xaf\x23\xba\x51"
> +                               "\xe8\x5c\xf3\x8a\x21\x95\x2c\xc3"
> +                               "\x37\xce\x65\xfc\x70\x07\x9e\x12"
> +                               "\xa9\x40\xd7\x4b\xe2\x79\x10\x84"
> +                               "\x1b\xb2\x26\xbd\x54\xeb\x5f\xf6"
> +                               "\x8d\x01\x98\x2f\xc6\x3a\xd1\x68"
> +                               "\xff\x73\x0a\xa1\x15\xac\x43\xda"
> +                               "\x4e\xe5\x7c\x13\x87\x1e\xb5\x29"
> +                               "\xc0\x57\xee\x62\xf9\x90\x04\x9b"
> +                               "\x32\xc9\x3d\xd4\x6b\x02\x76\x0d"
> +                               "\xa4\x18\xaf\x46\xdd\x51\xe8\x7f"
> +                               "\x16\x8a\x21\xb8\x2c\xc3\x5a\xf1"
> +                               "\x65\xfc\x93\x07\x9e\x35\xcc\x40"
> +                               "\xd7\x6e\x05\x79\x10\xa7\x1b\xb2"
> +                               "\x49\xe0\x54\xeb\x82\x19\x8d\x24"
> +                               "\xbb\x2f\xc6\x5d\xf4\x68\xff\x96"
> +                               "\x0a\xa1\x38\xcf\x43\xda\x71\x08"
> +                               "\x7c\x13\xaa\x1e\xb5\x4c\xe3\x57"
> +                               "\xee\x85\x1c\x90\x27\xbe\x32\xc9"
> +                               "\x60\xf7\x6b\x02\x99\x0d\xa4\x3b"
> +                               "\xd2\x46\xdd\x74\x0b\x7f\x16\xad"
> +                               "\x21\xb8\x4f\xe6\x5a\xf1\x88\x1f"
> +                               "\x93\x2a\xc1\x35\xcc\x63\xfa\x6e"
> +                               "\x05\x9c\x10\xa7\x3e\xd5\x49\xe0"
> +                               "\x77\x0e\x82\x19\xb0\x24\xbb\x52"
> +                               "\xe9\x5d\xf4\x8b\x22\x96\x2d\xc4"
> +                               "\x38\xcf\x66\xfd\x71\x08\x9f\x13"
> +                               "\xaa\x41\xd8\x4c\xe3\x7a\x11\x85"
> +                               "\x1c\xb3\x27\xbe\x55\xec\x60\xf7"
> +                               "\x8e\x02\x99\x30\xc7\x3b\xd2\x69"
> +                               "\x00\x74\x0b\xa2\x16\xad\x44\xdb"
> +                               "\x4f\xe6\x7d\x14\x88\x1f\xb6\x2a"
> +                               "\xc1\x58\xef\x63\xfa\x91\x05\x9c"
> +                               "\x33\xca\x3e\xd5\x6c\x03\x77\x0e"
> +                               "\xa5\x19\xb0\x47\xde\x52\xe9\x80"
> +                               "\x17\x8b\x22\xb9\x2d\xc4\x5b\xf2"
> +                               "\x66\xfd\x94\x08\x9f\x36\xcd\x41"
> +                               "\xd8\x6f\x06\x7a\x11\xa8\x1c\xb3"
> +                               "\x4a\xe1\x55\xec\x83\x1a\x8e\x25"
> +                               "\xbc\x30\xc7\x5e\xf5\x69\x00\x97"
> +                               "\x0b\xa2\x39\xd0\x44\xdb\x72\x09"
> +                               "\x7d\x14\xab\x1f\xb6\x4d\xe4\x58"
> +                               "\xef\x86\x1d\x91\x28\xbf\x33\xca"
> +                               "\x61\xf8\x6c\x03\x9a\x0e\xa5\x3c"
> +                               "\xd3\x47\xde\x75\x0c\x80\x17\xae"
> +                               "\x22\xb9\x50\xe7\x5b\xf2\x89\x20"
> +                               "\x94\x2b\xc2\x36\xcd\x64\xfb\x6f"
> +                               "\x06\x9d\x11\xa8\x3f\xd6\x4a\xe1"
> +                               "\x78\x0f\x83\x1a\xb1\x25\xbc\x53"
> +                               "\xea\x5e\xf5\x8c\x00\x97\x2e\xc5"
> +                               "\x39\xd0\x67\xfe\x72\x09\xa0\x14"
> +                               "\xab\x42\xd9\x4d\xe4\x7b\x12\x86"
> +                               "\x1d\xb4\x28\xbf\x56\xed\x61\xf8"
> +                               "\x8f\x03\x9a\x31\xc8\x3c\xd3\x6a"
> +                               "\x01\x75\x0c\xa3\x17\xae\x45\xdc"
> +                               "\x50\xe7\x7e\x15\x89\x20\xb7\x2b"
> +                               "\xc2\x59\xf0\x64\xfb\x92\x06\x9d"
> +                               "\x34\xcb\x3f\xd6\x6d\x04\x78\x0f"
> +                               "\xa6\x1a\xb1\x48\xdf\x53\xea\x81"
> +                               "\x18\x8c\x23\xba\x2e\xc5\x5c\xf3"
> +                               "\x67\xfe\x95\x09\xa0\x37\xce\x42"
> +                               "\xd9\x70\x07\x7b\x12\xa9\x1d\xb4"
> +                               "\x4b\xe2\x56\xed\x84\x1b\x8f\x26"
> +                               "\xbd\x31\xc8\x5f\xf6\x6a\x01\x98",
> +               .psize = 2048,
> +               .digest = "\xfb\x3a\x7a\xda",
> +       }
> +};
> +
> +/*
>   * CRC32C test vectors
>   */
>  #define CRC32C_TEST_VECTORS 15
> --
> 1.9.1
>
--
To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/crypto/testmgr.c b/crypto/testmgr.c
index f9bce3d7ee7f..2ad2a0e442ce 100644
--- a/crypto/testmgr.c
+++ b/crypto/testmgr.c
@@ -2318,6 +2318,15 @@  static const struct alg_test_desc alg_test_descs[] = {
 		.alg = "compress_null",
 		.test = alg_test_null,
 	}, {
+		.alg = "crc32",
+		.test = alg_test_hash,
+		.suite = {
+			.hash = {
+				.vecs = crc32_tv_template,
+				.count = CRC32_TEST_VECTORS
+			}
+		}
+	}, {
 		.alg = "crc32c",
 		.test = alg_test_crc32c,
 		.fips_allowed = 1,
diff --git a/crypto/testmgr.h b/crypto/testmgr.h
index 62e2485bb428..dd4ede5c833c 100644
--- a/crypto/testmgr.h
+++ b/crypto/testmgr.h
@@ -28946,6 +28946,440 @@  static struct hash_testvec michael_mic_tv_template[] = {
 };
 
 /*
+ * CRC32 test vectors
+ */
+#define CRC32_TEST_VECTORS 14
+
+static struct hash_testvec crc32_tv_template[] = {
+	{
+		.key = "\x87\xa9\xcb\xed",
+		.ksize = 4,
+		.psize = 0,
+		.digest = "\x87\xa9\xcb\xed",
+	},
+	{
+		.key = "\xff\xff\xff\xff",
+		.ksize = 4,
+		.plaintext = "\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\x26\x27\x28",
+		.psize = 40,
+		.digest = "\x3a\xdf\x4b\xb0",
+	},
+	{
+		.key = "\xff\xff\xff\xff",
+		.ksize = 4,
+		.plaintext = "\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30"
+			     "\x31\x32\x33\x34\x35\x36\x37\x38"
+			     "\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40"
+			     "\x41\x42\x43\x44\x45\x46\x47\x48"
+			     "\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50",
+		.psize = 40,
+		.digest = "\xa9\x7a\x7f\x7b",
+	},
+	{
+		.key = "\xff\xff\xff\xff",
+		.ksize = 4,
+		.plaintext = "\x51\x52\x53\x54\x55\x56\x57\x58"
+			     "\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60"
+			     "\x61\x62\x63\x64\x65\x66\x67\x68"
+			     "\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70"
+			     "\x71\x72\x73\x74\x75\x76\x77\x78",
+		.psize = 40,
+		.digest = "\xba\xd3\xf8\x1c",
+	},
+	{
+		.key = "\xff\xff\xff\xff",
+		.ksize = 4,
+		.plaintext = "\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80"
+			     "\x81\x82\x83\x84\x85\x86\x87\x88"
+			     "\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90"
+			     "\x91\x92\x93\x94\x95\x96\x97\x98"
+			     "\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0",
+		.psize = 40,
+		.digest = "\xa8\xa9\xc2\x02",
+	},
+	{
+		.key = "\xff\xff\xff\xff",
+		.ksize = 4,
+		.plaintext = "\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8"
+			     "\xa9\xaa\xab\xac\xad\xae\xaf\xb0"
+			     "\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8"
+			     "\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0"
+			     "\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8",
+		.psize = 40,
+		.digest = "\x27\xf0\x57\xe2",
+	},
+	{
+		.key = "\xff\xff\xff\xff",
+		.ksize = 4,
+		.plaintext = "\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0"
+			     "\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8"
+			     "\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0"
+			     "\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8"
+			     "\xe9\xea\xeb\xec\xed\xee\xef\xf0",
+		.psize = 40,
+		.digest = "\x49\x78\x10\x08",
+	},
+	{
+		.key = "\x80\xea\xd3\xf1",
+		.ksize = 4,
+		.plaintext = "\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30"
+			     "\x31\x32\x33\x34\x35\x36\x37\x38"
+			     "\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40"
+			     "\x41\x42\x43\x44\x45\x46\x47\x48"
+			     "\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50",
+		.psize = 40,
+		.digest = "\x9a\xb1\xdc\xf0",
+	},
+	{
+		.key = "\xf3\x4a\x1d\x5d",
+		.ksize = 4,
+		.plaintext = "\x51\x52\x53\x54\x55\x56\x57\x58"
+			     "\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60"
+			     "\x61\x62\x63\x64\x65\x66\x67\x68"
+			     "\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70"
+			     "\x71\x72\x73\x74\x75\x76\x77\x78",
+		.psize = 40,
+		.digest = "\xb4\x97\xcc\xd4",
+	},
+	{
+		.key = "\x2e\x80\x04\x59",
+		.ksize = 4,
+		.plaintext = "\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80"
+			     "\x81\x82\x83\x84\x85\x86\x87\x88"
+			     "\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90"
+			     "\x91\x92\x93\x94\x95\x96\x97\x98"
+			     "\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0",
+		.psize = 40,
+		.digest = "\x67\x9b\xfa\x79",
+	},
+	{
+		.key = "\xa6\xcc\x19\x85",
+		.ksize = 4,
+		.plaintext = "\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8"
+			     "\xa9\xaa\xab\xac\xad\xae\xaf\xb0"
+			     "\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8"
+			     "\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0"
+			     "\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8",
+		.psize = 40,
+		.digest = "\x24\xb5\x16\xef",
+	},
+	{
+		.key = "\x41\xfc\xfe\x2d",
+		.ksize = 4,
+		.plaintext = "\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0"
+			     "\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8"
+			     "\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0"
+			     "\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8"
+			     "\xe9\xea\xeb\xec\xed\xee\xef\xf0",
+		.psize = 40,
+		.digest = "\x15\x94\x80\x39",
+	},
+	{
+		.key = "\xff\xff\xff\xff",
+		.ksize = 4,
+		.plaintext = "\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\x26\x27\x28"
+			     "\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30"
+			     "\x31\x32\x33\x34\x35\x36\x37\x38"
+			     "\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40"
+			     "\x41\x42\x43\x44\x45\x46\x47\x48"
+			     "\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50"
+			     "\x51\x52\x53\x54\x55\x56\x57\x58"
+			     "\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60"
+			     "\x61\x62\x63\x64\x65\x66\x67\x68"
+			     "\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70"
+			     "\x71\x72\x73\x74\x75\x76\x77\x78"
+			     "\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80"
+			     "\x81\x82\x83\x84\x85\x86\x87\x88"
+			     "\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90"
+			     "\x91\x92\x93\x94\x95\x96\x97\x98"
+			     "\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0"
+			     "\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8"
+			     "\xa9\xaa\xab\xac\xad\xae\xaf\xb0"
+			     "\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8"
+			     "\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0"
+			     "\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8"
+			     "\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0"
+			     "\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8"
+			     "\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0"
+			     "\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8"
+			     "\xe9\xea\xeb\xec\xed\xee\xef\xf0",
+		.psize = 240,
+		.digest = "\x6c\xc6\x56\xde",
+		.np = 2,
+		.tap = { 31, 209 }
+	}, {
+		.key = "\xff\xff\xff\xff",
+		.ksize = 4,
+		.plaintext =	"\x6e\x05\x79\x10\xa7\x1b\xb2\x49"
+				"\xe0\x54\xeb\x82\x19\x8d\x24\xbb"
+				"\x2f\xc6\x5d\xf4\x68\xff\x96\x0a"
+				"\xa1\x38\xcf\x43\xda\x71\x08\x7c"
+				"\x13\xaa\x1e\xb5\x4c\xe3\x57\xee"
+				"\x85\x1c\x90\x27\xbe\x32\xc9\x60"
+				"\xf7\x6b\x02\x99\x0d\xa4\x3b\xd2"
+				"\x46\xdd\x74\x0b\x7f\x16\xad\x21"
+				"\xb8\x4f\xe6\x5a\xf1\x88\x1f\x93"
+				"\x2a\xc1\x35\xcc\x63\xfa\x6e\x05"
+				"\x9c\x10\xa7\x3e\xd5\x49\xe0\x77"
+				"\x0e\x82\x19\xb0\x24\xbb\x52\xe9"
+				"\x5d\xf4\x8b\x22\x96\x2d\xc4\x38"
+				"\xcf\x66\xfd\x71\x08\x9f\x13\xaa"
+				"\x41\xd8\x4c\xe3\x7a\x11\x85\x1c"
+				"\xb3\x27\xbe\x55\xec\x60\xf7\x8e"
+				"\x02\x99\x30\xc7\x3b\xd2\x69\x00"
+				"\x74\x0b\xa2\x16\xad\x44\xdb\x4f"
+				"\xe6\x7d\x14\x88\x1f\xb6\x2a\xc1"
+				"\x58\xef\x63\xfa\x91\x05\x9c\x33"
+				"\xca\x3e\xd5\x6c\x03\x77\x0e\xa5"
+				"\x19\xb0\x47\xde\x52\xe9\x80\x17"
+				"\x8b\x22\xb9\x2d\xc4\x5b\xf2\x66"
+				"\xfd\x94\x08\x9f\x36\xcd\x41\xd8"
+				"\x6f\x06\x7a\x11\xa8\x1c\xb3\x4a"
+				"\xe1\x55\xec\x83\x1a\x8e\x25\xbc"
+				"\x30\xc7\x5e\xf5\x69\x00\x97\x0b"
+				"\xa2\x39\xd0\x44\xdb\x72\x09\x7d"
+				"\x14\xab\x1f\xb6\x4d\xe4\x58\xef"
+				"\x86\x1d\x91\x28\xbf\x33\xca\x61"
+				"\xf8\x6c\x03\x9a\x0e\xa5\x3c\xd3"
+				"\x47\xde\x75\x0c\x80\x17\xae\x22"
+				"\xb9\x50\xe7\x5b\xf2\x89\x20\x94"
+				"\x2b\xc2\x36\xcd\x64\xfb\x6f\x06"
+				"\x9d\x11\xa8\x3f\xd6\x4a\xe1\x78"
+				"\x0f\x83\x1a\xb1\x25\xbc\x53\xea"
+				"\x5e\xf5\x8c\x00\x97\x2e\xc5\x39"
+				"\xd0\x67\xfe\x72\x09\xa0\x14\xab"
+				"\x42\xd9\x4d\xe4\x7b\x12\x86\x1d"
+				"\xb4\x28\xbf\x56\xed\x61\xf8\x8f"
+				"\x03\x9a\x31\xc8\x3c\xd3\x6a\x01"
+				"\x75\x0c\xa3\x17\xae\x45\xdc\x50"
+				"\xe7\x7e\x15\x89\x20\xb7\x2b\xc2"
+				"\x59\xf0\x64\xfb\x92\x06\x9d\x34"
+				"\xcb\x3f\xd6\x6d\x04\x78\x0f\xa6"
+				"\x1a\xb1\x48\xdf\x53\xea\x81\x18"
+				"\x8c\x23\xba\x2e\xc5\x5c\xf3\x67"
+				"\xfe\x95\x09\xa0\x37\xce\x42\xd9"
+				"\x70\x07\x7b\x12\xa9\x1d\xb4\x4b"
+				"\xe2\x56\xed\x84\x1b\x8f\x26\xbd"
+				"\x31\xc8\x5f\xf6\x6a\x01\x98\x0c"
+				"\xa3\x3a\xd1\x45\xdc\x73\x0a\x7e"
+				"\x15\xac\x20\xb7\x4e\xe5\x59\xf0"
+				"\x87\x1e\x92\x29\xc0\x34\xcb\x62"
+				"\xf9\x6d\x04\x9b\x0f\xa6\x3d\xd4"
+				"\x48\xdf\x76\x0d\x81\x18\xaf\x23"
+				"\xba\x51\xe8\x5c\xf3\x8a\x21\x95"
+				"\x2c\xc3\x37\xce\x65\xfc\x70\x07"
+				"\x9e\x12\xa9\x40\xd7\x4b\xe2\x79"
+				"\x10\x84\x1b\xb2\x26\xbd\x54\xeb"
+				"\x5f\xf6\x8d\x01\x98\x2f\xc6\x3a"
+				"\xd1\x68\xff\x73\x0a\xa1\x15\xac"
+				"\x43\xda\x4e\xe5\x7c\x13\x87\x1e"
+				"\xb5\x29\xc0\x57\xee\x62\xf9\x90"
+				"\x04\x9b\x32\xc9\x3d\xd4\x6b\x02"
+				"\x76\x0d\xa4\x18\xaf\x46\xdd\x51"
+				"\xe8\x7f\x16\x8a\x21\xb8\x2c\xc3"
+				"\x5a\xf1\x65\xfc\x93\x07\x9e\x35"
+				"\xcc\x40\xd7\x6e\x05\x79\x10\xa7"
+				"\x1b\xb2\x49\xe0\x54\xeb\x82\x19"
+				"\x8d\x24\xbb\x2f\xc6\x5d\xf4\x68"
+				"\xff\x96\x0a\xa1\x38\xcf\x43\xda"
+				"\x71\x08\x7c\x13\xaa\x1e\xb5\x4c"
+				"\xe3\x57\xee\x85\x1c\x90\x27\xbe"
+				"\x32\xc9\x60\xf7\x6b\x02\x99\x0d"
+				"\xa4\x3b\xd2\x46\xdd\x74\x0b\x7f"
+				"\x16\xad\x21\xb8\x4f\xe6\x5a\xf1"
+				"\x88\x1f\x93\x2a\xc1\x35\xcc\x63"
+				"\xfa\x6e\x05\x9c\x10\xa7\x3e\xd5"
+				"\x49\xe0\x77\x0e\x82\x19\xb0\x24"
+				"\xbb\x52\xe9\x5d\xf4\x8b\x22\x96"
+				"\x2d\xc4\x38\xcf\x66\xfd\x71\x08"
+				"\x9f\x13\xaa\x41\xd8\x4c\xe3\x7a"
+				"\x11\x85\x1c\xb3\x27\xbe\x55\xec"
+				"\x60\xf7\x8e\x02\x99\x30\xc7\x3b"
+				"\xd2\x69\x00\x74\x0b\xa2\x16\xad"
+				"\x44\xdb\x4f\xe6\x7d\x14\x88\x1f"
+				"\xb6\x2a\xc1\x58\xef\x63\xfa\x91"
+				"\x05\x9c\x33\xca\x3e\xd5\x6c\x03"
+				"\x77\x0e\xa5\x19\xb0\x47\xde\x52"
+				"\xe9\x80\x17\x8b\x22\xb9\x2d\xc4"
+				"\x5b\xf2\x66\xfd\x94\x08\x9f\x36"
+				"\xcd\x41\xd8\x6f\x06\x7a\x11\xa8"
+				"\x1c\xb3\x4a\xe1\x55\xec\x83\x1a"
+				"\x8e\x25\xbc\x30\xc7\x5e\xf5\x69"
+				"\x00\x97\x0b\xa2\x39\xd0\x44\xdb"
+				"\x72\x09\x7d\x14\xab\x1f\xb6\x4d"
+				"\xe4\x58\xef\x86\x1d\x91\x28\xbf"
+				"\x33\xca\x61\xf8\x6c\x03\x9a\x0e"
+				"\xa5\x3c\xd3\x47\xde\x75\x0c\x80"
+				"\x17\xae\x22\xb9\x50\xe7\x5b\xf2"
+				"\x89\x20\x94\x2b\xc2\x36\xcd\x64"
+				"\xfb\x6f\x06\x9d\x11\xa8\x3f\xd6"
+				"\x4a\xe1\x78\x0f\x83\x1a\xb1\x25"
+				"\xbc\x53\xea\x5e\xf5\x8c\x00\x97"
+				"\x2e\xc5\x39\xd0\x67\xfe\x72\x09"
+				"\xa0\x14\xab\x42\xd9\x4d\xe4\x7b"
+				"\x12\x86\x1d\xb4\x28\xbf\x56\xed"
+				"\x61\xf8\x8f\x03\x9a\x31\xc8\x3c"
+				"\xd3\x6a\x01\x75\x0c\xa3\x17\xae"
+				"\x45\xdc\x50\xe7\x7e\x15\x89\x20"
+				"\xb7\x2b\xc2\x59\xf0\x64\xfb\x92"
+				"\x06\x9d\x34\xcb\x3f\xd6\x6d\x04"
+				"\x78\x0f\xa6\x1a\xb1\x48\xdf\x53"
+				"\xea\x81\x18\x8c\x23\xba\x2e\xc5"
+				"\x5c\xf3\x67\xfe\x95\x09\xa0\x37"
+				"\xce\x42\xd9\x70\x07\x7b\x12\xa9"
+				"\x1d\xb4\x4b\xe2\x56\xed\x84\x1b"
+				"\x8f\x26\xbd\x31\xc8\x5f\xf6\x6a"
+				"\x01\x98\x0c\xa3\x3a\xd1\x45\xdc"
+				"\x73\x0a\x7e\x15\xac\x20\xb7\x4e"
+				"\xe5\x59\xf0\x87\x1e\x92\x29\xc0"
+				"\x34\xcb\x62\xf9\x6d\x04\x9b\x0f"
+				"\xa6\x3d\xd4\x48\xdf\x76\x0d\x81"
+				"\x18\xaf\x23\xba\x51\xe8\x5c\xf3"
+				"\x8a\x21\x95\x2c\xc3\x37\xce\x65"
+				"\xfc\x70\x07\x9e\x12\xa9\x40\xd7"
+				"\x4b\xe2\x79\x10\x84\x1b\xb2\x26"
+				"\xbd\x54\xeb\x5f\xf6\x8d\x01\x98"
+				"\x2f\xc6\x3a\xd1\x68\xff\x73\x0a"
+				"\xa1\x15\xac\x43\xda\x4e\xe5\x7c"
+				"\x13\x87\x1e\xb5\x29\xc0\x57\xee"
+				"\x62\xf9\x90\x04\x9b\x32\xc9\x3d"
+				"\xd4\x6b\x02\x76\x0d\xa4\x18\xaf"
+				"\x46\xdd\x51\xe8\x7f\x16\x8a\x21"
+				"\xb8\x2c\xc3\x5a\xf1\x65\xfc\x93"
+				"\x07\x9e\x35\xcc\x40\xd7\x6e\x05"
+				"\x79\x10\xa7\x1b\xb2\x49\xe0\x54"
+				"\xeb\x82\x19\x8d\x24\xbb\x2f\xc6"
+				"\x5d\xf4\x68\xff\x96\x0a\xa1\x38"
+				"\xcf\x43\xda\x71\x08\x7c\x13\xaa"
+				"\x1e\xb5\x4c\xe3\x57\xee\x85\x1c"
+				"\x90\x27\xbe\x32\xc9\x60\xf7\x6b"
+				"\x02\x99\x0d\xa4\x3b\xd2\x46\xdd"
+				"\x74\x0b\x7f\x16\xad\x21\xb8\x4f"
+				"\xe6\x5a\xf1\x88\x1f\x93\x2a\xc1"
+				"\x35\xcc\x63\xfa\x6e\x05\x9c\x10"
+				"\xa7\x3e\xd5\x49\xe0\x77\x0e\x82"
+				"\x19\xb0\x24\xbb\x52\xe9\x5d\xf4"
+				"\x8b\x22\x96\x2d\xc4\x38\xcf\x66"
+				"\xfd\x71\x08\x9f\x13\xaa\x41\xd8"
+				"\x4c\xe3\x7a\x11\x85\x1c\xb3\x27"
+				"\xbe\x55\xec\x60\xf7\x8e\x02\x99"
+				"\x30\xc7\x3b\xd2\x69\x00\x74\x0b"
+				"\xa2\x16\xad\x44\xdb\x4f\xe6\x7d"
+				"\x14\x88\x1f\xb6\x2a\xc1\x58\xef"
+				"\x63\xfa\x91\x05\x9c\x33\xca\x3e"
+				"\xd5\x6c\x03\x77\x0e\xa5\x19\xb0"
+				"\x47\xde\x52\xe9\x80\x17\x8b\x22"
+				"\xb9\x2d\xc4\x5b\xf2\x66\xfd\x94"
+				"\x08\x9f\x36\xcd\x41\xd8\x6f\x06"
+				"\x7a\x11\xa8\x1c\xb3\x4a\xe1\x55"
+				"\xec\x83\x1a\x8e\x25\xbc\x30\xc7"
+				"\x5e\xf5\x69\x00\x97\x0b\xa2\x39"
+				"\xd0\x44\xdb\x72\x09\x7d\x14\xab"
+				"\x1f\xb6\x4d\xe4\x58\xef\x86\x1d"
+				"\x91\x28\xbf\x33\xca\x61\xf8\x6c"
+				"\x03\x9a\x0e\xa5\x3c\xd3\x47\xde"
+				"\x75\x0c\x80\x17\xae\x22\xb9\x50"
+				"\xe7\x5b\xf2\x89\x20\x94\x2b\xc2"
+				"\x36\xcd\x64\xfb\x6f\x06\x9d\x11"
+				"\xa8\x3f\xd6\x4a\xe1\x78\x0f\x83"
+				"\x1a\xb1\x25\xbc\x53\xea\x5e\xf5"
+				"\x8c\x00\x97\x2e\xc5\x39\xd0\x67"
+				"\xfe\x72\x09\xa0\x14\xab\x42\xd9"
+				"\x4d\xe4\x7b\x12\x86\x1d\xb4\x28"
+				"\xbf\x56\xed\x61\xf8\x8f\x03\x9a"
+				"\x31\xc8\x3c\xd3\x6a\x01\x75\x0c"
+				"\xa3\x17\xae\x45\xdc\x50\xe7\x7e"
+				"\x15\x89\x20\xb7\x2b\xc2\x59\xf0"
+				"\x64\xfb\x92\x06\x9d\x34\xcb\x3f"
+				"\xd6\x6d\x04\x78\x0f\xa6\x1a\xb1"
+				"\x48\xdf\x53\xea\x81\x18\x8c\x23"
+				"\xba\x2e\xc5\x5c\xf3\x67\xfe\x95"
+				"\x09\xa0\x37\xce\x42\xd9\x70\x07"
+				"\x7b\x12\xa9\x1d\xb4\x4b\xe2\x56"
+				"\xed\x84\x1b\x8f\x26\xbd\x31\xc8"
+				"\x5f\xf6\x6a\x01\x98\x0c\xa3\x3a"
+				"\xd1\x45\xdc\x73\x0a\x7e\x15\xac"
+				"\x20\xb7\x4e\xe5\x59\xf0\x87\x1e"
+				"\x92\x29\xc0\x34\xcb\x62\xf9\x6d"
+				"\x04\x9b\x0f\xa6\x3d\xd4\x48\xdf"
+				"\x76\x0d\x81\x18\xaf\x23\xba\x51"
+				"\xe8\x5c\xf3\x8a\x21\x95\x2c\xc3"
+				"\x37\xce\x65\xfc\x70\x07\x9e\x12"
+				"\xa9\x40\xd7\x4b\xe2\x79\x10\x84"
+				"\x1b\xb2\x26\xbd\x54\xeb\x5f\xf6"
+				"\x8d\x01\x98\x2f\xc6\x3a\xd1\x68"
+				"\xff\x73\x0a\xa1\x15\xac\x43\xda"
+				"\x4e\xe5\x7c\x13\x87\x1e\xb5\x29"
+				"\xc0\x57\xee\x62\xf9\x90\x04\x9b"
+				"\x32\xc9\x3d\xd4\x6b\x02\x76\x0d"
+				"\xa4\x18\xaf\x46\xdd\x51\xe8\x7f"
+				"\x16\x8a\x21\xb8\x2c\xc3\x5a\xf1"
+				"\x65\xfc\x93\x07\x9e\x35\xcc\x40"
+				"\xd7\x6e\x05\x79\x10\xa7\x1b\xb2"
+				"\x49\xe0\x54\xeb\x82\x19\x8d\x24"
+				"\xbb\x2f\xc6\x5d\xf4\x68\xff\x96"
+				"\x0a\xa1\x38\xcf\x43\xda\x71\x08"
+				"\x7c\x13\xaa\x1e\xb5\x4c\xe3\x57"
+				"\xee\x85\x1c\x90\x27\xbe\x32\xc9"
+				"\x60\xf7\x6b\x02\x99\x0d\xa4\x3b"
+				"\xd2\x46\xdd\x74\x0b\x7f\x16\xad"
+				"\x21\xb8\x4f\xe6\x5a\xf1\x88\x1f"
+				"\x93\x2a\xc1\x35\xcc\x63\xfa\x6e"
+				"\x05\x9c\x10\xa7\x3e\xd5\x49\xe0"
+				"\x77\x0e\x82\x19\xb0\x24\xbb\x52"
+				"\xe9\x5d\xf4\x8b\x22\x96\x2d\xc4"
+				"\x38\xcf\x66\xfd\x71\x08\x9f\x13"
+				"\xaa\x41\xd8\x4c\xe3\x7a\x11\x85"
+				"\x1c\xb3\x27\xbe\x55\xec\x60\xf7"
+				"\x8e\x02\x99\x30\xc7\x3b\xd2\x69"
+				"\x00\x74\x0b\xa2\x16\xad\x44\xdb"
+				"\x4f\xe6\x7d\x14\x88\x1f\xb6\x2a"
+				"\xc1\x58\xef\x63\xfa\x91\x05\x9c"
+				"\x33\xca\x3e\xd5\x6c\x03\x77\x0e"
+				"\xa5\x19\xb0\x47\xde\x52\xe9\x80"
+				"\x17\x8b\x22\xb9\x2d\xc4\x5b\xf2"
+				"\x66\xfd\x94\x08\x9f\x36\xcd\x41"
+				"\xd8\x6f\x06\x7a\x11\xa8\x1c\xb3"
+				"\x4a\xe1\x55\xec\x83\x1a\x8e\x25"
+				"\xbc\x30\xc7\x5e\xf5\x69\x00\x97"
+				"\x0b\xa2\x39\xd0\x44\xdb\x72\x09"
+				"\x7d\x14\xab\x1f\xb6\x4d\xe4\x58"
+				"\xef\x86\x1d\x91\x28\xbf\x33\xca"
+				"\x61\xf8\x6c\x03\x9a\x0e\xa5\x3c"
+				"\xd3\x47\xde\x75\x0c\x80\x17\xae"
+				"\x22\xb9\x50\xe7\x5b\xf2\x89\x20"
+				"\x94\x2b\xc2\x36\xcd\x64\xfb\x6f"
+				"\x06\x9d\x11\xa8\x3f\xd6\x4a\xe1"
+				"\x78\x0f\x83\x1a\xb1\x25\xbc\x53"
+				"\xea\x5e\xf5\x8c\x00\x97\x2e\xc5"
+				"\x39\xd0\x67\xfe\x72\x09\xa0\x14"
+				"\xab\x42\xd9\x4d\xe4\x7b\x12\x86"
+				"\x1d\xb4\x28\xbf\x56\xed\x61\xf8"
+				"\x8f\x03\x9a\x31\xc8\x3c\xd3\x6a"
+				"\x01\x75\x0c\xa3\x17\xae\x45\xdc"
+				"\x50\xe7\x7e\x15\x89\x20\xb7\x2b"
+				"\xc2\x59\xf0\x64\xfb\x92\x06\x9d"
+				"\x34\xcb\x3f\xd6\x6d\x04\x78\x0f"
+				"\xa6\x1a\xb1\x48\xdf\x53\xea\x81"
+				"\x18\x8c\x23\xba\x2e\xc5\x5c\xf3"
+				"\x67\xfe\x95\x09\xa0\x37\xce\x42"
+				"\xd9\x70\x07\x7b\x12\xa9\x1d\xb4"
+				"\x4b\xe2\x56\xed\x84\x1b\x8f\x26"
+				"\xbd\x31\xc8\x5f\xf6\x6a\x01\x98",
+		.psize = 2048,
+		.digest = "\xfb\x3a\x7a\xda",
+	}
+};
+
+/*
  * CRC32C test vectors
  */
 #define CRC32C_TEST_VECTORS 15