Командная строка КриптоАРМ — подпись, шифрование и проверка - Документация для КриптоАРМ 6
Перейти к содержанию

Выполнение операций в командной строке#

Научитесь работать с командной строкой (CLI) КриптоАРМ: подписывать, шифровать, расшифровывать и проверять файлы. В этом руководстве собраны команды и практические примеры для Windows, Linux и macOS.

Содержание:


Общая информация#

CLI (Command Line Interface, интерфейс командной строки) — это способ управления приложением с помощью текстовых команд, вводимых через терминал или консоль.

Команды определяют, какие операции выполнить, с какими параметрами и над какими файлами.

CLI также подходит для автоматизации — выполнения операций без участия пользователя в составе систем обмена и скриптов .bat и .sh.

Важные замечания#

  • Перед использованием CLI убедитесь, что приложение настроено для работы с электронной подписью.

    🔍 Подробную информацию о настройке можно найти в инструкции Начало работы.

  • Перед вводом команды необходимо указать путь до исполняемого файла. После указания пути до исполняемого файла необходимо поставить пробел, затем вводить команды.

  • Все команды и параметры пишутся через пробел.

Синтаксис команд#

  • -команда — команда пишется первой, после пути до исполняемого файла. Далее указываются значения переменных и параметры операции.
  • <текст> — указываются значения переменной, такие как Серийный номер сертификата, Путь до исходного файла, OID алгоритма шифрования и т.п.
  • [текст] — необязательные параметры, которые можно как задать, так и не задавать, тогда будут использоваться значения по умолчанию.

Пути к исполняемым файлам#

Система Путь при установке по умолчанию
Windows %ProgramFiles%\CryptoARM\cryptoarm.exe
Linux /opt/cryptoarm/cryptoarm
macOS /Applications/cryptoarm.app/Contents/MacOS/cryptoarm

Подпись#

Команда: sign или sig

Команда позволяет выполнить операцию подписи одного или нескольких файлов.

Если в качестве исходного файла указать уже подписанный документ, то будет добавлена соподпись.

Синтаксис#

sign --cert <serial> [--standard <type>] [--pades] [--visual-copy] [--detached] [--enc <DER|BASE-64>] [--ext <sig|p7s|sgn|sign|bin|pem>] [--pin <PIN>] [--save-copy] [-f, --force] [--logcrypto] [--certification] [--overwrite-original-pdf] [--reason <reason>] [--contact-info <contact-info>] [--location <location>] [--signer-name <name>] [--join-signs <files...>] [--join-signs-folder <folder>] [--stamp-* <value>] [--tsp <tsp-addr> [--ocsp <ocsp-addr>] [--proxy <proxy-address> [--proxy-port <port>] [--proxy-login <login>] [--proxy-password <password>]]] --source-file <file>|--source-folder <folder> --signed-file-path <file>|--folder-save-signed <folder>

Описание команды#

Общие параметры подписи#

Параметр Описание По умолчанию
--cert <serial> Серийный номер сертификата подписи —
--standard <type> Стандарт подписи CAdES (CAdES-BES, CAdES-T, CAdES-A, CAdES-XLT1) "CAdES-BES"
--detached Создать отделённую подпись Отключено
--save-copy Сохранять копию результата в Архиве Отключено
--pin <pin-code> ПИН-код ключа сертификата —
--enc <DER\|BASE-64> Формат сохранения подписи "DER"
--ext <sig\|p7s\|sgn\|sign\|bin\|pem> Расширение файла подписи "sig"
-f, --force Использовать недействительный сертификат без подтверждения Отключено
--logcrypto Включение лога trusted-crypto Отключено

Объединение подписей#

Подробнее про функцию Объединение подписей читайте в инструкции Подпись и шифрование.

Параметр Описание По умолчанию
--join-signs <files...> Список путей к файлам подписей для объединения (минимум два файла) —
--join-signs-folder <folder> Путь к папке с файлами подписей для объединения —

Параметры подписи PDF (PAdES)#

Положение и внешний вид штампа подписи:

Параметр Описание По умолчанию
--pades Подписать PDF по стандарту PAdES Отключено
--visual-copy Создать визуальную копию PDF со штампом без электронной подписи (печатную форму). Работает только для обычной подписи, несовместим с --pades Отключено
--certification Создать сертифицирующую подпись (фиксирует разрешённые действия с документом) Отключено
--overwrite-original-pdf Перезаписать исходный файл после подписи Отключено
--stamp-width <width> Ширина штампа —
--stamp-height <height> Высота штампа —
--stamp-padding-left <padding> Отступ слева —
--stamp-padding-bottom <padding> Отступ снизу —
--stamp-horizontal-align <align> Выравнивание штампа по горизонтали: left, center, right center
--stamp-vertical-align <align> Выравнивание штампа по вертикали: top, center, bottom bottom
--stamp-color <color> Цвет штампа #000000
--stamp-background-color <color> Цвет фона штампа #ffffff
--stamp-no-background Прозрачный фон под штамп Отключено
--stamp-title <title> Заголовок штампа вместо стандартного текста (применяется, когда реквизиты отображаются произвольно) —
--stamp-page <number> Страница размещения Последняя
--stamp-on-all-pages Дублировать штамп на всех страницах Отключено
--stamp-pixel-ratio <ratio> Pixel Ratio для рендеринга штампа 1

Содержимое штампа подписи:

Параметр Описание По умолчанию
--stamp-mchd <number> Добавить номер МЧД в штамп —
--stamp-individual Добавить ФИО владельца сертификата —
--stamp-job-position <value> Добавить должность —
--stamp-organization-name <value> Добавить организацию —
--stamp-issuer-friendly-name <value> Добавить издателя сертификата —
--stamp-mark <value> Добавить примечание —
--stamp-description <value> Добавить описание —
--stamp-location <value> Добавить местоположение —
--stamp-sign-time Добавить дату и время подписи (системное время) —

Сведения о подписанте (поля, отображаемые в свойствах подписи Adobe):

Параметр Описание По умолчанию
--reason <text> Обоснование подписания (Reason) —
--contact-info <text> Контактная информация подписанта (ContactInfo) —
--location <text> Местоположение подписания (Location) —
--signer-name <text> Кем подписан документ (Name). Если не указан, Adobe выводит имя из сертификата —

Дата подписания (M) подставляется автоматически и не требует отдельного параметра.

⚠️ Ключ --overwrite-original-pdf необратимо изменяет исходный файл. Используйте его с осторожностью, особенно в скриптах, где путь к файлу контролируется.

Сетевые параметры#

Параметр Описание По умолчанию
--tsp <url> Адрес службы метки времени TSP —
--ocsp <url> Адрес службы OCSP —
--proxy <address> Адрес прокси-сервера —
--proxy-port <port> Порт прокси —
--proxy-login <login> Логин для прокси —
--proxy-password <password> Пароль для прокси —

В Windows адреса служб --tsp и --ocsp нужно указывать в одинарных кавычках. Пример: --tsp 'https://example.com/tsp/tsp.srf'.

Ввод и вывод#

Параметр Описание По умолчанию
--source-file <file> Путь к подписываемому файлу —
--source-folder <folder> Подписать все файлы из папки —
--signed-file-path <file> Путь для результата подписи —
--folder-save-signed <folder> Папка для подписанных файлов —
-h, --help Вывод справки по команде —

Практические примеры#

Пример 1: Подпись со стандартным штампом на последней странице#

В этом примере подписывается PDF-файл со штампом размером 100×30 мм, расположенным в 20 мм от левого и нижнего края последней страницы.

"C:\Program Files\CryptoARM\cryptoarm.exe" sign \
  --source-file "C:\Doc\Пример.pdf" \
  --cert "5883d78e000300093ab6" \
  --pin "12345678" \
  --pades \
  --stamp-width 100 \
  --stamp-height 30 \
  --stamp-padding-left 20 \
  --stamp-padding-bottom 20

Внешний вид штампа:

Стандартный штамп на последней странице


Пример 2: Подпись со штампом красного цвета на всех страницах#

В этом примере подписывается PDF-файл со штампом красного цвета. Штамп размещен в правом нижнем углу на каждой странице документа.

"C:\Program Files\CryptoARM\cryptoarm.exe" sign \
  --source-file "C:\Doc\Пример.pdf" \
  --cert "5883d78e000300093ab6" \
  --pin "12345678" \
  --pades \
  --stamp-width 80 \
  --stamp-height 30 \
  --stamp-padding-left 110 \
  --stamp-padding-bottom 10 \
  --stamp-color "#FF0000" \
  --stamp-on-all-pages

Внешний вид штампа:

Красный штамп на всех страницах


Пример 2.1: Штамп в левом верхнем углу с синим фоном и белым текстом#

В этом примере штамп размещается в левом верхнем углу первой страницы, с синим фоном и белым текстом.

"C:\Program Files\CryptoARM\cryptoarm.exe" sign \
  --source-file "C:\Doc\Пример.pdf" \
  --cert "5883d78e000300093ab6" \
  --pin "12345678" \
  --pades \
  --stamp-page 1 \
  --stamp-horizontal-align left \
  --stamp-vertical-align top \
  --stamp-padding-left 10 \
  --stamp-padding-bottom 10 \
  --stamp-background-color "#0000ff" \
  --stamp-color "#ffffff"

Пример 2.2: Визуальная копия PDF (печатная форма) при подписании#

В этом примере обычная подпись (без PAdES) дополняется визуальной копией PDF со штампом. Визуальная копия сохраняется рядом с исходным файлом под именем <имя>_штамп.pdf.

"C:\Program Files\CryptoARM\cryptoarm.exe" sign \
  --source-file "C:\Doc\Пример.pdf" \
  --cert "5883d78e000300093ab6" \
  --pin "12345678" \
  --visual-copy \
  --stamp-title "ДОКУМЕНТ ПОДПИСАН" \
  --stamp-color "#0000ff"

ℹ️ Параметр --visual-copy несовместим с --pades: визуальная копия создаётся только для обычной подписи.

Пример 3: Подпись документа с меткой времени#

В этом примере подписывается файл со стандартом CAdES-T, который включает метку времени. Файл будет сохранен в формате .p7s с кодировкой BASE-64. Копия файла будет помещена в папку Архив раздела Документы.

"C:\Program Files\CryptoARM\cryptoarm.exe" sign \
  --source-file "C:\Documents\Example.pdf" \
  --cert "5883d78e000300093ab6" \
  --pin "12345678" \
  --standard "CAdES-T" \
  --tsp "https://example.com/tsp/tsp.srf" \
  --enc "BASE-64" \
  --ext "p7s" \
  --save-copy \

Шифрование#

Команды: encrypt или enc

Команда позволяет выполнить шифрование одного или нескольких файлов в адрес одного или нескольких сертификатов.

Синтаксис#

encrypt --cert <serial...> [--alg <alg-oid>] [--delete-source] [--save-copy] [--ext <enc|p7m|p7e|pem>] [--enc <DER|BASE-64>] [-f, --force] [--logcrypto] [--decode <infile> [outfile]] [--encode <infile> [outfile]] --source-file <file>|--source-folder <folder> --encrypted-file-path <file>|--folder-save-encrypted <folder>

Описание команды#

Параметр Описание Значение по умолчанию
--cert <serial...> Серийный номер сертификата подписи (можно указать несколько) —
--alg <alg-oid> OID алгоритма шифрования "1.2.643.2.2.21"
--delete-source Удаление исходного файла после шифрования Отключено
--save-copy Сохранение копии результата в Архиве Отключено
--ext <enc\|p7m\|p7e\|pem> Расширение создаваемого шифрованного файла "enc"
--enc <DER\|BASE-64> Кодировка шифруемого файла "DER"
--logcrypto Включает лог trusted-crypto Отключено
-f, --force Автоматическое согласие на использование недействительных сертификатов Отключено
--source-file <path-file> Путь к файлу для шифрования —
--encrypted-file-path <path-file> Путь к файлу для сохранения результата шифрования —
--folder-save-encrypted <path-folder> Путь к папке для сохранения зашифрованных файлов —
--source-folder <path-folder> Путь к папке с файлами для шифрования —
-h, --help Вывод справки по команде —

Практический пример#

В этом примере шифруется файл Example.txt с использованием сертификата с серийным номером 5883d78e000300093ab6. Результат шифрования будет сохранен в файл Encrypted_Example.enc. Исходный файл будет удален, а копия зашифрованного файла сохранится в папку Архив раздела Документы.

"C:\Program Files\CryptoARM\cryptoarm.exe" encrypt \
  --cert "5883d78e000300093ab6" \
  --enc "DER" \
  --alg "1.2.643.2.2.21" \
  --delete-source \
  --ext "enc" \
  --save-copy \
  --source-file "C:\Documents\Example.txt" \
  --encrypted-file-path "C:\Documents\Encrypted_Example.enc"

Кодирование и декодирование файлов#

Для команд sign, encrypt и certificates доступны параметры кодирования и декодирования файлов. Параметры позволяют преобразовать бинарные данные в текстовый формат BASE64 (PEM) и обратно.

Команда Тип файла для кодирования/декодирования
sign Файлы подписи
encrypt Файлы сертификатов или запросов на сертификат
certificates Файлы сертификатов или запросов на сертификат
Параметр Описание
--decode <infile> [outfile] Декодирование файла из формата DER в PEM (BASE-64).
--encode <infile> [outfile] Кодирование файла из формата PEM (BASE-64) в DER.

Кодирование удобно использовать, если необходимо передать файл в текстовом виде, например через системы, которые не поддерживают передачу бинарных данных.

  • Параметр <infile> — путь к входному файлу.
  • Параметр <outfile> — путь к файлу результата (необязательный; если не указан, суффикс _decoded или _encoded добавляется к имени исходного файла перед его расширением, и результат сохраняется в той же папке). Указывается после параметра --decode или --encode.

Список сертификатов#

Команда: certificates или cer

Команда выводит список личных сертификатов, установленных в хранилище MY.

Параметр Описание
--logcrypto Включает лог trusted-crypto
--decode <infile> [outfile] Декодирование файла сертификата или запроса из формата DER в PEM
--encode <infile> [outfile] Кодирование файла сертификата или запроса из формата PEM в DER
-h, --help Вывод справки по команде

Подробнее о параметрах --decode и --encode читайте в разделе Кодирование и декодирование файлов.

Практический пример#

"C:\Program Files\CryptoARM\cryptoarm.exe" certificates

Расшифрование#

Команды: decrypt или dec

Команда позволяет выполнить расшифрование одного или нескольких зашифрованных файлов.

Синтаксис#

decrypt [--pin <PIN>] [--save-copy] [--logcrypto] --source-file <file>|--source-folder <folder> --decrypted-file-path <file>|--folder-save-decrypted <folder>

Описание команды#

Параметр Описание Значение по умолчанию
--save-copy Сохранение копии результата в Архиве Отключено
--logcrypto Включает лог trusted-crypto Отключено
--pin <pin-code> Пин-код ключа расшифрования -
--source-file <path-file> Путь к файлу для расшифрования -
--source-folder <path-folder> Путь к папке с файлами для расшифрования -
--decrypted-file-path <path-file> Путь для сохранения расшифрованного файла -
--folder-save-decrypted <path-folder> Путь к папке для сохранения результатов расшифрования -
-h, --help Вывод справки по команде -

Практический пример#

В этом примере расшифровывается файл Encrypted_Example.enc. Для сертификата шифрования используется ПИН-код 12345678. Расшифрованный результат сохраняется в C:\Documents\.

"C:\Program Files\CryptoARM\cryptoarm.exe" decrypt \
  --pin "12345678" \
  --source-file "C:\Documents\Encrypted_Example.enc" \
  --decrypted-file-path "C:\Documents\Decrypted_Example.txt"

Проверка подписи#

Команды:

  • verify или ver — проверка одной или нескольких подписей.
  • verify_ts или vts — проверка штампов времени из подписи.

Команда позволяет выполнить проверку одной или нескольких подписей, либо штампов времени в файле подписи. Есть возможность сохранения отчёт о проверке в отдельный файл в формате pdf или json.

Синтаксис#

verify [--document <original-file>] [-r-pdf [report-folder]] [-r-pdf-m [report-folder]] [-r-json [report-file-path]] [-u, --unsign [output-folder-path]] [--visual-copy] [--logcrypto] --source-file <file>|--source-folder <folder>
verify_ts [--document <original-file>] [-r, --save-report [report-file]] [--logcrypto] --source-file <file>|--source-folder <folder>

Описание команды#

Параметр Описание Значение по умолчанию
-r-pdf, --save-report-pdf [report-folder] Сохранение копии результата в формате PDF —
-r-pdf-m, --save-report-pdf-merged [report-folder] Сохранение копии результата в формате PDF (объединённый файл) —
-r-json, --save-report-json [report-file-path] Сохранение копии результата в формате JSON —
--document <original-file> Указание исходного файла для откреплённой подписи —
--visual-copy Создать визуальную копию PDF-документа со штампом без электронной подписи (печатную форму). Работает для файлов обычной подписи .sig/.p7s/.sgn/.sign (как присоединённой, так и откреплённой) Отключено
--logcrypto Включение логирования trusted-crypto Отключено
--source-file <source-file-path> Указание файла подписи для проверки —
--source-folder <source-folder-path> Указание папки для пакетной проверки подписей —
-u, --unsign [output-folder-path] Извлечение исходного документа из подписанного файла —
-h, --help Вывод справки по команде —

💡 Совет: Если не указывать папку для отчёта (-r-pdf, -r-pdf-m) или файл для JSON-отчёта (-r-json), отчёт сохранится в папку с проверяемыми файлами.

💡 Совет: Чтобы посмотреть список параметров команды проверки штампов времени, используйте команду verify_ts --help.

Параметры штампа визуальной копии (для --visual-copy)#

При использовании --visual-copy доступны те же параметры штампа, что и для подписи PDF:

Параметр Описание По умолчанию
--stamp-width <width> Ширина штампа —
--stamp-height <height> Высота штампа —
--stamp-padding-left <padding> Отступ слева —
--stamp-padding-bottom <padding> Отступ снизу —
--stamp-horizontal-align <align> Выравнивание по горизонтали: left, center, right center
--stamp-vertical-align <align> Выравнивание по вертикали: top, center, bottom bottom
--stamp-color <color> Цвет штампа #000000
--stamp-background-color <color> Цвет фона штампа #ffffff
--stamp-no-background Прозрачный фон Отключено
--stamp-title <title> Заголовок штампа вместо стандартного текста —
--stamp-page <number> Страница размещения Последняя
--stamp-on-all-pages Дублировать штамп на всех страницах Отключено
--stamp-pixel-ratio <ratio> Pixel Ratio для рендеринга штампа 1
--stamp-mchd <number> Добавить номер МЧД в штамп —
--stamp-individual Добавить ФИО владельца сертификата —
--stamp-job-position <value> Добавить должность —
--stamp-organization-name <value> Добавить организацию —
--stamp-issuer-friendly-name <value> Добавить издателя сертификата —
--stamp-mark <value> Добавить примечание —
--stamp-description <value> Добавить описание —
--stamp-location <value> Добавить местоположение —
--stamp-sign-time Добавить дату и время подписи (системное время) —

Практический пример#

В этом примере выполняется проверка подписи файлов в папке C:\Foldername с сохранением отчета о проверке в формате pdf в папку с проверяемыми файлами.

"C:\Program Files\CryptoARM\cryptoarm.exe" ver --source-folder C:\Foldername -r-pdf

Пример: Визуальная копия при проверке подписи#

В этом примере по присоединённой подписи Пример.pdf.sig создаётся визуальная копия PDF со штампом на первой странице. Визуальная копия сохраняется рядом с файлом подписи под именем Пример_штамп.pdf.

"C:\Program Files\CryptoARM\cryptoarm.exe" verify \
  --source-file "C:\Doc\Пример.pdf.sig" \
  --visual-copy \
  --stamp-page 1 \
  --stamp-background-color "#0000ff" \
  --stamp-color "#ffffff" \
  --stamp-horizontal-align left \
  --stamp-vertical-align top

Для откреплённой подписи дополнительно укажите исходный документ:

"C:\Program Files\CryptoARM\cryptoarm.exe" verify \
  --source-file "C:\Doc\Пример.sig" \
  --document "C:\Doc\Пример.pdf" \
  --visual-copy

Смотрите также#

Для повышения удобства работы и хранения данных веб-сайт CRYPTOARM.RU использует файлы COOKIE. Продолжая работу с веб-сайтом, Вы даете свое согласие на работу с этими файлами.