Команда diagnostics - Документация для КриптоАРМ 6
Перейти к содержанию

Команда diagnostics#


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

Команда diagnostics используется для диагностики рабочего места пользователя. Схема взаимодействия:ката или списка сертификатов, а импорта сертификата в локальное хранилище, просмотра информации о сертификате.

Схема

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

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

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


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

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

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

Пример:

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

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

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

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

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

Пример:

Content-Type: application/json
Content-Length: ...
Accept: application/json
{
    "jsonrpc": "2.0",
    "method": "certificates.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": ["CSP_ENABLED", "LICENSES", "VERSIONS"],
        "props": {
            "headerText": "Диагностика cryptoarm.ru",
            "descriptionText": "Выполняется диагностика рабочего места для работы на портале"
        }
    },
    "id": "2c48eb32-a0a8-405c-ade9-eed130605cba"
}

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

Полученные сведения отправляется POST запросом. Используются нотификации (уведомления), для которых не требуется ответ сервера.

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

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

Пример:

Content-Type: application/json
Content-Length: ...
Accept: application/json
{
  "jsonrpc": "2.0",
  "method": "diagnostics.information",
  "params": {
    "id": "2c48eb32-a0a8-405c-ade9-eed130605cba",
    "CSP_ENABLED": true,
    "LICENSES": {
      "csp": {
        "status": true,
      },
      "cryptoarm": {
        "status": true,
        "type": "temporary",
        "expiration": "1591689487056",
      }
    },
    "VERSIONS": {
      "csp": "5.0.11753",
      "cryptoarm": "2.5.2",
    }
  }
}

Интерфейс IDiagnosticsParameters#

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

Свойство Тип Описание
operation string Тип операции. Доступные значения типа: `IDiagnosticOperation
props IDiagnosticsOperationProps Параметры операции

Тип IDiagnosticOperation#

Возможные операции.

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

Интерфейс IDiagnosticsOperationProps#

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

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

Интерфейс IDiagnosticsInformation#

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

Свойство Тип Описание
id string Идентификатор транзакции
API_VERSION string Версия поддерживаемого КриптоАРМ API
SYSTEMINFORMATION ISystemInformation Сведения о системе
CSP_ENABLED boolean Установлен или нет КриптоПро CSP
CADES_ENABLED boolean Доступность CADES
VERSIONS IVersions Версии компонентов
PROVIDERS IProviders Сведения о провайдерах
LICENSES ILicenses Сведения о лицензиях

Интерфейс 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 LicenseType Тип лицензии
expiration? string Необязательный параметр. Дата истечения лицензии для трилальных лицензий или подписок (в формате UTC).

LicenseType Enum#

Данное перечисление описывает возможные типы лицензий.

Значение Описание
Permanent Постоянная
Subscription Подписка
Daily Дневная
Trial Триальная

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