秘密鍵の読み込みに問題があります。次のコマンドを使用して証明書を作成しました。
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt
出力の GIST を作成しました: https://gist.github.com/anonymous/5592135
static void Main(string[] args)
{
string location = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
string certLocation = location + "\\assets\\certificate.crt";
string privateKeyLocation = location + "\\assets\\privateKey.key";
string xmlDocLocation = location + "\\assets\\sample.xml";
XmlDocument Doc = new XmlDocument();
Doc.Load(xmlDocLocation);
// read up the certificate
X509Certificate2 cert = new X509Certificate2(certLocation);
X509Certificate2 privateKey = new X509Certificate2(privateKeyLocation);
}
証明書は正常に読み込まれますが、秘密鍵を読み込むことができません。「要求されたオブジェクトが見つかりません」というメッセージが表示されます。
ストアを使用する代わりにファイルから秘密鍵と証明書をロードしたいのですが、可能ですか? 証明書と秘密鍵を間違って生成しましたか? 最終的に、公開鍵を xml ドキュメントに含めたいと思います。受信者は xml データを解析し、秘密鍵と公開鍵が一致することを検証します。