这篇教程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_freebool 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_ecdhstatic 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_initSOTER_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_generatestatic 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_optionsvoid 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函数代码示例
|