wintrust: Don't assume input file is a PE file in CryptSIPGetSignedDataMsg.

This commit is contained in:
Juan Lang 2008-07-23 17:42:09 -07:00 committed by Alexandre Julliard
parent d3beb5056e
commit c7d1d34956
1 changed files with 29 additions and 6 deletions

View File

@ -202,11 +202,9 @@ BOOL WINAPI CryptSIPCreateIndirectData(SIP_SUBJECTINFO* pSubjectInfo, DWORD* pcb
return FALSE; return FALSE;
} }
/*********************************************************************** static BOOL WINTRUST_GetSignedMsgFromPEFile(SIP_SUBJECTINFO *pSubjectInfo,
* CryptSIPGetSignedDataMsg (WINTRUST.@) DWORD *pdwEncodingType, DWORD dwIndex, DWORD *pcbSignedDataMsg,
*/ BYTE *pbSignedDataMsg)
BOOL WINAPI CryptSIPGetSignedDataMsg(SIP_SUBJECTINFO* pSubjectInfo, DWORD* pdwEncodingType,
DWORD dwIndex, DWORD* pcbSignedDataMsg, BYTE* pbSignedDataMsg)
{ {
BOOL ret; BOOL ret;
WIN_CERTIFICATE *pCert = NULL; WIN_CERTIFICATE *pCert = NULL;
@ -264,9 +262,34 @@ BOOL WINAPI CryptSIPGetSignedDataMsg(SIP_SUBJECTINFO* pSubjectInfo, DWORD* pdwEn
} }
} }
} }
error: error:
HeapFree(GetProcessHeap(), 0, pCert); HeapFree(GetProcessHeap(), 0, pCert);
return ret;
}
/***********************************************************************
* CryptSIPGetSignedDataMsg (WINTRUST.@)
*/
BOOL WINAPI CryptSIPGetSignedDataMsg(SIP_SUBJECTINFO* pSubjectInfo, DWORD* pdwEncodingType,
DWORD dwIndex, DWORD* pcbSignedDataMsg, BYTE* pbSignedDataMsg)
{
static const GUID unknown = { 0xC689AAB8, 0x8E78, 0x11D0, { 0x8C,0x47,
0x00,0xC0,0x4F,0xC2,0x95,0xEE } };
BOOL ret;
TRACE("(%p %p %d %p %p)\n", pSubjectInfo, pdwEncodingType, dwIndex,
pcbSignedDataMsg, pbSignedDataMsg);
if (!memcmp(pSubjectInfo->pgSubjectType, &unknown, sizeof(unknown)))
ret = WINTRUST_GetSignedMsgFromPEFile(pSubjectInfo, pdwEncodingType,
dwIndex, pcbSignedDataMsg, pbSignedDataMsg);
else
{
FIXME("unimplemented for subject type %s\n",
debugstr_guid(pSubjectInfo->pgSubjectType));
ret = FALSE;
}
TRACE("returning %d\n", ret); TRACE("returning %d\n", ret);
return ret; return ret;
} }