申し訳ありませんが、私は英語を話せません。最善を尽くします。
C# で PKCS #11 型からのデジタル証明書で PDF ドキュメントに署名しようとしました。ネット 4.0。ご存知のように、このような証明書には秘密鍵が必要です。私の場合、Aladdin eToken に保存され、itextsharp を使用して署名を作成します。
CAPICOM、System.Security.Cryptography、BouncyCastle、Chilkat、Net.Pkcs11などで試しましたが、うまくいきません。
PdfSignatureAppearance にはメソッド SetCrypto(key, cert, ..., ...) があり、最初のパラメーターは証明書のキーで、2 番目のパラメーターは同じ証明書ですが、eToken の秘密キーを取得できません。 . ちょっと読んで、これは不可能だと思います。
暗号化を使用して、C # ネイティブを使用しています。NET を数行のコードで:
X509Certificate2 x509 = (Certificate from X509Certificate2Collection);
CspParameters cspParams = new CspParameters(1",eToken Base Cryptographic Provider", "Default")
cspParams.Flags = CspProviderFlags.UseMachineKeyStore;
using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(cspParams))
{
byte[] signature = rsa.SignData(x509.RawData, "SHA1");
//I don't know how join it with itextsharp
rsa.PersistKeyInCsp = false;
rsa.Clear();
}
メソッド SignData() を使用できると思いますが、少し混乱しています。どのように私はitextsharpを関連付けることができます.
多くのドキュメントを見つけましたが、Windows 7 64 ビットとコードを持っているため、Java アプレットが機能しないなど、具体的なものは何もありませんでした。NET が動作しません。可能であれば、同じコアを使用します。NET または Windows 7 64 ビットをサポートする無料のライブラリ。誰かが本当の解決策をしましたか?
また、eToken PIN キャッシュを削除する方法を知りたいです。これは、パスワードの入力を 1 回だけ求められ、その後はメモリに残るためです。
あなたの助けが必要です。
ありがとうございました。