doc/IT/CADES/cadescom.dll_vs_cryptcp.exe.md

13 KiB
Raw Blame History

cadescom.dll vs cryptcp.exe_.md

Детальное сравнение функциональных возможностей cadescom.dll и cryptcp.exe с указанием уникальных функций каждого инструмента.

cadescom.dll (COMбиблиотека)

Ключевые особенности:

  • работает через COMинтерфейс (ActiveX/OLE Automation);
  • интегрируется в приложения (в т. ч. браузерные плагины);
  • ориентирована на интерактивное использование в GUIсреде.

Функции, которых нет в cryptcp.exe:

  1. Интеграция в веб‑браузеры

    • позволяет подписывать данные прямо на веб‑страницах через КриптоПро ЭЦП Browser plugin;
    • поддерживает подписание форм, файлов, текстовых блоков без перехода в консоль.
  2. Работа с интерактивными диалогами выбора сертификата

    • выводит стандартное окно Windows для выбора сертификата (с предпросмотром свойств);
    • не требует заранее указывать отпечаток сертификата (-thumbprint) в команде.
  3. Поддержка усовершенствованных подписей (CAdES) «из коробки»

    • нативная работа с профилями CAdESBES, CAdEST, CAdESC, CAdESX Long и др.;
    • автоматическое добавление штампов времени (TSP) и архивных меток (CAdESA) при настройке.
  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.102012 + ГОСТ Р 34.112012 (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.112012 (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 это требует явной настройки команд. 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 необходимо:

  1. Установить ПО КриптоПро TSP Client и КриптоПро OCSP Client с действующими лицензиями. 6
  2. Настроить доступ к службе штампов времени (TSA), если требуется добавление штампа времени.
  3. Убедиться, что цепочка сертификатов проверена и все необходимые компоненты (например, CRL — списки отозванных сертификатов) доступны.

Сравнение с cadescom.dll

Критерий cadescom.dll cryptcp.exe
Способ настройки Поддержка CAdES реализована через COM-интерфейс, не требует явных параметров для базовых операций Требуется явное указание опций в командной строке (например, -cadesbes, -cadest, -xlongtype1)
Интеграция Предназначена для интеграции в приложения через COM Работает в консольном режиме, подходит для скриптов и автоматизации
Гибкость Позволяет гибко настраивать параметры через свойства объектов Параметры задаются через командные опции, меньше возможностей для тонкой настройки в runtime

Таким образом, хотя cryptcp.exe поддерживает CAdES, это требует явной настройки команд и дополнительных компонентов, в то время как cadescom.dll предоставляет более интегрированное решение для работы с CAdES в программных продуктах.