From 0dfd4010d2e0066165e34ea73873bcc8899e1fb0 Mon Sep 17 00:00:00 2001 From: Dmitry <121898072+bpmbpm@users.noreply.github.com> Date: Fri, 30 Jan 2026 12:08:11 +0300 Subject: [PATCH] Create cadescom.dll vs cryptcp.exe --- IT/CADES/cadescom.dll vs cryptcp.exe | 147 +++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 IT/CADES/cadescom.dll vs cryptcp.exe diff --git a/IT/CADES/cadescom.dll vs cryptcp.exe b/IT/CADES/cadescom.dll vs cryptcp.exe new file mode 100644 index 00000000..9adfd48f --- /dev/null +++ b/IT/CADES/cadescom.dll vs cryptcp.exe @@ -0,0 +1,147 @@ +### cadescom.dll vs cryptcp.exe + +Детальное сравнение функциональных возможностей **cadescom.dll** и **cryptcp.exe** с указанием *уникальных* функций каждого инструмента. + +## cadescom.dll (COM‑библиотека) + +**Ключевые особенности:** +* работает через COM‑интерфейс (ActiveX/OLE Automation); +* интегрируется в приложения (в т. ч. браузерные плагины); +* ориентирована на интерактивное использование в GUI‑среде. + + +**Функции, которых *нет* в cryptcp.exe:** + +1. **Интеграция в веб‑браузеры** + * позволяет подписывать данные прямо на веб‑страницах через КриптоПро ЭЦП Browser plug‑in; + * поддерживает подписание форм, файлов, текстовых блоков без перехода в консоль. + +2. **Работа с интерактивными диалогами выбора сертификата** + * выводит стандартное окно Windows для выбора сертификата (с предпросмотром свойств); + * не требует заранее указывать отпечаток сертификата (`-thumbprint`) в команде. + +3. **Поддержка усовершенствованных подписей (CAdES) «из коробки»** + * нативная работа с профилями CAdES‑BES, CAdES‑T, CAdES‑C, CAdES‑X Long и др.; + * автоматическое добавление штампов времени (TSP) и архивных меток (CAdES‑A) при настройке. + +4. **Гибкая настройка параметров подписи через свойства объектов** + * управление атрибутами подписи (например, `ContentTimestamp`, `SignatureTimestamp`) через свойства COM‑объектов; + * возможность задавать произвольные атрибуты (unsigned attributes) без жёсткой командной строки. + +5. **Поддержка отсоединённой и присоединённой подписи в одном интерфейсе** + * переключение между режимами через свойство `CPSigner.Options`; + * не требует разных команд для разных типов подписи. + +6. **Интеграция с системами документооборота** + * встраивание в ERP, CRM, ECM через API (например, в 1С, SharePoint); + * обработка потоков данных без сохранения временных файлов. + +--- + +## cryptcp.exe (утилита командной строки) + +**Ключевые особенности:** +* работает в консольном режиме; +* подходит для скриптов, автоматизации, серверных задач; +* требует явного указания параметров через аргументы командной строки. + +**Функции, которых *нет* в cadescom.dll:** + +1. **Пакетная обработка файлов** + * подписание/шифрование множества файлов одной командой (например, `cryptcp -sign -dir input_files/ output_signs/`); + * рекурсивный обход директорий. + +2. **Работа с контейнерами ключей без установки в систему** + * прямое обращение к файлам контейнеров (`.pfx`, `.p12`) через параметр `-pin`; + * не требует импорта сертификата в хранилище Windows. + +3. **Расширенные опции шифрования** + * поддержка алгоритмов ГОСТ Р 34.10‑2012 + ГОСТ Р 34.11‑2012 (256/512 бит); + * настройка параметров шифрования (режим, ключ) через ключи командной строки. + +4. **Создание запросов на сертификаты (CSR)** + * генерация CSR с заданными OID и расширениями (например, `cryptcp -creatrq -dn "CN=User" -provtype 75 -certusage 1.3.6.1.5.5.7.3.2`); + * экспорт в файл без участия GUI. + +5. **Управление хранилищами сертификатов** + * установка/удаление сертификатов из хранилищ (`-inst`, `-del`); + * просмотр списка сертификатов в хранилище (`-list`). + +6. **Работа с откреплёнными штампами времени (RFC 3161)** + * получение TSP‑штампа в отдельный файл (`-tsp`); + * проверка подписи с внешним TSP‑файлом. + +7. **Хеширование файлов с выводом в консоль** + * вычисление хэша по ГОСТ Р 34.11‑2012 (`cryptcp -hash -alg GR3411-2012-512 file.txt`); + * вывод результата в stdout для использования в скриптах. + +8. **Поддержка шифрования в формате CMS с настройками** + * указание алгоритма шифрования, режима, длины ключа через параметры; + * создание зашифрованных сообщений с несколькими получателями. + +9. **Автоматизация через переменные окружения** + * передача паролей, путей к контейнерам через переменные (например, `CRYPTO_PIN=`); + * интеграция в CI/CD‑пайплайны. + +--- + +## Итоговый вывод + +**Используйте cadescom.dll, если:** +* нужна интеграция в GUI‑приложение или браузер; +* требуется интерактивный выбор сертификата; +* необходимо поддерживать CAdES с расширенными профилями (X Long, A); +* важна работа с потоками данных без временных файлов. + +**Используйте cryptcp.exe, если:** +* нужна автоматизация через скрипты/команды; +* требуется пакетная обработка файлов; +* необходимо управлять хранилищами сертификатов из консоли; +* нужно создавать CSR или работать с внешними TSP‑штампами; +* важна поддержка ГОСТ‑алгоритмов для хеширования/шифрования. + +### box +Разве "Поддержка усовершенствованных подписей (CAdES) «из коробки»" нет в cryptcp.exe? + +Да, утилита **cryptcp.exe** действительно поддерживает работу с усовершенствованными подписями CAdES, но для этого требуется явное указание соответствующих параметров в командной строке и выполнение дополнительных условий. В отличие от cadescom.dll, где поддержка CAdES реализована через COM-интерфейс «из коробки», в cryptcp.exe это требует явной настройки команд. [```6```](https://cryptostore.ru/upload/keys/%D0%96%D0%A2%D0%AF%D0%98_00087-01%2093%2001_%20%D0%9F%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9%20%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8%20%D0%B4%D0%BB%D1%8F%20%D0%BF%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D0%B8%20%D0%B8%20%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%20%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%281%29.pdf)[```2```](https://ca.kontur.ru/Files/userfiles/file/Faq/cryptopro-license/5.0R2/zhtyai00101-02-93-01-prilozhenie-komandnoy-stroki-cryptcp.pdf) + +## Поддержка CAdES в cryptcp.exe + +В cryptcp.exe можно создавать и проверять подписи форматов CAdES-BES, CAdES-T и CAdES-X Long Type 1. Для этого используются специальные опции командной строки: +* **-cadesbes** — для создания или проверки подписи CAdES-BES; +* **-cadest** — для работы с CAdES-T; +* **-xlongtype1** — для CAdES-X Long Type 1. + +Пример команды для создания подписи CAdES-X Long Type 1: +``` +cryptcp.exe -sign -dn "CN=Иванов Петр" -cadesTSA http://tsp.test/tsp_root/tsp.srf -xlongtype1 C:\data\test.txt C:\data\test.txt.logn_sgn +``` +Здесь: +* `-sign` — команда создания подписи; +* `-dn "CN=Иванов Петр"` — выбор сертификата по имени; +* `-cadesTSA` — указание URL-адреса службы штампов времени; +* `-xlongtype1` — указание типа подписи CAdES-X Long Type 1; +* `C:\data\test.txt` — исходный файл; +* `C:\data\test.txt.logn_sgn` — файл с результатом подписи. [```6```](https://cryptostore.ru/upload/keys/%D0%96%D0%A2%D0%AF%D0%98_00087-01%2093%2001_%20%D0%9F%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9%20%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8%20%D0%B4%D0%BB%D1%8F%20%D0%BF%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D0%B8%20%D0%B8%20%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%20%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%281%29.pdf) + +Для проверки подписи используется аналогичная опция, например: +``` +cryptcp.exe -verify -xlongtype1 C:\data\test.txt.logn_sgn +``` + +## Дополнительные требования + +Для работы с усовершенствованными подписями в cryptcp.exe необходимо: +1. Установить ПО **КриптоПро TSP Client** и **КриптоПро OCSP Client** с действующими лицензиями. [```6```](https://cryptostore.ru/upload/keys/%D0%96%D0%A2%D0%AF%D0%98_00087-01%2093%2001_%20%D0%9F%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9%20%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8%20%D0%B4%D0%BB%D1%8F%20%D0%BF%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D0%B8%20%D0%B8%20%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%20%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%281%29.pdf) +2. Настроить доступ к службе штампов времени (TSA), если требуется добавление штампа времени. +3. Убедиться, что цепочка сертификатов проверена и все необходимые компоненты (например, CRL — списки отозванных сертификатов) доступны. + +## Сравнение с cadescom.dll + +| Критерий | cadescom.dll | cryptcp.exe | +|---|---|---| +| **Способ настройки** | Поддержка CAdES реализована через COM-интерфейс, не требует явных параметров для базовых операций | Требуется явное указание опций в командной строке (например, `-cadesbes`, `-cadest`, `-xlongtype1`)| +| **Интеграция** | Предназначена для интеграции в приложения через COM | Работает в консольном режиме, подходит для скриптов и автоматизации | +| **Гибкость** | Позволяет гибко настраивать параметры через свойства объектов | Параметры задаются через командные опции, меньше возможностей для тонкой настройки в runtime | + +Таким образом, хотя cryptcp.exe поддерживает CAdES, это требует явной настройки команд и дополнительных компонентов, в то время как cadescom.dll предоставляет более интегрированное решение для работы с CAdES в программных продуктах.