The CMSG_SIGNER_INFO structure is used to hold the content of the SignerInfo, as defined by PKCS # 7, in a signed or a signed and enveloped message. When decoding a received message, for each of the signers, CryptMsgGetParam is called to get the SignerInfo.
typedef struct _CMSG_SIGNER_INFO {
DWORD dwVersion;
CERT_NAME_BLOB Issuer;
CRYPT_INTEGER_BLOB SerialNumber;
CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm;
CRYPT_ALGORITHM_IDENTIFIER HashEncryptionAlgorithm;
CRYPT_DATA_BLOB EncryptedHash;
CRYPT_ATTRIBUTES AuthAttrs;
CRYPT_ATTRIBUTES UnauthAttrs;
} CMSG_SIGNER_INFO, *PCMSG_SIGNER_INFO;
BLOB Structure, CRYPT_ALGORITHM_IDENTIFIER, CRYPT_ATTRIBUTES