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 --- |