这篇教程C++ BN_dec2bn函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中BN_dec2bn函数的典型用法代码示例。如果您正苦于以下问题:C++ BN_dec2bn函数的具体用法?C++ BN_dec2bn怎么用?C++ BN_dec2bn使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了BN_dec2bn函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: fill_GOST94_params/* * Fill GOST 94 params, searching them in R3410_paramset array * by nid of paramset * */int fill_GOST94_params (DSA * dsa, int nid){ R3410_params *params = R3410_paramset; while (params->nid != NID_undef && params->nid != nid) params++; if (params->nid == NID_undef) { GOSTerr (GOST_F_FILL_GOST94_PARAMS, GOST_R_UNSUPPORTED_PARAMETER_SET); return 0; }#define dump_signature(a,b,c) if (dsa->p) { BN_free (dsa->p); } dsa->p = NULL; BN_dec2bn (&(dsa->p), params->p); if (dsa->q) { BN_free (dsa->q); } dsa->q = NULL; BN_dec2bn (&(dsa->q), params->q); if (dsa->g) { BN_free (dsa->g); } dsa->g = NULL; BN_dec2bn (&(dsa->g), params->a); return 1;}
开发者ID:274914765,项目名称:C,代码行数:37,
示例2: compute_mod/*--------------------------------------------------*/void compute_mod(Task * task){ BN_CTX *context; BIGNUM *r,*a,*p,*m; if(task->p==NULL){ fprintf(stderr,"Wrong Exponent/n"); exit(0); } /*Just printing out the client send numbers*/ printf("Printing the Exponent/n"); print_bignumber(task->p); printf("Printing the Prime/n"); print_bignumber(task->m); context = BN_CTX_new(); r = BN_new(); a = BN_new(); p = BN_new(); m = BN_new(); BN_dec2bn(&a,"2"); BN_dec2bn(&p,task->p); BN_dec2bn(&m,task->m); BN_mod_exp(r,a,p,m,context); printf("Response ----/n"); strcpy(task->response,BN_bn2dec(r)); print_bignumber(task->response); return;}
开发者ID:roguehit,项目名称:aos2,代码行数:32,
示例3: serverAct1int serverAct1(Server * server) { int bytes; char buf[1024]; char * bufptr = buf; char * tmpstr; printf("/n==== Этап 1 ====/n/n"); server->k = BN_new(); server->m = BN_new(); bytes = BIO_read(server->conn, buf, 1024); buf[bytes] = 0; BN_dec2bn(&server->k, buf); tmpstr = BN_bn2dec(server->k); printf("k = %s/n", tmpstr); OPENSSL_free(tmpstr); BIO_puts(server->conn, "OK"); bytes = BIO_read(server->conn, buf, 1024); buf[bytes] = 0; BN_dec2bn(&server->m, buf); tmpstr = BN_bn2dec(server->m); printf("m = %s/n", tmpstr); OPENSSL_free(tmpstr); BIO_puts(server->conn, "OK"); return 0;}
开发者ID:ei-grad,项目名称:rsazkp,代码行数:31,
示例4: mainintmain(int argc, char *argv[]){ BIGNUM *val; int ch; char *p, buf[LINE_MAX]; /* > max number of digits. */ ctx = BN_CTX_new(); val = BN_new(); if (val == NULL) errx(1, "can't initialise bignum"); while ((ch = getopt(argc, argv, "h")) != -1) switch (ch) { case 'h': hflag++; break; case '?': default: usage(); } argc -= optind; argv += optind; /* No args supplied, read numbers from stdin. */ if (argc == 0) for (;;) { if (fgets(buf, sizeof(buf), stdin) == NULL) { if (ferror(stdin)) err(1, "stdin"); exit (0); } for (p = buf; isblank(*p); ++p); if (*p == '/n' || *p == '/0') continue; if (*p == '-') errx(1, "negative numbers aren't permitted."); if (BN_dec2bn(&val, buf) == 0 && BN_hex2bn(&val, buf) == 0) errx(1, "%s: illegal numeric format.", buf); pr_fact(val); } /* Factor the arguments. */ else for (; *argv != NULL; ++argv) { if (argv[0][0] == '-') errx(1, "negative numbers aren't permitted."); if (BN_dec2bn(&val, argv[0]) == 0 && BN_hex2bn(&val, argv[0]) == 0) errx(1, "%s: illegal numeric format.", argv[0]); pr_fact(val); } exit(0);}
开发者ID:juanfra684,项目名称:DragonFlyBSD,代码行数:54,
示例5: priv_to_pubint priv_to_pub (unsigned char * const result, const size_t m, const unsigned char * const priv, const size_t n) { int ret = 0; int i = 0; BIGNUM * privbn = 0; BN_dec2bn(&privbn,"0"); BIGNUM * pow256 = 0; BN_dec2bn(&pow256,"1"); BIGNUM * one256 = 0; BN_dec2bn(&one256,"256"); const unsigned char * input_it = priv + n - 1; for (i=0; i<n; i++) { BIGNUM * input_bn = 0; char * input_str = malloc(4); sprintf(input_str,"%d",*input_it); BN_dec2bn(&input_bn,input_str); BN_CTX * ctx = BN_CTX_new(); BN_mul(input_bn, pow256, input_bn, ctx); BN_add(privbn,privbn,input_bn); BN_mul(pow256, pow256, one256, ctx); BN_free(input_bn); if (input_str != 0) { free(input_str); } BN_CTX_free(ctx); input_it--; } EC_GROUP * group = EC_GROUP_new_by_curve_name(NID_secp256k1); EC_POINT * pub_key = EC_POINT_new(group); BN_CTX * ctx = BN_CTX_new(); EC_POINT_mul(group, pub_key, privbn, 0, 0, ctx); if (m == 65) { EC_POINT_point2oct(group,pub_key,POINT_CONVERSION_UNCOMPRESSED,result,m,ctx); } else { EC_POINT_point2oct(group,pub_key,POINT_CONVERSION_COMPRESSED,result,m,ctx); } EC_GROUP_free(group); EC_POINT_free(pub_key); BN_CTX_free(ctx); BN_free(privbn); BN_free(pow256); BN_free(one256); return(0);}
开发者ID:piratelinux,项目名称:cwallet,代码行数:50,
示例6: serverAct2int serverAct2(Server * server) { int bytes; char buf[1024]; printf("/n==== Этап 2 ====/n/n"); bytes = BIO_read(server->conn, buf, 1024); buf[bytes] = 0; printf("Получен шифртекст: %s/n", buf); server->C = BN_new(); if (!BN_dec2bn(&server->C, buf)) { fprintf(stderr, "Ошибка при получении шифртекста!"); BIO_puts(server->conn, "ERR"); return 1; } BIO_puts(server->conn, "OK"); printf("Шифртест принят./n"); return 0;}
开发者ID:ei-grad,项目名称:rsazkp,代码行数:25,
示例7: dec2binstatic intdec2bin(uint8_t *out, const char *in){ int ret, l; char *tmp = NULL; BIGNUM *B; if ((NULL == (B = BN_new())) || (0 == BN_dec2bn(&B, in)) || (NULL == (tmp = BN_bn2hex(B)))) { ret = RFC6287_ERR_OPENSSL; goto err; } if (256 < (l = strlen(tmp))) { ret = RFC6287_INVALID_CHALLENGE; goto err; } if (1 < l && '0' == tmp[0]) ret = hex2bin(out, tmp + 1); else ret = hex2bin(out, tmp);err: if (NULL != tmp) OPENSSL_free(tmp); if (NULL != B) BN_free(B); return ret;}
开发者ID:sg2342,项目名称:pam_ocra,代码行数:28,
|