Форум КриптоПро
»
Устаревшие продукты
»
КриптоПро CSP 3.6
»
Несоответствие алгоритма подписи сертификата и поддерживаемых алгоритмов CryptoPro 3.6
Статус: Активный участник
Группы: Участники
Зарегистрирован: 25.07.2013(UTC) Сообщений: 49  Откуда: Ставрополь Сказал(а) «Спасибо»: 6 раз Поблагодарили: 1 раз в 1 постах
|
В контексте сертификата oid - алгоритма подписи '1.2.643.2.2.3' CertOIDToAlgId('1.2.643.2.2.3')=32798 При запросе у провайдера списка поддерживаемых алгоритмов (CryptGetProvParam(provider, PP_ENUMALGS_EX,(BYTE*) algorithmInfo, &cbData, flags)) такого aiAlgid нет.
Как определить какой криптопровайдер необходим для установки сертификата в контейнер?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,399  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 719 раз в 623 постах
|
Нужно получать алгоритм открытого ключа из сертификата. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 25.07.2013(UTC) Сообщений: 49  Откуда: Ставрополь Сказал(а) «Спасибо»: 6 раз Поблагодарили: 1 раз в 1 постах
|
pCertificateContext->pCertInfo->SubjectPublicKeyInfo.Algorithm.pszObjId - ? то тоже не помогает. Помогите определить тип криптопровайдера по сертификату, не привязанного к контейнеру
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,399  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 719 раз в 623 постах
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 25.07.2013(UTC) Сообщений: 49  Откуда: Ставрополь Сказал(а) «Спасибо»: 6 раз Поблагодарили: 1 раз в 1 постах
|
pCertificateContext->pCertInfo->SubjectPublicKeyInfo.Algorithm.pszObjId="1.2.643.2.2.19" CertOIDToAlgId(pSignatureAlgorithm)=11811
при переборе алгоритмов предоставляемых криптопро
while(CryptEnumProviders(dwIndex, NULL, 0, &dwType, NULL, &lenName)==true ) { cryptoName=new WCHAR[lenName]; if(CryptEnumProviders(dwIndex, NULL, 0, &dwType, cryptoName, &lenName)) { if(CryptAcquireContext(&provider, NULL, cryptoName,dwType, CRYPT_VERIFYCONTEXT) ) { DWORD cbData=0; DWORD flags=CRYPT_FIRST; PROV_ENUMALGS_EX algorithmInfo; while(CryptGetProvParam(provider, PP_ENUMALGS_EX, NULL, &cbData, flags)==true) { if(CryptGetProvParam(provider, PP_ENUMALGS_EX,(BYTE*) &algorithmInfo, &cbData, flags)) { if(algorithmInfo.aiAlgid==findingAlghoritm) { MessageBox(NULL,L"FIND",L"FIND",MB_OK); return provider; } }else { //добавлено из за неправильной работы "eToken Base Cryptographic Provider" break; }; flags=CRYPT_NEXT; } } if(provider!=NULL) { CryptReleaseContext(provider,0); provider=NULL; } } dwIndex++; delete [] cryptoName; } cryptoName="Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider" возвращаются слудующие алгоритмы
PROV_ENUMALGS_EX algorithmInfo;
algorithmInfo { aiAlgid 26142 unsigned int dwDefaultLen 256 unsigned long dwMinLen 256 unsigned long dwMaxLen 256 unsigned long dwProtocols 0 unsigned long dwNameLen 14 unsigned long szName 0x0023e0c0 "GOST 28147-89" char[20] dwLongNameLen 14 unsigned long szLongName 0x0023e0d8 "GOST 28147-89" char[40] }
algorithmInfo { aiAlgid 32799 unsigned int dwDefaultLen 32 unsigned long dwMinLen 32 unsigned long dwMaxLen 32 unsigned long dwProtocols 0 unsigned long dwNameLen 19 unsigned long szName 0x001be1c0 "HMAC GOST 28147-89" char[20] dwLongNameLen 19 unsigned long szLongName 0x001be1d8 "HMAC GOST 28147-89" char[40] }
algorithmInfo { aiAlgid 43556 unsigned int dwDefaultLen 512 unsigned long dwMinLen 512 unsigned long dwMaxLen 512 unsigned long dwProtocols 0 unsigned long dwNameLen 18 unsigned long szName 0x001be1c0 "Diffie-Hellman EL" char[20] dwLongNameLen 18 unsigned long szLongName 0x001be1d8 "Diffie-Hellman EL" char[40] }
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,399  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 719 раз в 623 постах
|
вы неверно перебираете и пропускаете половину алгоритмов. С NULL вызывать не нужно - длина структуры фиксирована. |
|
 1 пользователь поблагодарил Максим Коллегин за этот пост.
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 25.07.2013(UTC) Сообщений: 49  Откуда: Ставрополь Сказал(а) «Спасибо»: 6 раз Поблагодарили: 1 раз в 1 постах
|
Спасибо, Вы абсолютно правы. Хотя странно и не логично работает в таком случае CryptoAPI. Сначала узнаем размер данных, затем отдаем в функцию указатель. Получается, что вызов функции проглатывает пустой указатель.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,399  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 719 раз в 623 постах
|
Все эти enumы не очень логичны, особенно PP_ENUMCONTAINERS. Даже сам MS не научился их вызывать правильно) Инкрементировать счетчик или нет на NULL - вот в чем вопрос.
|
|
|
|
|
Форум КриптоПро
»
Устаревшие продукты
»
КриптоПро CSP 3.6
»
Несоответствие алгоритма подписи сертификата и поддерживаемых алгоритмов CryptoPro 3.6
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close