ECDsa アルゴリズムで署名された XML 署名を検証しようとしています。私は XmlDSigEx ライブラリに基づいて作業を行っていますが、これは自分のニーズに合わせて少し変更する必要があります。私の現在の問題は、証明書から公開鍵を取得し、それを CngKey として使用することに関連しています。私が使用した:
// var cert = X509Certificate2 ...
var key = CngKey.Import(cert.GetPublicKey(), CngKeyBlobFormat.EccPublicBlob);
「パラメーターが正しくありません」とスローされます。公開鍵の形式が鍵として渡されると予想される情報が見つかりませんでした。X509Certificate に保存されている公開鍵をCngKeyに渡すにはどうすればよいですか?
ティア、アロイス
PS: BouncyCastle を使用して公開鍵を抽出することを検討しました。BCしてみた
X509Certificate.CertificateStructure.SubjectPublicKeyInfo.GetEncoded()
としても
X509Certificate.CertificateStructure.SubjectPublicKeyInfo.PublicKeyData.GetBytes()
キーを CngKey に渡す。ただし、同じエラーが発生します。