1 /*
2  * This file and its contents are supplied under the terms of the
3  * Common Development and Distribution License ("CDDL"), version 1.0.
4  * You may only use this file in accordance with the terms of version
5  * 1.0 of the CDDL.
6  *
7  * A full copy of the text of the CDDL should have accompanied this
8  * source.  A copy of the CDDL is also available via the Internet at
9  * http://www.illumos.org/license/CDDL.
10  */
11 
12 /*
13  * Copyright 2015 Nexenta Systems, Inc.  All rights reserved.
14  */
15 
16 #ifndef _AES_GCM_H
17 #define	_AES_GCM_H
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
23 /*
24  * Test vectors
25  * NIST, "The Galois/Counter Mode of Operation (GCM)", Appendix B
26  * http://csrc.nist.gov/groups/ST/toolkit/
27  *     BCM/documents/proposedmodes/gcm/gcm-spec.pdf
28  */
29 
30 uint8_t GCM_KEY0[] = {
31 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
32 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
33 };
34 
35 #define	GCM_DATA0 NULL
36 
37 #define	GCM_AUTH0 NULL
38 
39 uint8_t GCM_IV0[] = {
40 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
41 	0x00, 0x00, 0x00, 0x00,
42 };
43 
44 uint8_t GCM_RES0[] = {
45 	0x58, 0xe2, 0xfc, 0xce, 0xfa, 0x7e, 0x30, 0x61,
46 	0x36, 0x7f, 0x1d, 0x57, 0xa4, 0xe7, 0x45, 0x5a,
47 };
48 
49 uint8_t GCM_KEY1[] = {
50 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
51 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
52 };
53 
54 uint8_t GCM_DATA1[] = {
55 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
56 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
57 };
58 
59 #define	GCM_AUTH1 NULL
60 
61 uint8_t GCM_IV1[] = {
62 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
63 	0x00, 0x00, 0x00, 0x00,
64 };
65 
66 uint8_t GCM_RES1[] = {
67 	0x03, 0x88, 0xda, 0xce, 0x60, 0xb6, 0xa3, 0x92,
68 	0xf3, 0x28, 0xc2, 0xb9, 0x71, 0xb2, 0xfe, 0x78,
69 	0xab, 0x6e, 0x47, 0xd4, 0x2c, 0xec, 0x13, 0xbd,
70 	0xf5, 0x3a, 0x67, 0xb2, 0x12, 0x57, 0xbd, 0xdf,
71 };
72 
73 uint8_t GCM_KEY2[] = {
74 	0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
75 	0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
76 };
77 
78 uint8_t GCM_DATA2[] = {
79 	0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
80 	0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
81 	0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
82 	0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
83 	0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
84 	0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
85 	0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
86 	0xba, 0x63, 0x7b, 0x39, 0x1a, 0xaf, 0xd2, 0x55,
87 };
88 
89 #define	GCM_AUTH2 NULL
90 
91 uint8_t GCM_IV2[] = {
92 	0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad,
93 	0xde, 0xca, 0xf8, 0x88,
94 };
95 
96 uint8_t GCM_RES2[] = {
97 	0x42, 0x83, 0x1e, 0xc2, 0x21, 0x77, 0x74, 0x24,
98 	0x4b, 0x72, 0x21, 0xb7, 0x84, 0xd0, 0xd4, 0x9c,
99 	0xe3, 0xaa, 0x21, 0x2f, 0x2c, 0x02, 0xa4, 0xe0,
100 	0x35, 0xc1, 0x7e, 0x23, 0x29, 0xac, 0xa1, 0x2e,
101 	0x21, 0xd5, 0x14, 0xb2, 0x54, 0x66, 0x93, 0x1c,
102 	0x7d, 0x8f, 0x6a, 0x5a, 0xac, 0x84, 0xaa, 0x05,
103 	0x1b, 0xa3, 0x0b, 0x39, 0x6a, 0x0a, 0xac, 0x97,
104 	0x3d, 0x58, 0xe0, 0x91, 0x47, 0x3f, 0x59, 0x85,
105 	0x4d, 0x5c, 0x2a, 0xf3, 0x27, 0xcd, 0x64, 0xa6,
106 	0x2c, 0xf3, 0x5a, 0xbd, 0x2b, 0xa6, 0xfa, 0xb4,
107 };
108 
109 uint8_t GCM_KEY3[] = {
110 	0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
111 	0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
112 };
113 
114 uint8_t GCM_DATA3[] = {
115 	0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
116 	0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
117 	0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
118 	0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
119 	0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
120 	0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
121 	0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
122 	0xba, 0x63, 0x7b, 0x39,
123 };
124 
125 uint8_t GCM_AUTH3[] = {
126 	0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
127 	0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
128 	0xab, 0xad, 0xda, 0xd2,
129 };
130 
131 uint8_t GCM_IV3[] = {
132 	0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad,
133 	0xde, 0xca, 0xf8, 0x88,
134 };
135 
136 uint8_t GCM_RES3[] = {
137 	0x42, 0x83, 0x1e, 0xc2, 0x21, 0x77, 0x74, 0x24,
138 	0x4b, 0x72, 0x21, 0xb7, 0x84, 0xd0, 0xd4, 0x9c,
139 	0xe3, 0xaa, 0x21, 0x2f, 0x2c, 0x02, 0xa4, 0xe0,
140 	0x35, 0xc1, 0x7e, 0x23, 0x29, 0xac, 0xa1, 0x2e,
141 	0x21, 0xd5, 0x14, 0xb2, 0x54, 0x66, 0x93, 0x1c,
142 	0x7d, 0x8f, 0x6a, 0x5a, 0xac, 0x84, 0xaa, 0x05,
143 	0x1b, 0xa3, 0x0b, 0x39, 0x6a, 0x0a, 0xac, 0x97,
144 	0x3d, 0x58, 0xe0, 0x91, 0x5b, 0xc9, 0x4f, 0xbc,
145 	0x32, 0x21, 0xa5, 0xdb, 0x94, 0xfa, 0xe9, 0x5a,
146 	0xe7, 0x12, 0x1a, 0x47,
147 };
148 
149 uint8_t GCM_KEY4[] = {
150 	0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
151 	0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
152 };
153 
154 uint8_t GCM_DATA4[] = {
155 	0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
156 	0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
157 	0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
158 	0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
159 	0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
160 	0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
161 	0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
162 	0xba, 0x63, 0x7b, 0x39,
163 };
164 
165 uint8_t GCM_AUTH4[] = {
166 	0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
167 	0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
168 	0xab, 0xad, 0xda, 0xd2,
169 };
170 
171 uint8_t GCM_IV4[] = {
172 	0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad,
173 };
174 
175 uint8_t GCM_RES4[] = {
176 	0x61, 0x35, 0x3b, 0x4c, 0x28, 0x06, 0x93, 0x4a,
177 	0x77, 0x7f, 0xf5, 0x1f, 0xa2, 0x2a, 0x47, 0x55,
178 	0x69, 0x9b, 0x2a, 0x71, 0x4f, 0xcd, 0xc6, 0xf8,
179 	0x37, 0x66, 0xe5, 0xf9, 0x7b, 0x6c, 0x74, 0x23,
180 	0x73, 0x80, 0x69, 0x00, 0xe4, 0x9f, 0x24, 0xb2,
181 	0x2b, 0x09, 0x75, 0x44, 0xd4, 0x89, 0x6b, 0x42,
182 	0x49, 0x89, 0xb5, 0xe1, 0xeb, 0xac, 0x0f, 0x07,
183 	0xc2, 0x3f, 0x45, 0x98, 0x36, 0x12, 0xd2, 0xe7,
184 	0x9e, 0x3b, 0x07, 0x85, 0x56, 0x1b, 0xe1, 0x4a,
185 	0xac, 0xa2, 0xfc, 0xcb,
186 };
187 
188 uint8_t GCM_KEY5[] = {
189 	0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
190 	0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
191 };
192 
193 uint8_t GCM_DATA5[] = {
194 	0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
195 	0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
196 	0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
197 	0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
198 	0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
199 	0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
200 	0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
201 	0xba, 0x63, 0x7b, 0x39,
202 };
203 
204 uint8_t GCM_AUTH5[] = {
205 	0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
206 	0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
207 	0xab, 0xad, 0xda, 0xd2,
208 };
209 
210 uint8_t GCM_IV5[] = {
211 	0x93, 0x13, 0x22, 0x5d, 0xf8, 0x84, 0x06, 0xe5,
212 	0x55, 0x90, 0x9c, 0x5a, 0xff, 0x52, 0x69, 0xaa,
213 	0x6a, 0x7a, 0x95, 0x38, 0x53, 0x4f, 0x7d, 0xa1,
214 	0xe4, 0xc3, 0x03, 0xd2, 0xa3, 0x18, 0xa7, 0x28,
215 	0xc3, 0xc0, 0xc9, 0x51, 0x56, 0x80, 0x95, 0x39,
216 	0xfc, 0xf0, 0xe2, 0x42, 0x9a, 0x6b, 0x52, 0x54,
217 	0x16, 0xae, 0xdb, 0xf5, 0xa0, 0xde, 0x6a, 0x57,
218 	0xa6, 0x37, 0xb3, 0x9b,
219 };
220 
221 uint8_t GCM_RES5[] = {
222 	0x8c, 0xe2, 0x49, 0x98, 0x62, 0x56, 0x15, 0xb6,
223 	0x03, 0xa0, 0x33, 0xac, 0xa1, 0x3f, 0xb8, 0x94,
224 	0xbe, 0x91, 0x12, 0xa5, 0xc3, 0xa2, 0x11, 0xa8,
225 	0xba, 0x26, 0x2a, 0x3c, 0xca, 0x7e, 0x2c, 0xa7,
226 	0x01, 0xe4, 0xa9, 0xa4, 0xfb, 0xa4, 0x3c, 0x90,
227 	0xcc, 0xdc, 0xb2, 0x81, 0xd4, 0x8c, 0x7c, 0x6f,
228 	0xd6, 0x28, 0x75, 0xd2, 0xac, 0xa4, 0x17, 0x03,
229 	0x4c, 0x34, 0xae, 0xe5, 0x61, 0x9c, 0xc5, 0xae,
230 	0xff, 0xfe, 0x0b, 0xfa, 0x46, 0x2a, 0xf4, 0x3c,
231 	0x16, 0x99, 0xd0, 0x50,
232 };
233 
234 uint8_t GCM_KEY6[] = {
235 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
236 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
237 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
238 };
239 
240 #define	GCM_DATA6 NULL
241 
242 #define	GCM_AUTH6 NULL
243 
244 uint8_t GCM_IV6[] = {
245 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
246 	0x00, 0x00, 0x00, 0x00,
247 };
248 
249 uint8_t GCM_RES6[] = {
250 	0xcd, 0x33, 0xb2, 0x8a, 0xc7, 0x73, 0xf7, 0x4b,
251 	0xa0, 0x0e, 0xd1, 0xf3, 0x12, 0x57, 0x24, 0x35,
252 };
253 
254 uint8_t GCM_KEY7[] = {
255 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
256 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
257 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
258 };
259 
260 uint8_t GCM_DATA7[] = {
261 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
262 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
263 };
264 
265 #define	GCM_AUTH7 NULL
266 
267 uint8_t GCM_IV7[] = {
268 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
269 	0x00, 0x00, 0x00, 0x00,
270 };
271 
272 uint8_t GCM_RES7[] = {
273 	0x98, 0xe7, 0x24, 0x7c, 0x07, 0xf0, 0xfe, 0x41,
274 	0x1c, 0x26, 0x7e, 0x43, 0x84, 0xb0, 0xf6, 0x00,
275 	0x2f, 0xf5, 0x8d, 0x80, 0x03, 0x39, 0x27, 0xab,
276 	0x8e, 0xf4, 0xd4, 0x58, 0x75, 0x14, 0xf0, 0xfb,
277 };
278 
279 uint8_t GCM_KEY8[] = {
280 	0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
281 	0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
282 	0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
283 };
284 
285 uint8_t GCM_DATA8[] = {
286 	0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
287 	0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
288 	0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
289 	0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
290 	0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
291 	0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
292 	0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
293 	0xba, 0x63, 0x7b, 0x39, 0x1a, 0xaf, 0xd2, 0x55,
294 };
295 
296 #define	GCM_AUTH8 NULL
297 
298 uint8_t GCM_IV8[] = {
299 	0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad,
300 	0xde, 0xca, 0xf8, 0x88,
301 };
302 
303 uint8_t GCM_RES8[] = {
304 	0x39, 0x80, 0xca, 0x0b, 0x3c, 0x00, 0xe8, 0x41,
305 	0xeb, 0x06, 0xfa, 0xc4, 0x87, 0x2a, 0x27, 0x57,
306 	0x85, 0x9e, 0x1c, 0xea, 0xa6, 0xef, 0xd9, 0x84,
307 	0x62, 0x85, 0x93, 0xb4, 0x0c, 0xa1, 0xe1, 0x9c,
308 	0x7d, 0x77, 0x3d, 0x00, 0xc1, 0x44, 0xc5, 0x25,
309 	0xac, 0x61, 0x9d, 0x18, 0xc8, 0x4a, 0x3f, 0x47,
310 	0x18, 0xe2, 0x44, 0x8b, 0x2f, 0xe3, 0x24, 0xd9,
311 	0xcc, 0xda, 0x27, 0x10, 0xac, 0xad, 0xe2, 0x56,
312 	0x99, 0x24, 0xa7, 0xc8, 0x58, 0x73, 0x36, 0xbf,
313 	0xb1, 0x18, 0x02, 0x4d, 0xb8, 0x67, 0x4a, 0x14,
314 };
315 
316 uint8_t GCM_KEY9[] = {
317 	0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
318 	0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
319 	0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
320 };
321 
322 uint8_t GCM_DATA9[] = {
323 	0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
324 	0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
325 	0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
326 	0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
327 	0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
328 	0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
329 	0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
330 	0xba, 0x63, 0x7b, 0x39,
331 };
332 
333 uint8_t GCM_AUTH9[] = {
334 	0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
335 	0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
336 	0xab, 0xad, 0xda, 0xd2,
337 };
338 
339 uint8_t GCM_IV9[] = {
340 	0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad,
341 	0xde, 0xca, 0xf8, 0x88,
342 };
343 
344 uint8_t GCM_RES9[] = {
345 	0x39, 0x80, 0xca, 0x0b, 0x3c, 0x00, 0xe8, 0x41,
346 	0xeb, 0x06, 0xfa, 0xc4, 0x87, 0x2a, 0x27, 0x57,
347 	0x85, 0x9e, 0x1c, 0xea, 0xa6, 0xef, 0xd9, 0x84,
348 	0x62, 0x85, 0x93, 0xb4, 0x0c, 0xa1, 0xe1, 0x9c,
349 	0x7d, 0x77, 0x3d, 0x00, 0xc1, 0x44, 0xc5, 0x25,
350 	0xac, 0x61, 0x9d, 0x18, 0xc8, 0x4a, 0x3f, 0x47,
351 	0x18, 0xe2, 0x44, 0x8b, 0x2f, 0xe3, 0x24, 0xd9,
352 	0xcc, 0xda, 0x27, 0x10, 0x25, 0x19, 0x49, 0x8e,
353 	0x80, 0xf1, 0x47, 0x8f, 0x37, 0xba, 0x55, 0xbd,
354 	0x6d, 0x27, 0x61, 0x8c,
355 };
356 
357 uint8_t GCM_KEY10[] = {
358 	0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
359 	0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
360 	0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
361 };
362 
363 uint8_t GCM_DATA10[] = {
364 	0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
365 	0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
366 	0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
367 	0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
368 	0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
369 	0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
370 	0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
371 	0xba, 0x63, 0x7b, 0x39,
372 };
373 
374 uint8_t GCM_AUTH10[] = {
375 	0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
376 	0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
377 	0xab, 0xad, 0xda, 0xd2,
378 };
379 
380 uint8_t GCM_IV10[] = {
381 	0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad,
382 };
383 
384 uint8_t GCM_RES10[] = {
385 	0x0f, 0x10, 0xf5, 0x99, 0xae, 0x14, 0xa1, 0x54,
386 	0xed, 0x24, 0xb3, 0x6e, 0x25, 0x32, 0x4d, 0xb8,
387 	0xc5, 0x66, 0x63, 0x2e, 0xf2, 0xbb, 0xb3, 0x4f,
388 	0x83, 0x47, 0x28, 0x0f, 0xc4, 0x50, 0x70, 0x57,
389 	0xfd, 0xdc, 0x29, 0xdf, 0x9a, 0x47, 0x1f, 0x75,
390 	0xc6, 0x65, 0x41, 0xd4, 0xd4, 0xda, 0xd1, 0xc9,
391 	0xe9, 0x3a, 0x19, 0xa5, 0x8e, 0x8b, 0x47, 0x3f,
392 	0xa0, 0xf0, 0x62, 0xf7, 0x65, 0xdc, 0xc5, 0x7f,
393 	0xcf, 0x62, 0x3a, 0x24, 0x09, 0x4f, 0xcc, 0xa4,
394 	0x0d, 0x35, 0x33, 0xf8,
395 };
396 
397 uint8_t GCM_KEY11[] = {
398 	0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
399 	0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
400 	0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
401 };
402 
403 uint8_t GCM_DATA11[] = {
404 	0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
405 	0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
406 	0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
407 	0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
408 	0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
409 	0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
410 	0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
411 	0xba, 0x63, 0x7b, 0x39,
412 };
413 
414 uint8_t GCM_AUTH11[] = {
415 	0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
416 	0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
417 	0xab, 0xad, 0xda, 0xd2,
418 };
419 
420 uint8_t GCM_IV11[] = {
421 	0x93, 0x13, 0x22, 0x5d, 0xf8, 0x84, 0x06, 0xe5,
422 	0x55, 0x90, 0x9c, 0x5a, 0xff, 0x52, 0x69, 0xaa,
423 	0x6a, 0x7a, 0x95, 0x38, 0x53, 0x4f, 0x7d, 0xa1,
424 	0xe4, 0xc3, 0x03, 0xd2, 0xa3, 0x18, 0xa7, 0x28,
425 	0xc3, 0xc0, 0xc9, 0x51, 0x56, 0x80, 0x95, 0x39,
426 	0xfc, 0xf0, 0xe2, 0x42, 0x9a, 0x6b, 0x52, 0x54,
427 	0x16, 0xae, 0xdb, 0xf5, 0xa0, 0xde, 0x6a, 0x57,
428 	0xa6, 0x37, 0xb3, 0x9b,
429 };
430 
431 uint8_t GCM_RES11[] = {
432 	0xd2, 0x7e, 0x88, 0x68, 0x1c, 0xe3, 0x24, 0x3c,
433 	0x48, 0x30, 0x16, 0x5a, 0x8f, 0xdc, 0xf9, 0xff,
434 	0x1d, 0xe9, 0xa1, 0xd8, 0xe6, 0xb4, 0x47, 0xef,
435 	0x6e, 0xf7, 0xb7, 0x98, 0x28, 0x66, 0x6e, 0x45,
436 	0x81, 0xe7, 0x90, 0x12, 0xaf, 0x34, 0xdd, 0xd9,
437 	0xe2, 0xf0, 0x37, 0x58, 0x9b, 0x29, 0x2d, 0xb3,
438 	0xe6, 0x7c, 0x03, 0x67, 0x45, 0xfa, 0x22, 0xe7,
439 	0xe9, 0xb7, 0x37, 0x3b, 0xdc, 0xf5, 0x66, 0xff,
440 	0x29, 0x1c, 0x25, 0xbb, 0xb8, 0x56, 0x8f, 0xc3,
441 	0xd3, 0x76, 0xa6, 0xd9,
442 };
443 
444 uint8_t GCM_KEY12[] = {
445 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
446 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
447 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
448 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
449 };
450 
451 #define	GCM_DATA12 NULL
452 
453 #define	GCM_AUTH12 NULL
454 
455 uint8_t GCM_IV12[] = {
456 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
457 	0x00, 0x00, 0x00, 0x00,
458 };
459 
460 uint8_t GCM_RES12[] = {
461 	0x53, 0x0f, 0x8a, 0xfb, 0xc7, 0x45, 0x36, 0xb9,
462 	0xa9, 0x63, 0xb4, 0xf1, 0xc4, 0xcb, 0x73, 0x8b,
463 };
464 
465 uint8_t GCM_KEY13[] = {
466 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
467 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
468 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
469 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
470 };
471 
472 uint8_t GCM_DATA13[] = {
473 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
474 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
475 };
476 
477 #define	GCM_AUTH13 NULL
478 
479 uint8_t GCM_IV13[] = {
480 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
481 	0x00, 0x00, 0x00, 0x00,
482 };
483 
484 uint8_t GCM_RES13[] = {
485 	0xce, 0xa7, 0x40, 0x3d, 0x4d, 0x60, 0x6b, 0x6e,
486 	0x07, 0x4e, 0xc5, 0xd3, 0xba, 0xf3, 0x9d, 0x18,
487 	0xd0, 0xd1, 0xc8, 0xa7, 0x99, 0x99, 0x6b, 0xf0,
488 	0x26, 0x5b, 0x98, 0xb5, 0xd4, 0x8a, 0xb9, 0x19,
489 };
490 
491 uint8_t GCM_KEY14[] = {
492 	0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
493 	0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
494 	0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
495 	0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
496 };
497 
498 uint8_t GCM_DATA14[] = {
499 	0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
500 	0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
501 	0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
502 	0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
503 	0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
504 	0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
505 	0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
506 	0xba, 0x63, 0x7b, 0x39, 0x1a, 0xaf, 0xd2, 0x55,
507 };
508 
509 #define	GCM_AUTH14 NULL
510 
511 uint8_t GCM_IV14[] = {
512 	0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad,
513 	0xde, 0xca, 0xf8, 0x88,
514 };
515 
516 uint8_t GCM_RES14[] = {
517 	0x52, 0x2d, 0xc1, 0xf0, 0x99, 0x56, 0x7d, 0x07,
518 	0xf4, 0x7f, 0x37, 0xa3, 0x2a, 0x84, 0x42, 0x7d,
519 	0x64, 0x3a, 0x8c, 0xdc, 0xbf, 0xe5, 0xc0, 0xc9,
520 	0x75, 0x98, 0xa2, 0xbd, 0x25, 0x55, 0xd1, 0xaa,
521 	0x8c, 0xb0, 0x8e, 0x48, 0x59, 0x0d, 0xbb, 0x3d,
522 	0xa7, 0xb0, 0x8b, 0x10, 0x56, 0x82, 0x88, 0x38,
523 	0xc5, 0xf6, 0x1e, 0x63, 0x93, 0xba, 0x7a, 0x0a,
524 	0xbc, 0xc9, 0xf6, 0x62, 0x89, 0x80, 0x15, 0xad,
525 	0xb0, 0x94, 0xda, 0xc5, 0xd9, 0x34, 0x71, 0xbd,
526 	0xec, 0x1a, 0x50, 0x22, 0x70, 0xe3, 0xcc, 0x6c,
527 };
528 
529 uint8_t GCM_KEY15[] = {
530 	0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
531 	0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
532 	0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
533 	0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
534 };
535 
536 uint8_t GCM_DATA15[] = {
537 	0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
538 	0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
539 	0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
540 	0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
541 	0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
542 	0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
543 	0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
544 	0xba, 0x63, 0x7b, 0x39,
545 };
546 
547 uint8_t GCM_AUTH15[] = {
548 	0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
549 	0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
550 	0xab, 0xad, 0xda, 0xd2,
551 };
552 
553 uint8_t GCM_IV15[] = {
554 	0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad,
555 	0xde, 0xca, 0xf8, 0x88,
556 };
557 
558 uint8_t GCM_RES15[] = {
559 	0x52, 0x2d, 0xc1, 0xf0, 0x99, 0x56, 0x7d, 0x07,
560 	0xf4, 0x7f, 0x37, 0xa3, 0x2a, 0x84, 0x42, 0x7d,
561 	0x64, 0x3a, 0x8c, 0xdc, 0xbf, 0xe5, 0xc0, 0xc9,
562 	0x75, 0x98, 0xa2, 0xbd, 0x25, 0x55, 0xd1, 0xaa,
563 	0x8c, 0xb0, 0x8e, 0x48, 0x59, 0x0d, 0xbb, 0x3d,
564 	0xa7, 0xb0, 0x8b, 0x10, 0x56, 0x82, 0x88, 0x38,
565 	0xc5, 0xf6, 0x1e, 0x63, 0x93, 0xba, 0x7a, 0x0a,
566 	0xbc, 0xc9, 0xf6, 0x62, 0x76, 0xfc, 0x6e, 0xce,
567 	0x0f, 0x4e, 0x17, 0x68, 0xcd, 0xdf, 0x88, 0x53,
568 	0xbb, 0x2d, 0x55, 0x1b,
569 };
570 
571 uint8_t GCM_KEY16[] = {
572 	0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
573 	0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
574 	0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
575 	0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
576 };
577 
578 uint8_t GCM_DATA16[] = {
579 	0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
580 	0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
581 	0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
582 	0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
583 	0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
584 	0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
585 	0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
586 	0xba, 0x63, 0x7b, 0x39,
587 };
588 
589 uint8_t GCM_AUTH16[] = {
590 	0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
591 	0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
592 	0xab, 0xad, 0xda, 0xd2,
593 };
594 
595 uint8_t GCM_IV16[] = {
596 	0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad,
597 };
598 
599 uint8_t GCM_RES16[] = {
600 	0xc3, 0x76, 0x2d, 0xf1, 0xca, 0x78, 0x7d, 0x32,
601 	0xae, 0x47, 0xc1, 0x3b, 0xf1, 0x98, 0x44, 0xcb,
602 	0xaf, 0x1a, 0xe1, 0x4d, 0x0b, 0x97, 0x6a, 0xfa,
603 	0xc5, 0x2f, 0xf7, 0xd7, 0x9b, 0xba, 0x9d, 0xe0,
604 	0xfe, 0xb5, 0x82, 0xd3, 0x39, 0x34, 0xa4, 0xf0,
605 	0x95, 0x4c, 0xc2, 0x36, 0x3b, 0xc7, 0x3f, 0x78,
606 	0x62, 0xac, 0x43, 0x0e, 0x64, 0xab, 0xe4, 0x99,
607 	0xf4, 0x7c, 0x9b, 0x1f, 0x3a, 0x33, 0x7d, 0xbf,
608 	0x46, 0xa7, 0x92, 0xc4, 0x5e, 0x45, 0x49, 0x13,
609 	0xfe, 0x2e, 0xa8, 0xf2,
610 };
611 
612 uint8_t GCM_KEY17[] = {
613 	0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
614 	0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
615 	0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
616 	0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
617 };
618 
619 uint8_t GCM_DATA17[] = {
620 	0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
621 	0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
622 	0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
623 	0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
624 	0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
625 	0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
626 	0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
627 	0xba, 0x63, 0x7b, 0x39,
628 };
629 
630 uint8_t GCM_AUTH17[] = {
631 	0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
632 	0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
633 	0xab, 0xad, 0xda, 0xd2,
634 };
635 
636 uint8_t GCM_IV17[] = {
637 	0x93, 0x13, 0x22, 0x5d, 0xf8, 0x84, 0x06, 0xe5,
638 	0x55, 0x90, 0x9c, 0x5a, 0xff, 0x52, 0x69, 0xaa,
639 	0x6a, 0x7a, 0x95, 0x38, 0x53, 0x4f, 0x7d, 0xa1,
640 	0xe4, 0xc3, 0x03, 0xd2, 0xa3, 0x18, 0xa7, 0x28,
641 	0xc3, 0xc0, 0xc9, 0x51, 0x56, 0x80, 0x95, 0x39,
642 	0xfc, 0xf0, 0xe2, 0x42, 0x9a, 0x6b, 0x52, 0x54,
643 	0x16, 0xae, 0xdb, 0xf5, 0xa0, 0xde, 0x6a, 0x57,
644 	0xa6, 0x37, 0xb3, 0x9b,
645 };
646 
647 uint8_t GCM_RES17[] = {
648 	0x5a, 0x8d, 0xef, 0x2f, 0x0c, 0x9e, 0x53, 0xf1,
649 	0xf7, 0x5d, 0x78, 0x53, 0x65, 0x9e, 0x2a, 0x20,
650 	0xee, 0xb2, 0xb2, 0x2a, 0xaf, 0xde, 0x64, 0x19,
651 	0xa0, 0x58, 0xab, 0x4f, 0x6f, 0x74, 0x6b, 0xf4,
652 	0x0f, 0xc0, 0xc3, 0xb7, 0x80, 0xf2, 0x44, 0x45,
653 	0x2d, 0xa3, 0xeb, 0xf1, 0xc5, 0xd8, 0x2c, 0xde,
654 	0xa2, 0x41, 0x89, 0x97, 0x20, 0x0e, 0xf8, 0x2e,
655 	0x44, 0xae, 0x7e, 0x3f, 0xa4, 0x4a, 0x82, 0x66,
656 	0xee, 0x1c, 0x8e, 0xb0, 0xc8, 0xb5, 0xd4, 0xcf,
657 	0x5a, 0xe9, 0xf1, 0x9a,
658 };
659 
660 
661 uint8_t *DATA[] = {
662 	GCM_DATA0, GCM_DATA1, GCM_DATA2, GCM_DATA3, GCM_DATA4, GCM_DATA5,
663 	GCM_DATA6, GCM_DATA7, GCM_DATA8, GCM_DATA9, GCM_DATA10, GCM_DATA11,
664 	GCM_DATA12, GCM_DATA13, GCM_DATA14, GCM_DATA15, GCM_DATA16, GCM_DATA17,
665 };
666 
667 size_t DATALEN[] = {
668 	0, sizeof (GCM_DATA1), sizeof (GCM_DATA2), sizeof (GCM_DATA3),
669 	sizeof (GCM_DATA4), sizeof (GCM_DATA5), 0, sizeof (GCM_DATA7),
670 	sizeof (GCM_DATA8), sizeof (GCM_DATA9), sizeof (GCM_DATA10),
671 	sizeof (GCM_DATA11), 0, sizeof (GCM_DATA13), sizeof (GCM_DATA14),
672 	sizeof (GCM_DATA15), sizeof (GCM_DATA16),
673 	sizeof (GCM_DATA17),
674 };
675 
676 uint8_t *RES[] = {
677 	GCM_RES0, GCM_RES1, GCM_RES2, GCM_RES3, GCM_RES4, GCM_RES5,
678 	GCM_RES6, GCM_RES7, GCM_RES8, GCM_RES9, GCM_RES10, GCM_RES11,
679 	GCM_RES12, GCM_RES13, GCM_RES14, GCM_RES15, GCM_RES16, GCM_RES17,
680 };
681 
682 size_t RESLEN[] = {
683 	sizeof (GCM_RES0), sizeof (GCM_RES1), sizeof (GCM_RES2),
684 	sizeof (GCM_RES3), sizeof (GCM_RES4), sizeof (GCM_RES5),
685 	sizeof (GCM_RES6), sizeof (GCM_RES7), sizeof (GCM_RES8),
686 	sizeof (GCM_RES9), sizeof (GCM_RES10), sizeof (GCM_RES11),
687 	sizeof (GCM_RES12), sizeof (GCM_RES13), sizeof (GCM_RES14),
688 	sizeof (GCM_RES15), sizeof (GCM_RES16), sizeof (GCM_RES17),
689 };
690 
691 uint8_t *IV[] = {
692 	GCM_IV0, GCM_IV1, GCM_IV2, GCM_IV3, GCM_IV4, GCM_IV5,
693 	GCM_IV6, GCM_IV7, GCM_IV8, GCM_IV9, GCM_IV10, GCM_IV11,
694 	GCM_IV12, GCM_IV13, GCM_IV14, GCM_IV15, GCM_IV16, GCM_IV17,
695 };
696 
697 size_t IVLEN[] = {
698 	sizeof (GCM_IV0), sizeof (GCM_IV1), sizeof (GCM_IV2),
699 	sizeof (GCM_IV3), sizeof (GCM_IV4), sizeof (GCM_IV5),
700 	sizeof (GCM_IV6), sizeof (GCM_IV7), sizeof (GCM_IV8),
701 	sizeof (GCM_IV9), sizeof (GCM_IV10), sizeof (GCM_IV11),
702 	sizeof (GCM_IV12), sizeof (GCM_IV13), sizeof (GCM_IV14),
703 	sizeof (GCM_IV15), sizeof (GCM_IV16), sizeof (GCM_IV17),
704 };
705 
706 uint8_t *AUTH[] = {
707 	GCM_AUTH0, GCM_AUTH1, GCM_AUTH2, GCM_AUTH3, GCM_AUTH4, GCM_AUTH5,
708 	GCM_AUTH6, GCM_AUTH7, GCM_AUTH8, GCM_AUTH9, GCM_AUTH10, GCM_AUTH11,
709 	GCM_AUTH12, GCM_AUTH13, GCM_AUTH14, GCM_AUTH15, GCM_AUTH16, GCM_AUTH17,
710 };
711 
712 size_t AUTHLEN[] = {
713 	0, 0, 0, sizeof (GCM_AUTH3), sizeof (GCM_AUTH4), sizeof (GCM_AUTH5),
714 	0, 0, 0, sizeof (GCM_AUTH9), sizeof (GCM_AUTH10), sizeof (GCM_AUTH11),
715 	0, 0, 0, sizeof (GCM_AUTH15), sizeof (GCM_AUTH16), sizeof (GCM_AUTH17),
716 };
717 
718 uint8_t *KEY[] = {
719 	GCM_KEY0, GCM_KEY1, GCM_KEY2, GCM_KEY3, GCM_KEY4, GCM_KEY5,
720 	GCM_KEY6, GCM_KEY7, GCM_KEY8, GCM_KEY9, GCM_KEY10, GCM_KEY11,
721 	GCM_KEY12, GCM_KEY13, GCM_KEY14, GCM_KEY15, GCM_KEY16, GCM_KEY17,
722 };
723 
724 size_t KEYLEN[] = {
725 	sizeof (GCM_KEY0), sizeof (GCM_KEY1), sizeof (GCM_KEY2),
726 	sizeof (GCM_KEY3), sizeof (GCM_KEY4), sizeof (GCM_KEY5),
727 	sizeof (GCM_KEY6), sizeof (GCM_KEY7), sizeof (GCM_KEY8),
728 	sizeof (GCM_KEY9), sizeof (GCM_KEY10), sizeof (GCM_KEY11),
729 	sizeof (GCM_KEY12), sizeof (GCM_KEY13), sizeof (GCM_KEY14),
730 	sizeof (GCM_KEY15), sizeof (GCM_KEY16), sizeof (GCM_KEY17),
731 };
732 
733 #ifdef __cplusplus
734 }
735 #endif
736 
737 #endif /* _AES_GCM_H */
738