13 KiB
cadescom.dll vs cryptcp.exe_.md
Детальное сравнение функциональных возможностей cadescom.dll и cryptcp.exe с указанием уникальных функций каждого инструмента.
cadescom.dll (COM‑библиотека)
Ключевые особенности:
- работает через COM‑интерфейс (ActiveX/OLE Automation);
- интегрируется в приложения (в т. ч. браузерные плагины);
- ориентирована на интерактивное использование в GUI‑среде.
Функции, которых нет в cryptcp.exe:
-
Интеграция в веб‑браузеры
- позволяет подписывать данные прямо на веб‑страницах через КриптоПро ЭЦП Browser plug‑in;
- поддерживает подписание форм, файлов, текстовых блоков без перехода в консоль.
-
Работа с интерактивными диалогами выбора сертификата
- выводит стандартное окно Windows для выбора сертификата (с предпросмотром свойств);
- не требует заранее указывать отпечаток сертификата (
-thumbprint) в команде.
-
Поддержка усовершенствованных подписей (CAdES) «из коробки»
- нативная работа с профилями CAdES‑BES, CAdES‑T, CAdES‑C, CAdES‑X Long и др.;
- автоматическое добавление штампов времени (TSP) и архивных меток (CAdES‑A) при настройке.
-
Гибкая настройка параметров подписи через свойства объектов
- управление атрибутами подписи (например,
ContentTimestamp,SignatureTimestamp) через свойства COM‑объектов; - возможность задавать произвольные атрибуты (unsigned attributes) без жёсткой командной строки.
- управление атрибутами подписи (например,
-
Поддержка отсоединённой и присоединённой подписи в одном интерфейсе
- переключение между режимами через свойство
CPSigner.Options; - не требует разных команд для разных типов подписи.
- переключение между режимами через свойство
-
Интеграция с системами документооборота
- встраивание в ERP, CRM, ECM через API (например, в 1С, SharePoint);
- обработка потоков данных без сохранения временных файлов.
cryptcp.exe (утилита командной строки)
Ключевые особенности:
- работает в консольном режиме;
- подходит для скриптов, автоматизации, серверных задач;
- требует явного указания параметров через аргументы командной строки.
Функции, которых нет в cadescom.dll:
-
Пакетная обработка файлов
- подписание/шифрование множества файлов одной командой (например,
cryptcp -sign -dir input_files/ output_signs/); - рекурсивный обход директорий.
- подписание/шифрование множества файлов одной командой (например,
-
Работа с контейнерами ключей без установки в систему
- прямое обращение к файлам контейнеров (
.pfx,.p12) через параметр-pin; - не требует импорта сертификата в хранилище Windows.
- прямое обращение к файлам контейнеров (
-
Расширенные опции шифрования
- поддержка алгоритмов ГОСТ Р 34.10‑2012 + ГОСТ Р 34.11‑2012 (256/512 бит);
- настройка параметров шифрования (режим, ключ) через ключи командной строки.
-
Создание запросов на сертификаты (CSR)
- генерация CSR с заданными OID и расширениями (например,
cryptcp -creatrq -dn "CN=User" -provtype 75 -certusage 1.3.6.1.5.5.7.3.2); - экспорт в файл без участия GUI.
- генерация CSR с заданными OID и расширениями (например,
-
Управление хранилищами сертификатов
- установка/удаление сертификатов из хранилищ (
-inst,-del); - просмотр списка сертификатов в хранилище (
-list).
- установка/удаление сертификатов из хранилищ (
-
Работа с откреплёнными штампами времени (RFC 3161)
- получение TSP‑штампа в отдельный файл (
-tsp); - проверка подписи с внешним TSP‑файлом.
- получение TSP‑штампа в отдельный файл (
-
Хеширование файлов с выводом в консоль
- вычисление хэша по ГОСТ Р 34.11‑2012 (
cryptcp -hash -alg GR3411-2012-512 file.txt); - вывод результата в stdout для использования в скриптах.
- вычисление хэша по ГОСТ Р 34.11‑2012 (
-
Поддержка шифрования в формате CMS с настройками
- указание алгоритма шифрования, режима, длины ключа через параметры;
- создание зашифрованных сообщений с несколькими получателями.
-
Автоматизация через переменные окружения
- передача паролей, путей к контейнерам через переменные (например,
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 это требует явной настройки команд. 62
Поддержка 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
Для проверки подписи используется аналогичная опция, например:
cryptcp.exe -verify -xlongtype1 C:\data\test.txt.logn_sgn
Дополнительные требования
Для работы с усовершенствованными подписями в cryptcp.exe необходимо:
- Установить ПО КриптоПро TSP Client и КриптоПро OCSP Client с действующими лицензиями.
6 - Настроить доступ к службе штампов времени (TSA), если требуется добавление штампа времени.
- Убедиться, что цепочка сертификатов проверена и все необходимые компоненты (например, CRL — списки отозванных сертификатов) доступны.
Сравнение с cadescom.dll
| Критерий | cadescom.dll | cryptcp.exe |
|---|---|---|
| Способ настройки | Поддержка CAdES реализована через COM-интерфейс, не требует явных параметров для базовых операций | Требуется явное указание опций в командной строке (например, -cadesbes, -cadest, -xlongtype1) |
| Интеграция | Предназначена для интеграции в приложения через COM | Работает в консольном режиме, подходит для скриптов и автоматизации |
| Гибкость | Позволяет гибко настраивать параметры через свойства объектов | Параметры задаются через командные опции, меньше возможностей для тонкой настройки в runtime |
Таким образом, хотя cryptcp.exe поддерживает CAdES, это требует явной настройки команд и дополнительных компонентов, в то время как cadescom.dll предоставляет более интегрированное решение для работы с CAdES в программных продуктах.