Index: trunk/src/VBox/Runtime/common/asn1/asn1-dump.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/asn1/asn1-dump.cpp	(revision 64816)
+++ trunk/src/VBox/Runtime/common/asn1/asn1-dump.cpp	(revision 64817)
@@ -142,5 +142,5 @@
             }
             else
-                return &g_aSmallOidTable[iEntry];
+                return &g_aSmallOidTable[i];
         }
     }
@@ -149,9 +149,9 @@
 
 
-
 /**
  * Queries the name for an object identifier.
  *
- * @returns true if found, false if not.
+ * @returns IPRT status code (VINF_SUCCESS, VERR_NOT_FOUND,
+ *          VERR_BUFFER_OVERFLOW)
  * @param   pauComponents   The components making up the object ID.
  * @param   cComponents     The number of components.
@@ -159,6 +159,7 @@
  * @param   cbDst           The size of the destination buffer.
  */
-static bool rtOidDbQueryObjIdName(uint32_t const *pauComponents, uint8_t cComponents, char *pszDst, size_t cbDst)
-{
+static int rtOidDbQueryObjIdName(uint32_t const *pauComponents, uint8_t cComponents, char *pszDst, size_t cbDst)
+{
+    int rc = VERR_NOT_FOUND;
     if (cComponents > 0)
     {
@@ -181,5 +182,6 @@
                         if (RTBldProgStrTabQueryString(&g_OidDbStrTab, pSmallHit->offString,
                                                        pSmallHit->cchString, pszDst, cbDst) >= 0)
-                            return true;
+                            return VINF_SUCCESS;
+                        rc = VERR_BUFFER_OVERFLOW;
                         break;
                     }
@@ -202,5 +204,6 @@
                         if (RTBldProgStrTabQueryString(&g_OidDbStrTab, pBigHit->offString,
                                                        pBigHit->cchString, pszDst, cbDst) >= 0)
-                            return true;
+                            return VINF_SUCCESS;
+                        rc = VERR_BUFFER_OVERFLOW;
                         break;
                     }
@@ -218,5 +221,26 @@
     }
 
-    return false;
+    return rc;
+}
+
+
+/**
+ * Queries the name for an object identifier.
+ *
+ * This API is simple and more or less requires a
+ *
+ * @returns IPRT status code.
+ * @retval  VINF_SUCCESS on success.
+ * @retval  VERR_NOT_FOUND if not found.
+ * @retval  VERR_BUFFER_OVERFLOW if more buffer space is required.
+ *
+ * @param   pauComponents   The components making up the object ID.
+ * @param   cComponents     The number of components.
+ * @param   pszDst          Where to store the name if found.
+ * @param   cbDst           The size of the destination buffer.
+ */
+RTDECL(int) RTAsn1QueryObjIdName(PCRTASN1OBJID pObjId, char *pszDst, size_t cbDst)
+{
+    return rtOidDbQueryObjIdName(pObjId->pauComponents, pObjId->cComponents, pszDst, cbDst);
 }
 
@@ -422,5 +446,5 @@
                 PCRTASN1OBJID pObjId = (PCRTASN1OBJID)pAsn1Core;
                 char szName[64];
-                if (rtOidDbQueryObjIdName(pObjId->pauComponents, pObjId->cComponents, szName, sizeof(szName)))
+                if (rtOidDbQueryObjIdName(pObjId->pauComponents, pObjId->cComponents, szName, sizeof(szName)) == VINF_SUCCESS)
                     rtAsn1DumpPrintf(pData, "OBJECT IDENTIFIER %s%s ('%s')\n",
                                      pszDefault, szName, ((PCRTASN1OBJID)pAsn1Core)->szObjId);
Index: trunk/src/VBox/Runtime/common/crypto/digest-core.cpp
===================================================================
--- trunk/src/VBox/Runtime/common/crypto/digest-core.cpp	(revision 64816)
+++ trunk/src/VBox/Runtime/common/crypto/digest-core.cpp	(revision 64817)
@@ -398,2 +398,23 @@
 }
 
+
+RTDECL(const char *) RTCrDigestTypeToName(RTDIGESTTYPE enmDigestType)
+{
+    switch (enmDigestType)
+    {
+        case RTDIGESTTYPE_CRC32:        return "CRC32";
+        case RTDIGESTTYPE_CRC64:        return "CRC64";
+        case RTDIGESTTYPE_MD2:          return "MD2";
+        case RTDIGESTTYPE_MD4:          return "MD4";
+        case RTDIGESTTYPE_MD5:          return "MD5";
+        case RTDIGESTTYPE_SHA1:         return "SHA-1";
+        case RTDIGESTTYPE_SHA224:       return "SHA-224";
+        case RTDIGESTTYPE_SHA256:       return "SHA-256";
+        case RTDIGESTTYPE_SHA384:       return "SHA-384";
+        case RTDIGESTTYPE_SHA512:       return "SHA-512";
+        case RTDIGESTTYPE_SHA512T224:   return "SHA-512/224";
+        case RTDIGESTTYPE_SHA512T256:   return "SHA-512/256";
+        default:                        return NULL;
+    }
+}
+
