-
Медвежонок Пятачок © (18.08.09 22:18) [20]При создании запроса в криптоапи порядок примерно такой:
готовим инфомацию о владельце с помощью CertStrToName
получаем контекст своего приватного контейнера через CryptAcquireContext
получаем открытый ключ через CryptExportPublicKeyInfo
заполняем структуру CERT_REQUEST_INFO используя данные из предыдущих шагов
уточняем алгоритмы и спецификации ключей для котрых выпускается сертификат (AT_KEYEXCHANGE или AT_SIGNATURE. Впрочем в случае с RSA возможно используются другие спецификации)
завершающий этап - вызов CryptSignAndEncodeCertificate
при этом получаем закодированный в der запрос.
применяем к нему CryptStringToBinary с флагом CRYPT_STRING_BASE64REQUESTHEADER для преобразования der в base64 с нужным префиксом типа BEGIN NEW CERTIFICATE REQUEST
сохраняем полученное в файл или прямо отсылаем http-пост запросом -
Нашел статью,
http://citforum.novgorod.ru/security/articles/delphi/
Правда она "кривая", Wcrypt2.pas на котором примеры показаны устарел, константы "недоопределены" (не сходятся с примером), функций не хватает, а в новом от jedi-api уже все описания поменялись (вместо поинтеров var например, и т.д.), поправленный "на скорую руку" не заработал в общем.
Но в принципе ясно, что и с криптоапи нужные мне файлы все таки можно сделать. Только не в 5 мин естественно (любят же у нас "пальцы погнуть..." :(, а смысл?). В общем есть с чем на выходные заняться.
Спасибо за помощь.