[PATCH] crypt32: Only report Unimplemented decoder when not found in externall dll

Alistair Leslie-Hughes leslie_alistair at hotmail.com
Fri Aug 27 21:27:22 CDT 2021


When using some applications, this can spam the console.
fixme:cryptasn:CRYPT_GetBuiltinDecoder Unsupported decoder for lpszStructType 1.3.6.1.4.1.311.2.1.4

This OID is supported in wintrust.dll which crypt32 uses, so this console spam doesn't make sense.
Another option is to make them a WARN but then it wont be obvious there is something missing.

Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
---
 dlls/crypt32/decode.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/dlls/crypt32/decode.c b/dlls/crypt32/decode.c
index d2c3b2e9a3d..b06e04466b5 100644
--- a/dlls/crypt32/decode.c
+++ b/dlls/crypt32/decode.c
@@ -6299,7 +6299,7 @@ static CryptDecodeObjectExFunc CRYPT_GetBuiltinDecoder(DWORD dwCertEncodingType,
             decodeFunc = CRYPT_AsnDecodeRsaPubKey_Bcrypt;
             break;
         default:
-            FIXME("Unimplemented decoder for lpszStructType OID %d\n", LOWORD(lpszStructType));
+            return NULL;
         }
     }
     else if (!strcmp(lpszStructType, szOID_CERT_EXTENSIONS))
@@ -6356,8 +6356,6 @@ static CryptDecodeObjectExFunc CRYPT_GetBuiltinDecoder(DWORD dwCertEncodingType,
         decodeFunc = CRYPT_AsnDecodeCTL;
     else if (!strcmp(lpszStructType, szOID_ECC_PUBLIC_KEY))
         decodeFunc = CRYPT_AsnDecodeObjectIdentifier;
-    else
-        FIXME("Unsupported decoder for lpszStructType %s\n", lpszStructType);
     return decodeFunc;
 }
 
@@ -6435,6 +6433,13 @@ BOOL WINAPI CryptDecodeObjectEx(DWORD dwCertEncodingType, LPCSTR lpszStructType,
          debugstr_a(lpszStructType));
         decodeFunc = CRYPT_LoadDecoderExFunc(dwCertEncodingType, lpszStructType,
          &hFunc);
+        if (!decodeFunc)
+        {
+            if (IS_INTOID(lpszStructType))
+                FIXME("Unimplemented decoder for lpszStructType OID %d\n", LOWORD(lpszStructType));
+            else
+                FIXME("Unsupported decoder for lpszStructType %s\n", lpszStructType);
+        }
     }
     if (decodeFunc)
         ret = decodeFunc(dwCertEncodingType, lpszStructType, pbEncoded,
-- 
2.32.0




More information about the wine-devel mailing list