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

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

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

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

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

示例1: EC_KEY_free

bool CKey::SetSecret(const CSecret& vchSecret, bool fCompressed){    EC_KEY_free(pkey);    pkey = EC_KEY_new_by_curve_name(NID_secp256k1);    if (pkey == NULL)        throw key_error("CKey::SetSecret() : EC_KEY_new_by_curve_name failed");    if (vchSecret.size() != 32)        throw key_error("CKey::SetSecret() : secret must be 32 bytes");    BIGNUM *bn = BN_bin2bn(&vchSecret[0],32,BN_new());    if (bn == NULL)        throw key_error("CKey::SetSecret() : BN_bin2bn failed");    if (!EC_KEY_regenerate_key(pkey,bn))    {        BN_clear_free(bn);        throw key_error("CKey::SetSecret() : EC_KEY_regenerate_key failed");    }    BN_clear_free(bn);    fSet = true;    if (fCompressed || fCompressedPubKey)        SetCompressedPubKey();    return true;}
开发者ID:shriishrii,项目名称:csap,代码行数:22,


示例2: cmd_ECDHParameters

/* ECDH temporary parameters */static int cmd_ECDHParameters(SSL_CONF_CTX *cctx, const char *value){    int rv = 1;    EC_KEY *ecdh;    int nid;    nid = EC_curve_nist2nid(value);    if (nid == NID_undef)        nid = OBJ_sn2nid(value);    if (nid == 0)        return 0;    ecdh = EC_KEY_new_by_curve_name(nid);    if (!ecdh)        return 0;    if (cctx->ctx)        rv = SSL_CTX_set_tmp_ecdh(cctx->ctx, ecdh);    else if (cctx->ssl)        rv = SSL_set_tmp_ecdh(cctx->ssl, ecdh);    EC_KEY_free(ecdh);    return rv > 0;}
开发者ID:AndreV84,项目名称:openssl,代码行数:23,


示例3: initialize_ecdh

static voidinitialize_ecdh(void){#if (OPENSSL_VERSION_NUMBER >= 0x0090800fL) && !defined(OPENSSL_NO_ECDH)	EC_KEY	   *ecdh;	int			nid;	nid = OBJ_sn2nid(SSLECDHCurve);	if (!nid)		ereport(FATAL,				(errmsg("ECDH: unrecognized curve name: %s", SSLECDHCurve)));	ecdh = EC_KEY_new_by_curve_name(nid);	if (!ecdh)		ereport(FATAL,				(errmsg("ECDH: could not create key")));	SSL_CTX_set_options(SSL_context, SSL_OP_SINGLE_ECDH_USE);	SSL_CTX_set_tmp_ecdh(SSL_context, ecdh);	EC_KEY_free(ecdh);#endif}
开发者ID:RelentlessMike,项目名称:postgres,代码行数:22,


示例4: soter_asym_ka_init

SOTER_PRIVATE_APIsoter_status_t soter_asym_ka_init(soter_asym_ka_t* asym_ka_ctx, soter_asym_ka_alg_t alg){    EVP_PKEY* pkey;    int nid = soter_alg_to_curve_nid(alg);    if ((!asym_ka_ctx) || (0 == nid)) {        return SOTER_INVALID_PARAMETER;    }    pkey = EVP_PKEY_new();    if (!pkey) {        return SOTER_NO_MEMORY;    }    if (!EVP_PKEY_set_type(pkey, EVP_PKEY_EC)) {        EVP_PKEY_free(pkey);        return SOTER_FAIL;    }    asym_ka_ctx->pkey_ctx = EVP_PKEY_CTX_new(pkey, NULL);    if (!(asym_ka_ctx->pkey_ctx)) {        EVP_PKEY_free(pkey);        return SOTER_FAIL;    }    EC_KEY* ec = EC_KEY_new_by_curve_name(nid);    if (!ec) {        EVP_PKEY_CTX_free(asym_ka_ctx->pkey_ctx);        return SOTER_FAIL;    }    if (1 != EVP_PKEY_set1_EC_KEY(pkey, ec)) {        EVP_PKEY_CTX_free(asym_ka_ctx->pkey_ctx);        EC_KEY_free(ec);        return SOTER_FAIL;    }    EC_KEY_free(ec);    return SOTER_SUCCESS;}
开发者ID:cossacklabs,项目名称:themis,代码行数:39,


示例5: opensslecdsa_generate

static isc_result_topensslecdsa_generate(dst_key_t *key, int unused, void (*callback)(int)) {	isc_result_t ret;	EVP_PKEY *pkey;	EC_KEY *eckey = NULL;	int group_nid;	REQUIRE(key->key_alg == DST_ALG_ECDSA256 ||		key->key_alg == DST_ALG_ECDSA384);	UNUSED(unused);	UNUSED(callback);	if (key->key_alg == DST_ALG_ECDSA256)		group_nid = NID_X9_62_prime256v1;	else		group_nid = NID_secp384r1;	eckey = EC_KEY_new_by_curve_name(group_nid);	if (eckey == NULL)		return (dst__openssl_toresult(DST_R_OPENSSLFAILURE));	if (EC_KEY_generate_key(eckey) != 1)		DST_RET (dst__openssl_toresult(DST_R_OPENSSLFAILURE));	pkey = EVP_PKEY_new();	if (pkey == NULL)		DST_RET (ISC_R_NOMEMORY);	if (!EVP_PKEY_set1_EC_KEY(pkey, eckey)) {		EVP_PKEY_free(pkey);		DST_RET (ISC_R_FAILURE);	}	key->keydata.pkey = pkey;	ret = ISC_R_SUCCESS; err:	if (eckey != NULL)		EC_KEY_free(eckey);	return (ret);}
开发者ID:phonehold,项目名称:bind-9,代码行数:39,


示例6: SSL_CTX_set_options

void SSLCommon::load_ecdh_params(SSL_CTX *ctx, Logger &logger){	SSL_CTX_set_options(ctx,			SSL_OP_SINGLE_DH_USE |			SSL_OP_SINGLE_ECDH_USE |			SSL_OP_NO_SSLv2);	/* Cheesily pick an elliptic curve to use with elliptic curve ciphersuites.	 * We just hardcode a single curve which is reasonably decent.	 * See http://www.mail-archive.com/[email
C++ EC_KEY_set_conv_form函数代码示例
C++ EC_KEY_get0_public_key函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。