这篇教程C++ BN_bn2dec函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中BN_bn2dec函数的典型用法代码示例。如果您正苦于以下问题:C++ BN_bn2dec函数的具体用法?C++ BN_bn2dec怎么用?C++ BN_bn2dec使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了BN_bn2dec函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: 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,
示例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: SSL_X509_getBC/* retrieve basic constraints ingredients */BOOL SSL_X509_getBC(X509 *cert, int *ca, int *pathlen){ X509_EXTENSION *ext; BASIC_CONSTRAINTS *bc; int idx; BIGNUM *bn = NULL; char *cp; if ((idx = X509_get_ext_by_NID(cert, NID_basic_constraints, -1)) < 0) return FALSE; ext = X509_get_ext(cert, idx); if (ext == NULL) return FALSE; if ((bc = (BASIC_CONSTRAINTS *)X509V3_EXT_d2i(ext)) == NULL) return FALSE; *ca = bc->ca; *pathlen = -1 /* unlimited */; if (bc->pathlen != NULL) { if ((bn = ASN1_INTEGER_to_BN(bc->pathlen, NULL)) == NULL) return FALSE; if ((cp = BN_bn2dec(bn)) == NULL) return FALSE; *pathlen = atoi(cp); OPENSSL_free(cp); BN_free(bn); } BASIC_CONSTRAINTS_free(bc); return TRUE;}
开发者ID:AzerTyQsdF,项目名称:osx,代码行数:30,
示例4: decode_varint /** * Decode a two's complement varint (e.g. Java BigInteger) byte array into its * numerical value * * @param byte_array Two's complement varint byte array * @return Numerical value of the varint */ static std::string decode_varint(const char *byte_array) { std::string result; // Assuming positive numbers only //TODO: Add check for bit to return negative values BIGNUM *value = BN_bin2bn(reinterpret_cast<unsigned const char *>(byte_array), static_cast<int>(strlen(byte_array)), NULL); if (value) { char* decimal = BN_bn2dec(value); result = std::string(decimal); OPENSSL_free(decimal); //Normalize - strip leading zeros for (unsigned int n = 0; n < result.size(); ++n) { if (result.at(n) == '0') { result.replace(n, 1, ""); } else { break; } } if (result.size() == 0) { result = "0"; } } BN_free(value); return result; }
开发者ID:jeremyschlatter,项目名称:cpp-driver,代码行数:33,
示例5: tls_parse_bigint/* Convert ASN1_INTEGER to decimal string string */static inttls_parse_bigint(struct tls *ctx, const ASN1_INTEGER *asn1int, const char **dst_p){ long small; BIGNUM *big; char *tmp, buf[64]; *dst_p = NULL; small = ASN1_INTEGER_get(asn1int); if (small < 0) { big = ASN1_INTEGER_to_BN(asn1int, NULL); if (big) { tmp = BN_bn2dec(big); if (tmp) *dst_p = strdup(tmp); OPENSSL_free(tmp); } BN_free(big); } else { snprintf(buf, sizeof buf, "%lu", small); *dst_p = strdup(buf); } if (*dst_p) return 0; tls_set_errorx(ctx, "cannot parse serial"); return -1;}
开发者ID:greenplum-db,项目名称:libusual,代码行数:29,
|