⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 speed.c

📁 一个用于点对点传输加密的工具包源码
💻 C
📖 第 1 页 / 共 3 页
字号:
		}#endif#ifndef NO_SHA	if (doit[D_SHA1])		{		for (j=0; j<SIZE_NUM; j++)			{			print_message(names[D_SHA1],c[D_SHA1][j],lengths[j]);			Time_F(START,usertime);			for (count=0,run=1; COND(c[D_SHA1][j]); count++)				SHA1(buf,(unsigned long)lengths[j],&(sha[0]));			d=Time_F(STOP,usertime);			BIO_printf(bio_err,"%ld %s's in %.2fs\n",				count,names[D_SHA1],d);			results[D_SHA1][j]=((double)count)/d*lengths[j];			}		}#endif#ifndef NO_RIPEMD	if (doit[D_RMD160])		{		for (j=0; j<SIZE_NUM; j++)			{			print_message(names[D_RMD160],c[D_RMD160][j],lengths[j]);			Time_F(START,usertime);			for (count=0,run=1; COND(c[D_RMD160][j]); count++)				RIPEMD160(buf,(unsigned long)lengths[j],&(rmd160[0]));			d=Time_F(STOP,usertime);			BIO_printf(bio_err,"%ld %s's in %.2fs\n",				count,names[D_RMD160],d);			results[D_RMD160][j]=((double)count)/d*lengths[j];			}		}#endif#ifndef NO_RC4	if (doit[D_RC4])		{		for (j=0; j<SIZE_NUM; j++)			{			print_message(names[D_RC4],c[D_RC4][j],lengths[j]);			Time_F(START,usertime);			for (count=0,run=1; COND(c[D_RC4][j]); count++)				RC4(&rc4_ks,(unsigned int)lengths[j],					buf,buf);			d=Time_F(STOP,usertime);			BIO_printf(bio_err,"%ld %s's in %.2fs\n",				count,names[D_RC4],d);			results[D_RC4][j]=((double)count)/d*lengths[j];			}		}#endif#ifndef NO_DES	if (doit[D_CBC_DES])		{		for (j=0; j<SIZE_NUM; j++)			{			print_message(names[D_CBC_DES],c[D_CBC_DES][j],lengths[j]);			Time_F(START,usertime);			for (count=0,run=1; COND(c[D_CBC_DES][j]); count++)				des_ncbc_encrypt(buf,buf,lengths[j],sch,						 &iv,DES_ENCRYPT);			d=Time_F(STOP,usertime);			BIO_printf(bio_err,"%ld %s's in %.2fs\n",				count,names[D_CBC_DES],d);			results[D_CBC_DES][j]=((double)count)/d*lengths[j];			}		}	if (doit[D_EDE3_DES])		{		for (j=0; j<SIZE_NUM; j++)			{			print_message(names[D_EDE3_DES],c[D_EDE3_DES][j],lengths[j]);			Time_F(START,usertime);			for (count=0,run=1; COND(c[D_EDE3_DES][j]); count++)				des_ede3_cbc_encrypt(buf,buf,lengths[j],						     sch,sch2,sch3,						     &iv,DES_ENCRYPT);			d=Time_F(STOP,usertime);			BIO_printf(bio_err,"%ld %s's in %.2fs\n",				count,names[D_EDE3_DES],d);			results[D_EDE3_DES][j]=((double)count)/d*lengths[j];			}		}#endif#ifndef NO_IDEA	if (doit[D_CBC_IDEA])		{		for (j=0; j<SIZE_NUM; j++)			{			print_message(names[D_CBC_IDEA],c[D_CBC_IDEA][j],lengths[j]);			Time_F(START,usertime);			for (count=0,run=1; COND(c[D_CBC_IDEA][j]); count++)				idea_cbc_encrypt(buf,buf,					(unsigned long)lengths[j],&idea_ks,					iv,IDEA_ENCRYPT);			d=Time_F(STOP,usertime);			BIO_printf(bio_err,"%ld %s's in %.2fs\n",				count,names[D_CBC_IDEA],d);			results[D_CBC_IDEA][j]=((double)count)/d*lengths[j];			}		}#endif#ifndef NO_RC2	if (doit[D_CBC_RC2])		{		for (j=0; j<SIZE_NUM; j++)			{			print_message(names[D_CBC_RC2],c[D_CBC_RC2][j],lengths[j]);			Time_F(START,usertime);			for (count=0,run=1; COND(c[D_CBC_RC2][j]); count++)				RC2_cbc_encrypt(buf,buf,					(unsigned long)lengths[j],&rc2_ks,					iv,RC2_ENCRYPT);			d=Time_F(STOP,usertime);			BIO_printf(bio_err,"%ld %s's in %.2fs\n",				count,names[D_CBC_RC2],d);			results[D_CBC_RC2][j]=((double)count)/d*lengths[j];			}		}#endif#ifndef NO_RC5	if (doit[D_CBC_RC5])		{		for (j=0; j<SIZE_NUM; j++)			{			print_message(names[D_CBC_RC5],c[D_CBC_RC5][j],lengths[j]);			Time_F(START,usertime);			for (count=0,run=1; COND(c[D_CBC_RC5][j]); count++)				RC5_32_cbc_encrypt(buf,buf,					(unsigned long)lengths[j],&rc5_ks,					iv,RC5_ENCRYPT);			d=Time_F(STOP,usertime);			BIO_printf(bio_err,"%ld %s's in %.2fs\n",				count,names[D_CBC_RC5],d);			results[D_CBC_RC5][j]=((double)count)/d*lengths[j];			}		}#endif#ifndef NO_BF	if (doit[D_CBC_BF])		{		for (j=0; j<SIZE_NUM; j++)			{			print_message(names[D_CBC_BF],c[D_CBC_BF][j],lengths[j]);			Time_F(START,usertime);			for (count=0,run=1; COND(c[D_CBC_BF][j]); count++)				BF_cbc_encrypt(buf,buf,					(unsigned long)lengths[j],&bf_ks,					iv,BF_ENCRYPT);			d=Time_F(STOP,usertime);			BIO_printf(bio_err,"%ld %s's in %.2fs\n",				count,names[D_CBC_BF],d);			results[D_CBC_BF][j]=((double)count)/d*lengths[j];			}		}#endif#ifndef NO_CAST	if (doit[D_CBC_CAST])		{		for (j=0; j<SIZE_NUM; j++)			{			print_message(names[D_CBC_CAST],c[D_CBC_CAST][j],lengths[j]);			Time_F(START,usertime);			for (count=0,run=1; COND(c[D_CBC_CAST][j]); count++)				CAST_cbc_encrypt(buf,buf,					(unsigned long)lengths[j],&cast_ks,					iv,CAST_ENCRYPT);			d=Time_F(STOP,usertime);			BIO_printf(bio_err,"%ld %s's in %.2fs\n",				count,names[D_CBC_CAST],d);			results[D_CBC_CAST][j]=((double)count)/d*lengths[j];			}		}#endif	RAND_pseudo_bytes(buf,36);#ifndef NO_RSA	for (j=0; j<RSA_NUM; j++)		{		int ret;		if (!rsa_doit[j]) continue;		ret=RSA_sign(NID_md5_sha1, buf,36, buf2, &rsa_num, rsa_key[j]);		if (ret == 0)			{			BIO_printf(bio_err,"RSA sign failure.  No RSA sign will be done.\n");			ERR_print_errors(bio_err);			rsa_count=1;			}		else			{			pkey_print_message("private","rsa",				rsa_c[j][0],rsa_bits[j],				RSA_SECONDS);/*			RSA_blinding_on(rsa_key[j],NULL); */			Time_F(START,usertime);			for (count=0,run=1; COND(rsa_c[j][0]); count++)				{				ret=RSA_sign(NID_md5_sha1, buf,36, buf2,					&rsa_num, rsa_key[j]);				if (ret == 0)					{					BIO_printf(bio_err,						"RSA sign failure\n");					ERR_print_errors(bio_err);					count=1;					break;					}				}			d=Time_F(STOP,usertime);			BIO_printf(bio_err,				"%ld %d bit private RSA's in %.2fs\n",				count,rsa_bits[j],d);			rsa_results[j][0]=d/(double)count;			rsa_count=count;			}#if 1		ret=RSA_verify(NID_md5_sha1, buf,36, buf2, rsa_num, rsa_key[j]);		if (ret <= 0)			{			BIO_printf(bio_err,"RSA verify failure.  No RSA verify will be done.\n");			ERR_print_errors(bio_err);			dsa_doit[j] = 0;			}		else			{			pkey_print_message("public","rsa",				rsa_c[j][1],rsa_bits[j],				RSA_SECONDS);			Time_F(START,usertime);			for (count=0,run=1; COND(rsa_c[j][1]); count++)				{				ret=RSA_verify(NID_md5_sha1, buf,36, buf2,					rsa_num, rsa_key[j]);				if (ret == 0)					{					BIO_printf(bio_err,						"RSA verify failure\n");					ERR_print_errors(bio_err);					count=1;					break;					}				}			d=Time_F(STOP,usertime);			BIO_printf(bio_err,				"%ld %d bit public RSA's in %.2fs\n",				count,rsa_bits[j],d);			rsa_results[j][1]=d/(double)count;			}#endif		if (rsa_count <= 1)			{			/* if longer than 10s, don't do any more */			for (j++; j<RSA_NUM; j++)				rsa_doit[j]=0;			}		}#endif	RAND_pseudo_bytes(buf,20);#ifndef NO_DSA	if (RAND_status() != 1)		{		RAND_seed(rnd_seed, sizeof rnd_seed);		rnd_fake = 1;		}	for (j=0; j<DSA_NUM; j++)		{		unsigned int kk;		int ret;		if (!dsa_doit[j]) continue;		DSA_generate_key(dsa_key[j]);/*		DSA_sign_setup(dsa_key[j],NULL); */		ret=DSA_sign(EVP_PKEY_DSA,buf,20,buf2,			&kk,dsa_key[j]);		if (ret == 0)			{			BIO_printf(bio_err,"DSA sign failure.  No DSA sign will be done.\n");			ERR_print_errors(bio_err);			rsa_count=1;			}		else			{			pkey_print_message("sign","dsa",				dsa_c[j][0],dsa_bits[j],				DSA_SECONDS);			Time_F(START,usertime);			for (count=0,run=1; COND(dsa_c[j][0]); count++)				{				ret=DSA_sign(EVP_PKEY_DSA,buf,20,buf2,					&kk,dsa_key[j]);				if (ret == 0)					{					BIO_printf(bio_err,						"DSA sign failure\n");					ERR_print_errors(bio_err);					count=1;					break;					}				}			d=Time_F(STOP,usertime);			BIO_printf(bio_err,"%ld %d bit DSA signs in %.2fs\n",				count,dsa_bits[j],d);			dsa_results[j][0]=d/(double)count;			rsa_count=count;			}		ret=DSA_verify(EVP_PKEY_DSA,buf,20,buf2,			kk,dsa_key[j]);		if (ret <= 0)			{			BIO_printf(bio_err,"DSA verify failure.  No DSA verify will be done.\n");			ERR_print_errors(bio_err);			dsa_doit[j] = 0;			}		else			{			pkey_print_message("verify","dsa",				dsa_c[j][1],dsa_bits[j],				DSA_SECONDS);			Time_F(START,usertime);			for (count=0,run=1; COND(dsa_c[j][1]); count++)				{				ret=DSA_verify(EVP_PKEY_DSA,buf,20,buf2,					kk,dsa_key[j]);				if (ret <= 0)					{					BIO_printf(bio_err,						"DSA verify failure\n");					ERR_print_errors(bio_err);					count=1;					break;					}				}			d=Time_F(STOP,usertime);			BIO_printf(bio_err,"%ld %d bit DSA verify in %.2fs\n",				count,dsa_bits[j],d);			dsa_results[j][1]=d/(double)count;			}		if (rsa_count <= 1)			{			/* if longer than 10s, don't do any more */			for (j++; j<DSA_NUM; j++)				dsa_doit[j]=0;			}		}	if (rnd_fake) RAND_cleanup();#endif	fprintf(stdout,"%s\n",SSLeay_version(SSLEAY_VERSION));        fprintf(stdout,"%s\n",SSLeay_version(SSLEAY_BUILT_ON));	printf("options:");	printf("%s ",BN_options());#ifndef NO_MD2	printf("%s ",MD2_options());#endif#ifndef NO_RC4	printf("%s ",RC4_options());#endif#ifndef NO_DES	printf("%s ",des_options());#endif#ifndef NO_IDEA	printf("%s ",idea_options());#endif#ifndef NO_BF	printf("%s ",BF_options());#endif	fprintf(stdout,"\n%s\n",SSLeay_version(SSLEAY_CFLAGS));	if (pr_header)		{		fprintf(stdout,"The 'numbers' are in 1000s of bytes per second processed.\n"); 		fprintf(stdout,"type        ");		for (j=0;  j<SIZE_NUM; j++)			fprintf(stdout,"%7d bytes",lengths[j]);		fprintf(stdout,"\n");		}	for (k=0; k<ALGOR_NUM; k++)		{		if (!doit[k]) continue;		fprintf(stdout,"%-13s",names[k]);		for (j=0; j<SIZE_NUM; j++)			{			if (results[k][j] > 10000)				fprintf(stdout," %11.2fk",results[k][j]/1e3);			else				fprintf(stdout," %11.2f ",results[k][j]);			}		fprintf(stdout,"\n");		}#ifndef NO_RSA	j=1;	for (k=0; k<RSA_NUM; k++)		{		if (!rsa_doit[k]) continue;		if (j)			{			printf("%18ssign    verify    sign/s verify/s\n"," ");			j=0;			}		fprintf(stdout,"rsa %4u bits %8.4fs %8.4fs %8.1f %8.1f",			rsa_bits[k],rsa_results[k][0],rsa_results[k][1],			1.0/rsa_results[k][0],1.0/rsa_results[k][1]);		fprintf(stdout,"\n");		}#endif#ifndef NO_DSA	j=1;	for (k=0; k<DSA_NUM; k++)		{		if (!dsa_doit[k]) continue;		if (j)	{			printf("%18ssign    verify    sign/s verify/s\n"," ");			j=0;			}		fprintf(stdout,"dsa %4u bits %8.4fs %8.4fs %8.1f %8.1f",			dsa_bits[k],dsa_results[k][0],dsa_results[k][1],			1.0/dsa_results[k][0],1.0/dsa_results[k][1]);		fprintf(stdout,"\n");		}#endif	mret=0;end:	if (buf != NULL) OPENSSL_free(buf);	if (buf2 != NULL) OPENSSL_free(buf2);#ifndef NO_RSA	for (i=0; i<RSA_NUM; i++)		if (rsa_key[i] != NULL)			RSA_free(rsa_key[i]);#endif#ifndef NO_DSA	for (i=0; i<DSA_NUM; i++)		if (dsa_key[i] != NULL)			DSA_free(dsa_key[i]);#endif	EXIT(mret);	}static void print_message(char *s, long num, int length)	{#ifdef SIGALRM	BIO_printf(bio_err,"Doing %s for %ds on %d size blocks: ",s,SECONDS,length);	(void)BIO_flush(bio_err);	alarm(SECONDS);#else	BIO_printf(bio_err,"Doing %s %ld times on %d size blocks: ",s,num,length);	(void)BIO_flush(bio_err);#endif#ifdef LINT	num=num;#endif	}static void pkey_print_message(char *str, char *str2, long num, int bits,	     int tm)	{#ifdef SIGALRM	BIO_printf(bio_err,"Doing %d bit %s %s's for %ds: ",bits,str,str2,tm);	(void)BIO_flush(bio_err);	alarm(RSA_SECONDS);#else	BIO_printf(bio_err,"Doing %ld %d bit %s %s's: ",num,bits,str,str2);	(void)BIO_flush(bio_err);#endif#ifdef LINT	num=num;#endif	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -