Статус: Активный участник
Группы: Участники
Зарегистрирован: 10.07.2013(UTC) Сообщений: 42  Откуда: Нижний Новгород Сказал(а) «Спасибо»: 2 раз
|
Здравствуйте,
Есть 2 проблемы, вопрос - можно ли как-то оптимизировать или ускорить эти куски приложения.
1) Получение списка контейнеров со смарт-карты. Алгоритм такой - получили дескриптор криптопровайдера, затем в цикле вызываем CryptGetProvParam(_hCryptProv, PP_ENUMCONTAINERS, …). Тут такая особенность - если CryptGetProvParam вернет имя контейнера, то эта функция отрабатывает довольно быстро (максимум - 1 секунда), если же CryptGetProvParam возвращает ошибку ERROR_NO_MORE_ITEMS (окончание списка контейнеров), то времени уже требуется больше - от 8 до 12 секунд. Можно ли как-то оптимизировать это, может быть, есть какая-то возможность получить количество контейнеров и затем вызвать CryptGetProvParam в цикле определенное количество раз.
2) Получение common name (CN поле сертификата) по имени контейнера на смарт-карте. Мой алгоритм отрабатывает за 8-12 секунд, подскажите, существует ли более оптимальный. CryptAcquireContext(с именем контейнера) CryptGetUserKey (получим ключ для "открытого" контейнера) - съедает примерно половину всего времени работы функции. CryptGetKeyParam(с параметром KP_CERTIFICATE) CertCreateCertificateContext(создаем контекст сертификата из полученных данных) CertNameToStr(X509_ASN_ENCODING, &pCertContext->pCertInfo->Subject, CERT_OID_NAME_STR) - получили строку "Subject", которая содержит нужные нам данные.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.02.2008(UTC) Сообщений: 1,491 Откуда: Крипто-Про
Поблагодарили: 40 раз в 37 постах
|
Здравствуйте. Последовательность вызовов функций правильная. Быстродействие этих частей приложения зависит от быстродействия смарт-карт. Для сравнения, можете сделать те же действия с контейнером на жестком диске -- там никаких задержек по 8-12 секунд не будет. У разных смарт-карт разная производительность на разных операциях. Какие-то долго создают контейнеры, какие-то долго удаляют и тп. |
Татьяна ООО Крипто-Про |
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close