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

GOST 2

PKI

signData

Подписать данные.
Возвращает подпись в формате PKCS#7.
Передавать на подпись можно либо данные (аргумент data), либо имя файла (аргумент fileName). Если одновременно передать аргументы data и fileName, то fileName игнорируется.

Работает при состоянии аутентификации выше, чем JCWebClient2.Vars.AuthState.notBinded.

Текущее состояние аутентификации можно получить с помощью команды getLoggedInState.

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

Аргументы:


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

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


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

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

Если установлен аргумент signature, то значение attachedSignature игнорируется.


useHardwareHash (По умолчанию: false)
ТипBoolean
Признак использования аппаратного хэширования.


data (Необязательный)
ТипArray
Данные для подписи в виде массива байт.


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

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


signature (Необязательный)
ТипArray
Подпись в виде массива байт в формате PKCS#7. Используется для создания множественной подписи.

Если signature является отсоединенной подписью, то необходимо наличие аргументов data или fileName. Если signature является присоединенной подписью, то данные для подписи извлекаются из signature, если отсутствуют аргументы 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
Значение атрибута.


addSigningTime (По умолчанию: false)
ТипBoolean
Включать в подпись время подписания

Время подписания добавляется в PKCS#7-контенер как атрибут с OID 1.2.840.113549.1.9.5. Если при подписи передаются подписываемые атрибуты (customSignedAttributes), то время подписания включается автоматически.

Результат:


Array – массив байт с подписью в формате PKCS#7.

GOST 2

PKI

signDataPack

Подписать несколько пакетов данных.
Возвращает массив подписей в формате PKCS#7.
Передавать на подпись можно либо массив данных (аргумент data), либо массив имён файлов (аргумент fileName). Если одновременно передать аргументы data и fileName, то fileName игнорируется.

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

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

Аргументы:


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

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

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

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

Если установлен аргумент signature, то значение attachedSignature игнорируется.


useHardwareHash (По умолчанию: false)
Тип: Boolean
Признак использования аппаратного хэширования.


data (Необязательный)
Тип: Array
Данные для подписи в виде массива массивов байт.


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

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


signature (Необязательный)
Тип: Array
Подпись в виде массива байт в формате PKCS#7. Используется для создания множественной подписи.

Если signature является отсоединенной подписью, то необходимо наличие аргументов data или fileName. Если signature является присоединенной подписью, то данные для подписи извлекаются из signature, если отсутствуют аргументы 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
Значение атрибута.


addSigningTime (По умолчанию: false)
Тип: Boolean
Включать в подпись время подписания

Время подписания добавляется в PKCS#7-контенер как атрибут с OID 1.2.840.113549.1.9.5. Если при подписи передаются подписываемые атрибуты (customSignedAttributes), то время подписания включается автоматически.

Результат:


Array – массив массивов байт с подписями в формате PKCS#7. Количество возвращаемых подписей и их порядок соответствуют количеству и порядку массивов передаваемых данных (data) или имён файлов (fileName).

GOST 2

PKI

signBase64EncodedData

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

Работает при состоянии аутентификации выше, чем JCWebClient2.Vars.AuthState.notBinded.

Текущее состояние аутентификации можно получить с помощью команды getLoggedInState.

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

Аргументы:


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

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


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

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

Если установлен аргумент signature, то значение attachedSignature игнорируется.


useHardwareHash (По умолчанию: false)
Тип: Boolean
Признак использования аппаратного хэширования.


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


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

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


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

Если signature является отсоединенной подписью, то необходимо наличие аргументов data или fileName. Если signature является присоединенной подписью, то данные для подписи извлекаются из signature, если отсутствуют аргументы 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
Значение атрибута.


addSigningTime (По умолчанию: false)
Тип: Boolean
Включать в подпись время подписания

Время подписания добавляется в PKCS#7-контенер как атрибут с OID 1.2.840.113549.1.9.5. Если при подписи передаются подписываемые атрибуты (customSignedAttributes), то время подписания включается автоматически.

Результат:


String – подпись в формате PKCS#7, закодированная в Base64.

GOST 2

PKI

signBase64EncodedDataPack

Подписать несколько пакетов данных.
Возвращает массив подписей в формате PKCS#7, закодированных в Base64.
Передавать на подпись можно либо массив данных (аргумент data), либо массив имён файлов (аргумент fileName). Если одновременно передать аргументы data и fileName, то fileName игнорируется.

Работает при состоянии аутентификации выше, чем JCWebClient2.Vars.AuthState.notBinded.

Текущее состояние аутентификации можно получить с помощью команды getLoggedInState.

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

Аргументы:


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

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


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

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

Если установлен аргумент signature, то значение attachedSignature игнорируется.


useHardwareHash (По умолчанию: false)
Тип: Boolean
Признак использования аппаратного хэширования.


data (Необязательный)
Тип: Array
Данные для подписи в виде массива строк, закодированных в Base64.


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

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

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


Если signature является отсоединенной подписью, то необходимо наличие аргументов data или fileName. Если signature является присоединенной подписью, то данные для подписи извлекаются из signature, если отсутствуют аргументы 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
Значение атрибута.


addSigningTime (По умолчанию: false)
Тип: Boolean
Включать в подпись время подписания

Время подписания добавляется в PKCS#7-контенер как атрибут с OID 1.2.840.113549.1.9.5. Если при подписи передаются подписываемые атрибуты (customSignedAttributes), то время подписания включается автоматически.

Результат:


Array – массив подписей в формате PKCS#7, закодированных в Base64. Количество возвращаемых подписей и их порядок соответствуют количеству и порядку строк передаваемых данных (data) или имён файлов (fileName).

GOST 2

PKI

signHash

Подписать данные без хэширования (т.е. подписать хэш).
Возвращает подпись в формате PKCS#7.

Работает при состоянии аутентификации выше, чем JCWebClient2.Vars.AuthState.notBinded.

Текущее состояние аутентификации можно получить с помощью команды getLoggedInState.

Аргументы:


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

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

hash
ТипArray
Хэш в виде массива байт.

Длина должна быть равна:

  • PKI – 20 байт (алгоритм хэширования - SHA-1).

signature (Необязательный)
ТипArray
Подпись в виде массива байт в формате PKCS#7. Используется для создания множественной подписи.


base64Encoded (По умолчанию: true)
ТипBoolean
Признак кодирования результата в Base64 (true - вернуть строку с подписью в формате PKCS#7, закодированную в Base64).

Результат:


Если аргумент base64Encoded был равен true:

String – строка с подписью в формате PKCS#7, закодированная в Base64.

Если аргумент base64Encoded был равен false:

Array – массив байт с подписью в формате PKCS#7

PKI

signDataInByte

Подписать данные.
Возвращает подпись в виде массива байт.

Работает при состоянии аутентификации выше, чем JCWebClient2.Vars.AuthState.notBinded.

Текущее состояние аутентификации можно получить с помощью команды getLoggedInState.

Аргументы:


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

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


useHardwareHash (По умолчанию: false)
Тип: Boolean
Признак использования аппаратного хэширования.


data
Тип: Array
Данные для подписи в виде массива байт.

Результат:


Array – массив байт с подписью.

GOST 2

PKI

signHashInByte

Подписать данные без хэширования (т.е. подписать хэш).

Работает при состоянии аутентификации выше, чем JCWebClient2.Vars.AuthState.notBinded.

Текущее состояние аутентификации можно получить с помощью команды getLoggedInState.

Аргументы:


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

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


hash
Тип: Array
Данные для подписи в виде массива байт.

Длина должна быть равна:

  • PKI – 20 байт (алгоритм хэширования - SHA-1).

Результат:


Array – массив байт с подписью.

GOST 2

PKI

verifyData

Проверить подпись PKCS#7.

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

Результат:


Boolean – результат проверки.


GOST 2

PKI

verifyBase64EncodedData

Проверить подпись PKCS#7 с данными и подписью, закодированными в Base64.

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

Результат:


Boolean – результат проверки.

PKI

verifyDataInByte

Проверить подпись в виде массива байт.

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

Аргументы:


signature
Тип: Array
Массив байт с подписью.


data
Тип: Array
Данные в виде массива байт.


publicKey
Тип: Array
Массив байт с публичным ключом в формате:

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

GOST 2

PKI

verifyHashInByte

Проверить подпись хэша в виде массива байт.

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

Аргументы:


signature
Тип: Array
Массив байт с подписью.


hash
Тип: Array
Хэш данных в виде массива байт.

Длина должна быть равна:

  • PKI:
    • 20 байт (алгоритм хэширования - SHA-1).
    • 28 байт (алгоритм хэширования - SHA-224).
    • 32 байта (алгоритм хэширования - SHA-256).
    • 48 байт (алгоритм хэширования - SHA-384).
    • 64 байта (алгоритм хэширования - SHA-512).

publicKey
Тип: Array
Массив байт с публичным ключом в формате:

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

Результат:


Boolean – результат проверки.


GOST 2

PKI

digest

Посчитать хэш от данных.

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

Алгоритм вычисления хэш-функции:

  • PKI  SHA-1.

Аргументы:


data
Тип: Array
Массив байт с данными для хэширования.


useHardwareHash (По умолчанию: false)
Тип: Boolean
Признак использования аппаратного хэширования.


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

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

Результат:


Array – результаты работы хэш-функции.