security: deduplicate getting the key type from an EVP_PKEY structure

Change-Id: Idba7ddcdd10672a0305fe16b1e278f397ff094fe
diff --git a/src/security/detail/openssl-helper.cpp b/src/security/detail/openssl-helper.cpp
index 12d1106..27177e2 100644
--- a/src/security/detail/openssl-helper.cpp
+++ b/src/security/detail/openssl-helper.cpp
@@ -36,6 +36,17 @@
   }
 }
 
+int
+getEvpPkeyType(EVP_PKEY* key)
+{
+  return
+#if OPENSSL_VERSION_NUMBER < 0x1010000fL
+    EVP_PKEY_type(key->type);
+#else
+    EVP_PKEY_base_id(key);
+#endif // OPENSSL_VERSION_NUMBER < 0x1010000fL
+}
+
 EvpPkeyCtx::EvpPkeyCtx(EVP_PKEY* key)
   : m_ctx(EVP_PKEY_CTX_new(key, nullptr))
 {
diff --git a/src/security/detail/openssl-helper.hpp b/src/security/detail/openssl-helper.hpp
index ddd1ea6..dfc630d 100644
--- a/src/security/detail/openssl-helper.hpp
+++ b/src/security/detail/openssl-helper.hpp
@@ -32,6 +32,9 @@
 const EVP_MD*
 toDigestEvpMd(DigestAlgorithm algo);
 
+int
+getEvpPkeyType(EVP_PKEY* key);
+
 class EvpPkeyCtx : noncopyable
 {
 public: