使用特定内容的 Win32 PKCS#7 低级消息函数

Win32 PKCS#7 Low Level Message Functions to use specific content

当使用 CryptMsgOpenToEncode and CryptMsgUpdate 等 Win32 低级函数创建 PKCS#7 签名消息时,生成的消息是 OID 为 1.2.840.113549.1.7.2 signedData (PKCS #7) 的消息,其中包含带有 OID 1.2.840.113549.1.7.1 数据 (PKCS #7) 的序列。

我可以使用低级消息函数来更改后一个 OID 吗?例如,Authenticode 使用 OID 1.3.6.1.4.1.311.2.1.4 spcIndirectDataContext(Microsoft 代码签名)。

我看到了 CryptMsgOpenToEncode CMSG_BARE_CONTENT_FLAG 标志,但我不确定这是否是我想要的或如何使用它。

消息的(内部)内容类型是 CryptMsgOpenToEncode (pszInnerContentObjID) 的第 5 个参数。

它应该接受任何 ASCII 点分十进制 OID 值作为输入,包括您提到的 OID 的预定义值 (SPC_INDIRECT_DATA_OBJID / "1.3.6.1.4.1.311.2.1.4")。