如何使用Crypto API为TLS 1.2散列哈希值

时间:2019-01-23 13:48:03

标签: windows openssl windows-ce tls1.2

我正在为现有的Windows / Win CE应用程序将TLS版本从1.0升级到1.2。现在,我的应用程序正在使用Openssl 0.9.8k(支持TLS 1.0)。要升级TLS版本,我正在使用Openssl-1.0.2p(支持TLS 1.2)。我正在使用MD5-SHA1签署数据,类似于MD5-SHA1 hash using CryptoAPI中遵循的步骤(我的要求与此相同)

  1. 使用证书密钥句柄提供程序创建哈希,并使用CALG_SSL3_SHAMD5算法。
  2. 使用CryptSetHashParam,设置初始哈希值
  3. 使用CryptSignHash对哈希签名。
  4. 之后,反转字节顺序(因为提到了OpenSSL签名是Big endian。

但是TLS 1.2必须使用RSA-SHA256对哈希进行签名。如何使用加密API来实现?

我尝试使用证书密钥句柄提供程序创建哈希,并使用CALG_SHA_256算法而不是CALG_SSL3_SHAMD5。但是证书验证在服务器上失败,并显示错误消息“ Bad Signature”。

我一直在浏览MSDN页面,并且我假设CNG API可以完成Windows 7 OS的工作。如果是这样,我该如何实现?另外,我在Windows CE中没有看到CNG等效的API,如何在Windows CE中实现?

谢谢。

0 个答案:

没有答案