Подпись и проверка подписи

Описание и примеры представлены в разделе Работа с электронной подписью.

signData

GOST 2
signData
Подписать данные.
Возвращает подпись в формате PKCS#7.
Передавать на подпись можно либо данные (аргумент data), либо имя файла (аргумент fileName). Если одновременно передать аргументы data и fileName, то fileName игнорируется.
При подписании данных можно предъявлять PIN-код подписи. Предъявить его можно одним из способов:
  • передав напрямую (аргумент signaturePin);
  • используя графический интерфейс приложения JC-WebClient (аргумент useUI);
  • используя Антифрод-терминал (аргумент antifraud).
Работает при состоянии аутентификации выше, чем JCWebClient2.Vars.AuthState.notBinded.
Текущее состояние аутентификации можно получить с помощью команды getLoggedInState.

Примеры в разделе Формирование электронной подписи.

Аргументы:
contID
Тип: Integer
Идентификатор контейнера. Получить можно с помощью writeUserCertificate, generateUserSelfSignedCertificate или getContainerList.

Примечание

Значение идентификатора не постоянно, но в рамках сессии не меняется.

attachedSignature (По-умолчанию: false)
Тип: Boolean
Включать ли данные в подпись PKCS#7 (true - включать).

Примечание

Если установлен в true и подписываются данные из файла (аргумент fileName), то будет сгенерировано исключение.

data (Необязательный)
Тип: Array
Данные для подписи в виде массива байт.
fileName (Необязательный)
Тип: String
Имя файла, содержимое которого требуется подписать.

Примечание

Если аргумент data установлен, то fileName игнорируется.

userHostData (Необязательный)
Тип: Array
Список получаемых данных с пользовательского ПК, которые будут подписаны и войдут в результирующий PKCS#7 конверт. Массив должен содержать строки из JCWebClient2.Vars.UserHostData.

Примечание

Информация о системе представляет собой строку в формате JSON. Она добавляется в подпись как подписываемый атрибут (signed attribute). OID атрибута: 1.2.643.2.7.1.1.1.

customSignedAttributes (Необязательный)
Тип: Array
Массив с пользовательскими подписываемыми атрибутами.
Каждый элемент массива является объектом с параметрами:
oid
Тип: String
OID атрибута.
value
Тип: String
Значение атрибута.
useUI (По-умолчанию: false)
Тип: Boolean
Признак использования графического интерфейса приложения JC-WebClient для предъявления PIN-кода подписи.

Примечание

Если равен true, то аргумент signaturePin игнорируется.

antifraud (Обязательный - для смарт-карты в Антифрод-терминале, в остальных случаях - Необязательный)
Тип: PlainObject
Параметры для предъявления PIN-кода подписи с Антифрод-терминала.

Примечание

Если указан, то аргументы useUI и signaturePin игнорируются.

Параметры:
deviceID (Необязательный)
Тип: Integer
Идентификатор Антифрод-терминала, работающего без смарт-карты. Получаются с помощью команды getAllSlots.

Примечание

Идентификатор игнорируется, если в tokenID передали идентификатор смарт-карты, подключенной к Антифрод-терминалу.

Примечание

Значения идентификатора не постоянно, но в рамках сессии не меняется.

langID (По-умолчанию: JCWebClient2.defaults().antifraud.langID)
Тип: Integer
Допустимые значения: JCWebClient2.Vars.AftLang
Идентификатор языка, используемого для отображения сообщений.
timeout (По-умолчанию: JCWebClient2.defaults().antifraud.timeout)
Тип: Integer
Тайм-аут ожидания ввода от пользователя до отмены операции, в секундах.
Результат:
Array – массив байт с подписью в формате PKCS#7.

signBase64EncodedData

GOST 2
signBase64EncodedData
Подписать данные.
Возвращает подпись в формате PKCS#7, закодированную в Base64.
Передавать на подпись можно либо данные (аргумент data), либо имя файла (аргумент fileName). Если одновременно передать аргументы data и fileName, то fileName игнорируется.
При подписании данных можно предъявлять PIN-код подписи. Предъявить его можно одним из способов:
  • передав напрямую (аргумент signaturePin);
  • используя графический интерфейс приложения JC-WebClient (аргумент useUI);
  • используя Антифрод-терминал (аргумент antifraud).
Работает при состоянии аутентификации выше, чем JCWebClient2.Vars.AuthState.notBinded.
Текущее состояние аутентификации можно получить с помощью команды getLoggedInState.

Примеры в разделе Формирование электронной подписи.

Аргументы:
contID
Тип: Integer
Идентификатор контейнера. Получить можно с помощью writeUserCertificate, generateUserSelfSignedCertificate или getContainerList.

Примечание

Значение идентификатора не постоянно, но в рамках сессии не меняется.

attachedSignature (По-умолчанию: false)
Тип: Boolean
Включать ли данные в подпись PKCS#7 (true - включать).

Примечание

Если установлен в true и подписываются данные из файла (аргумент fileName), то будет сгенерировано исключение.

data (Необязательный)
Тип: String
Данные для подписи в виде строки, закодированной в Base64.
fileName (Необязательный)
Тип: String
Имя файла, содержимое которого требуется подписать.

Примечание

Если аргумент data установлен, то fileName игнорируется.

userHostData (Необязательный)
Тип: Array
Список получаемых данных с пользовательского ПК, которые будут подписаны и войдут в результирующий PKCS#7 конверт. Массив должен содержать строки из JCWebClient2.Vars.UserHostData.

Примечание

Информация о системе представляет собой строку в формате JSON. Она добавляется в подпись как подписываемый атрибут (signed attribute). OID атрибута: 1.2.643.2.7.1.1.1.

customSignedAttributes (Необязательный)
Тип: Array
Массив с пользовательскими подписываемыми атрибутами.
Каждый элемент массива является объектом с параметрами:
oid
Тип: String
OID атрибута.
value
Тип: String
Значение атрибута.
signaturePin (Необязательный)
Тип: String
useUI (По-умолчанию: false)
Тип: Boolean
Признак использования графического интерфейса приложения JC-WebClient для предъявления PIN-кода подписи.

Примечание

Если равен true, то аргумент signaturePin игнорируется.

antifraud (Обязательный - для смарт-карты в Антифрод-терминале, в остальных случаях - Необязательный)
Тип: PlainObject
Параметры для предъявления PIN-кода подписи с Антифрод-терминала.

Примечание

Если указан, то аргументы useUI и signaturePin игнорируются.

Параметры:
deviceID (Необязательный)
Тип: Integer
Идентификатор Антифрод-терминала, работающего без смарт-карты. Получаются с помощью команды getAllSlots.

Примечание

Идентификатор игнорируется, если в tokenID передали идентификатор смарт-карты, подключенной к Антифрод-терминалу.

Примечание

Значения идентификатора не постоянно, но в рамках сессии не меняется.

langID (По-умолчанию: JCWebClient2.defaults().antifraud.langID)
Тип: Integer
Допустимые значения: JCWebClient2.Vars.AftLang
Идентификатор языка, используемого для отображения сообщений.
timeout (По-умолчанию: JCWebClient2.defaults().antifraud.timeout)
Тип: Integer
Тайм-аут ожидания ввода от пользователя до отмены операции, в секундах.
Результат:
String – подпись в формате PKCS#7, закодированная в Base64.

verifyData

GOST 2
verifyData
Проверить подпись PKCS#7.
В случае отсоединенной подписи передавать на проверку необходимо либо данные (аргумент data), либо имя файла (аргумент fileName). Если одновременно передать data и fileName, то fileName игнорируется.
Работает при любом состоянии аутентификации.

Примеры в разделе Проверка электронной подписи.

Аргументы:
signature
Тип: Array
Массив байт с подписью в формате PKCS#7.
data (Необязательный)
Тип: Array
Данные, если используется PKCS#7 отсоединённая подпись (detached signature).
fileName (Необязательный)
Тип: String
Имя файла, если используется PKCS#7 отсоединённая подпись (detached signature).

Примечание

Если аргумент data установлен, то fileName игнорируется.

options (Необязательный)
Тип: PlainObject
Дополнительные параметры проверки на токене.
Параметры:
tokenID
Тип: Integer
Идентификатор токена. Получается с помощью команды getAllSlots.

Примечание

Значение идентификатора не постоянно, но в рамках сессии не меняется.

useToken (По-умолчанию: false)
Тип: Boolean
Признак использования токена при проверке подписи.
chainOfTrust (Необязательный)
Тип: PlainObject
Цепочка сертификатов от сертификата подписанта до доверенного открытого ключа, загруженного в доверенное хранилище в JaCarta-2 ГОСТ.
Параметры:
useTokenStorage
Тип: Boolean
Признак использования сертификатов на токене для установления доверия. Если передан аргумент certificates и текущий аргумент равен true, то для установки доверия используются в том числе сертификаты с токена.
certificates (Необязательный)
Тип: Array
Массив из тел сертификатов в форматах DER или PEM для установления доверия.
Результат:
Boolean – результат проверки.

verifyBase64EncodedData

GOST 2
verifyBase64EncodedData
Проверить подпись PKCS#7 с данными и подписью, закодированными в Base64.
В случае отсоединенной подписи передавать на проверку необходимо либо данные (аргумент data), либо имя файла (аргумент fileName). Если одновременно передать data и fileName, то fileName игнорируется.
Работает при любом состоянии аутентификации.

Примеры в разделе Проверка электронной подписи.

Аргументы:
signature
Тип: String
Закодированная в Base64 подпись в формате PKCS#7.
data (Необязательный)
Тип: String
Закодированные в Base64 данные, если используется PKCS#7 отсоединённая подпись (detached signature).
fileName (Необязательный)
Тип: String
Имя файла, если используется PKCS#7 отсоединённая подпись (detached signature).

Примечание

Если аргумент data установлен, то fileName игнорируется.

options (Необязательный)
Тип: PlainObject
Дополнительные параметры проверки на токене.
Параметры:
tokenID
Тип: Integer
Идентификатор токена. Получается с помощью команды getAllSlots.

Примечание

Значение идентификатора не постоянно, но в рамках сессии не меняется.

useToken (По-умолчанию: false)
Тип: Boolean
Признак использования токена при проверке подписи.
chainOfTrust (Необязательный)
Тип: PlainObject
Цепочка сертификатов от сертификата подписанта до доверенного открытого ключа, загруженного в доверенное хранилище в JaCarta-2 ГОСТ.
Параметры:
useTokenStorage
Тип: Boolean
Признак использования сертификатов на токене для установления доверия. Если передан аргумент certificates и текущий аргумент равен true, то для установки доверия используются в том числе сертификаты с токена.
certificates (Необязательный)
Тип: Array
Массив из тел сертификатов в форматах DER или PEM для установления доверия.
Результат:
Boolean – результат проверки.

digest

GOST 2
digest
Посчитать хэш от данных, используя заданный алгоритм.
Если указан аргумент tokenID, то работает при любом состоянии аутентификации, в противном случае - выше, чем JCWebClient2.Vars.AuthState.notBinded.
Текущее состояние аутентификации можно получить с помощью команды getLoggedInState.
Аргументы:
data
Тип: Array
Массив байт с данными для хэширования.
tokenID (Необязательный)
Тип: Integer
Идентификатор токена. Получается с помощью команды getAllSlots.

Примечание

Значение идентификатора не постоянно, но в рамках сессии не меняется.

algorithm (По-умолчанию: JCWebClient2.Vars.DigestAlgorithm.GOST_94)
Тип: String
Допустимые значения: JCWebClient2.Vars.DigestAlgorithm
Алгоритм вычисления хэш-функции.
Результат:
Array – результаты работы хэш-функции.