| ||||
| ||||
Кто знает что либо про фукнкцию CryptDllConvertPublicKeyInfo? Искал здесь(и не только) эту информацию но везде только аналогичные вопросы, а ответов нет. Почему КриптоПро упорно не отвечает на подобные вопросы!? | ||||
Ответы: | ||||
| ||||
Очень хороший ответ на этот вопрос дал представитель Microsoft: http://www.derkeiler.com/Newsgroups/microsoft.public.win2000.security/2003-02/1426.html | ||||
| ||||
2Василий: Вы уходите от ответа. Назвать эту функцию можно как угодно, и действительно вся проблемма в том, что эта функция не документирована. A ситуация собственно вот в чём. Когда windows разбирает сертификат и встречает открытый ключ с нестандартным OID(напрмер то же ГОСТ - "1.2.643.2.2.19") она по этому идентификатору вызывает некую зарегистрированную для данного OID функцию, которую Вы в своём CSP реализовали, следовательно знаете её спецификацию. Эта информация может быть закрытой по каким либо причинам, но тогда просто скажите мол это наш секрет или скорее правильнее будет сказать что Microsoft не хочет раскрывать эту информацию. Пусть так. Я в чём то ошибаюсь? | ||||
| ||||
Во первых это не функция, а имя набора функций. И что конкретно интересует? | ||||
| ||||
Интересует спецификация (описание входных и выходных параметров) функции которая вызывается в Windows при разборе открытого ключа в сертификате(уж и не знаю как её назвать теперь, может Вы подскажете). Раз это семейство, то в идеале конечно описание всего семейства функций. Я возможно что то не понимаю во всём этом механизме, но потому и не понимаю, что не нашёл документации по этому поводу. | ||||
| ||||
Документации по этому поводу не существует. В MS CAPI есть механизм расширения поддержки оидов. Для этого они предлагают регистрировать под новые оиды и определенные семейства функций свои функции. Немножко есть тут: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/seccrypto/security/extending_cryptoapi_functionality.asp. Ну и public symbols еще никто не отменял. | ||||
| ||||
Всё по ссылке выше про расширение функциональности CryptoAPI я конечно читал уже и зарегистрировать функцию для новго OID я могу. Вопрос в том что это должна быть за функция, в каждом конкретном случае. Возьмём для примера декодирование открытого ключа. Если зарегистрировать для OID "1.2.643.2.2.19" такую функцию: BOOL WINAPI CryptDllConvertPublicKeyInfo( DWORD dwCertEncodingType, VOID *EncodedKeyInfo, DWORD dwAlg, DWORD dwFlags, BYTE **ppStructInfo, DWORD *StructLen ); (см http://www.cryptopro.ru/CryptoPro/forum/myforum.asp?q=814) то она успешно вызывается Windows при разборе сертификата с ГОСТ алгоритмом открытого ключа, но непонятно что должно быть во входных и выходных параметрах. Но похоже этого никто не раскажет, поможет только исследовательская работа, а жаль :( | ||||
| ||||
Так Вы и сами все нашли - чего ище рассказывать. VOID *EncodedKeyInfo, - это PCERT_PUBLIC_KEY_INFO, а дальше итак понятно. | ||||
| ||||
А выходные параметры BYTE **ppStructInfo, DWORD *StructLen это какая структура? | ||||