9 typedef UINT32 uint32_t;
18 #define GET_ULONG_BE(n,b,i) \
20 (n) = ( (unsigned long) (b)[(i) ] << 24 ) \
21 | ( (unsigned long) (b)[(i) + 1] << 16 ) \
22 | ( (unsigned long) (b)[(i) + 2] << 8 ) \
23 | ( (unsigned long) (b)[(i) + 3] ); \
28 #define PUT_ULONG_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_DES_C
232 FCT_SUITE_BGN(test_suite_des)
235 FCT_TEST_BGN(des_encrypt_openssl_test_vector_1)
237 unsigned char key_str[100];
238 unsigned char src_str[100];
239 unsigned char dst_str[100];
240 unsigned char output[100];
243 memset(key_str, 0x00, 100);
244 memset(src_str, 0x00, 100);
245 memset(dst_str, 0x00, 100);
246 memset(output, 0x00, 100);
248 unhexify( key_str,
"0000000000000000" );
249 unhexify( src_str,
"0000000000000000" );
253 hexify( dst_str, output, 8 );
255 fct_chk( strcasecmp( (
char *) dst_str,
"8CA64DE9C1B123A7" ) == 0 );
260 FCT_TEST_BGN(des_encrypt_openssl_test_vector_2)
262 unsigned char key_str[100];
263 unsigned char src_str[100];
264 unsigned char dst_str[100];
265 unsigned char output[100];
268 memset(key_str, 0x00, 100);
269 memset(src_str, 0x00, 100);
270 memset(dst_str, 0x00, 100);
271 memset(output, 0x00, 100);
273 unhexify( key_str,
"FFFFFFFFFFFFFFFF" );
274 unhexify( src_str,
"FFFFFFFFFFFFFFFF" );
278 hexify( dst_str, output, 8 );
280 fct_chk( strcasecmp( (
char *) dst_str,
"7359B2163E4EDC58" ) == 0 );
285 FCT_TEST_BGN(des_encrypt_openssl_test_vector_3)
287 unsigned char key_str[100];
288 unsigned char src_str[100];
289 unsigned char dst_str[100];
290 unsigned char output[100];
293 memset(key_str, 0x00, 100);
294 memset(src_str, 0x00, 100);
295 memset(dst_str, 0x00, 100);
296 memset(output, 0x00, 100);
298 unhexify( key_str,
"3000000000000000" );
299 unhexify( src_str,
"1000000000000001" );
303 hexify( dst_str, output, 8 );
305 fct_chk( strcasecmp( (
char *) dst_str,
"958E6E627A05557B" ) == 0 );
310 FCT_TEST_BGN(des_encrypt_openssl_test_vector_4)
312 unsigned char key_str[100];
313 unsigned char src_str[100];
314 unsigned char dst_str[100];
315 unsigned char output[100];
318 memset(key_str, 0x00, 100);
319 memset(src_str, 0x00, 100);
320 memset(dst_str, 0x00, 100);
321 memset(output, 0x00, 100);
323 unhexify( key_str,
"1111111111111111" );
324 unhexify( src_str,
"1111111111111111" );
328 hexify( dst_str, output, 8 );
330 fct_chk( strcasecmp( (
char *) dst_str,
"F40379AB9E0EC533" ) == 0 );
335 FCT_TEST_BGN(des_encrypt_openssl_test_vector_5)
337 unsigned char key_str[100];
338 unsigned char src_str[100];
339 unsigned char dst_str[100];
340 unsigned char output[100];
343 memset(key_str, 0x00, 100);
344 memset(src_str, 0x00, 100);
345 memset(dst_str, 0x00, 100);
346 memset(output, 0x00, 100);
348 unhexify( key_str,
"0123456789ABCDEF" );
349 unhexify( src_str,
"1111111111111111" );
353 hexify( dst_str, output, 8 );
355 fct_chk( strcasecmp( (
char *) dst_str,
"17668DFC7292532D" ) == 0 );
360 FCT_TEST_BGN(des_encrypt_openssl_test_vector_6)
362 unsigned char key_str[100];
363 unsigned char src_str[100];
364 unsigned char dst_str[100];
365 unsigned char output[100];
368 memset(key_str, 0x00, 100);
369 memset(src_str, 0x00, 100);
370 memset(dst_str, 0x00, 100);
371 memset(output, 0x00, 100);
373 unhexify( key_str,
"1111111111111111" );
374 unhexify( src_str,
"0123456789ABCDEF" );
378 hexify( dst_str, output, 8 );
380 fct_chk( strcasecmp( (
char *) dst_str,
"8A5AE1F81AB8F2DD" ) == 0 );
385 FCT_TEST_BGN(des_encrypt_openssl_test_vector_7)
387 unsigned char key_str[100];
388 unsigned char src_str[100];
389 unsigned char dst_str[100];
390 unsigned char output[100];
393 memset(key_str, 0x00, 100);
394 memset(src_str, 0x00, 100);
395 memset(dst_str, 0x00, 100);
396 memset(output, 0x00, 100);
398 unhexify( key_str,
"0000000000000000" );
399 unhexify( src_str,
"0000000000000000" );
403 hexify( dst_str, output, 8 );
405 fct_chk( strcasecmp( (
char *) dst_str,
"8CA64DE9C1B123A7" ) == 0 );
410 FCT_TEST_BGN(des_encrypt_openssl_test_vector_8)
412 unsigned char key_str[100];
413 unsigned char src_str[100];
414 unsigned char dst_str[100];
415 unsigned char output[100];
418 memset(key_str, 0x00, 100);
419 memset(src_str, 0x00, 100);
420 memset(dst_str, 0x00, 100);
421 memset(output, 0x00, 100);
423 unhexify( key_str,
"FEDCBA9876543210" );
424 unhexify( src_str,
"0123456789ABCDEF" );
428 hexify( dst_str, output, 8 );
430 fct_chk( strcasecmp( (
char *) dst_str,
"ED39D950FA74BCC4" ) == 0 );
435 FCT_TEST_BGN(des_encrypt_openssl_test_vector_9)
437 unsigned char key_str[100];
438 unsigned char src_str[100];
439 unsigned char dst_str[100];
440 unsigned char output[100];
443 memset(key_str, 0x00, 100);
444 memset(src_str, 0x00, 100);
445 memset(dst_str, 0x00, 100);
446 memset(output, 0x00, 100);
448 unhexify( key_str,
"7CA110454A1A6E57" );
449 unhexify( src_str,
"01A1D6D039776742" );
453 hexify( dst_str, output, 8 );
455 fct_chk( strcasecmp( (
char *) dst_str,
"690F5B0D9A26939B" ) == 0 );
460 FCT_TEST_BGN(des_encrypt_openssl_test_vector_10)
462 unsigned char key_str[100];
463 unsigned char src_str[100];
464 unsigned char dst_str[100];
465 unsigned char output[100];
468 memset(key_str, 0x00, 100);
469 memset(src_str, 0x00, 100);
470 memset(dst_str, 0x00, 100);
471 memset(output, 0x00, 100);
473 unhexify( key_str,
"0131D9619DC1376E" );
474 unhexify( src_str,
"5CD54CA83DEF57DA" );
478 hexify( dst_str, output, 8 );
480 fct_chk( strcasecmp( (
char *) dst_str,
"7A389D10354BD271" ) == 0 );
485 FCT_TEST_BGN(des_encrypt_openssl_test_vector_11)
487 unsigned char key_str[100];
488 unsigned char src_str[100];
489 unsigned char dst_str[100];
490 unsigned char output[100];
493 memset(key_str, 0x00, 100);
494 memset(src_str, 0x00, 100);
495 memset(dst_str, 0x00, 100);
496 memset(output, 0x00, 100);
498 unhexify( key_str,
"07A1133E4A0B2686" );
499 unhexify( src_str,
"0248D43806F67172" );
503 hexify( dst_str, output, 8 );
505 fct_chk( strcasecmp( (
char *) dst_str,
"868EBB51CAB4599A" ) == 0 );
510 FCT_TEST_BGN(des_encrypt_openssl_test_vector_12)
512 unsigned char key_str[100];
513 unsigned char src_str[100];
514 unsigned char dst_str[100];
515 unsigned char output[100];
518 memset(key_str, 0x00, 100);
519 memset(src_str, 0x00, 100);
520 memset(dst_str, 0x00, 100);
521 memset(output, 0x00, 100);
523 unhexify( key_str,
"3849674C2602319E" );
524 unhexify( src_str,
"51454B582DDF440A" );
528 hexify( dst_str, output, 8 );
530 fct_chk( strcasecmp( (
char *) dst_str,
"7178876E01F19B2A" ) == 0 );
535 FCT_TEST_BGN(des_encrypt_openssl_test_vector_13)
537 unsigned char key_str[100];
538 unsigned char src_str[100];
539 unsigned char dst_str[100];
540 unsigned char output[100];
543 memset(key_str, 0x00, 100);
544 memset(src_str, 0x00, 100);
545 memset(dst_str, 0x00, 100);
546 memset(output, 0x00, 100);
548 unhexify( key_str,
"04B915BA43FEB5B6" );
549 unhexify( src_str,
"42FD443059577FA2" );
553 hexify( dst_str, output, 8 );
555 fct_chk( strcasecmp( (
char *) dst_str,
"AF37FB421F8C4095" ) == 0 );
560 FCT_TEST_BGN(des_encrypt_openssl_test_vector_14)
562 unsigned char key_str[100];
563 unsigned char src_str[100];
564 unsigned char dst_str[100];
565 unsigned char output[100];
568 memset(key_str, 0x00, 100);
569 memset(src_str, 0x00, 100);
570 memset(dst_str, 0x00, 100);
571 memset(output, 0x00, 100);
573 unhexify( key_str,
"0113B970FD34F2CE" );
574 unhexify( src_str,
"059B5E0851CF143A" );
578 hexify( dst_str, output, 8 );
580 fct_chk( strcasecmp( (
char *) dst_str,
"86A560F10EC6D85B" ) == 0 );
585 FCT_TEST_BGN(des_encrypt_openssl_test_vector_15)
587 unsigned char key_str[100];
588 unsigned char src_str[100];
589 unsigned char dst_str[100];
590 unsigned char output[100];
593 memset(key_str, 0x00, 100);
594 memset(src_str, 0x00, 100);
595 memset(dst_str, 0x00, 100);
596 memset(output, 0x00, 100);
598 unhexify( key_str,
"0170F175468FB5E6" );
599 unhexify( src_str,
"0756D8E0774761D2" );
603 hexify( dst_str, output, 8 );
605 fct_chk( strcasecmp( (
char *) dst_str,
"0CD3DA020021DC09" ) == 0 );
610 FCT_TEST_BGN(des_encrypt_openssl_test_vector_16)
612 unsigned char key_str[100];
613 unsigned char src_str[100];
614 unsigned char dst_str[100];
615 unsigned char output[100];
618 memset(key_str, 0x00, 100);
619 memset(src_str, 0x00, 100);
620 memset(dst_str, 0x00, 100);
621 memset(output, 0x00, 100);
623 unhexify( key_str,
"43297FAD38E373FE" );
624 unhexify( src_str,
"762514B829BF486A" );
628 hexify( dst_str, output, 8 );
630 fct_chk( strcasecmp( (
char *) dst_str,
"EA676B2CB7DB2B7A" ) == 0 );
635 FCT_TEST_BGN(des_encrypt_openssl_test_vector_17)
637 unsigned char key_str[100];
638 unsigned char src_str[100];
639 unsigned char dst_str[100];
640 unsigned char output[100];
643 memset(key_str, 0x00, 100);
644 memset(src_str, 0x00, 100);
645 memset(dst_str, 0x00, 100);
646 memset(output, 0x00, 100);
648 unhexify( key_str,
"07A7137045DA2A16" );
649 unhexify( src_str,
"3BDD119049372802" );
653 hexify( dst_str, output, 8 );
655 fct_chk( strcasecmp( (
char *) dst_str,
"DFD64A815CAF1A0F" ) == 0 );
660 FCT_TEST_BGN(des_encrypt_openssl_test_vector_18)
662 unsigned char key_str[100];
663 unsigned char src_str[100];
664 unsigned char dst_str[100];
665 unsigned char output[100];
668 memset(key_str, 0x00, 100);
669 memset(src_str, 0x00, 100);
670 memset(dst_str, 0x00, 100);
671 memset(output, 0x00, 100);
673 unhexify( key_str,
"04689104C2FD3B2F" );
674 unhexify( src_str,
"26955F6835AF609A" );
678 hexify( dst_str, output, 8 );
680 fct_chk( strcasecmp( (
char *) dst_str,
"5C513C9C4886C088" ) == 0 );
685 FCT_TEST_BGN(des_encrypt_openssl_test_vector_19)
687 unsigned char key_str[100];
688 unsigned char src_str[100];
689 unsigned char dst_str[100];
690 unsigned char output[100];
693 memset(key_str, 0x00, 100);
694 memset(src_str, 0x00, 100);
695 memset(dst_str, 0x00, 100);
696 memset(output, 0x00, 100);
698 unhexify( key_str,
"37D06BB516CB7546" );
699 unhexify( src_str,
"164D5E404F275232" );
703 hexify( dst_str, output, 8 );
705 fct_chk( strcasecmp( (
char *) dst_str,
"0A2AEEAE3FF4AB77" ) == 0 );
710 FCT_TEST_BGN(des_encrypt_openssl_test_vector_20)
712 unsigned char key_str[100];
713 unsigned char src_str[100];
714 unsigned char dst_str[100];
715 unsigned char output[100];
718 memset(key_str, 0x00, 100);
719 memset(src_str, 0x00, 100);
720 memset(dst_str, 0x00, 100);
721 memset(output, 0x00, 100);
723 unhexify( key_str,
"1F08260D1AC2465E" );
724 unhexify( src_str,
"6B056E18759F5CCA" );
728 hexify( dst_str, output, 8 );
730 fct_chk( strcasecmp( (
char *) dst_str,
"EF1BF03E5DFA575A" ) == 0 );
735 FCT_TEST_BGN(des_encrypt_openssl_test_vector_21)
737 unsigned char key_str[100];
738 unsigned char src_str[100];
739 unsigned char dst_str[100];
740 unsigned char output[100];
743 memset(key_str, 0x00, 100);
744 memset(src_str, 0x00, 100);
745 memset(dst_str, 0x00, 100);
746 memset(output, 0x00, 100);
748 unhexify( key_str,
"584023641ABA6176" );
749 unhexify( src_str,
"004BD6EF09176062" );
753 hexify( dst_str, output, 8 );
755 fct_chk( strcasecmp( (
char *) dst_str,
"88BF0DB6D70DEE56" ) == 0 );
760 FCT_TEST_BGN(des_encrypt_openssl_test_vector_22)
762 unsigned char key_str[100];
763 unsigned char src_str[100];
764 unsigned char dst_str[100];
765 unsigned char output[100];
768 memset(key_str, 0x00, 100);
769 memset(src_str, 0x00, 100);
770 memset(dst_str, 0x00, 100);
771 memset(output, 0x00, 100);
773 unhexify( key_str,
"025816164629B007" );
774 unhexify( src_str,
"480D39006EE762F2" );
778 hexify( dst_str, output, 8 );
780 fct_chk( strcasecmp( (
char *) dst_str,
"A1F9915541020B56" ) == 0 );
785 FCT_TEST_BGN(des_encrypt_openssl_test_vector_23)
787 unsigned char key_str[100];
788 unsigned char src_str[100];
789 unsigned char dst_str[100];
790 unsigned char output[100];
793 memset(key_str, 0x00, 100);
794 memset(src_str, 0x00, 100);
795 memset(dst_str, 0x00, 100);
796 memset(output, 0x00, 100);
798 unhexify( key_str,
"49793EBC79B3258F" );
799 unhexify( src_str,
"437540C8698F3CFA" );
803 hexify( dst_str, output, 8 );
805 fct_chk( strcasecmp( (
char *) dst_str,
"6FBF1CAFCFFD0556" ) == 0 );
810 FCT_TEST_BGN(des_encrypt_openssl_test_vector_24)
812 unsigned char key_str[100];
813 unsigned char src_str[100];
814 unsigned char dst_str[100];
815 unsigned char output[100];
818 memset(key_str, 0x00, 100);
819 memset(src_str, 0x00, 100);
820 memset(dst_str, 0x00, 100);
821 memset(output, 0x00, 100);
823 unhexify( key_str,
"4FB05E1515AB73A7" );
824 unhexify( src_str,
"072D43A077075292" );
828 hexify( dst_str, output, 8 );
830 fct_chk( strcasecmp( (
char *) dst_str,
"2F22E49BAB7CA1AC" ) == 0 );
835 FCT_TEST_BGN(des_encrypt_openssl_test_vector_25)
837 unsigned char key_str[100];
838 unsigned char src_str[100];
839 unsigned char dst_str[100];
840 unsigned char output[100];
843 memset(key_str, 0x00, 100);
844 memset(src_str, 0x00, 100);
845 memset(dst_str, 0x00, 100);
846 memset(output, 0x00, 100);
848 unhexify( key_str,
"49E95D6D4CA229BF" );
849 unhexify( src_str,
"02FE55778117F12A" );
853 hexify( dst_str, output, 8 );
855 fct_chk( strcasecmp( (
char *) dst_str,
"5A6B612CC26CCE4A" ) == 0 );
860 FCT_TEST_BGN(des_encrypt_openssl_test_vector_26)
862 unsigned char key_str[100];
863 unsigned char src_str[100];
864 unsigned char dst_str[100];
865 unsigned char output[100];
868 memset(key_str, 0x00, 100);
869 memset(src_str, 0x00, 100);
870 memset(dst_str, 0x00, 100);
871 memset(output, 0x00, 100);
873 unhexify( key_str,
"018310DC409B26D6" );
874 unhexify( src_str,
"1D9D5C5018F728C2" );
878 hexify( dst_str, output, 8 );
880 fct_chk( strcasecmp( (
char *) dst_str,
"5F4C038ED12B2E41" ) == 0 );
885 FCT_TEST_BGN(des_encrypt_openssl_test_vector_27)
887 unsigned char key_str[100];
888 unsigned char src_str[100];
889 unsigned char dst_str[100];
890 unsigned char output[100];
893 memset(key_str, 0x00, 100);
894 memset(src_str, 0x00, 100);
895 memset(dst_str, 0x00, 100);
896 memset(output, 0x00, 100);
898 unhexify( key_str,
"1C587F1C13924FEF" );
899 unhexify( src_str,
"305532286D6F295A" );
903 hexify( dst_str, output, 8 );
905 fct_chk( strcasecmp( (
char *) dst_str,
"63FAC0D034D9F793" ) == 0 );
910 FCT_TEST_BGN(des_encrypt_openssl_test_vector_28)
912 unsigned char key_str[100];
913 unsigned char src_str[100];
914 unsigned char dst_str[100];
915 unsigned char output[100];
918 memset(key_str, 0x00, 100);
919 memset(src_str, 0x00, 100);
920 memset(dst_str, 0x00, 100);
921 memset(output, 0x00, 100);
923 unhexify( key_str,
"0101010101010101" );
924 unhexify( src_str,
"0123456789ABCDEF" );
928 hexify( dst_str, output, 8 );
930 fct_chk( strcasecmp( (
char *) dst_str,
"617B3A0CE8F07100" ) == 0 );
935 FCT_TEST_BGN(des_encrypt_openssl_test_vector_29)
937 unsigned char key_str[100];
938 unsigned char src_str[100];
939 unsigned char dst_str[100];
940 unsigned char output[100];
943 memset(key_str, 0x00, 100);
944 memset(src_str, 0x00, 100);
945 memset(dst_str, 0x00, 100);
946 memset(output, 0x00, 100);
948 unhexify( key_str,
"1F1F1F1F0E0E0E0E" );
949 unhexify( src_str,
"0123456789ABCDEF" );
953 hexify( dst_str, output, 8 );
955 fct_chk( strcasecmp( (
char *) dst_str,
"DB958605F8C8C606" ) == 0 );
960 FCT_TEST_BGN(des_encrypt_openssl_test_vector_30)
962 unsigned char key_str[100];
963 unsigned char src_str[100];
964 unsigned char dst_str[100];
965 unsigned char output[100];
968 memset(key_str, 0x00, 100);
969 memset(src_str, 0x00, 100);
970 memset(dst_str, 0x00, 100);
971 memset(output, 0x00, 100);
973 unhexify( key_str,
"E0FEE0FEF1FEF1FE" );
974 unhexify( src_str,
"0123456789ABCDEF" );
978 hexify( dst_str, output, 8 );
980 fct_chk( strcasecmp( (
char *) dst_str,
"EDBFD1C66C29CCC7" ) == 0 );
985 FCT_TEST_BGN(des_encrypt_openssl_test_vector_31)
987 unsigned char key_str[100];
988 unsigned char src_str[100];
989 unsigned char dst_str[100];
990 unsigned char output[100];
993 memset(key_str, 0x00, 100);
994 memset(src_str, 0x00, 100);
995 memset(dst_str, 0x00, 100);
996 memset(output, 0x00, 100);
998 unhexify( key_str,
"0000000000000000" );
999 unhexify( src_str,
"FFFFFFFFFFFFFFFF" );
1003 hexify( dst_str, output, 8 );
1005 fct_chk( strcasecmp( (
char *) dst_str,
"355550B2150E2451" ) == 0 );
1010 FCT_TEST_BGN(des_encrypt_openssl_test_vector_32)
1012 unsigned char key_str[100];
1013 unsigned char src_str[100];
1014 unsigned char dst_str[100];
1015 unsigned char output[100];
1018 memset(key_str, 0x00, 100);
1019 memset(src_str, 0x00, 100);
1020 memset(dst_str, 0x00, 100);
1021 memset(output, 0x00, 100);
1023 unhexify( key_str,
"FFFFFFFFFFFFFFFF" );
1024 unhexify( src_str,
"0000000000000000" );
1028 hexify( dst_str, output, 8 );
1030 fct_chk( strcasecmp( (
char *) dst_str,
"CAAAAF4DEAF1DBAE" ) == 0 );
1035 FCT_TEST_BGN(des_encrypt_openssl_test_vector_33)
1037 unsigned char key_str[100];
1038 unsigned char src_str[100];
1039 unsigned char dst_str[100];
1040 unsigned char output[100];
1043 memset(key_str, 0x00, 100);
1044 memset(src_str, 0x00, 100);
1045 memset(dst_str, 0x00, 100);
1046 memset(output, 0x00, 100);
1048 unhexify( key_str,
"0123456789ABCDEF" );
1049 unhexify( src_str,
"0000000000000000" );
1053 hexify( dst_str, output, 8 );
1055 fct_chk( strcasecmp( (
char *) dst_str,
"D5D44FF720683D0D" ) == 0 );
1060 FCT_TEST_BGN(des_encrypt_openssl_test_vector_34)
1062 unsigned char key_str[100];
1063 unsigned char src_str[100];
1064 unsigned char dst_str[100];
1065 unsigned char output[100];
1068 memset(key_str, 0x00, 100);
1069 memset(src_str, 0x00, 100);
1070 memset(dst_str, 0x00, 100);
1071 memset(output, 0x00, 100);
1073 unhexify( key_str,
"FEDCBA9876543210" );
1074 unhexify( src_str,
"FFFFFFFFFFFFFFFF" );
1078 hexify( dst_str, output, 8 );
1080 fct_chk( strcasecmp( (
char *) dst_str,
"2A2BB008DF97C2F2" ) == 0 );
1085 FCT_TEST_BGN(des_decrypt_openssl_test_vector_1)
1087 unsigned char key_str[100];
1088 unsigned char src_str[100];
1089 unsigned char dst_str[100];
1090 unsigned char output[100];
1093 memset(key_str, 0x00, 100);
1094 memset(src_str, 0x00, 100);
1095 memset(dst_str, 0x00, 100);
1096 memset(output, 0x00, 100);
1098 unhexify( key_str,
"0000000000000000" );
1099 unhexify( src_str,
"8CA64DE9C1B123A7" );
1103 hexify( dst_str, output, 8 );
1105 fct_chk( strcasecmp( (
char *) dst_str,
"0000000000000000" ) == 0 );
1110 FCT_TEST_BGN(des_decrypt_openssl_test_vector_2)
1112 unsigned char key_str[100];
1113 unsigned char src_str[100];
1114 unsigned char dst_str[100];
1115 unsigned char output[100];
1118 memset(key_str, 0x00, 100);
1119 memset(src_str, 0x00, 100);
1120 memset(dst_str, 0x00, 100);
1121 memset(output, 0x00, 100);
1123 unhexify( key_str,
"FFFFFFFFFFFFFFFF" );
1124 unhexify( src_str,
"7359B2163E4EDC58" );
1128 hexify( dst_str, output, 8 );
1130 fct_chk( strcasecmp( (
char *) dst_str,
"FFFFFFFFFFFFFFFF" ) == 0 );
1135 FCT_TEST_BGN(des_decrypt_openssl_test_vector_3)
1137 unsigned char key_str[100];
1138 unsigned char src_str[100];
1139 unsigned char dst_str[100];
1140 unsigned char output[100];
1143 memset(key_str, 0x00, 100);
1144 memset(src_str, 0x00, 100);
1145 memset(dst_str, 0x00, 100);
1146 memset(output, 0x00, 100);
1148 unhexify( key_str,
"3000000000000000" );
1149 unhexify( src_str,
"958E6E627A05557B" );
1153 hexify( dst_str, output, 8 );
1155 fct_chk( strcasecmp( (
char *) dst_str,
"1000000000000001" ) == 0 );
1160 FCT_TEST_BGN(des_decrypt_openssl_test_vector_4)
1162 unsigned char key_str[100];
1163 unsigned char src_str[100];
1164 unsigned char dst_str[100];
1165 unsigned char output[100];
1168 memset(key_str, 0x00, 100);
1169 memset(src_str, 0x00, 100);
1170 memset(dst_str, 0x00, 100);
1171 memset(output, 0x00, 100);
1173 unhexify( key_str,
"1111111111111111" );
1174 unhexify( src_str,
"F40379AB9E0EC533" );
1178 hexify( dst_str, output, 8 );
1180 fct_chk( strcasecmp( (
char *) dst_str,
"1111111111111111" ) == 0 );
1185 FCT_TEST_BGN(des_decrypt_openssl_test_vector_5)
1187 unsigned char key_str[100];
1188 unsigned char src_str[100];
1189 unsigned char dst_str[100];
1190 unsigned char output[100];
1193 memset(key_str, 0x00, 100);
1194 memset(src_str, 0x00, 100);
1195 memset(dst_str, 0x00, 100);
1196 memset(output, 0x00, 100);
1198 unhexify( key_str,
"0123456789ABCDEF" );
1199 unhexify( src_str,
"17668DFC7292532D" );
1203 hexify( dst_str, output, 8 );
1205 fct_chk( strcasecmp( (
char *) dst_str,
"1111111111111111" ) == 0 );
1210 FCT_TEST_BGN(des_decrypt_openssl_test_vector_6)
1212 unsigned char key_str[100];
1213 unsigned char src_str[100];
1214 unsigned char dst_str[100];
1215 unsigned char output[100];
1218 memset(key_str, 0x00, 100);
1219 memset(src_str, 0x00, 100);
1220 memset(dst_str, 0x00, 100);
1221 memset(output, 0x00, 100);
1223 unhexify( key_str,
"1111111111111111" );
1224 unhexify( src_str,
"8A5AE1F81AB8F2DD" );
1228 hexify( dst_str, output, 8 );
1230 fct_chk( strcasecmp( (
char *) dst_str,
"0123456789ABCDEF" ) == 0 );
1235 FCT_TEST_BGN(des_decrypt_openssl_test_vector_7)
1237 unsigned char key_str[100];
1238 unsigned char src_str[100];
1239 unsigned char dst_str[100];
1240 unsigned char output[100];
1243 memset(key_str, 0x00, 100);
1244 memset(src_str, 0x00, 100);
1245 memset(dst_str, 0x00, 100);
1246 memset(output, 0x00, 100);
1248 unhexify( key_str,
"0000000000000000" );
1249 unhexify( src_str,
"8CA64DE9C1B123A7" );
1253 hexify( dst_str, output, 8 );
1255 fct_chk( strcasecmp( (
char *) dst_str,
"0000000000000000" ) == 0 );
1260 FCT_TEST_BGN(des_decrypt_openssl_test_vector_8)
1262 unsigned char key_str[100];
1263 unsigned char src_str[100];
1264 unsigned char dst_str[100];
1265 unsigned char output[100];
1268 memset(key_str, 0x00, 100);
1269 memset(src_str, 0x00, 100);
1270 memset(dst_str, 0x00, 100);
1271 memset(output, 0x00, 100);
1273 unhexify( key_str,
"FEDCBA9876543210" );
1274 unhexify( src_str,
"ED39D950FA74BCC4" );
1278 hexify( dst_str, output, 8 );
1280 fct_chk( strcasecmp( (
char *) dst_str,
"0123456789ABCDEF" ) == 0 );
1285 FCT_TEST_BGN(des_decrypt_openssl_test_vector_9)
1287 unsigned char key_str[100];
1288 unsigned char src_str[100];
1289 unsigned char dst_str[100];
1290 unsigned char output[100];
1293 memset(key_str, 0x00, 100);
1294 memset(src_str, 0x00, 100);
1295 memset(dst_str, 0x00, 100);
1296 memset(output, 0x00, 100);
1298 unhexify( key_str,
"7CA110454A1A6E57" );
1299 unhexify( src_str,
"690F5B0D9A26939B" );
1303 hexify( dst_str, output, 8 );
1305 fct_chk( strcasecmp( (
char *) dst_str,
"01A1D6D039776742" ) == 0 );
1310 FCT_TEST_BGN(des_decrypt_openssl_test_vector_10)
1312 unsigned char key_str[100];
1313 unsigned char src_str[100];
1314 unsigned char dst_str[100];
1315 unsigned char output[100];
1318 memset(key_str, 0x00, 100);
1319 memset(src_str, 0x00, 100);
1320 memset(dst_str, 0x00, 100);
1321 memset(output, 0x00, 100);
1323 unhexify( key_str,
"0131D9619DC1376E" );
1324 unhexify( src_str,
"7A389D10354BD271" );
1328 hexify( dst_str, output, 8 );
1330 fct_chk( strcasecmp( (
char *) dst_str,
"5CD54CA83DEF57DA" ) == 0 );
1335 FCT_TEST_BGN(des_decrypt_openssl_test_vector_11)
1337 unsigned char key_str[100];
1338 unsigned char src_str[100];
1339 unsigned char dst_str[100];
1340 unsigned char output[100];
1343 memset(key_str, 0x00, 100);
1344 memset(src_str, 0x00, 100);
1345 memset(dst_str, 0x00, 100);
1346 memset(output, 0x00, 100);
1348 unhexify( key_str,
"07A1133E4A0B2686" );
1349 unhexify( src_str,
"868EBB51CAB4599A" );
1353 hexify( dst_str, output, 8 );
1355 fct_chk( strcasecmp( (
char *) dst_str,
"0248D43806F67172" ) == 0 );
1360 FCT_TEST_BGN(des_decrypt_openssl_test_vector_12)
1362 unsigned char key_str[100];
1363 unsigned char src_str[100];
1364 unsigned char dst_str[100];
1365 unsigned char output[100];
1368 memset(key_str, 0x00, 100);
1369 memset(src_str, 0x00, 100);
1370 memset(dst_str, 0x00, 100);
1371 memset(output, 0x00, 100);
1373 unhexify( key_str,
"3849674C2602319E" );
1374 unhexify( src_str,
"7178876E01F19B2A" );
1378 hexify( dst_str, output, 8 );
1380 fct_chk( strcasecmp( (
char *) dst_str,
"51454B582DDF440A" ) == 0 );
1385 FCT_TEST_BGN(des_decrypt_openssl_test_vector_13)
1387 unsigned char key_str[100];
1388 unsigned char src_str[100];
1389 unsigned char dst_str[100];
1390 unsigned char output[100];
1393 memset(key_str, 0x00, 100);
1394 memset(src_str, 0x00, 100);
1395 memset(dst_str, 0x00, 100);
1396 memset(output, 0x00, 100);
1398 unhexify( key_str,
"04B915BA43FEB5B6" );
1399 unhexify( src_str,
"AF37FB421F8C4095" );
1403 hexify( dst_str, output, 8 );
1405 fct_chk( strcasecmp( (
char *) dst_str,
"42FD443059577FA2" ) == 0 );
1410 FCT_TEST_BGN(des_decrypt_openssl_test_vector_14)
1412 unsigned char key_str[100];
1413 unsigned char src_str[100];
1414 unsigned char dst_str[100];
1415 unsigned char output[100];
1418 memset(key_str, 0x00, 100);
1419 memset(src_str, 0x00, 100);
1420 memset(dst_str, 0x00, 100);
1421 memset(output, 0x00, 100);
1423 unhexify( key_str,
"0113B970FD34F2CE" );
1424 unhexify( src_str,
"86A560F10EC6D85B" );
1428 hexify( dst_str, output, 8 );
1430 fct_chk( strcasecmp( (
char *) dst_str,
"059B5E0851CF143A" ) == 0 );
1435 FCT_TEST_BGN(des_decrypt_openssl_test_vector_15)
1437 unsigned char key_str[100];
1438 unsigned char src_str[100];
1439 unsigned char dst_str[100];
1440 unsigned char output[100];
1443 memset(key_str, 0x00, 100);
1444 memset(src_str, 0x00, 100);
1445 memset(dst_str, 0x00, 100);
1446 memset(output, 0x00, 100);
1448 unhexify( key_str,
"0170F175468FB5E6" );
1449 unhexify( src_str,
"0CD3DA020021DC09" );
1453 hexify( dst_str, output, 8 );
1455 fct_chk( strcasecmp( (
char *) dst_str,
"0756D8E0774761D2" ) == 0 );
1460 FCT_TEST_BGN(des_decrypt_openssl_test_vector_16)
1462 unsigned char key_str[100];
1463 unsigned char src_str[100];
1464 unsigned char dst_str[100];
1465 unsigned char output[100];
1468 memset(key_str, 0x00, 100);
1469 memset(src_str, 0x00, 100);
1470 memset(dst_str, 0x00, 100);
1471 memset(output, 0x00, 100);
1473 unhexify( key_str,
"43297FAD38E373FE" );
1474 unhexify( src_str,
"EA676B2CB7DB2B7A" );
1478 hexify( dst_str, output, 8 );
1480 fct_chk( strcasecmp( (
char *) dst_str,
"762514B829BF486A" ) == 0 );
1485 FCT_TEST_BGN(des_decrypt_openssl_test_vector_17)
1487 unsigned char key_str[100];
1488 unsigned char src_str[100];
1489 unsigned char dst_str[100];
1490 unsigned char output[100];
1493 memset(key_str, 0x00, 100);
1494 memset(src_str, 0x00, 100);
1495 memset(dst_str, 0x00, 100);
1496 memset(output, 0x00, 100);
1498 unhexify( key_str,
"07A7137045DA2A16" );
1499 unhexify( src_str,
"DFD64A815CAF1A0F" );
1503 hexify( dst_str, output, 8 );
1505 fct_chk( strcasecmp( (
char *) dst_str,
"3BDD119049372802" ) == 0 );
1510 FCT_TEST_BGN(des_decrypt_openssl_test_vector_18)
1512 unsigned char key_str[100];
1513 unsigned char src_str[100];
1514 unsigned char dst_str[100];
1515 unsigned char output[100];
1518 memset(key_str, 0x00, 100);
1519 memset(src_str, 0x00, 100);
1520 memset(dst_str, 0x00, 100);
1521 memset(output, 0x00, 100);
1523 unhexify( key_str,
"04689104C2FD3B2F" );
1524 unhexify( src_str,
"5C513C9C4886C088" );
1528 hexify( dst_str, output, 8 );
1530 fct_chk( strcasecmp( (
char *) dst_str,
"26955F6835AF609A" ) == 0 );
1535 FCT_TEST_BGN(des_decrypt_openssl_test_vector_19)
1537 unsigned char key_str[100];
1538 unsigned char src_str[100];
1539 unsigned char dst_str[100];
1540 unsigned char output[100];
1543 memset(key_str, 0x00, 100);
1544 memset(src_str, 0x00, 100);
1545 memset(dst_str, 0x00, 100);
1546 memset(output, 0x00, 100);
1548 unhexify( key_str,
"37D06BB516CB7546" );
1549 unhexify( src_str,
"0A2AEEAE3FF4AB77" );
1553 hexify( dst_str, output, 8 );
1555 fct_chk( strcasecmp( (
char *) dst_str,
"164D5E404F275232" ) == 0 );
1560 FCT_TEST_BGN(des_decrypt_openssl_test_vector_20)
1562 unsigned char key_str[100];
1563 unsigned char src_str[100];
1564 unsigned char dst_str[100];
1565 unsigned char output[100];
1568 memset(key_str, 0x00, 100);
1569 memset(src_str, 0x00, 100);
1570 memset(dst_str, 0x00, 100);
1571 memset(output, 0x00, 100);
1573 unhexify( key_str,
"1F08260D1AC2465E" );
1574 unhexify( src_str,
"EF1BF03E5DFA575A" );
1578 hexify( dst_str, output, 8 );
1580 fct_chk( strcasecmp( (
char *) dst_str,
"6B056E18759F5CCA" ) == 0 );
1585 FCT_TEST_BGN(des_decrypt_openssl_test_vector_21)
1587 unsigned char key_str[100];
1588 unsigned char src_str[100];
1589 unsigned char dst_str[100];
1590 unsigned char output[100];
1593 memset(key_str, 0x00, 100);
1594 memset(src_str, 0x00, 100);
1595 memset(dst_str, 0x00, 100);
1596 memset(output, 0x00, 100);
1598 unhexify( key_str,
"584023641ABA6176" );
1599 unhexify( src_str,
"88BF0DB6D70DEE56" );
1603 hexify( dst_str, output, 8 );
1605 fct_chk( strcasecmp( (
char *) dst_str,
"004BD6EF09176062" ) == 0 );
1610 FCT_TEST_BGN(des_decrypt_openssl_test_vector_22)
1612 unsigned char key_str[100];
1613 unsigned char src_str[100];
1614 unsigned char dst_str[100];
1615 unsigned char output[100];
1618 memset(key_str, 0x00, 100);
1619 memset(src_str, 0x00, 100);
1620 memset(dst_str, 0x00, 100);
1621 memset(output, 0x00, 100);
1623 unhexify( key_str,
"025816164629B007" );
1624 unhexify( src_str,
"A1F9915541020B56" );
1628 hexify( dst_str, output, 8 );
1630 fct_chk( strcasecmp( (
char *) dst_str,
"480D39006EE762F2" ) == 0 );
1635 FCT_TEST_BGN(des_decrypt_openssl_test_vector_23)
1637 unsigned char key_str[100];
1638 unsigned char src_str[100];
1639 unsigned char dst_str[100];
1640 unsigned char output[100];
1643 memset(key_str, 0x00, 100);
1644 memset(src_str, 0x00, 100);
1645 memset(dst_str, 0x00, 100);
1646 memset(output, 0x00, 100);
1648 unhexify( key_str,
"49793EBC79B3258F" );
1649 unhexify( src_str,
"6FBF1CAFCFFD0556" );
1653 hexify( dst_str, output, 8 );
1655 fct_chk( strcasecmp( (
char *) dst_str,
"437540C8698F3CFA" ) == 0 );
1660 FCT_TEST_BGN(des_decrypt_openssl_test_vector_24)
1662 unsigned char key_str[100];
1663 unsigned char src_str[100];
1664 unsigned char dst_str[100];
1665 unsigned char output[100];
1668 memset(key_str, 0x00, 100);
1669 memset(src_str, 0x00, 100);
1670 memset(dst_str, 0x00, 100);
1671 memset(output, 0x00, 100);
1673 unhexify( key_str,
"4FB05E1515AB73A7" );
1674 unhexify( src_str,
"2F22E49BAB7CA1AC" );
1678 hexify( dst_str, output, 8 );
1680 fct_chk( strcasecmp( (
char *) dst_str,
"072D43A077075292" ) == 0 );
1685 FCT_TEST_BGN(des_decrypt_openssl_test_vector_25)
1687 unsigned char key_str[100];
1688 unsigned char src_str[100];
1689 unsigned char dst_str[100];
1690 unsigned char output[100];
1693 memset(key_str, 0x00, 100);
1694 memset(src_str, 0x00, 100);
1695 memset(dst_str, 0x00, 100);
1696 memset(output, 0x00, 100);
1698 unhexify( key_str,
"49E95D6D4CA229BF" );
1699 unhexify( src_str,
"5A6B612CC26CCE4A" );
1703 hexify( dst_str, output, 8 );
1705 fct_chk( strcasecmp( (
char *) dst_str,
"02FE55778117F12A" ) == 0 );
1710 FCT_TEST_BGN(des_decrypt_openssl_test_vector_26)
1712 unsigned char key_str[100];
1713 unsigned char src_str[100];
1714 unsigned char dst_str[100];
1715 unsigned char output[100];
1718 memset(key_str, 0x00, 100);
1719 memset(src_str, 0x00, 100);
1720 memset(dst_str, 0x00, 100);
1721 memset(output, 0x00, 100);
1723 unhexify( key_str,
"018310DC409B26D6" );
1724 unhexify( src_str,
"5F4C038ED12B2E41" );
1728 hexify( dst_str, output, 8 );
1730 fct_chk( strcasecmp( (
char *) dst_str,
"1D9D5C5018F728C2" ) == 0 );
1735 FCT_TEST_BGN(des_decrypt_openssl_test_vector_27)
1737 unsigned char key_str[100];
1738 unsigned char src_str[100];
1739 unsigned char dst_str[100];
1740 unsigned char output[100];
1743 memset(key_str, 0x00, 100);
1744 memset(src_str, 0x00, 100);
1745 memset(dst_str, 0x00, 100);
1746 memset(output, 0x00, 100);
1748 unhexify( key_str,
"1C587F1C13924FEF" );
1749 unhexify( src_str,
"63FAC0D034D9F793" );
1753 hexify( dst_str, output, 8 );
1755 fct_chk( strcasecmp( (
char *) dst_str,
"305532286D6F295A" ) == 0 );
1760 FCT_TEST_BGN(des_decrypt_openssl_test_vector_28)
1762 unsigned char key_str[100];
1763 unsigned char src_str[100];
1764 unsigned char dst_str[100];
1765 unsigned char output[100];
1768 memset(key_str, 0x00, 100);
1769 memset(src_str, 0x00, 100);
1770 memset(dst_str, 0x00, 100);
1771 memset(output, 0x00, 100);
1773 unhexify( key_str,
"0101010101010101" );
1774 unhexify( src_str,
"617B3A0CE8F07100" );
1778 hexify( dst_str, output, 8 );
1780 fct_chk( strcasecmp( (
char *) dst_str,
"0123456789ABCDEF" ) == 0 );
1785 FCT_TEST_BGN(des_decrypt_openssl_test_vector_29)
1787 unsigned char key_str[100];
1788 unsigned char src_str[100];
1789 unsigned char dst_str[100];
1790 unsigned char output[100];
1793 memset(key_str, 0x00, 100);
1794 memset(src_str, 0x00, 100);
1795 memset(dst_str, 0x00, 100);
1796 memset(output, 0x00, 100);
1798 unhexify( key_str,
"1F1F1F1F0E0E0E0E" );
1799 unhexify( src_str,
"DB958605F8C8C606" );
1803 hexify( dst_str, output, 8 );
1805 fct_chk( strcasecmp( (
char *) dst_str,
"0123456789ABCDEF" ) == 0 );
1810 FCT_TEST_BGN(des_decrypt_openssl_test_vector_30)
1812 unsigned char key_str[100];
1813 unsigned char src_str[100];
1814 unsigned char dst_str[100];
1815 unsigned char output[100];
1818 memset(key_str, 0x00, 100);
1819 memset(src_str, 0x00, 100);
1820 memset(dst_str, 0x00, 100);
1821 memset(output, 0x00, 100);
1823 unhexify( key_str,
"E0FEE0FEF1FEF1FE" );
1824 unhexify( src_str,
"EDBFD1C66C29CCC7" );
1828 hexify( dst_str, output, 8 );
1830 fct_chk( strcasecmp( (
char *) dst_str,
"0123456789ABCDEF" ) == 0 );
1835 FCT_TEST_BGN(des_decrypt_openssl_test_vector_31)
1837 unsigned char key_str[100];
1838 unsigned char src_str[100];
1839 unsigned char dst_str[100];
1840 unsigned char output[100];
1843 memset(key_str, 0x00, 100);
1844 memset(src_str, 0x00, 100);
1845 memset(dst_str, 0x00, 100);
1846 memset(output, 0x00, 100);
1848 unhexify( key_str,
"0000000000000000" );
1849 unhexify( src_str,
"355550B2150E2451" );
1853 hexify( dst_str, output, 8 );
1855 fct_chk( strcasecmp( (
char *) dst_str,
"FFFFFFFFFFFFFFFF" ) == 0 );
1860 FCT_TEST_BGN(des_decrypt_openssl_test_vector_32)
1862 unsigned char key_str[100];
1863 unsigned char src_str[100];
1864 unsigned char dst_str[100];
1865 unsigned char output[100];
1868 memset(key_str, 0x00, 100);
1869 memset(src_str, 0x00, 100);
1870 memset(dst_str, 0x00, 100);
1871 memset(output, 0x00, 100);
1873 unhexify( key_str,
"FFFFFFFFFFFFFFFF" );
1874 unhexify( src_str,
"CAAAAF4DEAF1DBAE" );
1878 hexify( dst_str, output, 8 );
1880 fct_chk( strcasecmp( (
char *) dst_str,
"0000000000000000" ) == 0 );
1885 FCT_TEST_BGN(des_decrypt_openssl_test_vector_33)
1887 unsigned char key_str[100];
1888 unsigned char src_str[100];
1889 unsigned char dst_str[100];
1890 unsigned char output[100];
1893 memset(key_str, 0x00, 100);
1894 memset(src_str, 0x00, 100);
1895 memset(dst_str, 0x00, 100);
1896 memset(output, 0x00, 100);
1898 unhexify( key_str,
"0123456789ABCDEF" );
1899 unhexify( src_str,
"D5D44FF720683D0D" );
1903 hexify( dst_str, output, 8 );
1905 fct_chk( strcasecmp( (
char *) dst_str,
"0000000000000000" ) == 0 );
1910 FCT_TEST_BGN(des_decrypt_openssl_test_vector_34)
1912 unsigned char key_str[100];
1913 unsigned char src_str[100];
1914 unsigned char dst_str[100];
1915 unsigned char output[100];
1918 memset(key_str, 0x00, 100);
1919 memset(src_str, 0x00, 100);
1920 memset(dst_str, 0x00, 100);
1921 memset(output, 0x00, 100);
1923 unhexify( key_str,
"FEDCBA9876543210" );
1924 unhexify( src_str,
"2A2BB008DF97C2F2" );
1928 hexify( dst_str, output, 8 );
1930 fct_chk( strcasecmp( (
char *) dst_str,
"FFFFFFFFFFFFFFFF" ) == 0 );
1935 FCT_TEST_BGN(des_cbc_encrypt_openssl_test_vector_1)
1937 unsigned char key_str[100];
1938 unsigned char iv_str[100];
1939 unsigned char src_str[100];
1940 unsigned char dst_str[100];
1941 unsigned char output[100];
1945 memset(key_str, 0x00, 100);
1946 memset(iv_str, 0x00, 100);
1947 memset(src_str, 0x00, 100);
1948 memset(dst_str, 0x00, 100);
1949 memset(output, 0x00, 100);
1951 unhexify( key_str,
"0123456789abcdef" );
1952 unhexify( iv_str,
"fedcba9876543210" );
1953 src_len =
unhexify( src_str,
"37363534333231204E6F77206973207468652074696D6520" );
1959 hexify( dst_str, output, src_len );
1961 fct_chk( strcasecmp( (
char *) dst_str,
"ccd173ffab2039f4acd8aefddfd8a1eb468e91157888ba68" ) == 0 );
1967 FCT_TEST_BGN(des_cbc_decrypt_openssl_test_vector_1)
1969 unsigned char key_str[100];
1970 unsigned char iv_str[100];
1971 unsigned char src_str[100];
1972 unsigned char dst_str[100];
1973 unsigned char output[100];
1977 memset(key_str, 0x00, 100);
1978 memset(iv_str, 0x00, 100);
1979 memset(src_str, 0x00, 100);
1980 memset(dst_str, 0x00, 100);
1981 memset(output, 0x00, 100);
1983 unhexify( key_str,
"0123456789abcdef" );
1984 unhexify( iv_str,
"fedcba9876543210" );
1985 src_len =
unhexify( src_str,
"ccd173ffab2039f4acd8aefddfd8a1eb468e91157888ba68" );
1991 hexify( dst_str, output, src_len );
1993 fct_chk( strcasecmp( (
char *) dst_str,
"37363534333231204E6F77206973207468652074696D6520" ) == 0 );
1999 FCT_TEST_BGN(3des_ecb_2key_encrypt_openssl_test_vector_1)
2001 unsigned char key_str[100];
2002 unsigned char src_str[100];
2003 unsigned char dst_str[100];
2004 unsigned char output[100];
2007 memset(key_str, 0x00, 100);
2008 memset(src_str, 0x00, 100);
2009 memset(dst_str, 0x00, 100);
2010 memset(output, 0x00, 100);
2012 unhexify( key_str,
"0000000000000000FFFFFFFFFFFFFFFF" );
2013 unhexify( src_str,
"0000000000000000" );
2023 hexify( dst_str, output, 8 );
2025 fct_chk( strcasecmp( (
char *) dst_str,
"9295B59BB384736E" ) == 0 );
2030 FCT_TEST_BGN(3des_ecb_2key_encrypt_openssl_test_vector_2)
2032 unsigned char key_str[100];
2033 unsigned char src_str[100];
2034 unsigned char dst_str[100];
2035 unsigned char output[100];
2038 memset(key_str, 0x00, 100);
2039 memset(src_str, 0x00, 100);
2040 memset(dst_str, 0x00, 100);
2041 memset(output, 0x00, 100);
2043 unhexify( key_str,
"FFFFFFFFFFFFFFFF3000000000000000" );
2044 unhexify( src_str,
"FFFFFFFFFFFFFFFF" );
2054 hexify( dst_str, output, 8 );
2056 fct_chk( strcasecmp( (
char *) dst_str,
"199E9D6DF39AA816" ) == 0 );
2061 FCT_TEST_BGN(3des_ecb_2key_decrypt_openssl_test_vector_1)
2063 unsigned char key_str[100];
2064 unsigned char src_str[100];
2065 unsigned char dst_str[100];
2066 unsigned char output[100];
2069 memset(key_str, 0x00, 100);
2070 memset(src_str, 0x00, 100);
2071 memset(dst_str, 0x00, 100);
2072 memset(output, 0x00, 100);
2074 unhexify( key_str,
"0000000000000000FFFFFFFFFFFFFFFF" );
2075 unhexify( src_str,
"9295B59BB384736E" );
2085 hexify( dst_str, output, 8 );
2087 fct_chk( strcasecmp( (
char *) dst_str,
"0000000000000000" ) == 0 );
2092 FCT_TEST_BGN(3des_ecb_2key_decrypt_openssl_test_vector_2)
2094 unsigned char key_str[100];
2095 unsigned char src_str[100];
2096 unsigned char dst_str[100];
2097 unsigned char output[100];
2100 memset(key_str, 0x00, 100);
2101 memset(src_str, 0x00, 100);
2102 memset(dst_str, 0x00, 100);
2103 memset(output, 0x00, 100);
2105 unhexify( key_str,
"FFFFFFFFFFFFFFFF3000000000000000" );
2106 unhexify( src_str,
"199E9D6DF39AA816" );
2116 hexify( dst_str, output, 8 );
2118 fct_chk( strcasecmp( (
char *) dst_str,
"FFFFFFFFFFFFFFFF" ) == 0 );
2123 FCT_TEST_BGN(3des_cbc_3key_encrypt_openssl_test_vector_1)
2125 unsigned char key_str[100];
2126 unsigned char iv_str[100];
2127 unsigned char src_str[100];
2128 unsigned char dst_str[100];
2129 unsigned char output[100];
2133 memset(key_str, 0x00, 100);
2134 memset(iv_str, 0x00, 100);
2135 memset(src_str, 0x00, 100);
2136 memset(dst_str, 0x00, 100);
2137 memset(output, 0x00, 100);
2139 unhexify( key_str,
"0123456789abcdeff1e0d3c2b5a49786fedcba9876543210" );
2140 unhexify( iv_str,
"fedcba9876543210" );
2141 src_len =
unhexify( src_str,
"37363534333231204E6F77206973207468652074696D6520" );
2154 hexify( dst_str, output, src_len );
2156 fct_chk( strcasecmp( (
char *) dst_str,
"3FE301C962AC01D02213763C1CBD4CDC799657C064ECF5D4" ) == 0 );
2162 FCT_TEST_BGN(3des_cbc_3key_decrypt_openssl_test_vector_1)
2164 unsigned char key_str[100];
2165 unsigned char iv_str[100];
2166 unsigned char src_str[100];
2167 unsigned char dst_str[100];
2168 unsigned char output[100];
2172 memset(key_str, 0x00, 100);
2173 memset(iv_str, 0x00, 100);
2174 memset(src_str, 0x00, 100);
2175 memset(dst_str, 0x00, 100);
2176 memset(output, 0x00, 100);
2178 unhexify( key_str,
"0123456789abcdeff1e0d3c2b5a49786fedcba9876543210" );
2179 unhexify( iv_str,
"fedcba9876543210" );
2180 src_len =
unhexify( src_str,
"3FE301C962AC01D02213763C1CBD4CDC799657C064ECF5D4" );
2193 hexify( dst_str, output, src_len );
2195 fct_chk( strcasecmp( (
char *) dst_str,
"37363534333231204E6F77206973207468652074696D6520" ) == 0 );
2201 FCT_TEST_BGN(des_cbc_encrypt_invalid_input_length)
2203 unsigned char key_str[100];
2204 unsigned char iv_str[100];
2205 unsigned char src_str[100];
2206 unsigned char dst_str[100];
2207 unsigned char output[100];
2211 memset(key_str, 0x00, 100);
2212 memset(iv_str, 0x00, 100);
2213 memset(src_str, 0x00, 100);
2214 memset(dst_str, 0x00, 100);
2215 memset(output, 0x00, 100);
2217 unhexify( key_str,
"0123456789abcdef" );
2218 unhexify( iv_str,
"fedcba9876543210" );
2219 src_len =
unhexify( src_str,
"37363534333231204E6F77206973207468652074696D65" );
2225 hexify( dst_str, output, src_len );
2227 fct_chk( strcasecmp( (
char *) dst_str,
"" ) == 0 );
2233 FCT_TEST_BGN(3des_cbc_3key_encrypt_invalid_input_length)
2235 unsigned char key_str[100];
2236 unsigned char iv_str[100];
2237 unsigned char src_str[100];
2238 unsigned char dst_str[100];
2239 unsigned char output[100];
2243 memset(key_str, 0x00, 100);
2244 memset(iv_str, 0x00, 100);
2245 memset(src_str, 0x00, 100);
2246 memset(dst_str, 0x00, 100);
2247 memset(output, 0x00, 100);
2249 unhexify( key_str,
"0123456789abcdeff1e0d3c2b5a49786fedcba9876543210" );
2250 unhexify( iv_str,
"fedcba9876543210" );
2251 src_len =
unhexify( src_str,
"37363534333231204E6F77206973207468652074696D65" );
2264 hexify( dst_str, output, src_len );
2266 fct_chk( strcasecmp( (
char *) dst_str,
"" ) == 0 );
2272 FCT_TEST_BGN(run_through_parity_bit_tests)
2276 unsigned int parity;
2283 for( i = 0; i < 32; i++ )
2285 for( j = 0; j < 8; j++ )
2294 for( j = 0; j < 8; j++ )
2296 parity = key[j] ^ ( key[j] >> 4 );
2314 #ifdef POLARSSL_SELF_TEST
2316 FCT_TEST_BGN(des_selftest)