Команда 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 | Отступ от правого края документа |