事業内容
署名検証
// 証明書情報読み込み
X509Certificate2 certificate = new X509Certificate2("ファイルパス");
// 証明書情報読み込み方法その2(こっちはpkcs12とかで使うと思います)
certificate.Import("ファイルパス", "パスワード", X509KeyStorageFlags.DefaultKeySet);
// RSACryptoServiceProvider取得
RSACryptoServiceProvider rsa = (RSACryptoServiceProvider)certificate.PublicKey.Key;
// RSACryptoServiceProviderにキャストしなくても↓でもいいです
// AsymmetricAlgorithm rsa = certificate.PublicKey.Key;
// ハッシュ値計算
byte[] bytes = Encoding.UTF8.GetBytes("ハッシュ値計算用文字列");
byte[] hash = SHA1.Create().ComputeHash(bytes);
// 署名検証
RSAPKCS1SignatureDeformatter deformatter = new RSAPKCS1SignatureDeformatter(rsa);
deformatter.SetHashAlgorithm("SHA1");
// new byte[]{}は署名検証用データ
deformatter.VerifySignature(hash, new byte[]{});
こんな感じです。
これ実務で結構苦労しました。
証明書読み込んでからどうやってRSACryptoServiceProviderを取得するかなかなかわからなかったので。
まぁ・・・俺がアホということですけど。
C#へ