私は持っている:
- x509 証明書 (Base64);
- 文字列データ。
- 文字列データの署名 (Base64)。
署名を確認することはできますか?
私のコード:
bool valid = false;
var signature = Convert.FromBase64String(base64Signature);
var data = Encoding.UTF8.GetBytes(stringData);
var x509 = new X509Certificate2(Convert.FromBase64String(certificate));
var dsa = x509.PublicKey.Key as DSACryptoServiceProvider;
if (dsa!=null)
valid = dsa.VerifySignature(data, signature);
else {
var rsa = x509.PublicKey.Key as RSACryptoServiceProvider;
if (rsa!=null)
valid = rsa.VerifyHash(data, ???, signature);
}
???の代わりに何を使えばいいのかわからない。証明書からハッシュアルゴリズムを取得することは可能ですか?