Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline nikomp  
#1 Оставлено : 9 ноября 2017 г. 17:01:22(UTC)
nikomp

Статус: Участник

Группы: Участники
Зарегистрирован: 04.10.2017(UTC)
Сообщений: 16

Добрый день! изучаю возможности КриптоПро ЭЦП Browser plug-in. Хочу на своей страничке реализовать подпись и проверку. Пока получилось только сформировать подпись для тестового сообщения "Message" (пример взял из справки). Подпись пытаюсь реализовать в браузере Chrome/

Код:
function SignCreate(certSubjectName, dataToSign) {

return new Promise(function(resolve, reject){
cadesplugin.async_spawn(function *(args) {
try {
var oStore = yield cadesplugin.CreateObjectAsync("CAdESCOM.Store");
yield oStore.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE,
CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);

var CertificatesObj = yield oStore.Certificates;
var oCertificates = yield CertificatesObj.Find(
CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, certSubjectName);

var Count = yield oCertificates.Count;
if (Count == 0) {
throw("Certificate not found: " + args[0]);
}
var oCertificate = yield oCertificates.Item(1);
var oSigner = yield cadesplugin.CreateObjectAsync("CAdESCOM.CPSigner");
yield oSigner.propset_Certificate(oCertificate);

var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
yield oSignedData.propset_Content(dataToSign);

var sSignedMessage = yield oSignedData.SignCades(oSigner, CADESCOM_CADES_BES);

yield oStore.Close();

args[2](sSignedMessage);
}
catch (e)
{
args[3]("Failed to create signature. Error: " + cadesplugin.getLastError(err));
}
}, certSubjectName, dataToSign, resolve, reject);
});
}


Далее пытаюсь проверить эту подпись, код
function Verify(sSignedMessage) {
return new Promise(function(resolve, reject){
cadesplugin.async_spawn(function *(args1) {
try
{
alert('www');
var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");

verify = yield oSignedData.VerifyCades(sSignedMessage, CADESCOM_CADES_BES);
alert('xxx'+verify);

//yield oSignedData.Close();
args1[0](verify);

} catch (err) {
args1[1]("Failed to create signature. Error: " + cadesplugin.getLastError(err));
}


}, sSignedMessage, resolve, reject);

});


}

verify=undefined

Подскажите как правильно проверить подпись? В документации не нашел примера для Chrome.


Offline cross  
#2 Оставлено : 10 ноября 2017 г. 11:17:55(UTC)
Анатолий Беляев

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 965
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
oSignedData.VerifyCades не возвращает значений. При ошибке будет исключение, если его нет то подпись проверилась.
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
Offline nikomp  
#3 Оставлено : 10 ноября 2017 г. 11:41:01(UTC)
nikomp

Статус: Участник

Группы: Участники
Зарегистрирован: 04.10.2017(UTC)
Сообщений: 16

Автор: cross Перейти к цитате
VerifyCades


где вообще описан этот метод? в cadesplugin_api.js ничего такого не нашел.
Offline nikomp  
#4 Оставлено : 10 ноября 2017 г. 13:36:59(UTC)
nikomp

Статус: Участник

Группы: Участники
Зарегистрирован: 04.10.2017(UTC)
Сообщений: 16

сейчас пробую так

function Verify(sSignedMessage) {
return new Promise(function(resolve, reject){
cadesplugin.async_spawn(function *(args1) {
try
{


var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
yield oSignedData.propset_ContentEncoding(1);
yield oSignedData.propset_Content("Message");
yield oSignedData.VerifyCades(sSignedMessage, CADESCOM_CADES_BES);


} catch (err) {
args1[1]("Failed to create signature. Error: " + cadesplugin.getLastError(err));
}

args1[0]("OK");


}, sSignedMessage, resolve, reject);

});


}

ошибка Failed to create signature. Error: The parameter is incorrect. (0x80070057)
Offline nikomp  
#5 Оставлено : 10 ноября 2017 г. 13:57:14(UTC)
nikomp

Статус: Участник

Группы: Участники
Зарегистрирован: 04.10.2017(UTC)
Сообщений: 16

Что-то я совсем запутался, ошибку из прошлого поста удалось победить, и вроде подпись даже проверяется, но если я меняю саму строку подпись все равно проверяется

код:

function Verify(sSignedMessage) {
return new Promise(function(resolve, reject){
cadesplugin.async_spawn(function *(args1) {
try
{
var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
yield oSignedData.propset_Content("Message1111111111"); <- Подписывал "Message"
yield oSignedData.VerifyCades(sSignedMessage, CADESCOM_CADES_BES);
//args1[0]("OK");
args1[2]("OK"); <- Ошибок нет, выводится "ОК"


} catch (err) {
args1[3]("Failed to create signature. Error: " + cadesplugin.getLastError(err));
}

}, sSignedMessage, resolve, reject);

});
}

Как проверить подпись простого сообщения? бьюсь второй день уже
Offline cross  
#6 Оставлено : 10 ноября 2017 г. 16:06:44(UTC)
Анатолий Беляев

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 965
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
Описание обьектов - http://cpdn.cryptopro.ru...ades/cadescom_class.html
У вас присоединенная подпись - после подписания данные уже внутри подписи, изменение свойства контент при этом не влияет на проверку подписи.
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
Offline nikomp  
#7 Оставлено : 13 ноября 2017 г. 10:31:47(UTC)
nikomp

Статус: Участник

Группы: Участники
Зарегистрирован: 04.10.2017(UTC)
Сообщений: 16

Как мне убедиться, что функционал работает? Я бы хотел подписать сообщение, затем выполнить какие-то действия у убедиться, что подпись слетела?
Offline cross  
#8 Оставлено : 13 ноября 2017 г. 15:32:03(UTC)
Анатолий Беляев

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 965
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
Можете сделать или отсоединенную подпись или открыть созданную подпись asn1 редактором найти дам подписанные данные и изменить их.
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
Offline nikomp  
#9 Оставлено : 13 ноября 2017 г. 16:53:12(UTC)
nikomp

Статус: Участник

Группы: Участники
Зарегистрирован: 04.10.2017(UTC)
Сообщений: 16

Я подписываю сообщение, при этом файл у меня никакой не формируется, как в этом случае использовать asn.1 editor?
Как можно создать отсоединенную подпись для сообщения? Как будет поддерживаться связь сообщения и подписи?
Offline nikomp  
#10 Оставлено : 14 ноября 2017 г. 11:58:21(UTC)
nikomp

Статус: Участник

Группы: Участники
Зарегистрирован: 04.10.2017(UTC)
Сообщений: 16

Вопрос актуален, прошу помощи!
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.