Интеграция с PKI
Для GOST 2, PKI.
Создать запрос на сертификат.
Работает при состоянии аутентификации выше, чем JCWebClient2.Vars.AuthState.notBinded. Текущее состояние аутентификации можно получить с помощью команды getLoggedInState.
Примеры в разделах:
- Создание контейнера с помощью команды writeUserCertificate;
- Встраивание в инфраструктуру открытых ключей;
- Генерация запроса на квалифицированный сертификат.
Аргументы:
- Тип: Integer
- Описание: Идентификатор. Получается с помощью команд createKeyPair, getKeyPairList, deleteUserCertificate, writeUserCertificate, generateUserSelfSignedCertificate, getContainerList. Значение идентификатора не постоянно, но в рамках сессии не меняется.
-
Тип: PlainObject
-
Описание: Объект, содержащий элементы ключ-значение. В качестве ключа задаются элементы типа String, а в качестве значения:
- String
- массив из String, если необходимо установить несколько значений — значения будут объеденены через запятую
- Тип: PlainObject
- Описание: Расширения для включения в запрос. Формат аналогичен dn. Для добавления нескольких расширений с одинаковым ключом, в качестве значения ключа можно использовать:
- PlainObject с полем “multi”, содержащим массив из String
customSignedAttributes
Заголовок раздела «customSignedAttributes»- Тип: PlainObject
- Описание: Атрибуты для включения в запрос.
useHardwareHash (По умолчанию: false)
Заголовок раздела «useHardwareHash (По умолчанию: false)»- Тип: Boolean
- Описание: Признак использования аппаратного хэширования.
Результат: Array — запрос на сертификат в формате PKCS#10.
createCertificateRenewal
Заголовок раздела «createCertificateRenewal»Создать запрос на переиздание сертификата.
Работает при состоянии аутентификации выше, чем JCWebClient2.Vars.AuthState.notBinded. Текущее состояние аутентификации можно получить с помощью команды getLoggedInState.
Аргументы:
oldContID
Заголовок раздела «oldContID»- Тип: Integer
- Описание: Идентификатор контейнера, содержащего сертификат для переиздания. Получить можно с помощью writeUserCertificate, generateUserSelfSignedCertificate или getContainerList. Значение идентификатора не постоянно, но в рамках сессии не меняется.
- Тип: Integer
- Описание: Новый идентификатор. Получается с помощью команд createKeyPair, getKeyPairList, deleteUserCertificate, writeUserCertificate, generateUserSelfSignedCertificate, getContainerList. Значение идентификатора не постоянно, но в рамках сессии не меняется.
Результат: Array — запрос на переиздание сертификата в формате CMC.
getCertificateBody
Заголовок раздела «getCertificateBody»Получить значение сертификата.
Если указан аргумент tokenID, то работает при любом состоянии аутентификации, в противном случае — выше, чем JCWebClient2.Vars.AuthState.notBinded. Текущее состояние аутентификации можно получить с помощью команды getLoggedInState.
Аргументы:
- Тип: Integer
- Описание: Идентификатор. Получить можно с помощью writeStandaloneCertificate, getStandaloneCertificateList, writeUserCertificate, generateUserSelfSignedCertificate или getContainerList. Значение идентификатора не постоянно, но в рамках сессии не меняется.
tokenID (Необязательный)
Заголовок раздела «tokenID (Необязательный)»- Тип: Integer
- Описание: Идентификатор токена. Получается с помощью команды getAllSlots. Значение идентификатора не постоянно, но в рамках сессии не меняется.
Результат: Array — массив байт со значением сертификата в формате DER.
parseX509Certificate
Заголовок раздела «parseX509Certificate»Получить значения полей сертификата.
Тело сертификата либо передается в аргумент cert, либо берется с токена при помощи аргументов tokenID и id.
Работает при любом состоянии аутентификации.
Аргументы:
cert (Необязательный)
Заголовок раздела «cert (Необязательный)»- Тип: Array | String
- Описание: Значение сертификата в формате X509 (может быть закодирован в PEM или DER, см. Поддержка PEM и DER форматов). Если аргумент установлен, то аргументы tokenID и id игнорируются.
tokenID (Необязательный)
Заголовок раздела «tokenID (Необязательный)»- Тип: Integer
- Описание: Идентификатор токена. Получается с помощью команды getAllSlots. Значение идентификатора не постоянно, но в рамках сессии не меняется.
id (Необязательный)
Заголовок раздела «id (Необязательный)»- Тип: Integer
- Описание: Идентификатор. Получить можно с помощью writeStandaloneCertificate, getStandaloneCertificateList, writeUserCertificate, generateUserSelfSignedCertificate или getContainerList. Значение идентификатора не постоянно, но в рамках сессии не меняется.
Результат: PlainObject — объект, включающий в себя значения всех полей сертификата.
writeServerCertificate
Заголовок раздела «writeServerCertificate»Для PKI.
Записать сертификат сервера в контейнер.
Работает при состоянии аутентификации выше, чем JCWebClient2.Vars.AuthState.notBinded. Текущее состояние аутентификации можно получить с помощью команды getLoggedInState.
Аргументы:
- Тип: Integer
- Описание: Идентификатор контейнера. Получить можно с помощью writeUserCertificate, generateUserSelfSignedCertificate или getContainerList. Значение идентификатора не постоянно, но в рамках сессии не меняется.
- Тип: Array | String
- Описание: Значение сертификата в формате X509 (может быть закодирован в PEM или DER, см. Поддержка PEM и DER форматов).
readServerObject
Заголовок раздела «readServerObject»Для PKI.
Прочитать сертификат/публичный ключ сервера из контейнера.
Работает при состоянии аутентификации выше, чем JCWebClient2.Vars.AuthState.notBinded. Текущее состояние аутентификации можно получить с помощью команды getLoggedInState.
Аргументы:
- Тип: Integer
- Описание: Идентификатор контейнера. Получить можно с помощью writeUserCertificate, generateUserSelfSignedCertificate или getContainerList. Значение идентификатора не постоянно, но в рамках сессии не меняется.
Результат: Array — массив из объектов со следующими параметрами:
isCertificate
Заголовок раздела «isCertificate»- Тип: Boolean
- Описание: Признак является ли объект сертификатом.
- Тип: Array
- Описание: Массив байт со значением сертификата/публичного ключа сервера в формате DER.
readPublicKey
Заголовок раздела «readPublicKey»Для GOST 2, PKI.
Получить значение открытого ключа.
Работает при любом состоянии аутентификации.
Аргументы:
tokenID
Заголовок раздела «tokenID»- Тип: Integer
- Описание: Идентификатор токена. Получается с помощью команды getAllSlots. Значение идентификатора не постоянно, но в рамках сессии не меняется.
- Тип: Integer
- Описание: Идентификатор. Получается с помощью команд createKeyPair, getKeyPairList, deleteUserCertificate, writeUserCertificate, generateUserSelfSignedCertificate, getContainerList. Значение идентификатора не постоянно, но в рамках сессии не меняется.
Результат: Array — массив байт со значением открытого ключа в формате:
- токен GOST 2: от младшего к старшему (little-endian).
- токен PKI, алгоритм ключа:
- RSA: PKCS#1
- ECDSA: X.509-структура SubjectPublicKeyInfo в представлении ASN.1
verifyCertificateChainOnToken
Заголовок раздела «verifyCertificateChainOnToken»Для GOST 2, PKI.
Проверка валидности сертификата.
Проверка осуществляется по цепочке сертификации. Доверенные сертификаты должны находиться на токене.
Работает при состоянии аутентификации выше, чем JCWebClient2.Vars.AuthState.notBinded. Текущее состояние аутентификации можно получить с помощью команды getLoggedInState.
Аргументы:
- Тип: Integer
- Описание: Идентификатор контейнера. Получить можно с помощью writeUserCertificate, generateUserSelfSignedCertificate или getContainerList. Значение идентификатора не постоянно, но в рамках сессии не меняется.
trustedCertificates
Заголовок раздела «trustedCertificates»- Тип: Array
- Описание: Массив из идентификаторов доверенных сертификатов. Получить можно с помощью getStandaloneCertificateList.
certificateChain
Заголовок раздела «certificateChain»- Тип: Array
- Описание: Массив из идентификаторов доверенных сертификатов. Получить можно с помощью getStandaloneCertificateList.
Результат: Boolean — true, если сертификат прошел проверку.
verifyCertificateChain
Заголовок раздела «verifyCertificateChain»Для GOST 2, PKI.
Расширенная проверка валидности сертификата.
Проверка осуществляется по цепочке сертификации и списку отозванных сертификатов. Доверенные сертификаты должны находиться на токене.
Работает при состоянии аутентификации выше, чем JCWebClient2.Vars.AuthState.notBinded. Текущее состояние аутентификации можно получить с помощью команды getLoggedInState.
Аргументы:
- Тип: Integer
- Описание: Идентификатор контейнера. Получить можно с помощью writeUserCertificate, generateUserSelfSignedCertificate или getContainerList. Значение идентификатора не постоянно, но в рамках сессии не меняется.
trustedCertificates
Заголовок раздела «trustedCertificates»- Тип: Array
- Описание: Массив из идентификаторов доверенных сертификатов (получить можно с помощью getStandaloneCertificateList) или из значений доверенных сертификатов в формате X509 (может быть закодирован в PEM или DER, см. Поддержка PEM и DER форматов).
certificateChain
Заголовок раздела «certificateChain»- Тип: Array
- Описание: Двухмерный массив из значений сертификатов из цепочки в формате X509 (может быть закодирован в PEM или DER, см. Поддержка PEM и DER форматов).
revokedCertificates (Необязательный)
Заголовок раздела «revokedCertificates (Необязательный)»- Тип: Array
- Описание: Двухмерный массив, содержащий набор CRL в формате X509 (может быть закодирован в PEM или DER, см. Поддержка PEM и DER форматов).
Результат: PlainObject — объект с параметрами:
- Тип: Integer
- Описание: Код результата (см. Результирующие коды команды VerifyCertificateChain).
description
Заголовок раздела «description»- Тип: String
- Описание: Описание результата.

