亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bn.c

?? CryptoExtensions1.0 for Java源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
BIGNUM *r;BIGNUM *a;	{	BN_ULONG *ap,*rp,t,c;	int i;	if (bn_is_zero(a))		{		bn_zero(r);		return(1);		}	if (a != r)		{		if (bn_expand(r,a->top*BITS2) == NULL) return(0);		r->top=a->top;		r->neg=a->neg;		}	ap=a->d;	rp=r->d;	c=0;	for (i=a->top-1; i>=0; i--)		{		t=ap[i];		rp[i]=((t>>1)&MASK2)|c;		c=(t&1)?TBIT:0;		}	bn_fix_top(r);	return(1);	}int bn_lshift(r, a, n)BIGNUM *r;BIGNUM *a;int n;	{	int i,nw,lb,rb;	BN_ULONG *t,*f;	BN_ULONG l;	r->neg=a->neg;	if (bn_expand(r,(a->top*BITS2)+n) == NULL) return(0);	nw=n/BITS2;	lb=n%BITS2;	rb=BITS2-lb;	f=a->d;	t=r->d;	t[a->top+nw]=0;	if (lb == 0)		for (i=a->top-1; i>=0; i--)			t[nw+i]=f[i];	else		for (i=a->top-1; i>=0; i--)			{			l=f[i];			t[nw+i+1]|=(l>>rb)&MASK2;			t[nw+i]=(l<<lb)&MASK2;			}	memset(t,0,nw*sizeof(t[0]));/*	for (i=0; i<nw; i++)		t[i]=0;*/	r->top=a->top+nw+1;	bn_fix_top(r);	return(1);	}int bn_rshift(r, a, n)BIGNUM *r;BIGNUM *a;int n;	{	int i,nw,lb,rb;	BN_ULONG *t,*f;	BN_ULONG l;	r->neg=a->neg;	nw=n/BITS2;	rb=n%BITS2;	lb=BITS2-rb;	if (nw > a->top)		{		bn_zero(r);		return(1);		}	if (bn_expand(r,(a->top-nw+1)*BITS2) == NULL) return(0);	f=a->d;	t=r->d;	if (rb == 0)		for (i=nw; i<a->top; i++)			t[i-nw]=f[i];	else		{		l=f[nw];		for (i=nw; i<a->top; i++)			{			t[i-nw] =(l>>rb)&MASK2;			l=f[i+1];			t[i-nw]|=(l<<lb)&MASK2;			}		}	r->top=a->top-nw;	t[r->top]=0;	bn_fix_top(r);	return(1);	}int bn_clear_bit(a, n)BIGNUM *a;int n;	{	int i,j;	i=n/BITS2;	j=n%BITS2;	if (a->top <= i) return(0);	return(a->d[i]&(~(1L<<j)));	}int bn_is_bit_set(a, n)BIGNUM *a;int n;	{	int i,j;	i=n/BITS2;	j=n%BITS2;	if (a->top <= i) return(0);	return((a->d[i]&(1L<<j))?1:0);	}/* rem != m */int bn_mod(rem, m, d)BIGNUM *rem;BIGNUM *m;BIGNUM *d;	{	int i,nm,nd,tos;	BIGNUM *dv;	if (bn_Ucmp(m,d) < 0)		return((bn_copy(rem,m) == NULL)?0:1);	tos=bn_get_tos();	dv=bn_get_reg();	if (dv == NULL) return(0);	if (!bn_copy(rem,m)) return(0);	nm=bn_num_bits(rem);	nd=bn_num_bits(d);	if (!bn_lshift(dv,d,nm-nd)) return(0);	for (i=nm-nd; i>=0; i--)		{		if (bn_cmp(rem,dv) >= 0)			{			if (!bn_sub(rem,rem,dv)) return(0);			}		if (!bn_rshift1(dv,dv)) return(0);		}	bn_set_tos(tos);	return(1);	}static int mod_init=1;static int mod_bits,mod_shift;static BIGNUM *mod_value;static BIGNUM *mod_shifts[BITS2];static BN_ULONG *mod_shiftp[BITS2];static int mod_top[BITS2];int bn_mod2_init(d, max_bits)BIGNUM *d;int max_bits;	{	int i;	if (mod_init)		{		mod_init=0;		for (i=0; i<BITS2; i++)			{			mod_shifts[i]=bn_new();			if (mod_shifts[i] == NULL)				{ return(0); }			}		mod_value=bn_new();		if (mod_value == NULL)			{ return(0); }		}	if (bn_copy(mod_value,d) == NULL) return(0);	mod_bits=bn_num_bits(d);	mod_shift=max_bits-mod_bits;	if (!bn_lshift(mod_shifts[0],d,mod_shift)) return(0);	for (i=1; i<BITS2; i++)		if (!bn_rshift1(mod_shifts[i],mod_shifts[i-1])) return(0);	for (i=0; i<BITS2; i++)		{		mod_shiftp[i]=mod_shifts[i]->d;		mod_top[i]=mod_shifts[i]->top;		}	return(1);	}/* don't use :-( */int bn_mod2(ret, m, d)BIGNUM *ret;BIGNUM *m;BIGNUM *d;	{	int i,j,nm,nd,x;	int w;	if (bn_copy(ret,m) == NULL) return(0);	if (bn_cmp(m,mod_value) < 0)		return(1);	nm=bn_num_bits(m);	nd=mod_bits;	i=nm-nd;	j=mod_shift-i;	/* take off what we are shifted,			 * how far do we need to go back */	w=j/BITS2;	/* number of words to jump back */	x=j%BITS2;	/* which shift to start on */	if (w != 0)		for (i=0; i<BITS2; i++) 			{			j=w+(x>i);			mod_shifts[i]->top-=j;			mod_shifts[i]->d+=j;			}		for (i=nm-nd; i>=0; i--)		{		if (bn_cmp(ret,mod_shifts[x]) >= 0)			{			if (!bn_sub(ret,ret,mod_shifts[x])) return(0);			}		mod_shifts[x]->top--;		mod_shifts[x]->d++;		x=(x+1)%BITS2;		}	for (i=0; i<BITS2; i++)		{		mod_shifts[i]->d=mod_shiftp[i];		mod_shifts[i]->top=mod_top[i];		}#ifdef LINT	d->d[0]=d->d[0];#endif	return(1);	}int bn_div(dv, rem, m, d)BIGNUM *dv;BIGNUM *rem;BIGNUM *m;BIGNUM *d;	{	int i,nm,nd;	BIGNUM *D;	int tos;	/* Check for divide by zero */	if (bn_is_zero(d))		return NULL;	if (bn_cmp(m,d) < 0)		{		if (rem != NULL)			{ if (bn_copy(rem,m) == NULL) return(0); }		if (dv != NULL) bn_zero(dv);		return(1);		}	tos=bn_get_tos();	D=bn_get_reg();	if (dv == NULL) dv=bn_get_reg();	if (rem == NULL) rem=bn_get_reg();	if ((D == NULL) || (dv == NULL) || (rem == NULL))		return(0);	nd=bn_num_bits(d);	nm=bn_num_bits(m);	if (bn_copy(D,d) == NULL) return(0);	if (bn_copy(rem,m) == NULL) return(0);	/* The next 2 are needed so we can do a dv->d[0]|=1 later	 * since bn_lshift1 will only work once there is a value :-) */	bn_zero(dv);	dv->top=1;	if (!bn_lshift(D,D,nm-nd)) return(0);	for (i=nm-nd; i>=0; i--)		{		if (!bn_lshift1(dv,dv)) return(0);		if (bn_cmp(rem,D) >= 0)			{			dv->d[0]|=1;			if (!bn_sub(rem,rem,D)) return(0);			}/* CAN IMPROVE */		if (!bn_rshift1(D,D)) return(0);		}	dv->neg=m->neg^d->neg;	bn_set_tos(tos);	return(1);	}BN_ULONG bn_mod_word(a, w)BIGNUM *a;unsigned long w;	{	BN_ULONG ret;	int i;	ret=0;	for (i=a->top-1; i>=0; i--)		{#ifndef RSA_LLONG		ret=((ret<<BITS4)|((a->d[i]>>BITS4)&MASK2l))%w;		ret=((ret<<BITS4)|(a->d[i]&MASK2l))%w;#else		ret=(((BN_ULLONG)ret<<BITS2)|a->d[i])%w;#endif		}	return(ret);	}int bn_add_word(a, w)BIGNUM *a;unsigned long w;	{	BN_ULONG l;	int i;	if (bn_expand(a,a->top*BITS2+1) == NULL) return(0);	i=0;	for (;;)		{		l=(a->d[i]+w)&MASK2;		a->d[i]=l;		if (w > l)			w=1;		else			break;		i++;		}	if (i >= a->top)		a->top++;	return(1);	}int bn_mul_mod(ret, a, b, m)BIGNUM *ret;BIGNUM *a;BIGNUM *b;BIGNUM *m;	{	BIGNUM *t;	int tos,r=1;	tos=bn_get_tos();	t=bn_get_reg();	if (t == NULL) return(0);	if (!bn_mul(t,a,b)) { r=0; goto err; }	if (!bn_mod(ret,t,m)) { r=0; goto err; }err:	bn_set_tos(tos);	return(r);	}#ifndef RECP_MUL_MOD/* this one works */int bn_mod_exp(r,a,p,m)BIGNUM *r,*a,*p,*m;	{	int tos,i,bits;	BIGNUM *v=NULL,*tmp=NULL;	tos=bn_get_tos();	if (v == NULL) v=bn_get_reg();	if (tmp == NULL) tmp=bn_get_reg();	if ((v == NULL) || (tmp == NULL)) goto err;	if (bn_copy(v,a) == NULL) goto err;	bits=bn_num_bits(p);	if (p->d[0]&1)		{ if (bn_copy(r,a) == NULL) goto err; }	else	{ if (bn_one(r) == NULL) goto err; }	if (!bn_mod2_init(m,m->top*3*BITS2)) goto err;	for (i=1; i<bits; i++)		{		if (!bn_mul(tmp,v,v)) goto err;		if (!bn_mod2(v,tmp,m)) goto err;		if (bn_is_bit_set(p,i))			{			if (!bn_mul(tmp,r,v)) goto err;			if (!bn_mod2(r,tmp,m)) goto err;			}		}	bn_set_tos(tos);	return(1);err:	bn_set_tos(tos);	return(0);	}#elseint bn_mod_exp(r, a, p, m)BIGNUM *r;BIGNUM *a;BIGNUM *p;BIGNUM *m;	{	int tos,nb,i,bits;	BIGNUM *v=NULL,*tmp=NULL;	BIGNUM *d=NULL;	tos=bn_get_tos();	if (v == NULL) v=bn_get_reg();	if (tmp == NULL) tmp=bn_get_reg();	if (d == NULL) d=bn_get_reg();	if ((v == NULL) || (tmp == NULL) || (d == NULL)) goto err;	if (!bn_mod(v,a,m)) goto err;	bits=bn_num_bits(p);	if (p->d[0]&1)		{ if (!bn_mod(r,a,m)) goto err; }	else	{ if (!bn_one(r)) goto err; }	nb=bn_reciprical(d,m);	if (nb == -1) goto err;	for (i=1; i<bits; i++)		{		if (!bn_modmul_recip(v,v,v,m,d,nb)) goto err;		if (bn_is_bit_set(p,i))			{ if (!bn_modmul_recip(r,r,v,m,d,nb)) goto err; }		}	bn_set_tos(tos);	return(1);err:	bn_set_tos(tos);	return(0);	}#endifint bn_modmul_recip(r, x, y, m, i, nb)BIGNUM *r;BIGNUM *x;BIGNUM *y;BIGNUM *m;BIGNUM *i;int nb;	{	int tos,j;	BIGNUM *a,*b,*c,*d;	tos=bn_get_tos();	a=bn_get_reg();	b=bn_get_reg();	c=bn_get_reg();	d=bn_get_reg();	if ((a == NULL) || (b == NULL) || (c == NULL) || (d == NULL))		goto err;	if (!bn_mul(a,x,y)) goto err;	if (!bn_rshift(d,a,nb-1)) goto err;	if (!bn_mul(b,d,i)) goto err;	if (!bn_rshift(c,b,nb-1)) goto err;	if (!bn_mul(b,m,c)) goto err;	if (!bn_sub(r,a,b)) goto err;	j=0;	while (bn_cmp(r,m) >= 0)		{		if (j++ > 2)			goto err;		if (!bn_sub(r,r,m))			goto err;		}	bn_set_tos(tos);	return(1);err:	bn_set_tos(tos);	return(0);	}int bn_reciprical(r, m)BIGNUM *r;BIGNUM *m;	{	int nm,tos;	BIGNUM *t;	tos=bn_get_tos();	t=bn_get_reg();	if (t == NULL) goto err;	if (!bn_one(t)) goto err;	nm=bn_num_bits(m);	if (!bn_lshift(t,t,nm*2)) goto err;	if (!bn_div(r,NULL,t,m)) goto err;	bn_set_tos(tos);	return(nm+1);err:	bn_set_tos(tos);	return(-1);	}char *bn_bn2ascii(a)BIGNUM *a;	{	int i,j,v,z=0;	static char *hex="0123456789ABCDEF";	static char buf[1024];	char *p=buf;	if ((a->top*BYTES*2) > sizeof(buf)+2)		return("buffer too small in bn_bn2ascii");	if (a->neg) *(p++)='-';	if (a->top == 0) *(p++)='0';	for (i=a->top-1; i >=0; i--)		{		for (j=BITS2-4; j >= 0; j-=4)			{			/* strip leading zeros */			v=(a->d[i]>>j)&0x0f;			if (z || (v != 0))				{				*(p++)=hex[v];				z=1;				}			}		}	return(buf);	}int bn_gcd(r,in_a,in_b)BIGNUM *r,*in_a,*in_b;	{	BIGNUM *a,*b,*t;	int tos,ret=0;	tos=bn_get_tos();	a=bn_get_reg();	b=bn_get_reg();	if ((a == NULL) || (b == NULL)) goto err;	if (!bn_copy(a,in_a)) goto err;	if (!bn_copy(b,in_b)) goto err;	if (bn_cmp(a,b) < 0) { t=a; a=b; b=t; }	t=euclid(a,b);	if (t == NULL) goto err;	r=bn_copy(r,t);	ret=1;err:	bn_set_tos(tos);	return(ret);	}static BIGNUM *euclid(a,b)BIGNUM *a,*b;	{	BIGNUM *t;	int shifts=0;	for (;;)		{		if (bn_is_zero(b))			break;		if ((a->d[0]&1))	/* a is odd */			{			if (b->d[0]&1)  /* b is odd */				{				if (!bn_sub(a,a,b)) goto err;				if (!bn_rshift1(a,a)) goto err;				if (bn_cmp(a,b) < 0)					{ t=a; a=b; b=t; }				}			else		/* a odd - b even */				{				if (!bn_rshift1(b,b)) goto err;				if (bn_cmp(a,b) < 0)					{ t=a; a=b; b=t; }				}			}		else			/* a is even */			{			if (b->d[0]&1)	/* b id odd */				{				if (!bn_rshift1(a,a)) goto err;				if (bn_cmp(a,b) < 0)					{ t=a; a=b; b=t; }				}			else		/* a even - b even */				{				if (!bn_rshift1(a,a)) goto err;				if (!bn_rshift1(b,b)) goto err;				shifts++;				}			}		}	if (shifts)		{		if (!bn_lshift(a,a,shifts)) goto err;		}	return(a);err:	return(NULL);	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品在线观看播放| 欧美日韩成人高清| 亚洲v精品v日韩v欧美v专区| 精品国内二区三区| 色播五月激情综合网| 不卡欧美aaaaa| 天天影视网天天综合色在线播放| 欧美激情资源网| 911精品国产一区二区在线| 暴力调教一区二区三区| 毛片一区二区三区| 依依成人综合视频| 久久久精品日韩欧美| 欧美妇女性影城| 99久久精品免费看国产| 国内外成人在线视频| 亚洲成人av一区二区| 亚洲三级在线观看| 国产欧美日韩麻豆91| 日韩美一区二区三区| 欧美日本在线一区| 91国产成人在线| 成人av在线网站| 国产成人丝袜美腿| 麻豆91免费看| 日本欧美一区二区三区| 亚洲一区在线观看网站| 一区二区三区在线视频观看58| 国产精品视频第一区| 2014亚洲片线观看视频免费| 欧美一二三在线| 欧美日韩国产综合一区二区 | 91蜜桃在线免费视频| 丰满亚洲少妇av| 成人性生交大合| 国产夫妻精品视频| 国产一区二区三区国产| 精品一区中文字幕| 国产一区二区三区观看| 精品一区二区在线看| 久久99九九99精品| 久久99精品久久久久婷婷| 麻豆一区二区三| 久久99精品久久久| 国产综合色视频| 国产一区二区影院| 国产成a人亚洲| 99久精品国产| 91麻豆免费观看| 在线中文字幕不卡| 欧美日韩久久久一区| 宅男在线国产精品| 日韩精品一区二区三区在线 | 国产欧美一区二区精品久导航| 精品乱人伦一区二区三区| 精品久久久久香蕉网| 国产亚洲欧洲一区高清在线观看| 国产片一区二区| 亚洲靠逼com| 亚洲第一电影网| 蜜桃av噜噜一区| 国产黄色成人av| 成人免费毛片片v| 日本久久一区二区三区| 欧美日韩精品二区第二页| 日韩三级电影网址| 国产女主播视频一区二区| 自拍偷自拍亚洲精品播放| 亚洲图片欧美综合| 毛片av一区二区| av一区二区三区在线| 欧日韩精品视频| 精品久久久久一区| 中文字幕一区二区三区不卡在线 | 亚洲免费观看高清完整| 亚洲18色成人| 国产精品一区二区视频| 色婷婷久久综合| 欧美大片顶级少妇| 中文字幕在线不卡| 美女任你摸久久| 99久久婷婷国产综合精品| 欧美精品乱码久久久久久按摩 | 亚洲成人福利片| 韩国成人精品a∨在线观看| 成人免费高清视频在线观看| 欧美色精品在线视频| 久久尤物电影视频在线观看| 一区二区在线观看av| 麻豆精品一区二区| 99久久er热在这里只有精品15| 91精品欧美综合在线观看最新 | 久久伊99综合婷婷久久伊| 一区二区在线免费| 国产成人欧美日韩在线电影| 欧美日韩高清一区| 欧美国产精品一区二区三区| 午夜精品一区二区三区电影天堂| 成人精品免费网站| 日韩欧美电影在线| 亚洲韩国一区二区三区| av在线不卡网| 久久久久亚洲综合| 青青草97国产精品免费观看| 一本色道久久综合亚洲精品按摩 | 亚洲国产精品二十页| 日韩电影一二三区| 欧美主播一区二区三区| 国产精品人成在线观看免费| 麻豆91免费观看| 91精品国产色综合久久不卡蜜臀| 中文字幕一区二区不卡| 韩国v欧美v日本v亚洲v| 日韩一区二区精品葵司在线| 亚洲一区二区三区国产| 暴力调教一区二区三区| 国产欧美精品一区二区色综合| 久久精品国产精品青草| 欧美精品一卡二卡| 亚洲精品视频一区二区| 成人午夜伦理影院| 久久久久免费观看| 激情成人午夜视频| 日韩午夜在线观看视频| 日韩不卡免费视频| 欧美久久久久久久久久| 亚洲一区中文日韩| 一本大道久久精品懂色aⅴ| 国产精品情趣视频| 国产成人在线视频网站| 国产偷国产偷亚洲高清人白洁| 美女网站在线免费欧美精品| 欧美一级夜夜爽| 久久99久久久欧美国产| 日韩欧美国产综合一区| 蜜桃视频在线一区| 欧美一区二区在线免费播放| 日韩精品电影在线| 91麻豆精品国产91久久久久久久久| 亚洲国产精品久久人人爱蜜臀| 欧美又粗又大又爽| 亚洲国产一区二区视频| 欧美性xxxxx极品少妇| 亚洲伦理在线免费看| 欧美制服丝袜第一页| 亚洲观看高清完整版在线观看| 欧美日韩国产三级| 美女任你摸久久| 久久久一区二区三区捆绑**| 国产成人av电影在线观看| 国产女人18水真多18精品一级做| 成人不卡免费av| 亚洲激情在线激情| 欧美日韩国产在线观看| 九色综合国产一区二区三区| 久久久久久9999| 99久久777色| 婷婷亚洲久悠悠色悠在线播放| 欧美一区二区精品久久911| 国内成+人亚洲+欧美+综合在线| 久久久亚洲综合| 91久久免费观看| 秋霞av亚洲一区二区三| 久久综合五月天婷婷伊人| av亚洲产国偷v产偷v自拍| 亚洲一区av在线| 欧美成人伊人久久综合网| 福利一区二区在线| 1区2区3区精品视频| 欧美一级xxx| 99综合电影在线视频| 亚洲一区二区三区在线播放| 日韩一区二区视频| 成年人午夜久久久| 丝袜国产日韩另类美女| 欧美精品一区二区三区蜜桃视频| 成人综合日日夜夜| 五月天激情综合网| 日本一区二区视频在线| 欧美视频在线一区二区三区 | 波多野结衣在线aⅴ中文字幕不卡| 日韩一区在线看| 欧美一级理论片| 99久久精品免费| 喷白浆一区二区| 亚洲视频一区二区在线| 日韩欧美一二三| 91高清在线观看| 国产麻豆精品theporn| 亚洲国产精品久久久久秋霞影院| 国产日韩一级二级三级| 欧美色涩在线第一页| 不卡电影一区二区三区| 麻豆精品一二三| 亚洲国产综合色| 中文字幕日韩一区二区| 精品国产成人系列| 欧美在线看片a免费观看| 欧美一卡二卡三卡四卡| av不卡一区二区三区|