Подпись и проверка подписи
Описание и примеры представлены в разделе Работа с электронной подписью.
signData
Заголовок раздела «signData»Подписать данные.
Возвращает подпись в формате PKCS#7.
Передавать на подпись можно либо данные (аргумент data), либо имя файла (аргумент fileName). Если одновременно передать аргументы data и fileName, то fileName игнорируется.
Работает при состоянии аутентификации выше, чем JCWebClient2.Vars.AuthState.notBinded. Текущее состояние аутентификации можно получить с помощью команды getLoggedInState.
Примеры в разделе Формирование электронной подписи.
Аргументы:
- Тип: Integer
- Описание: Идентификатор контейнера. Получить можно с помощью writeUserCertificate, generateUserSelfSignedCertificate или getContainerList. Значение идентификатора не постоянно, но в рамках сессии не меняется.
attachedSignature (По умолчанию: false)
Заголовок раздела «attachedSignature (По умолчанию: false)»- Тип: Boolean
- Описание: Включать ли данные в подпись PKCS#7 (
true— включать). Если установлен вtrueи подписываются данные из файла (аргумент fileName), то будет сгенерировано исключение. Если установлен аргумент signature, то значение attachedSignature игнорируется.
useHardwareHash (По умолчанию: false)
Заголовок раздела «useHardwareHash (По умолчанию: false)»- Тип: Boolean
- Описание: Признак использования аппаратного хэширования.
data (Необязательный)
Заголовок раздела «data (Необязательный)»- Тип: Array
- Описание: Данные для подписи в виде массива байт.
fileName (Необязательный)
Заголовок раздела «fileName (Необязательный)»- Тип: String
- Описание: Имя файла, содержимое которого требуется подписать. Если аргумент data установлен, то fileName игнорируется.
signature (Необязательный)
Заголовок раздела «signature (Необязательный)»- Тип: Array
- Описание: Подпись в виде массива байт в формате PKCS#7. Используется для создания множественной подписи. Если signature является отсоединенной подписью, то необходимо наличие аргументов data или fileName. Если signature является присоединенной подписью, то данные для подписи извлекаются из signature, если отсутствуют аргументы data или fileName.
userHostData (Необязательный)
Заголовок раздела «userHostData (Необязательный)»- Тип: Array
- Описание: Список получаемых данных с пользовательского ПК, которые будут подписаны и войдут в результирующий PKCS#7 конверт. Массив должен содержать строки из
JCWebClient2.Vars.UserHostData. Информация о системе представляет собой строку в формате JSON. Она добавляется в подпись как подписываемый атрибут (signed attribute). OID атрибута: 1.2.643.2.7.1.1.1.
customSignedAttributes (Необязательный)
Заголовок раздела «customSignedAttributes (Необязательный)»-
Тип: Array
-
Описание: Массив с пользовательскими подписываемыми атрибутами. Каждый элемент массива является объектом с параметрами:
- Тип: String
- Описание: OID атрибута.
- Тип: String
- Описание: Значение атрибута.
addSigningTime (По умолчанию: false)
Заголовок раздела «addSigningTime (По умолчанию: false)»- Тип: Boolean
- Описание: Включать в подпись время подписания. Время подписания добавляется в PKCS#7-контенер как атрибут с OID 1.2.840.113549.1.9.5. Если при подписи передаются подписываемые атрибуты (customSignedAttributes), то время подписания включается автоматически.
Результат: Array — массив байт с подписью в формате PKCS#7.
signDataPack
Заголовок раздела «signDataPack»Подписать несколько пакетов данных.
Возвращает массив подписей в формате PKCS#7.
Передавать на подпись можно либо массив данных (аргумент data), либо массив имён файлов (аргумент fileName). Если одновременно передать аргументы data и fileName, то fileName игнорируется.
Работает при состоянии аутентификации выше, чем JCWebClient2.Vars.AuthState.notBinded. Текущее состояние аутентификации можно получить с помощью команды getLoggedInState.
Примеры в разделе Формирование электронной подписи.
Аргументы:
- Тип: Integer
- Описание: Идентификатор контейнера. Получить можно с помощью writeUserCertificate, generateUserSelfSignedCertificate или getContainerList. Значение идентификатора не постоянно, но в рамках сессии не меняется.
attachedSignature (По умолчанию: false)
Заголовок раздела «attachedSignature (По умолчанию: false)»- Тип: Boolean
- Описание: Включать ли данные в подпись PKCS#7 (
true— включать). Если установлен вtrueи подписываются данные из файла (аргумент fileName), то будет сгенерировано исключение. Если установлен аргумент signature, то значение attachedSignature игнорируется.
useHardwareHash (По умолчанию: false)
Заголовок раздела «useHardwareHash (По умолчанию: false)»- Тип: Boolean
- Описание: Признак использования аппаратного хэширования.
data (Необязательный)
Заголовок раздела «data (Необязательный)»- Тип: Array
- Описание: Данные для подписи в виде массива массивов байт.
fileName (Необязательный)
Заголовок раздела «fileName (Необязательный)»- Тип: Array
- Описание: Массив имён файлов, содержимое которых требуется подписать. Если аргумент data установлен, то fileName игнорируется.
signature (Необязательный)
Заголовок раздела «signature (Необязательный)»- Тип: Array
- Описание: Подпись в виде массива байт в формате PKCS#7. Используется для создания множественной подписи. Если signature является отсоединенной подписью, то необходимо наличие аргументов data или fileName. Если signature является присоединенной подписью, то данные для подписи извлекаются из signature, если отсутствуют аргументы data или fileName.
userHostData (Необязательный)
Заголовок раздела «userHostData (Необязательный)»- Тип: Array
- Описание: Список получаемых данных с пользовательского ПК, которые будут подписаны и войдут в результирующий PKCS#7 конверт. Массив должен содержать строки из
JCWebClient2.Vars.UserHostData. Информация о системе представляет собой строку в формате JSON. Она добавляется в подпись как подписываемый атрибут (signed attribute). OID атрибута: 1.2.643.2.7.1.1.1.
customSignedAttributes (Необязательный)
Заголовок раздела «customSignedAttributes (Необязательный)»-
Тип: Array
-
Описание: Массив с пользовательскими подписываемыми атрибутами. Каждый элемент массива является объектом с параметрами:
- Тип: String
- Описание: OID атрибута.
- Тип: String
- Описание: Значение атрибута.
addSigningTime (По умолчанию: false)
Заголовок раздела «addSigningTime (По умолчанию: false)»- Тип: Boolean
- Описание: Включать в подпись время подписания. Время подписания добавляется в PKCS#7-контенер как атрибут с OID 1.2.840.113549.1.9.5. Если при подписи передаются подписываемые атрибуты (customSignedAttributes), то время подписания включается автоматически.
Результат: Array — массив массивов байт с подписями в формате PKCS#7. Количество возвращаемых подписей и их порядок соответствуют количеству и порядку массивов передаваемых данных (data) или имён файлов (fileName).
signBase64EncodedData
Заголовок раздела «signBase64EncodedData»Подписать данные.
Возвращает подпись в формате PKCS#7, закодированную в Base64.
Передавать на подпись можно либо данные (аргумент data), либо имя файла (аргумент fileName). Если одновременно передать аргументы data и fileName, то fileName игнорируется.
Работает при состоянии аутентификации выше, чем JCWebClient2.Vars.AuthState.notBinded. Текущее состояние аутентификации можно получить с помощью команды getLoggedInState.
Примеры в разделе Формирование электронной подписи.
Аргументы:
- Тип: Integer
- Описание: Идентификатор контейнера. Получить можно с помощью writeUserCertificate, generateUserSelfSignedCertificate или getContainerList. Значение идентификатора не постоянно, но в рамках сессии не меняется.
attachedSignature (По умолчанию: false)
Заголовок раздела «attachedSignature (По умолчанию: false)»- Тип: Boolean
- Описание: Включать ли данные в подпись PKCS#7 (
true— включать). Если установлен вtrueи подписываются данные из файла (аргумент fileName), то будет сгенерировано исключение. Если установлен аргумент signature, то значение attachedSignature игнорируется.
useHardwareHash (По умолчанию: false)
Заголовок раздела «useHardwareHash (По умолчанию: false)»- Тип: Boolean
- Описание: Признак использования аппаратного хэширования.
data (Необязательный)
Заголовок раздела «data (Необязательный)»- Тип: String
- Описание: Данные для подписи в виде строки, закодированной в Base64.
fileName (Необязательный)
Заголовок раздела «fileName (Необязательный)»- Тип: String
- Описание: Имя файла, содержимое которого требуется подписать. Если аргумент data установлен, то fileName игнорируется.
signature (Необязательный)
Заголовок раздела «signature (Необязательный)»- Тип: String
- Описание: Подпись в формате PKCS#7, закодированная в Base64. Используется для создания множественной подписи. Если signature является отсоединенной подписью, то необходимо наличие аргументов data или fileName. Если signature является присоединенной подписью, то данные для подписи извлекаются из signature, если отсутствуют аргументы data или fileName.
userHostData (Необязательный)
Заголовок раздела «userHostData (Необязательный)»- Тип: Array
- Описание: Список получаемых данных с пользовательского ПК, которые будут подписаны и войдут в результирующий PKCS#7 конверт. Массив должен содержать строки из
JCWebClient2.Vars.UserHostData. Информация о системе представляет собой строку в формате JSON. Она добавляется в подпись как подписываемый атрибут (signed attribute). OID атрибута: 1.2.643.2.7.1.1.1.
customSignedAttributes (Необязательный)
Заголовок раздела «customSignedAttributes (Необязательный)»-
Тип: Array
-
Описание: Массив с пользовательскими подписываемыми атрибутами. Каждый элемент массива является объектом с параметрами:
- Тип: String
- Описание: OID атрибута.
- Тип: String
- Описание: Значение атрибута.
addSigningTime (По умолчанию: false)
Заголовок раздела «addSigningTime (По умолчанию: false)»- Тип: Boolean
- Описание: Включать в подпись время подписания. Время подписания добавляется в PKCS#7-контенер как атрибут с OID 1.2.840.113549.1.9.5. Если при подписи передаются подписываемые атрибуты (customSignedAttributes), то время подписания включается автоматически.
Результат: String — подпись в формате PKCS#7, закодированная в Base64.
signBase64EncodedDataPack
Заголовок раздела «signBase64EncodedDataPack»Подписать несколько пакетов данных.
Возвращает массив подписей в формате PKCS#7, закодированных в Base64.
Передавать на подпись можно либо массив данных (аргумент data), либо массив имён файлов (аргумент fileName). Если одновременно передать аргументы data и fileName, то fileName игнорируется.
Работает при состоянии аутентификации выше, чем JCWebClient2.Vars.AuthState.notBinded. Текущее состояние аутентификации можно получить с помощью команды getLoggedInState.
Примеры в разделе Формирование электронной подписи.
Аргументы:
- Тип: Integer
- Описание: Идентификатор контейнера. Получить можно с помощью writeUserCertificate, generateUserSelfSignedCertificate или getContainerList. Значение идентификатора не постоянно, но в рамках сессии не меняется.
attachedSignature (По умолчанию: false)
Заголовок раздела «attachedSignature (По умолчанию: false)»- Тип: Boolean
- Описание: Включать ли данные в подпись PKCS#7 (
true— включать). Если установлен вtrueи подписываются данные из файла (аргумент fileName), то будет сгенерировано исключение. Если установлен аргумент signature, то значение attachedSignature игнорируется.
useHardwareHash (По умолчанию: false)
Заголовок раздела «useHardwareHash (По умолчанию: false)»- Тип: Boolean
- Описание: Признак использования аппаратного хэширования.
data (Необязательный)
Заголовок раздела «data (Необязательный)»- Тип: Array
- Описание: Данные для подписи в виде массива строк, закодированных в Base64.
fileName (Необязательный)
Заголовок раздела «fileName (Необязательный)»- Тип: Array
- Описание: Массив имён файлов, содержимое которых требуется подписать. Если аргумент data установлен, то fileName игнорируется.
signature (Необязательный)
Заголовок раздела «signature (Необязательный)»- Тип: String
- Описание: Подпись в формате PKCS#7, закодированная в Base64. Используется для создания множественной подписи. Если signature является отсоединенной подписью, то необходимо наличие аргументов data или fileName. Если signature является присоединенной подписью, то данные для подписи извлекаются из signature, если отсутствуют аргументы data или fileName.
userHostData (Необязательный)
Заголовок раздела «userHostData (Необязательный)»- Тип: Array
- Описание: Список получаемых данных с пользовательского ПК, которые будут подписаны и войдут в результирующий PKCS#7 конверт. Массив должен содержать строки из
JCWebClient2.Vars.UserHostData. Информация о системе представляет собой строку в формате JSON. Она добавляется в подпись как подписываемый атрибут (signed attribute). OID атрибута: 1.2.643.2.7.1.1.1.
customSignedAttributes (Необязательный)
Заголовок раздела «customSignedAttributes (Необязательный)»-
Тип: Array
-
Описание: Массив с пользовательскими подписываемыми атрибутами. Каждый элемент массива является объектом с параметрами:
- Тип: String
- Описание: OID атрибута.
- Тип: String
- Описание: Значение атрибута.
addSigningTime (По умолчанию: false)
Заголовок раздела «addSigningTime (По умолчанию: false)»- Тип: Boolean
- Описание: Включать в подпись время подписания. Время подписания добавляется в PKCS#7-контенер как атрибут с OID 1.2.840.113549.1.9.5. Если при подписи передаются подписываемые атрибуты (customSignedAttributes), то время подписания включается автоматически.
Результат: Array — массив подписей в формате PKCS#7, закодированных в Base64. Количество возвращаемых подписей и их порядок соответствуют количеству и порядку строк передаваемых данных (data) или имён файлов (fileName).
signHash
Заголовок раздела «signHash»Подписать данные без хэширования (т.е. подписать хэш).
Возвращает подпись в формате PKCS#7.
Работает при состоянии аутентификации выше, чем JCWebClient2.Vars.AuthState.notBinded. Текущее состояние аутентификации можно получить с помощью команды getLoggedInState.
Аргументы:
- Тип: Integer
- Описание: Идентификатор контейнера. Получить можно с помощью writeUserCertificate, generateUserSelfSignedCertificate или getContainerList. Значение идентификатора не постоянно, но в рамках сессии не меняется.
- Тип: Array
- Описание: Хэш в виде массива байт. Длина должна быть равна:
- PKI — 20 байт (алгоритм хэширования — SHA-1).
signature (Необязательный)
Заголовок раздела «signature (Необязательный)»- Тип: Array
- Описание: Подпись в виде массива байт в формате PKCS#7. Используется для создания множественной подписи.
base64Encoded (По умолчанию: true)
Заголовок раздела «base64Encoded (По умолчанию: true)»- Тип: Boolean
- Описание: Признак кодирования результата в Base64 (
true— вернуть строку с подписью в формате PKCS#7, закодированную в Base64).
Результат:
- Если аргумент base64Encoded был равен
true: String — строка с подписью в формате PKCS#7, закодированная в Base64. - Если аргумент base64Encoded был равен
false: Array — массив байт с подписью в формате PKCS#7.
signDataInByte
Заголовок раздела «signDataInByte»Подписать данные.
Возвращает подпись в виде массива байт.
Работает при состоянии аутентификации выше, чем JCWebClient2.Vars.AuthState.notBinded. Текущее состояние аутентификации можно получить с помощью команды getLoggedInState.
Аргументы:
- Тип: Integer
- Описание: Идентификатор контейнера. Получить можно с помощью writeUserCertificate, generateUserSelfSignedCertificate или getContainerList. Значение идентификатора не постоянно, но в рамках сессии не меняется.
useHardwareHash (По умолчанию: false)
Заголовок раздела «useHardwareHash (По умолчанию: false)»- Тип: Boolean
- Описание: Признак использования аппаратного хэширования.
- Тип: Array
- Описание: Данные для подписи в виде массива байт.
Результат: Array — массив байт с подписью.
signHashInByte
Заголовок раздела «signHashInByte»Подписать данные без хэширования (т.е. подписать хэш).
Работает при состоянии аутентификации выше, чем JCWebClient2.Vars.AuthState.notBinded. Текущее состояние аутентификации можно получить с помощью команды getLoggedInState.
Аргументы:
- Тип: Integer
- Описание: Идентификатор контейнера. Получить можно с помощью writeUserCertificate, generateUserSelfSignedCertificate или getContainerList. Значение идентификатора не постоянно, но в рамках сессии не меняется.
- Тип: Array
- Описание: Данные для подписи в виде массива байт. Длина должна быть равна:
- PKI — 20 байт (алгоритм хэширования — SHA-1).
Результат: Array — массив байт с подписью.
verifyData
Заголовок раздела «verifyData»Проверить подпись PKCS#7.
Примеры в разделе Проверка электронной подписи.
Результат: Boolean — результат проверки.
verifyBase64EncodedData
Заголовок раздела «verifyBase64EncodedData»Проверить подпись PKCS#7 с данными и подписью, закодированными в Base64.
Примеры в разделе Проверка электронной подписи.
Результат: Boolean — результат проверки.
verifyDataInByte
Заголовок раздела «verifyDataInByte»Проверить подпись в виде массива байт.
Работает при любом состоянии аутентификации.
Аргументы:
signature
Заголовок раздела «signature»- Тип: Array
- Описание: Массив байт с подписью.
- Тип: Array
- Описание: Данные в виде массива байт.
publicKey
Заголовок раздела «publicKey»- Тип: Array
- Описание: Массив байт с публичным ключом в формате:
- PKI, алгоритм ключа:
- RSA: PKCS#1
- ECDSA: X.509-структура SubjectPublicKeyInfo в представлении ASN.1
- PKI, алгоритм ключа:
Результат: Boolean — результат проверки.
verifyHashInByte
Заголовок раздела «verifyHashInByte»Проверить подпись хэша в виде массива байт.
Работает при любом состоянии аутентификации.
Аргументы:
signature
Заголовок раздела «signature»- Тип: Array
- Описание: Массив байт с подписью.
- Тип: Array
- Описание: Хэш данных в виде массива байт. Длина должна быть равна:
- PKI:
- 20 байт (алгоритм хэширования — SHA-1).
- 28 байт (алгоритм хэширования — SHA-224).
- 32 байта (алгоритм хэширования — SHA-256).
- 48 байт (алгоритм хэширования — SHA-384).
- 64 байта (алгоритм хэширования — SHA-512).
- PKI:
publicKey
Заголовок раздела «publicKey»- Тип: Array
- Описание: Массив байт с публичным ключом в формате:
- PKI, алгоритм ключа:
- RSA: PKCS#1
- ECDSA: X.509-структура SubjectPublicKeyInfo в представлении ASN.1
- PKI, алгоритм ключа:
Результат: Boolean — результат проверки.
Посчитать хэш от данных.
Алгоритм вычисления хэш-функции:
- PKI — SHA-1.
Если указан аргумент tokenID, то работает при любом состоянии аутентификации, в противном случае — выше, чем JCWebClient2.Vars.AuthState.notBinded. Текущее состояние аутентификации можно получить с помощью команды getLoggedInState.
Аргументы:
- Тип: Array
- Описание: Массив байт с данными для хэширования.
useHardwareHash (По умолчанию: false)
Заголовок раздела «useHardwareHash (По умолчанию: false)»- Тип: Boolean
- Описание: Признак использования аппаратного хэширования.
tokenID (Необязательный)
Заголовок раздела «tokenID (Необязательный)»- Тип: Integer
- Описание: Идентификатор токена. Получается с помощью команды getAllSlots. Значение идентификатора не постоянно, но в рамках сессии не меняется.
Результат: Array — результаты работы хэш-функции.

