【发布时间】:2013-10-16 15:30:38
【问题描述】:
据我所知,TLS 1.1 要求 CertificateVerify 消息的内容是使用两种哈希算法(MD5 和 SHA1)连接的数字签名值。这可以在 .NET 中使用 RSACryptoServiceProvider 实现吗?
这不起作用:
using (var rsa = new RSACryptoServiceProvider())
{
rsa.ImportParameters(...);
rsa.SignData(data, new MD5SHA1());
}
这也不起作用:
using (var rsa = new RSACryptoServiceProvider())
{
rsa.ImportParameters(...);
rsa.SignHash(new MD5SHA1().ComputeHash(data), "MD5SHA1");
}
(MD5SHA1 是 HashAlgorithm 的一种实现。)
推测这不起作用,因为签名嵌入了哈希算法的 OID,而 MD5-SHA1 没有有效的 OID。这在.NET中可能吗?我是否误解了 TLS 1.1?
【问题讨论】: