首页 > 解决方案 > Win32 PKCS#7 Low Level Message Functions 使用特定内容

问题描述

使用 Win32 低级函数(如CryptMsgOpenToEncodeCryptMsgUpdate )创建 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 标志,但我不确定这是否是我想要的或如何使用它。

标签: winapicryptographypkcs#7

解决方案


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

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


推荐阅读