CryptSIPGetSignedDataMsg function (mssip.h)

The CryptSIPGetSignedDataMsg function retrieves an Authenticode signature from the file.

Syntax

BOOL CryptSIPGetSignedDataMsg(
  [in]      SIP_SUBJECTINFO *pSubjectInfo,
  [out]     DWORD           *pdwEncodingType,
  [in]      DWORD           dwIndex,
  [in, out] DWORD           *pcbSignedDataMsg,
  [out]     BYTE            *pbSignedDataMsg
);

Parameters

[in] pSubjectInfo

A pointer to a SIP_SUBJECTINFO structure that contains information about the message subject.

[out] pdwEncodingType

The encoding type of the Authenticode signature.

This parameter can be a combination of one or more of the following values.

Value Meaning
PKCS_7_ASN_ENCODING
65536 (0x10000)
Specifies PKCS #7 message encoding.
X509_ASN_ENCODING
1 (0x1)
Specifies X.509 certificate encoding.

[in] dwIndex

This parameter is reserved and should be set to zero.

[in, out] pcbSignedDataMsg

The length, in bytes, of the buffer pointed to by the pbSignedDataMsg parameter.

[out] pbSignedDataMsg

A pointer to a buffer to receive the returned Authenticode signature.

To determine the size of the buffer needed, set the pbSignedDataMsg parameter to NULL and call the CryptSIPGetSignedDataMsg function. This function will place the required size of the buffer, in bytes, in the value pointed to by pcbSignedDataMsg. For more information, see Retrieving Data of Unknown Length.

Return value

If the function succeeds, the function returns TRUE.

If the function fails, it returns FALSE. For extended error information, call GetLastError. Some possible error codes follow.

Return code Description
CRYPT_E_NO_MATCH
The signature specified by the index could not be found.
ERROR_BAD_FORMAT
The specified data or file format of the subject interface package (SIP) is not valid.
ERROR_INVALID_PARAMETER
The [SIP_SUBJECTINFO](/windows/desktop/api/mssip/ns-mssip-sip_subjectinfo) structure is a null pointer.
ERROR_INSUFFICIENT_BUFFER
The size of the message buffer was insufficient to hold the retrieved data, the pcbSignedDataMsg parameter has been set to indicate the required buffer size.
TRUST_E_SUBJECT_FORM_UNKNOWN
The specified subject type is not valid.

Remarks

Subjects include, but are not limited to, portable executable images (.exe), cabinet (.cab) images, flat files, and catalog files. Each subject type uses a different subset of its data for hash calculation and requires a different procedure for storage and retrieval. Therefore, each subject type has a unique SIP specification.

Requirements

Requirement Value
Minimum supported client Windows XP [desktop apps only]
Minimum supported server Windows Server 2003 [desktop apps only]
Target Platform Windows
Header mssip.h
Library Crypt32.lib
DLL Crypt32.dll

See also

CryptSIPPutSignedDataMsg

CryptSIPRemoveSignedDataMsg