Для формирования электронной подписи используется команды signData или signBase64EncodedData. При помощи этих команд можно создавать два вида подписи:
За выбор вида подписи отвечает аргумент attachedSignature.
Пример создания присоединенной подписи
// Идентификатор контейнера
var contID = 0;
// Данные для подписи
var dataToSign = 'my data';
// Перевести строку в массив байт
dataToSign = $utf8.encode(dataToSign);
// Подписать данные, используя программное хэширование
var signedData = JCWebClient2.signData({
args: {
contID: contID,
data: dataToSign,
attachedSignature: true
}
});
Пример создания отсоединенной подписи
// Идентификатор контейнера
var contID = 0;
// Данные для подписи
var dataToSign = 'my data';
// Перевести строку в массив байт
dataToSign = $utf8.encode(dataToSign);
// Подписать данные, используя программное хэширование
var signedData = JCWebClient2.signData({
args: {
contID: contID,
data: dataToSign,
attachedSignature: false
}
});
С помощью JC-WebClient подписываемые данные сначала подвергаются хэшированию по
ГОСТ Р 34.11-94 с применением параметров
id-GostR3411-94-CryptoProParamSet
согласно
RFC 4357. Затем формируется
электронная подпись по ГОСТ Р 34.10-2001 с параметрами криптографических
преобразований, определяемых значением атрибута CKA_GOSTR3410_PARAMS
открытого ключа. Подписанные данные возвращаются в формате PKCS#7.
Примечание
При создании ключевого контейнера с помощью JC-WebClient значение
атрибута CKA_GOSTR3410_PARAMS
задаётся аргументом paramSet команды createKeyPair.
С помощью JC-WebClient подписываемые данные сначала подвергаются хэшированию по SHA-1. Затем формируется электронная подпись на основе алгоритма RSA-1024. Подписанные данные возвращаются в формате PKCS#7.
С помощью JC-WebClient подписываемые данные сначала подвергаются хэшированию по одному из следующих алгоритмов:
Затем формируется электронная подпись по одному из следующих алгоритмов:
Параметры криптографических преобразований определяются атрибутом CKA_GOSTR3410_PARAMS открытого ключа. Подписанные данные возвращаются в формате PKCS#7.
Примечание
При создании ключевого контейнера с помощью JC-WebClient значение
атрибута CKA_GOSTR3410_PARAMS
задаётся аргументом paramSet команды createKeyPair.
Для формирования электронной подписи используется команда signData или signBase64EncodedData.
Примечание
Электронную подпись можно создать только для данных. Если передать в команду ранее вычисленный хэш, он будет рассматриваться как данные. Поэтому хэш будет вычислен повторно, после чего подписан.
При генерации ключевых пар может быть указан признак предъявления PIN-кода подписи. При использовании ключевых пар с таким признаком при подписании необходимо дополнительно передавать значение PIN-кода подписи.
Для проверки электронной подписи используются команды verifyData или verifyBase64EncodedData. При помощи этих команд можно осуществлять проверку:
При проверке необходимо указать, содержатся ли данные в подписи. И если данные в подпись не включены (отсоединенная подпись), то передать их в аргумент data или указать путь к файлу, где они располагаются (аргумент fileName).
Пример проверки присоединенной подписи
var signature = [/* Массив байт с подписью в формате PKCS#7 */];
var res = JCWebClient2.verifyData({
args: {
signature: signature
}
});
Пример проверки отсоединенной подписи
var signature = [/* Массив байт с подписью в формате PKCS#7 */];
var res = JCWebClient2.verifyData({
args: {
signature: signature,
data: data
}
});
С помощью JC-WebClient подписанные данные сначала подвергаются хэшированию
по ГОСТ Р 34.11-94 с применением параметров
id-GostR3411-94-CryptoProParamSet
согласно
RFC 4357. Проверка электронной подписи
осуществляется по ГОСТ Р 34.10-2001 с параметрами криптографических
преобразований, хранящимися вместе с электронной подписью.
С помощью JC-WebClient подписанные данные сначала подвергаются хэшированию по SHA-1. Проверка электронной подписи осуществляется на основе алгоритма RSA-1024.
С помощью JC-WebClient подписанные данные сначала подвергаются хэшированию по одному из следующих алгоритмов:
Проверка электронной подписи осуществляется по одному из следующих алгоритмов:
Для проверки электронной подписи используется команды verifyData или verifyBase64EncodedData.