как использовать Microsoft Crypto API с USB-ключом, следуя PKCS # 11

У меня есть USB-токен аутентификации safenet, который был предоставлен компанией, и они сказали мне, что у них есть цифровой сертификат открытого ключа внутри. Они дали мне пароль и программное обеспечение, с помощью которого я вижу, что он может обнаружить сертификат внутри. Теперь мне нужно получить доступ к сертификату этого токена, а затем мне нужно использовать подпись, шифрование и дешифрование, используя мой код разработки. Но компания не дала мне никаких SDK, поэтому я должен сделать все с помощью C ++ Microsoft CryptoAPI. Я искал в Google, но я не уверен, что я в правильном направлении

этот код не дает мне правильную ручку для хранимого сертификата USB

        // Attempt to acquire a handle to the default key container.
bResult = CryptAcquireContext(
&hProv,            // Variable to hold returned handle.
NULL,              // Use default key container.
MS_DEF_PROV,       // Use default CSP.
PROV_RSA_FULL,     // Type of provider to acquire.
0);

я думал, что он должен дать любой сертификат по умолчанию подключен либо на смарт-карте или токене. Я также пытался использовать MS_SCARD_PROV, если он даст мне доступ через USB-токен, но похоже, что он только для смарт-карты, а не для токена.

Я отчаянно пытаюсь выполнить эту задачу, пожалуйста, проведите меня или покажите мне правильный учебник, если вы, эксперты, знаете что-либо Или предложите мне, что нужно сделать для такого рода задач ..

2

Решение

вы будете использовать функции PKCS # 11 и CryptoAPI.

PKCS # 11 будет в основном использоваться для связи с аппаратным токеном. Каждый производитель оборудования внедрил бы интерфейс PKCS # 11 для своего аппаратного токена. Если ваш etoken, то у safenet есть один. Также сафенет будет иметь свои CryptoAPI CSP что вы можете использовать, чтобы поговорить с токеном.

CryptoAPI предоставляет богатые функциональные возможности для обработки сертификатов, присутствующих в токене.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]