Команда diagnostics#
Команда возвращает сведения о рабочем месте: систему, доступность криптопровайдеров, версии, состояние лицензий и сведения о личных сертификатах.
Содержание:
- Общая информация
- Формат ссылки
- Параметры
- Подтверждение пользователем
- Результат
- Сведения о личных сертификатах
- Смотрите также
Общая информация#
Возвращаются только запрошенные сведения: приложение не собирает и не отправляет сведения, которые сервис не запрашивал. Повторяющиеся и неизвестные значения operation отбрасываются; если известных значений не осталось, команда отклоняется.
В запросе параметров самой команды diagnostics поле diagnostic — пустой объект: сведения о рабочем месте не передаются до того, как получены параметры и разрешение пользователя.
Формат ссылки#
Формат локального вызова описан в разделе Формат ссылки для локального вызова.
Параметры#
Поле operation — непустой массив значений:
| Значение | Что возвращается |
|---|---|
SYSTEMINFORMATION | Тип системы, архитектура, платформа и тип установочного пакета |
CSP_ENABLED | Доступность КриптоПро CSP |
CADES_ENABLED | Доступность CAdES |
VERSIONS | Версии КриптоПро CSP, КриптоАРМ и системного OpenSSL |
PROVIDERS | Доступность ГОСТ 2012-256, ГОСТ 2012-512 и OpenSSL |
LICENSES | Состояние лицензий КриптоПро CSP и КриптоАРМ |
PERSONALCERTIFICATES | Сведения о сертификатах из хранилища личных сертификатов |
Поля props.headerText и props.descriptionText задают текст в окне подтверждения. Текст длиннее 40 и 120 символов соответственно сокращается. Для локального вызова localResultParams.savePath принимается рядом с operation либо внутри props; без него сведения показываются пользователю, но в файл не записываются.
{
"jsonrpc": "2.0",
"id": "tx-diagnostics",
"result": {
"operation": ["SYSTEMINFORMATION", "VERSIONS", "PROVIDERS", "LICENSES"],
"props": {
"headerText": "Проверка рабочего места"
}
}
}
Подтверждение пользователем#
Доверие к сервису само по себе не разрешает диагностику. Приложение показывает адрес сервиса и запрошенный набор сведений в окне «Диагностика рабочего места» и ждёт решения пользователя.
Для сетевого сервиса в этом окне можно разрешить последующие запуски диагностики в фоне. Разрешение сохраняется в профиле сервиса только вместе с подтверждением текущей операции; отказ профиль не изменяет. Изменить его позже можно на вкладке «Параметры ресурса». Пока разрешение действует, последующие запросы этого сервиса выполняются без окна подтверждения — включая PERSONALCERTIFICATES, который возвращает сведения обо всех личных сертификатах пользователя.
Результат#
Результат отправляется методом diagnostics.information и содержит только запрошенные поля:
{
"jsonrpc": "2.0",
"method": "diagnostics.information",
"params": {
"id": "tx-diagnostics",
"SYSTEMINFORMATION": {
"type": "Darwin",
"arch": "arm64",
"platform": "darwin",
"packageType": "pkg"
},
"VERSIONS": {
"csp": "5.0.13000",
"cryptoarm": "1.2.0",
"openssl": "3.0.13"
},
"PROVIDERS": {
"GOST2012_256": true,
"GOST2012_512": true,
"openssl": true
},
"LICENSES": {
"csp": { "status": true, "type": "", "expiration": "" },
"cryptoarm": { "status": true, "type": "GOST", "expiration": 0 }
}
}
}
Поле packageType принимает значения msi, pkg или deb — по платформе, на которой запущено приложение.
Сведения о лицензии:
| Поле | КриптоАРМ | КриптоПро CSP |
|---|---|---|
status | Лицензия действует | Лицензия действует |
type | TRIAL, GOST, GOST_PDF, GOST_PROTECTED_MAIL, GOST_SERVER или пустая строка | Всегда пустая строка |
expiration | Окончание срока в Unix-времени, в секундах; 0 — бессрочная лицензия; поля нет, если срок неизвестен | Всегда пустая строка |
Без установленной лицензии сведения КриптоАРМ относятся к пробному периоду: type — TRIAL, а status — false, если пробный период закончился.
Сведения о личных сертификатах#
Значение PERSONALCERTIFICATES возвращает массив объектов. Закрытые ключи и содержимое сертификатов в него не входят.
| Поле | Тип | Описание |
|---|---|---|
hash | string | Отпечаток сертификата SHA-1 |
serial | string | Серийный номер |
issuerName | string | Издатель |
issuerFriendlyName | string | Издатель в удобочитаемом виде |
subjectName | string | Владелец |
subjectFriendlyName | string | Владелец в удобочитаемом виде |
organizationName | string | Организация |
notBefore | number | Начало срока действия, Unix-время в миллисекундах |
notAfter | number | Окончание срока действия, Unix-время в миллисекундах |
keyNotAfter | number | Окончание срока действия закрытого ключа |
key | boolean | К сертификату есть закрытый ключ |
isSelfSigned | boolean | Самоподписанный сертификат |
pubKeyAlg | string | Алгоритм открытого ключа |
signatureAlgorithm | string | Алгоритм подписи |
signatureDigestAlgorithm | string | Алгоритм хеширования подписи |
keyUsageString | string | Назначения ключа, перечисленные через запятую |
provider | string | Криптопровайдер |
Смотрите также#
- Описание и возможности API — общий формат вызова.
- Приложение и пользователь — окно разрешения на диагностику.
- Криптопровайдеры и стандарты — назначение криптопровайдеров и стандартов.