Deleted Added
full compact
bntest.c (72613) bntest.c (76866)
1/* crypto/bn/bntest.c */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *

--- 106 unchanged lines hidden (view full) ---

115int main(int argc, char *argv[])
116 {
117 BN_CTX *ctx;
118 BIO *out;
119 char *outfile=NULL;
120
121 results = 0;
122
1/* crypto/bn/bntest.c */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *

--- 106 unchanged lines hidden (view full) ---

115int main(int argc, char *argv[])
116 {
117 BN_CTX *ctx;
118 BIO *out;
119 char *outfile=NULL;
120
121 results = 0;
122
123 RAND_seed(rnd_seed, sizeof rnd_seed); /* or BN_rand may fail, and we don't
124 * even check its return value
125 * (which we should) */
123 RAND_seed(rnd_seed, sizeof rnd_seed); /* or BN_generate_prime may fail */
126
127 argc--;
128 argv++;
129 while (argc >= 1)
130 {
131 if (strcmp(*argv,"-results") == 0)
132 results=1;
133 else if (strcmp(*argv,"-out") == 0)

--- 112 unchanged lines hidden (view full) ---

246 BIGNUM a,b,c;
247 int i;
248 int j;
249
250 BN_init(&a);
251 BN_init(&b);
252 BN_init(&c);
253
124
125 argc--;
126 argv++;
127 while (argc >= 1)
128 {
129 if (strcmp(*argv,"-results") == 0)
130 results=1;
131 else if (strcmp(*argv,"-out") == 0)

--- 112 unchanged lines hidden (view full) ---

244 BIGNUM a,b,c;
245 int i;
246 int j;
247
248 BN_init(&a);
249 BN_init(&b);
250 BN_init(&c);
251
254 BN_rand(&a,512,0,0);
252 BN_bntest_rand(&a,512,0,0);
255 for (i=0; i<num0; i++)
256 {
253 for (i=0; i<num0; i++)
254 {
257 BN_rand(&b,450+i,0,0);
255 BN_bntest_rand(&b,450+i,0,0);
258 a.neg=rand_neg();
259 b.neg=rand_neg();
260 if (bp == NULL)
261 for (j=0; j<10000; j++)
262 BN_add(&c,&a,&b);
263 BN_add(&c,&a,&b);
264 if (bp != NULL)
265 {

--- 32 unchanged lines hidden (view full) ---

298 BN_init(&a);
299 BN_init(&b);
300 BN_init(&c);
301
302 for (i=0; i<num0+num1; i++)
303 {
304 if (i < num1)
305 {
256 a.neg=rand_neg();
257 b.neg=rand_neg();
258 if (bp == NULL)
259 for (j=0; j<10000; j++)
260 BN_add(&c,&a,&b);
261 BN_add(&c,&a,&b);
262 if (bp != NULL)
263 {

--- 32 unchanged lines hidden (view full) ---

296 BN_init(&a);
297 BN_init(&b);
298 BN_init(&c);
299
300 for (i=0; i<num0+num1; i++)
301 {
302 if (i < num1)
303 {
306 BN_rand(&a,512,0,0);
304 BN_bntest_rand(&a,512,0,0);
307 BN_copy(&b,&a);
308 if (BN_set_bit(&a,i)==0) return(0);
309 BN_add_word(&b,i);
310 }
311 else
312 {
305 BN_copy(&b,&a);
306 if (BN_set_bit(&a,i)==0) return(0);
307 BN_add_word(&b,i);
308 }
309 else
310 {
313 BN_rand(&b,400+i-num1,0,0);
311 BN_bntest_rand(&b,400+i-num1,0,0);
314 a.neg=rand_neg();
315 b.neg=rand_neg();
316 }
317 if (bp == NULL)
318 for (j=0; j<10000; j++)
319 BN_sub(&c,&a,&b);
320 BN_sub(&c,&a,&b);
321 if (bp != NULL)

--- 33 unchanged lines hidden (view full) ---

355 BN_init(&c);
356 BN_init(&d);
357 BN_init(&e);
358
359 for (i=0; i<num0+num1; i++)
360 {
361 if (i < num1)
362 {
312 a.neg=rand_neg();
313 b.neg=rand_neg();
314 }
315 if (bp == NULL)
316 for (j=0; j<10000; j++)
317 BN_sub(&c,&a,&b);
318 BN_sub(&c,&a,&b);
319 if (bp != NULL)

--- 33 unchanged lines hidden (view full) ---

353 BN_init(&c);
354 BN_init(&d);
355 BN_init(&e);
356
357 for (i=0; i<num0+num1; i++)
358 {
359 if (i < num1)
360 {
363 BN_rand(&a,400,0,0);
361 BN_bntest_rand(&a,400,0,0);
364 BN_copy(&b,&a);
365 BN_lshift(&a,&a,i);
366 BN_add_word(&a,i);
367 }
368 else
362 BN_copy(&b,&a);
363 BN_lshift(&a,&a,i);
364 BN_add_word(&a,i);
365 }
366 else
369 BN_rand(&b,50+3*(i-num1),0,0);
367 BN_bntest_rand(&b,50+3*(i-num1),0,0);
370 a.neg=rand_neg();
371 b.neg=rand_neg();
372 if (bp == NULL)
373 for (j=0; j<100; j++)
374 BN_div(&d,&c,&a,&b,ctx);
375 BN_div(&d,&c,&a,&b,ctx);
376 if (bp != NULL)
377 {

--- 47 unchanged lines hidden (view full) ---

425 BN_init(&c);
426 BN_init(&d);
427 BN_init(&e);
428
429 for (i=0; i<num0+num1; i++)
430 {
431 if (i < num1)
432 {
368 a.neg=rand_neg();
369 b.neg=rand_neg();
370 if (bp == NULL)
371 for (j=0; j<100; j++)
372 BN_div(&d,&c,&a,&b,ctx);
373 BN_div(&d,&c,&a,&b,ctx);
374 if (bp != NULL)
375 {

--- 47 unchanged lines hidden (view full) ---

423 BN_init(&c);
424 BN_init(&d);
425 BN_init(&e);
426
427 for (i=0; i<num0+num1; i++)
428 {
429 if (i < num1)
430 {
433 BN_rand(&a,400,0,0);
431 BN_bntest_rand(&a,400,0,0);
434 BN_copy(&b,&a);
435 BN_lshift(&a,&a,i);
436 BN_add_word(&a,i);
437 }
438 else
432 BN_copy(&b,&a);
433 BN_lshift(&a,&a,i);
434 BN_add_word(&a,i);
435 }
436 else
439 BN_rand(&b,50+3*(i-num1),0,0);
437 BN_bntest_rand(&b,50+3*(i-num1),0,0);
440 a.neg=rand_neg();
441 b.neg=rand_neg();
442 BN_RECP_CTX_set(&recp,&b,ctx);
443 if (bp == NULL)
444 for (j=0; j<100; j++)
445 BN_div_recp(&d,&c,&a,&recp,ctx);
446 BN_div_recp(&d,&c,&a,&recp,ctx);
447 if (bp != NULL)

--- 54 unchanged lines hidden (view full) ---

502 BN_init(&c);
503 BN_init(&d);
504 BN_init(&e);
505
506 for (i=0; i<num0+num1; i++)
507 {
508 if (i <= num1)
509 {
438 a.neg=rand_neg();
439 b.neg=rand_neg();
440 BN_RECP_CTX_set(&recp,&b,ctx);
441 if (bp == NULL)
442 for (j=0; j<100; j++)
443 BN_div_recp(&d,&c,&a,&recp,ctx);
444 BN_div_recp(&d,&c,&a,&recp,ctx);
445 if (bp != NULL)

--- 54 unchanged lines hidden (view full) ---

500 BN_init(&c);
501 BN_init(&d);
502 BN_init(&e);
503
504 for (i=0; i<num0+num1; i++)
505 {
506 if (i <= num1)
507 {
510 BN_rand(&a,100,0,0);
511 BN_rand(&b,100,0,0);
508 BN_bntest_rand(&a,100,0,0);
509 BN_bntest_rand(&b,100,0,0);
512 }
513 else
510 }
511 else
514 BN_rand(&b,i-num1,0,0);
512 BN_bntest_rand(&b,i-num1,0,0);
515 a.neg=rand_neg();
516 b.neg=rand_neg();
517 if (bp == NULL)
518 for (j=0; j<100; j++)
519 BN_mul(&c,&a,&b,&ctx);
520 BN_mul(&c,&a,&b,&ctx);
521 if (bp != NULL)
522 {

--- 32 unchanged lines hidden (view full) ---

555
556 BN_init(&a);
557 BN_init(&c);
558 BN_init(&d);
559 BN_init(&e);
560
561 for (i=0; i<num0; i++)
562 {
513 a.neg=rand_neg();
514 b.neg=rand_neg();
515 if (bp == NULL)
516 for (j=0; j<100; j++)
517 BN_mul(&c,&a,&b,&ctx);
518 BN_mul(&c,&a,&b,&ctx);
519 if (bp != NULL)
520 {

--- 32 unchanged lines hidden (view full) ---

553
554 BN_init(&a);
555 BN_init(&c);
556 BN_init(&d);
557 BN_init(&e);
558
559 for (i=0; i<num0; i++)
560 {
563 BN_rand(&a,40+i*10,0,0);
561 BN_bntest_rand(&a,40+i*10,0,0);
564 a.neg=rand_neg();
565 if (bp == NULL)
566 for (j=0; j<100; j++)
567 BN_sqr(&c,&a,ctx);
568 BN_sqr(&c,&a,ctx);
569 if (bp != NULL)
570 {
571 if (!results)

--- 34 unchanged lines hidden (view full) ---

606 BN_init(&c);
607 BN_init(&d);
608 BN_init(&A);
609 BN_init(&B);
610 BN_init(&n);
611
612 mont=BN_MONT_CTX_new();
613
562 a.neg=rand_neg();
563 if (bp == NULL)
564 for (j=0; j<100; j++)
565 BN_sqr(&c,&a,ctx);
566 BN_sqr(&c,&a,ctx);
567 if (bp != NULL)
568 {
569 if (!results)

--- 34 unchanged lines hidden (view full) ---

604 BN_init(&c);
605 BN_init(&d);
606 BN_init(&A);
607 BN_init(&B);
608 BN_init(&n);
609
610 mont=BN_MONT_CTX_new();
611
614 BN_rand(&a,100,0,0); /**/
615 BN_rand(&b,100,0,0); /**/
612 BN_bntest_rand(&a,100,0,0); /**/
613 BN_bntest_rand(&b,100,0,0); /**/
616 for (i=0; i<num2; i++)
617 {
618 int bits = (200*(i+1))/num2;
619
620 if (bits == 0)
621 continue;
614 for (i=0; i<num2; i++)
615 {
616 int bits = (200*(i+1))/num2;
617
618 if (bits == 0)
619 continue;
622 BN_rand(&n,bits,0,1);
620 BN_bntest_rand(&n,bits,0,1);
623 BN_MONT_CTX_set(mont,&n,ctx);
624
625 BN_to_montgomery(&A,&a,mont,ctx);
626 BN_to_montgomery(&B,&b,mont,ctx);
627
628 if (bp == NULL)
629 for (j=0; j<100; j++)
630 BN_mod_mul_montgomery(&c,&A,&B,mont,ctx);/**/

--- 45 unchanged lines hidden (view full) ---

676 int j;
677
678 a=BN_new();
679 b=BN_new();
680 c=BN_new();
681 d=BN_new();
682 e=BN_new();
683
621 BN_MONT_CTX_set(mont,&n,ctx);
622
623 BN_to_montgomery(&A,&a,mont,ctx);
624 BN_to_montgomery(&B,&b,mont,ctx);
625
626 if (bp == NULL)
627 for (j=0; j<100; j++)
628 BN_mod_mul_montgomery(&c,&A,&B,mont,ctx);/**/

--- 45 unchanged lines hidden (view full) ---

674 int j;
675
676 a=BN_new();
677 b=BN_new();
678 c=BN_new();
679 d=BN_new();
680 e=BN_new();
681
684 BN_rand(a,1024,0,0); /**/
682 BN_bntest_rand(a,1024,0,0); /**/
685 for (i=0; i<num0; i++)
686 {
683 for (i=0; i<num0; i++)
684 {
687 BN_rand(b,450+i*10,0,0); /**/
685 BN_bntest_rand(b,450+i*10,0,0); /**/
688 a->neg=rand_neg();
689 b->neg=rand_neg();
690 if (bp == NULL)
691 for (j=0; j<100; j++)
692 BN_mod(c,a,b,ctx);/**/
693 BN_mod(c,a,b,ctx);/**/
694 if (bp != NULL)
695 {

--- 29 unchanged lines hidden (view full) ---

725 int i;
726
727 a=BN_new();
728 b=BN_new();
729 c=BN_new();
730 d=BN_new();
731 e=BN_new();
732
686 a->neg=rand_neg();
687 b->neg=rand_neg();
688 if (bp == NULL)
689 for (j=0; j<100; j++)
690 BN_mod(c,a,b,ctx);/**/
691 BN_mod(c,a,b,ctx);/**/
692 if (bp != NULL)
693 {

--- 29 unchanged lines hidden (view full) ---

723 int i;
724
725 a=BN_new();
726 b=BN_new();
727 c=BN_new();
728 d=BN_new();
729 e=BN_new();
730
733 BN_rand(c,1024,0,0); /**/
731 BN_bntest_rand(c,1024,0,0); /**/
734 for (i=0; i<num0; i++)
735 {
732 for (i=0; i<num0; i++)
733 {
736 BN_rand(a,475+i*10,0,0); /**/
737 BN_rand(b,425+i*11,0,0); /**/
734 BN_bntest_rand(a,475+i*10,0,0); /**/
735 BN_bntest_rand(b,425+i*11,0,0); /**/
738 a->neg=rand_neg();
739 b->neg=rand_neg();
740 /* if (bp == NULL)
741 for (j=0; j<100; j++)
742 BN_mod_mul(d,a,b,c,ctx);*/ /**/
743
744 if (!BN_mod_mul(e,a,b,c,ctx))
745 {

--- 41 unchanged lines hidden (view full) ---

787 int i;
788
789 a=BN_new();
790 b=BN_new();
791 c=BN_new();
792 d=BN_new();
793 e=BN_new();
794
736 a->neg=rand_neg();
737 b->neg=rand_neg();
738 /* if (bp == NULL)
739 for (j=0; j<100; j++)
740 BN_mod_mul(d,a,b,c,ctx);*/ /**/
741
742 if (!BN_mod_mul(e,a,b,c,ctx))
743 {

--- 41 unchanged lines hidden (view full) ---

785 int i;
786
787 a=BN_new();
788 b=BN_new();
789 c=BN_new();
790 d=BN_new();
791 e=BN_new();
792
795 BN_rand(c,30,0,1); /* must be odd for montgomery */
793 BN_bntest_rand(c,30,0,1); /* must be odd for montgomery */
796 for (i=0; i<num2; i++)
797 {
794 for (i=0; i<num2; i++)
795 {
798 BN_rand(a,20+i*5,0,0); /**/
799 BN_rand(b,2+i,0,0); /**/
796 BN_bntest_rand(a,20+i*5,0,0); /**/
797 BN_bntest_rand(b,2+i,0,0); /**/
800
801 if (!BN_mod_exp(d,a,b,c,ctx))
802 return(00);
803
804 if (bp != NULL)
805 {
806 if (!results)
807 {

--- 33 unchanged lines hidden (view full) ---

841 b=BN_new();
842 d=BN_new();
843 e=BN_new();
844 one=BN_new();
845 BN_one(one);
846
847 for (i=0; i<num2; i++)
848 {
798
799 if (!BN_mod_exp(d,a,b,c,ctx))
800 return(00);
801
802 if (bp != NULL)
803 {
804 if (!results)
805 {

--- 33 unchanged lines hidden (view full) ---

839 b=BN_new();
840 d=BN_new();
841 e=BN_new();
842 one=BN_new();
843 BN_one(one);
844
845 for (i=0; i<num2; i++)
846 {
849 BN_rand(a,20+i*5,0,0); /**/
850 BN_rand(b,2+i,0,0); /**/
847 BN_bntest_rand(a,20+i*5,0,0); /**/
848 BN_bntest_rand(b,2+i,0,0); /**/
851
852 if (!BN_exp(d,a,b,ctx))
853 return(00);
854
855 if (bp != NULL)
856 {
857 if (!results)
858 {

--- 33 unchanged lines hidden (view full) ---

892 d=BN_new();
893 BN_one(c);
894
895 if(a_)
896 a=a_;
897 else
898 {
899 a=BN_new();
849
850 if (!BN_exp(d,a,b,ctx))
851 return(00);
852
853 if (bp != NULL)
854 {
855 if (!results)
856 {

--- 33 unchanged lines hidden (view full) ---

890 d=BN_new();
891 BN_one(c);
892
893 if(a_)
894 a=a_;
895 else
896 {
897 a=BN_new();
900 BN_rand(a,200,0,0); /**/
898 BN_bntest_rand(a,200,0,0); /**/
901 a->neg=rand_neg();
902 }
903 for (i=0; i<num0; i++)
904 {
905 BN_lshift(b,a,i+1);
906 BN_add(c,c,c);
907 if (bp != NULL)
908 {

--- 35 unchanged lines hidden (view full) ---

944 {
945 BIGNUM *a,*b,*c;
946 int i;
947
948 a=BN_new();
949 b=BN_new();
950 c=BN_new();
951
899 a->neg=rand_neg();
900 }
901 for (i=0; i<num0; i++)
902 {
903 BN_lshift(b,a,i+1);
904 BN_add(c,c,c);
905 if (bp != NULL)
906 {

--- 35 unchanged lines hidden (view full) ---

942 {
943 BIGNUM *a,*b,*c;
944 int i;
945
946 a=BN_new();
947 b=BN_new();
948 c=BN_new();
949
952 BN_rand(a,200,0,0); /**/
950 BN_bntest_rand(a,200,0,0); /**/
953 a->neg=rand_neg();
954 for (i=0; i<num0; i++)
955 {
956 BN_lshift1(b,a);
957 if (bp != NULL)
958 {
959 if (!results)
960 {

--- 27 unchanged lines hidden (view full) ---

988
989 a=BN_new();
990 b=BN_new();
991 c=BN_new();
992 d=BN_new();
993 e=BN_new();
994 BN_one(c);
995
951 a->neg=rand_neg();
952 for (i=0; i<num0; i++)
953 {
954 BN_lshift1(b,a);
955 if (bp != NULL)
956 {
957 if (!results)
958 {

--- 27 unchanged lines hidden (view full) ---

986
987 a=BN_new();
988 b=BN_new();
989 c=BN_new();
990 d=BN_new();
991 e=BN_new();
992 BN_one(c);
993
996 BN_rand(a,200,0,0); /**/
994 BN_bntest_rand(a,200,0,0); /**/
997 a->neg=rand_neg();
998 for (i=0; i<num0; i++)
999 {
1000 BN_rshift(b,a,i+1);
1001 BN_add(c,c,c);
1002 if (bp != NULL)
1003 {
1004 if (!results)

--- 26 unchanged lines hidden (view full) ---

1031 {
1032 BIGNUM *a,*b,*c;
1033 int i;
1034
1035 a=BN_new();
1036 b=BN_new();
1037 c=BN_new();
1038
995 a->neg=rand_neg();
996 for (i=0; i<num0; i++)
997 {
998 BN_rshift(b,a,i+1);
999 BN_add(c,c,c);
1000 if (bp != NULL)
1001 {
1002 if (!results)

--- 26 unchanged lines hidden (view full) ---

1029 {
1030 BIGNUM *a,*b,*c;
1031 int i;
1032
1033 a=BN_new();
1034 b=BN_new();
1035 c=BN_new();
1036
1039 BN_rand(a,200,0,0); /**/
1037 BN_bntest_rand(a,200,0,0); /**/
1040 a->neg=rand_neg();
1041 for (i=0; i<num0; i++)
1042 {
1043 BN_rshift1(b,a);
1044 if (bp != NULL)
1045 {
1046 if (!results)
1047 {

--- 29 unchanged lines hidden ---
1038 a->neg=rand_neg();
1039 for (i=0; i<num0; i++)
1040 {
1041 BN_rshift1(b,a);
1042 if (bp != NULL)
1043 {
1044 if (!results)
1045 {

--- 29 unchanged lines hidden ---