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

Winapi Win32 PKCS#7使用特定内容的低级消息函数,winapi,cryptography,pkcs#7,Winapi,Cryptography,Pkcs#7,使用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代码签名) 我看到cryptmsgpentoencode

使用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代码签名)

我看到cryptmsgpentoencodecmsg_BARE_CONTENT_FLAG,但我不确定这是我想要的还是如何使用它

消息的(内部)内容类型是
cryptmsgoppentoencode
pszInnerContentObjID
)的第五个参数


它应该接受任何ASCII点十进制OID值作为输入,包括您提到的OID的预定义值(
SPC\u INDIRECT\u DATA\u OBJID
/
“1.3.6.1.4.1.311.2.1.4”
)。

该函数支持使用
SPC\u INDIRECT\u DATA\u OBJID
(1.3.6.1.4.311.2.1.4)打开加密消息。你为什么要改变后者?谢谢你。我仍然有一个奇怪的问题,虽然编码的消息被正确地传递到CryptMsgUpdate,但生成的签名并不完全包含在里面。Duh-我想我需要移除分离的旗帜。