Перейти к содержимому

Интеграция с PKI

USB-токены и смарт-карты JaCartaAPI и SDKUSB-токены и смарт-карты JaCarta

Для GOST 2, PKI.

Создать запрос на сертификат.

Работает при состоянии аутентификации выше, чем JCWebClient2.Vars.AuthState.notBinded. Текущее состояние аутентификации можно получить с помощью команды getLoggedInState.

Примеры в разделах:

Аргументы:

  • Тип: Integer
  • Описание: Идентификатор. Получается с помощью команд createKeyPair, getKeyPairList, deleteUserCertificate, writeUserCertificate, generateUserSelfSignedCertificate, getContainerList. Значение идентификатора не постоянно, но в рамках сессии не меняется.
  • Тип: PlainObject

  • Описание: Объект, содержащий элементы ключ-значение. В качестве ключа задаются элементы типа String, а в качестве значения:

    • String
    • массив из String, если необходимо установить несколько значений — значения будут объеденены через запятую

    (см. Генерация запроса на квалифицированный сертификат).

  • Тип: PlainObject
  • Описание: Расширения для включения в запрос. Формат аналогичен dn. Для добавления нескольких расширений с одинаковым ключом, в качестве значения ключа можно использовать:
    • PlainObject с полем “multi”, содержащим массив из String
  • Тип: PlainObject
  • Описание: Атрибуты для включения в запрос.
  • Тип: Boolean
  • Описание: Признак использования аппаратного хэширования.

Результат: Array — запрос на сертификат в формате PKCS#10.

Создать запрос на переиздание сертификата.

Работает при состоянии аутентификации выше, чем JCWebClient2.Vars.AuthState.notBinded. Текущее состояние аутентификации можно получить с помощью команды getLoggedInState.

Аргументы:

  • Тип: Integer
  • Описание: Идентификатор контейнера, содержащего сертификат для переиздания. Получить можно с помощью writeUserCertificate, generateUserSelfSignedCertificate или getContainerList. Значение идентификатора не постоянно, но в рамках сессии не меняется.
  • Тип: Integer
  • Описание: Новый идентификатор. Получается с помощью команд createKeyPair, getKeyPairList, deleteUserCertificate, writeUserCertificate, generateUserSelfSignedCertificate, getContainerList. Значение идентификатора не постоянно, но в рамках сессии не меняется.

Результат: Array — запрос на переиздание сертификата в формате CMC.

Получить значение сертификата.

Если указан аргумент tokenID, то работает при любом состоянии аутентификации, в противном случае — выше, чем JCWebClient2.Vars.AuthState.notBinded. Текущее состояние аутентификации можно получить с помощью команды getLoggedInState.

Аргументы:

  • Тип: Integer
  • Описание: Идентификатор. Получить можно с помощью writeStandaloneCertificate, getStandaloneCertificateList, writeUserCertificate, generateUserSelfSignedCertificate или getContainerList. Значение идентификатора не постоянно, но в рамках сессии не меняется.
  • Тип: Integer
  • Описание: Идентификатор токена. Получается с помощью команды getAllSlots. Значение идентификатора не постоянно, но в рамках сессии не меняется.

Результат: Array — массив байт со значением сертификата в формате DER.

Получить значения полей сертификата.

Тело сертификата либо передается в аргумент cert, либо берется с токена при помощи аргументов tokenID и id.

Работает при любом состоянии аутентификации.

Аргументы:

  • Тип: Array | String
  • Описание: Значение сертификата в формате X509 (может быть закодирован в PEM или DER, см. Поддержка PEM и DER форматов). Если аргумент установлен, то аргументы tokenID и id игнорируются.
  • Тип: Integer
  • Описание: Идентификатор токена. Получается с помощью команды getAllSlots. Значение идентификатора не постоянно, но в рамках сессии не меняется.
  • Тип: Integer
  • Описание: Идентификатор. Получить можно с помощью writeStandaloneCertificate, getStandaloneCertificateList, writeUserCertificate, generateUserSelfSignedCertificate или getContainerList. Значение идентификатора не постоянно, но в рамках сессии не меняется.

Результат: PlainObject — объект, включающий в себя значения всех полей сертификата.

Для PKI.

Записать сертификат сервера в контейнер.

Работает при состоянии аутентификации выше, чем JCWebClient2.Vars.AuthState.notBinded. Текущее состояние аутентификации можно получить с помощью команды getLoggedInState.

Аргументы:

  • Тип: Integer
  • Описание: Идентификатор контейнера. Получить можно с помощью writeUserCertificate, generateUserSelfSignedCertificate или getContainerList. Значение идентификатора не постоянно, но в рамках сессии не меняется.

Для PKI.

Прочитать сертификат/публичный ключ сервера из контейнера.

Работает при состоянии аутентификации выше, чем JCWebClient2.Vars.AuthState.notBinded. Текущее состояние аутентификации можно получить с помощью команды getLoggedInState.

Аргументы:

  • Тип: Integer
  • Описание: Идентификатор контейнера. Получить можно с помощью writeUserCertificate, generateUserSelfSignedCertificate или getContainerList. Значение идентификатора не постоянно, но в рамках сессии не меняется.

Результат: Array — массив из объектов со следующими параметрами:

  • Тип: Boolean
  • Описание: Признак является ли объект сертификатом.
  • Тип: Array
  • Описание: Массив байт со значением сертификата/публичного ключа сервера в формате DER.

Для GOST 2, PKI.

Получить значение открытого ключа.

Работает при любом состоянии аутентификации.

Аргументы:

  • Тип: Integer
  • Описание: Идентификатор токена. Получается с помощью команды getAllSlots. Значение идентификатора не постоянно, но в рамках сессии не меняется.
  • Тип: Integer
  • Описание: Идентификатор. Получается с помощью команд createKeyPair, getKeyPairList, deleteUserCertificate, writeUserCertificate, generateUserSelfSignedCertificate, getContainerList. Значение идентификатора не постоянно, но в рамках сессии не меняется.

Результат: Array — массив байт со значением открытого ключа в формате:

  • токен GOST 2: от младшего к старшему (little-endian).
  • токен PKI, алгоритм ключа:
    • RSA: PKCS#1
    • ECDSA: X.509-структура SubjectPublicKeyInfo в представлении ASN.1

Для GOST 2, PKI.

Проверка валидности сертификата.

Проверка осуществляется по цепочке сертификации. Доверенные сертификаты должны находиться на токене.

Работает при состоянии аутентификации выше, чем JCWebClient2.Vars.AuthState.notBinded. Текущее состояние аутентификации можно получить с помощью команды getLoggedInState.

Аргументы:

  • Тип: Integer
  • Описание: Идентификатор контейнера. Получить можно с помощью writeUserCertificate, generateUserSelfSignedCertificate или getContainerList. Значение идентификатора не постоянно, но в рамках сессии не меняется.
  • Тип: Array
  • Описание: Массив из идентификаторов доверенных сертификатов. Получить можно с помощью getStandaloneCertificateList.
  • Тип: Array
  • Описание: Массив из идентификаторов доверенных сертификатов. Получить можно с помощью getStandaloneCertificateList.

Результат: Booleantrue, если сертификат прошел проверку.

Для GOST 2, PKI.

Расширенная проверка валидности сертификата.

Проверка осуществляется по цепочке сертификации и списку отозванных сертификатов. Доверенные сертификаты должны находиться на токене.

Работает при состоянии аутентификации выше, чем JCWebClient2.Vars.AuthState.notBinded. Текущее состояние аутентификации можно получить с помощью команды getLoggedInState.

Аргументы:

  • Тип: Integer
  • Описание: Идентификатор контейнера. Получить можно с помощью writeUserCertificate, generateUserSelfSignedCertificate или getContainerList. Значение идентификатора не постоянно, но в рамках сессии не меняется.
  • Тип: Array
  • Описание: Массив из идентификаторов доверенных сертификатов (получить можно с помощью getStandaloneCertificateList) или из значений доверенных сертификатов в формате X509 (может быть закодирован в PEM или DER, см. Поддержка PEM и DER форматов).
  • Тип: Array
  • Описание: Двухмерный массив из значений сертификатов из цепочки в формате X509 (может быть закодирован в PEM или DER, см. Поддержка PEM и DER форматов).
  • Тип: Array
  • Описание: Двухмерный массив, содержащий набор CRL в формате X509 (может быть закодирован в PEM или DER, см. Поддержка PEM и DER форматов).

Результат: PlainObject — объект с параметрами:

  • Тип: String
  • Описание: Описание результата.