您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ BN_usub函数代码示例

51自学网 2021-06-01 19:52:19
  C++
这篇教程C++ BN_usub函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中BN_usub函数的典型用法代码示例。如果您正苦于以下问题:C++ BN_usub函数的具体用法?C++ BN_usub怎么用?C++ BN_usub使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了BN_usub函数的22个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: BN_add

int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b) {  const BIGNUM *tmp;  int a_neg = a->neg, ret;  //  a +  b	a+b  //  a + -b	a-b  // -a +  b	b-a  // -a + -b	-(a+b)  if (a_neg ^ b->neg) {    // only one is negative    if (a_neg) {      tmp = a;      a = b;      b = tmp;    }    // we are now a - b    if (BN_ucmp(a, b) < 0) {      if (!BN_usub(r, b, a)) {        return 0;      }      r->neg = 1;    } else {      if (!BN_usub(r, a, b)) {        return 0;      }      r->neg = 0;    }    return 1;  }  ret = BN_uadd(r, a, b);  r->neg = a_neg;  return ret;}
开发者ID:aaqib123,项目名称:angular_shoppingcart,代码行数:35,


示例2: BN_sub

int BN_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b){    int max;    int add = 0, neg = 0;    bn_check_top(a);    bn_check_top(b);    /*-     *  a -  b      a-b     *  a - -b      a+b     * -a -  b      -(a+b)     * -a - -b      b-a     */    if (a->neg) {        if (b->neg) {            const BIGNUM *tmp;            tmp = a;            a = b;            b = tmp;        } else {            add = 1;            neg = 1;        }    } else {        if (b->neg) {            add = 1;            neg = 0;        }    }    if (add) {        if (!BN_uadd(r, a, b))            return 0;        r->neg = neg;        return 1;    }    /* We are actually doing a - b :-) */    max = (a->top > b->top) ? a->top : b->top;    if (bn_wexpand(r, max) == NULL)        return 0;    if (BN_ucmp(a, b) < 0) {        if (!BN_usub(r, b, a))            return 0;        r->neg = 1;    } else {        if (!BN_usub(r, a, b))            return 0;        r->neg = 0;    }    bn_check_top(r);    return 1;}
开发者ID:1234-,项目名称:openssl,代码行数:56,


示例3: BN_div

int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d,	   BN_CTX *ctx)	{	int i,nm,nd;	int ret = 0;	BIGNUM *D;	bn_check_top(m);	bn_check_top(d);	if (BN_is_zero(d))		{		BNerr(BN_F_BN_DIV,BN_R_DIV_BY_ZERO);		return(0);		}	if (BN_ucmp(m,d) < 0)		{		if (rem != NULL)			{ if (BN_copy(rem,m) == NULL) return(0); }		if (dv != NULL) BN_zero(dv);		return(1);		}	BN_CTX_start(ctx);	D = BN_CTX_get(ctx);	if (dv == NULL) dv = BN_CTX_get(ctx);	if (rem == NULL) rem = BN_CTX_get(ctx);	if (D == NULL || dv == NULL || rem == NULL)		goto end;	nd=BN_num_bits(d);	nm=BN_num_bits(m);	if (BN_copy(D,d) == NULL) goto end;	if (BN_copy(rem,m) == NULL) goto end;	/* 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);	if(bn_wexpand(dv,1) == NULL) goto end;	dv->top=1;	if (!BN_lshift(D,D,nm-nd)) goto end;	for (i=nm-nd; i>=0; i--)		{		if (!BN_lshift1(dv,dv)) goto end;		if (BN_ucmp(rem,D) >= 0)			{			dv->d[0]|=1;			if (!BN_usub(rem,rem,D)) goto end;			}/* CAN IMPROVE (and have now :=) */		if (!BN_rshift1(D,D)) goto end;		}	rem->neg=BN_is_zero(rem)?0:m->neg;	dv->neg=m->neg^d->neg;	ret = 1; end:	BN_CTX_end(ctx);	return(ret);	}
开发者ID:EddieGarmon,项目名称:netduino-netmf,代码行数:60,


示例4: BN_mod_add_quick

/* BN_mod_add variant that may be used if both  a  and  b  are non-negative * and less than  m */int BN_mod_add_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m)	{	if (!BN_uadd(r, a, b)) return 0;	if (BN_ucmp(r, m) >= 0)		return BN_usub(r, r, m);	return 1;	}
开发者ID:002301,项目名称:node,代码行数:9,


示例5: BN_sub

int BN_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b) {  int add = 0, neg = 0;  const BIGNUM *tmp;  //  a -  b	a-b  //  a - -b	a+b  // -a -  b	-(a+b)  // -a - -b	b-a  if (a->neg) {    if (b->neg) {      tmp = a;      a = b;      b = tmp;    } else {      add = 1;      neg = 1;    }  } else {    if (b->neg) {      add = 1;      neg = 0;    }  }  if (add) {    if (!BN_uadd(r, a, b)) {      return 0;    }    r->neg = neg;    return 1;  }  if (BN_ucmp(a, b) < 0) {    if (!BN_usub(r, b, a)) {      return 0;    }    r->neg = 1;  } else {    if (!BN_usub(r, a, b)) {      return 0;    }    r->neg = 0;  }  return 1;}
开发者ID:aaqib123,项目名称:angular_shoppingcart,代码行数:47,


示例6: ec_GFp_simple_invert

int ec_GFp_simple_invert(const EC_GROUP *group, EC_POINT *point, BN_CTX *ctx){    if (EC_POINT_is_at_infinity(group, point) || BN_is_zero(point->Y))        /* point is its own inverse */        return 1;    return BN_usub(point->Y, group->field, point->Y);}
开发者ID:hitched97,项目名称:openssl,代码行数:8,


示例7: BN_add

/* r can == a or b */int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b){    int a_neg = a->neg, ret;    bn_check_top(a);    bn_check_top(b);    /*-     *  a +  b      a+b     *  a + -b      a-b     * -a +  b      b-a     * -a + -b      -(a+b)     */    if (a_neg ^ b->neg) {        /* only one is negative */        if (a_neg) {            const BIGNUM *tmp;            tmp = a;            a = b;            b = tmp;        }        /* we are now a - b */        if (BN_ucmp(a, b) < 0) {            if (!BN_usub(r, b, a))                return 0;            r->neg = 1;        } else {            if (!BN_usub(r, a, b))                return 0;            r->neg = 0;        }        return 1;    }    ret = BN_uadd(r, a, b);    r->neg = a_neg;    bn_check_top(r);    return ret;}
开发者ID:1234-,项目名称:openssl,代码行数:43,


示例8: BN_add

/* r can == a or b */int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b)	{	const BIGNUM *tmp;	bn_check_top(a);	bn_check_top(b);	/*  a +  b	a+b	 *  a + -b	a-b	 * -a +  b	b-a	 * -a + -b	-(a+b)	 */	if (a->neg ^ b->neg)		{		/* only one is negative */		if (a->neg)			{ tmp=a; a=b; b=tmp; }		/* we are now a - b */		if (BN_ucmp(a,b) < 0)			{			if (!BN_usub(r,b,a)) return(0);			r->neg=1;			}		else			{			if (!BN_usub(r,a,b)) return(0);			r->neg=0;			}		return(1);		}	if (a->neg) /* both are neg */		r->neg=1;	else		r->neg=0;	if (!BN_uadd(r,a,b)) return(0);	return(1);	}
开发者ID:robacklin,项目名称:uclinux-linux,代码行数:42,


示例9: fermat_question_ask

static RSA *fermat_question_ask(const RSA *rsa){  BIGNUM    *a = BN_new(),    *b = BN_new(),    *a2 = BN_new(),    *b2 = BN_new();  BIGNUM *n = rsa->n;  BIGNUM    *tmp = BN_new(),    *rem = BN_new(),    *dssdelta = BN_new();  BN_CTX *ctx = BN_CTX_new();  RSA *ret = NULL;  BN_sqrtmod(tmp, rem, n, ctx);  /* Δ = |p - q| = |a + b - a + b| = |2b| > √N  2
C++ BN_value_one函数代码示例
C++ BN_to_ASN1_INTEGER函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。