mirror of https://github.com/openssl/openssl.git
				
				
				
			
		
			
				
	
	
		
			63 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
| /* unused */
 | |
| 
 | |
| #include <stdio.h>
 | |
| #include <openssl/tmdiff.h>
 | |
| #include "bn_lcl.h"
 | |
| 
 | |
| #define SIZE	256
 | |
| #define NUM	(8*8*8)
 | |
| #define MOD	(8*8*8*8*8)
 | |
| 
 | |
| main(argc,argv)
 | |
| int argc;
 | |
| char *argv[];
 | |
| 	{
 | |
| 	BN_CTX ctx;
 | |
| 	BIGNUM a,b,c,r,rr,t,l;
 | |
| 	int j,i,size=SIZE,num=NUM,mod=MOD;
 | |
| 	char *start,*end;
 | |
| 	BN_MONT_CTX mont;
 | |
| 	double d,md;
 | |
| 
 | |
| 	BN_MONT_CTX_init(&mont);
 | |
| 	BN_CTX_init(&ctx);
 | |
| 	BN_init(&a);
 | |
| 	BN_init(&b);
 | |
| 	BN_init(&c);
 | |
| 	BN_init(&r);
 | |
| 
 | |
| 	start=ms_time_new();
 | |
| 	end=ms_time_new();
 | |
| 	while (size <= 1024*8)
 | |
| 		{
 | |
| 		BN_rand(&a,size,0,0);
 | |
| 		BN_rand(&b,size,1,0);
 | |
| 		BN_rand(&c,size,0,1);
 | |
| 
 | |
| 		BN_mod(&a,&a,&c,&ctx);
 | |
| 
 | |
| 		ms_time_get(start);
 | |
| 		for (i=0; i<10; i++)
 | |
| 			BN_MONT_CTX_set(&mont,&c,&ctx);
 | |
| 		ms_time_get(end);
 | |
| 		md=ms_time_diff(start,end);
 | |
| 
 | |
| 		ms_time_get(start);
 | |
| 		for (i=0; i<num; i++)
 | |
| 			{
 | |
| 			/* bn_mull(&r,&a,&b,&ctx); */
 | |
| 			/* BN_sqr(&r,&a,&ctx); */
 | |
| 			BN_mod_exp_mont(&r,&a,&b,&c,&ctx,&mont);
 | |
| 			}
 | |
| 		ms_time_get(end);
 | |
| 		d=ms_time_diff(start,end)/* *50/33 */;
 | |
| 		printf("%5d bit:%6.2f %6d %6.4f %4d m_set(%5.4f)\n",size,
 | |
| 			d,num,d/num,(int)((d/num)*mod),md/10.0);
 | |
| 		num/=8;
 | |
| 		mod/=8;
 | |
| 		if (num <= 0) num=1;
 | |
| 		size*=2;
 | |
| 		}
 | |
| 
 | |
| 	}
 |