私が知る限り、TLS 1.1 では、CertificateVerify メッセージの内容が、2 つのハッシュ アルゴリズム (MD5 と SHA1) の連結を使用してデジタル署名された値である必要があります。これは、RSACryptoServiceProvider を使用して .NET で実行できますか?
これは動作しません:
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 を誤解していますか?