8 typedef UINT32 uint32_t;
17 #define GET_UINT32_BE(n,b,i) \
19 (n) = ( (uint32_t) (b)[(i) ] << 24 ) \
20 | ( (uint32_t) (b)[(i) + 1] << 16 ) \
21 | ( (uint32_t) (b)[(i) + 2] << 8 ) \
22 | ( (uint32_t) (b)[(i) + 3] ); \
27 #define PUT_UINT32_BE(n,b,i) \
29 (b)[(i) ] = (unsigned char) ( (n) >> 24 ); \
30 (b)[(i) + 1] = (unsigned char) ( (n) >> 16 ); \
31 (b)[(i) + 2] = (unsigned char) ( (n) >> 8 ); \
32 (b)[(i) + 3] = (unsigned char) ( (n) ); \
36 int unhexify(
unsigned char *obuf,
const char *ibuf)
39 int len = strlen(ibuf) / 2;
40 assert(!(strlen(ibuf) %1));
45 if( c >=
'0' && c <=
'9' )
47 else if( c >=
'a' && c <=
'f' )
49 else if( c >=
'A' && c <=
'F' )
55 if( c2 >=
'0' && c2 <=
'9' )
57 else if( c2 >=
'a' && c2 <=
'f' )
59 else if( c2 >=
'A' && c2 <=
'F' )
64 *obuf++ = ( c << 4 ) | c2;
70 void hexify(
unsigned char *obuf,
const unsigned char *ibuf,
int len)
82 *obuf++ =
'a' + h - 10;
87 *obuf++ =
'a' + l - 10;
103 static int rnd_std_rand(
void *rng_state,
unsigned char *output,
size_t len )
107 if( rng_state != NULL )
110 for( i = 0; i < len; ++i )
121 static int rnd_zero_rand(
void *rng_state,
unsigned char *output,
size_t len )
123 if( rng_state != NULL )
126 memset( output, 0, len );
153 if( rng_state == NULL )
162 memcpy( output, info->
buf, use_len );
163 info->
buf += use_len;
167 if( len - use_len > 0 )
168 return(
rnd_std_rand( NULL, output + use_len, len - use_len ) );
197 uint32_t i, *k, sum, delta=0x9E3779B9;
198 unsigned char result[4];
200 if( rng_state == NULL )
207 size_t use_len = ( len > 4 ) ? 4 : len;
210 for( i = 0; i < 32; i++ )
212 info->
v0 += (((info->
v1 << 4) ^ (info->
v1 >> 5)) + info->
v1) ^ (sum + k[sum & 3]);
214 info->
v1 += (((info->
v0 << 4) ^ (info->
v0 >> 5)) + info->
v0) ^ (sum + k[(sum>>11) & 3]);
218 memcpy( output, result, use_len );
228 #ifdef POLARSSL_DES_C
231 FCT_SUITE_BGN(test_suite_des)
234 FCT_TEST_BGN(des_encrypt_openssl_test_vector_1)
236 unsigned char key_str[100];
237 unsigned char src_str[100];
238 unsigned char dst_str[100];
239 unsigned char output[100];
242 memset(key_str, 0x00, 100);
243 memset(src_str, 0x00, 100);
244 memset(dst_str, 0x00, 100);
245 memset(output, 0x00, 100);
247 unhexify( key_str,
"0000000000000000" );
248 unhexify( src_str,
"0000000000000000" );
252 hexify( dst_str, output, 8 );
254 fct_chk( strcasecmp( (
char *) dst_str,
"8CA64DE9C1B123A7" ) == 0 );
259 FCT_TEST_BGN(des_encrypt_openssl_test_vector_2)
261 unsigned char key_str[100];
262 unsigned char src_str[100];
263 unsigned char dst_str[100];
264 unsigned char output[100];
267 memset(key_str, 0x00, 100);
268 memset(src_str, 0x00, 100);
269 memset(dst_str, 0x00, 100);
270 memset(output, 0x00, 100);
272 unhexify( key_str,
"FFFFFFFFFFFFFFFF" );
273 unhexify( src_str,
"FFFFFFFFFFFFFFFF" );
277 hexify( dst_str, output, 8 );
279 fct_chk( strcasecmp( (
char *) dst_str,
"7359B2163E4EDC58" ) == 0 );
284 FCT_TEST_BGN(des_encrypt_openssl_test_vector_3)
286 unsigned char key_str[100];
287 unsigned char src_str[100];
288 unsigned char dst_str[100];
289 unsigned char output[100];
292 memset(key_str, 0x00, 100);
293 memset(src_str, 0x00, 100);
294 memset(dst_str, 0x00, 100);
295 memset(output, 0x00, 100);
297 unhexify( key_str,
"3000000000000000" );
298 unhexify( src_str,
"1000000000000001" );
302 hexify( dst_str, output, 8 );
304 fct_chk( strcasecmp( (
char *) dst_str,
"958E6E627A05557B" ) == 0 );
309 FCT_TEST_BGN(des_encrypt_openssl_test_vector_4)
311 unsigned char key_str[100];
312 unsigned char src_str[100];
313 unsigned char dst_str[100];
314 unsigned char output[100];
317 memset(key_str, 0x00, 100);
318 memset(src_str, 0x00, 100);
319 memset(dst_str, 0x00, 100);
320 memset(output, 0x00, 100);
322 unhexify( key_str,
"1111111111111111" );
323 unhexify( src_str,
"1111111111111111" );
327 hexify( dst_str, output, 8 );
329 fct_chk( strcasecmp( (
char *) dst_str,
"F40379AB9E0EC533" ) == 0 );
334 FCT_TEST_BGN(des_encrypt_openssl_test_vector_5)
336 unsigned char key_str[100];
337 unsigned char src_str[100];
338 unsigned char dst_str[100];
339 unsigned char output[100];
342 memset(key_str, 0x00, 100);
343 memset(src_str, 0x00, 100);
344 memset(dst_str, 0x00, 100);
345 memset(output, 0x00, 100);
347 unhexify( key_str,
"0123456789ABCDEF" );
348 unhexify( src_str,
"1111111111111111" );
352 hexify( dst_str, output, 8 );
354 fct_chk( strcasecmp( (
char *) dst_str,
"17668DFC7292532D" ) == 0 );
359 FCT_TEST_BGN(des_encrypt_openssl_test_vector_6)
361 unsigned char key_str[100];
362 unsigned char src_str[100];
363 unsigned char dst_str[100];
364 unsigned char output[100];
367 memset(key_str, 0x00, 100);
368 memset(src_str, 0x00, 100);
369 memset(dst_str, 0x00, 100);
370 memset(output, 0x00, 100);
372 unhexify( key_str,
"1111111111111111" );
373 unhexify( src_str,
"0123456789ABCDEF" );
377 hexify( dst_str, output, 8 );
379 fct_chk( strcasecmp( (
char *) dst_str,
"8A5AE1F81AB8F2DD" ) == 0 );
384 FCT_TEST_BGN(des_encrypt_openssl_test_vector_7)
386 unsigned char key_str[100];
387 unsigned char src_str[100];
388 unsigned char dst_str[100];
389 unsigned char output[100];
392 memset(key_str, 0x00, 100);
393 memset(src_str, 0x00, 100);
394 memset(dst_str, 0x00, 100);
395 memset(output, 0x00, 100);
397 unhexify( key_str,
"0000000000000000" );
398 unhexify( src_str,
"0000000000000000" );
402 hexify( dst_str, output, 8 );
404 fct_chk( strcasecmp( (
char *) dst_str,
"8CA64DE9C1B123A7" ) == 0 );
409 FCT_TEST_BGN(des_encrypt_openssl_test_vector_8)
411 unsigned char key_str[100];
412 unsigned char src_str[100];
413 unsigned char dst_str[100];
414 unsigned char output[100];
417 memset(key_str, 0x00, 100);
418 memset(src_str, 0x00, 100);
419 memset(dst_str, 0x00, 100);
420 memset(output, 0x00, 100);
422 unhexify( key_str,
"FEDCBA9876543210" );
423 unhexify( src_str,
"0123456789ABCDEF" );
427 hexify( dst_str, output, 8 );
429 fct_chk( strcasecmp( (
char *) dst_str,
"ED39D950FA74BCC4" ) == 0 );
434 FCT_TEST_BGN(des_encrypt_openssl_test_vector_9)
436 unsigned char key_str[100];
437 unsigned char src_str[100];
438 unsigned char dst_str[100];
439 unsigned char output[100];
442 memset(key_str, 0x00, 100);
443 memset(src_str, 0x00, 100);
444 memset(dst_str, 0x00, 100);
445 memset(output, 0x00, 100);
447 unhexify( key_str,
"7CA110454A1A6E57" );
448 unhexify( src_str,
"01A1D6D039776742" );
452 hexify( dst_str, output, 8 );
454 fct_chk( strcasecmp( (
char *) dst_str,
"690F5B0D9A26939B" ) == 0 );
459 FCT_TEST_BGN(des_encrypt_openssl_test_vector_10)
461 unsigned char key_str[100];
462 unsigned char src_str[100];
463 unsigned char dst_str[100];
464 unsigned char output[100];
467 memset(key_str, 0x00, 100);
468 memset(src_str, 0x00, 100);
469 memset(dst_str, 0x00, 100);
470 memset(output, 0x00, 100);
472 unhexify( key_str,
"0131D9619DC1376E" );
473 unhexify( src_str,
"5CD54CA83DEF57DA" );
477 hexify( dst_str, output, 8 );
479 fct_chk( strcasecmp( (
char *) dst_str,
"7A389D10354BD271" ) == 0 );
484 FCT_TEST_BGN(des_encrypt_openssl_test_vector_11)
486 unsigned char key_str[100];
487 unsigned char src_str[100];
488 unsigned char dst_str[100];
489 unsigned char output[100];
492 memset(key_str, 0x00, 100);
493 memset(src_str, 0x00, 100);
494 memset(dst_str, 0x00, 100);
495 memset(output, 0x00, 100);
497 unhexify( key_str,
"07A1133E4A0B2686" );
498 unhexify( src_str,
"0248D43806F67172" );
502 hexify( dst_str, output, 8 );
504 fct_chk( strcasecmp( (
char *) dst_str,
"868EBB51CAB4599A" ) == 0 );
509 FCT_TEST_BGN(des_encrypt_openssl_test_vector_12)
511 unsigned char key_str[100];
512 unsigned char src_str[100];
513 unsigned char dst_str[100];
514 unsigned char output[100];
517 memset(key_str, 0x00, 100);
518 memset(src_str, 0x00, 100);
519 memset(dst_str, 0x00, 100);
520 memset(output, 0x00, 100);
522 unhexify( key_str,
"3849674C2602319E" );
523 unhexify( src_str,
"51454B582DDF440A" );
527 hexify( dst_str, output, 8 );
529 fct_chk( strcasecmp( (
char *) dst_str,
"7178876E01F19B2A" ) == 0 );
534 FCT_TEST_BGN(des_encrypt_openssl_test_vector_13)
536 unsigned char key_str[100];
537 unsigned char src_str[100];
538 unsigned char dst_str[100];
539 unsigned char output[100];
542 memset(key_str, 0x00, 100);
543 memset(src_str, 0x00, 100);
544 memset(dst_str, 0x00, 100);
545 memset(output, 0x00, 100);
547 unhexify( key_str,
"04B915BA43FEB5B6" );
548 unhexify( src_str,
"42FD443059577FA2" );
552 hexify( dst_str, output, 8 );
554 fct_chk( strcasecmp( (
char *) dst_str,
"AF37FB421F8C4095" ) == 0 );
559 FCT_TEST_BGN(des_encrypt_openssl_test_vector_14)
561 unsigned char key_str[100];
562 unsigned char src_str[100];
563 unsigned char dst_str[100];
564 unsigned char output[100];
567 memset(key_str, 0x00, 100);
568 memset(src_str, 0x00, 100);
569 memset(dst_str, 0x00, 100);
570 memset(output, 0x00, 100);
572 unhexify( key_str,
"0113B970FD34F2CE" );
573 unhexify( src_str,
"059B5E0851CF143A" );
577 hexify( dst_str, output, 8 );
579 fct_chk( strcasecmp( (
char *) dst_str,
"86A560F10EC6D85B" ) == 0 );
584 FCT_TEST_BGN(des_encrypt_openssl_test_vector_15)
586 unsigned char key_str[100];
587 unsigned char src_str[100];
588 unsigned char dst_str[100];
589 unsigned char output[100];
592 memset(key_str, 0x00, 100);
593 memset(src_str, 0x00, 100);
594 memset(dst_str, 0x00, 100);
595 memset(output, 0x00, 100);
597 unhexify( key_str,
"0170F175468FB5E6" );
598 unhexify( src_str,
"0756D8E0774761D2" );
602 hexify( dst_str, output, 8 );
604 fct_chk( strcasecmp( (
char *) dst_str,
"0CD3DA020021DC09" ) == 0 );
609 FCT_TEST_BGN(des_encrypt_openssl_test_vector_16)
611 unsigned char key_str[100];
612 unsigned char src_str[100];
613 unsigned char dst_str[100];
614 unsigned char output[100];
617 memset(key_str, 0x00, 100);
618 memset(src_str, 0x00, 100);
619 memset(dst_str, 0x00, 100);
620 memset(output, 0x00, 100);
622 unhexify( key_str,
"43297FAD38E373FE" );
623 unhexify( src_str,
"762514B829BF486A" );
627 hexify( dst_str, output, 8 );
629 fct_chk( strcasecmp( (
char *) dst_str,
"EA676B2CB7DB2B7A" ) == 0 );
634 FCT_TEST_BGN(des_encrypt_openssl_test_vector_17)
636 unsigned char key_str[100];
637 unsigned char src_str[100];
638 unsigned char dst_str[100];
639 unsigned char output[100];
642 memset(key_str, 0x00, 100);
643 memset(src_str, 0x00, 100);
644 memset(dst_str, 0x00, 100);
645 memset(output, 0x00, 100);
647 unhexify( key_str,
"07A7137045DA2A16" );
648 unhexify( src_str,
"3BDD119049372802" );
652 hexify( dst_str, output, 8 );
654 fct_chk( strcasecmp( (
char *) dst_str,
"DFD64A815CAF1A0F" ) == 0 );
659 FCT_TEST_BGN(des_encrypt_openssl_test_vector_18)
661 unsigned char key_str[100];
662 unsigned char src_str[100];
663 unsigned char dst_str[100];
664 unsigned char output[100];
667 memset(key_str, 0x00, 100);
668 memset(src_str, 0x00, 100);
669 memset(dst_str, 0x00, 100);
670 memset(output, 0x00, 100);
672 unhexify( key_str,
"04689104C2FD3B2F" );
673 unhexify( src_str,
"26955F6835AF609A" );
677 hexify( dst_str, output, 8 );
679 fct_chk( strcasecmp( (
char *) dst_str,
"5C513C9C4886C088" ) == 0 );
684 FCT_TEST_BGN(des_encrypt_openssl_test_vector_19)
686 unsigned char key_str[100];
687 unsigned char src_str[100];
688 unsigned char dst_str[100];
689 unsigned char output[100];
692 memset(key_str, 0x00, 100);
693 memset(src_str, 0x00, 100);
694 memset(dst_str, 0x00, 100);
695 memset(output, 0x00, 100);
697 unhexify( key_str,
"37D06BB516CB7546" );
698 unhexify( src_str,
"164D5E404F275232" );
702 hexify( dst_str, output, 8 );
704 fct_chk( strcasecmp( (
char *) dst_str,
"0A2AEEAE3FF4AB77" ) == 0 );
709 FCT_TEST_BGN(des_encrypt_openssl_test_vector_20)
711 unsigned char key_str[100];
712 unsigned char src_str[100];
713 unsigned char dst_str[100];
714 unsigned char output[100];
717 memset(key_str, 0x00, 100);
718 memset(src_str, 0x00, 100);
719 memset(dst_str, 0x00, 100);
720 memset(output, 0x00, 100);
722 unhexify( key_str,
"1F08260D1AC2465E" );
723 unhexify( src_str,
"6B056E18759F5CCA" );
727 hexify( dst_str, output, 8 );
729 fct_chk( strcasecmp( (
char *) dst_str,
"EF1BF03E5DFA575A" ) == 0 );
734 FCT_TEST_BGN(des_encrypt_openssl_test_vector_21)
736 unsigned char key_str[100];
737 unsigned char src_str[100];
738 unsigned char dst_str[100];
739 unsigned char output[100];
742 memset(key_str, 0x00, 100);
743 memset(src_str, 0x00, 100);
744 memset(dst_str, 0x00, 100);
745 memset(output, 0x00, 100);
747 unhexify( key_str,
"584023641ABA6176" );
748 unhexify( src_str,
"004BD6EF09176062" );
752 hexify( dst_str, output, 8 );
754 fct_chk( strcasecmp( (
char *) dst_str,
"88BF0DB6D70DEE56" ) == 0 );
759 FCT_TEST_BGN(des_encrypt_openssl_test_vector_22)
761 unsigned char key_str[100];
762 unsigned char src_str[100];
763 unsigned char dst_str[100];
764 unsigned char output[100];
767 memset(key_str, 0x00, 100);
768 memset(src_str, 0x00, 100);
769 memset(dst_str, 0x00, 100);
770 memset(output, 0x00, 100);
772 unhexify( key_str,
"025816164629B007" );
773 unhexify( src_str,
"480D39006EE762F2" );
777 hexify( dst_str, output, 8 );
779 fct_chk( strcasecmp( (
char *) dst_str,
"A1F9915541020B56" ) == 0 );
784 FCT_TEST_BGN(des_encrypt_openssl_test_vector_23)
786 unsigned char key_str[100];
787 unsigned char src_str[100];
788 unsigned char dst_str[100];
789 unsigned char output[100];
792 memset(key_str, 0x00, 100);
793 memset(src_str, 0x00, 100);
794 memset(dst_str, 0x00, 100);
795 memset(output, 0x00, 100);
797 unhexify( key_str,
"49793EBC79B3258F" );
798 unhexify( src_str,
"437540C8698F3CFA" );
802 hexify( dst_str, output, 8 );
804 fct_chk( strcasecmp( (
char *) dst_str,
"6FBF1CAFCFFD0556" ) == 0 );
809 FCT_TEST_BGN(des_encrypt_openssl_test_vector_24)
811 unsigned char key_str[100];
812 unsigned char src_str[100];
813 unsigned char dst_str[100];
814 unsigned char output[100];
817 memset(key_str, 0x00, 100);
818 memset(src_str, 0x00, 100);
819 memset(dst_str, 0x00, 100);
820 memset(output, 0x00, 100);
822 unhexify( key_str,
"4FB05E1515AB73A7" );
823 unhexify( src_str,
"072D43A077075292" );
827 hexify( dst_str, output, 8 );
829 fct_chk( strcasecmp( (
char *) dst_str,
"2F22E49BAB7CA1AC" ) == 0 );
834 FCT_TEST_BGN(des_encrypt_openssl_test_vector_25)
836 unsigned char key_str[100];
837 unsigned char src_str[100];
838 unsigned char dst_str[100];
839 unsigned char output[100];
842 memset(key_str, 0x00, 100);
843 memset(src_str, 0x00, 100);
844 memset(dst_str, 0x00, 100);
845 memset(output, 0x00, 100);
847 unhexify( key_str,
"49E95D6D4CA229BF" );
848 unhexify( src_str,
"02FE55778117F12A" );
852 hexify( dst_str, output, 8 );
854 fct_chk( strcasecmp( (
char *) dst_str,
"5A6B612CC26CCE4A" ) == 0 );
859 FCT_TEST_BGN(des_encrypt_openssl_test_vector_26)
861 unsigned char key_str[100];
862 unsigned char src_str[100];
863 unsigned char dst_str[100];
864 unsigned char output[100];
867 memset(key_str, 0x00, 100);
868 memset(src_str, 0x00, 100);
869 memset(dst_str, 0x00, 100);
870 memset(output, 0x00, 100);
872 unhexify( key_str,
"018310DC409B26D6" );
873 unhexify( src_str,
"1D9D5C5018F728C2" );
877 hexify( dst_str, output, 8 );
879 fct_chk( strcasecmp( (
char *) dst_str,
"5F4C038ED12B2E41" ) == 0 );
884 FCT_TEST_BGN(des_encrypt_openssl_test_vector_27)
886 unsigned char key_str[100];
887 unsigned char src_str[100];
888 unsigned char dst_str[100];
889 unsigned char output[100];
892 memset(key_str, 0x00, 100);
893 memset(src_str, 0x00, 100);
894 memset(dst_str, 0x00, 100);
895 memset(output, 0x00, 100);
897 unhexify( key_str,
"1C587F1C13924FEF" );
898 unhexify( src_str,
"305532286D6F295A" );
902 hexify( dst_str, output, 8 );
904 fct_chk( strcasecmp( (
char *) dst_str,
"63FAC0D034D9F793" ) == 0 );
909 FCT_TEST_BGN(des_encrypt_openssl_test_vector_28)
911 unsigned char key_str[100];
912 unsigned char src_str[100];
913 unsigned char dst_str[100];
914 unsigned char output[100];
917 memset(key_str, 0x00, 100);
918 memset(src_str, 0x00, 100);
919 memset(dst_str, 0x00, 100);
920 memset(output, 0x00, 100);
922 unhexify( key_str,
"0101010101010101" );
923 unhexify( src_str,
"0123456789ABCDEF" );
927 hexify( dst_str, output, 8 );
929 fct_chk( strcasecmp( (
char *) dst_str,
"617B3A0CE8F07100" ) == 0 );
934 FCT_TEST_BGN(des_encrypt_openssl_test_vector_29)
936 unsigned char key_str[100];
937 unsigned char src_str[100];
938 unsigned char dst_str[100];
939 unsigned char output[100];
942 memset(key_str, 0x00, 100);
943 memset(src_str, 0x00, 100);
944 memset(dst_str, 0x00, 100);
945 memset(output, 0x00, 100);
947 unhexify( key_str,
"1F1F1F1F0E0E0E0E" );
948 unhexify( src_str,
"0123456789ABCDEF" );
952 hexify( dst_str, output, 8 );
954 fct_chk( strcasecmp( (
char *) dst_str,
"DB958605F8C8C606" ) == 0 );
959 FCT_TEST_BGN(des_encrypt_openssl_test_vector_30)
961 unsigned char key_str[100];
962 unsigned char src_str[100];
963 unsigned char dst_str[100];
964 unsigned char output[100];
967 memset(key_str, 0x00, 100);
968 memset(src_str, 0x00, 100);
969 memset(dst_str, 0x00, 100);
970 memset(output, 0x00, 100);
972 unhexify( key_str,
"E0FEE0FEF1FEF1FE" );
973 unhexify( src_str,
"0123456789ABCDEF" );
977 hexify( dst_str, output, 8 );
979 fct_chk( strcasecmp( (
char *) dst_str,
"EDBFD1C66C29CCC7" ) == 0 );
984 FCT_TEST_BGN(des_encrypt_openssl_test_vector_31)
986 unsigned char key_str[100];
987 unsigned char src_str[100];
988 unsigned char dst_str[100];
989 unsigned char output[100];
992 memset(key_str, 0x00, 100);
993 memset(src_str, 0x00, 100);
994 memset(dst_str, 0x00, 100);
995 memset(output, 0x00, 100);
997 unhexify( key_str,
"0000000000000000" );
998 unhexify( src_str,
"FFFFFFFFFFFFFFFF" );
1002 hexify( dst_str, output, 8 );
1004 fct_chk( strcasecmp( (
char *) dst_str,
"355550B2150E2451" ) == 0 );
1009 FCT_TEST_BGN(des_encrypt_openssl_test_vector_32)
1011 unsigned char key_str[100];
1012 unsigned char src_str[100];
1013 unsigned char dst_str[100];
1014 unsigned char output[100];
1017 memset(key_str, 0x00, 100);
1018 memset(src_str, 0x00, 100);
1019 memset(dst_str, 0x00, 100);
1020 memset(output, 0x00, 100);
1022 unhexify( key_str,
"FFFFFFFFFFFFFFFF" );
1023 unhexify( src_str,
"0000000000000000" );
1027 hexify( dst_str, output, 8 );
1029 fct_chk( strcasecmp( (
char *) dst_str,
"CAAAAF4DEAF1DBAE" ) == 0 );
1034 FCT_TEST_BGN(des_encrypt_openssl_test_vector_33)
1036 unsigned char key_str[100];
1037 unsigned char src_str[100];
1038 unsigned char dst_str[100];
1039 unsigned char output[100];
1042 memset(key_str, 0x00, 100);
1043 memset(src_str, 0x00, 100);
1044 memset(dst_str, 0x00, 100);
1045 memset(output, 0x00, 100);
1047 unhexify( key_str,
"0123456789ABCDEF" );
1048 unhexify( src_str,
"0000000000000000" );
1052 hexify( dst_str, output, 8 );
1054 fct_chk( strcasecmp( (
char *) dst_str,
"D5D44FF720683D0D" ) == 0 );
1059 FCT_TEST_BGN(des_encrypt_openssl_test_vector_34)
1061 unsigned char key_str[100];
1062 unsigned char src_str[100];
1063 unsigned char dst_str[100];
1064 unsigned char output[100];
1067 memset(key_str, 0x00, 100);
1068 memset(src_str, 0x00, 100);
1069 memset(dst_str, 0x00, 100);
1070 memset(output, 0x00, 100);
1072 unhexify( key_str,
"FEDCBA9876543210" );
1073 unhexify( src_str,
"FFFFFFFFFFFFFFFF" );
1077 hexify( dst_str, output, 8 );
1079 fct_chk( strcasecmp( (
char *) dst_str,
"2A2BB008DF97C2F2" ) == 0 );
1084 FCT_TEST_BGN(des_decrypt_openssl_test_vector_1)
1086 unsigned char key_str[100];
1087 unsigned char src_str[100];
1088 unsigned char dst_str[100];
1089 unsigned char output[100];
1092 memset(key_str, 0x00, 100);
1093 memset(src_str, 0x00, 100);
1094 memset(dst_str, 0x00, 100);
1095 memset(output, 0x00, 100);
1097 unhexify( key_str,
"0000000000000000" );
1098 unhexify( src_str,
"8CA64DE9C1B123A7" );
1102 hexify( dst_str, output, 8 );
1104 fct_chk( strcasecmp( (
char *) dst_str,
"0000000000000000" ) == 0 );
1109 FCT_TEST_BGN(des_decrypt_openssl_test_vector_2)
1111 unsigned char key_str[100];
1112 unsigned char src_str[100];
1113 unsigned char dst_str[100];
1114 unsigned char output[100];
1117 memset(key_str, 0x00, 100);
1118 memset(src_str, 0x00, 100);
1119 memset(dst_str, 0x00, 100);
1120 memset(output, 0x00, 100);
1122 unhexify( key_str,
"FFFFFFFFFFFFFFFF" );
1123 unhexify( src_str,
"7359B2163E4EDC58" );
1127 hexify( dst_str, output, 8 );
1129 fct_chk( strcasecmp( (
char *) dst_str,
"FFFFFFFFFFFFFFFF" ) == 0 );
1134 FCT_TEST_BGN(des_decrypt_openssl_test_vector_3)
1136 unsigned char key_str[100];
1137 unsigned char src_str[100];
1138 unsigned char dst_str[100];
1139 unsigned char output[100];
1142 memset(key_str, 0x00, 100);
1143 memset(src_str, 0x00, 100);
1144 memset(dst_str, 0x00, 100);
1145 memset(output, 0x00, 100);
1147 unhexify( key_str,
"3000000000000000" );
1148 unhexify( src_str,
"958E6E627A05557B" );
1152 hexify( dst_str, output, 8 );
1154 fct_chk( strcasecmp( (
char *) dst_str,
"1000000000000001" ) == 0 );
1159 FCT_TEST_BGN(des_decrypt_openssl_test_vector_4)
1161 unsigned char key_str[100];
1162 unsigned char src_str[100];
1163 unsigned char dst_str[100];
1164 unsigned char output[100];
1167 memset(key_str, 0x00, 100);
1168 memset(src_str, 0x00, 100);
1169 memset(dst_str, 0x00, 100);
1170 memset(output, 0x00, 100);
1172 unhexify( key_str,
"1111111111111111" );
1173 unhexify( src_str,
"F40379AB9E0EC533" );
1177 hexify( dst_str, output, 8 );
1179 fct_chk( strcasecmp( (
char *) dst_str,
"1111111111111111" ) == 0 );
1184 FCT_TEST_BGN(des_decrypt_openssl_test_vector_5)
1186 unsigned char key_str[100];
1187 unsigned char src_str[100];
1188 unsigned char dst_str[100];
1189 unsigned char output[100];
1192 memset(key_str, 0x00, 100);
1193 memset(src_str, 0x00, 100);
1194 memset(dst_str, 0x00, 100);
1195 memset(output, 0x00, 100);
1197 unhexify( key_str,
"0123456789ABCDEF" );
1198 unhexify( src_str,
"17668DFC7292532D" );
1202 hexify( dst_str, output, 8 );
1204 fct_chk( strcasecmp( (
char *) dst_str,
"1111111111111111" ) == 0 );
1209 FCT_TEST_BGN(des_decrypt_openssl_test_vector_6)
1211 unsigned char key_str[100];
1212 unsigned char src_str[100];
1213 unsigned char dst_str[100];
1214 unsigned char output[100];
1217 memset(key_str, 0x00, 100);
1218 memset(src_str, 0x00, 100);
1219 memset(dst_str, 0x00, 100);
1220 memset(output, 0x00, 100);
1222 unhexify( key_str,
"1111111111111111" );
1223 unhexify( src_str,
"8A5AE1F81AB8F2DD" );
1227 hexify( dst_str, output, 8 );
1229 fct_chk( strcasecmp( (
char *) dst_str,
"0123456789ABCDEF" ) == 0 );
1234 FCT_TEST_BGN(des_decrypt_openssl_test_vector_7)
1236 unsigned char key_str[100];
1237 unsigned char src_str[100];
1238 unsigned char dst_str[100];
1239 unsigned char output[100];
1242 memset(key_str, 0x00, 100);
1243 memset(src_str, 0x00, 100);
1244 memset(dst_str, 0x00, 100);
1245 memset(output, 0x00, 100);
1247 unhexify( key_str,
"0000000000000000" );
1248 unhexify( src_str,
"8CA64DE9C1B123A7" );
1252 hexify( dst_str, output, 8 );
1254 fct_chk( strcasecmp( (
char *) dst_str,
"0000000000000000" ) == 0 );
1259 FCT_TEST_BGN(des_decrypt_openssl_test_vector_8)
1261 unsigned char key_str[100];
1262 unsigned char src_str[100];
1263 unsigned char dst_str[100];
1264 unsigned char output[100];
1267 memset(key_str, 0x00, 100);
1268 memset(src_str, 0x00, 100);
1269 memset(dst_str, 0x00, 100);
1270 memset(output, 0x00, 100);
1272 unhexify( key_str,
"FEDCBA9876543210" );
1273 unhexify( src_str,
"ED39D950FA74BCC4" );
1277 hexify( dst_str, output, 8 );
1279 fct_chk( strcasecmp( (
char *) dst_str,
"0123456789ABCDEF" ) == 0 );
1284 FCT_TEST_BGN(des_decrypt_openssl_test_vector_9)
1286 unsigned char key_str[100];
1287 unsigned char src_str[100];
1288 unsigned char dst_str[100];
1289 unsigned char output[100];
1292 memset(key_str, 0x00, 100);
1293 memset(src_str, 0x00, 100);
1294 memset(dst_str, 0x00, 100);
1295 memset(output, 0x00, 100);
1297 unhexify( key_str,
"7CA110454A1A6E57" );
1298 unhexify( src_str,
"690F5B0D9A26939B" );
1302 hexify( dst_str, output, 8 );
1304 fct_chk( strcasecmp( (
char *) dst_str,
"01A1D6D039776742" ) == 0 );
1309 FCT_TEST_BGN(des_decrypt_openssl_test_vector_10)
1311 unsigned char key_str[100];
1312 unsigned char src_str[100];
1313 unsigned char dst_str[100];
1314 unsigned char output[100];
1317 memset(key_str, 0x00, 100);
1318 memset(src_str, 0x00, 100);
1319 memset(dst_str, 0x00, 100);
1320 memset(output, 0x00, 100);
1322 unhexify( key_str,
"0131D9619DC1376E" );
1323 unhexify( src_str,
"7A389D10354BD271" );
1327 hexify( dst_str, output, 8 );
1329 fct_chk( strcasecmp( (
char *) dst_str,
"5CD54CA83DEF57DA" ) == 0 );
1334 FCT_TEST_BGN(des_decrypt_openssl_test_vector_11)
1336 unsigned char key_str[100];
1337 unsigned char src_str[100];
1338 unsigned char dst_str[100];
1339 unsigned char output[100];
1342 memset(key_str, 0x00, 100);
1343 memset(src_str, 0x00, 100);
1344 memset(dst_str, 0x00, 100);
1345 memset(output, 0x00, 100);
1347 unhexify( key_str,
"07A1133E4A0B2686" );
1348 unhexify( src_str,
"868EBB51CAB4599A" );
1352 hexify( dst_str, output, 8 );
1354 fct_chk( strcasecmp( (
char *) dst_str,
"0248D43806F67172" ) == 0 );
1359 FCT_TEST_BGN(des_decrypt_openssl_test_vector_12)
1361 unsigned char key_str[100];
1362 unsigned char src_str[100];
1363 unsigned char dst_str[100];
1364 unsigned char output[100];
1367 memset(key_str, 0x00, 100);
1368 memset(src_str, 0x00, 100);
1369 memset(dst_str, 0x00, 100);
1370 memset(output, 0x00, 100);
1372 unhexify( key_str,
"3849674C2602319E" );
1373 unhexify( src_str,
"7178876E01F19B2A" );
1377 hexify( dst_str, output, 8 );
1379 fct_chk( strcasecmp( (
char *) dst_str,
"51454B582DDF440A" ) == 0 );
1384 FCT_TEST_BGN(des_decrypt_openssl_test_vector_13)
1386 unsigned char key_str[100];
1387 unsigned char src_str[100];
1388 unsigned char dst_str[100];
1389 unsigned char output[100];
1392 memset(key_str, 0x00, 100);
1393 memset(src_str, 0x00, 100);
1394 memset(dst_str, 0x00, 100);
1395 memset(output, 0x00, 100);
1397 unhexify( key_str,
"04B915BA43FEB5B6" );
1398 unhexify( src_str,
"AF37FB421F8C4095" );
1402 hexify( dst_str, output, 8 );
1404 fct_chk( strcasecmp( (
char *) dst_str,
"42FD443059577FA2" ) == 0 );
1409 FCT_TEST_BGN(des_decrypt_openssl_test_vector_14)
1411 unsigned char key_str[100];
1412 unsigned char src_str[100];
1413 unsigned char dst_str[100];
1414 unsigned char output[100];
1417 memset(key_str, 0x00, 100);
1418 memset(src_str, 0x00, 100);
1419 memset(dst_str, 0x00, 100);
1420 memset(output, 0x00, 100);
1422 unhexify( key_str,
"0113B970FD34F2CE" );
1423 unhexify( src_str,
"86A560F10EC6D85B" );
1427 hexify( dst_str, output, 8 );
1429 fct_chk( strcasecmp( (
char *) dst_str,
"059B5E0851CF143A" ) == 0 );
1434 FCT_TEST_BGN(des_decrypt_openssl_test_vector_15)
1436 unsigned char key_str[100];
1437 unsigned char src_str[100];
1438 unsigned char dst_str[100];
1439 unsigned char output[100];
1442 memset(key_str, 0x00, 100);
1443 memset(src_str, 0x00, 100);
1444 memset(dst_str, 0x00, 100);
1445 memset(output, 0x00, 100);
1447 unhexify( key_str,
"0170F175468FB5E6" );
1448 unhexify( src_str,
"0CD3DA020021DC09" );
1452 hexify( dst_str, output, 8 );
1454 fct_chk( strcasecmp( (
char *) dst_str,
"0756D8E0774761D2" ) == 0 );
1459 FCT_TEST_BGN(des_decrypt_openssl_test_vector_16)
1461 unsigned char key_str[100];
1462 unsigned char src_str[100];
1463 unsigned char dst_str[100];
1464 unsigned char output[100];
1467 memset(key_str, 0x00, 100);
1468 memset(src_str, 0x00, 100);
1469 memset(dst_str, 0x00, 100);
1470 memset(output, 0x00, 100);
1472 unhexify( key_str,
"43297FAD38E373FE" );
1473 unhexify( src_str,
"EA676B2CB7DB2B7A" );
1477 hexify( dst_str, output, 8 );
1479 fct_chk( strcasecmp( (
char *) dst_str,
"762514B829BF486A" ) == 0 );
1484 FCT_TEST_BGN(des_decrypt_openssl_test_vector_17)
1486 unsigned char key_str[100];
1487 unsigned char src_str[100];
1488 unsigned char dst_str[100];
1489 unsigned char output[100];
1492 memset(key_str, 0x00, 100);
1493 memset(src_str, 0x00, 100);
1494 memset(dst_str, 0x00, 100);
1495 memset(output, 0x00, 100);
1497 unhexify( key_str,
"07A7137045DA2A16" );
1498 unhexify( src_str,
"DFD64A815CAF1A0F" );
1502 hexify( dst_str, output, 8 );
1504 fct_chk( strcasecmp( (
char *) dst_str,
"3BDD119049372802" ) == 0 );
1509 FCT_TEST_BGN(des_decrypt_openssl_test_vector_18)
1511 unsigned char key_str[100];
1512 unsigned char src_str[100];
1513 unsigned char dst_str[100];
1514 unsigned char output[100];
1517 memset(key_str, 0x00, 100);
1518 memset(src_str, 0x00, 100);
1519 memset(dst_str, 0x00, 100);
1520 memset(output, 0x00, 100);
1522 unhexify( key_str,
"04689104C2FD3B2F" );
1523 unhexify( src_str,
"5C513C9C4886C088" );
1527 hexify( dst_str, output, 8 );
1529 fct_chk( strcasecmp( (
char *) dst_str,
"26955F6835AF609A" ) == 0 );
1534 FCT_TEST_BGN(des_decrypt_openssl_test_vector_19)
1536 unsigned char key_str[100];
1537 unsigned char src_str[100];
1538 unsigned char dst_str[100];
1539 unsigned char output[100];
1542 memset(key_str, 0x00, 100);
1543 memset(src_str, 0x00, 100);
1544 memset(dst_str, 0x00, 100);
1545 memset(output, 0x00, 100);
1547 unhexify( key_str,
"37D06BB516CB7546" );
1548 unhexify( src_str,
"0A2AEEAE3FF4AB77" );
1552 hexify( dst_str, output, 8 );
1554 fct_chk( strcasecmp( (
char *) dst_str,
"164D5E404F275232" ) == 0 );
1559 FCT_TEST_BGN(des_decrypt_openssl_test_vector_20)
1561 unsigned char key_str[100];
1562 unsigned char src_str[100];
1563 unsigned char dst_str[100];
1564 unsigned char output[100];
1567 memset(key_str, 0x00, 100);
1568 memset(src_str, 0x00, 100);
1569 memset(dst_str, 0x00, 100);
1570 memset(output, 0x00, 100);
1572 unhexify( key_str,
"1F08260D1AC2465E" );
1573 unhexify( src_str,
"EF1BF03E5DFA575A" );
1577 hexify( dst_str, output, 8 );
1579 fct_chk( strcasecmp( (
char *) dst_str,
"6B056E18759F5CCA" ) == 0 );
1584 FCT_TEST_BGN(des_decrypt_openssl_test_vector_21)
1586 unsigned char key_str[100];
1587 unsigned char src_str[100];
1588 unsigned char dst_str[100];
1589 unsigned char output[100];
1592 memset(key_str, 0x00, 100);
1593 memset(src_str, 0x00, 100);
1594 memset(dst_str, 0x00, 100);
1595 memset(output, 0x00, 100);
1597 unhexify( key_str,
"584023641ABA6176" );
1598 unhexify( src_str,
"88BF0DB6D70DEE56" );
1602 hexify( dst_str, output, 8 );
1604 fct_chk( strcasecmp( (
char *) dst_str,
"004BD6EF09176062" ) == 0 );
1609 FCT_TEST_BGN(des_decrypt_openssl_test_vector_22)
1611 unsigned char key_str[100];
1612 unsigned char src_str[100];
1613 unsigned char dst_str[100];
1614 unsigned char output[100];
1617 memset(key_str, 0x00, 100);
1618 memset(src_str, 0x00, 100);
1619 memset(dst_str, 0x00, 100);
1620 memset(output, 0x00, 100);
1622 unhexify( key_str,
"025816164629B007" );
1623 unhexify( src_str,
"A1F9915541020B56" );
1627 hexify( dst_str, output, 8 );
1629 fct_chk( strcasecmp( (
char *) dst_str,
"480D39006EE762F2" ) == 0 );
1634 FCT_TEST_BGN(des_decrypt_openssl_test_vector_23)
1636 unsigned char key_str[100];
1637 unsigned char src_str[100];
1638 unsigned char dst_str[100];
1639 unsigned char output[100];
1642 memset(key_str, 0x00, 100);
1643 memset(src_str, 0x00, 100);
1644 memset(dst_str, 0x00, 100);
1645 memset(output, 0x00, 100);
1647 unhexify( key_str,
"49793EBC79B3258F" );
1648 unhexify( src_str,
"6FBF1CAFCFFD0556" );
1652 hexify( dst_str, output, 8 );
1654 fct_chk( strcasecmp( (
char *) dst_str,
"437540C8698F3CFA" ) == 0 );
1659 FCT_TEST_BGN(des_decrypt_openssl_test_vector_24)
1661 unsigned char key_str[100];
1662 unsigned char src_str[100];
1663 unsigned char dst_str[100];
1664 unsigned char output[100];
1667 memset(key_str, 0x00, 100);
1668 memset(src_str, 0x00, 100);
1669 memset(dst_str, 0x00, 100);
1670 memset(output, 0x00, 100);
1672 unhexify( key_str,
"4FB05E1515AB73A7" );
1673 unhexify( src_str,
"2F22E49BAB7CA1AC" );
1677 hexify( dst_str, output, 8 );
1679 fct_chk( strcasecmp( (
char *) dst_str,
"072D43A077075292" ) == 0 );
1684 FCT_TEST_BGN(des_decrypt_openssl_test_vector_25)
1686 unsigned char key_str[100];
1687 unsigned char src_str[100];
1688 unsigned char dst_str[100];
1689 unsigned char output[100];
1692 memset(key_str, 0x00, 100);
1693 memset(src_str, 0x00, 100);
1694 memset(dst_str, 0x00, 100);
1695 memset(output, 0x00, 100);
1697 unhexify( key_str,
"49E95D6D4CA229BF" );
1698 unhexify( src_str,
"5A6B612CC26CCE4A" );
1702 hexify( dst_str, output, 8 );
1704 fct_chk( strcasecmp( (
char *) dst_str,
"02FE55778117F12A" ) == 0 );
1709 FCT_TEST_BGN(des_decrypt_openssl_test_vector_26)
1711 unsigned char key_str[100];
1712 unsigned char src_str[100];
1713 unsigned char dst_str[100];
1714 unsigned char output[100];
1717 memset(key_str, 0x00, 100);
1718 memset(src_str, 0x00, 100);
1719 memset(dst_str, 0x00, 100);
1720 memset(output, 0x00, 100);
1722 unhexify( key_str,
"018310DC409B26D6" );
1723 unhexify( src_str,
"5F4C038ED12B2E41" );
1727 hexify( dst_str, output, 8 );
1729 fct_chk( strcasecmp( (
char *) dst_str,
"1D9D5C5018F728C2" ) == 0 );
1734 FCT_TEST_BGN(des_decrypt_openssl_test_vector_27)
1736 unsigned char key_str[100];
1737 unsigned char src_str[100];
1738 unsigned char dst_str[100];
1739 unsigned char output[100];
1742 memset(key_str, 0x00, 100);
1743 memset(src_str, 0x00, 100);
1744 memset(dst_str, 0x00, 100);
1745 memset(output, 0x00, 100);
1747 unhexify( key_str,
"1C587F1C13924FEF" );
1748 unhexify( src_str,
"63FAC0D034D9F793" );
1752 hexify( dst_str, output, 8 );
1754 fct_chk( strcasecmp( (
char *) dst_str,
"305532286D6F295A" ) == 0 );
1759 FCT_TEST_BGN(des_decrypt_openssl_test_vector_28)
1761 unsigned char key_str[100];
1762 unsigned char src_str[100];
1763 unsigned char dst_str[100];
1764 unsigned char output[100];
1767 memset(key_str, 0x00, 100);
1768 memset(src_str, 0x00, 100);
1769 memset(dst_str, 0x00, 100);
1770 memset(output, 0x00, 100);
1772 unhexify( key_str,
"0101010101010101" );
1773 unhexify( src_str,
"617B3A0CE8F07100" );
1777 hexify( dst_str, output, 8 );
1779 fct_chk( strcasecmp( (
char *) dst_str,
"0123456789ABCDEF" ) == 0 );
1784 FCT_TEST_BGN(des_decrypt_openssl_test_vector_29)
1786 unsigned char key_str[100];
1787 unsigned char src_str[100];
1788 unsigned char dst_str[100];
1789 unsigned char output[100];
1792 memset(key_str, 0x00, 100);
1793 memset(src_str, 0x00, 100);
1794 memset(dst_str, 0x00, 100);
1795 memset(output, 0x00, 100);
1797 unhexify( key_str,
"1F1F1F1F0E0E0E0E" );
1798 unhexify( src_str,
"DB958605F8C8C606" );
1802 hexify( dst_str, output, 8 );
1804 fct_chk( strcasecmp( (
char *) dst_str,
"0123456789ABCDEF" ) == 0 );
1809 FCT_TEST_BGN(des_decrypt_openssl_test_vector_30)
1811 unsigned char key_str[100];
1812 unsigned char src_str[100];
1813 unsigned char dst_str[100];
1814 unsigned char output[100];
1817 memset(key_str, 0x00, 100);
1818 memset(src_str, 0x00, 100);
1819 memset(dst_str, 0x00, 100);
1820 memset(output, 0x00, 100);
1822 unhexify( key_str,
"E0FEE0FEF1FEF1FE" );
1823 unhexify( src_str,
"EDBFD1C66C29CCC7" );
1827 hexify( dst_str, output, 8 );
1829 fct_chk( strcasecmp( (
char *) dst_str,
"0123456789ABCDEF" ) == 0 );
1834 FCT_TEST_BGN(des_decrypt_openssl_test_vector_31)
1836 unsigned char key_str[100];
1837 unsigned char src_str[100];
1838 unsigned char dst_str[100];
1839 unsigned char output[100];
1842 memset(key_str, 0x00, 100);
1843 memset(src_str, 0x00, 100);
1844 memset(dst_str, 0x00, 100);
1845 memset(output, 0x00, 100);
1847 unhexify( key_str,
"0000000000000000" );
1848 unhexify( src_str,
"355550B2150E2451" );
1852 hexify( dst_str, output, 8 );
1854 fct_chk( strcasecmp( (
char *) dst_str,
"FFFFFFFFFFFFFFFF" ) == 0 );
1859 FCT_TEST_BGN(des_decrypt_openssl_test_vector_32)
1861 unsigned char key_str[100];
1862 unsigned char src_str[100];
1863 unsigned char dst_str[100];
1864 unsigned char output[100];
1867 memset(key_str, 0x00, 100);
1868 memset(src_str, 0x00, 100);
1869 memset(dst_str, 0x00, 100);
1870 memset(output, 0x00, 100);
1872 unhexify( key_str,
"FFFFFFFFFFFFFFFF" );
1873 unhexify( src_str,
"CAAAAF4DEAF1DBAE" );
1877 hexify( dst_str, output, 8 );
1879 fct_chk( strcasecmp( (
char *) dst_str,
"0000000000000000" ) == 0 );
1884 FCT_TEST_BGN(des_decrypt_openssl_test_vector_33)
1886 unsigned char key_str[100];
1887 unsigned char src_str[100];
1888 unsigned char dst_str[100];
1889 unsigned char output[100];
1892 memset(key_str, 0x00, 100);
1893 memset(src_str, 0x00, 100);
1894 memset(dst_str, 0x00, 100);
1895 memset(output, 0x00, 100);
1897 unhexify( key_str,
"0123456789ABCDEF" );
1898 unhexify( src_str,
"D5D44FF720683D0D" );
1902 hexify( dst_str, output, 8 );
1904 fct_chk( strcasecmp( (
char *) dst_str,
"0000000000000000" ) == 0 );
1909 FCT_TEST_BGN(des_decrypt_openssl_test_vector_34)
1911 unsigned char key_str[100];
1912 unsigned char src_str[100];
1913 unsigned char dst_str[100];
1914 unsigned char output[100];
1917 memset(key_str, 0x00, 100);
1918 memset(src_str, 0x00, 100);
1919 memset(dst_str, 0x00, 100);
1920 memset(output, 0x00, 100);
1922 unhexify( key_str,
"FEDCBA9876543210" );
1923 unhexify( src_str,
"2A2BB008DF97C2F2" );
1927 hexify( dst_str, output, 8 );
1929 fct_chk( strcasecmp( (
char *) dst_str,
"FFFFFFFFFFFFFFFF" ) == 0 );
1934 FCT_TEST_BGN(des_cbc_encrypt_openssl_test_vector_1)
1936 unsigned char key_str[100];
1937 unsigned char iv_str[100];
1938 unsigned char src_str[100];
1939 unsigned char dst_str[100];
1940 unsigned char output[100];
1944 memset(key_str, 0x00, 100);
1945 memset(iv_str, 0x00, 100);
1946 memset(src_str, 0x00, 100);
1947 memset(dst_str, 0x00, 100);
1948 memset(output, 0x00, 100);
1950 unhexify( key_str,
"0123456789abcdef" );
1951 unhexify( iv_str,
"fedcba9876543210" );
1952 src_len =
unhexify( src_str,
"37363534333231204E6F77206973207468652074696D6520" );
1958 hexify( dst_str, output, src_len );
1960 fct_chk( strcasecmp( (
char *) dst_str,
"ccd173ffab2039f4acd8aefddfd8a1eb468e91157888ba68" ) == 0 );
1966 FCT_TEST_BGN(des_cbc_decrypt_openssl_test_vector_1)
1968 unsigned char key_str[100];
1969 unsigned char iv_str[100];
1970 unsigned char src_str[100];
1971 unsigned char dst_str[100];
1972 unsigned char output[100];
1976 memset(key_str, 0x00, 100);
1977 memset(iv_str, 0x00, 100);
1978 memset(src_str, 0x00, 100);
1979 memset(dst_str, 0x00, 100);
1980 memset(output, 0x00, 100);
1982 unhexify( key_str,
"0123456789abcdef" );
1983 unhexify( iv_str,
"fedcba9876543210" );
1984 src_len =
unhexify( src_str,
"ccd173ffab2039f4acd8aefddfd8a1eb468e91157888ba68" );
1990 hexify( dst_str, output, src_len );
1992 fct_chk( strcasecmp( (
char *) dst_str,
"37363534333231204E6F77206973207468652074696D6520" ) == 0 );
1998 FCT_TEST_BGN(3des_ecb_2key_encrypt_openssl_test_vector_1)
2000 unsigned char key_str[100];
2001 unsigned char src_str[100];
2002 unsigned char dst_str[100];
2003 unsigned char output[100];
2006 memset(key_str, 0x00, 100);
2007 memset(src_str, 0x00, 100);
2008 memset(dst_str, 0x00, 100);
2009 memset(output, 0x00, 100);
2011 unhexify( key_str,
"0000000000000000FFFFFFFFFFFFFFFF" );
2012 unhexify( src_str,
"0000000000000000" );
2022 hexify( dst_str, output, 8 );
2024 fct_chk( strcasecmp( (
char *) dst_str,
"9295B59BB384736E" ) == 0 );
2029 FCT_TEST_BGN(3des_ecb_2key_encrypt_openssl_test_vector_2)
2031 unsigned char key_str[100];
2032 unsigned char src_str[100];
2033 unsigned char dst_str[100];
2034 unsigned char output[100];
2037 memset(key_str, 0x00, 100);
2038 memset(src_str, 0x00, 100);
2039 memset(dst_str, 0x00, 100);
2040 memset(output, 0x00, 100);
2042 unhexify( key_str,
"FFFFFFFFFFFFFFFF3000000000000000" );
2043 unhexify( src_str,
"FFFFFFFFFFFFFFFF" );
2053 hexify( dst_str, output, 8 );
2055 fct_chk( strcasecmp( (
char *) dst_str,
"199E9D6DF39AA816" ) == 0 );
2060 FCT_TEST_BGN(3des_ecb_2key_decrypt_openssl_test_vector_1)
2062 unsigned char key_str[100];
2063 unsigned char src_str[100];
2064 unsigned char dst_str[100];
2065 unsigned char output[100];
2068 memset(key_str, 0x00, 100);
2069 memset(src_str, 0x00, 100);
2070 memset(dst_str, 0x00, 100);
2071 memset(output, 0x00, 100);
2073 unhexify( key_str,
"0000000000000000FFFFFFFFFFFFFFFF" );
2074 unhexify( src_str,
"9295B59BB384736E" );
2084 hexify( dst_str, output, 8 );
2086 fct_chk( strcasecmp( (
char *) dst_str,
"0000000000000000" ) == 0 );
2091 FCT_TEST_BGN(3des_ecb_2key_decrypt_openssl_test_vector_2)
2093 unsigned char key_str[100];
2094 unsigned char src_str[100];
2095 unsigned char dst_str[100];
2096 unsigned char output[100];
2099 memset(key_str, 0x00, 100);
2100 memset(src_str, 0x00, 100);
2101 memset(dst_str, 0x00, 100);
2102 memset(output, 0x00, 100);
2104 unhexify( key_str,
"FFFFFFFFFFFFFFFF3000000000000000" );
2105 unhexify( src_str,
"199E9D6DF39AA816" );
2115 hexify( dst_str, output, 8 );
2117 fct_chk( strcasecmp( (
char *) dst_str,
"FFFFFFFFFFFFFFFF" ) == 0 );
2122 FCT_TEST_BGN(3des_cbc_3key_encrypt_openssl_test_vector_1)
2124 unsigned char key_str[100];
2125 unsigned char iv_str[100];
2126 unsigned char src_str[100];
2127 unsigned char dst_str[100];
2128 unsigned char output[100];
2132 memset(key_str, 0x00, 100);
2133 memset(iv_str, 0x00, 100);
2134 memset(src_str, 0x00, 100);
2135 memset(dst_str, 0x00, 100);
2136 memset(output, 0x00, 100);
2138 unhexify( key_str,
"0123456789abcdeff1e0d3c2b5a49786fedcba9876543210" );
2139 unhexify( iv_str,
"fedcba9876543210" );
2140 src_len =
unhexify( src_str,
"37363534333231204E6F77206973207468652074696D6520" );
2153 hexify( dst_str, output, src_len );
2155 fct_chk( strcasecmp( (
char *) dst_str,
"3FE301C962AC01D02213763C1CBD4CDC799657C064ECF5D4" ) == 0 );
2161 FCT_TEST_BGN(3des_cbc_3key_decrypt_openssl_test_vector_1)
2163 unsigned char key_str[100];
2164 unsigned char iv_str[100];
2165 unsigned char src_str[100];
2166 unsigned char dst_str[100];
2167 unsigned char output[100];
2171 memset(key_str, 0x00, 100);
2172 memset(iv_str, 0x00, 100);
2173 memset(src_str, 0x00, 100);
2174 memset(dst_str, 0x00, 100);
2175 memset(output, 0x00, 100);
2177 unhexify( key_str,
"0123456789abcdeff1e0d3c2b5a49786fedcba9876543210" );
2178 unhexify( iv_str,
"fedcba9876543210" );
2179 src_len =
unhexify( src_str,
"3FE301C962AC01D02213763C1CBD4CDC799657C064ECF5D4" );
2192 hexify( dst_str, output, src_len );
2194 fct_chk( strcasecmp( (
char *) dst_str,
"37363534333231204E6F77206973207468652074696D6520" ) == 0 );
2200 FCT_TEST_BGN(des_cbc_encrypt_invalid_input_length)
2202 unsigned char key_str[100];
2203 unsigned char iv_str[100];
2204 unsigned char src_str[100];
2205 unsigned char dst_str[100];
2206 unsigned char output[100];
2210 memset(key_str, 0x00, 100);
2211 memset(iv_str, 0x00, 100);
2212 memset(src_str, 0x00, 100);
2213 memset(dst_str, 0x00, 100);
2214 memset(output, 0x00, 100);
2216 unhexify( key_str,
"0123456789abcdef" );
2217 unhexify( iv_str,
"fedcba9876543210" );
2218 src_len =
unhexify( src_str,
"37363534333231204E6F77206973207468652074696D65" );
2224 hexify( dst_str, output, src_len );
2226 fct_chk( strcasecmp( (
char *) dst_str,
"" ) == 0 );
2232 FCT_TEST_BGN(3des_cbc_3key_encrypt_invalid_input_length)
2234 unsigned char key_str[100];
2235 unsigned char iv_str[100];
2236 unsigned char src_str[100];
2237 unsigned char dst_str[100];
2238 unsigned char output[100];
2242 memset(key_str, 0x00, 100);
2243 memset(iv_str, 0x00, 100);
2244 memset(src_str, 0x00, 100);
2245 memset(dst_str, 0x00, 100);
2246 memset(output, 0x00, 100);
2248 unhexify( key_str,
"0123456789abcdeff1e0d3c2b5a49786fedcba9876543210" );
2249 unhexify( iv_str,
"fedcba9876543210" );
2250 src_len =
unhexify( src_str,
"37363534333231204E6F77206973207468652074696D65" );
2263 hexify( dst_str, output, src_len );
2265 fct_chk( strcasecmp( (
char *) dst_str,
"" ) == 0 );
2271 FCT_TEST_BGN(run_through_parity_bit_tests)
2275 unsigned int parity;
2282 for( i = 0; i < 32; i++ )
2284 for( j = 0; j < 8; j++ )
2293 for( j = 0; j < 8; j++ )
2295 parity = key[j] ^ ( key[j] >> 4 );
2313 #ifdef POLARSSL_SELF_TEST
2315 FCT_TEST_BGN(des_selftest)