From a6bafb21e4ab08f82a6ba85f35f22d7d4540be23 Mon Sep 17 00:00:00 2001 From: Juan Lang Date: Mon, 17 Sep 2007 17:06:53 -0700 Subject: [PATCH] Temporarily change prototype of AsnDecodeIntInternal to the CryptDecodeObjectEx form --- dlls/crypt32/decode.c | 33 ++++++++++++++++++++------------- 1 files changed, 20 insertions(+), 13 deletions(-) diff --git a/dlls/crypt32/decode.c b/dlls/crypt32/decode.c index 0d38efd..eed7d88 100644 --- a/dlls/crypt32/decode.c +++ b/dlls/crypt32/decode.c @@ -115,8 +115,9 @@ static BOOL WINAPI CRYPT_AsnDecodeBits(D static BOOL WINAPI CRYPT_AsnDecodeInt(DWORD dwCertEncodingType, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, DWORD dwFlags, PCRYPT_DECODE_PARA pDecodePara, void *pvStructInfo, DWORD *pcbStructInfo); -static BOOL CRYPT_AsnDecodeIntInternal(const BYTE *pbEncoded, DWORD cbEncoded, - DWORD dwFlags, void *pvStructInfo, DWORD *pcbStructInfo, DWORD *pcbDecoded); +static BOOL WINAPI CRYPT_AsnDecodeIntInternal(DWORD dwCertEncodingType, + LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, DWORD dwFlags, + PCRYPT_DECODE_PARA pDecodePara, void *pvStructInfo, DWORD *pcbStructInfo); /* Like CRYPT_AsnDecodeInteger, but assumes the CRYPT_INTEGER_BLOB's pbData * member has been initialized, doesn't do exception handling, and doesn't do * memory allocation. Also doesn't check tag, assumes the caller has checked @@ -846,8 +847,9 @@ static BOOL WINAPI CRYPT_AsnDecodeCertVe { BYTE lenBytes = GET_LEN_BYTES(pbEncoded[1]); - ret = CRYPT_AsnDecodeIntInternal(pbEncoded + 1 + lenBytes, dataLen, - dwFlags, pvStructInfo, pcbStructInfo, NULL); + ret = CRYPT_AsnDecodeIntInternal(dwCertEncodingType, NULL, + pbEncoded + 1 + lenBytes, dataLen, dwFlags, pDecodePara, pvStructInfo, + pcbStructInfo); } return ret; } @@ -2671,8 +2673,9 @@ static BOOL WINAPI CRYPT_AsnDecodePathLe (struct PATH_LEN_CONSTRAINT *)pvStructInfo; DWORD size = sizeof(constraint->dwPathLenConstraint); - ret = CRYPT_AsnDecodeIntInternal(pbEncoded, cbEncoded, 0, - &constraint->dwPathLenConstraint, &size, NULL); + ret = CRYPT_AsnDecodeIntInternal(dwCertEncodingType, NULL, + pbEncoded, cbEncoded, dwFlags, pDecodePara, + &constraint->dwPathLenConstraint, &size); if (ret) constraint->fPathLenConstraint = TRUE; TRACE("got an int, dwPathLenConstraint is %d\n", @@ -3054,8 +3057,10 @@ static BOOL WINAPI CRYPT_AsnDecodeBits(D return ret; } -static BOOL CRYPT_AsnDecodeIntInternal(const BYTE *pbEncoded, DWORD cbEncoded, - DWORD dwFlags, void *pvStructInfo, DWORD *pcbStructInfo, DWORD *pcbDecoded) +static BOOL WINAPI CRYPT_AsnDecodeIntInternal(DWORD dwCertEncodingType, + LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, + DWORD dwFlags, PCRYPT_DECODE_PARA pDecodePara, void *pvStructInfo, + DWORD *pcbStructInfo) { BOOL ret; BYTE buf[sizeof(CRYPT_INTEGER_BLOB) + sizeof(int)]; @@ -3109,8 +3114,9 @@ static BOOL WINAPI CRYPT_AsnDecodeInt(DW { DWORD bytesNeeded; - ret = CRYPT_AsnDecodeIntInternal(pbEncoded, cbEncoded, - dwFlags & ~CRYPT_DECODE_ALLOC_FLAG, NULL, &bytesNeeded, NULL); + ret = CRYPT_AsnDecodeIntInternal(dwCertEncodingType, lpszStructType, + pbEncoded, cbEncoded, dwFlags & ~CRYPT_DECODE_ALLOC_FLAG, NULL, NULL, + &bytesNeeded); if (ret) { if (!pvStructInfo) @@ -3120,9 +3126,10 @@ static BOOL WINAPI CRYPT_AsnDecodeInt(DW { if (dwFlags & CRYPT_DECODE_ALLOC_FLAG) pvStructInfo = *(BYTE **)pvStructInfo; - ret = CRYPT_AsnDecodeIntInternal(pbEncoded, cbEncoded, - dwFlags & ~CRYPT_DECODE_ALLOC_FLAG, pvStructInfo, - &bytesNeeded, NULL); + ret = CRYPT_AsnDecodeIntInternal(dwCertEncodingType, + lpszStructType, pbEncoded, cbEncoded, + dwFlags & ~CRYPT_DECODE_ALLOC_FLAG, NULL, pvStructInfo, + &bytesNeeded); } } } -- 1.4.1