У меня есть 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-токен, но похоже, что он только для смарт-карты, а не для токена.
Я отчаянно пытаюсь выполнить эту задачу, пожалуйста, проведите меня или покажите мне правильный учебник, если вы, эксперты, знаете что-либо Или предложите мне, что нужно сделать для такого рода задач ..
вы будете использовать функции PKCS # 11 и CryptoAPI.
PKCS # 11 будет в основном использоваться для связи с аппаратным токеном. Каждый производитель оборудования внедрил бы интерфейс PKCS # 11 для своего аппаратного токена. Если ваш etoken, то у safenet есть один. Также сафенет будет иметь свои CryptoAPI CSP что вы можете использовать, чтобы поговорить с токеном.
CryptoAPI предоставляет богатые функциональные возможности для обработки сертификатов, присутствующих в токене.
Других решений пока нет …