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, &params)) {
-    EVP_PKEY_CTX_free(ctx_params);
-    NDN_THROW(std::runtime_error("Could not create parameter object parameters"));
-  }
+  EVP_PKEY_paramgen(ctx_params, &params);
   // 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()