// SPDX-License-Identifier: GPL-2.0 OR MIT
/*
* Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
*/
#include <crypto/internal/blake2s.h>
#include <linux/kernel.h>
#include <linux/random.h>
#include <linux/string.h>
/*
* blake2s_testvecs[] generated with the program below (using libb2-dev and
* libssl-dev [OpenSSL])
*
* #include <blake2.h>
* #include <stdint.h>
* #include <stdio.h>
*
* #include <openssl/evp.h>
*
* #define BLAKE2S_TESTVEC_COUNT 256
*
* static void print_vec(const uint8_t vec[], int len)
* {
* int i;
*
* printf(" { ");
* for (i = 0; i < len; i++) {
* if (i && (i % 12) == 0)
* printf("\n ");
* printf("0x%02x, ", vec[i]);
* }
* printf("},\n");
* }
*
* int main(void)
* {
* uint8_t key[BLAKE2S_KEYBYTES];
* uint8_t buf[BLAKE2S_TESTVEC_COUNT];
* uint8_t hash[BLAKE2S_OUTBYTES];
* int i, j;
*
* key[0] = key[1] = 1;
* for (i = 2; i < BLAKE2S_KEYBYTES; ++i)
* key[i] = key[i - 2] + key[i - 1];
*
* for (i = 0; i < BLAKE2S_TESTVEC_COUNT; ++i)
* buf[i] = (uint8_t)i;
*
* printf("static const u8 blake2s_testvecs[][BLAKE2S_HASH_SIZE] __initconst = {\n");
*
* for (i = 0; i < BLAKE2S_TESTVEC_COUNT; ++i) {
* int outlen = 1 + i % BLAKE2S_OUTBYTES;
* int keylen = (13 * i) % (BLAKE2S_KEYBYTES + 1);
*
* blake2s(hash, buf, key + BLAKE2S_KEYBYTES - keylen, outlen, i,
* keylen);
* print_vec(hash, outlen);
* }
* printf("};\n\n");
*
* return 0;
*}
*/
static const u8 blake2s_testvecs[][BLAKE2S_HASH_SIZE] __initconst = {
{ 0 xa1, },
{ 0 x7c, 0 x89, },
{ 0 x74, 0 x0e, 0 xd4, },
{ 0 x47, 0 x0c, 0 x21, 0 x15, },
{ 0 x18, 0 xd6, 0 x9c, 0 xa6, 0 xc4, },
{ 0 x13, 0 x5d, 0 x16, 0 x63, 0 x2e, 0 xf9, },
{ 0 x2c, 0 xb5, 0 x04, 0 xb7, 0 x99, 0 xe2, 0 x73, },
{ 0 x9a, 0 x0f, 0 xd2, 0 x39, 0 xd6, 0 x68, 0 x1b, 0 x92, },
{ 0 xc8, 0 xde, 0 x7a, 0 xea, 0 x2f, 0 xf4, 0 xd2, 0 xe3, 0 x2b, },
{ 0 x5b, 0 xf9, 0 x43, 0 x52, 0 x0c, 0 x12, 0 xba, 0 xb5, 0 x93, 0 x9f, },
{ 0 xc6, 0 x2c, 0 x4e, 0 x80, 0 xfc, 0 x32, 0 x5b, 0 x33, 0 xb8, 0 xb8, 0 x0a, },
{ 0 xa7, 0 x5c, 0 xfd, 0 x3a, 0 xcc, 0 xbf, 0 x90, 0 xca, 0 xb7, 0 x97, 0 xde, 0 xd8, },
{ 0 x66, 0 xca, 0 x3c, 0 xc4, 0 x19, 0 xef, 0 x92, 0 x66, 0 x3f, 0 x21, 0 x8f, 0 xda,
0 xb7, },
{ 0 xba, 0 xe5, 0 xbb, 0 x30, 0 x25, 0 x94, 0 x6d, 0 xc3, 0 x89, 0 x09, 0 xc4, 0 x25,
0 x52, 0 x3e, },
{ 0 xa2, 0 xef, 0 x0e, 0 x52, 0 x0b, 0 x5f, 0 xa2, 0 x01, 0 x6d, 0 x0a, 0 x25, 0 xbc,
0 x57, 0 xe2, 0 x27, },
{ 0 x4f, 0 xe0, 0 xf9, 0 x52, 0 x12, 0 xda, 0 x84, 0 xb7, 0 xab, 0 xae, 0 xb0, 0 xa6,
0 x47, 0 x2a, 0 xc7, 0 xf5, },
{ 0 x56, 0 xe7, 0 xa8, 0 x1c, 0 x4c, 0 xca, 0 xed, 0 x90, 0 x31, 0 xec, 0 x87, 0 x43,
0 xe7, 0 x72, 0 x08, 0 xec, 0 xbe, },
{ 0 x7e, 0 xdf, 0 x80, 0 x1c, 0 x93, 0 x33, 0 xfd, 0 x53, 0 x44, 0 xba, 0 xfd, 0 x96,
0 xe1, 0 xbb, 0 xb5, 0 x65, 0 xa5, 0 x00, },
{ 0 xec, 0 x6b, 0 xed, 0 xf7, 0 x7b, 0 x62, 0 x1d, 0 x7d, 0 xf4, 0 x82, 0 xf3, 0 x1e,
0 x18, 0 xff, 0 x2b, 0 xc4, 0 x06, 0 x20, 0 x2a, },
{ 0 x74, 0 x98, 0 xd7, 0 x68, 0 x63, 0 xed, 0 x87, 0 xe4, 0 x5d, 0 x8d, 0 x9e, 0 x1d,
0 xfd, 0 x2a, 0 xbb, 0 x86, 0 xac, 0 xe9, 0 x2a, 0 x89, },
{ 0 x89, 0 xc3, 0 x88, 0 xce, 0 x2b, 0 x33, 0 x1e, 0 x10, 0 xd1, 0 x37, 0 x20, 0 x86,
0 x28, 0 x43, 0 x70, 0 xd9, 0 xfb, 0 x96, 0 xd9, 0 xb5, 0 xd3, },
{ 0 xcb, 0 x56, 0 x74, 0 x41, 0 x8d, 0 x80, 0 x01, 0 x9a, 0 x6b, 0 x38, 0 xe1, 0 x41,
0 xad, 0 x9c, 0 x62, 0 x74, 0 xce, 0 x35, 0 xd5, 0 x6c, 0 x89, 0 x6e, },
{ 0 x79, 0 xaf, 0 x94, 0 x59, 0 x99, 0 x26, 0 xe1, 0 xc9, 0 x34, 0 xfe, 0 x7c, 0 x22,
0 xf7, 0 x43, 0 xd7, 0 x65, 0 xd4, 0 x48, 0 x18, 0 xac, 0 x3d, 0 xfd, 0 x93, },
{ 0 x85, 0 x0d, 0 xff, 0 xb8, 0 x3e, 0 x87, 0 x41, 0 xb0, 0 x95, 0 xd3, 0 x3d, 0 x00,
0 x47, 0 x55, 0 x9e, 0 xd2, 0 x69, 0 xea, 0 xbf, 0 xe9, 0 x7a, 0 x2d, 0 x61, 0 x45, },
{ 0 x03, 0 xe0, 0 x85, 0 xec, 0 x54, 0 xb5, 0 x16, 0 x53, 0 xa8, 0 xc4, 0 x71, 0 xe9,
0 x6a, 0 xe7, 0 xcb, 0 xc4, 0 x15, 0 x02, 0 xfc, 0 x34, 0 xa4, 0 xa4, 0 x28, 0 x13,
0 xd1, },
{ 0 xe3, 0 x34, 0 x4b, 0 xe1, 0 xd0, 0 x4b, 0 x55, 0 x61, 0 x8f, 0 xc0, 0 x24, 0 x05,
0 xe6, 0 xe0, 0 x3d, 0 x70, 0 x24, 0 x4d, 0 xda, 0 xb8, 0 x91, 0 x05, 0 x29, 0 x07,
0 x01, 0 x3e, },
{ 0 x61, 0 xff, 0 x01, 0 x72, 0 xb1, 0 x4d, 0 xf6, 0 xfe, 0 xd1, 0 xd1, 0 x08, 0 x74,
0 xe6, 0 x91, 0 x44, 0 xeb, 0 x61, 0 xda, 0 x40, 0 xaf, 0 xfc, 0 x8c, 0 x91, 0 x6b,
0 xec, 0 x13, 0 xed, },
{ 0 xd4, 0 x40, 0 xd2, 0 xa0, 0 x7f, 0 xc1, 0 x58, 0 x0c, 0 x85, 0 xa0, 0 x86, 0 xc7,
0 x86, 0 xb9, 0 x61, 0 xc9, 0 xea, 0 x19, 0 x86, 0 x1f, 0 xab, 0 x07, 0 xce, 0 x37,
0 x72, 0 x67, 0 x09, 0 xfc, },
{ 0 x9e, 0 xf8, 0 x18, 0 x67, 0 x93, 0 x10, 0 x9b, 0 x39, 0 x75, 0 xe8, 0 x8b, 0 x38,
0 x82, 0 x7d, 0 xb8, 0 xb7, 0 xa5, 0 xaf, 0 xe6, 0 x6a, 0 x22, 0 x5e, 0 x1f, 0 x9c,
0 x95, 0 x29, 0 x19, 0 xf2, 0 x4b, },
{ 0 xc8, 0 x62, 0 x25, 0 xf5, 0 x98, 0 xc9, 0 xea, 0 xe5, 0 x29, 0 x3a, 0 xd3, 0 x22,
0 xeb, 0 xeb, 0 x07, 0 x7c, 0 x15, 0 x07, 0 xee, 0 x15, 0 x61, 0 xbb, 0 x05, 0 x30,
0 x99, 0 x7f, 0 x11, 0 xf6, 0 x0a, 0 x1d, },
{ 0 x68, 0 x70, 0 xf7, 0 x90, 0 xa1, 0 x8b, 0 x1f, 0 x0f, 0 xbb, 0 xce, 0 xd2, 0 x0e,
0 x33, 0 x1f, 0 x7f, 0 xa9, 0 x78, 0 xa8, 0 xa6, 0 x81, 0 x66, 0 xab, 0 x8d, 0 xcd,
0 x58, 0 x55, 0 x3a, 0 x0b, 0 x7a, 0 xdb, 0 xb5, },
{ 0 xdd, 0 x35, 0 xd2, 0 xb4, 0 xf6, 0 xc7, 0 xea, 0 xab, 0 x64, 0 x24, 0 x4e, 0 xfe,
0 xe5, 0 x3d, 0 x4e, 0 x95, 0 x8b, 0 x6d, 0 x6c, 0 xbc, 0 xb0, 0 xf8, 0 x88, 0 x61,
0 x09, 0 xb7, 0 x78, 0 xa3, 0 x31, 0 xfe, 0 xd9, 0 x2f, },
{ 0 x0a, },
{ 0 x6e, 0 xd4, },
{ 0 x64, 0 xe9, 0 xd1, },
{ 0 x30, 0 xdd, 0 x71, 0 xef, },
{ 0 x11, 0 xb5, 0 x0c, 0 x87, 0 xc9, },
{ 0 x06, 0 x1c, 0 x6d, 0 x04, 0 x82, 0 xd0, },
{ 0 x5c, 0 x42, 0 x0b, 0 xee, 0 xc5, 0 x9c, 0 xb2, },
{ 0 xe8, 0 x29, 0 xd6, 0 xb4, 0 x5d, 0 xf7, 0 x2b, 0 x93, },
{ 0 x18, 0 xca, 0 x27, 0 x72, 0 x43, 0 x39, 0 x16, 0 xbc, 0 x6a, },
{ 0 x39, 0 x8f, 0 xfd, 0 x64, 0 xf5, 0 x57, 0 x23, 0 xb0, 0 x45, 0 xf8, },
{ 0 xbb, 0 x3a, 0 x78, 0 x6b, 0 x02, 0 x1d, 0 x0b, 0 x16, 0 xe3, 0 xb2, 0 x9a, },
{ 0 xb8, 0 xb4, 0 x0b, 0 xe5, 0 xd4, 0 x1d, 0 x0d, 0 x85, 0 x49, 0 x91, 0 x35, 0 xfa, },
{ 0 x6d, 0 x48, 0 x2a, 0 x0c, 0 x42, 0 x08, 0 xbd, 0 xa9, 0 x78, 0 x6f, 0 x18, 0 xaf,
0 xe2, },
{ 0 x10, 0 x45, 0 xd4, 0 x58, 0 x88, 0 xec, 0 x4e, 0 x1e, 0 xf6, 0 x14, 0 x92, 0 x64,
0 x7e, 0 xb0, },
{ 0 x8b, 0 x0b, 0 x95, 0 xee, 0 x92, 0 xc6, 0 x3b, 0 x91, 0 xf1, 0 x1e, 0 xeb, 0 x51,
0 x98, 0 x0a, 0 x8d, },
{ 0 xa3, 0 x50, 0 x4d, 0 xa5, 0 x1d, 0 x03, 0 x68, 0 xe9, 0 x57, 0 x78, 0 xd6, 0 x04,
0 xf1, 0 xc3, 0 x94, 0 xd8, },
{ 0 xb8, 0 x66, 0 x6e, 0 xdd, 0 x46, 0 x15, 0 xae, 0 x3d, 0 x83, 0 x7e, 0 xcf, 0 xe7,
0 x2c, 0 xe8, 0 x8f, 0 xc7, 0 x34, },
{ 0 x2e, 0 xc0, 0 x1f, 0 x29, 0 xea, 0 xf6, 0 xb9, 0 xe2, 0 xc2, 0 x93, 0 xeb, 0 x41,
0 x0d, 0 xf0, 0 x0a, 0 x13, 0 x0e, 0 xa2, },
{ 0 x71, 0 xb8, 0 x33, 0 xa9, 0 x1b, 0 xac, 0 xf1, 0 xb5, 0 x42, 0 x8f, 0 x5e, 0 x81,
0 x34, 0 x43, 0 xb7, 0 xa4, 0 x18, 0 x5c, 0 x47, },
{ 0 xda, 0 x45, 0 xb8, 0 x2e, 0 x82, 0 x1e, 0 xc0, 0 x59, 0 x77, 0 x9d, 0 xfa, 0 xb4,
0 x1c, 0 x5e, 0 xa0, 0 x2b, 0 x33, 0 x96, 0 x5a, 0 x58, },
{ 0 xe3, 0 x09, 0 x05, 0 xa9, 0 xeb, 0 x48, 0 x13, 0 xad, 0 x71, 0 x88, 0 x81, 0 x9a,
0 x3e, 0 x2c, 0 xe1, 0 x23, 0 x99, 0 x13, 0 x35, 0 x9f, 0 xb5, },
{ 0 xb7, 0 x86, 0 x2d, 0 x16, 0 xe1, 0 x04, 0 x00, 0 x47, 0 x47, 0 x61, 0 x31, 0 xfb,
0 x14, 0 xac, 0 xd8, 0 xe9, 0 xe3, 0 x49, 0 xbd, 0 xf7, 0 x9c, 0 x3f, },
{ 0 x7f, 0 xd9, 0 x95, 0 xa8, 0 xa7, 0 xa0, 0 xcc, 0 xba, 0 xef, 0 xb1, 0 x0a, 0 xa9,
0 x21, 0 x62, 0 x08, 0 x0f, 0 x1b, 0 xff, 0 x7b, 0 x9d, 0 xae, 0 xb2, 0 x95, },
{ 0 x85, 0 x99, 0 xea, 0 x33, 0 xe0, 0 x56, 0 xff, 0 x13, 0 xc6, 0 x61, 0 x8c, 0 xf9,
0 x57, 0 x05, 0 x03, 0 x11, 0 xf9, 0 xfb, 0 x3a, 0 xf7, 0 xce, 0 xbb, 0 x52, 0 x30, },
{ 0 xb2, 0 x72, 0 x9c, 0 xf8, 0 x77, 0 x4e, 0 x8f, 0 x6b, 0 x01, 0 x6c, 0 xff, 0 x4e,
0 x4f, 0 x02, 0 xd2, 0 xbc, 0 xeb, 0 x51, 0 x28, 0 x99, 0 x50, 0 xab, 0 xc4, 0 x42,
0 xe3, },
{ 0 x8b, 0 x0a, 0 xb5, 0 x90, 0 x8f, 0 xf5, 0 x7b, 0 xdd, 0 xba, 0 x47, 0 x37, 0 xc9,
0 x2a, 0 xd5, 0 x4b, 0 x25, 0 x08, 0 x8b, 0 x02, 0 x17, 0 xa7, 0 x9e, 0 x6b, 0 x6e,
0 xe3, 0 x90, },
{ 0 x90, 0 xdd, 0 xf7, 0 x75, 0 xa7, 0 xa3, 0 x99, 0 x5e, 0 x5b, 0 x7d, 0 x75, 0 xc3,
0 x39, 0 x6b, 0 xa0, 0 xe2, 0 x44, 0 x53, 0 xb1, 0 x9e, 0 xc8, 0 xf1, 0 x77, 0 x10,
0 x58, 0 x06, 0 x9a, },
{ 0 x99, 0 x52, 0 xf0, 0 x49, 0 xa8, 0 x8c, 0 xec, 0 xa6, 0 x97, 0 x32, 0 x13, 0 xb5,
0 xf7, 0 xa3, 0 x8e, 0 xfb, 0 x4b, 0 x59, 0 x31, 0 x3d, 0 x01, 0 x59, 0 x98, 0 x5d,
0 x53, 0 x03, 0 x1a, 0 x39, },
{ 0 x9f, 0 xe0, 0 xc2, 0 xe5, 0 x5d, 0 x93, 0 xd6, 0 x9b, 0 x47, 0 x8f, 0 x9b, 0 xe0,
0 x26, 0 x35, 0 x84, 0 x20, 0 x1d, 0 xc5, 0 x53, 0 x10, 0 x0f, 0 x22, 0 xb9, 0 xb5,
0 xd4, 0 x36, 0 xb1, 0 xac, 0 x73, },
{ 0 x30, 0 x32, 0 x20, 0 x3b, 0 x10, 0 x28, 0 xec, 0 x1f, 0 x4f, 0 x9b, 0 x47, 0 x59,
0 xeb, 0 x7b, 0 xee, 0 x45, 0 xfb, 0 x0c, 0 x49, 0 xd8, 0 x3d, 0 x69, 0 xbd, 0 x90,
0 x2c, 0 xf0, 0 x9e, 0 x8d, 0 xbf, 0 xd5, },
{ 0 x2a, 0 x37, 0 x73, 0 x7f, 0 xf9, 0 x96, 0 x19, 0 xaa, 0 x25, 0 xd8, 0 x13, 0 x28,
0 x01, 0 x29, 0 x89, 0 xdf, 0 x6e, 0 x0c, 0 x9b, 0 x43, 0 x44, 0 x51, 0 xe9, 0 x75,
0 x26, 0 x0c, 0 xb7, 0 x87, 0 x66, 0 x0b, 0 x5f, },
{ 0 x23, 0 xdf, 0 x96, 0 x68, 0 x91, 0 x86, 0 xd0, 0 x93, 0 x55, 0 x33, 0 x24, 0 xf6,
0 xba, 0 x08, 0 x75, 0 x5b, 0 x59, 0 x11, 0 x69, 0 xb8, 0 xb9, 0 xe5, 0 x2c, 0 x77,
0 x02, 0 xf6, 0 x47, 0 xee, 0 x81, 0 xdd, 0 xb9, 0 x06, },
{ 0 x9d, },
{ 0 x9d, 0 x7d, },
{ 0 xfd, 0 xc3, 0 xda, },
{ 0 xe8, 0 x82, 0 xcd, 0 x21, },
{ 0 xc3, 0 x1d, 0 x42, 0 x4c, 0 x74, },
{ 0 xe9, 0 xda, 0 xf1, 0 xa2, 0 xe5, 0 x7c, },
{ 0 x52, 0 xb8, 0 x6f, 0 x81, 0 x5c, 0 x3a, 0 x4c, },
{ 0 x5b, 0 x39, 0 x26, 0 xfc, 0 x92, 0 x5e, 0 xe0, 0 x49, },
{ 0 x59, 0 xe4, 0 x7c, 0 x93, 0 x1c, 0 xf9, 0 x28, 0 x93, 0 xde, },
{ 0 xde, 0 xdf, 0 xb2, 0 x43, 0 x61, 0 x0b, 0 x86, 0 x16, 0 x4c, 0 x2e, },
{ 0 x14, 0 x8f, 0 x75, 0 x51, 0 xaf, 0 xb9, 0 xee, 0 x51, 0 x5a, 0 xae, 0 x23, },
{ 0 x43, 0 x5f, 0 x50, 0 xd5, 0 x70, 0 xb0, 0 x5b, 0 x87, 0 xf5, 0 xd9, 0 xb3, 0 x6d, },
{ 0 x66, 0 x0a, 0 x64, 0 x93, 0 x79, 0 x71, 0 x94, 0 x40, 0 xb7, 0 x68, 0 x2d, 0 xd3,
0 x63, },
{ 0 x15, 0 x00, 0 xc4, 0 x0c, 0 x7d, 0 x1b, 0 x10, 0 xa9, 0 x73, 0 x1b, 0 x90, 0 x6f,
0 xe6, 0 xa9, },
{ 0 x34, 0 x75, 0 xf3, 0 x86, 0 x8f, 0 x56, 0 xcf, 0 x2a, 0 x0a, 0 xf2, 0 x62, 0 x0a,
0 xf6, 0 x0e, 0 x20, },
{ 0 xb1, 0 xde, 0 xc9, 0 xf5, 0 xdb, 0 xf3, 0 x2f, 0 x4c, 0 xd6, 0 x41, 0 x7d, 0 x39,
0 x18, 0 x3e, 0 xc7, 0 xc3, },
{ 0 xc5, 0 x89, 0 xb2, 0 xf8, 0 xb8, 0 xc0, 0 xa3, 0 xb9, 0 x3b, 0 x10, 0 x6d, 0 x7c,
0 x92, 0 xfc, 0 x7f, 0 x34, 0 x41, },
{ 0 xc4, 0 xd8, 0 xef, 0 xba, 0 xef, 0 xd2, 0 xaa, 0 xc5, 0 x6c, 0 x8e, 0 x3e, 0 xbb,
0 x12, 0 xfc, 0 x0f, 0 x72, 0 xbf, 0 x0f, },
{ 0 xdd, 0 x91, 0 xd1, 0 x15, 0 x9e, 0 x7d, 0 xf8, 0 xc1, 0 xb9, 0 x14, 0 x63, 0 x96,
0 xb5, 0 xcb, 0 x83, 0 x1d, 0 x35, 0 x1c, 0 xec, },
{ 0 xa9, 0 xf8, 0 x52, 0 xc9, 0 x67, 0 x76, 0 x2b, 0 xad, 0 xfb, 0 xd8, 0 x3a, 0 xa6,
0 x74, 0 x02, 0 xae, 0 xb8, 0 x25, 0 x2c, 0 x63, 0 x49, },
{ 0 x77, 0 x1f, 0 x66, 0 x70, 0 xfd, 0 x50, 0 x29, 0 xaa, 0 xeb, 0 xdc, 0 xee, 0 xba,
0 x75, 0 x98, 0 xdc, 0 x93, 0 x12, 0 x3f, 0 xdc, 0 x7c, 0 x38, },
{ 0 xe2, 0 xe1, 0 x89, 0 x5c, 0 x37, 0 x38, 0 x6a, 0 xa3, 0 x40, 0 xac, 0 x3f, 0 xb0,
0 xca, 0 xfc, 0 xa7, 0 xf3, 0 xea, 0 xf9, 0 x0f, 0 x5d, 0 x8e, 0 x39, },
{ 0 x0f, 0 x67, 0 xc8, 0 x38, 0 x01, 0 xb1, 0 xb7, 0 xb8, 0 xa2, 0 xe7, 0 x0a, 0 x6d,
0 xd2, 0 x63, 0 x69, 0 x9e, 0 xcc, 0 xf0, 0 xf2, 0 xbe, 0 x9b, 0 x98, 0 xdd, },
{ 0 x13, 0 xe1, 0 x36, 0 x30, 0 xfe, 0 xc6, 0 x01, 0 x8a, 0 xa1, 0 x63, 0 x96, 0 x59,
0 xc2, 0 xa9, 0 x68, 0 x3f, 0 x58, 0 xd4, 0 x19, 0 x0c, 0 x40, 0 xf3, 0 xde, 0 x02, },
{ 0 xa3, 0 x9e, 0 xce, 0 xda, 0 x42, 0 xee, 0 x8c, 0 x6c, 0 x5a, 0 x7d, 0 xdc, 0 x89,
0 x02, 0 x77, 0 xdd, 0 xe7, 0 x95, 0 xbb, 0 xff, 0 x0d, 0 xa4, 0 xb5, 0 x38, 0 x1e,
0 xaf, },
{ 0 x9a, 0 xf6, 0 xb5, 0 x9a, 0 x4f, 0 xa9, 0 x4f, 0 x2c, 0 x35, 0 x3c, 0 x24, 0 xdc,
0 x97, 0 x6f, 0 xd9, 0 xa1, 0 x7d, 0 x1a, 0 x85, 0 x0b, 0 xf5, 0 xda, 0 x2e, 0 xe7,
0 xb1, 0 x1d, },
{ 0 x84, 0 x1e, 0 x8e, 0 x3d, 0 x45, 0 xa5, 0 xf2, 0 x27, 0 xf3, 0 x31, 0 xfe, 0 xb9,
0 xfb, 0 xc5, 0 x45, 0 x99, 0 x99, 0 xdd, 0 x93, 0 x43, 0 x02, 0 xee, 0 x58, 0 xaf,
0 xee, 0 x6a, 0 xbe, },
{ 0 x07, 0 x2f, 0 xc0, 0 xa2, 0 x04, 0 xc4, 0 xab, 0 x7c, 0 x26, 0 xbb, 0 xa8, 0 xd8,
0 xe3, 0 x1c, 0 x75, 0 x15, 0 x64, 0 x5d, 0 x02, 0 x6a, 0 xf0, 0 x86, 0 xe9, 0 xcd,
0 x5c, 0 xef, 0 xa3, 0 x25, },
{ 0 x2f, 0 x3b, 0 x1f, 0 xb5, 0 x91, 0 x8f, 0 x86, 0 xe0, 0 xdc, 0 x31, 0 x48, 0 xb6,
0 xa1, 0 x8c, 0 xfd, 0 x75, 0 xbb, 0 x7d, 0 x3d, 0 xc1, 0 xf0, 0 x10, 0 x9a, 0 xd8,
0 x4b, 0 x0e, 0 xe3, 0 x94, 0 x9f, },
{ 0 x29, 0 xbb, 0 x8f, 0 x6c, 0 xd1, 0 xf2, 0 xb6, 0 xaf, 0 xe5, 0 xe3, 0 x2d, 0 xdc,
0 x6f, 0 xa4, 0 x53, 0 x88, 0 xd8, 0 xcf, 0 x4d, 0 x45, 0 x42, 0 x62, 0 xdb, 0 xdf,
0 xf8, 0 x45, 0 xc2, 0 x13, 0 xec, 0 x35, },
{ 0 x06, 0 x3c, 0 xe3, 0 x2c, 0 x15, 0 xc6, 0 x43, 0 x03, 0 x81, 0 xfb, 0 x08, 0 x76,
0 x33, 0 xcb, 0 x02, 0 xc1, 0 xba, 0 x33, 0 xe5, 0 xe0, 0 xd1, 0 x92, 0 xa8, 0 x46,
0 x28, 0 x3f, 0 x3e, 0 x9d, 0 x2c, 0 x44, 0 x54, },
{ 0 xea, 0 xbb, 0 x96, 0 xf8, 0 xd1, 0 x8b, 0 x04, 0 x11, 0 x40, 0 x78, 0 x42, 0 x02,
0 x19, 0 xd1, 0 xbc, 0 x65, 0 x92, 0 xd3, 0 xc3, 0 xd6, 0 xd9, 0 x19, 0 xe7, 0 xc3,
0 x40, 0 x97, 0 xbd, 0 xd4, 0 xed, 0 xfa, 0 x5e, 0 x28, },
{ 0 x02, },
{ 0 x52, 0 xa8, },
{ 0 x38, 0 x25, 0 x0d, },
{ 0 xe3, 0 x04, 0 xd4, 0 x92, },
{ 0 x97, 0 xdb, 0 xf7, 0 x81, 0 xca, },
{ 0 x8a, 0 x56, 0 x9d, 0 x62, 0 x56, 0 xcc, },
{ 0 xa1, 0 x8e, 0 x3c, 0 x72, 0 x8f, 0 x63, 0 x03, },
{ 0 xf7, 0 xf3, 0 x39, 0 x09, 0 x0a, 0 xa1, 0 xbb, 0 x23, },
{ 0 x6b, 0 x03, 0 xc0, 0 xe9, 0 xd9, 0 x83, 0 x05, 0 x22, 0 x01, },
{ 0 x1b, 0 x4b, 0 xf5, 0 xd6, 0 x4f, 0 x05, 0 x75, 0 x91, 0 x4c, 0 x7f, },
{ 0 x4c, 0 x8c, 0 x25, 0 x20, 0 x21, 0 xcb, 0 xc2, 0 x4b, 0 x3a, 0 x5b, 0 x8d, },
{ 0 x56, 0 xe2, 0 x77, 0 xa0, 0 xb6, 0 x9f, 0 x81, 0 xec, 0 x83, 0 x75, 0 xc4, 0 xf9, },
{ 0 x71, 0 x70, 0 x0f, 0 xad, 0 x4d, 0 x35, 0 x81, 0 x9d, 0 x88, 0 x69, 0 xf9, 0 xaa,
0 xd3, },
{ 0 x50, 0 x6e, 0 x86, 0 x6e, 0 x43, 0 xc0, 0 xc2, 0 x44, 0 xc2, 0 xe2, 0 xa0, 0 x1c,
0 xb7, 0 x9a, },
{ 0 xe4, 0 x7e, 0 x72, 0 xc6, 0 x12, 0 x8e, 0 x7c, 0 xfc, 0 xbd, 0 xe2, 0 x08, 0 x31,
0 x3d, 0 x47, 0 x3d, },
{ 0 x08, 0 x97, 0 x5b, 0 x80, 0 xae, 0 xc4, 0 x1d, 0 x50, 0 x77, 0 xdf, 0 x1f, 0 xd0,
0 x24, 0 xf0, 0 x17, 0 xc0, },
{ 0 x01, 0 xb6, 0 x29, 0 xf4, 0 xaf, 0 x78, 0 x5f, 0 xb6, 0 x91, 0 xdd, 0 x76, 0 x76,
0 xd2, 0 xfd, 0 x0c, 0 x47, 0 x40, },
{ 0 xa1, 0 xd8, 0 x09, 0 x97, 0 x7a, 0 xa6, 0 xc8, 0 x94, 0 xf6, 0 x91, 0 x7b, 0 xae,
0 x2b, 0 x9f, 0 x0d, 0 x83, 0 x48, 0 xf7, },
{ 0 x12, 0 xd5, 0 x53, 0 x7d, 0 x9a, 0 xb0, 0 xbe, 0 xd9, 0 xed, 0 xe9, 0 x9e, 0 xee,
0 x61, 0 x5b, 0 x42, 0 xf2, 0 xc0, 0 x73, 0 xc0, },
{ 0 xd5, 0 x77, 0 xd6, 0 x5c, 0 x6e, 0 xa5, 0 x69, 0 x2b, 0 x3b, 0 x8c, 0 xd6, 0 x7d,
0 x1d, 0 xbe, 0 x2c, 0 xa1, 0 x02, 0 x21, 0 xcd, 0 x29, },
{ 0 xa4, 0 x98, 0 x80, 0 xca, 0 x22, 0 xcf, 0 x6a, 0 xab, 0 x5e, 0 x40, 0 x0d, 0 x61,
0 x08, 0 x21, 0 xef, 0 xc0, 0 x6c, 0 x52, 0 xb4, 0 xb0, 0 x53, },
{ 0 xbf, 0 xaf, 0 x8f, 0 x3b, 0 x7a, 0 x97, 0 x33, 0 xe5, 0 xca, 0 x07, 0 x37, 0 xfd,
0 x15, 0 xdf, 0 xce, 0 x26, 0 x2a, 0 xb1, 0 xa7, 0 x0b, 0 xb3, 0 xac, },
{ 0 x16, 0 x22, 0 xe1, 0 xbc, 0 x99, 0 x4e, 0 x01, 0 xf0, 0 xfa, 0 xff, 0 x8f, 0 xa5,
0 x0c, 0 x61, 0 xb0, 0 xad, 0 xcc, 0 xb1, 0 xe1, 0 x21, 0 x46, 0 xfa, 0 x2e, },
{ 0 x11, 0 x5b, 0 x0b, 0 x2b, 0 xe6, 0 x14, 0 xc1, 0 xd5, 0 x4d, 0 x71, 0 x5e, 0 x17,
0 xea, 0 x23, 0 xdd, 0 x6c, 0 xbd, 0 x1d, 0 xbe, 0 x12, 0 x1b, 0 xee, 0 x4c, 0 x1a, },
{ 0 x40, 0 x88, 0 x22, 0 xf3, 0 x20, 0 x6c, 0 xed, 0 xe1, 0 x36, 0 x34, 0 x62, 0 x2c,
0 x98, 0 x83, 0 x52, 0 xe2, 0 x25, 0 xee, 0 xe9, 0 xf5, 0 xe1, 0 x17, 0 xf0, 0 x5c,
0 xae, },
{ 0 xc3, 0 x76, 0 x37, 0 xde, 0 x95, 0 x8c, 0 xca, 0 x2b, 0 x0c, 0 x23, 0 xe7, 0 xb5,
0 x38, 0 x70, 0 x61, 0 xcc, 0 xff, 0 xd3, 0 x95, 0 x7b, 0 xf3, 0 xff, 0 x1f, 0 x9d,
0 x59, 0 x00, },
{ 0 x0c, 0 x19, 0 x52, 0 x05, 0 x22, 0 x53, 0 xcb, 0 x48, 0 xd7, 0 x10, 0 x0e, 0 x7e,
0 x14, 0 x69, 0 xb5, 0 xa2, 0 x92, 0 x43, 0 xa3, 0 x9e, 0 x4b, 0 x8f, 0 x51, 0 x2c,
0 x5a, 0 x2c, 0 x3b, },
{ 0 xe1, 0 x9d, 0 x70, 0 x70, 0 x28, 0 xec, 0 x86, 0 x40, 0 x55, 0 x33, 0 x56, 0 xda,
0 x88, 0 xca, 0 xee, 0 xc8, 0 x6a, 0 x20, 0 xb1, 0 xe5, 0 x3d, 0 x57, 0 xf8, 0 x3c,
0 x10, 0 x07, 0 x2a, 0 xc4, },
{ 0 x0b, 0 xae, 0 xf1, 0 xc4, 0 x79, 0 xee, 0 x1b, 0 x3d, 0 x27, 0 x35, 0 x8d, 0 x14,
0 xd6, 0 xae, 0 x4e, 0 x3c, 0 xe9, 0 x53, 0 x50, 0 xb5, 0 xcc, 0 x0c, 0 xf7, 0 xdf,
0 xee, 0 xa1, 0 x74, 0 xd6, 0 x71, },
{ 0 xe6, 0 xa4, 0 xf4, 0 x99, 0 x98, 0 xb9, 0 x80, 0 xea, 0 x96, 0 x7f, 0 x4f, 0 x33,
0 xcf, 0 x74, 0 x25, 0 x6f, 0 x17, 0 x6c, 0 xbf, 0 xf5, 0 x5c, 0 x38, 0 xd0, 0 xff,
0 x96, 0 xcb, 0 x13, 0 xf9, 0 xdf, 0 xfd, },
{ 0 xbe, 0 x92, 0 xeb, 0 xba, 0 x44, 0 x2c, 0 x24, 0 x74, 0 xd4, 0 x03, 0 x27, 0 x3c,
0 x5d, 0 x5b, 0 x03, 0 x30, 0 x87, 0 x63, 0 x69, 0 xe0, 0 xb8, 0 x94, 0 xf4, 0 x44,
0 x7e, 0 xad, 0 xcd, 0 x20, 0 x12, 0 x16, 0 x79, },
{ 0 x30, 0 xf1, 0 xc4, 0 x8e, 0 x05, 0 x90, 0 x2a, 0 x97, 0 x63, 0 x94, 0 x46, 0 xff,
0 xce, 0 xd8, 0 x67, 0 xa7, 0 xac, 0 x33, 0 x8c, 0 x95, 0 xb7, 0 xcd, 0 xa3, 0 x23,
0 x98, 0 x9d, 0 x76, 0 x6c, 0 x9d, 0 xa8, 0 xd6, 0 x8a, },
{ 0 xbe, },
{ 0 x17, 0 x6c, },
{ 0 x1a, 0 x42, 0 x4f, },
{ 0 xba, 0 xaf, 0 xb7, 0 x65, },
{ 0 xc2, 0 x63, 0 x43, 0 x6a, 0 xea, },
{ 0 xe4, 0 x4d, 0 xad, 0 xf2, 0 x0b, 0 x02, },
{ 0 x04, 0 xc7, 0 xc4, 0 x7f, 0 xa9, 0 x2b, 0 xce, },
{ 0 x66, 0 xf6, 0 x67, 0 xcb, 0 x03, 0 x53, 0 xc8, 0 xf1, },
{ 0 x56, 0 xa3, 0 x60, 0 x78, 0 xc9, 0 x5f, 0 x70, 0 x1b, 0 x5e, },
{ 0 x99, 0 xff, 0 x81, 0 x7c, 0 x13, 0 x3c, 0 x29, 0 x79, 0 x4b, 0 x65, },
{ 0 x51, 0 x10, 0 x50, 0 x93, 0 x01, 0 x93, 0 xb7, 0 x01, 0 xc9, 0 x18, 0 xb7, },
{ 0 x8e, 0 x3c, 0 x42, 0 x1e, 0 x5e, 0 x7d, 0 xc1, 0 x50, 0 x70, 0 x1f, 0 x00, 0 x98, },
{ 0 x5f, 0 xd9, 0 x9b, 0 xc8, 0 xd7, 0 xb2, 0 x72, 0 x62, 0 x1a, 0 x1e, 0 xba, 0 x92,
0 xe9, },
{ 0 x70, 0 x2b, 0 xba, 0 xfe, 0 xad, 0 x5d, 0 x96, 0 x3f, 0 x27, 0 xc2, 0 x41, 0 x6d,
0 xc4, 0 xb3, },
{ 0 xae, 0 xe0, 0 xd5, 0 xd4, 0 xc7, 0 xae, 0 x15, 0 x5e, 0 xdc, 0 xdd, 0 x33, 0 x60,
0 xd7, 0 xd3, 0 x5e, },
{ 0 x79, 0 x8e, 0 xbc, 0 x9e, 0 x20, 0 xb9, 0 x19, 0 x4b, 0 x63, 0 x80, 0 xf3, 0 x16,
0 xaf, 0 x39, 0 xbd, 0 x92, },
{ 0 xc2, 0 x0e, 0 x85, 0 xa0, 0 x0b, 0 x9a, 0 xb0, 0 xec, 0 xde, 0 x38, 0 xd3, 0 x10,
0 xd9, 0 xa7, 0 x66, 0 x27, 0 xcf, },
{ 0 x0e, 0 x3b, 0 x75, 0 x80, 0 x67, 0 x14, 0 x0c, 0 x02, 0 x90, 0 xd6, 0 xb3, 0 x02,
0 x81, 0 xf6, 0 xa6, 0 x87, 0 xce, 0 x58, },
{ 0 x79, 0 xb5, 0 xe9, 0 x5d, 0 x52, 0 x4d, 0 xf7, 0 x59, 0 xf4, 0 x2e, 0 x27, 0 xdd,
0 xb3, 0 xed, 0 x57, 0 x5b, 0 x82, 0 xea, 0 x6f, },
{ 0 xa2, 0 x97, 0 xf5, 0 x80, 0 x02, 0 x3d, 0 xde, 0 xa3, 0 xf9, 0 xf6, 0 xab, 0 xe3,
0 x57, 0 x63, 0 x7b, 0 x9b, 0 x10, 0 x42, 0 x6f, 0 xf2, },
{ 0 x12, 0 x7a, 0 xfc, 0 xb7, 0 x67, 0 x06, 0 x0c, 0 x78, 0 x1a, 0 xfe, 0 x88, 0 x4f,
0 xc6, 0 xac, 0 x52, 0 x96, 0 x64, 0 x28, 0 x97, 0 x84, 0 x06, },
{ 0 xc5, 0 x04, 0 x44, 0 x6b, 0 xb2, 0 xa5, 0 xa4, 0 x66, 0 xe1, 0 x76, 0 xa2, 0 x51,
0 xf9, 0 x59, 0 x69, 0 x97, 0 x56, 0 x0b, 0 xbf, 0 x50, 0 xb3, 0 x34, },
{ 0 x21, 0 x32, 0 x6b, 0 x42, 0 xb5, 0 xed, 0 x71, 0 x8d, 0 xf7, 0 x5a, 0 x35, 0 xe3,
0 x90, 0 xe2, 0 xee, 0 xaa, 0 x89, 0 xf6, 0 xc9, 0 x9c, 0 x4d, 0 x73, 0 xf4, },
{ 0 x4c, 0 xa6, 0 x09, 0 xf4, 0 x48, 0 xe7, 0 x46, 0 xbc, 0 x49, 0 xfc, 0 xe5, 0 xda,
0 xd1, 0 x87, 0 x13, 0 x17, 0 x4c, 0 x59, 0 x71, 0 x26, 0 x5b, 0 x2c, 0 x42, 0 xb7, },
{ 0 x13, 0 x63, 0 xf3, 0 x40, 0 x02, 0 xe5, 0 xa3, 0 x3a, 0 x5e, 0 x8e, 0 xf8, 0 xb6,
0 x8a, 0 x49, 0 x60, 0 x76, 0 x34, 0 x72, 0 x94, 0 x73, 0 xf6, 0 xd9, 0 x21, 0 x6a,
0 x26, },
{ 0 xdf, 0 x75, 0 x16, 0 x10, 0 x1b, 0 x5e, 0 x81, 0 xc3, 0 xc8, 0 xde, 0 x34, 0 x24,
0 xb0, 0 x98, 0 xeb, 0 x1b, 0 x8f, 0 xa1, 0 x9b, 0 x05, 0 xee, 0 xa5, 0 xe9, 0 x35,
0 xf4, 0 x1d, },
{ 0 xcd, 0 x21, 0 x93, 0 x6e, 0 x5b, 0 xa0, 0 x26, 0 x2b, 0 x21, 0 x0e, 0 xa0, 0 xb9,
0 x1c, 0 xb5, 0 xbb, 0 xb8, 0 xf8, 0 x1e, 0 xff, 0 x5c, 0 xa8, 0 xf9, 0 x39, 0 x46,
0 x4e, 0 x29, 0 x26, },
{ 0 x73, 0 x7f, 0 x0e, 0 x3b, 0 x0b, 0 x5c, 0 xf9, 0 x60, 0 xaa, 0 x88, 0 xa1, 0 x09,
0 xb1, 0 x5d, 0 x38, 0 x7b, 0 x86, 0 x8f, 0 x13, 0 x7a, 0 x8d, 0 x72, 0 x7a, 0 x98,
0 x1a, 0 x5b, 0 xff, 0 xc9, },
{ 0 xd3, 0 x3c, 0 x61, 0 x71, 0 x44, 0 x7e, 0 x31, 0 x74, 0 x98, 0 x9d, 0 x9a, 0 xd2,
0 x27, 0 xf3, 0 x46, 0 x43, 0 x42, 0 x51, 0 xd0, 0 x5f, 0 xe9, 0 x1c, 0 x5c, 0 x69,
0 xbf, 0 xf6, 0 xbe, 0 x3c, 0 x40, },
{ 0 x31, 0 x99, 0 x31, 0 x9f, 0 xaa, 0 x43, 0 x2e, 0 x77, 0 x3e, 0 x74, 0 x26, 0 x31,
0 x5e, 0 x61, 0 xf1, 0 x87, 0 xe2, 0 xeb, 0 x9b, 0 xcd, 0 xd0, 0 x3a, 0 xee, 0 x20,
0 x7e, 0 x10, 0 x0a, 0 x0b, 0 x7e, 0 xfa, },
{ 0 xa4, 0 x27, 0 x80, 0 x67, 0 x81, 0 x2a, 0 xa7, 0 x62, 0 xf7, 0 x6e, 0 xda, 0 xd4,
0 x5c, 0 x39, 0 x74, 0 xad, 0 x7e, 0 xbe, 0 xad, 0 xa5, 0 x84, 0 x7f, 0 xa9, 0 x30,
0 x5d, 0 xdb, 0 xe2, 0 x05, 0 x43, 0 xf7, 0 x1b, },
{ 0 x0b, 0 x37, 0 xd8, 0 x02, 0 xe1, 0 x83, 0 xd6, 0 x80, 0 xf2, 0 x35, 0 xc2, 0 xb0,
0 x37, 0 xef, 0 xef, 0 x5e, 0 x43, 0 x93, 0 xf0, 0 x49, 0 x45, 0 x0a, 0 xef, 0 xb5,
0 x76, 0 x70, 0 x12, 0 x44, 0 xc4, 0 xdb, 0 xf5, 0 x7a, },
{ 0 x1f, },
{ 0 x82, 0 x60, },
{ 0 xcc, 0 xe3, 0 x08, },
{ 0 x56, 0 x17, 0 xe4, 0 x59, },
{ 0 xe2, 0 xd7, 0 x9e, 0 xc4, 0 x4c, },
{ 0 xb2, 0 xad, 0 xd3, 0 x78, 0 x58, 0 x5a, },
{ 0 xce, 0 x43, 0 xb4, 0 x02, 0 x96, 0 xab, 0 x3c, },
{ 0 xe6, 0 x05, 0 x1a, 0 x73, 0 x22, 0 x32, 0 xbb, 0 x77, },
{ 0 x23, 0 xe7, 0 xda, 0 xfe, 0 x2c, 0 xef, 0 x8c, 0 x22, 0 xec, },
{ 0 xe9, 0 x8e, 0 x55, 0 x38, 0 xd1, 0 xd7, 0 x35, 0 x23, 0 x98, 0 xc7, },
{ 0 xb5, 0 x81, 0 x1a, 0 xe5, 0 xb5, 0 xa5, 0 xd9, 0 x4d, 0 xca, 0 x41, 0 xe7, },
{ 0 x41, 0 x16, 0 x16, 0 x95, 0 x8d, 0 x9e, 0 x0c, 0 xea, 0 x8c, 0 x71, 0 x9a, 0 xc1, },
{ 0 x7c, 0 x33, 0 xc0, 0 xa4, 0 x00, 0 x62, 0 xea, 0 x60, 0 x67, 0 xe4, 0 x20, 0 xbc,
0 x5b, },
{ 0 xdb, 0 xb1, 0 xdc, 0 xfd, 0 x08, 0 xc0, 0 xde, 0 x82, 0 xd1, 0 xde, 0 x38, 0 xc0,
0 x90, 0 x48, },
{ 0 x37, 0 x18, 0 x2e, 0 x0d, 0 x61, 0 xaa, 0 x61, 0 xd7, 0 x86, 0 x20, 0 x16, 0 x60,
0 x04, 0 xd9, 0 xd5, },
{ 0 xb0, 0 xcf, 0 x2c, 0 x4c, 0 x5e, 0 x5b, 0 x4f, 0 x2a, 0 x23, 0 x25, 0 x58, 0 x47,
0 xe5, 0 x31, 0 x06, 0 x70, },
{ 0 x91, 0 xa0, 0 xa3, 0 x86, 0 x4e, 0 xe0, 0 x72, 0 x38, 0 x06, 0 x67, 0 x59, 0 x5c,
0 x70, 0 x25, 0 xdb, 0 x33, 0 x27, },
{ 0 x44, 0 x58, 0 x66, 0 xb8, 0 x58, 0 xc7, 0 x13, 0 xed, 0 x4c, 0 xc0, 0 xf4, 0 x9a,
0 x1e, 0 x67, 0 x75, 0 x33, 0 xb6, 0 xb8, },
{ 0 x7f, 0 x98, 0 x4a, 0 x8e, 0 x50, 0 xa2, 0 x5c, 0 xcd, 0 x59, 0 xde, 0 x72, 0 xb3,
0 x9d, 0 xc3, 0 x09, 0 x8a, 0 xab, 0 x56, 0 xf1, },
{ 0 x80, 0 x96, 0 x49, 0 x1a, 0 x59, 0 xa2, 0 xc5, 0 xd5, 0 xa7, 0 x20, 0 x8a, 0 xb7,
0 x27, 0 x62, 0 x84, 0 x43, 0 xc6, 0 xe1, 0 x1b, 0 x5d, },
{ 0 x6b, 0 xb7, 0 x2b, 0 x26, 0 x62, 0 x14, 0 x70, 0 x19, 0 x3d, 0 x4d, 0 xac, 0 xac,
0 x63, 0 x58, 0 x5e, 0 x94, 0 xb5, 0 xb7, 0 xe8, 0 xe8, 0 xa2, },
{ 0 x20, 0 xa8, 0 xc0, 0 xfd, 0 x63, 0 x3d, 0 x6e, 0 x98, 0 xcf, 0 x0c, 0 x49, 0 x98,
0 xe4, 0 x5a, 0 xfe, 0 x8c, 0 xaa, 0 x70, 0 x82, 0 x1c, 0 x7b, 0 x74, },
{ 0 xc8, 0 xe8, 0 xdd, 0 xdf, 0 x69, 0 x30, 0 x01, 0 xc2, 0 x0f, 0 x7e, 0 x2f, 0 x11,
0 xcc, 0 x3e, 0 x17, 0 xa5, 0 x69, 0 x40, 0 x3f, 0 x0e, 0 x79, 0 x7f, 0 xcf, },
{ 0 xdb, 0 x61, 0 xc0, 0 xe2, 0 x2e, 0 x49, 0 x07, 0 x31, 0 x1d, 0 x91, 0 x42, 0 x8a,
0 xfc, 0 x5e, 0 xd3, 0 xf8, 0 x56, 0 x1f, 0 x2b, 0 x73, 0 xfd, 0 x9f, 0 xb2, 0 x8e, },
{ 0 x0c, 0 x89, 0 x55, 0 x0c, 0 x1f, 0 x59, 0 x2c, 0 x9d, 0 x1b, 0 x29, 0 x1d, 0 x41,
0 x1d, 0 xe6, 0 x47, 0 x8f, 0 x8c, 0 x2b, 0 xea, 0 x8f, 0 xf0, 0 xff, 0 x21, 0 x70,
0 x88, },
{ 0 x12, 0 x18, 0 x95, 0 xa6, 0 x59, 0 xb1, 0 x31, 0 x24, 0 x45, 0 x67, 0 x55, 0 xa4,
0 x1a, 0 x2d, 0 x48, 0 x67, 0 x1b, 0 x43, 0 x88, 0 x2d, 0 x8e, 0 xa0, 0 x70, 0 xb3,
0 xc6, 0 xbb, },
{ 0 xe7, 0 xb1, 0 x1d, 0 xb2, 0 x76, 0 x4d, 0 x68, 0 x68, 0 x68, 0 x23, 0 x02, 0 x55,
0 x3a, 0 xe2, 0 xe5, 0 xd5, 0 x4b, 0 x43, 0 xf9, 0 x34, 0 x77, 0 x5c, 0 xa1, 0 xf5,
0 x55, 0 xfd, 0 x4f, },
{ 0 x8c, 0 x87, 0 x5a, 0 x08, 0 x3a, 0 x73, 0 xad, 0 x61, 0 xe1, 0 xe7, 0 x99, 0 x7e,
0 xf0, 0 x5d, 0 xe9, 0 x5d, 0 x16, 0 x43, 0 x80, 0 x2f, 0 xd0, 0 x66, 0 x34, 0 xe2,
0 x42, 0 x64, 0 x3b, 0 x1a, },
{ 0 x39, 0 xc1, 0 x99, 0 xcf, 0 x22, 0 xbf, 0 x16, 0 x8f, 0 x9f, 0 x80, 0 x7f, 0 x95,
0 x0a, 0 x05, 0 x67, 0 x27, 0 xe7, 0 x15, 0 xdf, 0 x9d, 0 xb2, 0 xfe, 0 x1c, 0 xb5,
0 x1d, 0 x60, 0 x8f, 0 x8a, 0 x1d, },
{ 0 x9b, 0 x6e, 0 x08, 0 x09, 0 x06, 0 x73, 0 xab, 0 x68, 0 x02, 0 x62, 0 x1a, 0 xe4,
0 xd4, 0 xdf, 0 xc7, 0 x02, 0 x4c, 0 x6a, 0 x5f, 0 xfd, 0 x23, 0 xac, 0 xae, 0 x6d,
0 x43, 0 xa4, 0 x7a, 0 x50, 0 x60, 0 x3c, },
{ 0 x1d, 0 xb4, 0 xc6, 0 xe1, 0 xb1, 0 x4b, 0 xe3, 0 xf2, 0 xe2, 0 x1a, 0 x73, 0 x1b,
0 xa0, 0 x92, 0 xa7, 0 xf5, 0 xff, 0 x8f, 0 x8b, 0 x5d, 0 xdf, 0 xa8, 0 x04, 0 xb3,
0 xb0, 0 xf7, 0 xcc, 0 x12, 0 xfa, 0 x35, 0 x46, },
{ 0 x49, 0 x45, 0 x97, 0 x11, 0 x0f, 0 x1c, 0 x60, 0 x8e, 0 xe8, 0 x47, 0 x30, 0 xcf,
0 x60, 0 xa8, 0 x71, 0 xc5, 0 x1b, 0 xe9, 0 x39, 0 x4d, 0 x49, 0 xb6, 0 x12, 0 x1f,
0 x24, 0 xab, 0 x37, 0 xff, 0 x83, 0 xc2, 0 xe1, 0 x3a, },
{ 0 x60, },
{ 0 x24, 0 x26, },
{ 0 x47, 0 xeb, 0 xc9, },
{ 0 x4a, 0 xd0, 0 xbc, 0 xf0, },
{ 0 x8e, 0 x2b, 0 xc9, 0 x85, 0 x3c, },
{ 0 xa2, 0 x07, 0 x15, 0 xb8, 0 x12, 0 x74, },
{ 0 x0f, 0 xdb, 0 x5b, 0 x33, 0 x69, 0 xfe, 0 x4b, },
{ 0 xa2, 0 x86, 0 x54, 0 xf4, 0 xfd, 0 xb2, 0 xd4, 0 xe6, },
{ 0 xbb, 0 x84, 0 x78, 0 x49, 0 x27, 0 x8e, 0 x61, 0 xda, 0 x60, },
{ 0 x04, 0 xc3, 0 xcd, 0 xaa, 0 x8f, 0 xa7, 0 x03, 0 xc9, 0 xf9, 0 xb6, },
{ 0 xf8, 0 x27, 0 x1d, 0 x61, 0 xdc, 0 x21, 0 x42, 0 xdd, 0 xad, 0 x92, 0 x40, },
{ 0 x12, 0 x87, 0 xdf, 0 xc2, 0 x41, 0 x45, 0 x5a, 0 x36, 0 x48, 0 x5b, 0 x51, 0 x2b, },
{ 0 xbb, 0 x37, 0 x5d, 0 x1f, 0 xf1, 0 x68, 0 x7a, 0 xc4, 0 xa5, 0 xd2, 0 xa4, 0 x91,
0 x8d, },
{ 0 x5b, 0 x27, 0 xd1, 0 x04, 0 x54, 0 x52, 0 x9f, 0 xa3, 0 x47, 0 x86, 0 x33, 0 x33,
0 xbf, 0 xa0, },
{ 0 xcf, 0 x04, 0 xea, 0 xf8, 0 x03, 0 x2a, 0 x43, 0 xff, 0 xa6, 0 x68, 0 x21, 0 x4c,
0 xd5, 0 x4b, 0 xed, },
{ 0 xaf, 0 xb8, 0 xbc, 0 x63, 0 x0f, 0 x18, 0 x4d, 0 xe2, 0 x7a, 0 xdd, 0 x46, 0 x44,
0 xc8, 0 x24, 0 x0a, 0 xb7, },
{ 0 x3e, 0 xdc, 0 x36, 0 xe4, 0 x89, 0 xb1, 0 xfa, 0 xc6, 0 x40, 0 x93, 0 x2e, 0 x75,
0 xb2, 0 x15, 0 xd1, 0 xb1, 0 x10, },
{ 0 x6c, 0 xd8, 0 x20, 0 x3b, 0 x82, 0 x79, 0 xf9, 0 xc8, 0 xbc, 0 x9d, 0 xe0, 0 x35,
0 xbe, 0 x1b, 0 x49, 0 x1a, 0 xbc, 0 x3a, },
{ 0 x78, 0 x65, 0 x2c, 0 xbe, 0 x35, 0 x67, 0 xdc, 0 x78, 0 xd4, 0 x41, 0 xf6, 0 xc9,
0 xde, 0 xde, 0 x1f, 0 x18, 0 x13, 0 x31, 0 x11, },
{ 0 x8a, 0 x7f, 0 xb1, 0 x33, 0 x8f, 0 x0c, 0 x3c, 0 x0a, 0 x06, 0 x61, 0 xf0, 0 x47,
0 x29, 0 x1b, 0 x29, 0 xbc, 0 x1c, 0 x47, 0 xef, 0 x7a, },
{ 0 x65, 0 x91, 0 xf1, 0 xe6, 0 xb3, 0 x96, 0 xd3, 0 x8c, 0 xc2, 0 x4a, 0 x59, 0 x35,
0 x72, 0 x8e, 0 x0b, 0 x9a, 0 x87, 0 xca, 0 x34, 0 x7b, 0 x63, },
{ 0 x5f, 0 x08, 0 x87, 0 x80, 0 x56, 0 x25, 0 x89, 0 x77, 0 x61, 0 x8c, 0 x64, 0 xa1,
0 x59, 0 x6d, 0 x59, 0 x62, 0 xe8, 0 x4a, 0 xc8, 0 x58, 0 x99, 0 xd1, },
{ 0 x23, 0 x87, 0 x1d, 0 xed, 0 x6f, 0 xf2, 0 x91, 0 x90, 0 xe2, 0 xfe, 0 x43, 0 x21,
0 xaf, 0 x97, 0 xc6, 0 xbc, 0 xd7, 0 x15, 0 xc7, 0 x2d, 0 x08, 0 x77, 0 x91, },
{ 0 x90, 0 x47, 0 x9a, 0 x9e, 0 x3a, 0 xdf, 0 xf3, 0 xc9, 0 x4c, 0 x1e, 0 xa7, 0 xd4,
0 x6a, 0 x32, 0 x90, 0 xfe, 0 xb7, 0 xb6, 0 x7b, 0 xfa, 0 x96, 0 x61, 0 xfb, 0 xa4, },
{ 0 xb1, 0 x67, 0 x60, 0 x45, 0 xb0, 0 x96, 0 xc5, 0 x15, 0 x9f, 0 x4d, 0 x26, 0 xd7,
0 x9d, 0 xf1, 0 xf5, 0 x6d, 0 x21, 0 x00, 0 x94, 0 x31, 0 x64, 0 x94, 0 xd3, 0 xa7,
0 xd3, },
{ 0 x02, 0 x3e, 0 xaf, 0 xf3, 0 x79, 0 x73, 0 xa5, 0 xf5, 0 xcc, 0 x7a, 0 x7f, 0 xfb,
0 x79, 0 x2b, 0 x85, 0 x8c, 0 x88, 0 x72, 0 x06, 0 xbe, 0 xfe, 0 xaf, 0 xc1, 0 x16,
0 xa6, 0 xd6, },
{ 0 x2a, 0 xb0, 0 x1a, 0 xe5, 0 xaa, 0 x6e, 0 xb3, 0 xae, 0 x53, 0 x85, 0 x33, 0 x80,
0 x75, 0 xae, 0 x30, 0 xe6, 0 xb8, 0 x72, 0 x42, 0 xf6, 0 x25, 0 x4f, 0 x38, 0 x88,
0 x55, 0 xd1, 0 xa9, },
{ 0 x90, 0 xd8, 0 x0c, 0 xc0, 0 x93, 0 x4b, 0 x4f, 0 x9e, 0 x65, 0 x6c, 0 xa1, 0 x54,
0 xa6, 0 xf6, 0 x6e, 0 xca, 0 xd2, 0 xbb, 0 x7e, 0 x6a, 0 x1c, 0 xd3, 0 xce, 0 x46,
0 xef, 0 xb0, 0 x00, 0 x8d, },
{ 0 xed, 0 x9c, 0 x49, 0 xcd, 0 xc2, 0 xde, 0 x38, 0 x0e, 0 xe9, 0 x98, 0 x6c, 0 xc8,
0 x90, 0 x9e, 0 x3c, 0 xd4, 0 xd3, 0 xeb, 0 x88, 0 x32, 0 xc7, 0 x28, 0 xe3, 0 x94,
0 x1c, 0 x9f, 0 x8b, 0 xf3, 0 xcb, },
{ 0 xac, 0 xe7, 0 x92, 0 x16, 0 xb4, 0 x14, 0 xa0, 0 xe4, 0 x04, 0 x79, 0 xa2, 0 xf4,
0 x31, 0 xe6, 0 x0c, 0 x26, 0 xdc, 0 xbf, 0 x2f, 0 x69, 0 x1b, 0 x55, 0 x94, 0 x67,
0 xda, 0 x0c, 0 xd7, 0 x32, 0 x1f, 0 xef, },
{ 0 x68, 0 x63, 0 x85, 0 x57, 0 x95, 0 x9e, 0 x42, 0 x27, 0 x41, 0 x43, 0 x42, 0 x02,
0 xa5, 0 x78, 0 xa7, 0 xc6, 0 x43, 0 xc1, 0 x6a, 0 xba, 0 x70, 0 x80, 0 xcd, 0 x04,
0 xb6, 0 x78, 0 x76, 0 x29, 0 xf3, 0 xe8, 0 xa0, },
{ 0 xe6, 0 xac, 0 x8d, 0 x9d, 0 xf0, 0 xc0, 0 xf7, 0 xf7, 0 xe3, 0 x3e, 0 x4e, 0 x28,
0 x0f, 0 x59, 0 xb2, 0 x67, 0 x9e, 0 x84, 0 x34, 0 x42, 0 x96, 0 x30, 0 x2b, 0 xca,
0 x49, 0 xb6, 0 xc5, 0 x9a, 0 x84, 0 x59, 0 xa7, 0 x81, },
{ 0 x7e, },
{ 0 x1e, 0 x21, },
{ 0 x26, 0 xd3, 0 xdd, },
{ 0 x2c, 0 xd4, 0 xb3, 0 x3d, },
{ 0 x86, 0 x7b, 0 x76, 0 x3c, 0 xf0, },
{ 0 x12, 0 xc3, 0 x70, 0 x1d, 0 x55, 0 x18, },
{ 0 x96, 0 xc2, 0 xbd, 0 x61, 0 x55, 0 xf4, 0 x24, },
{ 0 x20, 0 x51, 0 xf7, 0 x86, 0 x58, 0 x8f, 0 x07, 0 x2a, },
{ 0 x93, 0 x15, 0 xa8, 0 x1d, 0 xda, 0 x97, 0 xee, 0 x0e, 0 x6c, },
{ 0 x39, 0 x93, 0 xdf, 0 xd5, 0 x0e, 0 xca, 0 xdc, 0 x7a, 0 x92, 0 xce, },
{ 0 x60, 0 xd5, 0 xfd, 0 xf5, 0 x1b, 0 x26, 0 x82, 0 x26, 0 x73, 0 x02, 0 xbc, },
{ 0 x98, 0 xf2, 0 x34, 0 xe1, 0 xf5, 0 xfb, 0 x00, 0 xac, 0 x10, 0 x4a, 0 x38, 0 x9f, },
{ 0 xda, 0 x3a, 0 x92, 0 x8a, 0 xd0, 0 xcd, 0 x12, 0 xcd, 0 x15, 0 xbb, 0 xab, 0 x77,
0 x66, },
{ 0 xa2, 0 x92, 0 x1a, 0 xe5, 0 xca, 0 x0c, 0 x30, 0 x75, 0 xeb, 0 xaf, 0 x00, 0 x31,
0 x55, 0 x66, },
{ 0 x06, 0 xea, 0 xfd, 0 x3e, 0 x86, 0 x38, 0 x62, 0 x4e, 0 xa9, 0 x12, 0 xa4, 0 x12,
0 x43, 0 xbf, 0 xa1, },
{ 0 xe4, 0 x71, 0 x7b, 0 x94, 0 xdb, 0 xa0, 0 xd2, 0 xff, 0 x9b, 0 xeb, 0 xad, 0 x8e,
0 x95, 0 x8a, 0 xc5, 0 xed, },
{ 0 x25, 0 x5a, 0 x77, 0 x71, 0 x41, 0 x0e, 0 x7a, 0 xe9, 0 xed, 0 x0c, 0 x10, 0 xef,
0 xf6, 0 x2b, 0 x3a, 0 xba, 0 x60, },
{ 0 xee, 0 xe2, 0 xa3, 0 x67, 0 x64, 0 x1d, 0 xc6, 0 x04, 0 xc4, 0 xe1, 0 x68, 0 xd2,
0 x6e, 0 xd2, 0 x91, 0 x75, 0 x53, 0 x07, },
{ 0 xe0, 0 xf6, 0 x4d, 0 x8f, 0 x68, 0 xfc, 0 x06, 0 x7e, 0 x18, 0 x79, 0 x7f, 0 x2b,
0 x6d, 0 xef, 0 x46, 0 x7f, 0 xab, 0 xb2, 0 xad, },
{ 0 x3d, 0 x35, 0 x88, 0 x9f, 0 x2e, 0 xcf, 0 x96, 0 x45, 0 x07, 0 x60, 0 x71, 0 x94,
0 x00, 0 x8d, 0 xbf, 0 xf4, 0 xef, 0 x46, 0 x2e, 0 x3c, },
{ 0 x43, 0 xcf, 0 x98, 0 xf7, 0 x2d, 0 xf4, 0 x17, 0 xe7, 0 x8c, 0 x05, 0 x2d, 0 x9b,
0 x24, 0 xfb, 0 x4d, 0 xea, 0 x4a, 0 xec, 0 x01, 0 x25, 0 x29, },
{ 0 x8e, 0 x73, 0 x9a, 0 x78, 0 x11, 0 xfe, 0 x48, 0 xa0, 0 x3b, 0 x1a, 0 x26, 0 xdf,
0 x25, 0 xe9, 0 x59, 0 x1c, 0 x70, 0 x07, 0 x9f, 0 xdc, 0 xa0, 0 xa6, },
{ 0 xe8, 0 x47, 0 x71, 0 xc7, 0 x3e, 0 xdf, 0 xb5, 0 x13, 0 xb9, 0 x85, 0 x13, 0 xa8,
0 x54, 0 x47, 0 x6e, 0 x59, 0 x96, 0 x09, 0 x13, 0 x5f, 0 x82, 0 x16, 0 x0b, },
{ 0 xfb, 0 xc0, 0 x8c, 0 x03, 0 x21, 0 xb3, 0 xc4, 0 xb5, 0 x43, 0 x32, 0 x6c, 0 xea,
0 x7f, 0 xa8, 0 x43, 0 x91, 0 xe8, 0 x4e, 0 x3f, 0 xbf, 0 x45, 0 x58, 0 x6a, 0 xa3, },
{ 0 x55, 0 xf8, 0 xf3, 0 x00, 0 x76, 0 x09, 0 xef, 0 x69, 0 x5d, 0 xd2, 0 x8a, 0 xf2,
0 x65, 0 xc3, 0 xcb, 0 x9b, 0 x43, 0 xfd, 0 xb1, 0 x7e, 0 x7f, 0 xa1, 0 x94, 0 xb0,
0 xd7, },
{ 0 xaa, 0 x13, 0 xc1, 0 x51, 0 x40, 0 x6d, 0 x8d, 0 x4c, 0 x0a, 0 x95, 0 x64, 0 x7b,
0 xd1, 0 x96, 0 xb6, 0 x56, 0 xb4, 0 x5b, 0 xcf, 0 xd6, 0 xd9, 0 x15, 0 x97, 0 xdd,
0 xb6, 0 xef, },
{ 0 xaf, 0 xb7, 0 x36, 0 xb0, 0 x04, 0 xdb, 0 xd7, 0 x9c, 0 x9a, 0 x44, 0 xc4, 0 xf6,
0 x1f, 0 x12, 0 x21, 0 x2d, 0 x59, 0 x30, 0 x54, 0 xab, 0 x27, 0 x61, 0 xa3, 0 x57,
0 xef, 0 xf8, 0 x53, },
{ 0 x97, 0 x34, 0 x45, 0 x3e, 0 xce, 0 x7c, 0 x35, 0 xa2, 0 xda, 0 x9f, 0 x4b, 0 x46,
0 x6c, 0 x11, 0 x67, 0 xff, 0 x2f, 0 x76, 0 x58, 0 x15, 0 x71, 0 xfa, 0 x44, 0 x89,
0 x89, 0 xfd, 0 xf7, 0 x99, },
{ 0 x1f, 0 xb1, 0 x62, 0 xeb, 0 x83, 0 xc5, 0 x9c, 0 x89, 0 xf9, 0 x2c, 0 xd2, 0 x03,
0 x61, 0 xbc, 0 xbb, 0 xa5, 0 x74, 0 x0e, 0 x9b, 0 x7e, 0 x82, 0 x3e, 0 x70, 0 x0a,
0 xa9, 0 x8f, 0 x2b, 0 x59, 0 xfb, },
{ 0 xf8, 0 xca, 0 x5e, 0 x3a, 0 x4f, 0 x9e, 0 x10, 0 x69, 0 x10, 0 xd5, 0 x4c, 0 xeb,
0 x1a, 0 x0f, 0 x3c, 0 x6a, 0 x98, 0 xf5, 0 xb0, 0 x97, 0 x5b, 0 x37, 0 x2f, 0 x0d,
0 xbd, 0 x42, 0 x4b, 0 x69, 0 xa1, 0 x82, },
{ 0 x12, 0 x8c, 0 x6d, 0 x52, 0 x08, 0 xef, 0 x74, 0 xb2, 0 xe6, 0 xaa, 0 xd3, 0 xb0,
0 x26, 0 xb0, 0 xd9, 0 x94, 0 xb6, 0 x11, 0 x45, 0 x0e, 0 x36, 0 x71, 0 x14, 0 x2d,
0 x41, 0 x8c, 0 x21, 0 x53, 0 x31, 0 xe9, 0 x68, },
{ 0 xee, 0 xea, 0 x0d, 0 x89, 0 x47, 0 x7e, 0 x72, 0 xd1, 0 xd8, 0 xce, 0 x58, 0 x4c,
0 x94, 0 x1f, 0 x0d, 0 x51, 0 x08, 0 xa3, 0 xb6, 0 x3d, 0 xe7, 0 x82, 0 x46, 0 x92,
0 xd6, 0 x98, 0 x6b, 0 x07, 0 x10, 0 x65, 0 x52, 0 x65, },
};
static bool __init noinline_for_stack blake2s_digest_test(void )
{
u8 key[BLAKE2S_KEY_SIZE];
u8 buf[ARRAY_SIZE(blake2s_testvecs)];
u8 hash[BLAKE2S_HASH_SIZE];
struct blake2s_state state;
bool success = true ;
int i, l;
key[0 ] = key[1 ] = 1 ;
for (i = 2 ; i < sizeof (key); ++i)
key[i] = key[i - 2 ] + key[i - 1 ];
for (i = 0 ; i < sizeof (buf); ++i)
buf[i] = (u8)i;
for (i = l = 0 ; i < ARRAY_SIZE(blake2s_testvecs); l = (l + 37 ) % ++i) {
int outlen = 1 + i % BLAKE2S_HASH_SIZE;
int keylen = (13 * i) % (BLAKE2S_KEY_SIZE + 1 );
blake2s(hash, buf, key + BLAKE2S_KEY_SIZE - keylen, outlen, i,
keylen);
if (memcmp(hash, blake2s_testvecs[i], outlen)) {
pr_err("blake2s self-test %d: FAIL\n" , i + 1 );
success = false ;
}
if (!keylen)
blake2s_init(&state, outlen);
else
blake2s_init_key(&state, outlen,
key + BLAKE2S_KEY_SIZE - keylen,
keylen);
blake2s_update(&state, buf, l);
blake2s_update(&state, buf + l, i - l);
blake2s_final(&state, hash);
if (memcmp(hash, blake2s_testvecs[i], outlen)) {
pr_err("blake2s init/update/final self-test %d: FAIL\n" ,
i + 1 );
success = false ;
}
}
return success;
}
static bool __init noinline_for_stack blake2s_random_test(void )
{
struct blake2s_state state;
bool success = true ;
int i, l;
for (i = 0 ; i < 32 ; ++i) {
enum { TEST_ALIGNMENT = 16 };
u8 blocks[BLAKE2S_BLOCK_SIZE * 2 + TEST_ALIGNMENT - 1 ]
__aligned(TEST_ALIGNMENT);
u8 *unaligned_block = blocks + BLAKE2S_BLOCK_SIZE;
struct blake2s_state state1, state2;
get_random_bytes(blocks, sizeof (blocks));
get_random_bytes(&state, sizeof (state));
#if defined (CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC) && \
defined (CONFIG_CRYPTO_ARCH_HAVE_LIB_BLAKE2S)
memcpy(&state1, &state, sizeof (state1));
memcpy(&state2, &state, sizeof (state2));
blake2s_compress(&state1, blocks, 2 , BLAKE2S_BLOCK_SIZE);
blake2s_compress_generic(&state2, blocks, 2 , BLAKE2S_BLOCK_SIZE);
if (memcmp(&state1, &state2, sizeof (state1))) {
pr_err("blake2s random compress self-test %d: FAIL\n" ,
i + 1 );
success = false ;
}
#endif
memcpy(&state1, &state, sizeof (state1));
blake2s_compress(&state1, blocks, 1 , BLAKE2S_BLOCK_SIZE);
for (l = 1 ; l < TEST_ALIGNMENT; ++l) {
memcpy(unaligned_block + l, blocks,
BLAKE2S_BLOCK_SIZE);
memcpy(&state2, &state, sizeof (state2));
blake2s_compress(&state2, unaligned_block + l, 1 ,
BLAKE2S_BLOCK_SIZE);
if (memcmp(&state1, &state2, sizeof (state1))) {
pr_err("blake2s random compress align %d self-test %d: FAIL\n" ,
l, i + 1 );
success = false ;
}
}
}
return success;
}
bool __init blake2s_selftest(void )
{
bool success;
success = blake2s_digest_test();
success &= blake2s_random_test();
return success;
}
Messung V0.5 in Prozent C=96 H=94 G=94