### cadescom.dll vs cryptcp.exe_.md Детальное сравнение функциональных возможностей **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 в программных продуктах.