使用 CryptSignHash 获取 PKCS#7 签名
Getting a PKCS#7 signature with CryptSignHash
CryptSignMessage 可以通过在 PCRYPT_SIGN_MESSAGE_PARA 参数中传递适当的编码类型来生成 PKCS#7 签名。但是我似乎找不到一种方法来用CryptSignHash函数做同样的事情。
有没有办法使用 CryptSignHash API 创建 PKCS#7签名,或者是否有任何其他函数可以调用来将 CryptSignHash 的输出转换为 PKCS#7?
不可以,您不能将CryptSignHash
的输出转换为CryptSignMessage
的输出。
CryptSignMessage
创建用于创建数字签名的 CMS 容器格式。这不仅仅是签名的加密定义中的数字签名。首先对消息进行哈希处理,然后对哈希 + 可能的其他信息进行哈希处理和签名。因此,生成的签名不是对数据的直接签名。
使用CryptSignHash
您可以直接对给定的哈希进行签名。该哈希直接对数据执行。由于哈希是单向的,因此无法重建数据,因此无法执行 CryptSignMessage
所需的方案。
简而言之,尽管这些方法的名称看起来相似,但这两个函数都在不同的级别执行加密。一个只是加密原语,另一个是应用程序级协议。
相关文章:
- 当在同一名称空间中有两个具有相同签名的函数时,会发生什么
- 使用 C/C++ 宏生成函数签名
- 如何使用模板函数的函数签名进行SFINAE
- 是什么原因导致它无法编译?它是声明签名还是在函数本身的实现中
- C++Builder中的OnClick事件签名存在问题
- 加密++验证大文件签名
- 具有所表示类的相同构造函数签名的代理类模板
- 获取隐式转换溢出从无符号到已签名的警告
- 为什么签名字符可以保存大于 127 的值?
- 使用不同算法的 PKCS1v15 填充进行加密 ++ 签名
- 模板签名解析为 void(void) 被 GCC 拒绝;这是否有效C++?
- 将具有固定签名的自定义函数名称注入 CRTP
- RSA_PKCS1签名验证
- 验证openssl c++中的签名,这是由JAVA DSA签名的?
- 函数签名与调用的函数不匹配,常量字符[]和字符*之间的区别?
- 如何解释GDB中回溯的模板函数签名?
- 如何从参数中获取函数签名?
- 我能否根据其运算符()的签名专门化可变参数模板参数
- 使用 CryptSignHash 获取 PKCS#7 签名
- OpenSSL pkcs# 11签名多进程