GetCertificateInfo-GOST34.10-2012-256 не находит сертификат на рутокен

Добрый день.
Есть код, который показывает информацию о сертификате на рутокене ЭЦП 2.0, основанный на примере GetCertificateInfo-GOST34.10-2012-256 из pkcs11. Сертификат был выпущен ЗАО "Сигнал КОМ", все работало. Купили новый сертификат у ООО "Такском", и не мой код, не ваш пример не находит сертификат. Типы сертификата совпадают - PKCS#11(GOST R 34.10-2012-256). В чем может быть проблема?

P.S.
В свойствах сертификата нашел, что у старого сертификата от ЗАО "Сигнал КОМ" Средство электронной подписи: СКЗИ "Крипто-КОМ 3.3" исполнение 23, а у нового от ООО "Такском" - Средство электронной подписи: "КриптоПро CSP" версия 4.0 (исполнение 2-Base).
Означает ли это, что нужно использовать CryptoAPI, а не pkcs11?
Спасибо.

Re: GetCertificateInfo-GOST34.10-2012-256 не находит сертификат на рутокен

Добрый день,

В первую очередь стоит убедиться, что сертификат виден через PKCS#11 интерфейс. Для этого можно воспользоваться утилитой pkcs11-tool:

# вывод объектов на токене
pkcs11-tool --module librtpkcs11ecp.so -O -l

Если сертификат окажется виден, значит проблема с шаблоном поиска сертификата. Сможете прислать его?

Если не виден -- вероятно нужно использовать CryptoAPI. Чтобы убедиться в этом, посмотрите виден ли сертификат через инструменты КриптоПро

(2021-08-31 14:07:22 отредактировано regnor)

Re: GetCertificateInfo-GOST34.10-2012-256 не находит сертификат на рутокен

Пётр Михалицын пишет:

В первую очередь стоит убедиться, что сертификат виден через PKCS#11 интерфейс. Для этого можно воспользоваться утилитой pkcs11-tool:

# вывод объектов на токене
pkcs11-tool --module librtpkcs11ecp.so -O -l

Под рукой нет юникс системы, проверить не могу

Пётр Михалицын пишет:

проблема с шаблоном поиска сертификата. Сможете прислать его?

шаблон

// Шаблон поиска сертификата
CK_ATTRIBUTE certificateTemplate[] =
{
    { CKA_CLASS, &certificateObject, sizeof(certificateObject) },                      // Класс - сертификат
    { CKA_TOKEN, &attributeTrue, sizeof(attributeTrue) },                              // Сертификат является объектом токена
    { CKA_PRIVATE, &attributeFalse, sizeof(attributeFalse) },                          // Сертификат доступен без аутентификации
    { CKA_CERTIFICATE_TYPE, &certificateType, sizeof(certificateType) },               // Тип сертификата - X.509
    { CKA_CERTIFICATE_CATEGORY, &tokenUserCertificate, sizeof(tokenUserCertificate) }, // Категория сертификата - пользовательский
};
Пётр Михалицын пишет:

вероятно нужно использовать CryptoAPI. Чтобы убедиться в этом, посмотрите виден ли сертификат через инструменты КриптоПро

в крипто про сертификат не видно


UPD
нашел для винды что то на подобии pkcs11-tool, сертификат показал...
https://forum.rutoken.ru/uploads/images/2021/08/3b5bee394fcd45bb22d261486bef3542.jpg

Re: GetCertificateInfo-GOST34.10-2012-256 не находит сертификат на рутокен

Отлично, Pkcs11Admin использует pkcs#11 для работы. Значит проблема где-то в шаблоне. У меня есть предположение, что не выставлена категория сертификата. Попробуйте удалить ее из шаблона:

/ Шаблон поиска сертификата
CK_ATTRIBUTE certificateTemplate[] =
{
    { CKA_CLASS, &certificateObject, sizeof(certificateObject) },                      // Класс - сертификат
    { CKA_TOKEN, &attributeTrue, sizeof(attributeTrue) },                              // Сертификат является объектом токена
    { CKA_PRIVATE, &attributeFalse, sizeof(attributeFalse) },                          // Сертификат доступен без аутентификации
    { CKA_CERTIFICATE_TYPE, &certificateType, sizeof(certificateType) },               // Тип сертификата - X.509
};

Re: GetCertificateInfo-GOST34.10-2012-256 не находит сертификат на рутокен

да, спасибо, все заработало