@@ -186,3 +186,184 @@ int test_wc_Chacha_Process(void)
186186 return EXPECT_RESULT ();
187187} /* END test_wc_Chacha_Process */
188188
189+
190+ #define CHACHA_LEN 1024
191+ /*
192+ * Testing wc_Chacha_Process()
193+ */
194+ int test_wc_Chacha_Process_Chunking (void )
195+ {
196+ EXPECT_DECLS ;
197+ #ifdef HAVE_CHACHA
198+ ChaCha enc ;
199+ WC_DECLARE_VAR (plain , byte , CHACHA_LEN , NULL );
200+ WC_DECLARE_VAR (cipher , byte , CHACHA_LEN , NULL );
201+ byte key [CHACHA_MAX_KEY_SZ ];
202+ byte iv [CHACHA_IV_BYTES ];
203+ int i ;
204+ int cnt ;
205+ int sz ;
206+ const byte expected [CHACHA_LEN ] = {
207+ 0xbc , 0xf5 , 0x3b , 0xf2 , 0x75 , 0x85 , 0x9e , 0x0a ,
208+ 0x09 , 0x58 , 0x83 , 0x50 , 0x33 , 0x12 , 0x01 , 0xa1 ,
209+ 0xb4 , 0xaf , 0x8a , 0xe8 , 0x4d , 0x3d , 0xa5 , 0x68 ,
210+ 0xf7 , 0x6d , 0x3e , 0xe0 , 0x62 , 0x7e , 0x62 , 0x66 ,
211+ 0xdd , 0x07 , 0xe9 , 0x36 , 0x6f , 0x4d , 0xe9 , 0x7a ,
212+ 0x16 , 0x48 , 0xa1 , 0x83 , 0x9e , 0x67 , 0x4d , 0xa3 ,
213+ 0xfe , 0x7e , 0x4a , 0x31 , 0xdd , 0xb6 , 0x50 , 0x39 ,
214+ 0xd2 , 0x2b , 0x93 , 0xf2 , 0x4d , 0x51 , 0x44 , 0x42 ,
215+ 0x5d , 0xf1 , 0xd9 , 0x24 , 0xd7 , 0xef , 0x4b , 0xa4 ,
216+ 0xfd , 0x6a , 0x53 , 0xa5 , 0x1e , 0x4a , 0xc8 , 0x68 ,
217+ 0x11 , 0x69 , 0xc6 , 0xbd , 0xe1 , 0x59 , 0xe4 , 0xca ,
218+ 0x5b , 0xa9 , 0x77 , 0xfe , 0x4f , 0x82 , 0x9f , 0xcf ,
219+ 0x55 , 0x16 , 0x3c , 0xd5 , 0x83 , 0xee , 0xc7 , 0x53 ,
220+ 0xaf , 0xca , 0x8a , 0xe2 , 0xcf , 0xf1 , 0x4b , 0x3b ,
221+ 0x44 , 0xf6 , 0xc9 , 0x6c , 0x5b , 0xd3 , 0x28 , 0x8a ,
222+ 0x7e , 0x67 , 0xaa , 0x9e , 0xad , 0xce , 0x96 , 0xc4 ,
223+ 0x6e , 0x95 , 0x8c , 0xf8 , 0xf6 , 0xb6 , 0x42 , 0x8e ,
224+ 0xe7 , 0xab , 0xc8 , 0x2c , 0x66 , 0x8b , 0x80 , 0xcf ,
225+ 0x78 , 0xfe , 0x35 , 0x8b , 0x59 , 0x18 , 0x45 , 0xcb ,
226+ 0x18 , 0xd4 , 0x09 , 0x88 , 0xa9 , 0xf9 , 0x27 , 0xd1 ,
227+ 0x3b , 0x9d , 0x2b , 0xff , 0x89 , 0x21 , 0xb0 , 0xd2 ,
228+ 0xa7 , 0x7e , 0x35 , 0x61 , 0xae , 0x1c , 0xc3 , 0x1c ,
229+ 0x07 , 0x5c , 0x10 , 0x5d , 0x71 , 0x3a , 0x3a , 0xe8 ,
230+ 0x4c , 0xba , 0x00 , 0xde , 0xd1 , 0xf9 , 0xa1 , 0xae ,
231+ 0x7b , 0x91 , 0x9d , 0x66 , 0x31 , 0x18 , 0x55 , 0x39 ,
232+ 0xec , 0x1d , 0x83 , 0x85 , 0x1e , 0x5b , 0x35 , 0x17 ,
233+ 0x2e , 0xbc , 0x7a , 0x22 , 0x79 , 0x09 , 0xa7 , 0x02 ,
234+ 0xf7 , 0x3b , 0x93 , 0x2c , 0x89 , 0x1b , 0x69 , 0xde ,
235+ 0x80 , 0xc8 , 0xdf , 0xce , 0xf9 , 0xcd , 0xc8 , 0x58 ,
236+ 0xd6 , 0x4b , 0x65 , 0x9a , 0xc4 , 0x4f , 0x27 , 0xdb ,
237+ 0x9a , 0x6c , 0x3a , 0xef , 0x20 , 0x0b , 0x00 , 0x5c ,
238+ 0x9f , 0x91 , 0xc1 , 0xf6 , 0x80 , 0x53 , 0x6c , 0x42 ,
239+ 0xe3 , 0xd0 , 0xfb , 0x3b , 0x23 , 0x75 , 0x45 , 0xa7 ,
240+ 0x5b , 0x9b , 0xaa , 0xcd , 0x1e , 0x03 , 0x35 , 0x68 ,
241+ 0x17 , 0xee , 0xff , 0xd7 , 0x4f , 0x77 , 0x2f , 0xd0 ,
242+ 0x1d , 0x5e , 0x89 , 0x16 , 0x50 , 0x6f , 0x22 , 0x44 ,
243+ 0x10 , 0x64 , 0x37 , 0x66 , 0x70 , 0x7f , 0x4d , 0x58 ,
244+ 0x36 , 0xec , 0x56 , 0x4e , 0xfd , 0x22 , 0x8d , 0x77 ,
245+ 0xb1 , 0x37 , 0x07 , 0x13 , 0xdf , 0x34 , 0x40 , 0x1c ,
246+ 0x65 , 0x95 , 0x9b , 0xb9 , 0xac , 0x11 , 0xfe , 0x7a ,
247+ 0xae , 0x1f , 0x17 , 0x94 , 0xd4 , 0xdd , 0x5b , 0x4f ,
248+ 0x69 , 0xa8 , 0x04 , 0x8e , 0x80 , 0x87 , 0x7d , 0x96 ,
249+ 0x25 , 0x37 , 0x83 , 0x0e , 0xca , 0xa4 , 0xb3 , 0x29 ,
250+ 0x2f , 0x4b , 0x83 , 0xa4 , 0x01 , 0x36 , 0x0d , 0xdb ,
251+ 0xd7 , 0x6e , 0x7a , 0x9c , 0x3e , 0x82 , 0xc8 , 0x5f ,
252+ 0x4e , 0xc6 , 0xd2 , 0x97 , 0x64 , 0xe6 , 0xd9 , 0x50 ,
253+ 0x89 , 0xcb , 0x64 , 0x33 , 0x28 , 0x9c , 0x14 , 0xf9 ,
254+ 0x41 , 0x33 , 0x99 , 0x0c , 0x87 , 0x6f , 0x00 , 0x3f ,
255+ 0x00 , 0x6f , 0xae , 0xe9 , 0x20 , 0xc2 , 0xcd , 0xb8 ,
256+ 0x7a , 0x58 , 0xde , 0x57 , 0x34 , 0xda , 0x63 , 0xa1 ,
257+ 0x0b , 0x55 , 0xfc , 0x54 , 0x2a , 0xed , 0xc0 , 0xbc ,
258+ 0x29 , 0x5f , 0x88 , 0x7d , 0x37 , 0x3b , 0x48 , 0x86 ,
259+ 0x3f , 0x88 , 0xa2 , 0xef , 0x55 , 0xe6 , 0xc4 , 0xf8 ,
260+ 0xb8 , 0x11 , 0x9e , 0x3a , 0x45 , 0x79 , 0xac , 0x85 ,
261+ 0xb2 , 0x70 , 0x40 , 0xd0 , 0x66 , 0xe7 , 0x66 , 0xc8 ,
262+ 0x8e , 0x8f , 0xde , 0xde , 0xf8 , 0x50 , 0x79 , 0x9e ,
263+ 0x37 , 0x04 , 0x07 , 0x83 , 0x5b , 0xe0 , 0x68 , 0x5b ,
264+ 0x32 , 0xbc , 0x6e , 0x50 , 0x05 , 0xca , 0xf8 , 0x3b ,
265+ 0xec , 0x15 , 0x13 , 0xf8 , 0x9a , 0xa2 , 0x58 , 0x98 ,
266+ 0x03 , 0x29 , 0x83 , 0x7f , 0x11 , 0xb4 , 0x98 , 0x41 ,
267+ 0xc1 , 0xd9 , 0x02 , 0x6e , 0x2c , 0x45 , 0x55 , 0xab ,
268+ 0xff , 0xcf , 0x23 , 0x80 , 0xf0 , 0x82 , 0x73 , 0xe9 ,
269+ 0xe6 , 0x8f , 0x1a , 0xd9 , 0x70 , 0xd6 , 0x46 , 0x1f ,
270+ 0xa8 , 0xf8 , 0xbd , 0x14 , 0xd9 , 0x50 , 0x59 , 0x8e ,
271+ 0x46 , 0xbf , 0xe2 , 0x8a , 0x8e , 0xce , 0xe7 , 0x81 ,
272+ 0xf4 , 0x3a , 0xd9 , 0x07 , 0xd8 , 0x1d , 0x29 , 0x19 ,
273+ 0xc1 , 0x9d , 0xac , 0x6f , 0xfb , 0xce , 0x95 , 0x03 ,
274+ 0x29 , 0xce , 0x4a , 0x60 , 0x34 , 0x6a , 0x88 , 0xc7 ,
275+ 0x5e , 0x8c , 0x71 , 0x29 , 0x81 , 0x64 , 0x2f , 0xfb ,
276+ 0xb4 , 0x20 , 0x08 , 0x57 , 0xba , 0x50 , 0x75 , 0x7b ,
277+ 0x1e , 0xfa , 0xcc , 0x60 , 0xe7 , 0x09 , 0xab , 0x4e ,
278+ 0x46 , 0x64 , 0xfe , 0x17 , 0x00 , 0x84 , 0x8b , 0xca ,
279+ 0xa8 , 0xcb , 0x18 , 0x5b , 0xa2 , 0x04 , 0x13 , 0x68 ,
280+ 0x99 , 0x02 , 0xaf , 0xcb , 0x75 , 0xcb , 0x46 , 0x61 ,
281+ 0x66 , 0x05 , 0xd9 , 0x5c , 0x6d , 0x8c , 0xf9 , 0x8a ,
282+ 0x57 , 0xde , 0xf4 , 0xb9 , 0x5d , 0x51 , 0x17 , 0x4a ,
283+ 0x8c , 0x42 , 0xca , 0x0d , 0x7f , 0x92 , 0x69 , 0x0d ,
284+ 0x88 , 0x2b , 0xc6 , 0xee , 0xbd , 0x5a , 0x32 , 0x17 ,
285+ 0x84 , 0xef , 0xf9 , 0xd9 , 0x51 , 0x33 , 0x57 , 0x2f ,
286+ 0x87 , 0xf8 , 0xda , 0x3c , 0x3c , 0x14 , 0xa9 , 0x26 ,
287+ 0xad , 0x19 , 0xfd , 0x14 , 0x5e , 0x33 , 0x92 , 0xb1 ,
288+ 0xe1 , 0xd7 , 0xfb , 0x1e , 0x55 , 0x40 , 0xe5 , 0x80 ,
289+ 0x9b , 0x8e , 0x4b , 0x88 , 0x58 , 0x77 , 0xa9 , 0xd2 ,
290+ 0xbf , 0x40 , 0x90 , 0xbe , 0x8f , 0x1f , 0xa7 , 0x8a ,
291+ 0xaf , 0x8e , 0x03 , 0x93 , 0x4d , 0x8a , 0x73 , 0x8e ,
292+ 0x76 , 0x67 , 0x43 , 0x37 , 0xc1 , 0x76 , 0x87 , 0x50 ,
293+ 0x37 , 0xc4 , 0x02 , 0x4a , 0x53 , 0x1a , 0x5b , 0xe8 ,
294+ 0x5f , 0xc8 , 0x28 , 0xad , 0xd3 , 0x8a , 0x97 , 0x53 ,
295+ 0xa3 , 0xf6 , 0x48 , 0xba , 0x05 , 0x18 , 0x56 , 0x90 ,
296+ 0xa9 , 0x95 , 0xd8 , 0xac , 0xe9 , 0xd5 , 0x6c , 0xe3 ,
297+ 0x1f , 0xd8 , 0xfc , 0xc5 , 0x27 , 0x19 , 0xab , 0x4a ,
298+ 0xc4 , 0x36 , 0xc9 , 0xe9 , 0xaa , 0x30 , 0xef , 0x8e ,
299+ 0x9e , 0x01 , 0x18 , 0x68 , 0xe9 , 0x06 , 0xf8 , 0x54 ,
300+ 0xe5 , 0xe2 , 0xec , 0xde , 0x52 , 0xfc , 0x3b , 0xdd ,
301+ 0xe9 , 0xc7 , 0xc8 , 0x2b , 0x93 , 0xd4 , 0xdb , 0x28 ,
302+ 0x72 , 0x06 , 0x07 , 0xd1 , 0xba , 0x05 , 0x23 , 0xa6 ,
303+ 0x41 , 0x42 , 0x55 , 0x6a , 0x6e , 0x6f , 0x6c , 0x40 ,
304+ 0x6a , 0x19 , 0xa4 , 0xd5 , 0xa2 , 0x11 , 0xb5 , 0x2b ,
305+ 0x16 , 0x4a , 0xe3 , 0x41 , 0xf3 , 0xaf , 0x93 , 0xbd ,
306+ 0xc8 , 0xd9 , 0x26 , 0x43 , 0x71 , 0x56 , 0xd2 , 0x5e ,
307+ 0xf5 , 0xa8 , 0x3c , 0x64 , 0x83 , 0x04 , 0x89 , 0x62 ,
308+ 0x20 , 0xd3 , 0xe9 , 0x8e , 0x60 , 0xcd , 0xec , 0xd9 ,
309+ 0xce , 0x89 , 0xf0 , 0x5c , 0xf2 , 0x26 , 0x72 , 0x51 ,
310+ 0xd5 , 0x16 , 0x7b , 0xef , 0x19 , 0x10 , 0xb4 , 0xce ,
311+ 0x60 , 0x47 , 0xab , 0x98 , 0x86 , 0xbd , 0x39 , 0xb7 ,
312+ 0xc9 , 0x29 , 0x38 , 0x1a , 0xc1 , 0x5c , 0xab , 0x77 ,
313+ 0xea , 0xe9 , 0xf4 , 0x7f , 0x6a , 0x06 , 0xf7 , 0xc0 ,
314+ 0x0b , 0x17 , 0x1f , 0x2f , 0xce , 0x07 , 0x1b , 0x33 ,
315+ 0x68 , 0x4d , 0x64 , 0x6a , 0x28 , 0x6d , 0x1d , 0xc6 ,
316+ 0x54 , 0x5c , 0xa2 , 0x69 , 0xf9 , 0xb4 , 0x62 , 0xc9 ,
317+ 0x71 , 0xf5 , 0xd1 , 0xb7 , 0x7b , 0x02 , 0x81 , 0x6d ,
318+ 0x4b , 0x1f , 0x62 , 0xc5 , 0xce , 0x2e , 0xc6 , 0x2a ,
319+ 0x1d , 0x6f , 0xc7 , 0xc1 , 0x99 , 0x48 , 0x7b , 0xc7 ,
320+ 0xf3 , 0x53 , 0xb7 , 0x02 , 0x7f , 0x82 , 0xda , 0xfa ,
321+ 0xce , 0xd3 , 0x54 , 0xf8 , 0x9b , 0x30 , 0x6f , 0xed ,
322+ 0x6c , 0xec , 0x1c , 0x21 , 0x49 , 0x04 , 0x51 , 0xae ,
323+ 0xd0 , 0x3f , 0xb1 , 0xfb , 0x78 , 0x1a , 0x6f , 0x35 ,
324+ 0xc8 , 0x3f , 0x4c , 0x43 , 0x71 , 0xe9 , 0xb8 , 0xd7 ,
325+ 0x74 , 0xca , 0x46 , 0x68 , 0xeb , 0xd9 , 0xa3 , 0x94 ,
326+ 0x6e , 0x9d , 0xea , 0x57 , 0x22 , 0x1e , 0x15 , 0x27 ,
327+ 0x40 , 0xd4 , 0x0c , 0x32 , 0x40 , 0xc0 , 0x40 , 0x8a ,
328+ 0x1e , 0x2e , 0x1a , 0x58 , 0x84 , 0xa0 , 0xc3 , 0x68 ,
329+ 0x96 , 0xfe , 0xb0 , 0x96 , 0x6c , 0x04 , 0x61 , 0x35 ,
330+ 0x4a , 0x78 , 0xc5 , 0xeb , 0x50 , 0xca , 0xcb , 0x22 ,
331+ 0x7b , 0x53 , 0x02 , 0xfa , 0x63 , 0x28 , 0x10 , 0x68 ,
332+ 0x77 , 0xab , 0xda , 0x7d , 0xd1 , 0xc2 , 0x3f , 0x95 ,
333+ 0xa6 , 0x5a , 0x92 , 0x56 , 0xb3 , 0xb0 , 0x29 , 0x7e ,
334+ 0x0c , 0xb3 , 0xc9 , 0x39 , 0x0f , 0x1f , 0x51 , 0x9d
335+ };
336+
337+ WC_ALLOC_VAR (plain , byte , CHACHA_LEN , NULL );
338+ WC_ALLOC_VAR (cipher , byte , CHACHA_LEN , NULL );
339+
340+ XMEMSET (plain , 0xa5 , CHACHA_LEN );
341+ for (i = 0 ; i < (int )sizeof (key ); i ++ ) {
342+ key [i ] = (byte )i ;
343+ }
344+ for (i = 0 ; i < (int )sizeof (iv ); i ++ ) {
345+ iv [i ] = (byte )(i + 0x40 );
346+ }
347+
348+ for (sz = 1 ; sz < CHACHA_LEN ; sz ++ ) {
349+ ExpectIntEQ (wc_Chacha_SetKey (& enc , key , (word32 )sizeof (key )), 0 );
350+ ExpectIntEQ (wc_Chacha_SetIV (& enc , iv , 0 ), 0 );
351+
352+ for (cnt = 0 ; cnt + sz <= CHACHA_LEN ; cnt += sz ) {
353+ ExpectIntEQ (wc_Chacha_Process (& enc , cipher + cnt , plain + cnt , sz ),
354+ 0 );
355+ }
356+ if (cnt < CHACHA_LEN ) {
357+ ExpectIntEQ (wc_Chacha_Process (& enc , cipher + cnt , plain + cnt ,
358+ CHACHA_LEN - cnt ), 0 );
359+ }
360+ ExpectBufEQ (cipher , expected , (int )sizeof (expected ));
361+ }
362+
363+ WC_FREE_VAR (plain , NULL );
364+ WC_FREE_VAR (cipher , NULL );
365+ #endif
366+ return EXPECT_RESULT ();
367+ } /* END test_wc_Chacha_Process */
368+
369+
0 commit comments