Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
blake3s.test.cpp
Go to the documentation of this file.
1#include "blake3s.hpp"
2
3#include <gtest/gtest.h>
4
5#include <iostream>
6#include <memory>
7#include <vector>
8
9struct test_vector {
10 std::string input;
11 std::vector<uint8_t> output;
12};
13
15 size_t input_len;
16 std::string hash;
17 std::string keyed_hash;
18 std::string derive_key;
19};
20
22 size_t input_len;
23 std::vector<uint8_t> hash;
24 std::vector<uint8_t> keyed_hash;
25 std::vector<uint8_t> derive_key;
26};
27
28/*
29 * The below test vector is taken from the Blake3 reference implementation.
30 * Note that we have converted the string formats from the source file into vector format for convenience.
31 *
32 * Link: https://github.com/BLAKE3-team/BLAKE3/blob/master/test_vectors/test_vectors.json
33 */
35 { 0,
36 {
37 0xAF, 0x13, 0x49, 0xB9, 0xF5, 0xF9, 0xA1, 0xA6, 0xA0, 0x40, 0x4D, 0xEA, 0x36, 0xDC, 0xC9, 0x49,
38 0x9B, 0xCB, 0x25, 0xC9, 0xAD, 0xC1, 0x12, 0xB7, 0xCC, 0x9A, 0x93, 0xCA, 0xE4, 0x1F, 0x32, 0x62,
39 },
40 {
41 0x92, 0xB2, 0xB7, 0x56, 0x04, 0xED, 0x3C, 0x76, 0x1F, 0x9D, 0x6F, 0x62, 0x39, 0x2C, 0x8A, 0x92,
42 0x27, 0xAD, 0x0E, 0xA3, 0xF0, 0x95, 0x73, 0xE7, 0x83, 0xF1, 0x49, 0x8A, 0x4E, 0xD6, 0x0D, 0x26,
43 },
44 {
45 0x2C, 0xC3, 0x97, 0x83, 0xC2, 0x23, 0x15, 0x4F, 0xEA, 0x8D, 0xFB, 0x7C, 0x1B, 0x16, 0x60, 0xF2,
46 0xAC, 0x2D, 0xCB, 0xD1, 0xC1, 0xDE, 0x82, 0x77, 0xB0, 0xB0, 0xDD, 0x39, 0xB7, 0xE5, 0x0D, 0x7D,
47 } },
48 { 1,
49 {
50 0x2D, 0x3A, 0xDE, 0xDF, 0xF1, 0x1B, 0x61, 0xF1, 0x4C, 0x88, 0x6E, 0x35, 0xAF, 0xA0, 0x36, 0x73,
51 0x6D, 0xCD, 0x87, 0xA7, 0x4D, 0x27, 0xB5, 0xC1, 0x51, 0x02, 0x25, 0xD0, 0xF5, 0x92, 0xE2, 0x13,
52 },
53 {
54 0x6D, 0x78, 0x78, 0xDF, 0xFF, 0x2F, 0x48, 0x56, 0x35, 0xD3, 0x90, 0x13, 0x27, 0x8A, 0xE1, 0x4F,
55 0x14, 0x54, 0xB8, 0xC0, 0xA3, 0xA2, 0xD3, 0x4B, 0xC1, 0xAB, 0x38, 0x22, 0x8A, 0x80, 0xC9, 0x5B,
56 },
57 {
58 0xB3, 0xE2, 0xE3, 0x40, 0xA1, 0x17, 0xA4, 0x99, 0xC6, 0xCF, 0x23, 0x98, 0xA1, 0x9E, 0xE0, 0xD2,
59 0x9C, 0xCA, 0x2B, 0xB7, 0x40, 0x4C, 0x73, 0x06, 0x33, 0x82, 0x69, 0x3B, 0xF6, 0x6C, 0xB0, 0x6C,
60 } },
61 { 2,
62 {
63 0x7B, 0x70, 0x15, 0xBB, 0x92, 0xCF, 0x0B, 0x31, 0x80, 0x37, 0x70, 0x2A, 0x6C, 0xDD, 0x81, 0xDE,
64 0xE4, 0x12, 0x24, 0xF7, 0x34, 0x68, 0x4C, 0x2C, 0x12, 0x2C, 0xD6, 0x35, 0x9C, 0xB1, 0xEE, 0x63,
65 },
66 {
67 0x53, 0x92, 0xDD, 0xAE, 0x0E, 0x0A, 0x69, 0xD5, 0xF4, 0x01, 0x60, 0x46, 0x2C, 0xBD, 0x9B, 0xD8,
68 0x89, 0x37, 0x50, 0x82, 0xFF, 0x22, 0x4A, 0xC9, 0xC7, 0x58, 0x80, 0x2B, 0x7A, 0x6F, 0xD2, 0x0A,
69 },
70 {
71 0x1F, 0x16, 0x65, 0x65, 0xA7, 0xDF, 0x00, 0x98, 0xEE, 0x65, 0x92, 0x2D, 0x7F, 0xEA, 0x42, 0x5F,
72 0xB1, 0x8B, 0x99, 0x43, 0xF1, 0x9D, 0x61, 0x61, 0xE2, 0xD1, 0x79, 0x39, 0x35, 0x61, 0x68, 0xE6,
73 } },
74 { 3,
75 {
76 0xE1, 0xBE, 0x4D, 0x7A, 0x8A, 0xB5, 0x56, 0x0A, 0xA4, 0x19, 0x9E, 0xEA, 0x33, 0x98, 0x49, 0xBA,
77 0x8E, 0x29, 0x3D, 0x55, 0xCA, 0x0A, 0x81, 0x00, 0x67, 0x26, 0xD1, 0x84, 0x51, 0x9E, 0x64, 0x7F,
78 },
79 {
80 0x39, 0xE6, 0x7B, 0x76, 0xB5, 0xA0, 0x07, 0xD4, 0x92, 0x19, 0x69, 0x77, 0x9F, 0xE6, 0x66, 0xDA,
81 0x67, 0xB5, 0x21, 0x3B, 0x09, 0x60, 0x84, 0xAB, 0x67, 0x47, 0x42, 0xF0, 0xD5, 0xEC, 0x62, 0xB9,
82 },
83 {
84 0x44, 0x0A, 0xBA, 0x35, 0xCB, 0x00, 0x6B, 0x61, 0xFC, 0x17, 0xC0, 0x52, 0x92, 0x55, 0xDE, 0x43,
85 0x8E, 0xFC, 0x06, 0xA8, 0xC9, 0xEB, 0xF3, 0xF2, 0xDD, 0xAC, 0x3B, 0x5A, 0x86, 0x70, 0x57, 0x97,
86 } },
87 { 4,
88 {
89 0xF3, 0x0F, 0x5A, 0xB2, 0x8F, 0xE0, 0x47, 0x90, 0x40, 0x37, 0xF7, 0x7B, 0x6D, 0xA4, 0xFE, 0xA1,
90 0xE2, 0x72, 0x41, 0xC5, 0xD1, 0x32, 0x63, 0x8D, 0x8B, 0xED, 0xCE, 0x9D, 0x40, 0x49, 0x4F, 0x32,
91 },
92 {
93 0x76, 0x71, 0xDD, 0xE5, 0x90, 0xC9, 0x5D, 0x5A, 0xC9, 0x61, 0x66, 0x51, 0xFF, 0x5A, 0xA0, 0xA2,
94 0x7B, 0xEE, 0x59, 0x13, 0xA3, 0x48, 0xE0, 0x53, 0xB8, 0xAA, 0x91, 0x08, 0x91, 0x7F, 0xE0, 0x70,
95 },
96 {
97 0xF4, 0x60, 0x85, 0xC8, 0x19, 0x0D, 0x69, 0x02, 0x23, 0x69, 0xCE, 0x1A, 0x18, 0x88, 0x0E, 0x9B,
98 0x36, 0x9C, 0x13, 0x5E, 0xB9, 0x3F, 0x3C, 0x63, 0x55, 0x0D, 0x3E, 0x76, 0x30, 0xE9, 0x10, 0x60,
99 } },
100 { 5,
101 {
102 0xB4, 0x0B, 0x44, 0xDF, 0xD9, 0x7E, 0x7A, 0x84, 0xA9, 0x96, 0xA9, 0x1A, 0xF8, 0xB8, 0x51, 0x88,
103 0xC6, 0x6C, 0x12, 0x69, 0x40, 0xBA, 0x7A, 0xAD, 0x2E, 0x7A, 0xE6, 0xB3, 0x85, 0x40, 0x2A, 0xA2,
104 },
105 {
106 0x73, 0xAC, 0x69, 0xEE, 0xCF, 0x28, 0x68, 0x94, 0xD8, 0x10, 0x20, 0x18, 0xA6, 0xFC, 0x72, 0x9F,
107 0x4B, 0x1F, 0x42, 0x47, 0xD3, 0x70, 0x3F, 0x69, 0xBD, 0xC6, 0xA5, 0xFE, 0x3E, 0x0C, 0x84, 0x61,
108 },
109 {
110 0x1F, 0x24, 0xED, 0xA6, 0x9D, 0xBC, 0xB7, 0x52, 0x84, 0x7E, 0xC3, 0xEB, 0xB5, 0xDD, 0x42, 0x83,
111 0x6D, 0x86, 0xE5, 0x85, 0x00, 0xC7, 0xC9, 0x8D, 0x90, 0x6E, 0xCD, 0x82, 0xED, 0x9A, 0xE4, 0x7F,
112 } },
113 { 6,
114 {
115 0x06, 0xC4, 0xE8, 0xFF, 0xB6, 0x87, 0x2F, 0xAD, 0x96, 0xF9, 0xAA, 0xCA, 0x5E, 0xEE, 0x15, 0x53,
116 0xEB, 0x62, 0xAE, 0xD0, 0xAD, 0x71, 0x98, 0xCE, 0xF4, 0x2E, 0x87, 0xF6, 0xA6, 0x16, 0xC8, 0x44,
117 },
118 {
119 0x82, 0xD3, 0x19, 0x9D, 0x00, 0x13, 0x03, 0x56, 0x82, 0xCC, 0x7F, 0x2A, 0x39, 0x9D, 0x4C, 0x21,
120 0x25, 0x44, 0x37, 0x6A, 0x83, 0x9A, 0xA8, 0x63, 0xA0, 0xF4, 0xC9, 0x12, 0x20, 0xCA, 0x7A, 0x6D,
121 },
122 {
123 0xBE, 0x96, 0xB3, 0x0B, 0x37, 0x91, 0x9F, 0xE4, 0x37, 0x9D, 0xFB, 0xE7, 0x52, 0xAE, 0x77, 0xB4,
124 0xF7, 0xE2, 0xAB, 0x92, 0xF7, 0xFF, 0x27, 0x43, 0x5F, 0x76, 0xF2, 0xF0, 0x65, 0xF6, 0xA5, 0xF4,
125 } },
126 { 7,
127 {
128 0x3F, 0x87, 0x70, 0xF3, 0x87, 0xFA, 0xAD, 0x08, 0xFA, 0xA9, 0xD8, 0x41, 0x4E, 0x9F, 0x44, 0x9A,
129 0xC6, 0x8E, 0x6F, 0xF0, 0x41, 0x7F, 0x67, 0x3F, 0x60, 0x2A, 0x64, 0x6A, 0x89, 0x14, 0x19, 0xFE,
130 },
131 {
132 0xAF, 0x0A, 0x7E, 0xC3, 0x82, 0xAE, 0xDC, 0x0C, 0xFD, 0x62, 0x6E, 0x49, 0xE7, 0x62, 0x8B, 0xC7,
133 0xA3, 0x53, 0xA4, 0xCB, 0x10, 0x88, 0x55, 0x54, 0x1A, 0x56, 0x51, 0xBF, 0x64, 0xFB, 0xB2, 0x8A,
134 },
135 {
136 0xDC, 0x3B, 0x64, 0x85, 0xF9, 0xD9, 0x49, 0x35, 0x32, 0x94, 0x42, 0x91, 0x6B, 0x0D, 0x05, 0x96,
137 0x85, 0xBA, 0x81, 0x5A, 0x1F, 0xA2, 0xA1, 0x41, 0x07, 0x21, 0x74, 0x53, 0xA7, 0xFC, 0x9F, 0x0E,
138 } },
139 { 8,
140 {
141 0x23, 0x51, 0x20, 0x7D, 0x04, 0xFC, 0x16, 0xAD, 0xE4, 0x3C, 0xCA, 0xB0, 0x86, 0x00, 0x93, 0x9C,
142 0x7C, 0x1F, 0xA7, 0x0A, 0x5C, 0x0A, 0xAC, 0xA7, 0x60, 0x63, 0xD0, 0x4C, 0x32, 0x28, 0xEA, 0xEB,
143 },
144 {
145 0xBE, 0x2F, 0x54, 0x95, 0xC6, 0x1C, 0xBA, 0x1B, 0xB3, 0x48, 0xA3, 0x49, 0x48, 0xC0, 0x04, 0x04,
146 0x5E, 0x3B, 0xD4, 0xDA, 0xE8, 0xF0, 0xFE, 0x82, 0xBF, 0x44, 0xD0, 0xDA, 0x24, 0x5A, 0x06, 0x00,
147 },
148 {
149 0x2B, 0x16, 0x69, 0x78, 0xCE, 0xF1, 0x4D, 0x9D, 0x43, 0x80, 0x46, 0xC7, 0x20, 0x51, 0x9D, 0x8B,
150 0x1C, 0xAD, 0x70, 0x7E, 0x19, 0x97, 0x46, 0xF1, 0x56, 0x2D, 0x0C, 0x87, 0xFB, 0xD3, 0x29, 0x40,
151 } },
152 { 63,
153 {
154 0xE9, 0xBC, 0x37, 0xA5, 0x94, 0xDA, 0xAD, 0x83, 0xBE, 0x94, 0x70, 0xDF, 0x7F, 0x7B, 0x37, 0x98,
155 0x29, 0x7C, 0x3D, 0x83, 0x4C, 0xE8, 0x0B, 0xA8, 0x5D, 0x6E, 0x20, 0x76, 0x27, 0xB7, 0xDB, 0x7B,
156 },
157 {
158 0xBB, 0x1E, 0xB5, 0xD4, 0xAF, 0xA7, 0x93, 0xC1, 0xEB, 0xDD, 0x9F, 0xB0, 0x8D, 0xEF, 0x6C, 0x36,
159 0xD1, 0x00, 0x96, 0x98, 0x6A, 0xE0, 0xCF, 0xE1, 0x48, 0xCD, 0x10, 0x11, 0x70, 0xCE, 0x37, 0xAE,
160 },
161 {
162 0xB6, 0x45, 0x1E, 0x30, 0xB9, 0x53, 0xC2, 0x06, 0xE3, 0x46, 0x44, 0xC6, 0x80, 0x37, 0x24, 0xE9,
163 0xD2, 0x72, 0x5E, 0x08, 0x93, 0x03, 0x9C, 0xFC, 0x49, 0x58, 0x4F, 0x99, 0x1F, 0x45, 0x1A, 0xF3,
164 } },
165 { 64,
166 {
167 0x4E, 0xED, 0x71, 0x41, 0xEA, 0x4A, 0x5C, 0xD4, 0xB7, 0x88, 0x60, 0x6B, 0xD2, 0x3F, 0x46, 0xE2,
168 0x12, 0xAF, 0x9C, 0xAC, 0xEB, 0xAC, 0xDC, 0x7D, 0x1F, 0x4C, 0x6D, 0xC7, 0xF2, 0x51, 0x1B, 0x98,
169 },
170 {
171 0xBA, 0x8C, 0xED, 0x36, 0xF3, 0x27, 0x70, 0x0D, 0x21, 0x3F, 0x12, 0x0B, 0x1A, 0x20, 0x7A, 0x3B,
172 0x8C, 0x04, 0x33, 0x05, 0x28, 0x58, 0x6F, 0x41, 0x4D, 0x09, 0xF2, 0xF7, 0xD9, 0xCC, 0xB7, 0xE6,
173 },
174 {
175 0xA5, 0xC4, 0xA7, 0x05, 0x3F, 0xA8, 0x6B, 0x64, 0x74, 0x6D, 0x4B, 0xB6, 0x88, 0xD0, 0x6A, 0xD1,
176 0xF0, 0x2A, 0x18, 0xFC, 0xE9, 0xAF, 0xD3, 0xE8, 0x18, 0xFE, 0xFA, 0xA7, 0x12, 0x6B, 0xF7, 0x3E,
177 } },
178 { 65,
179 {
180 0xDE, 0x1E, 0x5F, 0xA0, 0xBE, 0x70, 0xDF, 0x6D, 0x2B, 0xE8, 0xFF, 0xFD, 0x0E, 0x99, 0xCE, 0xAA,
181 0x8E, 0xB6, 0xE8, 0xC9, 0x3A, 0x63, 0xF2, 0xD8, 0xD1, 0xC3, 0x0E, 0xCB, 0x6B, 0x26, 0x3D, 0xEE,
182 },
183 {
184 0xC0, 0xA4, 0xED, 0xEF, 0xA2, 0xD2, 0xAC, 0xCB, 0x92, 0x77, 0xC3, 0x71, 0xAC, 0x12, 0xFC, 0xDB,
185 0xB5, 0x29, 0x88, 0xA8, 0x6E, 0xDC, 0x54, 0xF0, 0x71, 0x6E, 0x15, 0x91, 0xB4, 0x32, 0x6E, 0x72,
186 },
187 {
188 0x51, 0xFD, 0x05, 0xC3, 0xC1, 0xCF, 0xBC, 0x8E, 0xD6, 0x7D, 0x13, 0x9A, 0xD7, 0x6F, 0x5C, 0xF8,
189 0x23, 0x6C, 0xD2, 0xAC, 0xD2, 0x66, 0x27, 0xA3, 0x0C, 0x10, 0x4D, 0xFD, 0x9D, 0x3F, 0xF8, 0xA8,
190 } },
191 { 127,
192 {
193 0xD8, 0x12, 0x93, 0xFD, 0xA8, 0x63, 0xF0, 0x08, 0xC0, 0x9E, 0x92, 0xFC, 0x38, 0x2A, 0x81, 0xF5,
194 0xA0, 0xB4, 0xA1, 0x25, 0x1C, 0xBA, 0x16, 0x34, 0x01, 0x6A, 0x0F, 0x86, 0xA6, 0xBD, 0x64, 0x0D,
195 },
196 {
197 0xC6, 0x42, 0x00, 0xAE, 0x7D, 0xFA, 0xF3, 0x55, 0x77, 0xAC, 0x5A, 0x95, 0x21, 0xC4, 0x78, 0x63,
198 0xFB, 0x71, 0x51, 0x4A, 0x3B, 0xCA, 0xD1, 0x88, 0x19, 0x21, 0x8B, 0x81, 0x8D, 0xE8, 0x58, 0x18,
199 },
200 {
201 0xC9, 0x1C, 0x09, 0x0C, 0xEE, 0xE3, 0xA3, 0xAC, 0x81, 0x90, 0x2D, 0xA3, 0x18, 0x38, 0x01, 0x26,
202 0x25, 0xBB, 0xCD, 0x73, 0xFC, 0xB9, 0x2E, 0x7D, 0x7E, 0x56, 0xF7, 0x8D, 0xEB, 0xA4, 0xF0, 0xC3,
203 } },
204 { 128,
205 {
206 0xF1, 0x7E, 0x57, 0x05, 0x64, 0xB2, 0x65, 0x78, 0xC3, 0x3B, 0xB7, 0xF4, 0x46, 0x43, 0xF5, 0x39,
207 0x62, 0x4B, 0x05, 0xDF, 0x1A, 0x76, 0xC8, 0x1F, 0x30, 0xAC, 0xD5, 0x48, 0xC4, 0x4B, 0x45, 0xEF,
208 },
209 {
210 0xB0, 0x4F, 0xE1, 0x55, 0x77, 0x45, 0x72, 0x67, 0xFF, 0x3B, 0x6F, 0x3C, 0x94, 0x7D, 0x93, 0xBE,
211 0x58, 0x1E, 0x7E, 0x3A, 0x4B, 0x01, 0x86, 0x79, 0x12, 0x5E, 0xAF, 0x86, 0xF6, 0xA6, 0x28, 0xEC,
212 },
213 {
214 0x81, 0x72, 0x0F, 0x34, 0x45, 0x2F, 0x58, 0xA0, 0x12, 0x0A, 0x58, 0xB6, 0xB4, 0x60, 0x83, 0x84,
215 0xB5, 0xC5, 0x1D, 0x11, 0xF3, 0x9C, 0xE9, 0x71, 0x61, 0xA0, 0xC0, 0xE4, 0x42, 0xCA, 0x02, 0x25,
216 } },
217 { 129,
218 {
219 0x68, 0x3A, 0xAA, 0xE9, 0xF3, 0xC5, 0xBA, 0x37, 0xEA, 0xAF, 0x07, 0x2A, 0xED, 0x0F, 0x9E, 0x30,
220 0xBA, 0xC0, 0x86, 0x51, 0x37, 0xBA, 0xE6, 0x8B, 0x1F, 0xDE, 0x4C, 0xA2, 0xAE, 0xBD, 0xCB, 0x12,
221 },
222 {
223 0xD4, 0xA6, 0x4D, 0xAE, 0x6C, 0xDC, 0xCB, 0xAC, 0x1E, 0x52, 0x87, 0xF5, 0x4F, 0x17, 0xC5, 0xF9,
224 0x85, 0x10, 0x54, 0x57, 0xC1, 0xA2, 0xEC, 0x18, 0x78, 0xEB, 0xD4, 0xB5, 0x7E, 0x20, 0xD3, 0x8F,
225 },
226 {
227 0x93, 0x8D, 0x2D, 0x44, 0x35, 0xBE, 0x30, 0xEA, 0xFD, 0xBB, 0x2B, 0x70, 0x31, 0xF7, 0x85, 0x7C,
228 0x98, 0xB0, 0x48, 0x81, 0x22, 0x73, 0x91, 0xDC, 0x40, 0xDB, 0x3C, 0x7B, 0x21, 0xF4, 0x1F, 0xC1,
229 } },
230 { 1023,
231 {
232 0x10, 0x10, 0x89, 0x70, 0xEE, 0xDA, 0x3E, 0xB9, 0x32, 0xBA, 0xAC, 0x14, 0x28, 0xC7, 0xA2, 0x16,
233 0x3B, 0x0E, 0x92, 0x4C, 0x9A, 0x9E, 0x25, 0xB3, 0x5B, 0xBA, 0x72, 0xB2, 0x8F, 0x70, 0xBD, 0x11,
234 },
235 {
236 0xC9, 0x51, 0xEC, 0xDF, 0x03, 0x28, 0x8D, 0x0F, 0xCC, 0x96, 0xEE, 0x34, 0x13, 0x56, 0x3D, 0x8A,
237 0x6D, 0x35, 0x89, 0x54, 0x7F, 0x2C, 0x2F, 0xB3, 0x6D, 0x97, 0x86, 0x47, 0x0F, 0x1B, 0x9D, 0x6E,
238 },
239 {
240 0x74, 0xA1, 0x6C, 0x1C, 0x3D, 0x44, 0x36, 0x8A, 0x86, 0xE1, 0xCA, 0x6D, 0xF6, 0x4B, 0xE6, 0xA2,
241 0xF6, 0x4C, 0xCE, 0x8F, 0x09, 0x22, 0x07, 0x87, 0x45, 0x07, 0x22, 0xD8, 0x57, 0x25, 0xDE, 0xA5,
242 } },
243 { 1024,
244 {
245 0x42, 0x21, 0x47, 0x39, 0xF0, 0x95, 0xA4, 0x06, 0xF3, 0xFC, 0x83, 0xDE, 0xB8, 0x89, 0x74, 0x4A,
246 0xC0, 0x0D, 0xF8, 0x31, 0xC1, 0x0D, 0xAA, 0x55, 0x18, 0x9B, 0x5D, 0x12, 0x1C, 0x85, 0x5A, 0xF7,
247 },
248 {
249 0x75, 0xC4, 0x6F, 0x6F, 0x3D, 0x9E, 0xB4, 0xF5, 0x5E, 0xCA, 0xAE, 0xE4, 0x80, 0xDB, 0x73, 0x2E,
250 0x6C, 0x21, 0x05, 0x54, 0x6F, 0x1E, 0x67, 0x50, 0x03, 0x68, 0x7C, 0x31, 0x71, 0x9C, 0x7B, 0xA4,
251 },
252 {
253 0x73, 0x56, 0xCD, 0x77, 0x20, 0xD5, 0xB6, 0x6B, 0x6D, 0x06, 0x97, 0xEB, 0x31, 0x77, 0xD9, 0xF8,
254 0xD7, 0x3A, 0x4A, 0x5C, 0x5E, 0x96, 0x88, 0x96, 0xEB, 0x6A, 0x68, 0x96, 0x84, 0x30, 0x27, 0x06,
255 } },
256 { 1025,
257 {
258 0xD0, 0x02, 0x78, 0xAE, 0x47, 0xEB, 0x27, 0xB3, 0x4F, 0xAE, 0xCF, 0x67, 0xB4, 0xFE, 0x26, 0x3F,
259 0x82, 0xD5, 0x41, 0x29, 0x16, 0xC1, 0xFF, 0xD9, 0x7C, 0x8C, 0xB7, 0xFB, 0x81, 0x4B, 0x84, 0x44,
260 },
261 {
262 0x35, 0x7D, 0xC5, 0x5D, 0xE0, 0xC7, 0xE3, 0x82, 0xC9, 0x00, 0xFD, 0x6E, 0x32, 0x0A, 0xCC, 0x04,
263 0x14, 0x6B, 0xE0, 0x1D, 0xB6, 0xA8, 0xCE, 0x72, 0x10, 0xB7, 0x18, 0x9B, 0xD6, 0x64, 0xEA, 0x69,
264 },
265 {
266 0xEF, 0xFA, 0xA2, 0x45, 0xF0, 0x65, 0xFB, 0xF8, 0x2A, 0xC1, 0x86, 0x83, 0x9A, 0x24, 0x97, 0x07,
267 0xC3, 0xBD, 0xDF, 0x6D, 0x3F, 0xDD, 0xA2, 0x2D, 0x1B, 0x95, 0xA3, 0xC9, 0x70, 0x37, 0x9B, 0xCB,
268 } },
269 { 2048,
270 {
271 0xE7, 0x76, 0xB6, 0x02, 0x8C, 0x7C, 0xD2, 0x2A, 0x4D, 0x0B, 0xA1, 0x82, 0xA8, 0xBF, 0x62, 0x20,
272 0x5D, 0x2E, 0xF5, 0x76, 0x46, 0x7E, 0x83, 0x8E, 0xD6, 0xF2, 0x52, 0x9B, 0x85, 0xFB, 0xA2, 0x4A,
273 },
274 {
275 0x87, 0x9C, 0xF1, 0xFA, 0x2E, 0xA0, 0xE7, 0x91, 0x26, 0xCB, 0x10, 0x63, 0x61, 0x7A, 0x05, 0xB6,
276 0xAD, 0x9D, 0x0B, 0x69, 0x6D, 0x0D, 0x75, 0x7C, 0xF0, 0x53, 0x43, 0x9F, 0x60, 0xA9, 0x9D, 0xD1,
277 },
278 {
279 0x7B, 0x29, 0x45, 0xCB, 0x4F, 0xEF, 0x70, 0x88, 0x5C, 0xC5, 0xD7, 0x8A, 0x87, 0xBF, 0x6F, 0x62,
280 0x07, 0xDD, 0x90, 0x1F, 0xF2, 0x39, 0x20, 0x13, 0x51, 0xFF, 0xAC, 0x04, 0xE1, 0x08, 0x8A, 0x23,
281 } },
282 { 2049,
283 {
284 0x5F, 0x4D, 0x72, 0xF4, 0x0D, 0x7A, 0x5F, 0x82, 0xB1, 0x5C, 0xA2, 0xB2, 0xE4, 0x4B, 0x1D, 0xE3,
285 0xC2, 0xEF, 0x86, 0xC4, 0x26, 0xC9, 0x5C, 0x1A, 0xF0, 0xB6, 0x87, 0x95, 0x22, 0x56, 0x30, 0x30,
286 },
287 {
288 0x9F, 0x29, 0x70, 0x09, 0x02, 0xF7, 0xC8, 0x6E, 0x51, 0x4D, 0xDC, 0x4D, 0xF1, 0xE3, 0x04, 0x9F,
289 0x25, 0x8B, 0x24, 0x72, 0xB6, 0xDD, 0x52, 0x67, 0xF6, 0x1B, 0xF1, 0x39, 0x83, 0xB7, 0x8D, 0xD5,
290 },
291 {
292 0x2E, 0xA4, 0x77, 0xC5, 0x51, 0x5C, 0xC3, 0xDD, 0x60, 0x65, 0x12, 0xEE, 0x72, 0xBB, 0x3E, 0x0E,
293 0x75, 0x8C, 0xFA, 0xE7, 0x23, 0x28, 0x26, 0xF3, 0x5F, 0xB9, 0x8C, 0xA1, 0xBC, 0xBD, 0xF2, 0x73,
294 } },
295 { 3072,
296 {
297 0xB9, 0x8C, 0xB0, 0xFF, 0x36, 0x23, 0xBE, 0x03, 0x32, 0x6B, 0x37, 0x3D, 0xE6, 0xB9, 0x09, 0x52,
298 0x18, 0x51, 0x3E, 0x64, 0xF1, 0xEE, 0x2E, 0xDD, 0x25, 0x25, 0xC7, 0xAD, 0x1E, 0x5C, 0xFF, 0xD2,
299 },
300 {
301 0x04, 0x4A, 0x0E, 0x7B, 0x17, 0x2A, 0x31, 0x2D, 0xC0, 0x2A, 0x4C, 0x9A, 0x81, 0x8C, 0x03, 0x6F,
302 0xFA, 0x27, 0x76, 0x36, 0x8D, 0x7F, 0x52, 0x82, 0x68, 0xD2, 0xE6, 0xB5, 0xDF, 0x19, 0x17, 0x70,
303 },
304 {
305 0x05, 0x0D, 0xF9, 0x7F, 0x8C, 0x2E, 0xAD, 0x65, 0x4D, 0x9B, 0xB3, 0xAB, 0x8C, 0x91, 0x78, 0xED,
306 0xCD, 0x90, 0x2A, 0x32, 0xF8, 0x49, 0x59, 0x49, 0xFE, 0xAD, 0xCC, 0x1E, 0x04, 0x80, 0xC4, 0x6B,
307 } },
308 { 3073,
309 {
310 0x71, 0x24, 0xB4, 0x95, 0x01, 0x01, 0x2F, 0x81, 0xCC, 0x7F, 0x11, 0xCA, 0x06, 0x9E, 0xC9, 0x22,
311 0x6C, 0xEC, 0xB8, 0xA2, 0xC8, 0x50, 0xCF, 0xE6, 0x44, 0xE3, 0x27, 0xD2, 0x2D, 0x3E, 0x1C, 0xD3,
312 },
313 {
314 0x68, 0xDE, 0xDE, 0x9B, 0xEF, 0x00, 0xBA, 0x89, 0xE4, 0x3F, 0x31, 0xA6, 0x82, 0x5F, 0x4C, 0xF4,
315 0x33, 0x38, 0x9F, 0xED, 0xAE, 0x75, 0xC0, 0x4E, 0xE9, 0xF0, 0xCF, 0x16, 0xA4, 0x27, 0xC9, 0x5A,
316 },
317 {
318 0x72, 0x61, 0x3C, 0x9E, 0xC9, 0xFF, 0x7E, 0x40, 0xF8, 0xF5, 0xC1, 0x73, 0x78, 0x4C, 0x53, 0x2A,
319 0xD8, 0x52, 0xE8, 0x27, 0xDB, 0xA2, 0xBF, 0x85, 0xB2, 0xAB, 0x4B, 0x76, 0xF7, 0x07, 0x90, 0x81,
320 } },
321 { 4096,
322 {
323 0x01, 0x50, 0x94, 0x01, 0x3F, 0x57, 0xA5, 0x27, 0x7B, 0x59, 0xD8, 0x47, 0x5C, 0x05, 0x01, 0x04,
324 0x2C, 0x0B, 0x64, 0x2E, 0x53, 0x1B, 0x0A, 0x1C, 0x8F, 0x58, 0xD2, 0x16, 0x32, 0x29, 0xE9, 0x69,
325 },
326 {
327 0xBE, 0xFC, 0x66, 0x0A, 0xEA, 0x2F, 0x17, 0x18, 0x88, 0x4C, 0xD8, 0xDE, 0xB9, 0x90, 0x28, 0x11,
328 0xD3, 0x32, 0xF4, 0xFC, 0x4A, 0x38, 0xCF, 0x7C, 0x73, 0x00, 0xD5, 0x97, 0xA0, 0x81, 0xBF, 0xC0,
329 },
330 {
331 0x1E, 0x0D, 0x7F, 0x3D, 0xB8, 0xC4, 0x14, 0xC9, 0x7C, 0x63, 0x07, 0xCB, 0xDA, 0x6C, 0xD2, 0x7A,
332 0xC3, 0xB0, 0x30, 0x94, 0x9D, 0xA8, 0xE2, 0x3B, 0xE1, 0xA1, 0xA9, 0x24, 0xAD, 0x2F, 0x25, 0xB9,
333 } },
334 { 4097,
335 {
336 0x9B, 0x40, 0x52, 0xB3, 0x8F, 0x1C, 0x5F, 0xC8, 0xB1, 0xF9, 0xFF, 0x7A, 0xC7, 0xB2, 0x7C, 0xD2,
337 0x42, 0x48, 0x7B, 0x3D, 0x89, 0x0D, 0x15, 0xC9, 0x6A, 0x1C, 0x25, 0xB8, 0xAA, 0x0F, 0xB9, 0x95,
338 },
339 {
340 0x00, 0xDF, 0x94, 0x0C, 0xD3, 0x6B, 0xB9, 0xFA, 0x7C, 0xBB, 0xC3, 0x55, 0x67, 0x44, 0xE0, 0xDB,
341 0xC8, 0x19, 0x14, 0x01, 0xAF, 0xE7, 0x05, 0x20, 0xBA, 0x29, 0x2E, 0xE3, 0xCA, 0x80, 0xAB, 0xBC,
342 },
343 {
344 0xAC, 0xA5, 0x10, 0x29, 0x62, 0x6B, 0x55, 0xFD, 0xA7, 0x11, 0x7B, 0x42, 0xA7, 0xC2, 0x11, 0xF8,
345 0xC6, 0xE9, 0xBA, 0x4F, 0xE5, 0xB7, 0xA8, 0xCA, 0x92, 0x2F, 0x34, 0x29, 0x95, 0x00, 0xEA, 0xD8,
346 } },
347 { 5120,
348 {
349 0x9C, 0xAD, 0xC1, 0x5F, 0xED, 0x8B, 0x5D, 0x85, 0x45, 0x62, 0xB2, 0x6A, 0x95, 0x36, 0xD9, 0x70,
350 0x7C, 0xAD, 0xED, 0xA9, 0xB1, 0x43, 0x97, 0x8F, 0x31, 0x9A, 0xB3, 0x42, 0x30, 0x53, 0x58, 0x33,
351 },
352 {
353 0x2C, 0x49, 0x3E, 0x48, 0xE9, 0xB9, 0xBF, 0x31, 0xE0, 0x55, 0x3A, 0x22, 0xB2, 0x35, 0x03, 0xC0,
354 0xA3, 0x38, 0x8F, 0x03, 0x5C, 0xEC, 0xE6, 0x8E, 0xB4, 0x38, 0xD2, 0x2F, 0xA1, 0x94, 0x3E, 0x20,
355 },
356 {
357 0x7A, 0x7A, 0xCA, 0xC8, 0xA0, 0x2A, 0xDC, 0xF3, 0x03, 0x8D, 0x74, 0xCD, 0xD1, 0xD3, 0x45, 0x27,
358 0xDE, 0x8A, 0x0F, 0xCC, 0x0E, 0xE3, 0x39, 0x9D, 0x12, 0x62, 0x39, 0x7C, 0xE5, 0x81, 0x7F, 0x60,
359 } },
360 { 5121,
361 {
362 0x62, 0x8B, 0xD2, 0xCB, 0x20, 0x04, 0x69, 0x4A, 0xDA, 0xAB, 0x7B, 0xBD, 0x77, 0x8A, 0x25, 0xDF,
363 0x25, 0xC4, 0x7B, 0x9D, 0x41, 0x55, 0xA5, 0x5F, 0x8F, 0xBD, 0x79, 0xF2, 0xFE, 0x15, 0x4C, 0xFF,
364 },
365 {
366 0x6C, 0xCF, 0x1C, 0x34, 0x75, 0x3E, 0x7A, 0x04, 0x4D, 0xB8, 0x07, 0x98, 0xEC, 0xD0, 0x78, 0x2A,
367 0x8F, 0x76, 0xF3, 0x35, 0x63, 0xAC, 0xCA, 0xDD, 0xBF, 0xBB, 0x2E, 0x0E, 0xA4, 0xB2, 0xD0, 0x24,
368 },
369 {
370 0xB0, 0x7F, 0x01, 0xE5, 0x18, 0xE7, 0x02, 0xF7, 0xCC, 0xB4, 0x4A, 0x26, 0x7E, 0x9E, 0x11, 0x2D,
371 0x40, 0x3A, 0x7B, 0x3F, 0x48, 0x83, 0xA4, 0x7F, 0xFB, 0xED, 0x4B, 0x48, 0x33, 0x9B, 0x3C, 0x34,
372 } },
373 { 6144,
374 {
375 0x3E, 0x2E, 0x5B, 0x74, 0xE0, 0x48, 0xF3, 0xAD, 0xD6, 0xD2, 0x1F, 0xAA, 0xB3, 0xF8, 0x3A, 0xA4,
376 0x4D, 0x3B, 0x22, 0x78, 0xAF, 0xB8, 0x3B, 0x80, 0xB3, 0xC3, 0x51, 0x64, 0xEB, 0xEC, 0xA2, 0x05,
377 },
378 {
379 0x3D, 0x6B, 0x6D, 0x21, 0x28, 0x1D, 0x0A, 0xDE, 0x5B, 0x2B, 0x01, 0x6A, 0xE4, 0x03, 0x4C, 0x5D,
380 0xEC, 0x10, 0xCA, 0x7E, 0x47, 0x5F, 0x90, 0xF7, 0x6E, 0xAC, 0x71, 0x38, 0xE9, 0xBC, 0x8F, 0x1D,
381 },
382 {
383 0x2A, 0x95, 0xBE, 0xAE, 0x63, 0xDD, 0xCE, 0x52, 0x37, 0x62, 0x35, 0x5C, 0xF4, 0xB9, 0xC1, 0xD8,
384 0xF1, 0x31, 0x46, 0x57, 0x80, 0xA3, 0x91, 0x28, 0x6A, 0x5D, 0x01, 0xAB, 0xB5, 0x68, 0x3A, 0x15,
385 } },
386 { 6145,
387 {
388 0xF1, 0x32, 0x3A, 0x86, 0x31, 0x44, 0x6C, 0xC5, 0x05, 0x36, 0xA9, 0xF7, 0x05, 0xEE, 0x5C, 0xB6,
389 0x19, 0x42, 0x4D, 0x46, 0x88, 0x7F, 0x3C, 0x37, 0x6C, 0x69, 0x5B, 0x70, 0xE0, 0xF0, 0x50, 0x7F,
390 },
391 {
392 0x9A, 0xC3, 0x01, 0xE9, 0xE3, 0x9E, 0x45, 0xE3, 0x25, 0x0A, 0x7E, 0x3B, 0x3D, 0xF7, 0x01, 0xAA,
393 0x0F, 0xB6, 0x88, 0x9F, 0xBD, 0x80, 0xEE, 0xEC, 0xF2, 0x8D, 0xBC, 0x63, 0x00, 0xFB, 0xC5, 0x39,
394 },
395 {
396 0x37, 0x9B, 0xCC, 0x61, 0xD0, 0x05, 0x1D, 0xD4, 0x89, 0xF6, 0x86, 0xC1, 0x3D, 0xE0, 0x0D, 0x5B,
397 0x14, 0xC5, 0x05, 0x24, 0x51, 0x03, 0xDC, 0x04, 0x0D, 0x9E, 0x4D, 0xD1, 0xFA, 0xCA, 0xB8, 0xE5,
398 } },
399 { 7168,
400 {
401 0x61, 0xDA, 0x95, 0x7E, 0xC2, 0x49, 0x9A, 0x95, 0xD6, 0xB8, 0x02, 0x3E, 0x2B, 0x0E, 0x60, 0x4E,
402 0xC7, 0xF6, 0xB5, 0x0E, 0x80, 0xA9, 0x67, 0x8B, 0x89, 0xD2, 0x62, 0x8E, 0x99, 0xAD, 0xA7, 0x7A,
403 },
404 {
405 0xB4, 0x28, 0x35, 0xE4, 0x0E, 0x9D, 0x4A, 0x7F, 0x42, 0xAD, 0x8C, 0xC0, 0x4F, 0x85, 0xA9, 0x63,
406 0xA7, 0x6E, 0x18, 0x19, 0x83, 0x77, 0xED, 0x84, 0xAD, 0xDD, 0xEA, 0xEC, 0xAC, 0xC6, 0xF3, 0xFC,
407 },
408 {
409 0x11, 0xC3, 0x7A, 0x11, 0x27, 0x65, 0x37, 0x0C, 0x94, 0xA5, 0x14, 0x15, 0xD0, 0xD6, 0x51, 0x19,
410 0x0C, 0x28, 0x85, 0x66, 0xE2, 0x95, 0xD5, 0x05, 0xDE, 0xFD, 0xAD, 0x89, 0x5D, 0xAE, 0x22, 0x37,
411 } },
412 { 7169,
413 {
414 0xA0, 0x03, 0xFC, 0x7A, 0x51, 0x75, 0x4A, 0x9B, 0x3C, 0x7F, 0xAE, 0x03, 0x67, 0xAB, 0x3D, 0x78,
415 0x2D, 0xCC, 0xF2, 0x88, 0x55, 0xA0, 0x3D, 0x43, 0x5F, 0x8C, 0xFE, 0x74, 0x60, 0x5E, 0x78, 0x17,
416 },
417 {
418 0xED, 0x9B, 0x1A, 0x92, 0x2C, 0x04, 0x6F, 0xDB, 0x3D, 0x42, 0x3A, 0xE3, 0x4E, 0x14, 0x3B, 0x05,
419 0xCA, 0x1B, 0xF2, 0x8B, 0x71, 0x04, 0x32, 0x85, 0x7B, 0xF7, 0x38, 0xBC, 0xED, 0xBF, 0xA5, 0x11,
420 },
421 {
422 0x55, 0x4B, 0x0A, 0x5E, 0xFE, 0xA9, 0xEF, 0x18, 0x3F, 0x2F, 0x9B, 0x93, 0x1B, 0x74, 0x97, 0x99,
423 0x5D, 0x9E, 0xB2, 0x6F, 0x5C, 0x5C, 0x6D, 0xAD, 0x2B, 0x97, 0xD6, 0x2F, 0xC5, 0xAC, 0x31, 0xD9,
424 } },
425 { 8192,
426 {
427 0xAA, 0xE7, 0x92, 0x48, 0x4C, 0x8E, 0xFE, 0x4F, 0x19, 0xE2, 0xCA, 0x7D, 0x37, 0x1D, 0x8C, 0x46,
428 0x7F, 0xFB, 0x10, 0x74, 0x8D, 0x8A, 0x5A, 0x1A, 0xE5, 0x79, 0x94, 0x8F, 0x71, 0x8A, 0x2A, 0x63,
429 },
430 {
431 0xDC, 0x96, 0x37, 0xC8, 0x84, 0x5A, 0x77, 0x0B, 0x4C, 0xBF, 0x76, 0xB8, 0xDA, 0xEC, 0x0E, 0xEB,
432 0xF7, 0xDC, 0x2E, 0xAC, 0x11, 0x49, 0x85, 0x17, 0xF0, 0x8D, 0x44, 0xC8, 0xFC, 0x00, 0xD5, 0x8A,
433 },
434 {
435 0xAD, 0x01, 0xD7, 0xAE, 0x4A, 0xD0, 0x59, 0xB0, 0xD3, 0x3B, 0xAA, 0x3C, 0x01, 0x31, 0x9D, 0xCF,
436 0x80, 0x88, 0x09, 0x4D, 0x03, 0x59, 0xE5, 0xFD, 0x45, 0xD6, 0xAE, 0xAA, 0x8B, 0x2D, 0x0C, 0x3D,
437 } },
438 { 8193,
439 {
440 0xBA, 0xB6, 0xC0, 0x9C, 0xB8, 0xCE, 0x8C, 0xF4, 0x59, 0x26, 0x13, 0x98, 0xD2, 0xE7, 0xAE, 0xF3,
441 0x57, 0x00, 0xBF, 0x48, 0x81, 0x16, 0xCE, 0xB9, 0x4A, 0x36, 0xD0, 0xF5, 0xF1, 0xB7, 0xBC, 0x3B,
442 },
443 {
444 0x95, 0x4A, 0x2A, 0x75, 0x42, 0x0C, 0x8D, 0x65, 0x47, 0xE3, 0xBA, 0x5B, 0x98, 0xD9, 0x63, 0xE6,
445 0xFA, 0x64, 0x91, 0xAD, 0xDC, 0x8C, 0x02, 0x31, 0x89, 0xCC, 0x51, 0x98, 0x21, 0xB4, 0xA1, 0xF5,
446 },
447 {
448 0xAF, 0x1E, 0x03, 0x46, 0xE3, 0x89, 0xB1, 0x7C, 0x23, 0x20, 0x02, 0x70, 0xA6, 0x4A, 0xA4, 0xE1,
449 0xEA, 0xD9, 0x8C, 0x61, 0x69, 0x5D, 0x91, 0x7D, 0xE7, 0xD5, 0xB0, 0x04, 0x91, 0xC9, 0xB0, 0xF1,
450 } },
451 { 16384,
452 {
453 0xF8, 0x75, 0xD6, 0x64, 0x6D, 0xE2, 0x89, 0x85, 0x64, 0x6F, 0x34, 0xEE, 0x13, 0xBE, 0x9A, 0x57,
454 0x6F, 0xD5, 0x15, 0xF7, 0x6B, 0x5B, 0x0A, 0x26, 0xBB, 0x32, 0x47, 0x35, 0x04, 0x1D, 0xDD, 0xE4,
455 },
456 {
457 0x9E, 0x9F, 0xC4, 0xEB, 0x7C, 0xF0, 0x81, 0xEA, 0x7C, 0x47, 0xD1, 0x80, 0x77, 0x90, 0xED, 0x21,
458 0x1B, 0xFE, 0xC5, 0x6A, 0xA2, 0x5B, 0xB7, 0x03, 0x77, 0x84, 0xC1, 0x3C, 0x4B, 0x70, 0x7B, 0x0D,
459 },
460 {
461 0x16, 0x0E, 0x18, 0xB5, 0x87, 0x8C, 0xD0, 0xDF, 0x1C, 0x3A, 0xF8, 0x5E, 0xB2, 0x5A, 0x0D, 0xB5,
462 0x34, 0x4D, 0x43, 0xA6, 0xFB, 0xD7, 0xA8, 0xEF, 0x4E, 0xD9, 0x8D, 0x07, 0x14, 0xC3, 0xF7, 0xE1,
463 } },
464 { 31744,
465 {
466 0x62, 0xB6, 0x96, 0x0E, 0x1A, 0x44, 0xBC, 0xC1, 0xEB, 0x1A, 0x61, 0x1A, 0x8D, 0x62, 0x35, 0xB6,
467 0xB4, 0xB7, 0x8F, 0x32, 0xE7, 0xAB, 0xC4, 0xFB, 0x4C, 0x6C, 0xDC, 0xCE, 0x94, 0x89, 0x5C, 0x47,
468 },
469 {
470 0xEF, 0xA5, 0x3B, 0x38, 0x9A, 0xB6, 0x7C, 0x59, 0x3D, 0xBA, 0x62, 0x4D, 0x89, 0x8D, 0x0F, 0x73,
471 0x53, 0xAB, 0x99, 0xE4, 0xAC, 0x9D, 0x42, 0x30, 0x2E, 0xE6, 0x4C, 0xBF, 0x99, 0x39, 0xA4, 0x19,
472 },
473 {
474 0x39, 0x77, 0x2A, 0xEF, 0x80, 0xE0, 0xEB, 0xE6, 0x05, 0x96, 0x36, 0x1E, 0x45, 0xB0, 0x61, 0xE8,
475 0xF4, 0x17, 0x42, 0x9D, 0x52, 0x91, 0x71, 0xB6, 0x76, 0x44, 0x68, 0xC2, 0x29, 0x28, 0xE2, 0x8E,
476 } },
477 { 102400,
478 {
479 0xBC, 0x3E, 0x3D, 0x41, 0xA1, 0x14, 0x6B, 0x06, 0x9A, 0xBF, 0xFA, 0xD3, 0xC0, 0xD4, 0x48, 0x60,
480 0xCF, 0x66, 0x43, 0x90, 0xAF, 0xCE, 0x4D, 0x96, 0x61, 0xF7, 0x90, 0x2E, 0x79, 0x43, 0xE0, 0x85,
481 },
482 {
483 0x1C, 0x35, 0xD1, 0xA5, 0x81, 0x10, 0x83, 0xFD, 0x71, 0x19, 0xF5, 0xD5, 0xD1, 0xBA, 0x02, 0x7B,
484 0x4D, 0x01, 0xC0, 0xC6, 0xC4, 0x9F, 0xB6, 0xFF, 0x2C, 0xF7, 0x53, 0x93, 0xEA, 0x5D, 0xB4, 0xA7,
485 },
486 {
487 0x46, 0x52, 0xCF, 0xF7, 0xA3, 0xF3, 0x85, 0xA6, 0x10, 0x3B, 0x5C, 0x26, 0x0F, 0xC1, 0x59, 0x3E,
488 0x13, 0xC7, 0x78, 0xDB, 0xE6, 0x08, 0xEF, 0xB0, 0x92, 0xFE, 0x7E, 0xE6, 0x9D, 0xF6, 0xE9, 0xC6,
489 } }
490};
491
493 { "",
494 {
495 0xAF, 0x13, 0x49, 0xB9, 0xF5, 0xF9, 0xA1, 0xA6, 0xA0, 0x40, 0x4D, 0xEA, 0x36, 0xDC, 0xC9, 0x49,
496 0x9B, 0xCB, 0x25, 0xC9, 0xAD, 0xC1, 0x12, 0xB7, 0xCC, 0x9A, 0x93, 0xCA, 0xE4, 0x1F, 0x32, 0x62,
497 } },
498 { "a",
499 {
500 0x17, 0x76, 0x2F, 0xDD, 0xD9, 0x69, 0xA4, 0x53, 0x92, 0x5D, 0x65, 0x71, 0x7A, 0xC3, 0xEE, 0xA2,
501 0x13, 0x20, 0xB6, 0x6B, 0x54, 0x34, 0x2F, 0xDE, 0x15, 0x12, 0x8D, 0x6C, 0xAF, 0x21, 0x21, 0x5F,
502 } },
503 { "ab",
504 {
505 0x2D, 0xC9, 0x99, 0x99, 0xA6, 0xAA, 0xEF, 0x3F, 0x20, 0x34, 0x9D, 0x2E, 0xD4, 0x05, 0x7A, 0x2B,
506 0x54, 0x41, 0x95, 0x45, 0xDA, 0xBB, 0x80, 0x9E, 0x63, 0x81, 0xDE, 0x1B, 0xAD, 0x83, 0x37, 0xE2,
507 } },
508 { "abc",
509 {
510 0x64, 0x37, 0xB3, 0xAC, 0x38, 0x46, 0x51, 0x33, 0xFF, 0xB6, 0x3B, 0x75, 0x27, 0x3A, 0x8D, 0xB5,
511 0x48, 0xC5, 0x58, 0x46, 0x5D, 0x79, 0xDB, 0x03, 0xFD, 0x35, 0x9C, 0x6C, 0xD5, 0xBD, 0x9D, 0x85,
512 } },
513 { "abcd",
514 {
515 0x8C, 0x9C, 0x98, 0x81, 0x80, 0x5D, 0x1A, 0x84, 0x71, 0x02, 0xD7, 0xA4, 0x2E, 0x58, 0xB9, 0x90,
516 0xD0, 0x88, 0xDD, 0x88, 0xA8, 0x4F, 0x73, 0x14, 0xD7, 0x1C, 0x83, 0x81, 0x07, 0x57, 0x1F, 0x2B,
517 } },
518 { "abcde",
519 {
520 0x06, 0x48, 0xC0, 0x3B, 0x5A, 0xD9, 0xBB, 0x6D, 0xDF, 0x83, 0x06, 0xEE, 0xF6, 0xA3, 0x3E, 0xBA,
521 0xE8, 0xF8, 0x9C, 0xB4, 0x74, 0x11, 0x50, 0xC1, 0xAE, 0x9C, 0xD6, 0x62, 0xFD, 0xCC, 0x1E, 0xE2,
522 } },
523 { "abcdef",
524 {
525 0xB3, 0x4B, 0x56, 0x07, 0x67, 0x12, 0xFD, 0x7F, 0xB9, 0xC0, 0x67, 0x24, 0x5A, 0x6C, 0x85, 0xE1,
526 0x61, 0x74, 0xB3, 0xEF, 0x2E, 0x35, 0xDF, 0x7B, 0x56, 0xB7, 0xF1, 0x64, 0xE5, 0xC3, 0x64, 0x46,
527 } },
528 { "abcdefg",
529 {
530 0xE2, 0xD1, 0x8D, 0x70, 0xDB, 0x12, 0x70, 0x5E, 0x18, 0x45, 0xFA, 0xF5, 0x00, 0xDE, 0x11, 0x98,
531 0xA5, 0xBA, 0x14, 0x83, 0x72, 0x9D, 0x97, 0x93, 0x6F, 0x1D, 0x2B, 0x76, 0x09, 0x68, 0x31, 0x2E,
532 } },
533 { "abcdefgh",
534 {
535 0xDD, 0xAA, 0x2A, 0xC3, 0x0A, 0x98, 0x65, 0x59, 0x62, 0x97, 0x90, 0x19, 0xE4, 0x35, 0x38, 0x32,
536 0x6A, 0xD7, 0xBE, 0xF0, 0xDA, 0x0E, 0x6A, 0xC2, 0xF3, 0xE5, 0x1F, 0xB3, 0x51, 0x3A, 0x5C, 0xDA,
537 } },
538 { "abcdefghi",
539 {
540 0x89, 0x9E, 0xAD, 0x67, 0x56, 0x1E, 0x6E, 0x71, 0x76, 0xDD, 0xCA, 0xD0, 0xB4, 0x47, 0xCA, 0xEC,
541 0x42, 0xA6, 0x58, 0xB7, 0x0B, 0xB1, 0x81, 0x75, 0x7F, 0x14, 0x4C, 0xE9, 0xEB, 0xB1, 0x59, 0xC4,
542 } },
543 { "abcdefghij",
544 {
545 0xD1, 0x0C, 0x2A, 0xCB, 0x51, 0x8F, 0xD7, 0x4A, 0xE1, 0x30, 0xF6, 0x3E, 0x3A, 0x45, 0x2A, 0x9A,
546 0x05, 0x54, 0x71, 0x16, 0x41, 0x81, 0xA6, 0x3A, 0x7D, 0x94, 0xC1, 0x82, 0xF5, 0x70, 0x34, 0x9B,
547 } },
548 { "abcdefghijk",
549 {
550 0x33, 0x69, 0x93, 0xBC, 0xB0, 0xAA, 0xCB, 0x8B, 0x33, 0xCB, 0xBF, 0x67, 0x70, 0x25, 0x59, 0x29,
551 0x62, 0x60, 0x6A, 0x69, 0x0C, 0xEC, 0xBE, 0xD3, 0x85, 0x7C, 0x81, 0xF9, 0x49, 0x36, 0x4E, 0xA5,
552 } },
553 { "abcdefghijkl",
554 {
555 0xA7, 0x4A, 0x54, 0x2E, 0xA1, 0xF9, 0x95, 0x7F, 0x55, 0xBA, 0xE1, 0x99, 0xF8, 0x9A, 0xB4, 0x6B,
556 0x90, 0xC8, 0xB4, 0x1E, 0x94, 0x04, 0x89, 0x07, 0x5E, 0xC9, 0x24, 0x49, 0x0F, 0xB6, 0xA9, 0x26,
557 } },
558 { "abcdefghijklm",
559 {
560 0xA1, 0xF7, 0xDF, 0x9D, 0x3A, 0x01, 0x44, 0x25, 0x22, 0x0D, 0x2B, 0x96, 0xDF, 0xB3, 0xCE, 0xBA,
561 0x8A, 0xD1, 0x26, 0x4E, 0xD1, 0x65, 0x56, 0x50, 0x02, 0xA6, 0xEC, 0xC3, 0x02, 0xAF, 0x7A, 0xD0,
562 } },
563 { "abcdefghijklmn",
564 {
565 0x7A, 0x97, 0x9F, 0xCC, 0xF3, 0x89, 0x89, 0xFC, 0xDD, 0x63, 0x09, 0xDB, 0x94, 0x7D, 0x28, 0x6D,
566 0xF2, 0xF4, 0xF7, 0xEC, 0x80, 0xDD, 0x11, 0x88, 0xEC, 0x07, 0x94, 0xE9, 0x1B, 0x8F, 0xBE, 0x2E,
567 } },
568 { "abcdefghijklmno",
569 {
570 0xF3, 0x50, 0x1B, 0x61, 0x52, 0x06, 0xCE, 0x9E, 0x7D, 0xC2, 0xC6, 0xAD, 0x16, 0xA0, 0xF2, 0xC6,
571 0x44, 0x34, 0xDD, 0xF1, 0xA5, 0x33, 0xBB, 0xDC, 0x0A, 0x25, 0xA6, 0x0D, 0x20, 0xE4, 0x4E, 0x5E,
572 } },
573 { "abcdefghijklmnop",
574 {
575 0x00, 0x9E, 0x43, 0x83, 0x6D, 0x52, 0xF4, 0x8B, 0x87, 0x6D, 0x62, 0x74, 0xFF, 0x17, 0xFA, 0xF3,
576 0xB5, 0xA3, 0x4A, 0xF7, 0x7E, 0x68, 0xD7, 0xFA, 0x73, 0x0E, 0x5E, 0xF9, 0xFE, 0xA2, 0xD3, 0x58,
577 } },
578 { "abcdefghijklmnopq",
579 {
580 0x26, 0xDC, 0x2E, 0x71, 0x55, 0x16, 0xD4, 0x06, 0xC3, 0x70, 0x02, 0x05, 0x68, 0x90, 0xFE, 0xD1,
581 0x94, 0x64, 0x83, 0x38, 0x7E, 0xFB, 0xB8, 0x0E, 0x87, 0x33, 0x74, 0x32, 0x67, 0x37, 0x21, 0x61,
582 } },
583 { "abcdefghijklmnopqr",
584 {
585 0xD1, 0x32, 0x17, 0xD1, 0x80, 0xF3, 0x75, 0xED, 0xDD, 0x8A, 0x18, 0x9E, 0x03, 0x18, 0x31, 0x69,
586 0x1F, 0xBD, 0x73, 0xB0, 0x28, 0xEE, 0x49, 0x7A, 0x5C, 0xAF, 0xC0, 0x8B, 0xD2, 0x9C, 0xEA, 0x6C,
587 } },
588 { "abcdefghijklmnopqrs",
589 {
590 0x24, 0x5F, 0xE8, 0x6C, 0xDE, 0x9B, 0x1E, 0x6F, 0xAD, 0xDB, 0xFA, 0xEE, 0xAF, 0x7F, 0x9C, 0x7C,
591 0xD9, 0xC0, 0x9A, 0xD6, 0x2B, 0x38, 0x45, 0x2D, 0x10, 0x3F, 0x62, 0x09, 0x83, 0x4C, 0xBF, 0x23,
592 } },
593 { "abcdefghijklmnopqrst",
594 {
595 0x18, 0xC5, 0x4F, 0xED, 0x84, 0xD3, 0x23, 0xE2, 0xEE, 0x91, 0x94, 0x81, 0x19, 0x22, 0x4F, 0x31,
596 0x59, 0xBF, 0xD4, 0xCD, 0xD3, 0xF5, 0x85, 0xF8, 0x2B, 0x56, 0xE0, 0xA6, 0x30, 0x92, 0xAD, 0xDE,
597 } },
598 { "abcdefghijklmnopqrstu",
599 {
600 0x61, 0x4A, 0x68, 0x5B, 0xE9, 0x1B, 0xC4, 0x46, 0x05, 0xEA, 0xE3, 0x31, 0x17, 0x5F, 0x45, 0xB8,
601 0xDA, 0xC2, 0x6F, 0xE3, 0xD1, 0xC5, 0xFB, 0xCD, 0x5D, 0x76, 0x1E, 0x0F, 0x74, 0x12, 0xB8, 0x2F,
602 } },
603 { "abcdefghijklmnopqrstuv",
604 {
605 0x22, 0x37, 0x6F, 0x74, 0xFE, 0x12, 0x93, 0xC4, 0xB7, 0x3B, 0xA3, 0x53, 0x7F, 0x00, 0xA3, 0x52,
606 0xE6, 0xA1, 0x2D, 0x67, 0xBF, 0xF9, 0x74, 0xC3, 0xBB, 0xA4, 0x4A, 0x5F, 0xC0, 0x3F, 0xED, 0xE7,
607 } },
608 { "abcdefghijklmnopqrstuvw",
609 {
610 0xC9, 0x65, 0xC1, 0xCC, 0xCE, 0x9C, 0xBC, 0xCB, 0xB8, 0x68, 0x31, 0x64, 0x91, 0xAA, 0x01, 0x86,
611 0xAB, 0x83, 0x9C, 0xFE, 0x86, 0xEF, 0xA4, 0xFE, 0xDF, 0xF0, 0x79, 0x2C, 0x79, 0xCF, 0x4E, 0xF9,
612 } },
613 { "abcdefghijklmnopqrstuvwx",
614 {
615 0x3A, 0x00, 0x36, 0x42, 0xAB, 0x93, 0xEA, 0xD3, 0xDC, 0xEB, 0xDE, 0x1C, 0xD7, 0x4D, 0x48, 0x2A,
616 0xEA, 0xB7, 0x6C, 0x51, 0x52, 0xA7, 0xF2, 0xE4, 0x02, 0x39, 0x63, 0xBF, 0x36, 0x57, 0x03, 0xD8,
617 } },
618 { "abcdefghijklmnopqrstuvwxy",
619 {
620 0xF7, 0xD9, 0x71, 0xE0, 0x5B, 0xAF, 0xD5, 0x8A, 0x22, 0x0F, 0x3A, 0x95, 0x34, 0x54, 0x2F, 0xE5,
621 0x45, 0x60, 0x4A, 0x7F, 0x99, 0x16, 0x56, 0x49, 0xB6, 0x59, 0x09, 0x3A, 0xEB, 0xA5, 0xFA, 0x6A,
622 } },
623 { "abcdefghijklmnopqrstuvwxyz",
624 {
625 0x24, 0x68, 0xEE, 0xC8, 0x89, 0x4A, 0xCF, 0xB4, 0xE4, 0xDF, 0x3A, 0x51, 0xEA, 0x91, 0x6B, 0xA1,
626 0x15, 0xD4, 0x82, 0x68, 0x28, 0x77, 0x54, 0x29, 0x0A, 0xAE, 0x8E, 0x9E, 0x62, 0x28, 0xE8, 0x5F,
627 } },
628 { "abcdefghijklmnopqrstuvwxyz0",
629 {
630 0xD6, 0xC9, 0xDE, 0x2C, 0x54, 0xD2, 0x7B, 0xDB, 0x4F, 0x68, 0xCD, 0x3C, 0x73, 0x42, 0x1D, 0x81,
631 0xF5, 0x2C, 0xC8, 0x06, 0xD2, 0x55, 0xDA, 0x08, 0xE2, 0x25, 0x4A, 0x0D, 0x57, 0x03, 0x1F, 0xF0,
632 } },
633 { "abcdefghijklmnopqrstuvwxyz01",
634 {
635 0x4D, 0x0C, 0x6F, 0x2F, 0xB0, 0xC1, 0xEB, 0xC4, 0x1B, 0xF2, 0x3C, 0xBA, 0xED, 0x30, 0x88, 0x39,
636 0xD7, 0x80, 0xAB, 0x47, 0xC8, 0xA3, 0x81, 0x23, 0xAF, 0x46, 0xB6, 0xE3, 0xAD, 0x82, 0x5F, 0xA4,
637 } },
638 { "abcdefghijklmnopqrstuvwxyz012",
639 {
640 0x4C, 0xEB, 0x7C, 0x49, 0x7A, 0xF4, 0xB6, 0x73, 0xC8, 0x58, 0xD8, 0x74, 0x6F, 0xDD, 0xBA, 0x3B,
641 0xFA, 0x80, 0xFA, 0x1A, 0xCB, 0x84, 0xE2, 0xAE, 0x91, 0x76, 0x9D, 0x4B, 0xD8, 0x74, 0xEA, 0x70,
642 } },
643 { "abcdefghijklmnopqrstuvwxyz0123",
644 {
645 0xED, 0x4C, 0x4A, 0xC9, 0x6A, 0x2E, 0xB3, 0xC0, 0xCC, 0x80, 0x88, 0xB4, 0x30, 0x3F, 0xD6, 0x78,
646 0x9B, 0x65, 0x16, 0x2F, 0x35, 0xD2, 0x77, 0xB2, 0xE6, 0xA8, 0x0F, 0xAF, 0x48, 0xCA, 0x67, 0x5E,
647 } },
648 { "abcdefghijklmnopqrstuvwxyz01234",
649 {
650 0x6A, 0x96, 0x16, 0x1F, 0x64, 0xDB, 0x0D, 0x56, 0xF0, 0x73, 0xFF, 0xE3, 0xC2, 0xC6, 0x66, 0xEB,
651 0x70, 0x2F, 0xFF, 0xCA, 0xA1, 0xF0, 0x96, 0xEB, 0xB1, 0x97, 0x0F, 0x78, 0xFD, 0xB5, 0x2B, 0xC9,
652 } },
653 { "abcdefghijklmnopqrstuvwxyz012345",
654 {
655 0x35, 0x5E, 0x5F, 0xD6, 0x25, 0xA9, 0xCD, 0x5C, 0x27, 0xB3, 0x12, 0xB3, 0xC4, 0x20, 0x8D, 0x02,
656 0x36, 0xED, 0x6D, 0x32, 0x56, 0x6B, 0xD5, 0xA0, 0x64, 0x25, 0x99, 0xC1, 0xC8, 0x99, 0x64, 0x06,
657 } },
658 { "abcdefghijklmnopqrstuvwxyz0123456",
659 {
660 0x86, 0xDE, 0x08, 0xB3, 0x23, 0x46, 0xA1, 0x21, 0xDB, 0xC1, 0xBB, 0xB9, 0x0C, 0xFF, 0xCA, 0x94,
661 0x29, 0xA5, 0x06, 0x8D, 0x79, 0x52, 0xFE, 0xF8, 0x97, 0x41, 0x6E, 0xBC, 0xE2, 0x47, 0xC6, 0xAE,
662 } },
663 { "abcdefghijklmnopqrstuvwxyz01234567",
664 {
665 0xFA, 0x75, 0xCD, 0x23, 0x99, 0x2C, 0x82, 0xCF, 0x11, 0x0B, 0x4C, 0xA1, 0xEE, 0x6A, 0x11, 0x86,
666 0x15, 0x48, 0xE9, 0xBD, 0x9C, 0xCB, 0x63, 0x2C, 0x7B, 0x60, 0x1F, 0xC3, 0xCB, 0x10, 0x65, 0x9F,
667 } },
668 { "abcdefghijklmnopqrstuvwxyz012345678",
669 {
670 0x2F, 0x96, 0xFC, 0xD5, 0x47, 0x6D, 0x14, 0x65, 0xB0, 0xA9, 0x9B, 0x37, 0x31, 0xCA, 0xF2, 0x41,
671 0x4B, 0xD2, 0xF0, 0x90, 0x10, 0xEE, 0x09, 0x44, 0x48, 0xBD, 0xB5, 0x59, 0x8A, 0xEC, 0xFF, 0xD2,
672 } },
673 { "abcdefghijklmnopqrstuvwxyz0123456789",
674 {
675 0xB0, 0xB9, 0x2F, 0x78, 0x81, 0x54, 0x3E, 0xFB, 0x77, 0xF3, 0x18, 0x6D, 0x81, 0x86, 0x09, 0x44,
676 0x20, 0xA9, 0x00, 0x63, 0xBB, 0x5A, 0x38, 0xC7, 0x55, 0x1D, 0xFB, 0x3D, 0xAC, 0x2F, 0xEB, 0xB1,
677 } },
678 { "abcdefghijklmnopqrstuvwxyz0123456789a",
679 {
680 0x0B, 0xE1, 0x2A, 0x0C, 0xFC, 0xE8, 0xCF, 0xAF, 0xB4, 0x66, 0x2D, 0xBC, 0xFD, 0xD4, 0x21, 0xAF,
681 0x55, 0x98, 0xE2, 0x01, 0x5D, 0xC8, 0xA3, 0x80, 0x5A, 0x68, 0xA7, 0x6D, 0x9D, 0xB0, 0xFE, 0xC3,
682 } },
683 { "abcdefghijklmnopqrstuvwxyz0123456789ab",
684 {
685 0x82, 0x0F, 0x15, 0xAE, 0x80, 0x73, 0x5E, 0x1B, 0x0A, 0x67, 0x6C, 0xA6, 0x9D, 0x36, 0xA1, 0x8D,
686 0x86, 0x93, 0x21, 0x39, 0x84, 0xD5, 0x5B, 0x5E, 0x3A, 0x7C, 0xC9, 0x60, 0x45, 0x08, 0x49, 0x79,
687 } },
688 { "abcdefghijklmnopqrstuvwxyz0123456789abc",
689 {
690 0xD8, 0x42, 0xF4, 0x26, 0xC3, 0x02, 0xDD, 0x36, 0xE7, 0x26, 0xD8, 0x59, 0xF0, 0xD3, 0x54, 0x3B,
691 0xA9, 0xF3, 0x31, 0xE2, 0xA4, 0xFC, 0x93, 0xF9, 0x22, 0xC0, 0xDD, 0xFA, 0x60, 0x2E, 0x36, 0x32,
692 } },
693 { "abcdefghijklmnopqrstuvwxyz0123456789abcd",
694 {
695 0x50, 0xA4, 0xDE, 0x4F, 0x65, 0x9A, 0x28, 0x2C, 0xD0, 0x99, 0x68, 0x60, 0x12, 0xDB, 0xD9, 0xAF,
696 0x2C, 0x1F, 0xD9, 0x7B, 0x50, 0x8E, 0xE8, 0x7B, 0xF6, 0x5F, 0x6F, 0x3E, 0x7F, 0x67, 0xB5, 0xF9,
697 } },
698 { "abcdefghijklmnopqrstuvwxyz0123456789abcde",
699 {
700 0x05, 0xC5, 0x21, 0xE1, 0x77, 0x93, 0xF5, 0x5D, 0xAF, 0x1D, 0x3A, 0xDD, 0xD1, 0x3A, 0xC8, 0xF7,
701 0x84, 0x51, 0xAF, 0xE4, 0x1C, 0x3D, 0xAC, 0x3D, 0xE5, 0x5D, 0x9F, 0x11, 0xE8, 0x31, 0xED, 0x2B,
702 } },
703 { "abcdefghijklmnopqrstuvwxyz0123456789abcdef",
704 {
705 0x1D, 0x7D, 0x82, 0xB2, 0xD2, 0x17, 0xD9, 0xDF, 0xCB, 0xC6, 0xD9, 0x72, 0x47, 0x22, 0x0C, 0xC5,
706 0x2D, 0xF1, 0x0F, 0xAF, 0xD4, 0x51, 0x61, 0xD2, 0x6A, 0x36, 0x36, 0x5D, 0x0E, 0xB8, 0xDD, 0x65,
707 } },
708 { "abcdefghijklmnopqrstuvwxyz0123456789abcdefg",
709 {
710 0xC7, 0x82, 0x41, 0x6B, 0xF3, 0xE7, 0x40, 0x6B, 0x1A, 0xFD, 0xC8, 0x2A, 0xFB, 0x6D, 0xE6, 0xB9,
711 0x15, 0xFF, 0x83, 0x48, 0x2D, 0x61, 0x11, 0x8E, 0xE1, 0xC0, 0x35, 0xE6, 0x48, 0x39, 0x9E, 0xE6,
712 } },
713 { "abcdefghijklmnopqrstuvwxyz0123456789abcdefgh",
714 {
715 0x0C, 0xB5, 0x2C, 0xD0, 0x1B, 0x97, 0x54, 0x0F, 0x87, 0x3E, 0xD6, 0x71, 0x9D, 0x5F, 0xF6, 0xFE,
716 0xB1, 0xE1, 0x46, 0x91, 0x35, 0x50, 0x0E, 0x6E, 0xD5, 0x9D, 0x21, 0x41, 0x43, 0xD9, 0x50, 0xC2,
717 } },
718 { "abcdefghijklmnopqrstuvwxyz0123456789abcdefghi",
719 {
720 0x6F, 0xE1, 0xD4, 0x04, 0x47, 0x58, 0x8C, 0x8D, 0xD9, 0x7B, 0x63, 0x72, 0xE4, 0x85, 0xD9, 0x33,
721 0x63, 0x36, 0x2A, 0x5B, 0xF6, 0x4E, 0x4C, 0x1B, 0x34, 0x1B, 0xD7, 0xF7, 0xFF, 0x86, 0x81, 0xFC,
722 } },
723 { "abcdefghijklmnopqrstuvwxyz0123456789abcdefghij",
724 {
725 0xB4, 0x75, 0xF1, 0x63, 0xEF, 0x54, 0x19, 0x19, 0x01, 0x9D, 0x5B, 0xF2, 0x87, 0xC5, 0x6E, 0xD6,
726 0x47, 0x24, 0xFD, 0x54, 0x86, 0x5A, 0x6A, 0xC1, 0xF0, 0x1D, 0x20, 0x06, 0x23, 0x29, 0x85, 0x01,
727 } },
728 { "abcdefghijklmnopqrstuvwxyz0123456789abcdefghijk",
729 {
730 0x57, 0xA5, 0xD1, 0x5A, 0xAB, 0x13, 0x3A, 0x41, 0x25, 0xBA, 0x8E, 0xFC, 0x97, 0x90, 0x48, 0x16,
731 0x6A, 0x21, 0x58, 0x5F, 0x47, 0xDA, 0xC9, 0x64, 0xA6, 0x4C, 0xCA, 0xD0, 0x49, 0xF9, 0x5B, 0xC1,
732 } },
733 { "abcdefghijklmnopqrstuvwxyz0123456789abcdefghijkl",
734 {
735 0x40, 0x9F, 0x20, 0x6E, 0xBE, 0x1D, 0x31, 0x1C, 0x2E, 0x97, 0x16, 0xC6, 0x8F, 0x81, 0xBF, 0x7D,
736 0xA2, 0x2A, 0xC3, 0x27, 0x10, 0x07, 0xF6, 0x15, 0x54, 0x0D, 0xF8, 0xA3, 0x22, 0x54, 0x08, 0xA0,
737 } },
738 { "abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklm",
739 {
740 0xC1, 0x1A, 0x7C, 0x91, 0xAC, 0xC9, 0x02, 0xA6, 0xC5, 0x41, 0xFC, 0x0C, 0x79, 0x49, 0xDC, 0x86,
741 0xF5, 0xBE, 0xCD, 0x3E, 0xFD, 0x21, 0x89, 0x64, 0xD2, 0x36, 0x1A, 0x9D, 0xEB, 0xC9, 0xD6, 0x24,
742 } },
743 { "abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmn",
744 {
745 0xC4, 0xBB, 0x86, 0x95, 0x20, 0x61, 0xEC, 0xB5, 0x97, 0x16, 0x3E, 0xB3, 0xAD, 0xD6, 0xAB, 0x55,
746 0xEB, 0x76, 0x25, 0xCD, 0xA7, 0x43, 0x89, 0x39, 0xF0, 0x58, 0xFD, 0x37, 0x43, 0xF7, 0x50, 0xE6,
747 } },
748 { "abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmno",
749 {
750 0x52, 0x37, 0x53, 0x3B, 0x57, 0x4F, 0x97, 0xAE, 0x1F, 0x93, 0xEE, 0x00, 0x56, 0x59, 0xCD, 0xCB,
751 0x2D, 0x93, 0xF5, 0x28, 0x2D, 0x88, 0x12, 0xCD, 0xCD, 0xF1, 0xB2, 0x3C, 0xE6, 0xC0, 0x5D, 0xE1,
752 } },
753 { "abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnop",
754 {
755 0x12, 0x31, 0x05, 0x55, 0x14, 0x80, 0x59, 0xFD, 0x7D, 0x68, 0x56, 0xD8, 0x66, 0x5D, 0xBB, 0xCF,
756 0xC8, 0x27, 0x88, 0x7F, 0x4F, 0xE3, 0x3E, 0x60, 0x5B, 0x3F, 0xF8, 0x3D, 0x5F, 0x42, 0xCB, 0x4B,
757 } },
758 { "abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopq",
759 {
760 0xF1, 0xEF, 0x42, 0xBD, 0x61, 0x26, 0x88, 0x75, 0x92, 0x98, 0x37, 0x2B, 0x04, 0x3C, 0xBB, 0x22,
761 0x71, 0xA6, 0x51, 0x12, 0x0D, 0x99, 0xA4, 0x02, 0x52, 0xC0, 0x75, 0xC8, 0x32, 0x57, 0x61, 0xA1,
762 } },
763 { "abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqr",
764 {
765 0x39, 0xC9, 0x89, 0x0B, 0x86, 0xAC, 0xDF, 0xD8, 0xB8, 0x76, 0x4C, 0x78, 0x34, 0x62, 0x25, 0xF9,
766 0xD0, 0x69, 0xCC, 0x53, 0xB8, 0xD8, 0xC3, 0xB9, 0xD5, 0xD9, 0x99, 0x22, 0xBA, 0x4E, 0x2C, 0x43,
767 } },
768 { "abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrs",
769 {
770 0x94, 0x84, 0xD7, 0x8C, 0x2C, 0x64, 0x9C, 0x38, 0x41, 0xE5, 0x95, 0xCD, 0x20, 0xA4, 0xD0, 0x87,
771 0xBF, 0x52, 0xCE, 0x14, 0x69, 0xE2, 0x57, 0x08, 0xA4, 0x18, 0x32, 0x58, 0xC6, 0x1E, 0xD2, 0xEF,
772 } },
773 { "abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrst",
774 {
775 0x38, 0x5C, 0xC1, 0x1A, 0x36, 0x61, 0x12, 0xBE, 0x5B, 0xF3, 0x36, 0x32, 0xB3, 0x63, 0xD4, 0x95,
776 0x5D, 0x29, 0x5F, 0x1F, 0x2B, 0x4C, 0xF0, 0x08, 0xBB, 0x0E, 0x67, 0x90, 0xB1, 0x17, 0xD3, 0xE6,
777 } },
778 { "abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstu",
779 {
780 0x52, 0x35, 0x52, 0x89, 0x00, 0xF4, 0xBC, 0x82, 0xF5, 0x47, 0x46, 0x33, 0x05, 0x87, 0xD1, 0x1B,
781 0x8F, 0x20, 0x3E, 0x66, 0x35, 0xD8, 0x3A, 0xB7, 0x08, 0xC6, 0x9A, 0x95, 0xBC, 0x6E, 0xC7, 0xAD,
782 } },
783 { "abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuv",
784 {
785 0xD1, 0x40, 0x7E, 0x7D, 0x6B, 0x47, 0x49, 0xF9, 0x9F, 0xEB, 0x9C, 0xAE, 0x77, 0xFF, 0x4B, 0x3B,
786 0x32, 0xA6, 0xD0, 0xD3, 0x6E, 0xB1, 0xA2, 0x79, 0x28, 0xBD, 0xAB, 0x1A, 0x98, 0x21, 0xF0, 0xD7,
787 } },
788 { "abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvw",
789 {
790 0x4F, 0xE7, 0xCC, 0x9F, 0x96, 0x3F, 0x77, 0x03, 0xB4, 0x48, 0x26, 0xEC, 0x47, 0x6E, 0x63, 0x3F,
791 0x22, 0xCA, 0x25, 0x97, 0xAE, 0x1A, 0x5B, 0x75, 0xF8, 0x4A, 0xFE, 0x6C, 0x8A, 0x04, 0xAD, 0x56,
792 } },
793 { "abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwx",
794 {
795 0xD0, 0x50, 0x10, 0x40, 0xA4, 0xCE, 0x8E, 0xB2, 0x73, 0x55, 0x19, 0xC3, 0xFB, 0xED, 0x76, 0x5E,
796 0x9D, 0x80, 0x42, 0xDD, 0x3B, 0xD4, 0x3F, 0xF9, 0x07, 0xCC, 0xD9, 0x5D, 0xCC, 0x17, 0xC6, 0xCC,
797 } },
798 { "abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxy",
799 {
800 0xE8, 0x8C, 0xAF, 0x20, 0x5D, 0x3C, 0x9F, 0x8F, 0x82, 0x2F, 0x65, 0x3A, 0xD5, 0x80, 0x9F, 0x43,
801 0xD1, 0xF9, 0xD4, 0x6A, 0x3E, 0x45, 0xA9, 0xEB, 0xCF, 0xF2, 0xE6, 0xC0, 0x64, 0x38, 0xF8, 0x7D,
802 } },
803 { "abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz",
804 {
805 0x23, 0xCE, 0xAA, 0xFD, 0xAC, 0x74, 0xFB, 0xB0, 0x87, 0x33, 0xC0, 0x03, 0x25, 0xA6, 0x96, 0x40,
806 0xEE, 0x85, 0xC9, 0xB3, 0x32, 0x68, 0x2C, 0x5A, 0xE2, 0x68, 0xB4, 0x53, 0x90, 0x48, 0x7C, 0x6A,
807 } },
808 { "abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0",
809 {
810 0xD4, 0x91, 0x25, 0x0A, 0x64, 0xC0, 0xA6, 0xB6, 0xDB, 0x2D, 0xDE, 0x1A, 0xEA, 0x38, 0x92, 0xEE,
811 0x56, 0x47, 0x8D, 0x2B, 0x26, 0xC4, 0x26, 0xE2, 0xA2, 0x52, 0xE5, 0x39, 0x37, 0x5F, 0xFB, 0x59,
812 } },
813 { "abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz01",
814 {
815 0xF7, 0xF8, 0x54, 0x5A, 0x00, 0x36, 0x5D, 0xE0, 0x08, 0x90, 0xAF, 0x80, 0x89, 0x96, 0xED, 0x71,
816 0x87, 0x8A, 0xDA, 0x34, 0x9A, 0x98, 0xD2, 0xCB, 0x5B, 0x91, 0x06, 0xC1, 0x95, 0x60, 0x71, 0x37,
817 } },
818 { "abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz012",
819 {
820 0xF5, 0x2B, 0x8E, 0x5E, 0x75, 0xC5, 0x6B, 0x8E, 0xAD, 0x21, 0xE5, 0xEF, 0x19, 0x19, 0xBD, 0xA7,
821 0x30, 0x70, 0x8B, 0xA3, 0x3F, 0x9F, 0x24, 0x6A, 0x73, 0xC4, 0x03, 0xE1, 0x41, 0xCE, 0xED, 0x0F,
822 } },
823 { "abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123",
824 {
825 0x8D, 0x07, 0x4A, 0xB3, 0xB4, 0x1A, 0xF8, 0xCF, 0x10, 0xCB, 0x52, 0x60, 0x6A, 0xED, 0xEC, 0x0B,
826 0xFB, 0x8D, 0xD9, 0xF0, 0xD5, 0x22, 0xA8, 0xAA, 0xD4, 0x5C, 0x4C, 0x50, 0x01, 0x60, 0xF3, 0x07,
827 } },
828 { "abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz01234",
829 {
830 0x35, 0xFF, 0xDE, 0x6F, 0x4A, 0xF5, 0xE6, 0x5F, 0x5E, 0xCF, 0x17, 0x46, 0x4A, 0xE6, 0xDE, 0x27,
831 0x56, 0x06, 0x5F, 0xAF, 0x72, 0xF6, 0x3A, 0xD9, 0x02, 0xBD, 0x0E, 0x56, 0x2B, 0xB7, 0x18, 0x94,
832 } },
833 { "abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz012345",
834 {
835 0xFE, 0x4F, 0x12, 0xD6, 0x2E, 0xC1, 0x73, 0x6E, 0x99, 0x4A, 0x78, 0xD8, 0xEF, 0x66, 0x7E, 0x5B,
836 0x35, 0xB3, 0x03, 0x74, 0x85, 0x76, 0x0E, 0x8F, 0xFA, 0xDD, 0xE2, 0x41, 0xA6, 0x19, 0x34, 0x66,
837 } },
838 { "abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456",
839 {
840 0xA3, 0x27, 0xA8, 0xF0, 0xCE, 0xF2, 0x24, 0x4E, 0x39, 0x3F, 0xE9, 0x8B, 0xA7, 0xE5, 0x59, 0x5C,
841 0x5E, 0x40, 0xE4, 0x35, 0x93, 0xE5, 0x87, 0xCE, 0x55, 0x43, 0x02, 0x1C, 0xD5, 0xF9, 0x4C, 0xAD,
842 } },
843 { "abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz01234567",
844 {
845 0xD2, 0x17, 0xD0, 0xA3, 0xEC, 0x35, 0x28, 0x99, 0xDD, 0xB1, 0xD0, 0x38, 0xE5, 0x33, 0x6A, 0xE7,
846 0x15, 0x56, 0xC0, 0xEA, 0x61, 0x2A, 0xF9, 0x70, 0xCB, 0x75, 0xD4, 0x9B, 0x1E, 0x25, 0x36, 0x6E,
847 } },
848 { "abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz012345678",
849 {
850 0x05, 0x5E, 0x47, 0x72, 0x8E, 0x3C, 0xE5, 0xD4, 0x83, 0xBD, 0xB4, 0x8F, 0x47, 0x14, 0x5C, 0xF6,
851 0xF7, 0x31, 0xF5, 0x0F, 0xC9, 0x34, 0xA1, 0xF6, 0x4B, 0x58, 0xBD, 0xE6, 0x41, 0x38, 0x38, 0x07,
852 } },
853 { "abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789",
854 {
855 0xAA, 0x60, 0x21, 0x6D, 0xE8, 0x21, 0x17, 0x5F, 0x97, 0x3E, 0x38, 0x26, 0xED, 0x7A, 0x0B, 0x74,
856 0x31, 0xEC, 0x87, 0xE8, 0xE2, 0x19, 0x2E, 0x80, 0x24, 0x12, 0x53, 0xB2, 0xA9, 0x4D, 0xB0, 0x11,
857 } },
858};
859
860std::vector<uint8_t> test_input(size_t input_len)
861{
862 std::vector<uint8_t> input;
863 for (size_t i = 0; i < input_len; ++i) {
864 input.push_back(uint8_t(i % 251));
865 }
866 return input;
867}
868
869TEST(misc_blake3s_full, test_vectors)
870{
871 for (auto v : test_vectors) {
872 std::vector<uint8_t> input(v.input.begin(), v.input.end());
873 EXPECT_EQ(blake3_full::blake3s(input), v.output);
874 }
875}
876
877TEST(misc_blake3s_full, test_full_vectors)
878{
879 std::string key_str = "whats the Elvish word for friend";
880 std::vector<uint8_t> key(key_str.begin(), key_str.end());
881
882 char context[] = "BLAKE3 2019-12-27 16:29:52 test vectors context";
883
884 for (auto v : full_test_vector) {
885 std::vector<uint8_t> input = test_input(v.input_len);
886
887 // Test normal hash
888 EXPECT_EQ(blake3_full::blake3s(input), v.hash);
889
890 // Test keyed hash
891 EXPECT_EQ(blake3_full::blake3s(input, blake3_full::KEYED_HASH_MODE, &key[0]), v.keyed_hash);
892
893 // Test derive key hash
894 EXPECT_EQ(blake3_full::blake3s(input, blake3_full::DERIVE_KEY_MODE, nullptr, context), v.derive_key);
895 }
896}
StrictMock< MockContext > context
test_vector test_vectors[]
std::vector< uint8_t > test_input(size_t input_len)
TEST(misc_blake3s_full, test_vectors)
@ DERIVE_KEY_MODE
Definition blake3s.hpp:56
@ KEYED_HASH_MODE
Definition blake3s.hpp:56
std::vector< uint8_t > blake3s(std::vector< uint8_t > const &input, const mode mode_id, const uint8_t key[BLAKE3_KEY_LEN], const char *context)
Definition blake3s.cpp:860
std::vector< uint8_t > keyed_hash
std::vector< uint8_t > hash
std::vector< uint8_t > derive_key
std::string keyed_hash
std::string derive_key
std::vector< uint8_t > output
std::string input