Автор: Norguhtar сам ключ не вынимается, а дается только указатель
Так я про это и говорю, просто называю не указатель, а дескриптор (хендл, handle - ближе к терминологии windows; машинный перевод Майкрософт иногда вообще переводит как "ручка").
Автор: Norguhtar Это реализуемо. Просто сейчас для интеграции надо пользоваться capilite который мягко говоря своебразный для *nix так как фактически представляет собой кусок windows CSP портированного на *nix. Как итог это еще и не совместимо ни с чем кроме софта который специально писался для него.
Зато на ура работают портированные с Windows программы. Просто подходы с разной стороны, а engine как возможный переходник между ними.
Автор: Norguhtar Ну если бы gostengy выложили в opensource то добавить туда еще gost89 для полного прокрытия труда не составило бы.
Это да, но и без "gostengy выложили в opensource" реализуемо. Ведь по сути шифрование и подпись для гост никак не связаны. Что ожидает openssl можно поискать в исходниках openssl. Заголовки функций capilite тоже есть.
Что получится если сделать движок (или скорее engine-надстройку), подгружающий gostengy и пробрасывающий функции tls и функции подписания из gostengy (но, допустим, по ходу меняющую хендлы ключей на свои для универсального использования ключей в подписи/расшифровке) и делающую дополнительные функции в виде проброса генерации сессионного ключа и процедуры шифрования к форматам capilite. Регистрация engine, как я понимаю, потребуется тоже другая с дополненным перечнем функций.
Если продолжать мысль дальше, что есть в старом engine gost и нет в gostengy, но можно бы пробросить к capilite, чтобы был полный цикл:
- генерацию ключевой пары (в контейнер КриптоПро);
- корректный экспорт ключевой пары в pfx (по требованиям TK26).
Чтобы старые скрипты для криптокомовского модуля gost внезапно стали рабочими через надстройку к gostengy и capilite.
Подобным образом можно наверно и совместимость с форматом engine openssl 1.0.x сделать, а то там целая история с переходом старых программ на ветку 1.1.х исключительно для поддержки ключей гост-2012. Да и вообще, были отдельные версии несовместимые с gost_capi / gostengy по процедуре регистрации engine.
Цитата: И все еще нахожусь на стадии получения данных о сертификате.
Тут посоветовать могу: 1) документацию Майкрософт; 2) сертификат это универсальная структура - незачем его разбирать через capilite если привыкли разбирать как openssl. Просто возьмите часть _Cert_Context с закодированным сертификатом (указатель pbEncoded, длина cbEncoded) и загрузите в подходящую функцию openssl; 3) если что пишите личным сообщением вопрос.
Отредактировано пользователем 5 декабря 2020 г. 15:06:01(UTC)
| Причина: Не указана