Описание API КриптоАРМ#
- Общая информация
- Доступные команды
- Cценарий выполнения команд (для взаимодействия с web-приложениями)
- Cценарий выполнения команд (для взаимодействия с локальным приложением)
- Формат ссылки для web КриптоАРМ API
- Формат ссылки для локального варианта КриптоАРМ API
- Описание запросов и ответов
Общая информация#
КриптоАРМ поддерживает API с двумя возможными точками вызова:
- Локальное приложение на рабочем месте,
- Web-приложение (сервис).
При вызове операции через API приложение КриптоАРМ будет запущено и отобразит необходимый раздел с переданными параметрами. Команду можно ввести через адресную строку браузера (вы можете размещать их так же, как ссылки на веб-страницы) или в терминале.
Для взаимодействия используется зарегистрированный протокол cryptoarm://
.
Доступные команды#
Команда | Описание |
---|---|
signAndEncrypt | выполнение криптографических операций над документами (подпись, шифрование, проверка подписи, расшифрование) |
certificates | экспорт или импорт сертификатов, просмотр свойств сертификата |
certrequests | генерация запросов на сертификат |
diagnostics | диагностика рабочего места |
startView | открыть окно или вкладку |
mail | действия с электронными письмами |
Cценарий выполнения команд (для взаимодействия с web-приложениями)#
-
Инициация операции
- Пользователь заходит на портал (веб-приложение).
- Выбирает объекты (например, список документов) и действие (например, подпись).
-
Генерация ссылки
- Портал формирует и отображает (или автоматически перенаправляет) ссылку с протоколом
cryptoarm://
, содержащую идентификатор операции.
- Портал формирует и отображает (или автоматически перенаправляет) ссылку с протоколом
-
Запуск и запрос параметров
- Если КриптоАРМ не запущен, система автоматически его запускает.
- КриптоАРМ обращается к порталу, запрашивая JSON с параметрами для выполнения операции.
- JSON генерируется на сервере веб-приложения.
-
Обработка команды
- Полученный JSON анализируется.
- В зависимости от типа операции, КриптоАРМ может выполнить дополнительные запросы к веб-приложению (например, загрузка документов).
-
Подтверждение пользователем
- Пользователь проверяет детали операции и подтверждает её выполнение.
- На время выполнения функционал приложения блокируется для предотвращения конфликтов.
-
Отправка результатов
- Результаты операции (например, подписанные документы) передаются обратно на сервер веб-приложения.
Cценарий выполнения команд (для взаимодействия с локальным приложением)#
-
Инициация операции
- Пользователь открывает стороннее приложение с поддержкой КриптоАРМ API.
- Выбирает объекты (например, документы) и действие (например, подпись).
-
Формирование JSON-запроса
- Приложение генерирует JSON-объект с параметрами операции и передаёт его в КриптоАРМ (через CLI или API).
-
Запуск и обработка параметров
- Если КриптоАРМ не запущен, он автоматически стартует.
- Приложение может дополнительно запросить JSON с сервера (если часть параметров хранится удалённо).
-
Подтверждение пользователем
- Пользователь проверяет детали операции и подтверждает её выполнение.
- Функционал приложения блокируется до завершения операции.
-
Сохранение результатов
- Результаты (например, подписанные файлы) сохраняются в локальную папку, указанную в параметрах операции.
Формат ссылки для web КриптоАРМ API#
-
cryptoarm://
- зарегистрированный протокол -
<command>
- выполняемая команда -
<URL>
- ссылка на получение JSON с параметрами, нужными для выполнения команды -
?id=<id>
- обязательный параметр. Идентификатор транзакции.
Формат ссылки для локального варианта КриптоАРМ API#
Вариант 1:
-
cryptoarm://
- зарегистрированный протокол -
<command>
- выполняемая команда -
<URI>
- путь к файлу JSON с параметрами, нужными для выполнения команды
Вариант 2:
-
cryptoarm://
- зарегистрированный протокол -
<command>
- выполняемая команда -
<JSON>
- JSON с параметрами, нужными для выполнения команды
Описание запросов и ответов#
Все запросы между КриптоАРМ и сервером ДОЛЖНЫ соответствовать спецификации протокола JSON-RPC 2.0.
В качестве транспорта используется HTTP. Должен использоваться TLS, незащищенные соединения КриптоАРМ отклоняет.
При включенной настройке «Использовать только набор алгоритмов ГОСТ для подключений по API» КриптоАРМ будет принимать только ГОСТ TLS, остальные шифросюиты будут отклоняться.
POST-запрос
КриптоАРМ выполняет HTTP POST-запросы, которые содержат заголовки:
Content-Type
: должен быть application/json.Content-Length
: должен содержать правильную длину в соответствии с HTTP-спецификацией.Accept
: должен быть application/json.
GET-запрос
Не используются.
Ответ
HTTP-ответ сервера должен содержать заголовки:
Content-Type
: должен быть application/json.Content-Length
: должен содержать правильную длину в соответствии с HTTP-спецификацией.
Объект Error
В случае ошибки сервер должен отправить ответ следующей структуры:
Ключ | Тип | Описание |
---|---|---|
code | number | Код ошибки |
message | string | Короткое описание ошибки |
data | string/Object | Необязательное поле. Может содержать дополнительные сведения об ошибке. |
HTTP-коды
Код | Ошибка | Описание |
---|---|---|
200 | OK | И для ответов, и для ошибок |
204 | No Response | Для пустых запросов (нотификация) |
405 | Method Not Allowed | Метод не доступен |
415 | Unsupported Media Type | Если Content-Type не application/json |