Статус: Новичок
Группы: Участники
Зарегистрирован: 05.06.2024(UTC) Сообщений: 5  Сказал(а) «Спасибо»: 2 раз
|
Здравствуйте! Описание: 1. Подписываю файл crypto.zip в crypto.zip.sig (см. ниже) с присоединенной подписью через скрипт 2. Выполняю проверку подписи в КрипртоПро CSP 5.0.13000 и сохраняю исходный файл после проверки 3. Далее файл после проверки пытаюсь распаковать и тут Ошибка. Файл crypto.zip не распаковывается. Вопрос: Что нужно добавить в скрипт, чтобы архивы zip корректно подписывались с присоединенной подписью? Если взамен crypto.zip поставить простой файл (file.txt), то все работает корректно. Цитата:
$store = new \CPStore(); $store->Open(CURRENT_USER_STORE, 'My', STORE_OPEN_READ_ONLY); $certs = $store->get_Certificates(); $cert = $certs->Item(1);
$signer = new \CPSigner(); $signer->set_Certificate($cert); $signer->set_KeyPin('1234');
$signedData = new \CPSignedData(); $data = file_get_contents('crypto.zip'); $signedData->set_Content($data);
$signature = $signedData->SignCades($signer, CADES_BES, false, ENCODE_BASE64); file_put_contents('crypto.zip.sig', $signature);
 crypto.zip (1kb) загружен 2 раз(а). crypto.zip.sig (2kb) загружен 2 раз(а).Отредактировано пользователем 21 февраля 2025 г. 15:27:50(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,899   Сказал «Спасибо»: 594 раз Поблагодарили: 2327 раз в 1825 постах
|
Здравствуйте.
Приложите исходный и подписанный файл.
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 05.06.2024(UTC) Сообщений: 5  Сказал(а) «Спасибо»: 2 раз
|
Приложил файл crypto.zip - исходный файл
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,899   Сказал «Спасибо»: 594 раз Поблагодарили: 2327 раз в 1825 постах
|
было подписано 12 байт, они и извлекаются.  Snimok ehkrana ot 2025-02-21 16-20-38.png (41kb) загружен 4 раз(а).50 00 4B 00 03 00 04 00 14 00 03 00 но если смотреть исходный файл:  Snimok ehkrana ot 2025-02-21 16-24-25.png (25kb) загружен 3 раз(а).далее для информации Особенности представления данныхрешение: указать что данные на входе в base64 перед ->set_Content($data); и передавать base64 данные в $data перед подписанием. |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,899   Сказал «Спасибо»: 594 раз Поблагодарили: 2327 раз в 1825 постах
|
$file = base64_encode(file_get_contents('путь к файлу')); $signedData->set_ContentEncoding($CADESCOM_BASE64_TO_BINARY); $signedData->set_Content($file); |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 05.06.2024(UTC) Сообщений: 5  Сказал(а) «Спасибо»: 2 раз
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close