Статус: Новичок
Группы: Участники
Зарегистрирован: 17.01.2022(UTC) Сообщений: 5 Откуда: Ростов-на-Дону Сказал(а) «Спасибо»: 2 раз
|
Добрый день! Нужно реализовать вывод данных про подпись файла на фронтенде. Является ли возможным вывести данные, которые я вижу на Госуслугах (пункт электронного документа. ЭП — отсоединенная, в формате PKCS#7): Если да, каким методом могу для этого воспользоваться? Плохо ориентируюсь в работе плагина. Изучение документации не помогло решить задачу. Пытаюсь воспользоваться методом VerifyCades для получения данных, но: 1) Получаю ошибку "Криптографическое сообщение не содержит всех запрошенных атрибутов" при попытке проверить подпись. 2) Не уверен, что после устранения ошибки я получу желаемые данные на выходе. О реализации: Пользователем подписывается документ, генерируется отдельная подпись: Код:
// Получаю base64 подписываемого файла:
// ...
var header = ";base64,";
var sFileData = oFREvent.target.result;
var sBase64Data = sFileData.substr(sFileData.indexOf(header) + header.length);
// ...
var oStore = yield cadesplugin.CreateObjectAsync("CAdESCOM.Store");
yield oStore.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE,
CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);
var oStoreCerts = yield oStore.Certificates;
var oCertificates = yield oStoreCerts.Find(
CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, sCertName);
var certsCount = yield oCertificates.Count;
if (certsCount === 0) {
alert("Certificate not found: " + sCertName);
return;
}
var oCertificate = yield oCertificates.Item(1);
var oSigner = yield cadesplugin.CreateObjectAsync("CAdESCOM.CPSigner");
yield oSigner.propset_Certificate(oCertificate);
yield oSigner.propset_CheckCertificate(true);
var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
yield oSignedData.propset_ContentEncoding(CADESCOM_BASE64_TO_BINARY);
yield oSignedData.propset_Content(sBase64Data);
try {
var sSignedMessage = yield oSignedData.SignCades(oSigner, CADESCOM_CADES_BES, true);
} catch (err) {
alert("Failed to create signature. Error: " + cadesplugin.getLastError(err));
return;
}
yield oStore.Close();
При подписании проходит проверка: Код:
var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
try {
yield oSignedData.propset_ContentEncoding(CADESCOM_BASE64_TO_BINARY);
yield oSignedData.propset_Content(sBase64Data);
yield oSignedData.VerifyCades(sSignedMessage, CADESCOM_CADES_BES, true);
alert("Signature verified");
} catch (err) {
alert("Failed to verify signature. Error: " + cadesplugin.getLastError(err));
return;
}
Верификация проходит успешно. Дальше реализовываю необходимый функционал проверки подписи по нажатию кнопки. Входящие данные - url на файлы подписи (.sig) и подписываемого документа (к примеру, .doc). Снова следующим способом получаю base64 файлов: Код:
fetch(url)
.then(res => res.blob())
.then(blob => {
var oFReader = new FileReader();
oFReader.readAsDataURL(blob);
oFReader.onload = function (oFREvent) {
var header = ";base64,";
var sFileData = oFREvent.target.result;
var sBase64Data = sFileData.substr(sFileData.indexOf(header) + header.length);
И пробую выполнить VerifyCades: Код:
var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
try {
yield oSignedData.propset_ContentEncoding(CADESCOM_BASE64_TO_BINARY);
yield oSignedData.propset_Content(base64File);
oSignedData.VerifyCades(base64Sign, CADESCOM_CADES_BES, true);
} catch (err) {
alert("Failed to verify signature. Error: " + cadesplugin.getLastError(err));
return false;
}
В результате чего получаю ошибку "Криптографическое сообщение не содержит всех запрошенных атрибутов". Подскажите, пожалуйста, в правильном ли направлении вообще я работаю и можно ли получить необходимые мне данные (пример на скриншоте с Госуслуг)?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2046 раз в 1586 постах
|
Здравствуйте.
Да, можно решить задачу через плагин (а почему не сервер?). Ошибка на других файлах или тех же (которые успешно проверяются)?
Примеры файлов... ?
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 17.01.2022(UTC) Сообщений: 5 Откуда: Ростов-на-Дону Сказал(а) «Спасибо»: 2 раз
|
Автор: Андрей * Здравствуйте. а почему не сервер?
Принципиальной разницы нет, но при реализации на сервере возникнет аналогичный вопрос: какими методами можно достать эти данные? Автор: Андрей * Ошибка на других файлах или тех же (которые успешно проверяются)?
Файлы одни и те же. Файл подписи .sig формируется на сервере из полученного в ходе подписания base64. Автор: Андрей * Примеры файлов... ?
test.zip (10kb) загружен 3 раз(а).Отредактировано пользователем 17 января 2022 г. 19:56:25(UTC)
| Причина: Корректировка
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2046 раз в 1586 постах
|
Всё нормально, проверяется, CAdESBES, отсоединенная подпись: Snimok ehkrana ot 2022-01-17 22-36-48.png (53kb) загружен 7 раз(а).через phpcades https://docs.cryptopro.ru/cades/phpcadesкак пример: Snimok ehkrana ot 2022-01-17 22-37-53.png (58kb) загружен 7 раз(а).значит нужно смотреть в код js... |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2046 раз в 1586 постах
|
что в переменных: Цитата:yield oSignedData.propset_Content(base64File); oSignedData.VerifyCades(base64Sign, ? |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 17.01.2022(UTC) Сообщений: 5 Откуда: Ростов-на-Дону Сказал(а) «Спасибо»: 2 раз
|
Автор: Андрей * что в переменных: Цитата:yield oSignedData.propset_Content(base64File); oSignedData.VerifyCades(base64Sign, ? Получаю с сервера .sig и .docx файлы и на фронтенде делаю следующее: Код:
fetch(url)
.then(res => res.blob())
.then(blob => {
var oFReader = new FileReader();
oFReader.readAsDataURL(blob);
oFReader.onload = function (oFREvent) {
var header = ";base64,";
var sFileData = oFREvent.target.result;
var sBase64Data = sFileData.substr(sFileData.indexOf(header) + header.length);
Загоняю sBase64Data соответственно в base64File и base64Sign. Получаю следующее: base64Sign:
MIIFkQYJKoZIhvcNAQcCoIIFgjCCBX4CAQExDjAMBggqhQMHAQECAgUAMAsGCSqGSIb3DQEHAaCCAwQwggMAMIICr6ADAgECAhMSAFyCmnmdRXyhq1bMAAEAXIKaMAgGBiqFAwICAzB/MSMwIQYJKoZIhvcNAQkBFhRzdXBwb3J0QGNyeXB0b3Byby5ydTELMAkGA1UEBhMCUlUxDzANBgNVBAcTBk1vc2NvdzEXMBUGA1UEChMOQ1JZUFRPLVBSTyBMTEMxITAfBgNVBAMTGENSWVBUTy1QUk8gVGVzdCBDZW50ZXIgMjAeFw0yMTEyMjcxMTIyMjdaFw0yMjAzMjcxMTMyMjdaMBsxGTAXBgNVBAMMEFRlc3QgQ2VydGlmaWNhdGUwZjAfBggqhQMHAQEBATATBgcqhQMCAiQABggqhQMHAQECAgNDAARA+7E+vcbXu2afFztB0KyGNmhE5C9V3SfH9y1UFdHVrTEn4S8IzncIfSj99wBggu/1I11f0Ccy5D9NbXgC2jayk6OCAWEwggFdMA4GA1UdDwEB/wQEAwIE8DAdBgNVHQ4EFgQUM62T5tiVXY1HqidIJokpCdC+inYwHwYDVR0jBBgwFoAUToM+FGnv7F16lStfEf43MhZJVSswXAYDVR0fBFUwUzBRoE+gTYZLaHR0cDovL3Rlc3RjYS5jcnlwdG9wcm8ucnUvQ2VydEVucm9sbC9DUllQVE8tUFJPJTIwVGVzdCUyMENlbnRlciUyMDIoMSkuY3JsMIGsBggrBgEFBQcBAQSBnzCBnDBkBggrBgEFBQcwAoZYaHR0cDovL3Rlc3RjYS5jcnlwdG9wcm8ucnUvQ2VydEVucm9sbC90ZXN0LWNhLTIwMTRfQ1JZUFRPLVBSTyUyMFRlc3QlMjBDZW50ZXIlMjAyKDEpLmNydDA0BggrBgEFBQcwAYYoaHR0cDovL3Rlc3RjYS5jcnlwdG9wcm8ucnUvb2NzcC9vY3NwLnNyZjAIBgYqhQMCAgMDQQCPZms2zFsF8eadwXUZFY8XeeAO3TaVGZv35XqGLpcPMBBtScxkMm/u23Y1Nc/Hk43M4xfmuWHrUKV+/XbdeBKOMYICUjCCAk4CAQEwgZYwfzEjMCEGCSqGSIb3DQEJARYUc3VwcG9ydEBjcnlwdG9wcm8ucnUxCzAJBgNVBAYTAlJVMQ8wDQYDVQQHEwZNb3Njb3cxFzAVBgNVBAoTDkNSWVBUTy1QUk8gTExDMSEwHwYDVQQDExhDUllQVE8tUFJPIFRlc3QgQ2VudGVyIDICExIAXIKaeZ1FfKGrVswAAQBcgpowDAYIKoUDBwEBAgIFAKCCAVIwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMjExMjI4MDg0MTM2WjAvBgkqhkiG9w0BCQQxIgQg8yCKP8RKNV20EPrjMV8mTupkzNbeyASh8aa6Sp0+SQQwgeYGCyqGSIb3DQEJEAIvMYHWMIHTMIHQMIHNMAoGCCqFAwcBAQICBCBUEWh+0+atB5cg5HdaqagzPU6T5SiSSBO2T34IlfiBGzCBnDCBhKSBgTB/MSMwIQYJKoZIhvcNAQkBFhRzdXBwb3J0QGNyeXB0b3Byby5ydTELMAkGA1UEBhMCUlUxDzANBgNVBAcTBk1vc2NvdzEXMBUGA1UEChMOQ1JZUFRPLVBSTyBMTEMxITAfBgNVBAMTGENSWVBUTy1QUk8gVGVzdCBDZW50ZXIgMgITEgBcgpp5nUV8oatWzAABAFyCmjAKBggqhQMHAQEBAQRAV6MJJxI3GcyWcljS4CNqtfI4j9Wx082NRwvFda01McYwR0lszNEONE7pnmyiF9vhHbS+VlwJRarnu3K0RWGGcg==
base64File:
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
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2046 раз в 1586 постах
|
т.е. подготовленный в base64 файл, кодируется еще раз и подается в переменную base64File ? Цитата:FReader.onload = function (oFREvent) { var header = ";base64,"; var sBase64Data = sFileData.substr(sFileData.indexOf(header) + header.length); |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2046 раз в 1586 постах
|
аналогичный "вопрос" к двойному base64-кодированию в подписи... |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2046 раз в 1586 постах
|
хотя нет... закодировано же 1 раз, перед передачей в функцию.. |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2046 раз в 1586 постах
|
вот этого почему нет? : yield oSignedData.VerifyCades(base64Sign, CADESCOM_CADES_BES, true);
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close