Извините, но я не говорю по-английски, и я сделаю все возможное.Как подписать PDF-файл с использованием сертификатов PKCS11, SmartCard-eToken и itextsharp в .NET?
Я попытался подписать документ PDF с цифровым сертификатом от типа PKCS # 11 на C#. NET 4.0. Как вы знаете, для такого сертификата требуется закрытый ключ, в моем случае он хранится на Aladdin eToken, а затем создает подпись с помощью itextsharp.
Я пробовал с CAPICOM, System.Security.Cryptography, BouncyCastle, Chilkat, Net.Pkcs11 и т. Д. Но никаких работ нет.
PdfSignatureAppearance имеет метод SetCrypto (ключ, cert, ..., ...), где первым параметром является ключ сертификата, а второй параметр - тот же сертификат, но я не могу получить частный ключ eToken. Эй читать и думать, что это невозможно.
Я использую C# native, используя криптографию. 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(), но я немного запутался. Как я могу связать это.
Я нашел много документации, но ничего конкретного, например, java-апплеты не работают, потому что у меня 64-разрядная версия Windows 7 и коды. NET не работает. Я бы, по возможности, использовал одно и то же ядро. NET или бесплатные библиотеки с поддержкой 64-битной Windows 7. Кто-то сделал реальное решение?
Также я хотел бы знать, как удалить кеш PIN-кода eToken, поскольку он только один раз спрашивает меня о пароле, а затем остается в памяти.
Пожалуйста, мне нужна ваша помощь.
спасибо.
Как вы пытались так много, я думаю, вы также пытались наш SecureBlackbox, не так ли? Он обеспечивает поддержку PKCS # 11 для .NET, включая подписание PDF с использованием сертификатов, хранящихся на криптографических устройствах. –