Если Вы планируете использовать Рутокен на клиенте по средствам PKCS#11, то Вам необходимо найти объект сертификата на токене (C_FindObjectsInit, C_FindObjects, C_FindObjectsFinal), который был записан Вами ранее.
По средствам функции C_GetAttributeValue получить у объекта CKO_CERTIFICATE кодированное тело сертификата - атрибут CKA_VALUE.
Далее, если Вы хотите проверить статус сертификата, по средствам CryptoAPI, можно использовать следующие функции:
CryptVerifyCertificateSignature ( http://msdn.microsoft.com/en-us/library … s.85).aspx )
CryptVerifyCertificateSignatureEx ( http://msdn.microsoft.com/en-us/library … s.85).aspx )
CertVerifyTimeValidity ( http://msdn.microsoft.com/en-us/library … s.85).aspx )
CertVerifyRevocation ( http://msdn.microsoft.com/en-us/library … s.85).aspx )
Для проверки цепочки сертификатов можно использовать следующую функцию:
CertVerifyCertificateChainPolicy ( http://msdn.microsoft.com/en-us/library … s.85).aspx )
Что касается обойтись ли без криптопровайдера - это решать Вам.
Криптопровайдер "Aktiv Rutoken CSP v1.0" реализован в модуле rtCSP.dll, поставляется бесплатно в составе Драйверов Рутокен.
Позволяет хранить и использовать ключевую информацию, хранящуюся на Рутокен, по средствам интерфейса CryptoAPI 2.0 - интерфейс стандартизован.
Общую информацию по Cryptography на сайте MSDN можно посмотреть здесь: http://msdn.microsoft.com/en-us/library … S.85).aspx
Информацию по функциям CSP можно посмотреть здесь: http://msdn.microsoft.com/en-us/library … _functions
Разделы:
Service Provider Functions
Key Generation and Exchange Functions
Data Encryption and Decryption Functions
Hash and Digital Signature Functions
Михаил Курский
Руководитель отдела разработки прикладного ПО Rutoken, Компания "Актив"