1

I've searched for this but have yet to find an answer.

If I want to sign something using a digital certificate, I usually have to have it in my certificate store.

But, is it possible to pass a digital certificate as a method parameter, use the cerficate to sign the document, and NOT store it locally in any way?

I would either do this in C++ or C#.

4

1 に答える 1

0

クラスのさまざまなコンストラクターを使用X509Certificate2して、ファイルまたはバイト配列から証明書を作成できます。例えば:

string certFile = @"MyCert.pfx";
string pfxPassword = "password"; // never hard code password in code

X509Certificate2 certificate = new X509Certificate2(certFile, pfxPassword, 
    X509KeyStorageFlags.MachineKeySet);
RSACryptoServiceProvider rsaCsp = (RSACryptoServiceProvider)certificate.PrivateKey;

その後、方法: デジタル署名を使用して XML ドキュメントに署名する のように、暗号化サービス プロバイダーを使用して署名できます。

今、これは「決してローカルに保存しない」のですか?まあ、完全ではありません。証明書は保存されませんが、秘密キーMicrosoft Cryptographic API Cryptographic Service Provider キー データベースに保存されます。

于 2013-01-24T02:27:02.087 に答える