3 * RC4 stream cipher test vectors
5 * Copyright (C) 2012, Broadcom Corporation
8 * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Broadcom Corporation;
9 * the contents of this file may not be disclosed to third parties, copied
10 * or duplicated in any form, in whole or in part, without the prior
11 * written permission of Broadcom Corporation.
13 * $Id: rc4_vectors.h 241182 2011-02-17 21:50:03Z $
18 /* 16 byte key, 16 bytes of data */
20 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
21 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
25 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
26 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF
30 0xE9, 0x8D, 0x62, 0xCA, 0x03, 0xB7, 0x7F, 0xBB,
31 0x8E, 0x42, 0x3D, 0x7D, 0xC2, 0x00, 0xC4, 0xB0
34 /* 24 byte key, 16 bytes of data */
36 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
37 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
38 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17
42 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
43 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF
47 0x2A, 0x82, 0xD7, 0xBB, 0xCF, 0x41, 0xE7, 0xDE,
48 0x3F, 0x7F, 0x3F, 0x27, 0x28, 0xD3, 0xE3, 0xBC
51 /* 32 byte key, 16 bytes of data */
53 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
54 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
55 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
56 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F
60 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
61 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF
65 0x10, 0x35, 0xD3, 0xFA, 0xEE, 0xFA, 0xCF, 0x4A,
66 0xFE, 0xA5, 0x34, 0x3B, 0xC4, 0xE8, 0x87, 0x6C
69 /* 24 byte key, 24 bytes of data */
71 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
72 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
73 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17
77 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
78 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF,
79 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
83 0x2A, 0x82, 0xD7, 0xBB, 0xCF, 0x41, 0xE7, 0xDE,
84 0x3F, 0x7F, 0x3F, 0x27, 0x28, 0xD3, 0xE3, 0xBC,
85 0xBC, 0xAC, 0x8A, 0x44, 0xFC, 0x5A, 0xFE, 0x8A
88 /* 32 byte key, 24 bytes of data */
90 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
91 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
92 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
93 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F
97 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
98 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF,
99 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
103 0x10, 0x35, 0xD3, 0xFA, 0xEE, 0xFA, 0xCF, 0x4A,
104 0xFE, 0xA5, 0x34, 0x3B, 0xC4, 0xE8, 0x87, 0x6C,
105 0xCC, 0x88, 0x22, 0x77, 0xD7, 0xCB, 0xA2, 0xBA
108 /* 32 byte key, 32 bytes of data */
110 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
111 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
112 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
113 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F
117 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
118 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF,
119 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
120 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
124 0x10, 0x35, 0xD3, 0xFA, 0xEE, 0xFA, 0xCF, 0x4A,
125 0xFE, 0xA5, 0x34, 0x3B, 0xC4, 0xE8, 0x87, 0x6C,
126 0xCC, 0x88, 0x22, 0x77, 0xD7, 0xCB, 0xA2, 0xBA,
127 0x6E, 0xF3, 0x2A, 0x82, 0x85, 0xC3, 0xC6, 0x97
130 /* 16 byte key, 32 bytes of data */
132 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
133 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
137 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
138 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF,
139 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
140 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
144 0xE9, 0x8D, 0x62, 0xCA, 0x03, 0xB7, 0x7F, 0xBB,
145 0x8E, 0x42, 0x3D, 0x7D, 0xC2, 0x00, 0xC4, 0xB0,
146 0xD3, 0x70, 0x83, 0x5C, 0xF6, 0xB2, 0x44, 0xE9,
147 0x87, 0x97, 0xAF, 0xD2, 0xF5, 0x3A, 0xED, 0x0D
150 /* RC4 test vectors generated with our tcl rc4 implementation */
152 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05
156 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
157 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
161 0x0f, 0x17, 0xc0, 0x50, 0xbd, 0x01, 0x7f, 0x4a,
162 0xce, 0xa1, 0xde, 0xc3, 0x10, 0x2b, 0x16, 0xd1
166 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05
170 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
171 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08
175 0x0e, 0x15, 0xc3, 0x54, 0xb8, 0x07, 0x78, 0x42,
176 0xcf, 0xa3, 0xdd, 0xc7, 0x15, 0x2d, 0x11, 0xd9
180 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05
184 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,
185 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18
189 0x1e, 0x05, 0xd3, 0x44, 0xa8, 0x17, 0x68, 0x52,
190 0xdf, 0xb3, 0xcd, 0xd7, 0x05, 0x3d, 0x01, 0xc9
194 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05
198 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10,
199 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10
203 0xf1, 0xcb, 0x7a, 0xc8, 0xcb, 0x55, 0x4d, 0x5a,
204 0x30, 0x7d, 0x64, 0x5b, 0x66, 0x7f, 0x24, 0xc1
208 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
209 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d
213 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
214 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
218 0x85, 0x5c, 0xba, 0xe1, 0x78, 0xfa, 0x5c, 0xc2,
219 0xf8, 0x81, 0xa2, 0xef, 0xce, 0x49, 0x47, 0xb7
223 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
224 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d
228 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
229 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08
233 0x84, 0x5e, 0xb9, 0xe5, 0x7d, 0xfc, 0x5b, 0xca,
234 0xf9, 0x83, 0xa1, 0xeb, 0xcb, 0x4f, 0x40, 0xbf
238 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
239 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d
243 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,
244 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18
248 0x94, 0x4e, 0xa9, 0xf5, 0x6d, 0xec, 0x4b, 0xda,
249 0xe9, 0x93, 0xb1, 0xfb, 0xdb, 0x5f, 0x50, 0xaf
253 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
254 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d
258 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10,
259 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10
263 0x7b, 0x80, 0x00, 0x79, 0x0e, 0xae, 0x6e, 0xd2,
264 0x06, 0x5d, 0x18, 0x77, 0xb8, 0x1d, 0x75, 0xa7
275 #define RC4_VECTOR_ENTRY(x) \
276 { sizeof(key_##x), key_##x, sizeof(input_##x), input_##x, ref_##x }
278 rc4_vector_t rc4_vec
[] = {
279 RC4_VECTOR_ENTRY(00),
280 RC4_VECTOR_ENTRY(01),
281 RC4_VECTOR_ENTRY(02),
282 RC4_VECTOR_ENTRY(03),
283 RC4_VECTOR_ENTRY(04),
284 RC4_VECTOR_ENTRY(05),
285 RC4_VECTOR_ENTRY(06),
286 RC4_VECTOR_ENTRY(07),
287 RC4_VECTOR_ENTRY(08),
288 RC4_VECTOR_ENTRY(09),
289 RC4_VECTOR_ENTRY(10),
290 RC4_VECTOR_ENTRY(11),
291 RC4_VECTOR_ENTRY(12),
292 RC4_VECTOR_ENTRY(13),