mirror of
https://github.com/bpmbpm/doc.git
synced 2026-04-28 19:42:06 +00:00
147 lines
13 KiB
Markdown
147 lines
13 KiB
Markdown
### 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 в программных продуктах.
|