security: deduplicate getting the key type from an EVP_PKEY structure

Change-Id: Idba7ddcdd10672a0305fe16b1e278f397ff094fe
diff --git a/src/security/transform/public-key.cpp b/src/security/transform/public-key.cpp
index 3240cee..13b8f00 100644
--- a/src/security/transform/public-key.cpp
+++ b/src/security/transform/public-key.cpp
@@ -73,20 +73,13 @@
 {
   ENSURE_PUBLIC_KEY_LOADED(m_impl->key);
 
-  int keyType =
-#if OPENSSL_VERSION_NUMBER < 0x1010000fL
-    EVP_PKEY_type(m_impl->key->type);
-#else
-    EVP_PKEY_base_id(m_impl->key);
-#endif // OPENSSL_VERSION_NUMBER < 0x1010000fL
-
-  switch (keyType) {
+  switch (detail::getEvpPkeyType(m_impl->key)) {
   case EVP_PKEY_RSA:
     return KeyType::RSA;
   case EVP_PKEY_EC:
     return KeyType::EC;
   default:
-    BOOST_THROW_EXCEPTION(Error("Unrecognized public key type"));
+    return KeyType::NONE;
   }
 }
 
@@ -140,13 +133,7 @@
 {
   ENSURE_PUBLIC_KEY_LOADED(m_impl->key);
 
-  int keyType =
-#if OPENSSL_VERSION_NUMBER < 0x1010000fL
-    EVP_PKEY_type(m_impl->key->type);
-#else
-    EVP_PKEY_base_id(m_impl->key);
-#endif // OPENSSL_VERSION_NUMBER < 0x1010000fL
-
+  int keyType = detail::getEvpPkeyType(m_impl->key);
   switch (keyType) {
     case EVP_PKEY_NONE:
       BOOST_THROW_EXCEPTION(Error("Failed to determine key type"));