22.06.2006 15:46:59CryptExportPublicKeyInfoEx Ответов: 2
Artyom
Подскажите, пожалуйста, где можно найти описание инсталлируемых функций,
которые можно переопределять через CryptRegisterOIDFunction? В WinCrypt.h
есть только несколько функций с их сигнатурами. Например, меня интересуют
функции: CryptDllEncodePublicKeyAndParameters, CryptDllConvertPublicKeyInfo.
Вообще, мне это понадобилось для того, чтобы экспортировать открытый ключ
из провайдера в формат X509 PublicKeyInfo. Я переопределил функцию
CryptDllExportPublicKeyInfoEx для идентификатора OID открытого ключа, но,
при вызове CryptExportPublicKeyInfoEx из прикладного приложения, Windows
не перенаправляет на переопределённую функцию, а похоже, что пробует сама
извлечь открытый ключ из провайдера и, возможно, интерпретировать его как
ключ RSA (возможно в виде BLOBHEADER+RSAPUBLICKEY блоба), что, конечно, не
получается. Возвращает в итоге ошибку 2 (объект не найден).
CryptoPro вовсе не переопределяет CryptDllExportPublicKeyInfoEx, но в то
же время отлично экспортирует ключ (за счёт других функций?
CryptDllEncodePublicKeyAndParameters?) в X509 PublicKeyInfo виде. Как сделать
подобное? Также это относится и к личным ключам и другим параметрам.

PS. Где можно изучить, как написать модуль TLS?
 
Ответы:
27.06.2006 3:52:55Сергей
Crypto Pro регистрирует функцию RNetEncodePublicKeyAndParameters в cpext.dll. Значит, они знают её сигнатуру. Именно в ней кодируются ключ и его параметры.
07.07.2006 13:07:14Artyom
Ответьте пожалуйста на этот вопрос. Срочно нужно узнать описание функции CryptDllEncodePublicKeyAndParameters. Ведь на КриптоПро кто-то знает это.