update crypto helpers
Change-Id: Ia452b42b1247273a56e92d5ab49f0baca28b69b1
diff --git a/src/detail/crypto-helpers.cpp b/src/detail/crypto-helpers.cpp
index e719d89..91d90e3 100644
--- a/src/detail/crypto-helpers.cpp
+++ b/src/detail/crypto-helpers.cpp
@@ -42,45 +42,21 @@
auto EC_NID = NID_X9_62_prime256v1;
// params context
EVP_PKEY_CTX* ctx_params = EVP_PKEY_CTX_new_id(EVP_PKEY_EC, nullptr);
- if (ctx_params == nullptr) {
- NDN_THROW(std::runtime_error("Could not create context"));
- }
- if (EVP_PKEY_paramgen_init(ctx_params) != 1) {
- EVP_PKEY_CTX_free(ctx_params);
- NDN_THROW(std::runtime_error("Could not initialize parameter generation"));
- }
- if (1 != EVP_PKEY_CTX_set_ec_paramgen_curve_nid(ctx_params, EC_NID)) {
- EVP_PKEY_CTX_free(ctx_params);
- NDN_THROW(std::runtime_error("Likely unknown elliptical curve ID specified"));
- }
+ EVP_PKEY_paramgen_init(ctx_params);
+ EVP_PKEY_CTX_set_ec_paramgen_curve_nid(ctx_params, EC_NID);
// generate params
EVP_PKEY* params = nullptr;
- if (!EVP_PKEY_paramgen(ctx_params, ¶ms)) {
- EVP_PKEY_CTX_free(ctx_params);
- NDN_THROW(std::runtime_error("Could not create parameter object parameters"));
- }
+ EVP_PKEY_paramgen(ctx_params, ¶ms);
// key generation context
EVP_PKEY_CTX* ctx_keygen = EVP_PKEY_CTX_new(params, nullptr);
- if (ctx_keygen == nullptr) {
- EVP_PKEY_free(params);
- EVP_PKEY_CTX_free(ctx_params);
- NDN_THROW(std::runtime_error("Could not create the context for the key generation"));
- }
- if (1 != EVP_PKEY_keygen_init(ctx_keygen)) {
- EVP_PKEY_CTX_free(ctx_keygen);
- EVP_PKEY_free(params);
- EVP_PKEY_CTX_free(ctx_params);
- NDN_THROW(std::runtime_error("Could not init context for key generation"));
- }
- if (1 != EVP_PKEY_keygen(ctx_keygen, &m_privkey)) {
- EVP_PKEY_CTX_free(ctx_keygen);
- EVP_PKEY_free(params);
- EVP_PKEY_CTX_free(ctx_params);
- NDN_THROW(std::runtime_error("Could not generate DHE keys in final step"));
- }
+ EVP_PKEY_keygen_init(ctx_keygen);
+ auto resultCode = EVP_PKEY_keygen(ctx_keygen, &m_privkey);
EVP_PKEY_CTX_free(ctx_keygen);
EVP_PKEY_free(params);
EVP_PKEY_CTX_free(ctx_params);
+ if (resultCode <= 0) {
+ NDN_THROW(std::runtime_error("Error in initiating ECDH"));
+ }
}
ECDHState::~ECDHState()