Module: wine Branch: oldstable Commit: 2d871a6b1d8532784b881df4fa0b08dc67c80601 URL: https://gitlab.winehq.org/wine/wine/-/commit/2d871a6b1d8532784b881df4fa0b08d...
Author: Alistair Leslie-Hughes leslie_alistair@hotmail.com Date: Sat Aug 28 12:22:30 2021 +1000
crypt32: Only report Unimplemented decoder when not found in external dll.
Some applications spam this fixme. 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 fixme doesn't make sense. The fixme will only appear if no support for the requested decoder is available.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53800 Signed-off-by: Alistair Leslie-Hughes leslie_alistair@hotmail.com (cherry picked from commit 42bd5ea4c4c4c42af872b5a6a12e6109fc3e2ddf) Signed-off-by: Michael Stefaniuc mstefani@winehq.org
---
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 d4a13a55a1b..9f6a8ea9f6c 100644 --- a/dlls/crypt32/decode.c +++ b/dlls/crypt32/decode.c @@ -6296,7 +6296,7 @@ static CryptDecodeObjectExFunc CRYPT_GetBuiltinDecoder(DWORD dwCertEncodingType, decodeFunc = CRYPT_AsnDecodeRsaPubKey_Bcrypt; break; default: - FIXME("Unimplemented decoder for lpszStructType OID %d\n", LOWORD(lpszStructType)); + break; } } else if (!strcmp(lpszStructType, szOID_CERT_EXTENSIONS)) @@ -6353,8 +6353,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; }
@@ -6433,6 +6431,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,