winapi - Win32 PKCS#7 Low Level Message Functions 使用特定内容
问题描述
使用 Win32 低级函数(如CryptMsgOpenToEncode和CryptMsgUpdate )创建 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"
) 的预定义值。
推荐阅读
- haskell - <*> 是如何从 pure 和 (>>=) 派生而来的?
- apache-flink - flink 连接被对等方重置
- javascript - ReactJS - 模块构建失败:SyntaxError: Unexpected token
- python - 如何在不使用 numpy 的情况下获得列表形状?
- vue.js - 如何在 v-for 语句下获取组件中的其他根数据?
- node.js - 正确的格式以在 Node Js 中发送错误并在 Angular 5 中使用它们
- sitecore - 我想将具有特定版本和特定语言的站点核心中的项目移动到另一个实例。我怎样才能做到这一点?
- javascript - 检测 javascriptinterface 方法是否存在
- assembly - 如何签署扩展mips(程序集)中程序参数中给出的二进制补码数
- python - TensorFlow 形状 (?,) 是什么意思?