Перейти к содержанию

Команда diagnostics — описание и примеры#

Команда diagnostics позволяет выполнять полную диагностику рабочего места пользователя через API КриптоАРМ. С её помощью можно получить сведения о системе, установленных компонентах и лицензиях. Все операции поддерживаются через HTTP и строго соответствуют спецификации JSON-RPC 2.0.

Содержание:


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

Команда diagnostics используется для диагностики рабочего места пользователя.

Схема работы команды diagnostics

Все запросы между КриптоАРМ и сервером ДОЛЖНЫ соответствовать спецификации протокола JSON-RPC 2.0.

В качестве транспорта используется HTTP.

🔍 Общее описание указано в разделе Формат ссылки.

Для доверенных сервисов с включённым фоновым режимом диагностики (diagnosticBackgroundMode) окно подтверждения не отображается; диагностика выполняется автоматически.


Формат ссылки#

Для выполнения команды diagnostics должна быть сформирована ссылка вида:

cryptoarm://diagnostics/<URL>/?id=<id>[&authType=<authType>]
  • cryptoarm:// - зарегистрированный протокол
  • diagnostics - выполняемая команда
  • <URL> - ссылка, на которую КриптоАРМ будет слать запросы
  • id - уникальный идентификатор транзакции
  • authType - необязательный параметр. Тип аутентификации.

Пример:

cryptoarm://diagnostics/https://example.com/json?id=2c48eb32-a0a8-405c-ade9-eed130605cba

Получение параметров операции#

После получения команды diagnostics КриптоАРМ отправляет запрос на получение параметров операции.

Удалённый запрос содержит поле diagnostic (пустой объект), а не diagnostics (как в других командах).

Формат запроса#

Ключ Значение Описание
jsonrpc «2.0» Версия JSON-RPC протокола. Всегда «2.0».
method diagnostics.parameters Используемый метод. Всегда diagnostics.parameters.
id Уникальный идентификатор Используется идентификатор, который указан в ссылке на операцию.
diagnostic {} Пустой объект (зарезервировано).

Пример:

Content-Type: application/json
Content-Length: ...
Accept: application/json
{
    "jsonrpc": "2.0",
    "method": "diagnostics.parameters",
    "id": "2c48eb32-a0a8-405c-ade9-eed130605cba",
    "diagnostic": {
     }
}

Формат ответа#

Ключ Значение Описание
jsonrpc «2.0» Версия JSON-RPC протокола. Всегда «2.0».
result IDiagnosticsParameters Объект со сведениями о параметрах операции
id Уникальный идентификатор Используется идентификатор, который указан в ссылке на операцию.

Пример ответа с локальными параметрами:

HTTP/1.1 200 OK
Connection: close
Content-Length: ...
Content-Type: application/json
Date: Sat, 08 Jul 2020 12:04:08 GMT
{
    "jsonrpc": "2.0",
    "result": {
        "operation": ["SYSTEMINFORMATION", "CSP_ENABLED", "LICENSES", "VERSIONS", "PROVIDERS"],
        "props": {
            "headerText": "Диагностика cryptoarm.ru",
            "descriptionText": "Выполняется диагностика рабочего места для работы на портале"
        }
    },
    "id": "2c48eb32-a0a8-405c-ade9-eed130605cba"
}

Отправка сведений о рабочем месте#

Полученные сведения отправляются POST-запросом.

Формат запроса#

Ключ Значение Описание
jsonrpc «2.0» Версия JSON-RPC протокола. Всегда «2.0».
method diagnostics.information Используемый метод.
params IDiagnosticsInformation Сведения о рабочем месте. id — идентификатор транзакции из исходного запроса.

Пример:

Content-Type: application/json
Content-Length: ...
Accept: application/json
{
  "jsonrpc": "2.0",
  "method": "diagnostics.information",
  "params": {
    "id": "2c48eb32-a0a8-405c-ade9-eed130605cba",
    "SYSTEMINFORMATION": {
      "type": "Windows_NT",
      "arch": "x64",
      "platform": "win32",
      "packageType": "msi"
    },
    "CSP_ENABLED": true,
    "LICENSES": {
      "csp": {
        "status": true,
        "type": "",
        "expiration": ""
      },
      "cryptoarm": {
        "status": true,
        "type": "Permanent",
        "expiration": ""
      }
    },
    "VERSIONS": {
      "csp": "5.0.11753",
      "cryptoarm": "2.5.2",
      "openssl": "1.1.1w"
    },
    "PROVIDERS": {
      "GOST2012_256": true,
      "GOST2012_512": true,
      "openssl": true
    }
  }
}

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

Интерфейс IDiagnosticsParameters#

Объекты данного типа описывают вид операции и её параметры.

Свойство Тип Описание
operation string[] Массив типов диагностических операций. Доступные значения см. Тип IDiagnosticOperation.
props IDiagnosticsOperationProps Параметры операции

Тип IDiagnosticOperation#

Возможные операции диагностики.

Значение Описание
SYSTEMINFORMATION Сведения о системе
CSP_ENABLED Наличие КриптоПро CSP
CADES_ENABLED Доступность CADES
VERSIONS Версии используемых компонентов (КриптоАРМ, КриптоПро, OpenSSL)
PROVIDERS Список криптопровайдеров
LICENSES Статус лицензий
PERSONALCERTIFICATES Наличие личных сертификатов

Интерфейс IDiagnosticsOperationProps#

Интерфейс IDiagnosticsOperationProps описывает параметры операции.

Свойство Тип Описание
headerText? string Необязательный параметр. Используется для отображения в заголовке окна. Максимальная длина - 40 символов.
descriptionText? string Необязательный параметр. Используется для отображения в сведениях об операции. Максимальная длина - 120 символов.
localResultParams? { savePath: string } Необязательный параметр. Только для локального API. Путь к файлу для сохранения результатов диагностики.

Интерфейс IDiagnosticsInformation#

Объекты данного типа описывают сведения о рабочем месте, отправляемые обратно на сервер.

Свойство Тип Описание
id string Идентификатор транзакции
SYSTEMINFORMATION ISystemInformation Сведения о системе
CSP_ENABLED boolean Установлен или нет КриптоПро CSP
CADES_ENABLED boolean Доступность CADES
VERSIONS IVersions Версии компонентов
PROVIDERS IProviders Сведения о провайдерах
LICENSES ILicenses Сведения о лицензиях
PERSONALCERTIFICATES ICertificateIdentityInfo[] Список личных сертификатов

Интерфейс ISystemInformation#

Объекты данного типа содержат сведения о системе пользователя.

Свойство Тип Описание
type string Тип системы. Возможные значения: Linux, Darwin, Windows_NT.
arch string Архитектура операционной системы. Возможные значения: arm, arm64, ia32, mips, mipsel, ppc, ppc64, s390, s390x, x32, x64.
platform string Имя платформы. Возможные значения: aix, darwin, freebsd, linux, openbsd, sunos, win32.
packageType? string Необязательный параметр. Тип поддерживаемого пакета (инсталлятора). Возможные значения: msi, pkg, rpm, deb.

Интерфейс IVersions#

Объекты данного типа содержат сведения о версиях.

Свойство Тип Описание
csp string Версия КриптоПро CSP
cryptoarm string Версия КриптоАРМ
openssl string Версия OpenSSL

Интерфейс IProviders#

Объекты данного типа описывают доступность ГОСТ-провайдеров.

Свойство Тип Описание
GOST2012_256 boolean ГОСТ 2012-256
GOST2012_512 boolean ГОСТ 2012-512
openssl boolean Открытая криптография

Интерфейс ILicenses#

Объекты данного типа описывают статусы лицензии КриптоАРМ и КриптоПро CSP.

Свойство Тип Описание
csp ILicenseInfo Сведения о лицензии на КриптоПро CSP
cryptoarm ILicenseInfo Сведения о лицензии на КриптоАРМ

Интерфейс ILicenseInfo#

Объекты данного типа описывают сведения о лицензии компонента.

Свойство Тип Описание
status boolean Действительна или нет лицензия
type string Тип лицензии. Возможные значения: Permanent, Subscription, Daily, Trial.
expiration? string Необязательный параметр. Дата истечения лицензии для триальных лицензий или подписок (UTC).

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