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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline МарияК2603  
#1 Оставлено : 13 ноября 2023 г. 16:55:59(UTC)
МарияК2603

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

Группы: Участники
Зарегистрирован: 25.01.2022(UTC)
Сообщений: 15
Российская Федерация
Откуда: Vologda

Сказал(а) «Спасибо»: 2 раз
Добрый день!
Нужно на сайте реализовать форму, в которую пользователь загружает sig и xml, а в ответ получает результат проверки подписи.
Особенность в том , что подпись и открепленная и без сертификата(CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY).
Проверка как в примере: https://docs.cryptopro.r...in-samples-sign-detached вовзвращает "cannot find the original signer".
Ища на форуме могу предположить, что это как раз из-за того, что сертификат не включен в подписанное сообщение.
Как тогда в таком случае можно реализовать проверку? Может где-то аналогично подписанию можно выставить .propset_Options?
Ведь в "инструментах Крипто-Про" я такого вида подписи могу проверить без проблем.
Offline Андрей *  
#2 Оставлено : 13 ноября 2023 г. 17:00:10(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,719
Мужчина
Российская Федерация

Сказал «Спасибо»: 500 раз
Поблагодарили: 2054 раз в 1594 постах
Здравствуйте.

Эта опция - добавить только сертификат подписанта.

Пример файлов\кода - будет?
Техническую поддержку оказываем тут
Наша база знаний
Offline МарияК2603  
#3 Оставлено : 14 ноября 2023 г. 9:59:29(UTC)
МарияК2603

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

Группы: Участники
Зарегистрирован: 25.01.2022(UTC)
Сообщений: 15
Российская Федерация
Откуда: Vologda

Сказал(а) «Спасибо»: 2 раз
Автор: Андрей * Перейти к цитате
Здравствуйте.

Эта опция - добавить только сертификат подписанта.

Пример файлов\кода - будет?


test.xml (1kb) загружен 1 раз(а).

test.sig.txt (2kb) загружен 2 раз(а).

Код
doc = await getFileContent('docFile');
sig = await getFileContent('sigFile');
verSig(sig, btoa(unescape(encodeURIComponent(doc))));

verSig = function(d,s) {
g.verifySign(d,s)
.then(function (e) {
console.log(e);
}).catch(function (e) {
console.log(e);
})
}

function VerifySign(sSignedMessage, dataInBase64) {
return new Promise(function (resolve, reject) {
cadesplugin.async_spawn(function* (args) {
var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
try {
// Значение свойства ContentEncoding должно быть задано
// до заполнения свойства Content
yield oSignedData.propset_ContentEncoding(CADESCOM_BASE64_TO_BINARY);
yield oSignedData.propset_Content(dataInBase64);
yield oSignedData.VerifyCades(sSignedMessage, CADESCOM_CADES_BES, true);
}
catch (err) {
var e = cadesplugin.getLastError(err);
alert("Failed to verify signature. Error: " + e);
return args[1](e);
}
return args[0]();
}, resolve, reject);
});
}
Offline Андрей *  
#4 Оставлено : 14 ноября 2023 г. 18:34:12(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,719
Мужчина
Российская Федерация

Сказал «Спасибо»: 500 раз
Поблагодарили: 2054 раз в 1594 постах
Подпись проходит проверку.

Цитата:

doc = await getFileContent('docFile');
sig = await getFileContent('sigFile');
verSig(sig, btoa(unescape(encodeURIComponent(doc))));


Переписать на чтение как в примере
Техническую поддержку оказываем тут
Наша база знаний
Offline МарияК2603  
#5 Оставлено : 15 ноября 2023 г. 9:06:49(UTC)
МарияК2603

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

Группы: Участники
Зарегистрирован: 25.01.2022(UTC)
Сообщений: 15
Российская Федерация
Откуда: Vologda

Сказал(а) «Спасибо»: 2 раз
Автор: Андрей * Перейти к цитате
Подпись проходит проверку.

Цитата:

doc = await getFileContent('docFile');
sig = await getFileContent('sigFile');
verSig(sig, btoa(unescape(encodeURIComponent(doc))));


Переписать на чтение как в примере



Андрей, я в примерах по плагину вижу как создавать подпись, при этом при подписи мы указываем шифровку base64, а на проверку уже отправляем ответ от подписания.
Правильно ли я предполагаю, что Вы меня направляете в сторону использования:

https://docs.cryptopro.r...n-samples-enveloped-data
var encMessage = yield oEnvelopedData.Encrypt(cadesplugin.CADESCOM_ENCODE_BASE64);


То есть суть моей не удачи в том, что я неправильно кодирую в base64 полученное содержимое файла?
Offline Андрей *  
#6 Оставлено : 15 ноября 2023 г. 9:26:28(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,719
Мужчина
Российская Федерация

Сказал «Спасибо»: 500 раз
Поблагодарили: 2054 раз в 1594 постах
Автор: МарияК2603 Перейти к цитате
Автор: Андрей * Перейти к цитате
Подпись проходит проверку.

Цитата:

doc = await getFileContent('docFile');
sig = await getFileContent('sigFile');
verSig(sig, btoa(unescape(encodeURIComponent(doc))));


Переписать на чтение как в примере



Андрей, я в примерах по плагину вижу как создавать подпись, при этом при подписи мы указываем шифровку base64, а на проверку уже отправляем ответ от подписания.
Правильно ли я предполагаю, что Вы меня направляете в сторону использования:

https://docs.cryptopro.r...n-samples-enveloped-data
var encMessage = yield oEnvelopedData.Encrypt(cadesplugin.CADESCOM_ENCODE_BASE64);


То есть суть моей не удачи в том, что я неправильно кодирую в base64 полученное содержимое файла?


Нет. Отправляю смотреть, как при подписании читаются файлы и получается информация в памяти + не использовать выделенные функции, которые меняют содержимое от getFileContent.

base64 - это кодирование.
Encrypt - это шифрование файлов, не имеет отношение к проблеме.
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
МарияК2603 оставлено 15.11.2023(UTC)
Offline МарияК2603  
#7 Оставлено : 15 ноября 2023 г. 9:58:46(UTC)
МарияК2603

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

Группы: Участники
Зарегистрирован: 25.01.2022(UTC)
Сообщений: 15
Российская Федерация
Откуда: Vologda

Сказал(а) «Спасибо»: 2 раз
Автор: Андрей * Перейти к цитате



Спасибо за совет! Все получилось!
Offline МарияК2603  
#8 Оставлено : 26 февраля 2024 г. 17:01:41(UTC)
МарияК2603

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

Группы: Участники
Зарегистрирован: 25.01.2022(UTC)
Сообщений: 15
Российская Федерация
Откуда: Vologda

Сказал(а) «Спасибо»: 2 раз
Автор: Андрей * Перейти к цитате
Автор: МарияК2603 Перейти к цитате
Автор: Андрей * Перейти к цитате
Подпись проходит проверку.

Цитата:

doc = await getFileContent('docFile');
sig = await getFileContent('sigFile');
verSig(sig, btoa(unescape(encodeURIComponent(doc))));


Переписать на чтение как в примере



Андрей, я в примерах по плагину вижу как создавать подпись, при этом при подписи мы указываем шифровку base64, а на проверку уже отправляем ответ от подписания.
Правильно ли я предполагаю, что Вы меня направляете в сторону использования:

https://docs.cryptopro.r...n-samples-enveloped-data
var encMessage = yield oEnvelopedData.Encrypt(cadesplugin.CADESCOM_ENCODE_BASE64);


То есть суть моей не удачи в том, что я неправильно кодирую в base64 полученное содержимое файла?


Нет. Отправляю смотреть, как при подписании читаются файлы и получается информация в памяти + не использовать выделенные функции, которые меняют содержимое от getFileContent.

base64 - это кодирование.
Encrypt - это шифрование файлов, не имеет отношение к проблеме.


Добрый день! Возвращаюсь к своему вопросу, то как у меня получилось работает если sig в бинарном виде, если файл в подписью содержит подпись в base64, то получается, что я читаю через FileReader и readAsDataURL. и в итоге на проверку потом идет подпись дважды кодированная в base64.
Каким образом победить такую ситуацию?
Offline Андрей *  
#9 Оставлено : 26 февраля 2024 г. 17:10:48(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,719
Мужчина
Российская Федерация

Сказал «Спасибо»: 500 раз
Поблагодарили: 2054 раз в 1594 постах
Декодировать из base64...?
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.