9 typedef UINT32 uint32_t;
18 #define GET_UINT32_BE(n,b,i) \
20 (n) = ( (uint32_t) (b)[(i) ] << 24 ) \
21 | ( (uint32_t) (b)[(i) + 1] << 16 ) \
22 | ( (uint32_t) (b)[(i) + 2] << 8 ) \
23 | ( (uint32_t) (b)[(i) + 3] ); \
28 #define PUT_UINT32_BE(n,b,i) \
30 (b)[(i) ] = (unsigned char) ( (n) >> 24 ); \
31 (b)[(i) + 1] = (unsigned char) ( (n) >> 16 ); \
32 (b)[(i) + 2] = (unsigned char) ( (n) >> 8 ); \
33 (b)[(i) + 3] = (unsigned char) ( (n) ); \
37 int unhexify(
unsigned char *obuf,
const char *ibuf)
40 int len = strlen(ibuf) / 2;
41 assert(!(strlen(ibuf) %1));
46 if( c >=
'0' && c <=
'9' )
48 else if( c >=
'a' && c <=
'f' )
50 else if( c >=
'A' && c <=
'F' )
56 if( c2 >=
'0' && c2 <=
'9' )
58 else if( c2 >=
'a' && c2 <=
'f' )
60 else if( c2 >=
'A' && c2 <=
'F' )
65 *obuf++ = ( c << 4 ) | c2;
71 void hexify(
unsigned char *obuf,
const unsigned char *ibuf,
int len)
83 *obuf++ =
'a' + h - 10;
88 *obuf++ =
'a' + l - 10;
104 static int rnd_std_rand(
void *rng_state,
unsigned char *output,
size_t len )
108 if( rng_state != NULL )
111 for( i = 0; i < len; ++i )
122 static int rnd_zero_rand(
void *rng_state,
unsigned char *output,
size_t len )
124 if( rng_state != NULL )
127 memset( output, 0, len );
154 if( rng_state == NULL )
163 memcpy( output, info->
buf, use_len );
164 info->
buf += use_len;
168 if( len - use_len > 0 )
169 return(
rnd_std_rand( NULL, output + use_len, len - use_len ) );
198 uint32_t i, *k, sum, delta=0x9E3779B9;
199 unsigned char result[4];
201 if( rng_state == NULL )
208 size_t use_len = ( len > 4 ) ? 4 : len;
211 for( i = 0; i < 32; i++ )
213 info->
v0 += (((info->
v1 << 4) ^ (info->
v1 >> 5)) + info->
v1) ^ (sum + k[sum & 3]);
215 info->
v1 += (((info->
v0 << 4) ^ (info->
v0 >> 5)) + info->
v0) ^ (sum + k[(sum>>11) & 3]);
219 memcpy( output, result, use_len );
229 #ifdef POLARSSL_GCM_C
232 FCT_SUITE_BGN(test_suite_gcm)
235 FCT_TEST_BGN(gcm_nist_validation_aes_12812800128_0)
237 unsigned char key_str[128];
238 unsigned char src_str[128];
239 unsigned char dst_str[257];
240 unsigned char iv_str[128];
241 unsigned char add_str[128];
242 unsigned char tag_str[128];
243 unsigned char output[128];
244 unsigned char tag_output[16];
246 unsigned int key_len;
247 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
249 memset(key_str, 0x00, 128);
250 memset(src_str, 0x00, 128);
251 memset(dst_str, 0x00, 257);
252 memset(iv_str, 0x00, 128);
253 memset(add_str, 0x00, 128);
254 memset(tag_str, 0x00, 128);
255 memset(output, 0x00, 128);
256 memset(tag_output, 0x00, 16);
258 key_len =
unhexify( key_str,
"1014f74310d1718d1cc8f65f033aaf83" );
260 iv_len =
unhexify( iv_str,
"6bb54c9fd83c12f5ba76cc83f7650d2c" );
263 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
266 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
267 hexify( dst_str, output, pt_len );
268 hexify( tag_str, tag_output, tag_len );
270 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
271 fct_chk( strcmp( (
char *) tag_str,
"0b6b57db309eff920c8133b8691e0cac" ) == 0 );
277 FCT_TEST_BGN(gcm_nist_validation_aes_12812800128_1)
279 unsigned char key_str[128];
280 unsigned char src_str[128];
281 unsigned char dst_str[257];
282 unsigned char iv_str[128];
283 unsigned char add_str[128];
284 unsigned char tag_str[128];
285 unsigned char output[128];
286 unsigned char tag_output[16];
288 unsigned int key_len;
289 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
291 memset(key_str, 0x00, 128);
292 memset(src_str, 0x00, 128);
293 memset(dst_str, 0x00, 257);
294 memset(iv_str, 0x00, 128);
295 memset(add_str, 0x00, 128);
296 memset(tag_str, 0x00, 128);
297 memset(output, 0x00, 128);
298 memset(tag_output, 0x00, 16);
300 key_len =
unhexify( key_str,
"d874a25f2269e352ccdd83cc2d4e45b7" );
302 iv_len =
unhexify( iv_str,
"9717abb9ed114f2760a067279c3821e3" );
305 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
308 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
309 hexify( dst_str, output, pt_len );
310 hexify( tag_str, tag_output, tag_len );
312 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
313 fct_chk( strcmp( (
char *) tag_str,
"0e09e53e5fe8d818c5397c51173eda97" ) == 0 );
319 FCT_TEST_BGN(gcm_nist_validation_aes_12812800128_2)
321 unsigned char key_str[128];
322 unsigned char src_str[128];
323 unsigned char dst_str[257];
324 unsigned char iv_str[128];
325 unsigned char add_str[128];
326 unsigned char tag_str[128];
327 unsigned char output[128];
328 unsigned char tag_output[16];
330 unsigned int key_len;
331 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
333 memset(key_str, 0x00, 128);
334 memset(src_str, 0x00, 128);
335 memset(dst_str, 0x00, 257);
336 memset(iv_str, 0x00, 128);
337 memset(add_str, 0x00, 128);
338 memset(tag_str, 0x00, 128);
339 memset(output, 0x00, 128);
340 memset(tag_output, 0x00, 16);
342 key_len =
unhexify( key_str,
"7dab77e23b901c926454f29677eb62d4" );
344 iv_len =
unhexify( iv_str,
"8aaec11c4a0f053d7f40badd31a63e27" );
347 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
350 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
351 hexify( dst_str, output, pt_len );
352 hexify( tag_str, tag_output, tag_len );
354 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
355 fct_chk( strcmp( (
char *) tag_str,
"cec2e3230d8b762acee527e184e4c0db" ) == 0 );
361 FCT_TEST_BGN(gcm_nist_validation_aes_12812800120_0)
363 unsigned char key_str[128];
364 unsigned char src_str[128];
365 unsigned char dst_str[257];
366 unsigned char iv_str[128];
367 unsigned char add_str[128];
368 unsigned char tag_str[128];
369 unsigned char output[128];
370 unsigned char tag_output[16];
372 unsigned int key_len;
373 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
375 memset(key_str, 0x00, 128);
376 memset(src_str, 0x00, 128);
377 memset(dst_str, 0x00, 257);
378 memset(iv_str, 0x00, 128);
379 memset(add_str, 0x00, 128);
380 memset(tag_str, 0x00, 128);
381 memset(output, 0x00, 128);
382 memset(tag_output, 0x00, 16);
384 key_len =
unhexify( key_str,
"2397f163a0cb50b0e8c85f909b96adc1" );
386 iv_len =
unhexify( iv_str,
"97a631f5f6fc928ffce32ee2c92f5e50" );
389 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
392 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
393 hexify( dst_str, output, pt_len );
394 hexify( tag_str, tag_output, tag_len );
396 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
397 fct_chk( strcmp( (
char *) tag_str,
"3b74cca7bcdc07c8f8d4818de714f2" ) == 0 );
403 FCT_TEST_BGN(gcm_nist_validation_aes_12812800120_1)
405 unsigned char key_str[128];
406 unsigned char src_str[128];
407 unsigned char dst_str[257];
408 unsigned char iv_str[128];
409 unsigned char add_str[128];
410 unsigned char tag_str[128];
411 unsigned char output[128];
412 unsigned char tag_output[16];
414 unsigned int key_len;
415 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
417 memset(key_str, 0x00, 128);
418 memset(src_str, 0x00, 128);
419 memset(dst_str, 0x00, 257);
420 memset(iv_str, 0x00, 128);
421 memset(add_str, 0x00, 128);
422 memset(tag_str, 0x00, 128);
423 memset(output, 0x00, 128);
424 memset(tag_output, 0x00, 16);
426 key_len =
unhexify( key_str,
"a7adc0d3aacef42397bbca79dd65dbdf" );
428 iv_len =
unhexify( iv_str,
"c6d3114c1429e37314683081d484c87c" );
431 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
434 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
435 hexify( dst_str, output, pt_len );
436 hexify( tag_str, tag_output, tag_len );
438 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
439 fct_chk( strcmp( (
char *) tag_str,
"d88141d27fe1748919845cfa5934bc" ) == 0 );
445 FCT_TEST_BGN(gcm_nist_validation_aes_12812800120_2)
447 unsigned char key_str[128];
448 unsigned char src_str[128];
449 unsigned char dst_str[257];
450 unsigned char iv_str[128];
451 unsigned char add_str[128];
452 unsigned char tag_str[128];
453 unsigned char output[128];
454 unsigned char tag_output[16];
456 unsigned int key_len;
457 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
459 memset(key_str, 0x00, 128);
460 memset(src_str, 0x00, 128);
461 memset(dst_str, 0x00, 257);
462 memset(iv_str, 0x00, 128);
463 memset(add_str, 0x00, 128);
464 memset(tag_str, 0x00, 128);
465 memset(output, 0x00, 128);
466 memset(tag_output, 0x00, 16);
468 key_len =
unhexify( key_str,
"10171805d7f7a6d87b64bda57474d7fc" );
470 iv_len =
unhexify( iv_str,
"fad65b50c1007c4b0c83c7a6720cacb8" );
473 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
476 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
477 hexify( dst_str, output, pt_len );
478 hexify( tag_str, tag_output, tag_len );
480 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
481 fct_chk( strcmp( (
char *) tag_str,
"c3d3f240d3f3da317eae42a238bcc1" ) == 0 );
487 FCT_TEST_BGN(gcm_nist_validation_aes_12812800112_0)
489 unsigned char key_str[128];
490 unsigned char src_str[128];
491 unsigned char dst_str[257];
492 unsigned char iv_str[128];
493 unsigned char add_str[128];
494 unsigned char tag_str[128];
495 unsigned char output[128];
496 unsigned char tag_output[16];
498 unsigned int key_len;
499 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
501 memset(key_str, 0x00, 128);
502 memset(src_str, 0x00, 128);
503 memset(dst_str, 0x00, 257);
504 memset(iv_str, 0x00, 128);
505 memset(add_str, 0x00, 128);
506 memset(tag_str, 0x00, 128);
507 memset(output, 0x00, 128);
508 memset(tag_output, 0x00, 16);
510 key_len =
unhexify( key_str,
"8aaa0c85d214c6c9e9e260e62f695827" );
512 iv_len =
unhexify( iv_str,
"84e25c916f38dd6fdb732c0d6d8f86bb" );
515 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
518 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
519 hexify( dst_str, output, pt_len );
520 hexify( tag_str, tag_output, tag_len );
522 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
523 fct_chk( strcmp( (
char *) tag_str,
"a774815a2a8432ca891ef4003125" ) == 0 );
529 FCT_TEST_BGN(gcm_nist_validation_aes_12812800112_1)
531 unsigned char key_str[128];
532 unsigned char src_str[128];
533 unsigned char dst_str[257];
534 unsigned char iv_str[128];
535 unsigned char add_str[128];
536 unsigned char tag_str[128];
537 unsigned char output[128];
538 unsigned char tag_output[16];
540 unsigned int key_len;
541 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
543 memset(key_str, 0x00, 128);
544 memset(src_str, 0x00, 128);
545 memset(dst_str, 0x00, 257);
546 memset(iv_str, 0x00, 128);
547 memset(add_str, 0x00, 128);
548 memset(tag_str, 0x00, 128);
549 memset(output, 0x00, 128);
550 memset(tag_output, 0x00, 16);
552 key_len =
unhexify( key_str,
"def8b6a58b8e582e57700bab4f2a4109" );
554 iv_len =
unhexify( iv_str,
"3615439e9fb777439eb814256c894fb2" );
557 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
560 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
561 hexify( dst_str, output, pt_len );
562 hexify( tag_str, tag_output, tag_len );
564 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
565 fct_chk( strcmp( (
char *) tag_str,
"537be9c88d3a46845e6cf5f91e11" ) == 0 );
571 FCT_TEST_BGN(gcm_nist_validation_aes_12812800112_2)
573 unsigned char key_str[128];
574 unsigned char src_str[128];
575 unsigned char dst_str[257];
576 unsigned char iv_str[128];
577 unsigned char add_str[128];
578 unsigned char tag_str[128];
579 unsigned char output[128];
580 unsigned char tag_output[16];
582 unsigned int key_len;
583 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
585 memset(key_str, 0x00, 128);
586 memset(src_str, 0x00, 128);
587 memset(dst_str, 0x00, 257);
588 memset(iv_str, 0x00, 128);
589 memset(add_str, 0x00, 128);
590 memset(tag_str, 0x00, 128);
591 memset(output, 0x00, 128);
592 memset(tag_output, 0x00, 16);
594 key_len =
unhexify( key_str,
"5894231d743f79638687c070b60beee1" );
596 iv_len =
unhexify( iv_str,
"e34cd13b897d1c9b8011a0e63950c099" );
599 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
602 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
603 hexify( dst_str, output, pt_len );
604 hexify( tag_str, tag_output, tag_len );
606 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
607 fct_chk( strcmp( (
char *) tag_str,
"d582c4bc083a8cf1af4d5c2c9b11" ) == 0 );
613 FCT_TEST_BGN(gcm_nist_validation_aes_12812800104_0)
615 unsigned char key_str[128];
616 unsigned char src_str[128];
617 unsigned char dst_str[257];
618 unsigned char iv_str[128];
619 unsigned char add_str[128];
620 unsigned char tag_str[128];
621 unsigned char output[128];
622 unsigned char tag_output[16];
624 unsigned int key_len;
625 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
627 memset(key_str, 0x00, 128);
628 memset(src_str, 0x00, 128);
629 memset(dst_str, 0x00, 257);
630 memset(iv_str, 0x00, 128);
631 memset(add_str, 0x00, 128);
632 memset(tag_str, 0x00, 128);
633 memset(output, 0x00, 128);
634 memset(tag_output, 0x00, 16);
636 key_len =
unhexify( key_str,
"6b25f9cbdc3bcd27fd245a1c411594bc" );
638 iv_len =
unhexify( iv_str,
"a6526f8c803b69dd5f59feca1cff78e2" );
641 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
644 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
645 hexify( dst_str, output, pt_len );
646 hexify( tag_str, tag_output, tag_len );
648 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
649 fct_chk( strcmp( (
char *) tag_str,
"c7e19e08a09a9c1fa698202890" ) == 0 );
655 FCT_TEST_BGN(gcm_nist_validation_aes_12812800104_1)
657 unsigned char key_str[128];
658 unsigned char src_str[128];
659 unsigned char dst_str[257];
660 unsigned char iv_str[128];
661 unsigned char add_str[128];
662 unsigned char tag_str[128];
663 unsigned char output[128];
664 unsigned char tag_output[16];
666 unsigned int key_len;
667 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
669 memset(key_str, 0x00, 128);
670 memset(src_str, 0x00, 128);
671 memset(dst_str, 0x00, 257);
672 memset(iv_str, 0x00, 128);
673 memset(add_str, 0x00, 128);
674 memset(tag_str, 0x00, 128);
675 memset(output, 0x00, 128);
676 memset(tag_output, 0x00, 16);
678 key_len =
unhexify( key_str,
"b3235422897b6459798a97ddd709db3d" );
680 iv_len =
unhexify( iv_str,
"96679e9362f919217d5e64068969d958" );
683 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
686 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
687 hexify( dst_str, output, pt_len );
688 hexify( tag_str, tag_output, tag_len );
690 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
691 fct_chk( strcmp( (
char *) tag_str,
"44ed41bda0eb0958d407b7b787" ) == 0 );
697 FCT_TEST_BGN(gcm_nist_validation_aes_12812800104_2)
699 unsigned char key_str[128];
700 unsigned char src_str[128];
701 unsigned char dst_str[257];
702 unsigned char iv_str[128];
703 unsigned char add_str[128];
704 unsigned char tag_str[128];
705 unsigned char output[128];
706 unsigned char tag_output[16];
708 unsigned int key_len;
709 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
711 memset(key_str, 0x00, 128);
712 memset(src_str, 0x00, 128);
713 memset(dst_str, 0x00, 257);
714 memset(iv_str, 0x00, 128);
715 memset(add_str, 0x00, 128);
716 memset(tag_str, 0x00, 128);
717 memset(output, 0x00, 128);
718 memset(tag_output, 0x00, 16);
720 key_len =
unhexify( key_str,
"f65bc795434efba3c5399ed3c99ff045" );
722 iv_len =
unhexify( iv_str,
"2e727c19a89cba6f9c04d990245fceed" );
725 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
728 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
729 hexify( dst_str, output, pt_len );
730 hexify( tag_str, tag_output, tag_len );
732 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
733 fct_chk( strcmp( (
char *) tag_str,
"64830ed7f772e898800fc9ae2a" ) == 0 );
739 FCT_TEST_BGN(gcm_nist_validation_aes_1281280096_0)
741 unsigned char key_str[128];
742 unsigned char src_str[128];
743 unsigned char dst_str[257];
744 unsigned char iv_str[128];
745 unsigned char add_str[128];
746 unsigned char tag_str[128];
747 unsigned char output[128];
748 unsigned char tag_output[16];
750 unsigned int key_len;
751 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
753 memset(key_str, 0x00, 128);
754 memset(src_str, 0x00, 128);
755 memset(dst_str, 0x00, 257);
756 memset(iv_str, 0x00, 128);
757 memset(add_str, 0x00, 128);
758 memset(tag_str, 0x00, 128);
759 memset(output, 0x00, 128);
760 memset(tag_output, 0x00, 16);
762 key_len =
unhexify( key_str,
"c6c66d50f2f76c4e911b3b17fcdcba1d" );
764 iv_len =
unhexify( iv_str,
"77b42158a4ef5dc33039d33631bb0161" );
767 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
770 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
771 hexify( dst_str, output, pt_len );
772 hexify( tag_str, tag_output, tag_len );
774 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
775 fct_chk( strcmp( (
char *) tag_str,
"1bce3ba33f73e750ab284d78" ) == 0 );
781 FCT_TEST_BGN(gcm_nist_validation_aes_1281280096_1)
783 unsigned char key_str[128];
784 unsigned char src_str[128];
785 unsigned char dst_str[257];
786 unsigned char iv_str[128];
787 unsigned char add_str[128];
788 unsigned char tag_str[128];
789 unsigned char output[128];
790 unsigned char tag_output[16];
792 unsigned int key_len;
793 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
795 memset(key_str, 0x00, 128);
796 memset(src_str, 0x00, 128);
797 memset(dst_str, 0x00, 257);
798 memset(iv_str, 0x00, 128);
799 memset(add_str, 0x00, 128);
800 memset(tag_str, 0x00, 128);
801 memset(output, 0x00, 128);
802 memset(tag_output, 0x00, 16);
804 key_len =
unhexify( key_str,
"13558db9b7441c585d381ffc16b32517" );
806 iv_len =
unhexify( iv_str,
"addf5dbe0975c5ad321e14dd4bdc2ad2" );
809 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
812 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
813 hexify( dst_str, output, pt_len );
814 hexify( tag_str, tag_output, tag_len );
816 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
817 fct_chk( strcmp( (
char *) tag_str,
"f413c3bf125ce5317cd1c6bd" ) == 0 );
823 FCT_TEST_BGN(gcm_nist_validation_aes_1281280096_2)
825 unsigned char key_str[128];
826 unsigned char src_str[128];
827 unsigned char dst_str[257];
828 unsigned char iv_str[128];
829 unsigned char add_str[128];
830 unsigned char tag_str[128];
831 unsigned char output[128];
832 unsigned char tag_output[16];
834 unsigned int key_len;
835 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
837 memset(key_str, 0x00, 128);
838 memset(src_str, 0x00, 128);
839 memset(dst_str, 0x00, 257);
840 memset(iv_str, 0x00, 128);
841 memset(add_str, 0x00, 128);
842 memset(tag_str, 0x00, 128);
843 memset(output, 0x00, 128);
844 memset(tag_output, 0x00, 16);
846 key_len =
unhexify( key_str,
"74638628b1361c2954ce0ac5456a1155" );
848 iv_len =
unhexify( iv_str,
"c5861507c879e6864d7cb1f77cc55cc6" );
851 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
854 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
855 hexify( dst_str, output, pt_len );
856 hexify( tag_str, tag_output, tag_len );
858 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
859 fct_chk( strcmp( (
char *) tag_str,
"8a514fdc7835711e4f458199" ) == 0 );
865 FCT_TEST_BGN(gcm_nist_validation_aes_1281280064_0)
867 unsigned char key_str[128];
868 unsigned char src_str[128];
869 unsigned char dst_str[257];
870 unsigned char iv_str[128];
871 unsigned char add_str[128];
872 unsigned char tag_str[128];
873 unsigned char output[128];
874 unsigned char tag_output[16];
876 unsigned int key_len;
877 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
879 memset(key_str, 0x00, 128);
880 memset(src_str, 0x00, 128);
881 memset(dst_str, 0x00, 257);
882 memset(iv_str, 0x00, 128);
883 memset(add_str, 0x00, 128);
884 memset(tag_str, 0x00, 128);
885 memset(output, 0x00, 128);
886 memset(tag_output, 0x00, 16);
888 key_len =
unhexify( key_str,
"7815d22c5c081df9ac2114aaa2c0cbf9" );
890 iv_len =
unhexify( iv_str,
"822f83cd9f249dfc204b5957f0b0deab" );
893 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
896 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
897 hexify( dst_str, output, pt_len );
898 hexify( tag_str, tag_output, tag_len );
900 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
901 fct_chk( strcmp( (
char *) tag_str,
"aa1f69f5d3bb79e5" ) == 0 );
907 FCT_TEST_BGN(gcm_nist_validation_aes_1281280064_1)
909 unsigned char key_str[128];
910 unsigned char src_str[128];
911 unsigned char dst_str[257];
912 unsigned char iv_str[128];
913 unsigned char add_str[128];
914 unsigned char tag_str[128];
915 unsigned char output[128];
916 unsigned char tag_output[16];
918 unsigned int key_len;
919 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
921 memset(key_str, 0x00, 128);
922 memset(src_str, 0x00, 128);
923 memset(dst_str, 0x00, 257);
924 memset(iv_str, 0x00, 128);
925 memset(add_str, 0x00, 128);
926 memset(tag_str, 0x00, 128);
927 memset(output, 0x00, 128);
928 memset(tag_output, 0x00, 16);
930 key_len =
unhexify( key_str,
"1a847a47823cb9c298e4107c6aaff95c" );
932 iv_len =
unhexify( iv_str,
"39348f80c6bc489f9315be7a6fcbb96f" );
935 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
938 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
939 hexify( dst_str, output, pt_len );
940 hexify( tag_str, tag_output, tag_len );
942 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
943 fct_chk( strcmp( (
char *) tag_str,
"c3b3f31e56cf4895" ) == 0 );
949 FCT_TEST_BGN(gcm_nist_validation_aes_1281280064_2)
951 unsigned char key_str[128];
952 unsigned char src_str[128];
953 unsigned char dst_str[257];
954 unsigned char iv_str[128];
955 unsigned char add_str[128];
956 unsigned char tag_str[128];
957 unsigned char output[128];
958 unsigned char tag_output[16];
960 unsigned int key_len;
961 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
963 memset(key_str, 0x00, 128);
964 memset(src_str, 0x00, 128);
965 memset(dst_str, 0x00, 257);
966 memset(iv_str, 0x00, 128);
967 memset(add_str, 0x00, 128);
968 memset(tag_str, 0x00, 128);
969 memset(output, 0x00, 128);
970 memset(tag_output, 0x00, 16);
972 key_len =
unhexify( key_str,
"16e67ea248ea6db08af1d810cb10574e" );
974 iv_len =
unhexify( iv_str,
"50386e2075eb15ca3f3e6db6bff01969" );
977 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
980 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
981 hexify( dst_str, output, pt_len );
982 hexify( tag_str, tag_output, tag_len );
984 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
985 fct_chk( strcmp( (
char *) tag_str,
"3d4f3b8526a376ae" ) == 0 );
991 FCT_TEST_BGN(gcm_nist_validation_aes_1281280032_0)
993 unsigned char key_str[128];
994 unsigned char src_str[128];
995 unsigned char dst_str[257];
996 unsigned char iv_str[128];
997 unsigned char add_str[128];
998 unsigned char tag_str[128];
999 unsigned char output[128];
1000 unsigned char tag_output[16];
1002 unsigned int key_len;
1003 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
1005 memset(key_str, 0x00, 128);
1006 memset(src_str, 0x00, 128);
1007 memset(dst_str, 0x00, 257);
1008 memset(iv_str, 0x00, 128);
1009 memset(add_str, 0x00, 128);
1010 memset(tag_str, 0x00, 128);
1011 memset(output, 0x00, 128);
1012 memset(tag_output, 0x00, 16);
1014 key_len =
unhexify( key_str,
"26a8301636ba93e7f56309143f184241" );
1016 iv_len =
unhexify( iv_str,
"c7e32b1d312971bdc344aefaf45461bc" );
1019 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
1022 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
1023 hexify( dst_str, output, pt_len );
1024 hexify( tag_str, tag_output, tag_len );
1026 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
1027 fct_chk( strcmp( (
char *) tag_str,
"25f1b41c" ) == 0 );
1033 FCT_TEST_BGN(gcm_nist_validation_aes_1281280032_1)
1035 unsigned char key_str[128];
1036 unsigned char src_str[128];
1037 unsigned char dst_str[257];
1038 unsigned char iv_str[128];
1039 unsigned char add_str[128];
1040 unsigned char tag_str[128];
1041 unsigned char output[128];
1042 unsigned char tag_output[16];
1044 unsigned int key_len;
1045 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
1047 memset(key_str, 0x00, 128);
1048 memset(src_str, 0x00, 128);
1049 memset(dst_str, 0x00, 257);
1050 memset(iv_str, 0x00, 128);
1051 memset(add_str, 0x00, 128);
1052 memset(tag_str, 0x00, 128);
1053 memset(output, 0x00, 128);
1054 memset(tag_output, 0x00, 16);
1056 key_len =
unhexify( key_str,
"130a07c467067148da2790f90d73ff32" );
1058 iv_len =
unhexify( iv_str,
"800b81c9d2ff3a8e15690ffb4117e211" );
1061 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
1064 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
1065 hexify( dst_str, output, pt_len );
1066 hexify( tag_str, tag_output, tag_len );
1068 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
1069 fct_chk( strcmp( (
char *) tag_str,
"abcc8d71" ) == 0 );
1075 FCT_TEST_BGN(gcm_nist_validation_aes_1281280032_2)
1077 unsigned char key_str[128];
1078 unsigned char src_str[128];
1079 unsigned char dst_str[257];
1080 unsigned char iv_str[128];
1081 unsigned char add_str[128];
1082 unsigned char tag_str[128];
1083 unsigned char output[128];
1084 unsigned char tag_output[16];
1086 unsigned int key_len;
1087 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
1089 memset(key_str, 0x00, 128);
1090 memset(src_str, 0x00, 128);
1091 memset(dst_str, 0x00, 257);
1092 memset(iv_str, 0x00, 128);
1093 memset(add_str, 0x00, 128);
1094 memset(tag_str, 0x00, 128);
1095 memset(output, 0x00, 128);
1096 memset(tag_output, 0x00, 16);
1098 key_len =
unhexify( key_str,
"ccfaae59c3196b8c403716424ea601f5" );
1100 iv_len =
unhexify( iv_str,
"f9b059de0efa4e3f364763d63d098410" );
1103 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
1106 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
1107 hexify( dst_str, output, pt_len );
1108 hexify( tag_str, tag_output, tag_len );
1110 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
1111 fct_chk( strcmp( (
char *) tag_str,
"8933444f" ) == 0 );
1117 FCT_TEST_BGN(gcm_nist_validation_aes_12812801024128_0)
1119 unsigned char key_str[128];
1120 unsigned char src_str[128];
1121 unsigned char dst_str[257];
1122 unsigned char iv_str[128];
1123 unsigned char add_str[128];
1124 unsigned char tag_str[128];
1125 unsigned char output[128];
1126 unsigned char tag_output[16];
1128 unsigned int key_len;
1129 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
1131 memset(key_str, 0x00, 128);
1132 memset(src_str, 0x00, 128);
1133 memset(dst_str, 0x00, 257);
1134 memset(iv_str, 0x00, 128);
1135 memset(add_str, 0x00, 128);
1136 memset(tag_str, 0x00, 128);
1137 memset(output, 0x00, 128);
1138 memset(tag_output, 0x00, 16);
1140 key_len =
unhexify( key_str,
"b5beefbdd23360f2dd1e6e3c1ddbfebf" );
1142 iv_len =
unhexify( iv_str,
"81a8494f85be635d71e5663789162494" );
1143 add_len =
unhexify( add_str,
"f9ebf242b616a42e2057ede3b56b4c27349fed148817a710654de75d1cfc5f6304709b46ef1e2ccb42f877c50f484f8a8c6b0a25cff61d9537c3fd0c69bbc6ef21cbec8986cbc9b6e87963b8d9db91b7134afe69d3d9dec3a76b6c645f9c5528968f27396cc9e989d589369c90bbfefb249e3fa416451bc3d6592cc5feefbd76" );
1145 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
1148 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
1149 hexify( dst_str, output, pt_len );
1150 hexify( tag_str, tag_output, tag_len );
1152 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
1153 fct_chk( strcmp( (
char *) tag_str,
"159a642185e0756d46f1db57af975fa3" ) == 0 );
1159 FCT_TEST_BGN(gcm_nist_validation_aes_12812801024128_1)
1161 unsigned char key_str[128];
1162 unsigned char src_str[128];
1163 unsigned char dst_str[257];
1164 unsigned char iv_str[128];
1165 unsigned char add_str[128];
1166 unsigned char tag_str[128];
1167 unsigned char output[128];
1168 unsigned char tag_output[16];
1170 unsigned int key_len;
1171 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
1173 memset(key_str, 0x00, 128);
1174 memset(src_str, 0x00, 128);
1175 memset(dst_str, 0x00, 257);
1176 memset(iv_str, 0x00, 128);
1177 memset(add_str, 0x00, 128);
1178 memset(tag_str, 0x00, 128);
1179 memset(output, 0x00, 128);
1180 memset(tag_output, 0x00, 16);
1182 key_len =
unhexify( key_str,
"c465aa8fe5d534c912e654f5aaed5857" );
1184 iv_len =
unhexify( iv_str,
"5c155f7194b0d0a17b9a0c234d609443" );
1185 add_len =
unhexify( add_str,
"a3f8d705b233b574399f72350b256cb4893e130688913ce3def8e44687688c0352ff987aea35dc53bc95cdb9cdcc6e6eb280265d9a1af38d526392ab63c9b043c1b1b43e18321e84eb7e08884f2463c32b55eb5859fb10918595a724a61cfdf935e4f96d0721612720d46a946487b525779f6ce0abf04fc5608351119b7427d2" );
1187 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
1190 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
1191 hexify( dst_str, output, pt_len );
1192 hexify( tag_str, tag_output, tag_len );
1194 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
1195 fct_chk( strcmp( (
char *) tag_str,
"9595a6d879cd7a949fa08e95d2b76c69" ) == 0 );
1201 FCT_TEST_BGN(gcm_nist_validation_aes_12812801024128_2)
1203 unsigned char key_str[128];
1204 unsigned char src_str[128];
1205 unsigned char dst_str[257];
1206 unsigned char iv_str[128];
1207 unsigned char add_str[128];
1208 unsigned char tag_str[128];
1209 unsigned char output[128];
1210 unsigned char tag_output[16];
1212 unsigned int key_len;
1213 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
1215 memset(key_str, 0x00, 128);
1216 memset(src_str, 0x00, 128);
1217 memset(dst_str, 0x00, 257);
1218 memset(iv_str, 0x00, 128);
1219 memset(add_str, 0x00, 128);
1220 memset(tag_str, 0x00, 128);
1221 memset(output, 0x00, 128);
1222 memset(tag_output, 0x00, 16);
1224 key_len =
unhexify( key_str,
"744b9e1692d8974d7dec349ebd7fe1e8" );
1226 iv_len =
unhexify( iv_str,
"62ad4b09fd554e0d6b3937839e693e5b" );
1227 add_len =
unhexify( add_str,
"6f9978f7078f0030c45caf49128ff72943a208a2398d08d132239f3ab5c184708e4222ec9ccde69dc86d1700c2fe0af939454bbb3962327158557860b6fa492ab8201df262a6209705c7e3129419bce8b827320893c1579ca05b32c81b3963b849428f71fe7528e710557a272117199163a35ebfbaba78f7676f7e566b16311a" );
1229 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
1232 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
1233 hexify( dst_str, output, pt_len );
1234 hexify( tag_str, tag_output, tag_len );
1236 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
1237 fct_chk( strcmp( (
char *) tag_str,
"634f6fe9625be8b1af9f46bcc0fa3162" ) == 0 );
1243 FCT_TEST_BGN(gcm_nist_validation_aes_12812801024120_0)
1245 unsigned char key_str[128];
1246 unsigned char src_str[128];
1247 unsigned char dst_str[257];
1248 unsigned char iv_str[128];
1249 unsigned char add_str[128];
1250 unsigned char tag_str[128];
1251 unsigned char output[128];
1252 unsigned char tag_output[16];
1254 unsigned int key_len;
1255 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
1257 memset(key_str, 0x00, 128);
1258 memset(src_str, 0x00, 128);
1259 memset(dst_str, 0x00, 257);
1260 memset(iv_str, 0x00, 128);
1261 memset(add_str, 0x00, 128);
1262 memset(tag_str, 0x00, 128);
1263 memset(output, 0x00, 128);
1264 memset(tag_output, 0x00, 16);
1266 key_len =
unhexify( key_str,
"097c059535037c6b358dbb5a68b5f2b1" );
1268 iv_len =
unhexify( iv_str,
"00caedfa078c27e3d9551e3fb8d98d77" );
1269 add_len =
unhexify( add_str,
"6c4bde11129a959fcd6a482cb19f5f1c582c042b314f7997b0450242f9e669dc1cbb0a3b7a185bf8b035267e6f03206268008e2b97864d44d6a9c6b1b4b067d623c4b4e9c608042ea9120aed3bee80886352683891496d8980e40b8480c98c2fe08f945aa1ef6007c65220319dd8678184ab54e81083b746ec6441e87a568e0c" );
1271 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
1274 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
1275 hexify( dst_str, output, pt_len );
1276 hexify( tag_str, tag_output, tag_len );
1278 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
1279 fct_chk( strcmp( (
char *) tag_str,
"5075ef45c6326726264703f72badde" ) == 0 );
1285 FCT_TEST_BGN(gcm_nist_validation_aes_12812801024120_1)
1287 unsigned char key_str[128];
1288 unsigned char src_str[128];
1289 unsigned char dst_str[257];
1290 unsigned char iv_str[128];
1291 unsigned char add_str[128];
1292 unsigned char tag_str[128];
1293 unsigned char output[128];
1294 unsigned char tag_output[16];
1296 unsigned int key_len;
1297 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
1299 memset(key_str, 0x00, 128);
1300 memset(src_str, 0x00, 128);
1301 memset(dst_str, 0x00, 257);
1302 memset(iv_str, 0x00, 128);
1303 memset(add_str, 0x00, 128);
1304 memset(tag_str, 0x00, 128);
1305 memset(output, 0x00, 128);
1306 memset(tag_output, 0x00, 16);
1308 key_len =
unhexify( key_str,
"d25db5eca46c16490294423ca0c35660" );
1310 iv_len =
unhexify( iv_str,
"6f37f15d6c7ea816278ab977c29fa45e" );
1311 add_len =
unhexify( add_str,
"bd76fd431cea72a288e5d7289c651c93b5f429a54f85249021d6b595eb9ce26e18914a381a6b0299acc3725431b352670f206b731be718a598ec123dce0a2c5ac0aa4641b092e704da9f967b909ca55c2722298365a50dcb5b5ec03a1d0cbb67b8de1e8b06e724af91137e0d98e7dc1e8253887da453cdcbd2eca03deacaabb8" );
1313 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
1316 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
1317 hexify( dst_str, output, pt_len );
1318 hexify( tag_str, tag_output, tag_len );
1320 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
1321 fct_chk( strcmp( (
char *) tag_str,
"00510851e9682213d4124d5517ebaf" ) == 0 );
1327 FCT_TEST_BGN(gcm_nist_validation_aes_12812801024120_2)
1329 unsigned char key_str[128];
1330 unsigned char src_str[128];
1331 unsigned char dst_str[257];
1332 unsigned char iv_str[128];
1333 unsigned char add_str[128];
1334 unsigned char tag_str[128];
1335 unsigned char output[128];
1336 unsigned char tag_output[16];
1338 unsigned int key_len;
1339 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
1341 memset(key_str, 0x00, 128);
1342 memset(src_str, 0x00, 128);
1343 memset(dst_str, 0x00, 257);
1344 memset(iv_str, 0x00, 128);
1345 memset(add_str, 0x00, 128);
1346 memset(tag_str, 0x00, 128);
1347 memset(output, 0x00, 128);
1348 memset(tag_output, 0x00, 16);
1350 key_len =
unhexify( key_str,
"b3c6258a726aff94a7bcc41646c68157" );
1352 iv_len =
unhexify( iv_str,
"7f5b3315afe5167a7e9061ab8b005588" );
1353 add_len =
unhexify( add_str,
"0ef3384862c7e00c2912e7fde91345dc3134b5448e6838f41135ba9199c03a7f208887e467563b39a6c1316540c1401e8ff148386c50fcf15724a65d3210b17832d63cdce76bd2b458348332b0b542122a57e381475a59440f280db6e1f4b8d0babfd47e3db11a9ef89cba5f334f0e8e72be30afb2b1ef2df8eb7f8d3da033c4" );
1355 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
1358 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
1359 hexify( dst_str, output, pt_len );
1360 hexify( tag_str, tag_output, tag_len );
1362 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
1363 fct_chk( strcmp( (
char *) tag_str,
"180489039ccf4a86c5f6349fc2235b" ) == 0 );
1369 FCT_TEST_BGN(gcm_nist_validation_aes_12812801024112_0)
1371 unsigned char key_str[128];
1372 unsigned char src_str[128];
1373 unsigned char dst_str[257];
1374 unsigned char iv_str[128];
1375 unsigned char add_str[128];
1376 unsigned char tag_str[128];
1377 unsigned char output[128];
1378 unsigned char tag_output[16];
1380 unsigned int key_len;
1381 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
1383 memset(key_str, 0x00, 128);
1384 memset(src_str, 0x00, 128);
1385 memset(dst_str, 0x00, 257);
1386 memset(iv_str, 0x00, 128);
1387 memset(add_str, 0x00, 128);
1388 memset(tag_str, 0x00, 128);
1389 memset(output, 0x00, 128);
1390 memset(tag_output, 0x00, 16);
1392 key_len =
unhexify( key_str,
"73cd0a1e2b6e12fbaa7cbace77d5119c" );
1394 iv_len =
unhexify( iv_str,
"d897681764bcc3b62c26b4aaf407cefa" );
1395 add_len =
unhexify( add_str,
"8c773e14a906c7deae362d1bf3d7e54c6be4c74c691b7f2d248693b2619219fba6eb5bc45f77af1cf7c05d3dd463158f884fe82290d145135889fd851b86ee282aa20bbdf6af78c7f9db6128b8b99e7f9b270fd222efa18f7aca6932a1024efb72113e812b3f9d2d4ccc7c85f5898ddacccbf1b441cd74097740dd922b57bade" );
1397 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
1400 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
1401 hexify( dst_str, output, pt_len );
1402 hexify( tag_str, tag_output, tag_len );
1404 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
1405 fct_chk( strcmp( (
char *) tag_str,
"d8811a8990191f1e5bd15be84995" ) == 0 );
1411 FCT_TEST_BGN(gcm_nist_validation_aes_12812801024112_1)
1413 unsigned char key_str[128];
1414 unsigned char src_str[128];
1415 unsigned char dst_str[257];
1416 unsigned char iv_str[128];
1417 unsigned char add_str[128];
1418 unsigned char tag_str[128];
1419 unsigned char output[128];
1420 unsigned char tag_output[16];
1422 unsigned int key_len;
1423 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
1425 memset(key_str, 0x00, 128);
1426 memset(src_str, 0x00, 128);
1427 memset(dst_str, 0x00, 257);
1428 memset(iv_str, 0x00, 128);
1429 memset(add_str, 0x00, 128);
1430 memset(tag_str, 0x00, 128);
1431 memset(output, 0x00, 128);
1432 memset(tag_output, 0x00, 16);
1434 key_len =
unhexify( key_str,
"c1dfddafe076d0ceebb0f37bb25bc0b1" );
1436 iv_len =
unhexify( iv_str,
"29c56db10cea802c19fb6230227ab2bf" );
1437 add_len =
unhexify( add_str,
"287b73cdc62ce058cdceff8e9af7afc321716f69da9eef60c2de93630ba7d0ed0a9d303cd15521a2647159b8478593f3dd3f5b7c52081e5154e55ccbff371d7e5dfc2d05e14d666a01ec2cc6028aacadfd78dfc73bf639fc4dfa0a0c46415902bbda2443620fa5e0ce4fccf1b8591e3a548f95755102a8438300753ea5f61b9f" );
1439 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
1442 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
1443 hexify( dst_str, output, pt_len );
1444 hexify( tag_str, tag_output, tag_len );
1446 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
1447 fct_chk( strcmp( (
char *) tag_str,
"309fedad1f3b81e51d69e4162e6f" ) == 0 );
1453 FCT_TEST_BGN(gcm_nist_validation_aes_12812801024112_2)
1455 unsigned char key_str[128];
1456 unsigned char src_str[128];
1457 unsigned char dst_str[257];
1458 unsigned char iv_str[128];
1459 unsigned char add_str[128];
1460 unsigned char tag_str[128];
1461 unsigned char output[128];
1462 unsigned char tag_output[16];
1464 unsigned int key_len;
1465 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
1467 memset(key_str, 0x00, 128);
1468 memset(src_str, 0x00, 128);
1469 memset(dst_str, 0x00, 257);
1470 memset(iv_str, 0x00, 128);
1471 memset(add_str, 0x00, 128);
1472 memset(tag_str, 0x00, 128);
1473 memset(output, 0x00, 128);
1474 memset(tag_output, 0x00, 16);
1476 key_len =
unhexify( key_str,
"2c4087ccd28ceda147d2fcfc18579b1e" );
1478 iv_len =
unhexify( iv_str,
"9cbdd67c79ab46bcbcfa96fa2c3d7e87" );
1479 add_len =
unhexify( add_str,
"35088d18dff0a9d3929ce087668aae1d364b37a97102f3f43e11950e6ec8296d0c99b00cd1c5dff53d3a38475e7da7b9ee4ce0c6388a95d3f8b036414e4b79cd02b5468cbb277f930e7c92432a609db1effe65f60f1174b58f713e199491f9e0c29ba1f2e43306775d18c1136274af61488a2f932e95eceadfe3fe4b854fe899" );
1481 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
1484 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
1485 hexify( dst_str, output, pt_len );
1486 hexify( tag_str, tag_output, tag_len );
1488 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
1489 fct_chk( strcmp( (
char *) tag_str,
"b7e83207eb313b3ceb2360bc8d4f" ) == 0 );
1495 FCT_TEST_BGN(gcm_nist_validation_aes_12812801024104_0)
1497 unsigned char key_str[128];
1498 unsigned char src_str[128];
1499 unsigned char dst_str[257];
1500 unsigned char iv_str[128];
1501 unsigned char add_str[128];
1502 unsigned char tag_str[128];
1503 unsigned char output[128];
1504 unsigned char tag_output[16];
1506 unsigned int key_len;
1507 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
1509 memset(key_str, 0x00, 128);
1510 memset(src_str, 0x00, 128);
1511 memset(dst_str, 0x00, 257);
1512 memset(iv_str, 0x00, 128);
1513 memset(add_str, 0x00, 128);
1514 memset(tag_str, 0x00, 128);
1515 memset(output, 0x00, 128);
1516 memset(tag_output, 0x00, 16);
1518 key_len =
unhexify( key_str,
"bb66584c8b18f44c11f3bd7180b9b11d" );
1520 iv_len =
unhexify( iv_str,
"39c82aee03ce0862ff99f8812cdbdcf0" );
1521 add_len =
unhexify( add_str,
"45ec858e0a5c6d81144ba893e0002818a70e9a19002a5471993077241b3fcfb4fd984f2450803293882d1c7ecb654e611578fe7d258f9a2ca3b5f0c0f0d0ec4828bdeb9299914ff2ac4cc997cf54fa908afdb3eae9f91d67c4637e1f9eb1eae2b3f482ddd5467668bc368b96bbbfc33b9ae2658e4ca43fcf4b66ba2a079d65f1" );
1523 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
1526 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
1527 hexify( dst_str, output, pt_len );
1528 hexify( tag_str, tag_output, tag_len );
1530 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
1531 fct_chk( strcmp( (
char *) tag_str,
"24332fd35a83b1dfb75969819b" ) == 0 );
1537 FCT_TEST_BGN(gcm_nist_validation_aes_12812801024104_1)
1539 unsigned char key_str[128];
1540 unsigned char src_str[128];
1541 unsigned char dst_str[257];
1542 unsigned char iv_str[128];
1543 unsigned char add_str[128];
1544 unsigned char tag_str[128];
1545 unsigned char output[128];
1546 unsigned char tag_output[16];
1548 unsigned int key_len;
1549 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
1551 memset(key_str, 0x00, 128);
1552 memset(src_str, 0x00, 128);
1553 memset(dst_str, 0x00, 257);
1554 memset(iv_str, 0x00, 128);
1555 memset(add_str, 0x00, 128);
1556 memset(tag_str, 0x00, 128);
1557 memset(output, 0x00, 128);
1558 memset(tag_output, 0x00, 16);
1560 key_len =
unhexify( key_str,
"7b2a230c8978d4e38fa5096ddc19d6f5" );
1562 iv_len =
unhexify( iv_str,
"cd25e744a78af858e825e1fd070324ee" );
1563 add_len =
unhexify( add_str,
"628baac336862573cee158cd3935c34df3055dadc9c1695e9ea18724f6457f0d1833aab30b85a99e0793e56000de5d6d5cb2327a4cc8bec40cd198459e7b93617713e63bbd15381a066bc44a69c9ad3dfb1984f8b33a9429eda3068d3ac5fbbaaee2b952a486e58d674ffca641d9ec1d102600af11641fd5fff725204e6c34a8" );
1565 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
1568 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
1569 hexify( dst_str, output, pt_len );
1570 hexify( tag_str, tag_output, tag_len );
1572 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
1573 fct_chk( strcmp( (
char *) tag_str,
"68d49d495ff092ca8e5a2c16cb" ) == 0 );
1579 FCT_TEST_BGN(gcm_nist_validation_aes_12812801024104_2)
1581 unsigned char key_str[128];
1582 unsigned char src_str[128];
1583 unsigned char dst_str[257];
1584 unsigned char iv_str[128];
1585 unsigned char add_str[128];
1586 unsigned char tag_str[128];
1587 unsigned char output[128];
1588 unsigned char tag_output[16];
1590 unsigned int key_len;
1591 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
1593 memset(key_str, 0x00, 128);
1594 memset(src_str, 0x00, 128);
1595 memset(dst_str, 0x00, 257);
1596 memset(iv_str, 0x00, 128);
1597 memset(add_str, 0x00, 128);
1598 memset(tag_str, 0x00, 128);
1599 memset(output, 0x00, 128);
1600 memset(tag_output, 0x00, 16);
1602 key_len =
unhexify( key_str,
"73aa576e1dfad2c993afcc088bd8d62b" );
1604 iv_len =
unhexify( iv_str,
"712e665a0a83e8ecad97e92afeb35706" );
1605 add_len =
unhexify( add_str,
"314e5fee776e9d5d2a1fb64ceb78e2c9a560a34724e30da860b5588fe63d50838cb480ff8ac61d7958b470b1bfd4c84799af6cb74c4a331b198204a251e731f7d785b966da595b745d01769623492c18b9dd8bd3c75249effd2032658c715906a71dbbed847027ea75d647f9803296a41906e0915250854597a163035a8d3f45" );
1607 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
1610 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
1611 hexify( dst_str, output, pt_len );
1612 hexify( tag_str, tag_output, tag_len );
1614 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
1615 fct_chk( strcmp( (
char *) tag_str,
"a41f5c9c7de2694c75856460d4" ) == 0 );
1621 FCT_TEST_BGN(gcm_nist_validation_aes_1281280102496_0)
1623 unsigned char key_str[128];
1624 unsigned char src_str[128];
1625 unsigned char dst_str[257];
1626 unsigned char iv_str[128];
1627 unsigned char add_str[128];
1628 unsigned char tag_str[128];
1629 unsigned char output[128];
1630 unsigned char tag_output[16];
1632 unsigned int key_len;
1633 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
1635 memset(key_str, 0x00, 128);
1636 memset(src_str, 0x00, 128);
1637 memset(dst_str, 0x00, 257);
1638 memset(iv_str, 0x00, 128);
1639 memset(add_str, 0x00, 128);
1640 memset(tag_str, 0x00, 128);
1641 memset(output, 0x00, 128);
1642 memset(tag_output, 0x00, 16);
1644 key_len =
unhexify( key_str,
"83f7631c4d4c466c9246cbc48e2dde6f" );
1646 iv_len =
unhexify( iv_str,
"f5d6c8c252cb687a931c38f58f74943c" );
1647 add_len =
unhexify( add_str,
"1f35e94a35d0f424bf690a15038126a41502593612efe6333cf94ea0565ca6acdefae8d74dae62df95e9261c6596c3397220e044c5b08cf39cccb27315d9b795da321204910274a93436bc0573fdba04ae6bb14c6ca955cf8b9e193a12e05796d7f4b397507614dabc457f1cd3ce19e439b6e62703f2189372938b29b7a542b9" );
1649 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
1652 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
1653 hexify( dst_str, output, pt_len );
1654 hexify( tag_str, tag_output, tag_len );
1656 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
1657 fct_chk( strcmp( (
char *) tag_str,
"bb85dbd858ab7b752da7e53c" ) == 0 );
1663 FCT_TEST_BGN(gcm_nist_validation_aes_1281280102496_1)
1665 unsigned char key_str[128];
1666 unsigned char src_str[128];
1667 unsigned char dst_str[257];
1668 unsigned char iv_str[128];
1669 unsigned char add_str[128];
1670 unsigned char tag_str[128];
1671 unsigned char output[128];
1672 unsigned char tag_output[16];
1674 unsigned int key_len;
1675 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
1677 memset(key_str, 0x00, 128);
1678 memset(src_str, 0x00, 128);
1679 memset(dst_str, 0x00, 257);
1680 memset(iv_str, 0x00, 128);
1681 memset(add_str, 0x00, 128);
1682 memset(tag_str, 0x00, 128);
1683 memset(output, 0x00, 128);
1684 memset(tag_output, 0x00, 16);
1686 key_len =
unhexify( key_str,
"784e023b2d4c978151d05ee71533c56c" );
1688 iv_len =
unhexify( iv_str,
"f16d041b9f0f454db9985c8558ef8a61" );
1689 add_len =
unhexify( add_str,
"91f6e108c294640c7bc65d102d3d25a7bfbbe114acec9b495636689afd65fff794837946602ef04de7d4304a81809e0f7ddc45c476c29fd5286fcf4dd1ba76ed3ce88abdb51cd21e7aaeecb13238ac031da87ab96b2a13157278bf669d0efae28852ec3585d520d54502881322f7977d03954e17e7c0c0d8f762e34f59ca141e" );
1691 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
1694 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
1695 hexify( dst_str, output, pt_len );
1696 hexify( tag_str, tag_output, tag_len );
1698 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
1699 fct_chk( strcmp( (
char *) tag_str,
"59699c639d67be6a6d7c9789" ) == 0 );
1705 FCT_TEST_BGN(gcm_nist_validation_aes_1281280102496_2)
1707 unsigned char key_str[128];
1708 unsigned char src_str[128];
1709 unsigned char dst_str[257];
1710 unsigned char iv_str[128];
1711 unsigned char add_str[128];
1712 unsigned char tag_str[128];
1713 unsigned char output[128];
1714 unsigned char tag_output[16];
1716 unsigned int key_len;
1717 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
1719 memset(key_str, 0x00, 128);
1720 memset(src_str, 0x00, 128);
1721 memset(dst_str, 0x00, 257);
1722 memset(iv_str, 0x00, 128);
1723 memset(add_str, 0x00, 128);
1724 memset(tag_str, 0x00, 128);
1725 memset(output, 0x00, 128);
1726 memset(tag_output, 0x00, 16);
1728 key_len =
unhexify( key_str,
"d3a2ec66e4a72cb3540e87f4e67c7e58" );
1730 iv_len =
unhexify( iv_str,
"07a9cf9f44b07e3067d60e276322e9fb" );
1731 add_len =
unhexify( add_str,
"d7e722b82e8607a64fbfeefc7887009298f06a637fe937277e3a76e8addaeeb460ba0743912c07b500b4b51e9fec2b7eddf691d155baf689f75968160c19a8330e254220142ae843bf0687aabeb74ab607227b0a7539ec3cfea72a5c35f236623af78beffaee6e7b1adc2895732ffedb3f8520710f04eb9c2ce9b2cae215ed5c" );
1733 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
1736 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
1737 hexify( dst_str, output, pt_len );
1738 hexify( tag_str, tag_output, tag_len );
1740 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
1741 fct_chk( strcmp( (
char *) tag_str,
"f29aec72368bfcfa9ae815fd" ) == 0 );
1747 FCT_TEST_BGN(gcm_nist_validation_aes_1281280102464_0)
1749 unsigned char key_str[128];
1750 unsigned char src_str[128];
1751 unsigned char dst_str[257];
1752 unsigned char iv_str[128];
1753 unsigned char add_str[128];
1754 unsigned char tag_str[128];
1755 unsigned char output[128];
1756 unsigned char tag_output[16];
1758 unsigned int key_len;
1759 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
1761 memset(key_str, 0x00, 128);
1762 memset(src_str, 0x00, 128);
1763 memset(dst_str, 0x00, 257);
1764 memset(iv_str, 0x00, 128);
1765 memset(add_str, 0x00, 128);
1766 memset(tag_str, 0x00, 128);
1767 memset(output, 0x00, 128);
1768 memset(tag_output, 0x00, 16);
1770 key_len =
unhexify( key_str,
"83f382a90146544ef4871bde891aed22" );
1772 iv_len =
unhexify( iv_str,
"c6f664f5ccfd1aaefb60f7fa3b642302" );
1773 add_len =
unhexify( add_str,
"656a2f221a1339d8f5c26393a08fa31859f626eec9a68afb6ee30e5b6859d1cbb5ed7dea6cbc4a5d537d70227d0608185df71a0252fa313be4d804567c162b743814f8b8306155931fdecf13822a524868b99a27fd2ff8f98c16edccd64520e2dce1ad645fd5255c7c436d9b876f592ef468397b00857ba948edf21215d63d99" );
1775 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
1778 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
1779 hexify( dst_str, output, pt_len );
1780 hexify( tag_str, tag_output, tag_len );
1782 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
1783 fct_chk( strcmp( (
char *) tag_str,
"09df79dd8b476f69" ) == 0 );
1789 FCT_TEST_BGN(gcm_nist_validation_aes_1281280102464_1)
1791 unsigned char key_str[128];
1792 unsigned char src_str[128];
1793 unsigned char dst_str[257];
1794 unsigned char iv_str[128];
1795 unsigned char add_str[128];
1796 unsigned char tag_str[128];
1797 unsigned char output[128];
1798 unsigned char tag_output[16];
1800 unsigned int key_len;
1801 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
1803 memset(key_str, 0x00, 128);
1804 memset(src_str, 0x00, 128);
1805 memset(dst_str, 0x00, 257);
1806 memset(iv_str, 0x00, 128);
1807 memset(add_str, 0x00, 128);
1808 memset(tag_str, 0x00, 128);
1809 memset(output, 0x00, 128);
1810 memset(tag_output, 0x00, 16);
1812 key_len =
unhexify( key_str,
"64334f10a62c26fef79d9024d4ba7c5f" );
1814 iv_len =
unhexify( iv_str,
"7b85251554d4f0ff89980cf3568c5caa" );
1815 add_len =
unhexify( add_str,
"dab2892262a1832a473cd3481acbd3d1820f14361c275514ec693b40f2170ea5ff82c4f7e95a7c783ea52c43a0a399c37b31319a122fd1a722e6631efa33f8bfb6dc193986580f0344d28842a3a4a5ca6880552557f3915a65501f6ee0c1b68a4c9040f0fac381cbccb6a6e9bca23b99f2ef1abbca71c69aa27af2db176bf37d" );
1817 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
1820 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
1821 hexify( dst_str, output, pt_len );
1822 hexify( tag_str, tag_output, tag_len );
1824 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
1825 fct_chk( strcmp( (
char *) tag_str,
"3e8406900a4c28bc" ) == 0 );
1831 FCT_TEST_BGN(gcm_nist_validation_aes_1281280102464_2)
1833 unsigned char key_str[128];
1834 unsigned char src_str[128];
1835 unsigned char dst_str[257];
1836 unsigned char iv_str[128];
1837 unsigned char add_str[128];
1838 unsigned char tag_str[128];
1839 unsigned char output[128];
1840 unsigned char tag_output[16];
1842 unsigned int key_len;
1843 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
1845 memset(key_str, 0x00, 128);
1846 memset(src_str, 0x00, 128);
1847 memset(dst_str, 0x00, 257);
1848 memset(iv_str, 0x00, 128);
1849 memset(add_str, 0x00, 128);
1850 memset(tag_str, 0x00, 128);
1851 memset(output, 0x00, 128);
1852 memset(tag_output, 0x00, 16);
1854 key_len =
unhexify( key_str,
"1c98ca4971c3a6333c18b88addf13368" );
1856 iv_len =
unhexify( iv_str,
"7f617f08e826a3c61882c3e00c203d4b" );
1857 add_len =
unhexify( add_str,
"ab1531fce0f279d21091c3334bd20afa55c7155bfc275330ed45f91cfc953771cbde2582f4be279918ac8b9ae07cb3b2efd14292e094891d4841be329678ad58d714fc8ce4bffe51f539f4240c14ba883b95cdc32cf4a9fd6ba4ffeafa0d6718989c46483c96cfca3fe91000f9f923d7f96725e966de068b5da65546fe38f70e" );
1859 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
1862 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
1863 hexify( dst_str, output, pt_len );
1864 hexify( tag_str, tag_output, tag_len );
1866 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
1867 fct_chk( strcmp( (
char *) tag_str,
"58cc756d3bf9b6f9" ) == 0 );
1873 FCT_TEST_BGN(gcm_nist_validation_aes_1281280102432_0)
1875 unsigned char key_str[128];
1876 unsigned char src_str[128];
1877 unsigned char dst_str[257];
1878 unsigned char iv_str[128];
1879 unsigned char add_str[128];
1880 unsigned char tag_str[128];
1881 unsigned char output[128];
1882 unsigned char tag_output[16];
1884 unsigned int key_len;
1885 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
1887 memset(key_str, 0x00, 128);
1888 memset(src_str, 0x00, 128);
1889 memset(dst_str, 0x00, 257);
1890 memset(iv_str, 0x00, 128);
1891 memset(add_str, 0x00, 128);
1892 memset(tag_str, 0x00, 128);
1893 memset(output, 0x00, 128);
1894 memset(tag_output, 0x00, 16);
1896 key_len =
unhexify( key_str,
"247d3abeb807bde959e68b40a3750045" );
1898 iv_len =
unhexify( iv_str,
"3f5390cd7921fcb42c59f0db05a8a62f" );
1899 add_len =
unhexify( add_str,
"81abf375da7157a1a56068d0918037fecb7296d9b1771c54ae6030abda4b9d76feff818de81747980b2c1b005e36b3be36afbf1092edef6fd875d2903d73612addf206a6ae65886421059c70990a6ee33197f92bed649901fed62fdd20c30d81baf6090f50d9f59290528e58a0b7412ace0a293369f2b4c8d72c2fb0e1c432f5" );
1901 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
1904 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
1905 hexify( dst_str, output, pt_len );
1906 hexify( tag_str, tag_output, tag_len );
1908 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
1909 fct_chk( strcmp( (
char *) tag_str,
"37bb4857" ) == 0 );
1915 FCT_TEST_BGN(gcm_nist_validation_aes_1281280102432_1)
1917 unsigned char key_str[128];
1918 unsigned char src_str[128];
1919 unsigned char dst_str[257];
1920 unsigned char iv_str[128];
1921 unsigned char add_str[128];
1922 unsigned char tag_str[128];
1923 unsigned char output[128];
1924 unsigned char tag_output[16];
1926 unsigned int key_len;
1927 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
1929 memset(key_str, 0x00, 128);
1930 memset(src_str, 0x00, 128);
1931 memset(dst_str, 0x00, 257);
1932 memset(iv_str, 0x00, 128);
1933 memset(add_str, 0x00, 128);
1934 memset(tag_str, 0x00, 128);
1935 memset(output, 0x00, 128);
1936 memset(tag_output, 0x00, 16);
1938 key_len =
unhexify( key_str,
"622be8cd3c757de00fbb7ab4563ce14f" );
1940 iv_len =
unhexify( iv_str,
"16c53a843b1549716d7c06b141861862" );
1941 add_len =
unhexify( add_str,
"a15d101580d549f2401bf0f36be0f83724875205c9109d2d69d2609cbf67504b918f0859303192b4075f952454f3e7152f898f997b36afc0356712fc08db3343054b20e88ad1274e019bf8fcc3c921d3bc8f9c1d1d24adc61f6033a83ef46a84762304f1903553748b13b1647c96eb8702ebb41ccea4d9cfebcb177c453277f2" );
1943 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
1946 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
1947 hexify( dst_str, output, pt_len );
1948 hexify( tag_str, tag_output, tag_len );
1950 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
1951 fct_chk( strcmp( (
char *) tag_str,
"35778596" ) == 0 );
1957 FCT_TEST_BGN(gcm_nist_validation_aes_1281280102432_2)
1959 unsigned char key_str[128];
1960 unsigned char src_str[128];
1961 unsigned char dst_str[257];
1962 unsigned char iv_str[128];
1963 unsigned char add_str[128];
1964 unsigned char tag_str[128];
1965 unsigned char output[128];
1966 unsigned char tag_output[16];
1968 unsigned int key_len;
1969 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
1971 memset(key_str, 0x00, 128);
1972 memset(src_str, 0x00, 128);
1973 memset(dst_str, 0x00, 257);
1974 memset(iv_str, 0x00, 128);
1975 memset(add_str, 0x00, 128);
1976 memset(tag_str, 0x00, 128);
1977 memset(output, 0x00, 128);
1978 memset(tag_output, 0x00, 16);
1980 key_len =
unhexify( key_str,
"8a660aa0191f9816261387d5aeb262f6" );
1982 iv_len =
unhexify( iv_str,
"c720cb31e841480da5ba656e9b93f066" );
1983 add_len =
unhexify( add_str,
"d979affe395bd048db26d26908a1c2a435905299086cc55bb65ef782f5aed99c41743c3ae252ea087f5453bdc605abd784b337b60960946358da2218b076826659a1fafa59124a00a3424fce0d00c38eea85cfb3d1e01bcb09d9870d5b3fe728f394e0e512f5aa849d0550d45a7cc384f1e4c6b2e138efbc8f586b5b5ed09212" );
1985 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
1988 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
1989 hexify( dst_str, output, pt_len );
1990 hexify( tag_str, tag_output, tag_len );
1992 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
1993 fct_chk( strcmp( (
char *) tag_str,
"cf7944b1" ) == 0 );
1999 FCT_TEST_BGN(gcm_nist_validation_aes_12812810240128_0)
2001 unsigned char key_str[128];
2002 unsigned char src_str[128];
2003 unsigned char dst_str[257];
2004 unsigned char iv_str[128];
2005 unsigned char add_str[128];
2006 unsigned char tag_str[128];
2007 unsigned char output[128];
2008 unsigned char tag_output[16];
2010 unsigned int key_len;
2011 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
2013 memset(key_str, 0x00, 128);
2014 memset(src_str, 0x00, 128);
2015 memset(dst_str, 0x00, 257);
2016 memset(iv_str, 0x00, 128);
2017 memset(add_str, 0x00, 128);
2018 memset(tag_str, 0x00, 128);
2019 memset(output, 0x00, 128);
2020 memset(tag_output, 0x00, 16);
2022 key_len =
unhexify( key_str,
"ce0f8cfe9d64c4f4c045d11b97c2d918" );
2023 pt_len =
unhexify( src_str,
"dfff250d380f363880963b42d6913c1ba11e8edf7c4ab8b76d79ccbaac628f548ee542f48728a9a2620a0d69339c8291e8d398440d740e310908cdee7c273cc91275ce7271ba12f69237998b07b789b3993aaac8dc4ec1914432a30f5172f79ea0539bd1f70b36d437e5170bc63039a5280816c05e1e41760b58e35696cebd55" );
2024 iv_len =
unhexify( iv_str,
"ad4c3627a494fc628316dc03faf81db8" );
2027 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
2030 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
2031 hexify( dst_str, output, pt_len );
2032 hexify( tag_str, tag_output, tag_len );
2034 fct_chk( strcmp( (
char *) dst_str,
"0de73d9702d9357c9e8619b7944e40732ac2f4dd3f1b42d8d7f36acb1f1497990d0ec3d626082cdb1384ec72a4c1d98955ba2a3aae6d81b24e9ce533eb5ede7210ae4a06d43f750138b8914d754d43bce416fee799cc4dd03949acedc34def7d6bde6ba41a4cf03d209689a3ad181f1b6dcf76ca25c87eb1c7459cc9f95ddc57" ) == 0 );
2035 fct_chk( strcmp( (
char *) tag_str,
"5f6a3620e59fe8977286f502d0da7517" ) == 0 );
2041 FCT_TEST_BGN(gcm_nist_validation_aes_12812810240128_1)
2043 unsigned char key_str[128];
2044 unsigned char src_str[128];
2045 unsigned char dst_str[257];
2046 unsigned char iv_str[128];
2047 unsigned char add_str[128];
2048 unsigned char tag_str[128];
2049 unsigned char output[128];
2050 unsigned char tag_output[16];
2052 unsigned int key_len;
2053 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
2055 memset(key_str, 0x00, 128);
2056 memset(src_str, 0x00, 128);
2057 memset(dst_str, 0x00, 257);
2058 memset(iv_str, 0x00, 128);
2059 memset(add_str, 0x00, 128);
2060 memset(tag_str, 0x00, 128);
2061 memset(output, 0x00, 128);
2062 memset(tag_output, 0x00, 16);
2064 key_len =
unhexify( key_str,
"81371acd5553fdadc6af96fdeee4c64d" );
2065 pt_len =
unhexify( src_str,
"940806fd5ddcab9937b4ba875e46bb4b7e9688d616d17fd24646f1ef1457819f55887f53bd70039bb83b4d346aabe805288ab7a5756874bdc2b3d4894217d3a036da5e9e162fa2d9819ceb561ecf817efc9493b9a60796f6dc5e717ac99bc4ba298eee4f3cd56bbc07dde970d4f07bbfa1f5fe18c29a3927abe11369091df28f" );
2066 iv_len =
unhexify( iv_str,
"3262501ed230bc4f5a190ab050e1bcee" );
2069 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
2072 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
2073 hexify( dst_str, output, pt_len );
2074 hexify( tag_str, tag_output, tag_len );
2076 fct_chk( strcmp( (
char *) dst_str,
"ffeb1907bdbfea877890a6e972a533ae661a903a257b3b912c7c768cc988e05afd71a9e6117d90d1e1b54f55de9b10cbce7a109452567483cc8d6a68b9e56da10802630591fdd8d55f9e172f0f58a7e0c56a73a1ae3c3062f0997b364eb0885d48e039b2ba1bd14dbb9c74a41cbd4b52564e470d1a8038d15207a7650bd3f1d6" ) == 0 );
2077 fct_chk( strcmp( (
char *) tag_str,
"227d422f8797b58aa6a189658b770da9" ) == 0 );
2083 FCT_TEST_BGN(gcm_nist_validation_aes_12812810240128_2)
2085 unsigned char key_str[128];
2086 unsigned char src_str[128];
2087 unsigned char dst_str[257];
2088 unsigned char iv_str[128];
2089 unsigned char add_str[128];
2090 unsigned char tag_str[128];
2091 unsigned char output[128];
2092 unsigned char tag_output[16];
2094 unsigned int key_len;
2095 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
2097 memset(key_str, 0x00, 128);
2098 memset(src_str, 0x00, 128);
2099 memset(dst_str, 0x00, 257);
2100 memset(iv_str, 0x00, 128);
2101 memset(add_str, 0x00, 128);
2102 memset(tag_str, 0x00, 128);
2103 memset(output, 0x00, 128);
2104 memset(tag_output, 0x00, 16);
2106 key_len =
unhexify( key_str,
"ef5295e9ae74729e222df6dab251158d" );
2107 pt_len =
unhexify( src_str,
"59372848432f86f5740500391d2e5d5fbe1f80ea876a0ecb9a5b298d9ea7cdc28620aeb2fda015345ae476f265351b2c6b6fcd66bc8aae4dc8a95c1350cda204da3d2d2fc5e6e142dc448296d5df0cc349d1eba2fa98d2f468662616274a147fbe07927440afa3967ac09a03a8de0b03f3036bde5e272e3c4c5ff169dd730238" );
2108 iv_len =
unhexify( iv_str,
"194d08fcc3c08ab96fa724c381274d3f" );
2111 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
2114 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
2115 hexify( dst_str, output, pt_len );
2116 hexify( tag_str, tag_output, tag_len );
2118 fct_chk( strcmp( (
char *) dst_str,
"fdceeffdc8390bde6b910544db61db2f345eba0664f78f65d94b90e3e2a5251be374b3c5d881460cfff3549a01f84eb9d54087306a20f5156cd555e46bd2173386c90ea47983320fcbf24e09a05f2ec4b2577287d05e050b55b3002b753de49abef895ee97015810c06d09212b0c09e4910c64ac3981795a1e360197740360fd" ) == 0 );
2119 fct_chk( strcmp( (
char *) tag_str,
"e94603dbd8af99ab1e14c602a38a0328" ) == 0 );
2125 FCT_TEST_BGN(gcm_nist_validation_aes_12812810240120_0)
2127 unsigned char key_str[128];
2128 unsigned char src_str[128];
2129 unsigned char dst_str[257];
2130 unsigned char iv_str[128];
2131 unsigned char add_str[128];
2132 unsigned char tag_str[128];
2133 unsigned char output[128];
2134 unsigned char tag_output[16];
2136 unsigned int key_len;
2137 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
2139 memset(key_str, 0x00, 128);
2140 memset(src_str, 0x00, 128);
2141 memset(dst_str, 0x00, 257);
2142 memset(iv_str, 0x00, 128);
2143 memset(add_str, 0x00, 128);
2144 memset(tag_str, 0x00, 128);
2145 memset(output, 0x00, 128);
2146 memset(tag_output, 0x00, 16);
2148 key_len =
unhexify( key_str,
"26db035f2ddd9f5672c6f6af156838d7" );
2149 pt_len =
unhexify( src_str,
"92c315936847649756b0b1bb4a3453e6e6da866f8088d96da44412d9f47a22dda0cd817287ba42163be59a69f73963059139fb3ba44bc5ebfd95b6742546dfb4fe95608dca71911d1347be68179d99c9ebf7ee1d56b17195f8794f3a658d7cad2317ed1d4bc246cd4530e17147e9ecdf41091a411a98bb6047eee8b4f1e4a9ef" );
2150 iv_len =
unhexify( iv_str,
"3686d49bb8c7bd15546d453fdf30e1f3" );
2153 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
2156 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
2157 hexify( dst_str, output, pt_len );
2158 hexify( tag_str, tag_output, tag_len );
2160 fct_chk( strcmp( (
char *) dst_str,
"1ac98e9ccfe63a2f12a011e514f446c4c0e22dd93613b1b9b8f56d148be8a24e3682dfc1cde2b69e72d200b516a99e7466dae8cc678c6117dc14b2364cd2b952aed59722056d7dae4cfdb7d9c4f716aef2aa91a4f161d01c98d92d974247bb972de0557e175177ce34361be40c30ab9ac46240016e5ad350c3b7232c5920e051" ) == 0 );
2161 fct_chk( strcmp( (
char *) tag_str,
"b744316880b0df3d4f90c3ffa44144" ) == 0 );
2167 FCT_TEST_BGN(gcm_nist_validation_aes_12812810240120_1)
2169 unsigned char key_str[128];
2170 unsigned char src_str[128];
2171 unsigned char dst_str[257];
2172 unsigned char iv_str[128];
2173 unsigned char add_str[128];
2174 unsigned char tag_str[128];
2175 unsigned char output[128];
2176 unsigned char tag_output[16];
2178 unsigned int key_len;
2179 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
2181 memset(key_str, 0x00, 128);
2182 memset(src_str, 0x00, 128);
2183 memset(dst_str, 0x00, 257);
2184 memset(iv_str, 0x00, 128);
2185 memset(add_str, 0x00, 128);
2186 memset(tag_str, 0x00, 128);
2187 memset(output, 0x00, 128);
2188 memset(tag_output, 0x00, 16);
2190 key_len =
unhexify( key_str,
"d5c63757197a132cbb33351fd2d81a46" );
2191 pt_len =
unhexify( src_str,
"e970b62ce5f06b15f8448aa2a095c2b3c8adf535e110e7f374411ed51fa19f9c4926045f796b7cd8a942b6a19811b7aae59fce37e50d6ca5a4a57bfb041a5b51c1ee82b54d03be22d9dc2bb9a2e708503b85e2479b0425a033ae825b4f232ca373e280e3cc97cf0d79397a81fb30d3b41cdaa3e788470cde86734e10a58b1e3a" );
2192 iv_len =
unhexify( iv_str,
"a669a4d2f841f9a0b9ede1fb61fee911" );
2195 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
2198 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
2199 hexify( dst_str, output, pt_len );
2200 hexify( tag_str, tag_output, tag_len );
2202 fct_chk( strcmp( (
char *) dst_str,
"522ba7220d0d4bea7ab9ca74ad8fa96ba337f7aa749cd26186499081ba325df6d6b90a81bd1c7adda0cd1ca065894f14a074ec13eff117b2a00042038aea55850056a63adf04f58fcd7269085f5ad1ef17ce7b6c40804127f14747a2ad93ec31fada83663af025a3b90c20a4ae415b1c960094e5fd57db0d93a81edcce64f72d" ) == 0 );
2203 fct_chk( strcmp( (
char *) tag_str,
"7bfce3c8e513a89a5ee1480db9441f" ) == 0 );
2209 FCT_TEST_BGN(gcm_nist_validation_aes_12812810240120_2)
2211 unsigned char key_str[128];
2212 unsigned char src_str[128];
2213 unsigned char dst_str[257];
2214 unsigned char iv_str[128];
2215 unsigned char add_str[128];
2216 unsigned char tag_str[128];
2217 unsigned char output[128];
2218 unsigned char tag_output[16];
2220 unsigned int key_len;
2221 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
2223 memset(key_str, 0x00, 128);
2224 memset(src_str, 0x00, 128);
2225 memset(dst_str, 0x00, 257);
2226 memset(iv_str, 0x00, 128);
2227 memset(add_str, 0x00, 128);
2228 memset(tag_str, 0x00, 128);
2229 memset(output, 0x00, 128);
2230 memset(tag_output, 0x00, 16);
2232 key_len =
unhexify( key_str,
"f380d3bf0d55a1cd56b7e78359eb6c66" );
2233 pt_len =
unhexify( src_str,
"c0e977e91c1c50ee78d4a56c527b2d31a1a14f261aa77e52d910f8f230de4908b5cc6943e28b8c6e7ac61eebe270dcfde48d140ec13792371932e545b6ef4b52d1dfdf54c60ff892b74095a3f4a2b9000acd2cac04666a2305343b8c09f89dcc0c25bbe2a39b14624118df025962edec3dfc58d36fcac531b291ec45b5159e22" );
2234 iv_len =
unhexify( iv_str,
"ba3300f3a01e07dde1708343f01304d4" );
2237 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
2240 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
2241 hexify( dst_str, output, pt_len );
2242 hexify( tag_str, tag_output, tag_len );
2244 fct_chk( strcmp( (
char *) dst_str,
"752f09b518616a91a802cf181532c7ec65b54c59c1bab3860f0ad19971a9e5bc8843524c5ffac827067b462ebb328e2eff4dd931728de882055129997204e78717becd66e1f6c9e8a273c4251896343604ac289eb1880207a8ea012626e18e69ad7573ef73071b8e2fb22c75c7fc7bf22382d55a5d709c15e4e8ff14e2bf81e4" ) == 0 );
2245 fct_chk( strcmp( (
char *) tag_str,
"fbf8818aee5c71ebfd19b0bcd96a7a" ) == 0 );
2251 FCT_TEST_BGN(gcm_nist_validation_aes_12812810240112_0)
2253 unsigned char key_str[128];
2254 unsigned char src_str[128];
2255 unsigned char dst_str[257];
2256 unsigned char iv_str[128];
2257 unsigned char add_str[128];
2258 unsigned char tag_str[128];
2259 unsigned char output[128];
2260 unsigned char tag_output[16];
2262 unsigned int key_len;
2263 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
2265 memset(key_str, 0x00, 128);
2266 memset(src_str, 0x00, 128);
2267 memset(dst_str, 0x00, 257);
2268 memset(iv_str, 0x00, 128);
2269 memset(add_str, 0x00, 128);
2270 memset(tag_str, 0x00, 128);
2271 memset(output, 0x00, 128);
2272 memset(tag_output, 0x00, 16);
2274 key_len =
unhexify( key_str,
"47c807cd1cf181040a4e3b1d94659db8" );
2275 pt_len =
unhexify( src_str,
"c4a52c1f1f0d32c21fb85fba21d1b358b332efa066c7893c566b2e859efdde99fc67bb6167cdb0485a8ed53dd1068d90bc990f360b044039791be6048ba0ee4ce1090c9fce602af59d69069f5bff8b6219aaaed5a9b1bfc8c5b7250c5a6cfe86586fa8064124d551da38d429a17696eb1a7a0341c363f010eafd26683eecdf82" );
2276 iv_len =
unhexify( iv_str,
"9963a3fb156beacd6dd88c15e83929df" );
2279 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
2282 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
2283 hexify( dst_str, output, pt_len );
2284 hexify( tag_str, tag_output, tag_len );
2286 fct_chk( strcmp( (
char *) dst_str,
"e784ab006de8a52de1d04bc2c680d847c5decdd777cb2475ad4ab1dc529882d9e51cff5451b14ea5ff9a9bab5c5474e8a331d79564acdb2ac8159e0f46e9019bf80650c481fdaf1680cadcb8c5de9f924760b376ce5736cc4970cb8715b5999f577436283a4c21469306840af36d1e069616157d1b9ce75de3adb13d201cdf1b" ) == 0 );
2287 fct_chk( strcmp( (
char *) tag_str,
"51e8ce23f415a39be5991a7a925b" ) == 0 );
2293 FCT_TEST_BGN(gcm_nist_validation_aes_12812810240112_1)
2295 unsigned char key_str[128];
2296 unsigned char src_str[128];
2297 unsigned char dst_str[257];
2298 unsigned char iv_str[128];
2299 unsigned char add_str[128];
2300 unsigned char tag_str[128];
2301 unsigned char output[128];
2302 unsigned char tag_output[16];
2304 unsigned int key_len;
2305 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
2307 memset(key_str, 0x00, 128);
2308 memset(src_str, 0x00, 128);
2309 memset(dst_str, 0x00, 257);
2310 memset(iv_str, 0x00, 128);
2311 memset(add_str, 0x00, 128);
2312 memset(tag_str, 0x00, 128);
2313 memset(output, 0x00, 128);
2314 memset(tag_output, 0x00, 16);
2316 key_len =
unhexify( key_str,
"a0b033d14fe902aa0892b0e87f966c41" );
2317 pt_len =
unhexify( src_str,
"1cc751d890cd102486d81c618c23fa335067ac324ef11f7eddc937853db6e16d0f73727725a5a5bd580705416ecd97e368464ed0aea923ffb71c23c37f9cf9c8bd81cdbdc3d0ac34a875db3167ec1d519004d4fa4bba041af67af1ed3d4e09c32b3e8e10abd91f46836cec74b1f9c5b06c05f3b18caa78e7ff185db212b52ce0" );
2318 iv_len =
unhexify( iv_str,
"ad4dee18e6c19433ad52021164f8afb7" );
2321 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
2324 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
2325 hexify( dst_str, output, pt_len );
2326 hexify( tag_str, tag_output, tag_len );
2328 fct_chk( strcmp( (
char *) dst_str,
"a30044582dacf57332b04402e993831df0a4c1364a83c9bce7353979fb444cd1b3fe747e2c933457ff21f39e943a38a85457bfe99dc09af886734d6e4218fc65138055ad8eb5d3044f4eed658e312b6165199e682ffa226558dc4b516f8d519f149bb5a40d2bb7d59ece9e5fd05358c89e635792ad20c73c174719f9b28c7358" ) == 0 );
2329 fct_chk( strcmp( (
char *) tag_str,
"6a18a4f880ce9e6796e1086ed05b" ) == 0 );
2335 FCT_TEST_BGN(gcm_nist_validation_aes_12812810240112_2)
2337 unsigned char key_str[128];
2338 unsigned char src_str[128];
2339 unsigned char dst_str[257];
2340 unsigned char iv_str[128];
2341 unsigned char add_str[128];
2342 unsigned char tag_str[128];
2343 unsigned char output[128];
2344 unsigned char tag_output[16];
2346 unsigned int key_len;
2347 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
2349 memset(key_str, 0x00, 128);
2350 memset(src_str, 0x00, 128);
2351 memset(dst_str, 0x00, 257);
2352 memset(iv_str, 0x00, 128);
2353 memset(add_str, 0x00, 128);
2354 memset(tag_str, 0x00, 128);
2355 memset(output, 0x00, 128);
2356 memset(tag_output, 0x00, 16);
2358 key_len =
unhexify( key_str,
"c4030ca84f132bfabaf660e036f56377" );
2359 pt_len =
unhexify( src_str,
"a8fe98e2b4880d12c99c9d5193b3537b3fbc5165cc1327395174d989be5741f867332271cdc52ddb295ddbeba33698073054c6d2416fafaeb0a76aad870a6fb6097a29fba99f858d49418572c8e4dc0d074ca8af7727c773c8617495b1195d6b2687a2e37fad116dd721b60bcb5471d548c6dafe3ecdcf0c962e4659a61f4df3" );
2360 iv_len =
unhexify( iv_str,
"975df9c932a46d54d677af8a6c9c9cc3" );
2363 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
2366 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
2367 hexify( dst_str, output, pt_len );
2368 hexify( tag_str, tag_output, tag_len );
2370 fct_chk( strcmp( (
char *) dst_str,
"86b20fecebc4cf88a6a382d693117cd2a3c9eab747bf5df5f1d35e341d204d8fea6694b92552e347da676bc8d3353984e96472a509f5208ce100a2a9232478417947f85f10993c9d6939c8138bd6151aef8e2038536e8ba1ba84442e27586c1b642f9505455c738e9fd2c1b2527d1ecd3a2f6ed6e3869000ef68417ec99ff7a2" ) == 0 );
2371 fct_chk( strcmp( (
char *) tag_str,
"3516909124c0c1f9c30453c90052" ) == 0 );
2377 FCT_TEST_BGN(gcm_nist_validation_aes_12812810240104_0)
2379 unsigned char key_str[128];
2380 unsigned char src_str[128];
2381 unsigned char dst_str[257];
2382 unsigned char iv_str[128];
2383 unsigned char add_str[128];
2384 unsigned char tag_str[128];
2385 unsigned char output[128];
2386 unsigned char tag_output[16];
2388 unsigned int key_len;
2389 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
2391 memset(key_str, 0x00, 128);
2392 memset(src_str, 0x00, 128);
2393 memset(dst_str, 0x00, 257);
2394 memset(iv_str, 0x00, 128);
2395 memset(add_str, 0x00, 128);
2396 memset(tag_str, 0x00, 128);
2397 memset(output, 0x00, 128);
2398 memset(tag_output, 0x00, 16);
2400 key_len =
unhexify( key_str,
"6e210de363f170a7ccb1b9cec8d34737" );
2401 pt_len =
unhexify( src_str,
"89853fa002985a45651f2a7db2b45b7e7a7d33ce6c438ec4533c7fa257e1a384130369a68184a807fd0d92a70d91d7ddc56e5c5172c872257230d7aeb9293d785b1b8835dcde753798caff4abcd8bbc5378cd505dcf904aa69902e4f38699be972099adffc8778bd844a9a03e6b58a721a73324d956f20f2ffd00d3491f72f42" );
2402 iv_len =
unhexify( iv_str,
"39fe20b051ba21319a745349d908c4bf" );
2405 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
2408 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
2409 hexify( dst_str, output, pt_len );
2410 hexify( tag_str, tag_output, tag_len );
2412 fct_chk( strcmp( (
char *) dst_str,
"ac9d74f8f405fd482287a4a7fa359caca095c0f1b46744f19c3c11e13b0c605b9857c8cc5a1754b95bcc658416f463bf8764f373205941885948259916eaabd964f2d6c2d784f928dc5eefe331f6c04b4862d4c8e966530de6bf533a10818de852de3af7f521b167cb4eb7141ba8ae8a17be1eb714fd26a474bbbbe870a659dc" ) == 0 );
2413 fct_chk( strcmp( (
char *) tag_str,
"7a2dfc88ad34d889f5e344ee0e" ) == 0 );
2419 FCT_TEST_BGN(gcm_nist_validation_aes_12812810240104_1)
2421 unsigned char key_str[128];
2422 unsigned char src_str[128];
2423 unsigned char dst_str[257];
2424 unsigned char iv_str[128];
2425 unsigned char add_str[128];
2426 unsigned char tag_str[128];
2427 unsigned char output[128];
2428 unsigned char tag_output[16];
2430 unsigned int key_len;
2431 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
2433 memset(key_str, 0x00, 128);
2434 memset(src_str, 0x00, 128);
2435 memset(dst_str, 0x00, 257);
2436 memset(iv_str, 0x00, 128);
2437 memset(add_str, 0x00, 128);
2438 memset(tag_str, 0x00, 128);
2439 memset(output, 0x00, 128);
2440 memset(tag_output, 0x00, 16);
2442 key_len =
unhexify( key_str,
"6bbfeda23ea644fb37666b05dc47f590" );
2443 pt_len =
unhexify( src_str,
"a85ec4c2c160deda7e3de0ae449eea6ed1d24e2c8f3d5151f2ac0fd869f5a763981733b68f46c5197d76c26cce7ddc8afc6cdf4536d771cf3e9cef0098e270c5e1ff72cb0ad7f84abf44b726e0eae052d0c1553afc67c7289a43851a4d04c2856cc46b4039380436465a3b19deb56e41b859aecaf22b90578a23288d5f7d9b0e" );
2444 iv_len =
unhexify( iv_str,
"9d154f3cc2c5b0bdd77e86e351220960" );
2447 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
2450 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
2451 hexify( dst_str, output, pt_len );
2452 hexify( tag_str, tag_output, tag_len );
2454 fct_chk( strcmp( (
char *) dst_str,
"dbe575ea04b58429e68c733d99d7fb3a57e5604d6fc3baf17e0c6f981d78c070144702861316f892023515f20b697a8f3a40d821162dc9255d4775e7578285acf2cca67e902c060f80eaae29b9c011b6c110371409d914782e1e4115dc59439a2823507330852f10436b121538f22a3b619075610f1da87b6035138d78c75a79" ) == 0 );
2455 fct_chk( strcmp( (
char *) tag_str,
"8698763c121bf3c2262ba87a40" ) == 0 );
2461 FCT_TEST_BGN(gcm_nist_validation_aes_12812810240104_2)
2463 unsigned char key_str[128];
2464 unsigned char src_str[128];
2465 unsigned char dst_str[257];
2466 unsigned char iv_str[128];
2467 unsigned char add_str[128];
2468 unsigned char tag_str[128];
2469 unsigned char output[128];
2470 unsigned char tag_output[16];
2472 unsigned int key_len;
2473 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
2475 memset(key_str, 0x00, 128);
2476 memset(src_str, 0x00, 128);
2477 memset(dst_str, 0x00, 257);
2478 memset(iv_str, 0x00, 128);
2479 memset(add_str, 0x00, 128);
2480 memset(tag_str, 0x00, 128);
2481 memset(output, 0x00, 128);
2482 memset(tag_output, 0x00, 16);
2484 key_len =
unhexify( key_str,
"ce1407f666f2aa142ed4ef50eb2a4f64" );
2485 pt_len =
unhexify( src_str,
"585fc1e86809247826f87424741f6ce2ce7c7228fb960803be643acd28332b2036715e2b639fe3f8de7e43e88bd8e65a6e2259391360aaf534ae7566cbd2b3961c874d08636fca117d4123b3063931d7a161d00220014339ae9f447f31b8a2d7d5466fb1ff2508397b5fa71f9b4cd278c541442a052ae4367889deaed4095127" );
2486 iv_len =
unhexify( iv_str,
"1225a2662d6652e3d4e9c5556bc54af4" );
2489 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
2492 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
2493 hexify( dst_str, output, pt_len );
2494 hexify( tag_str, tag_output, tag_len );
2496 fct_chk( strcmp( (
char *) dst_str,
"8bc13cc1cb52fbd15390cb5663ce3111c3fb943f8ed3c4f07b7aeb723649fccb90895999ec5dbdb69712d8e34ae3f325fefa49ecc7c074de8bb2ea01fa0554d7adbf49498f2f6e78aa0cd24620bab0f11bf9b2c73ad0eff780eb6c03ee9c4538952af754c566aba7c717d1ee6ac2f5ffe21dab9afd649cd65313ee686596fef0" ) == 0 );
2497 fct_chk( strcmp( (
char *) tag_str,
"9a1f1137f9ed217815551657bf" ) == 0 );
2503 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024096_0)
2505 unsigned char key_str[128];
2506 unsigned char src_str[128];
2507 unsigned char dst_str[257];
2508 unsigned char iv_str[128];
2509 unsigned char add_str[128];
2510 unsigned char tag_str[128];
2511 unsigned char output[128];
2512 unsigned char tag_output[16];
2514 unsigned int key_len;
2515 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
2517 memset(key_str, 0x00, 128);
2518 memset(src_str, 0x00, 128);
2519 memset(dst_str, 0x00, 257);
2520 memset(iv_str, 0x00, 128);
2521 memset(add_str, 0x00, 128);
2522 memset(tag_str, 0x00, 128);
2523 memset(output, 0x00, 128);
2524 memset(tag_output, 0x00, 16);
2526 key_len =
unhexify( key_str,
"5ecea1da76d6df90fd0d4077ef631b17" );
2527 pt_len =
unhexify( src_str,
"d87e9a0c6a9796d60ed78924f7a8c408d5b9fab03fc76790e74029f13358fcae0035bd971a400845f508c2c2cdc3949be498193afcca6d75f8d21521ac673bd41a936a133fb5ed61098f3cb89df5234c5ca5ad3dbbe488243d282412844df0d816c430de3280ab0680a2a5629dce53f94e8eb60b790f438a70fafb8a3ed78a1b" );
2528 iv_len =
unhexify( iv_str,
"7d7ae2ed1cfc972f60122dec79ff06fc" );
2531 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
2534 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
2535 hexify( dst_str, output, pt_len );
2536 hexify( tag_str, tag_output, tag_len );
2538 fct_chk( strcmp( (
char *) dst_str,
"1eb19da71857854420c0b171f1f0714972fe7090db125d509aff6d92e5192353187f0906e3e8187f73709d1a60e074af01e83d1306d582a82edbdbebc797a733d72e2d4208675ef98ea4eaaddae2292e336fcd3fa85cdc577f4b8d3f324f0c5cf3919701208d6978f83466a02ae6cc368f57e18b9ee16e04cf6024b0c7fbad33" ) == 0 );
2539 fct_chk( strcmp( (
char *) tag_str,
"f74b3635ec3d755dc6defbd2" ) == 0 );
2545 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024096_1)
2547 unsigned char key_str[128];
2548 unsigned char src_str[128];
2549 unsigned char dst_str[257];
2550 unsigned char iv_str[128];
2551 unsigned char add_str[128];
2552 unsigned char tag_str[128];
2553 unsigned char output[128];
2554 unsigned char tag_output[16];
2556 unsigned int key_len;
2557 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
2559 memset(key_str, 0x00, 128);
2560 memset(src_str, 0x00, 128);
2561 memset(dst_str, 0x00, 257);
2562 memset(iv_str, 0x00, 128);
2563 memset(add_str, 0x00, 128);
2564 memset(tag_str, 0x00, 128);
2565 memset(output, 0x00, 128);
2566 memset(tag_output, 0x00, 16);
2568 key_len =
unhexify( key_str,
"6d6de51c30692d7863482cbbaa5ccbc3" );
2569 pt_len =
unhexify( src_str,
"9f242c230ae44ad91cb0f4fe259684883968f3ca4f57a3e0cc4b03ab063a4eacdf63f9e7900a98073e345d1b497b985887e1ffb5fe7d88cefa57dd41076f2da55ce7ab0899bdc5799b23773f8f7a4dfbf1861cf4de377281fae9763dd4ea8dc7c0d632b874c86ac8e4c90339ec3f14cc51bf9241660ab828605cc602984a0f10" );
2570 iv_len =
unhexify( iv_str,
"c6c0fa3da95255af5f15706274fa54ee" );
2573 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
2576 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
2577 hexify( dst_str, output, pt_len );
2578 hexify( tag_str, tag_output, tag_len );
2580 fct_chk( strcmp( (
char *) dst_str,
"55e75daa3df3b13a33f784d5adacb2ff6861cacb297d5eaa61693985b6a0f82e9e0b3a28d10648191c6e62d6260d8a8bb471e6b37aca00dafdb2fb17454660f90c2849a9ad1733d7bc227d962b3cd86ab32d5b031eb2e717e4551cb23d448e06bac7b2a4cadb0886fde472d45de39eca2df474ba79eb58504318207325c81813" ) == 0 );
2581 fct_chk( strcmp( (
char *) tag_str,
"8eb9086a53c41c6a67bad490" ) == 0 );
2587 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024096_2)
2589 unsigned char key_str[128];
2590 unsigned char src_str[128];
2591 unsigned char dst_str[257];
2592 unsigned char iv_str[128];
2593 unsigned char add_str[128];
2594 unsigned char tag_str[128];
2595 unsigned char output[128];
2596 unsigned char tag_output[16];
2598 unsigned int key_len;
2599 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
2601 memset(key_str, 0x00, 128);
2602 memset(src_str, 0x00, 128);
2603 memset(dst_str, 0x00, 257);
2604 memset(iv_str, 0x00, 128);
2605 memset(add_str, 0x00, 128);
2606 memset(tag_str, 0x00, 128);
2607 memset(output, 0x00, 128);
2608 memset(tag_output, 0x00, 16);
2610 key_len =
unhexify( key_str,
"76b7f2307e9cf9221c8f3ff7105327f9" );
2611 pt_len =
unhexify( src_str,
"bc076bfd1ff7a9fb043a371e5af7112bb0c9c442be44ca648567937bcc091c127f02ab70b81ce51b2f7a38954dca3d94b3716c6114f0ba349d6f87f5efd84506ed289dfe8a1277a5d1821c56f9f297cb647cdf36d308e6ad41c55d68a5baaa520d11d18f5ddea061c4b1b1ec162b2d5bcf7c7716235dd31eda3dc3094cb15b26" );
2612 iv_len =
unhexify( iv_str,
"3cdaf7932a953999a6ce5c3cbd0df7e8" );
2615 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
2618 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
2619 hexify( dst_str, output, pt_len );
2620 hexify( tag_str, tag_output, tag_len );
2622 fct_chk( strcmp( (
char *) dst_str,
"88c70d3cf5817f9fa669aadf731c0eb03c3d8e552f2dc763001ac94837353ab75b0c6553bb8ba2f83ef0556f73dae78f76bc22de9a9167d7be8e31da6e68b0f0bdf5566059901726b6f2890ac8745ed14f8898a937e7d3e4454246185124f65cebd278f8c11fb0de22da7248f33ef6bb82cb1c08259970714de39ea4114f85af" ) == 0 );
2623 fct_chk( strcmp( (
char *) tag_str,
"6006fe48f74f30bc467c7c50" ) == 0 );
2629 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024064_0)
2631 unsigned char key_str[128];
2632 unsigned char src_str[128];
2633 unsigned char dst_str[257];
2634 unsigned char iv_str[128];
2635 unsigned char add_str[128];
2636 unsigned char tag_str[128];
2637 unsigned char output[128];
2638 unsigned char tag_output[16];
2640 unsigned int key_len;
2641 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
2643 memset(key_str, 0x00, 128);
2644 memset(src_str, 0x00, 128);
2645 memset(dst_str, 0x00, 257);
2646 memset(iv_str, 0x00, 128);
2647 memset(add_str, 0x00, 128);
2648 memset(tag_str, 0x00, 128);
2649 memset(output, 0x00, 128);
2650 memset(tag_output, 0x00, 16);
2652 key_len =
unhexify( key_str,
"bac83044f9d8fefcd24766644317c533" );
2653 pt_len =
unhexify( src_str,
"a72daba9de96bc03b5cd7449c2e97c858385475127b9614e37c197225d5789535b69f9123993c89a4815c1b4393bfe23754ddc6c01fc44cd2009b5f886988dc70a8cebb12664fa4a692db89acb91de6a9eda48542b04459149f59537e703e3e89f6d683ebb797fce3874c819d08676d926bf2da2f83a22449b89e204b5ece58a" );
2654 iv_len =
unhexify( iv_str,
"1307cd0e6f9ba5570e9781fca9a4f577" );
2657 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
2660 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
2661 hexify( dst_str, output, pt_len );
2662 hexify( tag_str, tag_output, tag_len );
2664 fct_chk( strcmp( (
char *) dst_str,
"479cdb5f65b9baff52a96c75790e3b7e239125f94525068cd1d73a1b8475080f33451ec83789d7189f5ad6a9130e7aa4df10d71ecabb5ccd980d84d0fbfb342506edcf7298ccb310c0e297dd443ded77cf1d96fc49055534439f1af583217a5de36e4df036a3b640d0212658399b629193080d38aff0d4e8aecd6c8d8f48b44f" ) == 0 );
2665 fct_chk( strcmp( (
char *) tag_str,
"ca192f8153aa5fb7" ) == 0 );
2671 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024064_1)
2673 unsigned char key_str[128];
2674 unsigned char src_str[128];
2675 unsigned char dst_str[257];
2676 unsigned char iv_str[128];
2677 unsigned char add_str[128];
2678 unsigned char tag_str[128];
2679 unsigned char output[128];
2680 unsigned char tag_output[16];
2682 unsigned int key_len;
2683 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
2685 memset(key_str, 0x00, 128);
2686 memset(src_str, 0x00, 128);
2687 memset(dst_str, 0x00, 257);
2688 memset(iv_str, 0x00, 128);
2689 memset(add_str, 0x00, 128);
2690 memset(tag_str, 0x00, 128);
2691 memset(output, 0x00, 128);
2692 memset(tag_output, 0x00, 16);
2694 key_len =
unhexify( key_str,
"627776b20ce9bb070a88f1a13d484550" );
2695 pt_len =
unhexify( src_str,
"1da4a24fb12538a724f62b277410d50e918bd6224d4a61df6fb7734300643198debea71686e018bcd8455c2041265d11f7f5dcec08c31fc94784404423bcf1dc8e615227d2b0840be123a1efb8201aaa15254a14a2d76a6ddf536701cb3379d3c6b1b0d689e5896186c88d4a2c53a70bb422ecc8e0a5c3b9f3d89ce40676e4f9" );
2696 iv_len =
unhexify( iv_str,
"57f3f9388ea1e2c1c73f60b7d711f6ea" );
2699 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
2702 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
2703 hexify( dst_str, output, pt_len );
2704 hexify( tag_str, tag_output, tag_len );
2706 fct_chk( strcmp( (
char *) dst_str,
"f8a06eea528dad12b11ead51763aa68ca062f9f6c1c1f740fb910974f7ad9d2ac87c16fb74d07c3bd3b45f2e26af417e00416bdfee7ed0b69274ead70a52201c1fc05937438855f5564ec3e824daa0c59da1aa6f6cb8a44ab5f73d661b219766b80656cd3ff1e2d6909c6ce91fb14931af8580e859e9d7642678c1c35d9435d4" ) == 0 );
2707 fct_chk( strcmp( (
char *) tag_str,
"05b432826dd9b044" ) == 0 );
2713 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024064_2)
2715 unsigned char key_str[128];
2716 unsigned char src_str[128];
2717 unsigned char dst_str[257];
2718 unsigned char iv_str[128];
2719 unsigned char add_str[128];
2720 unsigned char tag_str[128];
2721 unsigned char output[128];
2722 unsigned char tag_output[16];
2724 unsigned int key_len;
2725 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
2727 memset(key_str, 0x00, 128);
2728 memset(src_str, 0x00, 128);
2729 memset(dst_str, 0x00, 257);
2730 memset(iv_str, 0x00, 128);
2731 memset(add_str, 0x00, 128);
2732 memset(tag_str, 0x00, 128);
2733 memset(output, 0x00, 128);
2734 memset(tag_output, 0x00, 16);
2736 key_len =
unhexify( key_str,
"8954e2c0a7ea80fe3c8e75246f75bdbd" );
2737 pt_len =
unhexify( src_str,
"d77e11a837eff95c77dd56e9cd97f0ffcee0adcca4a2203d23ce74c804a75cef1bdd69b16228472a2395118dfce636b8916372d6a24106f9a168055c6d4b44264674ce3905b3b30f5108ebf939f3fa8f55c12e001b457b73669acd23c1dcabea05aaba34e2d0f66a4d1c9162764228ebc4d3974fdb38b1a61a207788c5deb878" );
2738 iv_len =
unhexify( iv_str,
"2b5f9420b3c583403d92d76a2dd681c3" );
2741 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
2744 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
2745 hexify( dst_str, output, pt_len );
2746 hexify( tag_str, tag_output, tag_len );
2748 fct_chk( strcmp( (
char *) dst_str,
"35b8a04d6557426def9915eb798312a7572e040a65990ce15a8a6e5acd6b419c3fa26828b6efd2f1f50f91f672fed0feaa09a6ca6b4844fac5d3db571db8bbce250086b8c89aa6fa07bdca8dd0e1fe76e0f5a821145bafa11f3a9b0b003ad09de73ad71849ac58f7fd50851aa0fbbed17d222a0a5607f9f75dd3b0d3fa45a135" ) == 0 );
2749 fct_chk( strcmp( (
char *) tag_str,
"96511adc097838e6" ) == 0 );
2755 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024032_0)
2757 unsigned char key_str[128];
2758 unsigned char src_str[128];
2759 unsigned char dst_str[257];
2760 unsigned char iv_str[128];
2761 unsigned char add_str[128];
2762 unsigned char tag_str[128];
2763 unsigned char output[128];
2764 unsigned char tag_output[16];
2766 unsigned int key_len;
2767 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
2769 memset(key_str, 0x00, 128);
2770 memset(src_str, 0x00, 128);
2771 memset(dst_str, 0x00, 257);
2772 memset(iv_str, 0x00, 128);
2773 memset(add_str, 0x00, 128);
2774 memset(tag_str, 0x00, 128);
2775 memset(output, 0x00, 128);
2776 memset(tag_output, 0x00, 16);
2778 key_len =
unhexify( key_str,
"7d0f9109dd846c47527a429b98d53301" );
2779 pt_len =
unhexify( src_str,
"506efc29c0f02910cc9f5b2e677bb811e366b9e4910c00b36e48e5d5b42718f3b6d1a08a2de9c6d4ce44fce00fb7e10cf89396a88bdb38dcb0dba69449195e19b72ff989666b366f03166dd47cf4c7bf72dba3048fa34329ba86bbbf32934a0992d72c463fffee94653379d23b8bb4dff03fd86cfc971a2f7cdb90589bbbcb28" );
2780 iv_len =
unhexify( iv_str,
"f58a5bb77f4488ee60dd85ca66fad59a" );
2783 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
2786 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
2787 hexify( dst_str, output, pt_len );
2788 hexify( tag_str, tag_output, tag_len );
2790 fct_chk( strcmp( (
char *) dst_str,
"2e2760c649f17c1b4ba92b1fc9b78d149a9fc831f0d0fe4125cbfc70d52047f32a7f25c716533d199af77ed05e259cc31d551187dbc2e7d9e853d5f65ab8a48840f22391072cbe29e8529cd11740f27d11513c68ad41f4acc6fb363428930fe3d7c0e698387594156e6cc789d432817c788480f3b31326fa5f034e51d2af8c44" ) == 0 );
2791 fct_chk( strcmp( (
char *) tag_str,
"6ced7aac" ) == 0 );
2797 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024032_1)
2799 unsigned char key_str[128];
2800 unsigned char src_str[128];
2801 unsigned char dst_str[257];
2802 unsigned char iv_str[128];
2803 unsigned char add_str[128];
2804 unsigned char tag_str[128];
2805 unsigned char output[128];
2806 unsigned char tag_output[16];
2808 unsigned int key_len;
2809 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
2811 memset(key_str, 0x00, 128);
2812 memset(src_str, 0x00, 128);
2813 memset(dst_str, 0x00, 257);
2814 memset(iv_str, 0x00, 128);
2815 memset(add_str, 0x00, 128);
2816 memset(tag_str, 0x00, 128);
2817 memset(output, 0x00, 128);
2818 memset(tag_output, 0x00, 16);
2820 key_len =
unhexify( key_str,
"034c805b5e83b59ad9d6a65ade3940a9" );
2821 pt_len =
unhexify( src_str,
"efbec09f8189404f3dbe569d3bab9b8bfabde419fc80abb3b21a07a5fe42326d23d022406981abd558e94f4debf38f2c34c3c315cb1ae1d5f2d48eae1335b50af9dd05b60aee724edb7d4e12703d5ec8873c55e3a3d6d8d5e4daddd5240fa3ec2d1f32442ce32cde66dfac77ed213207dc4838ca9782beb9a98d6dc52838831b" );
2822 iv_len =
unhexify( iv_str,
"b0c19448b9f2a818fd21ba6489c34fb0" );
2825 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
2828 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
2829 hexify( dst_str, output, pt_len );
2830 hexify( tag_str, tag_output, tag_len );
2832 fct_chk( strcmp( (
char *) dst_str,
"a45ba5836011fc65882ba8b1d6bf7b08b17f26b9cd971eece86fbb6aac5cdfd42790a7c7390099b10dee98cb8e4bd8b3ccb3ca5d0b9d02f759431de640ad7f5dffb919a8aaa74695f94df8eff4c7cb242d643c55d6f9c8323006f3be595aa8cdbfb0d9260ad2473b244ca65a5df53d2edd69f47df608e22a68b05623150b5665" ) == 0 );
2833 fct_chk( strcmp( (
char *) tag_str,
"43e20e94" ) == 0 );
2839 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024032_2)
2841 unsigned char key_str[128];
2842 unsigned char src_str[128];
2843 unsigned char dst_str[257];
2844 unsigned char iv_str[128];
2845 unsigned char add_str[128];
2846 unsigned char tag_str[128];
2847 unsigned char output[128];
2848 unsigned char tag_output[16];
2850 unsigned int key_len;
2851 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
2853 memset(key_str, 0x00, 128);
2854 memset(src_str, 0x00, 128);
2855 memset(dst_str, 0x00, 257);
2856 memset(iv_str, 0x00, 128);
2857 memset(add_str, 0x00, 128);
2858 memset(tag_str, 0x00, 128);
2859 memset(output, 0x00, 128);
2860 memset(tag_output, 0x00, 16);
2862 key_len =
unhexify( key_str,
"f3bad89e79691ae72f53964b928a09f3" );
2863 pt_len =
unhexify( src_str,
"01913e4ef10226d80c5026ba9243fa41edaf5f5c232d17c034db4c0c8369f48d89a1d58b3b2dda496506c30457365bdd76710173a97022d647276a4a8ac73f0e9e211cfd7d64849409ef61cce618675eaffe88b3f14496e5eb013c0f8a122dbf16f2c675edf7f813abe9c56101e570e208e651fd956e710dc09f13ebd22b81ab" );
2864 iv_len =
unhexify( iv_str,
"aabf77116a75046e7ecc51a468aa21fe" );
2867 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
2870 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
2871 hexify( dst_str, output, pt_len );
2872 hexify( tag_str, tag_output, tag_len );
2874 fct_chk( strcmp( (
char *) dst_str,
"f7453670604ff6287ebdaa35705cf7553410452fdb1129a7fcae92565a4217b0d2927da21f3d1b2bd5ae9b7d4dcc1698fb97fc8b6622ddc04299fdebaba7f7090917776b86b2af4031fe04fa1b62987fa9ec78fbbc2badc3a31449be3a858ac7f277d331b77c0e9b12240bd98488a131dbd275b6a0ce9830ff7301d51921ba85" ) == 0 );
2875 fct_chk( strcmp( (
char *) tag_str,
"15852690" ) == 0 );
2881 FCT_TEST_BGN(gcm_nist_validation_aes_12812810241024128_0)
2883 unsigned char key_str[128];
2884 unsigned char src_str[128];
2885 unsigned char dst_str[257];
2886 unsigned char iv_str[128];
2887 unsigned char add_str[128];
2888 unsigned char tag_str[128];
2889 unsigned char output[128];
2890 unsigned char tag_output[16];
2892 unsigned int key_len;
2893 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
2895 memset(key_str, 0x00, 128);
2896 memset(src_str, 0x00, 128);
2897 memset(dst_str, 0x00, 257);
2898 memset(iv_str, 0x00, 128);
2899 memset(add_str, 0x00, 128);
2900 memset(tag_str, 0x00, 128);
2901 memset(output, 0x00, 128);
2902 memset(tag_output, 0x00, 16);
2904 key_len =
unhexify( key_str,
"839664bb6c352e64714254e4d590fb28" );
2905 pt_len =
unhexify( src_str,
"752c7e877663d10f90e5c96cce2686f4aa846a12272a0aba399e860f2838827c7c718365e704084fbe1e68adb27ad18e993c800da2e05bcaf44b651944bde766e7b3ac22f068b525dd0b80b490b3498d7b7199f60faf69fee338087f7a752fb52147034de8922a3ed73b512d9c741f7bac1206e9b0871a970271f50688038ab7" );
2906 iv_len =
unhexify( iv_str,
"5482db71d85039076a541aaba287e7f7" );
2907 add_len =
unhexify( add_str,
"4d75a10ff29414c74d945da046ed45dc02783da28c1ee58b59cbc6f953dd09788b6d513f7366be523e6c2d877c36795942690ce9543050f7ab6f6f647d262360994f7f892e9f59941a8d440619fda8aa20350be14c13d7924c0451c1489da9a0cafd759c3798776245170ad88dbceb3cacde6ba122b656601ccb726e99d54115" );
2909 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
2912 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
2913 hexify( dst_str, output, pt_len );
2914 hexify( tag_str, tag_output, tag_len );
2916 fct_chk( strcmp( (
char *) dst_str,
"c7ee1c32f8bc0181b53ce57f116e863481db6f21666ba3fa19bd99ce83eee2d573388a0459dfede92e701982a9cc93d697f313062dbea9866526f1d720a128ab97452a35f458637116f7d9294ffc76079539061dfeff9642a049db53d89f2480a6d74a05ff25d46d7048cc16d43f7888b5aff9957b5dc828973afccff63bd42a" ) == 0 );
2917 fct_chk( strcmp( (
char *) tag_str,
"63c8aa731a60076725cd5f9973eeadb5" ) == 0 );
2923 FCT_TEST_BGN(gcm_nist_validation_aes_12812810241024128_1)
2925 unsigned char key_str[128];
2926 unsigned char src_str[128];
2927 unsigned char dst_str[257];
2928 unsigned char iv_str[128];
2929 unsigned char add_str[128];
2930 unsigned char tag_str[128];
2931 unsigned char output[128];
2932 unsigned char tag_output[16];
2934 unsigned int key_len;
2935 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
2937 memset(key_str, 0x00, 128);
2938 memset(src_str, 0x00, 128);
2939 memset(dst_str, 0x00, 257);
2940 memset(iv_str, 0x00, 128);
2941 memset(add_str, 0x00, 128);
2942 memset(tag_str, 0x00, 128);
2943 memset(output, 0x00, 128);
2944 memset(tag_output, 0x00, 16);
2946 key_len =
unhexify( key_str,
"5f2af1b14ca9598c341785189ac6e085" );
2947 pt_len =
unhexify( src_str,
"790bc975865f44e3a1534e978e90b064530321a2280a9172dc7f3451773b01d4a56c1857ad0474350b945e4f34cd677c22ca89445a564b47a8526d31d18160c35d2be1e89428c3593b53877cea0d88d85b2a7ed0552e39a0e96e35ae0384a5d7868243045dcbfc245a3eb3ff99f4dd86c0a314f68d1971e773caf9c168b0aa0b" );
2948 iv_len =
unhexify( iv_str,
"bbf23307ad2718398b2791c16f69cc45" );
2949 add_len =
unhexify( add_str,
"26b160695de2ba40afca6bd93f1c2895f92ca9108847a8ab71ad35cac9f9c9f537ef196c5d41b10e3777c9a02ad3c73cd299a85f60e5d02794c3be2643c3e63f105b94d32cb4e3eb131d3f487fa5d1de1a4ad80cad742704ed5c19a7cf4e55531fa0f4e40a4e3808fb4875b4b5feaf576c46a03013625f04331806149e0f6057" );
2951 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
2954 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
2955 hexify( dst_str, output, pt_len );
2956 hexify( tag_str, tag_output, tag_len );
2958 fct_chk( strcmp( (
char *) dst_str,
"52c373a15e1bf86edfb4242049f186029b458e156da500ce7a8fc7a5fd8a526191ac33e6b4b79b36fda160570e2b67d0402a09b03f46c9b17317a04a4b9fbe2ddcfc128bd0e01b0be3fe23e51b69c28bcf8725b8e4208aefb1cf34fe91a2bb6d5bef7b936bec624a8f38c9cd4ac51a0187635138d55da1fb1791adfbf8459d3f" ) == 0 );
2959 fct_chk( strcmp( (
char *) tag_str,
"db3bbdf556c9c1be9b750a208fe55c37" ) == 0 );
2965 FCT_TEST_BGN(gcm_nist_validation_aes_12812810241024128_2)
2967 unsigned char key_str[128];
2968 unsigned char src_str[128];
2969 unsigned char dst_str[257];
2970 unsigned char iv_str[128];
2971 unsigned char add_str[128];
2972 unsigned char tag_str[128];
2973 unsigned char output[128];
2974 unsigned char tag_output[16];
2976 unsigned int key_len;
2977 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
2979 memset(key_str, 0x00, 128);
2980 memset(src_str, 0x00, 128);
2981 memset(dst_str, 0x00, 257);
2982 memset(iv_str, 0x00, 128);
2983 memset(add_str, 0x00, 128);
2984 memset(tag_str, 0x00, 128);
2985 memset(output, 0x00, 128);
2986 memset(tag_output, 0x00, 16);
2988 key_len =
unhexify( key_str,
"02980dff205bfa5b18037486618e1fbd" );
2989 pt_len =
unhexify( src_str,
"f037ae281e45c50c9fa875f0ec9eb43251d3ae1b6acde27cb5edda7a4e384f50301a68bb6f4caf426adb31457c5eeaa789edc84fd902cb82e00dccbebe272d90cf690ca82ee748885f02daf377970e985d55994fa668fc5e3e06763e6829059fe0c3eb67033b3f5223cd4bb654484c57370d2b856d7117e32ead3d179064315b" );
2990 iv_len =
unhexify( iv_str,
"27354e68a004b255a380d8480dc9b19e" );
2991 add_len =
unhexify( add_str,
"37eed8620136842938ee3c3c08311d1298d3fd3f0456c056e0851a75d844fe6c61aeb2191c024ffce38686c09ab456f0ec26bd76f935d747002af9b47648502713301d5632c2e0d599b95d5543ac1206170ee6c7b365729c4d04ea042f04363857f9b8ea34e54df89e98fef0df3e67eaf241ed7ebbc7d02931934c14bb7a71ad" );
2993 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
2996 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
2997 hexify( dst_str, output, pt_len );
2998 hexify( tag_str, tag_output, tag_len );
3000 fct_chk( strcmp( (
char *) dst_str,
"f8090d0a96fc99acb8f82bbbe58343fe227d3f43fceece5492036b51ac2fa6db4bf8c98bf28b40132b1ab46517d488b147e12ceb5e6b269bb476a648d8a1133d5e97d4f4fbdfa3866a04948851cfb664f3432de223f3333248a1affa671096708ce6e2c9b4f8e79d44c504ff3cd74e8dffd4ddff490bcba3abffbade0a4e209d" ) == 0 );
3001 fct_chk( strcmp( (
char *) tag_str,
"b5762b41241cbee4557f4be6d14d55d4" ) == 0 );
3007 FCT_TEST_BGN(gcm_nist_validation_aes_12812810241024120_0)
3009 unsigned char key_str[128];
3010 unsigned char src_str[128];
3011 unsigned char dst_str[257];
3012 unsigned char iv_str[128];
3013 unsigned char add_str[128];
3014 unsigned char tag_str[128];
3015 unsigned char output[128];
3016 unsigned char tag_output[16];
3018 unsigned int key_len;
3019 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
3021 memset(key_str, 0x00, 128);
3022 memset(src_str, 0x00, 128);
3023 memset(dst_str, 0x00, 257);
3024 memset(iv_str, 0x00, 128);
3025 memset(add_str, 0x00, 128);
3026 memset(tag_str, 0x00, 128);
3027 memset(output, 0x00, 128);
3028 memset(tag_output, 0x00, 16);
3030 key_len =
unhexify( key_str,
"1fc9bcc5aee350f1ef160346b642cc20" );
3031 pt_len =
unhexify( src_str,
"e0fb08cf7dc901bf698385a38e1a81acd4118f083e52aa52e1ded16ab1e840cc49fa1ead3292ce21096cc75c89dc3701102b0982fd3a6bfa55a7799e579aa7336edf365574a904bad924ec080b093a604994db4dcd8323d7d39c3c35750b0741b170481539d22551871d6a0e2ea17e4bebe8ce19ec3bc3bf4f6edae9cd7ab123" );
3032 iv_len =
unhexify( iv_str,
"910a81a5211ce0f542f1183c08ba96a7" );
3033 add_len =
unhexify( add_str,
"2dcf7492c4539d6abc3d259ba5970033ebc2e7ddfa1af8be11f81b459d7477f310be2171290bec2f2ae2cc51266f46e98c878dd2444afefdbdb73a417518f5fd4c116547bf442fa9a8cb2300c5ff563117b2641dcd65018081e62a7ce5c4d822563824e5eafea90cbceee788ed44e6c4f23fe8926603a15adfdb556f11a0be9a" );
3035 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
3038 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
3039 hexify( dst_str, output, pt_len );
3040 hexify( tag_str, tag_output, tag_len );
3042 fct_chk( strcmp( (
char *) dst_str,
"514d27f8413d7ed59d96c14e7e74b9f3d4518486876c469b369f8c5734145f4aa52506c8f832d4811e5f981caadedcf09875033c5b28a00f35605d773c7f9e1af7f0c795e3df1fa9b5a524f1f753836c1e2dc9edf1602d37ac120f3d8a5c093a5285dbe93957643a65f22995a2782bb455d23318f01bd18ae0d0813b01d233e5" ) == 0 );
3043 fct_chk( strcmp( (
char *) tag_str,
"feb7a25a68b5f68000cf6245056a1f" ) == 0 );
3049 FCT_TEST_BGN(gcm_nist_validation_aes_12812810241024120_1)
3051 unsigned char key_str[128];
3052 unsigned char src_str[128];
3053 unsigned char dst_str[257];
3054 unsigned char iv_str[128];
3055 unsigned char add_str[128];
3056 unsigned char tag_str[128];
3057 unsigned char output[128];
3058 unsigned char tag_output[16];
3060 unsigned int key_len;
3061 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
3063 memset(key_str, 0x00, 128);
3064 memset(src_str, 0x00, 128);
3065 memset(dst_str, 0x00, 257);
3066 memset(iv_str, 0x00, 128);
3067 memset(add_str, 0x00, 128);
3068 memset(tag_str, 0x00, 128);
3069 memset(output, 0x00, 128);
3070 memset(tag_output, 0x00, 16);
3072 key_len =
unhexify( key_str,
"9cf329dc10bcebb484424c77eb785aa2" );
3073 pt_len =
unhexify( src_str,
"92728a696b07704fb1deb648c5036a1c8602b4006fb2fd2d401c4b6692e252c7f66918078542cc0b1a97486964276d6e6c77bbb88a9fff0285aef70783d9f2be3b7b22f8a8c02771492150122fe022722bf64263f5d2406884108d8d608273bc02a9127fe4dbcb321ac44a7d2090cff7017d59d73ecf927b8b05968675a63ca0" );
3074 iv_len =
unhexify( iv_str,
"a430b979168f5df5ba21962d1bd6dd15" );
3075 add_len =
unhexify( add_str,
"4d94b7650297c66b43210c84e6e7b09385117ed8fb91adf643b2339f39a5d8dd0b0d75a793e2a669e42c5ddb0873714e01cb65da9eb73fd976a49ae9a4762bcbc06be5052f750d110a407764280b510da5fd0fdce969f86ea6bf52ad4fd9e2d81ec5cb84af0a1d406504a34c51c751daebb4421fe1994bf6db642e64bd471d9a" );
3077 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
3080 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
3081 hexify( dst_str, output, pt_len );
3082 hexify( tag_str, tag_output, tag_len );
3084 fct_chk( strcmp( (
char *) dst_str,
"c13dbfc60b34d75f8a84db1f6aa946dbfc19479d63900450389756cd1ada8f6d2d0776607f7053db6bfa6752c4b8456f0ace314ff3fd4890d6093a4a5d47dd8fbf902e3e3000f5e02ba93a00985f29ad651cb697cc061d8f3cc74e6d8d0743a1988947c9dc2305e2b7c5a78b29400d736acc238131700af38e72d8c98ba007eb" ) == 0 );
3085 fct_chk( strcmp( (
char *) tag_str,
"82f1dd58425eb9821fcf67a6b35206" ) == 0 );
3091 FCT_TEST_BGN(gcm_nist_validation_aes_12812810241024120_2)
3093 unsigned char key_str[128];
3094 unsigned char src_str[128];
3095 unsigned char dst_str[257];
3096 unsigned char iv_str[128];
3097 unsigned char add_str[128];
3098 unsigned char tag_str[128];
3099 unsigned char output[128];
3100 unsigned char tag_output[16];
3102 unsigned int key_len;
3103 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
3105 memset(key_str, 0x00, 128);
3106 memset(src_str, 0x00, 128);
3107 memset(dst_str, 0x00, 257);
3108 memset(iv_str, 0x00, 128);
3109 memset(add_str, 0x00, 128);
3110 memset(tag_str, 0x00, 128);
3111 memset(output, 0x00, 128);
3112 memset(tag_output, 0x00, 16);
3114 key_len =
unhexify( key_str,
"cf43ff6a1ef35c37862ae3b87171a173" );
3115 pt_len =
unhexify( src_str,
"a1e670b3fd62039cf29edb61b26555bcd0f9184be4593bf6b20ceab263bdc76cdef34992fe0ce4d43bd93bd979b78bb252c120fbaafe4947fc0ec05cce4358a5089a841c7476b0ebfca6476e690cb9ee0b73c6700aa82aa8f4050f2c98500052a2d3274b30b0be67549d756efd163c4369b6df0236d608bfbecd784467db2488" );
3116 iv_len =
unhexify( iv_str,
"6c56540b3a9595f3c43f5595ace926bc" );
3117 add_len =
unhexify( add_str,
"5c0bc6e44362299642f3756acf09878bb05549eb6cd6c4942d39fe586ceac228d2aa9c92f8393e5017e73ee41002e60aa8b993c48a7638ce2ae0ae0eaa536bd749b07a8672fc620a5110af61232b6a3d527b36c86637cc1fa92c84008465fd861920884d8a784e194ec52fcbb767a68ca6fabb64ab0a0d680963140d5cfd9421" );
3119 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
3122 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
3123 hexify( dst_str, output, pt_len );
3124 hexify( tag_str, tag_output, tag_len );
3126 fct_chk( strcmp( (
char *) dst_str,
"8ad36522e4ad47d4a54c5eae0a8b9ff4911aa5b9b13b88b00488a7b678f63cf85945b8d4998d1007e27529b56f50b9e3b373bb6fd861a990514743b9707d535b40d1bdbc3f58a63b8ca30dd7934ee98ec3325d80afaa37e38b4e82d8851166589027d91347727b314e02ed08a7846e29fcd0c764834d12429d9f568b312081f3" ) == 0 );
3127 fct_chk( strcmp( (
char *) tag_str,
"f5bf21d5eadeebdef3104d39362b85" ) == 0 );
3133 FCT_TEST_BGN(gcm_nist_validation_aes_12812810241024112_0)
3135 unsigned char key_str[128];
3136 unsigned char src_str[128];
3137 unsigned char dst_str[257];
3138 unsigned char iv_str[128];
3139 unsigned char add_str[128];
3140 unsigned char tag_str[128];
3141 unsigned char output[128];
3142 unsigned char tag_output[16];
3144 unsigned int key_len;
3145 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
3147 memset(key_str, 0x00, 128);
3148 memset(src_str, 0x00, 128);
3149 memset(dst_str, 0x00, 257);
3150 memset(iv_str, 0x00, 128);
3151 memset(add_str, 0x00, 128);
3152 memset(tag_str, 0x00, 128);
3153 memset(output, 0x00, 128);
3154 memset(tag_output, 0x00, 16);
3156 key_len =
unhexify( key_str,
"a0ec7b0052541d9e9c091fb7fc481409" );
3157 pt_len =
unhexify( src_str,
"5431d93278c35cfcd7ffa9ce2de5c6b922edffd5055a9eaa5b54cae088db007cf2d28efaf9edd1569341889073e87c0a88462d77016744be62132fd14a243ed6e30e12cd2f7d08a8daeec161691f3b27d4996df8745d74402ee208e4055615a8cb069d495cf5146226490ac615d7b17ab39fb4fdd098e4e7ee294d34c1312826" );
3158 iv_len =
unhexify( iv_str,
"00e440846db73a490573deaf3728c94f" );
3159 add_len =
unhexify( add_str,
"a3cfcb832e935eb5bc3812583b3a1b2e82920c07fda3668a35d939d8f11379bb606d39e6416b2ef336fffb15aec3f47a71e191f4ff6c56ff15913562619765b26ae094713d60bab6ab82bfc36edaaf8c7ce2cf5906554dcc5933acdb9cb42c1d24718efdc4a09256020b024b224cfe602772bd688c6c8f1041a46f7ec7d51208" );
3161 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
3164 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
3165 hexify( dst_str, output, pt_len );
3166 hexify( tag_str, tag_output, tag_len );
3168 fct_chk( strcmp( (
char *) dst_str,
"3b6de52f6e582d317f904ee768895bd4d0790912efcf27b58651d0eb7eb0b2f07222c6ffe9f7e127d98ccb132025b098a67dc0ec0083235e9f83af1ae1297df4319547cbcb745cebed36abc1f32a059a05ede6c00e0da097521ead901ad6a73be20018bda4c323faa135169e21581e5106ac20853642e9d6b17f1dd925c87281" ) == 0 );
3169 fct_chk( strcmp( (
char *) tag_str,
"4365847fe0b7b7fbed325953df34" ) == 0 );
3175 FCT_TEST_BGN(gcm_nist_validation_aes_12812810241024112_1)
3177 unsigned char key_str[128];
3178 unsigned char src_str[128];
3179 unsigned char dst_str[257];
3180 unsigned char iv_str[128];
3181 unsigned char add_str[128];
3182 unsigned char tag_str[128];
3183 unsigned char output[128];
3184 unsigned char tag_output[16];
3186 unsigned int key_len;
3187 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
3189 memset(key_str, 0x00, 128);
3190 memset(src_str, 0x00, 128);
3191 memset(dst_str, 0x00, 257);
3192 memset(iv_str, 0x00, 128);
3193 memset(add_str, 0x00, 128);
3194 memset(tag_str, 0x00, 128);
3195 memset(output, 0x00, 128);
3196 memset(tag_output, 0x00, 16);
3198 key_len =
unhexify( key_str,
"f9ba053776afb01d15915e7f82a04f21" );
3199 pt_len =
unhexify( src_str,
"fb59858421ffbf43d09415a77320cc9250df861e4414817e7b78cab918fa890ea0400d4237f7ebf522d97318ea79f9979a73970296827a1a9690a039e6c605a0a3efc0077156e1b15f14d88685833e09f6cd6f783d0f50579de7a30907b9d8efc4c650ec57dbf7b425ffaf9a900ec91087d470409da4d67cae7328c15a5db1fb" );
3200 iv_len =
unhexify( iv_str,
"df26b109244f5a808f3ea7137f2f49fa" );
3201 add_len =
unhexify( add_str,
"b21c8101ac96c41bad2925b9b6c863f54888f36e4995820ebd51f53e323e46f528d91f4318183be0282312ccde8da075fc2e82041cb41a79e9933012a4cb6e9f89717444bc734da3b7e40e903e58dd0f38bcb115684227ec533c09a93c89c2c2584bbac83a4648f82b4c9207f43b61e5ec470602076ed4731756c87d4e0e24af" );
3203 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
3206 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
3207 hexify( dst_str, output, pt_len );
3208 hexify( tag_str, tag_output, tag_len );
3210 fct_chk( strcmp( (
char *) dst_str,
"2c306fc60bff58308f2b9f08d52369e87119d7f6de2279fcdea0c46c901c8dc5b4f83578b17a00786014a17d3e380e1af4b9f32fa58b9ac763bdf86ff0c6084afe413a5dcb7617f94d76e59e370eae4829e69bcb70f10545b04ed5fd137e1159f3961b2c01089ebbe2f16a91c782d4f383fbd4d61b66138319b63d79ce9fdec3" ) == 0 );
3211 fct_chk( strcmp( (
char *) tag_str,
"d6db5aa539a6e2e70885508d637d" ) == 0 );
3217 FCT_TEST_BGN(gcm_nist_validation_aes_12812810241024112_2)
3219 unsigned char key_str[128];
3220 unsigned char src_str[128];
3221 unsigned char dst_str[257];
3222 unsigned char iv_str[128];
3223 unsigned char add_str[128];
3224 unsigned char tag_str[128];
3225 unsigned char output[128];
3226 unsigned char tag_output[16];
3228 unsigned int key_len;
3229 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
3231 memset(key_str, 0x00, 128);
3232 memset(src_str, 0x00, 128);
3233 memset(dst_str, 0x00, 257);
3234 memset(iv_str, 0x00, 128);
3235 memset(add_str, 0x00, 128);
3236 memset(tag_str, 0x00, 128);
3237 memset(output, 0x00, 128);
3238 memset(tag_output, 0x00, 16);
3240 key_len =
unhexify( key_str,
"fbbc406a669b94374c7970f2ac10c91c" );
3241 pt_len =
unhexify( src_str,
"a9f334d1ae7d2960f39da4f1df85830d27c0f13fa0bd23d607ace4cf58b359584120e7c90d3062b1b23b1a9e85a740c9063ff80423b5846257e4426c174e8cd77a3dbcfe12970ebddaaa00a8ffb554b2a80decc81f9917f5a1369e8bf7288ed868457993f480d8aff0b92b3db2fda233e32fabec1a4514715364d4f70f98d62c" );
3242 iv_len =
unhexify( iv_str,
"46152f5a68c03dbe2f28e69f5b52e2fc" );
3243 add_len =
unhexify( add_str,
"1052f8b2d3e11da53ba9efe02ce985098d171dff9b98cbc2f6755fd88214ddb8660225a63a1c8bcaf43ff3930e239824ae8e122068b89d7fe73c658ce030cb51dae9836aafb68fad77b1cb5bff8d7d9c920ec449181e10ea643cc73abb9620dbdfa32e06c29cfbd8c7cb8b1103763616ae6f9b19c4a6e1eed88c3971c4778c2b" );
3245 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
3248 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
3249 hexify( dst_str, output, pt_len );
3250 hexify( tag_str, tag_output, tag_len );
3252 fct_chk( strcmp( (
char *) dst_str,
"7b16424c508da3fed14bb53462d1805f0f9d09f803d4e166fdadbac76f9fc566665554317431642f6e527123ea6c1c0ddcf45005213b0f2747321fa112d7b893cdcf4c1a59e8bd1c48b7d77881c6d79de3d850bce449969305797196d187196d0d81dc3423295f552d3c27d6d70e42c9a1a744a039181e733450c9985c94ae94" ) == 0 );
3253 fct_chk( strcmp( (
char *) tag_str,
"b51dca8e00988af0987860a663ad" ) == 0 );
3259 FCT_TEST_BGN(gcm_nist_validation_aes_12812810241024104_0)
3261 unsigned char key_str[128];
3262 unsigned char src_str[128];
3263 unsigned char dst_str[257];
3264 unsigned char iv_str[128];
3265 unsigned char add_str[128];
3266 unsigned char tag_str[128];
3267 unsigned char output[128];
3268 unsigned char tag_output[16];
3270 unsigned int key_len;
3271 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
3273 memset(key_str, 0x00, 128);
3274 memset(src_str, 0x00, 128);
3275 memset(dst_str, 0x00, 257);
3276 memset(iv_str, 0x00, 128);
3277 memset(add_str, 0x00, 128);
3278 memset(tag_str, 0x00, 128);
3279 memset(output, 0x00, 128);
3280 memset(tag_output, 0x00, 16);
3282 key_len =
unhexify( key_str,
"fe96eab10ff48c7942025422583d0377" );
3283 pt_len =
unhexify( src_str,
"194c8bbbfae4a671386b8cd38f390f46f9df6b8661b470c310921a1c858a938045834bb10380037fbf5f5e00688554537be0fcafe8270b9b59068fa056ab1268fc166c2d729243a06650a171c929c7845c85330c04568d62977eedf3b1ba9dca13bdb8f9522817c8cb99e635e37465ec1c9f6f148d51437aa9f994a62e1bd013" );
3284 iv_len =
unhexify( iv_str,
"97ce3f848276783599c6875de324361e" );
3285 add_len =
unhexify( add_str,
"127628b6dcbce6fc8a8ef60798eb67b2088415635119697d20bb878c24d9c6f9c29e148521cb5e0feff892c7855d4f1c0bfb32ad33420976714dce87a0bbc18e4378bd1ef35197d0ca73051148f1199010f63caf122df5f71ad8d9c71df3eb2fbe3b2529d0ba657570358d3776f687bdb9c96d5e0e9e00c4b42d5d7a268d6a08" );
3287 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
3290 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
3291 hexify( dst_str, output, pt_len );
3292 hexify( tag_str, tag_output, tag_len );
3294 fct_chk( strcmp( (
char *) dst_str,
"12495120056ca3cac70d583603a476821bac6c57c9733b81cfb83538dc9e850f8bdf46065069591c23ebcbc6d1e2523375fb7efc80c09507fa25477ed07cee54fc4eb90168b3ef988f651fc40652474a644b1b311decf899660aef2347bb081af48950f06ebf799911e37120de94c55c20e5f0a77119be06e2b6e557f872fa0f" ) == 0 );
3295 fct_chk( strcmp( (
char *) tag_str,
"6bac793bdc2190a195122c9854" ) == 0 );
3301 FCT_TEST_BGN(gcm_nist_validation_aes_12812810241024104_1)
3303 unsigned char key_str[128];
3304 unsigned char src_str[128];
3305 unsigned char dst_str[257];
3306 unsigned char iv_str[128];
3307 unsigned char add_str[128];
3308 unsigned char tag_str[128];
3309 unsigned char output[128];
3310 unsigned char tag_output[16];
3312 unsigned int key_len;
3313 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
3315 memset(key_str, 0x00, 128);
3316 memset(src_str, 0x00, 128);
3317 memset(dst_str, 0x00, 257);
3318 memset(iv_str, 0x00, 128);
3319 memset(add_str, 0x00, 128);
3320 memset(tag_str, 0x00, 128);
3321 memset(output, 0x00, 128);
3322 memset(tag_output, 0x00, 16);
3324 key_len =
unhexify( key_str,
"f2956384a65f9627dccf5126141c7bca" );
3325 pt_len =
unhexify( src_str,
"89dfd185bc33adbea0c69b55d37087de3fa7fd69a9fa76aa1568ac363c5f212ae92d202b9338ef397266dd8bd1ef36cab6d1368feafec69a4e3e11e1bf1beba35d96e040d91e9d3a838966bae62a15b18d621f33efd9ec511de4bd287c722cd39b4ba43e7a6f8c8ab672d69eac6b21a8d3544ab1d64f9de31956b93b1104431e" );
3326 iv_len =
unhexify( iv_str,
"2f61f76bcf074a3d02f51816c0411052" );
3327 add_len =
unhexify( add_str,
"bde1508823be7984d5921db4cab1ed3017c0d73cb9bff9874f39a6f5bc449719c1c43d8fb4e76f6813b0985d4b124517f9e4e2d3c552b2f75876563c93a44c18fb6523ee732ea5b6d13417db45120653df3820a32ebdb42d544768461b1d0b55b46b09f688e47240880930fca7097ddfae35f854891e21891dbad13f661a2534" );
3329 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
3332 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
3333 hexify( dst_str, output, pt_len );
3334 hexify( tag_str, tag_output, tag_len );
3336 fct_chk( strcmp( (
char *) dst_str,
"023a9c3ab3ed0181ec8926e4bfbc0fa63e38ec8980eabd2ed75e29b681b3ec04cc8b27fad3a7ce6dc1efd680479a78f02de7ba92f45dc03de02852a2e67b35bb1dd154568df7acf59081dfc05aca02c0aa9f3f7b4fd4dbdb671b1b973a48af0c325a23467ba5cb59183540f6edf4c00376be39a3a672feb9e795d1bda96f0017" ) == 0 );
3337 fct_chk( strcmp( (
char *) tag_str,
"613eeca3decbe09e977e0beeda" ) == 0 );
3343 FCT_TEST_BGN(gcm_nist_validation_aes_12812810241024104_2)
3345 unsigned char key_str[128];
3346 unsigned char src_str[128];
3347 unsigned char dst_str[257];
3348 unsigned char iv_str[128];
3349 unsigned char add_str[128];
3350 unsigned char tag_str[128];
3351 unsigned char output[128];
3352 unsigned char tag_output[16];
3354 unsigned int key_len;
3355 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
3357 memset(key_str, 0x00, 128);
3358 memset(src_str, 0x00, 128);
3359 memset(dst_str, 0x00, 257);
3360 memset(iv_str, 0x00, 128);
3361 memset(add_str, 0x00, 128);
3362 memset(tag_str, 0x00, 128);
3363 memset(output, 0x00, 128);
3364 memset(tag_output, 0x00, 16);
3366 key_len =
unhexify( key_str,
"2e9bb30ea25f50b3e7711fac05f9d44a" );
3367 pt_len =
unhexify( src_str,
"17a52f4faa608dc9853d4511feb3dd9d2fb92d7a3deb3f8a7a6df3fa2a909b7db30babef12d9da71aadfad16bfd2bcb5706ef2addc58eeb8d8d13f31326f7ab1d0aabfe5525014f05cd8fb80e1ecb0654e62078440157df66f618f078cdf2b322b0f8878bcd924609c33e42059aa69fe0ddca659aea42ab907b483aa55aacc63" );
3368 iv_len =
unhexify( iv_str,
"9668e8b1ce9623ad52468431dfbed632" );
3369 add_len =
unhexify( add_str,
"f776c6e892e373ec86ccf706704d47cd89fa45c2abdeb0f9f6f32cde88c22f001150cc66f0fd83e9b75b97bceb98913cf143cd8a68bf06e1125031e3e7f09dfefbcaef4f04d7bf28aca1992a7e4228fd4017a5b32fc48101c8f5a609eaee9489d02200e8a13efeda60b57df53ccf2fe26309a1c1e1d40db6eb8431dbfe8d43ea" );
3371 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
3374 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
3375 hexify( dst_str, output, pt_len );
3376 hexify( tag_str, tag_output, tag_len );
3378 fct_chk( strcmp( (
char *) dst_str,
"407171db1dfb7ff20d5c97407375574220534ef75ba18dc616400e5e967e72db23783a6eb9506b611d0c67a83f5c423380ceae66d5dcdffc31e31239357b91794018e9c4c36c286f7b17ee911136d9cacf564baf5f9b9831779375e63aaade8734a91bd4000e53e5e412b3f92f8b68e0b7ad3bf6f274744e2c5a635894bf918e" ) == 0 );
3379 fct_chk( strcmp( (
char *) tag_str,
"2741ebc33a4d4c156c21385a23" ) == 0 );
3385 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024102496_0)
3387 unsigned char key_str[128];
3388 unsigned char src_str[128];
3389 unsigned char dst_str[257];
3390 unsigned char iv_str[128];
3391 unsigned char add_str[128];
3392 unsigned char tag_str[128];
3393 unsigned char output[128];
3394 unsigned char tag_output[16];
3396 unsigned int key_len;
3397 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
3399 memset(key_str, 0x00, 128);
3400 memset(src_str, 0x00, 128);
3401 memset(dst_str, 0x00, 257);
3402 memset(iv_str, 0x00, 128);
3403 memset(add_str, 0x00, 128);
3404 memset(tag_str, 0x00, 128);
3405 memset(output, 0x00, 128);
3406 memset(tag_output, 0x00, 16);
3408 key_len =
unhexify( key_str,
"aa705ee70297e9212f70585d92f42aa4" );
3409 pt_len =
unhexify( src_str,
"5e4b47d986d55f49708cb3e4d27072a7e850936b27b24723856acec7b2e03caccd98c2a002a2dd1d3f4dad8827a5910b42986cb00be7bff47eb401be5f324cd2cd3ea2fa41f4ef61f9771a4c0184d85d6023f37f3f54bb9d7cd621fe36ce11a82678a0754a33049106be597c53f287692ac5a42e59f09a2a117fad6c034a91b9" );
3410 iv_len =
unhexify( iv_str,
"89822c9db69229d1e4880afd19965908" );
3411 add_len =
unhexify( add_str,
"fdd655584a92e29a14a368f28a73f9dc608e5c2ffd308d4aeff7326bbef5ea58f84620c9ad43c0b598c271527ae60dae6db4ffd3f590e503ae7057d8c48e9b1bd8f8a8832629bbfc1391b954a4fcee77d40096eb5dcec5e0439375ed455378d716ee8f8b04ccde3291e580068dd7dbef4ba3685b51940471f24859f8e93b659b" );
3413 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
3416 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
3417 hexify( dst_str, output, pt_len );
3418 hexify( tag_str, tag_output, tag_len );
3420 fct_chk( strcmp( (
char *) dst_str,
"0f34bb4e2a4016ba41eb23e7688edd455f2d46a5097236d9a124ae0bd47349876319976aa4c3aa41680a63cea85f433e3a1b4376f79d004710d486a3fb5afbb7db2c41aca400e04f75ba91660bb68354029defeaae1853447f8fa0d470b25371da73c9e8ee841ba95fc273f88c2e4604ff29a131a7d73e60a00340e886df5359" ) == 0 );
3421 fct_chk( strcmp( (
char *) tag_str,
"a247e88acbd4e354d7c8a80d" ) == 0 );
3427 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024102496_1)
3429 unsigned char key_str[128];
3430 unsigned char src_str[128];
3431 unsigned char dst_str[257];
3432 unsigned char iv_str[128];
3433 unsigned char add_str[128];
3434 unsigned char tag_str[128];
3435 unsigned char output[128];
3436 unsigned char tag_output[16];
3438 unsigned int key_len;
3439 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
3441 memset(key_str, 0x00, 128);
3442 memset(src_str, 0x00, 128);
3443 memset(dst_str, 0x00, 257);
3444 memset(iv_str, 0x00, 128);
3445 memset(add_str, 0x00, 128);
3446 memset(tag_str, 0x00, 128);
3447 memset(output, 0x00, 128);
3448 memset(tag_output, 0x00, 16);
3450 key_len =
unhexify( key_str,
"ddeec78a0c23e8c5c32d3d4f9830f927" );
3451 pt_len =
unhexify( src_str,
"134fd6be1a934053a539398aeaf5d3aceda3ef722a6b3568af6958a4b1207f7e9b9e835cfd46a7f3d4faed829ad23554fc7c0d1a9b32bad9477d9dd397a259cfb0bea30268aba7b8cf4a35dbf99a6b2ca968649847f717749bc5f41374e1574ad6c357f7b60b0cffcb822bd3924208d0472a973ae97550b921338792ca88fde6" );
3452 iv_len =
unhexify( iv_str,
"ae428ebb974ccfbbdbcf6203105724f1" );
3453 add_len =
unhexify( add_str,
"e3d5ce768c688e881e72f036341b2d91947e02b7327eb53240c85b0b93a40eb0f3346817e2c9e126209b31b57633c4384f7af46846d9bbe6fd0d6babc57b84d0f5be2a8a7b146b38914a4cea70273d5461126cfd7527ab397510176e790300a06066655907d499bded79f5bb39f6fdb03f85a415c2cc2ad1f25078f0da7df215" );
3455 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
3458 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
3459 hexify( dst_str, output, pt_len );
3460 hexify( tag_str, tag_output, tag_len );
3462 fct_chk( strcmp( (
char *) dst_str,
"865d6148c9820b67c08c17c9214de612ada6e24ed67933d13c3b3ec43637fa305673d8d52d15a195b27a6b2563682a9f98912908668e3335192b1daabf26e1e73d7d34764af006b0c14a0ffad3b6a0def59964b11eb52e829ad790069997931d09be88b8d60aef90e39dfcb0df4fd54b71597b8ac64670e703e7cb83efa3f2cb" ) == 0 );
3463 fct_chk( strcmp( (
char *) tag_str,
"64b2458a6eaa6f12937a8643" ) == 0 );
3469 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024102496_2)
3471 unsigned char key_str[128];
3472 unsigned char src_str[128];
3473 unsigned char dst_str[257];
3474 unsigned char iv_str[128];
3475 unsigned char add_str[128];
3476 unsigned char tag_str[128];
3477 unsigned char output[128];
3478 unsigned char tag_output[16];
3480 unsigned int key_len;
3481 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
3483 memset(key_str, 0x00, 128);
3484 memset(src_str, 0x00, 128);
3485 memset(dst_str, 0x00, 257);
3486 memset(iv_str, 0x00, 128);
3487 memset(add_str, 0x00, 128);
3488 memset(tag_str, 0x00, 128);
3489 memset(output, 0x00, 128);
3490 memset(tag_output, 0x00, 16);
3492 key_len =
unhexify( key_str,
"829008339e983918b8d142091f84ee28" );
3493 pt_len =
unhexify( src_str,
"6f30604d8c2fae216b1ed3d67485631eaada68fe89a7020d6e29f42b937e7640fc1f23c00ba48bf239740f6468289ed211ba81e809cda55fe067bdfa198bf0461daf86d4a7969de9a629513809b358630ce7eb50a783b8c98ec1bd5e56cb47032ee8fc64a939dfc4a870ea9419b16178109f1966ab964da34debcf00cc49f57e" );
3494 iv_len =
unhexify( iv_str,
"dc62cf12b6d0439578b457e516d8205e" );
3495 add_len =
unhexify( add_str,
"e700cd917923b16c968712b2fdbf08be1b5c3b5d9e42cc45465549898daa07c44b4cd321ba16a38aeb6720e217a58428e3a4cc125920cb3fc92f039b66716543bab71b64ebedbb1e5e3e8fbbecff3385ab0ab16b7f6554b7fbb3b4c92307c654361f984d5a6cb69b8708684d90bb1fdfabc0cb59f42c2b3707b3755a8c7abf34" );
3497 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
3500 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
3501 hexify( dst_str, output, pt_len );
3502 hexify( tag_str, tag_output, tag_len );
3504 fct_chk( strcmp( (
char *) dst_str,
"adf60c4affb2ac76cce20cf9f302b909bfda1bedc60be21b53f65d0b81bff08f7e90ecaaf12ee1f9d921926b75e244b7e8357c1cfc26013a6d1c874ed2e5cd0cce012bbfff0dff85b372d92c18dce887c1651b6467f173a67ac8cea194a6c41e77842675f60cacfbc9c81597a08959d19af632d3c191bf69505620e4290bb040" ) == 0 );
3505 fct_chk( strcmp( (
char *) tag_str,
"6209c09dd1b7ea85d02eb9fb" ) == 0 );
3511 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024102464_0)
3513 unsigned char key_str[128];
3514 unsigned char src_str[128];
3515 unsigned char dst_str[257];
3516 unsigned char iv_str[128];
3517 unsigned char add_str[128];
3518 unsigned char tag_str[128];
3519 unsigned char output[128];
3520 unsigned char tag_output[16];
3522 unsigned int key_len;
3523 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
3525 memset(key_str, 0x00, 128);
3526 memset(src_str, 0x00, 128);
3527 memset(dst_str, 0x00, 257);
3528 memset(iv_str, 0x00, 128);
3529 memset(add_str, 0x00, 128);
3530 memset(tag_str, 0x00, 128);
3531 memset(output, 0x00, 128);
3532 memset(tag_output, 0x00, 16);
3534 key_len =
unhexify( key_str,
"4aec55c7e4bb36c32cb543b57cfba3fc" );
3535 pt_len =
unhexify( src_str,
"4cf1443a5448fd09e09e91b7cc5f8e00f53f0b75a6b17db5ab9a721167de5f7bc5de1fb711accdafb7f3f1bf6b98393e5f09e9091e26d1340122edc91f7e60f62caa218f1927c8f0032be0752520aa650f6f1ddf40412c96d49dcc2287ee17834504f1dda3f4a723e2fce064f0b8dae0789ec455922a14488623e3ac10b6e312" );
3536 iv_len =
unhexify( iv_str,
"6669c3022e0820634a95efa2b5578e93" );
3537 add_len =
unhexify( add_str,
"f6ae9b1aaba18acb741c9fc64cfba3841f5127b1cda5cbcd48af5987428daa5782d2676bc3e2ef23936ec29a80d6b5310282b39b77181dc680799ac9c8125fc48afd185cba2ca8900bd9a0039787b4f3a6846f3edf5f7b921dec2608fd3df67600ae0aba9378da0015bd57d66d2999bf751806d1b89214332bac50f721ca9474" );
3539 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
3542 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
3543 hexify( dst_str, output, pt_len );
3544 hexify( tag_str, tag_output, tag_len );
3546 fct_chk( strcmp( (
char *) dst_str,
"720c32b0d454f086af36a32cc7274e2f2fe08db9cf1cefecc14b42b3e5c573aefa7e9e1ee0042eee21104dc3e4d19b012099280c5a53e40a0bf662d8295dde743143a28be7305729767a37cbdf08fb3c87667939a8ffe44c96ad272e30b75aafada2963bb9636f189c37d976ed1c458295fe85ed19662c463d7c8155e9f04115" ) == 0 );
3547 fct_chk( strcmp( (
char *) tag_str,
"4b3343b627095f60" ) == 0 );
3553 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024102464_1)
3555 unsigned char key_str[128];
3556 unsigned char src_str[128];
3557 unsigned char dst_str[257];
3558 unsigned char iv_str[128];
3559 unsigned char add_str[128];
3560 unsigned char tag_str[128];
3561 unsigned char output[128];
3562 unsigned char tag_output[16];
3564 unsigned int key_len;
3565 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
3567 memset(key_str, 0x00, 128);
3568 memset(src_str, 0x00, 128);
3569 memset(dst_str, 0x00, 257);
3570 memset(iv_str, 0x00, 128);
3571 memset(add_str, 0x00, 128);
3572 memset(tag_str, 0x00, 128);
3573 memset(output, 0x00, 128);
3574 memset(tag_output, 0x00, 16);
3576 key_len =
unhexify( key_str,
"8629e8064b3ba2b95bc20dd075f8e931" );
3577 pt_len =
unhexify( src_str,
"85896de4b6454acf8568ccf95ab68a632330ce71ca8b4e7bfe26ad8d7e2e6b63f2032e2cd365999ffd24ece0df16904d749d06e829a291f3d07fccee27d9c6f3ff3a139d9e33f0660803de8fe79dc6ad291fad47c93543522a1c38e40697426a9855255e3e0abcb84d474ead15341c6b235ccd755e58fe6e87898d216d65abac" );
3578 iv_len =
unhexify( iv_str,
"dc4bcefe284cfc606f39b057b7df411b" );
3579 add_len =
unhexify( add_str,
"abfd0cb6fee8588aa68606b7e487bb9c0d2bd11205611a6f30a78d9ccf28e827cef4e966fa245e4b7b39533a4bd00176ce3c97858b0c8abdff4c548c835bf1962a6115c4ce7c05b1ce5aa29b412e816abc925b8cb998eb4b69c43a7dda1b3cf0d728072d42cb5a489db521698c5daffc3013537bbf622ef76a2e96089b7d4b96" );
3581 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
3584 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
3585 hexify( dst_str, output, pt_len );
3586 hexify( tag_str, tag_output, tag_len );
3588 fct_chk( strcmp( (
char *) dst_str,
"b295ca0d7707892fb08537f42d28a844f5877177f136b4620f69b05c83f43bf2e61323e80076c88660f5385060228bdb91d866686e691cc7e96fdaff41f2ca5f5b5d93ecec7bba82515a6e0bd604c99ef93d3ea013d899464558bc822bd765eb1ca2b8b8a7d961a6a316bf135c22d2ee552e62d8bbc5b60ca31bb53cde82fb5f" ) == 0 );
3589 fct_chk( strcmp( (
char *) tag_str,
"d26cba11f68a5e1a" ) == 0 );
3595 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024102464_2)
3597 unsigned char key_str[128];
3598 unsigned char src_str[128];
3599 unsigned char dst_str[257];
3600 unsigned char iv_str[128];
3601 unsigned char add_str[128];
3602 unsigned char tag_str[128];
3603 unsigned char output[128];
3604 unsigned char tag_output[16];
3606 unsigned int key_len;
3607 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
3609 memset(key_str, 0x00, 128);
3610 memset(src_str, 0x00, 128);
3611 memset(dst_str, 0x00, 257);
3612 memset(iv_str, 0x00, 128);
3613 memset(add_str, 0x00, 128);
3614 memset(tag_str, 0x00, 128);
3615 memset(output, 0x00, 128);
3616 memset(tag_output, 0x00, 16);
3618 key_len =
unhexify( key_str,
"4d901e59a491c86bf538f7b38247bb21" );
3619 pt_len =
unhexify( src_str,
"4c370a9f316d25702195409d8e73bbfa40aa15c2b0ea55db9257a9ae4e8dccad14589718741a78e5a74c26a801857e388c9f141ef7df08bc01384b2b2338c38abce51d547056f4bbaf7484f9edc96df122e71f132b7bcb6484228c3ae2f741a2c8b9b208b6f49b07081334b93c501938808cdbd2e40cf95ae4f27a29e1121480" );
3620 iv_len =
unhexify( iv_str,
"39e2788c9697e82cae0e222a9e413d8f" );
3621 add_len =
unhexify( add_str,
"48d7d20e424df3c3efced29e860771647ae01312a96e68d33f982c540e74160a7fbdb623d4b19abb1871d74c6dadc56038954b154389b752bebc40cf4ee1505ec8d844e1a04dcae430befdb081cc84252e0840f5f5146ffe5b9594f856afc2edb33b3c6f9041c9631c5e3d812959c5504938635f72c6fe29a25bbf66a4ecd211" );
3623 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
3626 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
3627 hexify( dst_str, output, pt_len );
3628 hexify( tag_str, tag_output, tag_len );
3630 fct_chk( strcmp( (
char *) dst_str,
"262718671dd0e2c9a40b9d7297c7f6a26cd5fe4f301999a32059812719896d3a2f5350f6ec20d999fc80b8d7af5a421545b325de9180f14505f0c72250658a5014768fed63ab553de0fb01ab1368356043f6d1a6c9950c80e3d9d4637bbeea44c9d58a4148bb10974d507c62b67cc4e37eaebd7eb8e67077856cc5d1702f8e2d" ) == 0 );
3631 fct_chk( strcmp( (
char *) tag_str,
"bd814b4584941681" ) == 0 );
3637 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024102432_0)
3639 unsigned char key_str[128];
3640 unsigned char src_str[128];
3641 unsigned char dst_str[257];
3642 unsigned char iv_str[128];
3643 unsigned char add_str[128];
3644 unsigned char tag_str[128];
3645 unsigned char output[128];
3646 unsigned char tag_output[16];
3648 unsigned int key_len;
3649 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
3651 memset(key_str, 0x00, 128);
3652 memset(src_str, 0x00, 128);
3653 memset(dst_str, 0x00, 257);
3654 memset(iv_str, 0x00, 128);
3655 memset(add_str, 0x00, 128);
3656 memset(tag_str, 0x00, 128);
3657 memset(output, 0x00, 128);
3658 memset(tag_output, 0x00, 16);
3660 key_len =
unhexify( key_str,
"2f54229167862034ef6c5ff4a1246697" );
3661 pt_len =
unhexify( src_str,
"af2c89d3600329779abfbcf5be8bb83c357d4d2435fc8f4c413b956b898d22a8a889db9e2ff5e7229d7495576989695a0b52d796f9a23e9570b7caec6b46059749c29a293d31a6224baaf73711bc0e4a587abe9d0379adec6de04ce444676dfd8672e6660cfc79d7ee2e7625ce57dd4681bad66aa29bea2baf936122c3db17e7" );
3662 iv_len =
unhexify( iv_str,
"8168ef8ef278c832fc0ec846bc9f62e9" );
3663 add_len =
unhexify( add_str,
"abb9ed24137915265bddbd4b63f1d02efa2a99c8c373f19077c7e1c389feae36a7af42c661b0adc5dc8e4b5520d334e8e0e112d42c2977fa23485c0a85aef83f1e52d6749bd29cbebe14aea6ee1c1098aa96c6360b0192894bb2001c7c0fed7f00bb84953c23bfdda00818d1568fb94c1bd971982d6c01c12a35ef7af34f947f" );
3665 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
3668 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
3669 hexify( dst_str, output, pt_len );
3670 hexify( tag_str, tag_output, tag_len );
3672 fct_chk( strcmp( (
char *) dst_str,
"cd6dede25433fd3da6137001219b57aa54bdf6039a5a8d66138171b006194fe3e13d484e5cf57a1acdaa8e76f001df7bf41cbed2c5561a37a32113fa116d0918167c29dd9e7d46f7c18d9db33d7f1bc33ac21d159ddec57a2e158f0c0993c16dbf50582371100a8d7c55cd47c03473c5770ad562240f754c99d95ec593dca284" ) == 0 );
3673 fct_chk( strcmp( (
char *) tag_str,
"4ab63349" ) == 0 );
3679 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024102432_1)
3681 unsigned char key_str[128];
3682 unsigned char src_str[128];
3683 unsigned char dst_str[257];
3684 unsigned char iv_str[128];
3685 unsigned char add_str[128];
3686 unsigned char tag_str[128];
3687 unsigned char output[128];
3688 unsigned char tag_output[16];
3690 unsigned int key_len;
3691 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
3693 memset(key_str, 0x00, 128);
3694 memset(src_str, 0x00, 128);
3695 memset(dst_str, 0x00, 257);
3696 memset(iv_str, 0x00, 128);
3697 memset(add_str, 0x00, 128);
3698 memset(tag_str, 0x00, 128);
3699 memset(output, 0x00, 128);
3700 memset(tag_output, 0x00, 16);
3702 key_len =
unhexify( key_str,
"b7b52fe74c5c3266edf731578d28a72e" );
3703 pt_len =
unhexify( src_str,
"01a4b7da57c0f7d9aea51283004b23f899669dccd6dbaec9cd6e747c7adb52432c7c29d1411ec1df4e5e33311ad84218075dabe17f73c95511ce7950f08b618feff56bd452b33455a1a03caa8371dc7fb9aebedb3cb652d94e06bd00a98bb06d30b506d41cb516c759f6d7f793472e6d6dc9ae50cf3dc8b1ad3d0517c4f555a3" );
3704 iv_len =
unhexify( iv_str,
"a005750e9f8c68ae238668f0a8f015ba" );
3705 add_len =
unhexify( add_str,
"805cf3635f9d84c7608c242ee23a4837dd3f260de9afd6166b08164a0256200be9b52e5259a4a54186ec067ddfad90f5c4f92afd1c7e4f2d8443312ba3c4818b664439a02644e55467045071aa2cc7939a940e89cc52c8a53623bc6473bf843a4e0f00149b2ce1543a6540aa0d9c2c5b68ba2bd5791078deed1de3b5f48257c5" );
3707 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
3710 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
3711 hexify( dst_str, output, pt_len );
3712 hexify( tag_str, tag_output, tag_len );
3714 fct_chk( strcmp( (
char *) dst_str,
"d6124da0896d99fc7f2c3688fbca164f8fecd75b6260162c4dc2d2773ce75cf41a8c7a57998e0a7e49cc71e5ad6a04c7415f8d4fd11f1035d3a02ed744345d74ebc9c4f202f65bfa88d55c747fe777225e218f2149da22b53e6584823dbda42cc2dda56fc72b753f3923c443eb5c656515dd824d8c08cc78152226ed8c1808db" ) == 0 );
3715 fct_chk( strcmp( (
char *) tag_str,
"60d86287" ) == 0 );
3721 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024102432_2)
3723 unsigned char key_str[128];
3724 unsigned char src_str[128];
3725 unsigned char dst_str[257];
3726 unsigned char iv_str[128];
3727 unsigned char add_str[128];
3728 unsigned char tag_str[128];
3729 unsigned char output[128];
3730 unsigned char tag_output[16];
3732 unsigned int key_len;
3733 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
3735 memset(key_str, 0x00, 128);
3736 memset(src_str, 0x00, 128);
3737 memset(dst_str, 0x00, 257);
3738 memset(iv_str, 0x00, 128);
3739 memset(add_str, 0x00, 128);
3740 memset(tag_str, 0x00, 128);
3741 memset(output, 0x00, 128);
3742 memset(tag_output, 0x00, 16);
3744 key_len =
unhexify( key_str,
"7a3501d9fbb86ab80f5faeaf8876b7c1" );
3745 pt_len =
unhexify( src_str,
"4f0dfbd2aeab70c80814a1f261a1fe442eacff5d267fd0c0f93757919810f6610113f1b442270afcc47f2fa01ab01797683ec9267691a0dec45033c57f5cbdfcafdf154fc99e6140176eea92503b3f6fee5dfa5aad05f802e08a08f10e49a8b32a50c028f2bc7aa451be3747d10b96b3a1105c67c5167eccdc18b4a9b0612d03" );
3746 iv_len =
unhexify( iv_str,
"6d59be1833e75ce7f54ddc91ad6f5187" );
3747 add_len =
unhexify( add_str,
"3e556b1b33c42f1ad6cca67dabc6ff79d6cb667527335858e26cb4f6a3d8503ec415968ba97d2d79a3f80c1a10d75174eb5294cce8b89224eba7dfb258fb17cb5c5db7a914ace06e94cd2f2cafe3febc8adc4c2264afa2db2c6356e4c3e8667393a77a0afc36be678d5c0a4b63ae82d9922bbbc60559f331ece9947b67469469" );
3749 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
3752 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
3753 hexify( dst_str, output, pt_len );
3754 hexify( tag_str, tag_output, tag_len );
3756 fct_chk( strcmp( (
char *) dst_str,
"615ea4535f1e579d7aa45c011018f272c2e234c3ea9e2d102cfaa4a437c41e64bdef7a211ea4d858bdb656215e600911435ef9c8da68e8239e4782ced7e7add063f33f5bc62b85d9ae44ed1b139580118c5fc054ead08257b0a97632e8c503c6219294af423f0deb36758e05857ebb05c6835972488306ebfedd2ca4ce3b2c48" ) == 0 );
3757 fct_chk( strcmp( (
char *) tag_str,
"74c6bf0e" ) == 0 );
3763 FCT_TEST_BGN(gcm_nist_validation_aes_12812800128_0)
3765 unsigned char key_str[128];
3766 unsigned char src_str[128];
3767 unsigned char dst_str[257];
3768 unsigned char iv_str[128];
3769 unsigned char add_str[128];
3770 unsigned char tag_str[128];
3771 unsigned char output[128];
3772 unsigned char tag_output[16];
3774 unsigned int key_len;
3775 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
3777 memset(key_str, 0x00, 128);
3778 memset(src_str, 0x00, 128);
3779 memset(dst_str, 0x00, 257);
3780 memset(iv_str, 0x00, 128);
3781 memset(add_str, 0x00, 128);
3782 memset(tag_str, 0x00, 128);
3783 memset(output, 0x00, 128);
3784 memset(tag_output, 0x00, 16);
3786 key_len =
unhexify( key_str,
"195ddad2b0da195ea54a9dad0f86c161" );
3788 iv_len =
unhexify( iv_str,
"265ab1995fac4fca7c2b26c84e4a2dbc" );
3791 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
3794 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
3795 hexify( dst_str, output, pt_len );
3796 hexify( tag_str, tag_output, tag_len );
3798 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
3799 fct_chk( strcmp( (
char *) tag_str,
"930f719034b76c232619ef2792fe6e65" ) == 0 );
3805 FCT_TEST_BGN(gcm_nist_validation_aes_12812800128_1)
3807 unsigned char key_str[128];
3808 unsigned char src_str[128];
3809 unsigned char dst_str[257];
3810 unsigned char iv_str[128];
3811 unsigned char add_str[128];
3812 unsigned char tag_str[128];
3813 unsigned char output[128];
3814 unsigned char tag_output[16];
3816 unsigned int key_len;
3817 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
3819 memset(key_str, 0x00, 128);
3820 memset(src_str, 0x00, 128);
3821 memset(dst_str, 0x00, 257);
3822 memset(iv_str, 0x00, 128);
3823 memset(add_str, 0x00, 128);
3824 memset(tag_str, 0x00, 128);
3825 memset(output, 0x00, 128);
3826 memset(tag_output, 0x00, 16);
3828 key_len =
unhexify( key_str,
"12be48e90c849063637b1c2ab0f2b467" );
3830 iv_len =
unhexify( iv_str,
"0020c3dff2f6f3acaaae982ce38f63c3" );
3833 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
3836 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
3837 hexify( dst_str, output, pt_len );
3838 hexify( tag_str, tag_output, tag_len );
3840 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
3841 fct_chk( strcmp( (
char *) tag_str,
"c8891f32b8015024ca42536d633b1863" ) == 0 );
3847 FCT_TEST_BGN(gcm_nist_validation_aes_12812800128_2)
3849 unsigned char key_str[128];
3850 unsigned char src_str[128];
3851 unsigned char dst_str[257];
3852 unsigned char iv_str[128];
3853 unsigned char add_str[128];
3854 unsigned char tag_str[128];
3855 unsigned char output[128];
3856 unsigned char tag_output[16];
3858 unsigned int key_len;
3859 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
3861 memset(key_str, 0x00, 128);
3862 memset(src_str, 0x00, 128);
3863 memset(dst_str, 0x00, 257);
3864 memset(iv_str, 0x00, 128);
3865 memset(add_str, 0x00, 128);
3866 memset(tag_str, 0x00, 128);
3867 memset(output, 0x00, 128);
3868 memset(tag_output, 0x00, 16);
3870 key_len =
unhexify( key_str,
"8e792fc91675d5efd4d80d5a06378d24" );
3872 iv_len =
unhexify( iv_str,
"15ad63b969f8e313eac3c717ff9a994d" );
3875 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
3878 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
3879 hexify( dst_str, output, pt_len );
3880 hexify( tag_str, tag_output, tag_len );
3882 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
3883 fct_chk( strcmp( (
char *) tag_str,
"de9a04b030954b0141dd78ffc67323d6" ) == 0 );
3889 FCT_TEST_BGN(gcm_nist_validation_aes_12812800120_0)
3891 unsigned char key_str[128];
3892 unsigned char src_str[128];
3893 unsigned char dst_str[257];
3894 unsigned char iv_str[128];
3895 unsigned char add_str[128];
3896 unsigned char tag_str[128];
3897 unsigned char output[128];
3898 unsigned char tag_output[16];
3900 unsigned int key_len;
3901 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
3903 memset(key_str, 0x00, 128);
3904 memset(src_str, 0x00, 128);
3905 memset(dst_str, 0x00, 257);
3906 memset(iv_str, 0x00, 128);
3907 memset(add_str, 0x00, 128);
3908 memset(tag_str, 0x00, 128);
3909 memset(output, 0x00, 128);
3910 memset(tag_output, 0x00, 16);
3912 key_len =
unhexify( key_str,
"a668cfd45b6ef8b766a4bb187d0824d1" );
3914 iv_len =
unhexify( iv_str,
"a111e94a6426ad9b4362132052eadf4a" );
3917 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
3920 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
3921 hexify( dst_str, output, pt_len );
3922 hexify( tag_str, tag_output, tag_len );
3924 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
3925 fct_chk( strcmp( (
char *) tag_str,
"3a3331e6a41cada2cca8e856135549" ) == 0 );
3931 FCT_TEST_BGN(gcm_nist_validation_aes_12812800120_1)
3933 unsigned char key_str[128];
3934 unsigned char src_str[128];
3935 unsigned char dst_str[257];
3936 unsigned char iv_str[128];
3937 unsigned char add_str[128];
3938 unsigned char tag_str[128];
3939 unsigned char output[128];
3940 unsigned char tag_output[16];
3942 unsigned int key_len;
3943 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
3945 memset(key_str, 0x00, 128);
3946 memset(src_str, 0x00, 128);
3947 memset(dst_str, 0x00, 257);
3948 memset(iv_str, 0x00, 128);
3949 memset(add_str, 0x00, 128);
3950 memset(tag_str, 0x00, 128);
3951 memset(output, 0x00, 128);
3952 memset(tag_output, 0x00, 16);
3954 key_len =
unhexify( key_str,
"f36e07f2689832b914e0b817010c528c" );
3956 iv_len =
unhexify( iv_str,
"654104f9d16348231e6ba6fd30c1f02c" );
3959 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
3962 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
3963 hexify( dst_str, output, pt_len );
3964 hexify( tag_str, tag_output, tag_len );
3966 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
3967 fct_chk( strcmp( (
char *) tag_str,
"be897583bae073f42138d64e622c35" ) == 0 );
3973 FCT_TEST_BGN(gcm_nist_validation_aes_12812800120_2)
3975 unsigned char key_str[128];
3976 unsigned char src_str[128];
3977 unsigned char dst_str[257];
3978 unsigned char iv_str[128];
3979 unsigned char add_str[128];
3980 unsigned char tag_str[128];
3981 unsigned char output[128];
3982 unsigned char tag_output[16];
3984 unsigned int key_len;
3985 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
3987 memset(key_str, 0x00, 128);
3988 memset(src_str, 0x00, 128);
3989 memset(dst_str, 0x00, 257);
3990 memset(iv_str, 0x00, 128);
3991 memset(add_str, 0x00, 128);
3992 memset(tag_str, 0x00, 128);
3993 memset(output, 0x00, 128);
3994 memset(tag_output, 0x00, 16);
3996 key_len =
unhexify( key_str,
"25d839a709d98ef9c0c9e78ece961eba" );
3998 iv_len =
unhexify( iv_str,
"b64537609040790ff648d51406710b9a" );
4001 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
4004 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
4005 hexify( dst_str, output, pt_len );
4006 hexify( tag_str, tag_output, tag_len );
4008 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
4009 fct_chk( strcmp( (
char *) tag_str,
"4d5854c69cc973be8de41d5584407c" ) == 0 );
4015 FCT_TEST_BGN(gcm_nist_validation_aes_12812800112_0)
4017 unsigned char key_str[128];
4018 unsigned char src_str[128];
4019 unsigned char dst_str[257];
4020 unsigned char iv_str[128];
4021 unsigned char add_str[128];
4022 unsigned char tag_str[128];
4023 unsigned char output[128];
4024 unsigned char tag_output[16];
4026 unsigned int key_len;
4027 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
4029 memset(key_str, 0x00, 128);
4030 memset(src_str, 0x00, 128);
4031 memset(dst_str, 0x00, 257);
4032 memset(iv_str, 0x00, 128);
4033 memset(add_str, 0x00, 128);
4034 memset(tag_str, 0x00, 128);
4035 memset(output, 0x00, 128);
4036 memset(tag_output, 0x00, 16);
4038 key_len =
unhexify( key_str,
"957dd619f9f19445c374ceda9e9ac082" );
4040 iv_len =
unhexify( iv_str,
"34887be03b4d4ca8ea2261b600ab0b0e" );
4043 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
4046 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
4047 hexify( dst_str, output, pt_len );
4048 hexify( tag_str, tag_output, tag_len );
4050 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
4051 fct_chk( strcmp( (
char *) tag_str,
"60e2d50adff707d8b279bdedb277" ) == 0 );
4057 FCT_TEST_BGN(gcm_nist_validation_aes_12812800112_1)
4059 unsigned char key_str[128];
4060 unsigned char src_str[128];
4061 unsigned char dst_str[257];
4062 unsigned char iv_str[128];
4063 unsigned char add_str[128];
4064 unsigned char tag_str[128];
4065 unsigned char output[128];
4066 unsigned char tag_output[16];
4068 unsigned int key_len;
4069 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
4071 memset(key_str, 0x00, 128);
4072 memset(src_str, 0x00, 128);
4073 memset(dst_str, 0x00, 257);
4074 memset(iv_str, 0x00, 128);
4075 memset(add_str, 0x00, 128);
4076 memset(tag_str, 0x00, 128);
4077 memset(output, 0x00, 128);
4078 memset(tag_output, 0x00, 16);
4080 key_len =
unhexify( key_str,
"a5c9a2dcaf576e67828e806082d8e780" );
4082 iv_len =
unhexify( iv_str,
"f93732aac9448c4a427e634089d7edcc" );
4085 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
4088 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
4089 hexify( dst_str, output, pt_len );
4090 hexify( tag_str, tag_output, tag_len );
4092 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
4093 fct_chk( strcmp( (
char *) tag_str,
"f67ed1c98bd2c5f3a738e75f15ac" ) == 0 );
4099 FCT_TEST_BGN(gcm_nist_validation_aes_12812800112_2)
4101 unsigned char key_str[128];
4102 unsigned char src_str[128];
4103 unsigned char dst_str[257];
4104 unsigned char iv_str[128];
4105 unsigned char add_str[128];
4106 unsigned char tag_str[128];
4107 unsigned char output[128];
4108 unsigned char tag_output[16];
4110 unsigned int key_len;
4111 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
4113 memset(key_str, 0x00, 128);
4114 memset(src_str, 0x00, 128);
4115 memset(dst_str, 0x00, 257);
4116 memset(iv_str, 0x00, 128);
4117 memset(add_str, 0x00, 128);
4118 memset(tag_str, 0x00, 128);
4119 memset(output, 0x00, 128);
4120 memset(tag_output, 0x00, 16);
4122 key_len =
unhexify( key_str,
"0a30a816e8d4d85d40c8e4d7c93b777e" );
4124 iv_len =
unhexify( iv_str,
"bf1f332aa19682d05cf95f2b03d26af9" );
4127 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
4130 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
4131 hexify( dst_str, output, pt_len );
4132 hexify( tag_str, tag_output, tag_len );
4134 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
4135 fct_chk( strcmp( (
char *) tag_str,
"acfb2f7884bc496f3089e50dbf42" ) == 0 );
4141 FCT_TEST_BGN(gcm_nist_validation_aes_12812800104_0)
4143 unsigned char key_str[128];
4144 unsigned char src_str[128];
4145 unsigned char dst_str[257];
4146 unsigned char iv_str[128];
4147 unsigned char add_str[128];
4148 unsigned char tag_str[128];
4149 unsigned char output[128];
4150 unsigned char tag_output[16];
4152 unsigned int key_len;
4153 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
4155 memset(key_str, 0x00, 128);
4156 memset(src_str, 0x00, 128);
4157 memset(dst_str, 0x00, 257);
4158 memset(iv_str, 0x00, 128);
4159 memset(add_str, 0x00, 128);
4160 memset(tag_str, 0x00, 128);
4161 memset(output, 0x00, 128);
4162 memset(tag_output, 0x00, 16);
4164 key_len =
unhexify( key_str,
"b45a16bba5fba362704149dc56ba8a13" );
4166 iv_len =
unhexify( iv_str,
"64cca850412091bf4e120ccd612df353" );
4169 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
4172 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
4173 hexify( dst_str, output, pt_len );
4174 hexify( tag_str, tag_output, tag_len );
4176 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
4177 fct_chk( strcmp( (
char *) tag_str,
"7b1adc23af9be185e5ae0b0f0e" ) == 0 );
4183 FCT_TEST_BGN(gcm_nist_validation_aes_12812800104_1)
4185 unsigned char key_str[128];
4186 unsigned char src_str[128];
4187 unsigned char dst_str[257];
4188 unsigned char iv_str[128];
4189 unsigned char add_str[128];
4190 unsigned char tag_str[128];
4191 unsigned char output[128];
4192 unsigned char tag_output[16];
4194 unsigned int key_len;
4195 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
4197 memset(key_str, 0x00, 128);
4198 memset(src_str, 0x00, 128);
4199 memset(dst_str, 0x00, 257);
4200 memset(iv_str, 0x00, 128);
4201 memset(add_str, 0x00, 128);
4202 memset(tag_str, 0x00, 128);
4203 memset(output, 0x00, 128);
4204 memset(tag_output, 0x00, 16);
4206 key_len =
unhexify( key_str,
"0cbcbc1c72aa90e3ea7e2fe328d79723" );
4208 iv_len =
unhexify( iv_str,
"2fc5fd964b45082546636ae1e208a937" );
4211 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
4214 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
4215 hexify( dst_str, output, pt_len );
4216 hexify( tag_str, tag_output, tag_len );
4218 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
4219 fct_chk( strcmp( (
char *) tag_str,
"fe091a768c731e54e2237bfdc4" ) == 0 );
4225 FCT_TEST_BGN(gcm_nist_validation_aes_12812800104_2)
4227 unsigned char key_str[128];
4228 unsigned char src_str[128];
4229 unsigned char dst_str[257];
4230 unsigned char iv_str[128];
4231 unsigned char add_str[128];
4232 unsigned char tag_str[128];
4233 unsigned char output[128];
4234 unsigned char tag_output[16];
4236 unsigned int key_len;
4237 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
4239 memset(key_str, 0x00, 128);
4240 memset(src_str, 0x00, 128);
4241 memset(dst_str, 0x00, 257);
4242 memset(iv_str, 0x00, 128);
4243 memset(add_str, 0x00, 128);
4244 memset(tag_str, 0x00, 128);
4245 memset(output, 0x00, 128);
4246 memset(tag_output, 0x00, 16);
4248 key_len =
unhexify( key_str,
"94297a1ad3f0c333cd9b087b1efd43c0" );
4250 iv_len =
unhexify( iv_str,
"52ec9dc82131d7b1c69c01fed6aada10" );
4253 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
4256 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
4257 hexify( dst_str, output, pt_len );
4258 hexify( tag_str, tag_output, tag_len );
4260 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
4261 fct_chk( strcmp( (
char *) tag_str,
"5c927dda855b76ab8fc077203b" ) == 0 );
4267 FCT_TEST_BGN(gcm_nist_validation_aes_1281280096_0)
4269 unsigned char key_str[128];
4270 unsigned char src_str[128];
4271 unsigned char dst_str[257];
4272 unsigned char iv_str[128];
4273 unsigned char add_str[128];
4274 unsigned char tag_str[128];
4275 unsigned char output[128];
4276 unsigned char tag_output[16];
4278 unsigned int key_len;
4279 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
4281 memset(key_str, 0x00, 128);
4282 memset(src_str, 0x00, 128);
4283 memset(dst_str, 0x00, 257);
4284 memset(iv_str, 0x00, 128);
4285 memset(add_str, 0x00, 128);
4286 memset(tag_str, 0x00, 128);
4287 memset(output, 0x00, 128);
4288 memset(tag_output, 0x00, 16);
4290 key_len =
unhexify( key_str,
"1e8cf32008bdf867f0ff76e7d7ec21bd" );
4292 iv_len =
unhexify( iv_str,
"3854b7412de72fefcc4b0c2155f6910e" );
4295 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
4298 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
4299 hexify( dst_str, output, pt_len );
4300 hexify( tag_str, tag_output, tag_len );
4302 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
4303 fct_chk( strcmp( (
char *) tag_str,
"cc8e7eccc056b06cffc307e0" ) == 0 );
4309 FCT_TEST_BGN(gcm_nist_validation_aes_1281280096_1)
4311 unsigned char key_str[128];
4312 unsigned char src_str[128];
4313 unsigned char dst_str[257];
4314 unsigned char iv_str[128];
4315 unsigned char add_str[128];
4316 unsigned char tag_str[128];
4317 unsigned char output[128];
4318 unsigned char tag_output[16];
4320 unsigned int key_len;
4321 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
4323 memset(key_str, 0x00, 128);
4324 memset(src_str, 0x00, 128);
4325 memset(dst_str, 0x00, 257);
4326 memset(iv_str, 0x00, 128);
4327 memset(add_str, 0x00, 128);
4328 memset(tag_str, 0x00, 128);
4329 memset(output, 0x00, 128);
4330 memset(tag_output, 0x00, 16);
4332 key_len =
unhexify( key_str,
"2ce1a9bd93fdde2adfd8c2c16a395b95" );
4334 iv_len =
unhexify( iv_str,
"64072313ed36eef8209f079fa622d7f0" );
4337 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
4340 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
4341 hexify( dst_str, output, pt_len );
4342 hexify( tag_str, tag_output, tag_len );
4344 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
4345 fct_chk( strcmp( (
char *) tag_str,
"cd9e8ffc1423270015bf8e8b" ) == 0 );
4351 FCT_TEST_BGN(gcm_nist_validation_aes_1281280096_2)
4353 unsigned char key_str[128];
4354 unsigned char src_str[128];
4355 unsigned char dst_str[257];
4356 unsigned char iv_str[128];
4357 unsigned char add_str[128];
4358 unsigned char tag_str[128];
4359 unsigned char output[128];
4360 unsigned char tag_output[16];
4362 unsigned int key_len;
4363 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
4365 memset(key_str, 0x00, 128);
4366 memset(src_str, 0x00, 128);
4367 memset(dst_str, 0x00, 257);
4368 memset(iv_str, 0x00, 128);
4369 memset(add_str, 0x00, 128);
4370 memset(tag_str, 0x00, 128);
4371 memset(output, 0x00, 128);
4372 memset(tag_output, 0x00, 16);
4374 key_len =
unhexify( key_str,
"b15354ad3d874fe472719ebccd45f123" );
4376 iv_len =
unhexify( iv_str,
"1b2013153290edef60a6a438bd7517de" );
4379 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
4382 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
4383 hexify( dst_str, output, pt_len );
4384 hexify( tag_str, tag_output, tag_len );
4386 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
4387 fct_chk( strcmp( (
char *) tag_str,
"f65a841ed510becf52b1eae7" ) == 0 );
4393 FCT_TEST_BGN(gcm_nist_validation_aes_1281280064_0)
4395 unsigned char key_str[128];
4396 unsigned char src_str[128];
4397 unsigned char dst_str[257];
4398 unsigned char iv_str[128];
4399 unsigned char add_str[128];
4400 unsigned char tag_str[128];
4401 unsigned char output[128];
4402 unsigned char tag_output[16];
4404 unsigned int key_len;
4405 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
4407 memset(key_str, 0x00, 128);
4408 memset(src_str, 0x00, 128);
4409 memset(dst_str, 0x00, 257);
4410 memset(iv_str, 0x00, 128);
4411 memset(add_str, 0x00, 128);
4412 memset(tag_str, 0x00, 128);
4413 memset(output, 0x00, 128);
4414 memset(tag_output, 0x00, 16);
4416 key_len =
unhexify( key_str,
"14ef129784776647eb3fb8897915ab9e" );
4418 iv_len =
unhexify( iv_str,
"f7bbe9f699156549935f2b92c1dda163" );
4421 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
4424 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
4425 hexify( dst_str, output, pt_len );
4426 hexify( tag_str, tag_output, tag_len );
4428 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
4429 fct_chk( strcmp( (
char *) tag_str,
"dd10fa64fd51231d" ) == 0 );
4435 FCT_TEST_BGN(gcm_nist_validation_aes_1281280064_1)
4437 unsigned char key_str[128];
4438 unsigned char src_str[128];
4439 unsigned char dst_str[257];
4440 unsigned char iv_str[128];
4441 unsigned char add_str[128];
4442 unsigned char tag_str[128];
4443 unsigned char output[128];
4444 unsigned char tag_output[16];
4446 unsigned int key_len;
4447 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
4449 memset(key_str, 0x00, 128);
4450 memset(src_str, 0x00, 128);
4451 memset(dst_str, 0x00, 257);
4452 memset(iv_str, 0x00, 128);
4453 memset(add_str, 0x00, 128);
4454 memset(tag_str, 0x00, 128);
4455 memset(output, 0x00, 128);
4456 memset(tag_output, 0x00, 16);
4458 key_len =
unhexify( key_str,
"5d4470053c46a577bba7000075e9bf2c" );
4460 iv_len =
unhexify( iv_str,
"854b768fdd7492c21618ca716bc8790d" );
4463 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
4466 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
4467 hexify( dst_str, output, pt_len );
4468 hexify( tag_str, tag_output, tag_len );
4470 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
4471 fct_chk( strcmp( (
char *) tag_str,
"1f3c73722006023a" ) == 0 );
4477 FCT_TEST_BGN(gcm_nist_validation_aes_1281280064_2)
4479 unsigned char key_str[128];
4480 unsigned char src_str[128];
4481 unsigned char dst_str[257];
4482 unsigned char iv_str[128];
4483 unsigned char add_str[128];
4484 unsigned char tag_str[128];
4485 unsigned char output[128];
4486 unsigned char tag_output[16];
4488 unsigned int key_len;
4489 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
4491 memset(key_str, 0x00, 128);
4492 memset(src_str, 0x00, 128);
4493 memset(dst_str, 0x00, 257);
4494 memset(iv_str, 0x00, 128);
4495 memset(add_str, 0x00, 128);
4496 memset(tag_str, 0x00, 128);
4497 memset(output, 0x00, 128);
4498 memset(tag_output, 0x00, 16);
4500 key_len =
unhexify( key_str,
"ea87d675a0d406c57f78a2531bfc0c9a" );
4502 iv_len =
unhexify( iv_str,
"0907503fcb06ee384526f7206180a080" );
4505 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
4508 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
4509 hexify( dst_str, output, pt_len );
4510 hexify( tag_str, tag_output, tag_len );
4512 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
4513 fct_chk( strcmp( (
char *) tag_str,
"65d5466392b63bf6" ) == 0 );
4519 FCT_TEST_BGN(gcm_nist_validation_aes_1281280032_0)
4521 unsigned char key_str[128];
4522 unsigned char src_str[128];
4523 unsigned char dst_str[257];
4524 unsigned char iv_str[128];
4525 unsigned char add_str[128];
4526 unsigned char tag_str[128];
4527 unsigned char output[128];
4528 unsigned char tag_output[16];
4530 unsigned int key_len;
4531 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
4533 memset(key_str, 0x00, 128);
4534 memset(src_str, 0x00, 128);
4535 memset(dst_str, 0x00, 257);
4536 memset(iv_str, 0x00, 128);
4537 memset(add_str, 0x00, 128);
4538 memset(tag_str, 0x00, 128);
4539 memset(output, 0x00, 128);
4540 memset(tag_output, 0x00, 16);
4542 key_len =
unhexify( key_str,
"d3e8e27568e6e17ff807cc207e5d4eea" );
4544 iv_len =
unhexify( iv_str,
"18e51cdfb4a3a5ebc7b0d7b17727aa95" );
4547 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
4550 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
4551 hexify( dst_str, output, pt_len );
4552 hexify( tag_str, tag_output, tag_len );
4554 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
4555 fct_chk( strcmp( (
char *) tag_str,
"a7e3f637" ) == 0 );
4561 FCT_TEST_BGN(gcm_nist_validation_aes_1281280032_1)
4563 unsigned char key_str[128];
4564 unsigned char src_str[128];
4565 unsigned char dst_str[257];
4566 unsigned char iv_str[128];
4567 unsigned char add_str[128];
4568 unsigned char tag_str[128];
4569 unsigned char output[128];
4570 unsigned char tag_output[16];
4572 unsigned int key_len;
4573 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
4575 memset(key_str, 0x00, 128);
4576 memset(src_str, 0x00, 128);
4577 memset(dst_str, 0x00, 257);
4578 memset(iv_str, 0x00, 128);
4579 memset(add_str, 0x00, 128);
4580 memset(tag_str, 0x00, 128);
4581 memset(output, 0x00, 128);
4582 memset(tag_output, 0x00, 16);
4584 key_len =
unhexify( key_str,
"596a602164b1a0bb50ef91bce3a98796" );
4586 iv_len =
unhexify( iv_str,
"2025e72bd6a511980a8ddce34565d16a" );
4589 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
4592 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
4593 hexify( dst_str, output, pt_len );
4594 hexify( tag_str, tag_output, tag_len );
4596 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
4597 fct_chk( strcmp( (
char *) tag_str,
"f84f92de" ) == 0 );
4603 FCT_TEST_BGN(gcm_nist_validation_aes_1281280032_2)
4605 unsigned char key_str[128];
4606 unsigned char src_str[128];
4607 unsigned char dst_str[257];
4608 unsigned char iv_str[128];
4609 unsigned char add_str[128];
4610 unsigned char tag_str[128];
4611 unsigned char output[128];
4612 unsigned char tag_output[16];
4614 unsigned int key_len;
4615 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
4617 memset(key_str, 0x00, 128);
4618 memset(src_str, 0x00, 128);
4619 memset(dst_str, 0x00, 257);
4620 memset(iv_str, 0x00, 128);
4621 memset(add_str, 0x00, 128);
4622 memset(tag_str, 0x00, 128);
4623 memset(output, 0x00, 128);
4624 memset(tag_output, 0x00, 16);
4626 key_len =
unhexify( key_str,
"d0194b6ee68f0ed8adc4b22ed15dbf14" );
4628 iv_len =
unhexify( iv_str,
"32ea8970a8cb70d6ffb3972a146c6984" );
4631 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
4634 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
4635 hexify( dst_str, output, pt_len );
4636 hexify( tag_str, tag_output, tag_len );
4638 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
4639 fct_chk( strcmp( (
char *) tag_str,
"eef4b97a" ) == 0 );
4645 FCT_TEST_BGN(gcm_nist_validation_aes_12812801024128_0)
4647 unsigned char key_str[128];
4648 unsigned char src_str[128];
4649 unsigned char dst_str[257];
4650 unsigned char iv_str[128];
4651 unsigned char add_str[128];
4652 unsigned char tag_str[128];
4653 unsigned char output[128];
4654 unsigned char tag_output[16];
4656 unsigned int key_len;
4657 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
4659 memset(key_str, 0x00, 128);
4660 memset(src_str, 0x00, 128);
4661 memset(dst_str, 0x00, 257);
4662 memset(iv_str, 0x00, 128);
4663 memset(add_str, 0x00, 128);
4664 memset(tag_str, 0x00, 128);
4665 memset(output, 0x00, 128);
4666 memset(tag_output, 0x00, 16);
4668 key_len =
unhexify( key_str,
"869ce65e5e5e12c620076365f149784f" );
4670 iv_len =
unhexify( iv_str,
"317bf07e83c2e9717880b7d080957fe1" );
4671 add_len =
unhexify( add_str,
"ee185d738260de67f1792a7d548ea73267fbbb6543bc081fac43e00e6cca92d7d646f27054894664ffdcbe635e34cfa800912b59fdaa624b36c44c9ff4f193d3be2f97a7820a6d4ceabe967091ef672098baf82dd3b671cac4fd4f4b14e4ee388fbdaafb4dab2385df4fca23a78d31f11bca15eedd7cac778484258778106a07" );
4673 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
4676 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
4677 hexify( dst_str, output, pt_len );
4678 hexify( tag_str, tag_output, tag_len );
4680 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
4681 fct_chk( strcmp( (
char *) tag_str,
"add6c89153c4c0eead03df44487742a0" ) == 0 );
4687 FCT_TEST_BGN(gcm_nist_validation_aes_12812801024128_1)
4689 unsigned char key_str[128];
4690 unsigned char src_str[128];
4691 unsigned char dst_str[257];
4692 unsigned char iv_str[128];
4693 unsigned char add_str[128];
4694 unsigned char tag_str[128];
4695 unsigned char output[128];
4696 unsigned char tag_output[16];
4698 unsigned int key_len;
4699 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
4701 memset(key_str, 0x00, 128);
4702 memset(src_str, 0x00, 128);
4703 memset(dst_str, 0x00, 257);
4704 memset(iv_str, 0x00, 128);
4705 memset(add_str, 0x00, 128);
4706 memset(tag_str, 0x00, 128);
4707 memset(output, 0x00, 128);
4708 memset(tag_output, 0x00, 16);
4710 key_len =
unhexify( key_str,
"0a05baee927bf23dd2f4b57b90fb6434" );
4712 iv_len =
unhexify( iv_str,
"8147e99dc9e462efea9c1d7f30bdf45c" );
4713 add_len =
unhexify( add_str,
"6424ca7fbf24c6c3b0b5eb9d769b26a9792c96a8585dc596208ae6cfc0b265bd8d26af31027f278bb92a9e3b365beae8d964ec7a4096513f84fa73f8739fa7e11d54d678bed19546d2b71b3d0166b25b47ad7cfa69d74057d889258a796a65f2bf8d3bb151f4e721d398e74594a186e6182c16fe4c8813dfec67215b3c4a94c0" );
4715 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
4718 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
4719 hexify( dst_str, output, pt_len );
4720 hexify( tag_str, tag_output, tag_len );
4722 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
4723 fct_chk( strcmp( (
char *) tag_str,
"05fac5520a99ad7fb407c48995a2c331" ) == 0 );
4729 FCT_TEST_BGN(gcm_nist_validation_aes_12812801024128_2)
4731 unsigned char key_str[128];
4732 unsigned char src_str[128];
4733 unsigned char dst_str[257];
4734 unsigned char iv_str[128];
4735 unsigned char add_str[128];
4736 unsigned char tag_str[128];
4737 unsigned char output[128];
4738 unsigned char tag_output[16];
4740 unsigned int key_len;
4741 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
4743 memset(key_str, 0x00, 128);
4744 memset(src_str, 0x00, 128);
4745 memset(dst_str, 0x00, 257);
4746 memset(iv_str, 0x00, 128);
4747 memset(add_str, 0x00, 128);
4748 memset(tag_str, 0x00, 128);
4749 memset(output, 0x00, 128);
4750 memset(tag_output, 0x00, 16);
4752 key_len =
unhexify( key_str,
"e28c435211743a7872e4a0bd7602336a" );
4754 iv_len =
unhexify( iv_str,
"2ddbee94fcbfacea080ded468f67180c" );
4755 add_len =
unhexify( add_str,
"63190ef542656cc2b69a9b0daf8dbd2d38cd75f17b92d6d891c17b0337ad4fe4539d9154722fa430782a1d79620e974661918166e39c453c5a98759a13d2766138c7750e6cbdc7b6d7cbe44f3f4de7bb562d9bce6e6e2e815444842b89ba8b73454218c483e574ca886a84e8c9aa6f56dd1541a7e35a4a5b8f6a05ad5bb013e9" );
4757 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
4760 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
4761 hexify( dst_str, output, pt_len );
4762 hexify( tag_str, tag_output, tag_len );
4764 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
4765 fct_chk( strcmp( (
char *) tag_str,
"2ce6d74cda466354a736636bf18acfc0" ) == 0 );
4771 FCT_TEST_BGN(gcm_nist_validation_aes_12812801024120_0)
4773 unsigned char key_str[128];
4774 unsigned char src_str[128];
4775 unsigned char dst_str[257];
4776 unsigned char iv_str[128];
4777 unsigned char add_str[128];
4778 unsigned char tag_str[128];
4779 unsigned char output[128];
4780 unsigned char tag_output[16];
4782 unsigned int key_len;
4783 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
4785 memset(key_str, 0x00, 128);
4786 memset(src_str, 0x00, 128);
4787 memset(dst_str, 0x00, 257);
4788 memset(iv_str, 0x00, 128);
4789 memset(add_str, 0x00, 128);
4790 memset(tag_str, 0x00, 128);
4791 memset(output, 0x00, 128);
4792 memset(tag_output, 0x00, 16);
4794 key_len =
unhexify( key_str,
"2b2bec16c7d326a35a8e4c0b8c2e3674" );
4796 iv_len =
unhexify( iv_str,
"4573eb54491ed91bfa2185b762115bc8" );
4797 add_len =
unhexify( add_str,
"7a4a6b3114dabc50b201472c5cb13a79430f78eedb2ba8492c01ce10a74d08565b9bf9874bb8fb72f694a23babdd08684cb68d7e09e65813728aaa5c41f9c2b10d921f8271e200e0c519c7c46f572bc9fe3f27e13d1e6d7bda4bd66c1c4b0fec8c68a1b0ed7b0659009dc894ad55e0712ddd0837315734f2bc3b757241af35ba" );
4799 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
4802 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
4803 hexify( dst_str, output, pt_len );
4804 hexify( tag_str, tag_output, tag_len );
4806 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
4807 fct_chk( strcmp( (
char *) tag_str,
"5f5d4695795b8580b0bc414a81b002" ) == 0 );
4813 FCT_TEST_BGN(gcm_nist_validation_aes_12812801024120_1)
4815 unsigned char key_str[128];
4816 unsigned char src_str[128];
4817 unsigned char dst_str[257];
4818 unsigned char iv_str[128];
4819 unsigned char add_str[128];
4820 unsigned char tag_str[128];
4821 unsigned char output[128];
4822 unsigned char tag_output[16];
4824 unsigned int key_len;
4825 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
4827 memset(key_str, 0x00, 128);
4828 memset(src_str, 0x00, 128);
4829 memset(dst_str, 0x00, 257);
4830 memset(iv_str, 0x00, 128);
4831 memset(add_str, 0x00, 128);
4832 memset(tag_str, 0x00, 128);
4833 memset(output, 0x00, 128);
4834 memset(tag_output, 0x00, 16);
4836 key_len =
unhexify( key_str,
"886fb12554b075dd9663efd076acbe56" );
4838 iv_len =
unhexify( iv_str,
"7e7a73542868fc27a01865c3aa635ad5" );
4839 add_len =
unhexify( add_str,
"cb25c2f029c7a877a0aa565c7f7347b317ad534821edeeea838996dfc42b13787e5bb237525ac926ca8a6c5078210f4a27863e8114c728d09653fa93ae990e99f0c856bc8097c2cd33cdca1a407897e2f495d2e75356aabd891702f25ff20e6b6c8a785d74b78a734e311fd236f9e970202674004ee4151879d59340b20aa23b" );
4841 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
4844 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
4845 hexify( dst_str, output, pt_len );
4846 hexify( tag_str, tag_output, tag_len );
4848 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
4849 fct_chk( strcmp( (
char *) tag_str,
"8255116ee1e3cf936633017c4dec3a" ) == 0 );
4855 FCT_TEST_BGN(gcm_nist_validation_aes_12812801024120_2)
4857 unsigned char key_str[128];
4858 unsigned char src_str[128];
4859 unsigned char dst_str[257];
4860 unsigned char iv_str[128];
4861 unsigned char add_str[128];
4862 unsigned char tag_str[128];
4863 unsigned char output[128];
4864 unsigned char tag_output[16];
4866 unsigned int key_len;
4867 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
4869 memset(key_str, 0x00, 128);
4870 memset(src_str, 0x00, 128);
4871 memset(dst_str, 0x00, 257);
4872 memset(iv_str, 0x00, 128);
4873 memset(add_str, 0x00, 128);
4874 memset(tag_str, 0x00, 128);
4875 memset(output, 0x00, 128);
4876 memset(tag_output, 0x00, 16);
4878 key_len =
unhexify( key_str,
"920fdf4b39c63947d57a07eabbf3f2f5" );
4880 iv_len =
unhexify( iv_str,
"77431ebaad53e42ca7eead0d45e5bd18" );
4881 add_len =
unhexify( add_str,
"11f82f9ef7c2161ba73cf7da82c5397da5e8278da180a976f43222402e983b057171f793641a8343d6366d6cc9260dfe8becb8396b5bcfa0f46908bd809bdab61126cbb8d63f601965fb9e4b3afd66c594dfd394d4cf06f79f361771a85dcead6f45dc7df10fa434736eb109a76fe6cda32c5773d4db6449494f2a3f6c884bfe" );
4883 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
4886 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
4887 hexify( dst_str, output, pt_len );
4888 hexify( tag_str, tag_output, tag_len );
4890 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
4891 fct_chk( strcmp( (
char *) tag_str,
"1291cbea1a9f8b166c7306ff9eb281" ) == 0 );
4897 FCT_TEST_BGN(gcm_nist_validation_aes_12812801024112_0)
4899 unsigned char key_str[128];
4900 unsigned char src_str[128];
4901 unsigned char dst_str[257];
4902 unsigned char iv_str[128];
4903 unsigned char add_str[128];
4904 unsigned char tag_str[128];
4905 unsigned char output[128];
4906 unsigned char tag_output[16];
4908 unsigned int key_len;
4909 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
4911 memset(key_str, 0x00, 128);
4912 memset(src_str, 0x00, 128);
4913 memset(dst_str, 0x00, 257);
4914 memset(iv_str, 0x00, 128);
4915 memset(add_str, 0x00, 128);
4916 memset(tag_str, 0x00, 128);
4917 memset(output, 0x00, 128);
4918 memset(tag_output, 0x00, 16);
4920 key_len =
unhexify( key_str,
"114060534f526895f30dfb4007356ea7" );
4922 iv_len =
unhexify( iv_str,
"5ed7fb59618ec3d081e60d8259a3f184" );
4923 add_len =
unhexify( add_str,
"a56566a98d9d4fdcebc932adc405e0b8190d537f931983168283d0431e7589333d42f2a3d6e41f268e7b566cf48694cdcfe01fbb9198804ad39e7d387039575c5de787610a23ec265505a448c3a64ddac1b0d8c567eefe5c3c2dc1bb15af45b4bd8fc2e1506ddeb2e39e04f72fd24a64cbbbc929800e0687b53eb89b3049f271" );
4925 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
4928 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
4929 hexify( dst_str, output, pt_len );
4930 hexify( tag_str, tag_output, tag_len );
4932 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
4933 fct_chk( strcmp( (
char *) tag_str,
"62f770b3985388ac37e14e8d4696" ) == 0 );
4939 FCT_TEST_BGN(gcm_nist_validation_aes_12812801024112_1)
4941 unsigned char key_str[128];
4942 unsigned char src_str[128];
4943 unsigned char dst_str[257];
4944 unsigned char iv_str[128];
4945 unsigned char add_str[128];
4946 unsigned char tag_str[128];
4947 unsigned char output[128];
4948 unsigned char tag_output[16];
4950 unsigned int key_len;
4951 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
4953 memset(key_str, 0x00, 128);
4954 memset(src_str, 0x00, 128);
4955 memset(dst_str, 0x00, 257);
4956 memset(iv_str, 0x00, 128);
4957 memset(add_str, 0x00, 128);
4958 memset(tag_str, 0x00, 128);
4959 memset(output, 0x00, 128);
4960 memset(tag_output, 0x00, 16);
4962 key_len =
unhexify( key_str,
"697ca4e9de580b525d7149e8b69e8093" );
4964 iv_len =
unhexify( iv_str,
"e844153734eaebd86983aa3bf50068df" );
4965 add_len =
unhexify( add_str,
"cedcd5ffeb7988837c38a0be4234ab1b03f14367a1a3854b6dc9f33eb9a87c411326e5cb7d12dc730cb6f363da2ba68affdfb651fe497942e0dd59668f56c23dae80b7bbf905d36b501ff037fcdffa472efa4bcc1c975b67e5d7f348db73e0ce648b44ecc5b5bbbdf3101bf32ea99e3c8e8991c94fa609c93d4b375a4389023b" );
4967 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
4970 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
4971 hexify( dst_str, output, pt_len );
4972 hexify( tag_str, tag_output, tag_len );
4974 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
4975 fct_chk( strcmp( (
char *) tag_str,
"95becb04cd39c868c9dbd1d4e59b" ) == 0 );
4981 FCT_TEST_BGN(gcm_nist_validation_aes_12812801024112_2)
4983 unsigned char key_str[128];
4984 unsigned char src_str[128];
4985 unsigned char dst_str[257];
4986 unsigned char iv_str[128];
4987 unsigned char add_str[128];
4988 unsigned char tag_str[128];
4989 unsigned char output[128];
4990 unsigned char tag_output[16];
4992 unsigned int key_len;
4993 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
4995 memset(key_str, 0x00, 128);
4996 memset(src_str, 0x00, 128);
4997 memset(dst_str, 0x00, 257);
4998 memset(iv_str, 0x00, 128);
4999 memset(add_str, 0x00, 128);
5000 memset(tag_str, 0x00, 128);
5001 memset(output, 0x00, 128);
5002 memset(tag_output, 0x00, 16);
5004 key_len =
unhexify( key_str,
"2fa92cc97ef469efeb2c25838193435a" );
5006 iv_len =
unhexify( iv_str,
"07e6492f2377c04a85045d24940fbe8f" );
5007 add_len =
unhexify( add_str,
"0f021fb787c6de2be054bdb2741aef82ce35d951de2986c86c3dac77ee0804dfbd010d33a5dcc109769d4b8ff1471eb98fe917c7b0b374e80539f2f4432f92aa55d8398a71510c2acf85c54975fb09ff5638b936283efa3c1d3b054865f97685d6bfa0dfcffde3a20525b5324573b69dde230ea87c685e4f6b5c3c4c55828a86" );
5009 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
5012 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
5013 hexify( dst_str, output, pt_len );
5014 hexify( tag_str, tag_output, tag_len );
5016 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
5017 fct_chk( strcmp( (
char *) tag_str,
"397b2b0dad7f1926bfc25a3ba0ca" ) == 0 );
5023 FCT_TEST_BGN(gcm_nist_validation_aes_12812801024104_0)
5025 unsigned char key_str[128];
5026 unsigned char src_str[128];
5027 unsigned char dst_str[257];
5028 unsigned char iv_str[128];
5029 unsigned char add_str[128];
5030 unsigned char tag_str[128];
5031 unsigned char output[128];
5032 unsigned char tag_output[16];
5034 unsigned int key_len;
5035 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
5037 memset(key_str, 0x00, 128);
5038 memset(src_str, 0x00, 128);
5039 memset(dst_str, 0x00, 257);
5040 memset(iv_str, 0x00, 128);
5041 memset(add_str, 0x00, 128);
5042 memset(tag_str, 0x00, 128);
5043 memset(output, 0x00, 128);
5044 memset(tag_output, 0x00, 16);
5046 key_len =
unhexify( key_str,
"a61f8a5777ec3da0c3e257d421286696" );
5048 iv_len =
unhexify( iv_str,
"14894cc4ff71e249f0053bbc1680331f" );
5049 add_len =
unhexify( add_str,
"9df46dde257054160854248e70625183bf957ecec36fa4f5a79a1650e04b500f7f2fab4bb873f0e813f0d6b17610bde0de95427a8e2d1293dcdde053f5b1a5a81af25d553289e89e77e4ad7d0a1190151724730149050bd021ec61a08ce2271390161c752df8b5f61c33ee39366de4c1db41d085ab9dd88e170e8c41c571e2cf" );
5051 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
5054 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
5055 hexify( dst_str, output, pt_len );
5056 hexify( tag_str, tag_output, tag_len );
5058 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
5059 fct_chk( strcmp( (
char *) tag_str,
"e062ab7984221ed226be353731" ) == 0 );
5065 FCT_TEST_BGN(gcm_nist_validation_aes_12812801024104_1)
5067 unsigned char key_str[128];
5068 unsigned char src_str[128];
5069 unsigned char dst_str[257];
5070 unsigned char iv_str[128];
5071 unsigned char add_str[128];
5072 unsigned char tag_str[128];
5073 unsigned char output[128];
5074 unsigned char tag_output[16];
5076 unsigned int key_len;
5077 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
5079 memset(key_str, 0x00, 128);
5080 memset(src_str, 0x00, 128);
5081 memset(dst_str, 0x00, 257);
5082 memset(iv_str, 0x00, 128);
5083 memset(add_str, 0x00, 128);
5084 memset(tag_str, 0x00, 128);
5085 memset(output, 0x00, 128);
5086 memset(tag_output, 0x00, 16);
5088 key_len =
unhexify( key_str,
"aa2d04f4f5258c6363b1210c91aff7d1" );
5090 iv_len =
unhexify( iv_str,
"6b24c03273dcfd508cead2df0c65ef2d" );
5091 add_len =
unhexify( add_str,
"81a1b326f8f22bfecdf1f386bf8fe678a427e3886801b823a37860b9a832356724b1d352d6250cf8e8f89d0bf2314fd11464c3b4871478f0bc290ee1096c8f6cb5484176d70762289b44309d6a88e4750185abf30901bcf8d952da9abaaf9807c0c0ee8be2b247dbbfd182b83f9bfa67ca3bf448c3f5a3de3c31b058c3f944a9" );
5093 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
5096 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
5097 hexify( dst_str, output, pt_len );
5098 hexify( tag_str, tag_output, tag_len );
5100 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
5101 fct_chk( strcmp( (
char *) tag_str,
"80dee09fed5183d6405beeb268" ) == 0 );
5107 FCT_TEST_BGN(gcm_nist_validation_aes_12812801024104_2)
5109 unsigned char key_str[128];
5110 unsigned char src_str[128];
5111 unsigned char dst_str[257];
5112 unsigned char iv_str[128];
5113 unsigned char add_str[128];
5114 unsigned char tag_str[128];
5115 unsigned char output[128];
5116 unsigned char tag_output[16];
5118 unsigned int key_len;
5119 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
5121 memset(key_str, 0x00, 128);
5122 memset(src_str, 0x00, 128);
5123 memset(dst_str, 0x00, 257);
5124 memset(iv_str, 0x00, 128);
5125 memset(add_str, 0x00, 128);
5126 memset(tag_str, 0x00, 128);
5127 memset(output, 0x00, 128);
5128 memset(tag_output, 0x00, 16);
5130 key_len =
unhexify( key_str,
"cf221e6cade9f6cf509afa6979cc1fb9" );
5132 iv_len =
unhexify( iv_str,
"d35433be41a259dfaf58aac1d82af462" );
5133 add_len =
unhexify( add_str,
"b31c477490e5624c4aac8e590725bfa8b3efca618e2369e9b980d6a463a014d55aa8317a9e70ce6de7c574cd15242cf4eb3eb078cd2f49fd82d1a56c6c4241342e62a2e9d94f0aaa024055cb441d650f0a6ecabfe9ef563d6bd87d4cb1bed348aee42487c13b73e52fb70f0ca6ed81924fd519806e04babfd08df1a00191caa1" );
5135 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
5138 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
5139 hexify( dst_str, output, pt_len );
5140 hexify( tag_str, tag_output, tag_len );
5142 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
5143 fct_chk( strcmp( (
char *) tag_str,
"f1776b1ee7a3c49f99f34f582d" ) == 0 );
5149 FCT_TEST_BGN(gcm_nist_validation_aes_1281280102496_0)
5151 unsigned char key_str[128];
5152 unsigned char src_str[128];
5153 unsigned char dst_str[257];
5154 unsigned char iv_str[128];
5155 unsigned char add_str[128];
5156 unsigned char tag_str[128];
5157 unsigned char output[128];
5158 unsigned char tag_output[16];
5160 unsigned int key_len;
5161 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
5163 memset(key_str, 0x00, 128);
5164 memset(src_str, 0x00, 128);
5165 memset(dst_str, 0x00, 257);
5166 memset(iv_str, 0x00, 128);
5167 memset(add_str, 0x00, 128);
5168 memset(tag_str, 0x00, 128);
5169 memset(output, 0x00, 128);
5170 memset(tag_output, 0x00, 16);
5172 key_len =
unhexify( key_str,
"c98eb634c7caf52d3f3d9f344e141988" );
5174 iv_len =
unhexify( iv_str,
"a0e58176826910a69c2d68ae1c6a05c0" );
5175 add_len =
unhexify( add_str,
"6e559278bc469cc670c4d9105c3c2f8fa308e11b4a60f75664a9bfaff4f0176175ddd3c6c17ff91a208dbbc7c49efff099fa873f60849ffaa3a3003419cadaa06b92a678b80bf6c952bbbe596dd0a2eed35507c55c48a9e6131bcbda0621cff87e02be5d082944f2c8e27211527717272839601b0e26cb5aa2301afd05ae1b35" );
5177 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
5180 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
5181 hexify( dst_str, output, pt_len );
5182 hexify( tag_str, tag_output, tag_len );
5184 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
5185 fct_chk( strcmp( (
char *) tag_str,
"3d8617b2db536ba7d367013c" ) == 0 );
5191 FCT_TEST_BGN(gcm_nist_validation_aes_1281280102496_1)
5193 unsigned char key_str[128];
5194 unsigned char src_str[128];
5195 unsigned char dst_str[257];
5196 unsigned char iv_str[128];
5197 unsigned char add_str[128];
5198 unsigned char tag_str[128];
5199 unsigned char output[128];
5200 unsigned char tag_output[16];
5202 unsigned int key_len;
5203 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
5205 memset(key_str, 0x00, 128);
5206 memset(src_str, 0x00, 128);
5207 memset(dst_str, 0x00, 257);
5208 memset(iv_str, 0x00, 128);
5209 memset(add_str, 0x00, 128);
5210 memset(tag_str, 0x00, 128);
5211 memset(output, 0x00, 128);
5212 memset(tag_output, 0x00, 16);
5214 key_len =
unhexify( key_str,
"c5018f4a8e2a850979b006d0498dd0fe" );
5216 iv_len =
unhexify( iv_str,
"75e4bebdd170159cff59f895ebdeb118" );
5217 add_len =
unhexify( add_str,
"25ed2831fef205690381c73e925ef7ba20d5f2e3a4b5d7beabd749fafa08a6941acb1385aed977ea824322d378649f646a812e6c87ded6ae437c68ffdd4fae937a8498ae825d7523746730af84d56380be8f575c60e7f836a862343916e98cc2aa5a27cd63cd92df63b8bb47c81fa6a53740a125bb9cbb247c916363e60f5f65" );
5219 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
5222 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
5223 hexify( dst_str, output, pt_len );
5224 hexify( tag_str, tag_output, tag_len );
5226 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
5227 fct_chk( strcmp( (
char *) tag_str,
"0aa5aced93e0237bea9a0015" ) == 0 );
5233 FCT_TEST_BGN(gcm_nist_validation_aes_1281280102496_2)
5235 unsigned char key_str[128];
5236 unsigned char src_str[128];
5237 unsigned char dst_str[257];
5238 unsigned char iv_str[128];
5239 unsigned char add_str[128];
5240 unsigned char tag_str[128];
5241 unsigned char output[128];
5242 unsigned char tag_output[16];
5244 unsigned int key_len;
5245 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
5247 memset(key_str, 0x00, 128);
5248 memset(src_str, 0x00, 128);
5249 memset(dst_str, 0x00, 257);
5250 memset(iv_str, 0x00, 128);
5251 memset(add_str, 0x00, 128);
5252 memset(tag_str, 0x00, 128);
5253 memset(output, 0x00, 128);
5254 memset(tag_output, 0x00, 16);
5256 key_len =
unhexify( key_str,
"cefd40aeac28fbea6e3343a125fe1c9a" );
5258 iv_len =
unhexify( iv_str,
"324b9722166edc3831bd19c1db5bfbf2" );
5259 add_len =
unhexify( add_str,
"72b7a4289bf7f5a752665839adde8f79644424839db059ce40de326414c09691d5c7071e43722104a94e430e263bc974b98f167c50b97490bcd4286b502f607ddcec5387695463154bd9598ce8ffb6104d1f7010bc196ea2dcbfbf452d6257b1da00271fe1e6fb56c43656d5570b965e0369502443536cc46d4c05b1e863ed8f" );
5261 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
5264 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
5265 hexify( dst_str, output, pt_len );
5266 hexify( tag_str, tag_output, tag_len );
5268 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
5269 fct_chk( strcmp( (
char *) tag_str,
"0c6b28de22e02fe6a4595d5f" ) == 0 );
5275 FCT_TEST_BGN(gcm_nist_validation_aes_1281280102464_0)
5277 unsigned char key_str[128];
5278 unsigned char src_str[128];
5279 unsigned char dst_str[257];
5280 unsigned char iv_str[128];
5281 unsigned char add_str[128];
5282 unsigned char tag_str[128];
5283 unsigned char output[128];
5284 unsigned char tag_output[16];
5286 unsigned int key_len;
5287 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
5289 memset(key_str, 0x00, 128);
5290 memset(src_str, 0x00, 128);
5291 memset(dst_str, 0x00, 257);
5292 memset(iv_str, 0x00, 128);
5293 memset(add_str, 0x00, 128);
5294 memset(tag_str, 0x00, 128);
5295 memset(output, 0x00, 128);
5296 memset(tag_output, 0x00, 16);
5298 key_len =
unhexify( key_str,
"58cb7cb58518ff3fecea4b44ad9fdef1" );
5300 iv_len =
unhexify( iv_str,
"fe619efb1c9502c03cb8a70792f9e046" );
5301 add_len =
unhexify( add_str,
"1a7c444a84267f52c36f3c09f8c4a88b6ffe3309b8edaad93a08d3961af28b7c2baba5165f0a9efe13fa6a0ac595da156741dc7f728c11edbd8ab02f03e45716be504778a75374ee882af488bfbc6cdd58fd81d3ac5f369f85ba42c6fd7f9df4b25fdd2fd32607ea800047e06058388c4f71a5eb4d825e8578106041c84c25a1" );
5303 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
5306 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
5307 hexify( dst_str, output, pt_len );
5308 hexify( tag_str, tag_output, tag_len );
5310 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
5311 fct_chk( strcmp( (
char *) tag_str,
"8243f32002d33cdd" ) == 0 );
5317 FCT_TEST_BGN(gcm_nist_validation_aes_1281280102464_1)
5319 unsigned char key_str[128];
5320 unsigned char src_str[128];
5321 unsigned char dst_str[257];
5322 unsigned char iv_str[128];
5323 unsigned char add_str[128];
5324 unsigned char tag_str[128];
5325 unsigned char output[128];
5326 unsigned char tag_output[16];
5328 unsigned int key_len;
5329 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
5331 memset(key_str, 0x00, 128);
5332 memset(src_str, 0x00, 128);
5333 memset(dst_str, 0x00, 257);
5334 memset(iv_str, 0x00, 128);
5335 memset(add_str, 0x00, 128);
5336 memset(tag_str, 0x00, 128);
5337 memset(output, 0x00, 128);
5338 memset(tag_output, 0x00, 16);
5340 key_len =
unhexify( key_str,
"15cc4cb979a343f4adfb821d6f6e9c66" );
5342 iv_len =
unhexify( iv_str,
"68464e7eb64360c7c0a8540ac3473513" );
5343 add_len =
unhexify( add_str,
"d69f4a9595a48a50ec33ac1848df3d994eff838b28ea7c8b2c42876dadd60a3f9769bd4f61d8007c9dd4fde55edcec8f5ac3bf23b1a958fa714dd88cd5261edb69b7b086ef0f442179943f0871a6253aae99d31fdca448bc3efef353b5cc55cfc576e4a7fb73a5ab6b5af58dbd381bf7f9d69a5c2bfc902901fd485967b23bd9" );
5345 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
5348 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
5349 hexify( dst_str, output, pt_len );
5350 hexify( tag_str, tag_output, tag_len );
5352 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
5353 fct_chk( strcmp( (
char *) tag_str,
"c0f4302d8276c3d3" ) == 0 );
5359 FCT_TEST_BGN(gcm_nist_validation_aes_1281280102464_2)
5361 unsigned char key_str[128];
5362 unsigned char src_str[128];
5363 unsigned char dst_str[257];
5364 unsigned char iv_str[128];
5365 unsigned char add_str[128];
5366 unsigned char tag_str[128];
5367 unsigned char output[128];
5368 unsigned char tag_output[16];
5370 unsigned int key_len;
5371 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
5373 memset(key_str, 0x00, 128);
5374 memset(src_str, 0x00, 128);
5375 memset(dst_str, 0x00, 257);
5376 memset(iv_str, 0x00, 128);
5377 memset(add_str, 0x00, 128);
5378 memset(tag_str, 0x00, 128);
5379 memset(output, 0x00, 128);
5380 memset(tag_output, 0x00, 16);
5382 key_len =
unhexify( key_str,
"6398de910ff8f3acdc2217811a1da2a1" );
5384 iv_len =
unhexify( iv_str,
"fc69b21ec18195901ffa62260fa20454" );
5385 add_len =
unhexify( add_str,
"021f225240cc9a68c4886824d373f3a70fa32b3a926c78164642450287d269d39dbd49c8c71ce7b914f83e8b53bc61c6773f98318557b45f0cc2ef2539939df7a1e6765117f75631dc5640291d20e6402d22cd2e231f9c2c67cb24ab5d8a69933c49b89c9fb2ea57136a6bf1bffe8e04d8d6c813040215f051c654d93224edfc" );
5387 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
5390 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
5391 hexify( dst_str, output, pt_len );
5392 hexify( tag_str, tag_output, tag_len );
5394 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
5395 fct_chk( strcmp( (
char *) tag_str,
"314d1a332d3c590b" ) == 0 );
5401 FCT_TEST_BGN(gcm_nist_validation_aes_1281280102432_0)
5403 unsigned char key_str[128];
5404 unsigned char src_str[128];
5405 unsigned char dst_str[257];
5406 unsigned char iv_str[128];
5407 unsigned char add_str[128];
5408 unsigned char tag_str[128];
5409 unsigned char output[128];
5410 unsigned char tag_output[16];
5412 unsigned int key_len;
5413 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
5415 memset(key_str, 0x00, 128);
5416 memset(src_str, 0x00, 128);
5417 memset(dst_str, 0x00, 257);
5418 memset(iv_str, 0x00, 128);
5419 memset(add_str, 0x00, 128);
5420 memset(tag_str, 0x00, 128);
5421 memset(output, 0x00, 128);
5422 memset(tag_output, 0x00, 16);
5424 key_len =
unhexify( key_str,
"382d86868ccd08d417d94f3b73729e09" );
5426 iv_len =
unhexify( iv_str,
"069069c377958235171437b34e0fce76" );
5427 add_len =
unhexify( add_str,
"049af372e34ef7a92d0d49cf2dd03052dabacf2982eae6a817e6146ad799971be239ef5810ec3f6cc6990e9641a7b696392ad3faee38bb50746c1e93913c02dbbcbc6bf54f0d062f176779b7c0dd5d7ec7752601c9812fa80508a78bbd26922bed4f64b1ff2a8340ce1c01e317e3526cd8218ac24af87b07f8792849f6479b8e" );
5429 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
5432 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
5433 hexify( dst_str, output, pt_len );
5434 hexify( tag_str, tag_output, tag_len );
5436 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
5437 fct_chk( strcmp( (
char *) tag_str,
"ffa59fa2" ) == 0 );
5443 FCT_TEST_BGN(gcm_nist_validation_aes_1281280102432_1)
5445 unsigned char key_str[128];
5446 unsigned char src_str[128];
5447 unsigned char dst_str[257];
5448 unsigned char iv_str[128];
5449 unsigned char add_str[128];
5450 unsigned char tag_str[128];
5451 unsigned char output[128];
5452 unsigned char tag_output[16];
5454 unsigned int key_len;
5455 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
5457 memset(key_str, 0x00, 128);
5458 memset(src_str, 0x00, 128);
5459 memset(dst_str, 0x00, 257);
5460 memset(iv_str, 0x00, 128);
5461 memset(add_str, 0x00, 128);
5462 memset(tag_str, 0x00, 128);
5463 memset(output, 0x00, 128);
5464 memset(tag_output, 0x00, 16);
5466 key_len =
unhexify( key_str,
"21052b2fc7bc7a662aa9dc4b6a04f25d" );
5468 iv_len =
unhexify( iv_str,
"d7e5432def6a24d486a608e5c5c919a8" );
5469 add_len =
unhexify( add_str,
"1970ed40003bccabf7f3c57bbe5ba27e4254c1511413ed421cef3a6ffb9f0192987de83ae965478c3e9979637f8b3fa5d10d69b916f03fdc92ace7736f171660156d880114aefdcc164adb6f8c03940d9b43ce8881441b41cafee3351a56fcb632aa4b09ea81adea26fb0d8c6e1ae380df922a429ae1f5b82b38d9bda4323c51" );
5471 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
5474 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
5475 hexify( dst_str, output, pt_len );
5476 hexify( tag_str, tag_output, tag_len );
5478 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
5479 fct_chk( strcmp( (
char *) tag_str,
"ff342f4b" ) == 0 );
5485 FCT_TEST_BGN(gcm_nist_validation_aes_1281280102432_2)
5487 unsigned char key_str[128];
5488 unsigned char src_str[128];
5489 unsigned char dst_str[257];
5490 unsigned char iv_str[128];
5491 unsigned char add_str[128];
5492 unsigned char tag_str[128];
5493 unsigned char output[128];
5494 unsigned char tag_output[16];
5496 unsigned int key_len;
5497 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
5499 memset(key_str, 0x00, 128);
5500 memset(src_str, 0x00, 128);
5501 memset(dst_str, 0x00, 257);
5502 memset(iv_str, 0x00, 128);
5503 memset(add_str, 0x00, 128);
5504 memset(tag_str, 0x00, 128);
5505 memset(output, 0x00, 128);
5506 memset(tag_output, 0x00, 16);
5508 key_len =
unhexify( key_str,
"b6c53aa91a115db64653016375bd747e" );
5510 iv_len =
unhexify( iv_str,
"8163a4fd9c2c7010bc85c86177b194ab" );
5511 add_len =
unhexify( add_str,
"93cddd318b999262c7cde2838cb5c4d78f3eb1e78d305e5f808fa5613526d724e84a0188ff42a2c34bdf3b5fff70e82b3c30346e179fb3faf378bc4e207e335a44da53a5ae33770104b95397fb5acb746e6418d0dfc7368b035af53b470fc66bd0c210b68ce1b276820b621e919f044e5cff5ced7e07dbb8825bca6b4ddd8ee2" );
5513 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
5516 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
5517 hexify( dst_str, output, pt_len );
5518 hexify( tag_str, tag_output, tag_len );
5520 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
5521 fct_chk( strcmp( (
char *) tag_str,
"50b8acce" ) == 0 );
5527 FCT_TEST_BGN(gcm_nist_validation_aes_12812810240128_0)
5529 unsigned char key_str[128];
5530 unsigned char src_str[128];
5531 unsigned char dst_str[257];
5532 unsigned char iv_str[128];
5533 unsigned char add_str[128];
5534 unsigned char tag_str[128];
5535 unsigned char output[128];
5536 unsigned char tag_output[16];
5538 unsigned int key_len;
5539 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
5541 memset(key_str, 0x00, 128);
5542 memset(src_str, 0x00, 128);
5543 memset(dst_str, 0x00, 257);
5544 memset(iv_str, 0x00, 128);
5545 memset(add_str, 0x00, 128);
5546 memset(tag_str, 0x00, 128);
5547 memset(output, 0x00, 128);
5548 memset(tag_output, 0x00, 16);
5550 key_len =
unhexify( key_str,
"2251815f5bdfe1111c7f9ca246662f93" );
5551 pt_len =
unhexify( src_str,
"2247e781763edb1349db2cda53e5853b726c697b34497761373c3b6a1c44939207e570e14ea94bd5f9bf9b79de9cafedeabc9241e9147453648071f2240e10488c6e3d7077750a6f7ede235d44c5a96392778ec51f8aeb1a17fabe9b6c95fbc479fff954a676813ad3d2f71c76b9d096a0527f2e1b151aa8972147582c0fd2bf" );
5552 iv_len =
unhexify( iv_str,
"58973280c2a7122ddfcb25eb33e7270c" );
5555 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
5558 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
5559 hexify( dst_str, output, pt_len );
5560 hexify( tag_str, tag_output, tag_len );
5562 fct_chk( strcmp( (
char *) dst_str,
"b202eb243338849600e2feba7f25a05fe98323bd7cb721ac49d5a8136422564391462439fd92caad95fc8cdcaa9a797e1df3ef6ba7af6c761ceaf8922436dd5c8b1b257f801c40914c1331deb274c58eed102fd5fa63161c697e63dc9dfe60bd83cea885d241983a7e5f0d6a8fd02762084d52bf88ec35f156934e53dffc0395" ) == 0 );
5563 fct_chk( strcmp( (
char *) tag_str,
"c3701ce3284d08145ad8c6d48e4ced8c" ) == 0 );
5569 FCT_TEST_BGN(gcm_nist_validation_aes_12812810240128_1)
5571 unsigned char key_str[128];
5572 unsigned char src_str[128];
5573 unsigned char dst_str[257];
5574 unsigned char iv_str[128];
5575 unsigned char add_str[128];
5576 unsigned char tag_str[128];
5577 unsigned char output[128];
5578 unsigned char tag_output[16];
5580 unsigned int key_len;
5581 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
5583 memset(key_str, 0x00, 128);
5584 memset(src_str, 0x00, 128);
5585 memset(dst_str, 0x00, 257);
5586 memset(iv_str, 0x00, 128);
5587 memset(add_str, 0x00, 128);
5588 memset(tag_str, 0x00, 128);
5589 memset(output, 0x00, 128);
5590 memset(tag_output, 0x00, 16);
5592 key_len =
unhexify( key_str,
"3199b70e7115c74e3aa3745c18fce8d1" );
5593 pt_len =
unhexify( src_str,
"4fa0b090652d5a8dcd9b5f2ceaaa2dc87a40b30e2d59bdff09e1f204d1b90371de70935c385cf5b4d7e0c4e88661f418705370b901b97bf199b366e669bc727882d4aedf8171a8c39431f11af830358cd0d9e110da1a0cc6ef70efb255efdac1dc61e722a2d8b7fb4cd752c6350d558ae1ccd1c89f8ba44ab697df96681ee301" );
5594 iv_len =
unhexify( iv_str,
"808a019f7fb761e9701c0c4f1a1690e4" );
5597 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
5600 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
5601 hexify( dst_str, output, pt_len );
5602 hexify( tag_str, tag_output, tag_len );
5604 fct_chk( strcmp( (
char *) dst_str,
"8d5ed4146fb491db9456e92f753aa4f688a9bc276e6aebb782a0cdf7fe578d74ca3946fa7b7893eff6345e64251cb1b146442acb64041324e2847481fd4388b17f83206948e67c1e66b894d5d40ecac0bbe4db0c6f58b65a1f19f29429a9e76f78ef5dba0c94d88dfc06e6222a506f004d24cdb3fe26d6eb6e08e4fdf6289651" ) == 0 );
5605 fct_chk( strcmp( (
char *) tag_str,
"908806d668451d849ba0268523eb0e4a" ) == 0 );
5611 FCT_TEST_BGN(gcm_nist_validation_aes_12812810240128_2)
5613 unsigned char key_str[128];
5614 unsigned char src_str[128];
5615 unsigned char dst_str[257];
5616 unsigned char iv_str[128];
5617 unsigned char add_str[128];
5618 unsigned char tag_str[128];
5619 unsigned char output[128];
5620 unsigned char tag_output[16];
5622 unsigned int key_len;
5623 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
5625 memset(key_str, 0x00, 128);
5626 memset(src_str, 0x00, 128);
5627 memset(dst_str, 0x00, 257);
5628 memset(iv_str, 0x00, 128);
5629 memset(add_str, 0x00, 128);
5630 memset(tag_str, 0x00, 128);
5631 memset(output, 0x00, 128);
5632 memset(tag_output, 0x00, 16);
5634 key_len =
unhexify( key_str,
"63805cef84ca7fcf281b226c3ae37230" );
5635 pt_len =
unhexify( src_str,
"543fd64d1454ef6c007ee96b3ff5d2e4b7f5d15c23e7548dfd1dfad4da7774b8795e817fab3be7fbf8e4d0d351a743ea793d9d01385a552f78ede054be079aebd1511013de2096456e9fc1b83457fa1240cd39c17440d4b55c4e390119a759055ac851a02ea481eb83e294922d35f687a56d801eed638d289350e141116ffba8" );
5636 iv_len =
unhexify( iv_str,
"1aa9e75d7854509a85d995ee482b8eca" );
5639 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
5642 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
5643 hexify( dst_str, output, pt_len );
5644 hexify( tag_str, tag_output, tag_len );
5646 fct_chk( strcmp( (
char *) dst_str,
"98db9e8e3ff23f09e585e5326f525e4f8350a1f233a0aebd60d5951583eaf5220f1690ee3607ba98cf8cc99a90efb7197835957f2bda918a32e528f55d548e3c83d65910b956634224cd5415ff0332c165d1241f7a93976649ebed2cc7e62addb76231bb738ee8a291b62365965392aeb72acc5f0fbd2f88f5613fcf44a1b074" ) == 0 );
5647 fct_chk( strcmp( (
char *) tag_str,
"9b1baa0b318e1f6e953a9f90b21cd914" ) == 0 );
5653 FCT_TEST_BGN(gcm_nist_validation_aes_12812810240120_0)
5655 unsigned char key_str[128];
5656 unsigned char src_str[128];
5657 unsigned char dst_str[257];
5658 unsigned char iv_str[128];
5659 unsigned char add_str[128];
5660 unsigned char tag_str[128];
5661 unsigned char output[128];
5662 unsigned char tag_output[16];
5664 unsigned int key_len;
5665 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
5667 memset(key_str, 0x00, 128);
5668 memset(src_str, 0x00, 128);
5669 memset(dst_str, 0x00, 257);
5670 memset(iv_str, 0x00, 128);
5671 memset(add_str, 0x00, 128);
5672 memset(tag_str, 0x00, 128);
5673 memset(output, 0x00, 128);
5674 memset(tag_output, 0x00, 16);
5676 key_len =
unhexify( key_str,
"2ec9245e8f567e1cc8795bbf72f2999b" );
5677 pt_len =
unhexify( src_str,
"f266d0060d290339def5f6d8dbf7d120a4c645aa90470e168b4f35342a00b8c7b7230003657d377d8568d252765df142e97a9dbfb9711d9ccf396f3d51bd91673f129d58efd80ab83a0678303e29a0dbeb1fa9fdb7fbde586a17ace65e894374ec8da1ccd3e21851ab998534de46cb43b38e241edc04b5c571dfc0aa0074d4fa" );
5678 iv_len =
unhexify( iv_str,
"413628d9ff3e4067d840b0abc2cda0eb" );
5681 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
5684 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
5685 hexify( dst_str, output, pt_len );
5686 hexify( tag_str, tag_output, tag_len );
5688 fct_chk( strcmp( (
char *) dst_str,
"145d83092a269c8afea604e9192b8bb550b9bea85f842fcc4997c2b00c6f3ca46100e814e82389f27a69a12d29340c5827e607657a00fc72c4de30079e23760769e800ee4ce46957f82d61935d07d1c70dca836c19969dfd0fe0ea740a52e2d09b1c9aa137b5e8527756fb2c2298f8400949ba24a8351c1093626723a68a79f5" ) == 0 );
5689 fct_chk( strcmp( (
char *) tag_str,
"ad174d1edc713c187a5859a390fff8" ) == 0 );
5695 FCT_TEST_BGN(gcm_nist_validation_aes_12812810240120_1)
5697 unsigned char key_str[128];
5698 unsigned char src_str[128];
5699 unsigned char dst_str[257];
5700 unsigned char iv_str[128];
5701 unsigned char add_str[128];
5702 unsigned char tag_str[128];
5703 unsigned char output[128];
5704 unsigned char tag_output[16];
5706 unsigned int key_len;
5707 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
5709 memset(key_str, 0x00, 128);
5710 memset(src_str, 0x00, 128);
5711 memset(dst_str, 0x00, 257);
5712 memset(iv_str, 0x00, 128);
5713 memset(add_str, 0x00, 128);
5714 memset(tag_str, 0x00, 128);
5715 memset(output, 0x00, 128);
5716 memset(tag_output, 0x00, 16);
5718 key_len =
unhexify( key_str,
"b08df4acd253f9dd4abc52c4be488015" );
5719 pt_len =
unhexify( src_str,
"82f665910d853fd2b775bf66a1707935443574c90483fc33ba02d6479fafd99c5f816bc58a1393a44fb32711fbeb0d6936efeb3580f147c3019e9f2e2ef48b202bdd369c277791bce524f3b22ceb74c664143c4b1da819b229a5b480aa954be110ca006615d9cff5a158342a47cb6d04fbb817ae4ddff6d4f86b74205799c9c0" );
5720 iv_len =
unhexify( iv_str,
"e1c27d35520ea527f9a2cd9b0f717841" );
5723 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
5726 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
5727 hexify( dst_str, output, pt_len );
5728 hexify( tag_str, tag_output, tag_len );
5730 fct_chk( strcmp( (
char *) dst_str,
"f5b0fcd812061be999901595b3547e70f7144cc9e0b0098262be4c440e8637af782f536f571534a658ad1fb44360d9c454d1000d6957f261401e09c0f19f5146ee5433e378423f9c94a90af2185d38cbe2940a459d8409d987d04a1f3e686c2b91d4fae1f3e3bdc5a30569838201b7d30c7320d7cbd787bfd6cd40e7e2d071a1" ) == 0 );
5731 fct_chk( strcmp( (
char *) tag_str,
"fa31e58fa32d1208dd8a67fed44033" ) == 0 );
5737 FCT_TEST_BGN(gcm_nist_validation_aes_12812810240120_2)
5739 unsigned char key_str[128];
5740 unsigned char src_str[128];
5741 unsigned char dst_str[257];
5742 unsigned char iv_str[128];
5743 unsigned char add_str[128];
5744 unsigned char tag_str[128];
5745 unsigned char output[128];
5746 unsigned char tag_output[16];
5748 unsigned int key_len;
5749 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
5751 memset(key_str, 0x00, 128);
5752 memset(src_str, 0x00, 128);
5753 memset(dst_str, 0x00, 257);
5754 memset(iv_str, 0x00, 128);
5755 memset(add_str, 0x00, 128);
5756 memset(tag_str, 0x00, 128);
5757 memset(output, 0x00, 128);
5758 memset(tag_output, 0x00, 16);
5760 key_len =
unhexify( key_str,
"9c08d6efb167beb035f71554f64c12cd" );
5761 pt_len =
unhexify( src_str,
"704f59d5202108b949170532ac1e78edb0e06fa323c1c69202d7d22dea4d7342199cebe949e980a21ff0fac282b868cc31ff4f6674c393c0f2cae2374664314afaf7791974b6bd6af26ade7fc266a6cd2de4f3c1f479f895ff597998cc8b929c1f05db13d9b9a4d98c9bc606eee32915bbdaeec6576e1fa6e8b22e0bb1098074" );
5762 iv_len =
unhexify( iv_str,
"608d56f6dea2fdf175eae189d42a85fb" );
5765 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
5768 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
5769 hexify( dst_str, output, pt_len );
5770 hexify( tag_str, tag_output, tag_len );
5772 fct_chk( strcmp( (
char *) dst_str,
"2c7d2618808adcf8edf5a54119471b930e07488d5fac3dcb53f4ade43674d162881bee1f27dea6d158b254d4b432e17f211515bf595a9874d89f8cf748ddaf2324078029c6463312ad32eb0aa5ebefc31c7fbfd04b37ba6b766375952c211d160b943e9d3c5e144b581157bff9071d31cfc082b55c4a0fced386ef2fc75e1a7b" ) == 0 );
5773 fct_chk( strcmp( (
char *) tag_str,
"7a1ae03e2838294e286dca4fbbd9f1" ) == 0 );
5779 FCT_TEST_BGN(gcm_nist_validation_aes_12812810240112_0)
5781 unsigned char key_str[128];
5782 unsigned char src_str[128];
5783 unsigned char dst_str[257];
5784 unsigned char iv_str[128];
5785 unsigned char add_str[128];
5786 unsigned char tag_str[128];
5787 unsigned char output[128];
5788 unsigned char tag_output[16];
5790 unsigned int key_len;
5791 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
5793 memset(key_str, 0x00, 128);
5794 memset(src_str, 0x00, 128);
5795 memset(dst_str, 0x00, 257);
5796 memset(iv_str, 0x00, 128);
5797 memset(add_str, 0x00, 128);
5798 memset(tag_str, 0x00, 128);
5799 memset(output, 0x00, 128);
5800 memset(tag_output, 0x00, 16);
5802 key_len =
unhexify( key_str,
"192dbfdf86e48bf18710e706dc90e356" );
5803 pt_len =
unhexify( src_str,
"1d7c45c8ef6f9f073c7f186e4c876c2b8fbf22feeecdc111a19071f276e838ab0572c9a68e9ad464fa88ba8d8a162e9f5ee1c4983395a890990357673467988c057eb8a0342c41867baab41456edc3932531d1c4aa0b42ce2b388d2be579dfe332f40a9b864c5e33e2b3cfd73b68d65c4db9ec46d3ba1587a56cb7887dcb3c5e" );
5804 iv_len =
unhexify( iv_str,
"1a511f85e0e138f4241882c20689f881" );
5807 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
5810 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
5811 hexify( dst_str, output, pt_len );
5812 hexify( tag_str, tag_output, tag_len );
5814 fct_chk( strcmp( (
char *) dst_str,
"3e50e821fbf83433155de7b4eb3c9a2c148b08d9d3998a3486f517fb5d0a1338faabbf95e85fa9186385bcb9e26aaa5e473d3cc7af869872e4fb36ad16c5468d994e9c71a09dd2868977f3f9064664f6ffcbac1bd313a7803c304273d69ad20369bad36adeb38480563bc6db9aa0d11a0e03d09731171c1229a756037b2c285c" ) == 0 );
5815 fct_chk( strcmp( (
char *) tag_str,
"9393edf0934796eb97a8c513bbfc" ) == 0 );
5821 FCT_TEST_BGN(gcm_nist_validation_aes_12812810240112_1)
5823 unsigned char key_str[128];
5824 unsigned char src_str[128];
5825 unsigned char dst_str[257];
5826 unsigned char iv_str[128];
5827 unsigned char add_str[128];
5828 unsigned char tag_str[128];
5829 unsigned char output[128];
5830 unsigned char tag_output[16];
5832 unsigned int key_len;
5833 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
5835 memset(key_str, 0x00, 128);
5836 memset(src_str, 0x00, 128);
5837 memset(dst_str, 0x00, 257);
5838 memset(iv_str, 0x00, 128);
5839 memset(add_str, 0x00, 128);
5840 memset(tag_str, 0x00, 128);
5841 memset(output, 0x00, 128);
5842 memset(tag_output, 0x00, 16);
5844 key_len =
unhexify( key_str,
"daf9455bad8bee905c6cd464677b803f" );
5845 pt_len =
unhexify( src_str,
"af04226cc6eb84f8167a68c2cfde33a1521dcbe781e7b97a3fae732bcd8c0616a588200328902faa5a65a27e769a720d7ea23333cc1c66c4d4e4c53facca5d6af06aea7fb49b12b04cd6ae38fe28d71cd66f769d640beeb07f508a0e3f856902cbfde6919077de378cf0486cf177f897cd0a56b69db3a31b448ebbf8fdf63736" );
5846 iv_len =
unhexify( iv_str,
"6cfe8490e892f5ddba8bbd1cd522ba0b" );
5849 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
5852 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
5853 hexify( dst_str, output, pt_len );
5854 hexify( tag_str, tag_output, tag_len );
5856 fct_chk( strcmp( (
char *) dst_str,
"e5622ca7360272a33e30f7fbeaa00956e8af0d871c433c070c8854d818eab9717293e845106770ec07da372c75266239a225ad74465e255520218c6736e51070477d70976aa7d449c32a5c85bbd6931c76e9e4355f9697bad2ea3bcc0be005da15c62db219b074b71fe4a5512157143df2c1f70bb17c6d3740d8d20eef88535f" ) == 0 );
5857 fct_chk( strcmp( (
char *) tag_str,
"25fe6c9b2303b40ed31d1beea39a" ) == 0 );
5863 FCT_TEST_BGN(gcm_nist_validation_aes_12812810240112_2)
5865 unsigned char key_str[128];
5866 unsigned char src_str[128];
5867 unsigned char dst_str[257];
5868 unsigned char iv_str[128];
5869 unsigned char add_str[128];
5870 unsigned char tag_str[128];
5871 unsigned char output[128];
5872 unsigned char tag_output[16];
5874 unsigned int key_len;
5875 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
5877 memset(key_str, 0x00, 128);
5878 memset(src_str, 0x00, 128);
5879 memset(dst_str, 0x00, 257);
5880 memset(iv_str, 0x00, 128);
5881 memset(add_str, 0x00, 128);
5882 memset(tag_str, 0x00, 128);
5883 memset(output, 0x00, 128);
5884 memset(tag_output, 0x00, 16);
5886 key_len =
unhexify( key_str,
"82d166dddcbf4f7f66aa5ac6b12516bc" );
5887 pt_len =
unhexify( src_str,
"7883f4f96c0ef7f6d9fd7c2eaad25995943078559eb24a3e6650126ddaa32301b04f737dc27b648d6115ce08feac862cb888073b22aa648c752934bb7f9c566209a97499236f782758d6f6f9a012a2fb6885ca91858f9779cc93950baa731f1874629351e6186935475a20593f66cddefff89be0fc0f9b57695b147d9acd8157" );
5888 iv_len =
unhexify( iv_str,
"540c2a07689bf314bc8ede71df3f4358" );
5891 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
5894 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
5895 hexify( dst_str, output, pt_len );
5896 hexify( tag_str, tag_output, tag_len );
5898 fct_chk( strcmp( (
char *) dst_str,
"44806e76a40bbbc2de860cd36e93d64c9f4c11994f754db6a279d6eaecfdf19966512de5223d8332a407381114d50fadb03e33e347a5f4d87c3fbf35f2d5967ba295003a2c6c12fba8394aa5b7a31365791c630734a6b2ef84eed0738cb4bc229e93c4e8529aaeadecff7ab93887b9fad5f05a88a5ba9fb449053ce4c6375d1f" ) == 0 );
5899 fct_chk( strcmp( (
char *) tag_str,
"756d65c1b8a04485c3944e2a3cbc" ) == 0 );
5905 FCT_TEST_BGN(gcm_nist_validation_aes_12812810240104_0)
5907 unsigned char key_str[128];
5908 unsigned char src_str[128];
5909 unsigned char dst_str[257];
5910 unsigned char iv_str[128];
5911 unsigned char add_str[128];
5912 unsigned char tag_str[128];
5913 unsigned char output[128];
5914 unsigned char tag_output[16];
5916 unsigned int key_len;
5917 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
5919 memset(key_str, 0x00, 128);
5920 memset(src_str, 0x00, 128);
5921 memset(dst_str, 0x00, 257);
5922 memset(iv_str, 0x00, 128);
5923 memset(add_str, 0x00, 128);
5924 memset(tag_str, 0x00, 128);
5925 memset(output, 0x00, 128);
5926 memset(tag_output, 0x00, 16);
5928 key_len =
unhexify( key_str,
"81c1fca371968513a68ac09a7459042d" );
5929 pt_len =
unhexify( src_str,
"182cb89c94171b685016bad76c445cc4561aff8e3170dd251f62efbd44910ddf8eba8a67dd1a237f2f7336f436edcfbdf9928e94c3488189110d672488c6c4e0dc4a1fb6e67dee9a1bfc3f49d2f934f305f139e98f0ba9c1ab56b5ce9ddce4ab54b6970bf6499e5e825abbb23f9e320ee05aaf0d712c09b0134839c5609e178a" );
5930 iv_len =
unhexify( iv_str,
"7c962a92b8daa294b4962cc3020dcd0b" );
5933 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
5936 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
5937 hexify( dst_str, output, pt_len );
5938 hexify( tag_str, tag_output, tag_len );
5940 fct_chk( strcmp( (
char *) dst_str,
"f91e36c79db6789a3acec9e82ec777efc1958e7e5634d30a60239eb7cae1b48f40557965e8a6f6993db3f4ae443ba167753c89f52f610ab69159ff60233310c1bb2baccb936433270f8839758bc85c53604e771e3ab0df6d6bb02e860d0eb27f425c7d30fb7566aff982d289228da5ce5a45842e10ffbe9016c9e926d7f69863" ) == 0 );
5941 fct_chk( strcmp( (
char *) tag_str,
"0114c2de8f733fc18f203150a0" ) == 0 );
5947 FCT_TEST_BGN(gcm_nist_validation_aes_12812810240104_1)
5949 unsigned char key_str[128];
5950 unsigned char src_str[128];
5951 unsigned char dst_str[257];
5952 unsigned char iv_str[128];
5953 unsigned char add_str[128];
5954 unsigned char tag_str[128];
5955 unsigned char output[128];
5956 unsigned char tag_output[16];
5958 unsigned int key_len;
5959 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
5961 memset(key_str, 0x00, 128);
5962 memset(src_str, 0x00, 128);
5963 memset(dst_str, 0x00, 257);
5964 memset(iv_str, 0x00, 128);
5965 memset(add_str, 0x00, 128);
5966 memset(tag_str, 0x00, 128);
5967 memset(output, 0x00, 128);
5968 memset(tag_output, 0x00, 16);
5970 key_len =
unhexify( key_str,
"09ce73e733e880c6d7be92be3144db40" );
5971 pt_len =
unhexify( src_str,
"a283e20adb6efedc5530f4efd71840d5fe61c902a7511cdaa939f5030880f3675959ee96e39abe082a66eba2a5a93214b22c249d7167b7a0fda360d02df855d508c7ebae7016137e54290904909b2d41a59942abec76612b17ea76ffd1ee715aa2b05b1314c0ab28631f3934d0e9efe2aef0c711e75a5c62701b3358a414958d" );
5972 iv_len =
unhexify( iv_str,
"f72a2fc910fdeeefe8743f57290e80af" );
5975 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
5978 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
5979 hexify( dst_str, output, pt_len );
5980 hexify( tag_str, tag_output, tag_len );
5982 fct_chk( strcmp( (
char *) dst_str,
"fe9a7f59abc3720706c33fa40e106663d26c0f8da0d25deb90ada8130b6f95aaec07f4a7db342b678d102b2c81464e4ca9458732783cdc3a9d504232f44e2878b0aaeec0f88efa5d7e5fb146911dcdb4569de7f114e1854ad7a95894561bd0fc4d9a5b58b5164872833283ed88fdb4900b2a596db4e8379eed4e3a5c08d5fadf" ) == 0 );
5983 fct_chk( strcmp( (
char *) tag_str,
"9de97bfec1325936bd171c996a" ) == 0 );
5989 FCT_TEST_BGN(gcm_nist_validation_aes_12812810240104_2)
5991 unsigned char key_str[128];
5992 unsigned char src_str[128];
5993 unsigned char dst_str[257];
5994 unsigned char iv_str[128];
5995 unsigned char add_str[128];
5996 unsigned char tag_str[128];
5997 unsigned char output[128];
5998 unsigned char tag_output[16];
6000 unsigned int key_len;
6001 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
6003 memset(key_str, 0x00, 128);
6004 memset(src_str, 0x00, 128);
6005 memset(dst_str, 0x00, 257);
6006 memset(iv_str, 0x00, 128);
6007 memset(add_str, 0x00, 128);
6008 memset(tag_str, 0x00, 128);
6009 memset(output, 0x00, 128);
6010 memset(tag_output, 0x00, 16);
6012 key_len =
unhexify( key_str,
"e61d415db78d9f2695344350e0a8291e" );
6013 pt_len =
unhexify( src_str,
"730c3fa9e07eea73a734b17fcbc5a969dc2c04f448f44c7f6276e32ae3504e9b15fb664908f530e83a74e25a4525f74d315ab85d7b85005401370dc50fdb86e97baf3e7acb403e476193527a1a5d642ffad6cf2555d16d28cf4c4127189056389368b76aea806906b0a38b808cb02378eea48edc005cf2c21e6547502e31d2cb" );
6014 iv_len =
unhexify( iv_str,
"e09dee93466a3f35605b647d16b48452" );
6017 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
6020 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
6021 hexify( dst_str, output, pt_len );
6022 hexify( tag_str, tag_output, tag_len );
6024 fct_chk( strcmp( (
char *) dst_str,
"ae87e754c1af1175b474b0718e3560240f55194d946d101e7c0bc7af18d90a50fa41d68516e45dc2a4dba48d457ebff18a657a873e15620ed7cf6ed3a26195b9d354ea279b24ec7802e4e95d3f3765188a64d7b8d4b7c215e7d67385efc6288724a33a1a7994f21e0dc2970076af7cf31e9ad1098537543052a2b0f62e4e8a87" ) == 0 );
6025 fct_chk( strcmp( (
char *) tag_str,
"5de3c5716735d7d1b859debb6e" ) == 0 );
6031 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024096_0)
6033 unsigned char key_str[128];
6034 unsigned char src_str[128];
6035 unsigned char dst_str[257];
6036 unsigned char iv_str[128];
6037 unsigned char add_str[128];
6038 unsigned char tag_str[128];
6039 unsigned char output[128];
6040 unsigned char tag_output[16];
6042 unsigned int key_len;
6043 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
6045 memset(key_str, 0x00, 128);
6046 memset(src_str, 0x00, 128);
6047 memset(dst_str, 0x00, 257);
6048 memset(iv_str, 0x00, 128);
6049 memset(add_str, 0x00, 128);
6050 memset(tag_str, 0x00, 128);
6051 memset(output, 0x00, 128);
6052 memset(tag_output, 0x00, 16);
6054 key_len =
unhexify( key_str,
"19bf00b228ddb6e8f1fa4ba85f866475" );
6055 pt_len =
unhexify( src_str,
"10742aeda590024bac2696af8402580d2ec6ba3f51cc6f79b6cfbb3057634ced6033fa43dbaec9af8ce7e9706ca699ede88d89caed89ea023d14761bec49da724538b4f9672163a5bb5dbf92f5278fc0014eafce402cb408a1eaad6bc17ec0e835d6b80f4701f946661757b9b2d54d1b137841519dd38d72835893ea6d52a27f" );
6056 iv_len =
unhexify( iv_str,
"760c5b929ac3d33bee4dae0088a894f9" );
6059 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
6062 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
6063 hexify( dst_str, output, pt_len );
6064 hexify( tag_str, tag_output, tag_len );
6066 fct_chk( strcmp( (
char *) dst_str,
"b03d27bc7f4c9d48d555a38091347f371d0522ad4c347b4a23194c234c7877cd3621ce5a7c2fc26b38c7e6f1c2bf228ccec491f5bc352556c08e4e19ddc4e4b2c036f45a42aa425a5ff9a2e9c9e5580b538ee56fa804a86d9b1b59b6fb0d00216a96936755462979dc14990935919026fb51cdfef05b8dad03320a8112b7ada5" ) == 0 );
6067 fct_chk( strcmp( (
char *) tag_str,
"2f1cc79408c85a9867214061" ) == 0 );
6073 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024096_1)
6075 unsigned char key_str[128];
6076 unsigned char src_str[128];
6077 unsigned char dst_str[257];
6078 unsigned char iv_str[128];
6079 unsigned char add_str[128];
6080 unsigned char tag_str[128];
6081 unsigned char output[128];
6082 unsigned char tag_output[16];
6084 unsigned int key_len;
6085 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
6087 memset(key_str, 0x00, 128);
6088 memset(src_str, 0x00, 128);
6089 memset(dst_str, 0x00, 257);
6090 memset(iv_str, 0x00, 128);
6091 memset(add_str, 0x00, 128);
6092 memset(tag_str, 0x00, 128);
6093 memset(output, 0x00, 128);
6094 memset(tag_output, 0x00, 16);
6096 key_len =
unhexify( key_str,
"65bd9e7d9009dd6110dca657ccfe603e" );
6097 pt_len =
unhexify( src_str,
"c1b539324a001901c2461b9747f605a2f4043b9b0f54d1357049fd1819de06df6e29880d62ef7d91f9cdd1108f3cce323f6c32cec16f7bd434e539fd00ada476ef41efe7c6907ad1cb726717ab56d6e2d32042ee2df3f90d15e1515f0a15a5f06703e06e14229d18328116148b3cc39683918e42927f62aec49ee9bcc19be38d" );
6098 iv_len =
unhexify( iv_str,
"3fddf7e943326e431be540c49bb917c6" );
6101 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
6104 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
6105 hexify( dst_str, output, pt_len );
6106 hexify( tag_str, tag_output, tag_len );
6108 fct_chk( strcmp( (
char *) dst_str,
"2813d6eef070cbdee9d5d71caa8a88c631f0b71c41813c6219a765e4fb3e6eff9afe8f8f4394fbd5646fe80bab78806eddf7549d6ca3d0d16d47ef63db93cb5620e3814efd86be151b338ee6e2c681bd37be4039b2ea4a190feccd7d65cbd56ebda81f4b66ce12cc3e2cece731c37d4237a9dd0a2c1a7697bae42176a673d62a" ) == 0 );
6109 fct_chk( strcmp( (
char *) tag_str,
"96200bd3e64d5eea746693ba" ) == 0 );
6115 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024096_2)
6117 unsigned char key_str[128];
6118 unsigned char src_str[128];
6119 unsigned char dst_str[257];
6120 unsigned char iv_str[128];
6121 unsigned char add_str[128];
6122 unsigned char tag_str[128];
6123 unsigned char output[128];
6124 unsigned char tag_output[16];
6126 unsigned int key_len;
6127 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
6129 memset(key_str, 0x00, 128);
6130 memset(src_str, 0x00, 128);
6131 memset(dst_str, 0x00, 257);
6132 memset(iv_str, 0x00, 128);
6133 memset(add_str, 0x00, 128);
6134 memset(tag_str, 0x00, 128);
6135 memset(output, 0x00, 128);
6136 memset(tag_output, 0x00, 16);
6138 key_len =
unhexify( key_str,
"b9b8ac9215289aa003cecd53a90e0407" );
6139 pt_len =
unhexify( src_str,
"8a6fbd067144b6d50ea73a2a7abba3ee9677bbf00312c70d808fd124541ab936229d59842c8846569a063fecb8bd1945882abd987a936991d5cdbec087937f91c4f5513feffa1984a6b8d04a7b69eb4e93e90b6825778cd2ce9a0ce54d4a468c93884619f851d2294be0bbbeef5fc0c05d2384126289283d5ddaaccd89711d73" );
6140 iv_len =
unhexify( iv_str,
"27d367f3f0c60acf921f8d8b228a0b2f" );
6143 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
6146 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
6147 hexify( dst_str, output, pt_len );
6148 hexify( tag_str, tag_output, tag_len );
6150 fct_chk( strcmp( (
char *) dst_str,
"42d98ecfb4f707ec233c7f990b0cad8f39546b861b11d8cb9d939b29ff5ab315229d946ff55927dbde82c03aa73fd7857b2ad38fa55a827dda54d2726bcee66347ce42c9cfd13ba1507d209ff2388c0ea2474e17e31d8056593b722d3c2a302a716a288592b0a36547c7fd47f7595fee9d30f5bc09a9555d7f3169e26a924db1" ) == 0 );
6151 fct_chk( strcmp( (
char *) tag_str,
"d66974c95917ae1bf79b6685" ) == 0 );
6157 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024064_0)
6159 unsigned char key_str[128];
6160 unsigned char src_str[128];
6161 unsigned char dst_str[257];
6162 unsigned char iv_str[128];
6163 unsigned char add_str[128];
6164 unsigned char tag_str[128];
6165 unsigned char output[128];
6166 unsigned char tag_output[16];
6168 unsigned int key_len;
6169 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
6171 memset(key_str, 0x00, 128);
6172 memset(src_str, 0x00, 128);
6173 memset(dst_str, 0x00, 257);
6174 memset(iv_str, 0x00, 128);
6175 memset(add_str, 0x00, 128);
6176 memset(tag_str, 0x00, 128);
6177 memset(output, 0x00, 128);
6178 memset(tag_output, 0x00, 16);
6180 key_len =
unhexify( key_str,
"ccbcc39512425bc32350587f0fc3e8fd" );
6181 pt_len =
unhexify( src_str,
"57d6ccda317b7ea150b18d9558b39fd78d9cb52509aa5c095c5b46da89b79918c85d469ffac7226caddd670ac8f5add47fc382df1f32b4de9cc1b2ca7c2acfbdcaa08429b97e77eedea55c8ddc7814fe4c3cc1e21f95d94301ab77b4df7572d0b8778cb2befc0f4c4a5e93429ad52d6c2a75481f38d92edb1dac563154bf90b2" );
6182 iv_len =
unhexify( iv_str,
"0862ebfeb40ff24bfc65d3cc600f2897" );
6185 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
6188 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
6189 hexify( dst_str, output, pt_len );
6190 hexify( tag_str, tag_output, tag_len );
6192 fct_chk( strcmp( (
char *) dst_str,
"e6a77e90750cf0e4c276c50c3880b3f6fa357179cbd84e22f5b43cd10abcbe04b43f191ed3fabf83eaca886f4a7f48490fb1fd92ebdacb68c5158e9f81243f7cadc7a8ba39721df68dbf2406fcb5dab823202ceea7112e5d25952de1b922beda271e7677421fde25f8cde450c40667387e5abf8da42dfe891c52bdd9f5060dba" ) == 0 );
6193 fct_chk( strcmp( (
char *) tag_str,
"927d13cb90ee5f44" ) == 0 );
6199 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024064_1)
6201 unsigned char key_str[128];
6202 unsigned char src_str[128];
6203 unsigned char dst_str[257];
6204 unsigned char iv_str[128];
6205 unsigned char add_str[128];
6206 unsigned char tag_str[128];
6207 unsigned char output[128];
6208 unsigned char tag_output[16];
6210 unsigned int key_len;
6211 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
6213 memset(key_str, 0x00, 128);
6214 memset(src_str, 0x00, 128);
6215 memset(dst_str, 0x00, 257);
6216 memset(iv_str, 0x00, 128);
6217 memset(add_str, 0x00, 128);
6218 memset(tag_str, 0x00, 128);
6219 memset(output, 0x00, 128);
6220 memset(tag_output, 0x00, 16);
6222 key_len =
unhexify( key_str,
"396b53a694b28b717c104111c4752074" );
6223 pt_len =
unhexify( src_str,
"bbc3b818f4ff10b6822ea41f63ca53c27578a8126f5163a5014c60e1bc8c1a9bba67a3808c8aeee09ba9e584a3584e9b86895a3f0db2e64e71bb18b843b12f4ebbfaa1dff3734196f70c5a6d970277ab5337e8b940ae7c957646f8e96c6b5d84e9e97b620a926e655850d09bc2d94678704aa45d1788e7c23ecf37e2904a0786" );
6224 iv_len =
unhexify( iv_str,
"0981a151c6f6867d3830c1f9ef99c433" );
6227 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
6230 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
6231 hexify( dst_str, output, pt_len );
6232 hexify( tag_str, tag_output, tag_len );
6234 fct_chk( strcmp( (
char *) dst_str,
"72a5587076a1050b2b514f047ccdf7176c118db9236c0f72091513da39d7416734ac50e0a35b2905420214be8426a36e86863c9957693292bfc5bfc2e93d234a09e80f517edb7cf8e5d21d5ae6c2362b779a9b62b4c66202894d369d219ef0e4b52a342b71f248c18ffc345dc7eb0b47b3bc83ffdef921eb42b6d51abd889ef4" ) == 0 );
6235 fct_chk( strcmp( (
char *) tag_str,
"af99f8797495dd16" ) == 0 );
6241 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024064_2)
6243 unsigned char key_str[128];
6244 unsigned char src_str[128];
6245 unsigned char dst_str[257];
6246 unsigned char iv_str[128];
6247 unsigned char add_str[128];
6248 unsigned char tag_str[128];
6249 unsigned char output[128];
6250 unsigned char tag_output[16];
6252 unsigned int key_len;
6253 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
6255 memset(key_str, 0x00, 128);
6256 memset(src_str, 0x00, 128);
6257 memset(dst_str, 0x00, 257);
6258 memset(iv_str, 0x00, 128);
6259 memset(add_str, 0x00, 128);
6260 memset(tag_str, 0x00, 128);
6261 memset(output, 0x00, 128);
6262 memset(tag_output, 0x00, 16);
6264 key_len =
unhexify( key_str,
"af090618cb454324a82a75a91944dd6f" );
6265 pt_len =
unhexify( src_str,
"3ebca6ff138c527b851b27b9e3917bb9a07282197868351dd599b74b332610bd634422911393171305caa4fe3f6e89ab6c033ca759e118c2d8684b903966999125c748e04312ecd2c1ac3135c3be2df9c8c67be4d8303ac7aa6c21ca7b7c20b1108f5622d8e6079f41e4be4abda99f782ad35a085b7db83482dc71b8e5d8e71c" );
6266 iv_len =
unhexify( iv_str,
"3380a6f20875b7d561c4a137519cccd3" );
6269 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
6272 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
6273 hexify( dst_str, output, pt_len );
6274 hexify( tag_str, tag_output, tag_len );
6276 fct_chk( strcmp( (
char *) dst_str,
"6be8eebe7af78c062812513785e9803f302c771e8215e4c606fc5eddc3efd8b12c96e029b4287da55d8626583e58ce0e50c4ac5a39a1b0f309d5803386738397376c0ae155087f36fd86fdda4b5c8dd079011fa9a134ca8a76de570ef165b20d7d803544cd2f3a0ffede9b35ca1c982978bf95ac100af755553fdac38d988fe9" ) == 0 );
6277 fct_chk( strcmp( (
char *) tag_str,
"3e869dcac087aa6c" ) == 0 );
6283 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024032_0)
6285 unsigned char key_str[128];
6286 unsigned char src_str[128];
6287 unsigned char dst_str[257];
6288 unsigned char iv_str[128];
6289 unsigned char add_str[128];
6290 unsigned char tag_str[128];
6291 unsigned char output[128];
6292 unsigned char tag_output[16];
6294 unsigned int key_len;
6295 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
6297 memset(key_str, 0x00, 128);
6298 memset(src_str, 0x00, 128);
6299 memset(dst_str, 0x00, 257);
6300 memset(iv_str, 0x00, 128);
6301 memset(add_str, 0x00, 128);
6302 memset(tag_str, 0x00, 128);
6303 memset(output, 0x00, 128);
6304 memset(tag_output, 0x00, 16);
6306 key_len =
unhexify( key_str,
"041cae51d9e631ef70115be58f8818ef" );
6307 pt_len =
unhexify( src_str,
"f6748f4a261d876e37fe44a419cfe965888aa5ee195ae12237322f6e7ac4bfaaf16e8e29be507e2978339a1855ab918485011fd52f834bf0876ba8d89dfc01927e0930d03c0ac7dc7ba1554a879a2051011bcb34a5e4c7cea4d4fb5ed53b41ec8d17bd52b2e1b9dd417a84ac5913ce3f9fb04daf4d14be65f49d0767b9431b47" );
6308 iv_len =
unhexify( iv_str,
"c32f227659e0566faa09eb72d99f89c2" );
6311 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
6314 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
6315 hexify( dst_str, output, pt_len );
6316 hexify( tag_str, tag_output, tag_len );
6318 fct_chk( strcmp( (
char *) dst_str,
"f30fe6c8765c8c0af579c95bc2d182ccc346e587a57aa226eafb692675377a85e9ee08339a047b9cb674dabf5a25301d2c8c264bc06573e36e55ceaee39239e367b8f1a3d781a2020e548001f9f98850994c3aa79b13dfc93c1d7291befd91e044b2f5d2583d1a9f868fab4afecd46fec7d315b0cbf8a7331ef8f588d75f97e2" ) == 0 );
6319 fct_chk( strcmp( (
char *) tag_str,
"5629e1a4" ) == 0 );
6325 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024032_1)
6327 unsigned char key_str[128];
6328 unsigned char src_str[128];
6329 unsigned char dst_str[257];
6330 unsigned char iv_str[128];
6331 unsigned char add_str[128];
6332 unsigned char tag_str[128];
6333 unsigned char output[128];
6334 unsigned char tag_output[16];
6336 unsigned int key_len;
6337 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
6339 memset(key_str, 0x00, 128);
6340 memset(src_str, 0x00, 128);
6341 memset(dst_str, 0x00, 257);
6342 memset(iv_str, 0x00, 128);
6343 memset(add_str, 0x00, 128);
6344 memset(tag_str, 0x00, 128);
6345 memset(output, 0x00, 128);
6346 memset(tag_output, 0x00, 16);
6348 key_len =
unhexify( key_str,
"f0577d9a7dbf7b4ada5b9758eec4c847" );
6349 pt_len =
unhexify( src_str,
"5b559738634825921b5cb620b5b9f637f8b7ce33998cce1ed1a23ff01f84e58255d852a02e59e4394752405ecc15248f7616a33e64936f726de6fc6d10c3fce9ac0b3fcffbd755f16bff8462b3be24f7cf342c8d0bf1ca79b1cb4ea88d690644998a8ac3cafc8c18c8cb737e38a681026d46966b89c7d6c7a4ce7a1e1faecdd5" );
6350 iv_len =
unhexify( iv_str,
"b432473ae67205bc7a99f5ab2a2721e6" );
6353 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
6356 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
6357 hexify( dst_str, output, pt_len );
6358 hexify( tag_str, tag_output, tag_len );
6360 fct_chk( strcmp( (
char *) dst_str,
"ddfe664e28c5face3761deda1ab2dac6e36cfed538e3faf9d79c54e3c85b4baea9eedcef7f8f28c2feedec72ab2cc6aaae101b99512ef18e759b7828364e4daf9a572f8c6ad88eb82f7304989345aa4985e498dfebc58cbc45aa31c18c0dda5b1991fd998901c65807c8cff6058b1d5dfd583297da8451cef13f246547ad11df" ) == 0 );
6361 fct_chk( strcmp( (
char *) tag_str,
"ce55ac00" ) == 0 );
6367 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024032_2)
6369 unsigned char key_str[128];
6370 unsigned char src_str[128];
6371 unsigned char dst_str[257];
6372 unsigned char iv_str[128];
6373 unsigned char add_str[128];
6374 unsigned char tag_str[128];
6375 unsigned char output[128];
6376 unsigned char tag_output[16];
6378 unsigned int key_len;
6379 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
6381 memset(key_str, 0x00, 128);
6382 memset(src_str, 0x00, 128);
6383 memset(dst_str, 0x00, 257);
6384 memset(iv_str, 0x00, 128);
6385 memset(add_str, 0x00, 128);
6386 memset(tag_str, 0x00, 128);
6387 memset(output, 0x00, 128);
6388 memset(tag_output, 0x00, 16);
6390 key_len =
unhexify( key_str,
"6ca1d6ae9b5ddd6e3d68656c508df318" );
6391 pt_len =
unhexify( src_str,
"d160740aed955e30c1f946088b5bc5bbaf5c84f282c32f65d099509993628ba5a51b411c6ebf57d58e9176b490ab90fa8db8a3cdc67a5f8322d06d719d91f00ca07aa2a3977dd0838487f2e9d4dd285067a1f72bb8a6c9dfca107acf1f404995bb68ed9d7e12423efe570f144e0533fa34b8d0b7156112b85c94a8fa33d7a6d9" );
6392 iv_len =
unhexify( iv_str,
"68a494c9002dadf4f0303dd0ebd600c0" );
6395 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
6398 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
6399 hexify( dst_str, output, pt_len );
6400 hexify( tag_str, tag_output, tag_len );
6402 fct_chk( strcmp( (
char *) dst_str,
"276e362cb73b405b10a98731333f6accf0d19cb96c21419d6d56b30dcf73f7208906b0e3eb103b721cdbb7eb1d4ff29ec3b7e9d433205bd9ec48c59d0075a1507ddf09275426c0ce9a58b973e06d6fceee7054ba92b1df771011ac73e39e451d9ac3375c595631090a2296d423e3ef806ac20770abf78ad04114f65661804fae" ) == 0 );
6403 fct_chk( strcmp( (
char *) tag_str,
"8ff9a26e" ) == 0 );
6409 FCT_TEST_BGN(gcm_nist_validation_aes_12812810241024128_0)
6411 unsigned char key_str[128];
6412 unsigned char src_str[128];
6413 unsigned char dst_str[257];
6414 unsigned char iv_str[128];
6415 unsigned char add_str[128];
6416 unsigned char tag_str[128];
6417 unsigned char output[128];
6418 unsigned char tag_output[16];
6420 unsigned int key_len;
6421 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
6423 memset(key_str, 0x00, 128);
6424 memset(src_str, 0x00, 128);
6425 memset(dst_str, 0x00, 257);
6426 memset(iv_str, 0x00, 128);
6427 memset(add_str, 0x00, 128);
6428 memset(tag_str, 0x00, 128);
6429 memset(output, 0x00, 128);
6430 memset(tag_output, 0x00, 16);
6432 key_len =
unhexify( key_str,
"5a3e577743b4581519b84b7538fb32e7" );
6433 pt_len =
unhexify( src_str,
"172a0a14820448e5ffd017c18ee02219906f721c915c4f0ff13b7b7889812c0edb89f28be0c22deff76bc975d1ef8ef3fc40b10cce0d78933aa22e6adf2d4b7ee4ed6ef487eaddb666afd8671427f7525eb99af54a55d98159fc5d651266c65ccd915cbba60fb6e2c408ef177d682253c0b5410d77d08be1d8f175ca360becd0" );
6434 iv_len =
unhexify( iv_str,
"1e155ada52e250cee145d69b4a307bc0" );
6435 add_len =
unhexify( add_str,
"b9be2145b842d2f5c3d15ac032010400bffe31856441cb484d5c93e6710194b13e14077e132cfe03985d4b936bda9383c22c392968c748f7265213a8eac584aaa11eea35589e3536e39b3e4418248927fa9fcc027c5516e402445068ef793d349eb778b77fb0b37f51bfcc3c21df9999ca9985cc5bec6502445b068c2d061f41" );
6437 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
6440 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
6441 hexify( dst_str, output, pt_len );
6442 hexify( tag_str, tag_output, tag_len );
6444 fct_chk( strcmp( (
char *) dst_str,
"b5bd224140d6b826062e55754299a43a87cbe861360334897e82b7a6023ab0041736479c9aaca7c73f27e239a63e7433e048a8d2c2d26f0b18476aca7ac20837affacdffb57c618ce5982ba61fe1792c8a3a856970c095b0c4695dce961a354135075e0a786192d5875d16793a3ad0e3572a81efa24099f5ed9c92df55c15dd1" ) == 0 );
6445 fct_chk( strcmp( (
char *) tag_str,
"74df58fd4a2a68657ce35a3ef11a9c0b" ) == 0 );
6451 FCT_TEST_BGN(gcm_nist_validation_aes_12812810241024128_1)
6453 unsigned char key_str[128];
6454 unsigned char src_str[128];
6455 unsigned char dst_str[257];
6456 unsigned char iv_str[128];
6457 unsigned char add_str[128];
6458 unsigned char tag_str[128];
6459 unsigned char output[128];
6460 unsigned char tag_output[16];
6462 unsigned int key_len;
6463 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
6465 memset(key_str, 0x00, 128);
6466 memset(src_str, 0x00, 128);
6467 memset(dst_str, 0x00, 257);
6468 memset(iv_str, 0x00, 128);
6469 memset(add_str, 0x00, 128);
6470 memset(tag_str, 0x00, 128);
6471 memset(output, 0x00, 128);
6472 memset(tag_output, 0x00, 16);
6474 key_len =
unhexify( key_str,
"deb0ab6e8b0f392af6b89d253e923f1a" );
6475 pt_len =
unhexify( src_str,
"14a86c431bde5c0861e6bd2cb748a13b9bfb2a4a67a0bcf067960b3a9c7a75fc7ea321863c83693c70076462ec3179f4d82ed4a1155a4b5004842fb47482bd6a83804a05af2504f6f535eb9bdc95a9a2eb80c7dcd7dff54e3c00437e4da9c433c88f6d248e4754656acdf8ea7d68106b04ebb2f1cdb247fddb0bca1f8e9ed6a5" );
6476 iv_len =
unhexify( iv_str,
"c1bc587c3440f1f5dea5b0a4b5ee8dfd" );
6477 add_len =
unhexify( add_str,
"602cfb09e8bf250c3a2c248c4e91234629a4fe9a18c5f8b59df215e97dd873a7c1204bd0695796908daa28b77353e0e5b37877a7441d35633119c0aee9aa82c3c18a7f577d09293fafce1895dafea42f97222a33b001907b978f11471cc0adc46243e8f7fce94803d4d0595bc9fccb9b9396b52deb943280eac2c4eda54841bc" );
6479 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
6482 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
6483 hexify( dst_str, output, pt_len );
6484 hexify( tag_str, tag_output, tag_len );
6486 fct_chk( strcmp( (
char *) dst_str,
"a72d27136d0b4efc0aa2126a246ae4946e2c62cf5055f7bde263e7516ace2b7e12179980f8dcff18dc4fcd662f38d3b9dc7f8a057827ebf27e5dab85264d9325e0eea3b12f8e9e39ad686263df75b0758cc8af0be89882bb159c95b8de392b3e295c039a520d2e56b50a6370afa57adc967f7e4ff670dab471a57fb6c81401eb" ) == 0 );
6487 fct_chk( strcmp( (
char *) tag_str,
"eb26cdf879e0cb1320d786a642c4dfc0" ) == 0 );
6493 FCT_TEST_BGN(gcm_nist_validation_aes_12812810241024128_2)
6495 unsigned char key_str[128];
6496 unsigned char src_str[128];
6497 unsigned char dst_str[257];
6498 unsigned char iv_str[128];
6499 unsigned char add_str[128];
6500 unsigned char tag_str[128];
6501 unsigned char output[128];
6502 unsigned char tag_output[16];
6504 unsigned int key_len;
6505 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
6507 memset(key_str, 0x00, 128);
6508 memset(src_str, 0x00, 128);
6509 memset(dst_str, 0x00, 257);
6510 memset(iv_str, 0x00, 128);
6511 memset(add_str, 0x00, 128);
6512 memset(tag_str, 0x00, 128);
6513 memset(output, 0x00, 128);
6514 memset(tag_output, 0x00, 16);
6516 key_len =
unhexify( key_str,
"adf6006fb1cfea0f9641a4c35b864101" );
6517 pt_len =
unhexify( src_str,
"d21777e1fab632bffd82a58cb732794f112cd88bdda5a7a8d19c68ace343fd786e5e512013887105c21299f2d6ae23cae4f03047c68f019d98e76d2aa1b3a204f13f4cba13f5a8957b9aa3ebb44b8024b26cb6139a3bca3ada0520a68b8571ae89501b212a1f8ede5753d557ad2f38d9465dbb09b555300b13194bf7817321f7" );
6518 iv_len =
unhexify( iv_str,
"a349d97fc677d8ba6f72e8cc7191ab78" );
6519 add_len =
unhexify( add_str,
"5717bee8b31640f3999efda463d4b604c1cef62fc0dcc856efb4c50a8c6b902019c663279e1bf66fb52d82f8570b9a314647f4b1ed86eb89f4be8981225f94d4285f5ca9167434a1569b520b071ee4448d08cb8623b4cda6d1f7ad28e51a2df980b5a999025e9ba646707075a6cb2464c2a0d5fc804c98a79946fae0b4fa61fd" );
6521 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
6524 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
6525 hexify( dst_str, output, pt_len );
6526 hexify( tag_str, tag_output, tag_len );
6528 fct_chk( strcmp( (
char *) dst_str,
"345af0d804490586c9ffbada0404176f4cb1331fc77705175619f27d107512d3e6068323b276743284feb938c5718a5b013305fb42282a89e270d24585236fa18265dc7e8ddd2b3efe93a2ea05ab359323c75211f2133aa97022c9a937a467af37c92a795c682a30f2ba1c4ab2dc45e63c56cd3b29b0efac2caa3150e6a72aa3" ) == 0 );
6529 fct_chk( strcmp( (
char *) tag_str,
"ae7d2827c4f1422b728a9fd31d8d1918" ) == 0 );
6535 FCT_TEST_BGN(gcm_nist_validation_aes_12812810241024120_0)
6537 unsigned char key_str[128];
6538 unsigned char src_str[128];
6539 unsigned char dst_str[257];
6540 unsigned char iv_str[128];
6541 unsigned char add_str[128];
6542 unsigned char tag_str[128];
6543 unsigned char output[128];
6544 unsigned char tag_output[16];
6546 unsigned int key_len;
6547 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
6549 memset(key_str, 0x00, 128);
6550 memset(src_str, 0x00, 128);
6551 memset(dst_str, 0x00, 257);
6552 memset(iv_str, 0x00, 128);
6553 memset(add_str, 0x00, 128);
6554 memset(tag_str, 0x00, 128);
6555 memset(output, 0x00, 128);
6556 memset(tag_output, 0x00, 16);
6558 key_len =
unhexify( key_str,
"97c83d4628b65d94341984bbc266dc7a" );
6559 pt_len =
unhexify( src_str,
"e998cc0b7677fa2e504994e99cf7bbd84ba7e356d7da178f8ff40dddc046c70554ddec1d28aa23f9c4e6fcb9effeb8e28a883ad05bd0a6041b8a24d0fceff200a4e33996e279cbf029b11d58185adeb5e5e797a74d0d8b17adcf06dfbe3ee11d8e6bc3b6a8434de6e0ddfa0fd08c913f9fb911cefca72bc3f616b4ac9821f53c" );
6560 iv_len =
unhexify( iv_str,
"671dcc5001c2146bf8a4e522ad702bd8" );
6561 add_len =
unhexify( add_str,
"9eb12a42d2ca06a7da37fbc23d213f5e3f5e15580f01b0ea80eb4b6bd283e307dec965745ea3b3509d3269cf25808fc6a923e97d87d0c1a30b447a5a27a06d0c88a96cd90d990bf208f1abc4934f6a0ae34a694750a74ffb27f4bb66bc799d43570b01897b98b00e6a01b95b356b11d33e852b2010da5785a691246d0be2bcfb" );
6563 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
6566 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
6567 hexify( dst_str, output, pt_len );
6568 hexify( tag_str, tag_output, tag_len );
6570 fct_chk( strcmp( (
char *) dst_str,
"5a6d8930e473e292e67425748e8618569b7a478f1e183ba4e4a64385ac4b75d3d42b1afc34cc6daff341f10c1ad8f03d77179f52a7239ab3261f5fcd5a0b4282d26fa4d08bf0c8a5c96782c073ad63ad233dfe3aa0290a03d73de14d445b9ce4ea0e3b10a4aef71c5919969b7086353c942c479a1c052a749afde2325ef46f7f" ) == 0 );
6571 fct_chk( strcmp( (
char *) tag_str,
"b81cb7bfd0aaf22b7233bcfe363b95" ) == 0 );
6577 FCT_TEST_BGN(gcm_nist_validation_aes_12812810241024120_1)
6579 unsigned char key_str[128];
6580 unsigned char src_str[128];
6581 unsigned char dst_str[257];
6582 unsigned char iv_str[128];
6583 unsigned char add_str[128];
6584 unsigned char tag_str[128];
6585 unsigned char output[128];
6586 unsigned char tag_output[16];
6588 unsigned int key_len;
6589 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
6591 memset(key_str, 0x00, 128);
6592 memset(src_str, 0x00, 128);
6593 memset(dst_str, 0x00, 257);
6594 memset(iv_str, 0x00, 128);
6595 memset(add_str, 0x00, 128);
6596 memset(tag_str, 0x00, 128);
6597 memset(output, 0x00, 128);
6598 memset(tag_output, 0x00, 16);
6600 key_len =
unhexify( key_str,
"2dcd5c974c5d78cde0d3a677d0b1acdc" );
6601 pt_len =
unhexify( src_str,
"21b61035ca3c149d66608d77edd9770411e0ef73a97d4be9dcde95ed7997ba97117ae6c1979195a5d916ff7a1d43ddced5287004fb60a2c81c82b5f7c8a336a603c3eb7cb160bbf21b454f810681450d65deb64e7cd229333fc5e85dc29040d7da48511b6b2524f02eaeab422b5ca817796c47b9f2d7d498abc619b2ce2912bf" );
6602 iv_len =
unhexify( iv_str,
"7455fea1bbbfe9479830d403e33c9d1c" );
6603 add_len =
unhexify( add_str,
"d684d38f2b12111197ca512c54c8e29ef1c3b9b089a6923cdb327c763f0ac8c2ec0900c716e211e7cba1d7c13a60fe87f5d78e5d5215d92e57a0645d9b2eab4b11870b5f7bfa9f2c9e4b9fcf7596e7719b7d0c0e6cc16efe71d8bc92e16a83d4782f08e9b97dc85a18c435b51c940189a3c2608379a21a8c46633020b9b6cd10" );
6605 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
6608 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
6609 hexify( dst_str, output, pt_len );
6610 hexify( tag_str, tag_output, tag_len );
6612 fct_chk( strcmp( (
char *) dst_str,
"eb039d8cf0bf217e3f2aa529ba872c385f2770ede6ca4ed32fd22cd3fcbfddfb92d681f00df6fbf170a5dad71c9988d556cd74bc99e18a68683e0ea7b6ef90b21ff42cef8c4627e4051bff0da00054390e10036f430dbe217e5bd939295d9c9f64c2614d42ba62efe78763cc427027edbd0b7f72eceaa8b4776ba633f2c3d500" ) == 0 );
6613 fct_chk( strcmp( (
char *) tag_str,
"18e7b50fcec11c98fe5438a40a4164" ) == 0 );
6619 FCT_TEST_BGN(gcm_nist_validation_aes_12812810241024120_2)
6621 unsigned char key_str[128];
6622 unsigned char src_str[128];
6623 unsigned char dst_str[257];
6624 unsigned char iv_str[128];
6625 unsigned char add_str[128];
6626 unsigned char tag_str[128];
6627 unsigned char output[128];
6628 unsigned char tag_output[16];
6630 unsigned int key_len;
6631 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
6633 memset(key_str, 0x00, 128);
6634 memset(src_str, 0x00, 128);
6635 memset(dst_str, 0x00, 257);
6636 memset(iv_str, 0x00, 128);
6637 memset(add_str, 0x00, 128);
6638 memset(tag_str, 0x00, 128);
6639 memset(output, 0x00, 128);
6640 memset(tag_output, 0x00, 16);
6642 key_len =
unhexify( key_str,
"e5b132bb7aca3e01105848f9b37ff516" );
6643 pt_len =
unhexify( src_str,
"3b6d1a432b7fdb4022fc35d6b79ea03b6aa14d4ddf60a160e976909ca069242fb2e7d414d4e34ffdf9416823c4b3f4e018ac8ca689446647eda6a12029f886bcc9d18be150b451d78fa72b9c4dc13314077a5b04cffeb167005c7e8379940e6b998316bef9bf8b5a742e337663c0ed91d88d09d0c3ebec37aecaeb8277b13661" );
6644 iv_len =
unhexify( iv_str,
"24c1ba77d37f99253576f4963779fd59" );
6645 add_len =
unhexify( add_str,
"dedf78f05957bde906639bd35eacd8fba8582d288c9f14a25eb851a0a34c82fd91f2b78614ff46ca17fe7781d155cc30f3a62764b0614d57c89fddfdd46af4fa5fc540b9ee9076805d4d121aa0dad2449d228f1fc3c07d466c051c06db6846b9012e8d268c6e1e336121d272ca70d965389a5382fbfec0a439e979f16fab0283" );
6647 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
6650 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
6651 hexify( dst_str, output, pt_len );
6652 hexify( tag_str, tag_output, tag_len );
6654 fct_chk( strcmp( (
char *) dst_str,
"9976d2f3e16485b6b3699a541b6df386562b5ea4f6f9ff41d265b16e2d7d3c5f131bb5874cdffa87e704ae3cc24f1dccb62bababdcdedf8bac277a7277ca53a4d38fd31f9fc83f86a105663f045b70dabd553137b6d6222abb334b7be7689a4afa28103619f11b8b61aa92a63136ad5639f11bae64b25f09f1e2db701938fa5e" ) == 0 );
6655 fct_chk( strcmp( (
char *) tag_str,
"29d1b8a68472f2da27aa84be714108" ) == 0 );
6661 FCT_TEST_BGN(gcm_nist_validation_aes_12812810241024112_0)
6663 unsigned char key_str[128];
6664 unsigned char src_str[128];
6665 unsigned char dst_str[257];
6666 unsigned char iv_str[128];
6667 unsigned char add_str[128];
6668 unsigned char tag_str[128];
6669 unsigned char output[128];
6670 unsigned char tag_output[16];
6672 unsigned int key_len;
6673 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
6675 memset(key_str, 0x00, 128);
6676 memset(src_str, 0x00, 128);
6677 memset(dst_str, 0x00, 257);
6678 memset(iv_str, 0x00, 128);
6679 memset(add_str, 0x00, 128);
6680 memset(tag_str, 0x00, 128);
6681 memset(output, 0x00, 128);
6682 memset(tag_output, 0x00, 16);
6684 key_len =
unhexify( key_str,
"63628519a0f010620cbae37f8ad34570" );
6685 pt_len =
unhexify( src_str,
"6db2919208b09a8abe5e95dcfe0f957dce1ae0e5b29f06bf321dc815ceca094f38c5c812f591aedbc9fc28cc0317bd1d89d4a3ba14f7b3e5fb2e03778990a6006e0ec2ceb47c923f3b17473f99521491a4cb2f9bd435e3133dc90e129ded9d15d78e75bfb3492458ce0964d5614508ef2a38ea02ec8664ba901891a7cc86a62b" );
6686 iv_len =
unhexify( iv_str,
"ce0ad75b94ab2d3918abf255c854ecf6" );
6687 add_len =
unhexify( add_str,
"c29384bd7cd013fa02487867595d739d99886a3bbed7fd5acd689f3a74f240f14c8fffd0bdea1f83bfef7b58ce512849e3a986f37afa54ddc11719169a49bd7e7138a745053417ff80cab1a32ae9be476ccb61ae055b319fdee5dcab629bb237aeb7d998ce36dd9c6908451c3bca9d3582f7fd60e69f6298d43a3b958341b611" );
6689 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
6692 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
6693 hexify( dst_str, output, pt_len );
6694 hexify( tag_str, tag_output, tag_len );
6696 fct_chk( strcmp( (
char *) dst_str,
"6205d37d720cbb628dbd5069f38ded8e566030eadb7fbdf2ed827d5f5a0117a21c75ade89782b3dc4e7307d9a7ae406ead0145aea1b6cce286103a55ce195999214b84bc25281bd7fe511868a69944d483e05ea6b39b11558ab46a33d227734eb3a386e30d58c3029ef0cb4046c0856078d57a6df194aa8c0e10f9b6ed8fb40b" ) == 0 );
6697 fct_chk( strcmp( (
char *) tag_str,
"423fd542498825cc54501cb42b2c" ) == 0 );
6703 FCT_TEST_BGN(gcm_nist_validation_aes_12812810241024112_1)
6705 unsigned char key_str[128];
6706 unsigned char src_str[128];
6707 unsigned char dst_str[257];
6708 unsigned char iv_str[128];
6709 unsigned char add_str[128];
6710 unsigned char tag_str[128];
6711 unsigned char output[128];
6712 unsigned char tag_output[16];
6714 unsigned int key_len;
6715 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
6717 memset(key_str, 0x00, 128);
6718 memset(src_str, 0x00, 128);
6719 memset(dst_str, 0x00, 257);
6720 memset(iv_str, 0x00, 128);
6721 memset(add_str, 0x00, 128);
6722 memset(tag_str, 0x00, 128);
6723 memset(output, 0x00, 128);
6724 memset(tag_output, 0x00, 16);
6726 key_len =
unhexify( key_str,
"7c0e1c6bde79315f79f22ebc77107228" );
6727 pt_len =
unhexify( src_str,
"9cd56b16aa4e130c3dbf30e701e8784ff39f866031e778e9ab72b858c3e333e9589b4b6cd89d6546e52a478d92bd59d0e4756d6b5037ab1873d88242ef31be643745d26395385b71034f6f0c0c84816f0c6755965fc8a7718f891d618f226684bcc77f87fe168e178b330d4b4c0eb4791028017fe6c42e68b0e195654a5d65e5" );
6728 iv_len =
unhexify( iv_str,
"9011dee57c3b8e112efa4d2b816cf189" );
6729 add_len =
unhexify( add_str,
"57bfcccc6f00c0abbc5f30589dbb47597838fdd50dd622eeedee33824e63ba78753c05d2543687f60dde501757b6fb74c17fe34b3e9c455eb38cf078c8c77eff68d3e3b8c244cde70ddf61703664d34159a11785cc6626eb1cad70ab94405616fff52c0f781ee6b43ef2a449924a76b762035ff479cd6006c21a62a56a14650f" );
6731 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
6734 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
6735 hexify( dst_str, output, pt_len );
6736 hexify( tag_str, tag_output, tag_len );
6738 fct_chk( strcmp( (
char *) dst_str,
"2c1ef998747163104e5a7d2a440a1a1cc2c20446a9d0cf5f138f85c1f5afd90fdc3fa4932845c150518f40bfd56569a5479126c49061ef350b4fae895170b4eb94dad7b456890a822e1bcb57f9bde5bea747d17be3d18ea201cd99bc46fee21132c6918ffb0117744f6ba3f25bc8a50f9719854314b934c3a3230f4757a49113" ) == 0 );
6739 fct_chk( strcmp( (
char *) tag_str,
"4ef9aebb721dabe2d09101037a63" ) == 0 );
6745 FCT_TEST_BGN(gcm_nist_validation_aes_12812810241024112_2)
6747 unsigned char key_str[128];
6748 unsigned char src_str[128];
6749 unsigned char dst_str[257];
6750 unsigned char iv_str[128];
6751 unsigned char add_str[128];
6752 unsigned char tag_str[128];
6753 unsigned char output[128];
6754 unsigned char tag_output[16];
6756 unsigned int key_len;
6757 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
6759 memset(key_str, 0x00, 128);
6760 memset(src_str, 0x00, 128);
6761 memset(dst_str, 0x00, 257);
6762 memset(iv_str, 0x00, 128);
6763 memset(add_str, 0x00, 128);
6764 memset(tag_str, 0x00, 128);
6765 memset(output, 0x00, 128);
6766 memset(tag_output, 0x00, 16);
6768 key_len =
unhexify( key_str,
"93f3fa85dbdb2784fb078a34b1116eb1" );
6769 pt_len =
unhexify( src_str,
"e7a0fafda0b90cada671f5e2adfd2e2a5f14e4613ea76aad57e79e2cb532f655210614e2036d7ac005ed5e516814d8667ed71e0f29b9c7b470f4722327407cd6ce6dbd298cee37bff33c35e34cdfebbbf33934673469d6b98becd6d26868977e69e06deee99c118fd4da3530d367d20d15107c03efe0d7e7b38710231e0dcdf0" );
6770 iv_len =
unhexify( iv_str,
"f5a7b0b26d1e86f4fc69f81c9eeff2cd" );
6771 add_len =
unhexify( add_str,
"3d2a1dadccc597b5e7b6ce48760150dee01c8550b525c587abcce8c2c7fb6291683a58c2e42e7b7ba6a3c2a117ddb7e67ea058a78989d67946fd9551e30fcb52618dcb9fae079ca56b74572d7b6a7b6a5c60e906e9639eac5ee1a5a2db864721119da2c4c5110c2b8d487e792cf6929600f1587cb2d48efe6864019afc32af6e" );
6773 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
6776 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
6777 hexify( dst_str, output, pt_len );
6778 hexify( tag_str, tag_output, tag_len );
6780 fct_chk( strcmp( (
char *) dst_str,
"60da3f4b3a263bc0178379646bce391bf552f60d2833261962375d2960c629dedac681d86f7915ea3cffdad0f37e409668f923d7c860525b994b325396531994a2fbb2d4e909d0b1dce322e078b4b8cd99820a39ffd7b468bd3e73b418b9a2cd5757b7d45f0363574c925bc22d66645abd95a6b29ea6366d8c2252d1c5710d45" ) == 0 );
6781 fct_chk( strcmp( (
char *) tag_str,
"833d2c55f5ee493060540d6b5349" ) == 0 );
6787 FCT_TEST_BGN(gcm_nist_validation_aes_12812810241024104_0)
6789 unsigned char key_str[128];
6790 unsigned char src_str[128];
6791 unsigned char dst_str[257];
6792 unsigned char iv_str[128];
6793 unsigned char add_str[128];
6794 unsigned char tag_str[128];
6795 unsigned char output[128];
6796 unsigned char tag_output[16];
6798 unsigned int key_len;
6799 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
6801 memset(key_str, 0x00, 128);
6802 memset(src_str, 0x00, 128);
6803 memset(dst_str, 0x00, 257);
6804 memset(iv_str, 0x00, 128);
6805 memset(add_str, 0x00, 128);
6806 memset(tag_str, 0x00, 128);
6807 memset(output, 0x00, 128);
6808 memset(tag_output, 0x00, 16);
6810 key_len =
unhexify( key_str,
"163c05f69cdc4e518ff6445911d1ede0" );
6811 pt_len =
unhexify( src_str,
"84d8a1855423293de37ebfd9715a9b46b175bc6d44e94ac8a3e7d409e8a227a57a6b85144a8ee23564fadc28742b69e89c0d4aadf0a786f9a5d5f9198923643ffc0bfd0f96e43b08f1435d4afc0e49c0e2241d938780975bc7a31cdf38f30380753bdd66be72b4dff260a35dc10b9ba35059ba61b0beab16e35068721bd950e3" );
6812 iv_len =
unhexify( iv_str,
"4b16188249096682b88aa5e4a13f62c1" );
6813 add_len =
unhexify( add_str,
"a238d1111efb7811f6838c3cb6f3bf3e0ecee6d8efb26845391f8adb51e497e840ea40318bf8e3cf0681c3b69951c4f03d5a4b5edf7119a150eafe6dc16b68f3d2b91e1454637135148f4fec132bfd96ca088169a35961d4c663535b9852f12a00ec4c08082553a09ea046379ce747c717036154d063d876a2b95cd7bdb42daa" );
6815 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
6818 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
6819 hexify( dst_str, output, pt_len );
6820 hexify( tag_str, tag_output, tag_len );
6822 fct_chk( strcmp( (
char *) dst_str,
"3bf751cf63bc1b433be6075303986ac1d0592dee400774d0bb7a9e72224417639e1e83e69f34226b873365f41fdac925628f32ed4b572b374310edfd892c5e0c3197e59efbc22ee11f0d4a66bd73a6f5b0de7c1cbb0612a63a262af51d418577a9bae0a8577e547382878f13047a92f51a867f8b7d283d2099c34c236918f718" ) == 0 );
6823 fct_chk( strcmp( (
char *) tag_str,
"0d778299c4dc0415ca789dd5b2" ) == 0 );
6829 FCT_TEST_BGN(gcm_nist_validation_aes_12812810241024104_1)
6831 unsigned char key_str[128];
6832 unsigned char src_str[128];
6833 unsigned char dst_str[257];
6834 unsigned char iv_str[128];
6835 unsigned char add_str[128];
6836 unsigned char tag_str[128];
6837 unsigned char output[128];
6838 unsigned char tag_output[16];
6840 unsigned int key_len;
6841 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
6843 memset(key_str, 0x00, 128);
6844 memset(src_str, 0x00, 128);
6845 memset(dst_str, 0x00, 257);
6846 memset(iv_str, 0x00, 128);
6847 memset(add_str, 0x00, 128);
6848 memset(tag_str, 0x00, 128);
6849 memset(output, 0x00, 128);
6850 memset(tag_output, 0x00, 16);
6852 key_len =
unhexify( key_str,
"a2ff7cb9fe33b04a087d9ee6db58ec0e" );
6853 pt_len =
unhexify( src_str,
"ed7c22218009ceb5b322045fecc1fd748f27655397a09c2c29813eba9a5cbeebe88d4a35dfd741ef0ac1d11c4adbc6bfae824af88e3ce09f68d8ca7671de91ec9e2bd5f790d1cb1748e34b3560c9b10726ea4b85b127731d8a7fdfd0ddbed11aaf181799f71a68e542b43ed9889237d2fffe370f41064b810c2e14d1ab661517" );
6854 iv_len =
unhexify( iv_str,
"6c58eb8f1f561b180f07ede0d3ae3358" );
6855 add_len =
unhexify( add_str,
"00cb63fa0cf526c6db37e33cf092f3f421fd258d28446c9a7c687b941c7eb5e1c5be267db992d0d93ede0b09030f979d451ecbdbbbb386cf1d74b23d55b74f5f4d520c000c9a41922f54567ca7dfcd84c68883a23c7acc3db3cd8d340217ee7c5ea39b41cf2c0e58c270a19ee9e146d2dbfdaf8ba3e24fda7f2c5e4ba6563ef4" );
6857 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
6860 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
6861 hexify( dst_str, output, pt_len );
6862 hexify( tag_str, tag_output, tag_len );
6864 fct_chk( strcmp( (
char *) dst_str,
"f0f119bddf5ddf147fe06da9d4510d97369d8e345519df2188b8d2dbaf8b7d3e01f3c26475141aae224e5ce1b131c8096f0e2a17c4c2df62f76f009cfc8aa20ddcd75a6a4281cfa2225485ca22aabcb60ff11265acb92a19ed66797fc2b418ae4b8c70fbecf0fd63f6c22ad62bfd6f40d8d0e2abeb620b7b4f5d8b3e041a53e6" ) == 0 );
6865 fct_chk( strcmp( (
char *) tag_str,
"7885ca22c4afd7dc6cb440ea35" ) == 0 );
6871 FCT_TEST_BGN(gcm_nist_validation_aes_12812810241024104_2)
6873 unsigned char key_str[128];
6874 unsigned char src_str[128];
6875 unsigned char dst_str[257];
6876 unsigned char iv_str[128];
6877 unsigned char add_str[128];
6878 unsigned char tag_str[128];
6879 unsigned char output[128];
6880 unsigned char tag_output[16];
6882 unsigned int key_len;
6883 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
6885 memset(key_str, 0x00, 128);
6886 memset(src_str, 0x00, 128);
6887 memset(dst_str, 0x00, 257);
6888 memset(iv_str, 0x00, 128);
6889 memset(add_str, 0x00, 128);
6890 memset(tag_str, 0x00, 128);
6891 memset(output, 0x00, 128);
6892 memset(tag_output, 0x00, 16);
6894 key_len =
unhexify( key_str,
"2e739a485b6293b43535379e3b309fe8" );
6895 pt_len =
unhexify( src_str,
"699b9a5668042c48c63ffb323c0fab18446546417b2f33a69addce6178f9d5b7dfa891ff2004eb57a98ca012c2668e0614276d89b21b7bfa436b2aa1582daaa81a6a7722186e99dd16a5786fd0e8b09b194746232fd413984484524793a379112e297d733dce063408fe59367f5929c5086bc2191a8fdd60a346052c0d109d57" );
6896 iv_len =
unhexify( iv_str,
"c4deca3eeea80352624c93523f35e0ae" );
6897 add_len =
unhexify( add_str,
"704aa36a82d02c56f4992469bb7e8a3f7dda1326068bf6017e4a0c810352b476aea129c1ba1d4974bc0d0503dcf816b89c0dc8e6d066774ce97cea65b5fb5c7b5a7f93e5e2c7126dd3b241b958e47d8150b422bb91c4afc47d53cfc2d20176c2ea0c85b376dc46a86bbaa53c584aa561f6662d11de4e39e50f1a095b8555137b" );
6899 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
6902 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
6903 hexify( dst_str, output, pt_len );
6904 hexify( tag_str, tag_output, tag_len );
6906 fct_chk( strcmp( (
char *) dst_str,
"30b8fa2e52577a7e5cdc12a7c619615b134ad4b41893ba9120651cd35c6f2d48ec6b8b9fa99366c4d60e643a8ccb2cbb3568f7647f4ad1a12d14deb8aac00dc4ef780133ee8df8f494675deb7f678fed54e70d6bf43476854eb0286a49cd322cc18daa238d4580ee665fbc759295a3e12567beff3e823811093cf0f02d00820b" ) == 0 );
6907 fct_chk( strcmp( (
char *) tag_str,
"ff89ee52fa4eaeb748c8676490" ) == 0 );
6913 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024102496_0)
6915 unsigned char key_str[128];
6916 unsigned char src_str[128];
6917 unsigned char dst_str[257];
6918 unsigned char iv_str[128];
6919 unsigned char add_str[128];
6920 unsigned char tag_str[128];
6921 unsigned char output[128];
6922 unsigned char tag_output[16];
6924 unsigned int key_len;
6925 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
6927 memset(key_str, 0x00, 128);
6928 memset(src_str, 0x00, 128);
6929 memset(dst_str, 0x00, 257);
6930 memset(iv_str, 0x00, 128);
6931 memset(add_str, 0x00, 128);
6932 memset(tag_str, 0x00, 128);
6933 memset(output, 0x00, 128);
6934 memset(tag_output, 0x00, 16);
6936 key_len =
unhexify( key_str,
"6bbb12361c95953a8d757bcbb92568eb" );
6937 pt_len =
unhexify( src_str,
"c3fccc5693abe53a13e5209f80611fad1e81e7ce19a4612666d954b4b6d2062bee764181716d5fe0fe1de485bb739d6e8625d5b6cedcaaf6e4e5ec350bc2168c24d7764e75b0cf079d7ad1b5fc24dbed14c5ae4714734f424b3611de0f70a0a8d752fb143e1b7e51ebc965a06021de3718af30b067dde270d804fb5b87ffb29f" );
6938 iv_len =
unhexify( iv_str,
"48ca821e5e43fd58668380491d58cdfb" );
6939 add_len =
unhexify( add_str,
"e97280fd78eb8bd695227fc79420971081de8f24bc95d9a1794ed2bebf5b68d8b43ae8288eb5ce72db0740334ff9bc9b4e660418d3cff8c344e50c7962c367c26247806d0b5c2ae0420a724203dcf4fdefd6513f8263d995afa4780a9c4e92c25496106fec370d0450d907225190ecccfae634f11f8f74f6422a652b2b9af9e5" );
6941 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
6944 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
6945 hexify( dst_str, output, pt_len );
6946 hexify( tag_str, tag_output, tag_len );
6948 fct_chk( strcmp( (
char *) dst_str,
"61cfc5a6ab6847bf0127b35ce0712cbfa9cd28dfb3f0b4cac2624c52cf55f311e55e9abff2d4514c6feff801ea8739f874ded2efce4a440f2acd95eba6c75e09bcd91b898c98563a26b3df415658c4d04a6aaf547a90b03d1789bdf7ab8f09f6d9f222f567461380372a976240b7b180c3fa7b4507e53815af3f6b4a46973806" ) == 0 );
6949 fct_chk( strcmp( (
char *) tag_str,
"f86d5374d1ad269cc3f36756" ) == 0 );
6955 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024102496_1)
6957 unsigned char key_str[128];
6958 unsigned char src_str[128];
6959 unsigned char dst_str[257];
6960 unsigned char iv_str[128];
6961 unsigned char add_str[128];
6962 unsigned char tag_str[128];
6963 unsigned char output[128];
6964 unsigned char tag_output[16];
6966 unsigned int key_len;
6967 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
6969 memset(key_str, 0x00, 128);
6970 memset(src_str, 0x00, 128);
6971 memset(dst_str, 0x00, 257);
6972 memset(iv_str, 0x00, 128);
6973 memset(add_str, 0x00, 128);
6974 memset(tag_str, 0x00, 128);
6975 memset(output, 0x00, 128);
6976 memset(tag_output, 0x00, 16);
6978 key_len =
unhexify( key_str,
"1a0a9b2dd1ae31b3e47b6df979dd2fbf" );
6979 pt_len =
unhexify( src_str,
"353786f96620ae7dfa7aee163c7bb30384bb324b516cad13872f48e7251f6f4c5906748bf2a2f6167bc14453b2b2f513804308ba92d69639beac2f25274bd5477744281b7ef7d0661b3672cd45abd5bd30d98deac4ad0a565308c0224dff59e3190c86df6a5c52055f8e0f73fa024f99162219837c999a9c0a12c806f01227af" );
6980 iv_len =
unhexify( iv_str,
"b39c8615fa062412fd9b6ac3a7e626f6" );
6981 add_len =
unhexify( add_str,
"dea75b17cd13dd33b5016de549c44fa9c88baf424ac80c4835e868acb58082ffc4255c655878a1c627a44160d5e5054a0a04f65fdfb542cd342be2aa2e000117bf8cd67b02f3a3700755508f9af8379c226aded404117a5ca3fa70968495eab287064ee584b4ce596612f2c465d997518c6995518e3bb881967ab6b99d7f62d7" );
6983 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
6986 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
6987 hexify( dst_str, output, pt_len );
6988 hexify( tag_str, tag_output, tag_len );
6990 fct_chk( strcmp( (
char *) dst_str,
"8430b8735f0b002e098d513eec7b3a8431a3fdac2b7faf256a7bcf08f3dcd6fa549f029240acae4dbd4ad54752ba358c14893aaa67a003261c252020d14b521906b23c37dd80af703c2964ce13773dd72fa56c389768c6efbd485953900b56f6bbaa837f1668f478677621a297d4b5a2c1a86f689d8644caec51435b0dd66c77" ) == 0 );
6991 fct_chk( strcmp( (
char *) tag_str,
"f000f2d398df18534428f382" ) == 0 );
6997 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024102496_2)
6999 unsigned char key_str[128];
7000 unsigned char src_str[128];
7001 unsigned char dst_str[257];
7002 unsigned char iv_str[128];
7003 unsigned char add_str[128];
7004 unsigned char tag_str[128];
7005 unsigned char output[128];
7006 unsigned char tag_output[16];
7008 unsigned int key_len;
7009 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
7011 memset(key_str, 0x00, 128);
7012 memset(src_str, 0x00, 128);
7013 memset(dst_str, 0x00, 257);
7014 memset(iv_str, 0x00, 128);
7015 memset(add_str, 0x00, 128);
7016 memset(tag_str, 0x00, 128);
7017 memset(output, 0x00, 128);
7018 memset(tag_output, 0x00, 16);
7020 key_len =
unhexify( key_str,
"4da736fba2b7202ea2ba60793da3344d" );
7021 pt_len =
unhexify( src_str,
"4f004852edd5dcde13507252ed8c2b20a093ac9081ce2a8133c48d2807e5f968c04a20dd52c070d6c43c704b8650da7f94e5450e0d34cfc2b2d2ba7cb5343e6b4281633c6c065dae27fab18ca71bea018eba94d20e78c5e3223c70f50cb77399c1a89436f1e7213673ae825d4fc5523645031696df10f9b5238c03f733b4dfcf" );
7022 iv_len =
unhexify( iv_str,
"8572af442c9af9652a192d893c18b8c3" );
7023 add_len =
unhexify( add_str,
"429915c3309fba2a42b8e89f42a9376a2f329805a4d6daae11e9a20c2f982671ef8a7539a9657777d03cbf755ef93be0d8e426ed00899a59e8b963fd44269d64692ed07b231cde93e85397cf125a75032ca3726ea1ff1b05d79f2040c1135012b90597186c1db2e16cd128d45a7b9d934ec01341d9030e9721c62f62003059b8" );
7025 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
7028 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
7029 hexify( dst_str, output, pt_len );
7030 hexify( tag_str, tag_output, tag_len );
7032 fct_chk( strcmp( (
char *) dst_str,
"ff4e46c4236304b8d52ba2d6db269f95d2cd5fe4318ce930d407051469c7e36e44bbcc909c4966276f5a2ec70021982fecbeae34df235a3e9e0370afa5a269ca8847a84b8477f7ddd6055d0f800ff4d413f63db517c96d15dbe78655748edd820f2ee79df5eca31711870022f1f5394b84f05bfef97f99cbd6205f8e522b3d5e" ) == 0 );
7033 fct_chk( strcmp( (
char *) tag_str,
"624b0b5b6374c5153835b8e5" ) == 0 );
7039 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024102464_0)
7041 unsigned char key_str[128];
7042 unsigned char src_str[128];
7043 unsigned char dst_str[257];
7044 unsigned char iv_str[128];
7045 unsigned char add_str[128];
7046 unsigned char tag_str[128];
7047 unsigned char output[128];
7048 unsigned char tag_output[16];
7050 unsigned int key_len;
7051 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
7053 memset(key_str, 0x00, 128);
7054 memset(src_str, 0x00, 128);
7055 memset(dst_str, 0x00, 257);
7056 memset(iv_str, 0x00, 128);
7057 memset(add_str, 0x00, 128);
7058 memset(tag_str, 0x00, 128);
7059 memset(output, 0x00, 128);
7060 memset(tag_output, 0x00, 16);
7062 key_len =
unhexify( key_str,
"5bcc874114b9d78c3eb748a783d1448c" );
7063 pt_len =
unhexify( src_str,
"7d57418bcea007247f5e18c17a2e4601c3eb8c89f61ed365d5aebee7593cdd63871d964a25fc9d723f291d39e0c4f75012471faf8e06db60c4ad8a26cf434bd82a29a8b653fdda1b86a7e4800c1d70cb5d8b8a1d1af52894082bb282ffdde8f0128a4abb68aedcfcb59160f6b5aaf452812f4d00472d2862a8b22480e71231b3" );
7064 iv_len =
unhexify( iv_str,
"5f4fde440faa9537d62e62994ab20fb5" );
7065 add_len =
unhexify( add_str,
"b5dfe0d971f2920ba4c029d4c346a49788b499faacdb18b8f905f1457a8b9fa48709893516a7b48bc601710bfd73c12da094c29df5776d491c9978f8ab237f605785b0304488f1c20bf5a767ba6d5e1e2961957aa107bdba2358b81ef1e06576db985b3ef8194725b75d49de1de3a57f161dede508e37ad3356134fa0a1aa48e" );
7067 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
7070 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
7071 hexify( dst_str, output, pt_len );
7072 hexify( tag_str, tag_output, tag_len );
7074 fct_chk( strcmp( (
char *) dst_str,
"6bc0dec98bece6c4e245fe978f6db113deca75e1b475bc31f1da0c7457a85ee7aac8be5f2121c0610b99a2c64519fc2514b643c379b4f53c5432b9729aea9fcecb88a2e2d0a6e74be04859a66f55fb2af1598bcb039108ef7fcfd99d94e79287ec1f62bd1bf5ff9dd51ab12fae4f6e21b95ca50032f9a65bd85f9a1aa0524950" ) == 0 );
7075 fct_chk( strcmp( (
char *) tag_str,
"354fb8bcd38f2a26" ) == 0 );
7081 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024102464_1)
7083 unsigned char key_str[128];
7084 unsigned char src_str[128];
7085 unsigned char dst_str[257];
7086 unsigned char iv_str[128];
7087 unsigned char add_str[128];
7088 unsigned char tag_str[128];
7089 unsigned char output[128];
7090 unsigned char tag_output[16];
7092 unsigned int key_len;
7093 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
7095 memset(key_str, 0x00, 128);
7096 memset(src_str, 0x00, 128);
7097 memset(dst_str, 0x00, 257);
7098 memset(iv_str, 0x00, 128);
7099 memset(add_str, 0x00, 128);
7100 memset(tag_str, 0x00, 128);
7101 memset(output, 0x00, 128);
7102 memset(tag_output, 0x00, 16);
7104 key_len =
unhexify( key_str,
"427c89146eb7d76578dc173bd9e15cda" );
7105 pt_len =
unhexify( src_str,
"1d39249130404d60ed40241cf3354458e06f1474b3723569d88235f03098053fc99010f39435620acc710a4e386b2ecbf9b327a8dcfbeddc084353fff029d24787ce81e74a5e1ac1ef096e0a2ae882a669ca168275806bb7f462e66c941fffc6ed44b9628450e03a5032676c1ee4aedfcb1767150d56c7d73a8a47f6d19854fa" );
7106 iv_len =
unhexify( iv_str,
"0092e76cd8882e5f77f4c8514491705d" );
7107 add_len =
unhexify( add_str,
"0ac4631358bb9375e07756692bde59d27012e921f054fdfea0ddb242c43421f4c7241cb210cb5c172d053de2763efd565f1138fbe7f9cd998d825ab800df900843474ebf857b3371c555b89670e86354fe430f715ebbd0ecad974fea34e3bbae43d3ca3ca178f3361f0a11fd75f60e9140f44364b02a073dcce8339fa28cb5ad" );
7109 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
7112 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
7113 hexify( dst_str, output, pt_len );
7114 hexify( tag_str, tag_output, tag_len );
7116 fct_chk( strcmp( (
char *) dst_str,
"2b385e9df4ed41cdca53a4ac8cb3e0af75eddd518b6727380712950d96c34bc6a0a6ac02184c1987548932b116ec9ae7abf01157a50e422b3e6aa62deb0cb2d81bf7fe0c25041a355ccaaeb049abb0393acfe90d869e9edfdfb646971bbb1ba9e5983cd0e2739158fab31be26cfdf9286d347b58b00f75d9f48ece1353308a91" ) == 0 );
7117 fct_chk( strcmp( (
char *) tag_str,
"905cdf228a68bebb" ) == 0 );
7123 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024102464_2)
7125 unsigned char key_str[128];
7126 unsigned char src_str[128];
7127 unsigned char dst_str[257];
7128 unsigned char iv_str[128];
7129 unsigned char add_str[128];
7130 unsigned char tag_str[128];
7131 unsigned char output[128];
7132 unsigned char tag_output[16];
7134 unsigned int key_len;
7135 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
7137 memset(key_str, 0x00, 128);
7138 memset(src_str, 0x00, 128);
7139 memset(dst_str, 0x00, 257);
7140 memset(iv_str, 0x00, 128);
7141 memset(add_str, 0x00, 128);
7142 memset(tag_str, 0x00, 128);
7143 memset(output, 0x00, 128);
7144 memset(tag_output, 0x00, 16);
7146 key_len =
unhexify( key_str,
"2e09660909a9aa0a50958016c3e07895" );
7147 pt_len =
unhexify( src_str,
"d7b2ceb182d4a8ed57572c4237ba99bbdd589093db0f71732f9e67559d3054fa1af195aa4864fde413549d27468ffe7c5c23e242cab4ae4bb9e2657422dc3fc78fbdcde892ed202be1e47f095b09cfc53cfe86cb16e2e95444492ad5d0eef053178d6b0485731be7a5193563bf56f63cc0687fc01679254d74e9ed788645004c" );
7148 iv_len =
unhexify( iv_str,
"c4f865be8b5062e488b1725749a87945" );
7149 add_len =
unhexify( add_str,
"26f50acdefde4d585fc6de6c6234c9ead40684349a2bfd022df93d9774c9f5b8f50474032a417bdcc21a74da72c0297437a0cef8f527c9205797f77b4227c272e08ad0b120a2a31ef13e372cad2387ccc1bcefc88dd58899821d68f3be6a4b2cd08697d1897efcd6ed3a0d7849f6cbb50e46800627cfd26964e2cfe9f36624d9" );
7151 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
7154 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
7155 hexify( dst_str, output, pt_len );
7156 hexify( tag_str, tag_output, tag_len );
7158 fct_chk( strcmp( (
char *) dst_str,
"321f6d79a6658c7c2b67fe3c932237593a6ec7e6fd8198abc6b0b6ba5d4dac9e0695f0c64dde1c94c0383839ee37f8bbfcc516f24871fd79a9b9135ceef841e4c8ddf6b57962c0e8ad7aaf210e97a43489097270756404fddde637de461b8644fef244142820e1af12b90f16748b0915a6b773dfbbdf6b16f1beaccb4cd5edba" ) == 0 );
7159 fct_chk( strcmp( (
char *) tag_str,
"b294db7ed69912dc" ) == 0 );
7165 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024102432_0)
7167 unsigned char key_str[128];
7168 unsigned char src_str[128];
7169 unsigned char dst_str[257];
7170 unsigned char iv_str[128];
7171 unsigned char add_str[128];
7172 unsigned char tag_str[128];
7173 unsigned char output[128];
7174 unsigned char tag_output[16];
7176 unsigned int key_len;
7177 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
7179 memset(key_str, 0x00, 128);
7180 memset(src_str, 0x00, 128);
7181 memset(dst_str, 0x00, 257);
7182 memset(iv_str, 0x00, 128);
7183 memset(add_str, 0x00, 128);
7184 memset(tag_str, 0x00, 128);
7185 memset(output, 0x00, 128);
7186 memset(tag_output, 0x00, 16);
7188 key_len =
unhexify( key_str,
"5e45d57981f65a6b170efa758cf4553d" );
7189 pt_len =
unhexify( src_str,
"bc8d4c418442743f2fdbaf95b8f87b7c15a3176085e34addf4cf0fb3c2df15587526691b07e6407ba16999b72382635a2aebb62d05c1547a7d074c857a23107c7577864e7f7bcdb5b6d1fb50136391f89c42d3f02754b0e4ed0fcb0c03576b986af5c12cf9bf5e0c585d6aaf49d0c6fb2ec30eae97b2b850a35474bfb9a2c069" );
7190 iv_len =
unhexify( iv_str,
"b43403b627fe9e0135192d1a048c6faa" );
7191 add_len =
unhexify( add_str,
"7a27ea26c7607e4e7e627f3161bdf15f21f3d62dc33df14951971712f960d3b2082d75395c5008e5ea00d282d350f86dac8c61f5c0f90e7797a5b61ee96f7e332ec5de51cb1377e47c641f326d1e58817c8c95feb5b2923758e33b279191d0a9ffd09b7619b0318a70775e36abf5f7ab59422ff68914e7b478c448a7b141c4bf" );
7193 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
7196 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
7197 hexify( dst_str, output, pt_len );
7198 hexify( tag_str, tag_output, tag_len );
7200 fct_chk( strcmp( (
char *) dst_str,
"90d8a6218da063c38e0f06d548a3d5685fd3e0fbaf609c77bdd573bb9c63f30590eaf8b181a2feb81c8b3f5f34a94dc94b905036a6c69b97263302b8674d9e09325065588e97c0b5b33116981f1f362a7c5bb1e996c126c31fbd63791772f4d594632f408fdf011b3f2cc750b060452c181e8e09697c8662c00c8d4f29d875a7" ) == 0 );
7201 fct_chk( strcmp( (
char *) tag_str,
"611abef7" ) == 0 );
7207 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024102432_1)
7209 unsigned char key_str[128];
7210 unsigned char src_str[128];
7211 unsigned char dst_str[257];
7212 unsigned char iv_str[128];
7213 unsigned char add_str[128];
7214 unsigned char tag_str[128];
7215 unsigned char output[128];
7216 unsigned char tag_output[16];
7218 unsigned int key_len;
7219 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
7221 memset(key_str, 0x00, 128);
7222 memset(src_str, 0x00, 128);
7223 memset(dst_str, 0x00, 257);
7224 memset(iv_str, 0x00, 128);
7225 memset(add_str, 0x00, 128);
7226 memset(tag_str, 0x00, 128);
7227 memset(output, 0x00, 128);
7228 memset(tag_output, 0x00, 16);
7230 key_len =
unhexify( key_str,
"00d4bf20509a61bc76430ffa5f013589" );
7231 pt_len =
unhexify( src_str,
"036a191a388cf3c57c9e6f0e2f5c8bc3d5c25ee8e2fedfadb7b7433155c7e79304f0905ab2a17e1f04f2f2dacd4a41521d6ce213961df9dc9101d41df4e44246488fbedb75a01256fbc7784769eb8f99d44d5eabf93cf667ebae2437ccedc79efa58c075183d46a5c20bf4c81e0f9754ad35af65f7c8aafe7daa3460c6892b1a" );
7232 iv_len =
unhexify( iv_str,
"25b1026a009470a5ca8caeeb67200792" );
7233 add_len =
unhexify( add_str,
"fd75acfd5aa25fb8bccb53672e5d6a8080081506cf03df2bab0746a353510996e0237d6354ee0210a41f20f88ec6569f2b200b28c6a31464a0533a6bc45afef3ae381425a3606de2866dba694124d96da9d0a2b061b787524ee6e5d3b1ef5c4bcf168810aa177660b7e1379ac8a480ce43d73dfcc696873cea2df419f372651e" );
7235 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
7238 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
7239 hexify( dst_str, output, pt_len );
7240 hexify( tag_str, tag_output, tag_len );
7242 fct_chk( strcmp( (
char *) dst_str,
"cab80615b666c47fcabf0d9805842ab2805150abad4de0ae8b12306bed504d4a7f91f52379df65cb9587577e59dafcd4203d2ed2743d35472285e9522db0ce3dd027a01c79ac64caee29ef3752a077254b0dca269f6f206f6cc575e8fedb0ba525dcf6252fa6f7b688556933f1dee84b2ad36a266695ce8672229cedd82f20a1" ) == 0 );
7243 fct_chk( strcmp( (
char *) tag_str,
"3287478c" ) == 0 );
7249 FCT_TEST_BGN(gcm_nist_validation_aes_1281281024102432_2)
7251 unsigned char key_str[128];
7252 unsigned char src_str[128];
7253 unsigned char dst_str[257];
7254 unsigned char iv_str[128];
7255 unsigned char add_str[128];
7256 unsigned char tag_str[128];
7257 unsigned char output[128];
7258 unsigned char tag_output[16];
7260 unsigned int key_len;
7261 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
7263 memset(key_str, 0x00, 128);
7264 memset(src_str, 0x00, 128);
7265 memset(dst_str, 0x00, 257);
7266 memset(iv_str, 0x00, 128);
7267 memset(add_str, 0x00, 128);
7268 memset(tag_str, 0x00, 128);
7269 memset(output, 0x00, 128);
7270 memset(tag_output, 0x00, 16);
7272 key_len =
unhexify( key_str,
"fe481476fce76efcfc78ed144b0756f1" );
7273 pt_len =
unhexify( src_str,
"246e1f2babab8da98b17cc928bd49504d7d87ea2cc174f9ffb7dbafe5969ff824a0bcb52f35441d22f3edcd10fab0ec04c0bde5abd3624ca25cbb4541b5d62a3deb52c00b75d68aaf0504d51f95b8dcbebdd8433f4966c584ac7f8c19407ca927a79fa4ead2688c4a7baafb4c31ef83c05e8848ec2b4f657aab84c109c91c277" );
7274 iv_len =
unhexify( iv_str,
"1a2c18c6bf13b3b2785610c71ccd98ca" );
7275 add_len =
unhexify( add_str,
"b0ab3cb5256575774b8242b89badfbe0dfdfd04f5dd75a8e5f218b28d3f6bc085a013defa5f5b15dfb46132db58ed7a9ddb812d28ee2f962796ad988561a381c02d1cf37dca5fd33e081d61cc7b3ab0b477947524a4ca4cb48c36f48b302c440be6f5777518a60585a8a16cea510dbfc5580b0daac49a2b1242ff55e91a8eae8" );
7277 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
7280 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
7281 hexify( dst_str, output, pt_len );
7282 hexify( tag_str, tag_output, tag_len );
7284 fct_chk( strcmp( (
char *) dst_str,
"5587620bbb77f70afdf3cdb7ae390edd0473286d86d3f862ad70902d90ff1d315947c959f016257a8fe1f52cc22a54f21de8cb60b74808ac7b22ea7a15945371e18b77c9571aad631aa080c60c1e472019fa85625fc80ed32a51d05e397a8987c8fece197a566689d24d05361b6f3a75616c89db6123bf5902960b21a18bc03a" ) == 0 );
7285 fct_chk( strcmp( (
char *) tag_str,
"bd4265a8" ) == 0 );
7291 FCT_TEST_BGN(gcm_nist_validation_aes_19212800128_0)
7293 unsigned char key_str[128];
7294 unsigned char src_str[128];
7295 unsigned char dst_str[257];
7296 unsigned char iv_str[128];
7297 unsigned char add_str[128];
7298 unsigned char tag_str[128];
7299 unsigned char output[128];
7300 unsigned char tag_output[16];
7302 unsigned int key_len;
7303 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
7305 memset(key_str, 0x00, 128);
7306 memset(src_str, 0x00, 128);
7307 memset(dst_str, 0x00, 257);
7308 memset(iv_str, 0x00, 128);
7309 memset(add_str, 0x00, 128);
7310 memset(tag_str, 0x00, 128);
7311 memset(output, 0x00, 128);
7312 memset(tag_output, 0x00, 16);
7314 key_len =
unhexify( key_str,
"f8022b8988383d5cfd7d9e0e208146e7868d3d714fe85744" );
7316 iv_len =
unhexify( iv_str,
"5fccd8cb551cfc9c20998da4cb981d49" );
7319 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
7322 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
7323 hexify( dst_str, output, pt_len );
7324 hexify( tag_str, tag_output, tag_len );
7326 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
7327 fct_chk( strcmp( (
char *) tag_str,
"1b5c6c9a28f5edfa4cf99176b0f14077" ) == 0 );
7333 FCT_TEST_BGN(gcm_nist_validation_aes_19212800128_1)
7335 unsigned char key_str[128];
7336 unsigned char src_str[128];
7337 unsigned char dst_str[257];
7338 unsigned char iv_str[128];
7339 unsigned char add_str[128];
7340 unsigned char tag_str[128];
7341 unsigned char output[128];
7342 unsigned char tag_output[16];
7344 unsigned int key_len;
7345 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
7347 memset(key_str, 0x00, 128);
7348 memset(src_str, 0x00, 128);
7349 memset(dst_str, 0x00, 257);
7350 memset(iv_str, 0x00, 128);
7351 memset(add_str, 0x00, 128);
7352 memset(tag_str, 0x00, 128);
7353 memset(output, 0x00, 128);
7354 memset(tag_output, 0x00, 16);
7356 key_len =
unhexify( key_str,
"a7d4456b8e16b82283b677bd8c4b1f56dc7f153b5cfa746f" );
7358 iv_len =
unhexify( iv_str,
"081de4a3f71f5d6fdf7801ff6c667f7d" );
7361 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
7364 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
7365 hexify( dst_str, output, pt_len );
7366 hexify( tag_str, tag_output, tag_len );
7368 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
7369 fct_chk( strcmp( (
char *) tag_str,
"90c2729c5ba04f8f5c73726c910640aa" ) == 0 );
7375 FCT_TEST_BGN(gcm_nist_validation_aes_19212800128_2)
7377 unsigned char key_str[128];
7378 unsigned char src_str[128];
7379 unsigned char dst_str[257];
7380 unsigned char iv_str[128];
7381 unsigned char add_str[128];
7382 unsigned char tag_str[128];
7383 unsigned char output[128];
7384 unsigned char tag_output[16];
7386 unsigned int key_len;
7387 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
7389 memset(key_str, 0x00, 128);
7390 memset(src_str, 0x00, 128);
7391 memset(dst_str, 0x00, 257);
7392 memset(iv_str, 0x00, 128);
7393 memset(add_str, 0x00, 128);
7394 memset(tag_str, 0x00, 128);
7395 memset(output, 0x00, 128);
7396 memset(tag_output, 0x00, 16);
7398 key_len =
unhexify( key_str,
"5779b60b536b096c9348cd8dafb3451280791e319b7198c2" );
7400 iv_len =
unhexify( iv_str,
"62f8e195bc79957ca8ce99a88ded1a02" );
7403 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
7406 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
7407 hexify( dst_str, output, pt_len );
7408 hexify( tag_str, tag_output, tag_len );
7410 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
7411 fct_chk( strcmp( (
char *) tag_str,
"699d71bb63c668b533c357662f861513" ) == 0 );
7417 FCT_TEST_BGN(gcm_nist_validation_aes_19212800120_0)
7419 unsigned char key_str[128];
7420 unsigned char src_str[128];
7421 unsigned char dst_str[257];
7422 unsigned char iv_str[128];
7423 unsigned char add_str[128];
7424 unsigned char tag_str[128];
7425 unsigned char output[128];
7426 unsigned char tag_output[16];
7428 unsigned int key_len;
7429 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
7431 memset(key_str, 0x00, 128);
7432 memset(src_str, 0x00, 128);
7433 memset(dst_str, 0x00, 257);
7434 memset(iv_str, 0x00, 128);
7435 memset(add_str, 0x00, 128);
7436 memset(tag_str, 0x00, 128);
7437 memset(output, 0x00, 128);
7438 memset(tag_output, 0x00, 16);
7440 key_len =
unhexify( key_str,
"966cfb078f695c8ad84ede2fb96fb89488fa271dd3b50346" );
7442 iv_len =
unhexify( iv_str,
"4a7b709d45745d94c5433b01fc9d57fb" );
7445 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
7448 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
7449 hexify( dst_str, output, pt_len );
7450 hexify( tag_str, tag_output, tag_len );
7452 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
7453 fct_chk( strcmp( (
char *) tag_str,
"4a9bd213420629a5f6e471650060e0" ) == 0 );
7459 FCT_TEST_BGN(gcm_nist_validation_aes_19212800120_1)
7461 unsigned char key_str[128];
7462 unsigned char src_str[128];
7463 unsigned char dst_str[257];
7464 unsigned char iv_str[128];
7465 unsigned char add_str[128];
7466 unsigned char tag_str[128];
7467 unsigned char output[128];
7468 unsigned char tag_output[16];
7470 unsigned int key_len;
7471 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
7473 memset(key_str, 0x00, 128);
7474 memset(src_str, 0x00, 128);
7475 memset(dst_str, 0x00, 257);
7476 memset(iv_str, 0x00, 128);
7477 memset(add_str, 0x00, 128);
7478 memset(tag_str, 0x00, 128);
7479 memset(output, 0x00, 128);
7480 memset(tag_output, 0x00, 16);
7482 key_len =
unhexify( key_str,
"cc69ed684af2c2bd2b3e2d2f9faf98acf8071a686c31e8e3" );
7484 iv_len =
unhexify( iv_str,
"0bd4197e5ab294ab7ab1e6ec75db2ac0" );
7487 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
7490 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
7491 hexify( dst_str, output, pt_len );
7492 hexify( tag_str, tag_output, tag_len );
7494 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
7495 fct_chk( strcmp( (
char *) tag_str,
"6632b618b4cab963dd671fd53d2075" ) == 0 );
7501 FCT_TEST_BGN(gcm_nist_validation_aes_19212800120_2)
7503 unsigned char key_str[128];
7504 unsigned char src_str[128];
7505 unsigned char dst_str[257];
7506 unsigned char iv_str[128];
7507 unsigned char add_str[128];
7508 unsigned char tag_str[128];
7509 unsigned char output[128];
7510 unsigned char tag_output[16];
7512 unsigned int key_len;
7513 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
7515 memset(key_str, 0x00, 128);
7516 memset(src_str, 0x00, 128);
7517 memset(dst_str, 0x00, 257);
7518 memset(iv_str, 0x00, 128);
7519 memset(add_str, 0x00, 128);
7520 memset(tag_str, 0x00, 128);
7521 memset(output, 0x00, 128);
7522 memset(tag_output, 0x00, 16);
7524 key_len =
unhexify( key_str,
"99deafc5ec6155043b53a86d466c2b652d59b7274bb844ef" );
7526 iv_len =
unhexify( iv_str,
"09d18e85e5ed38f51e04a724faf33a0e" );
7529 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
7532 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
7533 hexify( dst_str, output, pt_len );
7534 hexify( tag_str, tag_output, tag_len );
7536 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
7537 fct_chk( strcmp( (
char *) tag_str,
"90bfade2f07f38b2192e24689b61cb" ) == 0 );
7543 FCT_TEST_BGN(gcm_nist_validation_aes_19212800112_0)
7545 unsigned char key_str[128];
7546 unsigned char src_str[128];
7547 unsigned char dst_str[257];
7548 unsigned char iv_str[128];
7549 unsigned char add_str[128];
7550 unsigned char tag_str[128];
7551 unsigned char output[128];
7552 unsigned char tag_output[16];
7554 unsigned int key_len;
7555 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
7557 memset(key_str, 0x00, 128);
7558 memset(src_str, 0x00, 128);
7559 memset(dst_str, 0x00, 257);
7560 memset(iv_str, 0x00, 128);
7561 memset(add_str, 0x00, 128);
7562 memset(tag_str, 0x00, 128);
7563 memset(output, 0x00, 128);
7564 memset(tag_output, 0x00, 16);
7566 key_len =
unhexify( key_str,
"5c0c706a1fd48005e0fd0ed91b4d9f0028c500dccb28ca73" );
7568 iv_len =
unhexify( iv_str,
"595716e15498454577d3581e94f5c77e" );
7571 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
7574 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
7575 hexify( dst_str, output, pt_len );
7576 hexify( tag_str, tag_output, tag_len );
7578 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
7579 fct_chk( strcmp( (
char *) tag_str,
"8b10eacb1f127f4c58cbb8c3516c" ) == 0 );
7585 FCT_TEST_BGN(gcm_nist_validation_aes_19212800112_1)
7587 unsigned char key_str[128];
7588 unsigned char src_str[128];
7589 unsigned char dst_str[257];
7590 unsigned char iv_str[128];
7591 unsigned char add_str[128];
7592 unsigned char tag_str[128];
7593 unsigned char output[128];
7594 unsigned char tag_output[16];
7596 unsigned int key_len;
7597 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
7599 memset(key_str, 0x00, 128);
7600 memset(src_str, 0x00, 128);
7601 memset(dst_str, 0x00, 257);
7602 memset(iv_str, 0x00, 128);
7603 memset(add_str, 0x00, 128);
7604 memset(tag_str, 0x00, 128);
7605 memset(output, 0x00, 128);
7606 memset(tag_output, 0x00, 16);
7608 key_len =
unhexify( key_str,
"ae8e125507ea16d5282fe8bac42d3cb4908b717f345e6a38" );
7610 iv_len =
unhexify( iv_str,
"0a7f64edb8cd8052fcd5b92e20c0bc2d" );
7613 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
7616 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
7617 hexify( dst_str, output, pt_len );
7618 hexify( tag_str, tag_output, tag_len );
7620 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
7621 fct_chk( strcmp( (
char *) tag_str,
"467a2c0ba1d24c414f758200b8a4" ) == 0 );
7627 FCT_TEST_BGN(gcm_nist_validation_aes_19212800112_2)
7629 unsigned char key_str[128];
7630 unsigned char src_str[128];
7631 unsigned char dst_str[257];
7632 unsigned char iv_str[128];
7633 unsigned char add_str[128];
7634 unsigned char tag_str[128];
7635 unsigned char output[128];
7636 unsigned char tag_output[16];
7638 unsigned int key_len;
7639 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
7641 memset(key_str, 0x00, 128);
7642 memset(src_str, 0x00, 128);
7643 memset(dst_str, 0x00, 257);
7644 memset(iv_str, 0x00, 128);
7645 memset(add_str, 0x00, 128);
7646 memset(tag_str, 0x00, 128);
7647 memset(output, 0x00, 128);
7648 memset(tag_output, 0x00, 16);
7650 key_len =
unhexify( key_str,
"02176a5a5d8cb8f5ccee3f66a22181765ce730751c135198" );
7652 iv_len =
unhexify( iv_str,
"c19ed1f52f5ebbcf89ab1907b9ebc7f7" );
7655 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
7658 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
7659 hexify( dst_str, output, pt_len );
7660 hexify( tag_str, tag_output, tag_len );
7662 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
7663 fct_chk( strcmp( (
char *) tag_str,
"6525beb5856d6f29105777e31457" ) == 0 );
7669 FCT_TEST_BGN(gcm_nist_validation_aes_19212800104_0)
7671 unsigned char key_str[128];
7672 unsigned char src_str[128];
7673 unsigned char dst_str[257];
7674 unsigned char iv_str[128];
7675 unsigned char add_str[128];
7676 unsigned char tag_str[128];
7677 unsigned char output[128];
7678 unsigned char tag_output[16];
7680 unsigned int key_len;
7681 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
7683 memset(key_str, 0x00, 128);
7684 memset(src_str, 0x00, 128);
7685 memset(dst_str, 0x00, 257);
7686 memset(iv_str, 0x00, 128);
7687 memset(add_str, 0x00, 128);
7688 memset(tag_str, 0x00, 128);
7689 memset(output, 0x00, 128);
7690 memset(tag_output, 0x00, 16);
7692 key_len =
unhexify( key_str,
"4434d6bce3a33551733d7afe8cd477a79be8eeac19bc0a05" );
7694 iv_len =
unhexify( iv_str,
"b0eafdf326886eaacb750dcf2c104abe" );
7697 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
7700 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
7701 hexify( dst_str, output, pt_len );
7702 hexify( tag_str, tag_output, tag_len );
7704 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
7705 fct_chk( strcmp( (
char *) tag_str,
"ab9f7923a3b9228cb9ecd7f907" ) == 0 );
7711 FCT_TEST_BGN(gcm_nist_validation_aes_19212800104_1)
7713 unsigned char key_str[128];
7714 unsigned char src_str[128];
7715 unsigned char dst_str[257];
7716 unsigned char iv_str[128];
7717 unsigned char add_str[128];
7718 unsigned char tag_str[128];
7719 unsigned char output[128];
7720 unsigned char tag_output[16];
7722 unsigned int key_len;
7723 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
7725 memset(key_str, 0x00, 128);
7726 memset(src_str, 0x00, 128);
7727 memset(dst_str, 0x00, 257);
7728 memset(iv_str, 0x00, 128);
7729 memset(add_str, 0x00, 128);
7730 memset(tag_str, 0x00, 128);
7731 memset(output, 0x00, 128);
7732 memset(tag_output, 0x00, 16);
7734 key_len =
unhexify( key_str,
"39994c2520a6196cc3f3e8c6e4833286ce37399e0379563b" );
7736 iv_len =
unhexify( iv_str,
"dbf9c40266d95191d70739e932cd8572" );
7739 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
7742 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
7743 hexify( dst_str, output, pt_len );
7744 hexify( tag_str, tag_output, tag_len );
7746 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
7747 fct_chk( strcmp( (
char *) tag_str,
"b29acaf5addd6b379315535375" ) == 0 );
7753 FCT_TEST_BGN(gcm_nist_validation_aes_19212800104_2)
7755 unsigned char key_str[128];
7756 unsigned char src_str[128];
7757 unsigned char dst_str[257];
7758 unsigned char iv_str[128];
7759 unsigned char add_str[128];
7760 unsigned char tag_str[128];
7761 unsigned char output[128];
7762 unsigned char tag_output[16];
7764 unsigned int key_len;
7765 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
7767 memset(key_str, 0x00, 128);
7768 memset(src_str, 0x00, 128);
7769 memset(dst_str, 0x00, 257);
7770 memset(iv_str, 0x00, 128);
7771 memset(add_str, 0x00, 128);
7772 memset(tag_str, 0x00, 128);
7773 memset(output, 0x00, 128);
7774 memset(tag_output, 0x00, 16);
7776 key_len =
unhexify( key_str,
"1f27d054114a264b37ee1821a077773750cc79d28594f506" );
7778 iv_len =
unhexify( iv_str,
"6739d43092620f44b57e65035ce14565" );
7781 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
7784 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
7785 hexify( dst_str, output, pt_len );
7786 hexify( tag_str, tag_output, tag_len );
7788 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
7789 fct_chk( strcmp( (
char *) tag_str,
"25e0434a3660704eee4bb82962" ) == 0 );
7795 FCT_TEST_BGN(gcm_nist_validation_aes_1921280096_0)
7797 unsigned char key_str[128];
7798 unsigned char src_str[128];
7799 unsigned char dst_str[257];
7800 unsigned char iv_str[128];
7801 unsigned char add_str[128];
7802 unsigned char tag_str[128];
7803 unsigned char output[128];
7804 unsigned char tag_output[16];
7806 unsigned int key_len;
7807 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
7809 memset(key_str, 0x00, 128);
7810 memset(src_str, 0x00, 128);
7811 memset(dst_str, 0x00, 257);
7812 memset(iv_str, 0x00, 128);
7813 memset(add_str, 0x00, 128);
7814 memset(tag_str, 0x00, 128);
7815 memset(output, 0x00, 128);
7816 memset(tag_output, 0x00, 16);
7818 key_len =
unhexify( key_str,
"0e97d15f4992a6354e43944fd346da65ac1f0f1229189442" );
7820 iv_len =
unhexify( iv_str,
"32a64e826b500d7e85f4c42a784f7c19" );
7823 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
7826 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
7827 hexify( dst_str, output, pt_len );
7828 hexify( tag_str, tag_output, tag_len );
7830 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
7831 fct_chk( strcmp( (
char *) tag_str,
"da8f3e0a6f156ec260aa34fd" ) == 0 );
7837 FCT_TEST_BGN(gcm_nist_validation_aes_1921280096_1)
7839 unsigned char key_str[128];
7840 unsigned char src_str[128];
7841 unsigned char dst_str[257];
7842 unsigned char iv_str[128];
7843 unsigned char add_str[128];
7844 unsigned char tag_str[128];
7845 unsigned char output[128];
7846 unsigned char tag_output[16];
7848 unsigned int key_len;
7849 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
7851 memset(key_str, 0x00, 128);
7852 memset(src_str, 0x00, 128);
7853 memset(dst_str, 0x00, 257);
7854 memset(iv_str, 0x00, 128);
7855 memset(add_str, 0x00, 128);
7856 memset(tag_str, 0x00, 128);
7857 memset(output, 0x00, 128);
7858 memset(tag_output, 0x00, 16);
7860 key_len =
unhexify( key_str,
"27504fc47a9e9a85eaded3782cb5b088359ea1c0abbf2730" );
7862 iv_len =
unhexify( iv_str,
"c55c8dc3d6d2970c81659f2f87bf849d" );
7865 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
7868 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
7869 hexify( dst_str, output, pt_len );
7870 hexify( tag_str, tag_output, tag_len );
7872 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
7873 fct_chk( strcmp( (
char *) tag_str,
"113e637538de291e2463abcf" ) == 0 );
7879 FCT_TEST_BGN(gcm_nist_validation_aes_1921280096_2)
7881 unsigned char key_str[128];
7882 unsigned char src_str[128];
7883 unsigned char dst_str[257];
7884 unsigned char iv_str[128];
7885 unsigned char add_str[128];
7886 unsigned char tag_str[128];
7887 unsigned char output[128];
7888 unsigned char tag_output[16];
7890 unsigned int key_len;
7891 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
7893 memset(key_str, 0x00, 128);
7894 memset(src_str, 0x00, 128);
7895 memset(dst_str, 0x00, 257);
7896 memset(iv_str, 0x00, 128);
7897 memset(add_str, 0x00, 128);
7898 memset(tag_str, 0x00, 128);
7899 memset(output, 0x00, 128);
7900 memset(tag_output, 0x00, 16);
7902 key_len =
unhexify( key_str,
"d5fc67f73de736768e5c64c37459c5eec3d27f7e337c346c" );
7904 iv_len =
unhexify( iv_str,
"2691432d3935d4ea8cb8f7c17bef3558" );
7907 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
7910 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
7911 hexify( dst_str, output, pt_len );
7912 hexify( tag_str, tag_output, tag_len );
7914 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
7915 fct_chk( strcmp( (
char *) tag_str,
"c0af76d6f62430106ca54928" ) == 0 );
7921 FCT_TEST_BGN(gcm_nist_validation_aes_1921280064_0)
7923 unsigned char key_str[128];
7924 unsigned char src_str[128];
7925 unsigned char dst_str[257];
7926 unsigned char iv_str[128];
7927 unsigned char add_str[128];
7928 unsigned char tag_str[128];
7929 unsigned char output[128];
7930 unsigned char tag_output[16];
7932 unsigned int key_len;
7933 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
7935 memset(key_str, 0x00, 128);
7936 memset(src_str, 0x00, 128);
7937 memset(dst_str, 0x00, 257);
7938 memset(iv_str, 0x00, 128);
7939 memset(add_str, 0x00, 128);
7940 memset(tag_str, 0x00, 128);
7941 memset(output, 0x00, 128);
7942 memset(tag_output, 0x00, 16);
7944 key_len =
unhexify( key_str,
"f28292ee2c54119511a67db0d2317433abaeccabfdd5d1f1" );
7946 iv_len =
unhexify( iv_str,
"cf9331a1bb3851b2fc3aeed2d1a33eb8" );
7949 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
7952 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
7953 hexify( dst_str, output, pt_len );
7954 hexify( tag_str, tag_output, tag_len );
7956 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
7957 fct_chk( strcmp( (
char *) tag_str,
"8e14b869a95eb12e" ) == 0 );
7963 FCT_TEST_BGN(gcm_nist_validation_aes_1921280064_1)
7965 unsigned char key_str[128];
7966 unsigned char src_str[128];
7967 unsigned char dst_str[257];
7968 unsigned char iv_str[128];
7969 unsigned char add_str[128];
7970 unsigned char tag_str[128];
7971 unsigned char output[128];
7972 unsigned char tag_output[16];
7974 unsigned int key_len;
7975 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
7977 memset(key_str, 0x00, 128);
7978 memset(src_str, 0x00, 128);
7979 memset(dst_str, 0x00, 257);
7980 memset(iv_str, 0x00, 128);
7981 memset(add_str, 0x00, 128);
7982 memset(tag_str, 0x00, 128);
7983 memset(output, 0x00, 128);
7984 memset(tag_output, 0x00, 16);
7986 key_len =
unhexify( key_str,
"2042f9244079736291ba7fe1f030cba99672a97ce361dc14" );
7988 iv_len =
unhexify( iv_str,
"aadfa619bafb21b5c738b65d632bb8b2" );
7991 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
7994 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
7995 hexify( dst_str, output, pt_len );
7996 hexify( tag_str, tag_output, tag_len );
7998 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
7999 fct_chk( strcmp( (
char *) tag_str,
"ad6f52f25aea1c55" ) == 0 );
8005 FCT_TEST_BGN(gcm_nist_validation_aes_1921280064_2)
8007 unsigned char key_str[128];
8008 unsigned char src_str[128];
8009 unsigned char dst_str[257];
8010 unsigned char iv_str[128];
8011 unsigned char add_str[128];
8012 unsigned char tag_str[128];
8013 unsigned char output[128];
8014 unsigned char tag_output[16];
8016 unsigned int key_len;
8017 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
8019 memset(key_str, 0x00, 128);
8020 memset(src_str, 0x00, 128);
8021 memset(dst_str, 0x00, 257);
8022 memset(iv_str, 0x00, 128);
8023 memset(add_str, 0x00, 128);
8024 memset(tag_str, 0x00, 128);
8025 memset(output, 0x00, 128);
8026 memset(tag_output, 0x00, 16);
8028 key_len =
unhexify( key_str,
"d9b4eb00ac03fabb5304ac38414f7782cb0186436a4b9036" );
8030 iv_len =
unhexify( iv_str,
"809939260117b759d8dac1a69c27c12a" );
8033 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
8036 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
8037 hexify( dst_str, output, pt_len );
8038 hexify( tag_str, tag_output, tag_len );
8040 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
8041 fct_chk( strcmp( (
char *) tag_str,
"1f7d0b3104aae50b" ) == 0 );
8047 FCT_TEST_BGN(gcm_nist_validation_aes_1921280032_0)
8049 unsigned char key_str[128];
8050 unsigned char src_str[128];
8051 unsigned char dst_str[257];
8052 unsigned char iv_str[128];
8053 unsigned char add_str[128];
8054 unsigned char tag_str[128];
8055 unsigned char output[128];
8056 unsigned char tag_output[16];
8058 unsigned int key_len;
8059 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
8061 memset(key_str, 0x00, 128);
8062 memset(src_str, 0x00, 128);
8063 memset(dst_str, 0x00, 257);
8064 memset(iv_str, 0x00, 128);
8065 memset(add_str, 0x00, 128);
8066 memset(tag_str, 0x00, 128);
8067 memset(output, 0x00, 128);
8068 memset(tag_output, 0x00, 16);
8070 key_len =
unhexify( key_str,
"b5128f4cf91d53b3a50e9b76b0b27da33cbd4b9349d89413" );
8072 iv_len =
unhexify( iv_str,
"644909f5fbcd61d850e43fbef1fb454f" );
8075 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
8078 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
8079 hexify( dst_str, output, pt_len );
8080 hexify( tag_str, tag_output, tag_len );
8082 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
8083 fct_chk( strcmp( (
char *) tag_str,
"2ddbf709" ) == 0 );
8089 FCT_TEST_BGN(gcm_nist_validation_aes_1921280032_1)
8091 unsigned char key_str[128];
8092 unsigned char src_str[128];
8093 unsigned char dst_str[257];
8094 unsigned char iv_str[128];
8095 unsigned char add_str[128];
8096 unsigned char tag_str[128];
8097 unsigned char output[128];
8098 unsigned char tag_output[16];
8100 unsigned int key_len;
8101 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
8103 memset(key_str, 0x00, 128);
8104 memset(src_str, 0x00, 128);
8105 memset(dst_str, 0x00, 257);
8106 memset(iv_str, 0x00, 128);
8107 memset(add_str, 0x00, 128);
8108 memset(tag_str, 0x00, 128);
8109 memset(output, 0x00, 128);
8110 memset(tag_output, 0x00, 16);
8112 key_len =
unhexify( key_str,
"3ac7ab2ade7a8e397d66be6dc7671f19cd39ad65490f1712" );
8114 iv_len =
unhexify( iv_str,
"d152359d765f41dd9cabf5c8f37cfd8a" );
8117 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
8120 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
8121 hexify( dst_str, output, pt_len );
8122 hexify( tag_str, tag_output, tag_len );
8124 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
8125 fct_chk( strcmp( (
char *) tag_str,
"a6e4e30d" ) == 0 );
8131 FCT_TEST_BGN(gcm_nist_validation_aes_1921280032_2)
8133 unsigned char key_str[128];
8134 unsigned char src_str[128];
8135 unsigned char dst_str[257];
8136 unsigned char iv_str[128];
8137 unsigned char add_str[128];
8138 unsigned char tag_str[128];
8139 unsigned char output[128];
8140 unsigned char tag_output[16];
8142 unsigned int key_len;
8143 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
8145 memset(key_str, 0x00, 128);
8146 memset(src_str, 0x00, 128);
8147 memset(dst_str, 0x00, 257);
8148 memset(iv_str, 0x00, 128);
8149 memset(add_str, 0x00, 128);
8150 memset(tag_str, 0x00, 128);
8151 memset(output, 0x00, 128);
8152 memset(tag_output, 0x00, 16);
8154 key_len =
unhexify( key_str,
"f9c2de7e3c74b7e318413a32892d4fd070de9882158bbc82" );
8156 iv_len =
unhexify( iv_str,
"63410c83fa363a63fa78303b9994b6c6" );
8159 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
8162 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
8163 hexify( dst_str, output, pt_len );
8164 hexify( tag_str, tag_output, tag_len );
8166 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
8167 fct_chk( strcmp( (
char *) tag_str,
"49c514ac" ) == 0 );
8173 FCT_TEST_BGN(gcm_nist_validation_aes_19212801024128_0)
8175 unsigned char key_str[128];
8176 unsigned char src_str[128];
8177 unsigned char dst_str[257];
8178 unsigned char iv_str[128];
8179 unsigned char add_str[128];
8180 unsigned char tag_str[128];
8181 unsigned char output[128];
8182 unsigned char tag_output[16];
8184 unsigned int key_len;
8185 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
8187 memset(key_str, 0x00, 128);
8188 memset(src_str, 0x00, 128);
8189 memset(dst_str, 0x00, 257);
8190 memset(iv_str, 0x00, 128);
8191 memset(add_str, 0x00, 128);
8192 memset(tag_str, 0x00, 128);
8193 memset(output, 0x00, 128);
8194 memset(tag_output, 0x00, 16);
8196 key_len =
unhexify( key_str,
"66ebdc2332276784a69b6bb137161210bac9f1d6a36d6a4c" );
8198 iv_len =
unhexify( iv_str,
"647f41b60c6a579086ba8854d043495c" );
8199 add_len =
unhexify( add_str,
"da26eebd04c27bbe7fa7b54b87d3b7227f056dd9c085fabfcb59ec665a257c6de68fd2c1c51aad5e6188e02a56f70aac49ba489802247ca327de57ea3cfa87e72cae7dd82b50341a2133b03cd0027216fcd94cf43ec8a48e1c04145b597924b37f7977db3ff23b8edc913357037d0fe02afe2bba6b91e27554edbfb77f51cc41" );
8201 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
8204 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
8205 hexify( dst_str, output, pt_len );
8206 hexify( tag_str, tag_output, tag_len );
8208 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
8209 fct_chk( strcmp( (
char *) tag_str,
"420b320c2d616a0b11a7605a84f88e26" ) == 0 );
8215 FCT_TEST_BGN(gcm_nist_validation_aes_19212801024128_1)
8217 unsigned char key_str[128];
8218 unsigned char src_str[128];
8219 unsigned char dst_str[257];
8220 unsigned char iv_str[128];
8221 unsigned char add_str[128];
8222 unsigned char tag_str[128];
8223 unsigned char output[128];
8224 unsigned char tag_output[16];
8226 unsigned int key_len;
8227 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
8229 memset(key_str, 0x00, 128);
8230 memset(src_str, 0x00, 128);
8231 memset(dst_str, 0x00, 257);
8232 memset(iv_str, 0x00, 128);
8233 memset(add_str, 0x00, 128);
8234 memset(tag_str, 0x00, 128);
8235 memset(output, 0x00, 128);
8236 memset(tag_output, 0x00, 16);
8238 key_len =
unhexify( key_str,
"26b04d8427582b04318fefebac2a2298ec3ce61146f39a35" );
8240 iv_len =
unhexify( iv_str,
"99f3449c8538414e7ab595b92a7e6e10" );
8241 add_len =
unhexify( add_str,
"edfc2aa8ed91cfc0e117fc9e2d1bfe843c7cf365a2b6cabd4259686cd7aede9c7453623967a30ffbd52b30fc205208bb346ffc70584478f5f39a79d4971ed71cc3dd0200a89aef6aecda0a1f3a4bf2929b7b9e141be0ddd3671f727e5e793ef085f52ecb77a266b9a02a2c700b63d8c43da0b569510285e98b530abcdbf7739d" );
8243 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
8246 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
8247 hexify( dst_str, output, pt_len );
8248 hexify( tag_str, tag_output, tag_len );
8250 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
8251 fct_chk( strcmp( (
char *) tag_str,
"091cfc38b248460eafb181ab58634a39" ) == 0 );
8257 FCT_TEST_BGN(gcm_nist_validation_aes_19212801024128_2)
8259 unsigned char key_str[128];
8260 unsigned char src_str[128];
8261 unsigned char dst_str[257];
8262 unsigned char iv_str[128];
8263 unsigned char add_str[128];
8264 unsigned char tag_str[128];
8265 unsigned char output[128];
8266 unsigned char tag_output[16];
8268 unsigned int key_len;
8269 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
8271 memset(key_str, 0x00, 128);
8272 memset(src_str, 0x00, 128);
8273 memset(dst_str, 0x00, 257);
8274 memset(iv_str, 0x00, 128);
8275 memset(add_str, 0x00, 128);
8276 memset(tag_str, 0x00, 128);
8277 memset(output, 0x00, 128);
8278 memset(tag_output, 0x00, 16);
8280 key_len =
unhexify( key_str,
"82c8197e6641d0832639e2b1d7691fbac79618b2f5db45bf" );
8282 iv_len =
unhexify( iv_str,
"69e1a3e5eed54bedc941646e3ad25a6c" );
8283 add_len =
unhexify( add_str,
"d0fcb4f4d764efc0fb52c8108e61b67a1386f1a13c1761941cc9a28c6ad15e78474cd2a65ae9475d70d9c845f14bf4d2bd2bc46c29e507a347391829e0f24495b026f681c387b3e6aec8acfa5ecaf4c3cfe796c22469478ee6744cf04a22e6aec82489f53109551f58cc6602933d1780b8b45b933f76a94ef652a8ce8bac2cc6" );
8285 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
8288 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
8289 hexify( dst_str, output, pt_len );
8290 hexify( tag_str, tag_output, tag_len );
8292 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
8293 fct_chk( strcmp( (
char *) tag_str,
"8e74343ae8cf1cdda4969c1a94aab5cc" ) == 0 );
8299 FCT_TEST_BGN(gcm_nist_validation_aes_19212801024120_0)
8301 unsigned char key_str[128];
8302 unsigned char src_str[128];
8303 unsigned char dst_str[257];
8304 unsigned char iv_str[128];
8305 unsigned char add_str[128];
8306 unsigned char tag_str[128];
8307 unsigned char output[128];
8308 unsigned char tag_output[16];
8310 unsigned int key_len;
8311 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
8313 memset(key_str, 0x00, 128);
8314 memset(src_str, 0x00, 128);
8315 memset(dst_str, 0x00, 257);
8316 memset(iv_str, 0x00, 128);
8317 memset(add_str, 0x00, 128);
8318 memset(tag_str, 0x00, 128);
8319 memset(output, 0x00, 128);
8320 memset(tag_output, 0x00, 16);
8322 key_len =
unhexify( key_str,
"1a349ba960b2c8f49b7e5314911ba8de358f2e74ceddf126" );
8324 iv_len =
unhexify( iv_str,
"f5998a62ec507c5fe5b280f9c57ac626" );
8325 add_len =
unhexify( add_str,
"78445eceecf2e6d2ecf2589fd24e854bed3aecc63aef934aec9aea93dca95d58629002a4ba91e9bf6d12e13f0a844977b3c2700645281db5de381adbccd34a84346a99f34889bd46c75b1956e21aa9f87684af55d7fd0de6da07e856d9b791c0a45e9e37881092f6040a9ae9d87757142d3c9c7fc6f25db0e5b5d377865ec4da" );
8327 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
8330 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
8331 hexify( dst_str, output, pt_len );
8332 hexify( tag_str, tag_output, tag_len );
8334 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
8335 fct_chk( strcmp( (
char *) tag_str,
"4d7eab0a3719fa53e552b9e5a85bdd" ) == 0 );
8341 FCT_TEST_BGN(gcm_nist_validation_aes_19212801024120_1)
8343 unsigned char key_str[128];
8344 unsigned char src_str[128];
8345 unsigned char dst_str[257];
8346 unsigned char iv_str[128];
8347 unsigned char add_str[128];
8348 unsigned char tag_str[128];
8349 unsigned char output[128];
8350 unsigned char tag_output[16];
8352 unsigned int key_len;
8353 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
8355 memset(key_str, 0x00, 128);
8356 memset(src_str, 0x00, 128);
8357 memset(dst_str, 0x00, 257);
8358 memset(iv_str, 0x00, 128);
8359 memset(add_str, 0x00, 128);
8360 memset(tag_str, 0x00, 128);
8361 memset(output, 0x00, 128);
8362 memset(tag_output, 0x00, 16);
8364 key_len =
unhexify( key_str,
"019af03d23342f7916e329b6843161e566aa859402cb07ff" );
8366 iv_len =
unhexify( iv_str,
"c5fd96765fcf6d51e23ac6d206744af0" );
8367 add_len =
unhexify( add_str,
"f9808af3403051a52b6652df03b6b37d90a471bc242c436cab6ba699139eaad16847665093798731b9969709287199233c5e77351c5e42b15453b4171237a6d16aee63773c8c0d736b3a8bf38ccf922e561c456682fbc2c7161da3b89526d9de222351bbd04ecd4e8680f26d70fe57d577ea287b199be1bbb8b76328ddee3d33" );
8369 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
8372 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
8373 hexify( dst_str, output, pt_len );
8374 hexify( tag_str, tag_output, tag_len );
8376 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
8377 fct_chk( strcmp( (
char *) tag_str,
"fd36fafe4f5571fafb6ece59b77381" ) == 0 );
8383 FCT_TEST_BGN(gcm_nist_validation_aes_19212801024120_2)
8385 unsigned char key_str[128];
8386 unsigned char src_str[128];
8387 unsigned char dst_str[257];
8388 unsigned char iv_str[128];
8389 unsigned char add_str[128];
8390 unsigned char tag_str[128];
8391 unsigned char output[128];
8392 unsigned char tag_output[16];
8394 unsigned int key_len;
8395 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
8397 memset(key_str, 0x00, 128);
8398 memset(src_str, 0x00, 128);
8399 memset(dst_str, 0x00, 257);
8400 memset(iv_str, 0x00, 128);
8401 memset(add_str, 0x00, 128);
8402 memset(tag_str, 0x00, 128);
8403 memset(output, 0x00, 128);
8404 memset(tag_output, 0x00, 16);
8406 key_len =
unhexify( key_str,
"fab39ad2946b2a343d76b1ccc1939cce7ae3cd7b6ea187bc" );
8408 iv_len =
unhexify( iv_str,
"247bc71446489dd3495c4dee8a071c76" );
8409 add_len =
unhexify( add_str,
"cb2c06fa5aa54ad079741afc56dbed79061a02045b6c099d0ae2d7883b78c5fe09636cc8a5dbba0c0c76ebfdb81217526afbbe04fa4b2b78f3357025930b0f9488369bf3aa088a2107bfb6c4ba714f1c26d0380d647ada5852d2c539300a4779295412b202c3cb977a7b94c24c4dd2a891a2035f388257b84e5b31bdc895f062" );
8411 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
8414 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
8415 hexify( dst_str, output, pt_len );
8416 hexify( tag_str, tag_output, tag_len );
8418 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
8419 fct_chk( strcmp( (
char *) tag_str,
"65e1aad214f49881a067d8b372ab6d" ) == 0 );
8425 FCT_TEST_BGN(gcm_nist_validation_aes_19212801024112_0)
8427 unsigned char key_str[128];
8428 unsigned char src_str[128];
8429 unsigned char dst_str[257];
8430 unsigned char iv_str[128];
8431 unsigned char add_str[128];
8432 unsigned char tag_str[128];
8433 unsigned char output[128];
8434 unsigned char tag_output[16];
8436 unsigned int key_len;
8437 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
8439 memset(key_str, 0x00, 128);
8440 memset(src_str, 0x00, 128);
8441 memset(dst_str, 0x00, 257);
8442 memset(iv_str, 0x00, 128);
8443 memset(add_str, 0x00, 128);
8444 memset(tag_str, 0x00, 128);
8445 memset(output, 0x00, 128);
8446 memset(tag_output, 0x00, 16);
8448 key_len =
unhexify( key_str,
"57b52697f72ae2df6354410a69dc3c5f28b31e6617bd78c1" );
8450 iv_len =
unhexify( iv_str,
"0d96720526491d196eca66457e3c9e71" );
8451 add_len =
unhexify( add_str,
"cbdfdb3cc73aed4297ff9aba76dd8ca4d8efe11b0f521fd7170f07461c7885252874b2ff8fd05a3943ecdc824ffcef0396980ebbddc0a53c6c99086c14fc806d90d35347d45e556e9a55ecc3a9fd74c8e5dbd19ed8b452eaeb673818ddc0695f56ddf3b139a3df378fcfe5b6ccfa358f5a5bcd1550f1d9d5f325f15f9dcd007f" );
8453 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
8456 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
8457 hexify( dst_str, output, pt_len );
8458 hexify( tag_str, tag_output, tag_len );
8460 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
8461 fct_chk( strcmp( (
char *) tag_str,
"f0c49960e60fb63edbb50bfebd98" ) == 0 );
8467 FCT_TEST_BGN(gcm_nist_validation_aes_19212801024112_1)
8469 unsigned char key_str[128];
8470 unsigned char src_str[128];
8471 unsigned char dst_str[257];
8472 unsigned char iv_str[128];
8473 unsigned char add_str[128];
8474 unsigned char tag_str[128];
8475 unsigned char output[128];
8476 unsigned char tag_output[16];
8478 unsigned int key_len;
8479 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
8481 memset(key_str, 0x00, 128);
8482 memset(src_str, 0x00, 128);
8483 memset(dst_str, 0x00, 257);
8484 memset(iv_str, 0x00, 128);
8485 memset(add_str, 0x00, 128);
8486 memset(tag_str, 0x00, 128);
8487 memset(output, 0x00, 128);
8488 memset(tag_output, 0x00, 16);
8490 key_len =
unhexify( key_str,
"7bf69ed06271107e11fdf016edc4aafb0e2d2ac05bdbc46f" );
8492 iv_len =
unhexify( iv_str,
"50e65aa338cfe856c80cbe1331b46abd" );
8493 add_len =
unhexify( add_str,
"a7cab4e1e56f4b9fccca08d3791560e4b6c7ceb40a10adec0536861c5c46fc3fd06c0a8eb32c9f18c40463b0f06cd0053e615dfd7caeb2b353b08ad6da1f8a23ebddf16524d2eaed70d4d7e565412dcc9598df7e107beb464b103cd8de9301cafe8b0420f0c156025d72b73d6e015ed2312535d35899aed73aa54374674d7f02" );
8495 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
8498 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
8499 hexify( dst_str, output, pt_len );
8500 hexify( tag_str, tag_output, tag_len );
8502 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
8503 fct_chk( strcmp( (
char *) tag_str,
"d7fb9d78fede77981948eb013ea1" ) == 0 );
8509 FCT_TEST_BGN(gcm_nist_validation_aes_19212801024112_2)
8511 unsigned char key_str[128];
8512 unsigned char src_str[128];
8513 unsigned char dst_str[257];
8514 unsigned char iv_str[128];
8515 unsigned char add_str[128];
8516 unsigned char tag_str[128];
8517 unsigned char output[128];
8518 unsigned char tag_output[16];
8520 unsigned int key_len;
8521 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
8523 memset(key_str, 0x00, 128);
8524 memset(src_str, 0x00, 128);
8525 memset(dst_str, 0x00, 257);
8526 memset(iv_str, 0x00, 128);
8527 memset(add_str, 0x00, 128);
8528 memset(tag_str, 0x00, 128);
8529 memset(output, 0x00, 128);
8530 memset(tag_output, 0x00, 16);
8532 key_len =
unhexify( key_str,
"caa781bbed41d7a1c56d47673f74d4310a3bf8b1275031d6" );
8534 iv_len =
unhexify( iv_str,
"7795dc04261d9433367f51c3b87bf18d" );
8535 add_len =
unhexify( add_str,
"f44d77bd541e02a737c693ff3ea0adc091fff1966a593524e68954a2d7d66a48199366a5a600331cf392965b5ebedbf949203975fa9db53b72586615975e8a7b84e0633c6cf69caf482dd72b26b0a5687ec71667e7f6e5abea89c3d69d2dc42a242ef959e4039ba5b2d22a3e48424a431a77e816604769d13b7f892e2b33fcd2" );
8537 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
8540 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
8541 hexify( dst_str, output, pt_len );
8542 hexify( tag_str, tag_output, tag_len );
8544 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
8545 fct_chk( strcmp( (
char *) tag_str,
"386930ced9a46097c0d1f6e65c62" ) == 0 );
8551 FCT_TEST_BGN(gcm_nist_validation_aes_19212801024104_0)
8553 unsigned char key_str[128];
8554 unsigned char src_str[128];
8555 unsigned char dst_str[257];
8556 unsigned char iv_str[128];
8557 unsigned char add_str[128];
8558 unsigned char tag_str[128];
8559 unsigned char output[128];
8560 unsigned char tag_output[16];
8562 unsigned int key_len;
8563 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
8565 memset(key_str, 0x00, 128);
8566 memset(src_str, 0x00, 128);
8567 memset(dst_str, 0x00, 257);
8568 memset(iv_str, 0x00, 128);
8569 memset(add_str, 0x00, 128);
8570 memset(tag_str, 0x00, 128);
8571 memset(output, 0x00, 128);
8572 memset(tag_output, 0x00, 16);
8574 key_len =
unhexify( key_str,
"1b268de4ff644cfa4361f8014656d5d4decbcf9cede8605c" );
8576 iv_len =
unhexify( iv_str,
"4009bb00afad026cbad117c6047f4ed8" );
8577 add_len =
unhexify( add_str,
"140c5a93293598fab85b3948b53e0ba15438a0b948e91041a13104f0ad263c8a10613e20e87ef261999a54d469ba6f1abe56ec3979623df8520a0476801987c15410ec24f5a9be72acfca71e8c5904e2ea5f8b22b8cf404b9fd533aa37e33b3d4cf91599cbb3b85ecda4aebaa27ac0365df8312c399ba1767c47fe0923f2c53e" );
8579 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
8582 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
8583 hexify( dst_str, output, pt_len );
8584 hexify( tag_str, tag_output, tag_len );
8586 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
8587 fct_chk( strcmp( (
char *) tag_str,
"af36bcee7561cd7d0861085d55" ) == 0 );
8593 FCT_TEST_BGN(gcm_nist_validation_aes_19212801024104_1)
8595 unsigned char key_str[128];
8596 unsigned char src_str[128];
8597 unsigned char dst_str[257];
8598 unsigned char iv_str[128];
8599 unsigned char add_str[128];
8600 unsigned char tag_str[128];
8601 unsigned char output[128];
8602 unsigned char tag_output[16];
8604 unsigned int key_len;
8605 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
8607 memset(key_str, 0x00, 128);
8608 memset(src_str, 0x00, 128);
8609 memset(dst_str, 0x00, 257);
8610 memset(iv_str, 0x00, 128);
8611 memset(add_str, 0x00, 128);
8612 memset(tag_str, 0x00, 128);
8613 memset(output, 0x00, 128);
8614 memset(tag_output, 0x00, 16);
8616 key_len =
unhexify( key_str,
"c2843bd689ccbba60ce961b7dd50619a59234dad97567e39" );
8618 iv_len =
unhexify( iv_str,
"55a68cbaa5755d8c67bf26f03c5863c6" );
8619 add_len =
unhexify( add_str,
"d7980ab86ceb9b66ab265b68e078deddf7ba084b8967c3227839e8f31cdcfbbffa004953f3582ea9274dcf46e3ad7e7744a576dec37e0cb36fced2b2c2fcf4328f506302f5741e696ce25c49492e33c6a0c8aed5af03cdc1a266352623c6a52a555ce906f684bfd597b5e37f60b5175a981088b9d8b8b5493e4fc1bfeca64f95" );
8621 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
8624 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
8625 hexify( dst_str, output, pt_len );
8626 hexify( tag_str, tag_output, tag_len );
8628 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
8629 fct_chk( strcmp( (
char *) tag_str,
"66cccb7d28d3fa70bce2900a84" ) == 0 );
8635 FCT_TEST_BGN(gcm_nist_validation_aes_19212801024104_2)
8637 unsigned char key_str[128];
8638 unsigned char src_str[128];
8639 unsigned char dst_str[257];
8640 unsigned char iv_str[128];
8641 unsigned char add_str[128];
8642 unsigned char tag_str[128];
8643 unsigned char output[128];
8644 unsigned char tag_output[16];
8646 unsigned int key_len;
8647 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
8649 memset(key_str, 0x00, 128);
8650 memset(src_str, 0x00, 128);
8651 memset(dst_str, 0x00, 257);
8652 memset(iv_str, 0x00, 128);
8653 memset(add_str, 0x00, 128);
8654 memset(tag_str, 0x00, 128);
8655 memset(output, 0x00, 128);
8656 memset(tag_output, 0x00, 16);
8658 key_len =
unhexify( key_str,
"f451c5edf9849a390486dfecad437cb809c33d31f6898ba0" );
8660 iv_len =
unhexify( iv_str,
"9e2dd52c04651ceea88caf4adfb2e8ee" );
8661 add_len =
unhexify( add_str,
"87b804d4a81dc203d67a92b4fdeab959c2056dcedb28d29f216f9172817bcfb3d2256bc1c8aac23feb22b71f1fd02ea28cdf91785931750ba4865d672345b5001b1aade4f6acc7edb03758d2540e6472aff50ab3ea61a0b9ff37ff7a87b91013b14867c3e43cb097a923e6d8ddb1f52e4bd940b60d500a4e35bfa91935065f26" );
8663 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
8666 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
8667 hexify( dst_str, output, pt_len );
8668 hexify( tag_str, tag_output, tag_len );
8670 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
8671 fct_chk( strcmp( (
char *) tag_str,
"e192a49f5f2b22fa39dcfa54c8" ) == 0 );
8677 FCT_TEST_BGN(gcm_nist_validation_aes_1921280102496_0)
8679 unsigned char key_str[128];
8680 unsigned char src_str[128];
8681 unsigned char dst_str[257];
8682 unsigned char iv_str[128];
8683 unsigned char add_str[128];
8684 unsigned char tag_str[128];
8685 unsigned char output[128];
8686 unsigned char tag_output[16];
8688 unsigned int key_len;
8689 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
8691 memset(key_str, 0x00, 128);
8692 memset(src_str, 0x00, 128);
8693 memset(dst_str, 0x00, 257);
8694 memset(iv_str, 0x00, 128);
8695 memset(add_str, 0x00, 128);
8696 memset(tag_str, 0x00, 128);
8697 memset(output, 0x00, 128);
8698 memset(tag_output, 0x00, 16);
8700 key_len =
unhexify( key_str,
"bd02ff8cb540ba572af3431597bdf3f23e61665f96a19b4f" );
8702 iv_len =
unhexify( iv_str,
"7198af3f594a4f0597f45fb592edef50" );
8703 add_len =
unhexify( add_str,
"ef06de48bd34f362fdb425c6e35e37d0dfa1ea874df7d201b6a1c25b736c96e3cc8ed0915807fb7ed759482ca701d28c08cbf955be244bf887df37394d1ca4d2e7eace0dc61c807b714f3161f9d7f554c9f87ad674849c136108cfd8f777997656489d3e993aad4a51b68616083876832b3085a5f8f154b83ea44702c70f2980" );
8705 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
8708 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
8709 hexify( dst_str, output, pt_len );
8710 hexify( tag_str, tag_output, tag_len );
8712 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
8713 fct_chk( strcmp( (
char *) tag_str,
"43298281cd27a36e5cbac4b9" ) == 0 );
8719 FCT_TEST_BGN(gcm_nist_validation_aes_1921280102496_1)
8721 unsigned char key_str[128];
8722 unsigned char src_str[128];
8723 unsigned char dst_str[257];
8724 unsigned char iv_str[128];
8725 unsigned char add_str[128];
8726 unsigned char tag_str[128];
8727 unsigned char output[128];
8728 unsigned char tag_output[16];
8730 unsigned int key_len;
8731 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
8733 memset(key_str, 0x00, 128);
8734 memset(src_str, 0x00, 128);
8735 memset(dst_str, 0x00, 257);
8736 memset(iv_str, 0x00, 128);
8737 memset(add_str, 0x00, 128);
8738 memset(tag_str, 0x00, 128);
8739 memset(output, 0x00, 128);
8740 memset(tag_output, 0x00, 16);
8742 key_len =
unhexify( key_str,
"9ecab4a4a9dda43477c993d6388387443c66ac253071c504" );
8744 iv_len =
unhexify( iv_str,
"9523b2722b927dc3afcc5f7dab2bf033" );
8745 add_len =
unhexify( add_str,
"fb84e38a84225c8ebb307df88325d020a5853bb05ac7a75ee38552c40c302d263181081b05918775cf9cd6905b9982b2ae9ef7993f28fd8714e878c9a4a8101c08e9f13581dcf4f16dabfcb9d3c471c0056805f51e67e9b75572639c3d6ce62d2f8abd64e1e66ffb292360c20155e4d528374a5a22d845340d6f1ac68d33040e" );
8747 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
8750 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
8751 hexify( dst_str, output, pt_len );
8752 hexify( tag_str, tag_output, tag_len );
8754 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
8755 fct_chk( strcmp( (
char *) tag_str,
"696bb674e43cdc7d69346555" ) == 0 );
8761 FCT_TEST_BGN(gcm_nist_validation_aes_1921280102496_2)
8763 unsigned char key_str[128];
8764 unsigned char src_str[128];
8765 unsigned char dst_str[257];
8766 unsigned char iv_str[128];
8767 unsigned char add_str[128];
8768 unsigned char tag_str[128];
8769 unsigned char output[128];
8770 unsigned char tag_output[16];
8772 unsigned int key_len;
8773 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
8775 memset(key_str, 0x00, 128);
8776 memset(src_str, 0x00, 128);
8777 memset(dst_str, 0x00, 257);
8778 memset(iv_str, 0x00, 128);
8779 memset(add_str, 0x00, 128);
8780 memset(tag_str, 0x00, 128);
8781 memset(output, 0x00, 128);
8782 memset(tag_output, 0x00, 16);
8784 key_len =
unhexify( key_str,
"733df8c42cc2e70ac195615d4911ffbecbe2712230c5c292" );
8786 iv_len =
unhexify( iv_str,
"f76135eab5d42e82aedff3090a1ba606" );
8787 add_len =
unhexify( add_str,
"0c8aea747cacf2f0fdfaf368cf32b12dc49f5da9a29bee380d2d64035b73efb56fef13aa20c0b612d9615cefb94f26978fa0b371a47dd20051a1605b9f5e133b52dc514577c53319c9e2bd4ac7cdf37d56a9e715e27860a09d86cc21d0b9f0f302f6acf06f2ff00cc6c878dacb8bde51082f701314de7efd36a246f80f8a8fb6" );
8789 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
8792 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
8793 hexify( dst_str, output, pt_len );
8794 hexify( tag_str, tag_output, tag_len );
8796 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
8797 fct_chk( strcmp( (
char *) tag_str,
"82e6d0c076c7d8ac0839fe18" ) == 0 );
8803 FCT_TEST_BGN(gcm_nist_validation_aes_1921280102464_0)
8805 unsigned char key_str[128];
8806 unsigned char src_str[128];
8807 unsigned char dst_str[257];
8808 unsigned char iv_str[128];
8809 unsigned char add_str[128];
8810 unsigned char tag_str[128];
8811 unsigned char output[128];
8812 unsigned char tag_output[16];
8814 unsigned int key_len;
8815 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
8817 memset(key_str, 0x00, 128);
8818 memset(src_str, 0x00, 128);
8819 memset(dst_str, 0x00, 257);
8820 memset(iv_str, 0x00, 128);
8821 memset(add_str, 0x00, 128);
8822 memset(tag_str, 0x00, 128);
8823 memset(output, 0x00, 128);
8824 memset(tag_output, 0x00, 16);
8826 key_len =
unhexify( key_str,
"ba33c24c41bf9836607b6dd05e66a3d16298c897dd1d70ae" );
8828 iv_len =
unhexify( iv_str,
"4b30423df6de76dd684274afbea089d8" );
8829 add_len =
unhexify( add_str,
"71f5f6ee7bbd774fa691a3d7e0f694a6c8dfe8aaf9cd720e163ef6d5cd949c798f9e9c993adb6d64e7220aa0f17331bfa9a43b659be101726a80e5529e827c3e4b05cfb4d78db9952e58eebe64dfbc0d1baf20e7e48902215277a49ee953108526a70ee150eda85e6a0e49955f8c6323766ae10e13ecfdbe4815f4bb4ba43786" );
8831 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
8834 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
8835 hexify( dst_str, output, pt_len );
8836 hexify( tag_str, tag_output, tag_len );
8838 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
8839 fct_chk( strcmp( (
char *) tag_str,
"73e80018235ded70" ) == 0 );
8845 FCT_TEST_BGN(gcm_nist_validation_aes_1921280102464_1)
8847 unsigned char key_str[128];
8848 unsigned char src_str[128];
8849 unsigned char dst_str[257];
8850 unsigned char iv_str[128];
8851 unsigned char add_str[128];
8852 unsigned char tag_str[128];
8853 unsigned char output[128];
8854 unsigned char tag_output[16];
8856 unsigned int key_len;
8857 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
8859 memset(key_str, 0x00, 128);
8860 memset(src_str, 0x00, 128);
8861 memset(dst_str, 0x00, 257);
8862 memset(iv_str, 0x00, 128);
8863 memset(add_str, 0x00, 128);
8864 memset(tag_str, 0x00, 128);
8865 memset(output, 0x00, 128);
8866 memset(tag_output, 0x00, 16);
8868 key_len =
unhexify( key_str,
"1711553980e3fc5c14c98611ddbdf426463f82c66df83a70" );
8870 iv_len =
unhexify( iv_str,
"3396bd96b83ba611ed22e12e8a5ec911" );
8871 add_len =
unhexify( add_str,
"9506f34c90611acd6ecea385a782a5739f88b4fd13b77570c4d7e0617283e7b21568e32c42ada1cf6aca1a2e2ba184d4101306ff21c9d03e0ffda4854773c26a88a5173d52960286c18753df17361bb7046d2884ee600f58775304f49cf4e782ac70cb00b3d9c345cfcb38e3880743034640bbcae83112543cd1622ebaedb221" );
8873 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
8876 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
8877 hexify( dst_str, output, pt_len );
8878 hexify( tag_str, tag_output, tag_len );
8880 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
8881 fct_chk( strcmp( (
char *) tag_str,
"5d51a0868a2161a5" ) == 0 );
8887 FCT_TEST_BGN(gcm_nist_validation_aes_1921280102464_2)
8889 unsigned char key_str[128];
8890 unsigned char src_str[128];
8891 unsigned char dst_str[257];
8892 unsigned char iv_str[128];
8893 unsigned char add_str[128];
8894 unsigned char tag_str[128];
8895 unsigned char output[128];
8896 unsigned char tag_output[16];
8898 unsigned int key_len;
8899 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
8901 memset(key_str, 0x00, 128);
8902 memset(src_str, 0x00, 128);
8903 memset(dst_str, 0x00, 257);
8904 memset(iv_str, 0x00, 128);
8905 memset(add_str, 0x00, 128);
8906 memset(tag_str, 0x00, 128);
8907 memset(output, 0x00, 128);
8908 memset(tag_output, 0x00, 16);
8910 key_len =
unhexify( key_str,
"5d69dbec7ebe80f2b5b8f61fdff1f4413f5f6624010fb795" );
8912 iv_len =
unhexify( iv_str,
"a2eb3ba50dd93fa375cf682db7b2bc7b" );
8913 add_len =
unhexify( add_str,
"a0f9c0de86b54d3c176ece3305463237e1f70be3c52e2ab1c773a9d27d6fc5dadf61ce7a3d10dba8730d12c306fca8952403983bf242fc1b6efaaa153ca446a07d16a70af4cb1aa4d4c0c93d646dc3a5630f5a610aa9e6eeb873f9a06d3234642bc86b03c596235ec03019e762458abe17d37409a18ca5b7e0e0088391dd3acb" );
8915 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
8918 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
8919 hexify( dst_str, output, pt_len );
8920 hexify( tag_str, tag_output, tag_len );
8922 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
8923 fct_chk( strcmp( (
char *) tag_str,
"1a827855ee98d679" ) == 0 );
8929 FCT_TEST_BGN(gcm_nist_validation_aes_1921280102432_0)
8931 unsigned char key_str[128];
8932 unsigned char src_str[128];
8933 unsigned char dst_str[257];
8934 unsigned char iv_str[128];
8935 unsigned char add_str[128];
8936 unsigned char tag_str[128];
8937 unsigned char output[128];
8938 unsigned char tag_output[16];
8940 unsigned int key_len;
8941 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
8943 memset(key_str, 0x00, 128);
8944 memset(src_str, 0x00, 128);
8945 memset(dst_str, 0x00, 257);
8946 memset(iv_str, 0x00, 128);
8947 memset(add_str, 0x00, 128);
8948 memset(tag_str, 0x00, 128);
8949 memset(output, 0x00, 128);
8950 memset(tag_output, 0x00, 16);
8952 key_len =
unhexify( key_str,
"7aa732879f290aa442217212156920c69457b8ec41eab153" );
8954 iv_len =
unhexify( iv_str,
"cb593221c59846dc82fc0d0cd04af3f0" );
8955 add_len =
unhexify( add_str,
"15d7ebf94985c34b72b6675d7346f0b05bdb8fd3a278555939d2999028e4179e69352d398a5dd0e5b370bdd9cbd24d576b89709c98b6142f71f5b1ba224222afb67599fc58fe043d1a91d7ea95b56dbd086db8e3a061b1bfc6e82dc9ac728174fd3669d65db62a06380a5f72c3d091b7a1b6998041d5501e9fba8bf91a7d278c" );
8957 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
8960 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
8961 hexify( dst_str, output, pt_len );
8962 hexify( tag_str, tag_output, tag_len );
8964 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
8965 fct_chk( strcmp( (
char *) tag_str,
"55b86d22" ) == 0 );
8971 FCT_TEST_BGN(gcm_nist_validation_aes_1921280102432_1)
8973 unsigned char key_str[128];
8974 unsigned char src_str[128];
8975 unsigned char dst_str[257];
8976 unsigned char iv_str[128];
8977 unsigned char add_str[128];
8978 unsigned char tag_str[128];
8979 unsigned char output[128];
8980 unsigned char tag_output[16];
8982 unsigned int key_len;
8983 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
8985 memset(key_str, 0x00, 128);
8986 memset(src_str, 0x00, 128);
8987 memset(dst_str, 0x00, 257);
8988 memset(iv_str, 0x00, 128);
8989 memset(add_str, 0x00, 128);
8990 memset(tag_str, 0x00, 128);
8991 memset(output, 0x00, 128);
8992 memset(tag_output, 0x00, 16);
8994 key_len =
unhexify( key_str,
"961a3e78f6a75944455f9d9d0345e08f4669972f3d5c202c" );
8996 iv_len =
unhexify( iv_str,
"ce43a19ac648e62ddc49d243fb34e29f" );
8997 add_len =
unhexify( add_str,
"393736558133078a0367b8248bc18c8352f92a9212e90318a5b63ad3c422ccda7c181c565629acf4fc73b2de85bc9cf38310fe703a877b3e7d3b2d416aeb962f1027077232cfa39c5e5284a1b323264175546ddfb250ce693e2dc78a0479bd89a7ab44b63e504866d2ec6b5153cfd51f29a91cd4fa2b8e09878747ae53981875" );
8999 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
9002 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
9003 hexify( dst_str, output, pt_len );
9004 hexify( tag_str, tag_output, tag_len );
9006 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
9007 fct_chk( strcmp( (
char *) tag_str,
"ac701373" ) == 0 );
9013 FCT_TEST_BGN(gcm_nist_validation_aes_1921280102432_2)
9015 unsigned char key_str[128];
9016 unsigned char src_str[128];
9017 unsigned char dst_str[257];
9018 unsigned char iv_str[128];
9019 unsigned char add_str[128];
9020 unsigned char tag_str[128];
9021 unsigned char output[128];
9022 unsigned char tag_output[16];
9024 unsigned int key_len;
9025 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
9027 memset(key_str, 0x00, 128);
9028 memset(src_str, 0x00, 128);
9029 memset(dst_str, 0x00, 257);
9030 memset(iv_str, 0x00, 128);
9031 memset(add_str, 0x00, 128);
9032 memset(tag_str, 0x00, 128);
9033 memset(output, 0x00, 128);
9034 memset(tag_output, 0x00, 16);
9036 key_len =
unhexify( key_str,
"c4d492904becde4e46c2557ac833265c715bb57f18cd040d" );
9038 iv_len =
unhexify( iv_str,
"df41b22b92d43a96a7504514b92e644f" );
9039 add_len =
unhexify( add_str,
"c4dd46ce3e486d89903482de247c1e7df05809a247302db3ca8457b93d6886c0a3d1be40a90f6502ec58d0ddd715896cee37322d48ec3f0c3ad716f1bb679afdcc0e4c79e5e2e346702d349ec7b391ef7eafde618bbadce5d14d22123de611c065780a4d05e928e87d12b749888d6004224c3e457aca0190bf1a7fba2453680b" );
9041 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
9044 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
9045 hexify( dst_str, output, pt_len );
9046 hexify( tag_str, tag_output, tag_len );
9048 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
9049 fct_chk( strcmp( (
char *) tag_str,
"7a259bda" ) == 0 );
9055 FCT_TEST_BGN(gcm_nist_validation_aes_19212810240128_0)
9057 unsigned char key_str[128];
9058 unsigned char src_str[128];
9059 unsigned char dst_str[257];
9060 unsigned char iv_str[128];
9061 unsigned char add_str[128];
9062 unsigned char tag_str[128];
9063 unsigned char output[128];
9064 unsigned char tag_output[16];
9066 unsigned int key_len;
9067 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
9069 memset(key_str, 0x00, 128);
9070 memset(src_str, 0x00, 128);
9071 memset(dst_str, 0x00, 257);
9072 memset(iv_str, 0x00, 128);
9073 memset(add_str, 0x00, 128);
9074 memset(tag_str, 0x00, 128);
9075 memset(output, 0x00, 128);
9076 memset(tag_output, 0x00, 16);
9078 key_len =
unhexify( key_str,
"316660f013ced78a16701b35479ffb1f7c8c4e964c1b52b8" );
9079 pt_len =
unhexify( src_str,
"d262c15d08aea46f614c7f8f6a54631289e54ca97d698777388e137f431bb783601e7999e7af98775d7b87ce061d9ba56570ed8c58b6bbac5f12f751fc376ab0f14b36b40b2b5533727be3bbc9a51183405d5fd0121201ff592817d06613b504a3440b0e1a57e9ed1771766a9a5b789054f7032d20b23c5c37d77f293c677fd8" );
9080 iv_len =
unhexify( iv_str,
"919ceb172d2cb460bdb3b3e58debe889" );
9083 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
9086 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
9087 hexify( dst_str, output, pt_len );
9088 hexify( tag_str, tag_output, tag_len );
9090 fct_chk( strcmp( (
char *) dst_str,
"5f5128f7f948f0cc9fb248a24b07c54247e40080a992acddb2615d90ef9328a17bd5e9a698b00103855738aea55c4944cde4a9148bfa8db12233231861c455e52c9889119ca402eabc8f41b27000156dd29b901024336cb2b7088eb5fd534ba58f23caf140a8b2549486074e4edbfc262ed9c7c7ccaae24be8de873ad43cd13e" ) == 0 );
9091 fct_chk( strcmp( (
char *) tag_str,
"ae22ec4c19e7616a5b877f168febd202" ) == 0 );
9097 FCT_TEST_BGN(gcm_nist_validation_aes_19212810240128_1)
9099 unsigned char key_str[128];
9100 unsigned char src_str[128];
9101 unsigned char dst_str[257];
9102 unsigned char iv_str[128];
9103 unsigned char add_str[128];
9104 unsigned char tag_str[128];
9105 unsigned char output[128];
9106 unsigned char tag_output[16];
9108 unsigned int key_len;
9109 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
9111 memset(key_str, 0x00, 128);
9112 memset(src_str, 0x00, 128);
9113 memset(dst_str, 0x00, 257);
9114 memset(iv_str, 0x00, 128);
9115 memset(add_str, 0x00, 128);
9116 memset(tag_str, 0x00, 128);
9117 memset(output, 0x00, 128);
9118 memset(tag_output, 0x00, 16);
9120 key_len =
unhexify( key_str,
"1bdb707c328304809bf0608874c9db373df3c7104a5a7049" );
9121 pt_len =
unhexify( src_str,
"ca243caa145124997f5e2e6bb25d021a38d58d0ab1bbf06d086c2416c08e3512aa887cc215fdb34d0f2d78f6a45885767f15fc00b68a4df1130587de777efb9cfd59cafa077477e97edabf2bf04c9a6ce029c230385ca5f9928bca7fe5503b18774849199d2a39a378a2d3144aef4416c1718319ff1bed8021dd77a07f61eaa6" );
9122 iv_len =
unhexify( iv_str,
"b7e7fc0d5adaed1632c5f7d1f56458f1" );
9125 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
9128 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
9129 hexify( dst_str, output, pt_len );
9130 hexify( tag_str, tag_output, tag_len );
9132 fct_chk( strcmp( (
char *) dst_str,
"91c7954bdd6a49360fdce11c1bc710512bf5a57bcef241fb63e5ceabcdc9699d0c0ddb025c75195ec25e631507f13e18799e6be9798e5639ad8401f6244c5b0ace3905ae0de08e2d0fcd19d193de83943fe449af4b503a454c248e677d2f51100fd9b8b7e5388d5091089369a7c2ff38bd353e9757ef873a87f15f30232bafb4" ) == 0 );
9133 fct_chk( strcmp( (
char *) tag_str,
"72337bdb2bfdd1f1ebe0dba6f9b7b649" ) == 0 );
9139 FCT_TEST_BGN(gcm_nist_validation_aes_19212810240128_2)
9141 unsigned char key_str[128];
9142 unsigned char src_str[128];
9143 unsigned char dst_str[257];
9144 unsigned char iv_str[128];
9145 unsigned char add_str[128];
9146 unsigned char tag_str[128];
9147 unsigned char output[128];
9148 unsigned char tag_output[16];
9150 unsigned int key_len;
9151 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
9153 memset(key_str, 0x00, 128);
9154 memset(src_str, 0x00, 128);
9155 memset(dst_str, 0x00, 257);
9156 memset(iv_str, 0x00, 128);
9157 memset(add_str, 0x00, 128);
9158 memset(tag_str, 0x00, 128);
9159 memset(output, 0x00, 128);
9160 memset(tag_output, 0x00, 16);
9162 key_len =
unhexify( key_str,
"a6dd0d7e9d6ad1ad7c7394d53e9e081c436d34c8158bbc95" );
9163 pt_len =
unhexify( src_str,
"2d95d64ed3be857a5c79c7af20aee00f142557e10d780383fef2d45f16c7e2823ffee495b220c87971610e5650f7c3e8d296b3f03fc883c00351df48d97717427101aa0c08a23c408b24511621b640c210b316cf17e3dfd714f0c9aa9ddd974692d1c2ae27b9bb0fbb428e7a9da3b3cf9bd869e730ccaa3aa4bd08f01f84039a" );
9164 iv_len =
unhexify( iv_str,
"60b4b9c77d01232c5d3d4af81becb0dc" );
9167 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
9170 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
9171 hexify( dst_str, output, pt_len );
9172 hexify( tag_str, tag_output, tag_len );
9174 fct_chk( strcmp( (
char *) dst_str,
"4494460ee73d3513814e1f779bfe3a229b49348d7641e9ed4dd959b582960097ef08b91292bb9db87b4e728d01b92683f4cdc81151a69bed2096bf6fb2e45d0148404420ea16b631b421e6f4c6665fe33c2d11e7b22b6aa82b610b83214ae4d17e681972e3a1f77306d3c54d96c47d8be1fb2c8cae8300ac9db99013f25a65a1" ) == 0 );
9175 fct_chk( strcmp( (
char *) tag_str,
"d40a246c18518ea9f8d733b42181123c" ) == 0 );
9181 FCT_TEST_BGN(gcm_nist_validation_aes_19212810240120_0)
9183 unsigned char key_str[128];
9184 unsigned char src_str[128];
9185 unsigned char dst_str[257];
9186 unsigned char iv_str[128];
9187 unsigned char add_str[128];
9188 unsigned char tag_str[128];
9189 unsigned char output[128];
9190 unsigned char tag_output[16];
9192 unsigned int key_len;
9193 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
9195 memset(key_str, 0x00, 128);
9196 memset(src_str, 0x00, 128);
9197 memset(dst_str, 0x00, 257);
9198 memset(iv_str, 0x00, 128);
9199 memset(add_str, 0x00, 128);
9200 memset(tag_str, 0x00, 128);
9201 memset(output, 0x00, 128);
9202 memset(tag_output, 0x00, 16);
9204 key_len =
unhexify( key_str,
"e9ed78cb5c10df05ad00c6f1fb35b4d28e6ddfcc16456807" );
9205 pt_len =
unhexify( src_str,
"e465e57cbac0dcd1e8ccda22042abecd9d89c4ac91b0e82a41fd51107a792099e63f7cf23a889d8c04edae2c2b3a9e51dbee6c3b71ace3de08ab354a295888bb99ae0fe428dd69bc013d49a70511ef60524282347787a542fe9501b6452b5faad2f129a9795c2c4cc0881ec4af8f0e0d2d4a7a628cb051055fe831b51e250608" );
9206 iv_len =
unhexify( iv_str,
"3a8ad989c621ae1e82b8d255a3c95028" );
9209 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
9212 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
9213 hexify( dst_str, output, pt_len );
9214 hexify( tag_str, tag_output, tag_len );
9216 fct_chk( strcmp( (
char *) dst_str,
"6855e4702f1ea593bfe30ee65b3fab832778d6b11a0ad902dd37361b8d85ab76d1f2ccf7927d695eb3129286c26737b9573e26bf64b31de26f97525f84345f73bda2888a1f53c9b405ad627bbe5dea123c9fb0a4b7f193cd8fbc8fa4a5e5f64e9c083f5c048d61fd1d347b49afdc69e0ca6a82e3b064c49d5bffa2800b5cfcdf" ) == 0 );
9217 fct_chk( strcmp( (
char *) tag_str,
"9661f5c3b0d99d4f762bdcabd48df2" ) == 0 );
9223 FCT_TEST_BGN(gcm_nist_validation_aes_19212810240120_1)
9225 unsigned char key_str[128];
9226 unsigned char src_str[128];
9227 unsigned char dst_str[257];
9228 unsigned char iv_str[128];
9229 unsigned char add_str[128];
9230 unsigned char tag_str[128];
9231 unsigned char output[128];
9232 unsigned char tag_output[16];
9234 unsigned int key_len;
9235 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
9237 memset(key_str, 0x00, 128);
9238 memset(src_str, 0x00, 128);
9239 memset(dst_str, 0x00, 257);
9240 memset(iv_str, 0x00, 128);
9241 memset(add_str, 0x00, 128);
9242 memset(tag_str, 0x00, 128);
9243 memset(output, 0x00, 128);
9244 memset(tag_output, 0x00, 16);
9246 key_len =
unhexify( key_str,
"76a5bc9a8d7c6e2822456156cea7d493702d61e7d504e3c3" );
9247 pt_len =
unhexify( src_str,
"0a7fbca875fd620c3d8de788e5c27534160f68d60d70fa4167adf0c18ea25fa1f2cc551fdf447aa16678d3f82193cf421a6fa953532a3765bcb54183bf0e96527ae5e695ed3bba5d9911f36c1aa73132cd43b2698996eb43ff84420e315a06d7db02aee815461892c7ab9026953c4bc25f47153d5cb7b966b71b24dad69fa565" );
9248 iv_len =
unhexify( iv_str,
"09b681de6683751300c2ada84a214d02" );
9251 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
9254 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
9255 hexify( dst_str, output, pt_len );
9256 hexify( tag_str, tag_output, tag_len );
9258 fct_chk( strcmp( (
char *) dst_str,
"dd66e08fc500426feb497c39c5853b26376272dfabb82ab5978167faa91adb025a6ca0e8fe3d04a0d97062eee8ca6530c3788bebe4436ecdd3d9eab96d38a0cf9b8cc6a584a0facaea33ec2f4a6e61f780c3dad524df902f421e3204cec7c9a4bb3f0860e017eddeb939cdfbe6f924e1eebfbbf8ec63c55b62137d9f8845f38f" ) == 0 );
9259 fct_chk( strcmp( (
char *) tag_str,
"4acc40a4882d7733d8f526365f2560" ) == 0 );
9265 FCT_TEST_BGN(gcm_nist_validation_aes_19212810240120_2)
9267 unsigned char key_str[128];
9268 unsigned char src_str[128];
9269 unsigned char dst_str[257];
9270 unsigned char iv_str[128];
9271 unsigned char add_str[128];
9272 unsigned char tag_str[128];
9273 unsigned char output[128];
9274 unsigned char tag_output[16];
9276 unsigned int key_len;
9277 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
9279 memset(key_str, 0x00, 128);
9280 memset(src_str, 0x00, 128);
9281 memset(dst_str, 0x00, 257);
9282 memset(iv_str, 0x00, 128);
9283 memset(add_str, 0x00, 128);
9284 memset(tag_str, 0x00, 128);
9285 memset(output, 0x00, 128);
9286 memset(tag_output, 0x00, 16);
9288 key_len =
unhexify( key_str,
"f5cb564cdd6974219e87f93a030fdcad35313d4adf9d7a97" );
9289 pt_len =
unhexify( src_str,
"210a799d480b4933e16fcbed632579beb6b00aec74c205dbaf64e2cb152c12f9b6969122f296efcfe328f54202446514066594848f42a3031425020b56d065d6eaf2caf507d5f51df493c11514400b889f33d0b996e721eb613569396df0528aa14eaed117dbb7c01d9c3ac39507e42a158413dab80aa687772475105eabcbbf" );
9290 iv_len =
unhexify( iv_str,
"90f91da5239640a70eec60d849d9ae70" );
9293 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
9296 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
9297 hexify( dst_str, output, pt_len );
9298 hexify( tag_str, tag_output, tag_len );
9300 fct_chk( strcmp( (
char *) dst_str,
"69a3dcf5b94a507a53fa5e62cfca269453623ccd3a537d971130a21bee884cf271b9833dec19862ab0dfe7052e7dc07b20f34aac42bc39bf1d495360c1d701ea53a9bba64b02962b4ef64fb1c90a1a2f3a6f81a6ba781d5f28b786efc365ec6a35c826544aab94b53b96613fddb65660dd336acc34a217960f6c22b9fe60dde1" ) == 0 );
9301 fct_chk( strcmp( (
char *) tag_str,
"b67495a863fffcc773021dc7865304" ) == 0 );
9307 FCT_TEST_BGN(gcm_nist_validation_aes_19212810240112_0)
9309 unsigned char key_str[128];
9310 unsigned char src_str[128];
9311 unsigned char dst_str[257];
9312 unsigned char iv_str[128];
9313 unsigned char add_str[128];
9314 unsigned char tag_str[128];
9315 unsigned char output[128];
9316 unsigned char tag_output[16];
9318 unsigned int key_len;
9319 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
9321 memset(key_str, 0x00, 128);
9322 memset(src_str, 0x00, 128);
9323 memset(dst_str, 0x00, 257);
9324 memset(iv_str, 0x00, 128);
9325 memset(add_str, 0x00, 128);
9326 memset(tag_str, 0x00, 128);
9327 memset(output, 0x00, 128);
9328 memset(tag_output, 0x00, 16);
9330 key_len =
unhexify( key_str,
"dc2c5a020d3ea731362c29d559cb14aa4f8e3f6a554a5fee" );
9331 pt_len =
unhexify( src_str,
"8cf098cb6ad79e0f0eb4ca888da004dfe6431b5982bf1490c5f2d1486c288b5d50ea0a5a63cf9d097a71348632391b4bf962bf464419c2c971e76c03eedd09d069a070c86837e16a2c39a2cb8de3e2d3f274e03998a874fa98de0933b0856e076e7f575f351d7ecd024753781f51ef600405b304e37f326846b84692448d3f2f" );
9332 iv_len =
unhexify( iv_str,
"bd4d45d970085e0b2bfc9477f5cd0244" );
9335 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
9338 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
9339 hexify( dst_str, output, pt_len );
9340 hexify( tag_str, tag_output, tag_len );
9342 fct_chk( strcmp( (
char *) dst_str,
"d44a4fd303e657670632da8dddb6a117f3e35d8afce245e7e6576711c663f36806b813ba6421ef9788681d9717a36d3eff4ae1789c242f686d8cf4ae81165191220e338bf204744c9fc70560683ec07c212846d257d924d5fc43a3d4297ac54428a32c8bb9d5137e0f4aaa42df8dec37793f3965ca658f22c866e259c80bcc59" ) == 0 );
9343 fct_chk( strcmp( (
char *) tag_str,
"9c1d6c70e1457a8d67f81cb3dc8e" ) == 0 );
9349 FCT_TEST_BGN(gcm_nist_validation_aes_19212810240112_1)
9351 unsigned char key_str[128];
9352 unsigned char src_str[128];
9353 unsigned char dst_str[257];
9354 unsigned char iv_str[128];
9355 unsigned char add_str[128];
9356 unsigned char tag_str[128];
9357 unsigned char output[128];
9358 unsigned char tag_output[16];
9360 unsigned int key_len;
9361 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
9363 memset(key_str, 0x00, 128);
9364 memset(src_str, 0x00, 128);
9365 memset(dst_str, 0x00, 257);
9366 memset(iv_str, 0x00, 128);
9367 memset(add_str, 0x00, 128);
9368 memset(tag_str, 0x00, 128);
9369 memset(output, 0x00, 128);
9370 memset(tag_output, 0x00, 16);
9372 key_len =
unhexify( key_str,
"167cb184ab6ad15be36536f505ea5447fd996b1d9a092ef3" );
9373 pt_len =
unhexify( src_str,
"0b6ec08685b5a9d32346a5fa25d208136433204f3b86182bd1d9578f0634dcbb5b59937fb87df0679334d7f41eb8bec60ae1b87994ed2cfddcb56e95a6fb4e3ab7845b0294e4afa5ad46eb5a431cbd7ad0eb0473c42c06f3f62de03d10ddda449d41137c8010af5c7c0eac7a5fde5a39b5437a2382639fe3388ce029a7d4465c" );
9374 iv_len =
unhexify( iv_str,
"b5cc89a1c10329bb417e6b519091cee4" );
9377 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
9380 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
9381 hexify( dst_str, output, pt_len );
9382 hexify( tag_str, tag_output, tag_len );
9384 fct_chk( strcmp( (
char *) dst_str,
"7ebe4a9547fb115b39b09880d6f36f8cd402bb798c6d9db036b1ebd8b87a8e9d56fc23b7ae4e8cac3500bf2f73952c37a068f1e472369b62319a8b1bc085a51fbe47e1c321dd1ba2a40692ecd68762a63467d5ecad66a3d720a8a81e02dac0ebe8df867e2f7afa367aa2688ca73565e55cf2b0072fa3681750d61e8e60275aad" ) == 0 );
9385 fct_chk( strcmp( (
char *) tag_str,
"30454dae78f14b9616b57fdc81ba" ) == 0 );
9391 FCT_TEST_BGN(gcm_nist_validation_aes_19212810240112_2)
9393 unsigned char key_str[128];
9394 unsigned char src_str[128];
9395 unsigned char dst_str[257];
9396 unsigned char iv_str[128];
9397 unsigned char add_str[128];
9398 unsigned char tag_str[128];
9399 unsigned char output[128];
9400 unsigned char tag_output[16];
9402 unsigned int key_len;
9403 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
9405 memset(key_str, 0x00, 128);
9406 memset(src_str, 0x00, 128);
9407 memset(dst_str, 0x00, 257);
9408 memset(iv_str, 0x00, 128);
9409 memset(add_str, 0x00, 128);
9410 memset(tag_str, 0x00, 128);
9411 memset(output, 0x00, 128);
9412 memset(tag_output, 0x00, 16);
9414 key_len =
unhexify( key_str,
"9bc7aad4f4bd73acf756311ff1b72b41631344b9b57cf447" );
9415 pt_len =
unhexify( src_str,
"7cdf07e17f667227edc986827d55bb803c6e51f93e72d98a1cbd161b58155a1c14ca54d52254e5f88f2a08614df68cc37f6e9fac88895b53090f69544b18aee4cc03763d35e7dd94ed82d1435316e7e02367b1c43506b3ccd31e248dce81fe62fdaea3a0bfba03477d5c151b0f76f09799048d8b23699d000a9da11281efffc1" );
9416 iv_len =
unhexify( iv_str,
"ffa8e719f29139d12f741f0228e11dfe" );
9419 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
9422 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
9423 hexify( dst_str, output, pt_len );
9424 hexify( tag_str, tag_output, tag_len );
9426 fct_chk( strcmp( (
char *) dst_str,
"6ab304cb9d1ed675383ff95f7f61ffc2aa73ab1b9a691bb84777b14c7014e986ffb91da6847d3abc0349a7aa09ed1d86f2dabc09e0e25a05800bd5d616c1a665bdb119ef71bae065ed019aed20ad3b13262a902f24ccb4819dc71419994a8b4774a3b9f4f672d31aaec997cfe340d2abdc3958c41373d0315076d22189eb5065" ) == 0 );
9427 fct_chk( strcmp( (
char *) tag_str,
"260cce7d5ed6a8666c9feaad7058" ) == 0 );
9433 FCT_TEST_BGN(gcm_nist_validation_aes_19212810240104_0)
9435 unsigned char key_str[128];
9436 unsigned char src_str[128];
9437 unsigned char dst_str[257];
9438 unsigned char iv_str[128];
9439 unsigned char add_str[128];
9440 unsigned char tag_str[128];
9441 unsigned char output[128];
9442 unsigned char tag_output[16];
9444 unsigned int key_len;
9445 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
9447 memset(key_str, 0x00, 128);
9448 memset(src_str, 0x00, 128);
9449 memset(dst_str, 0x00, 257);
9450 memset(iv_str, 0x00, 128);
9451 memset(add_str, 0x00, 128);
9452 memset(tag_str, 0x00, 128);
9453 memset(output, 0x00, 128);
9454 memset(tag_output, 0x00, 16);
9456 key_len =
unhexify( key_str,
"5bd47bea08eab8694defc2b66e60da1be40fc1e398224f9b" );
9457 pt_len =
unhexify( src_str,
"083ad3fe9273b8063e144a03f88fb179b18327aba37259d7f8532303306ac9d18cfcb746cab3f9385b5bb685fbc4a252dda268044642f5dbe33ea6e1634445311e440c5507fa6beaed343c83aeb0ffc4f1cba21b39f0ff6edfff961aed3ae1796f8bfeebcd3392d92e26dd26a19a7b7c2e5910f22557fad600f8cca8aba988d4" );
9458 iv_len =
unhexify( iv_str,
"e45a52c5e5ecc87b4320864b38683777" );
9461 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
9464 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
9465 hexify( dst_str, output, pt_len );
9466 hexify( tag_str, tag_output, tag_len );
9468 fct_chk( strcmp( (
char *) dst_str,
"8fa3cd91fb93a346e1f9595088c5503a840c7d7c33aa1be147e484e2aef2a8bda77275348ca59810abef6e179888f6781862990ba8e6d96af70febd2f671a3a8d6dce9be46c1cc6dbfaae35c35a7073205411cc8ab4ddd266b31b64edab4ffea076b29803149850cca41c857b05c10148182f8e7252e67069e7517da5fc08ee1" ) == 0 );
9469 fct_chk( strcmp( (
char *) tag_str,
"9fa3372199a2484f82c330093f" ) == 0 );
9475 FCT_TEST_BGN(gcm_nist_validation_aes_19212810240104_1)
9477 unsigned char key_str[128];
9478 unsigned char src_str[128];
9479 unsigned char dst_str[257];
9480 unsigned char iv_str[128];
9481 unsigned char add_str[128];
9482 unsigned char tag_str[128];
9483 unsigned char output[128];
9484 unsigned char tag_output[16];
9486 unsigned int key_len;
9487 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
9489 memset(key_str, 0x00, 128);
9490 memset(src_str, 0x00, 128);
9491 memset(dst_str, 0x00, 257);
9492 memset(iv_str, 0x00, 128);
9493 memset(add_str, 0x00, 128);
9494 memset(tag_str, 0x00, 128);
9495 memset(output, 0x00, 128);
9496 memset(tag_output, 0x00, 16);
9498 key_len =
unhexify( key_str,
"850a811ca18044dee4487729e619cca71f05a5b164dd1250" );
9499 pt_len =
unhexify( src_str,
"6ee76712d0b1fc00e43c2312743a881ed95a0b06276c5a4d93e3d56732af6b12c7c0d1aa6ffaec562229b6443e576caecffeadd9a65b91efa1bfe48ab1ecc63c381d00fe8dc7f11365f2b28945e844e7c6ca60972f733a96f29cc12e259c7cf29e2c7bbf8f572e158782a46093c5754656d0f2e1e1ea2a0b315b5fa02dadf408" );
9500 iv_len =
unhexify( iv_str,
"6f79e0f62236790c89156c14bd9540a9" );
9503 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
9506 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
9507 hexify( dst_str, output, pt_len );
9508 hexify( tag_str, tag_output, tag_len );
9510 fct_chk( strcmp( (
char *) dst_str,
"eb1ebd78d7ac88e6f927e09fecf7feb1aa64d7435aae76cc917edd9e0624a96e945df67648c187e397954da7b0888005f7a0d05d09de424c1a0648b56707b90da4021d5a36175500337e7341d1a474fbaa94e56d7ea52155829eb6bb9d95457c138875f0738034924d59681e7c2dfffb7dc0959697468ea2b65a884c897208ab" ) == 0 );
9511 fct_chk( strcmp( (
char *) tag_str,
"91c74a30e5bff5b2585ac7699e" ) == 0 );
9517 FCT_TEST_BGN(gcm_nist_validation_aes_19212810240104_2)
9519 unsigned char key_str[128];
9520 unsigned char src_str[128];
9521 unsigned char dst_str[257];
9522 unsigned char iv_str[128];
9523 unsigned char add_str[128];
9524 unsigned char tag_str[128];
9525 unsigned char output[128];
9526 unsigned char tag_output[16];
9528 unsigned int key_len;
9529 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
9531 memset(key_str, 0x00, 128);
9532 memset(src_str, 0x00, 128);
9533 memset(dst_str, 0x00, 257);
9534 memset(iv_str, 0x00, 128);
9535 memset(add_str, 0x00, 128);
9536 memset(tag_str, 0x00, 128);
9537 memset(output, 0x00, 128);
9538 memset(tag_output, 0x00, 16);
9540 key_len =
unhexify( key_str,
"91469828dafd30de415067236d5f49ea14e813637f1ee0c3" );
9541 pt_len =
unhexify( src_str,
"e3aac00bd05ce3c9b87720db82104364c8ef6ef25d6f3c8bcf5f73f1a26f8619e831bf7bb28c4dcbac7013dc6282d07cc225bd969c582a26accd7cfffe878a3159a5ad3cb6c8b89131aada61e2960cc5431f4ef94394634e4c8b2938409bcd2e7668986c7c5cd2ed5f2c525fa0212996960ab842a43869ed430d3291799a2a1e" );
9542 iv_len =
unhexify( iv_str,
"cb5409aad9d227a3cf0e2c5f1031873e" );
9545 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
9548 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
9549 hexify( dst_str, output, pt_len );
9550 hexify( tag_str, tag_output, tag_len );
9552 fct_chk( strcmp( (
char *) dst_str,
"4aa82b1c81a911cbe84231ce7afb95188f2177b539fb77de68f3d4801a2bd09f5ee2f7e59b5d9e79be5f7a23f0612ae39d59259dabc8b1bf7dbd4adc0db520bf7e71b988fa96d6b4dfc76afdc22ea31f64c64388dd93b27518b3263b0a19007405fc08645350a69e863a97dd952c8d886b5e0f444a6e77a9ef7c7de54f405a04" ) == 0 );
9553 fct_chk( strcmp( (
char *) tag_str,
"2a6b14c78bcb6e2718d8a28e42" ) == 0 );
9559 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024096_0)
9561 unsigned char key_str[128];
9562 unsigned char src_str[128];
9563 unsigned char dst_str[257];
9564 unsigned char iv_str[128];
9565 unsigned char add_str[128];
9566 unsigned char tag_str[128];
9567 unsigned char output[128];
9568 unsigned char tag_output[16];
9570 unsigned int key_len;
9571 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
9573 memset(key_str, 0x00, 128);
9574 memset(src_str, 0x00, 128);
9575 memset(dst_str, 0x00, 257);
9576 memset(iv_str, 0x00, 128);
9577 memset(add_str, 0x00, 128);
9578 memset(tag_str, 0x00, 128);
9579 memset(output, 0x00, 128);
9580 memset(tag_output, 0x00, 16);
9582 key_len =
unhexify( key_str,
"7b6907853b7d4c4a19468111d96c5de048200b5441b9411d" );
9583 pt_len =
unhexify( src_str,
"3622ba252c067ce7d6cae1d1f5068e457a0cf93be01fdce6dc8652a53135d5ed445388679e3f388ee6a81220b19356b275878fbcc2a6751bee7e2a50adb7c430e4c8cae03e88465f97bcaeb151d4f0007bee6bb9864b33020717adc42d6f8a283a20f6b62ec79fb8060e3e5ecc1e91a2eaef57e9dabd3b3634236f12d4bff475" );
9584 iv_len =
unhexify( iv_str,
"a66ee64c15094be079084c89cb1739c1" );
9587 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
9590 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
9591 hexify( dst_str, output, pt_len );
9592 hexify( tag_str, tag_output, tag_len );
9594 fct_chk( strcmp( (
char *) dst_str,
"2b8c1490e13881ab3bac875cbdb86baabe7fa30445bcb39315d057171e80d02aa8471355e80ba891b26d80b375508ba2756162cc688578be313a50096d7cd6253a8094970898fb99cd2967e78a57d12b8b3e3c10502634bead5bfe2c9dad332fcbda0c1bca16fd5cac78ebcbc7f15aad8b28abf3ed74a245a8e7a85cfaa712ab" ) == 0 );
9595 fct_chk( strcmp( (
char *) tag_str,
"e52af33988855d1a31158c78" ) == 0 );
9601 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024096_1)
9603 unsigned char key_str[128];
9604 unsigned char src_str[128];
9605 unsigned char dst_str[257];
9606 unsigned char iv_str[128];
9607 unsigned char add_str[128];
9608 unsigned char tag_str[128];
9609 unsigned char output[128];
9610 unsigned char tag_output[16];
9612 unsigned int key_len;
9613 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
9615 memset(key_str, 0x00, 128);
9616 memset(src_str, 0x00, 128);
9617 memset(dst_str, 0x00, 257);
9618 memset(iv_str, 0x00, 128);
9619 memset(add_str, 0x00, 128);
9620 memset(tag_str, 0x00, 128);
9621 memset(output, 0x00, 128);
9622 memset(tag_output, 0x00, 16);
9624 key_len =
unhexify( key_str,
"fe63e247e8de838a197a9e937e34c0f5a0b282533d445015" );
9625 pt_len =
unhexify( src_str,
"17c5d748b8596901e97df660ca94fc970f7ebb769aff88f60acc425f50ebfb6744c6d8778c226c5d63653d9388d3fa0d4d630f94d668f3478c89e2708501edb12307a9b2189576cbc79388d291354cb9a5d1eace4ca1d9f734fc78e55ecbf86338a31ebe583cace752e8bafd0a820384136963eb2d2f4eea7b2f69597737a1ca" );
9626 iv_len =
unhexify( iv_str,
"8e018305675c287f802f28fe56ae5c4b" );
9629 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
9632 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
9633 hexify( dst_str, output, pt_len );
9634 hexify( tag_str, tag_output, tag_len );
9636 fct_chk( strcmp( (
char *) dst_str,
"c3d34e2cf1c3ad629490d70a0fec1a63c88d025ffed46ff8f5d8c0879c166ad716b702682cd0a437bdaa03a9b2e69a32fb7259b0fa930ca7a344aea37886cc9850e44de0aa049b8bc300caee82e26b2a1e5ab45c4c7cc6a15f5f595199999a0cacaa59da1b2be2a204fe13005b92ce722a000228545ae8a61b2c667a386f431b" ) == 0 );
9637 fct_chk( strcmp( (
char *) tag_str,
"d7a6a917a286d8edf1289183" ) == 0 );
9643 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024096_2)
9645 unsigned char key_str[128];
9646 unsigned char src_str[128];
9647 unsigned char dst_str[257];
9648 unsigned char iv_str[128];
9649 unsigned char add_str[128];
9650 unsigned char tag_str[128];
9651 unsigned char output[128];
9652 unsigned char tag_output[16];
9654 unsigned int key_len;
9655 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
9657 memset(key_str, 0x00, 128);
9658 memset(src_str, 0x00, 128);
9659 memset(dst_str, 0x00, 257);
9660 memset(iv_str, 0x00, 128);
9661 memset(add_str, 0x00, 128);
9662 memset(tag_str, 0x00, 128);
9663 memset(output, 0x00, 128);
9664 memset(tag_output, 0x00, 16);
9666 key_len =
unhexify( key_str,
"c739dae83a5e64bd98ffaf68b5bcbcd0155d8109e9ff2518" );
9667 pt_len =
unhexify( src_str,
"56dafc06b354e84ce3ce31b7f88193124ca7e7049272beb93fbedcb3ede8e017bdb9ee5d314ec5168443fe01258d9abc4c4c27580f6299b20082b4ca87eb2589bedc459f132dfaefafffdd13f82e153a2165dcab9a9b6c10f1d0d13b127312a6f5f3d65a73b8fd057f1d88038c5137254111f7aedf21af07a35e34cf4d2166d9" );
9668 iv_len =
unhexify( iv_str,
"d80ac4dacb0f1441839e2068013dde3f" );
9671 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
9674 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
9675 hexify( dst_str, output, pt_len );
9676 hexify( tag_str, tag_output, tag_len );
9678 fct_chk( strcmp( (
char *) dst_str,
"9ae5107f4394c9050f8ca8ae6d1eb66099ccd0166f38e45c1cbc17b30e218fcf6015ac92dd7ab48bbb095a0523904c72710a86e50518d6aade269c82bc5ecdfa729802441e09aeb939abb43f5960542ad87961e2141f967d12f7190b07de99811b264dc62cb8f067872f84d21b661558ceeae4922900ffd76084e450650de79b" ) == 0 );
9679 fct_chk( strcmp( (
char *) tag_str,
"6a180ed4f3a9d5739e559d00" ) == 0 );
9685 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024064_0)
9687 unsigned char key_str[128];
9688 unsigned char src_str[128];
9689 unsigned char dst_str[257];
9690 unsigned char iv_str[128];
9691 unsigned char add_str[128];
9692 unsigned char tag_str[128];
9693 unsigned char output[128];
9694 unsigned char tag_output[16];
9696 unsigned int key_len;
9697 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
9699 memset(key_str, 0x00, 128);
9700 memset(src_str, 0x00, 128);
9701 memset(dst_str, 0x00, 257);
9702 memset(iv_str, 0x00, 128);
9703 memset(add_str, 0x00, 128);
9704 memset(tag_str, 0x00, 128);
9705 memset(output, 0x00, 128);
9706 memset(tag_output, 0x00, 16);
9708 key_len =
unhexify( key_str,
"4c23ed64375d42c3a402fdadd143336d2f6babf4d4ebc176" );
9709 pt_len =
unhexify( src_str,
"5541a219108ce3ce593cca8c6aa6504c84983a98851bf8610d71f79a38bdc21d5219266ad56e10ccba4898ea969815ed0d6df75312d657631e1e22e46f727a499696399a0955d94942a641383cadebc5328da2ac75bf0db709000ba3277581e1318cb5825ba112df3ea9c453ad04d03eb29d1715412cc03dbce6c8e380b36167" );
9710 iv_len =
unhexify( iv_str,
"daa6f68b3ce298310bcc2a7e0b2f9fec" );
9713 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
9716 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
9717 hexify( dst_str, output, pt_len );
9718 hexify( tag_str, tag_output, tag_len );
9720 fct_chk( strcmp( (
char *) dst_str,
"2a4e04101d4c822eba024dcea27d67eca7ba7f0ea6d5290ced9376049ae085ccae3ecb624c03eb5b2808982c88f0a5c4363a7271610b674317bbdf1538776f1fa2454c249a1b0d6c3e64bd4a356ac2aa2fd601a83d4fa76291f3ef1a9bfc858cc0aea10cff34ab9eb55411efec2a82a90af3fc80f3d8e2b56181630230890acc" ) == 0 );
9721 fct_chk( strcmp( (
char *) tag_str,
"d408209fabf82a35" ) == 0 );
9727 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024064_1)
9729 unsigned char key_str[128];
9730 unsigned char src_str[128];
9731 unsigned char dst_str[257];
9732 unsigned char iv_str[128];
9733 unsigned char add_str[128];
9734 unsigned char tag_str[128];
9735 unsigned char output[128];
9736 unsigned char tag_output[16];
9738 unsigned int key_len;
9739 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
9741 memset(key_str, 0x00, 128);
9742 memset(src_str, 0x00, 128);
9743 memset(dst_str, 0x00, 257);
9744 memset(iv_str, 0x00, 128);
9745 memset(add_str, 0x00, 128);
9746 memset(tag_str, 0x00, 128);
9747 memset(output, 0x00, 128);
9748 memset(tag_output, 0x00, 16);
9750 key_len =
unhexify( key_str,
"695dfde34f0af192faa50244ab95a6059e2e637e237eb60d" );
9751 pt_len =
unhexify( src_str,
"33ca2c61a04467ad2bbd2ba8144573f0c2504a4e9945fbae250385406ed1757adb70534bd6ed854f227d93eee57c73a314f5955208e1ba5af8cc1e8b5bb07cb63030e3ae5f0ad287536f49b576418bb1d2dec40562f6bdda59c373d6668aaa9b791285716325fccbda2180e33955c8be19d05e389820ed69258c9b93e3c82e96" );
9752 iv_len =
unhexify( iv_str,
"a6a57792b5a738286fb575b84eea2aaa" );
9755 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
9758 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
9759 hexify( dst_str, output, pt_len );
9760 hexify( tag_str, tag_output, tag_len );
9762 fct_chk( strcmp( (
char *) dst_str,
"b2ce449fc806dfb93cd7c97c018c2ba7d702216ae29a530a8f22d07279c7570c6288fc01fa9915b42a6be7a7d9569f71b8fc2411dd9747b5c9c7b5c0a592bcd7e8f4530ebaee37e9c7d48d7a56be7e2df1d91cecfd11bec09bbca7ce7106942989594e791e00e23557c843acf5164f3863d90f606ad8328696f4ca51fd29346c" ) == 0 );
9763 fct_chk( strcmp( (
char *) tag_str,
"050bd720de1b1350" ) == 0 );
9769 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024064_2)
9771 unsigned char key_str[128];
9772 unsigned char src_str[128];
9773 unsigned char dst_str[257];
9774 unsigned char iv_str[128];
9775 unsigned char add_str[128];
9776 unsigned char tag_str[128];
9777 unsigned char output[128];
9778 unsigned char tag_output[16];
9780 unsigned int key_len;
9781 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
9783 memset(key_str, 0x00, 128);
9784 memset(src_str, 0x00, 128);
9785 memset(dst_str, 0x00, 257);
9786 memset(iv_str, 0x00, 128);
9787 memset(add_str, 0x00, 128);
9788 memset(tag_str, 0x00, 128);
9789 memset(output, 0x00, 128);
9790 memset(tag_output, 0x00, 16);
9792 key_len =
unhexify( key_str,
"1a89a516204837bc780ad9b26717e51ccf42591bf58c75c1" );
9793 pt_len =
unhexify( src_str,
"c72a1b8707522442b992cb21a7526dfd341e27a11e761f594abbfacc2ac26ea48523d0113e38adbfc06d4af8809cb606454467fd253ca442241e8921b906d6c007dd09e139e568194666d5da0b33c7ca67876856cf504e8dfab4a5b0a77cfb1883d532ef7c70b35b0838882f144991c25a2331863eaaaa2059401f61378750e5" );
9794 iv_len =
unhexify( iv_str,
"a9b1ef7744075cd6cc024f8c7b3b0b6e" );
9797 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
9800 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
9801 hexify( dst_str, output, pt_len );
9802 hexify( tag_str, tag_output, tag_len );
9804 fct_chk( strcmp( (
char *) dst_str,
"0ec50150590bb419df0d6c410edfc2f8805a602ff247e3b50881ad3efb598ed053d8dd1deff86460db0081c0eb3effe9ea94564f74000166f08db24da6cfcba91a9ee1e98b8671db99edbe8fde11d0e898bb130e1b27358fc42be03fb3348af7de9376af495c0ec71aed56d680632195539b2d1d5bf804328d0928a44c9731ce" ) == 0 );
9805 fct_chk( strcmp( (
char *) tag_str,
"6c9f55e67533828c" ) == 0 );
9811 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024032_0)
9813 unsigned char key_str[128];
9814 unsigned char src_str[128];
9815 unsigned char dst_str[257];
9816 unsigned char iv_str[128];
9817 unsigned char add_str[128];
9818 unsigned char tag_str[128];
9819 unsigned char output[128];
9820 unsigned char tag_output[16];
9822 unsigned int key_len;
9823 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
9825 memset(key_str, 0x00, 128);
9826 memset(src_str, 0x00, 128);
9827 memset(dst_str, 0x00, 257);
9828 memset(iv_str, 0x00, 128);
9829 memset(add_str, 0x00, 128);
9830 memset(tag_str, 0x00, 128);
9831 memset(output, 0x00, 128);
9832 memset(tag_output, 0x00, 16);
9834 key_len =
unhexify( key_str,
"4107d51f7d6e24aa605959d5d46b4c7e1743b7d5e3ae07b6" );
9835 pt_len =
unhexify( src_str,
"e5074ffbaf5e771e12f9e7cc8e7701b970aa7897928681383ea0f91bce8200ec6782dc9618e065e142c4ef2f7019791e74edfe2040b08bdf328d7d9658e7473beab65359d35ed168a2bb39f3c3f59890353405a82f48e16d388eb8f2145ed9bff016e725791cabca913813e7485f387223711c1ad098ffa0f72f74a048ec17ea" );
9836 iv_len =
unhexify( iv_str,
"94a88f6872995b26da39efb5e3f93334" );
9839 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
9842 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
9843 hexify( dst_str, output, pt_len );
9844 hexify( tag_str, tag_output, tag_len );
9846 fct_chk( strcmp( (
char *) dst_str,
"bf32a717c945e1e2fe91fd38f3c7084210a7966cb83235d28f701ebcae6b2042226e932e4601eb3ed4728ca32bf7065fcdc98017dabcac23f0f80c65e92518db6c78bf4cd91f817b69f3c3a8891786d433f6c3c1a025c1d37bd1c587ba6004085571245591d615906f5c18994f09a03f3eef180d7af34f00ecfe153d5ab73933" ) == 0 );
9847 fct_chk( strcmp( (
char *) tag_str,
"8d43426d" ) == 0 );
9853 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024032_1)
9855 unsigned char key_str[128];
9856 unsigned char src_str[128];
9857 unsigned char dst_str[257];
9858 unsigned char iv_str[128];
9859 unsigned char add_str[128];
9860 unsigned char tag_str[128];
9861 unsigned char output[128];
9862 unsigned char tag_output[16];
9864 unsigned int key_len;
9865 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
9867 memset(key_str, 0x00, 128);
9868 memset(src_str, 0x00, 128);
9869 memset(dst_str, 0x00, 257);
9870 memset(iv_str, 0x00, 128);
9871 memset(add_str, 0x00, 128);
9872 memset(tag_str, 0x00, 128);
9873 memset(output, 0x00, 128);
9874 memset(tag_output, 0x00, 16);
9876 key_len =
unhexify( key_str,
"0fa6270a44c8d14937cc3ff4cc2d2c997254a42ca8a09eaf" );
9877 pt_len =
unhexify( src_str,
"2252d1c4706cc46ad3e4f8c49a92cdc7d1af24deaf7b08ab7304ef804cfe261acc3a202bec0d8df42cc36a5a3ace9ed7a9465cdec3513d31de9ae7821f9444226439c8f98a9a7d99b36b91b1b00eac71080d7eb550209af5fb7b3f28d09f5060070da73a40456d60c0470773af95d16c0b33d0b5327d44188619b950590ea862" );
9878 iv_len =
unhexify( iv_str,
"b5f3fde841156bc408ec3de9ef3438fc" );
9881 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
9884 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
9885 hexify( dst_str, output, pt_len );
9886 hexify( tag_str, tag_output, tag_len );
9888 fct_chk( strcmp( (
char *) dst_str,
"4fcfc56fa722af32e804dee0f4b67f5fea542b381bc47c41451844c82e5427f6cd90c37e088dbaff722d8700a11d5dfb4282e565f32e055324e5069931c86b62feb2cdf82ca1f62aee02a70e4e274b2b957650a5cc772be86c1b1cfc41b01d20d9be8b05b9e3ff65413520789ca0f198fe00d83483a1d85aeb13094c9a827e7d" ) == 0 );
9889 fct_chk( strcmp( (
char *) tag_str,
"1ae8f9c3" ) == 0 );
9895 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024032_2)
9897 unsigned char key_str[128];
9898 unsigned char src_str[128];
9899 unsigned char dst_str[257];
9900 unsigned char iv_str[128];
9901 unsigned char add_str[128];
9902 unsigned char tag_str[128];
9903 unsigned char output[128];
9904 unsigned char tag_output[16];
9906 unsigned int key_len;
9907 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
9909 memset(key_str, 0x00, 128);
9910 memset(src_str, 0x00, 128);
9911 memset(dst_str, 0x00, 257);
9912 memset(iv_str, 0x00, 128);
9913 memset(add_str, 0x00, 128);
9914 memset(tag_str, 0x00, 128);
9915 memset(output, 0x00, 128);
9916 memset(tag_output, 0x00, 16);
9918 key_len =
unhexify( key_str,
"104c18bd2a0641fd46c2d7590d60d6d8eea74a2758ed0f4d" );
9919 pt_len =
unhexify( src_str,
"4434cf5d12d07614227cfc12716a8adfc651ffe5c6476cf4489afaa698d9d19947016bdbcb5b625773252745dfeaf9b10021a5b38f742ea8a0fc5f926c80cef6568ab8639cddcf8fee9678d45ad4937d6e6b054b65512f929e897ed5f965cd14cad939732c53a847bb2758d818d5d131977649db5b59a0c5ebac37db961f9d69" );
9920 iv_len =
unhexify( iv_str,
"2902faec60f754f0fbb1981aeba277ff" );
9923 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
9926 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
9927 hexify( dst_str, output, pt_len );
9928 hexify( tag_str, tag_output, tag_len );
9930 fct_chk( strcmp( (
char *) dst_str,
"1789524845a1e36322c44dd1e938ee5d0fe6df244b751f3023d5d64d40a72598d352d9d2faba68be4e035c258b68782273925a94527fcdb977a41c1e0a96f53119b5909b23b0327c820e8f6da049a5d144a98019c4953aafd481190117573869109c265012a42f76bb4c3353f6613ccbc40a4af2f9e148bf0a0324bb43337fb7" ) == 0 );
9931 fct_chk( strcmp( (
char *) tag_str,
"d36d2d06" ) == 0 );
9937 FCT_TEST_BGN(gcm_nist_validation_aes_19212810241024128_0)
9939 unsigned char key_str[128];
9940 unsigned char src_str[128];
9941 unsigned char dst_str[257];
9942 unsigned char iv_str[128];
9943 unsigned char add_str[128];
9944 unsigned char tag_str[128];
9945 unsigned char output[128];
9946 unsigned char tag_output[16];
9948 unsigned int key_len;
9949 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
9951 memset(key_str, 0x00, 128);
9952 memset(src_str, 0x00, 128);
9953 memset(dst_str, 0x00, 257);
9954 memset(iv_str, 0x00, 128);
9955 memset(add_str, 0x00, 128);
9956 memset(tag_str, 0x00, 128);
9957 memset(output, 0x00, 128);
9958 memset(tag_output, 0x00, 16);
9960 key_len =
unhexify( key_str,
"263451f187b6dcab9d8dc4364217a483dd80c1d75f24fcea" );
9961 pt_len =
unhexify( src_str,
"5e236c282eb4646fbd16a95eff2b27873f625a7e919237d75989a8a112ea80ce8db0b4aeaf5da59c3b22649dabb584284ab9673ba7edef59043eb8e99763643941a4788e7cf11bad63e13c9ef08644044b76beef68928dac22975481da4afc723b3ab3b498189542cbdffbc3f467d190cd02e9b36b6981122aa80cfa3aa3561f" );
9962 iv_len =
unhexify( iv_str,
"6c4552b3a03152aa464e88fd5b14356d" );
9963 add_len =
unhexify( add_str,
"435453a304fcd3c4bd6ab90d6ed8c54e6d21f75b9e56c9d48030499b04f6754cff628c4c9216f7d8a0abed5b8b7ca128c099a7deab74ecfe2c4a494b30d74833f837d254aa00d75aa963ce9c041f1916eb63d673a4af3f88817c65d4c86f5a3c28a67de2aaf75f08d1b628af333e518a7e99d980571db608407d3f447563f2df" );
9965 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
9968 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
9969 hexify( dst_str, output, pt_len );
9970 hexify( tag_str, tag_output, tag_len );
9972 fct_chk( strcmp( (
char *) dst_str,
"12dea5ea9b54957c689c7c9c6a711e2880645109a4057fafe3b32727a60ee1e24f8450310d6b8402c26b307bb0bf3cb7c6407270d95590efb938e6d77359666b11a7a3833a7122697e959645d8e9d835e0bd39bdc30397115b4c348ea825c850c1e54a60a2522a6321e4b99fa2ad9215205628c595b07c6ffed939c779d23ab2" ) == 0 );
9973 fct_chk( strcmp( (
char *) tag_str,
"585677e0f37ae13d886c38202c3860b7" ) == 0 );
9979 FCT_TEST_BGN(gcm_nist_validation_aes_19212810241024128_1)
9981 unsigned char key_str[128];
9982 unsigned char src_str[128];
9983 unsigned char dst_str[257];
9984 unsigned char iv_str[128];
9985 unsigned char add_str[128];
9986 unsigned char tag_str[128];
9987 unsigned char output[128];
9988 unsigned char tag_output[16];
9990 unsigned int key_len;
9991 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
9993 memset(key_str, 0x00, 128);
9994 memset(src_str, 0x00, 128);
9995 memset(dst_str, 0x00, 257);
9996 memset(iv_str, 0x00, 128);
9997 memset(add_str, 0x00, 128);
9998 memset(tag_str, 0x00, 128);
9999 memset(output, 0x00, 128);
10000 memset(tag_output, 0x00, 16);
10002 key_len =
unhexify( key_str,
"dbcf735d7c8701f537090d3dcf914c741ed783c24bd8265b" );
10003 pt_len =
unhexify( src_str,
"18eb70dff73341298ce33ff4049fa631f2c72c158fcdea55d1231c46c95ba4013012b713bc95ba25a2114d0380c297acd05c323696db466874083e18bf544dabffbc70be4649cfe7e8bf449aeb9789d6fa412a1adf57ce732702ab962561f9e1fa850733c97b8a4158786e8ccf32af0fc2b04907124e731ffaf3fa7eacaa64b2" );
10004 iv_len =
unhexify( iv_str,
"09ecced8460af635e46bc82450352be5" );
10005 add_len =
unhexify( add_str,
"cc5b8f82fce3797009fbd38dfad7055a5e2ac241363f6773191d0e534e2b4592a6805c191daad377245c414df8edc4d3d9ecd191a50cf9747dde65187484802e15797d7c7e1db49ea4e423e94d9ad3b99aea6bf2928ce6addfc00848550b4d2e466e85a282cc022c7c4469d2cb16151e81bf63df378e0c676036197d9470f42a" );
10007 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
10010 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
10011 hexify( dst_str, output, pt_len );
10012 hexify( tag_str, tag_output, tag_len );
10014 fct_chk( strcmp( (
char *) dst_str,
"8298f796428faffa6085e458f149675d6c6e2cdfbc7994ee6f19af40fe8926c28904fd5ac0b9bdbd2de3f1614500a3eab1f980f82ac23cae80f3e6ba71539d1723e9f3412df345536f7517d847aae79a83ee9ad5fe38d60c6618d870cb1f203a3e1847d14d8de5295209c0e05aa196fec0eab8389e4eb66bdf3dd49d0800ffad" ) == 0 );
10015 fct_chk( strcmp( (
char *) tag_str,
"e53ca266dd93def5bee5daf70c953dd2" ) == 0 );
10021 FCT_TEST_BGN(gcm_nist_validation_aes_19212810241024128_2)
10023 unsigned char key_str[128];
10024 unsigned char src_str[128];
10025 unsigned char dst_str[257];
10026 unsigned char iv_str[128];
10027 unsigned char add_str[128];
10028 unsigned char tag_str[128];
10029 unsigned char output[128];
10030 unsigned char tag_output[16];
10032 unsigned int key_len;
10033 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
10035 memset(key_str, 0x00, 128);
10036 memset(src_str, 0x00, 128);
10037 memset(dst_str, 0x00, 257);
10038 memset(iv_str, 0x00, 128);
10039 memset(add_str, 0x00, 128);
10040 memset(tag_str, 0x00, 128);
10041 memset(output, 0x00, 128);
10042 memset(tag_output, 0x00, 16);
10044 key_len =
unhexify( key_str,
"5f8d84908a8b7f5e118482bb867102a244bcbf48b7229115" );
10045 pt_len =
unhexify( src_str,
"9cd2a4e2acbeea6a73b5bffc1191d8045f63f3a14aa762eb776f35518f72bde4f9c8decd61a9319e3dfca82e682910a43de2719451e1a32839b29b27c3eb1c8f6118512d6a19cf189e2d04cf4e22459397936d60f7551244387294a7994320546f070e54f166cd7c243d13f3017b786f7df6a7fa4ece05a2fe49fc39e2225b92" );
10046 iv_len =
unhexify( iv_str,
"5ba986f5115d40c2cfe404007a1e2403" );
10047 add_len =
unhexify( add_str,
"06f98d4807efecfc863309f3bc64b0f04e4c16c32675ff97a3295d5657d4443f6c8b0a394d3f942705bdc19c22b8ff58e9b7c209b528b745fa0424d5898ef0e42e0909aa5ad0b01f8549e3674102ddaf4784f0ff8908cf9f9a25e7e4dd9af4da7bd13ae0cd87b6aaa6b132dc518f4a95af403e612edce63e1424dacf8e349372" );
10049 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
10052 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
10053 hexify( dst_str, output, pt_len );
10054 hexify( tag_str, tag_output, tag_len );
10056 fct_chk( strcmp( (
char *) dst_str,
"2f168fd1c819b159739a7cc783ecdb0ef9639b7965918e343e2a55f196daf584f7f14bb6e42d37b504bfc2cc08c218c5b841b2d2abce05bbf15315f471e56f04f7d54d6f1dc7b7a68b8bc7026a1441105015bcee2c39d83be35d25f0d514bd1ffe75411b32867ebf2d532a766f9bfce9e55ea3e0240d2a3713ddc2ba790bad21" ) == 0 );
10057 fct_chk( strcmp( (
char *) tag_str,
"7f121ea36b36449e1db85e8a91ab16f3" ) == 0 );
10063 FCT_TEST_BGN(gcm_nist_validation_aes_19212810241024120_0)
10065 unsigned char key_str[128];
10066 unsigned char src_str[128];
10067 unsigned char dst_str[257];
10068 unsigned char iv_str[128];
10069 unsigned char add_str[128];
10070 unsigned char tag_str[128];
10071 unsigned char output[128];
10072 unsigned char tag_output[16];
10074 unsigned int key_len;
10075 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
10077 memset(key_str, 0x00, 128);
10078 memset(src_str, 0x00, 128);
10079 memset(dst_str, 0x00, 257);
10080 memset(iv_str, 0x00, 128);
10081 memset(add_str, 0x00, 128);
10082 memset(tag_str, 0x00, 128);
10083 memset(output, 0x00, 128);
10084 memset(tag_output, 0x00, 16);
10086 key_len =
unhexify( key_str,
"f6c3037a59e98a9a81094d65ca52752ad92f93bcfa671821" );
10087 pt_len =
unhexify( src_str,
"26647f8f4092f80fc19f81f029c354c582b582516e8e27e97d50866e8ff755f50a8ae6422f4e996f0cf50826a68c007a5b16fd59002d368ed3285bbd04f8f9a5a524243cb8d5b3ffa184ba7384771bfc508f2e93abd2a1e7170d694d35cc0ff7f247e84ca8889efc820c3f6d9cd40afd56c5799972d7556c91cde50ac808652c" );
10088 iv_len =
unhexify( iv_str,
"43b4f15bbe525913a31a9adf23d1971e" );
10089 add_len =
unhexify( add_str,
"60826c97f0a99b88e7aeab774a3f2278f9d35b6c1a5fce49d9389a421543c99f68797224535dca4d7040313340da73982220040a063b045843a14f5d38763f95bdd26ef818f6e5171c8d5b47f183589afd6acd36e59b9946c1edf038ae285f500171e9850603cda36043c29860e75bfe03c21e0ef11a9aecc5d5c51bb2201d29" );
10091 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
10094 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
10095 hexify( dst_str, output, pt_len );
10096 hexify( tag_str, tag_output, tag_len );
10098 fct_chk( strcmp( (
char *) dst_str,
"e58df99cce5b2548cf39684df6a26b8f9b7969168ff21c410bc40b763842ab3b30cbb3c82e0b420c8100da61c9037a9f112db9563a3d069cdf2997e7f4dbb0b5d79b56f0e985cd8cb70355366f7afd211bd9909c48b142c6556326062d27f7f82d76b83c433f00f1716ebc95038cb57c550b5810b77788c8bf1e686a8a14b610" ) == 0 );
10099 fct_chk( strcmp( (
char *) tag_str,
"ba6aa6d68a560642c266bf4469eaac" ) == 0 );
10105 FCT_TEST_BGN(gcm_nist_validation_aes_19212810241024120_1)
10107 unsigned char key_str[128];
10108 unsigned char src_str[128];
10109 unsigned char dst_str[257];
10110 unsigned char iv_str[128];
10111 unsigned char add_str[128];
10112 unsigned char tag_str[128];
10113 unsigned char output[128];
10114 unsigned char tag_output[16];
10116 unsigned int key_len;
10117 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
10119 memset(key_str, 0x00, 128);
10120 memset(src_str, 0x00, 128);
10121 memset(dst_str, 0x00, 257);
10122 memset(iv_str, 0x00, 128);
10123 memset(add_str, 0x00, 128);
10124 memset(tag_str, 0x00, 128);
10125 memset(output, 0x00, 128);
10126 memset(tag_output, 0x00, 16);
10128 key_len =
unhexify( key_str,
"8fd9b08232a1d3fbe319d0897c74098f75b3e801d10e183a" );
10129 pt_len =
unhexify( src_str,
"a677a13ae26b7a05cecfd153aaaea02ccb50db601221a3df545164bb5fe638f6ed276d4bd172b9e740a82a690aec4f18f4f3a0afb80c9a32188958e1cb3651064f55ca1211647903f63013e46b46c7f4f95589012eb4ccd2451d8e8dacc3cd066281f1f0c71f69f1c49f3f94136a522fff0d02427e4bccab056e615ff6fde1d6" );
10130 iv_len =
unhexify( iv_str,
"304c759800b8e275dfcfd3e5e3c61a7e" );
10131 add_len =
unhexify( add_str,
"5d2dffb00a25788548ff1b2c94745e5bfcc05eeb11e63501007335d4bd06bfb3223d4682e7e83eca0e163d1a8f2a76096ab2839ad14b45eb59ea9b29feb76f40b0d8dac55247c65e5dbe6bb2d5155ddcf2b2f924c48e1c16c990b69ac48ef2350873c1ed524ce1b8ef6c92a11c8e461303f7c32b5d65b57154197e45f1c6b792" );
10133 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
10136 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
10137 hexify( dst_str, output, pt_len );
10138 hexify( tag_str, tag_output, tag_len );
10140 fct_chk( strcmp( (
char *) dst_str,
"0779e5050dd17837d40fe3427322e717f074312f160c1951e5560797c13e4fbe47f320dc8053a39d2def4d3cc20e215978647d917ddf93fdf9eee5e54a974060dbac2a478afe5f5acbf65af4dccbd3942d130dddfd90cfc969da0c7f4b4050e34ce2e049c3bb004782abf4744c9a3ca2713ebfc5dfa16d011bc0b33d0368c108" ) == 0 );
10141 fct_chk( strcmp( (
char *) tag_str,
"54c8a1dddfaa1cafbcc1883587b4cd" ) == 0 );
10147 FCT_TEST_BGN(gcm_nist_validation_aes_19212810241024120_2)
10149 unsigned char key_str[128];
10150 unsigned char src_str[128];
10151 unsigned char dst_str[257];
10152 unsigned char iv_str[128];
10153 unsigned char add_str[128];
10154 unsigned char tag_str[128];
10155 unsigned char output[128];
10156 unsigned char tag_output[16];
10158 unsigned int key_len;
10159 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
10161 memset(key_str, 0x00, 128);
10162 memset(src_str, 0x00, 128);
10163 memset(dst_str, 0x00, 257);
10164 memset(iv_str, 0x00, 128);
10165 memset(add_str, 0x00, 128);
10166 memset(tag_str, 0x00, 128);
10167 memset(output, 0x00, 128);
10168 memset(tag_output, 0x00, 16);
10170 key_len =
unhexify( key_str,
"19d38467c1024611433a0b2780980538d88f3e8907a86e42" );
10171 pt_len =
unhexify( src_str,
"2623cd0eb46a7366877149ce0204d7dc08a5e64a1adb3b6759178c4eab26ca1806fc25fc0fc99dfc77d1811e61ac1e04ee82eb69ef7527962df1707734e4aca970b8a499eb70c2b0386942906945abcd9234b92e7bec33009e70786c39bd241da3905d961473e50367cb7726df8da2662fb32101d13b75032838f01ad7946670" );
10172 iv_len =
unhexify( iv_str,
"8d56a9e4bed67a7eb0f7b8c5e6bbf04e" );
10173 add_len =
unhexify( add_str,
"1c7d2744a56f5185b9cdf14eb9776ffd315214540daffc69c217dd64c7d0fb4a9f7b1ccc4c1e325fc046eec4feb8df35d32f492a28d35858ad1e9bfaf95211f111473c2ff799a124b308fba996b08f185103607605922bad319c6b7fd211f97c861565bea34948bfd751e4ce2591ae777ab1df8dc9e820cdad13066ed74303c6" );
10175 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
10178 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
10179 hexify( dst_str, output, pt_len );
10180 hexify( tag_str, tag_output, tag_len );
10182 fct_chk( strcmp( (
char *) dst_str,
"edfdfa35b41c5642e5b4dd1769b635811a48ecf21915cbef3c9e2f8230953f2ed4fda8903ec7634f10d55aa58c975a6c6133a173c2aeb83d6d7fc6534ea1781dfc62408e7a17d255a983bd1c33d2f423c364893db8128a599cd037b2db318f86f1fbd895a64a9fb209490b7e9a30db8cdf42e348cfcfa7984e15c17db810ec19" ) == 0 );
10183 fct_chk( strcmp( (
char *) tag_str,
"17dff78f61d21de4c0744e57174f70" ) == 0 );
10189 FCT_TEST_BGN(gcm_nist_validation_aes_19212810241024112_0)
10191 unsigned char key_str[128];
10192 unsigned char src_str[128];
10193 unsigned char dst_str[257];
10194 unsigned char iv_str[128];
10195 unsigned char add_str[128];
10196 unsigned char tag_str[128];
10197 unsigned char output[128];
10198 unsigned char tag_output[16];
10200 unsigned int key_len;
10201 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
10203 memset(key_str, 0x00, 128);
10204 memset(src_str, 0x00, 128);
10205 memset(dst_str, 0x00, 257);
10206 memset(iv_str, 0x00, 128);
10207 memset(add_str, 0x00, 128);
10208 memset(tag_str, 0x00, 128);
10209 memset(output, 0x00, 128);
10210 memset(tag_output, 0x00, 16);
10212 key_len =
unhexify( key_str,
"d69bdc9d35589e33ea9c2b956780cd9618e0df79d1083e69" );
10213 pt_len =
unhexify( src_str,
"d8a75de22fd3e2d50127c6fdeabc09fab1178875998319e1ea83c9745a1d5833c6ba9df08177c349dfa412e13e1927bbd4cdfb54a21c86c149be1feb4d9de99ffd590850875a3d9c8d9306971a9802ad4ca48f73d0517322525ac8463e3d59ae9895c9b363b6f0728d7585de78cbb49757bd1919ba2f2d6ba042d0781e7a79d7" );
10214 iv_len =
unhexify( iv_str,
"abd4b94362501b8f307fca076fccc60d" );
10215 add_len =
unhexify( add_str,
"1ad9aa99a4c8158ec08d21ebfb62604a043fc0c248fe08daa15a89f4a7855916af8aeb681ac6600c0268ade231f918fe508f48c9cfa998effc350fa117e2772f04839f8fa1a53bca00693ecd28db27c6507750404bd89af07451d66fb7dfa47065e9d3fe24a910eb27911591e4f4e4746b35359afada4356676b3c7331c610ab" );
10217 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
10220 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
10221 hexify( dst_str, output, pt_len );
10222 hexify( tag_str, tag_output, tag_len );
10224 fct_chk( strcmp( (
char *) dst_str,
"52e88b54b410dbfb4d88092df52688ba9502b906752b4802aca5428437d795de0d3539945bebdf2bab070df4a7e630469b92fe2dde0998d44094cae7f21f84ea7806637fa5c73b138e87d04005ef1206ddf30a21f46c0aa718665e809ffc0b42b5250143604b20225ec460defaf554a8bfb5f69ef4244e02e9563c374a44f0a9" ) == 0 );
10225 fct_chk( strcmp( (
char *) tag_str,
"1024f8e9997f5fa4684930d17431" ) == 0 );
10231 FCT_TEST_BGN(gcm_nist_validation_aes_19212810241024112_1)
10233 unsigned char key_str[128];
10234 unsigned char src_str[128];
10235 unsigned char dst_str[257];
10236 unsigned char iv_str[128];
10237 unsigned char add_str[128];
10238 unsigned char tag_str[128];
10239 unsigned char output[128];
10240 unsigned char tag_output[16];
10242 unsigned int key_len;
10243 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
10245 memset(key_str, 0x00, 128);
10246 memset(src_str, 0x00, 128);
10247 memset(dst_str, 0x00, 257);
10248 memset(iv_str, 0x00, 128);
10249 memset(add_str, 0x00, 128);
10250 memset(tag_str, 0x00, 128);
10251 memset(output, 0x00, 128);
10252 memset(tag_output, 0x00, 16);
10254 key_len =
unhexify( key_str,
"6960be8fe82061e9cd783cd1c03f63a00d60ce9fc47ea496" );
10255 pt_len =
unhexify( src_str,
"e0f574ddbb04831b5a86f40182f5f10d8667fe13c7065b471df157f67230c41b8c069c0218ceab93d63964be8ee853c567add2c3eab1670b03a51f9175e8e763be778ec43833cd716e1c8fe5cfb1d663149b21e06df772a3973fe1297d65188201cdb0c3533f5e9d40bb0664a97db60fc99d7e48eedebf264024006ca36361ac" );
10256 iv_len =
unhexify( iv_str,
"672f4378862c82738055273c72555b39" );
10257 add_len =
unhexify( add_str,
"e3a4dbce87edac519ce86349eed2dba0d371cef0d8f20b4dda3e1cd9f5799c9fd0b7494daec5bc995a6936c501212eb957ccc9ddd4c9b8a205cac122ba87b5c5a0eeba6b2af2cbc2326d953d61d089b6334ce03257203072f8e06b8c6f37692748a13e681082900fd32f0df6a3072f3a8b9bbeb3ea558e97a43d6656093d7c75" );
10259 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
10262 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
10263 hexify( dst_str, output, pt_len );
10264 hexify( tag_str, tag_output, tag_len );
10266 fct_chk( strcmp( (
char *) dst_str,
"2a3c4b79bbcfa4af04baa8413f6f1d18c9c579060ecd0cc359fcdcfc0566697ff834f7dffec84b2292e8583ecb59c9e5e5d87913a6ccaacebf371f1fff67f0be749d4ea5f5c6f4c959e9d932414a54a8e25bf2f485ecce9e70990bbc4e621ce2c8fcc3caa66b0730c6639de1bfa0124afe351912279bc3ca363f4e6013496cf1" ) == 0 );
10267 fct_chk( strcmp( (
char *) tag_str,
"dbdd6af194f2578a0d0832d0cba1" ) == 0 );
10273 FCT_TEST_BGN(gcm_nist_validation_aes_19212810241024112_2)
10275 unsigned char key_str[128];
10276 unsigned char src_str[128];
10277 unsigned char dst_str[257];
10278 unsigned char iv_str[128];
10279 unsigned char add_str[128];
10280 unsigned char tag_str[128];
10281 unsigned char output[128];
10282 unsigned char tag_output[16];
10284 unsigned int key_len;
10285 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
10287 memset(key_str, 0x00, 128);
10288 memset(src_str, 0x00, 128);
10289 memset(dst_str, 0x00, 257);
10290 memset(iv_str, 0x00, 128);
10291 memset(add_str, 0x00, 128);
10292 memset(tag_str, 0x00, 128);
10293 memset(output, 0x00, 128);
10294 memset(tag_output, 0x00, 16);
10296 key_len =
unhexify( key_str,
"2b7d0115612c56a1f28c6b3cb3d51c2b4bbd4cd36ccf3dda" );
10297 pt_len =
unhexify( src_str,
"3a88efa524a90b31873cba177a7e6e050dc59f42c934923db1e75fec924908370ad0c9c3b0b3c05adf12c6ef2627d8d16f832071c055aef5f581a39a8e7d9bed2629e26d5e3ecaed24048d744fba08d8d12132def62059f1a549044c1db121f47f10b3dc4a02849150aef53bd259d6814162761cbc9e1a8731d82101696e32d4" );
10298 iv_len =
unhexify( iv_str,
"317a60c3c29440b8ba04daf980994c46" );
10299 add_len =
unhexify( add_str,
"80d816bf4008ae51b9dd9a25c30cd7482f2289f5616c41d99881aa8f78b5efff84efe307a822174f3a5c08b381bc99b169b92057627f21dddc367723eaca2545ce3a4fba2b4633fd99459fb03e85d6d11ed041b63185f3b94f6004bdce556e2a0aaf811faf0153b3974d0bae3eabadccfc95474c940ecad5b4d5ea88f88b8c4a" );
10301 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
10304 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
10305 hexify( dst_str, output, pt_len );
10306 hexify( tag_str, tag_output, tag_len );
10308 fct_chk( strcmp( (
char *) dst_str,
"f193303bb781164e42b3d4d25569a446c86646bc0fbc93059603c0b46ec737ddfcd55df8c90e6d806bd9fef90f2b122a1758bef5c75fcdff95ce44217d9b6b0e75e77656cc7f8a8cc47729c74faf43cbf08202e9ad16c7ef8c832ce5f97f51153e178ccc3c168928f3c328cd5b4c341bb0482f6a292cfa2fa85e03d95bcd4cb1" ) == 0 );
10309 fct_chk( strcmp( (
char *) tag_str,
"42308ffc76cb6ab3c770e06f78ba" ) == 0 );
10315 FCT_TEST_BGN(gcm_nist_validation_aes_19212810241024104_0)
10317 unsigned char key_str[128];
10318 unsigned char src_str[128];
10319 unsigned char dst_str[257];
10320 unsigned char iv_str[128];
10321 unsigned char add_str[128];
10322 unsigned char tag_str[128];
10323 unsigned char output[128];
10324 unsigned char tag_output[16];
10326 unsigned int key_len;
10327 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
10329 memset(key_str, 0x00, 128);
10330 memset(src_str, 0x00, 128);
10331 memset(dst_str, 0x00, 257);
10332 memset(iv_str, 0x00, 128);
10333 memset(add_str, 0x00, 128);
10334 memset(tag_str, 0x00, 128);
10335 memset(output, 0x00, 128);
10336 memset(tag_output, 0x00, 16);
10338 key_len =
unhexify( key_str,
"75737e01a95c2ad9c860e72a57da646e01c2286a14dfec75" );
10339 pt_len =
unhexify( src_str,
"fa749799afcf2242a6000c4fe1e0628db53933dde99d672e3c7b24b0cd6533b8002bb7aa8633322f4ee2e343db3a0067ad44edaa398cd90ebdb50c732e8bf95aceb4aaa4dfd1eaca617c30c30c1a18761a6d24c2de0790f54f73e0802eb82ffc0124517ddafe8336f4ec6197219346deef4ce930e8ae20117e6ebe49a2582346" );
10340 iv_len =
unhexify( iv_str,
"1060d78543be384e7a9dc32a06bcd524" );
10341 add_len =
unhexify( add_str,
"528a6c34c3cb3aba402b856dd7c9677d0d88821686edd86287e7484b72248f949bbdfb640df27e3d1d6b6dc1293ea6c84be72c85e5ff497f5da74d796a21f2513385a177f29f2154b2362d5ac83c3897f368d06513333f2995b701fb3e5aabac559f6018fffd02cd6b65eba9cdc629067f15d1ae431d6a22811508cd913009f8" );
10343 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
10346 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
10347 hexify( dst_str, output, pt_len );
10348 hexify( tag_str, tag_output, tag_len );
10350 fct_chk( strcmp( (
char *) dst_str,
"7e8774cb73468ad9647f6946aea30e9468fac3850b5ff173c7b346891ecda32a78b58df8d835328615f36a12c18370f3abcf021ed723830b08627767272f769a2105e4786451db0512027ce0e3f770fbb0ee0e1850a5fc479df4ad5ceff4fa3b2b9124c330c2e79d770e6f5e89acdc8d0ca9c758980dfefaaac41aaf6d472f8a" ) == 0 );
10351 fct_chk( strcmp( (
char *) tag_str,
"6bc6632bb5b3296ede9e1c5fcd" ) == 0 );
10357 FCT_TEST_BGN(gcm_nist_validation_aes_19212810241024104_1)
10359 unsigned char key_str[128];
10360 unsigned char src_str[128];
10361 unsigned char dst_str[257];
10362 unsigned char iv_str[128];
10363 unsigned char add_str[128];
10364 unsigned char tag_str[128];
10365 unsigned char output[128];
10366 unsigned char tag_output[16];
10368 unsigned int key_len;
10369 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
10371 memset(key_str, 0x00, 128);
10372 memset(src_str, 0x00, 128);
10373 memset(dst_str, 0x00, 257);
10374 memset(iv_str, 0x00, 128);
10375 memset(add_str, 0x00, 128);
10376 memset(tag_str, 0x00, 128);
10377 memset(output, 0x00, 128);
10378 memset(tag_output, 0x00, 16);
10380 key_len =
unhexify( key_str,
"a326226b24222b3389d793b61b723e9ac7059495a1b597f5" );
10381 pt_len =
unhexify( src_str,
"1cc26e453a54c94c1cf902fe12307cce2fba4d5f0fc3bb63cdbac0dd0b5ba31d08dae2b4f054c86f3a3ee920d8b9f7ad8ae8b4eca090c8783cf35db5de3b95889a84f09ff3f70263c61681f00a454b0813813f0fe3ec38a6d30cc3c6a93c91a422743e7a72340cb012718b8a4a3b66a75f13e0165aa51ee4b00046cba12e966d" );
10382 iv_len =
unhexify( iv_str,
"327972d0c2ebc20ed5bdedc8a3a7aee5" );
10383 add_len =
unhexify( add_str,
"2edb1455bf4573a54ab921d31b7fc9e534bce0870eb6e973afccc3b1f93dd2c1a476dd88e705919caeb5d4f4a8516a718cff8858eb443ca7785579036cc7273570e7bf2489ce71a52ad623bf7223ce31232d8c9b18e52a2dd4519bb08d87301f3ae69dcc36c6dcb3b03d8fc39b6621f6b4471092e941ef090c9821a05df8575a" );
10385 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
10388 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
10389 hexify( dst_str, output, pt_len );
10390 hexify( tag_str, tag_output, tag_len );
10392 fct_chk( strcmp( (
char *) dst_str,
"5a219a0d997e879ffeb548d43de8e4f32a9ad196dc425c83f766134735ad2c9ff5d9665bd54ac3efdc50bb4a7a04ba59825f31a0f3e530aef45bba00cd6479efaa19c85edb4734f91fdad6686e50f9cc531fcabce9e8397381b4d691da4a27b7c487e93de3e3a9e769e831c69b07697e4bab470ebff628e710efa17e4c184e0f" ) == 0 );
10393 fct_chk( strcmp( (
char *) tag_str,
"2b9ac273c059865fab46f05ae3" ) == 0 );
10399 FCT_TEST_BGN(gcm_nist_validation_aes_19212810241024104_2)
10401 unsigned char key_str[128];
10402 unsigned char src_str[128];
10403 unsigned char dst_str[257];
10404 unsigned char iv_str[128];
10405 unsigned char add_str[128];
10406 unsigned char tag_str[128];
10407 unsigned char output[128];
10408 unsigned char tag_output[16];
10410 unsigned int key_len;
10411 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
10413 memset(key_str, 0x00, 128);
10414 memset(src_str, 0x00, 128);
10415 memset(dst_str, 0x00, 257);
10416 memset(iv_str, 0x00, 128);
10417 memset(add_str, 0x00, 128);
10418 memset(tag_str, 0x00, 128);
10419 memset(output, 0x00, 128);
10420 memset(tag_output, 0x00, 16);
10422 key_len =
unhexify( key_str,
"cf5f2d843042ab94fc4519d57d9229ea7e8172acf515fab7" );
10423 pt_len =
unhexify( src_str,
"0e20f5a2afffa4a5f9219320716c8a26e35a19c525dddd528e5f5f06f0da082f43272361f07cfdf57423f67ad3cfdda9cf1747c602a93747cc571adfabcc9d1ec1a8128908df45fe0ede0e14ff40169dd1ecbff7f4062ee7be0a1afb370c9d5103132c1fbee9262309cb05ea150fa862d6303af71677d2de9cafdb4ecdab8d5b" );
10424 iv_len =
unhexify( iv_str,
"95b06c3ce1a3de73cf51e781b941097a" );
10425 add_len =
unhexify( add_str,
"765c3fae74b6fa4b6ed4ca7ab9b829d76a7759c50874a38d2ecfddaca2365f7a143c9584e255608be829950393e5f94131caf4caa04aeeeb9d595e39ef3f9830246d6066995b2d40438f7eb0944bd452ab493b422e93a3e0dc3c0fc2a4b83711ac6693f07f035fd9d031242b6ea45beb259dc0203f497a77106392e4da93c285" );
10427 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
10430 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
10431 hexify( dst_str, output, pt_len );
10432 hexify( tag_str, tag_output, tag_len );
10434 fct_chk( strcmp( (
char *) dst_str,
"f43628a227dc852e0ad931e23548fedfd57020a26638ceb95dc5601827a0691c44209d14113da56e6a1e44c72845e42ebbc7ffbbc1cf18c1d33ca459bf94b1393a4725682f911f933e3fb21f2f8cd1ac48bc5afb6cb853a09e109dadcb740a98e5e7ec875cea90be16bcdfec5f7de176eeeb07a3768b84b091c661f65e2b905e" ) == 0 );
10435 fct_chk( strcmp( (
char *) tag_str,
"77964b5ce53209ee5307065d49" ) == 0 );
10441 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024102496_0)
10443 unsigned char key_str[128];
10444 unsigned char src_str[128];
10445 unsigned char dst_str[257];
10446 unsigned char iv_str[128];
10447 unsigned char add_str[128];
10448 unsigned char tag_str[128];
10449 unsigned char output[128];
10450 unsigned char tag_output[16];
10452 unsigned int key_len;
10453 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
10455 memset(key_str, 0x00, 128);
10456 memset(src_str, 0x00, 128);
10457 memset(dst_str, 0x00, 257);
10458 memset(iv_str, 0x00, 128);
10459 memset(add_str, 0x00, 128);
10460 memset(tag_str, 0x00, 128);
10461 memset(output, 0x00, 128);
10462 memset(tag_output, 0x00, 16);
10464 key_len =
unhexify( key_str,
"11cf18bbbc1d8778faf40391c30ca417739ff8e2a521926c" );
10465 pt_len =
unhexify( src_str,
"a2e11ac093ab648118759183cd52ca7d5728ca87fe2f31eca28cfb13325e3e6e95974456857866dda78359023e2c998d2c93c6dfe8f72c6d4ac39ca0585a53fc074bf1124c3ada92e78462a445da23e650bf52e26b782ff50312ee2beb7410e93c8435f7b88dfb0ed63d9a3823992d796bf3ab147c33593c5e6193ef32f7a620" );
10466 iv_len =
unhexify( iv_str,
"bdd9a2b70e4ee0cc501feca2a5209c3b" );
10467 add_len =
unhexify( add_str,
"051c68fe0cd81b52fede137d0105e69c74771b770ea9b573ad92ecae86f420953f459755597f68c29f6fca39a27239faa940ce6c949ccd44c9f12a0160cf74a575753310f52ec5c5bb9c4474b85266494e63b6810ddf7a6abd1cf8244cebbf69d3198c4a09e8dccbc9429f81791f5c02628e9477b988e2bd10f9bd5d6731ad01" );
10469 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
10472 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
10473 hexify( dst_str, output, pt_len );
10474 hexify( tag_str, tag_output, tag_len );
10476 fct_chk( strcmp( (
char *) dst_str,
"ca899a00654730d68219ca2ed9b23058a5f40150c237143b24245de1e440329e513690f00c0c52bbd0de8074fe5d7a50fe420470249227f967340efeeb64c424881c7f3a20c405d58ea81f2309c7f74ae572b30313e2d4b419fbf5f2cf90c6706a1ae1a800a883e8b00fbbc9dc28bf5aa4a329246bbe94df5c2d4524f57370d9" ) == 0 );
10477 fct_chk( strcmp( (
char *) tag_str,
"dd45503cc20493ec61f54f01" ) == 0 );
10483 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024102496_1)
10485 unsigned char key_str[128];
10486 unsigned char src_str[128];
10487 unsigned char dst_str[257];
10488 unsigned char iv_str[128];
10489 unsigned char add_str[128];
10490 unsigned char tag_str[128];
10491 unsigned char output[128];
10492 unsigned char tag_output[16];
10494 unsigned int key_len;
10495 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
10497 memset(key_str, 0x00, 128);
10498 memset(src_str, 0x00, 128);
10499 memset(dst_str, 0x00, 257);
10500 memset(iv_str, 0x00, 128);
10501 memset(add_str, 0x00, 128);
10502 memset(tag_str, 0x00, 128);
10503 memset(output, 0x00, 128);
10504 memset(tag_output, 0x00, 16);
10506 key_len =
unhexify( key_str,
"812481f8982b42b2fb86297c4b7c739652908dc498171c69" );
10507 pt_len =
unhexify( src_str,
"32b27127582ceac21f968f5418e24ec8b84617f4daab0eb007f02d45812e81d486dc50909d79221c438def535b8a55946f50297963139a6b21e139e810d19bc1566b374d080a387a646bb582dc738c44156eb6c8dad613586662418edcbb18fe688d271108318de71734cb571d442e4d9537b0fcb2f5c763b3fbcac010f5c4e1" );
10508 iv_len =
unhexify( iv_str,
"0dad658c73c9c88dd927a502d7b14e8b" );
10509 add_len =
unhexify( add_str,
"af44f747d77a83ef0944f3bac8e835d752bb55772a7fbd3c6af27ca0eaadd122c9af1e2a9f37c2ba42779ed8cde2199125378fc88c7d6d58edc01c65491c5efc6bee58e7e8bf72f1a69d3dba47b38a50077130cbd71accd3dd4f193a53c6f2d1df694476767f79f8b71fd42745ee5bd41e90a7dd50a1597445251b32de303169" );
10511 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
10514 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
10515 hexify( dst_str, output, pt_len );
10516 hexify( tag_str, tag_output, tag_len );
10518 fct_chk( strcmp( (
char *) dst_str,
"003ae4798f6a0b97990d41373623e528618f9299cebdb0d23e3799f62bb063e5530eef7fc40c06af16965ff6895f675ffb81c004d826cbd36b5eec9bd3d90d785af03b64d12d311b6f90bcd75a40497d0fad5e54f829a097b25f7a9604f6fad475c9239a0f8d5589b8a76c6f7bc852a3b820734b426f59ee845ec3f09dd7d3d1" ) == 0 );
10519 fct_chk( strcmp( (
char *) tag_str,
"b80bbc002cbebfb4ec5d48c0" ) == 0 );
10525 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024102496_2)
10527 unsigned char key_str[128];
10528 unsigned char src_str[128];
10529 unsigned char dst_str[257];
10530 unsigned char iv_str[128];
10531 unsigned char add_str[128];
10532 unsigned char tag_str[128];
10533 unsigned char output[128];
10534 unsigned char tag_output[16];
10536 unsigned int key_len;
10537 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
10539 memset(key_str, 0x00, 128);
10540 memset(src_str, 0x00, 128);
10541 memset(dst_str, 0x00, 257);
10542 memset(iv_str, 0x00, 128);
10543 memset(add_str, 0x00, 128);
10544 memset(tag_str, 0x00, 128);
10545 memset(output, 0x00, 128);
10546 memset(tag_output, 0x00, 16);
10548 key_len =
unhexify( key_str,
"a6657a7a9ddc6b4595df94d7c6bee9d13ad231cdc46ae5b4" );
10549 pt_len =
unhexify( src_str,
"36857eccb5b3c220265a40980e8949135e840ef270602940d3394f3f679aed55217c1de175f6b48a16f7b394ad7d288bc425762f971b752d1372b369fb1c3a64970c8d18ad6de2e1a9a561a749e3cf9a8524e239f3121e8643bebee471e55fb5d54a3453c51b1747defac98ead8b25854ed1cae7ac44fd28cf4b1ed8988875c1" );
10550 iv_len =
unhexify( iv_str,
"68621ea7c6aaf1e86a3b841df9c43aa8" );
10551 add_len =
unhexify( add_str,
"bc25c38d3a200fc17f620444e404f3b3999f51ed5b860c04186750f55cc53c6423c44d0eee02a83af27d16b9652a7cb3d34a5cb19694e5399a272dacd56c4b17872fd23fdca129a4299b9c87baf209dd1cd1f355088e3f938e6d5053a847b5913f0b9135d6f290e365508bed73c61160a11a2c23aaed7551b32882c79a807230" );
10553 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
10556 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
10557 hexify( dst_str, output, pt_len );
10558 hexify( tag_str, tag_output, tag_len );
10560 fct_chk( strcmp( (
char *) dst_str,
"de8bb8e69f9ff1322f0a6c30cba5a6fccd7d17a2173a86cff5478ac8ea4ad6f4e99ddd4149e6a9b24865cc8fd6394066e24a556f3f6d48c599592c56f06a946c6b3414e2fb47e14d1f128ef26b385912367f35082099c1f3d4ea86687f19f059c56dac21923e9a151567299416eb311f5bbf9a28968b080b0b200044668f0919" ) == 0 );
10561 fct_chk( strcmp( (
char *) tag_str,
"065f6c2b86891c719ea76984" ) == 0 );
10567 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024102464_0)
10569 unsigned char key_str[128];
10570 unsigned char src_str[128];
10571 unsigned char dst_str[257];
10572 unsigned char iv_str[128];
10573 unsigned char add_str[128];
10574 unsigned char tag_str[128];
10575 unsigned char output[128];
10576 unsigned char tag_output[16];
10578 unsigned int key_len;
10579 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
10581 memset(key_str, 0x00, 128);
10582 memset(src_str, 0x00, 128);
10583 memset(dst_str, 0x00, 257);
10584 memset(iv_str, 0x00, 128);
10585 memset(add_str, 0x00, 128);
10586 memset(tag_str, 0x00, 128);
10587 memset(output, 0x00, 128);
10588 memset(tag_output, 0x00, 16);
10590 key_len =
unhexify( key_str,
"20cf8c2c47cd583286157b45b575d4d69c793b4250274fe4" );
10591 pt_len =
unhexify( src_str,
"a64c2131c94fa827c3a510b23b20fb6d04579bc292d2ec33efc9eb31459115da143f73fba9bd8b03b67e591497d108f900a7279542b480bd3a13ea588a29efe66688b52c3fd58598c66d8595888e87b27734e6c5b2796cc60ab2aa3dd06a29c577de5bdbf0b6c69c7034f0181050f286b9300d214f549165a0b5b56ba8e40641" );
10592 iv_len =
unhexify( iv_str,
"ab58d2e18eb83c20df94cd6b569c65fe" );
10593 add_len =
unhexify( add_str,
"93ff6057eaaa9559d87e3276d4d900888cb1f56434ce2677ee1486a0aa8f4e8d02c47d06e6841f3fbe5bd72dd37fa9d81bbef807dca6961910844eb9611419936310d717e1843e7b278f48ae44a57c1f227a75fa8cbc7fd57c8cc3b101e036c8ef3043642c81f381561b61da7c9d79b6da9ec46f7cf093c29c1930b27c14f991" );
10595 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
10598 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
10599 hexify( dst_str, output, pt_len );
10600 hexify( tag_str, tag_output, tag_len );
10602 fct_chk( strcmp( (
char *) dst_str,
"a3f621261af17ec4756245414280017fd36133f2f9ff89eb8979d4417b8f93892bbf7b08bab785341bf0c7b5e3643f0e33f036633e5ebeae7a750ffdfcfbab690291731e92238ba6b45859b309629224fa7efc72298d3cf1ae3b6a9e94797552afc4e3a46205f9bab7eb64e4a41aee0e45289704a97221b7118d209e0b267a68" ) == 0 );
10603 fct_chk( strcmp( (
char *) tag_str,
"ae53564271d5de5d" ) == 0 );
10609 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024102464_1)
10611 unsigned char key_str[128];
10612 unsigned char src_str[128];
10613 unsigned char dst_str[257];
10614 unsigned char iv_str[128];
10615 unsigned char add_str[128];
10616 unsigned char tag_str[128];
10617 unsigned char output[128];
10618 unsigned char tag_output[16];
10620 unsigned int key_len;
10621 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
10623 memset(key_str, 0x00, 128);
10624 memset(src_str, 0x00, 128);
10625 memset(dst_str, 0x00, 257);
10626 memset(iv_str, 0x00, 128);
10627 memset(add_str, 0x00, 128);
10628 memset(tag_str, 0x00, 128);
10629 memset(output, 0x00, 128);
10630 memset(tag_output, 0x00, 16);
10632 key_len =
unhexify( key_str,
"8a311bf356cb1d1f58eab411b45b8d78b88052f3c8ab821d" );
10633 pt_len =
unhexify( src_str,
"3e915e92f186fde05ad55a2597ceab81495abbaa0be107dbf6a375525d1157a322b1f65460dce0c3aa2bc08fa89f777dac4d2fc3e5f7f20a0d5e33373c7f1c3551369737124c702928726bd9db96a33bacb56f1d645fa02ca1d88629c547c0eaf9585ee23b530ea971bf439c67e3b752af882668ebe0c739b26c837887b9d2be" );
10634 iv_len =
unhexify( iv_str,
"0569d05f3825d16aaa89e86812f80628" );
10635 add_len =
unhexify( add_str,
"28494a12026eb89b46b6139573dcda0836a617e00e25e2daa92f9372d86c3c162cfec34d634ea48294c784825615f41e06e555cf916983931e3d6a7ccbb4448670139616e3bbf7109387a852703b0b9d12c1fbd966f72bf49a7e1461ca714872ccdc59dc775c24a85e9864461123710fd8dcc26815894ee8cf2ca48a4ec73b3b" );
10637 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
10640 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
10641 hexify( dst_str, output, pt_len );
10642 hexify( tag_str, tag_output, tag_len );
10644 fct_chk( strcmp( (
char *) dst_str,
"9ba776653e8d9d240d9c1ec355027a18731c500928925e7c50ef83c6f36957073a8386ecbfaf430634cd557b1da1bf122f37456fea3e9b58a6e99413d9d16a2f1b40dff843fe16a2fa0219ad5dd8ae4611de53d7aabbef7a87ce402e62276addc7f44e09ae9e62c5cce4ddce5695db987084385ae9a98884ec97e67b549ad440" ) == 0 );
10645 fct_chk( strcmp( (
char *) tag_str,
"c669ca821b6ef584" ) == 0 );
10651 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024102464_2)
10653 unsigned char key_str[128];
10654 unsigned char src_str[128];
10655 unsigned char dst_str[257];
10656 unsigned char iv_str[128];
10657 unsigned char add_str[128];
10658 unsigned char tag_str[128];
10659 unsigned char output[128];
10660 unsigned char tag_output[16];
10662 unsigned int key_len;
10663 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
10665 memset(key_str, 0x00, 128);
10666 memset(src_str, 0x00, 128);
10667 memset(dst_str, 0x00, 257);
10668 memset(iv_str, 0x00, 128);
10669 memset(add_str, 0x00, 128);
10670 memset(tag_str, 0x00, 128);
10671 memset(output, 0x00, 128);
10672 memset(tag_output, 0x00, 16);
10674 key_len =
unhexify( key_str,
"82fc47638cfb361ecf7924c03925d6006cb99459ef5691e8" );
10675 pt_len =
unhexify( src_str,
"d14a550d419b8e03762429a7abda3b17ad7a1305e5fc639e71538285cd70d78fa30e0c048e2c32d2a7fd7f82c874d63ae922db5a77111b46caefbfe4feef4df19786e5fec6a4df84f76df412b1f06bea149f1996b41b117d00d422bba5566d3af5289ca9377f325ca1e72f7d6a32df6607bde194cf4ac52c28e8aa1e8f1c9a67" );
10676 iv_len =
unhexify( iv_str,
"2a8e1cadd2f264f2ad7be9e7bdfa24a2" );
10677 add_len =
unhexify( add_str,
"8088358d7c3ca8951d7e8cd6cae15844edabccc8d0fcf8f169a48cf434d4814f1d7d9ae410e5581d414f952f52b852eb10fcf0f2a67bea826ea2e28331f0597152e624e148462d5952f10fa363666d57ebfe036695e1e68f79161b991e20c8ae6095232e63fde073c79603135849c62f8d98a1d80608fc081171114db41883f6" );
10679 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
10682 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
10683 hexify( dst_str, output, pt_len );
10684 hexify( tag_str, tag_output, tag_len );
10686 fct_chk( strcmp( (
char *) dst_str,
"e54cc95e845f4d1b28885e9b90d1d9d3cc51fd9d8fec9bce57de8781a28b4e5b7ab446074e84471d7a9a23748b689c354e402be77f9890a9c52a2eb9022a6a415e01285db1c6eb66d5e15f4216a4f3f45782677b6ccbf20ac7b35bd153f52a599712d09712ef1454ccf72ee48cca967f4917f1aeaeaa6eaaf8493ec7ff2dc1d4" ) == 0 );
10687 fct_chk( strcmp( (
char *) tag_str,
"093343e49b70c938" ) == 0 );
10693 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024102432_0)
10695 unsigned char key_str[128];
10696 unsigned char src_str[128];
10697 unsigned char dst_str[257];
10698 unsigned char iv_str[128];
10699 unsigned char add_str[128];
10700 unsigned char tag_str[128];
10701 unsigned char output[128];
10702 unsigned char tag_output[16];
10704 unsigned int key_len;
10705 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
10707 memset(key_str, 0x00, 128);
10708 memset(src_str, 0x00, 128);
10709 memset(dst_str, 0x00, 257);
10710 memset(iv_str, 0x00, 128);
10711 memset(add_str, 0x00, 128);
10712 memset(tag_str, 0x00, 128);
10713 memset(output, 0x00, 128);
10714 memset(tag_output, 0x00, 16);
10716 key_len =
unhexify( key_str,
"d3180703e1ec93b20d1ac4d64e85d5461d75f783bcd2f4fa" );
10717 pt_len =
unhexify( src_str,
"b7b350db6fc0796e9fd0cb239f561bf7e27b2aa26b8e3e76d8b737caa1c1c5ad624a32f5709e4b751f8c21172d4d0f4ba38ca4d1d0e2570c084cabdd0e8880b35140c84f775c3c301a9b260825e1fd75f9835777d6c0e23d359af1a5f7caef934b91bee521531582b639be2cca87c2991f5525f4a2f64c30a1453013d73c16cf" );
10718 iv_len =
unhexify( iv_str,
"916d72d515d3247ba48828d4113bda3b" );
10719 add_len =
unhexify( add_str,
"1002513035cb1d7e8b2710ff8c93cec55e2e2c2b56000d4c1182b5286736acd2d6f2fc9b82f71156dba6f77463805627e4bc38c96e091ecd945df7e996e7fc3bbfdae3d85ef1337fbce960fd1d60d06962a1669e9e8d20be151f6323cb38ef68ab5e838f02a0f379567f518f15d81b192cb25a42356807c1b9c02bef8309ff44" );
10721 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
10724 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
10725 hexify( dst_str, output, pt_len );
10726 hexify( tag_str, tag_output, tag_len );
10728 fct_chk( strcmp( (
char *) dst_str,
"d590f2afcd64c574ece12c675f509efdffc01e1404cbafbc923c4b44390eff66dd839e6d800df67bc06f49f76911df3cec36a3a1521762d6d4a8ee602ebefde0178863443f918668fcde8a531f3b5ee0e4c379ecf3e75e7c59f753e41f4e39811bd3e7dd3d6bbaa1e81fdbf8bd976384a6c4505f7e4270321c7329bba7f15506" ) == 0 );
10729 fct_chk( strcmp( (
char *) tag_str,
"22e50ed0" ) == 0 );
10735 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024102432_1)
10737 unsigned char key_str[128];
10738 unsigned char src_str[128];
10739 unsigned char dst_str[257];
10740 unsigned char iv_str[128];
10741 unsigned char add_str[128];
10742 unsigned char tag_str[128];
10743 unsigned char output[128];
10744 unsigned char tag_output[16];
10746 unsigned int key_len;
10747 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
10749 memset(key_str, 0x00, 128);
10750 memset(src_str, 0x00, 128);
10751 memset(dst_str, 0x00, 257);
10752 memset(iv_str, 0x00, 128);
10753 memset(add_str, 0x00, 128);
10754 memset(tag_str, 0x00, 128);
10755 memset(output, 0x00, 128);
10756 memset(tag_output, 0x00, 16);
10758 key_len =
unhexify( key_str,
"02bc0a8ab5468123009b2c69aaffd0a20a1fb082b55a7ecb" );
10759 pt_len =
unhexify( src_str,
"8bf32af1632a7903f00e801ee6e5c690147c021be6886cf2462b2172786ab296e0feb96648e4a602ae6dc45e2aa60e6610356cde26b1dde3aa114c5449216a467fcde18332a6d482d24a1ee952379340d036a48b63efa092db4c30a95f402d57b9c837183e900b47805f170cfe9e69baea2b939799e983f7470bb1297f937bbf" );
10760 iv_len =
unhexify( iv_str,
"bcfc15308e891f32506a50c4ed41bff6" );
10761 add_len =
unhexify( add_str,
"01bff5e606a536e951213b23672db9074fa8bbf947e815d32cbfe30adc1e736517f86139840a4aa0a671b4e9bbd6a59d292db34cc87742c0dfd2d658ef157734c5fdebb3e5772d4990ad1b2675c23ddf1472e892dafe7bf140d614c50cf937923491662299ab957606f4ca5eed2facdc5c657784bac871fab04d6cd3ccb18332" );
10763 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
10766 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
10767 hexify( dst_str, output, pt_len );
10768 hexify( tag_str, tag_output, tag_len );
10770 fct_chk( strcmp( (
char *) dst_str,
"b8dff03141832970c925e7ff0038394a0df7f35add3046cc56f73e3eff59e18932aac697456107b6da7da3249049c3be5c098dd730cd4bf68cdf798c3a932b2c51f18d29e4386cbf1b7998a81b603372337784307b0beb59235eba4d3e4810899f6d71a994ba9742aea1875878ccef1bf674ee655a0720bd37e44b33cafe5742" ) == 0 );
10771 fct_chk( strcmp( (
char *) tag_str,
"bd0be868" ) == 0 );
10777 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024102432_2)
10779 unsigned char key_str[128];
10780 unsigned char src_str[128];
10781 unsigned char dst_str[257];
10782 unsigned char iv_str[128];
10783 unsigned char add_str[128];
10784 unsigned char tag_str[128];
10785 unsigned char output[128];
10786 unsigned char tag_output[16];
10788 unsigned int key_len;
10789 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
10791 memset(key_str, 0x00, 128);
10792 memset(src_str, 0x00, 128);
10793 memset(dst_str, 0x00, 257);
10794 memset(iv_str, 0x00, 128);
10795 memset(add_str, 0x00, 128);
10796 memset(tag_str, 0x00, 128);
10797 memset(output, 0x00, 128);
10798 memset(tag_output, 0x00, 16);
10800 key_len =
unhexify( key_str,
"7c07d5ccaadb9e3ba5b5ddf380a7a2a175522b98e31e1d34" );
10801 pt_len =
unhexify( src_str,
"04d3e6bcd5ebf696fe84a702ffd5f76dcbe9679c909b36d41ce6362f229304aeb19896c6376cb3c25081f709af57d36f39f421ecdb70bed9f829558bec6e78823275fc11f9a2d5f773d27136d903ff08e5926338dfdcbc182825794e5f739efc1f0ecda8e53751edbe0d08963471fb5099f2ff31f76b479677bd6d186a409525" );
10802 iv_len =
unhexify( iv_str,
"e4db5c6403a03daa703516763052bce0" );
10803 add_len =
unhexify( add_str,
"b747d97f263d0ff6119df1b5332640d2e4568813adc12ed76175fdfffafd087456748abb267195688d2db41caef301117979dfd2db9714b352398594005bebb449ea20415fcfb2671253f69bf6467ce7f5bce350a834c4586eb03e766c1930e7e6ccf01283ea31b8c73d7967cde0f2a53cc46b1b50c48649044d6f753f1d54b5" );
10805 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
10808 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
10809 hexify( dst_str, output, pt_len );
10810 hexify( tag_str, tag_output, tag_len );
10812 fct_chk( strcmp( (
char *) dst_str,
"f5faf7bdd99c62ec87f93da2ca3ce31e694df0a0fd04d61914f9a7a4235de20e0a406e297ba1099fff8c14e8fd37a9d6cbe2c5c572c988cb1ff87ffe7825e1947ea3da73b8b3633721fb4e08deb3f8fcae2407d73bd4c07f32b4f9ad0b1364003b11f84037a28239e96c3996874ba8e4ec7270bf0441d648f52f3730d30e3536" ) == 0 );
10813 fct_chk( strcmp( (
char *) tag_str,
"e0820c4d" ) == 0 );
10819 FCT_TEST_BGN(gcm_nist_validation_aes_19212800128_0)
10821 unsigned char key_str[128];
10822 unsigned char src_str[128];
10823 unsigned char dst_str[257];
10824 unsigned char iv_str[128];
10825 unsigned char add_str[128];
10826 unsigned char tag_str[128];
10827 unsigned char output[128];
10828 unsigned char tag_output[16];
10830 unsigned int key_len;
10831 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
10833 memset(key_str, 0x00, 128);
10834 memset(src_str, 0x00, 128);
10835 memset(dst_str, 0x00, 257);
10836 memset(iv_str, 0x00, 128);
10837 memset(add_str, 0x00, 128);
10838 memset(tag_str, 0x00, 128);
10839 memset(output, 0x00, 128);
10840 memset(tag_output, 0x00, 16);
10842 key_len =
unhexify( key_str,
"dd01d48789ef7f07f80a7385e4d1b1734903bc6ec768c9f2" );
10844 iv_len =
unhexify( iv_str,
"944ed7743be9ce370cba7b7c9b7dece2" );
10845 add_len =
unhexify( add_str,
"" );
10847 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
10850 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
10851 hexify( dst_str, output, pt_len );
10852 hexify( tag_str, tag_output, tag_len );
10854 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
10855 fct_chk( strcmp( (
char *) tag_str,
"dfa0ab389c3a780f598af80200c84da8" ) == 0 );
10861 FCT_TEST_BGN(gcm_nist_validation_aes_19212800128_1)
10863 unsigned char key_str[128];
10864 unsigned char src_str[128];
10865 unsigned char dst_str[257];
10866 unsigned char iv_str[128];
10867 unsigned char add_str[128];
10868 unsigned char tag_str[128];
10869 unsigned char output[128];
10870 unsigned char tag_output[16];
10872 unsigned int key_len;
10873 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
10875 memset(key_str, 0x00, 128);
10876 memset(src_str, 0x00, 128);
10877 memset(dst_str, 0x00, 257);
10878 memset(iv_str, 0x00, 128);
10879 memset(add_str, 0x00, 128);
10880 memset(tag_str, 0x00, 128);
10881 memset(output, 0x00, 128);
10882 memset(tag_output, 0x00, 16);
10884 key_len =
unhexify( key_str,
"0383849ed0db3e52743aa82fe8cd9173b457755be8bbd46c" );
10886 iv_len =
unhexify( iv_str,
"c6b8518346ec52c001697b7bd38dc795" );
10887 add_len =
unhexify( add_str,
"" );
10889 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
10892 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
10893 hexify( dst_str, output, pt_len );
10894 hexify( tag_str, tag_output, tag_len );
10896 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
10897 fct_chk( strcmp( (
char *) tag_str,
"48a1992549b627c8621e8fbaadacb16c" ) == 0 );
10903 FCT_TEST_BGN(gcm_nist_validation_aes_19212800128_2)
10905 unsigned char key_str[128];
10906 unsigned char src_str[128];
10907 unsigned char dst_str[257];
10908 unsigned char iv_str[128];
10909 unsigned char add_str[128];
10910 unsigned char tag_str[128];
10911 unsigned char output[128];
10912 unsigned char tag_output[16];
10914 unsigned int key_len;
10915 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
10917 memset(key_str, 0x00, 128);
10918 memset(src_str, 0x00, 128);
10919 memset(dst_str, 0x00, 257);
10920 memset(iv_str, 0x00, 128);
10921 memset(add_str, 0x00, 128);
10922 memset(tag_str, 0x00, 128);
10923 memset(output, 0x00, 128);
10924 memset(tag_output, 0x00, 16);
10926 key_len =
unhexify( key_str,
"936388053ee0116b3f783ae34f000d5fe2c5d712842d46f9" );
10928 iv_len =
unhexify( iv_str,
"c5426b20c014e472c7b85be2ed0f64c8" );
10929 add_len =
unhexify( add_str,
"" );
10931 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
10934 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
10935 hexify( dst_str, output, pt_len );
10936 hexify( tag_str, tag_output, tag_len );
10938 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
10939 fct_chk( strcmp( (
char *) tag_str,
"4cf0f6a45f3544e3d391375c8fe176b1" ) == 0 );
10945 FCT_TEST_BGN(gcm_nist_validation_aes_19212800120_0)
10947 unsigned char key_str[128];
10948 unsigned char src_str[128];
10949 unsigned char dst_str[257];
10950 unsigned char iv_str[128];
10951 unsigned char add_str[128];
10952 unsigned char tag_str[128];
10953 unsigned char output[128];
10954 unsigned char tag_output[16];
10956 unsigned int key_len;
10957 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
10959 memset(key_str, 0x00, 128);
10960 memset(src_str, 0x00, 128);
10961 memset(dst_str, 0x00, 257);
10962 memset(iv_str, 0x00, 128);
10963 memset(add_str, 0x00, 128);
10964 memset(tag_str, 0x00, 128);
10965 memset(output, 0x00, 128);
10966 memset(tag_output, 0x00, 16);
10968 key_len =
unhexify( key_str,
"40dfcb3151a8dab1cb79a6a1e6a24fb55024d0e256bd4b07" );
10970 iv_len =
unhexify( iv_str,
"b8495cc54653e7ad74206153ea64c3cb" );
10971 add_len =
unhexify( add_str,
"" );
10973 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
10976 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
10977 hexify( dst_str, output, pt_len );
10978 hexify( tag_str, tag_output, tag_len );
10980 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
10981 fct_chk( strcmp( (
char *) tag_str,
"1d3786412e0ceb383de3898ef2cffe" ) == 0 );
10987 FCT_TEST_BGN(gcm_nist_validation_aes_19212800120_1)
10989 unsigned char key_str[128];
10990 unsigned char src_str[128];
10991 unsigned char dst_str[257];
10992 unsigned char iv_str[128];
10993 unsigned char add_str[128];
10994 unsigned char tag_str[128];
10995 unsigned char output[128];
10996 unsigned char tag_output[16];
10998 unsigned int key_len;
10999 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
11001 memset(key_str, 0x00, 128);
11002 memset(src_str, 0x00, 128);
11003 memset(dst_str, 0x00, 257);
11004 memset(iv_str, 0x00, 128);
11005 memset(add_str, 0x00, 128);
11006 memset(tag_str, 0x00, 128);
11007 memset(output, 0x00, 128);
11008 memset(tag_output, 0x00, 16);
11010 key_len =
unhexify( key_str,
"83ca41d8b33c6134a14d8b30b0c36d5b799574dd925f3b8b" );
11012 iv_len =
unhexify( iv_str,
"fb9aca5b4932035c65b571d170fdf524" );
11013 add_len =
unhexify( add_str,
"" );
11015 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
11018 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
11019 hexify( dst_str, output, pt_len );
11020 hexify( tag_str, tag_output, tag_len );
11022 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
11023 fct_chk( strcmp( (
char *) tag_str,
"9787f7d68d2648963cb49fd7459121" ) == 0 );
11029 FCT_TEST_BGN(gcm_nist_validation_aes_19212800120_2)
11031 unsigned char key_str[128];
11032 unsigned char src_str[128];
11033 unsigned char dst_str[257];
11034 unsigned char iv_str[128];
11035 unsigned char add_str[128];
11036 unsigned char tag_str[128];
11037 unsigned char output[128];
11038 unsigned char tag_output[16];
11040 unsigned int key_len;
11041 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
11043 memset(key_str, 0x00, 128);
11044 memset(src_str, 0x00, 128);
11045 memset(dst_str, 0x00, 257);
11046 memset(iv_str, 0x00, 128);
11047 memset(add_str, 0x00, 128);
11048 memset(tag_str, 0x00, 128);
11049 memset(output, 0x00, 128);
11050 memset(tag_output, 0x00, 16);
11052 key_len =
unhexify( key_str,
"886e646688d573c2dcc8ca229a11b394b3400408dd801503" );
11054 iv_len =
unhexify( iv_str,
"c0744685722cb87717c76fd09a721dac" );
11055 add_len =
unhexify( add_str,
"" );
11057 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
11060 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
11061 hexify( dst_str, output, pt_len );
11062 hexify( tag_str, tag_output, tag_len );
11064 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
11065 fct_chk( strcmp( (
char *) tag_str,
"794fe4df0084c21ffeaf959e5b0382" ) == 0 );
11071 FCT_TEST_BGN(gcm_nist_validation_aes_19212800112_0)
11073 unsigned char key_str[128];
11074 unsigned char src_str[128];
11075 unsigned char dst_str[257];
11076 unsigned char iv_str[128];
11077 unsigned char add_str[128];
11078 unsigned char tag_str[128];
11079 unsigned char output[128];
11080 unsigned char tag_output[16];
11082 unsigned int key_len;
11083 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
11085 memset(key_str, 0x00, 128);
11086 memset(src_str, 0x00, 128);
11087 memset(dst_str, 0x00, 257);
11088 memset(iv_str, 0x00, 128);
11089 memset(add_str, 0x00, 128);
11090 memset(tag_str, 0x00, 128);
11091 memset(output, 0x00, 128);
11092 memset(tag_output, 0x00, 16);
11094 key_len =
unhexify( key_str,
"0b845dc2c4e9e5a94bd3e8969300b16b45d3ad5eadb2e80a" );
11096 iv_len =
unhexify( iv_str,
"0900b3fa3cc9833d702655d285f904ed" );
11097 add_len =
unhexify( add_str,
"" );
11099 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
11102 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
11103 hexify( dst_str, output, pt_len );
11104 hexify( tag_str, tag_output, tag_len );
11106 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
11107 fct_chk( strcmp( (
char *) tag_str,
"dc670518e150d326921bd5f43e80" ) == 0 );
11113 FCT_TEST_BGN(gcm_nist_validation_aes_19212800112_1)
11115 unsigned char key_str[128];
11116 unsigned char src_str[128];
11117 unsigned char dst_str[257];
11118 unsigned char iv_str[128];
11119 unsigned char add_str[128];
11120 unsigned char tag_str[128];
11121 unsigned char output[128];
11122 unsigned char tag_output[16];
11124 unsigned int key_len;
11125 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
11127 memset(key_str, 0x00, 128);
11128 memset(src_str, 0x00, 128);
11129 memset(dst_str, 0x00, 257);
11130 memset(iv_str, 0x00, 128);
11131 memset(add_str, 0x00, 128);
11132 memset(tag_str, 0x00, 128);
11133 memset(output, 0x00, 128);
11134 memset(tag_output, 0x00, 16);
11136 key_len =
unhexify( key_str,
"ac9fac2e32ab44a0774949d53a62c1cda04b132a3b07a211" );
11138 iv_len =
unhexify( iv_str,
"8cf6a81bfa21633ad95ffc690c737511" );
11139 add_len =
unhexify( add_str,
"" );
11141 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
11144 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
11145 hexify( dst_str, output, pt_len );
11146 hexify( tag_str, tag_output, tag_len );
11148 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
11149 fct_chk( strcmp( (
char *) tag_str,
"4cd7a6e4f3ec3d41d086e6abf14c" ) == 0 );
11155 FCT_TEST_BGN(gcm_nist_validation_aes_19212800112_2)
11157 unsigned char key_str[128];
11158 unsigned char src_str[128];
11159 unsigned char dst_str[257];
11160 unsigned char iv_str[128];
11161 unsigned char add_str[128];
11162 unsigned char tag_str[128];
11163 unsigned char output[128];
11164 unsigned char tag_output[16];
11166 unsigned int key_len;
11167 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
11169 memset(key_str, 0x00, 128);
11170 memset(src_str, 0x00, 128);
11171 memset(dst_str, 0x00, 257);
11172 memset(iv_str, 0x00, 128);
11173 memset(add_str, 0x00, 128);
11174 memset(tag_str, 0x00, 128);
11175 memset(output, 0x00, 128);
11176 memset(tag_output, 0x00, 16);
11178 key_len =
unhexify( key_str,
"9f9721ef784980d03140490f760313cc8a56424affb01672" );
11180 iv_len =
unhexify( iv_str,
"c104bd8482e3fe7359c85e0e94fd4070" );
11181 add_len =
unhexify( add_str,
"" );
11183 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
11186 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
11187 hexify( dst_str, output, pt_len );
11188 hexify( tag_str, tag_output, tag_len );
11190 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
11191 fct_chk( strcmp( (
char *) tag_str,
"3f682fc71989804ba74bdad04a97" ) == 0 );
11197 FCT_TEST_BGN(gcm_nist_validation_aes_19212800104_0)
11199 unsigned char key_str[128];
11200 unsigned char src_str[128];
11201 unsigned char dst_str[257];
11202 unsigned char iv_str[128];
11203 unsigned char add_str[128];
11204 unsigned char tag_str[128];
11205 unsigned char output[128];
11206 unsigned char tag_output[16];
11208 unsigned int key_len;
11209 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
11211 memset(key_str, 0x00, 128);
11212 memset(src_str, 0x00, 128);
11213 memset(dst_str, 0x00, 257);
11214 memset(iv_str, 0x00, 128);
11215 memset(add_str, 0x00, 128);
11216 memset(tag_str, 0x00, 128);
11217 memset(output, 0x00, 128);
11218 memset(tag_output, 0x00, 16);
11220 key_len =
unhexify( key_str,
"f7c935f56970678ab89f6d97315a33efae76148263e95f1e" );
11222 iv_len =
unhexify( iv_str,
"1a91965c5458f4a1fde309cd42a3f277" );
11223 add_len =
unhexify( add_str,
"" );
11225 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
11228 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
11229 hexify( dst_str, output, pt_len );
11230 hexify( tag_str, tag_output, tag_len );
11232 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
11233 fct_chk( strcmp( (
char *) tag_str,
"ce266c6f0447623a3ef1f6f57c" ) == 0 );
11239 FCT_TEST_BGN(gcm_nist_validation_aes_19212800104_1)
11241 unsigned char key_str[128];
11242 unsigned char src_str[128];
11243 unsigned char dst_str[257];
11244 unsigned char iv_str[128];
11245 unsigned char add_str[128];
11246 unsigned char tag_str[128];
11247 unsigned char output[128];
11248 unsigned char tag_output[16];
11250 unsigned int key_len;
11251 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
11253 memset(key_str, 0x00, 128);
11254 memset(src_str, 0x00, 128);
11255 memset(dst_str, 0x00, 257);
11256 memset(iv_str, 0x00, 128);
11257 memset(add_str, 0x00, 128);
11258 memset(tag_str, 0x00, 128);
11259 memset(output, 0x00, 128);
11260 memset(tag_output, 0x00, 16);
11262 key_len =
unhexify( key_str,
"30ecea6cac70a9de4f4f7f441d6b9b5608cca39d07c0ded5" );
11264 iv_len =
unhexify( iv_str,
"361e5cd21c670de39b5f0b2b89437f99" );
11265 add_len =
unhexify( add_str,
"" );
11267 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
11270 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
11271 hexify( dst_str, output, pt_len );
11272 hexify( tag_str, tag_output, tag_len );
11274 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
11275 fct_chk( strcmp( (
char *) tag_str,
"48a9621522a98bc6c0acf03429" ) == 0 );
11281 FCT_TEST_BGN(gcm_nist_validation_aes_19212800104_2)
11283 unsigned char key_str[128];
11284 unsigned char src_str[128];
11285 unsigned char dst_str[257];
11286 unsigned char iv_str[128];
11287 unsigned char add_str[128];
11288 unsigned char tag_str[128];
11289 unsigned char output[128];
11290 unsigned char tag_output[16];
11292 unsigned int key_len;
11293 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
11295 memset(key_str, 0x00, 128);
11296 memset(src_str, 0x00, 128);
11297 memset(dst_str, 0x00, 257);
11298 memset(iv_str, 0x00, 128);
11299 memset(add_str, 0x00, 128);
11300 memset(tag_str, 0x00, 128);
11301 memset(output, 0x00, 128);
11302 memset(tag_output, 0x00, 16);
11304 key_len =
unhexify( key_str,
"4fb80c4fd026c3f68ab8fcb8e28e144fdb3ba00d70295ebf" );
11306 iv_len =
unhexify( iv_str,
"ee552fb94a527d18d285d6c195ca7b2f" );
11307 add_len =
unhexify( add_str,
"" );
11309 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
11312 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
11313 hexify( dst_str, output, pt_len );
11314 hexify( tag_str, tag_output, tag_len );
11316 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
11317 fct_chk( strcmp( (
char *) tag_str,
"5ec97630ce593e9d560136774c" ) == 0 );
11323 FCT_TEST_BGN(gcm_nist_validation_aes_1921280096_0)
11325 unsigned char key_str[128];
11326 unsigned char src_str[128];
11327 unsigned char dst_str[257];
11328 unsigned char iv_str[128];
11329 unsigned char add_str[128];
11330 unsigned char tag_str[128];
11331 unsigned char output[128];
11332 unsigned char tag_output[16];
11334 unsigned int key_len;
11335 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
11337 memset(key_str, 0x00, 128);
11338 memset(src_str, 0x00, 128);
11339 memset(dst_str, 0x00, 257);
11340 memset(iv_str, 0x00, 128);
11341 memset(add_str, 0x00, 128);
11342 memset(tag_str, 0x00, 128);
11343 memset(output, 0x00, 128);
11344 memset(tag_output, 0x00, 16);
11346 key_len =
unhexify( key_str,
"c0261023ee9f682789ce9ae970fb7601f07551259ef91945" );
11348 iv_len =
unhexify( iv_str,
"bffe4af76db75bc4a3d42b57c73c51b6" );
11349 add_len =
unhexify( add_str,
"" );
11351 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
11354 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
11355 hexify( dst_str, output, pt_len );
11356 hexify( tag_str, tag_output, tag_len );
11358 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
11359 fct_chk( strcmp( (
char *) tag_str,
"bf827b4526da77ab2e21908c" ) == 0 );
11365 FCT_TEST_BGN(gcm_nist_validation_aes_1921280096_1)
11367 unsigned char key_str[128];
11368 unsigned char src_str[128];
11369 unsigned char dst_str[257];
11370 unsigned char iv_str[128];
11371 unsigned char add_str[128];
11372 unsigned char tag_str[128];
11373 unsigned char output[128];
11374 unsigned char tag_output[16];
11376 unsigned int key_len;
11377 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
11379 memset(key_str, 0x00, 128);
11380 memset(src_str, 0x00, 128);
11381 memset(dst_str, 0x00, 257);
11382 memset(iv_str, 0x00, 128);
11383 memset(add_str, 0x00, 128);
11384 memset(tag_str, 0x00, 128);
11385 memset(output, 0x00, 128);
11386 memset(tag_output, 0x00, 16);
11388 key_len =
unhexify( key_str,
"4fb4ab2071bff4ec239ac05c04800806df2c256a4845b13a" );
11390 iv_len =
unhexify( iv_str,
"3ee0e2e72eea437e46a873bd659b1c4a" );
11391 add_len =
unhexify( add_str,
"" );
11393 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
11396 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
11397 hexify( dst_str, output, pt_len );
11398 hexify( tag_str, tag_output, tag_len );
11400 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
11401 fct_chk( strcmp( (
char *) tag_str,
"572d3ec2650ad57eec84fe00" ) == 0 );
11407 FCT_TEST_BGN(gcm_nist_validation_aes_1921280096_2)
11409 unsigned char key_str[128];
11410 unsigned char src_str[128];
11411 unsigned char dst_str[257];
11412 unsigned char iv_str[128];
11413 unsigned char add_str[128];
11414 unsigned char tag_str[128];
11415 unsigned char output[128];
11416 unsigned char tag_output[16];
11418 unsigned int key_len;
11419 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
11421 memset(key_str, 0x00, 128);
11422 memset(src_str, 0x00, 128);
11423 memset(dst_str, 0x00, 257);
11424 memset(iv_str, 0x00, 128);
11425 memset(add_str, 0x00, 128);
11426 memset(tag_str, 0x00, 128);
11427 memset(output, 0x00, 128);
11428 memset(tag_output, 0x00, 16);
11430 key_len =
unhexify( key_str,
"193d5ebeb466d3fe68754bba413c65112ae29c5ca5e450c4" );
11432 iv_len =
unhexify( iv_str,
"04e9d31b3b1205cae37c435d5a5579df" );
11433 add_len =
unhexify( add_str,
"" );
11435 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
11438 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
11439 hexify( dst_str, output, pt_len );
11440 hexify( tag_str, tag_output, tag_len );
11442 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
11443 fct_chk( strcmp( (
char *) tag_str,
"71004356f266688374437aef" ) == 0 );
11449 FCT_TEST_BGN(gcm_nist_validation_aes_1921280064_0)
11451 unsigned char key_str[128];
11452 unsigned char src_str[128];
11453 unsigned char dst_str[257];
11454 unsigned char iv_str[128];
11455 unsigned char add_str[128];
11456 unsigned char tag_str[128];
11457 unsigned char output[128];
11458 unsigned char tag_output[16];
11460 unsigned int key_len;
11461 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
11463 memset(key_str, 0x00, 128);
11464 memset(src_str, 0x00, 128);
11465 memset(dst_str, 0x00, 257);
11466 memset(iv_str, 0x00, 128);
11467 memset(add_str, 0x00, 128);
11468 memset(tag_str, 0x00, 128);
11469 memset(output, 0x00, 128);
11470 memset(tag_output, 0x00, 16);
11472 key_len =
unhexify( key_str,
"9a455ea1d9a78425a41d43e293e88de40dd6ad9ab2a63ef0" );
11474 iv_len =
unhexify( iv_str,
"c108c56a1b3261042adc89046ad1ecf8" );
11475 add_len =
unhexify( add_str,
"" );
11477 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
11480 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
11481 hexify( dst_str, output, pt_len );
11482 hexify( tag_str, tag_output, tag_len );
11484 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
11485 fct_chk( strcmp( (
char *) tag_str,
"213d77ed0534cc20" ) == 0 );
11491 FCT_TEST_BGN(gcm_nist_validation_aes_1921280064_1)
11493 unsigned char key_str[128];
11494 unsigned char src_str[128];
11495 unsigned char dst_str[257];
11496 unsigned char iv_str[128];
11497 unsigned char add_str[128];
11498 unsigned char tag_str[128];
11499 unsigned char output[128];
11500 unsigned char tag_output[16];
11502 unsigned int key_len;
11503 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
11505 memset(key_str, 0x00, 128);
11506 memset(src_str, 0x00, 128);
11507 memset(dst_str, 0x00, 257);
11508 memset(iv_str, 0x00, 128);
11509 memset(add_str, 0x00, 128);
11510 memset(tag_str, 0x00, 128);
11511 memset(output, 0x00, 128);
11512 memset(tag_output, 0x00, 16);
11514 key_len =
unhexify( key_str,
"d6fff8797db2f1884b7d71e3ef3e5983234a837dbd0c2cd6" );
11516 iv_len =
unhexify( iv_str,
"6be4417d7c00fe9c731e0932a7037a71" );
11517 add_len =
unhexify( add_str,
"" );
11519 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
11522 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
11523 hexify( dst_str, output, pt_len );
11524 hexify( tag_str, tag_output, tag_len );
11526 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
11527 fct_chk( strcmp( (
char *) tag_str,
"68b6c28786a017e7" ) == 0 );
11533 FCT_TEST_BGN(gcm_nist_validation_aes_1921280064_2)
11535 unsigned char key_str[128];
11536 unsigned char src_str[128];
11537 unsigned char dst_str[257];
11538 unsigned char iv_str[128];
11539 unsigned char add_str[128];
11540 unsigned char tag_str[128];
11541 unsigned char output[128];
11542 unsigned char tag_output[16];
11544 unsigned int key_len;
11545 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
11547 memset(key_str, 0x00, 128);
11548 memset(src_str, 0x00, 128);
11549 memset(dst_str, 0x00, 257);
11550 memset(iv_str, 0x00, 128);
11551 memset(add_str, 0x00, 128);
11552 memset(tag_str, 0x00, 128);
11553 memset(output, 0x00, 128);
11554 memset(tag_output, 0x00, 16);
11556 key_len =
unhexify( key_str,
"86e6c451ea0ecaec9e365bc4831e7a6c092b65ee9bcf1b86" );
11558 iv_len =
unhexify( iv_str,
"6258168da407ce43cc18d6931497c1f3" );
11559 add_len =
unhexify( add_str,
"" );
11561 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
11564 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
11565 hexify( dst_str, output, pt_len );
11566 hexify( tag_str, tag_output, tag_len );
11568 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
11569 fct_chk( strcmp( (
char *) tag_str,
"cbf20172e75a6316" ) == 0 );
11575 FCT_TEST_BGN(gcm_nist_validation_aes_1921280032_0)
11577 unsigned char key_str[128];
11578 unsigned char src_str[128];
11579 unsigned char dst_str[257];
11580 unsigned char iv_str[128];
11581 unsigned char add_str[128];
11582 unsigned char tag_str[128];
11583 unsigned char output[128];
11584 unsigned char tag_output[16];
11586 unsigned int key_len;
11587 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
11589 memset(key_str, 0x00, 128);
11590 memset(src_str, 0x00, 128);
11591 memset(dst_str, 0x00, 257);
11592 memset(iv_str, 0x00, 128);
11593 memset(add_str, 0x00, 128);
11594 memset(tag_str, 0x00, 128);
11595 memset(output, 0x00, 128);
11596 memset(tag_output, 0x00, 16);
11598 key_len =
unhexify( key_str,
"9295cc6458d907da5e7c356a7de51eb8e8d3031f72a05fb7" );
11600 iv_len =
unhexify( iv_str,
"c7eaad3389fc24a4ef96a711ffbfff9e" );
11601 add_len =
unhexify( add_str,
"" );
11603 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
11606 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
11607 hexify( dst_str, output, pt_len );
11608 hexify( tag_str, tag_output, tag_len );
11610 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
11611 fct_chk( strcmp( (
char *) tag_str,
"12508e37" ) == 0 );
11617 FCT_TEST_BGN(gcm_nist_validation_aes_1921280032_1)
11619 unsigned char key_str[128];
11620 unsigned char src_str[128];
11621 unsigned char dst_str[257];
11622 unsigned char iv_str[128];
11623 unsigned char add_str[128];
11624 unsigned char tag_str[128];
11625 unsigned char output[128];
11626 unsigned char tag_output[16];
11628 unsigned int key_len;
11629 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
11631 memset(key_str, 0x00, 128);
11632 memset(src_str, 0x00, 128);
11633 memset(dst_str, 0x00, 257);
11634 memset(iv_str, 0x00, 128);
11635 memset(add_str, 0x00, 128);
11636 memset(tag_str, 0x00, 128);
11637 memset(output, 0x00, 128);
11638 memset(tag_output, 0x00, 16);
11640 key_len =
unhexify( key_str,
"308b6ee958f81a7fbf3bc386e167459206df9c1cb999d904" );
11642 iv_len =
unhexify( iv_str,
"2c61b991ce478d9aac818d7aa75ada36" );
11643 add_len =
unhexify( add_str,
"" );
11645 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
11648 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
11649 hexify( dst_str, output, pt_len );
11650 hexify( tag_str, tag_output, tag_len );
11652 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
11653 fct_chk( strcmp( (
char *) tag_str,
"32ead170" ) == 0 );
11659 FCT_TEST_BGN(gcm_nist_validation_aes_1921280032_2)
11661 unsigned char key_str[128];
11662 unsigned char src_str[128];
11663 unsigned char dst_str[257];
11664 unsigned char iv_str[128];
11665 unsigned char add_str[128];
11666 unsigned char tag_str[128];
11667 unsigned char output[128];
11668 unsigned char tag_output[16];
11670 unsigned int key_len;
11671 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
11673 memset(key_str, 0x00, 128);
11674 memset(src_str, 0x00, 128);
11675 memset(dst_str, 0x00, 257);
11676 memset(iv_str, 0x00, 128);
11677 memset(add_str, 0x00, 128);
11678 memset(tag_str, 0x00, 128);
11679 memset(output, 0x00, 128);
11680 memset(tag_output, 0x00, 16);
11682 key_len =
unhexify( key_str,
"873d033773218387690c2871448578d8440ef36553583928" );
11684 iv_len =
unhexify( iv_str,
"02072ec745c856c6e86873a0523d603a" );
11685 add_len =
unhexify( add_str,
"" );
11687 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
11690 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
11691 hexify( dst_str, output, pt_len );
11692 hexify( tag_str, tag_output, tag_len );
11694 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
11695 fct_chk( strcmp( (
char *) tag_str,
"e6a5726b" ) == 0 );
11701 FCT_TEST_BGN(gcm_nist_validation_aes_19212801024128_0)
11703 unsigned char key_str[128];
11704 unsigned char src_str[128];
11705 unsigned char dst_str[257];
11706 unsigned char iv_str[128];
11707 unsigned char add_str[128];
11708 unsigned char tag_str[128];
11709 unsigned char output[128];
11710 unsigned char tag_output[16];
11712 unsigned int key_len;
11713 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
11715 memset(key_str, 0x00, 128);
11716 memset(src_str, 0x00, 128);
11717 memset(dst_str, 0x00, 257);
11718 memset(iv_str, 0x00, 128);
11719 memset(add_str, 0x00, 128);
11720 memset(tag_str, 0x00, 128);
11721 memset(output, 0x00, 128);
11722 memset(tag_output, 0x00, 16);
11724 key_len =
unhexify( key_str,
"cfd9c1375dfd19e64b5e4b75022fabaa049627d5238cba3a" );
11726 iv_len =
unhexify( iv_str,
"0a745c6910b23c78b1b44c02f1ce11b2" );
11727 add_len =
unhexify( add_str,
"0cc6724b9f3675619fbc70117bfcfb5871e903b0f01382e404793c1dfaff5a5b4131a7fc3041014941dc2c53871bee3ff18c08e9abbb13a8ea220cb89cf65bea1581eb8ac43d148203532dad8854616210ed7f1f9467e6b22071ccc8bb7e3bd89a0ed02a7058401aa4f2b5d0ce050092b650591282e66ee789bbf032dc105503" );
11729 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
11732 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
11733 hexify( dst_str, output, pt_len );
11734 hexify( tag_str, tag_output, tag_len );
11736 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
11737 fct_chk( strcmp( (
char *) tag_str,
"8ec41e9c76e96c031c18621b00c33a13" ) == 0 );
11743 FCT_TEST_BGN(gcm_nist_validation_aes_19212801024128_1)
11745 unsigned char key_str[128];
11746 unsigned char src_str[128];
11747 unsigned char dst_str[257];
11748 unsigned char iv_str[128];
11749 unsigned char add_str[128];
11750 unsigned char tag_str[128];
11751 unsigned char output[128];
11752 unsigned char tag_output[16];
11754 unsigned int key_len;
11755 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
11757 memset(key_str, 0x00, 128);
11758 memset(src_str, 0x00, 128);
11759 memset(dst_str, 0x00, 257);
11760 memset(iv_str, 0x00, 128);
11761 memset(add_str, 0x00, 128);
11762 memset(tag_str, 0x00, 128);
11763 memset(output, 0x00, 128);
11764 memset(tag_output, 0x00, 16);
11766 key_len =
unhexify( key_str,
"6c9f16c5dff4bd8d1855995dcad1c4253759b6e2a833995b" );
11768 iv_len =
unhexify( iv_str,
"3f25e3210d6d9caa8725eb55c6813cef" );
11769 add_len =
unhexify( add_str,
"7c6a66d930c95ce1028310cfa3670b77ffeb5e9b627a667859665c1dee8e69930c287fb1f1a3706ed1a0d35eb6d1becb236352a226a5b686bc27e1e1dce4ac6d5974d88b9812b39ba289b2490821319b5fd677da23fab3adbae4fb3630e2571ac887ed951a49051b0cc551e7ebe924c0cbb1c516f71db60e24773430dc34f47b" );
11771 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
11774 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
11775 hexify( dst_str, output, pt_len );
11776 hexify( tag_str, tag_output, tag_len );
11778 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
11779 fct_chk( strcmp( (
char *) tag_str,
"5e000478b55ecb080c1b685f24f255a9" ) == 0 );
11785 FCT_TEST_BGN(gcm_nist_validation_aes_19212801024128_2)
11787 unsigned char key_str[128];
11788 unsigned char src_str[128];
11789 unsigned char dst_str[257];
11790 unsigned char iv_str[128];
11791 unsigned char add_str[128];
11792 unsigned char tag_str[128];
11793 unsigned char output[128];
11794 unsigned char tag_output[16];
11796 unsigned int key_len;
11797 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
11799 memset(key_str, 0x00, 128);
11800 memset(src_str, 0x00, 128);
11801 memset(dst_str, 0x00, 257);
11802 memset(iv_str, 0x00, 128);
11803 memset(add_str, 0x00, 128);
11804 memset(tag_str, 0x00, 128);
11805 memset(output, 0x00, 128);
11806 memset(tag_output, 0x00, 16);
11808 key_len =
unhexify( key_str,
"a8e393e00714cd94de0347351b924ebd555003f3a297493f" );
11810 iv_len =
unhexify( iv_str,
"9c7eaf730fa8074acd372fdc53b726c0" );
11811 add_len =
unhexify( add_str,
"ce4cb46e67d85c5e68afe61ddecb1a36da4de42774d45250d0d52b328834385ce1ceba96f703daab81d7a981cd80c469855e14d834df41e4c0c98873f3dbb777fc0562f284c466b701a530f27fc4e6838cecbd162db34b8e8a23131d60d1f9dac6c14d32a2141173f59f057f38af51a89a9c783afd3410de3f2bbd07b90a4eb2" );
11813 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
11816 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
11817 hexify( dst_str, output, pt_len );
11818 hexify( tag_str, tag_output, tag_len );
11820 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
11821 fct_chk( strcmp( (
char *) tag_str,
"66bb46adf7b981f7c7e39cfffc53390f" ) == 0 );
11827 FCT_TEST_BGN(gcm_nist_validation_aes_19212801024120_0)
11829 unsigned char key_str[128];
11830 unsigned char src_str[128];
11831 unsigned char dst_str[257];
11832 unsigned char iv_str[128];
11833 unsigned char add_str[128];
11834 unsigned char tag_str[128];
11835 unsigned char output[128];
11836 unsigned char tag_output[16];
11838 unsigned int key_len;
11839 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
11841 memset(key_str, 0x00, 128);
11842 memset(src_str, 0x00, 128);
11843 memset(dst_str, 0x00, 257);
11844 memset(iv_str, 0x00, 128);
11845 memset(add_str, 0x00, 128);
11846 memset(tag_str, 0x00, 128);
11847 memset(output, 0x00, 128);
11848 memset(tag_output, 0x00, 16);
11850 key_len =
unhexify( key_str,
"bd356a8acd12b06de9f63825e93664cab1beae7f4112cc70" );
11852 iv_len =
unhexify( iv_str,
"72eaf459b8af0f787e91d117931e3cdd" );
11853 add_len =
unhexify( add_str,
"9295b227be3e1faf4e969be6c7f20d507431cf5da9e2a577c9b31538058472683bd52f0ad3f2fa9f68159c1df88e7dde40d6612f8abb0f11a0078419b34b558d9144ea6596a09e5d5548b275620e5a3096dceb2768d2f77a0b79e0b963387d3016ecc2f155d9182e3209d97c76329b830bb62df195cb2be11223565f496e751a" );
11855 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
11858 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
11859 hexify( dst_str, output, pt_len );
11860 hexify( tag_str, tag_output, tag_len );
11862 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
11863 fct_chk( strcmp( (
char *) tag_str,
"2ff4aecc90e2de9a7d3d15eb314cc8" ) == 0 );
11869 FCT_TEST_BGN(gcm_nist_validation_aes_19212801024120_1)
11871 unsigned char key_str[128];
11872 unsigned char src_str[128];
11873 unsigned char dst_str[257];
11874 unsigned char iv_str[128];
11875 unsigned char add_str[128];
11876 unsigned char tag_str[128];
11877 unsigned char output[128];
11878 unsigned char tag_output[16];
11880 unsigned int key_len;
11881 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
11883 memset(key_str, 0x00, 128);
11884 memset(src_str, 0x00, 128);
11885 memset(dst_str, 0x00, 257);
11886 memset(iv_str, 0x00, 128);
11887 memset(add_str, 0x00, 128);
11888 memset(tag_str, 0x00, 128);
11889 memset(output, 0x00, 128);
11890 memset(tag_output, 0x00, 16);
11892 key_len =
unhexify( key_str,
"80ecc9587bc2cec1ba87ab431c7ed03926169c01eba19729" );
11894 iv_len =
unhexify( iv_str,
"5a65f279f453572e169db33807d9b52d" );
11895 add_len =
unhexify( add_str,
"29520d9020efa1ecf514e39a286f398c7225b945608d4b57ec873ae8bfbdd40e4cbd75b9b535c9f171cd7913ed4b21e09d6bb030eaa27ca58b08131817113c852b6cbdf550d94dddfde8595e689470cf92f9c20960b936ac0692171158e54041155482f29e4acae41565d87f5641d1aac96b8cb763b7f1267ccdbce234d067d4" );
11897 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
11900 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
11901 hexify( dst_str, output, pt_len );
11902 hexify( tag_str, tag_output, tag_len );
11904 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
11905 fct_chk( strcmp( (
char *) tag_str,
"83dec0fb36463b86270656681455a0" ) == 0 );
11911 FCT_TEST_BGN(gcm_nist_validation_aes_19212801024120_2)
11913 unsigned char key_str[128];
11914 unsigned char src_str[128];
11915 unsigned char dst_str[257];
11916 unsigned char iv_str[128];
11917 unsigned char add_str[128];
11918 unsigned char tag_str[128];
11919 unsigned char output[128];
11920 unsigned char tag_output[16];
11922 unsigned int key_len;
11923 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
11925 memset(key_str, 0x00, 128);
11926 memset(src_str, 0x00, 128);
11927 memset(dst_str, 0x00, 257);
11928 memset(iv_str, 0x00, 128);
11929 memset(add_str, 0x00, 128);
11930 memset(tag_str, 0x00, 128);
11931 memset(output, 0x00, 128);
11932 memset(tag_output, 0x00, 16);
11934 key_len =
unhexify( key_str,
"94345293fb7733fea9c8b94be2f4fc26f8c3655f583e2b0e" );
11936 iv_len =
unhexify( iv_str,
"8bad4f3f289b9f4063ba39622ba2b7ee" );
11937 add_len =
unhexify( add_str,
"7e2b6520d7a554e612d01f462606c0e6d0181bafece1daf54f4316d707483a5dcd4275a08caecc1c20f3e32872fe3e57fa62d598949f5e49ef0efd53e918617e0a140338c007025493f2e0f8dbe5fca4a57d1db6333551bbca79243a73ae8a68dafb3089998359159df916ee6ba4f928a6a173390f15f2ee6045d578dd757bb1" );
11939 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
11942 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
11943 hexify( dst_str, output, pt_len );
11944 hexify( tag_str, tag_output, tag_len );
11946 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
11947 fct_chk( strcmp( (
char *) tag_str,
"da305181a12517420c6f0d71fd3ee1" ) == 0 );
11953 FCT_TEST_BGN(gcm_nist_validation_aes_19212801024112_0)
11955 unsigned char key_str[128];
11956 unsigned char src_str[128];
11957 unsigned char dst_str[257];
11958 unsigned char iv_str[128];
11959 unsigned char add_str[128];
11960 unsigned char tag_str[128];
11961 unsigned char output[128];
11962 unsigned char tag_output[16];
11964 unsigned int key_len;
11965 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
11967 memset(key_str, 0x00, 128);
11968 memset(src_str, 0x00, 128);
11969 memset(dst_str, 0x00, 257);
11970 memset(iv_str, 0x00, 128);
11971 memset(add_str, 0x00, 128);
11972 memset(tag_str, 0x00, 128);
11973 memset(output, 0x00, 128);
11974 memset(tag_output, 0x00, 16);
11976 key_len =
unhexify( key_str,
"a3915523031c3caa58ce02c2b1e6ee2eb42cdaf31332432c" );
11978 iv_len =
unhexify( iv_str,
"d5416986beb3131afd6b7967836d243b" );
11979 add_len =
unhexify( add_str,
"ba4e883147c8f07afc08735e6e439798bec60e00ed3f5982f66d6b82a9af7580934112a9858f83abbd71193190298f0683453d3f8388c475fbbc8f9b6a3d2c77046b73986a54cc4559c57cbb86330267e04bcf5fd583c6d2968a7971da64c99d98623676154b0ee413ba531ebf12fce5e06b4ee0617e43bdaeb408b54d1b4445" );
11981 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
11984 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
11985 hexify( dst_str, output, pt_len );
11986 hexify( tag_str, tag_output, tag_len );
11988 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
11989 fct_chk( strcmp( (
char *) tag_str,
"f273fe664e5190a506da28ea8307" ) == 0 );
11995 FCT_TEST_BGN(gcm_nist_validation_aes_19212801024112_1)
11997 unsigned char key_str[128];
11998 unsigned char src_str[128];
11999 unsigned char dst_str[257];
12000 unsigned char iv_str[128];
12001 unsigned char add_str[128];
12002 unsigned char tag_str[128];
12003 unsigned char output[128];
12004 unsigned char tag_output[16];
12006 unsigned int key_len;
12007 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
12009 memset(key_str, 0x00, 128);
12010 memset(src_str, 0x00, 128);
12011 memset(dst_str, 0x00, 257);
12012 memset(iv_str, 0x00, 128);
12013 memset(add_str, 0x00, 128);
12014 memset(tag_str, 0x00, 128);
12015 memset(output, 0x00, 128);
12016 memset(tag_output, 0x00, 16);
12018 key_len =
unhexify( key_str,
"799d3ff266644128f330ceb8c028297991b2a5593e4afa3b" );
12020 iv_len =
unhexify( iv_str,
"9d27061dd9d50817b3086f453f1f401a" );
12021 add_len =
unhexify( add_str,
"d3b5c420ac597daaac7503cd17f580e94ad779fae0d4199ada2c7da7c4a611228752375647a03241f29f810d3a6a74a140ef9651e4a6099259f7d41ec4e51a02917e8cc35edf7f60ffc473805f56f0ad51fcc767670157c050c3214d36f831a54bfeb7ab2039cb10f7919b89b0f623a572aaed313983b105fdff495d979b8a84" );
12023 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
12026 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
12027 hexify( dst_str, output, pt_len );
12028 hexify( tag_str, tag_output, tag_len );
12030 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
12031 fct_chk( strcmp( (
char *) tag_str,
"e690c9afdecea2494b6cf5a576bd" ) == 0 );
12037 FCT_TEST_BGN(gcm_nist_validation_aes_19212801024112_2)
12039 unsigned char key_str[128];
12040 unsigned char src_str[128];
12041 unsigned char dst_str[257];
12042 unsigned char iv_str[128];
12043 unsigned char add_str[128];
12044 unsigned char tag_str[128];
12045 unsigned char output[128];
12046 unsigned char tag_output[16];
12048 unsigned int key_len;
12049 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
12051 memset(key_str, 0x00, 128);
12052 memset(src_str, 0x00, 128);
12053 memset(dst_str, 0x00, 257);
12054 memset(iv_str, 0x00, 128);
12055 memset(add_str, 0x00, 128);
12056 memset(tag_str, 0x00, 128);
12057 memset(output, 0x00, 128);
12058 memset(tag_output, 0x00, 16);
12060 key_len =
unhexify( key_str,
"7480905cee8be7f42b9490936041a19b060331712882da55" );
12062 iv_len =
unhexify( iv_str,
"27500a09506e0133c88f65e77721b547" );
12063 add_len =
unhexify( add_str,
"52832d4118fddf182b21513db25d54a19220335f8676ea35c0941d2a38a3aa536b8c9cbf093de83c6b24da3372baba2826289bb3cac415795b9bd3ea62bb9b48450978e79b936cd70cd551e580a6de3418a2be0f4c1f062954aed6adc94d805e59ff703d239fc2318b80cee45c57f916977b319a9ce884d7e02726fdb71c3287" );
12065 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
12068 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
12069 hexify( dst_str, output, pt_len );
12070 hexify( tag_str, tag_output, tag_len );
12072 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
12073 fct_chk( strcmp( (
char *) tag_str,
"52a5721e98ba1a553d8e550f137c" ) == 0 );
12079 FCT_TEST_BGN(gcm_nist_validation_aes_19212801024104_0)
12081 unsigned char key_str[128];
12082 unsigned char src_str[128];
12083 unsigned char dst_str[257];
12084 unsigned char iv_str[128];
12085 unsigned char add_str[128];
12086 unsigned char tag_str[128];
12087 unsigned char output[128];
12088 unsigned char tag_output[16];
12090 unsigned int key_len;
12091 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
12093 memset(key_str, 0x00, 128);
12094 memset(src_str, 0x00, 128);
12095 memset(dst_str, 0x00, 257);
12096 memset(iv_str, 0x00, 128);
12097 memset(add_str, 0x00, 128);
12098 memset(tag_str, 0x00, 128);
12099 memset(output, 0x00, 128);
12100 memset(tag_output, 0x00, 16);
12102 key_len =
unhexify( key_str,
"042db3f8af95ad68966bce9ca0297ed41b608683a37457f5" );
12104 iv_len =
unhexify( iv_str,
"32d3e97edd3f393da5abc3827cae1e67" );
12105 add_len =
unhexify( add_str,
"4d7c2ee6e024e95a6e684ded9898f5c7fae7da8658bdb40560dac6495e46a691e97c047e66046b55e8cf9b02d31d3caeebe3a9f8aeed756d6b0da1ac5d4ba2c5e7b54add22f681ab1d5a2ac1463e8447e08592e0c2f32605bd02f2f03c925a2159e5bdd880323f4ce18a826a00962ce418dbbd5c276e3ff30f1cbaa4795d1ce5" );
12107 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
12110 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
12111 hexify( dst_str, output, pt_len );
12112 hexify( tag_str, tag_output, tag_len );
12114 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
12115 fct_chk( strcmp( (
char *) tag_str,
"e2afbb95a4944353ed21851f10" ) == 0 );
12121 FCT_TEST_BGN(gcm_nist_validation_aes_19212801024104_1)
12123 unsigned char key_str[128];
12124 unsigned char src_str[128];
12125 unsigned char dst_str[257];
12126 unsigned char iv_str[128];
12127 unsigned char add_str[128];
12128 unsigned char tag_str[128];
12129 unsigned char output[128];
12130 unsigned char tag_output[16];
12132 unsigned int key_len;
12133 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
12135 memset(key_str, 0x00, 128);
12136 memset(src_str, 0x00, 128);
12137 memset(dst_str, 0x00, 257);
12138 memset(iv_str, 0x00, 128);
12139 memset(add_str, 0x00, 128);
12140 memset(tag_str, 0x00, 128);
12141 memset(output, 0x00, 128);
12142 memset(tag_output, 0x00, 16);
12144 key_len =
unhexify( key_str,
"7f5ea90f99fc76594f0f06448321bd4bb5e494a5e351e41b" );
12146 iv_len =
unhexify( iv_str,
"002a5da3c543ca56dd7e5b013b094f70" );
12147 add_len =
unhexify( add_str,
"b8150b50e36de85158a96d2096678f31f179c8765ae6ba5723ca655e890528eae96d438f9d9365575dadea3cebb4d7df3a9d5323f93696c40781a6661dd4849531e672f5cee7cdfc529416c9c3faa889d0f66ee4049c949c3c8459680f490bbb0a25e50af54de57d9e3241e0dff72604af55827b9c4d61b7d1a89f551cea2956" );
12149 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
12152 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
12153 hexify( dst_str, output, pt_len );
12154 hexify( tag_str, tag_output, tag_len );
12156 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
12157 fct_chk( strcmp( (
char *) tag_str,
"db9fd90a0be35a29f805989410" ) == 0 );
12163 FCT_TEST_BGN(gcm_nist_validation_aes_19212801024104_2)
12165 unsigned char key_str[128];
12166 unsigned char src_str[128];
12167 unsigned char dst_str[257];
12168 unsigned char iv_str[128];
12169 unsigned char add_str[128];
12170 unsigned char tag_str[128];
12171 unsigned char output[128];
12172 unsigned char tag_output[16];
12174 unsigned int key_len;
12175 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
12177 memset(key_str, 0x00, 128);
12178 memset(src_str, 0x00, 128);
12179 memset(dst_str, 0x00, 257);
12180 memset(iv_str, 0x00, 128);
12181 memset(add_str, 0x00, 128);
12182 memset(tag_str, 0x00, 128);
12183 memset(output, 0x00, 128);
12184 memset(tag_output, 0x00, 16);
12186 key_len =
unhexify( key_str,
"da287d34379d56f542edb02ea673bac097150f87648a57b9" );
12188 iv_len =
unhexify( iv_str,
"6696034b1b362927b89ae1b7ab5297d7" );
12189 add_len =
unhexify( add_str,
"45818b7b69b05a121fe5c573c9903cb11477873b24a544ba919baec78d1565f4ad0766da58bfabfaa17ac3c628238a4d38b5c0b14b52e397bcac991408dd7b322ff614bd697ce2b5b94ca155a4442ddd9e502c4a5f81210c32dff33481f4211897db38f619b308f3708d554bdb6c7b8a4d2a80ccdfd5f70501c83502a312ca8a" );
12191 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
12194 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
12195 hexify( dst_str, output, pt_len );
12196 hexify( tag_str, tag_output, tag_len );
12198 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
12199 fct_chk( strcmp( (
char *) tag_str,
"8e65d86edc071446454a1bef34" ) == 0 );
12205 FCT_TEST_BGN(gcm_nist_validation_aes_1921280102496_0)
12207 unsigned char key_str[128];
12208 unsigned char src_str[128];
12209 unsigned char dst_str[257];
12210 unsigned char iv_str[128];
12211 unsigned char add_str[128];
12212 unsigned char tag_str[128];
12213 unsigned char output[128];
12214 unsigned char tag_output[16];
12216 unsigned int key_len;
12217 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
12219 memset(key_str, 0x00, 128);
12220 memset(src_str, 0x00, 128);
12221 memset(dst_str, 0x00, 257);
12222 memset(iv_str, 0x00, 128);
12223 memset(add_str, 0x00, 128);
12224 memset(tag_str, 0x00, 128);
12225 memset(output, 0x00, 128);
12226 memset(tag_output, 0x00, 16);
12228 key_len =
unhexify( key_str,
"1782ac334cbffc92769a170c3cd43915f735b4423ebb4dc3" );
12230 iv_len =
unhexify( iv_str,
"736f2f24cd04e26d38e69c55b38cca7a" );
12231 add_len =
unhexify( add_str,
"5827d391efec2f8f102e5f053ac496e2910248a0eb72e8a0b3bf377c6349df02ab0410a3d28bc27abc7cbe582a03000db57843565e4fb06c4078de75c3f1a21130d55befb7ecb919ad789a4de2816c3a42d4e9b32e38d980c06045987d03739cbe7710d839c42f04f5088072c1a1044c3b89809b780e74e54ec135fbe4129ee0" );
12233 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
12236 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
12237 hexify( dst_str, output, pt_len );
12238 hexify( tag_str, tag_output, tag_len );
12240 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
12241 fct_chk( strcmp( (
char *) tag_str,
"c6dc3c4ae52f3948503d84a4" ) == 0 );
12247 FCT_TEST_BGN(gcm_nist_validation_aes_1921280102496_1)
12249 unsigned char key_str[128];
12250 unsigned char src_str[128];
12251 unsigned char dst_str[257];
12252 unsigned char iv_str[128];
12253 unsigned char add_str[128];
12254 unsigned char tag_str[128];
12255 unsigned char output[128];
12256 unsigned char tag_output[16];
12258 unsigned int key_len;
12259 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
12261 memset(key_str, 0x00, 128);
12262 memset(src_str, 0x00, 128);
12263 memset(dst_str, 0x00, 257);
12264 memset(iv_str, 0x00, 128);
12265 memset(add_str, 0x00, 128);
12266 memset(tag_str, 0x00, 128);
12267 memset(output, 0x00, 128);
12268 memset(tag_output, 0x00, 16);
12270 key_len =
unhexify( key_str,
"20529c374f21c97b0a8f96f7bd5bdeb3fcd2b12db30b3ee4" );
12272 iv_len =
unhexify( iv_str,
"e6e45b7c28f7fbcae658acb533614e48" );
12273 add_len =
unhexify( add_str,
"b41290031906709ec8048f450a940eff0422a6ebc7b44666c05f17aec9debc1bfecce62d896d5df4618517fb57ce7b04ef1579ebb2636da0eead063bc74ec184b0a69ca3eba675fc7107bb52a49f93783608677565205ada7bf5a731441e44cede781120a026cc93cfe06a06fb3104a521c6987f1070823e5a880cbb3a8ecc88" );
12275 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
12278 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
12279 hexify( dst_str, output, pt_len );
12280 hexify( tag_str, tag_output, tag_len );
12282 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
12283 fct_chk( strcmp( (
char *) tag_str,
"e9ec5ad57892ce18babfde73" ) == 0 );
12289 FCT_TEST_BGN(gcm_nist_validation_aes_1921280102496_2)
12291 unsigned char key_str[128];
12292 unsigned char src_str[128];
12293 unsigned char dst_str[257];
12294 unsigned char iv_str[128];
12295 unsigned char add_str[128];
12296 unsigned char tag_str[128];
12297 unsigned char output[128];
12298 unsigned char tag_output[16];
12300 unsigned int key_len;
12301 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
12303 memset(key_str, 0x00, 128);
12304 memset(src_str, 0x00, 128);
12305 memset(dst_str, 0x00, 257);
12306 memset(iv_str, 0x00, 128);
12307 memset(add_str, 0x00, 128);
12308 memset(tag_str, 0x00, 128);
12309 memset(output, 0x00, 128);
12310 memset(tag_output, 0x00, 16);
12312 key_len =
unhexify( key_str,
"5634789b29e373760ecb9952f4b94ca76f40dda57ba363dd" );
12314 iv_len =
unhexify( iv_str,
"7cd1d2d6beef44a6d6155181dfca3dc6" );
12315 add_len =
unhexify( add_str,
"0130a67935e2df082a95d0bc6dab17093fb08746a809cc82da7893c97c5efc0065388bb85c9c2986a481cc4bbdeb6e0f62d6cd22b7785a1662c70ca92a796341e90a538fe6e072976d41f2f59787d5a23c24d95a4ca73ce92a1048f0b1c79e454fb446d16587737f7cc335124b0a8fb32205e66b93bc135ad310b35eea0f670e" );
12317 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
12320 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
12321 hexify( dst_str, output, pt_len );
12322 hexify( tag_str, tag_output, tag_len );
12324 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
12325 fct_chk( strcmp( (
char *) tag_str,
"4006685e2d317a1c74ef5024" ) == 0 );
12331 FCT_TEST_BGN(gcm_nist_validation_aes_1921280102464_0)
12333 unsigned char key_str[128];
12334 unsigned char src_str[128];
12335 unsigned char dst_str[257];
12336 unsigned char iv_str[128];
12337 unsigned char add_str[128];
12338 unsigned char tag_str[128];
12339 unsigned char output[128];
12340 unsigned char tag_output[16];
12342 unsigned int key_len;
12343 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
12345 memset(key_str, 0x00, 128);
12346 memset(src_str, 0x00, 128);
12347 memset(dst_str, 0x00, 257);
12348 memset(iv_str, 0x00, 128);
12349 memset(add_str, 0x00, 128);
12350 memset(tag_str, 0x00, 128);
12351 memset(output, 0x00, 128);
12352 memset(tag_output, 0x00, 16);
12354 key_len =
unhexify( key_str,
"f0072110572321ad9804efb5bcbc2ae7b271b1cbb0f4897b" );
12356 iv_len =
unhexify( iv_str,
"604ed8056666b17fd27b111afd419375" );
12357 add_len =
unhexify( add_str,
"97f68c00513b2247bc88a331a3ffa1208038736d6761b3b080884a8dd46e0596f2c00c1a93bceeeee814210e57d7f1cbdb4e0c2ea6a0834baf716945af9aa98e2826ae0eb5717b241ede2b9e873f94c1db9eb5e1b25f75827c25849a2c7b92098b54845ed81f52871a2b0d12d317846cec34defaaafc3bd3cc53a6ab812bd250" );
12359 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
12362 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
12363 hexify( dst_str, output, pt_len );
12364 hexify( tag_str, tag_output, tag_len );
12366 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
12367 fct_chk( strcmp( (
char *) tag_str,
"64881eaf78aeaa7d" ) == 0 );
12373 FCT_TEST_BGN(gcm_nist_validation_aes_1921280102464_1)
12375 unsigned char key_str[128];
12376 unsigned char src_str[128];
12377 unsigned char dst_str[257];
12378 unsigned char iv_str[128];
12379 unsigned char add_str[128];
12380 unsigned char tag_str[128];
12381 unsigned char output[128];
12382 unsigned char tag_output[16];
12384 unsigned int key_len;
12385 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
12387 memset(key_str, 0x00, 128);
12388 memset(src_str, 0x00, 128);
12389 memset(dst_str, 0x00, 257);
12390 memset(iv_str, 0x00, 128);
12391 memset(add_str, 0x00, 128);
12392 memset(tag_str, 0x00, 128);
12393 memset(output, 0x00, 128);
12394 memset(tag_output, 0x00, 16);
12396 key_len =
unhexify( key_str,
"e91e8c2d6928bbaf870e141ee34d3a56d00dacc8c7e50514" );
12398 iv_len =
unhexify( iv_str,
"6f3d661a3e321844d1fc12d5ec2becf6" );
12399 add_len =
unhexify( add_str,
"fc8e5b45ad1647f9dbdbb6b437abecf0a8ac66065d0e250aa2ae75525455ee13adce8c59d643b96de9002d780db64f1eb9d823c6b9a4238171db26bf5d05153d1e3c839b93495084363b845fed75671ace0c009800454596674217b19832751252f051f3995776a89209c1636b4f4b28a364bccdedb78ad36876745c1a438406" );
12401 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
12404 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
12405 hexify( dst_str, output, pt_len );
12406 hexify( tag_str, tag_output, tag_len );
12408 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
12409 fct_chk( strcmp( (
char *) tag_str,
"1f4f495adfed6c1e" ) == 0 );
12415 FCT_TEST_BGN(gcm_nist_validation_aes_1921280102464_2)
12417 unsigned char key_str[128];
12418 unsigned char src_str[128];
12419 unsigned char dst_str[257];
12420 unsigned char iv_str[128];
12421 unsigned char add_str[128];
12422 unsigned char tag_str[128];
12423 unsigned char output[128];
12424 unsigned char tag_output[16];
12426 unsigned int key_len;
12427 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
12429 memset(key_str, 0x00, 128);
12430 memset(src_str, 0x00, 128);
12431 memset(dst_str, 0x00, 257);
12432 memset(iv_str, 0x00, 128);
12433 memset(add_str, 0x00, 128);
12434 memset(tag_str, 0x00, 128);
12435 memset(output, 0x00, 128);
12436 memset(tag_output, 0x00, 16);
12438 key_len =
unhexify( key_str,
"138ff9c8c556ffe7637f7602cae428d7e20dff882d44ddc3" );
12440 iv_len =
unhexify( iv_str,
"38d7005fadee55b5a0434d924d971491" );
12441 add_len =
unhexify( add_str,
"3facceb047e486998c945839ee5eddd67054bbb28308365b2909dabaed29fd5b7b34644043fa443165e07b20214710cd652fecd816d9273c700d6828d216db8f3ceaa9eed0e251585f4ee5ba4beb3c0582b8128a3ecc01f4b29cab099ba2a8931e56120802fdf6004a6c02e6dd00257a83adc95b3acb270e8000fd2126b8eb83" );
12443 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
12446 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
12447 hexify( dst_str, output, pt_len );
12448 hexify( tag_str, tag_output, tag_len );
12450 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
12451 fct_chk( strcmp( (
char *) tag_str,
"fa8aed1987868388" ) == 0 );
12457 FCT_TEST_BGN(gcm_nist_validation_aes_1921280102432_0)
12459 unsigned char key_str[128];
12460 unsigned char src_str[128];
12461 unsigned char dst_str[257];
12462 unsigned char iv_str[128];
12463 unsigned char add_str[128];
12464 unsigned char tag_str[128];
12465 unsigned char output[128];
12466 unsigned char tag_output[16];
12468 unsigned int key_len;
12469 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
12471 memset(key_str, 0x00, 128);
12472 memset(src_str, 0x00, 128);
12473 memset(dst_str, 0x00, 257);
12474 memset(iv_str, 0x00, 128);
12475 memset(add_str, 0x00, 128);
12476 memset(tag_str, 0x00, 128);
12477 memset(output, 0x00, 128);
12478 memset(tag_output, 0x00, 16);
12480 key_len =
unhexify( key_str,
"1187a34ccb75fc06dafeca0235186c64ba929adac6cf6e49" );
12482 iv_len =
unhexify( iv_str,
"9dd515d3481f21efbe43198f623b34f7" );
12483 add_len =
unhexify( add_str,
"8a1b00ea5d1f4e451cea71b3d2fc9bb03b9790a8ae8ae262b3e97ebf34911f9d865c8810b9fe779fff701c72f3639654e60898d1f57eb93381749f0e2cecb4ee342f5f34473215d5c46818338ff688637217fdfa8b7ee552db01973fdb6084c3c20b530863eeb1ce798046890994f5625df2a56042d62742097cc10d512a543a" );
12485 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
12488 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
12489 hexify( dst_str, output, pt_len );
12490 hexify( tag_str, tag_output, tag_len );
12492 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
12493 fct_chk( strcmp( (
char *) tag_str,
"83f45529" ) == 0 );
12499 FCT_TEST_BGN(gcm_nist_validation_aes_1921280102432_1)
12501 unsigned char key_str[128];
12502 unsigned char src_str[128];
12503 unsigned char dst_str[257];
12504 unsigned char iv_str[128];
12505 unsigned char add_str[128];
12506 unsigned char tag_str[128];
12507 unsigned char output[128];
12508 unsigned char tag_output[16];
12510 unsigned int key_len;
12511 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
12513 memset(key_str, 0x00, 128);
12514 memset(src_str, 0x00, 128);
12515 memset(dst_str, 0x00, 257);
12516 memset(iv_str, 0x00, 128);
12517 memset(add_str, 0x00, 128);
12518 memset(tag_str, 0x00, 128);
12519 memset(output, 0x00, 128);
12520 memset(tag_output, 0x00, 16);
12522 key_len =
unhexify( key_str,
"4c1052610d05fb77543b6b517eb64b487ed902f9969a420f" );
12524 iv_len =
unhexify( iv_str,
"90f4c93301371158271a8f46df1c86c9" );
12525 add_len =
unhexify( add_str,
"83d009a1238f8aa40e36cbddf08a5f3d96403a03f7d079359cd6d3d0c719bf79c908654882919dbc6c27db34007b6732cb344a0f4babd26b1209ce6b134a8d2318f9a38af034b265562097b63794d7efee306e97c6ac0a991b3764ecd936c87000fa58e6689e302f12c2851b1ffc950dad7a553c8c67e01a2270e1e5e9caf30a" );
12527 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
12530 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
12531 hexify( dst_str, output, pt_len );
12532 hexify( tag_str, tag_output, tag_len );
12534 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
12535 fct_chk( strcmp( (
char *) tag_str,
"30b3fd85" ) == 0 );
12541 FCT_TEST_BGN(gcm_nist_validation_aes_1921280102432_2)
12543 unsigned char key_str[128];
12544 unsigned char src_str[128];
12545 unsigned char dst_str[257];
12546 unsigned char iv_str[128];
12547 unsigned char add_str[128];
12548 unsigned char tag_str[128];
12549 unsigned char output[128];
12550 unsigned char tag_output[16];
12552 unsigned int key_len;
12553 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
12555 memset(key_str, 0x00, 128);
12556 memset(src_str, 0x00, 128);
12557 memset(dst_str, 0x00, 257);
12558 memset(iv_str, 0x00, 128);
12559 memset(add_str, 0x00, 128);
12560 memset(tag_str, 0x00, 128);
12561 memset(output, 0x00, 128);
12562 memset(tag_output, 0x00, 16);
12564 key_len =
unhexify( key_str,
"3dc62e54957bdd1968be71b7d205fedaa291349d69f2854f" );
12566 iv_len =
unhexify( iv_str,
"b8bce0f9263688ca41c4cefb26e79453" );
12567 add_len =
unhexify( add_str,
"22b6d92d8908bbdbcd0ff35299eddaf0cfb039befa2d2d83c896f373b92091d145f1771c58d60f94d3548d0cbbeabeb796d7632b5da3c66ef75cb41a35e7d1b032ccfbddbb9423e0ee054bd56b6288bdf1b616492c85393e4134ff9c066b23f3f626eac63a5fe191ce61810379c698de62922d3bdbe30697a3e3e78190756c3d" );
12569 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
12572 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
12573 hexify( dst_str, output, pt_len );
12574 hexify( tag_str, tag_output, tag_len );
12576 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
12577 fct_chk( strcmp( (
char *) tag_str,
"67887aeb" ) == 0 );
12583 FCT_TEST_BGN(gcm_nist_validation_aes_19212810240128_0)
12585 unsigned char key_str[128];
12586 unsigned char src_str[128];
12587 unsigned char dst_str[257];
12588 unsigned char iv_str[128];
12589 unsigned char add_str[128];
12590 unsigned char tag_str[128];
12591 unsigned char output[128];
12592 unsigned char tag_output[16];
12594 unsigned int key_len;
12595 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
12597 memset(key_str, 0x00, 128);
12598 memset(src_str, 0x00, 128);
12599 memset(dst_str, 0x00, 257);
12600 memset(iv_str, 0x00, 128);
12601 memset(add_str, 0x00, 128);
12602 memset(tag_str, 0x00, 128);
12603 memset(output, 0x00, 128);
12604 memset(tag_output, 0x00, 16);
12606 key_len =
unhexify( key_str,
"f170a6a761090355592968d67fb3514b8bfdb41cbf121341" );
12607 pt_len =
unhexify( src_str,
"a050f858c87d56dfcba3ac1ccf5ba60628b3ab1b89845682a95b7f291c80f6eb1cbced4fa21e3584e21528746231e7311ec319a0fcecc329e1a7aaed0a8548e613e51db78c86c8d0cefa15e30b745b952809f87d8a4a7bbefc76a8eb824827d4334201bda7743dc497ef5fffa2812e67f2a04e5c10bf464179c6178db932ecd3" );
12608 iv_len =
unhexify( iv_str,
"e02ef73aee414041b137dd3cae8f2765" );
12609 add_len =
unhexify( add_str,
"" );
12611 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
12614 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
12615 hexify( dst_str, output, pt_len );
12616 hexify( tag_str, tag_output, tag_len );
12618 fct_chk( strcmp( (
char *) dst_str,
"c08c9bccf298c8a352cd72e9174f57dc9bf64d65191a9e97b43ce70afacfe76feb5b2695d72ea4635fa94144de02a54333a77c7d4adcde17c166b303f1d664e6edb081a85433a7496f91ce640f113935cdd4e7ad14c95247506ddc6620913b5c67422f599ca00b95d62a9371e44c5af5295bf96743d0f1228c96e95af3b4d366" ) == 0 );
12619 fct_chk( strcmp( (
char *) tag_str,
"d64d9ac91548dc1bad618509633e0c25" ) == 0 );
12625 FCT_TEST_BGN(gcm_nist_validation_aes_19212810240128_1)
12627 unsigned char key_str[128];
12628 unsigned char src_str[128];
12629 unsigned char dst_str[257];
12630 unsigned char iv_str[128];
12631 unsigned char add_str[128];
12632 unsigned char tag_str[128];
12633 unsigned char output[128];
12634 unsigned char tag_output[16];
12636 unsigned int key_len;
12637 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
12639 memset(key_str, 0x00, 128);
12640 memset(src_str, 0x00, 128);
12641 memset(dst_str, 0x00, 257);
12642 memset(iv_str, 0x00, 128);
12643 memset(add_str, 0x00, 128);
12644 memset(tag_str, 0x00, 128);
12645 memset(output, 0x00, 128);
12646 memset(tag_output, 0x00, 16);
12648 key_len =
unhexify( key_str,
"2ce5a40618b8bb2d9fc1d87a3333a9cd4945cfa838c8e0c6" );
12649 pt_len =
unhexify( src_str,
"4ad4d103da3fb2ef8adcd1e0e823f4a857f1d6fa6273bb66574033c18ba2f760951ee0fdbe06c5cd3a0a30bd11142450f2d7e71af2fa7b9556b663fc30766508aa24e1fb2219f30ec23a6cd48b58944541d1f3e3fbf596e2ef263bddf789e7a666a68638081f0ec1a6cb3cb7feb0fddbe323b307675324ebceb25cba6d9002d4" );
12650 iv_len =
unhexify( iv_str,
"0c4b6c940d091efee98bf27fad79b04e" );
12651 add_len =
unhexify( add_str,
"" );
12653 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
12656 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
12657 hexify( dst_str, output, pt_len );
12658 hexify( tag_str, tag_output, tag_len );
12660 fct_chk( strcmp( (
char *) dst_str,
"ad611dd6ebaeb5a634d4bfba9f965948ea79d16294b976b7c8bb57240c5d13e10a9fe7a5b5d39143000b4f24fc331cc4988685c8d6401593a420c12e6cbd7cded06504d6a1034f70153f7b5019084a66ce818761841cab52d5bcb2a579a4acd9df50caf582bc6da2b94d4b3b78922850993ccec560795417016e55cfab651473" ) == 0 );
12661 fct_chk( strcmp( (
char *) tag_str,
"317596eefdc011081f1dda6dae748a53" ) == 0 );
12667 FCT_TEST_BGN(gcm_nist_validation_aes_19212810240128_2)
12669 unsigned char key_str[128];
12670 unsigned char src_str[128];
12671 unsigned char dst_str[257];
12672 unsigned char iv_str[128];
12673 unsigned char add_str[128];
12674 unsigned char tag_str[128];
12675 unsigned char output[128];
12676 unsigned char tag_output[16];
12678 unsigned int key_len;
12679 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
12681 memset(key_str, 0x00, 128);
12682 memset(src_str, 0x00, 128);
12683 memset(dst_str, 0x00, 257);
12684 memset(iv_str, 0x00, 128);
12685 memset(add_str, 0x00, 128);
12686 memset(tag_str, 0x00, 128);
12687 memset(output, 0x00, 128);
12688 memset(tag_output, 0x00, 16);
12690 key_len =
unhexify( key_str,
"f71d789a63213bbe17aa14f2956e9da2496a1efd1a63f6a5" );
12691 pt_len =
unhexify( src_str,
"f5bf20dc6a11ce5142ff34d6c4771dbee4e74790c4ccd3cb5af408a5c7bd706bac550d7ed56805f550efc7648ab501fbbc63a1070402626c5788f076ae40e6bef2b9aab9a4bd8550fe38f7cdb0fcca2657ca26f1f729074326f45ae932182905d849b1534d3effe20dbfc3fc26dc6453d6544d481e58891405dbf876d0f254e8" );
12692 iv_len =
unhexify( iv_str,
"17327996f18c7096fc5b8e375ed86f47" );
12693 add_len =
unhexify( add_str,
"" );
12695 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
12698 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
12699 hexify( dst_str, output, pt_len );
12700 hexify( tag_str, tag_output, tag_len );
12702 fct_chk( strcmp( (
char *) dst_str,
"fed961a497502b2e49043ff29b9426a1e864a7fe0a88281a1572fbe62203f071710ea1d77873906369b195919a7bd5b44cbabab6eee23c3692cb8b9e4db7ee595b8d4b063d209b11d64150c45545b7eda984144e1d336a3bd3f187834bbc6950b3e7cd84895a3a5e27f8394a9aa9b657fba77181c9040b741c12fc40e849ba4b" ) == 0 );
12703 fct_chk( strcmp( (
char *) tag_str,
"9dba8faf9d12905970ba0e29bc7e9dc4" ) == 0 );
12709 FCT_TEST_BGN(gcm_nist_validation_aes_19212810240120_0)
12711 unsigned char key_str[128];
12712 unsigned char src_str[128];
12713 unsigned char dst_str[257];
12714 unsigned char iv_str[128];
12715 unsigned char add_str[128];
12716 unsigned char tag_str[128];
12717 unsigned char output[128];
12718 unsigned char tag_output[16];
12720 unsigned int key_len;
12721 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
12723 memset(key_str, 0x00, 128);
12724 memset(src_str, 0x00, 128);
12725 memset(dst_str, 0x00, 257);
12726 memset(iv_str, 0x00, 128);
12727 memset(add_str, 0x00, 128);
12728 memset(tag_str, 0x00, 128);
12729 memset(output, 0x00, 128);
12730 memset(tag_output, 0x00, 16);
12732 key_len =
unhexify( key_str,
"83182ba753ac16554e873281599113b7620bdb042704bce8" );
12733 pt_len =
unhexify( src_str,
"6915d46189fcb0f9ab9b838da2124ce06398d638fec9c1c53f07a43fa0ea09feb2bf868fd1dd521f301f9f38e2e76716038f34cc0d18ab9bf27ac282dc349002427ca774e211027baacb9f6bfad6fd7885a665e508f654bb018f0323215153cd3a5b3e7b83482c08cf07ee5ef91d64a671b3ef22801ff21cfae95d6843ccdc16" );
12734 iv_len =
unhexify( iv_str,
"805c6b736d62f69a4c2cd4aa3745a615" );
12735 add_len =
unhexify( add_str,
"" );
12737 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
12740 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
12741 hexify( dst_str, output, pt_len );
12742 hexify( tag_str, tag_output, tag_len );
12744 fct_chk( strcmp( (
char *) dst_str,
"76dcefca6305ded697be4488513cc3fd3d9f08f06a7c1a9133b9b3fb0f44badf5c7544881b5babcb873cab912cc8a00337fc36100e6a5ad998eac5d8568795b41166377c5114757044b9b73206d19fc34b6378a06d55b5d5e9498c7693e818dd962af9b9da2345f4ebf152f33fe85f3398a65ad7dec823a1b1155c38cf67df84" ) == 0 );
12745 fct_chk( strcmp( (
char *) tag_str,
"746c9972aa8481253d0d54db77398a" ) == 0 );
12751 FCT_TEST_BGN(gcm_nist_validation_aes_19212810240120_1)
12753 unsigned char key_str[128];
12754 unsigned char src_str[128];
12755 unsigned char dst_str[257];
12756 unsigned char iv_str[128];
12757 unsigned char add_str[128];
12758 unsigned char tag_str[128];
12759 unsigned char output[128];
12760 unsigned char tag_output[16];
12762 unsigned int key_len;
12763 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
12765 memset(key_str, 0x00, 128);
12766 memset(src_str, 0x00, 128);
12767 memset(dst_str, 0x00, 257);
12768 memset(iv_str, 0x00, 128);
12769 memset(add_str, 0x00, 128);
12770 memset(tag_str, 0x00, 128);
12771 memset(output, 0x00, 128);
12772 memset(tag_output, 0x00, 16);
12774 key_len =
unhexify( key_str,
"b176e7a68da4c74aeb91760448c0257b1e17101299e1405c" );
12775 pt_len =
unhexify( src_str,
"691c436811f82e747468571f80fa8502ef5f25936fca58a8fb6b619a7a95f4938da558a3b26a2f09c8fc1f5bd347c7724d9fa377d0a52094bfaac88f3fa9b3dacc2f56d880e825809533da5980a63e01d6199fbea07f3d070e29c5d50e1013224f0ea86e7c008e3a2e63df394ef6ad93ea97d73fd4429feee495b144ef3a0d6c" );
12776 iv_len =
unhexify( iv_str,
"42e2e70b0096ebd489bfcf4d6ac0f2a4" );
12777 add_len =
unhexify( add_str,
"" );
12779 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
12782 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
12783 hexify( dst_str, output, pt_len );
12784 hexify( tag_str, tag_output, tag_len );
12786 fct_chk( strcmp( (
char *) dst_str,
"81f9c34c5b0668fd58ec8822c6ba75bd7eb0d1741260fad6ad5e637903aa29d5f5facaccb4b885f62e10b7371f9b6b43e3aeb69bc5093bcccd49f3ee744e49f87cd2a2c36c808c47e4687194cbfd4faec4da66b99e3d4ced9cb8ac6ffb94d7fef3ae2b92b9f613f2bda3ca6c8efa9c6df8bec998e455f6eb48519e8f8ce4e526" ) == 0 );
12787 fct_chk( strcmp( (
char *) tag_str,
"26d0921dbb7987ef4eb428c04a583d" ) == 0 );
12793 FCT_TEST_BGN(gcm_nist_validation_aes_19212810240120_2)
12795 unsigned char key_str[128];
12796 unsigned char src_str[128];
12797 unsigned char dst_str[257];
12798 unsigned char iv_str[128];
12799 unsigned char add_str[128];
12800 unsigned char tag_str[128];
12801 unsigned char output[128];
12802 unsigned char tag_output[16];
12804 unsigned int key_len;
12805 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
12807 memset(key_str, 0x00, 128);
12808 memset(src_str, 0x00, 128);
12809 memset(dst_str, 0x00, 257);
12810 memset(iv_str, 0x00, 128);
12811 memset(add_str, 0x00, 128);
12812 memset(tag_str, 0x00, 128);
12813 memset(output, 0x00, 128);
12814 memset(tag_output, 0x00, 16);
12816 key_len =
unhexify( key_str,
"8bab5bf1cd8f259129ce358cc56ace2bbbbaefa79727f66e" );
12817 pt_len =
unhexify( src_str,
"57385955b9909a0856bf54ad25d00779cd7d3dea78e1ae8965c4b7a568934d15ba1a7b2ab899f69fb1b864bd4d529319b51bf85a9b63de9cd51997ee4b2f015307cc42be9257e1b0a84e1c9e55a370476bff0a5325b21850f5b686a3bd4f1599f36d0772c406047b8ef29245c42ade862cb9d25b1e108db4f33a42dccf45c985" );
12818 iv_len =
unhexify( iv_str,
"ca5beea7dac2d9d24d548463977d5956" );
12819 add_len =
unhexify( add_str,
"" );
12821 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
12824 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
12825 hexify( dst_str, output, pt_len );
12826 hexify( tag_str, tag_output, tag_len );
12828 fct_chk( strcmp( (
char *) dst_str,
"67deff1accc4f279ec2eb4c2a515c17886371bc4847bdaff4aa70e170775b64855a6fb0d347baf39bb53d7239b7a63ce451effc69e8d8c3e544b77c75170a68cbc45dc96ad238aabeb5ebec159f38089b08dfbbe94e1d3934a95bd70f0b799fd84a8f563d629a5bfbb4eb3d4886b04e7dba5137d9255268dac36cbb5b5c8d35a" ) == 0 );
12829 fct_chk( strcmp( (
char *) tag_str,
"f212eaad0e2616a02c1ec475c039e0" ) == 0 );
12835 FCT_TEST_BGN(gcm_nist_validation_aes_19212810240112_0)
12837 unsigned char key_str[128];
12838 unsigned char src_str[128];
12839 unsigned char dst_str[257];
12840 unsigned char iv_str[128];
12841 unsigned char add_str[128];
12842 unsigned char tag_str[128];
12843 unsigned char output[128];
12844 unsigned char tag_output[16];
12846 unsigned int key_len;
12847 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
12849 memset(key_str, 0x00, 128);
12850 memset(src_str, 0x00, 128);
12851 memset(dst_str, 0x00, 257);
12852 memset(iv_str, 0x00, 128);
12853 memset(add_str, 0x00, 128);
12854 memset(tag_str, 0x00, 128);
12855 memset(output, 0x00, 128);
12856 memset(tag_output, 0x00, 16);
12858 key_len =
unhexify( key_str,
"bd0e0d0c7907bdb4b4e60510f73d8ab2a30700349206ce22" );
12859 pt_len =
unhexify( src_str,
"e6835a650047033a4940f72029857fae6fff2773f2aa0e4f7cb0a4abe86b6e8cb0c3e468637057f7eb20d1d30723e3c3107d0f579e31a4c3e6fa8133e1b1b51fd21a8aa80ec657c4f674c032bc4a2d3e1389cb877883317c4451ab90692337bd8aa6e9312388a0acddb508fa477cc30eb33a886e8fbced97492c9d3733cf3fc2" );
12860 iv_len =
unhexify( iv_str,
"1f183eea676c7ed2ead9a31928f4df5c" );
12861 add_len =
unhexify( add_str,
"" );
12863 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
12866 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
12867 hexify( dst_str, output, pt_len );
12868 hexify( tag_str, tag_output, tag_len );
12870 fct_chk( strcmp( (
char *) dst_str,
"9f1a3017d16024dbfea4ba9df5154a6a2c794f00da070043c17f0204f06f637c8fffc760424187dce4fef044faccadefa1b1bd818522915e389d307caa481af0f1f767c38216fa048f621d46880afca5c8fc582853dec95d19d19cc943e9a1861597c99041c59e8bf8e7245f9e30b1f6607843a978d0ae7a4e0f716dabc9d9f6" ) == 0 );
12871 fct_chk( strcmp( (
char *) tag_str,
"4ceea20bf9616eb73cac15fe7e2f" ) == 0 );
12877 FCT_TEST_BGN(gcm_nist_validation_aes_19212810240112_1)
12879 unsigned char key_str[128];
12880 unsigned char src_str[128];
12881 unsigned char dst_str[257];
12882 unsigned char iv_str[128];
12883 unsigned char add_str[128];
12884 unsigned char tag_str[128];
12885 unsigned char output[128];
12886 unsigned char tag_output[16];
12888 unsigned int key_len;
12889 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
12891 memset(key_str, 0x00, 128);
12892 memset(src_str, 0x00, 128);
12893 memset(dst_str, 0x00, 257);
12894 memset(iv_str, 0x00, 128);
12895 memset(add_str, 0x00, 128);
12896 memset(tag_str, 0x00, 128);
12897 memset(output, 0x00, 128);
12898 memset(tag_output, 0x00, 16);
12900 key_len =
unhexify( key_str,
"d59c476dcef60a45be253d5cfbb24742de9e3879bdfe6949" );
12901 pt_len =
unhexify( src_str,
"144696d85126c682f8446fcc2724fabe4b8840d46f3de6ae2ceacb2f06a1a80fed430e3a0242f4f7c308611c802c8b8e9c992b78a5cf401fe7a4671bf081f97520919f02b66e8bffd4fe3f4a69cf3d16667e7724890cc4b66c6ae487d2d987bfacec424fdc9865af4474b04cce03fffc828b2df66d99087e63f35eca52abe864" );
12902 iv_len =
unhexify( iv_str,
"9bca808f02295477f2aa7f6ac1a7bfe5" );
12903 add_len =
unhexify( add_str,
"" );
12905 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
12908 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
12909 hexify( dst_str, output, pt_len );
12910 hexify( tag_str, tag_output, tag_len );
12912 fct_chk( strcmp( (
char *) dst_str,
"9d23989edd8dd9911a3f5a80de051ec7812c6ce018e683751380ff990a079f3502ec0fabfcdacf6c1fb2503094124c39ec531b5d29ee8e4e46c324fc10dbe0f31e9aa56522bcc7085ccf768425227cbab6db4127671a4cab7bc65dc1d3d9d81469493329e29a9a1cb7e5e088e84eb243493cdf1a49b16fc8d4ea2f142aa9ad23" ) == 0 );
12913 fct_chk( strcmp( (
char *) tag_str,
"d8b20d72d95a44dfb899bc6aea25" ) == 0 );
12919 FCT_TEST_BGN(gcm_nist_validation_aes_19212810240112_2)
12921 unsigned char key_str[128];
12922 unsigned char src_str[128];
12923 unsigned char dst_str[257];
12924 unsigned char iv_str[128];
12925 unsigned char add_str[128];
12926 unsigned char tag_str[128];
12927 unsigned char output[128];
12928 unsigned char tag_output[16];
12930 unsigned int key_len;
12931 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
12933 memset(key_str, 0x00, 128);
12934 memset(src_str, 0x00, 128);
12935 memset(dst_str, 0x00, 257);
12936 memset(iv_str, 0x00, 128);
12937 memset(add_str, 0x00, 128);
12938 memset(tag_str, 0x00, 128);
12939 memset(output, 0x00, 128);
12940 memset(tag_output, 0x00, 16);
12942 key_len =
unhexify( key_str,
"2f1594e840375405a682dbc1836344be8c6b3f3199ee7fd6" );
12943 pt_len =
unhexify( src_str,
"9bc6b715c65347a383f77000b3efb33b16019d01605159e09c116ded52d20721bcdde3796b6f4dc33cb29ce1c48438e95d4db6102465440cecaa50ca33ebce470d8986663652e069079f9d92ff167b3f7ae568218fc62ff5a7be50b3b987dab4fc7979e5967bb0574de4bc51e774ba05f9780a49ac7b3ea46fdf35804e740812" );
12944 iv_len =
unhexify( iv_str,
"7f1f4a80210bcc243877fccd3e7cd42e" );
12945 add_len =
unhexify( add_str,
"" );
12947 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
12950 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
12951 hexify( dst_str, output, pt_len );
12952 hexify( tag_str, tag_output, tag_len );
12954 fct_chk( strcmp( (
char *) dst_str,
"773d6901ea64d6840ded9a05a7351c0c74737ad27e7c3dbd38dedcdede94722ae67e88851ee471aefc1f80b29a7312fa2a6f178ef2c9dde729717977e85783e2e49a1fa2e847d830fac181e95fe30077b338b9ac5d2cfa22ff9348a0771054322bc717343b9a686dafda02d6354cf9b53c932da1712b9bb352b2380de3208530" ) == 0 );
12955 fct_chk( strcmp( (
char *) tag_str,
"fc3e0ca7de8fb79eb6851b7bca16" ) == 0 );
12961 FCT_TEST_BGN(gcm_nist_validation_aes_19212810240104_0)
12963 unsigned char key_str[128];
12964 unsigned char src_str[128];
12965 unsigned char dst_str[257];
12966 unsigned char iv_str[128];
12967 unsigned char add_str[128];
12968 unsigned char tag_str[128];
12969 unsigned char output[128];
12970 unsigned char tag_output[16];
12972 unsigned int key_len;
12973 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
12975 memset(key_str, 0x00, 128);
12976 memset(src_str, 0x00, 128);
12977 memset(dst_str, 0x00, 257);
12978 memset(iv_str, 0x00, 128);
12979 memset(add_str, 0x00, 128);
12980 memset(tag_str, 0x00, 128);
12981 memset(output, 0x00, 128);
12982 memset(tag_output, 0x00, 16);
12984 key_len =
unhexify( key_str,
"88a6d441c1b7472aecf92c294f56f3c1da1702d174eff431" );
12985 pt_len =
unhexify( src_str,
"eecc12fbd00c636a7ff897c244593239d2dbca9d1f370660c9bf9759cc41dc6e95075516f8d7fc06fa91ff68701777725171c2dc0767a1953fac13008d77065cce8ee329283d3f64adb8a298aa100c42e75d62e47fbf5134a21b826fcc89ebb18707c0f4d54f6e93220484706a23a737341c601b56f6a28cc8659da56b6b51b1" );
12986 iv_len =
unhexify( iv_str,
"058a37eaee052daf7d1cd0e618f69a6c" );
12987 add_len =
unhexify( add_str,
"" );
12989 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
12992 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
12993 hexify( dst_str, output, pt_len );
12994 hexify( tag_str, tag_output, tag_len );
12996 fct_chk( strcmp( (
char *) dst_str,
"0f5e889deff370810ed2911f349481dfb34e8a9623abd657a9a2dc14df43dc8917451ddeee5f967af832296b148d6a5d267be4443e54cef2e21c06da74f9a614cf29ead3ca4f267068716a9fd208aefa6a9f4a8a40deee8c9fa7da76a70fcb4e6db8abc566ccdf97688aaad1a889ac505792b5ede95c57422dfec785c5e471b0" ) == 0 );
12997 fct_chk( strcmp( (
char *) tag_str,
"5fa75148886e255a4833850d7f" ) == 0 );
13003 FCT_TEST_BGN(gcm_nist_validation_aes_19212810240104_1)
13005 unsigned char key_str[128];
13006 unsigned char src_str[128];
13007 unsigned char dst_str[257];
13008 unsigned char iv_str[128];
13009 unsigned char add_str[128];
13010 unsigned char tag_str[128];
13011 unsigned char output[128];
13012 unsigned char tag_output[16];
13014 unsigned int key_len;
13015 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
13017 memset(key_str, 0x00, 128);
13018 memset(src_str, 0x00, 128);
13019 memset(dst_str, 0x00, 257);
13020 memset(iv_str, 0x00, 128);
13021 memset(add_str, 0x00, 128);
13022 memset(tag_str, 0x00, 128);
13023 memset(output, 0x00, 128);
13024 memset(tag_output, 0x00, 16);
13026 key_len =
unhexify( key_str,
"abb4c4f8d3c44f07d5a57acba6ccf7852030daa84d09e13a" );
13027 pt_len =
unhexify( src_str,
"24d82903e5074beb9a769f24a99b18c7b53c160a3c3ae4065335bec1c4170aa4c656bd7c87a8a13c0ffc6653c045445bf8a135d25a13b2d44a32c219adc6ea2695fb9e8c65f3c454dc0e2772f4a4ce51ff62ad34064b31b0f664f635de0c46530c966b54e8a081042309afb8cf1f337625fa27c0cc9e628c4ae402cbf57b813a" );
13028 iv_len =
unhexify( iv_str,
"c9489a51152eec2f8f1699f733dc98f5" );
13029 add_len =
unhexify( add_str,
"" );
13031 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
13034 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
13035 hexify( dst_str, output, pt_len );
13036 hexify( tag_str, tag_output, tag_len );
13038 fct_chk( strcmp( (
char *) dst_str,
"3e5528ab16aed5be8d016fe07f2ff7ac4d393439c4fe0d55437a68967d685815e359fdb8f77d68241940ce7b1947c5a98f515216254ac29977cc2a591fc8e580241442d08facbdbee9a9ff7cfbde7004346772b4607dafb91c8f66f712abee557d3da675bb3130e978a1e692fa75236676b9205341ead5277cc306f05e4eaea0" ) == 0 );
13039 fct_chk( strcmp( (
char *) tag_str,
"fecca951ba45f5a7829be8421e" ) == 0 );
13045 FCT_TEST_BGN(gcm_nist_validation_aes_19212810240104_2)
13047 unsigned char key_str[128];
13048 unsigned char src_str[128];
13049 unsigned char dst_str[257];
13050 unsigned char iv_str[128];
13051 unsigned char add_str[128];
13052 unsigned char tag_str[128];
13053 unsigned char output[128];
13054 unsigned char tag_output[16];
13056 unsigned int key_len;
13057 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
13059 memset(key_str, 0x00, 128);
13060 memset(src_str, 0x00, 128);
13061 memset(dst_str, 0x00, 257);
13062 memset(iv_str, 0x00, 128);
13063 memset(add_str, 0x00, 128);
13064 memset(tag_str, 0x00, 128);
13065 memset(output, 0x00, 128);
13066 memset(tag_output, 0x00, 16);
13068 key_len =
unhexify( key_str,
"cbce5e6d0fdcd3ab08ccd86115149b5569584dfadf40256d" );
13069 pt_len =
unhexify( src_str,
"3974339a1b90b19fd3857d812a0e59dcf43f9b0f360839940b99834ddedead79785396ab8fd0fc0e523c06f0555371fd5bc857a95c3ead26536e6deb1faabdc776ac7cfec4b60d9c24b0856ecf381efd98f941d5b2a38108922d9cf1113d1e484354b55f9c0f09d95a77fd30ec9cc04d19199931e187c56fd231f96fce5e1eb4" );
13070 iv_len =
unhexify( iv_str,
"ae3a25be73876b6e9dc88573d617653a" );
13071 add_len =
unhexify( add_str,
"" );
13073 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
13076 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
13077 hexify( dst_str, output, pt_len );
13078 hexify( tag_str, tag_output, tag_len );
13080 fct_chk( strcmp( (
char *) dst_str,
"4f57be0de00ca2c7c52c54b931c235fecb4ee1e5a30e29bf68f57248bafad87e484cc68465d9f64bbf502cefd2c84e5596c3c8e58a9fb51a8c8b132579a94bc32e92f7c7247dc5f69fda98727c423de5430f01b37d77e3ae6bcd06eaf5625e5c7c9c228b9dca5aad8f571369fe0964731bf1f143f2f709c7ed51641ecfc88ebc" ) == 0 );
13081 fct_chk( strcmp( (
char *) tag_str,
"33375e21fd8df9f0196198b4b1" ) == 0 );
13087 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024096_0)
13089 unsigned char key_str[128];
13090 unsigned char src_str[128];
13091 unsigned char dst_str[257];
13092 unsigned char iv_str[128];
13093 unsigned char add_str[128];
13094 unsigned char tag_str[128];
13095 unsigned char output[128];
13096 unsigned char tag_output[16];
13098 unsigned int key_len;
13099 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
13101 memset(key_str, 0x00, 128);
13102 memset(src_str, 0x00, 128);
13103 memset(dst_str, 0x00, 257);
13104 memset(iv_str, 0x00, 128);
13105 memset(add_str, 0x00, 128);
13106 memset(tag_str, 0x00, 128);
13107 memset(output, 0x00, 128);
13108 memset(tag_output, 0x00, 16);
13110 key_len =
unhexify( key_str,
"96779eaa8699469e2a3bfae8a03fd4bff7abc62d427ff985" );
13111 pt_len =
unhexify( src_str,
"a343fd32fc513e0e9772acbf99feafe9de4b54e404807999b02e921e0914b2d64d0d402ef06f31e1db852899fb6db231ad4465af015b0c16407fa3666ef5c2a6d52d5b4f60b0f7fbcb13574b2aa5183393f3a91b455a85b3ed99d619bc9c5c2dbcc4f0a61a7b03e5ab98a99cee086be408ce394203f02d6d23a1e75df44a4a20" );
13112 iv_len =
unhexify( iv_str,
"cd7dca2969872581d51b24af40f22c6f" );
13113 add_len =
unhexify( add_str,
"" );
13115 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
13118 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
13119 hexify( dst_str, output, pt_len );
13120 hexify( tag_str, tag_output, tag_len );
13122 fct_chk( strcmp( (
char *) dst_str,
"74422abbde6e4ab674025735874d95d9fe3015620a8f748dbed63ef0e2271063b6c0d65e00d41bcf4ea86ac8b922b4d475f904c0724f0adebc2eef4a3abd0f9efd75408cc054cbd400436e0545e09e6b0bc83a9c7d1c1717589d180c7b1d4fe4ca18bde4d9b6bc98481b7971c7eb81c391ac4dd79cdefeabb5bbc210d914d30c" ) == 0 );
13123 fct_chk( strcmp( (
char *) tag_str,
"b0e425435fd2c8a911808ba5" ) == 0 );
13129 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024096_1)
13131 unsigned char key_str[128];
13132 unsigned char src_str[128];
13133 unsigned char dst_str[257];
13134 unsigned char iv_str[128];
13135 unsigned char add_str[128];
13136 unsigned char tag_str[128];
13137 unsigned char output[128];
13138 unsigned char tag_output[16];
13140 unsigned int key_len;
13141 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
13143 memset(key_str, 0x00, 128);
13144 memset(src_str, 0x00, 128);
13145 memset(dst_str, 0x00, 257);
13146 memset(iv_str, 0x00, 128);
13147 memset(add_str, 0x00, 128);
13148 memset(tag_str, 0x00, 128);
13149 memset(output, 0x00, 128);
13150 memset(tag_output, 0x00, 16);
13152 key_len =
unhexify( key_str,
"39bfb4cf533d71c02932e1cd7b800dca9ce9bca843886962" );
13153 pt_len =
unhexify( src_str,
"de76f63ecf9c8d4643599f4dc3f9ed837924915ce4216759013cdb46daa0a508e06bcdb77437b0a58c40a0bd30a05ca41433218c6869f1ecd26318aff27999a2ebbb651de8e03061b8ffe3e14060720eb35a8e4dfd8c870aa4562291e3758cc1ea6c4b0fafcf210e10b31f8521bb0f6b29e8450b0cd6f8c8196ca2f7acb807a3" );
13154 iv_len =
unhexify( iv_str,
"d2b937bb5d2ea7d54d2b96826433f297" );
13155 add_len =
unhexify( add_str,
"" );
13157 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
13160 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
13161 hexify( dst_str, output, pt_len );
13162 hexify( tag_str, tag_output, tag_len );
13164 fct_chk( strcmp( (
char *) dst_str,
"0b0b4c92f06b17103ed581fb32d46e874fea2a2171d32aac331daa4d6c863f844fbbad72e455cd5a3ef941d8cf667fed5855da6df0ccd0c61d99b2e40a0d697368138be510a2bf2e08a7648850d2410e4a179a6d0193e49a135524092ab1f842ed4057611daaeb93e7aa46e5618b354a1091a9e77fb92a8c3c0e8e017f72deb3" ) == 0 );
13165 fct_chk( strcmp( (
char *) tag_str,
"a188107e506c91484e632229" ) == 0 );
13171 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024096_2)
13173 unsigned char key_str[128];
13174 unsigned char src_str[128];
13175 unsigned char dst_str[257];
13176 unsigned char iv_str[128];
13177 unsigned char add_str[128];
13178 unsigned char tag_str[128];
13179 unsigned char output[128];
13180 unsigned char tag_output[16];
13182 unsigned int key_len;
13183 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
13185 memset(key_str, 0x00, 128);
13186 memset(src_str, 0x00, 128);
13187 memset(dst_str, 0x00, 257);
13188 memset(iv_str, 0x00, 128);
13189 memset(add_str, 0x00, 128);
13190 memset(tag_str, 0x00, 128);
13191 memset(output, 0x00, 128);
13192 memset(tag_output, 0x00, 16);
13194 key_len =
unhexify( key_str,
"41b7d80ae487ac35aa498e5939a0f27baeedf48a494c8e91" );
13195 pt_len =
unhexify( src_str,
"c26d4b918a0c967141fb5712a28698d16640d200b2934187b81ec58486b706ea1caaeb654e5fbbc0d078215aceed7d66939e0fb54d6131d8948cf58ec9571646ca75a051c2b5c98fe16f7733d42e5897b0263272015042f3134143ea3b08bc65292d8d31f30f2ed9830ccbfca2d33d290c28f4dad07c7137a4ca05f432a457c2" );
13196 iv_len =
unhexify( iv_str,
"626e1d936b38cf9c4c3a44ee669936ed" );
13197 add_len =
unhexify( add_str,
"" );
13199 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
13202 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
13203 hexify( dst_str, output, pt_len );
13204 hexify( tag_str, tag_output, tag_len );
13206 fct_chk( strcmp( (
char *) dst_str,
"8998e799985890d0f7e8b0fc12a8a9c63171e456ef5cb211f836a2dc7c9e3f4d1cd6280f9b0c469b703c55876b57cd1d8cef70dc745e3af8438d878cb2fe9fb1c5b2d9a2d90edf3bc5702ef3630d316574c07b5629f0db1510460af8e537dcf28d9c5b5cec6996eaa3dcde3354e39f60d5d896d8bb92718a758adb5cb9cc17d5" ) == 0 );
13207 fct_chk( strcmp( (
char *) tag_str,
"69901cbafe637de5963e7331" ) == 0 );
13213 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024064_0)
13215 unsigned char key_str[128];
13216 unsigned char src_str[128];
13217 unsigned char dst_str[257];
13218 unsigned char iv_str[128];
13219 unsigned char add_str[128];
13220 unsigned char tag_str[128];
13221 unsigned char output[128];
13222 unsigned char tag_output[16];
13224 unsigned int key_len;
13225 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
13227 memset(key_str, 0x00, 128);
13228 memset(src_str, 0x00, 128);
13229 memset(dst_str, 0x00, 257);
13230 memset(iv_str, 0x00, 128);
13231 memset(add_str, 0x00, 128);
13232 memset(tag_str, 0x00, 128);
13233 memset(output, 0x00, 128);
13234 memset(tag_output, 0x00, 16);
13236 key_len =
unhexify( key_str,
"2ecce8fb50a28a085af744b44bc0ea59d6bc2c8ff1f2ff8e" );
13237 pt_len =
unhexify( src_str,
"54300bfd55b227b4758cf64d8a3f56cb49b436adb4b927afa8c4b70d2584a6cba425af4fbc3840dd6f2e313f793cbc7aca8219f171c809cf1eb9b4ae8a9d0cf1a7aa203d38d67cf7719ce2248d751e8605548118e5bb9ce364349944a2205e1b77137270b83555d5d804edba2f74400f26d2d0d28eb29d7beb91e80ad66b60be" );
13238 iv_len =
unhexify( iv_str,
"b7e43d859697efe6681e8d0c66096d50" );
13239 add_len =
unhexify( add_str,
"" );
13241 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
13244 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
13245 hexify( dst_str, output, pt_len );
13246 hexify( tag_str, tag_output, tag_len );
13248 fct_chk( strcmp( (
char *) dst_str,
"45dac078c05e6a2c480543d406c23f3dda63f2b616007d08fbfb075a90eefab8dfbc26d334266f5d72fbc52800cf457f2bbc8062a895f75e86df7b8d87112386c9bad85573431ccfcef6a5e96d717fc37b08673bf4a5eecedf1a8215a8538e1ddb11d31a24cb1497c7b5ba380576acb9d641d71412a675f29d7abd750d84dfd1" ) == 0 );
13249 fct_chk( strcmp( (
char *) tag_str,
"2dfe162c577dc410" ) == 0 );
13255 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024064_1)
13257 unsigned char key_str[128];
13258 unsigned char src_str[128];
13259 unsigned char dst_str[257];
13260 unsigned char iv_str[128];
13261 unsigned char add_str[128];
13262 unsigned char tag_str[128];
13263 unsigned char output[128];
13264 unsigned char tag_output[16];
13266 unsigned int key_len;
13267 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
13269 memset(key_str, 0x00, 128);
13270 memset(src_str, 0x00, 128);
13271 memset(dst_str, 0x00, 257);
13272 memset(iv_str, 0x00, 128);
13273 memset(add_str, 0x00, 128);
13274 memset(tag_str, 0x00, 128);
13275 memset(output, 0x00, 128);
13276 memset(tag_output, 0x00, 16);
13278 key_len =
unhexify( key_str,
"6773e627f6c49a1687a3a75d2ee6754ebfc2628bdfceba28" );
13279 pt_len =
unhexify( src_str,
"eb0a64ad510968c68a816550d9fe2eccab3bd8409ab5a685a8638f81b4b50a9a96318bff4e86f7f6e9076960be8eef60e72cee4ea81f3ba269d8ab4c9581a54638421520a6411a83e9dc83b6981a9dcdd9e4a367d57f156d131cf385c01a736b327218e6b6468d317ff78a01f1588c359a3a9b188bbe5d3ffad6b57483a976d0" );
13280 iv_len =
unhexify( iv_str,
"ad85becb03a05caa4533b88940ca141a" );
13281 add_len =
unhexify( add_str,
"" );
13283 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
13286 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
13287 hexify( dst_str, output, pt_len );
13288 hexify( tag_str, tag_output, tag_len );
13290 fct_chk( strcmp( (
char *) dst_str,
"959658fdff5fd802fca5c5a79d59536ba8ef1359ac7bfff81264c7827bd31b8f02ecb54f309b442a54a5a57c588ace4b49463f030b325880e7e334b43ab6a2fce469907055e548caffa2fe4679edbe291377c16c7096a48aef5659ad37702aed774188cb4426c3b727878755d683ed8c163a98a05f069a0a3c22085600759170" ) == 0 );
13291 fct_chk( strcmp( (
char *) tag_str,
"4c0f4621b04b5667" ) == 0 );
13297 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024064_2)
13299 unsigned char key_str[128];
13300 unsigned char src_str[128];
13301 unsigned char dst_str[257];
13302 unsigned char iv_str[128];
13303 unsigned char add_str[128];
13304 unsigned char tag_str[128];
13305 unsigned char output[128];
13306 unsigned char tag_output[16];
13308 unsigned int key_len;
13309 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
13311 memset(key_str, 0x00, 128);
13312 memset(src_str, 0x00, 128);
13313 memset(dst_str, 0x00, 257);
13314 memset(iv_str, 0x00, 128);
13315 memset(add_str, 0x00, 128);
13316 memset(tag_str, 0x00, 128);
13317 memset(output, 0x00, 128);
13318 memset(tag_output, 0x00, 16);
13320 key_len =
unhexify( key_str,
"1c086f7404c14160f33d6efde231eda610f92fa55ac147b4" );
13321 pt_len =
unhexify( src_str,
"fc8e5cd81755e489de7e3ddd2b587149ee013bffa2ce198c514641b0e1659261edd60bdbfd873e30e399869748bfe56ba543ceb9bf5fd0e7ba2b4dc175c52f28a8a02b4816f2056648e90faf654368c64f54fd50b41ea7ca199d766728980e2ebd11246c28cfc9a0a1e11cf0df7765819af23c70f920c3efb5e2663949aaa301" );
13322 iv_len =
unhexify( iv_str,
"71f154f1dc19bae34b58f3d160bb432a" );
13323 add_len =
unhexify( add_str,
"" );
13325 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
13328 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
13329 hexify( dst_str, output, pt_len );
13330 hexify( tag_str, tag_output, tag_len );
13332 fct_chk( strcmp( (
char *) dst_str,
"6d60da2fd060d2aec35faf989d8df33f2413ba14842b0406e38a6a847e191eac9f4570cea647c3988faaa5505ea20f99132df2a8799cf0543e204962da1fd4f60523d7149e0dee77c16590d7e114ac5d8f88fa371dcdd254eccaa8316ee922ba23a0a07b289739413ddffc2c709c391afee9289252ddf3ddb62a4532a5515e35" ) == 0 );
13333 fct_chk( strcmp( (
char *) tag_str,
"f47bae6488f038fe" ) == 0 );
13339 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024032_0)
13341 unsigned char key_str[128];
13342 unsigned char src_str[128];
13343 unsigned char dst_str[257];
13344 unsigned char iv_str[128];
13345 unsigned char add_str[128];
13346 unsigned char tag_str[128];
13347 unsigned char output[128];
13348 unsigned char tag_output[16];
13350 unsigned int key_len;
13351 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
13353 memset(key_str, 0x00, 128);
13354 memset(src_str, 0x00, 128);
13355 memset(dst_str, 0x00, 257);
13356 memset(iv_str, 0x00, 128);
13357 memset(add_str, 0x00, 128);
13358 memset(tag_str, 0x00, 128);
13359 memset(output, 0x00, 128);
13360 memset(tag_output, 0x00, 16);
13362 key_len =
unhexify( key_str,
"bae1b3eef91ba79032117c60fb847d46f18175565d0ed10c" );
13363 pt_len =
unhexify( src_str,
"9b71eeccdc91cb5f7a567a9189774f4c30d96477b88ac553df66b78a56e5c9e0986a17d80c811116d31985acfbf9d7a9bed291aa2fb6329457a836b3f8f11c16416f0a3b86dd9c717c8a050c6ceb5c27d8e2ee0dbe63f3e1e4f0aff4809e1f6f6ed64d31d494b7399cfa0dd9446321bd4256a49d0793a10a670e3f086408428e" );
13364 iv_len =
unhexify( iv_str,
"cec8b66a657e4bdf693f48ac52e60770" );
13365 add_len =
unhexify( add_str,
"" );
13367 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
13370 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
13371 hexify( dst_str, output, pt_len );
13372 hexify( tag_str, tag_output, tag_len );
13374 fct_chk( strcmp( (
char *) dst_str,
"015a318acb6198189ce908ab1af28578a37a48beeed772c6ed4dceb0a3bcb092df85f653234c56a25c075c8e028d4a8d90d974fb0477834ae2de8d5df53d0d03a979450b6e7a66fdc9b11f879ea9072699837f2de7192156f8e5d9411fd83d97d31fe63ece4e4326ff50a24fc75004a5ba2bd4845b29e0794696943dff1e5d6e" ) == 0 );
13375 fct_chk( strcmp( (
char *) tag_str,
"9cf6f90a" ) == 0 );
13381 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024032_1)
13383 unsigned char key_str[128];
13384 unsigned char src_str[128];
13385 unsigned char dst_str[257];
13386 unsigned char iv_str[128];
13387 unsigned char add_str[128];
13388 unsigned char tag_str[128];
13389 unsigned char output[128];
13390 unsigned char tag_output[16];
13392 unsigned int key_len;
13393 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
13395 memset(key_str, 0x00, 128);
13396 memset(src_str, 0x00, 128);
13397 memset(dst_str, 0x00, 257);
13398 memset(iv_str, 0x00, 128);
13399 memset(add_str, 0x00, 128);
13400 memset(tag_str, 0x00, 128);
13401 memset(output, 0x00, 128);
13402 memset(tag_output, 0x00, 16);
13404 key_len =
unhexify( key_str,
"7c1582240ad301f831902c66334546dd681c12308add0870" );
13405 pt_len =
unhexify( src_str,
"d4b716b49858a23aad478581cbb6dfd015ae550d76497229b5b1776e83f2ded8542675c63ca6a007a204b497ed2ef71ca125d91f386be9b4213cd352a797a5d78a1373f00916bb993de14e1a0af67524acfcc9fd71daa32e5def9a3f2dab5b3bba4d2f9f2cfc5f52768b41157fe79d95229d0611944e8308ec76425a966b21ec" );
13406 iv_len =
unhexify( iv_str,
"b6f4f3959914df413b849d559dd43055" );
13407 add_len =
unhexify( add_str,
"" );
13409 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
13412 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
13413 hexify( dst_str, output, pt_len );
13414 hexify( tag_str, tag_output, tag_len );
13416 fct_chk( strcmp( (
char *) dst_str,
"79964f8775c78009bca1b218c03056b659e5382e25e43759c8adfa78aec48d70b32ffd56b230fc1ce8c21636a80a8c150e5dbb2bd3f51607d97ed097617963dc6e7653126fe40cb36a7f71051d77e4f3b768a85ee707c45d33cc67473f94c31da3e8b4c21859002331b5f7350e3e8f9806209255ceac7089176e9d6b70abd484" ) == 0 );
13417 fct_chk( strcmp( (
char *) tag_str,
"79e5a00b" ) == 0 );
13423 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024032_2)
13425 unsigned char key_str[128];
13426 unsigned char src_str[128];
13427 unsigned char dst_str[257];
13428 unsigned char iv_str[128];
13429 unsigned char add_str[128];
13430 unsigned char tag_str[128];
13431 unsigned char output[128];
13432 unsigned char tag_output[16];
13434 unsigned int key_len;
13435 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
13437 memset(key_str, 0x00, 128);
13438 memset(src_str, 0x00, 128);
13439 memset(dst_str, 0x00, 257);
13440 memset(iv_str, 0x00, 128);
13441 memset(add_str, 0x00, 128);
13442 memset(tag_str, 0x00, 128);
13443 memset(output, 0x00, 128);
13444 memset(tag_output, 0x00, 16);
13446 key_len =
unhexify( key_str,
"fd55a356943824d20630b1539627ad1a9dcd8ee2cb4dbf49" );
13447 pt_len =
unhexify( src_str,
"b8d8d6dd0631f9183ca858033a31dd583d3ee3b9510fcc69d8cd412016bf854b9edcf65c2831e63d72f4cb61a99f6f4e6dab0c2ce9c5a8cdbc179ae93aaca2c8a5b848a15309be9b34e5226aa9a5908f543fdda983fec02e4073edcc3985da5222b53f8c84b9c54c78dd8b2712b59209463595c7552e28f2a45f51cb882c0354" );
13448 iv_len =
unhexify( iv_str,
"aa89a122c68e997d0326984fa5bef805" );
13449 add_len =
unhexify( add_str,
"" );
13451 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
13454 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
13455 hexify( dst_str, output, pt_len );
13456 hexify( tag_str, tag_output, tag_len );
13458 fct_chk( strcmp( (
char *) dst_str,
"107a9ed561e6c45c375d31dea321c7b4a4b7641024d2c9eef6a103a750ba15e1acacbcae121510b4f56f19d29e6fb3e6fc06950b1daa521528f42284130a40e5a6c1b58b3b28003673511abcf59a4b9df1548a00f769d8681978b632f75e5da2cf21b499a24fbdd4f7efe053d4a1b20b240856d3ae27948e35098aa617def5bd" ) == 0 );
13459 fct_chk( strcmp( (
char *) tag_str,
"7f9c886a" ) == 0 );
13465 FCT_TEST_BGN(gcm_nist_validation_aes_19212810241024128_0)
13467 unsigned char key_str[128];
13468 unsigned char src_str[128];
13469 unsigned char dst_str[257];
13470 unsigned char iv_str[128];
13471 unsigned char add_str[128];
13472 unsigned char tag_str[128];
13473 unsigned char output[128];
13474 unsigned char tag_output[16];
13476 unsigned int key_len;
13477 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
13479 memset(key_str, 0x00, 128);
13480 memset(src_str, 0x00, 128);
13481 memset(dst_str, 0x00, 257);
13482 memset(iv_str, 0x00, 128);
13483 memset(add_str, 0x00, 128);
13484 memset(tag_str, 0x00, 128);
13485 memset(output, 0x00, 128);
13486 memset(tag_output, 0x00, 16);
13488 key_len =
unhexify( key_str,
"4cddc8f525640fc0a0875c65b788ea75c673f84f4aacaed4" );
13489 pt_len =
unhexify( src_str,
"55e3ccb855c1fd6d33e28d308485fd85abbd8ade1299936996851d44dde063ddc37962f9f67e95df02eaf3d877516240771c469be2abf2ef6c8dcbb79eb1976f825b109f752079957a7c981faa2fcea599cc52e262b84f4c2031821619f0be6fa3c38d660e9eb3e0d5de2da6b83de9866eb3efbc6a2dff27e52587c6f79e1c26" );
13490 iv_len =
unhexify( iv_str,
"1b883a89413f62dd6d507cd70c048855" );
13491 add_len =
unhexify( add_str,
"eeaf21bc317660b0e2afb9cd5bd450ff0bfa6cfa7e49edad600f71b971347e93b9712a6e895540c665a1d8338f61b51da9e0a4a9122409824287ba4bc06bdbba10290a40b31b5eae9dfeb6471f4a0a0c15c52a2c677c4d472630d4078ecf36dc6008faa0235a688ebbe2662e46a49b1dd58cbee82f285f3cdebda1dc54673195" );
13493 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
13496 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
13497 hexify( dst_str, output, pt_len );
13498 hexify( tag_str, tag_output, tag_len );
13500 fct_chk( strcmp( (
char *) dst_str,
"18d11513661296035f6f42d264e0b4cc7ec47f43b758c6dac95e5e3b3834362eb64447d923e107a60cd66ac359cf3a203f9070eab9fe61ae64a86606c9b50a97a19e12f731de28719fe178c9713edbb4525b221f656a340c867405c41bed3bbcb9c6da5cc6a4d37acd7a55f251a50fa15ea8f9b8955606eaa645c759ef2481e8" ) == 0 );
13501 fct_chk( strcmp( (
char *) tag_str,
"dec3edc19fd39f29e67c9e78211c71ce" ) == 0 );
13507 FCT_TEST_BGN(gcm_nist_validation_aes_19212810241024128_1)
13509 unsigned char key_str[128];
13510 unsigned char src_str[128];
13511 unsigned char dst_str[257];
13512 unsigned char iv_str[128];
13513 unsigned char add_str[128];
13514 unsigned char tag_str[128];
13515 unsigned char output[128];
13516 unsigned char tag_output[16];
13518 unsigned int key_len;
13519 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
13521 memset(key_str, 0x00, 128);
13522 memset(src_str, 0x00, 128);
13523 memset(dst_str, 0x00, 257);
13524 memset(iv_str, 0x00, 128);
13525 memset(add_str, 0x00, 128);
13526 memset(tag_str, 0x00, 128);
13527 memset(output, 0x00, 128);
13528 memset(tag_output, 0x00, 16);
13530 key_len =
unhexify( key_str,
"3b8c31830b1139a60425f6a34387f5ca2be6f5a5074adf13" );
13531 pt_len =
unhexify( src_str,
"95f4ea90729de0f0b890fdf697948053f656bddf57e3d461e7ee1770161904bb2cbc8c2f801481bb54145af760e91c8b30cb22faa87efcc6f01e3f798af0bd460475754726514d53f419af2f2c373c76f05bf57d3fc1b763f72ba0fd2682d9d1d76f6ce8d55b56fc7ba883fad94f59d502244804bb87bd06f1217a4a6c5055b5" );
13532 iv_len =
unhexify( iv_str,
"ab5bf317ad1d6bec9cac8bc520a37b1d" );
13533 add_len =
unhexify( add_str,
"5a47d7474be6c48fa4bdbb090f4b6da494f153a4c9c8561cae4fe883000b81769b46cd65f4ce34abc3e5c6880a21d12c186974b0c933a16ba33d511e79b5f994c38e383b93eea1259d38f9fb955480792206461dd29d6d3b8ff239ea6788c8e09c15be99f094d2d5980c6c1a8efe0f97f58f7725a972111daeb87d862a90a7d0" );
13535 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
13538 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
13539 hexify( dst_str, output, pt_len );
13540 hexify( tag_str, tag_output, tag_len );
13542 fct_chk( strcmp( (
char *) dst_str,
"1d0211d7d7bc891e4fba1ba7d47ac5a4f3b7ba49df69fcfde64bf8689b0eab379d2f5567fcff691836601b96c0a3b0ec14c03bc00e9682ef0043071507988cf1453603d2aa3dc9fa490cdb0dd263b12733adb4d68a098e1ccd27c92fe1bb82fa4a94f8a1cc045a975ac368e3224ba8f57800455cc4047901bba6bf67d6e41f94" ) == 0 );
13543 fct_chk( strcmp( (
char *) tag_str,
"23681228c722295c480397fc04c848a1" ) == 0 );
13549 FCT_TEST_BGN(gcm_nist_validation_aes_19212810241024128_2)
13551 unsigned char key_str[128];
13552 unsigned char src_str[128];
13553 unsigned char dst_str[257];
13554 unsigned char iv_str[128];
13555 unsigned char add_str[128];
13556 unsigned char tag_str[128];
13557 unsigned char output[128];
13558 unsigned char tag_output[16];
13560 unsigned int key_len;
13561 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
13563 memset(key_str, 0x00, 128);
13564 memset(src_str, 0x00, 128);
13565 memset(dst_str, 0x00, 257);
13566 memset(iv_str, 0x00, 128);
13567 memset(add_str, 0x00, 128);
13568 memset(tag_str, 0x00, 128);
13569 memset(output, 0x00, 128);
13570 memset(tag_output, 0x00, 16);
13572 key_len =
unhexify( key_str,
"9c2386b948f59ce651888451021772287f14a92d807d88a8" );
13573 pt_len =
unhexify( src_str,
"44f00c8a7c84e8207ec15a7be0b79c88fa347e2c3d5e8d07234536d86513bc39bebfff02efb9ff27280eb37f7e8a60a426538bc1e3830bca0e76faa33b30719fab51578d15df77893bce8740f50c491b8b9f1739a695c78406b5ee4d56f80d8d564b586b0f22ffa86eca46a9d8134a9507c5b9ad82757ec51b18741abc61f23b" );
13574 iv_len =
unhexify( iv_str,
"7a1f7d0be4c7f8869432cb8b13527670" );
13575 add_len =
unhexify( add_str,
"f76ea9d6e976616689709700a9638204e616f4c1c3a54a27fb0dc852990d81dfd6787aa5a83b9be5087d3f7dfcd522044911fa4186511de1957b80338025c6c4aa72058aa3160047cf42166aa0089e2ec1ac8ea6d9f5f2c057f9f838a72319dbd7bb4948da3bc87fc2036a0e7b5e8cee7f045463152ff80a1711ef1096e75463" );
13577 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
13580 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
13581 hexify( dst_str, output, pt_len );
13582 hexify( tag_str, tag_output, tag_len );
13584 fct_chk( strcmp( (
char *) dst_str,
"666c4d6d3f1bec49ba936eea90d864e8ecbe0ccc7b23872a4ad7596afaec628a8165a70397289a10c67d62942e1c158f1489a9de44443ac4181e74ebf2562995c9182b57bc960f4b5d3e33fb7cf7a0c32a59c716de23639de9bc430712524d74a087647e27ff1af87a2aa0cf0b58978ad8ed616b566225d3aef2ef460be7393d" ) == 0 );
13585 fct_chk( strcmp( (
char *) tag_str,
"53d926af7bbf7fba9798f895d182b09e" ) == 0 );
13591 FCT_TEST_BGN(gcm_nist_validation_aes_19212810241024120_0)
13593 unsigned char key_str[128];
13594 unsigned char src_str[128];
13595 unsigned char dst_str[257];
13596 unsigned char iv_str[128];
13597 unsigned char add_str[128];
13598 unsigned char tag_str[128];
13599 unsigned char output[128];
13600 unsigned char tag_output[16];
13602 unsigned int key_len;
13603 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
13605 memset(key_str, 0x00, 128);
13606 memset(src_str, 0x00, 128);
13607 memset(dst_str, 0x00, 257);
13608 memset(iv_str, 0x00, 128);
13609 memset(add_str, 0x00, 128);
13610 memset(tag_str, 0x00, 128);
13611 memset(output, 0x00, 128);
13612 memset(tag_output, 0x00, 16);
13614 key_len =
unhexify( key_str,
"5852b4bbfa623e5e2f83b888f5eb6cbe06b57299e29a518c" );
13615 pt_len =
unhexify( src_str,
"8cc85e520b45a85c69cd80072642ef1500b1e0a409c435d685544a6b96d3224cc40e5fe8a21c4959b2891d4a53bbff03db9939c655e6e92222c6b44c95204827bd800c74666db64907894bc4e3043fab318aa55a011ab9397592ced73f07a06282c22d9a57dd7a37eadb02f59b879b030d0a5005226c461281ce3061bf26de56" );
13616 iv_len =
unhexify( iv_str,
"b96f4bda25857c28fdfa42bfe598f11a" );
13617 add_len =
unhexify( add_str,
"0bfdc1b16eeae85d550a97a20211216a66b496c8c19030a263f896958e4d1decc310b955523e314647edcbe3f69970cda8e07f8b81f9074434fd86b8ec5b3fa8b155377ad28050b50523d3d185e5869bc9651d97c56ec6b8047c20d671f6dc657f4cdf73fd7d3caf4b872f3fb6376eda11b80d99cf0e85c4957607a767642da6" );
13619 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
13622 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
13623 hexify( dst_str, output, pt_len );
13624 hexify( tag_str, tag_output, tag_len );
13626 fct_chk( strcmp( (
char *) dst_str,
"b148312074ecfc8f118e3800dbd17226d55fc2c91bcbceeae2a7ca3b376f6d568dd7fcb5c0d09ce424868f1544097a0f966d354455e129096ec803a9435bbbf8f16432d30991384b88d14bcad1191b82273157d646f7a98507dc0c95c33d22e0b721c046f1c13545f4ed2df631fd2b8fc4940e10e3e66c0a4af089941a8ad94a" ) == 0 );
13627 fct_chk( strcmp( (
char *) tag_str,
"e3f548e24a189dbbfd6ae6b9ee44c2" ) == 0 );
13633 FCT_TEST_BGN(gcm_nist_validation_aes_19212810241024120_1)
13635 unsigned char key_str[128];
13636 unsigned char src_str[128];
13637 unsigned char dst_str[257];
13638 unsigned char iv_str[128];
13639 unsigned char add_str[128];
13640 unsigned char tag_str[128];
13641 unsigned char output[128];
13642 unsigned char tag_output[16];
13644 unsigned int key_len;
13645 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
13647 memset(key_str, 0x00, 128);
13648 memset(src_str, 0x00, 128);
13649 memset(dst_str, 0x00, 257);
13650 memset(iv_str, 0x00, 128);
13651 memset(add_str, 0x00, 128);
13652 memset(tag_str, 0x00, 128);
13653 memset(output, 0x00, 128);
13654 memset(tag_output, 0x00, 16);
13656 key_len =
unhexify( key_str,
"2bd897e969ccee405ba9becf24787a1e1be17a571442c6da" );
13657 pt_len =
unhexify( src_str,
"50b8ade5e6547c350c3f43a35a3cb641459c5ef902afc706ce2fb980b275fda62e8974d1577ef65ce9fd854d88caa10295d1045ed7563e9391d60700b5d2a4a7ba5f3de7a7d1541780b95a08eb3f0996d96aac7ee838b67ee869447617684c08566647a4991e31829907ebe4b32cfa46c0433a64f864b8b9316cb0ec2578ccee" );
13658 iv_len =
unhexify( iv_str,
"fef6a08d92b5b9bdae4c368fcd0cf9e8" );
13659 add_len =
unhexify( add_str,
"fb3144ec6d93704d625aa9e95be96351c6e25bccf1eaaaf9a1d405e679efe0f2da07510ab07533295a52cdc1f5a15ef5bec9e72b199625730e1baf5c1482f362f485d74233fbf764d0b6363075cebd676920a0b315d680e899733d6da05d78765db159c4f942a31d115d53f1d89cd948bc99c03adad1eee8adcef7543f9dea39" );
13661 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
13664 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
13665 hexify( dst_str, output, pt_len );
13666 hexify( tag_str, tag_output, tag_len );
13668 fct_chk( strcmp( (
char *) dst_str,
"e65ed5b6d0f51f8876f483f3d8ab8fed78ab6c2e1cf50693c8511e1cc9823e1030740ac33f05a5aa0d88205bb3071a087655f28eee7d0a07945d25e3dc00221a1dade4170cab9084c47b82376d5d439bed99150811843b176543f7944b1dd9684fa9a52117c2335dda750d9de0d9b3ef718123b6534cb012080f6ef8eda8d4d6" ) == 0 );
13669 fct_chk( strcmp( (
char *) tag_str,
"468546d4199b9d923a607a78fa4b40" ) == 0 );
13675 FCT_TEST_BGN(gcm_nist_validation_aes_19212810241024120_2)
13677 unsigned char key_str[128];
13678 unsigned char src_str[128];
13679 unsigned char dst_str[257];
13680 unsigned char iv_str[128];
13681 unsigned char add_str[128];
13682 unsigned char tag_str[128];
13683 unsigned char output[128];
13684 unsigned char tag_output[16];
13686 unsigned int key_len;
13687 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
13689 memset(key_str, 0x00, 128);
13690 memset(src_str, 0x00, 128);
13691 memset(dst_str, 0x00, 257);
13692 memset(iv_str, 0x00, 128);
13693 memset(add_str, 0x00, 128);
13694 memset(tag_str, 0x00, 128);
13695 memset(output, 0x00, 128);
13696 memset(tag_output, 0x00, 16);
13698 key_len =
unhexify( key_str,
"12141d5834b8ca48b57e0892b6027c997669dac12fe60411" );
13699 pt_len =
unhexify( src_str,
"cf475b50672fd8cc4ba84d17ab1b733fee2073a584d5427155f144ddd945d4901d5a9d76e3d6ae55ab3f9514861c83bca7d53868f35bdc8606a167ac83591be30ddb954ee173ee172e8d7742a71c0fee04ccd16fb5d54a45820640405209e20f8494f08d791a2a15f5cb848df689296a04e4b01e2c19bd8d9ca8b4525853549a" );
13700 iv_len =
unhexify( iv_str,
"b6dcb39939a31df176dcec87eb8db90f" );
13701 add_len =
unhexify( add_str,
"daf4e0cd0b29343defb65562594b2b6fd3f005e6255500330f77a0550c1cfbade5f5973e836ce7046bc2b2ab8bb7983830ce6ce148d0998116183d1aed320d28adef9ffab48e0f6d6451c98eb83fafc75fb054991d123965dbddcf74a2c01c746bbbc8276b77f6732cf364d8a4a5dbf5aedbbe16793e8c406ba609c90f0e7669" );
13703 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
13706 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
13707 hexify( dst_str, output, pt_len );
13708 hexify( tag_str, tag_output, tag_len );
13710 fct_chk( strcmp( (
char *) dst_str,
"4c2d979b9c2dc9cbbd6d4ed04094285a44df92e7ebcdee7feccf04c66c45137a7df12110b8af805f5cae9b4a225c3f8dcfd8f401e05c6ce937cbfc5620acdf3a4917c5b857bff76f3d728cf6a82a5b356fb95d144125d53e568b313cef11c11585d310ca0f7f1234090b1b62536885e9e39b969060ad3893e476e88941fe2cdd" ) == 0 );
13711 fct_chk( strcmp( (
char *) tag_str,
"99cec94a68d3e2d21e30cb25d03cd2" ) == 0 );
13717 FCT_TEST_BGN(gcm_nist_validation_aes_19212810241024112_0)
13719 unsigned char key_str[128];
13720 unsigned char src_str[128];
13721 unsigned char dst_str[257];
13722 unsigned char iv_str[128];
13723 unsigned char add_str[128];
13724 unsigned char tag_str[128];
13725 unsigned char output[128];
13726 unsigned char tag_output[16];
13728 unsigned int key_len;
13729 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
13731 memset(key_str, 0x00, 128);
13732 memset(src_str, 0x00, 128);
13733 memset(dst_str, 0x00, 257);
13734 memset(iv_str, 0x00, 128);
13735 memset(add_str, 0x00, 128);
13736 memset(tag_str, 0x00, 128);
13737 memset(output, 0x00, 128);
13738 memset(tag_output, 0x00, 16);
13740 key_len =
unhexify( key_str,
"14b9197b7980d95b71ce1a1de6577ce769d6af4cb45f7c8f" );
13741 pt_len =
unhexify( src_str,
"03b37942f12435f1c19dbcff496738207dc92edf1ab6935b564e693da1865da67fb51e8a838559ae1640da441f22ee79787f1e909cf3c32187b41a48fbc595df1c097fb37881b329fd7b30dd1e05d6052fe81edf2e10786acc8aeeb4fac636aac9432c3be3dafb55c76ec85cc13881735609773350b95eedbdb695b2de071a03" );
13742 iv_len =
unhexify( iv_str,
"cad0cfa7924e1e5cff90d749cfadf9f8" );
13743 add_len =
unhexify( add_str,
"283c8a38c7fc9dce071d4ff9ed79002a6862f9718678b435534e43657a94178353b9ec7e5bb877db5e4f62a2ca6bd557562989363c6fdedbd7f0f3eeec5445c41a2a8bc98117a1443ad4d5dd63a07806622cca8ea6f9f6019bd511634db28651b916e2399bbd84b03f8ec696ed5846f30320adef22ae6d164aed09edcfa25027" );
13745 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
13748 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
13749 hexify( dst_str, output, pt_len );
13750 hexify( tag_str, tag_output, tag_len );
13752 fct_chk( strcmp( (
char *) dst_str,
"83940097301e9867623c107d4447b250bf6db7d06f9e07b8d8bc6b72b079b725ea1f4b5f79bb80c518bc69a2bd73cf3aa7b88162773ac5b27a2dcccecce66e158ec0875937910e0b6f396cc7d7cac5d53b0fddf3cd70b570a647245a5264927be1b2d9c46fbc6a630b21fead46c4f35af1d163268e49a16083590893e6df4671" ) == 0 );
13753 fct_chk( strcmp( (
char *) tag_str,
"3e3f677e68208208e5315b681b73" ) == 0 );
13759 FCT_TEST_BGN(gcm_nist_validation_aes_19212810241024112_1)
13761 unsigned char key_str[128];
13762 unsigned char src_str[128];
13763 unsigned char dst_str[257];
13764 unsigned char iv_str[128];
13765 unsigned char add_str[128];
13766 unsigned char tag_str[128];
13767 unsigned char output[128];
13768 unsigned char tag_output[16];
13770 unsigned int key_len;
13771 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
13773 memset(key_str, 0x00, 128);
13774 memset(src_str, 0x00, 128);
13775 memset(dst_str, 0x00, 257);
13776 memset(iv_str, 0x00, 128);
13777 memset(add_str, 0x00, 128);
13778 memset(tag_str, 0x00, 128);
13779 memset(output, 0x00, 128);
13780 memset(tag_output, 0x00, 16);
13782 key_len =
unhexify( key_str,
"80e2eaa70362203b7561b135db581cf32e9cd816464f0b2e" );
13783 pt_len =
unhexify( src_str,
"62cc2db32584a8d90f348be32224bfdcefd1fd25c5cb05c7e74becb4b40ea09d6495f73adc1fd23d148c11849bd825efdf15e144587f785770d2aef2788b748c338373a0ea43882141bc9f7c693a291c512cdcdea6d5defb2efa2324736df7fc4b434d7f4d423fb1b8853ec3fdf2c1c2881610a8d81da5de5e761f814ed38e35" );
13784 iv_len =
unhexify( iv_str,
"3d7e99ddea0baa45e2f9f2289d2182a3" );
13785 add_len =
unhexify( add_str,
"71663fab717ec4d9da34d4851437f4504dbd71b65b0d04eccc513282c351925c23892958b4c9dc023c5a34944ef507e0b40857d8b508ab7104d13c2fbfce2d086d466291aaa449ad36977837216a496ff375959afe4dd50dc2620a062c926b939ffdb144a656bc04bcca8d1d4fa0a9cb0a5d713721accef2d2c9688a77bb42bc" );
13787 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
13790 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
13791 hexify( dst_str, output, pt_len );
13792 hexify( tag_str, tag_output, tag_len );
13794 fct_chk( strcmp( (
char *) dst_str,
"1c56b492f50fc362c5bf70622f817e1814ae0b69db7e3055fc9e690d2adb940f9a78cfd7e08044671913baec663d9f9af6dede42fe16d200e8421d22066009535704b05b3775ac41359d7c2697e2f4bec40df69b242392eb30e2d8a664d84cf95ec21797f1ccddb72926cfdff22848d14e373f5e6c3dd349196464c98dc38365" ) == 0 );
13795 fct_chk( strcmp( (
char *) tag_str,
"e0c1b140cd7bc4ded916aab8780e" ) == 0 );
13801 FCT_TEST_BGN(gcm_nist_validation_aes_19212810241024112_2)
13803 unsigned char key_str[128];
13804 unsigned char src_str[128];
13805 unsigned char dst_str[257];
13806 unsigned char iv_str[128];
13807 unsigned char add_str[128];
13808 unsigned char tag_str[128];
13809 unsigned char output[128];
13810 unsigned char tag_output[16];
13812 unsigned int key_len;
13813 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
13815 memset(key_str, 0x00, 128);
13816 memset(src_str, 0x00, 128);
13817 memset(dst_str, 0x00, 257);
13818 memset(iv_str, 0x00, 128);
13819 memset(add_str, 0x00, 128);
13820 memset(tag_str, 0x00, 128);
13821 memset(output, 0x00, 128);
13822 memset(tag_output, 0x00, 16);
13824 key_len =
unhexify( key_str,
"4b7aa649cb1488a658b4387451bf59852e845ec7d2273c69" );
13825 pt_len =
unhexify( src_str,
"245251595d10d719d8d00610d391735fad377b60d7430c7db488488c1ec25c12ee0dee3aac3d7dc19aa602924a1f27a2cfa8f6354315db93b5e4d2b6e8402c4254921e683ca681dfb3c7f433a97f119e01f2acb20988dced8494e086395351f2af356b11832472cbcb109c13ff92f10a4c8fe69bd264c8933cded19a980bdbd2" );
13826 iv_len =
unhexify( iv_str,
"07b50b1aacdadeb03e7488458db03aaf" );
13827 add_len =
unhexify( add_str,
"2a7970ee97d612b63d2a0c29e5045ddfc6621c237bc270b3147fc0191de199b6923947e3bd3750de5155e1df29caf96ac702f948c38619e218138945595156cc5f1dcfde0d1d6a5aec48ff37c9ff2b2209a904c59593779820ea68ad95898c7ca0d0d81583c44feb0fec30665cc56620a8c9408e4275e60f5284ed7c0e58285d" );
13829 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
13832 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
13833 hexify( dst_str, output, pt_len );
13834 hexify( tag_str, tag_output, tag_len );
13836 fct_chk( strcmp( (
char *) dst_str,
"6bd53e4415765f387239c6664f837371b39f6d7ff22453211e91de5dd14272784fffb4f6b2c0bb8c6b7d1cafc55133aa0d54d410ae383008fdd87645655062322fbaa06df0a2d7ccf4cc170d1f98ec6a7ad524a3e5b07761f8ae53c9c8297faa5b5621c3854643e0085410daf5bf6c7e1f92bbbfc3691eeff1c5241d2307bbc2" ) == 0 );
13837 fct_chk( strcmp( (
char *) tag_str,
"78d37215234f9a32571d0d8b1e51" ) == 0 );
13843 FCT_TEST_BGN(gcm_nist_validation_aes_19212810241024104_0)
13845 unsigned char key_str[128];
13846 unsigned char src_str[128];
13847 unsigned char dst_str[257];
13848 unsigned char iv_str[128];
13849 unsigned char add_str[128];
13850 unsigned char tag_str[128];
13851 unsigned char output[128];
13852 unsigned char tag_output[16];
13854 unsigned int key_len;
13855 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
13857 memset(key_str, 0x00, 128);
13858 memset(src_str, 0x00, 128);
13859 memset(dst_str, 0x00, 257);
13860 memset(iv_str, 0x00, 128);
13861 memset(add_str, 0x00, 128);
13862 memset(tag_str, 0x00, 128);
13863 memset(output, 0x00, 128);
13864 memset(tag_output, 0x00, 16);
13866 key_len =
unhexify( key_str,
"512bbb490d062fe5ecc8e5ad95920a9e9b78bec6a7694dc2" );
13867 pt_len =
unhexify( src_str,
"862f2724ad82a53e0574c0a2a0515bd86c5ed0b5ae92278a78ea1a90c03059d08a91d1a46678aef862b56d0320e970b7f941b784841b4d8a38d056f2bd352d48c0028086a36426bbc1436da9e021dcac705b6e03649b426cebd7a235f6d060ab6302d777fc9316db4a85e8c1387648a8f5ce2398a247413cb9374124449e498d" );
13868 iv_len =
unhexify( iv_str,
"2d14fb3e058f97b7c9e9edd1d97cac7e" );
13869 add_len =
unhexify( add_str,
"290078e63c81abfe99010b8344ff1a03dac095e2473d7a31888102e838768892e8216439dc3355aedd073892f4449d9d4d3ea6c25a9152c329d24cc73eaa0004832691740e60f17581201c8f7f4023d8e55faa3942ad725d21dade4c03c790b5370d4cad3923527c20ca925a2ce534a652ed7e032cb1c7906aebbdc24e6b39a4" );
13871 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
13874 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
13875 hexify( dst_str, output, pt_len );
13876 hexify( tag_str, tag_output, tag_len );
13878 fct_chk( strcmp( (
char *) dst_str,
"44e78cf3a2ce4a5e498315cb8d5e841f926408921f3665d533caebe0a7fa6c164b3d2c0b21ff3a608a7194e3194fda165ada8d5fc2e924316aa4ce201531b857877c5519f875eb49e5908d8d81b69472d03d08c785ee374c5fe91b16aee173761af7ff244571fd40aadabb360f38d301463e9da8cf8dc44d20848688ab3be47b" ) == 0 );
13879 fct_chk( strcmp( (
char *) tag_str,
"6037cb18f8478630bc9d8090e2" ) == 0 );
13885 FCT_TEST_BGN(gcm_nist_validation_aes_19212810241024104_1)
13887 unsigned char key_str[128];
13888 unsigned char src_str[128];
13889 unsigned char dst_str[257];
13890 unsigned char iv_str[128];
13891 unsigned char add_str[128];
13892 unsigned char tag_str[128];
13893 unsigned char output[128];
13894 unsigned char tag_output[16];
13896 unsigned int key_len;
13897 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
13899 memset(key_str, 0x00, 128);
13900 memset(src_str, 0x00, 128);
13901 memset(dst_str, 0x00, 257);
13902 memset(iv_str, 0x00, 128);
13903 memset(add_str, 0x00, 128);
13904 memset(tag_str, 0x00, 128);
13905 memset(output, 0x00, 128);
13906 memset(tag_output, 0x00, 16);
13908 key_len =
unhexify( key_str,
"d3964ee03ec5e500f2f8c05313b78615420183fe2950be32" );
13909 pt_len =
unhexify( src_str,
"b9424e4a79a08a7937da1da15061c1eb9a873748691ec9c1fc76aaa164bd34873d07437d203c92c0e89c0c5befedfbb17f721f576473253617547206fb2b340945536cd7a049864d099419cf3f7a9154c0ac8d676b0e9ec02947caa4057560af347ddb46002703f3531f27b2197790ba135e3d3c0709c86f4781890deb50f3ba" );
13910 iv_len =
unhexify( iv_str,
"d3d4e5fdf6e36ac75b4d51c47ce5b8f9" );
13911 add_len =
unhexify( add_str,
"6146a97a2a1c709458bef5049088fdf339e4fe29cbdf519c93d525b71c9fb501c4b58bef49d43cc7699b18fc89cee1a4a45834f517214a77fb3b91d741977308e1585c474245802118d0e2c7003057c4a19752a143195ec2a57102cb2a127d2dbefe1168492e072e74c5f6ee102a0c371b1fe2ddfd8ecbc04c6f42befecd7d46" );
13913 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
13916 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
13917 hexify( dst_str, output, pt_len );
13918 hexify( tag_str, tag_output, tag_len );
13920 fct_chk( strcmp( (
char *) dst_str,
"a2ae334bac969072e754c0e37765ca6253744941a35587bb4feda54233a7a59f037e971d254c67948b16e4c35f306c0984f00465399405ce701ba554419a736cdff5a1b4ae5ab05e625c91651f74aa64c96ab628243d31021ad56f535eae33a885b45730268f900b6df0aff18a433e2823ddb0628a7026b86b3835160e5121b0" ) == 0 );
13921 fct_chk( strcmp( (
char *) tag_str,
"817be7dcf7adef064161b6c42d" ) == 0 );
13927 FCT_TEST_BGN(gcm_nist_validation_aes_19212810241024104_2)
13929 unsigned char key_str[128];
13930 unsigned char src_str[128];
13931 unsigned char dst_str[257];
13932 unsigned char iv_str[128];
13933 unsigned char add_str[128];
13934 unsigned char tag_str[128];
13935 unsigned char output[128];
13936 unsigned char tag_output[16];
13938 unsigned int key_len;
13939 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
13941 memset(key_str, 0x00, 128);
13942 memset(src_str, 0x00, 128);
13943 memset(dst_str, 0x00, 257);
13944 memset(iv_str, 0x00, 128);
13945 memset(add_str, 0x00, 128);
13946 memset(tag_str, 0x00, 128);
13947 memset(output, 0x00, 128);
13948 memset(tag_output, 0x00, 16);
13950 key_len =
unhexify( key_str,
"7a8049f521fe9a00f7bf566369e540a48ab59d83305e2829" );
13951 pt_len =
unhexify( src_str,
"67243a336a10b82a0a8638b35dc147c14ac63b20977922a13de459ae2cfbdb262a79004c3a656dfbc073ec8878595e24998dc44b9435439af117c9635c479676f6edb8f522cf01571be5aa5b5bc7d1cc3264436566f8d3c684973d1e88d46282b53836a1ab5a698560e5bf7629ec12cb141867f684b369546a1d8bf48315b6c7" );
13952 iv_len =
unhexify( iv_str,
"e4d81f71e1de8cf4689bfe66a4647f15" );
13953 add_len =
unhexify( add_str,
"4cf6733482c218af832e99970d0717ac942ebace0fed4ce4dfa1f710b9e131a21cc03dd3ced25b78bccd1991a30bb53b463c1440b6543b19af91e31c18866c2acebb78c2a340b930518e61a63ff8d6a6e8e7960523de40a178614dad4ce5ab253e1090a097f8ec00dfeecb46aa0e8f772f01c4e706de7e824386a13944600542" );
13955 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
13958 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
13959 hexify( dst_str, output, pt_len );
13960 hexify( tag_str, tag_output, tag_len );
13962 fct_chk( strcmp( (
char *) dst_str,
"cfa8ba247ada9e6b3e5ab7dd0a7108574cc811c2986cad951168559ff697b77684880ec266f0b7d87a2ff559e368a85846becee312bb2991692d928a7c191cfdb7f1468f8b84be4bb592ea640743443bd4941a8b856c57be21eb22fcb3f6c0a80728ddc9dc5fab1c77dfceb91699009054c5a4eb0714a10b74cf0e09fa630299" ) == 0 );
13963 fct_chk( strcmp( (
char *) tag_str,
"1dcee251cda10b2ea8f2bfe6a0" ) == 0 );
13969 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024102496_0)
13971 unsigned char key_str[128];
13972 unsigned char src_str[128];
13973 unsigned char dst_str[257];
13974 unsigned char iv_str[128];
13975 unsigned char add_str[128];
13976 unsigned char tag_str[128];
13977 unsigned char output[128];
13978 unsigned char tag_output[16];
13980 unsigned int key_len;
13981 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
13983 memset(key_str, 0x00, 128);
13984 memset(src_str, 0x00, 128);
13985 memset(dst_str, 0x00, 257);
13986 memset(iv_str, 0x00, 128);
13987 memset(add_str, 0x00, 128);
13988 memset(tag_str, 0x00, 128);
13989 memset(output, 0x00, 128);
13990 memset(tag_output, 0x00, 16);
13992 key_len =
unhexify( key_str,
"657567a56e585c84e4033268f08f712aa280015b77cd657f" );
13993 pt_len =
unhexify( src_str,
"96d889651c4f3f5120bee233f6395fa0bbba1f6548b109be568ff96f11d24e34d67beb6c20268feba89240674b0b4552d0a6455d43e8edf943da3d8d785a5221df8ddb3a98d2fc611ac7362aef71f8f004eb455a16d1dcac488ee83d4f11c4a00c29d9990c5a2a97b897d67e51faa40999b1e510ac62fa4859123cdb37d202ae" );
13994 iv_len =
unhexify( iv_str,
"94dc757b6bdbfe925b762923cd0a08ed" );
13995 add_len =
unhexify( add_str,
"a2c54e8da7dca49c73550bd1f5e68449295f062d5dfe5aa4201bdf353a2a1ac9c3c61f2b5482184cef481fa378a1ea990ce203c2c7d76993c62b415ece06b9b7caacec0c4147c0cbf292e528d97c1a176fcb1ca6147cfa4bcce92cbdfe617738a92273282c7a65fcb997bceb867ce01ec74541582d3961dddf3a2af21cad3ce6" );
13997 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
14000 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
14001 hexify( dst_str, output, pt_len );
14002 hexify( tag_str, tag_output, tag_len );
14004 fct_chk( strcmp( (
char *) dst_str,
"55a5d07a77fc37090c4206f19483aa3cc03815194ded71c2b2806ad9563edfebfcf962806ba829373947e3e93f4f39794514ad7b6dbc626e29fbc35f90f573da33ab6afb5c94383fd0fdd1ee074d650d192f6d08fbd1e24a6966a81a2ffd83fab644ee914952de77e9427262314ac47c11a44bf7d2890f9b9980499bb6a1f692" ) == 0 );
14005 fct_chk( strcmp( (
char *) tag_str,
"41c72043f6116ee6f7c11986" ) == 0 );
14011 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024102496_1)
14013 unsigned char key_str[128];
14014 unsigned char src_str[128];
14015 unsigned char dst_str[257];
14016 unsigned char iv_str[128];
14017 unsigned char add_str[128];
14018 unsigned char tag_str[128];
14019 unsigned char output[128];
14020 unsigned char tag_output[16];
14022 unsigned int key_len;
14023 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
14025 memset(key_str, 0x00, 128);
14026 memset(src_str, 0x00, 128);
14027 memset(dst_str, 0x00, 257);
14028 memset(iv_str, 0x00, 128);
14029 memset(add_str, 0x00, 128);
14030 memset(tag_str, 0x00, 128);
14031 memset(output, 0x00, 128);
14032 memset(tag_output, 0x00, 16);
14034 key_len =
unhexify( key_str,
"61159242d48c2ca0c30377ec2ad701135adb62d113c9f9ba" );
14035 pt_len =
unhexify( src_str,
"8ae40603f6cdae4b63ac7b18b4bcbb83c65867c2ae270102efb6f00aa8af5d0400dc95085910a50a16cbcf71f06c3f3eab71345d59c6054aaac02971111c7146add8c072158e0b374d481bb540036a136ccb91523f96f24ea237940ab011ad38f2a3095c0785df91604be1fe7734cc4119b27aa784875d0a251c678900334a0b" );
14036 iv_len =
unhexify( iv_str,
"4fda7236bd6ebe0b316feeea31cb5ebc" );
14037 add_len =
unhexify( add_str,
"ed28e9954634ec2c9e2df493062abf3ea3e199299053a15ce8d6fe051d1076287e4e7c0b2bab0a599b763a29d0aab680626f280c4f5ad94b7792d9af532681f6e4eb2672781f2342304daff902d03b396853eaf585af4d3bf5078d064e9eea6e94e667722f15c004f4cf52253a5c65b75319b07ba539558d8a2b552390a21577" );
14039 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
14042 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
14043 hexify( dst_str, output, pt_len );
14044 hexify( tag_str, tag_output, tag_len );
14046 fct_chk( strcmp( (
char *) dst_str,
"dba251e35422f60f902f594bb58dce37131e8ae06b5f40ad23c4a70a5e25fe24c76982c9bc11a7f4e3cc62d8c1326170432633eba1634972a9bcd093b08e1c63ece07c4be79cadc888b0408e40c09636e1cf1e5e9a6f2ea44eea5409a2ffe9c3ac9a18ad7aa9041f08eb109c01ed90732a8afe0694319ef98a0269685b4d16b1" ) == 0 );
14047 fct_chk( strcmp( (
char *) tag_str,
"b0feebfc8324fd1e9e40f7f0" ) == 0 );
14053 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024102496_2)
14055 unsigned char key_str[128];
14056 unsigned char src_str[128];
14057 unsigned char dst_str[257];
14058 unsigned char iv_str[128];
14059 unsigned char add_str[128];
14060 unsigned char tag_str[128];
14061 unsigned char output[128];
14062 unsigned char tag_output[16];
14064 unsigned int key_len;
14065 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
14067 memset(key_str, 0x00, 128);
14068 memset(src_str, 0x00, 128);
14069 memset(dst_str, 0x00, 257);
14070 memset(iv_str, 0x00, 128);
14071 memset(add_str, 0x00, 128);
14072 memset(tag_str, 0x00, 128);
14073 memset(output, 0x00, 128);
14074 memset(tag_output, 0x00, 16);
14076 key_len =
unhexify( key_str,
"5b4c37150f8bf0e14e0bfd37ac14e606dd273577007f24b4" );
14077 pt_len =
unhexify( src_str,
"48c6486b2691b86f5f107e8fe0122a821248206d2dd3ce898a2bb3772202ffe97292852bc61513529ad95faf6383b5f6c5a7c16c4cbe33cb02e5e50f32db95ee2962aae1c9c0f5470b3baa216cc19be5ab86b53316beef14397effb8afba5b5159074e26bf5dd3b700f4ea5abd43e93ca18494e1779b8c48fcd51f46664dd262" );
14078 iv_len =
unhexify( iv_str,
"664f553a14dcd4dcba42f06e10b186aa" );
14079 add_len =
unhexify( add_str,
"4386e28ebd16d8276c6e84e1d7a3d9f1283e12cb177478ab46acb256b71df5a2da868134ed72ef43f73e8226df1f34e350b7f936bd43caff84a317b1e5b2e9a2b92ccab1e3e817f93222dd1e2cf870d45a8458e57948a649360c6e2439bbcc682383b50bcd3d8b000592c3ca599e598a03b9953af485f1ecc22501dcacb7110e" );
14081 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
14084 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
14085 hexify( dst_str, output, pt_len );
14086 hexify( tag_str, tag_output, tag_len );
14088 fct_chk( strcmp( (
char *) dst_str,
"05fdbb5ad403d64011e15d27cd6f5a2247e018e479e58ad3fee1e0e8ddd9e114c0e82f2c947ff9af525ce752f4aea959463899542b85c9b413d065ea175103c3b3c35f56eea52af2c54ec08a1d5b7cd5ee4f59de8be86512b770e42ab176b6b70ccbcd264d6d5cfdd2e52e618dc24251ac339ea38cdc446c778d2db3c7c3e93d" ) == 0 );
14089 fct_chk( strcmp( (
char *) tag_str,
"77f32401db21adb775e7f1d0" ) == 0 );
14095 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024102464_0)
14097 unsigned char key_str[128];
14098 unsigned char src_str[128];
14099 unsigned char dst_str[257];
14100 unsigned char iv_str[128];
14101 unsigned char add_str[128];
14102 unsigned char tag_str[128];
14103 unsigned char output[128];
14104 unsigned char tag_output[16];
14106 unsigned int key_len;
14107 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
14109 memset(key_str, 0x00, 128);
14110 memset(src_str, 0x00, 128);
14111 memset(dst_str, 0x00, 257);
14112 memset(iv_str, 0x00, 128);
14113 memset(add_str, 0x00, 128);
14114 memset(tag_str, 0x00, 128);
14115 memset(output, 0x00, 128);
14116 memset(tag_output, 0x00, 16);
14118 key_len =
unhexify( key_str,
"531a380b109098eafd997bd25bfde4868d2a1ca781795e9a" );
14119 pt_len =
unhexify( src_str,
"466237db78d4c770a658b9693420a2e087c978fcc434c9ac82f3e2447b2fa08be32d2ce6da25846555ffe5764234b07b35dd1d1bcb710e8a49f918f2c873681f32765b092a836e9418faba61dc59a254c923159be16f585e526616fedd3acfe2748ce19ee03868ea9836bee2c6acb1b821e231eb2d30d300387c93390d51e3a5" );
14120 iv_len =
unhexify( iv_str,
"ad079d0b958f09732aaa2158f6215573" );
14121 add_len =
unhexify( add_str,
"09e002c2c48beaf1122411e8624522a9e90cc3f2a040c52ffcb91136519277c39fd6a79292b8835e0fbcaef2279218106aaf75036590f8a46f6b6912053a3b391849f7e204f096288d6141d5f80c7f91dd2f2b6ebc1ced6af8216e0a594814b56bd592df800299b29e26ed7461ba3f6f3cf151b9c10ad634a01d9c5e578aa372" );
14123 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
14126 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
14127 hexify( dst_str, output, pt_len );
14128 hexify( tag_str, tag_output, tag_len );
14130 fct_chk( strcmp( (
char *) dst_str,
"d1f49f94e6fbef7e21abad23e16c06fcdfa75a8c342be67baea8e0e57dbcd2971276e993faa124ac81e6be18f68af303518efd926513cee9dbcc5ef6cf5e9c068a1210e53fdd56776148d51597e359dbaa0570b4fe15476ccc9aa79f7c765755b6f694af4269b9e18fc62a0d47708bca67dcf080e200718c22bac256f641e7a2" ) == 0 );
14131 fct_chk( strcmp( (
char *) tag_str,
"01ec395c99a17db6" ) == 0 );
14137 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024102464_1)
14139 unsigned char key_str[128];
14140 unsigned char src_str[128];
14141 unsigned char dst_str[257];
14142 unsigned char iv_str[128];
14143 unsigned char add_str[128];
14144 unsigned char tag_str[128];
14145 unsigned char output[128];
14146 unsigned char tag_output[16];
14148 unsigned int key_len;
14149 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
14151 memset(key_str, 0x00, 128);
14152 memset(src_str, 0x00, 128);
14153 memset(dst_str, 0x00, 257);
14154 memset(iv_str, 0x00, 128);
14155 memset(add_str, 0x00, 128);
14156 memset(tag_str, 0x00, 128);
14157 memset(output, 0x00, 128);
14158 memset(tag_output, 0x00, 16);
14160 key_len =
unhexify( key_str,
"fbd7a92120ff973ec69b6a8189c6ea827ca20743a8781518" );
14161 pt_len =
unhexify( src_str,
"1583c1578a8c8d272a970f05d875f199e497c55f03f10f7bc934fee21c30379dad3c580b3f99304a5747b61fd43428506439ede2c57f5229e13da9cb7cd6174cccbb397e98fb90455ccf3ea3b1304f432a070a2eb5205ed863326b3b86d4eb7f54ee2ffcd50ed6ef01b3ee216c53f4f2659a88fb6343396b2ded0b389c6266c5" );
14162 iv_len =
unhexify( iv_str,
"57658c71b2c45f6ae2d1b6775a9731cf" );
14163 add_len =
unhexify( add_str,
"45ca8a168ecca7a42847b779ef152766b902192db621d2770b56c7d592207afaf52d19a6059feb76e96b90628995bd6517af3f114e97af8d602a493b77405e93095fee6761877dc292fab696a4303102dece60951cca20cacb171abdcfd0ef6da6c90b44edba63b9b6087d876b3fff24dea909899ebd0d0371c424f51a9a84b8" );
14165 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
14168 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
14169 hexify( dst_str, output, pt_len );
14170 hexify( tag_str, tag_output, tag_len );
14172 fct_chk( strcmp( (
char *) dst_str,
"58a290cf0e774293d1b55f5ef8a305f68605c0c81668b8a1ba95fceeaa65229404e18fa54dd811a6af085c98b8854d0f956adc2aaad742cafa9ed53d7cb445451ee7a4dc1e8399ec7e5b4d004ecd22496565bf444b2e3d82ddf6a6d5e6256c5095a699d7ff3f8cf2addec73e21013ee6f3dfc0a3abf316ea5ee1d6943bc394e1" ) == 0 );
14173 fct_chk( strcmp( (
char *) tag_str,
"af737ec3512da2b4" ) == 0 );
14179 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024102464_2)
14181 unsigned char key_str[128];
14182 unsigned char src_str[128];
14183 unsigned char dst_str[257];
14184 unsigned char iv_str[128];
14185 unsigned char add_str[128];
14186 unsigned char tag_str[128];
14187 unsigned char output[128];
14188 unsigned char tag_output[16];
14190 unsigned int key_len;
14191 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
14193 memset(key_str, 0x00, 128);
14194 memset(src_str, 0x00, 128);
14195 memset(dst_str, 0x00, 257);
14196 memset(iv_str, 0x00, 128);
14197 memset(add_str, 0x00, 128);
14198 memset(tag_str, 0x00, 128);
14199 memset(output, 0x00, 128);
14200 memset(tag_output, 0x00, 16);
14202 key_len =
unhexify( key_str,
"54bfc8379e0a8180b931c5188c95ab3ed3461d6e9004d182" );
14203 pt_len =
unhexify( src_str,
"93327664eb576bbb64e4ff061874346b4e80a779cdeb1fbe630bf5e4307d4f2c5d5ecc94aa8bdea755c1af165fc8925bfcdf128c1ee6571e9f8344b22dfc90ed893316031661a9438b305396f3a80452c9b11924163b7fc4422b00dc58ee0e674710239975a2cf3253bf2601cd155e09547a5f3be1adda84a4b29631a8e13161" );
14204 iv_len =
unhexify( iv_str,
"9d15df8de4150f44d342f2031de3611c" );
14205 add_len =
unhexify( add_str,
"63331936d2972abd44c1c9f62e42bfa932dff8cc75d9f555f5a7847d08558e76f5393e08909760edbef8d2922a7ca8e1c0c505ca627c02af73253791bb35ff080b4db7dddf4c8b304999ff645227cd79f13ac87f9c963b93a79a0e946e5781cdbf1b4b1967a75314f19c7219e3b69dc2c24ba09fbbdf7184278f82818bdd0958" );
14207 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
14210 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
14211 hexify( dst_str, output, pt_len );
14212 hexify( tag_str, tag_output, tag_len );
14214 fct_chk( strcmp( (
char *) dst_str,
"18ff87dccbc24c396190c7b37c4a77f86e609db7fb2b326802714d0f196b00b84af887f1b3bd30ee0b0b192d0801ac4e59ac40e5c652b3da32aa024da3acf648da0253674c391d260c0674853c7821861059772c9a7f2775a7ef77d1d31a6ec1c51c5f3089bb516f8cf52d5a15724281086abd92a74d255b7cc84b5051be4e5b" ) == 0 );
14215 fct_chk( strcmp( (
char *) tag_str,
"bf0f7f8084e79da5" ) == 0 );
14221 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024102432_0)
14223 unsigned char key_str[128];
14224 unsigned char src_str[128];
14225 unsigned char dst_str[257];
14226 unsigned char iv_str[128];
14227 unsigned char add_str[128];
14228 unsigned char tag_str[128];
14229 unsigned char output[128];
14230 unsigned char tag_output[16];
14232 unsigned int key_len;
14233 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
14235 memset(key_str, 0x00, 128);
14236 memset(src_str, 0x00, 128);
14237 memset(dst_str, 0x00, 257);
14238 memset(iv_str, 0x00, 128);
14239 memset(add_str, 0x00, 128);
14240 memset(tag_str, 0x00, 128);
14241 memset(output, 0x00, 128);
14242 memset(tag_output, 0x00, 16);
14244 key_len =
unhexify( key_str,
"21b775ef8c40a5387d6c8eda4e90d0a00c795681a2887dfc" );
14245 pt_len =
unhexify( src_str,
"6346f84301d6d83e1c5bad44fa7e0821f35723713ee8d4a9e2bf15abf953425b09bd77b2360f4e62e82bf9e14e2b56be51d032aa8a96e894f19f3e84630f9eae831b329f7638b09de7210cd29778059ef1d0bc039c1e10405f3ae5e4ca33216adcfc21869d9f825344d62b50bab03f7aa7b92fdb94951a68acd01f1dee75e428" );
14246 iv_len =
unhexify( iv_str,
"9763e6187d4b96b1801d1f6efe7e80a5" );
14247 add_len =
unhexify( add_str,
"3bd523c16a0022b780ae8318a28f001502120bb26e2f65f4fe94019686f9d1df330e70cef1b2ba4b6ce1f7ef37750f47e602843cbc5f13ff2ceadc5091eb3601604b70bd4acad3d61950b9dd2cbfd83a391223c8e09fddd4020c0f8a8a7057139fd92f3bbe034f03cc48afdde064c8b13ea942ec0d621db959ec9d5fa95afe45" );
14249 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
14252 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
14253 hexify( dst_str, output, pt_len );
14254 hexify( tag_str, tag_output, tag_len );
14256 fct_chk( strcmp( (
char *) dst_str,
"f25408848bc27ab087b3ea053762837a534c3702dd8be01d79f075f61d76ac1d6557d392e1fab475cc7d13a5f6be6f0718bad71c3c85b5996bd3c0159e264930988e3ed506bcc94fabecfb58caaf56e2e4315bb50817cba765636d1faa91147b3880815eeb90d0934180e49132833abfa6279247d9dd4048dff851e9a551ee1c" ) == 0 );
14257 fct_chk( strcmp( (
char *) tag_str,
"d1fb9aed" ) == 0 );
14263 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024102432_1)
14265 unsigned char key_str[128];
14266 unsigned char src_str[128];
14267 unsigned char dst_str[257];
14268 unsigned char iv_str[128];
14269 unsigned char add_str[128];
14270 unsigned char tag_str[128];
14271 unsigned char output[128];
14272 unsigned char tag_output[16];
14274 unsigned int key_len;
14275 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
14277 memset(key_str, 0x00, 128);
14278 memset(src_str, 0x00, 128);
14279 memset(dst_str, 0x00, 257);
14280 memset(iv_str, 0x00, 128);
14281 memset(add_str, 0x00, 128);
14282 memset(tag_str, 0x00, 128);
14283 memset(output, 0x00, 128);
14284 memset(tag_output, 0x00, 16);
14286 key_len =
unhexify( key_str,
"8a7d8197d9ceebd8e3f6b3bfb74877ccf649ac91d7057af5" );
14287 pt_len =
unhexify( src_str,
"37b01df357561f5aa43b5b4b0081148213f7b74babc80f4b3c6dd78ad17687f11443cd4a57f8d7a74ca3080e2a229f78d8e6db276c1142d5f4ee764eaf09cfd70c596d7a2cad5360c2de20d5e17ec6e06a9b049bb10f8742a30a94270cc6d7709b2f09f3cb8347e41117b7ddb99e4a939f3094c016330a8f170ccccb9d3651fb" );
14288 iv_len =
unhexify( iv_str,
"db5144951a9f1721397b7321713a723e" );
14289 add_len =
unhexify( add_str,
"ad72fa5a05adc40fb38245da019cbf50958ccfe26abf67dfdd49f4c4af6bda8bfc99d557913b2634c5c65d33ca909360adf598b703db1dbcc29481b17ca42fce3315ea1454693b5843e751fafd78158fc040c1cbe607063ba9c0ac02ae4b88989e3cc63adda8427032c70560349e1a8ec847906a9a7b0422a694a1f9eb2b3b72" );
14291 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
14294 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
14295 hexify( dst_str, output, pt_len );
14296 hexify( tag_str, tag_output, tag_len );
14298 fct_chk( strcmp( (
char *) dst_str,
"6985ec525cfe869e1709751eb6f1ff0aabcb39ae3aa708adc452ce1a8cad8ab4f1739f660b2841566f1f5c9e15e846de7f86ca1dc085188fcaa4a3f839ab2a5f0cfd36e36965ae519fe14f98899ccb07a3ca15ec705e3160df6dbc37ab89c882012eefe51e4da8d6d6b84b3144ca87a90864ff5390abfb92992e44c46807b3c8" ) == 0 );
14299 fct_chk( strcmp( (
char *) tag_str,
"c51604f5" ) == 0 );
14305 FCT_TEST_BGN(gcm_nist_validation_aes_1921281024102432_2)
14307 unsigned char key_str[128];
14308 unsigned char src_str[128];
14309 unsigned char dst_str[257];
14310 unsigned char iv_str[128];
14311 unsigned char add_str[128];
14312 unsigned char tag_str[128];
14313 unsigned char output[128];
14314 unsigned char tag_output[16];
14316 unsigned int key_len;
14317 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
14319 memset(key_str, 0x00, 128);
14320 memset(src_str, 0x00, 128);
14321 memset(dst_str, 0x00, 257);
14322 memset(iv_str, 0x00, 128);
14323 memset(add_str, 0x00, 128);
14324 memset(tag_str, 0x00, 128);
14325 memset(output, 0x00, 128);
14326 memset(tag_output, 0x00, 16);
14328 key_len =
unhexify( key_str,
"713358e746dd84ab27b8adb3b17ea59cd75fa6cb0c13d1a8" );
14329 pt_len =
unhexify( src_str,
"35b8b655efdf2d09f5ed0233c9eeb0b6f85e513834848cd594dba3c6e64f78e7af4a7a6d53bba7b43764334d6373360ae3b73b1e765978dffa7dbd805fda7825b8e317e8d3f1314aa97f877be815439c5da845028d1686283735aefac79cdb9e02ec3590091cb507089b9174cd9a6111f446feead91f19b80fd222fc6299fd1c" );
14330 iv_len =
unhexify( iv_str,
"26ed909f5851961dd57fa950b437e17c" );
14331 add_len =
unhexify( add_str,
"c9469ad408764cb7d417f800d3d84f03080cee9bbd53f652763accde5fba13a53a12d990094d587345da2cdc99357b9afd63945ca07b760a2c2d4948dbadb1312670ccde87655a6a68edb5982d2fcf733bb4101d38cdb1a4942a5d410f4c45f5ddf00889bc1fe5ec69b40ae8aaee60ee97bea096eeef0ea71736efdb0d8a5ec9" );
14333 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
14336 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
14337 hexify( dst_str, output, pt_len );
14338 hexify( tag_str, tag_output, tag_len );
14340 fct_chk( strcmp( (
char *) dst_str,
"cc3f9983e1d673ec2c86ae4c1e1b04e30f9f395f67c36838e15ce825b05d37e9cd40041470224da345aa2da5dfb3e0c561dd05ba7984a1332541d58e8f9160e7e8457e717bab203de3161a72b7aedfa53616b16ca77fd28d566fbf7431be559caa1a129b2f29b9c5bbf3eaba594d6650c62907eb28e176f27c3be7a3aa24cef6" ) == 0 );
14341 fct_chk( strcmp( (
char *) tag_str,
"5be7611b" ) == 0 );
14347 FCT_TEST_BGN(gcm_nist_validation_aes_25612800128_0)
14349 unsigned char key_str[128];
14350 unsigned char src_str[128];
14351 unsigned char dst_str[257];
14352 unsigned char iv_str[128];
14353 unsigned char add_str[128];
14354 unsigned char tag_str[128];
14355 unsigned char output[128];
14356 unsigned char tag_output[16];
14358 unsigned int key_len;
14359 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
14361 memset(key_str, 0x00, 128);
14362 memset(src_str, 0x00, 128);
14363 memset(dst_str, 0x00, 257);
14364 memset(iv_str, 0x00, 128);
14365 memset(add_str, 0x00, 128);
14366 memset(tag_str, 0x00, 128);
14367 memset(output, 0x00, 128);
14368 memset(tag_output, 0x00, 16);
14370 key_len =
unhexify( key_str,
"fb8094dd2eddb3d8004bb79134023ca2be4de9b668a9e4608abdf2130e8becb8" );
14372 iv_len =
unhexify( iv_str,
"491a14e13b591cf2f39da96b6882b5e5" );
14373 add_len =
unhexify( add_str,
"" );
14375 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
14378 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
14379 hexify( dst_str, output, pt_len );
14380 hexify( tag_str, tag_output, tag_len );
14382 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
14383 fct_chk( strcmp( (
char *) tag_str,
"80883f2c925434a5edfcefd5b123d520" ) == 0 );
14389 FCT_TEST_BGN(gcm_nist_validation_aes_25612800128_1)
14391 unsigned char key_str[128];
14392 unsigned char src_str[128];
14393 unsigned char dst_str[257];
14394 unsigned char iv_str[128];
14395 unsigned char add_str[128];
14396 unsigned char tag_str[128];
14397 unsigned char output[128];
14398 unsigned char tag_output[16];
14400 unsigned int key_len;
14401 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
14403 memset(key_str, 0x00, 128);
14404 memset(src_str, 0x00, 128);
14405 memset(dst_str, 0x00, 257);
14406 memset(iv_str, 0x00, 128);
14407 memset(add_str, 0x00, 128);
14408 memset(tag_str, 0x00, 128);
14409 memset(output, 0x00, 128);
14410 memset(tag_output, 0x00, 16);
14412 key_len =
unhexify( key_str,
"725313f4cb3f6a0d29cefc174b7e4f43cef11b761ef75e1995cb64c1306795f1" );
14414 iv_len =
unhexify( iv_str,
"27d1ed08aba23d79fc49ad8d92a2a0ea" );
14415 add_len =
unhexify( add_str,
"" );
14417 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
14420 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
14421 hexify( dst_str, output, pt_len );
14422 hexify( tag_str, tag_output, tag_len );
14424 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
14425 fct_chk( strcmp( (
char *) tag_str,
"d5d6637ba35ef2ad88e9725f938d3d2d" ) == 0 );
14431 FCT_TEST_BGN(gcm_nist_validation_aes_25612800128_2)
14433 unsigned char key_str[128];
14434 unsigned char src_str[128];
14435 unsigned char dst_str[257];
14436 unsigned char iv_str[128];
14437 unsigned char add_str[128];
14438 unsigned char tag_str[128];
14439 unsigned char output[128];
14440 unsigned char tag_output[16];
14442 unsigned int key_len;
14443 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
14445 memset(key_str, 0x00, 128);
14446 memset(src_str, 0x00, 128);
14447 memset(dst_str, 0x00, 257);
14448 memset(iv_str, 0x00, 128);
14449 memset(add_str, 0x00, 128);
14450 memset(tag_str, 0x00, 128);
14451 memset(output, 0x00, 128);
14452 memset(tag_output, 0x00, 16);
14454 key_len =
unhexify( key_str,
"4e766584ce0e885e1bba1327e5335796de0831a40f74a5cec178081dd15bfd10" );
14456 iv_len =
unhexify( iv_str,
"cece0dea024ff47851af0500d146cbfe" );
14457 add_len =
unhexify( add_str,
"" );
14459 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
14462 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
14463 hexify( dst_str, output, pt_len );
14464 hexify( tag_str, tag_output, tag_len );
14466 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
14467 fct_chk( strcmp( (
char *) tag_str,
"1abe16eeab56bd0fb1ab909b8d528771" ) == 0 );
14473 FCT_TEST_BGN(gcm_nist_validation_aes_25612800120_0)
14475 unsigned char key_str[128];
14476 unsigned char src_str[128];
14477 unsigned char dst_str[257];
14478 unsigned char iv_str[128];
14479 unsigned char add_str[128];
14480 unsigned char tag_str[128];
14481 unsigned char output[128];
14482 unsigned char tag_output[16];
14484 unsigned int key_len;
14485 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
14487 memset(key_str, 0x00, 128);
14488 memset(src_str, 0x00, 128);
14489 memset(dst_str, 0x00, 257);
14490 memset(iv_str, 0x00, 128);
14491 memset(add_str, 0x00, 128);
14492 memset(tag_str, 0x00, 128);
14493 memset(output, 0x00, 128);
14494 memset(tag_output, 0x00, 16);
14496 key_len =
unhexify( key_str,
"ce7f2207f83a952451e714ba3807ddb3ed67c2739a628980411aa68366b1f2f5" );
14498 iv_len =
unhexify( iv_str,
"652fd951ace288db397020687135a5d1" );
14499 add_len =
unhexify( add_str,
"" );
14501 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
14504 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
14505 hexify( dst_str, output, pt_len );
14506 hexify( tag_str, tag_output, tag_len );
14508 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
14509 fct_chk( strcmp( (
char *) tag_str,
"985227b14de16722987a3d34976442" ) == 0 );
14515 FCT_TEST_BGN(gcm_nist_validation_aes_25612800120_1)
14517 unsigned char key_str[128];
14518 unsigned char src_str[128];
14519 unsigned char dst_str[257];
14520 unsigned char iv_str[128];
14521 unsigned char add_str[128];
14522 unsigned char tag_str[128];
14523 unsigned char output[128];
14524 unsigned char tag_output[16];
14526 unsigned int key_len;
14527 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
14529 memset(key_str, 0x00, 128);
14530 memset(src_str, 0x00, 128);
14531 memset(dst_str, 0x00, 257);
14532 memset(iv_str, 0x00, 128);
14533 memset(add_str, 0x00, 128);
14534 memset(tag_str, 0x00, 128);
14535 memset(output, 0x00, 128);
14536 memset(tag_output, 0x00, 16);
14538 key_len =
unhexify( key_str,
"855f8fa4ec6a1206173509d504d0b29dfbfbfa9aa528254b189cd72e6ebc1c1f" );
14540 iv_len =
unhexify( iv_str,
"1ad1507e6463e4e2e1a63155ac0e638f" );
14541 add_len =
unhexify( add_str,
"" );
14543 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
14546 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
14547 hexify( dst_str, output, pt_len );
14548 hexify( tag_str, tag_output, tag_len );
14550 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
14551 fct_chk( strcmp( (
char *) tag_str,
"693146a8b833f324c1d4cbeeb8c146" ) == 0 );
14557 FCT_TEST_BGN(gcm_nist_validation_aes_25612800120_2)
14559 unsigned char key_str[128];
14560 unsigned char src_str[128];
14561 unsigned char dst_str[257];
14562 unsigned char iv_str[128];
14563 unsigned char add_str[128];
14564 unsigned char tag_str[128];
14565 unsigned char output[128];
14566 unsigned char tag_output[16];
14568 unsigned int key_len;
14569 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
14571 memset(key_str, 0x00, 128);
14572 memset(src_str, 0x00, 128);
14573 memset(dst_str, 0x00, 257);
14574 memset(iv_str, 0x00, 128);
14575 memset(add_str, 0x00, 128);
14576 memset(tag_str, 0x00, 128);
14577 memset(output, 0x00, 128);
14578 memset(tag_output, 0x00, 16);
14580 key_len =
unhexify( key_str,
"ef8dd1294a85dd39e366f65e1076d53e046188c06c96b2c9e84ebc81f5c9f550" );
14582 iv_len =
unhexify( iv_str,
"9698a07447552d1a4ecd2b4c47858f06" );
14583 add_len =
unhexify( add_str,
"" );
14585 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
14588 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
14589 hexify( dst_str, output, pt_len );
14590 hexify( tag_str, tag_output, tag_len );
14592 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
14593 fct_chk( strcmp( (
char *) tag_str,
"b00590cac6e398eeb3dcb98abe1912" ) == 0 );
14599 FCT_TEST_BGN(gcm_nist_validation_aes_25612800112_0)
14601 unsigned char key_str[128];
14602 unsigned char src_str[128];
14603 unsigned char dst_str[257];
14604 unsigned char iv_str[128];
14605 unsigned char add_str[128];
14606 unsigned char tag_str[128];
14607 unsigned char output[128];
14608 unsigned char tag_output[16];
14610 unsigned int key_len;
14611 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
14613 memset(key_str, 0x00, 128);
14614 memset(src_str, 0x00, 128);
14615 memset(dst_str, 0x00, 257);
14616 memset(iv_str, 0x00, 128);
14617 memset(add_str, 0x00, 128);
14618 memset(tag_str, 0x00, 128);
14619 memset(output, 0x00, 128);
14620 memset(tag_output, 0x00, 16);
14622 key_len =
unhexify( key_str,
"25896e587570ff1823639e1e51e9c89192d551b573dd747e7c0c1c10916ece4c" );
14624 iv_len =
unhexify( iv_str,
"f0516457c09c372c358064eb6b470146" );
14625 add_len =
unhexify( add_str,
"" );
14627 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
14630 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
14631 hexify( dst_str, output, pt_len );
14632 hexify( tag_str, tag_output, tag_len );
14634 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
14635 fct_chk( strcmp( (
char *) tag_str,
"5a7cadec600a180e696d946425b0" ) == 0 );
14641 FCT_TEST_BGN(gcm_nist_validation_aes_25612800112_1)
14643 unsigned char key_str[128];
14644 unsigned char src_str[128];
14645 unsigned char dst_str[257];
14646 unsigned char iv_str[128];
14647 unsigned char add_str[128];
14648 unsigned char tag_str[128];
14649 unsigned char output[128];
14650 unsigned char tag_output[16];
14652 unsigned int key_len;
14653 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
14655 memset(key_str, 0x00, 128);
14656 memset(src_str, 0x00, 128);
14657 memset(dst_str, 0x00, 257);
14658 memset(iv_str, 0x00, 128);
14659 memset(add_str, 0x00, 128);
14660 memset(tag_str, 0x00, 128);
14661 memset(output, 0x00, 128);
14662 memset(tag_output, 0x00, 16);
14664 key_len =
unhexify( key_str,
"02fc9cfffbe72e7954182993088e09d24ea8cad91a8ca9a336d9f1fe4156486d" );
14666 iv_len =
unhexify( iv_str,
"0e189e162e097eb2060b30c46d9afa70" );
14667 add_len =
unhexify( add_str,
"" );
14669 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
14672 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
14673 hexify( dst_str, output, pt_len );
14674 hexify( tag_str, tag_output, tag_len );
14676 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
14677 fct_chk( strcmp( (
char *) tag_str,
"7d3d5cc55e6182ec5413ef622d4f" ) == 0 );
14683 FCT_TEST_BGN(gcm_nist_validation_aes_25612800112_2)
14685 unsigned char key_str[128];
14686 unsigned char src_str[128];
14687 unsigned char dst_str[257];
14688 unsigned char iv_str[128];
14689 unsigned char add_str[128];
14690 unsigned char tag_str[128];
14691 unsigned char output[128];
14692 unsigned char tag_output[16];
14694 unsigned int key_len;
14695 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
14697 memset(key_str, 0x00, 128);
14698 memset(src_str, 0x00, 128);
14699 memset(dst_str, 0x00, 257);
14700 memset(iv_str, 0x00, 128);
14701 memset(add_str, 0x00, 128);
14702 memset(tag_str, 0x00, 128);
14703 memset(output, 0x00, 128);
14704 memset(tag_output, 0x00, 16);
14706 key_len =
unhexify( key_str,
"f24e3d631d8961d3d4b9912d4fa7a317db837a7b81cd52f90c703a4835c632e2" );
14708 iv_len =
unhexify( iv_str,
"510740bfa2562ce99ca3839229145a46" );
14709 add_len =
unhexify( add_str,
"" );
14711 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
14714 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
14715 hexify( dst_str, output, pt_len );
14716 hexify( tag_str, tag_output, tag_len );
14718 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
14719 fct_chk( strcmp( (
char *) tag_str,
"1402ddc1854e5adb33664be85ad1" ) == 0 );
14725 FCT_TEST_BGN(gcm_nist_validation_aes_25612800104_0)
14727 unsigned char key_str[128];
14728 unsigned char src_str[128];
14729 unsigned char dst_str[257];
14730 unsigned char iv_str[128];
14731 unsigned char add_str[128];
14732 unsigned char tag_str[128];
14733 unsigned char output[128];
14734 unsigned char tag_output[16];
14736 unsigned int key_len;
14737 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
14739 memset(key_str, 0x00, 128);
14740 memset(src_str, 0x00, 128);
14741 memset(dst_str, 0x00, 257);
14742 memset(iv_str, 0x00, 128);
14743 memset(add_str, 0x00, 128);
14744 memset(tag_str, 0x00, 128);
14745 memset(output, 0x00, 128);
14746 memset(tag_output, 0x00, 16);
14748 key_len =
unhexify( key_str,
"720ab5aceb80ff1f864379add9b0d63607227f7c3f58425dd6ec3d4cea3fe2ea" );
14750 iv_len =
unhexify( iv_str,
"58f2317afb64d894243c192ef5191300" );
14751 add_len =
unhexify( add_str,
"" );
14753 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
14756 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
14757 hexify( dst_str, output, pt_len );
14758 hexify( tag_str, tag_output, tag_len );
14760 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
14761 fct_chk( strcmp( (
char *) tag_str,
"e8e772402cc6bfd96a140b24c1" ) == 0 );
14767 FCT_TEST_BGN(gcm_nist_validation_aes_25612800104_1)
14769 unsigned char key_str[128];
14770 unsigned char src_str[128];
14771 unsigned char dst_str[257];
14772 unsigned char iv_str[128];
14773 unsigned char add_str[128];
14774 unsigned char tag_str[128];
14775 unsigned char output[128];
14776 unsigned char tag_output[16];
14778 unsigned int key_len;
14779 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
14781 memset(key_str, 0x00, 128);
14782 memset(src_str, 0x00, 128);
14783 memset(dst_str, 0x00, 257);
14784 memset(iv_str, 0x00, 128);
14785 memset(add_str, 0x00, 128);
14786 memset(tag_str, 0x00, 128);
14787 memset(output, 0x00, 128);
14788 memset(tag_output, 0x00, 16);
14790 key_len =
unhexify( key_str,
"f57dd16fa92a8f8c09d8f13cb5b6633a43b8762e90c670232f55949cdfdf700c" );
14792 iv_len =
unhexify( iv_str,
"3b7c14ee357b3c6b0dc09e3209ab69f2" );
14793 add_len =
unhexify( add_str,
"" );
14795 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
14798 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
14799 hexify( dst_str, output, pt_len );
14800 hexify( tag_str, tag_output, tag_len );
14802 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
14803 fct_chk( strcmp( (
char *) tag_str,
"43e609664e48ad1f5478087f24" ) == 0 );
14809 FCT_TEST_BGN(gcm_nist_validation_aes_25612800104_2)
14811 unsigned char key_str[128];
14812 unsigned char src_str[128];
14813 unsigned char dst_str[257];
14814 unsigned char iv_str[128];
14815 unsigned char add_str[128];
14816 unsigned char tag_str[128];
14817 unsigned char output[128];
14818 unsigned char tag_output[16];
14820 unsigned int key_len;
14821 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
14823 memset(key_str, 0x00, 128);
14824 memset(src_str, 0x00, 128);
14825 memset(dst_str, 0x00, 257);
14826 memset(iv_str, 0x00, 128);
14827 memset(add_str, 0x00, 128);
14828 memset(tag_str, 0x00, 128);
14829 memset(output, 0x00, 128);
14830 memset(tag_output, 0x00, 16);
14832 key_len =
unhexify( key_str,
"87c17ab919a4bc0d50343c0bb282a969283c2ada25f9a96d2858c7f89bc5139a" );
14834 iv_len =
unhexify( iv_str,
"02813d3faf30d3e186d119e89fe36574" );
14835 add_len =
unhexify( add_str,
"" );
14837 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
14840 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
14841 hexify( dst_str, output, pt_len );
14842 hexify( tag_str, tag_output, tag_len );
14844 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
14845 fct_chk( strcmp( (
char *) tag_str,
"d1a1f82a8462c783b15c92b57e" ) == 0 );
14851 FCT_TEST_BGN(gcm_nist_validation_aes_2561280096_0)
14853 unsigned char key_str[128];
14854 unsigned char src_str[128];
14855 unsigned char dst_str[257];
14856 unsigned char iv_str[128];
14857 unsigned char add_str[128];
14858 unsigned char tag_str[128];
14859 unsigned char output[128];
14860 unsigned char tag_output[16];
14862 unsigned int key_len;
14863 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
14865 memset(key_str, 0x00, 128);
14866 memset(src_str, 0x00, 128);
14867 memset(dst_str, 0x00, 257);
14868 memset(iv_str, 0x00, 128);
14869 memset(add_str, 0x00, 128);
14870 memset(tag_str, 0x00, 128);
14871 memset(output, 0x00, 128);
14872 memset(tag_output, 0x00, 16);
14874 key_len =
unhexify( key_str,
"dd8d5b6c5c938c905c17eab9f5ab7cd68d27f3f09d75177119010d070b91e646" );
14876 iv_len =
unhexify( iv_str,
"1df1c3ad363c973bffe29975574ffdf6" );
14877 add_len =
unhexify( add_str,
"" );
14879 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
14882 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
14883 hexify( dst_str, output, pt_len );
14884 hexify( tag_str, tag_output, tag_len );
14886 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
14887 fct_chk( strcmp( (
char *) tag_str,
"749ac7ffda825fc973475b83" ) == 0 );
14893 FCT_TEST_BGN(gcm_nist_validation_aes_2561280096_1)
14895 unsigned char key_str[128];
14896 unsigned char src_str[128];
14897 unsigned char dst_str[257];
14898 unsigned char iv_str[128];
14899 unsigned char add_str[128];
14900 unsigned char tag_str[128];
14901 unsigned char output[128];
14902 unsigned char tag_output[16];
14904 unsigned int key_len;
14905 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
14907 memset(key_str, 0x00, 128);
14908 memset(src_str, 0x00, 128);
14909 memset(dst_str, 0x00, 257);
14910 memset(iv_str, 0x00, 128);
14911 memset(add_str, 0x00, 128);
14912 memset(tag_str, 0x00, 128);
14913 memset(output, 0x00, 128);
14914 memset(tag_output, 0x00, 16);
14916 key_len =
unhexify( key_str,
"4d60a14cb789099c77b8991e7b0b40f787d3458f448501e8108e4d76110f94ef" );
14918 iv_len =
unhexify( iv_str,
"ca6b3485eb5dcd9dbfa7cffcdb22daa5" );
14919 add_len =
unhexify( add_str,
"" );
14921 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
14924 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
14925 hexify( dst_str, output, pt_len );
14926 hexify( tag_str, tag_output, tag_len );
14928 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
14929 fct_chk( strcmp( (
char *) tag_str,
"3f868b6510d64098adc1d640" ) == 0 );
14935 FCT_TEST_BGN(gcm_nist_validation_aes_2561280096_2)
14937 unsigned char key_str[128];
14938 unsigned char src_str[128];
14939 unsigned char dst_str[257];
14940 unsigned char iv_str[128];
14941 unsigned char add_str[128];
14942 unsigned char tag_str[128];
14943 unsigned char output[128];
14944 unsigned char tag_output[16];
14946 unsigned int key_len;
14947 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
14949 memset(key_str, 0x00, 128);
14950 memset(src_str, 0x00, 128);
14951 memset(dst_str, 0x00, 257);
14952 memset(iv_str, 0x00, 128);
14953 memset(add_str, 0x00, 128);
14954 memset(tag_str, 0x00, 128);
14955 memset(output, 0x00, 128);
14956 memset(tag_output, 0x00, 16);
14958 key_len =
unhexify( key_str,
"405b690717de993ad945d80159c2800848060de0b7d2b277efd0350a99ba609a" );
14960 iv_len =
unhexify( iv_str,
"63730acb957869f0c091f22d964cc6a3" );
14961 add_len =
unhexify( add_str,
"" );
14963 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
14966 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
14967 hexify( dst_str, output, pt_len );
14968 hexify( tag_str, tag_output, tag_len );
14970 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
14971 fct_chk( strcmp( (
char *) tag_str,
"739688362337d61dab2591f0" ) == 0 );
14977 FCT_TEST_BGN(gcm_nist_validation_aes_2561280064_0)
14979 unsigned char key_str[128];
14980 unsigned char src_str[128];
14981 unsigned char dst_str[257];
14982 unsigned char iv_str[128];
14983 unsigned char add_str[128];
14984 unsigned char tag_str[128];
14985 unsigned char output[128];
14986 unsigned char tag_output[16];
14988 unsigned int key_len;
14989 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
14991 memset(key_str, 0x00, 128);
14992 memset(src_str, 0x00, 128);
14993 memset(dst_str, 0x00, 257);
14994 memset(iv_str, 0x00, 128);
14995 memset(add_str, 0x00, 128);
14996 memset(tag_str, 0x00, 128);
14997 memset(output, 0x00, 128);
14998 memset(tag_output, 0x00, 16);
15000 key_len =
unhexify( key_str,
"ab5563a387e72d7d10468c99df590e1de25ec10363aa90d1448a9ffcd1de6867" );
15002 iv_len =
unhexify( iv_str,
"c511406701bad20a2fa29b1e76924d2f" );
15003 add_len =
unhexify( add_str,
"" );
15005 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
15008 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
15009 hexify( dst_str, output, pt_len );
15010 hexify( tag_str, tag_output, tag_len );
15012 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
15013 fct_chk( strcmp( (
char *) tag_str,
"390291ed142ba760" ) == 0 );
15019 FCT_TEST_BGN(gcm_nist_validation_aes_2561280064_1)
15021 unsigned char key_str[128];
15022 unsigned char src_str[128];
15023 unsigned char dst_str[257];
15024 unsigned char iv_str[128];
15025 unsigned char add_str[128];
15026 unsigned char tag_str[128];
15027 unsigned char output[128];
15028 unsigned char tag_output[16];
15030 unsigned int key_len;
15031 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
15033 memset(key_str, 0x00, 128);
15034 memset(src_str, 0x00, 128);
15035 memset(dst_str, 0x00, 257);
15036 memset(iv_str, 0x00, 128);
15037 memset(add_str, 0x00, 128);
15038 memset(tag_str, 0x00, 128);
15039 memset(output, 0x00, 128);
15040 memset(tag_output, 0x00, 16);
15042 key_len =
unhexify( key_str,
"abef7c24daaa21f308a5af03df936ba3f70aa525190af0d959d6e50d836f4624" );
15044 iv_len =
unhexify( iv_str,
"e9f15950130b9524e2b09f77be39109a" );
15045 add_len =
unhexify( add_str,
"" );
15047 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
15050 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
15051 hexify( dst_str, output, pt_len );
15052 hexify( tag_str, tag_output, tag_len );
15054 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
15055 fct_chk( strcmp( (
char *) tag_str,
"db2fb2b004bc8dc4" ) == 0 );
15061 FCT_TEST_BGN(gcm_nist_validation_aes_2561280064_2)
15063 unsigned char key_str[128];
15064 unsigned char src_str[128];
15065 unsigned char dst_str[257];
15066 unsigned char iv_str[128];
15067 unsigned char add_str[128];
15068 unsigned char tag_str[128];
15069 unsigned char output[128];
15070 unsigned char tag_output[16];
15072 unsigned int key_len;
15073 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
15075 memset(key_str, 0x00, 128);
15076 memset(src_str, 0x00, 128);
15077 memset(dst_str, 0x00, 257);
15078 memset(iv_str, 0x00, 128);
15079 memset(add_str, 0x00, 128);
15080 memset(tag_str, 0x00, 128);
15081 memset(output, 0x00, 128);
15082 memset(tag_output, 0x00, 16);
15084 key_len =
unhexify( key_str,
"6ca630b0b6779a8de7a19e5279eac94bf29f76f8b0cf8ecf8f11c4f8eb04aa0d" );
15086 iv_len =
unhexify( iv_str,
"7373befc2c8007f42eef47be1086842f" );
15087 add_len =
unhexify( add_str,
"" );
15089 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
15092 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
15093 hexify( dst_str, output, pt_len );
15094 hexify( tag_str, tag_output, tag_len );
15096 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
15097 fct_chk( strcmp( (
char *) tag_str,
"e2b8620bcc7472a8" ) == 0 );
15103 FCT_TEST_BGN(gcm_nist_validation_aes_2561280032_0)
15105 unsigned char key_str[128];
15106 unsigned char src_str[128];
15107 unsigned char dst_str[257];
15108 unsigned char iv_str[128];
15109 unsigned char add_str[128];
15110 unsigned char tag_str[128];
15111 unsigned char output[128];
15112 unsigned char tag_output[16];
15114 unsigned int key_len;
15115 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
15117 memset(key_str, 0x00, 128);
15118 memset(src_str, 0x00, 128);
15119 memset(dst_str, 0x00, 257);
15120 memset(iv_str, 0x00, 128);
15121 memset(add_str, 0x00, 128);
15122 memset(tag_str, 0x00, 128);
15123 memset(output, 0x00, 128);
15124 memset(tag_output, 0x00, 16);
15126 key_len =
unhexify( key_str,
"acea7818a71df2c9840aef1c10ecbe2bac7e92216388416a2f36119a0745d883" );
15128 iv_len =
unhexify( iv_str,
"6d46aa39fb5a6117e9adf7ee72bc50ff" );
15129 add_len =
unhexify( add_str,
"" );
15131 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
15134 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
15135 hexify( dst_str, output, pt_len );
15136 hexify( tag_str, tag_output, tag_len );
15138 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
15139 fct_chk( strcmp( (
char *) tag_str,
"fd5ff17b" ) == 0 );
15145 FCT_TEST_BGN(gcm_nist_validation_aes_2561280032_1)
15147 unsigned char key_str[128];
15148 unsigned char src_str[128];
15149 unsigned char dst_str[257];
15150 unsigned char iv_str[128];
15151 unsigned char add_str[128];
15152 unsigned char tag_str[128];
15153 unsigned char output[128];
15154 unsigned char tag_output[16];
15156 unsigned int key_len;
15157 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
15159 memset(key_str, 0x00, 128);
15160 memset(src_str, 0x00, 128);
15161 memset(dst_str, 0x00, 257);
15162 memset(iv_str, 0x00, 128);
15163 memset(add_str, 0x00, 128);
15164 memset(tag_str, 0x00, 128);
15165 memset(output, 0x00, 128);
15166 memset(tag_output, 0x00, 16);
15168 key_len =
unhexify( key_str,
"b301036d4b2b28b8a4502925986861eba2b67c24cb0c79c63fd62195d9b67506" );
15170 iv_len =
unhexify( iv_str,
"bb6f398e5aed51590e3df02f5419e44d" );
15171 add_len =
unhexify( add_str,
"" );
15173 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
15176 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
15177 hexify( dst_str, output, pt_len );
15178 hexify( tag_str, tag_output, tag_len );
15180 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
15181 fct_chk( strcmp( (
char *) tag_str,
"47f3a906" ) == 0 );
15187 FCT_TEST_BGN(gcm_nist_validation_aes_2561280032_2)
15189 unsigned char key_str[128];
15190 unsigned char src_str[128];
15191 unsigned char dst_str[257];
15192 unsigned char iv_str[128];
15193 unsigned char add_str[128];
15194 unsigned char tag_str[128];
15195 unsigned char output[128];
15196 unsigned char tag_output[16];
15198 unsigned int key_len;
15199 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
15201 memset(key_str, 0x00, 128);
15202 memset(src_str, 0x00, 128);
15203 memset(dst_str, 0x00, 257);
15204 memset(iv_str, 0x00, 128);
15205 memset(add_str, 0x00, 128);
15206 memset(tag_str, 0x00, 128);
15207 memset(output, 0x00, 128);
15208 memset(tag_output, 0x00, 16);
15210 key_len =
unhexify( key_str,
"89576d2aac554c8982c7df0053be9ab19f4bd80ba9f3dd433c1c054d68e68795" );
15212 iv_len =
unhexify( iv_str,
"aedbd482a401a7c12d4755077c8dd26e" );
15213 add_len =
unhexify( add_str,
"" );
15215 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
15218 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
15219 hexify( dst_str, output, pt_len );
15220 hexify( tag_str, tag_output, tag_len );
15222 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
15223 fct_chk( strcmp( (
char *) tag_str,
"506fa18d" ) == 0 );
15229 FCT_TEST_BGN(gcm_nist_validation_aes_25612801024128_0)
15231 unsigned char key_str[128];
15232 unsigned char src_str[128];
15233 unsigned char dst_str[257];
15234 unsigned char iv_str[128];
15235 unsigned char add_str[128];
15236 unsigned char tag_str[128];
15237 unsigned char output[128];
15238 unsigned char tag_output[16];
15240 unsigned int key_len;
15241 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
15243 memset(key_str, 0x00, 128);
15244 memset(src_str, 0x00, 128);
15245 memset(dst_str, 0x00, 257);
15246 memset(iv_str, 0x00, 128);
15247 memset(add_str, 0x00, 128);
15248 memset(tag_str, 0x00, 128);
15249 memset(output, 0x00, 128);
15250 memset(tag_output, 0x00, 16);
15252 key_len =
unhexify( key_str,
"43c9e209da3c1971d986a45b92f2fa0d2d155183730d21d71ed8e2284ec308e3" );
15254 iv_len =
unhexify( iv_str,
"78bef655dfd8990b04d2a25678d7086d" );
15255 add_len =
unhexify( add_str,
"9d8c6734546797c581b9b1d0d4f05b27fe0539bd01655d2d1a8a1489cdf804228753d77272bf6ded19d47a6abd6281ea9591d4bcc1be222305fdf689c5faa4c11331cffbf42215469b81f61b40415d81cc37161e5c0258a67642b9b8ac627d6e39f43e485e1ff522ac742a07defa3569aeb59990cb44c4f3d952f8119ff1111d" );
15257 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
15260 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
15261 hexify( dst_str, output, pt_len );
15262 hexify( tag_str, tag_output, tag_len );
15264 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
15265 fct_chk( strcmp( (
char *) tag_str,
"f15ddf938bbf52c2977adabaf4120de8" ) == 0 );
15271 FCT_TEST_BGN(gcm_nist_validation_aes_25612801024128_1)
15273 unsigned char key_str[128];
15274 unsigned char src_str[128];
15275 unsigned char dst_str[257];
15276 unsigned char iv_str[128];
15277 unsigned char add_str[128];
15278 unsigned char tag_str[128];
15279 unsigned char output[128];
15280 unsigned char tag_output[16];
15282 unsigned int key_len;
15283 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
15285 memset(key_str, 0x00, 128);
15286 memset(src_str, 0x00, 128);
15287 memset(dst_str, 0x00, 257);
15288 memset(iv_str, 0x00, 128);
15289 memset(add_str, 0x00, 128);
15290 memset(tag_str, 0x00, 128);
15291 memset(output, 0x00, 128);
15292 memset(tag_output, 0x00, 16);
15294 key_len =
unhexify( key_str,
"fbe2d52b7f50bf23a16ff8cd864215034fdfbf4d1506ca3c1ffb015653efe33a" );
15296 iv_len =
unhexify( iv_str,
"b155f8ab1a8c0327789cfb8310051f19" );
15297 add_len =
unhexify( add_str,
"ed8d14adf1c362bbaf0d569c8083278e8225f883d75d237a4abcd775a49780603e50c00a1b5b5946c085e57a749b4946f6aca96eda04ac9944a7d3d47adc88326ed30a34d879dd02fb88182f9e2deefaeee1c306b897539fa9075bda03ba07b4ffff71ce732ef3c4befac0f18c85a0652d34524ccb1a4747ab8f72ed1c24d8fc" );
15299 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
15302 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
15303 hexify( dst_str, output, pt_len );
15304 hexify( tag_str, tag_output, tag_len );
15306 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
15307 fct_chk( strcmp( (
char *) tag_str,
"c5fe27ca90e5c8b321cc391ee7f1f796" ) == 0 );
15313 FCT_TEST_BGN(gcm_nist_validation_aes_25612801024128_2)
15315 unsigned char key_str[128];
15316 unsigned char src_str[128];
15317 unsigned char dst_str[257];
15318 unsigned char iv_str[128];
15319 unsigned char add_str[128];
15320 unsigned char tag_str[128];
15321 unsigned char output[128];
15322 unsigned char tag_output[16];
15324 unsigned int key_len;
15325 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
15327 memset(key_str, 0x00, 128);
15328 memset(src_str, 0x00, 128);
15329 memset(dst_str, 0x00, 257);
15330 memset(iv_str, 0x00, 128);
15331 memset(add_str, 0x00, 128);
15332 memset(tag_str, 0x00, 128);
15333 memset(output, 0x00, 128);
15334 memset(tag_output, 0x00, 16);
15336 key_len =
unhexify( key_str,
"8e888721514fd01fb67513cb56bfd29af67a9ce525e3e697af47450f02053161" );
15338 iv_len =
unhexify( iv_str,
"9f6bd4a93e4f3f2f5f4a7c2c5b4790bf" );
15339 add_len =
unhexify( add_str,
"867d50923967535ce6f00395930083523c22f373cfb6c8817764f5623cd60b555572404e54f2fe7083ef32b9a4593a1f70a736d6e8fe61b77def51f3b1d8f679d3a8d50d0aad49e51ec1eb4d4a25f13d14f3e5253555c73eac759e484c6131cc868b46c18b26acd040c3e1cb27afecba7b7fc3f5ff4883f4eafc26c7f3084751" );
15341 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
15344 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
15345 hexify( dst_str, output, pt_len );
15346 hexify( tag_str, tag_output, tag_len );
15348 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
15349 fct_chk( strcmp( (
char *) tag_str,
"ea269094330b6926627889fcdb06aab4" ) == 0 );
15355 FCT_TEST_BGN(gcm_nist_validation_aes_25612801024120_0)
15357 unsigned char key_str[128];
15358 unsigned char src_str[128];
15359 unsigned char dst_str[257];
15360 unsigned char iv_str[128];
15361 unsigned char add_str[128];
15362 unsigned char tag_str[128];
15363 unsigned char output[128];
15364 unsigned char tag_output[16];
15366 unsigned int key_len;
15367 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
15369 memset(key_str, 0x00, 128);
15370 memset(src_str, 0x00, 128);
15371 memset(dst_str, 0x00, 257);
15372 memset(iv_str, 0x00, 128);
15373 memset(add_str, 0x00, 128);
15374 memset(tag_str, 0x00, 128);
15375 memset(output, 0x00, 128);
15376 memset(tag_output, 0x00, 16);
15378 key_len =
unhexify( key_str,
"d8f82b07e7319ca607c9aa0352070ca883dd7b32af370a774f63b0270f44835a" );
15380 iv_len =
unhexify( iv_str,
"e89e4484497cb728f86585d8918b7fae" );
15381 add_len =
unhexify( add_str,
"42340d96e1852de3ed5e30eb4a05e1fb222480b450e2bf4e2cf0fb2a525eb6602ef43a896adc5c52ea5381c642b2175691c014e7a6dae91fa6ff5b95c18a2dd2e8838d3abd46ace0b305f3f22d30a0bd82a81bbf6753362b54b0624c76c0d753e30eb636365f0df7e1bf8bf130cf36062ec23f58a3f7ed0ae7bfbbd68460cd76" );
15383 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
15386 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
15387 hexify( dst_str, output, pt_len );
15388 hexify( tag_str, tag_output, tag_len );
15390 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
15391 fct_chk( strcmp( (
char *) tag_str,
"b234b28917372374e7f304f1462b49" ) == 0 );
15397 FCT_TEST_BGN(gcm_nist_validation_aes_25612801024120_1)
15399 unsigned char key_str[128];
15400 unsigned char src_str[128];
15401 unsigned char dst_str[257];
15402 unsigned char iv_str[128];
15403 unsigned char add_str[128];
15404 unsigned char tag_str[128];
15405 unsigned char output[128];
15406 unsigned char tag_output[16];
15408 unsigned int key_len;
15409 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
15411 memset(key_str, 0x00, 128);
15412 memset(src_str, 0x00, 128);
15413 memset(dst_str, 0x00, 257);
15414 memset(iv_str, 0x00, 128);
15415 memset(add_str, 0x00, 128);
15416 memset(tag_str, 0x00, 128);
15417 memset(output, 0x00, 128);
15418 memset(tag_output, 0x00, 16);
15420 key_len =
unhexify( key_str,
"b49b04a54a08d28b077ea54c18bfa53e916723e91453b47f88e399046b9b4dcc" );
15422 iv_len =
unhexify( iv_str,
"6276c577c530f91b434ce5719e1c59de" );
15423 add_len =
unhexify( add_str,
"6b73f996c49e368fc4d21816153aefb081509f9dc0916dbe4fdf77f39867a2bd617b8a75f39f515b1bc1454009d5247efcd90ba0d4a6743c6f12a929b666584f3b55254c32e2bab2321f94fa843dc5124c341dd509788a158191ee141eb0bc4e1b96f6987bafe664a0f9ac6d85c59cee9564a27bcc37dffae80c57fbf7e748ce" );
15425 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
15428 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
15429 hexify( dst_str, output, pt_len );
15430 hexify( tag_str, tag_output, tag_len );
15432 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
15433 fct_chk( strcmp( (
char *) tag_str,
"69dd5bdeb15fdbc3a70c44b150f70e" ) == 0 );
15439 FCT_TEST_BGN(gcm_nist_validation_aes_25612801024120_2)
15441 unsigned char key_str[128];
15442 unsigned char src_str[128];
15443 unsigned char dst_str[257];
15444 unsigned char iv_str[128];
15445 unsigned char add_str[128];
15446 unsigned char tag_str[128];
15447 unsigned char output[128];
15448 unsigned char tag_output[16];
15450 unsigned int key_len;
15451 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
15453 memset(key_str, 0x00, 128);
15454 memset(src_str, 0x00, 128);
15455 memset(dst_str, 0x00, 257);
15456 memset(iv_str, 0x00, 128);
15457 memset(add_str, 0x00, 128);
15458 memset(tag_str, 0x00, 128);
15459 memset(output, 0x00, 128);
15460 memset(tag_output, 0x00, 16);
15462 key_len =
unhexify( key_str,
"398bb37bb991898c7dad7bf5930dbad20d121f68d5ec6c56ffe66f23c0c37f8e" );
15464 iv_len =
unhexify( iv_str,
"0c3bd55b54c1221b0cf25d88ea4dfe24" );
15465 add_len =
unhexify( add_str,
"4c48b929f31180e697ea6199cd96c47cecc95c9ed4c442d6a23ca3a23d4b4833601ac4bbcdbc333cd1b3a0cd90338e1c88ef8561fed7ad0f4f54120b76281958995c95e4c9daabff75d71e2d5770420211c341c6b062b6c8b31b8fe8990588fbad1e651a49b0badd9a8d8042206337a1f2aa980b3ba3b5ee8e3396a2b9150a34" );
15467 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
15470 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
15471 hexify( dst_str, output, pt_len );
15472 hexify( tag_str, tag_output, tag_len );
15474 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
15475 fct_chk( strcmp( (
char *) tag_str,
"8528950bd5371681a78176ae1ea5dc" ) == 0 );
15481 FCT_TEST_BGN(gcm_nist_validation_aes_25612801024112_0)
15483 unsigned char key_str[128];
15484 unsigned char src_str[128];
15485 unsigned char dst_str[257];
15486 unsigned char iv_str[128];
15487 unsigned char add_str[128];
15488 unsigned char tag_str[128];
15489 unsigned char output[128];
15490 unsigned char tag_output[16];
15492 unsigned int key_len;
15493 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
15495 memset(key_str, 0x00, 128);
15496 memset(src_str, 0x00, 128);
15497 memset(dst_str, 0x00, 257);
15498 memset(iv_str, 0x00, 128);
15499 memset(add_str, 0x00, 128);
15500 memset(tag_str, 0x00, 128);
15501 memset(output, 0x00, 128);
15502 memset(tag_output, 0x00, 16);
15504 key_len =
unhexify( key_str,
"8e8f7c317b22dea8eabe7eaa87413a98ff56570720985b6743a5f9af56387cca" );
15506 iv_len =
unhexify( iv_str,
"3a9a5a839045723afdfb2d5df968bfcb" );
15507 add_len =
unhexify( add_str,
"a87d95f8f47e45a1c7c5c58d16055b52b3256c52713fd092bcd6cbc44e2c84669f23ca2a19e34163ee297f592f6054dbc88863a896c2217e93a660d55a6cd9588a7275d05649940d96815c7ddfa5fc4394c75349f05f1bcaff804095783726c0eceb79833a48cefd346b223f4e5401789684e5caeda187a323962a1f32f63f02" );
15509 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
15512 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
15513 hexify( dst_str, output, pt_len );
15514 hexify( tag_str, tag_output, tag_len );
15516 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
15517 fct_chk( strcmp( (
char *) tag_str,
"faad6a9731430e148ace27214e68" ) == 0 );
15523 FCT_TEST_BGN(gcm_nist_validation_aes_25612801024112_1)
15525 unsigned char key_str[128];
15526 unsigned char src_str[128];
15527 unsigned char dst_str[257];
15528 unsigned char iv_str[128];
15529 unsigned char add_str[128];
15530 unsigned char tag_str[128];
15531 unsigned char output[128];
15532 unsigned char tag_output[16];
15534 unsigned int key_len;
15535 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
15537 memset(key_str, 0x00, 128);
15538 memset(src_str, 0x00, 128);
15539 memset(dst_str, 0x00, 257);
15540 memset(iv_str, 0x00, 128);
15541 memset(add_str, 0x00, 128);
15542 memset(tag_str, 0x00, 128);
15543 memset(output, 0x00, 128);
15544 memset(tag_output, 0x00, 16);
15546 key_len =
unhexify( key_str,
"67c95e57197f0e0bbaaa866d337fcc37f3a10dc55a059f5ea498de204d2fff61" );
15548 iv_len =
unhexify( iv_str,
"5f171d203c653a316cac43df99f4033a" );
15549 add_len =
unhexify( add_str,
"84f281b388ca18bc97323657a723a56260731234720b02b6dde00ea134bd84a1893bec38af80214c4da01b93958ab00f3b648c975371e565d5b6bf2a8f63c0f3cfcd557c9f63574390b6ae533085aca51fa9d46cd2478b7648b6dcbbac7e61197a425778debe351ac2110ba510a17e2c351ba75d5a755ef547cf9acc54650222" );
15551 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
15554 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
15555 hexify( dst_str, output, pt_len );
15556 hexify( tag_str, tag_output, tag_len );
15558 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
15559 fct_chk( strcmp( (
char *) tag_str,
"9ea9c716e06a274d15a3595a0c41" ) == 0 );
15565 FCT_TEST_BGN(gcm_nist_validation_aes_25612801024112_2)
15567 unsigned char key_str[128];
15568 unsigned char src_str[128];
15569 unsigned char dst_str[257];
15570 unsigned char iv_str[128];
15571 unsigned char add_str[128];
15572 unsigned char tag_str[128];
15573 unsigned char output[128];
15574 unsigned char tag_output[16];
15576 unsigned int key_len;
15577 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
15579 memset(key_str, 0x00, 128);
15580 memset(src_str, 0x00, 128);
15581 memset(dst_str, 0x00, 257);
15582 memset(iv_str, 0x00, 128);
15583 memset(add_str, 0x00, 128);
15584 memset(tag_str, 0x00, 128);
15585 memset(output, 0x00, 128);
15586 memset(tag_output, 0x00, 16);
15588 key_len =
unhexify( key_str,
"9143f00e31c72bd9fced31585d047f67f1004e6244c3d9c10c8ae005feeabc84" );
15590 iv_len =
unhexify( iv_str,
"e49cd6af9a2f0da2a7198317da92ab2f" );
15591 add_len =
unhexify( add_str,
"ab9193a155140d265aabfe2dd5efca7d3fa6129498532bccd77f09fa1a480702620b3ab53df91b01262122f1a6fc387b5fc55dadfcdb99ada83d4a5b0666c8526de309f41eb54d69b52595c43550a6bf7b4b8f0e0c48311b521762eaa567744c4c4704dd977f84068b59db98a67e33cc65302ba59360d600a22138c5ad3317f3" );
15593 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
15596 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
15597 hexify( dst_str, output, pt_len );
15598 hexify( tag_str, tag_output, tag_len );
15600 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
15601 fct_chk( strcmp( (
char *) tag_str,
"8293e361fe0308a067f89aea393f" ) == 0 );
15607 FCT_TEST_BGN(gcm_nist_validation_aes_25612801024104_0)
15609 unsigned char key_str[128];
15610 unsigned char src_str[128];
15611 unsigned char dst_str[257];
15612 unsigned char iv_str[128];
15613 unsigned char add_str[128];
15614 unsigned char tag_str[128];
15615 unsigned char output[128];
15616 unsigned char tag_output[16];
15618 unsigned int key_len;
15619 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
15621 memset(key_str, 0x00, 128);
15622 memset(src_str, 0x00, 128);
15623 memset(dst_str, 0x00, 257);
15624 memset(iv_str, 0x00, 128);
15625 memset(add_str, 0x00, 128);
15626 memset(tag_str, 0x00, 128);
15627 memset(output, 0x00, 128);
15628 memset(tag_output, 0x00, 16);
15630 key_len =
unhexify( key_str,
"d0ba180075c373116bb037907b512add00ba9a4693a8ecc14ca0d79adada90e3" );
15632 iv_len =
unhexify( iv_str,
"5c1501b19cce5404dccc9217ac8253b7" );
15633 add_len =
unhexify( add_str,
"3a161605ec0055c479dd48cdaeed5981b8b60fb7b7781cc4e580218c7014c3060a9f706e6e16cf4021e4d38deb512534b484ff23b701975bdf901146ccaece9c3ffbbeeb172cfb64a915ae0dbe7a082b9077776a387b58559a881b9b79b90aa28ad1ac0f2bece314169a2f79ea4c08389f7f7dd10ee2d9a844fee79e7bf38bcf" );
15635 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
15638 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
15639 hexify( dst_str, output, pt_len );
15640 hexify( tag_str, tag_output, tag_len );
15642 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
15643 fct_chk( strcmp( (
char *) tag_str,
"0541262fddfd5d01ff0f3c2fb4" ) == 0 );
15649 FCT_TEST_BGN(gcm_nist_validation_aes_25612801024104_1)
15651 unsigned char key_str[128];
15652 unsigned char src_str[128];
15653 unsigned char dst_str[257];
15654 unsigned char iv_str[128];
15655 unsigned char add_str[128];
15656 unsigned char tag_str[128];
15657 unsigned char output[128];
15658 unsigned char tag_output[16];
15660 unsigned int key_len;
15661 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
15663 memset(key_str, 0x00, 128);
15664 memset(src_str, 0x00, 128);
15665 memset(dst_str, 0x00, 257);
15666 memset(iv_str, 0x00, 128);
15667 memset(add_str, 0x00, 128);
15668 memset(tag_str, 0x00, 128);
15669 memset(output, 0x00, 128);
15670 memset(tag_output, 0x00, 16);
15672 key_len =
unhexify( key_str,
"c975c7e59133c231d1b84c696761c413ba20aff7fb7d854c6947e65db3cc57b4" );
15674 iv_len =
unhexify( iv_str,
"d8fedda4cccaf6b0818edcfa7b1f03fa" );
15675 add_len =
unhexify( add_str,
"cb4cc9171367d6422abfaf2b4452da267eb9ccf1c4c97d21a0a125de486997832d16c7e412cb109eb9ac90c81dfe1a1dd9f79af7a14e91669b47f94e07d4e9bd645d9daa703b493179ca05ddd45433def98cf499ff11849cc88b58befbdd388728632469d8b28df4451fc671f4a3d69526a80c2e53e4fdee6300d27d97baf5f4" );
15677 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
15680 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
15681 hexify( dst_str, output, pt_len );
15682 hexify( tag_str, tag_output, tag_len );
15684 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
15685 fct_chk( strcmp( (
char *) tag_str,
"77ac205d959ec10ae8cee13eed" ) == 0 );
15691 FCT_TEST_BGN(gcm_nist_validation_aes_25612801024104_2)
15693 unsigned char key_str[128];
15694 unsigned char src_str[128];
15695 unsigned char dst_str[257];
15696 unsigned char iv_str[128];
15697 unsigned char add_str[128];
15698 unsigned char tag_str[128];
15699 unsigned char output[128];
15700 unsigned char tag_output[16];
15702 unsigned int key_len;
15703 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
15705 memset(key_str, 0x00, 128);
15706 memset(src_str, 0x00, 128);
15707 memset(dst_str, 0x00, 257);
15708 memset(iv_str, 0x00, 128);
15709 memset(add_str, 0x00, 128);
15710 memset(tag_str, 0x00, 128);
15711 memset(output, 0x00, 128);
15712 memset(tag_output, 0x00, 16);
15714 key_len =
unhexify( key_str,
"a86ec688222c50c07274ed2d2c8ae6f883e25f8f95d404a7538fd83224199327" );
15716 iv_len =
unhexify( iv_str,
"99c73fdb8f97f225f7a17cf79c011112" );
15717 add_len =
unhexify( add_str,
"cf5f707de0357262c0997fa3ebfe6e07192df8db5f029e418989e85e6b71e186b00c612ecedbfe3c847e58081847f39697337ae7c815d2cd0263986d06bf3a5d2db4e986dbe69071fd4b80a580f5a2cf734fc56c6d70202ea3494f67539797252d87cd7646296932959c99797a0446532f264d3089dd5f4bcceaaa7289a54380" );
15719 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
15722 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
15723 hexify( dst_str, output, pt_len );
15724 hexify( tag_str, tag_output, tag_len );
15726 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
15727 fct_chk( strcmp( (
char *) tag_str,
"c2093ad4705e613b09eee74057" ) == 0 );
15733 FCT_TEST_BGN(gcm_nist_validation_aes_2561280102496_0)
15735 unsigned char key_str[128];
15736 unsigned char src_str[128];
15737 unsigned char dst_str[257];
15738 unsigned char iv_str[128];
15739 unsigned char add_str[128];
15740 unsigned char tag_str[128];
15741 unsigned char output[128];
15742 unsigned char tag_output[16];
15744 unsigned int key_len;
15745 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
15747 memset(key_str, 0x00, 128);
15748 memset(src_str, 0x00, 128);
15749 memset(dst_str, 0x00, 257);
15750 memset(iv_str, 0x00, 128);
15751 memset(add_str, 0x00, 128);
15752 memset(tag_str, 0x00, 128);
15753 memset(output, 0x00, 128);
15754 memset(tag_output, 0x00, 16);
15756 key_len =
unhexify( key_str,
"d3981f0aa1ed8cb369d9b0d7b0e529ec6089ff2d226c542885b1bff55276e891" );
15758 iv_len =
unhexify( iv_str,
"7331f91bd1a67c21c9dd336a2a922839" );
15759 add_len =
unhexify( add_str,
"406d9cf45fc8618d564154241dc9c006ecdcd847406e5a6e7127ac96e7bb93f4c339ff612c514b6f66df95a0845035d7535212a2aaeeb0ee512d1f4375c9a527e4e499389c2d7f7f7439c913ea91580e7303767b989c4d619df7888baf789efd489b08eda223f27da5e177cd704c638f5fc8bf1fecfcd1cab4f4adfbc9d1d8ba" );
15761 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
15764 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
15765 hexify( dst_str, output, pt_len );
15766 hexify( tag_str, tag_output, tag_len );
15768 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
15769 fct_chk( strcmp( (
char *) tag_str,
"dbb7ec852c692c9a0e1a5acd" ) == 0 );
15775 FCT_TEST_BGN(gcm_nist_validation_aes_2561280102496_1)
15777 unsigned char key_str[128];
15778 unsigned char src_str[128];
15779 unsigned char dst_str[257];
15780 unsigned char iv_str[128];
15781 unsigned char add_str[128];
15782 unsigned char tag_str[128];
15783 unsigned char output[128];
15784 unsigned char tag_output[16];
15786 unsigned int key_len;
15787 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
15789 memset(key_str, 0x00, 128);
15790 memset(src_str, 0x00, 128);
15791 memset(dst_str, 0x00, 257);
15792 memset(iv_str, 0x00, 128);
15793 memset(add_str, 0x00, 128);
15794 memset(tag_str, 0x00, 128);
15795 memset(output, 0x00, 128);
15796 memset(tag_output, 0x00, 16);
15798 key_len =
unhexify( key_str,
"8436967f97c59ca73b760b73c6e088d1da4e76b712188ab4781d8d849505ae47" );
15800 iv_len =
unhexify( iv_str,
"9401dd0998914645668d06d518bfe7d7" );
15801 add_len =
unhexify( add_str,
"a5f40906177417097c19a0a21dbb457a694e173141837f695b09c8eb58ac2ce28aace4e59275b6266da9369a9905b389e968aefc64d78c7e1d2f034ef413d3458edcb955f5cd7971c28cd67dc9901ef3a2abc6121704bb5ecd87a6568d0506abbc87a2f10205dc8eb0cd1b5109158d0e743c2c3a342d60b8d55bbcb8d8507ed1" );
15803 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
15806 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
15807 hexify( dst_str, output, pt_len );
15808 hexify( tag_str, tag_output, tag_len );
15810 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
15811 fct_chk( strcmp( (
char *) tag_str,
"dd6d988d352decc4e70375d8" ) == 0 );
15817 FCT_TEST_BGN(gcm_nist_validation_aes_2561280102496_2)
15819 unsigned char key_str[128];
15820 unsigned char src_str[128];
15821 unsigned char dst_str[257];
15822 unsigned char iv_str[128];
15823 unsigned char add_str[128];
15824 unsigned char tag_str[128];
15825 unsigned char output[128];
15826 unsigned char tag_output[16];
15828 unsigned int key_len;
15829 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
15831 memset(key_str, 0x00, 128);
15832 memset(src_str, 0x00, 128);
15833 memset(dst_str, 0x00, 257);
15834 memset(iv_str, 0x00, 128);
15835 memset(add_str, 0x00, 128);
15836 memset(tag_str, 0x00, 128);
15837 memset(output, 0x00, 128);
15838 memset(tag_output, 0x00, 16);
15840 key_len =
unhexify( key_str,
"ce6b846bcedc6ae747e66e72cd9f7664e6cad9627ba5f1f1923f3d3a6ed590d1" );
15842 iv_len =
unhexify( iv_str,
"ac865ff8a6255e501b347a6650510d05" );
15843 add_len =
unhexify( add_str,
"1658b9f8469af1dfa60458cf8107db1edd1e4bba70a0bd23e13e1bba0d397abf51af8348f983fcdfcc8315ef1ffc9a26371377c62ddba08363bd2bf0ff7d0c3b603fad10be24ecee97b36d2255a8b2efc63f037123cef4bb4fe384aa0c58548b2f317c36ef3ef204b24769de6ba3e9d89e159e2bf1f9d79aeb3eb80c42eb255e" );
15845 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
15848 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
15849 hexify( dst_str, output, pt_len );
15850 hexify( tag_str, tag_output, tag_len );
15852 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
15853 fct_chk( strcmp( (
char *) tag_str,
"7ee87acd138c558455fff063" ) == 0 );
15859 FCT_TEST_BGN(gcm_nist_validation_aes_2561280102464_0)
15861 unsigned char key_str[128];
15862 unsigned char src_str[128];
15863 unsigned char dst_str[257];
15864 unsigned char iv_str[128];
15865 unsigned char add_str[128];
15866 unsigned char tag_str[128];
15867 unsigned char output[128];
15868 unsigned char tag_output[16];
15870 unsigned int key_len;
15871 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
15873 memset(key_str, 0x00, 128);
15874 memset(src_str, 0x00, 128);
15875 memset(dst_str, 0x00, 257);
15876 memset(iv_str, 0x00, 128);
15877 memset(add_str, 0x00, 128);
15878 memset(tag_str, 0x00, 128);
15879 memset(output, 0x00, 128);
15880 memset(tag_output, 0x00, 16);
15882 key_len =
unhexify( key_str,
"0038ecf1407bbf0d73afa5e010769b71e8649c4249345dcf923ef9da0254c6af" );
15884 iv_len =
unhexify( iv_str,
"74c6b98fc6ced3a59bd9c42d31d71095" );
15885 add_len =
unhexify( add_str,
"467f483c71c3404fe7f09d6f6b6b64c3b7613a0dd32470cf24bc590d3994a48f3e8cd5dc19ea8ca7d5366ad7c5ad31cc9612dafedaea109dde2aedfe5fc2a0db2c903dd1dc1a13949720a10babf37fba5a0ed7cb5f3dc9eb5a4d8331f218e98763e7794b3e63705d414ef332160b0b1799f1ff5cbe129a75e5c4e0a4ed35e382" );
15887 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
15890 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
15891 hexify( dst_str, output, pt_len );
15892 hexify( tag_str, tag_output, tag_len );
15894 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
15895 fct_chk( strcmp( (
char *) tag_str,
"62fe088d9129450b" ) == 0 );
15901 FCT_TEST_BGN(gcm_nist_validation_aes_2561280102464_1)
15903 unsigned char key_str[128];
15904 unsigned char src_str[128];
15905 unsigned char dst_str[257];
15906 unsigned char iv_str[128];
15907 unsigned char add_str[128];
15908 unsigned char tag_str[128];
15909 unsigned char output[128];
15910 unsigned char tag_output[16];
15912 unsigned int key_len;
15913 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
15915 memset(key_str, 0x00, 128);
15916 memset(src_str, 0x00, 128);
15917 memset(dst_str, 0x00, 257);
15918 memset(iv_str, 0x00, 128);
15919 memset(add_str, 0x00, 128);
15920 memset(tag_str, 0x00, 128);
15921 memset(output, 0x00, 128);
15922 memset(tag_output, 0x00, 16);
15924 key_len =
unhexify( key_str,
"19fc4c22151ee8515036c38bc5926c0e0bbd93db5d0fc522b2a6bf6298fed391" );
15926 iv_len =
unhexify( iv_str,
"9547f056c6fb9ef72b908f527cb500c1" );
15927 add_len =
unhexify( add_str,
"511b15c25b2a324159e71c3b8e47f52d3e71e5bc35e774c39067250f4494c9c4eb184ecbe8638de9418672d9ae2c6a0e7f54c017879ffb2a371de1639693d654a43cb86e94a7350508490191790d1265b99e7b3253838b302aae33590949a8761a3bb2aeb1ba798cddeb00a53daad05a33389d4a19269d65116a84f12dba5830" );
15929 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
15932 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
15933 hexify( dst_str, output, pt_len );
15934 hexify( tag_str, tag_output, tag_len );
15936 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
15937 fct_chk( strcmp( (
char *) tag_str,
"04623912bb70810e" ) == 0 );
15943 FCT_TEST_BGN(gcm_nist_validation_aes_2561280102464_2)
15945 unsigned char key_str[128];
15946 unsigned char src_str[128];
15947 unsigned char dst_str[257];
15948 unsigned char iv_str[128];
15949 unsigned char add_str[128];
15950 unsigned char tag_str[128];
15951 unsigned char output[128];
15952 unsigned char tag_output[16];
15954 unsigned int key_len;
15955 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
15957 memset(key_str, 0x00, 128);
15958 memset(src_str, 0x00, 128);
15959 memset(dst_str, 0x00, 257);
15960 memset(iv_str, 0x00, 128);
15961 memset(add_str, 0x00, 128);
15962 memset(tag_str, 0x00, 128);
15963 memset(output, 0x00, 128);
15964 memset(tag_output, 0x00, 16);
15966 key_len =
unhexify( key_str,
"3b5d3b1920b5a105b148153ae1f1027c6d48bc99640ea853f5955fed4eb3d625" );
15968 iv_len =
unhexify( iv_str,
"9a4091c2eb7e88759bd9169fee303485" );
15969 add_len =
unhexify( add_str,
"aa680d07143ba49a9099d555105fc3cfcb898cec11ade96776dc9778cc50fe972e1e83c52c837b71e27f81d1577f9bd09afe2260dfd9a5d9dfbd3b8b09a346a2ab48647f5dd2ff43700aecce7fa6f4aeea6ea01b2463c4e82ec116e4d92b309c5879fb4e2ca820d0183a2057ae4ad96f38a7d50643a835511aedd0442b290be3" );
15971 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
15974 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
15975 hexify( dst_str, output, pt_len );
15976 hexify( tag_str, tag_output, tag_len );
15978 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
15979 fct_chk( strcmp( (
char *) tag_str,
"033bfee6b228d59b" ) == 0 );
15985 FCT_TEST_BGN(gcm_nist_validation_aes_2561280102432_0)
15987 unsigned char key_str[128];
15988 unsigned char src_str[128];
15989 unsigned char dst_str[257];
15990 unsigned char iv_str[128];
15991 unsigned char add_str[128];
15992 unsigned char tag_str[128];
15993 unsigned char output[128];
15994 unsigned char tag_output[16];
15996 unsigned int key_len;
15997 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
15999 memset(key_str, 0x00, 128);
16000 memset(src_str, 0x00, 128);
16001 memset(dst_str, 0x00, 257);
16002 memset(iv_str, 0x00, 128);
16003 memset(add_str, 0x00, 128);
16004 memset(tag_str, 0x00, 128);
16005 memset(output, 0x00, 128);
16006 memset(tag_output, 0x00, 16);
16008 key_len =
unhexify( key_str,
"f6c4ad8e27764157789252f4bc4a04145cb9721955330a2f6a2a3b65cacf22bc" );
16010 iv_len =
unhexify( iv_str,
"3de136cbd75061c888226efab136849d" );
16011 add_len =
unhexify( add_str,
"0f6951c127d6bc8970e2ad2799e26c7fb9ca31d223155f88374984b5660626c83276ffa6c160f75e0e1bcfa96616188f3945b15fc1b82a4e0ee44000a684b3c3840465aebe051208379ef3afe9f569ee94973d15f0a40c6f564fa4ba11d6e33cf8ae17854a9e12360a2b8495e2cceec463f5e3705c74069ba37ba6d725f458c0" );
16013 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
16016 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
16017 hexify( dst_str, output, pt_len );
16018 hexify( tag_str, tag_output, tag_len );
16020 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
16021 fct_chk( strcmp( (
char *) tag_str,
"f658c689" ) == 0 );
16027 FCT_TEST_BGN(gcm_nist_validation_aes_2561280102432_1)
16029 unsigned char key_str[128];
16030 unsigned char src_str[128];
16031 unsigned char dst_str[257];
16032 unsigned char iv_str[128];
16033 unsigned char add_str[128];
16034 unsigned char tag_str[128];
16035 unsigned char output[128];
16036 unsigned char tag_output[16];
16038 unsigned int key_len;
16039 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
16041 memset(key_str, 0x00, 128);
16042 memset(src_str, 0x00, 128);
16043 memset(dst_str, 0x00, 257);
16044 memset(iv_str, 0x00, 128);
16045 memset(add_str, 0x00, 128);
16046 memset(tag_str, 0x00, 128);
16047 memset(output, 0x00, 128);
16048 memset(tag_output, 0x00, 16);
16050 key_len =
unhexify( key_str,
"30cd99fed9706c409e366d47fefc191f79bcc47a28be78f9890fd90d4864eb85" );
16052 iv_len =
unhexify( iv_str,
"8c7ce34691503bf14c776f8809f24e61" );
16053 add_len =
unhexify( add_str,
"4b6b10c2e2905ab356769b6453dd160a08e8623b0878fcc1c1d64822f0aea1f4f5b4698ded5d23ebafa11bc1e4ce9e5cd7d7c7b13de02d11a945ba8361b102ba49cdcfd6a416e3db774cd7bda024fccd1ad3087560dc15bbfe9b1a5c6c71fae17a329f104f6c2cba7eb6a7459535ca328146d0ccc0a9bd28a3d1c961947a3876" );
16055 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
16058 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
16059 hexify( dst_str, output, pt_len );
16060 hexify( tag_str, tag_output, tag_len );
16062 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
16063 fct_chk( strcmp( (
char *) tag_str,
"7777c224" ) == 0 );
16069 FCT_TEST_BGN(gcm_nist_validation_aes_2561280102432_2)
16071 unsigned char key_str[128];
16072 unsigned char src_str[128];
16073 unsigned char dst_str[257];
16074 unsigned char iv_str[128];
16075 unsigned char add_str[128];
16076 unsigned char tag_str[128];
16077 unsigned char output[128];
16078 unsigned char tag_output[16];
16080 unsigned int key_len;
16081 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
16083 memset(key_str, 0x00, 128);
16084 memset(src_str, 0x00, 128);
16085 memset(dst_str, 0x00, 257);
16086 memset(iv_str, 0x00, 128);
16087 memset(add_str, 0x00, 128);
16088 memset(tag_str, 0x00, 128);
16089 memset(output, 0x00, 128);
16090 memset(tag_output, 0x00, 16);
16092 key_len =
unhexify( key_str,
"9472f2452933dcfac4bb22831ce83c6a1ddf25ef8d2d3ba59d72b0d173a986e8" );
16094 iv_len =
unhexify( iv_str,
"18fb2c34b0955d712960009617d300ef" );
16095 add_len =
unhexify( add_str,
"d283dd75cd4689c266c8e0b4b6586278aa2583c7c41bf12bd1cfdef21d349acbbabc0a2204dc4130f922949206c4fbdce3786ab8614e32908838a13b6990453abf14b84f5812e6093644accdd35f7ad611ea15aefae28b3cf1fc5da410bcea4f0a50d377fdcceffe488805bc5a71fab019b12fa8725d6e7c91e6faf12fbaf493" );
16097 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
16100 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
16101 hexify( dst_str, output, pt_len );
16102 hexify( tag_str, tag_output, tag_len );
16104 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
16105 fct_chk( strcmp( (
char *) tag_str,
"c53b16a1" ) == 0 );
16111 FCT_TEST_BGN(gcm_nist_validation_aes_25612810240128_0)
16113 unsigned char key_str[128];
16114 unsigned char src_str[128];
16115 unsigned char dst_str[257];
16116 unsigned char iv_str[128];
16117 unsigned char add_str[128];
16118 unsigned char tag_str[128];
16119 unsigned char output[128];
16120 unsigned char tag_output[16];
16122 unsigned int key_len;
16123 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
16125 memset(key_str, 0x00, 128);
16126 memset(src_str, 0x00, 128);
16127 memset(dst_str, 0x00, 257);
16128 memset(iv_str, 0x00, 128);
16129 memset(add_str, 0x00, 128);
16130 memset(tag_str, 0x00, 128);
16131 memset(output, 0x00, 128);
16132 memset(tag_output, 0x00, 16);
16134 key_len =
unhexify( key_str,
"e06d5319210f4107ea7267fa2e8183fcbf74fd3b0579b856577177d9cb307d42" );
16135 pt_len =
unhexify( src_str,
"2b9179d21cb884581b0e4f462455167f1f7899717245d4aed3d8db5983daccccebfc2130a20c284563bea5997cc0438c83d8fa7bb9e3588efed285a0fcc31456dc9a3122b97bb22f7edc36973475925828c323565e417ec95190db63b21881016b5332f2e400bb4724c86a8ee0247149370ee5412f743dc6bf7ca5bcc31afa0f" );
16136 iv_len =
unhexify( iv_str,
"f2b0564705430bc672964b049115e122" );
16137 add_len =
unhexify( add_str,
"" );
16139 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
16142 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
16143 hexify( dst_str, output, pt_len );
16144 hexify( tag_str, tag_output, tag_len );
16146 fct_chk( strcmp( (
char *) dst_str,
"3fa342a76cb5d501e6a6fade14aab54a76620e4ea2287147d4ca2b9d62d2a643591e5df570ef474ee88ad22401c1059e3130a904e9bf359c4a6151ff2f3e4f78ef27a67d527da8e448b0ef5cdcfec85f3525e35f8d024540387e4cdcb1018c281a1af7d4a3688a0fec4d9f473c816f7d4c4c369f70d7dfe8f1b7fa4f581098a1" ) == 0 );
16147 fct_chk( strcmp( (
char *) tag_str,
"18f186ed1ee1f4f8b29db495587d0ab0" ) == 0 );
16153 FCT_TEST_BGN(gcm_nist_validation_aes_25612810240128_1)
16155 unsigned char key_str[128];
16156 unsigned char src_str[128];
16157 unsigned char dst_str[257];
16158 unsigned char iv_str[128];
16159 unsigned char add_str[128];
16160 unsigned char tag_str[128];
16161 unsigned char output[128];
16162 unsigned char tag_output[16];
16164 unsigned int key_len;
16165 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
16167 memset(key_str, 0x00, 128);
16168 memset(src_str, 0x00, 128);
16169 memset(dst_str, 0x00, 257);
16170 memset(iv_str, 0x00, 128);
16171 memset(add_str, 0x00, 128);
16172 memset(tag_str, 0x00, 128);
16173 memset(output, 0x00, 128);
16174 memset(tag_output, 0x00, 16);
16176 key_len =
unhexify( key_str,
"0dfa834e98b6c51ee925dd9edc9be72c209ddcd9099ded57b533f2236895a229" );
16177 pt_len =
unhexify( src_str,
"7f4e4f11091bf51976c0fc71ecbcd0985cdad2135549c818c09567801d8a9a42c719aab7dc2cb58a10b5067d14c52cabe6bb9b939e7b9cd395eaf10ba6a53fd2e6446e1e501440134e04e662ef7ebb1c9c78bbd3fd7cb9de8b985418be1b43ebb5d7902ccb4c299c325c8a7cc1de9174f544bc60828c1eebad49287caa4108a0" );
16178 iv_len =
unhexify( iv_str,
"a101b13b238cfac6964fd6a43daea5a7" );
16179 add_len =
unhexify( add_str,
"" );
16181 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
16184 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
16185 hexify( dst_str, output, pt_len );
16186 hexify( tag_str, tag_output, tag_len );
16188 fct_chk( strcmp( (
char *) dst_str,
"bc60d2047fd8712144e95cb8de1ffd9f13de7fda995f845b1a4246a4403f61ca896bd635a1570d2eb5b8740d365225c3310bf8cea3f5597826c65876b0cbcfa0e2181575be8e4dd222d236d8a8064a10a56262056906c1ac3c4e7100a92f3f00dab5a9ba139c72519b136d387da71fefe2564d9f1aa85b206a205267b4cfa538" ) == 0 );
16189 fct_chk( strcmp( (
char *) tag_str,
"c4cc1dbd1b7ff2e36f9f9f64e2385b9e" ) == 0 );
16195 FCT_TEST_BGN(gcm_nist_validation_aes_25612810240128_2)
16197 unsigned char key_str[128];
16198 unsigned char src_str[128];
16199 unsigned char dst_str[257];
16200 unsigned char iv_str[128];
16201 unsigned char add_str[128];
16202 unsigned char tag_str[128];
16203 unsigned char output[128];
16204 unsigned char tag_output[16];
16206 unsigned int key_len;
16207 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
16209 memset(key_str, 0x00, 128);
16210 memset(src_str, 0x00, 128);
16211 memset(dst_str, 0x00, 257);
16212 memset(iv_str, 0x00, 128);
16213 memset(add_str, 0x00, 128);
16214 memset(tag_str, 0x00, 128);
16215 memset(output, 0x00, 128);
16216 memset(tag_output, 0x00, 16);
16218 key_len =
unhexify( key_str,
"ce59144b114ac5587a7a8079dc0e26f1b203338bb3e4b1d1d987bddc24150a82" );
16219 pt_len =
unhexify( src_str,
"bc7aa1b735a5f465cffeccd8dd4b0a33a571e9f006dc63b2a6f4df272a673bb2cc00e603248ab6be5627eebc10934fe4d1dc5cd120a475936eefa2c7bddea9f36c6c794d2c6bd2594094e56cac12d8f03e38f222a7ee4fc6c2adffe71c9c13003e301c31ff3a0405dde89bb213044d41782c4bb4eb3c262595d1c0e00522047c" );
16220 iv_len =
unhexify( iv_str,
"fdc5a40677110737febae4465b1a76cc" );
16221 add_len =
unhexify( add_str,
"" );
16223 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
16226 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
16227 hexify( dst_str, output, pt_len );
16228 hexify( tag_str, tag_output, tag_len );
16230 fct_chk( strcmp( (
char *) dst_str,
"084c31c8aef8c089867f6e0ce6e0aadafa3016c33c00ca520f28d45aac8f4d02a519b8ebafd13b9606ab9db4f2572f396091bc5a1d9910119ca662d476c2d875a4ab62d31ff5f875678f25a4775fa7fc85b1a3d442fb2c5047a3d349d56d85f85f172965e6477439045849a0b58014d9d442e2cae74709ed8594f0ec119d1d39" ) == 0 );
16231 fct_chk( strcmp( (
char *) tag_str,
"4c39e0d17030a5f06ecd5f4c26e79b31" ) == 0 );
16237 FCT_TEST_BGN(gcm_nist_validation_aes_25612810240120_0)
16239 unsigned char key_str[128];
16240 unsigned char src_str[128];
16241 unsigned char dst_str[257];
16242 unsigned char iv_str[128];
16243 unsigned char add_str[128];
16244 unsigned char tag_str[128];
16245 unsigned char output[128];
16246 unsigned char tag_output[16];
16248 unsigned int key_len;
16249 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
16251 memset(key_str, 0x00, 128);
16252 memset(src_str, 0x00, 128);
16253 memset(dst_str, 0x00, 257);
16254 memset(iv_str, 0x00, 128);
16255 memset(add_str, 0x00, 128);
16256 memset(tag_str, 0x00, 128);
16257 memset(output, 0x00, 128);
16258 memset(tag_output, 0x00, 16);
16260 key_len =
unhexify( key_str,
"e7a6b459a5370ceec4d429bba9472a49db07697dc66dbc2f294d3e62ffc8aac1" );
16261 pt_len =
unhexify( src_str,
"cb959e5611a636317feb5265d33b315c2f5af64159029f0032e338babbdb0a525ba6b92cb3be7db9f0077561e6cffe1247bad32dea8918f562dc3cd83225cdbcaed652b87c62fea8eff153638a3a14ef9f9a88bcc8c9a6b65fa9dcc53f63d1b14fb9bb0baf17e7bfb95690c25cca2c3097497e41f7e2299a8518d5d1c5f6264e" );
16262 iv_len =
unhexify( iv_str,
"92468d42ad377affa7e808d95d8c673a" );
16263 add_len =
unhexify( add_str,
"" );
16265 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
16268 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
16269 hexify( dst_str, output, pt_len );
16270 hexify( tag_str, tag_output, tag_len );
16272 fct_chk( strcmp( (
char *) dst_str,
"599dbc47e2f2e3b06b641c510b238417b01869f0e7d08619752f6d9f4b08585731deaeb439ff26e02d7e51b45ca5e3d4a779fe4cfc9572d1d6407f98de69a8fca60bf01d1a769130bb38a67933a2be3aa3ea1470d8f32a34dc863dc800feb7ef71588edd9489bd59a23685ff5358f9b562fc0bbad9e11db7a6fedbd79225539d" ) == 0 );
16273 fct_chk( strcmp( (
char *) tag_str,
"e853262ed43e4d40fea6f3835d4381" ) == 0 );
16279 FCT_TEST_BGN(gcm_nist_validation_aes_25612810240120_1)
16281 unsigned char key_str[128];
16282 unsigned char src_str[128];
16283 unsigned char dst_str[257];
16284 unsigned char iv_str[128];
16285 unsigned char add_str[128];
16286 unsigned char tag_str[128];
16287 unsigned char output[128];
16288 unsigned char tag_output[16];
16290 unsigned int key_len;
16291 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
16293 memset(key_str, 0x00, 128);
16294 memset(src_str, 0x00, 128);
16295 memset(dst_str, 0x00, 257);
16296 memset(iv_str, 0x00, 128);
16297 memset(add_str, 0x00, 128);
16298 memset(tag_str, 0x00, 128);
16299 memset(output, 0x00, 128);
16300 memset(tag_output, 0x00, 16);
16302 key_len =
unhexify( key_str,
"9818904a99e3d80c95dc71a16483ade1b9b8e7df638ce6a4c1d709a24416cbe9" );
16303 pt_len =
unhexify( src_str,
"2c073cdc11a8d58fb55e1dadbbc0372dde86c387fa99c9249bd04cb2f2d239de01bec8c8771a9fb33664ee06ea81c37a824525664054173b63a2894d8d7ffc60b9e93052802478a189be5835d979a28ce7025b219add0622f97c9bcf3ecf629b56408ed002a141061320400409345e94a7a7e3906611305f96f2abc9d62cc435" );
16304 iv_len =
unhexify( iv_str,
"96a301ab6bc0309be9735bd21cc9e10d" );
16305 add_len =
unhexify( add_str,
"" );
16307 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
16310 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
16311 hexify( dst_str, output, pt_len );
16312 hexify( tag_str, tag_output, tag_len );
16314 fct_chk( strcmp( (
char *) dst_str,
"4876e449b0cac09a37bb7e4b8da238f4c699af9714ec4fcf21a07c5aee8783311a13149d837a949c594a472dda01e8b6c064755b6328e3ef8d6063f8d8f19cfda3147b563b0f5fb8556ace49cb0f872822a63b06f261b6970f7c18be19372a852beadf02288c0b4079587c0f8eab1858eeec11c6ba8d64448282068fddd8a63d" ) == 0 );
16315 fct_chk( strcmp( (
char *) tag_str,
"e1e8b62ce427e5192348b1f09183c9" ) == 0 );
16321 FCT_TEST_BGN(gcm_nist_validation_aes_25612810240120_2)
16323 unsigned char key_str[128];
16324 unsigned char src_str[128];
16325 unsigned char dst_str[257];
16326 unsigned char iv_str[128];
16327 unsigned char add_str[128];
16328 unsigned char tag_str[128];
16329 unsigned char output[128];
16330 unsigned char tag_output[16];
16332 unsigned int key_len;
16333 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
16335 memset(key_str, 0x00, 128);
16336 memset(src_str, 0x00, 128);
16337 memset(dst_str, 0x00, 257);
16338 memset(iv_str, 0x00, 128);
16339 memset(add_str, 0x00, 128);
16340 memset(tag_str, 0x00, 128);
16341 memset(output, 0x00, 128);
16342 memset(tag_output, 0x00, 16);
16344 key_len =
unhexify( key_str,
"9b34f137e3f37addad8a6573b8b6dac9a29e97db53c0a7610f37c72a0efaebfa" );
16345 pt_len =
unhexify( src_str,
"c1e09c432c68a2c119aeb3b19c21180e3c8e428e12033f416a92862036f5e8a39a8893b10fe5476e388d079143ee0b79b183a3400db779cfbf1467d69887306b124a8578c173cd5308d4448eefcf1d57f117eb12bc28bd1d0ff5c3702139655197d7305bda70181c85376e1a90fb2c5b036d9ea5d318d3219132ea6c5edf7b7d" );
16346 iv_len =
unhexify( iv_str,
"50dddb2ebe4f8763509a63d07322277e" );
16347 add_len =
unhexify( add_str,
"" );
16349 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
16352 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
16353 hexify( dst_str, output, pt_len );
16354 hexify( tag_str, tag_output, tag_len );
16356 fct_chk( strcmp( (
char *) dst_str,
"793e1b06e1593b8c0ba13a38ff23afaa6007482262bc2d0de9fb910f349eff88d3dd05d56eb9a089eed801eae851676b7a401991b72bf45ac005c89e906a37ed7231df4aeeeb1fcf206ca1311117e7e7348faf1d58acc69c5702f802287083d3ed9e16cf87adcdfa1bb0c21c40c2102fd0def91985f92285e6ea1cdd550e7f50" ) == 0 );
16357 fct_chk( strcmp( (
char *) tag_str,
"b3c6ae17274faaca657dcb172dc1fb" ) == 0 );
16363 FCT_TEST_BGN(gcm_nist_validation_aes_25612810240112_0)
16365 unsigned char key_str[128];
16366 unsigned char src_str[128];
16367 unsigned char dst_str[257];
16368 unsigned char iv_str[128];
16369 unsigned char add_str[128];
16370 unsigned char tag_str[128];
16371 unsigned char output[128];
16372 unsigned char tag_output[16];
16374 unsigned int key_len;
16375 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
16377 memset(key_str, 0x00, 128);
16378 memset(src_str, 0x00, 128);
16379 memset(dst_str, 0x00, 257);
16380 memset(iv_str, 0x00, 128);
16381 memset(add_str, 0x00, 128);
16382 memset(tag_str, 0x00, 128);
16383 memset(output, 0x00, 128);
16384 memset(tag_output, 0x00, 16);
16386 key_len =
unhexify( key_str,
"66b40e2e671bdf244b45644d1a5adc63011b32156ba9f5e03dffacc1a9165061" );
16387 pt_len =
unhexify( src_str,
"985546ee12ba89d95988ad8a4153c4f9d3c91c0e3633a95b4f9b588bba0032006c93210514357c91d574b436da13dc9f68194a981e7b65eb79e56be9cf1dabfdf531407727c034a3c7743bb22aa02b26f159c2eff3c7ed52027de2e8b8b2fefb72c04fbf20a1ffe10d6dda790a9812cdbe9f2ed6706d7a2639e851a42870efb8" );
16388 iv_len =
unhexify( iv_str,
"4e090871e889b4be36db5e1df1ea283d" );
16389 add_len =
unhexify( add_str,
"" );
16391 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
16394 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
16395 hexify( dst_str, output, pt_len );
16396 hexify( tag_str, tag_output, tag_len );
16398 fct_chk( strcmp( (
char *) dst_str,
"f93eebffeddfd16b4618b893d57b459b704b894b38a5eaf6cce54026c80090be8328e12261e1b10e81c73ac8261c2982bb25603c12f5ffff5c70b2199515c17200db2d950a3f2064d7b362607adbf3686f27420ec15e18467e86faa1efa946a73c8888b8fdc825742b8fbec6e48cdabbb45f3cd2b6b6e536b6fbf3429aebe934" ) == 0 );
16399 fct_chk( strcmp( (
char *) tag_str,
"ed88c856c41cac49f4767909ac79" ) == 0 );
16405 FCT_TEST_BGN(gcm_nist_validation_aes_25612810240112_1)
16407 unsigned char key_str[128];
16408 unsigned char src_str[128];
16409 unsigned char dst_str[257];
16410 unsigned char iv_str[128];
16411 unsigned char add_str[128];
16412 unsigned char tag_str[128];
16413 unsigned char output[128];
16414 unsigned char tag_output[16];
16416 unsigned int key_len;
16417 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
16419 memset(key_str, 0x00, 128);
16420 memset(src_str, 0x00, 128);
16421 memset(dst_str, 0x00, 257);
16422 memset(iv_str, 0x00, 128);
16423 memset(add_str, 0x00, 128);
16424 memset(tag_str, 0x00, 128);
16425 memset(output, 0x00, 128);
16426 memset(tag_output, 0x00, 16);
16428 key_len =
unhexify( key_str,
"18c5105a9651144ce965b4270398b982120b885850114571ef8e2cbc5d2f5e04" );
16429 pt_len =
unhexify( src_str,
"00c5ea3d91248bfe30c5a6d26dbdf0609f977afcfa842b603c1061b2a473c9a79b421b2509550309e4be9c5015c51c6def9ee68c242f6e206b3027ce8e58b7ab96aaa50ced1d78c2dfcbc2589575bec2ce3b6a5066276fe7dca4f1118808d1e5cac062667053c15350289da03cd073377c2d66c01e3098ed01b75788c7e1f9e7" );
16430 iv_len =
unhexify( iv_str,
"a3a5f82748acc887e33328fd7f4ce1fd" );
16431 add_len =
unhexify( add_str,
"" );
16433 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
16436 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
16437 hexify( dst_str, output, pt_len );
16438 hexify( tag_str, tag_output, tag_len );
16440 fct_chk( strcmp( (
char *) dst_str,
"d91ed6886a269dc1eb0745dc4b97fc54cbea5e6857d10a303a3caf828b4e0e20bb742bca17021b7852d09a6d7d3a56ad82298c15a2082fed0e0e326bb16dd677ee262ead93a24147de3c07eb8a95b108abf17357155f1de79171689407b6545c9fdf8ab4486576490430c0e043e21e7c40ce88e752cb006cb3c59479a7e56cf7" ) == 0 );
16441 fct_chk( strcmp( (
char *) tag_str,
"add4e086d612a119c6aae46ba9e5" ) == 0 );
16447 FCT_TEST_BGN(gcm_nist_validation_aes_25612810240112_2)
16449 unsigned char key_str[128];
16450 unsigned char src_str[128];
16451 unsigned char dst_str[257];
16452 unsigned char iv_str[128];
16453 unsigned char add_str[128];
16454 unsigned char tag_str[128];
16455 unsigned char output[128];
16456 unsigned char tag_output[16];
16458 unsigned int key_len;
16459 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
16461 memset(key_str, 0x00, 128);
16462 memset(src_str, 0x00, 128);
16463 memset(dst_str, 0x00, 257);
16464 memset(iv_str, 0x00, 128);
16465 memset(add_str, 0x00, 128);
16466 memset(tag_str, 0x00, 128);
16467 memset(output, 0x00, 128);
16468 memset(tag_output, 0x00, 16);
16470 key_len =
unhexify( key_str,
"4667cabeb3a644e371cbbe9195413daab025cc6efc12298bfaea0dd9bc028f9f" );
16471 pt_len =
unhexify( src_str,
"9772ec47f3cd26f091bf117e085f2394db258c2c460dc3b1402edcb60a8f70517f82aa669607b78c2ad79c662c3b376cee1b9f34c4ec5d15319c33de78a440e7f2a4108c3c9da51604adde2025ff1dc336c49279c13a7153931df675df0e78f17a4d72973311af74fe755c85c7869baf3896bb738925942dc67f1b6e690c9d48" );
16472 iv_len =
unhexify( iv_str,
"7e8927c69951d901494539ab95ac5906" );
16473 add_len =
unhexify( add_str,
"" );
16475 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
16478 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
16479 hexify( dst_str, output, pt_len );
16480 hexify( tag_str, tag_output, tag_len );
16482 fct_chk( strcmp( (
char *) dst_str,
"5d62fa69cfbfdec30193408dad15cf983ad707ee921068b817676eca9f70f9ca4623a8c113df5fba86131415f4ec546c7f1a94ff9d02cb8ddcf421c7cc85ed87ce712fcd8d5f45460749ced0d900fe0368c59b1c082bd5811c1a648a51768d5e4bfbc23cada3791f289d8b61fd494398be1ad9ee9ff471abb547000ac2c1a5d1" ) == 0 );
16483 fct_chk( strcmp( (
char *) tag_str,
"0ae6bd5e8c25d1585e4d4c266048" ) == 0 );
16489 FCT_TEST_BGN(gcm_nist_validation_aes_25612810240104_0)
16491 unsigned char key_str[128];
16492 unsigned char src_str[128];
16493 unsigned char dst_str[257];
16494 unsigned char iv_str[128];
16495 unsigned char add_str[128];
16496 unsigned char tag_str[128];
16497 unsigned char output[128];
16498 unsigned char tag_output[16];
16500 unsigned int key_len;
16501 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
16503 memset(key_str, 0x00, 128);
16504 memset(src_str, 0x00, 128);
16505 memset(dst_str, 0x00, 257);
16506 memset(iv_str, 0x00, 128);
16507 memset(add_str, 0x00, 128);
16508 memset(tag_str, 0x00, 128);
16509 memset(output, 0x00, 128);
16510 memset(tag_output, 0x00, 16);
16512 key_len =
unhexify( key_str,
"3d58cd514de36ca7848aad1bf4d314b3b3415cae1ce9a169021ae84a67d4ab69" );
16513 pt_len =
unhexify( src_str,
"e1c2e79e3f64c5c64f853ac9ba1a853fbf1bfd3001d48f7e73e0e97aa1b8ed1f1a7066178e75df688c5edb1c42e270ea38ab0e246c6a47fde4c3141436fe4b34beb9033ba7eebfc53cf1f6c8ae1794e9bb536152d196e1b96803316a05f1dcb9016c8b35bf4da06cd18da6243acc3a3dc641d3a1332b1915932ca89937cb0327" );
16514 iv_len =
unhexify( iv_str,
"4a1c2e7a3f9788c3c2fdd0dcc0cfe84b" );
16515 add_len =
unhexify( add_str,
"" );
16517 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
16520 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
16521 hexify( dst_str, output, pt_len );
16522 hexify( tag_str, tag_output, tag_len );
16524 fct_chk( strcmp( (
char *) dst_str,
"50d63c660a2b4f8e87276c5f58556cdf15d0fbb2c8ea5e3266d28c515643109aa7fc950d6d48f504dad52457e16576b581d37574574cd8b7ac12b7d59b819992c941a27e23ef9f257ed0c4ea4eda6c1f3b28b44decb63a92fae84c3556dcb9d6458e729dad6a7db9f7411690fce971b3b240f8f9979ed992f87d76e227fd7384" ) == 0 );
16525 fct_chk( strcmp( (
char *) tag_str,
"ac842579bdd1ac77c84dffac2d" ) == 0 );
16531 FCT_TEST_BGN(gcm_nist_validation_aes_25612810240104_1)
16533 unsigned char key_str[128];
16534 unsigned char src_str[128];
16535 unsigned char dst_str[257];
16536 unsigned char iv_str[128];
16537 unsigned char add_str[128];
16538 unsigned char tag_str[128];
16539 unsigned char output[128];
16540 unsigned char tag_output[16];
16542 unsigned int key_len;
16543 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
16545 memset(key_str, 0x00, 128);
16546 memset(src_str, 0x00, 128);
16547 memset(dst_str, 0x00, 257);
16548 memset(iv_str, 0x00, 128);
16549 memset(add_str, 0x00, 128);
16550 memset(tag_str, 0x00, 128);
16551 memset(output, 0x00, 128);
16552 memset(tag_output, 0x00, 16);
16554 key_len =
unhexify( key_str,
"b7e4cd80f03a7ed092c776b243dfad7776d9caf3e679939038e33ac94d8931de" );
16555 pt_len =
unhexify( src_str,
"102e2d2c0d01dbc69733d2451d1ac1817d60418685d4ae8aa44e1ede1c1e08d2f71f0aef41a72bd9f052ea4a9a057330c95d964f8c3679b80fc9c0952b46f38e2ef055cb33703d686757400210fa5a39bc7e3bb9b8b9cc20c95d5607e2f10bb5501507680ef3aaad96553333b1d27bf2f7ac102c983eede2262a5c6237c1d754" );
16556 iv_len =
unhexify( iv_str,
"af160a983d674b7d19294f89c3c9307d" );
16557 add_len =
unhexify( add_str,
"" );
16559 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
16562 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
16563 hexify( dst_str, output, pt_len );
16564 hexify( tag_str, tag_output, tag_len );
16566 fct_chk( strcmp( (
char *) dst_str,
"6bdfae299d796ef36850327b091ba7bb02e29b643ca4c8bc199eb91ecbaf88426412cfd5570e0042cab735cc46ec648b0877955b3f9a5707d56c478aa77ae5510749beb1e44dbbb37791f18477123436a985e5e9f79fda0a057504847e4ecae841f24e1b53076d3efc6bdea2ebb336ee0e4b5e6ea973e3e50a27b5c2e6fee3e2" ) == 0 );
16567 fct_chk( strcmp( (
char *) tag_str,
"fdf21e2ac356e507745a07fc96" ) == 0 );
16573 FCT_TEST_BGN(gcm_nist_validation_aes_25612810240104_2)
16575 unsigned char key_str[128];
16576 unsigned char src_str[128];
16577 unsigned char dst_str[257];
16578 unsigned char iv_str[128];
16579 unsigned char add_str[128];
16580 unsigned char tag_str[128];
16581 unsigned char output[128];
16582 unsigned char tag_output[16];
16584 unsigned int key_len;
16585 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
16587 memset(key_str, 0x00, 128);
16588 memset(src_str, 0x00, 128);
16589 memset(dst_str, 0x00, 257);
16590 memset(iv_str, 0x00, 128);
16591 memset(add_str, 0x00, 128);
16592 memset(tag_str, 0x00, 128);
16593 memset(output, 0x00, 128);
16594 memset(tag_output, 0x00, 16);
16596 key_len =
unhexify( key_str,
"3a0c46eacfe85cbc0c5f527b87cd075bdeb386d0ca6de816a87cfddcb8a87ae8" );
16597 pt_len =
unhexify( src_str,
"6d1203dc8395e35a35e234203625ea9d37d1c009db2ac8b1d5b29021997b5421f1d172f4c9a7eb7dbb67f0002720fc412f5b1550c739a2d7ba4387a1f978bd548fe6169d9473893782b10fab99198cb8b4553dfe27583c017136fd8c95070d8d7f9a602d15248d38d728157a0b26404e662f9a5554d3e1582bc0e12f0054792f" );
16598 iv_len =
unhexify( iv_str,
"b1cde63ad2ad4b8a7bfb36ab78385c3d" );
16599 add_len =
unhexify( add_str,
"" );
16601 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
16604 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
16605 hexify( dst_str, output, pt_len );
16606 hexify( tag_str, tag_output, tag_len );
16608 fct_chk( strcmp( (
char *) dst_str,
"9de3a45c976d32ed2af5074ef13b1f86f35b1689b1c698b2e427d5dd62556eb14439f77cd8fcbe686a9a08a922e3f54a78e86fd284de493a740586360b63da09bc1d001777582969c679db54a0ddb8d7dfdb46750edc882804a1c00e417912b72b4cad54dffa1897eba6188b3e61ebf0c3dfab292c2686dcb9db3012e0788c7f" ) == 0 );
16609 fct_chk( strcmp( (
char *) tag_str,
"641896daab917ea3c82524c194" ) == 0 );
16615 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024096_0)
16617 unsigned char key_str[128];
16618 unsigned char src_str[128];
16619 unsigned char dst_str[257];
16620 unsigned char iv_str[128];
16621 unsigned char add_str[128];
16622 unsigned char tag_str[128];
16623 unsigned char output[128];
16624 unsigned char tag_output[16];
16626 unsigned int key_len;
16627 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
16629 memset(key_str, 0x00, 128);
16630 memset(src_str, 0x00, 128);
16631 memset(dst_str, 0x00, 257);
16632 memset(iv_str, 0x00, 128);
16633 memset(add_str, 0x00, 128);
16634 memset(tag_str, 0x00, 128);
16635 memset(output, 0x00, 128);
16636 memset(tag_output, 0x00, 16);
16638 key_len =
unhexify( key_str,
"4d540e0ba27103667eb4511ce9d243592bccb8515ab59896c9922cb5f1b47a02" );
16639 pt_len =
unhexify( src_str,
"d79f9b1c74e3141f188704c8d5bdaaf6083642be50d00f20c97b56646863895250d131e00db0ecf4f035d42f08cfe20f401c2d3062a38daa0b9e7c19fa7c5d344680aff48d506daa181451f6b34ed9099b9a5b39c0166e93ac4463c9ad51f48e3063b1c16793615336f55d516d079f6c510c2891b97aaa95e5f621e3b5202620" );
16640 iv_len =
unhexify( iv_str,
"a2ed37daa797522a39b01dd206d06514" );
16641 add_len =
unhexify( add_str,
"" );
16643 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
16646 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
16647 hexify( dst_str, output, pt_len );
16648 hexify( tag_str, tag_output, tag_len );
16650 fct_chk( strcmp( (
char *) dst_str,
"6a891bd289ec05990424a2775287f4725aecefe1ab21fa0ca643f37829cae9fcbbf805b883f807102ff12f1a85964df818057daedd41c7349ef32b24642186c45d2858c3260d5b90594969e26b691963ac7fbd2eb4eef466ae690ca274d9194dfc4df1c3baec02abc38fbfc0e2c7c4fcafed227d4f6607329f57ee439435c714" ) == 0 );
16651 fct_chk( strcmp( (
char *) tag_str,
"9074ecf66bbd582318495158" ) == 0 );
16657 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024096_1)
16659 unsigned char key_str[128];
16660 unsigned char src_str[128];
16661 unsigned char dst_str[257];
16662 unsigned char iv_str[128];
16663 unsigned char add_str[128];
16664 unsigned char tag_str[128];
16665 unsigned char output[128];
16666 unsigned char tag_output[16];
16668 unsigned int key_len;
16669 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
16671 memset(key_str, 0x00, 128);
16672 memset(src_str, 0x00, 128);
16673 memset(dst_str, 0x00, 257);
16674 memset(iv_str, 0x00, 128);
16675 memset(add_str, 0x00, 128);
16676 memset(tag_str, 0x00, 128);
16677 memset(output, 0x00, 128);
16678 memset(tag_output, 0x00, 16);
16680 key_len =
unhexify( key_str,
"151d7e4db9e21c87bef65c2ac6aab5b6b045b7dadaf6424644a91e04ba810585" );
16681 pt_len =
unhexify( src_str,
"0984c5d3f68beba1db4e6ade429cb8954cccaba9fcf4d852897ef69f8483428932c8f18a891f54b68f7d49a03c57f7144d802eb996d233cec930d5eb19f43d0faf9c94a2d7aaca40c8066a2882481f521bb5f6ba15b213810da373817eab3d52b5dd143a1521239482fbf4a07fe68c3d35c90c6ce27b55e40abcf432a261dc58" );
16682 iv_len =
unhexify( iv_str,
"49e0e0d089e3574fa5a33c963b403ccd" );
16683 add_len =
unhexify( add_str,
"" );
16685 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
16688 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
16689 hexify( dst_str, output, pt_len );
16690 hexify( tag_str, tag_output, tag_len );
16692 fct_chk( strcmp( (
char *) dst_str,
"6938d8a7625d1291f249ef1e086bb030ccdc844a9271fee16db60e7acfe4aedd720de76345109d5e6849fd1576c0fe0c34e73dca4011f8565cffccef427198c927f19f63b821f43844d008ceee0566f0d8062d7860e92ebdf21dcde80039a04504cd8ee94874b2eeb038962a74ac9902d9d7ce09afdac7aa706bf3892de19531" ) == 0 );
16693 fct_chk( strcmp( (
char *) tag_str,
"48d3a8116213f92bfbe86bfe" ) == 0 );
16699 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024096_2)
16701 unsigned char key_str[128];
16702 unsigned char src_str[128];
16703 unsigned char dst_str[257];
16704 unsigned char iv_str[128];
16705 unsigned char add_str[128];
16706 unsigned char tag_str[128];
16707 unsigned char output[128];
16708 unsigned char tag_output[16];
16710 unsigned int key_len;
16711 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
16713 memset(key_str, 0x00, 128);
16714 memset(src_str, 0x00, 128);
16715 memset(dst_str, 0x00, 257);
16716 memset(iv_str, 0x00, 128);
16717 memset(add_str, 0x00, 128);
16718 memset(tag_str, 0x00, 128);
16719 memset(output, 0x00, 128);
16720 memset(tag_output, 0x00, 16);
16722 key_len =
unhexify( key_str,
"3e9615515ca45109316cc02bbf3a23406eeeab2092dc6614db76e4e047a3b023" );
16723 pt_len =
unhexify( src_str,
"46c4c6bad0f21172094ae07a47fd76477b69ca75cc08970e8dbf7b8644d4bcdce96f9d15dd3fba5fba3f851af145652ad004ee525d180d2f3e03bc0ec1c0e8ffebc1474c342732b7247f657ba87ffcef9333857123f29c4976b048c89c24107529dc5dd69004fd176eb0ca6ddae1df7be7d28b3b9da976413588f20c1fff488a" );
16724 iv_len =
unhexify( iv_str,
"c1facf73da64e16e4acee3fdc3cc6b10" );
16725 add_len =
unhexify( add_str,
"" );
16727 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
16730 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
16731 hexify( dst_str, output, pt_len );
16732 hexify( tag_str, tag_output, tag_len );
16734 fct_chk( strcmp( (
char *) dst_str,
"4415dc96d3daf703d392ba1318254143a58870e691570ca6b1be6074dd9c1feae12c72f9314fc3d19b6affb59b642ade6c4e64b7c99f850bff781de193cc0a321a29356addcb0918a282e53801541b5b01383fa7624c36d1f67423f02d2b54f58deca582b7031d192a4d32bc154ae1149cb3c5b48538c803a8d01fa7cfc1683f" ) == 0 );
16735 fct_chk( strcmp( (
char *) tag_str,
"322d8d1b475a7fd3d0c45609" ) == 0 );
16741 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024064_0)
16743 unsigned char key_str[128];
16744 unsigned char src_str[128];
16745 unsigned char dst_str[257];
16746 unsigned char iv_str[128];
16747 unsigned char add_str[128];
16748 unsigned char tag_str[128];
16749 unsigned char output[128];
16750 unsigned char tag_output[16];
16752 unsigned int key_len;
16753 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
16755 memset(key_str, 0x00, 128);
16756 memset(src_str, 0x00, 128);
16757 memset(dst_str, 0x00, 257);
16758 memset(iv_str, 0x00, 128);
16759 memset(add_str, 0x00, 128);
16760 memset(tag_str, 0x00, 128);
16761 memset(output, 0x00, 128);
16762 memset(tag_output, 0x00, 16);
16764 key_len =
unhexify( key_str,
"52c1a14b4ed57cbfa317fe0db87528f4c5551deb9ffc88932589e3255b1d3477" );
16765 pt_len =
unhexify( src_str,
"eb9081e19b63c94b5f3a696c5fc2c0b7f434e1574394d0b41dd67dfac28a73d4ba26c86b3728b2802fb9d0930c89586b09602900d33eddc5a00a4e98881b5acd5597aae9b80b1569ede74042948f2cd66c3eeae227ae10241df001c85dfe8a5fda0aa21142ecade76290dfdd4a27b6ff3a932dacc0b5f461501239ae8d6d5f41" );
16766 iv_len =
unhexify( iv_str,
"36d02604b5b24f49b08bb01053a23425" );
16767 add_len =
unhexify( add_str,
"" );
16769 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
16772 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
16773 hexify( dst_str, output, pt_len );
16774 hexify( tag_str, tag_output, tag_len );
16776 fct_chk( strcmp( (
char *) dst_str,
"12fbea9e2830ba28551b681c3c0b04ac242dbbde318f79e1cb52dba6bdde58f28f75f2fb378b89f53cef2534a72870a1f526b41619c4b9f811333e8ee639be1250a5c7e47ecbee215b6927ecffaf7d714327b2c4e8b362b1a4f018ff96f67557ca25799adfac04dd980e8e33f993051f975f14e05be8b7342578d0c9d45b237a" ) == 0 );
16777 fct_chk( strcmp( (
char *) tag_str,
"01e6af272386cf1a" ) == 0 );
16783 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024064_1)
16785 unsigned char key_str[128];
16786 unsigned char src_str[128];
16787 unsigned char dst_str[257];
16788 unsigned char iv_str[128];
16789 unsigned char add_str[128];
16790 unsigned char tag_str[128];
16791 unsigned char output[128];
16792 unsigned char tag_output[16];
16794 unsigned int key_len;
16795 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
16797 memset(key_str, 0x00, 128);
16798 memset(src_str, 0x00, 128);
16799 memset(dst_str, 0x00, 257);
16800 memset(iv_str, 0x00, 128);
16801 memset(add_str, 0x00, 128);
16802 memset(tag_str, 0x00, 128);
16803 memset(output, 0x00, 128);
16804 memset(tag_output, 0x00, 16);
16806 key_len =
unhexify( key_str,
"4d08a07b3e94025523a4a6415029c8f9e11fbbfd72564964c53b8f56f865af0d" );
16807 pt_len =
unhexify( src_str,
"4ac7c27b07a4aebe5caf1de0538d13a56e8c11bc73713bf78c7abbad3b9f6d690e00487267da108e2f2ae67c24b4657e77bb83e2d5e4b244cf34e924cf7bdb443f87ac8cdb374147449f8d06eb517a25dc86f03a389f34190aed5a7faace03ebf646fec2b173b2c15fd5cbe7c5affb6c3ee6d1cace8b00dd8f668a2336da5bfc" );
16808 iv_len =
unhexify( iv_str,
"98b745c7f231ba3515eddf68f7dc80f4" );
16809 add_len =
unhexify( add_str,
"" );
16811 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
16814 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
16815 hexify( dst_str, output, pt_len );
16816 hexify( tag_str, tag_output, tag_len );
16818 fct_chk( strcmp( (
char *) dst_str,
"337693c5c746d8fcdf7cd44d8f76a4db899402b891176e85b4c549c366ad709322874e986d6b939a350d2a0e3b77924d6d15454d882d1d3c94469d749a20d8f0116504cb31888a1e81d3abf25dbb7a7f9e7def26b9151ee649c059da1955f1716423c734dcd26a548844abb6b64c44383ec698e59361b6582c6883b77c338342" ) == 0 );
16819 fct_chk( strcmp( (
char *) tag_str,
"7a9266c4e5ae48f1" ) == 0 );
16825 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024064_2)
16827 unsigned char key_str[128];
16828 unsigned char src_str[128];
16829 unsigned char dst_str[257];
16830 unsigned char iv_str[128];
16831 unsigned char add_str[128];
16832 unsigned char tag_str[128];
16833 unsigned char output[128];
16834 unsigned char tag_output[16];
16836 unsigned int key_len;
16837 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
16839 memset(key_str, 0x00, 128);
16840 memset(src_str, 0x00, 128);
16841 memset(dst_str, 0x00, 257);
16842 memset(iv_str, 0x00, 128);
16843 memset(add_str, 0x00, 128);
16844 memset(tag_str, 0x00, 128);
16845 memset(output, 0x00, 128);
16846 memset(tag_output, 0x00, 16);
16848 key_len =
unhexify( key_str,
"b9d9fc42b58deafe9bc9734f4129dcad34a2e55ee5ad8abcc3f7bc42dd2c0e05" );
16849 pt_len =
unhexify( src_str,
"11dbcd6cd53d2af766a1b6e4af2bc8bac2811ef818da2d1f81c140ab6e0298e958fef033736bc6e0dccd660b9a3e4222bdf3f89a95b206785d22852201e6dd00b44232ef3c03393893813dccf1960410b50cf50602ead8bd246fad88e66c88b50821578004779b6c45c13d8211df1cfc0fb2d7a342f58e4f2f3623fd31b12c30" );
16850 iv_len =
unhexify( iv_str,
"67931493096f4550633c322622bc1376" );
16851 add_len =
unhexify( add_str,
"" );
16853 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
16856 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
16857 hexify( dst_str, output, pt_len );
16858 hexify( tag_str, tag_output, tag_len );
16860 fct_chk( strcmp( (
char *) dst_str,
"66ab6e7a547705d8ae8ac3cb9bc5fbbc18cd220f89aec7dfbf4f72e7bc59b483c50c9471523c3772efc5deee3a9c34c96b098842cc42f9b7d7c0d2530f45900eeb9502e4dd15363b0543c91765121fd82fcc9db88fe6a531b718c1fe94b96a27856d07707fced3021cca9cf4740833d47091797cc87f57f5388b48e2296ff352" ) == 0 );
16861 fct_chk( strcmp( (
char *) tag_str,
"0de60d4126733404" ) == 0 );
16867 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024032_0)
16869 unsigned char key_str[128];
16870 unsigned char src_str[128];
16871 unsigned char dst_str[257];
16872 unsigned char iv_str[128];
16873 unsigned char add_str[128];
16874 unsigned char tag_str[128];
16875 unsigned char output[128];
16876 unsigned char tag_output[16];
16878 unsigned int key_len;
16879 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
16881 memset(key_str, 0x00, 128);
16882 memset(src_str, 0x00, 128);
16883 memset(dst_str, 0x00, 257);
16884 memset(iv_str, 0x00, 128);
16885 memset(add_str, 0x00, 128);
16886 memset(tag_str, 0x00, 128);
16887 memset(output, 0x00, 128);
16888 memset(tag_output, 0x00, 16);
16890 key_len =
unhexify( key_str,
"97e736a63870546ec9c2325a8e367c8ea17a7ffa71f6cadd6909a5bb9eb12814" );
16891 pt_len =
unhexify( src_str,
"608280a9dcbd6dd66100a9fdd00e6dac2183e32c945b2b4d255c048243bfea15aad1a10ff3eec0ba79c531239b489a5dc155dc2775519f8d3d2ed82fa7ac653fb7c77e0dfad1c175b6c69963f5c12ff9840f18e0202502e9d1e3b170965cd86ae411af20e6d69a608c99ca8dae3cb3bcce666841132a99429bcde490d9f0b6b5" );
16892 iv_len =
unhexify( iv_str,
"d35192b4d233507b70c6d32f8e224577" );
16893 add_len =
unhexify( add_str,
"" );
16895 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
16898 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
16899 hexify( dst_str, output, pt_len );
16900 hexify( tag_str, tag_output, tag_len );
16902 fct_chk( strcmp( (
char *) dst_str,
"568a0d584fc66c876b7beb9ef8709954a2c426fb8c1936b9024181ca2cd3a7684c412715c11eab80a181be0238e32a2b689e9db36a2ac87db651058080531e7b1110938dcb09615e385d7b224b11222469145f6fb5f4c0e87b08bb3006bc5b6d2ce0a15be7fc29b27c10c645afd9d8253c094fc0f775086bdf2adac265b474d7" ) == 0 );
16903 fct_chk( strcmp( (
char *) tag_str,
"af18c065" ) == 0 );
16909 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024032_1)
16911 unsigned char key_str[128];
16912 unsigned char src_str[128];
16913 unsigned char dst_str[257];
16914 unsigned char iv_str[128];
16915 unsigned char add_str[128];
16916 unsigned char tag_str[128];
16917 unsigned char output[128];
16918 unsigned char tag_output[16];
16920 unsigned int key_len;
16921 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
16923 memset(key_str, 0x00, 128);
16924 memset(src_str, 0x00, 128);
16925 memset(dst_str, 0x00, 257);
16926 memset(iv_str, 0x00, 128);
16927 memset(add_str, 0x00, 128);
16928 memset(tag_str, 0x00, 128);
16929 memset(output, 0x00, 128);
16930 memset(tag_output, 0x00, 16);
16932 key_len =
unhexify( key_str,
"6d05193cc0885f7b74057ead3a0738b74eb3118b1a7e74c5c941ce0011197122" );
16933 pt_len =
unhexify( src_str,
"c58f51bad815a43a5705c311de4a846ea2a70cbdd2c30d709a2ae0ddf82b7c889dc599fb6e0328fad21555a99530be6deeeb5b1beb333322c2b747288e52fad008513f8040a4735cab3c8cf32c4e18bd57339c85cf5dd71e382067bee7e9ccaf68e767d77fb005a3b73a51acf942fc3b2c5c9eec6189d01a26c6ffb070165874" );
16934 iv_len =
unhexify( iv_str,
"5160b65bf7a2ccf77fa2e3e0b3866f26" );
16935 add_len =
unhexify( add_str,
"" );
16937 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
16940 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
16941 hexify( dst_str, output, pt_len );
16942 hexify( tag_str, tag_output, tag_len );
16944 fct_chk( strcmp( (
char *) dst_str,
"64dc5834a63be414c3714f1b34feddbacd568c6466cbd06f665aa269187a160db79306a53b629fedc1247bd892998fe3208b3105f6273676bbdbff6e254de332d02bc8842ef98d6b79994792eeb5be3a807452b14ae5b5027db81421cc22936ccaa7ae1b77a145462634e424ccf2dfaf001ed4477b804e204120a1416b449b8c" ) == 0 );
16945 fct_chk( strcmp( (
char *) tag_str,
"364ef0b5" ) == 0 );
16951 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024032_2)
16953 unsigned char key_str[128];
16954 unsigned char src_str[128];
16955 unsigned char dst_str[257];
16956 unsigned char iv_str[128];
16957 unsigned char add_str[128];
16958 unsigned char tag_str[128];
16959 unsigned char output[128];
16960 unsigned char tag_output[16];
16962 unsigned int key_len;
16963 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
16965 memset(key_str, 0x00, 128);
16966 memset(src_str, 0x00, 128);
16967 memset(dst_str, 0x00, 257);
16968 memset(iv_str, 0x00, 128);
16969 memset(add_str, 0x00, 128);
16970 memset(tag_str, 0x00, 128);
16971 memset(output, 0x00, 128);
16972 memset(tag_output, 0x00, 16);
16974 key_len =
unhexify( key_str,
"6e8006983712ddfedfebf95e6cc3b0aadc23077055e500ae49fae7705787f2e3" );
16975 pt_len =
unhexify( src_str,
"e3ba14c4e39ebad925997649872b8331f1700c8f98f80e58d92c85a84f2a427094d9d771b276a0d35b17c0c030734399070a57345d4dcf082b96c7eb580618f7af8bdf036296e20379e74e29f905b52a0c46fe7d46201a075e7de7e1a523a0492c1f228102fdb89f019bcd4571e041c5d37159dc487ec139fa37d33142fc8082" );
16976 iv_len =
unhexify( iv_str,
"e36e39d787394f1401fc4b173e247db0" );
16977 add_len =
unhexify( add_str,
"" );
16979 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
16982 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
16983 hexify( dst_str, output, pt_len );
16984 hexify( tag_str, tag_output, tag_len );
16986 fct_chk( strcmp( (
char *) dst_str,
"4d5db4b65a1ca31f3d980cc30037b5d79d28280a31cc5d0274be77dad70dcd37f652f2ca999c9aecf08fd2a02d382457a277002a1a286ab66f9e437adee00c3bab04f831dd52147005a989606171b6017d28970c8986899fb58900e23d1bc6a9ac0bd4d8b5d6e3fcaebc9903923e68adae7d61cf929388e0e357c7223523d1ff" ) == 0 );
16987 fct_chk( strcmp( (
char *) tag_str,
"d21637c0" ) == 0 );
16993 FCT_TEST_BGN(gcm_nist_validation_aes_25612810241024128_0)
16995 unsigned char key_str[128];
16996 unsigned char src_str[128];
16997 unsigned char dst_str[257];
16998 unsigned char iv_str[128];
16999 unsigned char add_str[128];
17000 unsigned char tag_str[128];
17001 unsigned char output[128];
17002 unsigned char tag_output[16];
17004 unsigned int key_len;
17005 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
17007 memset(key_str, 0x00, 128);
17008 memset(src_str, 0x00, 128);
17009 memset(dst_str, 0x00, 257);
17010 memset(iv_str, 0x00, 128);
17011 memset(add_str, 0x00, 128);
17012 memset(tag_str, 0x00, 128);
17013 memset(output, 0x00, 128);
17014 memset(tag_output, 0x00, 16);
17016 key_len =
unhexify( key_str,
"cd8ec237009eab590dbd9b31e76513dfa3501701b1a706982944441d996e1839" );
17017 pt_len =
unhexify( src_str,
"9eef7c9a0fa3e9a7fcc4b2f9d210a97d6653ded7913f2fb2de825a0dfd78ae1cca68c040f2328009fffe62937d630ee9d6e0e67bc12c38c0b3d035697d4c2311371aacf41cce0d523016ee436a47d93af0df77011131856d072c718c310f0995b71530d70a3da881481f46f21dda62e3e4c898bb9f819b22f816b7c4e2fb6729" );
17018 iv_len =
unhexify( iv_str,
"a3cae7aa59edb5f91ee21231002db8e2" );
17019 add_len =
unhexify( add_str,
"45fa52a0e8321d82caea95bd9506f7331923e2aa95e9238908f3ff30e17a96389dfea75e225e34e1605354eaaf999a950f469c6e2e8722da5ad9daded6722baca00e5d1b8e63266ad1b42cae161b9c089f4ffdfbbaa2f1fb0245d1a4c306d46e215e8c6c6ae37652a8f6016f92adb7695d40bde8c202ab9c2d70a96220b4b01b" );
17021 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
17024 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
17025 hexify( dst_str, output, pt_len );
17026 hexify( tag_str, tag_output, tag_len );
17028 fct_chk( strcmp( (
char *) dst_str,
"833d58f0bbd735c6164ecaa295e95ad1143c564d24817d5f6dded5d2d9b2bed2dc05da4a8a16e20fdf90f839370832f9ddc94e4e564db3ae647068537669b168cc418ea7d0e55b2bb8fd861f9f893a3fdba6aace498bc6afe400fea6b2a8c58924c71ce5db98cfce835161a5cf6187870aa32f522d406c52f91c30543ea6aa16" ) == 0 );
17029 fct_chk( strcmp( (
char *) tag_str,
"c1df4ee60b10f79173032e9baaf04d3f" ) == 0 );
17035 FCT_TEST_BGN(gcm_nist_validation_aes_25612810241024128_1)
17037 unsigned char key_str[128];
17038 unsigned char src_str[128];
17039 unsigned char dst_str[257];
17040 unsigned char iv_str[128];
17041 unsigned char add_str[128];
17042 unsigned char tag_str[128];
17043 unsigned char output[128];
17044 unsigned char tag_output[16];
17046 unsigned int key_len;
17047 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
17049 memset(key_str, 0x00, 128);
17050 memset(src_str, 0x00, 128);
17051 memset(dst_str, 0x00, 257);
17052 memset(iv_str, 0x00, 128);
17053 memset(add_str, 0x00, 128);
17054 memset(tag_str, 0x00, 128);
17055 memset(output, 0x00, 128);
17056 memset(tag_output, 0x00, 16);
17058 key_len =
unhexify( key_str,
"5f0b24f054f7455f5821fdc6e9ca728d680e8004fe59b131bb9c7cddb0effa51" );
17059 pt_len =
unhexify( src_str,
"d406138587fbcb498e8ec37f0f3d7f6b2faa02e6880424e74cdba67ae3468b6823d37fd917a7fede6b34a2f0fc47c520e4088766ba82a989f0d8051a3a80cc8b1e3e1e2b1c6620b90e99b27e65951aeb3936263fc2f76c1c8effa742f53987f8a38c731a411fa53b9f6c81340e0d7ce395c4190b364d9188dc5923f3126546c3" );
17060 iv_len =
unhexify( iv_str,
"f52f7a2051047f45ec6183b7c66e8b98" );
17061 add_len =
unhexify( add_str,
"756cf485b6a8e672d90d930a653c69fdbf260d3ea18cd3d0c02175d3966a88b70ab8235d998b745a0eb6a5c92899f41e8c0b7aa4ec132c8cbb1bac97a45766a03923c9b93c2a055abd0127a83f81e6df603a375ca8cc1a2ee0a8b7fd226226b0b19bd2e81f73c34dfafa4fcea08dd93dd4ab7e4b437408af91bff566068a5f34" );
17063 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
17066 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
17067 hexify( dst_str, output, pt_len );
17068 hexify( tag_str, tag_output, tag_len );
17070 fct_chk( strcmp( (
char *) dst_str,
"e58a03f664003d0ef5bdb28931afd16e7747cff62dcc85bf4eed6e573ea973cf615e4ebee40f35d44e18e391b391e98dca5669a5b0abbfa67834836b122d1909b53acd50e053d5ca836894414bb865b1fb811d8af68b88b4a302fdedf27fdd27456e9aaf34a8d53c9c8587e75843e09776392dbb0501ef41359c01e8980e5221" ) == 0 );
17071 fct_chk( strcmp( (
char *) tag_str,
"258492b9f549d1b90555eafbe5292806" ) == 0 );
17077 FCT_TEST_BGN(gcm_nist_validation_aes_25612810241024128_2)
17079 unsigned char key_str[128];
17080 unsigned char src_str[128];
17081 unsigned char dst_str[257];
17082 unsigned char iv_str[128];
17083 unsigned char add_str[128];
17084 unsigned char tag_str[128];
17085 unsigned char output[128];
17086 unsigned char tag_output[16];
17088 unsigned int key_len;
17089 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
17091 memset(key_str, 0x00, 128);
17092 memset(src_str, 0x00, 128);
17093 memset(dst_str, 0x00, 257);
17094 memset(iv_str, 0x00, 128);
17095 memset(add_str, 0x00, 128);
17096 memset(tag_str, 0x00, 128);
17097 memset(output, 0x00, 128);
17098 memset(tag_output, 0x00, 16);
17100 key_len =
unhexify( key_str,
"6f50efb3946f6a6dfe63f12780f764bb6ebcf2127d3804610e11f0bd9b68ce0f" );
17101 pt_len =
unhexify( src_str,
"bfc89d5049a5b4015c9eb64fdaf9fe9f4be7229e67c713a7b368f0550b3a5e12ba3a4399c64f60b7157e1b289b154a494deadecff0d0686ab44fae2a34ae4cb120a7f00268ab551f41c16a05f8999157be1103464127a8a9bccf736c32db045124178c90472e664d8e67a2ade0efe9a3b048c453d2fb5292dd8d29e62d52c5b5" );
17102 iv_len =
unhexify( iv_str,
"63c1192ab7fc75c17e7812fd960f296e" );
17103 add_len =
unhexify( add_str,
"335cc5c8fb5920b09e0263133eb481fd97f8d9f29db8689fb63034bc40959a176ccdca6725e1f94f822e4d871138fc39776fbe062f07bf80e5c8891c2e1007efeb77c158ced8d6c002b04442ed35c40a2187a59c02339c05762942208e3be964736a431017f472dfd5fdaf8fb8c645cdb684f9632057b9eb755253b4b75e3688" );
17105 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
17108 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
17109 hexify( dst_str, output, pt_len );
17110 hexify( tag_str, tag_output, tag_len );
17112 fct_chk( strcmp( (
char *) dst_str,
"ca974942ae0f4955ca0736218e4e356145c1ef42135b1142b55ccb3fc5caeec630eb50e69b5a6f97c11d4b604189b27496623bb0365ae69f4150e201e72bad8e7b883185588d0a31c44273bae87194b1610114a83ec47ba68a02e29891de43204977fcd0d551778335fc77fcfdf3fd63e9e5e0c02930a0321ffb093c521cd0ed" ) == 0 );
17113 fct_chk( strcmp( (
char *) tag_str,
"2f11a01cb0ef8dcefad9233bec44d6f0" ) == 0 );
17119 FCT_TEST_BGN(gcm_nist_validation_aes_25612810241024120_0)
17121 unsigned char key_str[128];
17122 unsigned char src_str[128];
17123 unsigned char dst_str[257];
17124 unsigned char iv_str[128];
17125 unsigned char add_str[128];
17126 unsigned char tag_str[128];
17127 unsigned char output[128];
17128 unsigned char tag_output[16];
17130 unsigned int key_len;
17131 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
17133 memset(key_str, 0x00, 128);
17134 memset(src_str, 0x00, 128);
17135 memset(dst_str, 0x00, 257);
17136 memset(iv_str, 0x00, 128);
17137 memset(add_str, 0x00, 128);
17138 memset(tag_str, 0x00, 128);
17139 memset(output, 0x00, 128);
17140 memset(tag_output, 0x00, 16);
17142 key_len =
unhexify( key_str,
"ec566324ad9d4cd015821e2cd4ed4d3d507bdb3c65bd50acc85f690ef06740fa" );
17143 pt_len =
unhexify( src_str,
"348d35768d7192415cbb92c5625f10edd79f24c56d4b821aaf80d7dc83e901ede6be94d1efe11a3acd16ac00aea8d0d4875c47522332fed11cdf0816b26978de431c89d2fe6d122b2d4980f1d53a97edc15e490a44e73cba9394ca4bbb871675c729c39de80d6678c71b1bd220e4647bfd20a7ddbefe2b7eec7276b87c92ba77" );
17144 iv_len =
unhexify( iv_str,
"95c8a544c4b94e9fbfd76e66f40bb975" );
17145 add_len =
unhexify( add_str,
"fa6f38f8e562a54bb2281dc9a7cbe0b981292fb00dc0053185550a300661852179d0f2beb4e7759b81316fbfead5c858e6fce73f3cd2c2462925dbb199a4e6c121d051b1b5ebf60e16d1e30f6973b19cf31830da30588fdfff6115a4a1f6d977a72583379a56055724581be5232b0d1b0ae88bab5d4a031b058bc8d03078dcd5" );
17147 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
17150 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
17151 hexify( dst_str, output, pt_len );
17152 hexify( tag_str, tag_output, tag_len );
17154 fct_chk( strcmp( (
char *) dst_str,
"8b4da79f3ae1ea35a80af2f52fc640055e6a3b92617ddfa79fe5d8a49f28ddf36a82a17ca0b3cdf1726700f7ffc09ae5b412d064fd52a90a76bacc74a0b89e38dc474e880a2b768ffa91fef34c47759a7b8fd7faa32a4fcb258349495e4438c7b2055a8f462729fa4e7223aa9b47087695e3aabf43afb32e272d536b257b748a" ) == 0 );
17155 fct_chk( strcmp( (
char *) tag_str,
"b1faec277697add8f756391dd9c7f4" ) == 0 );
17161 FCT_TEST_BGN(gcm_nist_validation_aes_25612810241024120_1)
17163 unsigned char key_str[128];
17164 unsigned char src_str[128];
17165 unsigned char dst_str[257];
17166 unsigned char iv_str[128];
17167 unsigned char add_str[128];
17168 unsigned char tag_str[128];
17169 unsigned char output[128];
17170 unsigned char tag_output[16];
17172 unsigned int key_len;
17173 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
17175 memset(key_str, 0x00, 128);
17176 memset(src_str, 0x00, 128);
17177 memset(dst_str, 0x00, 257);
17178 memset(iv_str, 0x00, 128);
17179 memset(add_str, 0x00, 128);
17180 memset(tag_str, 0x00, 128);
17181 memset(output, 0x00, 128);
17182 memset(tag_output, 0x00, 16);
17184 key_len =
unhexify( key_str,
"dd6aa4ff63efad53772e07e0fa7d6eda5e73be167620fd7c9f3997cf46cd25a9" );
17185 pt_len =
unhexify( src_str,
"592b3a6f09841483770b767bed73498c286896d2ad3d8bd91f83f92f489b1e83b0456a54e067a79e1bf59eefc1d3bd35cecfba940811d06a06e9b8f774bfeff557bd7e3f0864cb6bd3f867efbe3f040d2384ae8e1a0e20ed38caa668159d3e33c4669478d00963a1152305aa2037a5e06cac52d84021234a7f5d46ab060bd03a" );
17186 iv_len =
unhexify( iv_str,
"6386e03bcb6ac98140ee0706b54c8492" );
17187 add_len =
unhexify( add_str,
"0ccdaa4f54cfea1026a4d26338b1e6d50a70b00c46147fe906c95f0a2fb5d92456ca3aa28a257c079eceb852b819e46646997df87b873bc567f69a2fae471df03b0e5b94511189eaeedd238a991b326963c46d53080f420ec9fd1a74145a0b155cbcc0b5e47fa69450c7eb447080e34868d640f923923b91a9e13a05c73550ca" );
17189 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
17192 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
17193 hexify( dst_str, output, pt_len );
17194 hexify( tag_str, tag_output, tag_len );
17196 fct_chk( strcmp( (
char *) dst_str,
"c1be540448f1e3f432a10b3cc1a913cc4046595f5a57bf57c9d856cdf381832e914088d3388199018ff26327e3001678ab363da9457ba2084f5aa81320f1a0343491e0b44424018765861c5db917ce14e91a77f7e805d7a97a17a288ee66567c5c01ee61dc46a9aa8b281438ed377b792e9539e311676f81c567339cf92b8e1e" ) == 0 );
17197 fct_chk( strcmp( (
char *) tag_str,
"ce7e361713630ecaff81866c20fce6" ) == 0 );
17203 FCT_TEST_BGN(gcm_nist_validation_aes_25612810241024120_2)
17205 unsigned char key_str[128];
17206 unsigned char src_str[128];
17207 unsigned char dst_str[257];
17208 unsigned char iv_str[128];
17209 unsigned char add_str[128];
17210 unsigned char tag_str[128];
17211 unsigned char output[128];
17212 unsigned char tag_output[16];
17214 unsigned int key_len;
17215 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
17217 memset(key_str, 0x00, 128);
17218 memset(src_str, 0x00, 128);
17219 memset(dst_str, 0x00, 257);
17220 memset(iv_str, 0x00, 128);
17221 memset(add_str, 0x00, 128);
17222 memset(tag_str, 0x00, 128);
17223 memset(output, 0x00, 128);
17224 memset(tag_output, 0x00, 16);
17226 key_len =
unhexify( key_str,
"ad3990cd57ce4e95342cdca4f07d7e35d575eb19f224a7c821b1f5a8c54d4bc3" );
17227 pt_len =
unhexify( src_str,
"732809c29b5eeda974039b122b875aec2823e082ef637294658cc54f9bca88eb7eea87a366234f89919975d0e7dd2f8ea83198d5a6e349149a016a4b177ba43df2f3ca28e27b8566591d225ac25dfd9ea431cf1fb3ea530d65dac93aad47764a6aef8ec6903b6d145ea9a2663034d2a320690b92afd8032084b754be97604382" );
17228 iv_len =
unhexify( iv_str,
"fd4ed75d861da2cc14fd1054976c8566" );
17229 add_len =
unhexify( add_str,
"ab44689839fdf47e887b70fc1b0422dbbe5c1b50f4e704f9a435967ba8b70cf1e144a025d37292f628f9f7dd9d05557b65340090503201e8cf2cea2d6a73ea4850bd0931b90fd4a4306ba84b8aec99fed47ca1b16daee6c95c97e4ba0dd1fb130cd13f5ef77c5af96f61fa05305a3aca3775e927f72f08fc34bc994e69abaad8" );
17231 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
17234 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
17235 hexify( dst_str, output, pt_len );
17236 hexify( tag_str, tag_output, tag_len );
17238 fct_chk( strcmp( (
char *) dst_str,
"f48721b08101b35cde1c4ce08a8ba0049185b9dd48b66ab9971fd67dee24f89b456e9ca19ac8a9b5b3b088cbd53898a8c2ac1129752fb7fc55a0c3e2e7266ff40f7a9d63ebc4ab65f47422fc17cbe07fcfda582fd1b8f50e840ae89837e84add8be17d4cac3d2be26bef4aa8438daec9d2b139e442f99c32f2789378c8029ad9" ) == 0 );
17239 fct_chk( strcmp( (
char *) tag_str,
"da6da2af0fc14b591a86359b552e20" ) == 0 );
17245 FCT_TEST_BGN(gcm_nist_validation_aes_25612810241024112_0)
17247 unsigned char key_str[128];
17248 unsigned char src_str[128];
17249 unsigned char dst_str[257];
17250 unsigned char iv_str[128];
17251 unsigned char add_str[128];
17252 unsigned char tag_str[128];
17253 unsigned char output[128];
17254 unsigned char tag_output[16];
17256 unsigned int key_len;
17257 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
17259 memset(key_str, 0x00, 128);
17260 memset(src_str, 0x00, 128);
17261 memset(dst_str, 0x00, 257);
17262 memset(iv_str, 0x00, 128);
17263 memset(add_str, 0x00, 128);
17264 memset(tag_str, 0x00, 128);
17265 memset(output, 0x00, 128);
17266 memset(tag_output, 0x00, 16);
17268 key_len =
unhexify( key_str,
"30823396ac90db573b6587676564d09fa680906bd6eaa6b8597e2e7549c9d848" );
17269 pt_len =
unhexify( src_str,
"c55be5a0b8559e02de4667ba5656f7e46f5627af13fd34d327f6fbfc4f3a9273036fce2fb21232f8e2ed115b39b0ecb9a119c8fc17070bbe4e34d3544d7117ffda5e1ef05e063b5a8fceb23158d7824d6a1eb4d90a1d0360c6bd78fb24fdd4cfa35924beb4e090891d06f53fc52cdcaa6b8bba6772d549eb95b64ebf3756ae45" );
17270 iv_len =
unhexify( iv_str,
"496ac734afadcd54f1a4372ceb5645fc" );
17271 add_len =
unhexify( add_str,
"2d582131f7071e80cde1b11106b7d79bb208743de759d40b897efdab018f4eff1f91d2fe67e27af25a13f201bbe4446f20ac6b942ff7b32cf10ad1cea36945b67ac08b114fc616175a87437ee05f3a8b6566e9edfbc1beec0ed8696b5d5c41a25ac43bf3ce2920dd262233ab3405d46f523894dcbfb6c90b6e911ceb93bb7fa6" );
17273 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
17276 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
17277 hexify( dst_str, output, pt_len );
17278 hexify( tag_str, tag_output, tag_len );
17280 fct_chk( strcmp( (
char *) dst_str,
"c9da3df66111dcbabf731c6891eb698ac3283780f526e81383e201244efe4eca7a1c84a3bfa9ba5616afb15c1f1af0f3af2e071df6c1d34a343c3e3440f1a3e1b6620243d9e7d9a4dbda5981c3e876fd07f392d44bf3e0a4edbd884462ec2f71d36bde4a1b5792629da09a1fb01bfdbd532fbac71887a05a7077fc119a4638d4" ) == 0 );
17281 fct_chk( strcmp( (
char *) tag_str,
"cec973a27c42e31b779a6a91aa34" ) == 0 );
17287 FCT_TEST_BGN(gcm_nist_validation_aes_25612810241024112_1)
17289 unsigned char key_str[128];
17290 unsigned char src_str[128];
17291 unsigned char dst_str[257];
17292 unsigned char iv_str[128];
17293 unsigned char add_str[128];
17294 unsigned char tag_str[128];
17295 unsigned char output[128];
17296 unsigned char tag_output[16];
17298 unsigned int key_len;
17299 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
17301 memset(key_str, 0x00, 128);
17302 memset(src_str, 0x00, 128);
17303 memset(dst_str, 0x00, 257);
17304 memset(iv_str, 0x00, 128);
17305 memset(add_str, 0x00, 128);
17306 memset(tag_str, 0x00, 128);
17307 memset(output, 0x00, 128);
17308 memset(tag_output, 0x00, 16);
17310 key_len =
unhexify( key_str,
"815f2b2f0b1621aa198eef2761380f10ac9872a5adbdf6286bdf3386e56aae4e" );
17311 pt_len =
unhexify( src_str,
"d16930c570414bb620e0eaa2e9b5d96e4424127e16461aaa5885c616a02ae974fb2890e73bade9ffa5066eb88a46ac7fcf258d55733d315951b1b71c5e3c13d78d60344ce921966297a0f6361cfeab03b346a7fa4f83a7a0eaf37576fa33a496102446f9f31b06ed91b51672c879cb18d4e38fa86e156d5b1dbff27925922470" );
17312 iv_len =
unhexify( iv_str,
"0843984bbaa565ca24f148e57a7d9c57" );
17313 add_len =
unhexify( add_str,
"1514b99c0ad3493c36fe1216d1a887a69ea0340101aebb03f60d7ed26893119e81e8b8c3f0bb4af5e10a3bf4edcf257473be9dcebb44a9d912f04d97a556ecf020c0bed7ccef2bfd5580f1fc74b706fea45f8c63d8de6f8deccc47a02dc86d3f0624e52f6f1dcd09de8000f2d98a4cc0896da6a564b92263673adf390ed909fa" );
17315 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
17318 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
17319 hexify( dst_str, output, pt_len );
17320 hexify( tag_str, tag_output, tag_len );
17322 fct_chk( strcmp( (
char *) dst_str,
"7506175acd64224b39f890e498ee5013bb46fc571dc2b125ed5891b8ce8bcf42342f015fd2df5f4b9cc220aab52386bf2247d4163951e86467633f96c28bdda166d778855a7f60465dd2983232c9e53d5f89432407807b0402a10f155f80055c339451a106ac54438ae4a945e60d5320eab0adad9a1e66d59b9d3cc53887811d" ) == 0 );
17323 fct_chk( strcmp( (
char *) tag_str,
"28d9d780052b36dbe80a25d41d5b" ) == 0 );
17329 FCT_TEST_BGN(gcm_nist_validation_aes_25612810241024112_2)
17331 unsigned char key_str[128];
17332 unsigned char src_str[128];
17333 unsigned char dst_str[257];
17334 unsigned char iv_str[128];
17335 unsigned char add_str[128];
17336 unsigned char tag_str[128];
17337 unsigned char output[128];
17338 unsigned char tag_output[16];
17340 unsigned int key_len;
17341 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
17343 memset(key_str, 0x00, 128);
17344 memset(src_str, 0x00, 128);
17345 memset(dst_str, 0x00, 257);
17346 memset(iv_str, 0x00, 128);
17347 memset(add_str, 0x00, 128);
17348 memset(tag_str, 0x00, 128);
17349 memset(output, 0x00, 128);
17350 memset(tag_output, 0x00, 16);
17352 key_len =
unhexify( key_str,
"d1325ecedb8fc0fe449de558fbc11ddebef660e47aabb84edfe69837a6a9066c" );
17353 pt_len =
unhexify( src_str,
"f9a4f7029feae5cf5bdb8385d6ad7d7da6a243c5026818e5a794c6cffb8dad3227964501c5a049b5a94a7ea2e24434e086800094118444c5a971bbe575324fb6b51c5939f81e78bb11d85d324742b462ce8d13584b3882617d0c94776f328a554f9d532b6515ade9fbbd2de1c12ab53671b7f7edaa7e20223f4c371c1f229568" );
17354 iv_len =
unhexify( iv_str,
"8aff702c40a8c974cf24bf3c645169a5" );
17355 add_len =
unhexify( add_str,
"9ec2e851dee3834d4843aafa740f3aac4cfb1e4d3a7e3e77349113f5200768c3e9dc37481d6292ebeebd2372db02ef8ac7180830c7187995c815d1d1520c3e2f8cf2a94993b18c828b53485073c8a845066772615b26d7a3d7d3e7d81ad1725797153f7ba5e313bdec582c5482adf76b31c871cd42a313018f40d7e23f1a7f33" );
17357 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
17360 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
17361 hexify( dst_str, output, pt_len );
17362 hexify( tag_str, tag_output, tag_len );
17364 fct_chk( strcmp( (
char *) dst_str,
"3a93663aab93c6cd236cba4db2c03942d9ebc669633936370c2834357e76f6555c34d40dfaab1e78a105da9092acdba8be89e2dbf72e89518d55e09eb2fa1ea7da505484ad4531dba3eb853d1ae1a477355ea9448067b0adbc782d64ec342c7cb781d9dd8dc2b14dc1c9ab5542b679782b8bb9b45ff6a4e36c513df169c8eddc" ) == 0 );
17365 fct_chk( strcmp( (
char *) tag_str,
"7e682b0ddbe6c55091838616c352" ) == 0 );
17371 FCT_TEST_BGN(gcm_nist_validation_aes_25612810241024104_0)
17373 unsigned char key_str[128];
17374 unsigned char src_str[128];
17375 unsigned char dst_str[257];
17376 unsigned char iv_str[128];
17377 unsigned char add_str[128];
17378 unsigned char tag_str[128];
17379 unsigned char output[128];
17380 unsigned char tag_output[16];
17382 unsigned int key_len;
17383 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
17385 memset(key_str, 0x00, 128);
17386 memset(src_str, 0x00, 128);
17387 memset(dst_str, 0x00, 257);
17388 memset(iv_str, 0x00, 128);
17389 memset(add_str, 0x00, 128);
17390 memset(tag_str, 0x00, 128);
17391 memset(output, 0x00, 128);
17392 memset(tag_output, 0x00, 16);
17394 key_len =
unhexify( key_str,
"4b92242268e598ddcf3a5a0de26d74356693c4dbca354e44be401f3d6804ea1e" );
17395 pt_len =
unhexify( src_str,
"72dc75bc4c8f5bbbd9c639fbdb34afbb84706404c9e67eaee1959aa4b51eac0db4f975cb3ed8d8ca27f72f61c8562ec953a7b8745826121a7016e60e877dcdb046f236af3826c1ddf5b929c5bd9a92b0d5c23cf8983bf2459ced6595882b3dd0cd25da7eba981bba122623dae22dbdce05cf4e5d82d2cc54eb4f68e9e8eff02b" );
17396 iv_len =
unhexify( iv_str,
"3c292bbcc16c94b0a263f4d22f328915" );
17397 add_len =
unhexify( add_str,
"167dfab08aac8350574693b31210138f6b99cfb61ba7ade2e2abffe2255837a913c9afe332e8fc4b2463310df46492e7d982dcb70fdda2a8b03911e6be9a5c5621d0ae8ecd1cb390910b6702aad33394c25d1160b86687e25bb6cdc4811e3158bb85ba75548329dacc19287d9c004a0473029b77ca290fc47c1f96d9583bcd67" );
17399 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
17402 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
17403 hexify( dst_str, output, pt_len );
17404 hexify( tag_str, tag_output, tag_len );
17406 fct_chk( strcmp( (
char *) dst_str,
"c2dd42ab9bf3fda78032f73cbf7d28dd8e32c582a3b7ee79795551f133234d62ea6571a466b8e1af0b3d354b71a6582c9c8013d5f8a2c34eb3e848360adac1d5005cede58eae7784f32a31c40eec5a3f03cc1e7263d8515b36225b3515ebcf8dca2a77172c797d347ed3921ca0bc73e8ae56347134a6a2a06ae084f1ebb7b0fe" ) == 0 );
17407 fct_chk( strcmp( (
char *) tag_str,
"02fb002d8e4a1d11bb0f0b64d7" ) == 0 );
17413 FCT_TEST_BGN(gcm_nist_validation_aes_25612810241024104_1)
17415 unsigned char key_str[128];
17416 unsigned char src_str[128];
17417 unsigned char dst_str[257];
17418 unsigned char iv_str[128];
17419 unsigned char add_str[128];
17420 unsigned char tag_str[128];
17421 unsigned char output[128];
17422 unsigned char tag_output[16];
17424 unsigned int key_len;
17425 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
17427 memset(key_str, 0x00, 128);
17428 memset(src_str, 0x00, 128);
17429 memset(dst_str, 0x00, 257);
17430 memset(iv_str, 0x00, 128);
17431 memset(add_str, 0x00, 128);
17432 memset(tag_str, 0x00, 128);
17433 memset(output, 0x00, 128);
17434 memset(tag_output, 0x00, 16);
17436 key_len =
unhexify( key_str,
"c5c50059a61692a8f1ffae1c616158c67d276dcd4a029ce197ed48567e5ff889" );
17437 pt_len =
unhexify( src_str,
"ab7e13923e66d0f600accd2462af74192c3de6c718a27052ef7c1302239c7fb2413df7c662657ca18228575ed138bc54f31663df548618e98d64402feab529d5bf6a678431c714df1fe24ea80017f455a8312bb5b710df8dd3571970404a806ec493dcb1f3f1ac980663f0b9c9823e0d0304ed90689f70d4a24da7d8504c5b0b" );
17438 iv_len =
unhexify( iv_str,
"920d82c6b97a7bea121f64f83b75dc65" );
17439 add_len =
unhexify( add_str,
"a9bd57db2bbe83177287e5f614dab977071abfe0b538067f7d0c5acd59bfba95dfb725b8e1af4573ff10ce135148a3bab044552348378d5ff0c4f8be1aef7ed60bb9a374a6c7b8097d7c1804fdf078f212e63e9f11d7404ad0d1a9cb28d5ba199aec3a6c41b9e523b541ad38cea763159836ede6371357ab1aeaedaaf4481c29" );
17441 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
17444 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
17445 hexify( dst_str, output, pt_len );
17446 hexify( tag_str, tag_output, tag_len );
17448 fct_chk( strcmp( (
char *) dst_str,
"8f7e87e3ff4f7ccd1cedc1df125199cfb588339119a5ea5f9bdb918f89ca35f9dc16c6465fb25ea250eaaa8e7f00aca2199f92a2c244642bd15cbc9b62caa58115ef01d0b4a9e02527e035744b20892f79b07aa47b6c6db1332f82434764c43124b27148f2f611766781df8e4cc0b5ba99b858c13c233646dcb2b8749a194f08" ) == 0 );
17449 fct_chk( strcmp( (
char *) tag_str,
"65da88676d2ab3f9c6d590eb80" ) == 0 );
17455 FCT_TEST_BGN(gcm_nist_validation_aes_25612810241024104_2)
17457 unsigned char key_str[128];
17458 unsigned char src_str[128];
17459 unsigned char dst_str[257];
17460 unsigned char iv_str[128];
17461 unsigned char add_str[128];
17462 unsigned char tag_str[128];
17463 unsigned char output[128];
17464 unsigned char tag_output[16];
17466 unsigned int key_len;
17467 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
17469 memset(key_str, 0x00, 128);
17470 memset(src_str, 0x00, 128);
17471 memset(dst_str, 0x00, 257);
17472 memset(iv_str, 0x00, 128);
17473 memset(add_str, 0x00, 128);
17474 memset(tag_str, 0x00, 128);
17475 memset(output, 0x00, 128);
17476 memset(tag_output, 0x00, 16);
17478 key_len =
unhexify( key_str,
"4c7cc3588436ad9e877de72578d30026d32746817ca7a8fb7df9870650aa48d8" );
17479 pt_len =
unhexify( src_str,
"00c2845fc495b89f870bce714f8604a7e7a96ede92c4b9bdcf044c9a176f66a28761089c083d5e2d613c746711238477c0efdf475e18af99e88cf76d04d4e40495ea16c462801443cd7f69c5d36ac9f337e828c308f1d1938b1fac732274459827cf9806c1661a247167948a93eb6e998a4cea76bb825baa27e4180e52633bb3" );
17480 iv_len =
unhexify( iv_str,
"5e82285a3b332c693e427f9410564489" );
17481 add_len =
unhexify( add_str,
"9971b8e234fc3e1e9644545e383eb065e1866e2faa6513278d3972add5ec0e71b1558329fe1ee038a27919e43bfdac8cf08141ab540528f74f9d5bc8c400bb6ee7867e4dbc2aa081d9126ac374dc62b10004d0e233dc93376b93c0da415e7d3e09851f2084a99feeb25939e21893056870cefe7cdfaf49f728a91ea0eef605af" );
17483 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
17486 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
17487 hexify( dst_str, output, pt_len );
17488 hexify( tag_str, tag_output, tag_len );
17490 fct_chk( strcmp( (
char *) dst_str,
"ab7bac4ddede796576e1fc265c3c598055827be74dc7ed8ef172d00a648da56727767d68fcbe6c44e7272dc8cb15f03a26dc439178849b0e9ad6c7410dd4cca3f9ef40ec7c280042bbc199155c7341e88d35e5e8d0b42856e618c6c30e43d49506ccc3518585c951a3898409315e8b3b4d0adccdb561ddcf1b9d3b2cf3de9750" ) == 0 );
17491 fct_chk( strcmp( (
char *) tag_str,
"2474c830c6ebe9c6dcb393a32d" ) == 0 );
17497 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024102496_0)
17499 unsigned char key_str[128];
17500 unsigned char src_str[128];
17501 unsigned char dst_str[257];
17502 unsigned char iv_str[128];
17503 unsigned char add_str[128];
17504 unsigned char tag_str[128];
17505 unsigned char output[128];
17506 unsigned char tag_output[16];
17508 unsigned int key_len;
17509 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
17511 memset(key_str, 0x00, 128);
17512 memset(src_str, 0x00, 128);
17513 memset(dst_str, 0x00, 257);
17514 memset(iv_str, 0x00, 128);
17515 memset(add_str, 0x00, 128);
17516 memset(tag_str, 0x00, 128);
17517 memset(output, 0x00, 128);
17518 memset(tag_output, 0x00, 16);
17520 key_len =
unhexify( key_str,
"9d73aec506e022c0692892f6dbc3b4d41e86b97fb377c1956ee27b9c9ab3b32a" );
17521 pt_len =
unhexify( src_str,
"f02bf60f10ed876a803a96e75f3fe17b4e355246135a0cd5497baad2a40a523c27e27bf848f0cb5d0c6428d08bec9590b17fca5e697990d2a6f7d21080ab614f378a07461e7a6207229e0a087e285841ef2f119cac7d8a2d3abbb1e7272a0d7dd493c8c4f797e160c36e086227ceae4923658365b2d3a3fbea11aa2fab3499cb" );
17522 iv_len =
unhexify( iv_str,
"bbacc081a6107364dcdac83abceddbfb" );
17523 add_len =
unhexify( add_str,
"77e1da090e4d3a892baf1afbc12a56201a4362d8f09cda5e9bdb23411e6908915301d66403acb3524898c1c51d6970a71878accd0048cb6cfbd4bf941c174ee05eca2c4a29f1c24e936d3a63cb6cfa710617af1bbb41d755b2f79e135db914a7dd00c590cf741078eb72c3ab559787213202dcc0a4734bdd612b917e372f0e61" );
17525 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
17528 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
17529 hexify( dst_str, output, pt_len );
17530 hexify( tag_str, tag_output, tag_len );
17532 fct_chk( strcmp( (
char *) dst_str,
"d78fa4024b8d073899ac09b8151c29b10a37793b76f04921bdc7dd3d2ef530a831e53cf6a7ddeec0e033ceeabb525bf5ef57bf9b3661ffb57d3bd4024252fa11dd569102c787c2d8489a1ad1290dca2e8edf82fbe6b5f83bcc0e888045b895e20c8556ee80430cc8640fc070491d2bb81a1209428938cd8e7a27e0e858029421" ) == 0 );
17533 fct_chk( strcmp( (
char *) tag_str,
"2235d00a47d57cfbd383b69d" ) == 0 );
17539 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024102496_1)
17541 unsigned char key_str[128];
17542 unsigned char src_str[128];
17543 unsigned char dst_str[257];
17544 unsigned char iv_str[128];
17545 unsigned char add_str[128];
17546 unsigned char tag_str[128];
17547 unsigned char output[128];
17548 unsigned char tag_output[16];
17550 unsigned int key_len;
17551 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
17553 memset(key_str, 0x00, 128);
17554 memset(src_str, 0x00, 128);
17555 memset(dst_str, 0x00, 257);
17556 memset(iv_str, 0x00, 128);
17557 memset(add_str, 0x00, 128);
17558 memset(tag_str, 0x00, 128);
17559 memset(output, 0x00, 128);
17560 memset(tag_output, 0x00, 16);
17562 key_len =
unhexify( key_str,
"73198dfd92d26283637e451af6e26ff56e3b7d355ed7ab8b2059c1022e0ea904" );
17563 pt_len =
unhexify( src_str,
"2471b3c4cc1d6884d333d1c998c7c441808ca884cb88173a225569e1689ef39e266e9ad381926adeafc2daccbdd3c9457ea1bdc3bb05168ef1eead1504d1d44dde34f96e1a7f2a5d3fb33cf5292d52fa9412800419570db0eb24fb74d55de202f5df74073c5a2eb9eb726393996eaeb32072bebb00593de41b97ecbab2554186" );
17564 iv_len =
unhexify( iv_str,
"e36403ce1acc63bf50b47387250ef533" );
17565 add_len =
unhexify( add_str,
"cad023cfb73d08e5b082c3061f3a6502a1c1d53038cfb19074d0ec26c9b272db93094147ef0ab2bdce440a2b3233bb0429add47601f011df679698264c0f81444aba14576a1a565e5c169f967c7571bfb32a2a4d7fcae897863d78964c5b1a040cc845494c0ad8ff4353317b28ca3798e6252d5015b58e99354ce6dfbe8b7a95" );
17567 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
17570 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
17571 hexify( dst_str, output, pt_len );
17572 hexify( tag_str, tag_output, tag_len );
17574 fct_chk( strcmp( (
char *) dst_str,
"32afd6d6fdab2019ce40771b5298aaadf753d1c4cb221f01e4dfc8b1968f898188fa4d448d8364510a7e68c7393168efb4b4ead1db1c254c5cea568a84a997a76dbc925a6c19a9092002629f1d9c52737005232e5c7620b95ed64741598a65a9ec95f2c97b6b78bd85380811c11386074b1e1e63b9a7e99d1cb2807bfaa17f0e" ) == 0 );
17575 fct_chk( strcmp( (
char *) tag_str,
"e22deb1276a73e05feb1c6a0" ) == 0 );
17581 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024102496_2)
17583 unsigned char key_str[128];
17584 unsigned char src_str[128];
17585 unsigned char dst_str[257];
17586 unsigned char iv_str[128];
17587 unsigned char add_str[128];
17588 unsigned char tag_str[128];
17589 unsigned char output[128];
17590 unsigned char tag_output[16];
17592 unsigned int key_len;
17593 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
17595 memset(key_str, 0x00, 128);
17596 memset(src_str, 0x00, 128);
17597 memset(dst_str, 0x00, 257);
17598 memset(iv_str, 0x00, 128);
17599 memset(add_str, 0x00, 128);
17600 memset(tag_str, 0x00, 128);
17601 memset(output, 0x00, 128);
17602 memset(tag_output, 0x00, 16);
17604 key_len =
unhexify( key_str,
"1dcbd278480434135fb838ffcdc8e7716e95ea99a1cc36d544096dff9e9aeba0" );
17605 pt_len =
unhexify( src_str,
"da3b8c9e4aa8443535b321c3e9bde3c6742cd9f228c971257430b27293ebeb635917d6cba976c81934c3077902911169e8c6197b2d56a046b7ff03b482c38172accac98aacc90076370df28bc8a2044c393c7541b7b69b0fb852746dcf3140ace4e76861975814d2b5966f7714fb6cfe3e4299d79182fc63a345067a0aa54d8b" );
17606 iv_len =
unhexify( iv_str,
"b737bcdee4ef83aa83f124cf7208a671" );
17607 add_len =
unhexify( add_str,
"49a544aae76b04e62211428a2cc3719e4451f3dbf9a23b6ac824fc472e95e38386d267415c1472a8b0707b0573b9eb2a39a5d5a13464947cc3a7a7dd3b7196f11e87ab5233944f7cea3f4d62b088febf8b82a44d4ca6148be1ba24905432b7ac2bb4ebaf22d3bce97ac2bd34158b6011fbac77ee1fa96ca0c9c9e0207044fbbd" );
17609 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
17612 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
17613 hexify( dst_str, output, pt_len );
17614 hexify( tag_str, tag_output, tag_len );
17616 fct_chk( strcmp( (
char *) dst_str,
"061b491b73f9250798a0fb1fdcd72a70eddc9cb48c1f10119387d45c50d5fbb8b85592a7977487e45342fddeb8d481eef3b99463972f66acb38fe04953c223c5f3e02611c8f33cb9ad7466860895fae585d40bc78ec14d1cf17b4c5b75e4d8c6341f1eaf80da4a78aaaa30d3bc8bff15f234aacbee4067a947e42275b12e0bdb" ) == 0 );
17617 fct_chk( strcmp( (
char *) tag_str,
"b897da3061c77aab5eb54622" ) == 0 );
17623 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024102464_0)
17625 unsigned char key_str[128];
17626 unsigned char src_str[128];
17627 unsigned char dst_str[257];
17628 unsigned char iv_str[128];
17629 unsigned char add_str[128];
17630 unsigned char tag_str[128];
17631 unsigned char output[128];
17632 unsigned char tag_output[16];
17634 unsigned int key_len;
17635 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
17637 memset(key_str, 0x00, 128);
17638 memset(src_str, 0x00, 128);
17639 memset(dst_str, 0x00, 257);
17640 memset(iv_str, 0x00, 128);
17641 memset(add_str, 0x00, 128);
17642 memset(tag_str, 0x00, 128);
17643 memset(output, 0x00, 128);
17644 memset(tag_output, 0x00, 16);
17646 key_len =
unhexify( key_str,
"2e00467f18536ea6b4d582b2480ebee883e4f56bd91af3ad7a47ceea3ece9acc" );
17647 pt_len =
unhexify( src_str,
"d5334398318ade59e6bda5cfce8e11b25c9ccefa2f651eb16f66c03d84dcc900dc7c85e6d2b778b155ae4591af0698df7f3b8b9f64d4442ecc82035f7d8e71a5f61c515a963f2fba077f3cb8276e91b31b3f8aa193988a16a86ccaec4a688ad68b5146925ec21d55ded407709d34d140f37e1f87d955619453c3704e83918088" );
17648 iv_len =
unhexify( iv_str,
"aa6716e6b7107876a3321d807a810e11" );
17649 add_len =
unhexify( add_str,
"5606a0b77cc9020955c7efda33b7080e9c0e9fd374c4201b4324b3e6523b0407171141e8246d01292a34dc69331f7177d6b7238e16e0303e85741f9cea5698e42fc79217d9e141474068d6c192713c04b1ba3573e93480f69e4cbf72090d46d62d5b52e4a7613af8fcf0010d0024ea11c19cb04571c6d7045a1157cf81df18d1" );
17651 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
17654 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
17655 hexify( dst_str, output, pt_len );
17656 hexify( tag_str, tag_output, tag_len );
17658 fct_chk( strcmp( (
char *) dst_str,
"249119ace4e292ffdfebb433d5b57fa1518af3389eb832146c3adc2dc62fcc9121d7f6461a53ee107ce7edf362b365d8bc18e50cf9c328cb7c7aa7b4e8bfa07c34dc81c38fe0982bbc3b543485ea4b0ce5a76c988cdfcd241911cd66f5a5f9e0c97332bb0f3926117c0437470717c63957aeba1c55d96b1ff0f4d6045f908cd4" ) == 0 );
17659 fct_chk( strcmp( (
char *) tag_str,
"70e986fced03ae67" ) == 0 );
17665 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024102464_1)
17667 unsigned char key_str[128];
17668 unsigned char src_str[128];
17669 unsigned char dst_str[257];
17670 unsigned char iv_str[128];
17671 unsigned char add_str[128];
17672 unsigned char tag_str[128];
17673 unsigned char output[128];
17674 unsigned char tag_output[16];
17676 unsigned int key_len;
17677 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
17679 memset(key_str, 0x00, 128);
17680 memset(src_str, 0x00, 128);
17681 memset(dst_str, 0x00, 257);
17682 memset(iv_str, 0x00, 128);
17683 memset(add_str, 0x00, 128);
17684 memset(tag_str, 0x00, 128);
17685 memset(output, 0x00, 128);
17686 memset(tag_output, 0x00, 16);
17688 key_len =
unhexify( key_str,
"a18240f6135e7b6eac071546ee58bb52394bc34ad4e91ee678b72e4514fddcf7" );
17689 pt_len =
unhexify( src_str,
"02f288eea5588e7a011f4d91eca232af70f60ae3d9302cae5a8a58798c1b4e973e3b1d07695934ae871201682554ef6a5b94976c6a1aa73d354f1d65e3f025bb2a3f1e93009e822a87590dbfd1965904223049c5ac0da8596955199ff767b92df10d1f9c05c40bd8204846c719c5594000cabd87342f0447e4e466c3788723f8" );
17690 iv_len =
unhexify( iv_str,
"149da8186ca73941582532ede16edf3d" );
17691 add_len =
unhexify( add_str,
"4d46e1e87322ca84d5bb92d58670f644083db06bdffd99fab0055a62b64a30b5a5673a108f0b9f114d379d3fe63a1f63407881c5b5cb03142109c158af42a00eb24d3b1873edd2284a94a06b79d672bc8f13358f324af2622e9aa0da2b11e33567927e81aea24f3605168e602b532fa2cf9bde5f8cc0b51329e0930cf22e3752" );
17693 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
17696 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
17697 hexify( dst_str, output, pt_len );
17698 hexify( tag_str, tag_output, tag_len );
17700 fct_chk( strcmp( (
char *) dst_str,
"36cddac99e2673588ba783d3c085b9935626687a2dbac9ad10deb4867c577d6f80453266b2400afd773e4edeb743c32562e85f7f8f43dfd87b10a2dd79eddf6e580aeb4cea92ac21cf49ca97398cc23c02b0ca59257643fb2bc6462b9cf04658352d53c2ee50d87cc5ca2ecb722d950f0daecfa0b7c33aaa2c91dd8b093916cb" ) == 0 );
17701 fct_chk( strcmp( (
char *) tag_str,
"73cbe40df3927e80" ) == 0 );
17707 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024102464_2)
17709 unsigned char key_str[128];
17710 unsigned char src_str[128];
17711 unsigned char dst_str[257];
17712 unsigned char iv_str[128];
17713 unsigned char add_str[128];
17714 unsigned char tag_str[128];
17715 unsigned char output[128];
17716 unsigned char tag_output[16];
17718 unsigned int key_len;
17719 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
17721 memset(key_str, 0x00, 128);
17722 memset(src_str, 0x00, 128);
17723 memset(dst_str, 0x00, 257);
17724 memset(iv_str, 0x00, 128);
17725 memset(add_str, 0x00, 128);
17726 memset(tag_str, 0x00, 128);
17727 memset(output, 0x00, 128);
17728 memset(tag_output, 0x00, 16);
17730 key_len =
unhexify( key_str,
"4b64bded6c658090a85b5d889679c6a00579498aa82be1e3a628a1cd001e52a6" );
17731 pt_len =
unhexify( src_str,
"182cd59dc1934199d2d2a2712157438c347e286f66b5a2b8b5149aa41ff7ba82adc3751be379741124dfcf05c531416a64f25f0d28abb6f7bf98c80762f0fa363da679437621dcf61bce43ef4d63178779d1a3ebffb82044d427ef522cbd2643cf1f5617a0f23103cd2a164a59f182b151f47b303c4eb7387ee5cb97cabdf985" );
17732 iv_len =
unhexify( iv_str,
"99aa6f359534da409a18540d82fb3026" );
17733 add_len =
unhexify( add_str,
"f55fd6255d8a188ce9a4a2727699ce16c8bc5c6adba88d94106038b74deb79c9d43bfaa47375148d843a5ce248d70193c8017196941b2d9e2dfd4375a3390c19d2f833b0b265dab30f26adee07ab0aeeb930dc3a9fbcf719a707fac724deb28dee2a6788b17fa3505290c2797c6dbf930b41eca1f6d54d75b820e62ec7023e93" );
17735 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
17738 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
17739 hexify( dst_str, output, pt_len );
17740 hexify( tag_str, tag_output, tag_len );
17742 fct_chk( strcmp( (
char *) dst_str,
"5a1211218174e60690334856483a3066e2e8d996fe8ab86d0f8fef09aba9ef0acff9d3e1e5cc27efb5464bc23bea9c778fc74206ae3a16e5fdbf99694ab7096f23c4b395d7a7b8d6675e56b5505ff62f52bf183bcc4433298296e41662d6519d9c1f0a5fb3140376c8890547eae72afe75c338ba97fad9f0184dd311bbdaf3cc" ) == 0 );
17743 fct_chk( strcmp( (
char *) tag_str,
"8dbdc0746074b486" ) == 0 );
17749 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024102432_0)
17751 unsigned char key_str[128];
17752 unsigned char src_str[128];
17753 unsigned char dst_str[257];
17754 unsigned char iv_str[128];
17755 unsigned char add_str[128];
17756 unsigned char tag_str[128];
17757 unsigned char output[128];
17758 unsigned char tag_output[16];
17760 unsigned int key_len;
17761 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
17763 memset(key_str, 0x00, 128);
17764 memset(src_str, 0x00, 128);
17765 memset(dst_str, 0x00, 257);
17766 memset(iv_str, 0x00, 128);
17767 memset(add_str, 0x00, 128);
17768 memset(tag_str, 0x00, 128);
17769 memset(output, 0x00, 128);
17770 memset(tag_output, 0x00, 16);
17772 key_len =
unhexify( key_str,
"cadef353122cec1fdbc236c0ab195fc4d732655cef444c00b6cba5c61e01c614" );
17773 pt_len =
unhexify( src_str,
"a3d5e55fa3110a268cf1414a483adab6d58ec8762a6e6be81269c0369e8840333503bc3688c7be001cdb84d163fa1dfb05f3b01ffff31151f1af780c796822e3d564f785964a546bcc2a320d81a2bc61058652a8594ae9b9b0917400e08d4a99fa161376ac53cba54c92889fd3497e233aff4e12cd85d57375c7c89e92cdf5f5" );
17774 iv_len =
unhexify( iv_str,
"d765b5954e5b486885dc78ce6801516e" );
17775 add_len =
unhexify( add_str,
"ba0405745971eaec5d337fd22e0ad287551e7084f1c9c38231d675719e3980356e183a99a3c760ecf7a8ede5e0dac8d2bc13e135570ff6e91a854ea3b457263b0e77896fdf7bdf0b53c8276cfd1ea3e8e22450ff2665eacd24e5fb2be89373349fc9e2967763d43cbd7adc9a376b1b4ab956ddf8b1a56d9385fb7e861bc34df7" );
17777 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
17780 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
17781 hexify( dst_str, output, pt_len );
17782 hexify( tag_str, tag_output, tag_len );
17784 fct_chk( strcmp( (
char *) dst_str,
"9b99f984ae26f9cad5b3c8058757a0a5caef0fb86b8ecef0c1bca6b99bc72b0d5345a00ae75e37d4e651008bb733105d2172edaaf5bda4ad950a49de55a514e882a470dca7c7bbfddde40d38fef4e1f3864fd7e212bbc0383d0bc29ab2303c8935d49c35d7d73df2fba0daeb5f37f9ab0d541766da71b33da1018a3f287ba312" ) == 0 );
17785 fct_chk( strcmp( (
char *) tag_str,
"c374cd77" ) == 0 );
17791 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024102432_1)
17793 unsigned char key_str[128];
17794 unsigned char src_str[128];
17795 unsigned char dst_str[257];
17796 unsigned char iv_str[128];
17797 unsigned char add_str[128];
17798 unsigned char tag_str[128];
17799 unsigned char output[128];
17800 unsigned char tag_output[16];
17802 unsigned int key_len;
17803 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
17805 memset(key_str, 0x00, 128);
17806 memset(src_str, 0x00, 128);
17807 memset(dst_str, 0x00, 257);
17808 memset(iv_str, 0x00, 128);
17809 memset(add_str, 0x00, 128);
17810 memset(tag_str, 0x00, 128);
17811 memset(output, 0x00, 128);
17812 memset(tag_output, 0x00, 16);
17814 key_len =
unhexify( key_str,
"0cfc42773fe2d16a59da52234af5015271332344448c214a2b4a0bb53b07a0a0" );
17815 pt_len =
unhexify( src_str,
"dfbf9eaa46c368b28ef50227db97f29b5d9ed599760bb83f5d52f92ef5522815d6952ebb0d9b4efe8844216d37510746caf8c775d2c862bad8d67effe109a0cbcdd14ba8e31fa420a475e55ac6b02908346ad1b064d5b6b869503e08d057ae65e9dc2a2a26345917b18d1b715a2372e8e114a071eced0c29cc9966d7205ae010" );
17816 iv_len =
unhexify( iv_str,
"45afb3ba2db9287f06cf48405764a955" );
17817 add_len =
unhexify( add_str,
"16d3ad553cc0fde3f32112bdb478450c65c854927b198914649a2820a9e3d01131b693765d40bd2bb74a50eb4cd7bc8dd8dbac9c6a61acaf5e4cf81570814b30a6a11877a8f9c5df342f70008cbf0576bd27a50bfaf6e22a40bd77435da16b666a06d172aa981bdcae0d25b8ab002c6c1994a356d3c3b7e4dd7b99892b0784f6" );
17819 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
17822 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
17823 hexify( dst_str, output, pt_len );
17824 hexify( tag_str, tag_output, tag_len );
17826 fct_chk( strcmp( (
char *) dst_str,
"e29db2c4bccef2dda828ce652791d424a86cd5790e6ece67bc029ba9520bd8f35a214a73d8b86564df0eccdb60eafee4170da2694eb563e5a854b25d7ba0a4c53465fdc15c6e267be2e54263f97aa3edbe2358f3d9b8d28997388a57aa427a239a74534393593196253de1c2946b7a437a00480ecb2eb08dbe55ca2b3641c36f" ) == 0 );
17827 fct_chk( strcmp( (
char *) tag_str,
"39e01fa0" ) == 0 );
17833 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024102432_2)
17835 unsigned char key_str[128];
17836 unsigned char src_str[128];
17837 unsigned char dst_str[257];
17838 unsigned char iv_str[128];
17839 unsigned char add_str[128];
17840 unsigned char tag_str[128];
17841 unsigned char output[128];
17842 unsigned char tag_output[16];
17844 unsigned int key_len;
17845 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
17847 memset(key_str, 0x00, 128);
17848 memset(src_str, 0x00, 128);
17849 memset(dst_str, 0x00, 257);
17850 memset(iv_str, 0x00, 128);
17851 memset(add_str, 0x00, 128);
17852 memset(tag_str, 0x00, 128);
17853 memset(output, 0x00, 128);
17854 memset(tag_output, 0x00, 16);
17856 key_len =
unhexify( key_str,
"2a840df4be22c70786c873058d2a6e16dd9895cbfb55b9c9e98f958cfe62e65d" );
17857 pt_len =
unhexify( src_str,
"313eddc53f3986927a261f498283b6dc4a39d26f98c7428127237d79a11c5e626e2e9cdb68f72aa3168ab23dfa2f5e03bc65a68d781f23fb9e295909cd9f0f3e5648cf82f3f6b3b509b0a333cb7d9f2b6e444c351a318f8f200a921ccb409def21b87bc55ec211a76a518350e6ee21d7379edd004b3bfd1ce9086b9c66d80ec1" );
17858 iv_len =
unhexify( iv_str,
"ebf155f7cf55e6aabdc1171c95c45293" );
17859 add_len =
unhexify( add_str,
"8abb8843de1766cfb8d6474496acda2f7a14e78a5e4c787ac89e6bc06cfd42173c35b3a75ddff644f4a58aa7502fedada38a7156457365b4c3c07bc12a8f9061331139b9a2b8d840829b876beb84f27d5a64093c270fe6c310ca3afe987bbc5ec4dc06358d5bf77c7b4e4fe4078c6d3ec28e9a281318da88949c478094c0065b" );
17861 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
17864 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
17865 hexify( dst_str, output, pt_len );
17866 hexify( tag_str, tag_output, tag_len );
17868 fct_chk( strcmp( (
char *) dst_str,
"769869a55754eb5d6d42e22a2b5271b38533fc0c79642e250347d34566eeca732e0565f80672054bd10cbd3067730dbc567039c730d8bc32a2bdaad09885651533a4f03174d4e6510547c1e1dd51be6070ab0ca0cceeaccf64a46d0ef87c0311bd09973f3b588a4dfb39c85086ea5d67dc531c287b83c161dcb25e07b671343f" ) == 0 );
17869 fct_chk( strcmp( (
char *) tag_str,
"c364c089" ) == 0 );
17875 FCT_TEST_BGN(gcm_nist_validation_aes_25612800128_0)
17877 unsigned char key_str[128];
17878 unsigned char src_str[128];
17879 unsigned char dst_str[257];
17880 unsigned char iv_str[128];
17881 unsigned char add_str[128];
17882 unsigned char tag_str[128];
17883 unsigned char output[128];
17884 unsigned char tag_output[16];
17886 unsigned int key_len;
17887 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
17889 memset(key_str, 0x00, 128);
17890 memset(src_str, 0x00, 128);
17891 memset(dst_str, 0x00, 257);
17892 memset(iv_str, 0x00, 128);
17893 memset(add_str, 0x00, 128);
17894 memset(tag_str, 0x00, 128);
17895 memset(output, 0x00, 128);
17896 memset(tag_output, 0x00, 16);
17898 key_len =
unhexify( key_str,
"461566cac74f9220df97c1ab2f8bb74189a634bc752f7f04526923d30506949c" );
17900 iv_len =
unhexify( iv_str,
"546d821e437371061cf3207f3d866c15" );
17901 add_len =
unhexify( add_str,
"" );
17903 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
17906 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
17907 hexify( dst_str, output, pt_len );
17908 hexify( tag_str, tag_output, tag_len );
17910 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
17911 fct_chk( strcmp( (
char *) tag_str,
"44193072791c435d6e8ea7756a0bd7bf" ) == 0 );
17917 FCT_TEST_BGN(gcm_nist_validation_aes_25612800128_1)
17919 unsigned char key_str[128];
17920 unsigned char src_str[128];
17921 unsigned char dst_str[257];
17922 unsigned char iv_str[128];
17923 unsigned char add_str[128];
17924 unsigned char tag_str[128];
17925 unsigned char output[128];
17926 unsigned char tag_output[16];
17928 unsigned int key_len;
17929 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
17931 memset(key_str, 0x00, 128);
17932 memset(src_str, 0x00, 128);
17933 memset(dst_str, 0x00, 257);
17934 memset(iv_str, 0x00, 128);
17935 memset(add_str, 0x00, 128);
17936 memset(tag_str, 0x00, 128);
17937 memset(output, 0x00, 128);
17938 memset(tag_output, 0x00, 16);
17940 key_len =
unhexify( key_str,
"7736dbb38f1fe351a7fa101d91da62124c22ac02ee06b9413f56691067572f73" );
17942 iv_len =
unhexify( iv_str,
"5f01779e5e4471cd95a591f08445eb5b" );
17943 add_len =
unhexify( add_str,
"" );
17945 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
17948 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
17949 hexify( dst_str, output, pt_len );
17950 hexify( tag_str, tag_output, tag_len );
17952 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
17953 fct_chk( strcmp( (
char *) tag_str,
"1a1f08c8f40b93e7b5a63008dff54777" ) == 0 );
17959 FCT_TEST_BGN(gcm_nist_validation_aes_25612800128_2)
17961 unsigned char key_str[128];
17962 unsigned char src_str[128];
17963 unsigned char dst_str[257];
17964 unsigned char iv_str[128];
17965 unsigned char add_str[128];
17966 unsigned char tag_str[128];
17967 unsigned char output[128];
17968 unsigned char tag_output[16];
17970 unsigned int key_len;
17971 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
17973 memset(key_str, 0x00, 128);
17974 memset(src_str, 0x00, 128);
17975 memset(dst_str, 0x00, 257);
17976 memset(iv_str, 0x00, 128);
17977 memset(add_str, 0x00, 128);
17978 memset(tag_str, 0x00, 128);
17979 memset(output, 0x00, 128);
17980 memset(tag_output, 0x00, 16);
17982 key_len =
unhexify( key_str,
"eedcae924105c86190032650e2d66cf6927dd314de96a339db48e2081d19ad4a" );
17984 iv_len =
unhexify( iv_str,
"a39d400ee763a22d2a97c1983a8a06a6" );
17985 add_len =
unhexify( add_str,
"" );
17987 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
17990 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
17991 hexify( dst_str, output, pt_len );
17992 hexify( tag_str, tag_output, tag_len );
17994 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
17995 fct_chk( strcmp( (
char *) tag_str,
"3b4294d34352743c4b48c40794047bea" ) == 0 );
18001 FCT_TEST_BGN(gcm_nist_validation_aes_25612800120_0)
18003 unsigned char key_str[128];
18004 unsigned char src_str[128];
18005 unsigned char dst_str[257];
18006 unsigned char iv_str[128];
18007 unsigned char add_str[128];
18008 unsigned char tag_str[128];
18009 unsigned char output[128];
18010 unsigned char tag_output[16];
18012 unsigned int key_len;
18013 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
18015 memset(key_str, 0x00, 128);
18016 memset(src_str, 0x00, 128);
18017 memset(dst_str, 0x00, 257);
18018 memset(iv_str, 0x00, 128);
18019 memset(add_str, 0x00, 128);
18020 memset(tag_str, 0x00, 128);
18021 memset(output, 0x00, 128);
18022 memset(tag_output, 0x00, 16);
18024 key_len =
unhexify( key_str,
"714df4b69dc00067c4ab550f37ff72358b0a905dea2c01f00be28cec130313c2" );
18026 iv_len =
unhexify( iv_str,
"c46d63d6fead2cee03bd033fbc2e6478" );
18027 add_len =
unhexify( add_str,
"" );
18029 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
18032 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
18033 hexify( dst_str, output, pt_len );
18034 hexify( tag_str, tag_output, tag_len );
18036 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
18037 fct_chk( strcmp( (
char *) tag_str,
"2a0271b0666889d2d0b34e82bf17d8" ) == 0 );
18043 FCT_TEST_BGN(gcm_nist_validation_aes_25612800120_1)
18045 unsigned char key_str[128];
18046 unsigned char src_str[128];
18047 unsigned char dst_str[257];
18048 unsigned char iv_str[128];
18049 unsigned char add_str[128];
18050 unsigned char tag_str[128];
18051 unsigned char output[128];
18052 unsigned char tag_output[16];
18054 unsigned int key_len;
18055 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
18057 memset(key_str, 0x00, 128);
18058 memset(src_str, 0x00, 128);
18059 memset(dst_str, 0x00, 257);
18060 memset(iv_str, 0x00, 128);
18061 memset(add_str, 0x00, 128);
18062 memset(tag_str, 0x00, 128);
18063 memset(output, 0x00, 128);
18064 memset(tag_output, 0x00, 16);
18066 key_len =
unhexify( key_str,
"454021ece9a87a9543a1626820d39edd1eff3dca38a287d8fb68bd315a7a2677" );
18068 iv_len =
unhexify( iv_str,
"51de54b633a7c9f3b7b2c1e4b47d26a4" );
18069 add_len =
unhexify( add_str,
"" );
18071 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
18074 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
18075 hexify( dst_str, output, pt_len );
18076 hexify( tag_str, tag_output, tag_len );
18078 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
18079 fct_chk( strcmp( (
char *) tag_str,
"114708102a434e3a30088b5944c272" ) == 0 );
18085 FCT_TEST_BGN(gcm_nist_validation_aes_25612800120_2)
18087 unsigned char key_str[128];
18088 unsigned char src_str[128];
18089 unsigned char dst_str[257];
18090 unsigned char iv_str[128];
18091 unsigned char add_str[128];
18092 unsigned char tag_str[128];
18093 unsigned char output[128];
18094 unsigned char tag_output[16];
18096 unsigned int key_len;
18097 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
18099 memset(key_str, 0x00, 128);
18100 memset(src_str, 0x00, 128);
18101 memset(dst_str, 0x00, 257);
18102 memset(iv_str, 0x00, 128);
18103 memset(add_str, 0x00, 128);
18104 memset(tag_str, 0x00, 128);
18105 memset(output, 0x00, 128);
18106 memset(tag_output, 0x00, 16);
18108 key_len =
unhexify( key_str,
"d7e90b539c99e8c2187ed72823258c1149890a69a9c0081ff8c66e1cdea9f2f6" );
18110 iv_len =
unhexify( iv_str,
"6dba3273560f30f118a2e0251f7b7d76" );
18111 add_len =
unhexify( add_str,
"" );
18113 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
18116 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
18117 hexify( dst_str, output, pt_len );
18118 hexify( tag_str, tag_output, tag_len );
18120 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
18121 fct_chk( strcmp( (
char *) tag_str,
"5f45e00181cd2d7feb4723e0cdca24" ) == 0 );
18127 FCT_TEST_BGN(gcm_nist_validation_aes_25612800112_0)
18129 unsigned char key_str[128];
18130 unsigned char src_str[128];
18131 unsigned char dst_str[257];
18132 unsigned char iv_str[128];
18133 unsigned char add_str[128];
18134 unsigned char tag_str[128];
18135 unsigned char output[128];
18136 unsigned char tag_output[16];
18138 unsigned int key_len;
18139 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
18141 memset(key_str, 0x00, 128);
18142 memset(src_str, 0x00, 128);
18143 memset(dst_str, 0x00, 257);
18144 memset(iv_str, 0x00, 128);
18145 memset(add_str, 0x00, 128);
18146 memset(tag_str, 0x00, 128);
18147 memset(output, 0x00, 128);
18148 memset(tag_output, 0x00, 16);
18150 key_len =
unhexify( key_str,
"2948233eec9bf8adf7250b20d62df9219d30e314c5932383203805ff9f3dc5cf" );
18152 iv_len =
unhexify( iv_str,
"d6b8e723272e26922b78756d66e03432" );
18153 add_len =
unhexify( add_str,
"" );
18155 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
18158 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
18159 hexify( dst_str, output, pt_len );
18160 hexify( tag_str, tag_output, tag_len );
18162 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
18163 fct_chk( strcmp( (
char *) tag_str,
"14c9a9a217a33d4c0b8e627641fe" ) == 0 );
18169 FCT_TEST_BGN(gcm_nist_validation_aes_25612800112_1)
18171 unsigned char key_str[128];
18172 unsigned char src_str[128];
18173 unsigned char dst_str[257];
18174 unsigned char iv_str[128];
18175 unsigned char add_str[128];
18176 unsigned char tag_str[128];
18177 unsigned char output[128];
18178 unsigned char tag_output[16];
18180 unsigned int key_len;
18181 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
18183 memset(key_str, 0x00, 128);
18184 memset(src_str, 0x00, 128);
18185 memset(dst_str, 0x00, 257);
18186 memset(iv_str, 0x00, 128);
18187 memset(add_str, 0x00, 128);
18188 memset(tag_str, 0x00, 128);
18189 memset(output, 0x00, 128);
18190 memset(tag_output, 0x00, 16);
18192 key_len =
unhexify( key_str,
"c73fb5e732ebc1dc7c91ac25de0d01d427de12baf05ff251c04d3290d77c34d1" );
18194 iv_len =
unhexify( iv_str,
"c31220835b11d61920ae2c91e335907e" );
18195 add_len =
unhexify( add_str,
"" );
18197 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
18200 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
18201 hexify( dst_str, output, pt_len );
18202 hexify( tag_str, tag_output, tag_len );
18204 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
18205 fct_chk( strcmp( (
char *) tag_str,
"9eb18097d3e6b6b7d5e161ae4e96" ) == 0 );
18211 FCT_TEST_BGN(gcm_nist_validation_aes_25612800112_2)
18213 unsigned char key_str[128];
18214 unsigned char src_str[128];
18215 unsigned char dst_str[257];
18216 unsigned char iv_str[128];
18217 unsigned char add_str[128];
18218 unsigned char tag_str[128];
18219 unsigned char output[128];
18220 unsigned char tag_output[16];
18222 unsigned int key_len;
18223 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
18225 memset(key_str, 0x00, 128);
18226 memset(src_str, 0x00, 128);
18227 memset(dst_str, 0x00, 257);
18228 memset(iv_str, 0x00, 128);
18229 memset(add_str, 0x00, 128);
18230 memset(tag_str, 0x00, 128);
18231 memset(output, 0x00, 128);
18232 memset(tag_output, 0x00, 16);
18234 key_len =
unhexify( key_str,
"a46aff2121825814c603b258f71d47bd9c9d3db4c6fe0f900e0e99d36c8f8d66" );
18236 iv_len =
unhexify( iv_str,
"7cb5550a20d958490739be8a5c72440f" );
18237 add_len =
unhexify( add_str,
"" );
18239 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
18242 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
18243 hexify( dst_str, output, pt_len );
18244 hexify( tag_str, tag_output, tag_len );
18246 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
18247 fct_chk( strcmp( (
char *) tag_str,
"8c76eebda0f1fd57f05a62c5f93d" ) == 0 );
18253 FCT_TEST_BGN(gcm_nist_validation_aes_25612800104_0)
18255 unsigned char key_str[128];
18256 unsigned char src_str[128];
18257 unsigned char dst_str[257];
18258 unsigned char iv_str[128];
18259 unsigned char add_str[128];
18260 unsigned char tag_str[128];
18261 unsigned char output[128];
18262 unsigned char tag_output[16];
18264 unsigned int key_len;
18265 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
18267 memset(key_str, 0x00, 128);
18268 memset(src_str, 0x00, 128);
18269 memset(dst_str, 0x00, 257);
18270 memset(iv_str, 0x00, 128);
18271 memset(add_str, 0x00, 128);
18272 memset(tag_str, 0x00, 128);
18273 memset(output, 0x00, 128);
18274 memset(tag_output, 0x00, 16);
18276 key_len =
unhexify( key_str,
"61a612c76de551f794a146962d913f60fbd4431365b711217aaa4beaa115f726" );
18278 iv_len =
unhexify( iv_str,
"2d25462c90ad9a21073729e5efc99957" );
18279 add_len =
unhexify( add_str,
"" );
18281 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
18284 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
18285 hexify( dst_str, output, pt_len );
18286 hexify( tag_str, tag_output, tag_len );
18288 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
18289 fct_chk( strcmp( (
char *) tag_str,
"e4d3b277dc9a107c0392ca1e5b" ) == 0 );
18295 FCT_TEST_BGN(gcm_nist_validation_aes_25612800104_1)
18297 unsigned char key_str[128];
18298 unsigned char src_str[128];
18299 unsigned char dst_str[257];
18300 unsigned char iv_str[128];
18301 unsigned char add_str[128];
18302 unsigned char tag_str[128];
18303 unsigned char output[128];
18304 unsigned char tag_output[16];
18306 unsigned int key_len;
18307 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
18309 memset(key_str, 0x00, 128);
18310 memset(src_str, 0x00, 128);
18311 memset(dst_str, 0x00, 257);
18312 memset(iv_str, 0x00, 128);
18313 memset(add_str, 0x00, 128);
18314 memset(tag_str, 0x00, 128);
18315 memset(output, 0x00, 128);
18316 memset(tag_output, 0x00, 16);
18318 key_len =
unhexify( key_str,
"4b233480239fabd2035a7c9207a8e1ab2da45a90a472b30848fe4b4757c628db" );
18320 iv_len =
unhexify( iv_str,
"50d45096afd0571e171e1ab1ffb3720f" );
18321 add_len =
unhexify( add_str,
"" );
18323 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
18326 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
18327 hexify( dst_str, output, pt_len );
18328 hexify( tag_str, tag_output, tag_len );
18330 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
18331 fct_chk( strcmp( (
char *) tag_str,
"5393bc06b8c5ecef1264fd6084" ) == 0 );
18337 FCT_TEST_BGN(gcm_nist_validation_aes_25612800104_2)
18339 unsigned char key_str[128];
18340 unsigned char src_str[128];
18341 unsigned char dst_str[257];
18342 unsigned char iv_str[128];
18343 unsigned char add_str[128];
18344 unsigned char tag_str[128];
18345 unsigned char output[128];
18346 unsigned char tag_output[16];
18348 unsigned int key_len;
18349 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
18351 memset(key_str, 0x00, 128);
18352 memset(src_str, 0x00, 128);
18353 memset(dst_str, 0x00, 257);
18354 memset(iv_str, 0x00, 128);
18355 memset(add_str, 0x00, 128);
18356 memset(tag_str, 0x00, 128);
18357 memset(output, 0x00, 128);
18358 memset(tag_output, 0x00, 16);
18360 key_len =
unhexify( key_str,
"dc051ac63e6b051594158399291ed101a3efbb1701b98819c4835a4863734371" );
18362 iv_len =
unhexify( iv_str,
"1f304d4d7f84ab560366215649b0a064" );
18363 add_len =
unhexify( add_str,
"" );
18365 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
18368 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
18369 hexify( dst_str, output, pt_len );
18370 hexify( tag_str, tag_output, tag_len );
18372 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
18373 fct_chk( strcmp( (
char *) tag_str,
"1081dda9e0a793916dc82f7848" ) == 0 );
18379 FCT_TEST_BGN(gcm_nist_validation_aes_2561280096_0)
18381 unsigned char key_str[128];
18382 unsigned char src_str[128];
18383 unsigned char dst_str[257];
18384 unsigned char iv_str[128];
18385 unsigned char add_str[128];
18386 unsigned char tag_str[128];
18387 unsigned char output[128];
18388 unsigned char tag_output[16];
18390 unsigned int key_len;
18391 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
18393 memset(key_str, 0x00, 128);
18394 memset(src_str, 0x00, 128);
18395 memset(dst_str, 0x00, 257);
18396 memset(iv_str, 0x00, 128);
18397 memset(add_str, 0x00, 128);
18398 memset(tag_str, 0x00, 128);
18399 memset(output, 0x00, 128);
18400 memset(tag_output, 0x00, 16);
18402 key_len =
unhexify( key_str,
"75f76df772af8e3019a4c1588a7d59925f80ce0d5647030f29548374e7bcc9e8" );
18404 iv_len =
unhexify( iv_str,
"d407264e09fbc853b131c8a9f808f1de" );
18405 add_len =
unhexify( add_str,
"" );
18407 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
18410 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
18411 hexify( dst_str, output, pt_len );
18412 hexify( tag_str, tag_output, tag_len );
18414 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
18415 fct_chk( strcmp( (
char *) tag_str,
"d515522db52bb872a4d3f9d1" ) == 0 );
18421 FCT_TEST_BGN(gcm_nist_validation_aes_2561280096_1)
18423 unsigned char key_str[128];
18424 unsigned char src_str[128];
18425 unsigned char dst_str[257];
18426 unsigned char iv_str[128];
18427 unsigned char add_str[128];
18428 unsigned char tag_str[128];
18429 unsigned char output[128];
18430 unsigned char tag_output[16];
18432 unsigned int key_len;
18433 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
18435 memset(key_str, 0x00, 128);
18436 memset(src_str, 0x00, 128);
18437 memset(dst_str, 0x00, 257);
18438 memset(iv_str, 0x00, 128);
18439 memset(add_str, 0x00, 128);
18440 memset(tag_str, 0x00, 128);
18441 memset(output, 0x00, 128);
18442 memset(tag_output, 0x00, 16);
18444 key_len =
unhexify( key_str,
"608d7592c094322b31d4583a430986bdf6aa639cc4b4a0b3903e588b45c38d38" );
18446 iv_len =
unhexify( iv_str,
"6a631952e4990ae6bdd51052eb407168" );
18447 add_len =
unhexify( add_str,
"" );
18449 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
18452 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
18453 hexify( dst_str, output, pt_len );
18454 hexify( tag_str, tag_output, tag_len );
18456 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
18457 fct_chk( strcmp( (
char *) tag_str,
"eb8851cfdd4fc841173c4985" ) == 0 );
18463 FCT_TEST_BGN(gcm_nist_validation_aes_2561280096_2)
18465 unsigned char key_str[128];
18466 unsigned char src_str[128];
18467 unsigned char dst_str[257];
18468 unsigned char iv_str[128];
18469 unsigned char add_str[128];
18470 unsigned char tag_str[128];
18471 unsigned char output[128];
18472 unsigned char tag_output[16];
18474 unsigned int key_len;
18475 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
18477 memset(key_str, 0x00, 128);
18478 memset(src_str, 0x00, 128);
18479 memset(dst_str, 0x00, 257);
18480 memset(iv_str, 0x00, 128);
18481 memset(add_str, 0x00, 128);
18482 memset(tag_str, 0x00, 128);
18483 memset(output, 0x00, 128);
18484 memset(tag_output, 0x00, 16);
18486 key_len =
unhexify( key_str,
"86a90631e5341e67dfa55e68b07522507b437fbab7f3e2e26cfc6e89ef9d2410" );
18488 iv_len =
unhexify( iv_str,
"67763ee1890e4bb430ac3c0dbc2af997" );
18489 add_len =
unhexify( add_str,
"" );
18491 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
18494 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
18495 hexify( dst_str, output, pt_len );
18496 hexify( tag_str, tag_output, tag_len );
18498 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
18499 fct_chk( strcmp( (
char *) tag_str,
"c6d11901b53cf6b13ac03cc5" ) == 0 );
18505 FCT_TEST_BGN(gcm_nist_validation_aes_2561280064_0)
18507 unsigned char key_str[128];
18508 unsigned char src_str[128];
18509 unsigned char dst_str[257];
18510 unsigned char iv_str[128];
18511 unsigned char add_str[128];
18512 unsigned char tag_str[128];
18513 unsigned char output[128];
18514 unsigned char tag_output[16];
18516 unsigned int key_len;
18517 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
18519 memset(key_str, 0x00, 128);
18520 memset(src_str, 0x00, 128);
18521 memset(dst_str, 0x00, 257);
18522 memset(iv_str, 0x00, 128);
18523 memset(add_str, 0x00, 128);
18524 memset(tag_str, 0x00, 128);
18525 memset(output, 0x00, 128);
18526 memset(tag_output, 0x00, 16);
18528 key_len =
unhexify( key_str,
"b8d12783ba2548b499ea56e77491d2794057e05fd7af7da597241d91d832b33a" );
18530 iv_len =
unhexify( iv_str,
"0365436099fe57b4c027c7e58182e0b9" );
18531 add_len =
unhexify( add_str,
"" );
18533 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
18536 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
18537 hexify( dst_str, output, pt_len );
18538 hexify( tag_str, tag_output, tag_len );
18540 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
18541 fct_chk( strcmp( (
char *) tag_str,
"41fc42d8c9999d8c" ) == 0 );
18547 FCT_TEST_BGN(gcm_nist_validation_aes_2561280064_1)
18549 unsigned char key_str[128];
18550 unsigned char src_str[128];
18551 unsigned char dst_str[257];
18552 unsigned char iv_str[128];
18553 unsigned char add_str[128];
18554 unsigned char tag_str[128];
18555 unsigned char output[128];
18556 unsigned char tag_output[16];
18558 unsigned int key_len;
18559 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
18561 memset(key_str, 0x00, 128);
18562 memset(src_str, 0x00, 128);
18563 memset(dst_str, 0x00, 257);
18564 memset(iv_str, 0x00, 128);
18565 memset(add_str, 0x00, 128);
18566 memset(tag_str, 0x00, 128);
18567 memset(output, 0x00, 128);
18568 memset(tag_output, 0x00, 16);
18570 key_len =
unhexify( key_str,
"eb17c1bbcd356070ca58fc3899bb3751eea5b9f3663c8e51d32c1fc3060b7ac2" );
18572 iv_len =
unhexify( iv_str,
"aca76b23575d4ec1a52a3d7214a4da2f" );
18573 add_len =
unhexify( add_str,
"" );
18575 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
18578 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
18579 hexify( dst_str, output, pt_len );
18580 hexify( tag_str, tag_output, tag_len );
18582 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
18583 fct_chk( strcmp( (
char *) tag_str,
"fbcfd13a2126b2af" ) == 0 );
18589 FCT_TEST_BGN(gcm_nist_validation_aes_2561280064_2)
18591 unsigned char key_str[128];
18592 unsigned char src_str[128];
18593 unsigned char dst_str[257];
18594 unsigned char iv_str[128];
18595 unsigned char add_str[128];
18596 unsigned char tag_str[128];
18597 unsigned char output[128];
18598 unsigned char tag_output[16];
18600 unsigned int key_len;
18601 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
18603 memset(key_str, 0x00, 128);
18604 memset(src_str, 0x00, 128);
18605 memset(dst_str, 0x00, 257);
18606 memset(iv_str, 0x00, 128);
18607 memset(add_str, 0x00, 128);
18608 memset(tag_str, 0x00, 128);
18609 memset(output, 0x00, 128);
18610 memset(tag_output, 0x00, 16);
18612 key_len =
unhexify( key_str,
"916aea7c3283aadb60908ec747bcf82364c1827ec29bedcbadacbb9b935221c1" );
18614 iv_len =
unhexify( iv_str,
"e4aefe6f81872729ff5a3acf164922aa" );
18615 add_len =
unhexify( add_str,
"" );
18617 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
18620 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
18621 hexify( dst_str, output, pt_len );
18622 hexify( tag_str, tag_output, tag_len );
18624 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
18625 fct_chk( strcmp( (
char *) tag_str,
"2035a7ce818b1eb4" ) == 0 );
18631 FCT_TEST_BGN(gcm_nist_validation_aes_2561280032_0)
18633 unsigned char key_str[128];
18634 unsigned char src_str[128];
18635 unsigned char dst_str[257];
18636 unsigned char iv_str[128];
18637 unsigned char add_str[128];
18638 unsigned char tag_str[128];
18639 unsigned char output[128];
18640 unsigned char tag_output[16];
18642 unsigned int key_len;
18643 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
18645 memset(key_str, 0x00, 128);
18646 memset(src_str, 0x00, 128);
18647 memset(dst_str, 0x00, 257);
18648 memset(iv_str, 0x00, 128);
18649 memset(add_str, 0x00, 128);
18650 memset(tag_str, 0x00, 128);
18651 memset(output, 0x00, 128);
18652 memset(tag_output, 0x00, 16);
18654 key_len =
unhexify( key_str,
"47b4b7feb91582a2f6121d12fd465967352e58d9f3d1bf27478da39514510055" );
18656 iv_len =
unhexify( iv_str,
"137bc31639a8a5d6b3c410151078c662" );
18657 add_len =
unhexify( add_str,
"" );
18659 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
18662 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
18663 hexify( dst_str, output, pt_len );
18664 hexify( tag_str, tag_output, tag_len );
18666 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
18667 fct_chk( strcmp( (
char *) tag_str,
"822955ba" ) == 0 );
18673 FCT_TEST_BGN(gcm_nist_validation_aes_2561280032_1)
18675 unsigned char key_str[128];
18676 unsigned char src_str[128];
18677 unsigned char dst_str[257];
18678 unsigned char iv_str[128];
18679 unsigned char add_str[128];
18680 unsigned char tag_str[128];
18681 unsigned char output[128];
18682 unsigned char tag_output[16];
18684 unsigned int key_len;
18685 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
18687 memset(key_str, 0x00, 128);
18688 memset(src_str, 0x00, 128);
18689 memset(dst_str, 0x00, 257);
18690 memset(iv_str, 0x00, 128);
18691 memset(add_str, 0x00, 128);
18692 memset(tag_str, 0x00, 128);
18693 memset(output, 0x00, 128);
18694 memset(tag_output, 0x00, 16);
18696 key_len =
unhexify( key_str,
"8955cddce65978bd64ef5228308317a1ba6a9fbb5a80cf5905f3aed03058b797" );
18698 iv_len =
unhexify( iv_str,
"1370e72b56d97b9b9531ec02e2a5a937" );
18699 add_len =
unhexify( add_str,
"" );
18701 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
18704 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
18705 hexify( dst_str, output, pt_len );
18706 hexify( tag_str, tag_output, tag_len );
18708 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
18709 fct_chk( strcmp( (
char *) tag_str,
"b2f779e8" ) == 0 );
18715 FCT_TEST_BGN(gcm_nist_validation_aes_2561280032_2)
18717 unsigned char key_str[128];
18718 unsigned char src_str[128];
18719 unsigned char dst_str[257];
18720 unsigned char iv_str[128];
18721 unsigned char add_str[128];
18722 unsigned char tag_str[128];
18723 unsigned char output[128];
18724 unsigned char tag_output[16];
18726 unsigned int key_len;
18727 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
18729 memset(key_str, 0x00, 128);
18730 memset(src_str, 0x00, 128);
18731 memset(dst_str, 0x00, 257);
18732 memset(iv_str, 0x00, 128);
18733 memset(add_str, 0x00, 128);
18734 memset(tag_str, 0x00, 128);
18735 memset(output, 0x00, 128);
18736 memset(tag_output, 0x00, 16);
18738 key_len =
unhexify( key_str,
"7795d631f7e988bf53020d2b4607c04d1fab338a58b09484fe6659c500fd846b" );
18740 iv_len =
unhexify( iv_str,
"f3f5cc7c1ec0b7b113442269e478ed81" );
18741 add_len =
unhexify( add_str,
"" );
18743 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
18746 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
18747 hexify( dst_str, output, pt_len );
18748 hexify( tag_str, tag_output, tag_len );
18750 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
18751 fct_chk( strcmp( (
char *) tag_str,
"e4e6dfcc" ) == 0 );
18757 FCT_TEST_BGN(gcm_nist_validation_aes_25612801024128_0)
18759 unsigned char key_str[128];
18760 unsigned char src_str[128];
18761 unsigned char dst_str[257];
18762 unsigned char iv_str[128];
18763 unsigned char add_str[128];
18764 unsigned char tag_str[128];
18765 unsigned char output[128];
18766 unsigned char tag_output[16];
18768 unsigned int key_len;
18769 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
18771 memset(key_str, 0x00, 128);
18772 memset(src_str, 0x00, 128);
18773 memset(dst_str, 0x00, 257);
18774 memset(iv_str, 0x00, 128);
18775 memset(add_str, 0x00, 128);
18776 memset(tag_str, 0x00, 128);
18777 memset(output, 0x00, 128);
18778 memset(tag_output, 0x00, 16);
18780 key_len =
unhexify( key_str,
"f9aab5d2ea01b9dc35c728ae24e07c54e6d1452e49d9644776f65878199bc5e4" );
18782 iv_len =
unhexify( iv_str,
"96ec2252e51ebfb731b680729be73297" );
18783 add_len =
unhexify( add_str,
"983a102a67359f4eecac465b0d65908a487c98c593be89494a39b721728edc991726e1fba49607eed1f8ba75ae9ab82a1a95b65ebdf48d7ee3c4a2b56832f21a483d48c8400dea71537f4c459d1cfcf9d2cc97b32eb7c5146cbf44d7e5ac779e9be0ae758eafff2138d4c5370b8cb62d70ebb713dfd2fd7772fa250590609844" );
18785 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
18788 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
18789 hexify( dst_str, output, pt_len );
18790 hexify( tag_str, tag_output, tag_len );
18792 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
18793 fct_chk( strcmp( (
char *) tag_str,
"766b6dcf491a5836ef90f47ac6ab91ec" ) == 0 );
18799 FCT_TEST_BGN(gcm_nist_validation_aes_25612801024128_1)
18801 unsigned char key_str[128];
18802 unsigned char src_str[128];
18803 unsigned char dst_str[257];
18804 unsigned char iv_str[128];
18805 unsigned char add_str[128];
18806 unsigned char tag_str[128];
18807 unsigned char output[128];
18808 unsigned char tag_output[16];
18810 unsigned int key_len;
18811 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
18813 memset(key_str, 0x00, 128);
18814 memset(src_str, 0x00, 128);
18815 memset(dst_str, 0x00, 257);
18816 memset(iv_str, 0x00, 128);
18817 memset(add_str, 0x00, 128);
18818 memset(tag_str, 0x00, 128);
18819 memset(output, 0x00, 128);
18820 memset(tag_output, 0x00, 16);
18822 key_len =
unhexify( key_str,
"d713b33af57762f933d6abfecbac7fb0dc1e545dd7c01638b0e1510af719769a" );
18824 iv_len =
unhexify( iv_str,
"5da52833b6fc73c0e4b1403e1c3c10a2" );
18825 add_len =
unhexify( add_str,
"374dd4ebdfe74450abe26d9e53556092abe36f47bbb574e8184b4e0f64d16d99eaf0666fa3d9b0723c868cf6f77e641c47ac60f0ee13dd0c1046ef202e652b652f4b5de611989223b0acf1ead9b3537bba17ccf865a4a0fda1a20b00e3c828b9726bbd0b0e92fa8ed970eed50c885e6d69604278375af7b9ae47fbce4fed7d03" );
18827 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
18830 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
18831 hexify( dst_str, output, pt_len );
18832 hexify( tag_str, tag_output, tag_len );
18834 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
18835 fct_chk( strcmp( (
char *) tag_str,
"6151956162348eb397e2b1077b61ee25" ) == 0 );
18841 FCT_TEST_BGN(gcm_nist_validation_aes_25612801024128_2)
18843 unsigned char key_str[128];
18844 unsigned char src_str[128];
18845 unsigned char dst_str[257];
18846 unsigned char iv_str[128];
18847 unsigned char add_str[128];
18848 unsigned char tag_str[128];
18849 unsigned char output[128];
18850 unsigned char tag_output[16];
18852 unsigned int key_len;
18853 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
18855 memset(key_str, 0x00, 128);
18856 memset(src_str, 0x00, 128);
18857 memset(dst_str, 0x00, 257);
18858 memset(iv_str, 0x00, 128);
18859 memset(add_str, 0x00, 128);
18860 memset(tag_str, 0x00, 128);
18861 memset(output, 0x00, 128);
18862 memset(tag_output, 0x00, 16);
18864 key_len =
unhexify( key_str,
"77a1e4ddfbe77a0ca3513fc654e7c41609cb974a306234add2fc77770a4a9e16" );
18866 iv_len =
unhexify( iv_str,
"30d6ec88433a6bdd7786dc4d3693bde8" );
18867 add_len =
unhexify( add_str,
"69beef4dbdcdf4e8eeb9bf8ae6caff8433949afc2ffef777e2b71a99fde974797dfed2254b959430ecc48db72cee16c7ef41fa4165ce4a0636ad4e40875d193a3c6c56a6bca5a55bce3a057a2d3ac223eba76e30e7415f00e6a7643fda9a1bf4d4b96ce597ffe30c3f780dd767cb5681bb7a3fd11668380e272bdd70e66f18b6" );
18869 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
18872 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
18873 hexify( dst_str, output, pt_len );
18874 hexify( tag_str, tag_output, tag_len );
18876 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
18877 fct_chk( strcmp( (
char *) tag_str,
"d4a3c91e02a94fd183cb0c9de241c7d1" ) == 0 );
18883 FCT_TEST_BGN(gcm_nist_validation_aes_25612801024120_0)
18885 unsigned char key_str[128];
18886 unsigned char src_str[128];
18887 unsigned char dst_str[257];
18888 unsigned char iv_str[128];
18889 unsigned char add_str[128];
18890 unsigned char tag_str[128];
18891 unsigned char output[128];
18892 unsigned char tag_output[16];
18894 unsigned int key_len;
18895 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
18897 memset(key_str, 0x00, 128);
18898 memset(src_str, 0x00, 128);
18899 memset(dst_str, 0x00, 257);
18900 memset(iv_str, 0x00, 128);
18901 memset(add_str, 0x00, 128);
18902 memset(tag_str, 0x00, 128);
18903 memset(output, 0x00, 128);
18904 memset(tag_output, 0x00, 16);
18906 key_len =
unhexify( key_str,
"303930b8ba50f65a50c33eccd879990d5d87b569e46f1a59db54371fcbda7fd6" );
18908 iv_len =
unhexify( iv_str,
"2b2b28d8a5c94b6f7ee50e130268a078" );
18909 add_len =
unhexify( add_str,
"c2ff20441d96bae4d2d760dcbae636ca7e01d263c28db5faed201bdb39bcacc82ebdc943968aa0accd920d258709c270df65d46d3f09910d2ea701c018ec9a68af7fb3d76a9b360de266b2ac05e95c538417fec59cec1f07d47c03511751978baebd2e0e4f7483f7351b5e61c2a60138c97b751f6a8c8323970f6be05357aeb2" );
18911 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
18914 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
18915 hexify( dst_str, output, pt_len );
18916 hexify( tag_str, tag_output, tag_len );
18918 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
18919 fct_chk( strcmp( (
char *) tag_str,
"b597491dfe599eaa414b71c54063ed" ) == 0 );
18925 FCT_TEST_BGN(gcm_nist_validation_aes_25612801024120_1)
18927 unsigned char key_str[128];
18928 unsigned char src_str[128];
18929 unsigned char dst_str[257];
18930 unsigned char iv_str[128];
18931 unsigned char add_str[128];
18932 unsigned char tag_str[128];
18933 unsigned char output[128];
18934 unsigned char tag_output[16];
18936 unsigned int key_len;
18937 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
18939 memset(key_str, 0x00, 128);
18940 memset(src_str, 0x00, 128);
18941 memset(dst_str, 0x00, 257);
18942 memset(iv_str, 0x00, 128);
18943 memset(add_str, 0x00, 128);
18944 memset(tag_str, 0x00, 128);
18945 memset(output, 0x00, 128);
18946 memset(tag_output, 0x00, 16);
18948 key_len =
unhexify( key_str,
"1e3b94f5883239c45ed4df6930c453c9ffd70b1c6cee845bbcfe6f29a762713b" );
18950 iv_len =
unhexify( iv_str,
"61155f27c629dcb6cf49b192b0b505d6" );
18951 add_len =
unhexify( add_str,
"5b7482e9b638cb23dba327cc08309bdb40d38100a407c36091457971bad3ab263efa8f36d8d04fdc4dea38369efe7ae5e8b9c190dad2688bda857e48dfd400748a359cfe1b2a3f3d5be7ae0f64a3f44738a7c7cf840a2e6b90ec43f8c9322c60dd91e4f27fa12197fab7ed092990879e964ce014f6be2a1ef70bfefe880a75d5" );
18953 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
18956 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
18957 hexify( dst_str, output, pt_len );
18958 hexify( tag_str, tag_output, tag_len );
18960 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
18961 fct_chk( strcmp( (
char *) tag_str,
"7003f04d6b6d9dc794be27b9c5d5e5" ) == 0 );
18967 FCT_TEST_BGN(gcm_nist_validation_aes_25612801024120_2)
18969 unsigned char key_str[128];
18970 unsigned char src_str[128];
18971 unsigned char dst_str[257];
18972 unsigned char iv_str[128];
18973 unsigned char add_str[128];
18974 unsigned char tag_str[128];
18975 unsigned char output[128];
18976 unsigned char tag_output[16];
18978 unsigned int key_len;
18979 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
18981 memset(key_str, 0x00, 128);
18982 memset(src_str, 0x00, 128);
18983 memset(dst_str, 0x00, 257);
18984 memset(iv_str, 0x00, 128);
18985 memset(add_str, 0x00, 128);
18986 memset(tag_str, 0x00, 128);
18987 memset(output, 0x00, 128);
18988 memset(tag_output, 0x00, 16);
18990 key_len =
unhexify( key_str,
"9080effb27994ef831689da10600e7a219db93d690647457702c217b08057eb3" );
18992 iv_len =
unhexify( iv_str,
"f45514696ff5ee1e6e5797f7bcff05c0" );
18993 add_len =
unhexify( add_str,
"5251f800f7c7106c008c0122971f0070d6325b7343a82fc35f3853d25c878215e7a929bf63cc8996f0ffb817174a351b71d691f23021f58777f962fd1d45ff849e4612e3304ae3303ace7b8ca1a43f54e662071c183a1695873f5567397587283433d1e76cec1103ee76f8e0472814424b8981caea1f624131fb7353afcd2cd2" );
18995 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
18998 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
18999 hexify( dst_str, output, pt_len );
19000 hexify( tag_str, tag_output, tag_len );
19002 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
19003 fct_chk( strcmp( (
char *) tag_str,
"cfb6d9bccf0378fabae08fd230edc1" ) == 0 );
19009 FCT_TEST_BGN(gcm_nist_validation_aes_25612801024112_0)
19011 unsigned char key_str[128];
19012 unsigned char src_str[128];
19013 unsigned char dst_str[257];
19014 unsigned char iv_str[128];
19015 unsigned char add_str[128];
19016 unsigned char tag_str[128];
19017 unsigned char output[128];
19018 unsigned char tag_output[16];
19020 unsigned int key_len;
19021 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
19023 memset(key_str, 0x00, 128);
19024 memset(src_str, 0x00, 128);
19025 memset(dst_str, 0x00, 257);
19026 memset(iv_str, 0x00, 128);
19027 memset(add_str, 0x00, 128);
19028 memset(tag_str, 0x00, 128);
19029 memset(output, 0x00, 128);
19030 memset(tag_output, 0x00, 16);
19032 key_len =
unhexify( key_str,
"8c291f0ad78908377039f59591d0e305bdc915a3e5bfb0b4364e1af9946339c0" );
19034 iv_len =
unhexify( iv_str,
"a9830d5663418add5f3c0b1140967b06" );
19035 add_len =
unhexify( add_str,
"e43c04e1f7304c1d83235120e24429af8dc29dc94399474d06047fd09d61ddc682684776c81ef08d97f06db6e4cfb02daea728ec6ac637e1ecfdb5d48f0440d8d8ffee43146f58a396e5151701b0d61d5f713b2816d3f56d6ee19f038ccc36493d9ad1809a49aa5798e181679d82cba22b0b4e064f56af5ec05c012b132bda87" );
19037 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
19040 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
19041 hexify( dst_str, output, pt_len );
19042 hexify( tag_str, tag_output, tag_len );
19044 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
19045 fct_chk( strcmp( (
char *) tag_str,
"275480889efe55c4b9a08cef720b" ) == 0 );
19051 FCT_TEST_BGN(gcm_nist_validation_aes_25612801024112_1)
19053 unsigned char key_str[128];
19054 unsigned char src_str[128];
19055 unsigned char dst_str[257];
19056 unsigned char iv_str[128];
19057 unsigned char add_str[128];
19058 unsigned char tag_str[128];
19059 unsigned char output[128];
19060 unsigned char tag_output[16];
19062 unsigned int key_len;
19063 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
19065 memset(key_str, 0x00, 128);
19066 memset(src_str, 0x00, 128);
19067 memset(dst_str, 0x00, 257);
19068 memset(iv_str, 0x00, 128);
19069 memset(add_str, 0x00, 128);
19070 memset(tag_str, 0x00, 128);
19071 memset(output, 0x00, 128);
19072 memset(tag_output, 0x00, 16);
19074 key_len =
unhexify( key_str,
"96c77c11a3336a41b61ffdc1724a80735bbe91dd4c741fdbcc36e21c53335852" );
19076 iv_len =
unhexify( iv_str,
"655502d70119326405d8cc0a2c7a572c" );
19077 add_len =
unhexify( add_str,
"c01034fc6b7708128fbf4d6ffa4b4b280a1493b9e1dd07079f509479b365f55ae9290689f1c4bdfa439344e3abb17f3fd3d5e2f8b317517747714a82f0a9ace04938591d3ade6d6095491a440322d347e8634008cc4fd8add7c1c4764afdb2b098b3f5604e449e8049a46b6192647d19cf88fa5ed1abab7f313b4285560cba44" );
19079 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
19082 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
19083 hexify( dst_str, output, pt_len );
19084 hexify( tag_str, tag_output, tag_len );
19086 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
19087 fct_chk( strcmp( (
char *) tag_str,
"b4d581464c4bb23433699c418ddc" ) == 0 );
19093 FCT_TEST_BGN(gcm_nist_validation_aes_25612801024112_2)
19095 unsigned char key_str[128];
19096 unsigned char src_str[128];
19097 unsigned char dst_str[257];
19098 unsigned char iv_str[128];
19099 unsigned char add_str[128];
19100 unsigned char tag_str[128];
19101 unsigned char output[128];
19102 unsigned char tag_output[16];
19104 unsigned int key_len;
19105 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
19107 memset(key_str, 0x00, 128);
19108 memset(src_str, 0x00, 128);
19109 memset(dst_str, 0x00, 257);
19110 memset(iv_str, 0x00, 128);
19111 memset(add_str, 0x00, 128);
19112 memset(tag_str, 0x00, 128);
19113 memset(output, 0x00, 128);
19114 memset(tag_output, 0x00, 16);
19116 key_len =
unhexify( key_str,
"e2a3957393669278f052ff2df4e658e17f2fe32811e32b3f62a31a3938930764" );
19118 iv_len =
unhexify( iv_str,
"a6f5a1f1f1ac77a1cb010d2dd4325cbe" );
19119 add_len =
unhexify( add_str,
"ce9c268429ca9c35c958ca3e81935ec60166aea0be15975baf69103251efafd54cbcc0bed76a8b44a5b947199cd3c2dee6878dd14a5a491a4a3d45788405d0129354e59c047b5367f1158bcf4e066a276951d2586bafc3c11f8a982ca7c3ba4677a938498bd51171552ea032fe1bd85cfeaeb87e87168f7a28e979b08358f841" );
19121 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
19124 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
19125 hexify( dst_str, output, pt_len );
19126 hexify( tag_str, tag_output, tag_len );
19128 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
19129 fct_chk( strcmp( (
char *) tag_str,
"cd5986df8e9761d52cb578e96b1b" ) == 0 );
19135 FCT_TEST_BGN(gcm_nist_validation_aes_25612801024104_0)
19137 unsigned char key_str[128];
19138 unsigned char src_str[128];
19139 unsigned char dst_str[257];
19140 unsigned char iv_str[128];
19141 unsigned char add_str[128];
19142 unsigned char tag_str[128];
19143 unsigned char output[128];
19144 unsigned char tag_output[16];
19146 unsigned int key_len;
19147 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
19149 memset(key_str, 0x00, 128);
19150 memset(src_str, 0x00, 128);
19151 memset(dst_str, 0x00, 257);
19152 memset(iv_str, 0x00, 128);
19153 memset(add_str, 0x00, 128);
19154 memset(tag_str, 0x00, 128);
19155 memset(output, 0x00, 128);
19156 memset(tag_output, 0x00, 16);
19158 key_len =
unhexify( key_str,
"2b17652f7f04073afe9d9eb8b2615c7550968b9776b139fcc4f9b0300912cbdb" );
19160 iv_len =
unhexify( iv_str,
"9a8ac23ea74b292b7386138666a0fb60" );
19161 add_len =
unhexify( add_str,
"2732107241e6136f1dd28d233373079d75d6ac13828ae7afc751b6f9c57e77268c52ae91f4ab3016af2764597994573cd6b41f72e21b60ffbb3aafc9487ac19d0ffe8db2ae2c7505ae5963b032d1ee1bffb4c5bd88bb0c9a350ba26ee3eb8dc0a157955333e4f28c5ec7349c39229dff9f440da72909f2870aea873a76545ee8" );
19163 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
19166 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
19167 hexify( dst_str, output, pt_len );
19168 hexify( tag_str, tag_output, tag_len );
19170 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
19171 fct_chk( strcmp( (
char *) tag_str,
"f7b94229439088142619a1a6bc" ) == 0 );
19177 FCT_TEST_BGN(gcm_nist_validation_aes_25612801024104_1)
19179 unsigned char key_str[128];
19180 unsigned char src_str[128];
19181 unsigned char dst_str[257];
19182 unsigned char iv_str[128];
19183 unsigned char add_str[128];
19184 unsigned char tag_str[128];
19185 unsigned char output[128];
19186 unsigned char tag_output[16];
19188 unsigned int key_len;
19189 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
19191 memset(key_str, 0x00, 128);
19192 memset(src_str, 0x00, 128);
19193 memset(dst_str, 0x00, 257);
19194 memset(iv_str, 0x00, 128);
19195 memset(add_str, 0x00, 128);
19196 memset(tag_str, 0x00, 128);
19197 memset(output, 0x00, 128);
19198 memset(tag_output, 0x00, 16);
19200 key_len =
unhexify( key_str,
"16fe502e20d6473ed9a27569b63a768ecd428738904cf0b337df510775804619" );
19202 iv_len =
unhexify( iv_str,
"431a8d78b91414737e7c6188328a6d37" );
19203 add_len =
unhexify( add_str,
"934bcacbac10ea4ff6ee94b17bd7379b88489fbf123bf496c78c9b6b02ee97dd62eedd05b8f44f4912764920129e711701628991a0009ebc7017a1a19b177ec9bc3b0f280eeefadfa310708dfe214428a184147b4523e66f2d62630d4a12fd3e366d27c3b7d1566553c9b434ed193db083160da1f241de190bcbd36f435e30f4" );
19205 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
19208 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
19209 hexify( dst_str, output, pt_len );
19210 hexify( tag_str, tag_output, tag_len );
19212 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
19213 fct_chk( strcmp( (
char *) tag_str,
"1dd3e6d610f359cc4e98d36244" ) == 0 );
19219 FCT_TEST_BGN(gcm_nist_validation_aes_25612801024104_2)
19221 unsigned char key_str[128];
19222 unsigned char src_str[128];
19223 unsigned char dst_str[257];
19224 unsigned char iv_str[128];
19225 unsigned char add_str[128];
19226 unsigned char tag_str[128];
19227 unsigned char output[128];
19228 unsigned char tag_output[16];
19230 unsigned int key_len;
19231 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
19233 memset(key_str, 0x00, 128);
19234 memset(src_str, 0x00, 128);
19235 memset(dst_str, 0x00, 257);
19236 memset(iv_str, 0x00, 128);
19237 memset(add_str, 0x00, 128);
19238 memset(tag_str, 0x00, 128);
19239 memset(output, 0x00, 128);
19240 memset(tag_output, 0x00, 16);
19242 key_len =
unhexify( key_str,
"ccc545fd330cf17e27d75582db28807ec972b897f812d6ed4726d2a18daac76a" );
19244 iv_len =
unhexify( iv_str,
"caf2f56584a59c42a51fdbfe4ad78f3c" );
19245 add_len =
unhexify( add_str,
"e85ae6b27778893f36f130694af0b40f62a05aa386b30fc415e292761cab36fdc39bf5687a513e25ed149414f059e706d8a719b7165044fcbd48c773eae546380b8e667b56824e23685173ad9015a9449bc1cd0b767981efe09da43a07bf1aeee08ba05d387b8a00199e18c874fb3a91f77ba448c3bff971593f94747fce9cbd" );
19247 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
19250 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
19251 hexify( dst_str, output, pt_len );
19252 hexify( tag_str, tag_output, tag_len );
19254 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
19255 fct_chk( strcmp( (
char *) tag_str,
"5cf5c7ca6fbfee63854f3bcd15" ) == 0 );
19261 FCT_TEST_BGN(gcm_nist_validation_aes_2561280102496_0)
19263 unsigned char key_str[128];
19264 unsigned char src_str[128];
19265 unsigned char dst_str[257];
19266 unsigned char iv_str[128];
19267 unsigned char add_str[128];
19268 unsigned char tag_str[128];
19269 unsigned char output[128];
19270 unsigned char tag_output[16];
19272 unsigned int key_len;
19273 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
19275 memset(key_str, 0x00, 128);
19276 memset(src_str, 0x00, 128);
19277 memset(dst_str, 0x00, 257);
19278 memset(iv_str, 0x00, 128);
19279 memset(add_str, 0x00, 128);
19280 memset(tag_str, 0x00, 128);
19281 memset(output, 0x00, 128);
19282 memset(tag_output, 0x00, 16);
19284 key_len =
unhexify( key_str,
"8340d604770c778ee83d0fdd5703b1fb304c3bffeb6f4c65e2dd0e12c19bddcc" );
19286 iv_len =
unhexify( iv_str,
"c0a580465b1b2e8344f795a6578a5151" );
19287 add_len =
unhexify( add_str,
"799f228962ef87865dfcfa0addde7366de2e4aa78029dbc8d57d7e50fa7c74343458df3465103556a3bfc5ce217fbbb5b2835c9f76b70240b40fd605bcfa6b790d5985a8ba54354e0625263c628e8746c451504fc58a179f90f77f2b293d8dbf5582b031082025c806e60143da9ebb6133ac8367376d0572b32569ee799540ae" );
19289 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
19292 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
19293 hexify( dst_str, output, pt_len );
19294 hexify( tag_str, tag_output, tag_len );
19296 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
19297 fct_chk( strcmp( (
char *) tag_str,
"318f56bd0f3832d043ef700a" ) == 0 );
19303 FCT_TEST_BGN(gcm_nist_validation_aes_2561280102496_1)
19305 unsigned char key_str[128];
19306 unsigned char src_str[128];
19307 unsigned char dst_str[257];
19308 unsigned char iv_str[128];
19309 unsigned char add_str[128];
19310 unsigned char tag_str[128];
19311 unsigned char output[128];
19312 unsigned char tag_output[16];
19314 unsigned int key_len;
19315 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
19317 memset(key_str, 0x00, 128);
19318 memset(src_str, 0x00, 128);
19319 memset(dst_str, 0x00, 257);
19320 memset(iv_str, 0x00, 128);
19321 memset(add_str, 0x00, 128);
19322 memset(tag_str, 0x00, 128);
19323 memset(output, 0x00, 128);
19324 memset(tag_output, 0x00, 16);
19326 key_len =
unhexify( key_str,
"74de45262fe09e12c9ee7100030352112a6532d1874cc6792b4da6950677eb2a" );
19328 iv_len =
unhexify( iv_str,
"9f7fc7367f9afdb67fd1afffac058e2a" );
19329 add_len =
unhexify( add_str,
"289ac6f5beecbbcbde5cb3b0fdf4a27ba237fca33719f774ed33a5fd35d7e49f76d3e88c53fd35561655c35469f3eefb5b2f776ff2799aab346522d3f003154e53f4ef075f016aaa500c76870e6659a5f9af197c9a8f5b9e0416ed894e868463cc4386a7442bb0c089a9ab84981313c01fec4fc0ba35829b3cf49c6447f56a4b" );
19331 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
19334 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
19335 hexify( dst_str, output, pt_len );
19336 hexify( tag_str, tag_output, tag_len );
19338 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
19339 fct_chk( strcmp( (
char *) tag_str,
"bc1b8b94ff478d9e197551cd" ) == 0 );
19345 FCT_TEST_BGN(gcm_nist_validation_aes_2561280102496_2)
19347 unsigned char key_str[128];
19348 unsigned char src_str[128];
19349 unsigned char dst_str[257];
19350 unsigned char iv_str[128];
19351 unsigned char add_str[128];
19352 unsigned char tag_str[128];
19353 unsigned char output[128];
19354 unsigned char tag_output[16];
19356 unsigned int key_len;
19357 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
19359 memset(key_str, 0x00, 128);
19360 memset(src_str, 0x00, 128);
19361 memset(dst_str, 0x00, 257);
19362 memset(iv_str, 0x00, 128);
19363 memset(add_str, 0x00, 128);
19364 memset(tag_str, 0x00, 128);
19365 memset(output, 0x00, 128);
19366 memset(tag_output, 0x00, 16);
19368 key_len =
unhexify( key_str,
"441ec8afce630805d0ce98b200e59f5656a5ce19e5ef58241e6ef16cac7646b9" );
19370 iv_len =
unhexify( iv_str,
"a1cbeffaf55708c375dcfeb496b21f4e" );
19371 add_len =
unhexify( add_str,
"5a6ba5d3f5a7a4b317c6c716564c648f0e6bc6b0f9a4c27affca6d5af04b7b13d989b7a2cb42ce8eedd710be70c04c0e40977ca1c2f536aa70677038e737064fb0e23d3dd48bc00ebdd7f988f57141e164e3c18db81e9565a62e28c73770666ff3bfd725eebd98946fed02f31d500b0b7ab4dafeb14e8cc85731a87f50d95fae" );
19373 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
19376 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
19377 hexify( dst_str, output, pt_len );
19378 hexify( tag_str, tag_output, tag_len );
19380 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
19381 fct_chk( strcmp( (
char *) tag_str,
"aa4bb3d555dabaaeb4d81fcd" ) == 0 );
19387 FCT_TEST_BGN(gcm_nist_validation_aes_2561280102464_0)
19389 unsigned char key_str[128];
19390 unsigned char src_str[128];
19391 unsigned char dst_str[257];
19392 unsigned char iv_str[128];
19393 unsigned char add_str[128];
19394 unsigned char tag_str[128];
19395 unsigned char output[128];
19396 unsigned char tag_output[16];
19398 unsigned int key_len;
19399 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
19401 memset(key_str, 0x00, 128);
19402 memset(src_str, 0x00, 128);
19403 memset(dst_str, 0x00, 257);
19404 memset(iv_str, 0x00, 128);
19405 memset(add_str, 0x00, 128);
19406 memset(tag_str, 0x00, 128);
19407 memset(output, 0x00, 128);
19408 memset(tag_output, 0x00, 16);
19410 key_len =
unhexify( key_str,
"d643111c973ffb7f56bfbf394eedac54be2c556963b181cf661ba144f7893a62" );
19412 iv_len =
unhexify( iv_str,
"4575b00b9af2195a0cc75855d396e4e8" );
19413 add_len =
unhexify( add_str,
"b2c53efe59c84c651979bcc1bc76b0bbf5e52b5c3115849abdbc469a063e2b1699bd292e5fcb3476e849c9edbe6ea14c2ab948ed7d21a21f69406621d3d412b043eaf813be722d92739a33a361ed8081c0eb00400c3c7d4e329f5ba4f7b75d534500f42f178048cf2e95b768ffed79c350f2ff72cb355abdb30af0a1363c0b4a" );
19415 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
19418 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
19419 hexify( dst_str, output, pt_len );
19420 hexify( tag_str, tag_output, tag_len );
19422 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
19423 fct_chk( strcmp( (
char *) tag_str,
"9d1d182630d7aeee" ) == 0 );
19429 FCT_TEST_BGN(gcm_nist_validation_aes_2561280102464_1)
19431 unsigned char key_str[128];
19432 unsigned char src_str[128];
19433 unsigned char dst_str[257];
19434 unsigned char iv_str[128];
19435 unsigned char add_str[128];
19436 unsigned char tag_str[128];
19437 unsigned char output[128];
19438 unsigned char tag_output[16];
19440 unsigned int key_len;
19441 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
19443 memset(key_str, 0x00, 128);
19444 memset(src_str, 0x00, 128);
19445 memset(dst_str, 0x00, 257);
19446 memset(iv_str, 0x00, 128);
19447 memset(add_str, 0x00, 128);
19448 memset(tag_str, 0x00, 128);
19449 memset(output, 0x00, 128);
19450 memset(tag_output, 0x00, 16);
19452 key_len =
unhexify( key_str,
"91301ee0ca694ae6971ee705f53c7ec467f4c88257d6466f6f8159a8970384b9" );
19454 iv_len =
unhexify( iv_str,
"345fb57e88124a414828730a85f57871" );
19455 add_len =
unhexify( add_str,
"c13623824a204385f352388098f5e2db23426f00a73c60c1bf1047ce2c7cdf7f7cc8475781fe7075d1226ad18871e12f0156f35e6ce7032efe3bade1c807f9eedc720fff7a27a2f4690f904be9c99b54a65509eab60e97c4283596eeefa2b2517e95de7620382e3f780efa1dbf5d3908373adfe784a4faf298681e171bade4b3" );
19457 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
19460 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
19461 hexify( dst_str, output, pt_len );
19462 hexify( tag_str, tag_output, tag_len );
19464 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
19465 fct_chk( strcmp( (
char *) tag_str,
"325d08c5b96068c1" ) == 0 );
19471 FCT_TEST_BGN(gcm_nist_validation_aes_2561280102464_2)
19473 unsigned char key_str[128];
19474 unsigned char src_str[128];
19475 unsigned char dst_str[257];
19476 unsigned char iv_str[128];
19477 unsigned char add_str[128];
19478 unsigned char tag_str[128];
19479 unsigned char output[128];
19480 unsigned char tag_output[16];
19482 unsigned int key_len;
19483 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
19485 memset(key_str, 0x00, 128);
19486 memset(src_str, 0x00, 128);
19487 memset(dst_str, 0x00, 257);
19488 memset(iv_str, 0x00, 128);
19489 memset(add_str, 0x00, 128);
19490 memset(tag_str, 0x00, 128);
19491 memset(output, 0x00, 128);
19492 memset(tag_output, 0x00, 16);
19494 key_len =
unhexify( key_str,
"b6ba5c11daed7f868da9bfd7754d555a147a1ffd98c940c1cd5d136680e05c10" );
19496 iv_len =
unhexify( iv_str,
"b0c92b79d78547496d770678e1ce1552" );
19497 add_len =
unhexify( add_str,
"5b1ac8ff687f6fd2429dc90a8913f5826d143a16a372cca787845cea86d9b4778708bc0aa538f98e1031850f7c1d97fb64fe29adce6e1d51ca7f5203fc0358fe0bc54347e777dddfe04e3d7a66a1d1e2bdb8b8929e2100daf073845db5dc0b243819754c4c08f4fc3631d1cbd79ac7604746d677ff035930fcd6bd652e7864db" );
19499 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
19502 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
19503 hexify( dst_str, output, pt_len );
19504 hexify( tag_str, tag_output, tag_len );
19506 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
19507 fct_chk( strcmp( (
char *) tag_str,
"b1819b6f2d788616" ) == 0 );
19513 FCT_TEST_BGN(gcm_nist_validation_aes_2561280102432_0)
19515 unsigned char key_str[128];
19516 unsigned char src_str[128];
19517 unsigned char dst_str[257];
19518 unsigned char iv_str[128];
19519 unsigned char add_str[128];
19520 unsigned char tag_str[128];
19521 unsigned char output[128];
19522 unsigned char tag_output[16];
19524 unsigned int key_len;
19525 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
19527 memset(key_str, 0x00, 128);
19528 memset(src_str, 0x00, 128);
19529 memset(dst_str, 0x00, 257);
19530 memset(iv_str, 0x00, 128);
19531 memset(add_str, 0x00, 128);
19532 memset(tag_str, 0x00, 128);
19533 memset(output, 0x00, 128);
19534 memset(tag_output, 0x00, 16);
19536 key_len =
unhexify( key_str,
"5fcae1759209e784dae5a8278b267c414a03ce7c803df1db7815b2910d10ce19" );
19538 iv_len =
unhexify( iv_str,
"24c5c349b3effebfd076c88a591b8301" );
19539 add_len =
unhexify( add_str,
"ca2778e39fffce7fbe8f912e69d55931848dd5ab0d1bd32e7b94af453251a47f5408ebacd7b50ddd1103fab1c72acc0a02f404c5661d8450746d781e2c0861b6974ade9ee2515da88b470f16d5f06007f35ce97cfc17fd015e438af39ca6127db240babe9c42ed5717715f14e72f0ef6ff4ce512de95a179e60d6393e73f216a" );
19541 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
19544 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
19545 hexify( dst_str, output, pt_len );
19546 hexify( tag_str, tag_output, tag_len );
19548 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
19549 fct_chk( strcmp( (
char *) tag_str,
"8e59f30b" ) == 0 );
19555 FCT_TEST_BGN(gcm_nist_validation_aes_2561280102432_1)
19557 unsigned char key_str[128];
19558 unsigned char src_str[128];
19559 unsigned char dst_str[257];
19560 unsigned char iv_str[128];
19561 unsigned char add_str[128];
19562 unsigned char tag_str[128];
19563 unsigned char output[128];
19564 unsigned char tag_output[16];
19566 unsigned int key_len;
19567 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
19569 memset(key_str, 0x00, 128);
19570 memset(src_str, 0x00, 128);
19571 memset(dst_str, 0x00, 257);
19572 memset(iv_str, 0x00, 128);
19573 memset(add_str, 0x00, 128);
19574 memset(tag_str, 0x00, 128);
19575 memset(output, 0x00, 128);
19576 memset(tag_output, 0x00, 16);
19578 key_len =
unhexify( key_str,
"8d71a70fd58125b0da8dddf8d23ddbe0bc44743753bdf259448d58aae54775a6" );
19580 iv_len =
unhexify( iv_str,
"d15b02572dec98398ba9e68e1a463738" );
19581 add_len =
unhexify( add_str,
"81313be1eda9f27e01b30877ca90e825f55ef60b15548c45c786c44b024e7198f333be7ddd2c3f593a9b77b68e6a7ac4cfc015aeec66f4823d9be7152f02a533f375554309a4db0fea8e76255144458e488fd19106d9a9614e828ae306fe82af89e7981369b2259c49bae77f8ec2b1f169ef0449ad083d11907234b72ed2e464" );
19583 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
19586 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
19587 hexify( dst_str, output, pt_len );
19588 hexify( tag_str, tag_output, tag_len );
19590 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
19591 fct_chk( strcmp( (
char *) tag_str,
"99df1b8d" ) == 0 );
19597 FCT_TEST_BGN(gcm_nist_validation_aes_2561280102432_2)
19599 unsigned char key_str[128];
19600 unsigned char src_str[128];
19601 unsigned char dst_str[257];
19602 unsigned char iv_str[128];
19603 unsigned char add_str[128];
19604 unsigned char tag_str[128];
19605 unsigned char output[128];
19606 unsigned char tag_output[16];
19608 unsigned int key_len;
19609 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
19611 memset(key_str, 0x00, 128);
19612 memset(src_str, 0x00, 128);
19613 memset(dst_str, 0x00, 257);
19614 memset(iv_str, 0x00, 128);
19615 memset(add_str, 0x00, 128);
19616 memset(tag_str, 0x00, 128);
19617 memset(output, 0x00, 128);
19618 memset(tag_output, 0x00, 16);
19620 key_len =
unhexify( key_str,
"b52398c7c75e1b146cc9998eb203159925cf6fc0b1c993ba46528e2f8e8087f0" );
19622 iv_len =
unhexify( iv_str,
"afc9a60ab8448b77fb05e8410d0a26e8" );
19623 add_len =
unhexify( add_str,
"770b3782f0e3a19d7d6bb98fa3eb0b916928a2970701c0f4a372a0ecd63499444ae02fd269ddb7d92e11a9e11d0e0b8bc60096a4be79a1e063174b710c5d739d8d05ab5c8ba119ff40843cf8c5dc4e1bd6fcad8389de3b606284c902422108d85eb3589524776641b175946c9ade1465e0d1064c5ae073be90e3261878a9af98" );
19625 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
19628 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
19629 hexify( dst_str, output, pt_len );
19630 hexify( tag_str, tag_output, tag_len );
19632 fct_chk( strcmp( (
char *) dst_str,
"" ) == 0 );
19633 fct_chk( strcmp( (
char *) tag_str,
"32d6b756" ) == 0 );
19639 FCT_TEST_BGN(gcm_nist_validation_aes_25612810240128_0)
19641 unsigned char key_str[128];
19642 unsigned char src_str[128];
19643 unsigned char dst_str[257];
19644 unsigned char iv_str[128];
19645 unsigned char add_str[128];
19646 unsigned char tag_str[128];
19647 unsigned char output[128];
19648 unsigned char tag_output[16];
19650 unsigned int key_len;
19651 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
19653 memset(key_str, 0x00, 128);
19654 memset(src_str, 0x00, 128);
19655 memset(dst_str, 0x00, 257);
19656 memset(iv_str, 0x00, 128);
19657 memset(add_str, 0x00, 128);
19658 memset(tag_str, 0x00, 128);
19659 memset(output, 0x00, 128);
19660 memset(tag_output, 0x00, 16);
19662 key_len =
unhexify( key_str,
"6793869513ac886ed66e5897bcfa263877d8465fc762b1ed929ba3d08615fdd5" );
19663 pt_len =
unhexify( src_str,
"cda45e29f487f21b820e1af2c8e6d34a8bdf3f72d564a4625a6e06f9bae1c2eac3bbd5c5958fd75cf389a1a31391211745029dcd4cb2575f40ab04710a909b88c2d430cdee279f54cf7c0ff6638d1e0e631f526ee198cfd6e5cdf73d1a11b69de01d640f385fd829616cd2c0e78f09b5f64012e42dee9eb0245b72aba1404e0c" );
19664 iv_len =
unhexify( iv_str,
"a43de15dae25c606da1e7a4152f0df71" );
19665 add_len =
unhexify( add_str,
"" );
19667 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
19670 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
19671 hexify( dst_str, output, pt_len );
19672 hexify( tag_str, tag_output, tag_len );
19674 fct_chk( strcmp( (
char *) dst_str,
"385834c853772af70675b6be2d5087df84f88b6a303ea594a170e6dd0398ae270fcec61661ca373f4653d8dcc9e71767568c0fb03023b163bdc9ae8a08ea858cbb03b8182b4674147cb35ffda14a2f50ed9eb48d5351f00eb2fa433fdfed6f94833bcf656a7e350eb978a0aaf7a91674145f28f64693197a116b21328e273dca" ) == 0 );
19675 fct_chk( strcmp( (
char *) tag_str,
"159ffdb05615941e11f0db46ac8f23de" ) == 0 );
19681 FCT_TEST_BGN(gcm_nist_validation_aes_25612810240128_1)
19683 unsigned char key_str[128];
19684 unsigned char src_str[128];
19685 unsigned char dst_str[257];
19686 unsigned char iv_str[128];
19687 unsigned char add_str[128];
19688 unsigned char tag_str[128];
19689 unsigned char output[128];
19690 unsigned char tag_output[16];
19692 unsigned int key_len;
19693 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
19695 memset(key_str, 0x00, 128);
19696 memset(src_str, 0x00, 128);
19697 memset(dst_str, 0x00, 257);
19698 memset(iv_str, 0x00, 128);
19699 memset(add_str, 0x00, 128);
19700 memset(tag_str, 0x00, 128);
19701 memset(output, 0x00, 128);
19702 memset(tag_output, 0x00, 16);
19704 key_len =
unhexify( key_str,
"9f77c141b234907b38fb45f1b3602f3c29de1ed839bb7ba51f6192aa8baaa287" );
19705 pt_len =
unhexify( src_str,
"96dcb74a78e99676a71673e3c9f94c34b34dad2748a6e42cc70ea50e41ef8b86b5992295d2cbc8d621fefce09e8948de7e696b9788377d598796afd002a82b628d9890db78359e1edc075cbc0d3f11d544bfdf5c8a838390cb856735942dff260189c00accfabf720e5fef1d9b7131a6b2b769f67374602d1a7ed9b899b2c398" );
19706 iv_len =
unhexify( iv_str,
"1b49005788148665cef20d8dcde41889" );
19707 add_len =
unhexify( add_str,
"" );
19709 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
19712 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
19713 hexify( dst_str, output, pt_len );
19714 hexify( tag_str, tag_output, tag_len );
19716 fct_chk( strcmp( (
char *) dst_str,
"b4ca59caaa94749317789b92257f2ef1dd3d9b1f4ee9540927a6ae7bf5bb0b348fcf25ba8ddda79a89d3174ac1713421291910c8926cfbb4ec1e59be7dd50e816ff586f165c605371ee6077ba4ac0ce10499f9a2a44866ce6319fce22652226164cc0a813c3147c4461dd0410e3701d4647d5a003090082e367cb9249cf1be47" ) == 0 );
19717 fct_chk( strcmp( (
char *) tag_str,
"8048ae0c35a656fcaa2f4c1b6be250e2" ) == 0 );
19723 FCT_TEST_BGN(gcm_nist_validation_aes_25612810240128_2)
19725 unsigned char key_str[128];
19726 unsigned char src_str[128];
19727 unsigned char dst_str[257];
19728 unsigned char iv_str[128];
19729 unsigned char add_str[128];
19730 unsigned char tag_str[128];
19731 unsigned char output[128];
19732 unsigned char tag_output[16];
19734 unsigned int key_len;
19735 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
19737 memset(key_str, 0x00, 128);
19738 memset(src_str, 0x00, 128);
19739 memset(dst_str, 0x00, 257);
19740 memset(iv_str, 0x00, 128);
19741 memset(add_str, 0x00, 128);
19742 memset(tag_str, 0x00, 128);
19743 memset(output, 0x00, 128);
19744 memset(tag_output, 0x00, 16);
19746 key_len =
unhexify( key_str,
"2419fd9dbe58655122ac1022956a023446b7f4756163769fc1b99eaf8fba1474" );
19747 pt_len =
unhexify( src_str,
"93bc33dc647c7321152b12303f38937bd191ab3ce3b3a43a29f6853b33e415667d97192fcab2d1baa017042b301d03bae2f657505cc58e3aa4bd849d1ce85ede0e192a373a3894c41c54edbae29a209e16c87c81445d43968595297b50b55659f8b92d7282a2b3ca85e4b5d4ac4ff5062635103f2c7806fcc7378d5c2013be72" );
19748 iv_len =
unhexify( iv_str,
"94ef13dbfe9f362da35209f6d62b38a4" );
19749 add_len =
unhexify( add_str,
"" );
19751 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
19754 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
19755 hexify( dst_str, output, pt_len );
19756 hexify( tag_str, tag_output, tag_len );
19758 fct_chk( strcmp( (
char *) dst_str,
"3db23c161cf352ba267dab6a55f611eb5fff78a75288779a167cd0e4db6e75d21f11f4ff2928abcb1b46d82c2a0b1f647c60da61f9a72565f629b06a7b3fe96e4141a6886436859f610724bbe43fb99fac9b78b1e0138e2d57ce5fcfac1599bdba5701cb424535fad9ac482ab381eadca074e7376101b4b436f9c43ed760a0a6" ) == 0 );
19759 fct_chk( strcmp( (
char *) tag_str,
"ecd4a7370096dc781c3eb3f7e5985ef1" ) == 0 );
19765 FCT_TEST_BGN(gcm_nist_validation_aes_25612810240120_0)
19767 unsigned char key_str[128];
19768 unsigned char src_str[128];
19769 unsigned char dst_str[257];
19770 unsigned char iv_str[128];
19771 unsigned char add_str[128];
19772 unsigned char tag_str[128];
19773 unsigned char output[128];
19774 unsigned char tag_output[16];
19776 unsigned int key_len;
19777 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
19779 memset(key_str, 0x00, 128);
19780 memset(src_str, 0x00, 128);
19781 memset(dst_str, 0x00, 257);
19782 memset(iv_str, 0x00, 128);
19783 memset(add_str, 0x00, 128);
19784 memset(tag_str, 0x00, 128);
19785 memset(output, 0x00, 128);
19786 memset(tag_output, 0x00, 16);
19788 key_len =
unhexify( key_str,
"08e11a8b4b24e63060c5002713725bb5b4a412f1d76eac13989738ce94e19642" );
19789 pt_len =
unhexify( src_str,
"d5598f4e37274f3b617aa4f9cf6b8547b4eb1e0eac79f6eedd6cd5364f8891f66b8d0cb09f54777d461bbf92d6fd74b3fac412b77f2c48e1024cf09b83c1e71bb86f0a20f82d296883ffee62a4a192b184bc6d7ba0448c1519310c83b18c00e71153137afad14f096b43d454f205ba6b6c2ec162aa992cebf50735dd9bb37c7c" );
19790 iv_len =
unhexify( iv_str,
"c6f1e6a39cabda1089048b536e39cf67" );
19791 add_len =
unhexify( add_str,
"" );
19793 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
19796 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
19797 hexify( dst_str, output, pt_len );
19798 hexify( tag_str, tag_output, tag_len );
19800 fct_chk( strcmp( (
char *) dst_str,
"1fdaf0156456b6b2a68d66091bf2260792748acf3e7bbb7906af8e0df3b569a7c03ee3a48bdfdff7ccd52433d0bbe8c5fe30d93633bb9d591dfad7d81bf8efd4d4a3c5c0bf2ac9832f0a8687f16be640fcf9b19169c251f46b97167d95115acdee3d4443df416275f5597a52c17a4b8c4b723d4b35a7fd0b380fdebd44df8bd5" ) == 0 );
19801 fct_chk( strcmp( (
char *) tag_str,
"cb9f4d4610c67acfe612af5508bb8c" ) == 0 );
19807 FCT_TEST_BGN(gcm_nist_validation_aes_25612810240120_1)
19809 unsigned char key_str[128];
19810 unsigned char src_str[128];
19811 unsigned char dst_str[257];
19812 unsigned char iv_str[128];
19813 unsigned char add_str[128];
19814 unsigned char tag_str[128];
19815 unsigned char output[128];
19816 unsigned char tag_output[16];
19818 unsigned int key_len;
19819 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
19821 memset(key_str, 0x00, 128);
19822 memset(src_str, 0x00, 128);
19823 memset(dst_str, 0x00, 257);
19824 memset(iv_str, 0x00, 128);
19825 memset(add_str, 0x00, 128);
19826 memset(tag_str, 0x00, 128);
19827 memset(output, 0x00, 128);
19828 memset(tag_output, 0x00, 16);
19830 key_len =
unhexify( key_str,
"da2dae0107c284ec2aaf6e7306959df1e92d3932b88954f119ab677c6b9dcdb5" );
19831 pt_len =
unhexify( src_str,
"277675044caf1713109d4d3abf50c6fb67dc67f7fa584fb1a41c833feead03177cf4b42edac139807ede16eb1d9bed27db741f9542d437781405608de18418c9f7269ab3fd88f6a922a31eab5a3b8b2aa75ee4315fcea80c4954ea6613b1360b1c7c6b6da815e3f6e50f72b7e69c3b6cb3d154855e3f83cbd1947eb54018155a" );
19832 iv_len =
unhexify( iv_str,
"2005f79d55b12e6dfbab7fedecc50e2d" );
19833 add_len =
unhexify( add_str,
"" );
19835 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
19838 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
19839 hexify( dst_str, output, pt_len );
19840 hexify( tag_str, tag_output, tag_len );
19842 fct_chk( strcmp( (
char *) dst_str,
"c2aaab524d1738b5244af642bbd16b32ba954e69ae51acc804a6b0f89f6cb77ba2db2b0e109cda6036786f9cec5587b01e306ee8b3d588748c61ad7fce1266165729d0153ee189746b107ce15ced667279a484294725e120dc1803d2c751784436ab8ff1d5a537628ee35742d1917dc51f8cb46c2d6b983bdec502e99b85e5b5" ) == 0 );
19843 fct_chk( strcmp( (
char *) tag_str,
"52b4d7f2cc44f0725ee903551f681d" ) == 0 );
19849 FCT_TEST_BGN(gcm_nist_validation_aes_25612810240120_2)
19851 unsigned char key_str[128];
19852 unsigned char src_str[128];
19853 unsigned char dst_str[257];
19854 unsigned char iv_str[128];
19855 unsigned char add_str[128];
19856 unsigned char tag_str[128];
19857 unsigned char output[128];
19858 unsigned char tag_output[16];
19860 unsigned int key_len;
19861 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
19863 memset(key_str, 0x00, 128);
19864 memset(src_str, 0x00, 128);
19865 memset(dst_str, 0x00, 257);
19866 memset(iv_str, 0x00, 128);
19867 memset(add_str, 0x00, 128);
19868 memset(tag_str, 0x00, 128);
19869 memset(output, 0x00, 128);
19870 memset(tag_output, 0x00, 16);
19872 key_len =
unhexify( key_str,
"637807b3e472e2287b09d5a3ee62f791a416419ba35e11c49b24dbadc209f0ba" );
19873 pt_len =
unhexify( src_str,
"e91a0a7320329dabb0d0fd7f099a4d313724aeeebcffe6fcea5b00af27d258cf9774845d29aaf5dad634c6f087c3311b1c92775fda8df8820c91186da30dc79747be6ec6230f2c261063143f4fc89d94c7efc145e68bfdbd58fb14e856578ed57ee5b3cba2cc67dd6497f05d1570efa496b46f5bcbf82ff9c6a414f76fcf3f5c" );
19874 iv_len =
unhexify( iv_str,
"46909d8dba6c82b86c7a2aca3c9e71e0" );
19875 add_len =
unhexify( add_str,
"" );
19877 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
19880 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
19881 hexify( dst_str, output, pt_len );
19882 hexify( tag_str, tag_output, tag_len );
19884 fct_chk( strcmp( (
char *) dst_str,
"13b4ad9c51063a7f697f3fc68030144aee0aeef0b5a52c9d4920a7185b0452159cf13e64ca216ff16637d0946a75fb5da283fcd263dd7ef2c8f14cf75537742d1f0e48846fcdbf03bc343203f7c31cf61b36374033462a7b813f4dbe9386e57874591fde606fbc150d4916c339f1950b09b1911b1b9119c3ff4053e05910ffb2" ) == 0 );
19885 fct_chk( strcmp( (
char *) tag_str,
"6a5c83f807401d1a9a3a2688289f61" ) == 0 );
19891 FCT_TEST_BGN(gcm_nist_validation_aes_25612810240112_0)
19893 unsigned char key_str[128];
19894 unsigned char src_str[128];
19895 unsigned char dst_str[257];
19896 unsigned char iv_str[128];
19897 unsigned char add_str[128];
19898 unsigned char tag_str[128];
19899 unsigned char output[128];
19900 unsigned char tag_output[16];
19902 unsigned int key_len;
19903 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
19905 memset(key_str, 0x00, 128);
19906 memset(src_str, 0x00, 128);
19907 memset(dst_str, 0x00, 257);
19908 memset(iv_str, 0x00, 128);
19909 memset(add_str, 0x00, 128);
19910 memset(tag_str, 0x00, 128);
19911 memset(output, 0x00, 128);
19912 memset(tag_output, 0x00, 16);
19914 key_len =
unhexify( key_str,
"33613dc6e029df0f3ab9ca66fa96cdeaa84c1261dd586723b1ce873545565f7a" );
19915 pt_len =
unhexify( src_str,
"775862b39c2a509afd3470a56891fbb79bdb7dacfdb9ac72ba4730cb936d364e1aed3c92c01a018cfcd7953f751003934c15bdfdf2826e9947ea8e521f55fd2a04c75156e4910f38932c9732eb3e60423e849d34c55e3fd00b48d83028e3b4f35686016126ff16c942ec859d3c3aa2ee6d322a92dc9fa9b0247423416f5a4b47" );
19916 iv_len =
unhexify( iv_str,
"59484fbc27cdbd917bb55f815f9faab6" );
19917 add_len =
unhexify( add_str,
"" );
19919 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
19922 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
19923 hexify( dst_str, output, pt_len );
19924 hexify( tag_str, tag_output, tag_len );
19926 fct_chk( strcmp( (
char *) dst_str,
"069f80826dbee03e6a3437e7c6d16eb6022bd14827b8e45bd440d9b1a8ddae09999388ba0b1be0a6bafdb96f26dad523a3592fa610d5091f68380f4c1c3fa9ef7a0796ab183e8a82c2bf1f76300f98ce983eab7a93ddb18f1c10534fdb61ace83cae37e225930ab870a46285e733788e907255ca391945d409d2e53dd8a28390" ) == 0 );
19927 fct_chk( strcmp( (
char *) tag_str,
"9f31f8f8459eb03dc3654caba5c2" ) == 0 );
19933 FCT_TEST_BGN(gcm_nist_validation_aes_25612810240112_1)
19935 unsigned char key_str[128];
19936 unsigned char src_str[128];
19937 unsigned char dst_str[257];
19938 unsigned char iv_str[128];
19939 unsigned char add_str[128];
19940 unsigned char tag_str[128];
19941 unsigned char output[128];
19942 unsigned char tag_output[16];
19944 unsigned int key_len;
19945 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
19947 memset(key_str, 0x00, 128);
19948 memset(src_str, 0x00, 128);
19949 memset(dst_str, 0x00, 257);
19950 memset(iv_str, 0x00, 128);
19951 memset(add_str, 0x00, 128);
19952 memset(tag_str, 0x00, 128);
19953 memset(output, 0x00, 128);
19954 memset(tag_output, 0x00, 16);
19956 key_len =
unhexify( key_str,
"75d8132f70ef3f2d8946d296c83014683eb2a4a58b555c0f48e4bfa5774d6672" );
19957 pt_len =
unhexify( src_str,
"a5be88fd43dc761838f3a9c7d62923c38414fa61b3678313cbc8fa9c2e5effb6cad7d5be5f39a71a28ff327b68a69f7e6a6bcb90eccacaf3a8659aeb905dd3e38efe57f2bd0d19daacae238baa01a7051084da6598fc5a3783a18decefc8efc8d46c7b1887f87d6d70c909df49340bcc680832faac3dd23cab5bcd80553dd485" );
19958 iv_len =
unhexify( iv_str,
"5ff41f3e75c25cedda1b08a41b89c4b4" );
19959 add_len =
unhexify( add_str,
"" );
19961 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
19964 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
19965 hexify( dst_str, output, pt_len );
19966 hexify( tag_str, tag_output, tag_len );
19968 fct_chk( strcmp( (
char *) dst_str,
"959396b86913337f2b1fb19767b787c18f00661c5d601bc65e884e15ac8043081459e889453e906ee267cb5d04fbaf250144a56c820eca34469967c73daf50796184ecf74f3c054bfa63bdd0c32425a8e10546ac342bb8e38a186e42a403cb80110aefd5f2d0bcdd353daa4430b8e7ec2134925c454745e2f708cd0b90d9d672" ) == 0 );
19969 fct_chk( strcmp( (
char *) tag_str,
"ca0889a0eb12995079cf9ba77019" ) == 0 );
19975 FCT_TEST_BGN(gcm_nist_validation_aes_25612810240112_2)
19977 unsigned char key_str[128];
19978 unsigned char src_str[128];
19979 unsigned char dst_str[257];
19980 unsigned char iv_str[128];
19981 unsigned char add_str[128];
19982 unsigned char tag_str[128];
19983 unsigned char output[128];
19984 unsigned char tag_output[16];
19986 unsigned int key_len;
19987 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
19989 memset(key_str, 0x00, 128);
19990 memset(src_str, 0x00, 128);
19991 memset(dst_str, 0x00, 257);
19992 memset(iv_str, 0x00, 128);
19993 memset(add_str, 0x00, 128);
19994 memset(tag_str, 0x00, 128);
19995 memset(output, 0x00, 128);
19996 memset(tag_output, 0x00, 16);
19998 key_len =
unhexify( key_str,
"8d44344d2ff9a02b1c75785bc84f16e4d23614bf43b2b9a87798b418e905c532" );
19999 pt_len =
unhexify( src_str,
"e5689cef9f8258a748a615070fcbf40ed0b24c077e2f9a362cb536737ffbc5383bcafed278d4c5e0f3c83fdd5cde79483c2c178f6fef05ab50f2b8db680027a175bc6d702d249efcd6cbc425b736f1905307c9303a4bd8aca620b57e3bb4b68f2a515259b06cf5365b675edff3457e2e915d7da1e0802f7300b3d56c4644f4ad" );
20000 iv_len =
unhexify( iv_str,
"256a983cd6d6eb4e80b5c1d1cd2a9f21" );
20001 add_len =
unhexify( add_str,
"" );
20003 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
20006 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
20007 hexify( dst_str, output, pt_len );
20008 hexify( tag_str, tag_output, tag_len );
20010 fct_chk( strcmp( (
char *) dst_str,
"13eeadbecc4c9991e2aa0b1ca819572ef28517528320db970739a16994f82cd8b5bb53d889f298f65c63dcc07089dbf7e9d00612d2cc8220b5630ca0262a698836d906256896eea446f6de4506e558b4f20950528c8c397b6b5b04890204b77a163e46c80c96b3e268fd2754e0380e7330782d606c771d6085b34200a80335f0" ) == 0 );
20011 fct_chk( strcmp( (
char *) tag_str,
"b33ab1e4029998e2566583dd550d" ) == 0 );
20017 FCT_TEST_BGN(gcm_nist_validation_aes_25612810240104_0)
20019 unsigned char key_str[128];
20020 unsigned char src_str[128];
20021 unsigned char dst_str[257];
20022 unsigned char iv_str[128];
20023 unsigned char add_str[128];
20024 unsigned char tag_str[128];
20025 unsigned char output[128];
20026 unsigned char tag_output[16];
20028 unsigned int key_len;
20029 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
20031 memset(key_str, 0x00, 128);
20032 memset(src_str, 0x00, 128);
20033 memset(dst_str, 0x00, 257);
20034 memset(iv_str, 0x00, 128);
20035 memset(add_str, 0x00, 128);
20036 memset(tag_str, 0x00, 128);
20037 memset(output, 0x00, 128);
20038 memset(tag_output, 0x00, 16);
20040 key_len =
unhexify( key_str,
"3999a6a394943be3d6e5732af5faf26caf483a3fd42c13b7f4f02132e93a990d" );
20041 pt_len =
unhexify( src_str,
"8907e8832553264d7e92afa1595842ac661ddfec3f4294567faa0af61b3d0fdf76a922a2f3affb36b3b3b97f18d5172aec0b8f6f01239bb750c0fdd5da1e1244473cdfade83797037ca46d83123e6105c5c54071971f190da0c59821b0bf87242502bd19d19c7f463145bab0e687a18ffb2216c4a2ad2caf9488801c33c78c03" );
20042 iv_len =
unhexify( iv_str,
"76e2a5141d094b3a77765ba328f33576" );
20043 add_len =
unhexify( add_str,
"" );
20045 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
20048 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
20049 hexify( dst_str, output, pt_len );
20050 hexify( tag_str, tag_output, tag_len );
20052 fct_chk( strcmp( (
char *) dst_str,
"995189a396486b451db0167cf6990557287074def46eef872e6cfe1a297e256bdff2b71668ff0184eedf00ff1a3ec91358874718f0af88acf2bdb191e97332dc544d940412363840d4c03c7b2231852393c62d625093011ef314e4f755b1d0ee37690b4dfb55194a1465714cc3cbcdf93af39e666be0407508b8764f7ee95d3c" ) == 0 );
20053 fct_chk( strcmp( (
char *) tag_str,
"87c8f61f459fd4a09d9ee8b331" ) == 0 );
20059 FCT_TEST_BGN(gcm_nist_validation_aes_25612810240104_1)
20061 unsigned char key_str[128];
20062 unsigned char src_str[128];
20063 unsigned char dst_str[257];
20064 unsigned char iv_str[128];
20065 unsigned char add_str[128];
20066 unsigned char tag_str[128];
20067 unsigned char output[128];
20068 unsigned char tag_output[16];
20070 unsigned int key_len;
20071 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
20073 memset(key_str, 0x00, 128);
20074 memset(src_str, 0x00, 128);
20075 memset(dst_str, 0x00, 257);
20076 memset(iv_str, 0x00, 128);
20077 memset(add_str, 0x00, 128);
20078 memset(tag_str, 0x00, 128);
20079 memset(output, 0x00, 128);
20080 memset(tag_output, 0x00, 16);
20082 key_len =
unhexify( key_str,
"4359a62d54c43770c3a0d51da25cc32fd985d9b41c282887299d2e348aa25a36" );
20083 pt_len =
unhexify( src_str,
"f020c9cafba399009bd920c3ffc165d4db47a9ee15ca8c1f51c65e306ccccd3f1d694071a3c765b5255eba6ef6a280f6095f8c195ebdfbee6968b57366e62e16d05b1768825ab7fe66300941270aa121b4fc02ab970ca6e32170cdbccb46fc548620fa1777049343b1600bfb1bdecec6682f0aa7244a0852adbc7aacedfba446" );
20084 iv_len =
unhexify( iv_str,
"5fefa85c958417b6bc8a61b5496fea93" );
20085 add_len =
unhexify( add_str,
"" );
20087 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
20090 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
20091 hexify( dst_str, output, pt_len );
20092 hexify( tag_str, tag_output, tag_len );
20094 fct_chk( strcmp( (
char *) dst_str,
"3b8f829aa1cc1532a434bfbbd25f42480311657215946b9216846704fd5da5e886ca9d130df466c3b58f5259102ea6b9ad756e9f484a38dd0ed289fea083ab99fefbc2747100071744f10e362351d4ffac6c7c1f5a49ef3c78e2dc667f6b3bfd0fec454c4e3139443da71e514540d7a228db193a4c35d639ec13c1198ee7f81e" ) == 0 );
20095 fct_chk( strcmp( (
char *) tag_str,
"591db861b9060869edb228a324" ) == 0 );
20101 FCT_TEST_BGN(gcm_nist_validation_aes_25612810240104_2)
20103 unsigned char key_str[128];
20104 unsigned char src_str[128];
20105 unsigned char dst_str[257];
20106 unsigned char iv_str[128];
20107 unsigned char add_str[128];
20108 unsigned char tag_str[128];
20109 unsigned char output[128];
20110 unsigned char tag_output[16];
20112 unsigned int key_len;
20113 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
20115 memset(key_str, 0x00, 128);
20116 memset(src_str, 0x00, 128);
20117 memset(dst_str, 0x00, 257);
20118 memset(iv_str, 0x00, 128);
20119 memset(add_str, 0x00, 128);
20120 memset(tag_str, 0x00, 128);
20121 memset(output, 0x00, 128);
20122 memset(tag_output, 0x00, 16);
20124 key_len =
unhexify( key_str,
"0d798a357de5a686d06c329e451d7384bfbd462063fb8ea7d77a13dfa1f2aac2" );
20125 pt_len =
unhexify( src_str,
"d920785bd7d7b1a2c9c20139380a6ac5f27a11b614ae110da14203146c2615d81e97649e95edb0eda71a0fa1589244ed42fd9449962a92942e38001ac64b212c7e06c113129712a01556577ae02325a26eb92581c0a690a894225e83ff1e36776f22b600508d6d96a0d1c55316b518df8d09769df5e8340cbeabaa0bf7752870" );
20126 iv_len =
unhexify( iv_str,
"50a003c0cb50ae8a3183cd640ea4c6f6" );
20127 add_len =
unhexify( add_str,
"" );
20129 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
20132 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
20133 hexify( dst_str, output, pt_len );
20134 hexify( tag_str, tag_output, tag_len );
20136 fct_chk( strcmp( (
char *) dst_str,
"9af6a5341cde4b7e1b88346ec481024b40ad95a51533cdd8e09e4809a20684f18eaf243e1df56f02ace9667264cc1c6af6b0914f154b332234f6468cc471ecb2078a9f81c17f4ade83d326b670795458d110e4c4b4cd7fe7f9f5f4d4fb23a038969e4ff4f74839b1edc270fc81fcdc8a0b15b9c2f0561567c471b783b4322ebf" ) == 0 );
20137 fct_chk( strcmp( (
char *) tag_str,
"6c2f01264f9dbf29962122daff" ) == 0 );
20143 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024096_0)
20145 unsigned char key_str[128];
20146 unsigned char src_str[128];
20147 unsigned char dst_str[257];
20148 unsigned char iv_str[128];
20149 unsigned char add_str[128];
20150 unsigned char tag_str[128];
20151 unsigned char output[128];
20152 unsigned char tag_output[16];
20154 unsigned int key_len;
20155 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
20157 memset(key_str, 0x00, 128);
20158 memset(src_str, 0x00, 128);
20159 memset(dst_str, 0x00, 257);
20160 memset(iv_str, 0x00, 128);
20161 memset(add_str, 0x00, 128);
20162 memset(tag_str, 0x00, 128);
20163 memset(output, 0x00, 128);
20164 memset(tag_output, 0x00, 16);
20166 key_len =
unhexify( key_str,
"29b01b6d15f6e68fc2e7079429dde5363888a6410191d603941bed272daef7ed" );
20167 pt_len =
unhexify( src_str,
"123b6da306978f745d1dd86d7df32d9421523a7f329dd29ad98d2c309145844010295ef443a18d37ffe093080682fb96ba9c2c92105d35d77897b589e2abc7269aba8752c2a48c843bebad2c0fa281015ba85f5f709f6aee9b1d49236d5695f7f7d01554b193c89adcd1a91749138952cb3f0ec8b5f046328b3113aaa0715ef4" );
20168 iv_len =
unhexify( iv_str,
"cb4ac8373bcbf1b14cf2a6a6a16a422a" );
20169 add_len =
unhexify( add_str,
"" );
20171 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
20174 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
20175 hexify( dst_str, output, pt_len );
20176 hexify( tag_str, tag_output, tag_len );
20178 fct_chk( strcmp( (
char *) dst_str,
"caf71e09395d596d5a7b091c9e87ba6d522e974451e41f33f3e7ded554f24daa9da719e87793424eca9a3eb3972983354041091ba4b16c5c8c14913e1f6cbda09779188e9b5512917a0adf4b4344f119736ba6328897726a317989cddc66f16bab64707564bb0064fe6ab7b2b5cce143e94d4b6d739f58c47b6d4850697f8101" ) == 0 );
20179 fct_chk( strcmp( (
char *) tag_str,
"f635ff3d8bfbfb49694e05ec" ) == 0 );
20185 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024096_1)
20187 unsigned char key_str[128];
20188 unsigned char src_str[128];
20189 unsigned char dst_str[257];
20190 unsigned char iv_str[128];
20191 unsigned char add_str[128];
20192 unsigned char tag_str[128];
20193 unsigned char output[128];
20194 unsigned char tag_output[16];
20196 unsigned int key_len;
20197 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
20199 memset(key_str, 0x00, 128);
20200 memset(src_str, 0x00, 128);
20201 memset(dst_str, 0x00, 257);
20202 memset(iv_str, 0x00, 128);
20203 memset(add_str, 0x00, 128);
20204 memset(tag_str, 0x00, 128);
20205 memset(output, 0x00, 128);
20206 memset(tag_output, 0x00, 16);
20208 key_len =
unhexify( key_str,
"f96d8cdcc21884e050f762c049930d78360b56cef5b99ae232c9a8c6e8fa89f7" );
20209 pt_len =
unhexify( src_str,
"9cf05e5065531d2539d92ae76a43da1fa3614ffa4b1c73ddc2358f8d71345c01260060239edf629efc3650e0d13174af4294b6da0f39cc7fbecfa324afff89dd7d203416bd144c5e03df60a287fd4a8d54ef9b4b44b3d6de1d9de07418b8a34ec5c28cec3c5b2fb861583178a68ea0af89f2dfbfbd86f7cf1e572e1c8d4b0675" );
20210 iv_len =
unhexify( iv_str,
"5a7eb964b6bc9e75450b721b4d1f8f92" );
20211 add_len =
unhexify( add_str,
"" );
20213 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
20216 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
20217 hexify( dst_str, output, pt_len );
20218 hexify( tag_str, tag_output, tag_len );
20220 fct_chk( strcmp( (
char *) dst_str,
"566abaa23b8d464d6f107699453740e9e189254145c5132fe46989a6654de297398913daacb4083b29f7b31832079616e9a43c9c2878df1df451e49f1e629c8b9de2fb0e4ae9df48e3e8880f3f1ff5ace8842d2695e702dd1b7bfa7c25b0539b8c80d31ac91856796beced082c213e8be56efd646dae932f5bf503af46f491d8" ) == 0 );
20221 fct_chk( strcmp( (
char *) tag_str,
"c049cce29c401d3d198773b6" ) == 0 );
20227 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024096_2)
20229 unsigned char key_str[128];
20230 unsigned char src_str[128];
20231 unsigned char dst_str[257];
20232 unsigned char iv_str[128];
20233 unsigned char add_str[128];
20234 unsigned char tag_str[128];
20235 unsigned char output[128];
20236 unsigned char tag_output[16];
20238 unsigned int key_len;
20239 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
20241 memset(key_str, 0x00, 128);
20242 memset(src_str, 0x00, 128);
20243 memset(dst_str, 0x00, 257);
20244 memset(iv_str, 0x00, 128);
20245 memset(add_str, 0x00, 128);
20246 memset(tag_str, 0x00, 128);
20247 memset(output, 0x00, 128);
20248 memset(tag_output, 0x00, 16);
20250 key_len =
unhexify( key_str,
"253234c3dc9cb3d50a80598c5cde0e37b6b13bf834f3595a9458dee698a6d19b" );
20251 pt_len =
unhexify( src_str,
"686ad2740bdad507ebe97aa5bdbef25b8b030c4cdcaccb0d3b675ca91279db3ea75aa222c0ae98f86c24b10038cbb4fe9f897e1145b2f58cd3e9120f9a5620f38aa1e1f63906f557ff4a4c3223f5bb13dca34f8a1c6419e24ea57d114c62fec6fb9eee58a16b9e6a6bd930aa6fedcfc591311250e7167d43cca5916d5beead27" );
20252 iv_len =
unhexify( iv_str,
"9d156414acb63d11cb34870b937c837d" );
20253 add_len =
unhexify( add_str,
"" );
20255 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
20258 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
20259 hexify( dst_str, output, pt_len );
20260 hexify( tag_str, tag_output, tag_len );
20262 fct_chk( strcmp( (
char *) dst_str,
"96abd56d2f8aefe6c687f035df46c3f952a9933b8a51698e47d973b7d47c65ca3ba2474cb419c84a4c3cefb49e78cee1443a8fbbdaaecf73e9059ef34ac5a0df3fc152ecde2286da8840ad4617fd6ebc1e126314204bdc0a17b958430eb9f727498ff1db17aabbdaf43acca0945342d2ba9346da5373b2372b3081605e895c99" ) == 0 );
20263 fct_chk( strcmp( (
char *) tag_str,
"3d998e5be9df433da001a686" ) == 0 );
20269 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024064_0)
20271 unsigned char key_str[128];
20272 unsigned char src_str[128];
20273 unsigned char dst_str[257];
20274 unsigned char iv_str[128];
20275 unsigned char add_str[128];
20276 unsigned char tag_str[128];
20277 unsigned char output[128];
20278 unsigned char tag_output[16];
20280 unsigned int key_len;
20281 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
20283 memset(key_str, 0x00, 128);
20284 memset(src_str, 0x00, 128);
20285 memset(dst_str, 0x00, 257);
20286 memset(iv_str, 0x00, 128);
20287 memset(add_str, 0x00, 128);
20288 memset(tag_str, 0x00, 128);
20289 memset(output, 0x00, 128);
20290 memset(tag_output, 0x00, 16);
20292 key_len =
unhexify( key_str,
"1054d48d52693d2797c80d3f10509d1c808f36a4d65e8fd968e5d56239f856bc" );
20293 pt_len =
unhexify( src_str,
"a708e9d2d27ed4228e5b23d358561a77d684d855db9827be2bc102f2278f1961d3f056fb76f76204b2c96b916eb5e407f98e58edfed06de2388521832d97211d851d3e29658df738e3a15593b9db016d9e46fe9df98ce972d59f7058d484886ffaec7b9fd973c55644831241c1ce85bb478e83ccefd26b9718bfe910ac311ecc" );
20294 iv_len =
unhexify( iv_str,
"87611b936873b63abeaea990d6637a22" );
20295 add_len =
unhexify( add_str,
"" );
20297 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
20300 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
20301 hexify( dst_str, output, pt_len );
20302 hexify( tag_str, tag_output, tag_len );
20304 fct_chk( strcmp( (
char *) dst_str,
"94473e84659bc18eddcebe3112f55426f48ca4d670291fdedd42cc15a7415aa6795fb75b39434884eb266677e1fa7f530c6f3aaa733c0d9c06291bd7dff4c4e5857b2ee9e9f1f61a85571ad32dc9a3259017abe9eb5111e56df2913535669f3b2d722bd35fcdbd6541918885d9677cccaa902b9d3599cd4f0df1f35f4d11b8cf" ) == 0 );
20305 fct_chk( strcmp( (
char *) tag_str,
"9bd7cfe1023448ac" ) == 0 );
20311 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024064_1)
20313 unsigned char key_str[128];
20314 unsigned char src_str[128];
20315 unsigned char dst_str[257];
20316 unsigned char iv_str[128];
20317 unsigned char add_str[128];
20318 unsigned char tag_str[128];
20319 unsigned char output[128];
20320 unsigned char tag_output[16];
20322 unsigned int key_len;
20323 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
20325 memset(key_str, 0x00, 128);
20326 memset(src_str, 0x00, 128);
20327 memset(dst_str, 0x00, 257);
20328 memset(iv_str, 0x00, 128);
20329 memset(add_str, 0x00, 128);
20330 memset(tag_str, 0x00, 128);
20331 memset(output, 0x00, 128);
20332 memset(tag_output, 0x00, 16);
20334 key_len =
unhexify( key_str,
"a95dc5127b9cb1c82d558d5b24ae049e24447fd676a49350089951afe01dc797" );
20335 pt_len =
unhexify( src_str,
"45f81fa4780a256c40a0efec9547310406904d8991bcf964aa35ec9af457e2a642c1343827839f1f4b42f2b226da351731f416a4b4151f07927c278b371404f027bb2058e1765b367f5433a43fa4153883351041db3f066ef284a3eabd584d1d0b1d594b4ce7b5bca1708fbc661d95a9ac0d77dc29547f022eedc582fc7158c3" );
20336 iv_len =
unhexify( iv_str,
"0b177d01993ec726fff082ec88c64a31" );
20337 add_len =
unhexify( add_str,
"" );
20339 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
20342 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
20343 hexify( dst_str, output, pt_len );
20344 hexify( tag_str, tag_output, tag_len );
20346 fct_chk( strcmp( (
char *) dst_str,
"16c77b7f541d2dc4e8d31da23e04f18f4254aa283e8cee5b776f3d9a27584f459d0747955efff8945f807209ddaa6421846647d4198534b244498fe13a9073d372171d1b2fc38af66204f3de04000c093ebe659173b8d78dcfb8ca9003d2cd44ed168e6aaf55a06f29e83ceb32b98bafb59f109599f88b5c0f0557bd2b28f03f" ) == 0 );
20347 fct_chk( strcmp( (
char *) tag_str,
"19eb5f808d65989d" ) == 0 );
20353 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024064_2)
20355 unsigned char key_str[128];
20356 unsigned char src_str[128];
20357 unsigned char dst_str[257];
20358 unsigned char iv_str[128];
20359 unsigned char add_str[128];
20360 unsigned char tag_str[128];
20361 unsigned char output[128];
20362 unsigned char tag_output[16];
20364 unsigned int key_len;
20365 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
20367 memset(key_str, 0x00, 128);
20368 memset(src_str, 0x00, 128);
20369 memset(dst_str, 0x00, 257);
20370 memset(iv_str, 0x00, 128);
20371 memset(add_str, 0x00, 128);
20372 memset(tag_str, 0x00, 128);
20373 memset(output, 0x00, 128);
20374 memset(tag_output, 0x00, 16);
20376 key_len =
unhexify( key_str,
"53d6393dd7ecc40f2d52460ecdb0607133ad843ef53f380cd3a2755bfa567abe" );
20377 pt_len =
unhexify( src_str,
"72199c54dd5efb28c104e3b7210855506f6577d15c4eccdaa6a621a572e15f5845d648cf71b9fafef3411f6c1a664c7974fe71126a5cbab907e2caa342d8d7a05bc68a72c824896ec40e520e90b704dea441d22c5918f98803a88293384f64f92f11650c2cf4d3b062d30e14d149160742f59a473faf8fe00f4bdab9128c3281" );
20378 iv_len =
unhexify( iv_str,
"db7e93da21f0c9840c54c56e9c6ceba3" );
20379 add_len =
unhexify( add_str,
"" );
20381 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
20384 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
20385 hexify( dst_str, output, pt_len );
20386 hexify( tag_str, tag_output, tag_len );
20388 fct_chk( strcmp( (
char *) dst_str,
"5e83f559fa54926b731334f815783914530bbcc472d4bbd5e65908fb1c421442cb4c57329f2e4ba3d146a6499f34d8f1ec6d43e0cf98bdba923f404b914700edb235b08b0330097ea4162fd0baa1b7177ef0b29d5a6689bc56b8f975d6b6067ade4b8baf1d47a2eeb5b2ed28ebeded381d55d280cb2fb65ce4d82b69cce0594d" ) == 0 );
20389 fct_chk( strcmp( (
char *) tag_str,
"4e65dde857a0f5c7" ) == 0 );
20395 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024032_0)
20397 unsigned char key_str[128];
20398 unsigned char src_str[128];
20399 unsigned char dst_str[257];
20400 unsigned char iv_str[128];
20401 unsigned char add_str[128];
20402 unsigned char tag_str[128];
20403 unsigned char output[128];
20404 unsigned char tag_output[16];
20406 unsigned int key_len;
20407 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
20409 memset(key_str, 0x00, 128);
20410 memset(src_str, 0x00, 128);
20411 memset(dst_str, 0x00, 257);
20412 memset(iv_str, 0x00, 128);
20413 memset(add_str, 0x00, 128);
20414 memset(tag_str, 0x00, 128);
20415 memset(output, 0x00, 128);
20416 memset(tag_output, 0x00, 16);
20418 key_len =
unhexify( key_str,
"aa4a53c7764a254b06e1d8003810300b70f5729306effba9fb6210f97648a499" );
20419 pt_len =
unhexify( src_str,
"19f3a8c298478d6868bf3b31785eb62e844c37200672e6ef1ecc05c616d981e02c333dbc3f86dbb7ab9ba40e9e57e133e6d1d595fcc6d8e9886a84517212669d5d7ce0f1383cb58681b92dc180c06caa1a7ac1ec974dcd7f2bca7ad2ab2789c9a3a487d64c484319bffa56d854a6d40c62b02d0c7898f641f106ff50d22a12e7" );
20420 iv_len =
unhexify( iv_str,
"c32288f97af9b6e31aa7e40d9ef8d016" );
20421 add_len =
unhexify( add_str,
"" );
20423 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
20426 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
20427 hexify( dst_str, output, pt_len );
20428 hexify( tag_str, tag_output, tag_len );
20430 fct_chk( strcmp( (
char *) dst_str,
"1fa6aec7a28767c8961363dc4264e6ab97014264f6fe1dda7e9db8646ce9a5463f69e91aad2fce696f9b641d75635bfb0f97ed2d7beaca944cf8bd9dbfffe77b5ae9fd032575e5333c7ce27538c609922843de87b960ebca7c2a2ef9702dd0c32f787b4d7df248fdf526d594a90bad0d6a8dffe212246c36db71e2d348326624" ) == 0 );
20431 fct_chk( strcmp( (
char *) tag_str,
"1699444e" ) == 0 );
20437 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024032_1)
20439 unsigned char key_str[128];
20440 unsigned char src_str[128];
20441 unsigned char dst_str[257];
20442 unsigned char iv_str[128];
20443 unsigned char add_str[128];
20444 unsigned char tag_str[128];
20445 unsigned char output[128];
20446 unsigned char tag_output[16];
20448 unsigned int key_len;
20449 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
20451 memset(key_str, 0x00, 128);
20452 memset(src_str, 0x00, 128);
20453 memset(dst_str, 0x00, 257);
20454 memset(iv_str, 0x00, 128);
20455 memset(add_str, 0x00, 128);
20456 memset(tag_str, 0x00, 128);
20457 memset(output, 0x00, 128);
20458 memset(tag_output, 0x00, 16);
20460 key_len =
unhexify( key_str,
"f420b6ef96d9bfe46dcf18246ee230790a6fc854e730f1dd2d1ffd0e8b5c4776" );
20461 pt_len =
unhexify( src_str,
"658a954d6c61d0d6f0e81a3c1cc65684483fdc95f280b6d4c964358596c25ca41c389932d74a1a3a17d041e89b7110ea315fadb3128c2c469c350bf9b4723aa9c8abd9065ebbd12c317bfb7090f09633f8c1184f0c4fbe10f5486dbfb847536c886f7d144ed07272a7e62fb523a04111e5ea9e1ab415fd17e72143006db14e9e" );
20462 iv_len =
unhexify( iv_str,
"4982f502a37eea8bcf316ced466c9fb1" );
20463 add_len =
unhexify( add_str,
"" );
20465 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
20468 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
20469 hexify( dst_str, output, pt_len );
20470 hexify( tag_str, tag_output, tag_len );
20472 fct_chk( strcmp( (
char *) dst_str,
"8630aa78aabe35d9360a44bb2094209b6f70d46d71e3949803cf54e33dafd54c6e49eda9e26dc5c0c1e34908f5281c8cb2a1aeee81186cf45d3eb22f486320c7ee0fb7bf3c211b232a8426e7e82f3e05881bf7d9454cddec7f28e5358cd0e9ea2e9cff938be044c1b21911d50b2ae23ab1aef377511ea657adcb560c34209f8b" ) == 0 );
20473 fct_chk( strcmp( (
char *) tag_str,
"3aa91b73" ) == 0 );
20479 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024032_2)
20481 unsigned char key_str[128];
20482 unsigned char src_str[128];
20483 unsigned char dst_str[257];
20484 unsigned char iv_str[128];
20485 unsigned char add_str[128];
20486 unsigned char tag_str[128];
20487 unsigned char output[128];
20488 unsigned char tag_output[16];
20490 unsigned int key_len;
20491 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
20493 memset(key_str, 0x00, 128);
20494 memset(src_str, 0x00, 128);
20495 memset(dst_str, 0x00, 257);
20496 memset(iv_str, 0x00, 128);
20497 memset(add_str, 0x00, 128);
20498 memset(tag_str, 0x00, 128);
20499 memset(output, 0x00, 128);
20500 memset(tag_output, 0x00, 16);
20502 key_len =
unhexify( key_str,
"50f3b822dfc70382d8695811e6b0a2896ea2bcd4d5268778cd484053c8a19288" );
20503 pt_len =
unhexify( src_str,
"15bfb3a562ced63c92561a78374af40c88a08ce02392419e03d7543365c5b6525951ef2dec5927474a0ef85f519e5ef795881db3eafa765ec38e6be7b565a878c13d90c02889dc50cbe87081d9225a515504c7be15bf97f5d72a4d81f218a148a46fbd42983ab002fce0a54719bfe301bb761753cb330dc25be517b87d0428d9" );
20504 iv_len =
unhexify( iv_str,
"980810c11abd3aff43408ec9a69abcb3" );
20505 add_len =
unhexify( add_str,
"" );
20507 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
20510 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
20511 hexify( dst_str, output, pt_len );
20512 hexify( tag_str, tag_output, tag_len );
20514 fct_chk( strcmp( (
char *) dst_str,
"12632296f27eb2439009f6032a3f648370303dcebaac311b684de2496f399b271347b19e045c1060802f3f742b6c780d20b9d589cc082d7d0d580dfb7231171cfb612227fcdee7feae4f8defd34c89fb0d68570e782192a7bdd9a5464f35dc6a4282cf9cc3fdfac988d129eddf8e0795ccc24a113f872ada88834c974df8bc69" ) == 0 );
20515 fct_chk( strcmp( (
char *) tag_str,
"32c1c4c5" ) == 0 );
20521 FCT_TEST_BGN(gcm_nist_validation_aes_25612810241024128_0)
20523 unsigned char key_str[128];
20524 unsigned char src_str[128];
20525 unsigned char dst_str[257];
20526 unsigned char iv_str[128];
20527 unsigned char add_str[128];
20528 unsigned char tag_str[128];
20529 unsigned char output[128];
20530 unsigned char tag_output[16];
20532 unsigned int key_len;
20533 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
20535 memset(key_str, 0x00, 128);
20536 memset(src_str, 0x00, 128);
20537 memset(dst_str, 0x00, 257);
20538 memset(iv_str, 0x00, 128);
20539 memset(add_str, 0x00, 128);
20540 memset(tag_str, 0x00, 128);
20541 memset(output, 0x00, 128);
20542 memset(tag_output, 0x00, 16);
20544 key_len =
unhexify( key_str,
"29072ab5bad2c1425ca8dd0ae56f27e93f8d26b320b08f77b8bd3fa9d03edc6c" );
20545 pt_len =
unhexify( src_str,
"3c7afc5cfc5a1e141587e93fef8427d4f21d892b983b7c9b6e9de3ee168837a1533847c8a2e2ab0706ac1474e9aa54ab57e7860bca9ebb83bd6d3ae26ca5387abdb9a60c4a9928484742a91294b13ab8f51eb4f599a30e9cb1894aca32a62a4c2793ee6793df473f43234c9eafb44d585a7d92a50aebef80c73c86ef67f5b5a4" );
20546 iv_len =
unhexify( iv_str,
"0201edf80475d2f969a90848f639528c" );
20547 add_len =
unhexify( add_str,
"4c8ff3edeaa68e47bbc8724b37822216d42e2669ca127da14b7b488fde31a49c7d357fb9aecc1991b3c6f63a4ce43959a22de70545e6aee8674d812ecaaef93ad03b5d4c99bdef6d52f21fc7fdbeb1c5629a76df59620aaefda81a8e73cebe4c646beffd7f4a98a5283cc7bc5e78b2a70f43e0cab0b7772e03a5f048ec75081a" );
20549 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
20552 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
20553 hexify( dst_str, output, pt_len );
20554 hexify( tag_str, tag_output, tag_len );
20556 fct_chk( strcmp( (
char *) dst_str,
"f3755aae6813e4e4b84a089ca1496564676655ba3c94e59c5f682adbbfed21e76aed0db78390258cf5fbf15f06c6b6468414cb6493c8b9b953b4954ecaf07ecaf8586ae001710d4069da6d21810bcdcbb831f7041cdbb984b7c55878598a6658883178dcc0fa03394519b8b9c3bed0e5c073429f5dd071a9184b015cbbbc62e1" ) == 0 );
20557 fct_chk( strcmp( (
char *) tag_str,
"0549dd9f2a123bd6d58e5cd16c0624a1" ) == 0 );
20563 FCT_TEST_BGN(gcm_nist_validation_aes_25612810241024128_1)
20565 unsigned char key_str[128];
20566 unsigned char src_str[128];
20567 unsigned char dst_str[257];
20568 unsigned char iv_str[128];
20569 unsigned char add_str[128];
20570 unsigned char tag_str[128];
20571 unsigned char output[128];
20572 unsigned char tag_output[16];
20574 unsigned int key_len;
20575 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
20577 memset(key_str, 0x00, 128);
20578 memset(src_str, 0x00, 128);
20579 memset(dst_str, 0x00, 257);
20580 memset(iv_str, 0x00, 128);
20581 memset(add_str, 0x00, 128);
20582 memset(tag_str, 0x00, 128);
20583 memset(output, 0x00, 128);
20584 memset(tag_output, 0x00, 16);
20586 key_len =
unhexify( key_str,
"aa9999af53720d0c1288fd3fe307a471160635287eebf41dd77c82d1f9cc9d61" );
20587 pt_len =
unhexify( src_str,
"6ce6f2dc202750219e15a24e1ff0678ffdde55b27cdcab6da188bd5235a3bdc677f72f106579d02c2970d4542e4e2372886e1a6d74c596ce735f51f2ee6aff4d62bd24112ec7cd1adc7c660561f163170cdf047c241c53b8a5b2e03fde48c249a319bb90c2693c468c9dd136e94e05f067cd1d68244ce50be318ae0464b79acd" );
20588 iv_len =
unhexify( iv_str,
"6299d651a032bdf3a7e6b25ace660e30" );
20589 add_len =
unhexify( add_str,
"afab0a3d1960ac973ee2f4461dacd10d189412b37e572cad7888bb4d2453f1eefbd6725aadd5f982393dfa59c3cf1ee342dd91e1fbfab10a802e3a0eda226fde2686e7db1015405a3d33c921e5aa857bfda53ca3aed3ff0e18c289406740a7c5d9f86ce43db40c9032e98ab126c7c0364e2efc008312b7641d36503d183fa5a5" );
20591 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
20594 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
20595 hexify( dst_str, output, pt_len );
20596 hexify( tag_str, tag_output, tag_len );
20598 fct_chk( strcmp( (
char *) dst_str,
"a8059fe6ff711616afb591b5e5de497b3b7813f9de658c7b47cc3e7b07d0805c1ba05856d98341869b8394f3b5df2876ae19837edb3931eebeb0f26eb6c4a2ea78003d82a98111305208ccaceaf77e5d71996cca4f9a5eb712dd916b71455f741ec2dde51f56828667b7a2da015e1886fba71e496a542d94a38efbcb5353fb89" ) == 0 );
20599 fct_chk( strcmp( (
char *) tag_str,
"2ff4d8d00400ad63a6ae7842eefb16eb" ) == 0 );
20605 FCT_TEST_BGN(gcm_nist_validation_aes_25612810241024128_2)
20607 unsigned char key_str[128];
20608 unsigned char src_str[128];
20609 unsigned char dst_str[257];
20610 unsigned char iv_str[128];
20611 unsigned char add_str[128];
20612 unsigned char tag_str[128];
20613 unsigned char output[128];
20614 unsigned char tag_output[16];
20616 unsigned int key_len;
20617 size_t pt_len, iv_len, add_len, tag_len = 128 / 8;
20619 memset(key_str, 0x00, 128);
20620 memset(src_str, 0x00, 128);
20621 memset(dst_str, 0x00, 257);
20622 memset(iv_str, 0x00, 128);
20623 memset(add_str, 0x00, 128);
20624 memset(tag_str, 0x00, 128);
20625 memset(output, 0x00, 128);
20626 memset(tag_output, 0x00, 16);
20628 key_len =
unhexify( key_str,
"31721e5e3a748a7f7369f3dffc1cbb570ceac868ef9d1f29b944b7e86a26d273" );
20629 pt_len =
unhexify( src_str,
"6afc1d22233a60c3e6851447de89152a0dbadcd87e35fc947ca4bc886f1f87549ea106b097e2655136833d06dfb879a85732298860c149c5e5ff03bb2a95d9cd3deeb8ffdf951ea5f97e32c1ed75271d2ea58d158ae6d568bf197d69130977e330ebfef33f222bfd5b56bc6b0382dc99c4f0e42b0aa7a117b43f96d43f6e02dd" );
20630 iv_len =
unhexify( iv_str,
"523247d56cc67c752b20eab7a28f85fe" );
20631 add_len =
unhexify( add_str,
"11eb41aeae3611f0de77bfa1221ef5b7d254faf893dbdaead926a61605f8a86f20f1fb84e0c5acd195143bc5a4f297bf729129f898a2013175b3db7004115a6120134d8e354afe36699a6c6618d739c805b5b91739df67de7667729f1d6eae1a0609897999d474be4d8b826df901c6f39d522570d38d2d1aa828382932a177b1" );
20633 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
20636 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
20637 hexify( dst_str, output, pt_len );
20638 hexify( tag_str, tag_output, tag_len );
20640 fct_chk( strcmp( (
char *) dst_str,
"39e7f32bb3e8436d97a1d86a22750768001fe3a805516d3f800352323afd221991105d12da69ce7430402fa7923958ad5ed85506b968c4dd89516d6e3d02e722db3954ce098ec3299ef4f2ed4a89f383408dceca9dabc6f8eefe5a1f80093961c29a94b222d1a04d2c1e453d2e02977f3dd77a4659e2bde2fdbba8e2829db4f1" ) == 0 );
20641 fct_chk( strcmp( (
char *) tag_str,
"506883db674fa0417e0832efc040227c" ) == 0 );
20647 FCT_TEST_BGN(gcm_nist_validation_aes_25612810241024120_0)
20649 unsigned char key_str[128];
20650 unsigned char src_str[128];
20651 unsigned char dst_str[257];
20652 unsigned char iv_str[128];
20653 unsigned char add_str[128];
20654 unsigned char tag_str[128];
20655 unsigned char output[128];
20656 unsigned char tag_output[16];
20658 unsigned int key_len;
20659 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
20661 memset(key_str, 0x00, 128);
20662 memset(src_str, 0x00, 128);
20663 memset(dst_str, 0x00, 257);
20664 memset(iv_str, 0x00, 128);
20665 memset(add_str, 0x00, 128);
20666 memset(tag_str, 0x00, 128);
20667 memset(output, 0x00, 128);
20668 memset(tag_output, 0x00, 16);
20670 key_len =
unhexify( key_str,
"100bd2bf9c8b24cc2e8d57697cd131c846b55ad6ff0b214c0de14104b465b58b" );
20671 pt_len =
unhexify( src_str,
"81c3370da989f774c1962f60c57299747481bea0e6b91df846e6ef93cada977bc742ee33ce085ae33eb9f7393a0943b647205a7e1ffb2a6a803a1ce7a88902456d66612362962b97c7152b57f1d54de94a39f07c1a8098da4ea5e498d426b7036c642fbeebefda50b8c421a7a33b1a8499dc35011d80a51d34285824d6f01722" );
20672 iv_len =
unhexify( iv_str,
"363e8af6f38307ec126e466e7056cc45" );
20673 add_len =
unhexify( add_str,
"471f7e9a0b505b12996747ec9e32731f11911ee95d70795bbd1bba34cf782d4100ce30a85b23f9f817f30e8f314e1a23e101201c920ce12ce732cc3fe01c74a9ee8d3e1599aa22f2398c3265d4dbda626a8ff4262889009e087fbef6babe33d7300e5cfc4c0056f3562a913d2594fee8e44959cf728599a9d3e7ee4a9ecd6694" );
20675 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
20678 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
20679 hexify( dst_str, output, pt_len );
20680 hexify( tag_str, tag_output, tag_len );
20682 fct_chk( strcmp( (
char *) dst_str,
"9494d01966ac887b8295bde61f0e7d006ea7b5c984a29cf5d849194f35d7b0f6ddb3bbd9646d7b9b961c515179901d2b04cb7cf7b6c8736d1d472ae8bb9a6dc9194b03b3f5373551a5ae0c0f023967669c873f0acfb02c0ae3a384e70f7a7ca05861f257f36a2ad5fbb591473dfc3ae1264dca0e889e0ddbf93dadf75db2059b" ) == 0 );
20683 fct_chk( strcmp( (
char *) tag_str,
"5c78d914cac78c514e275a244d0ea4" ) == 0 );
20689 FCT_TEST_BGN(gcm_nist_validation_aes_25612810241024120_1)
20691 unsigned char key_str[128];
20692 unsigned char src_str[128];
20693 unsigned char dst_str[257];
20694 unsigned char iv_str[128];
20695 unsigned char add_str[128];
20696 unsigned char tag_str[128];
20697 unsigned char output[128];
20698 unsigned char tag_output[16];
20700 unsigned int key_len;
20701 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
20703 memset(key_str, 0x00, 128);
20704 memset(src_str, 0x00, 128);
20705 memset(dst_str, 0x00, 257);
20706 memset(iv_str, 0x00, 128);
20707 memset(add_str, 0x00, 128);
20708 memset(tag_str, 0x00, 128);
20709 memset(output, 0x00, 128);
20710 memset(tag_output, 0x00, 16);
20712 key_len =
unhexify( key_str,
"614dd1762deb5c726eadf0e6587f9f38fa63d16bca1926955404f1b9f83e241a" );
20713 pt_len =
unhexify( src_str,
"1ae828a1693d3c24651ab8ba59fb1185d08e6cc4a964f30dac59cd81ff4bdfce8023ab1b6dffb594a4250d25f611763efb4152cd35b937ca11373d237f1f8b3c0e21b942beb1f4ffe5014198c9ff59896ddfbb55e69963e3ef6b03d3fa134977870cd6f3ac10bbf59bdcc9f103cc2d58f294ef5f007a9f903c7bada08cb454e6" );
20714 iv_len =
unhexify( iv_str,
"10d079a86894b0c17bfcc8ffc4ecf7bc" );
20715 add_len =
unhexify( add_str,
"c4035f80b6d2ea288afd4ddaec1eb232b78be5a86583fa85f791d546102c97ace9716c2702483d762c8e4eda12f3dd10a9a49a2d72cd4694fa794477b54b4367be6b548675aee4c351e3f66c7e113aecfbcc57b8bbab4a039f28488237c75313e62612847b915ef9b582e146b2bfabbfce576a984f5ce4be0e6bff5480584fc3" );
20717 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
20720 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
20721 hexify( dst_str, output, pt_len );
20722 hexify( tag_str, tag_output, tag_len );
20724 fct_chk( strcmp( (
char *) dst_str,
"bf5fb0445aab46aba504801d5356455f28c98f300670a731bdd0c901a1d5564aa31f5d467e5f80dadbfeca61d2bf72b570f3935ba04c45a2ff7994bac6cabf84db2a42cd5db2a4f160c97c76817cc5cb62d4006d895fcdb218c1464b5caaadbd1f61779938e9a84440615eae050cd6f1713cfbd695d78818b2af78157339e9d9" ) == 0 );
20725 fct_chk( strcmp( (
char *) tag_str,
"6d815ee12813875ce74e3aed3c7b73" ) == 0 );
20731 FCT_TEST_BGN(gcm_nist_validation_aes_25612810241024120_2)
20733 unsigned char key_str[128];
20734 unsigned char src_str[128];
20735 unsigned char dst_str[257];
20736 unsigned char iv_str[128];
20737 unsigned char add_str[128];
20738 unsigned char tag_str[128];
20739 unsigned char output[128];
20740 unsigned char tag_output[16];
20742 unsigned int key_len;
20743 size_t pt_len, iv_len, add_len, tag_len = 120 / 8;
20745 memset(key_str, 0x00, 128);
20746 memset(src_str, 0x00, 128);
20747 memset(dst_str, 0x00, 257);
20748 memset(iv_str, 0x00, 128);
20749 memset(add_str, 0x00, 128);
20750 memset(tag_str, 0x00, 128);
20751 memset(output, 0x00, 128);
20752 memset(tag_output, 0x00, 16);
20754 key_len =
unhexify( key_str,
"12e97fafff7d397ea34efc0a8528afcd51c1b2ccda680ae9049edc8359b78ec0" );
20755 pt_len =
unhexify( src_str,
"9fbf0141cd50bd1b3ccaf137b808b698570642ab20c32120901622b34173d7ad119abca3c61bbf1e6dd5cb182a079f3e01b0e5263d984c6186f01792125dd6c47c30033008ca2e0377f990285094f652c55a348242dfaa59f76989fcf86033c8d9c0b2a526bf46cca207e055e1dbc7cf3d0b7a840c8fb5f85784c9e4563f71de" );
20756 iv_len =
unhexify( iv_str,
"8eb11abfe350c0d5a6b02477b44867e9" );
20757 add_len =
unhexify( add_str,
"0a830029d450e20aaef484d4abee9dadeabbd6feaf800b3a693b4746db059efb7d110405b45e45a9e5acf90957c154674dfb2c1cd787af371e01bafc4e8475d0268b969d25756a1121a519afa61f3d6ecded4e0640f0ddd471f5b8e82029fd2887df4e65af9580390b6924022e39acfede7530e5f0e54f0285ba565ff49af542" );
20759 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
20762 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
20763 hexify( dst_str, output, pt_len );
20764 hexify( tag_str, tag_output, tag_len );
20766 fct_chk( strcmp( (
char *) dst_str,
"067cd6ff8461ac80217ef70a91dcf6edb2fbdd31856815cf356fffa63ba3f5cb293d7f1ed32ae40248693617f27839a34e871fdde635c04d1e66743f730a06e2be25cafe1d67d804879fe38e009268ec50a0294da445c795742ff1e924170e4c2e0e9ef3bdc26c251f5537218d295d93d57baccc4dee6185c235d7ec5c9926a6" ) == 0 );
20767 fct_chk( strcmp( (
char *) tag_str,
"931f44f10993c836e534a59c1aeb98" ) == 0 );
20773 FCT_TEST_BGN(gcm_nist_validation_aes_25612810241024112_0)
20775 unsigned char key_str[128];
20776 unsigned char src_str[128];
20777 unsigned char dst_str[257];
20778 unsigned char iv_str[128];
20779 unsigned char add_str[128];
20780 unsigned char tag_str[128];
20781 unsigned char output[128];
20782 unsigned char tag_output[16];
20784 unsigned int key_len;
20785 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
20787 memset(key_str, 0x00, 128);
20788 memset(src_str, 0x00, 128);
20789 memset(dst_str, 0x00, 257);
20790 memset(iv_str, 0x00, 128);
20791 memset(add_str, 0x00, 128);
20792 memset(tag_str, 0x00, 128);
20793 memset(output, 0x00, 128);
20794 memset(tag_output, 0x00, 16);
20796 key_len =
unhexify( key_str,
"c732da000262de558bd3ea65e66e20e11605170c90b67708bda43f40abed74fe" );
20797 pt_len =
unhexify( src_str,
"7d6c981c30ef87a46f53aecb4c97124fb94b45057635d5bf1d4f3a3bdb534e9ab62b4a425de9dc52537575ed9ff406cfbf75403d3d9cdbd9fcd520d62065f81483427fa27964642cc1a07822da0f6234a689eb30e8425d7709abfd18666c76c963eecef20503ee77c96802c120abea1428cc64a08fc20860527854fecc571a6c" );
20798 iv_len =
unhexify( iv_str,
"523dd34ea263c31c2215053986626d02" );
20799 add_len =
unhexify( add_str,
"f170556ac5d38f0661bae33e0826356c8488218903eba1bfa49b16882537ef78283fd9351f37f44a7687049a608c3ddcc82817d4ba96a40d05807a38ee3f2d5cb8b1121db61318fe22bfd3afb319e84c4e2f94570a92433db29bd2193485449c719a2c6030696f53ac729df90678eb018783b25740d806d1ef6980e10d396595" );
20801 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
20804 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
20805 hexify( dst_str, output, pt_len );
20806 hexify( tag_str, tag_output, tag_len );
20808 fct_chk( strcmp( (
char *) dst_str,
"3470d4544f7bfa3ac0627a56e66c56fa062188440834b9238bd20e89dfc701fe6cfe0bf4ea2387014bd83c63ab7c912e1c0dce7c2d92eaea155f886b574bc94a8f4f275dffe2d84173a05b99d8029c36dd3c35c12709d33f55c3bcd96e9a815f77a4fe8e50639d8f195a526486f1209d7bf7e86ac3dfc4a1d2cbddb6d330e5db" ) == 0 );
20809 fct_chk( strcmp( (
char *) tag_str,
"5924f3ceff0207fc8ba8179a9925" ) == 0 );
20815 FCT_TEST_BGN(gcm_nist_validation_aes_25612810241024112_1)
20817 unsigned char key_str[128];
20818 unsigned char src_str[128];
20819 unsigned char dst_str[257];
20820 unsigned char iv_str[128];
20821 unsigned char add_str[128];
20822 unsigned char tag_str[128];
20823 unsigned char output[128];
20824 unsigned char tag_output[16];
20826 unsigned int key_len;
20827 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
20829 memset(key_str, 0x00, 128);
20830 memset(src_str, 0x00, 128);
20831 memset(dst_str, 0x00, 257);
20832 memset(iv_str, 0x00, 128);
20833 memset(add_str, 0x00, 128);
20834 memset(tag_str, 0x00, 128);
20835 memset(output, 0x00, 128);
20836 memset(tag_output, 0x00, 16);
20838 key_len =
unhexify( key_str,
"2684bccf2b845314a0c4b8b5a780f91aa7ed1177539122dc8717c14bb50e2dff" );
20839 pt_len =
unhexify( src_str,
"1a4174d4e18ae0b6434f35dcd9c86cf158c42ce00ceb12f4356ec118d659820518c326a1b2ab92279d949f74c45219c660cb84fb6b10b14d56a501173fd3b129ac89db0de22874d92bec724e94751f91a817a42a28e8e15672172c0b0db4ead46b14d4bc21ad8f5ba1f9e7e0fcc867700681349b8102a208d76ae4ef7df5b56e" );
20840 iv_len =
unhexify( iv_str,
"8433b59b41fe0cdc5b30e4e87c5028ec" );
20841 add_len =
unhexify( add_str,
"280026eeebf05e26e84955e4a36352d4f97f3193dce0795d526d05645bf5d2eec4b92ee8dce54d78fd3fc3e36bc79d5bf9ee3b2699310a75dbc5007bdacb4dc88d06515995f8f5b1aa90cb8fc036b763a5e819db70c091802fb7f24b9c2a68ff194032fffc4ef798936aabccbb43f22a2bbd7e1ab9d0434d443dac4929b84193" );
20843 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
20846 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
20847 hexify( dst_str, output, pt_len );
20848 hexify( tag_str, tag_output, tag_len );
20850 fct_chk( strcmp( (
char *) dst_str,
"cc155e04472c0872d5ccf8910d34496f380954da7653a1e1d3c460fbbc791c9b82e35176e938b7e21eb4690ed9fca74ba45a03dac4abc4f625ffdfad02e1acccf18b5a1878f911fb6f6e09ce0d4c6a0bb87226e914879a1b3085c30e8328aa6e0d1c49c21b760b82e469981b40ea102f3998c81dd9799f484ab89b19396ab7e1" ) == 0 );
20851 fct_chk( strcmp( (
char *) tag_str,
"5a80008e6da40c71b316b84ae284" ) == 0 );
20857 FCT_TEST_BGN(gcm_nist_validation_aes_25612810241024112_2)
20859 unsigned char key_str[128];
20860 unsigned char src_str[128];
20861 unsigned char dst_str[257];
20862 unsigned char iv_str[128];
20863 unsigned char add_str[128];
20864 unsigned char tag_str[128];
20865 unsigned char output[128];
20866 unsigned char tag_output[16];
20868 unsigned int key_len;
20869 size_t pt_len, iv_len, add_len, tag_len = 112 / 8;
20871 memset(key_str, 0x00, 128);
20872 memset(src_str, 0x00, 128);
20873 memset(dst_str, 0x00, 257);
20874 memset(iv_str, 0x00, 128);
20875 memset(add_str, 0x00, 128);
20876 memset(tag_str, 0x00, 128);
20877 memset(output, 0x00, 128);
20878 memset(tag_output, 0x00, 16);
20880 key_len =
unhexify( key_str,
"484a33ba0b97c2887a86a1476f274e236eb37a72e05f9e74348248877ea99e98" );
20881 pt_len =
unhexify( src_str,
"4d81cec14b398257a31ad1e3581c00d05e12b37b71260bdd95bc0b6981b614598ffbbb3ec4bb7deb5673a1020139877122f88504c9c53265706fe76623a9b488a3dfdd4cbc1b7b46c7fce9d7378e164964c0a377337a5c172e5e4de6206375164cd7beb0305d7a90f5c73e12f445326e1bc9ac5acd1bd4bcbe4662524891a2e9" );
20882 iv_len =
unhexify( iv_str,
"c3a5cc19aef6d64b656d66fad697b829" );
20883 add_len =
unhexify( add_str,
"30f276f96a50e17b452dcb5e1b4ab666dc7c4c72d0d9ab2abaf77eae2e3bab7dbe5ac005d7eac5480e1bae13646b59155528abdc148b3b71f06d017c4b12d64aa3990cc96941eaac14b60eb347e0be873de2b6fe2b86e2c2fc063b29511b70144ecd315b9491001b122701b9c8cc1d85427b6c60663ccd9d1fa84e1c2f609f36" );
20885 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
20888 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
20889 hexify( dst_str, output, pt_len );
20890 hexify( tag_str, tag_output, tag_len );
20892 fct_chk( strcmp( (
char *) dst_str,
"579fd8fb50d795b5b208c2d5b0a8b1804f754a30a1003025301655aebcda2d2ff30d29a16d0fb17a28401127750fc87c9e3aa08540817228b049c387253ea2359035b8063ab4bf54504ca5ad93b54b8ac5bd0c1ef3c6769fb1ed239bb76f3e0bc51d356aa91b494d22749c8e4cdb1629e93f7c6e46ff9145916c1275669ae5ba" ) == 0 );
20893 fct_chk( strcmp( (
char *) tag_str,
"1c39aac1d5ffe7916a08ab2ce279" ) == 0 );
20899 FCT_TEST_BGN(gcm_nist_validation_aes_25612810241024104_0)
20901 unsigned char key_str[128];
20902 unsigned char src_str[128];
20903 unsigned char dst_str[257];
20904 unsigned char iv_str[128];
20905 unsigned char add_str[128];
20906 unsigned char tag_str[128];
20907 unsigned char output[128];
20908 unsigned char tag_output[16];
20910 unsigned int key_len;
20911 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
20913 memset(key_str, 0x00, 128);
20914 memset(src_str, 0x00, 128);
20915 memset(dst_str, 0x00, 257);
20916 memset(iv_str, 0x00, 128);
20917 memset(add_str, 0x00, 128);
20918 memset(tag_str, 0x00, 128);
20919 memset(output, 0x00, 128);
20920 memset(tag_output, 0x00, 16);
20922 key_len =
unhexify( key_str,
"4a5f5321b515cfcde493148ee4c44c693b1979b3a3ba522a2a80e5d27c93fd1b" );
20923 pt_len =
unhexify( src_str,
"962b8504feb57ae73e93c2e8962c9562f409c908e51f9904df1623eaa0c6b998db6ee8919d805b6ffcc37da51300c1ae16bca21f8f6f63af989a813ae8fe28c3fb012f003dab7e71b08d757799208806062d62b4ac937712409f9fafff3e3579a4d92d4437a6f0b263e1da7e4651e0a521be5f6f49ff5a0778f07bd5d3dac696" );
20924 iv_len =
unhexify( iv_str,
"c2cb0166046bad0cf0a107af83921d7a" );
20925 add_len =
unhexify( add_str,
"e48abfb657ab33f58eeda8c58a20e7e299bc3e7481f704c326529408580f9a5130cf6f7368502d20b03ba6c3b8f6f28c076a3ef7b8e987750dc972be953e712483e6f328da57e4b5c501fa7c720593eb89ff9644fbdc45478f80ee89f096694dcb44a9b3a6aca0904d4aa4e475b4b24771df9fd6ef9557f4f5c842ac241b212f" );
20927 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
20930 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
20931 hexify( dst_str, output, pt_len );
20932 hexify( tag_str, tag_output, tag_len );
20934 fct_chk( strcmp( (
char *) dst_str,
"11bd55d969603ff3d46355cb19c69557b99825a4c23eeafc8eed8422dab537c0fa9753191c49a6fd9e0d6760ed816a49e7f5704b5936a498544e2bbba7875c513c031f11527ca1b9b579960be6964fba9119dcece8205c174be07ebffada83375678de76fc012b0ee179787b4aa9fb6e2b459575260eb01f23786dc24d1d45ef" ) == 0 );
20935 fct_chk( strcmp( (
char *) tag_str,
"36853a029b5163ca76c72d4fec" ) == 0 );
20941 FCT_TEST_BGN(gcm_nist_validation_aes_25612810241024104_1)
20943 unsigned char key_str[128];
20944 unsigned char src_str[128];
20945 unsigned char dst_str[257];
20946 unsigned char iv_str[128];
20947 unsigned char add_str[128];
20948 unsigned char tag_str[128];
20949 unsigned char output[128];
20950 unsigned char tag_output[16];
20952 unsigned int key_len;
20953 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
20955 memset(key_str, 0x00, 128);
20956 memset(src_str, 0x00, 128);
20957 memset(dst_str, 0x00, 257);
20958 memset(iv_str, 0x00, 128);
20959 memset(add_str, 0x00, 128);
20960 memset(tag_str, 0x00, 128);
20961 memset(output, 0x00, 128);
20962 memset(tag_output, 0x00, 16);
20964 key_len =
unhexify( key_str,
"c8f7b7e6295fc8e33740bf2807caeaf4b90817cc3ef3d9f38f704d9f6164e41d" );
20965 pt_len =
unhexify( src_str,
"4c26e489069b487ce9dc0e295d5e89760401185374041b0efca5bbf758e7d010ccbfe5999e2a817776aa8f49c1e5d43bcdade2989fe5be635dab54cb0e390a21b832b30f688857b9e09c346bcc5397e51cf71acbe1bfcaa1ecd7e87fe5dfde180d951922e60dd8203ff210c995eb54bb981f7e931f0b1f52dce0cf1b2eba503f" );
20966 iv_len =
unhexify( iv_str,
"903b2eeb9d0b3794acb7439d341cfe0d" );
20967 add_len =
unhexify( add_str,
"83e99497bfbe9393b065b0b18c13f99b67f1fdd724fd5d70cdccd2b8dd658499cb9f57e1a1fe39634ab0869182de085722a79eaabf057aac7b3f3230f51a2f9b48b49d592f02246dacbe915ff9d9a53f7e5332f7a9d89649050b075c07e5e74f281ca1a0dbe632c0aecf3b1911cd6ec4f8facc2777d0d14784bf5951a1c62c33" );
20969 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
20972 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
20973 hexify( dst_str, output, pt_len );
20974 hexify( tag_str, tag_output, tag_len );
20976 fct_chk( strcmp( (
char *) dst_str,
"63e2941bf4a13374627be66bdd4e57119149f81f4c1a8a321d27a4a79e7d61e2dcec9d7b13fcccf12f5b059cc209f8414ae81966462a266e92b4b3c25198ee240e0bc6f6197df1e24e8d4379fcae89e6240a7f9c7bab886e79990b846e98e4bacb8b3b17422249943e9973de42da5e38e4eb52830b1facce766b3389a5312476" ) == 0 );
20977 fct_chk( strcmp( (
char *) tag_str,
"6e31c5db3146ae45ef5d50485e" ) == 0 );
20983 FCT_TEST_BGN(gcm_nist_validation_aes_25612810241024104_2)
20985 unsigned char key_str[128];
20986 unsigned char src_str[128];
20987 unsigned char dst_str[257];
20988 unsigned char iv_str[128];
20989 unsigned char add_str[128];
20990 unsigned char tag_str[128];
20991 unsigned char output[128];
20992 unsigned char tag_output[16];
20994 unsigned int key_len;
20995 size_t pt_len, iv_len, add_len, tag_len = 104 / 8;
20997 memset(key_str, 0x00, 128);
20998 memset(src_str, 0x00, 128);
20999 memset(dst_str, 0x00, 257);
21000 memset(iv_str, 0x00, 128);
21001 memset(add_str, 0x00, 128);
21002 memset(tag_str, 0x00, 128);
21003 memset(output, 0x00, 128);
21004 memset(tag_output, 0x00, 16);
21006 key_len =
unhexify( key_str,
"dec062efc1bd2556b87a81143d025abbaa532c586d5ebb065859a2071f8f07e4" );
21007 pt_len =
unhexify( src_str,
"02191bcb060e61827dbddac6c2961dbab8812cdc2ac77bf0275628e8e36bae18ad4deb77b2682ade0aef76afd4592173ba29dae4d0735963c803856eaa6f60a6c21785358e87f3c4a91e321c59e04c150297de873679194ba5ca857f7d91ffc358e73810d555ebd4dbd1fe4fbc4ffa4ff38e4b41db9af0a84fe9828708631469" );
21008 iv_len =
unhexify( iv_str,
"19abd0361443c3ac2a46f2606eeb1a69" );
21009 add_len =
unhexify( add_str,
"c3785e7c0095726fd1f3ca842057b0ea2baf9c3fe1119c2147609158a2039f26cedf8a44e046955ba7e7cad9f48cb49274fc53b109d7897e080af252e7dc64807c276bcf668d2cd505c9ce8e584609d293ebd2a4515bfbaf78c413d6e29dc90974db38b564ffe9a40d3955dba9f19b6f39bf942669cf80e4676d6c10df566ca1" );
21011 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
21014 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
21015 hexify( dst_str, output, pt_len );
21016 hexify( tag_str, tag_output, tag_len );
21018 fct_chk( strcmp( (
char *) dst_str,
"91a16c7fe029e3fddacf0809dde7d041c438977b89192e6fed7605d0133f3d9e810355d186432f6529bd2c4cb9dadb4fedf5128cb45e25a3a46bf74ed93f31349f64a69dbe86592d76e437947f1c1d7270d1cffe80afe10ae8523541961eacee1838c168a2ab76703ea4674a68a96b8a298a672ffc140e98e452d501fd57f000" ) == 0 );
21019 fct_chk( strcmp( (
char *) tag_str,
"5b4071a4be0543aaa59b56de35" ) == 0 );
21025 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024102496_0)
21027 unsigned char key_str[128];
21028 unsigned char src_str[128];
21029 unsigned char dst_str[257];
21030 unsigned char iv_str[128];
21031 unsigned char add_str[128];
21032 unsigned char tag_str[128];
21033 unsigned char output[128];
21034 unsigned char tag_output[16];
21036 unsigned int key_len;
21037 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
21039 memset(key_str, 0x00, 128);
21040 memset(src_str, 0x00, 128);
21041 memset(dst_str, 0x00, 257);
21042 memset(iv_str, 0x00, 128);
21043 memset(add_str, 0x00, 128);
21044 memset(tag_str, 0x00, 128);
21045 memset(output, 0x00, 128);
21046 memset(tag_output, 0x00, 16);
21048 key_len =
unhexify( key_str,
"9b7b700d978e33ae9311b206347f488e2832fad5ce7e6026ad5e24fb47104fcb" );
21049 pt_len =
unhexify( src_str,
"37aef6e4200c6abc3d161daaf9dd6ede002ce8c63d9ed54e8ac56bdc8d36906bea663d2857d8d543166ba150827735ec78e37f92e682275e268d377b1880970df232162e55c9311882f889e7d183e5cf4972691c85f81c47e1224b9c97ee3963d75c6a032270ad6d713c999913f0b58a2d4f42b85a3b0b40541a31398cdfb4b0" );
21050 iv_len =
unhexify( iv_str,
"d0bbc284af767af9a31b863d66cb6138" );
21051 add_len =
unhexify( add_str,
"dfb87a65ab2d99d7d753042aa47448ad830e546d298d6ad52b85207bbb0cbe8cf3cdb12b3544f1fc228fdae04a241abf9e71de8ae14f2de2c261469c383c682e13582e07cddb1ed9bff1fd2aa0be7978096a914676dfbe7bec6edd927362f656ce1de86229bc511cfec4cda77a1e761e7ab8664e4df08cb820ebdb604c2cdbb0" );
21053 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
21056 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
21057 hexify( dst_str, output, pt_len );
21058 hexify( tag_str, tag_output, tag_len );
21060 fct_chk( strcmp( (
char *) dst_str,
"dcd5575d94fffc647d4c081e3ce03928651419a32ada2af02de2f58d68fa98eb1fd5ef671875719a9c65b9ecc69513408a79a0a5d57cabd04f8e651f5b8fc1ff42ce58d8a212ac2bcb83c5c53c542c282553a62b4e3d7d4f049ab13172739a0f46e0a2fd9aec54eb0c84141c6b341783754372df69d39e48cc24eb3d9ddb21a9" ) == 0 );
21061 fct_chk( strcmp( (
char *) tag_str,
"4a7ac79db94b27469b92343a" ) == 0 );
21067 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024102496_1)
21069 unsigned char key_str[128];
21070 unsigned char src_str[128];
21071 unsigned char dst_str[257];
21072 unsigned char iv_str[128];
21073 unsigned char add_str[128];
21074 unsigned char tag_str[128];
21075 unsigned char output[128];
21076 unsigned char tag_output[16];
21078 unsigned int key_len;
21079 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
21081 memset(key_str, 0x00, 128);
21082 memset(src_str, 0x00, 128);
21083 memset(dst_str, 0x00, 257);
21084 memset(iv_str, 0x00, 128);
21085 memset(add_str, 0x00, 128);
21086 memset(tag_str, 0x00, 128);
21087 memset(output, 0x00, 128);
21088 memset(tag_output, 0x00, 16);
21090 key_len =
unhexify( key_str,
"ce15e61edd9320ceacbf3984d87c707159caa738e7e76285be00b5a95954b523" );
21091 pt_len =
unhexify( src_str,
"8af4a7d92441ce931815fa4e24d69f66256fec7e62f79a029b684b5db304a46b2a3d3a7ee8d6b7ae38caa7de526d5c0f28dc65a0913a383b7ee1640cbe24997ba95b9b12fa1e9ce9f9100d883c16b6286dce17e381af15113f56197c97fe6b45be00a3df05045f476829d7b303211ac97cf989a18c16e27fbf23570d9d18f04b" );
21092 iv_len =
unhexify( iv_str,
"b1269c8495ea1469ff41d8154ae6765e" );
21093 add_len =
unhexify( add_str,
"0ad26a08a5cc2ec825347d7ffd5aac795eb68aa7e22970d991c863fa6d1fa720137aa5cde4e382625a0038e6ed72da3b5003c1b2a953c2b2138e0cf870cca4afb595c0451aa793fb0a2bc43834a0aca1e760590cca765ad672ead975993f82ae6765c5afbddc6062d7c4babebf650ab097db1a1d9a2a99e8fd2e0eb8a7b916f6" );
21095 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
21098 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
21099 hexify( dst_str, output, pt_len );
21100 hexify( tag_str, tag_output, tag_len );
21102 fct_chk( strcmp( (
char *) dst_str,
"ad0ab4e77257866e4a57cf44fa4049428e56a6e8b8fd47b4cd00bfce84fa8f5a43f1df2061b0a37311b4a1436bad0d61d52ced5e262ed41a7eb125d61cec2e3fbaa95e533b43f318048096ebc8466f0cd609bb5e7c3fc6e5701aace546618a170f88c0b7ed76b63759ca4e4b931a86ac379dd12ad2cba7d47a19a3ae7c242fb0" ) == 0 );
21103 fct_chk( strcmp( (
char *) tag_str,
"fb1e988f9c97358a17e35e6f" ) == 0 );
21109 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024102496_2)
21111 unsigned char key_str[128];
21112 unsigned char src_str[128];
21113 unsigned char dst_str[257];
21114 unsigned char iv_str[128];
21115 unsigned char add_str[128];
21116 unsigned char tag_str[128];
21117 unsigned char output[128];
21118 unsigned char tag_output[16];
21120 unsigned int key_len;
21121 size_t pt_len, iv_len, add_len, tag_len = 96 / 8;
21123 memset(key_str, 0x00, 128);
21124 memset(src_str, 0x00, 128);
21125 memset(dst_str, 0x00, 257);
21126 memset(iv_str, 0x00, 128);
21127 memset(add_str, 0x00, 128);
21128 memset(tag_str, 0x00, 128);
21129 memset(output, 0x00, 128);
21130 memset(tag_output, 0x00, 16);
21132 key_len =
unhexify( key_str,
"aef24b8205d4085d978505f04724293c2819ef9f3f03a6c758078690fc4bf7c8" );
21133 pt_len =
unhexify( src_str,
"db26453170db2f984312e0cf961d1a7df1154f0525c31f166be5c9f516736501f9f2dd8096a69b6441888ce27aaceacb0b365a38e4e01e2e34027c023206e814f22d46fd2fa69f87509ddced4b8852a76b2532b92f069b8c922ac13b2b7f19cb7c524657a4ee6e989cf2598bef674aa31576776853fb7f9a2704d6b3ee7fbcbb" );
21134 iv_len =
unhexify( iv_str,
"81456baa337c3dfd162d9c5f72a2e216" );
21135 add_len =
unhexify( add_str,
"484a5f4772643cf74ccdced0e5d80862f9300f26ae3139968649d3d7bb761b313f2ba63798b2040d397c3d1569285fee8498fd9254851c15b98af5bd351fa72e7d574c62ede0d728e1279e8b4e4784fd63ea7851e99d1d2356bcbf868528f8d0a90fc3b884ece631648d916ec97abadca1b0dd7670e6ad42245021570582ec7c" );
21137 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
21140 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
21141 hexify( dst_str, output, pt_len );
21142 hexify( tag_str, tag_output, tag_len );
21144 fct_chk( strcmp( (
char *) dst_str,
"da95c61cd2bb88fea78c059c254d2b949d4fc291c73ac178ace44c1e6a339f64931c857d3a7cb276a04993620adb6918dfd3f9083edad384a8e6c1d4799d526a1c969d8deb0e2667d6d06f559baf914b49fc463244528aa6522d19699065438d939521d7d7bb149835298f2054bcaae6d786f6dde133b640697a3d37c697579a" ) == 0 );
21145 fct_chk( strcmp( (
char *) tag_str,
"bc1c1cbcad2e1a66ace079a2" ) == 0 );
21151 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024102464_0)
21153 unsigned char key_str[128];
21154 unsigned char src_str[128];
21155 unsigned char dst_str[257];
21156 unsigned char iv_str[128];
21157 unsigned char add_str[128];
21158 unsigned char tag_str[128];
21159 unsigned char output[128];
21160 unsigned char tag_output[16];
21162 unsigned int key_len;
21163 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
21165 memset(key_str, 0x00, 128);
21166 memset(src_str, 0x00, 128);
21167 memset(dst_str, 0x00, 257);
21168 memset(iv_str, 0x00, 128);
21169 memset(add_str, 0x00, 128);
21170 memset(tag_str, 0x00, 128);
21171 memset(output, 0x00, 128);
21172 memset(tag_output, 0x00, 16);
21174 key_len =
unhexify( key_str,
"9685aea9aaebbd691e679779034729306d5887bee4c1f90f6ee3a397a0ff3ece" );
21175 pt_len =
unhexify( src_str,
"ae3b2fa1e209f72c167eb16bc15b7669b87d4ab516e428157810b87a83e90d56e267bd4996522b5b22c2a349d3765ca27ea27057dd71f7c18ddd053033bd780b6cb689f48c383e9c717b9b265cb9e32c70c4a7d8fb933e986d996b5ad914cd645b74c47ac3a0de952ee3fc73ada83d896da7ca0b2a0b10e4f701fa13cba9ec50" );
21176 iv_len =
unhexify( iv_str,
"b1bc140531ae8c69e2ffc784e0988038" );
21177 add_len =
unhexify( add_str,
"294ff858fa6efc82ca3be4d05332bbb951a71a7ddfa4b78472e1582b445312eec11793d8d6e1e858d9cb078b5fc9083ac8a3e3bd82964cb07c08450567922299f68fd47663c7a77c29f2b5347f229301433d5a75263158a0d80095859e7e45476b99b23412046bfbe4eafff9f7820ba49919d2c987cf00c286c784e7669d8fe8" );
21179 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
21182 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
21183 hexify( dst_str, output, pt_len );
21184 hexify( tag_str, tag_output, tag_len );
21186 fct_chk( strcmp( (
char *) dst_str,
"6575128b576e68f7b3709e325b3d616783b42ff7f7631eb62b90cb0c8a86bd324756f43af53c33cbdaf9cf64ea94cf1b7fab5003f00c1d07f3fc8eb1931d759f9c43477ba22311a111488092c42b7786facf42b861a824cd1bcdc603a77d11253f15206a929a3e16e8737d080b8e5f0da8896226989a9964d72e491187250472" ) == 0 );
21187 fct_chk( strcmp( (
char *) tag_str,
"f78c4dd37c06b197" ) == 0 );
21193 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024102464_1)
21195 unsigned char key_str[128];
21196 unsigned char src_str[128];
21197 unsigned char dst_str[257];
21198 unsigned char iv_str[128];
21199 unsigned char add_str[128];
21200 unsigned char tag_str[128];
21201 unsigned char output[128];
21202 unsigned char tag_output[16];
21204 unsigned int key_len;
21205 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
21207 memset(key_str, 0x00, 128);
21208 memset(src_str, 0x00, 128);
21209 memset(dst_str, 0x00, 257);
21210 memset(iv_str, 0x00, 128);
21211 memset(add_str, 0x00, 128);
21212 memset(tag_str, 0x00, 128);
21213 memset(output, 0x00, 128);
21214 memset(tag_output, 0x00, 16);
21216 key_len =
unhexify( key_str,
"3adf0da24394a98c7beae01d28f261a9cbd887aeeecc0c29e84540264d5a6bad" );
21217 pt_len =
unhexify( src_str,
"8cf023d717b0f82f2b81750b53fb665c1c90f4740af4a3534b36b847df33ba5eec19eb24ead70a4b613a82572878216181d59b0c4c4df99be08d021cf182724d8ff5ec4e85884d0f69c16238fbbdbc5529ffcc4e418405e4e95139f79d3115a1ac56820cd39fc413ab72f7d447f947cb0541fc2be261f1246c0a786199013b22" );
21218 iv_len =
unhexify( iv_str,
"ad41288817577316df2d881ac93fcdef" );
21219 add_len =
unhexify( add_str,
"ad33ce922372fbe3531c0dece69f85f18eb1bbfb09a178403832308de0e54b1010db2636c4b7d9caa478138f61db5149c9fd7f3b45b7a1876729fe67622a37f0b322ef9cf6043b301a5d4c81e6f347d22bd3e40722059d3be945845c6b0629fbcfcaf885c7f393aa81f242c48c61a439574761ef6b671972cac664403250750e" );
21221 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
21224 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
21225 hexify( dst_str, output, pt_len );
21226 hexify( tag_str, tag_output, tag_len );
21228 fct_chk( strcmp( (
char *) dst_str,
"9d465e9c4228323946b1261892243d8455edb9eb8633d026d4033fa3965d20730979ba6952c0f6f2c5768f03c19256b64bc759d2e7b92424bbc668308504ba34384c2bb37baaf91a3a4f0952a050a3d69853141b49e86eda3bf0c4db4ebcd1c41e7f13eca20bf574a47ec45b8c98def17c0741805bf8f37923ba2b5221428578" ) == 0 );
21229 fct_chk( strcmp( (
char *) tag_str,
"507618cec6d03964" ) == 0 );
21235 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024102464_2)
21237 unsigned char key_str[128];
21238 unsigned char src_str[128];
21239 unsigned char dst_str[257];
21240 unsigned char iv_str[128];
21241 unsigned char add_str[128];
21242 unsigned char tag_str[128];
21243 unsigned char output[128];
21244 unsigned char tag_output[16];
21246 unsigned int key_len;
21247 size_t pt_len, iv_len, add_len, tag_len = 64 / 8;
21249 memset(key_str, 0x00, 128);
21250 memset(src_str, 0x00, 128);
21251 memset(dst_str, 0x00, 257);
21252 memset(iv_str, 0x00, 128);
21253 memset(add_str, 0x00, 128);
21254 memset(tag_str, 0x00, 128);
21255 memset(output, 0x00, 128);
21256 memset(tag_output, 0x00, 16);
21258 key_len =
unhexify( key_str,
"9ef64b4132db54668568e2ae66ab61f62a820c7002a67a7e42006280a373feba" );
21259 pt_len =
unhexify( src_str,
"4b96dce753273188c4cca3386a7415d5d9263757376e1f32797df47992e92e1bc0ab0833363b3acffde22602d4e47307bc8f252944414a15e1398693fd3b8bf4d8101cdcf70ce2c9de8cb7f5bb17cd83f09b1bc78ba07c34b9214e250c5940e9794199cb392309027d5ab4f32b51c533db6732024bd412f2cb0c5178d5296aa5" );
21260 iv_len =
unhexify( iv_str,
"07a86dbe2cce040eccdad79b3d211ecc" );
21261 add_len =
unhexify( add_str,
"af7a75748ee293015b600ca82ccc7718f4ecc20c3a2357ee02fb726330a0d79ca8bb97979bc0c89f4c60d7154f8bd29ba6ec5f2f4be286ea8a258cf6bd39b4f42d6db8e70c99ec3af26bb4d8003dc6fd0fdfbbc620d511d4d5f09ddf975a1663ac2979ae0978b0bc1e7bfcd660ae4ac7f1a8f6d8ee35752ed59a604f07dfda53" );
21263 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
21266 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
21267 hexify( dst_str, output, pt_len );
21268 hexify( tag_str, tag_output, tag_len );
21270 fct_chk( strcmp( (
char *) dst_str,
"e3e862146b6fb48b01ababc462dd560298eea7bfe5f3248e28a908d1de08c7e91fcf63922c394e7a51b64f4382225093e78598c050e588ff4ad38f3e83dc07b77ce569c6ab8f8a9cb0056b3155aa1503cebeb64c86d6d9cdbb178ea9a01a8ba33a1c48beb92ee4cf60e7dedf986019e19089cd186c98c229b0ff42c9e1aca571" ) == 0 );
21271 fct_chk( strcmp( (
char *) tag_str,
"8614c216055c0660" ) == 0 );
21277 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024102432_0)
21279 unsigned char key_str[128];
21280 unsigned char src_str[128];
21281 unsigned char dst_str[257];
21282 unsigned char iv_str[128];
21283 unsigned char add_str[128];
21284 unsigned char tag_str[128];
21285 unsigned char output[128];
21286 unsigned char tag_output[16];
21288 unsigned int key_len;
21289 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
21291 memset(key_str, 0x00, 128);
21292 memset(src_str, 0x00, 128);
21293 memset(dst_str, 0x00, 257);
21294 memset(iv_str, 0x00, 128);
21295 memset(add_str, 0x00, 128);
21296 memset(tag_str, 0x00, 128);
21297 memset(output, 0x00, 128);
21298 memset(tag_output, 0x00, 16);
21300 key_len =
unhexify( key_str,
"f14ac79f35bc5a685433eea5bb7fd69fc959aabda24cbd8b7795fb2e41f90ab0" );
21301 pt_len =
unhexify( src_str,
"8a20da14819079960b77ed5e548d0aa0bdcffb752817c1abe4195e612cfbb58c8e5a8af69f75bad10ee8afdf0b0d5c46c4dc11c32bff16d5e7e82e77fd80e475c6a5a0be36718af232697ab22314306b8ee32484b3461da657710c06170e80a6a8844f898c2be29366c8430f2392d100ffd419603cbce406dc7315577e6e9ee2" );
21302 iv_len =
unhexify( iv_str,
"353e1d08edce44c966430513cb7a0383" );
21303 add_len =
unhexify( add_str,
"cb1dde4ff5a6867038c170192fc2d292f5bb349d5b9a903cf3d88c09ce78fb1f4a776ff7588a25abb5e5f6a44791d7296afef3f32ed31db1def37dd25be0570a204955121f9c65b79a3ea88fc452dbcb82719243c11bc27e3408adf802b6e8b4e701ee4e9dfd140cb3277bf605bd5fb757d2325f7805fc6f0d1ea5a6207fac5f" );
21305 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
21308 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
21309 hexify( dst_str, output, pt_len );
21310 hexify( tag_str, tag_output, tag_len );
21312 fct_chk( strcmp( (
char *) dst_str,
"49b5e4ea0421034c074cde67dd39a0310c3f31e8138672ba2ecc0777be542f1c6529836d5206b79dac83d96aab56787a35c584b31228f007f11630328c3f40a57be37487689ee5babb576e7d14ff0f1f1ba6e4be11637352a4336327681058b99df2e44f9772de4e0e456d2e34dec5eeb335b238e862841d166e0612cc0f18f3" ) == 0 );
21313 fct_chk( strcmp( (
char *) tag_str,
"88aed643" ) == 0 );
21319 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024102432_1)
21321 unsigned char key_str[128];
21322 unsigned char src_str[128];
21323 unsigned char dst_str[257];
21324 unsigned char iv_str[128];
21325 unsigned char add_str[128];
21326 unsigned char tag_str[128];
21327 unsigned char output[128];
21328 unsigned char tag_output[16];
21330 unsigned int key_len;
21331 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
21333 memset(key_str, 0x00, 128);
21334 memset(src_str, 0x00, 128);
21335 memset(dst_str, 0x00, 257);
21336 memset(iv_str, 0x00, 128);
21337 memset(add_str, 0x00, 128);
21338 memset(tag_str, 0x00, 128);
21339 memset(output, 0x00, 128);
21340 memset(tag_output, 0x00, 16);
21342 key_len =
unhexify( key_str,
"b55ac909e73989e310ae37d13c54bbd5a126f419a3b01a2ad8961d89bd247f81" );
21343 pt_len =
unhexify( src_str,
"8a663e8b21a027c4a9545d145d42d9c67b4fcd5d0e39aa68822aedbd609e2c681f60e6315035321de739858b2b082bc05551fe9b8456c2e89c6151282c6068b915eae5762e4d6d765d667de58a315e061b3d60035ada50f59258eb6e2a1cd6b52eea7eb9d404fd96e71f19feff65b74a4b4f07061adf7c1b0e54e2ece7a2cd49" );
21344 iv_len =
unhexify( iv_str,
"9328abab0d3f63c75ddafd8559d96b4f" );
21345 add_len =
unhexify( add_str,
"cbae20aa1996abb62471aac91cd78080953fbe3b165d4c9435832ef1106e7e3424db8850f44a431c289ab4f2bbbea9e5c0c7aaf2e8de69c0ced176283662cadd280d8fda0c859551f0f90893ca57695c95803a1546826922ac78703d7ccae285b7ccd4bbab551756cccc6869dcf34b6af8d8b80c25c6fb1d2caa7f28161fb854" );
21347 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
21350 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
21351 hexify( dst_str, output, pt_len );
21352 hexify( tag_str, tag_output, tag_len );
21354 fct_chk( strcmp( (
char *) dst_str,
"457e13ff4eeaaae75d14bbf1bff91706c3168b9b146aed29dbe31b12ad90c1c158833be95701229ac6e4a13997e0a2d961d4a0021c4d8920ec54a9a935e5ea73b17e8fa60559df76bd07d966dfa7d86d1a77a313228b2ae7f66b5b696726c02af2c808bf75e0b9591a220e762f57c680ca68f20b2b5413b07731bbd49de039bf" ) == 0 );
21355 fct_chk( strcmp( (
char *) tag_str,
"5de0434a" ) == 0 );
21361 FCT_TEST_BGN(gcm_nist_validation_aes_2561281024102432_2)
21363 unsigned char key_str[128];
21364 unsigned char src_str[128];
21365 unsigned char dst_str[257];
21366 unsigned char iv_str[128];
21367 unsigned char add_str[128];
21368 unsigned char tag_str[128];
21369 unsigned char output[128];
21370 unsigned char tag_output[16];
21372 unsigned int key_len;
21373 size_t pt_len, iv_len, add_len, tag_len = 32 / 8;
21375 memset(key_str, 0x00, 128);
21376 memset(src_str, 0x00, 128);
21377 memset(dst_str, 0x00, 257);
21378 memset(iv_str, 0x00, 128);
21379 memset(add_str, 0x00, 128);
21380 memset(tag_str, 0x00, 128);
21381 memset(output, 0x00, 128);
21382 memset(tag_output, 0x00, 16);
21384 key_len =
unhexify( key_str,
"1477e189fb3546efac5cc144f25e132ffd0081be76e912e25cbce7ad63f1c2c4" );
21385 pt_len =
unhexify( src_str,
"7bd3ea956f4b938ebe83ef9a75ddbda16717e924dd4e45202560bf5f0cffbffcdd23be3ae08ff30503d698ed08568ff6b3f6b9fdc9ea79c8e53a838cc8566a8b52ce7c21b2b067e778925a066c970a6c37b8a6cfc53145f24bf698c352078a7f0409b53196e00c619237454c190b970842bb6629c0def7f166d19565127cbce0" );
21386 iv_len =
unhexify( iv_str,
"c109f35893aff139db8ed51c85fee237" );
21387 add_len =
unhexify( add_str,
"8f7f9f71a4b2bb0aaf55fced4eb43c57415526162070919b5f8c08904942181820d5847dfd54d9ba707c5e893a888d5a38d0130f7f52c1f638b0119cf7bc5f2b68f51ff5168802e561dff2cf9c5310011c809eba002b2fa348718e8a5cb732056273cc7d01cce5f5837ab0b09b6c4c5321a7f30a3a3cd21f29da79fce3f3728b" );
21389 fct_chk(
gcm_init( &ctx, key_str, key_len * 8 ) == 0 );
21392 fct_chk(
gcm_crypt_and_tag( &ctx,
GCM_ENCRYPT, pt_len, iv_str, iv_len, add_str, add_len, src_str, output, tag_len, tag_output ) == 0 );
21393 hexify( dst_str, output, pt_len );
21394 hexify( tag_str, tag_output, tag_len );
21396 fct_chk( strcmp( (
char *) dst_str,
"7841e3d78746f07e5614233df7175931e3c257e09ebd7b78545fae484d835ffe3db3825d3aa1e5cc1541fe6cac90769dc5aaeded0c148b5b4f397990eb34b39ee7881804e5a66ccc8d4afe907948780c4e646cc26479e1da874394cb3537a8f303e0aa13bd3cc36f6cc40438bcd41ef8b6a1cdee425175dcd17ee62611d09b02" ) == 0 );
21397 fct_chk( strcmp( (
char *) tag_str,
"cb13ce59" ) == 0 );