Команда signAndEncrypt#
Запросы на подпись и шифрование документов, выполнение обратных операций#
Команда signAndEncrypt (подпись и шифрование) используется для запроса на подпись документа или пакета документов. Может использоваться в качестве аутентификатора.
Выполнение операции требует действующей лицензии на КриптоАРМ.

Формат ссылки#
Для выполнения команды signAndEncrypt должна быть сформирована ссылка вида:
-
cryptoarm://- зарегистрированный протокол -
<command>- выполняемая команда -
<URL>- ссылка на получение JSON с параметрами, нужными для выполнения команды -
?id=<id>- обязательный параметр. Идентификатор транзакции.
Пример:
Описание запросов и ответов#
Все запросы между КриптоАРМ и сервером ДОЛЖНЫ соответствовать спецификации протокола JSON-RPC 2.0. В качестве транспорта используется HTTP. Общее описание указано в разделе Формат ссылки.
Получение параметров операции#
После получения команды signAndEncrypt КриптоАРМ отправляет запрос на <URL> для получения параметров операции.
Формат запроса#
| Ключ | Значение | Описание |
|---|---|---|
| jsonrpc | «2.0» | Версия JSON-RPC протокола. Всегда «2.0». |
| method | signAndEncrypt.parameters | Используемый метод. Всегда signAndEncrypt.parameters. |
| id | Уникальный идентификатор | Используется идентификатор, который указан в ссылке на операцию. Подробнее в разделе Формат ссылки |
| diagnostic | IDiagnosticInformaton | Диагностическая информация о рабочем месте |
Пример:
Формат ответа#
| Ключ | Значение | Описание |
|---|---|---|
| jsonrpc | «2.0» | Версия JSON-RPC протокола. Всегда «2.0». |
| result | ISignAndEncryptParameters | Объект со сведениями о параметрах операции подписи |
| id | Уникальный идентификатор | Используется идентификатор, который указан в ссылке на операцию. Подробнее в разделе Формат ссылки |
| appName? | string | Необязательный параметр. Используется только для локального API. Если значение передано, то КриптоАРМ отобразит это название в окне подтверждения операции как название стороннего приложения. |
| apiKey? | string | Необязательный параметр. Используется только для локального API. Если значение передано, то КриптоАРМ отобразит это значение в окне подтверждения операции как проверочный код. |
Пример:
Отправка результата прямых операций#
После того, как пользователь выберет нужные сертификаты КриптоАРМ выполняет операцию. Полученные файлы отправляется POST-запросом. Используются нотификации (уведомления), для которых не требуется ответ сервера.
Формат запроса#
| Ключ | Значение | Описание |
|---|---|---|
| jsonrpc | «2.0» | Версия JSON-RPC протокола. Всегда «2.0». |
| method | signAndEncrypt.outDirectResults | Используемый метод. Всегда signAndEncrypt.outDirectResults. |
| params | Объект типа IDirectResults | Сведения о результатах прямой операции |
Пример:
Отправка результата обратных операций#
Результаты отправляется POST-запросом. Используются нотификации (уведомления), для которых не требуется ответ сервера.
Формат запроса#
| Ключ | Значение | Описание |
|---|---|---|
| jsonrpc | «2.0» | Версия JSON-RPC протокола. Всегда «2.0». |
| method | signAndEncrypt.outReverseResults | Используемый метод. Всегда signAndEncrypt.outReverseResults. |
| params | Объект типа IReverseResults | Сведения о результатах обратной операции |
Пример:
Отправка результата проверки подписи#
Результаты проверки подписи отправляется POST запросом. Используются нотификации (уведомления), для которых не требуется ответ сервера.
Формат запроса#
| Ключ | Значение | Описание |
|---|---|---|
| jsonrpc | «2.0» | Версия JSON-RPC протокола. Всегда «2.0». |
| method | signAndEncrypt.verifySignResults | Используемый метод. Всегда signAndEncrypt.verifySignResults. |
| params | Объект типа IVerifySignResults | Сведения о проверке подписи |
Пример:
Интерфейс ISignAndEncryptParameters#
Объекты данного типа описывают вид операции и её параметры.
| Свойство | Тип | Описание |
|---|---|---|
| operation | string[] | Тип операции. Доступные значения типов (комбинировать различные типы нельзя): ISignAndEncryptOperationDirect, ISignAndEncryptOperationReverse, ISignAndEncryptOperationVerify |
| props | ISignAndEncryptOperationProps | Параметры операции |
Тип ISignAndEncryptOperationDirect#
Возможные прямые операции.
| Значение | Описание |
|---|---|
| SIGN | Подпись |
| ARCHIVE | Архивирование |
| ENCRYPT | Шифрование |
Тип ISignAndEncryptOperationReverse#
Возможные обратные операции.
| Значение | Описание |
|---|---|
| UNSIGN | Снятие подписи |
| DECRYPT | Расшифрование |
| UNZIP | Разархивирование |
Тип ISignAndEncryptOperationVerify#
Проверка подписи.
| Значение | Описание |
|---|---|
| VERIFYSIGN | Проверка подписи |
Интерфейс ISignAndEncryptOperationProps#
Интерфейс ISignAndEncryptOperationProps описывает параметры операции.
| Свойство | Тип | Описание |
|---|---|---|
| headerText? | string | Необязательный параметр. Используется для отображения в заголовке окна. Максимальная длина - 40 символов. |
| descriptionText? | string | Необязательный параметр. Используется для отображения в сведениях об операции. Максимальная длина - 120 символов. |
| license? | string | Необязательное свойство. Содержит временную лицензию, которая будет использоваться для выполнения операции в КриптоАРМ. |
| uploader | string | Ссылка, на которую будут отправлены или сохранены результаты операции. Поддерживает протоколы https:// и file:// |
| files | Массив типа IFile[] | Массив файлов на подпись. Если не передан, то должен быть передан параметр archive |
| archive | IFile[] | Архив файлов на подпись. Распаковываются после получения. Параметр может использоваться вместо files. Перед отправкой результатов операции на сервер, они будут упакованы в архив. |
| extra | Объект типа IExtra | Настройки операции |
| localResultParams | Объект типа ILocalResultParams | Необязательное свойство. Используется только для локального API. Указывает пути для сохранения результатов. |
Интерфейс IFile#
Интерфейс IFile описывает файлы и ссылки на них.
| Свойство | Тип | Описание |
|---|---|---|
| name | string | Имя файла (с расширением) |
| url | string | Ссылка на скачивание файла |
| id | string | Уникальный идентификатор файла |
| urlDetached? | string | Необязательный параметр. Используется для откреплённой подписи. |
Интерфейс IExtra#
Интерфейс IExtra описывает настройки операции.
Если параметр не задан, то пользователю доступен выбор из всех доступных в приложении значений.
| Свойство | Тип | Описание |
|---|---|---|
| signType? | number | Необязательный параметр. Возможные значения: 0 - присоединенная подпись, 1 - отсоединённая подпись. |
| signStandart? | number | Необязательный параметр. Стандарт подписи. Возможные значения: 0 - CMS, 1 - CAdES-X Long Type 1, 2 - CAdES-T, 3 - CAdES-A. |
| signEncoding? | number | Необязательный параметр. Кодировка. Возможные значения: 0 – BASE-64, 1 – DER. |
| timestampOnSign? | string | Необязательный параметр. Штамп времени на подпись. Возможные значения: True - будет добавлен штамп времени, False – не будет добавлен штамп времени. |
| timestampOnData? | string | Необязательный параметр. Штамп времени на подписываема данные. Возможные значения: True - будет добавлен штамп времени, False – не будет добавлен штамп времени. |
| encryptEncoding? | number | Необязательный параметр. Кодировка. Возможные значения: 0 – BASE-64, 1 – DER. |
| encryptAlgorithm? | number | Необязательный параметр. Алгоритм шифрования. Возможные значения: 0 – ГОСТ 28147-89, 1 – ГОСТ 34.12-2015 Магма, 2 – ГОСТ 34.12-2015 Кузнечик. |
| token? | string | Необязательный параметр. Токен, который будет использоваться при скачивании файлов с сервиса (параметр запроса). |
| tspURL? | string | Необязательный параметр. Адрес службы штампов времени. |
| ocspURL? | string | Необязательный параметр. Адрес службы актуальных статусов. |
| encryptCertificates? | string[] | Необязательный параметр. Сертификаты шифрования. |
| signCertificate? | Объект типа: {«x509»:string} | Необязательный параметр. Сертификат подписчика или параметры для поиска сертификата подписчика. |
| signatureExtension? | string | Необязательный параметр. Расширение для подписанного файла. |
| separateArchivesForSignResults? | boolean | Необязательный параметр. Создавать пакет (архив) для каждого подписываемого файла. |
| isAddStampToPdf? | boolean | Необязательный параметр. Добавить печатную форму для PDF-файлов. |
| signStampAppearance? | ISignStampAppearance | Необязательный параметр. Параметры штампа PDF. |
| signStamp? | IPdfMarkedArea | Необязательный параметр. Расположение и размер области под штамп. |
Интерфейс IDirectResults#
Объекты данного типа описывают результаты прямой операции.
| Свойство | Тип | Описание |
|---|---|---|
| id | string | Используется идентификатор, который указан в ссылке на операцию (Формат ссылки). |
| status | string | Статус выполнения операции. В случае успеха «Completed». |
| directResults | IDirectResultOut[] | Массив результатов прямых операций |
Интерфейс IDirectResultOut#
Объекты данного типа содержат результаты прямой операции для файла.
| Свойство | Тип | Описание |
|---|---|---|
| id | string | Необязательный параметр. Идентификатор исходного файла. Если включено архивирование, то данный параметр не используется, т.к. выходной файл один для всех исходных. |
| out | string | Результат операции в BASE-64 |
| signers? | ISignerStatus[] | Необязательный параметр. Сведения о подписчиках. |
| signValid? | boolean | Необязательный параметр. Общий статус подписи. Учитывается статус всех подписей файла. |
Интерфейс IReverseResults#
Объекты данного типа описывают результаты обратной операции.
| Свойство | Тип | Описание |
|---|---|---|
| id | string | Используется идентификатор, который указан в ссылке на операцию (Формат ссылки). |
| reverseResults | IReverseResultOut[] | Массив результатов обратных операций |
Интерфейс IReverseResultOut#
Объекты данного типа описывают результаты обратной операции.
| Свойство | Тип | Описание |
|---|---|---|
| id | string | Необязательный параметр. Идентификатор исходного файла. |
| out | string | Результат операции в BASE-64 |
Интерфейс IVerifySignResults#
Объекты данного типа описывают результаты проверки подписи.
| Свойство | Тип | Описание |
|---|---|---|
| id | string | Используется идентификатор, который указан в ссылке на операцию (Формат ссылки). |
| status | string | Статус выполнения операции. В случае успеха « Completed». |
| verifySignResults | IVerifySignResult[] | Массив результатов проверки |
Интерфейс IVerifySignResult#
Объекты данного типа описывают результаты проверки подписи.
| Свойство | Тип | Описание |
|---|---|---|
| id | string | Идентификатор исходного файла |
| signValid | boolean | Общий статус проверки подписи |
| signers | ISignerStatus[] | Информация о подписчиках документа |
Интерфейс ISignerStatus#
Объекты данного типа описывают сведения о подписчиках.
| Свойство | Тип | Описание |
|---|---|---|
| signerCertificate | ICertificateInfo | Сведения о сертификате подписчика |
| isValid | boolean | Статус подписи |
| signingTime | string | Время подписи |
Интерфейс ILocalResultParams#
Объекты данного типа используется только в параметрах локального API.
Содержат пути для сохранения результатов операций.
| Свойство | Тип | Описание |
|---|---|---|
| savePath? | string | Необязательный параметр. Путь для сохранения результатов операции. |
| saveResultsSeparately? | boolean | Необязательный параметр. Определяет, сохранять ли результаты по каждому файлу в отдельный файл или сохранять в один JSON, один файл. |
Интерфейс ISignStampAppearance#
Интерфейс ISignStampAppearance описывает параметры для штампа PDF.
| Свойство | Тип | Описание |
|---|---|---|
| mockupSettings | IMockupSettings | Настройки внешнего вида штампа подписи |
| requisitesSettings | IRequisitesSettings | Настройки содержимого штампа (реквизиты) |
| pageSelection | string | Определяет, на какой странице или страницах будет отображаться штамп. Возможные значения: «all» – штамп на всех страницах, «last» – штамп на последней странице, «some» – штамп на некоторых страницах. |
| pageNumbers? | string | Необязательный параметр. Страница или диапазон страниц. Пример: «3» или «1-7». |
Интерфейс IMockupSettings#
Интерфейс IMockupSettings описывает параметры внешнего вида штампа.
| Свойство | Тип | Описание |
|---|---|---|
| position | string | Положение штампа внутри области. Возможные значения: «fitArea» – вписать, «actualSize» – реальный размер, «fitMockup» – подогнать область под макет. |
| addBackground | boolean | Определяет, будет ли добавлен фон на область |
| addBorders | boolean | Определяет, будет ли добавлена граница на область |
| logotype? | boolean | Необязательный параметр. Использовать или нет логотип для штампа. |
Интерфейс IRequisitesSettings#
Интерфейс IRequisitesSettings описывает содержимое (реквизиты) штампа подписи.
| Свойство | Тип | Описание |
|---|---|---|
| position | string | Реквизиты в штампе. Возможные значения: «default» – штамп без дополнительных областей под реквизиты, «left» – штамп с дополнительными реквизитами слева, «right» – штамп с дополнительными реквизитами справа, «leftAndRight» – штамп с дополнительными реквизитами слева и справа. |
| centralDisplayType | string | Внешний вид штампа. Определяет доступность настроек дополнительных реквизитов. Возможные значения: «byGost» – внешний вид по ГОСТ, «arbitrary» – произвольно. |
| central | IPdfCertRequisite[] | Массив значений реквизитов, для добавления в центральную часть штампа |
| left | IPdfCertRequisite[] | Массив значений реквизитов, для добавления в левую часть штампа |
| right | IPdfCertRequisite[] | Массив значений реквизитов, для добавления в правую часть штампа |
Интерфейс IPdfCertRequisite#
Интерфейс IPdfCertRequisite описывает свойства для реквизита штампа.
| Свойство | Тип | Описание |
|---|---|---|
| title | string | Заголовок |
| dataKey? | string | Необязательный параметр. Указывает название поля сертификата, значение которого будет использовано. Если в сертификате нет указанного поля, то значение будет «Не указано». |
| isEditable | boolean | Указывает, доступно ли редактирование поля пользователем. Если false, то значение должно быть передано в поле editedValue или взято из сертификата по значению dataKey. |
| editedValue? | string | Необязательный параметр. Значение реквизита, которое будет использовано, если не указано свойство dataKey. |
| editedValueCharLimit? | number | Необязательный параметр. Определяет максимальную длину строки. |
Интерфейс IPdfMarkedArea#
Интерфейс IPdfMarkedArea описывает параметры для расположения области штампа PDF (координаты и размеры).
| Свойство | Тип | Описание |
|---|---|---|
| height | number | Высота области под штамп |
| width | number | Ширина области под штамп |
| horizontalPadding | number | Отступ от левого края документа |
| verticalPadding | number | Отступ от правого края документа |