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

Уведомление

Icon
Error

3 Страницы<123>
Опции
К последнему сообщению К первому непрочитанному
Offline Андрей Писарев  
#11 Оставлено : 20 августа 2018 г. 20:37:15(UTC)
Андрей *

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

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

Сказал «Спасибо»: 494 раз
Поблагодарили: 2035 раз в 1579 постах
Автор: Ragnarek Перейти к цитате
видоизменил слегка код, уже более внятная ошибка
Код:
   $sd = new \CPSignedData();
   $sd->set_Content($base64);
   $check = $sd->Verify($sgn, 1, VERIFY_SIGNATURE_ONLY ); // 1 - отсоединенная

Получаю в ответ - 'Invalid Signature. (0x80090006)'


По получению сертификата предварительно разобрался, но на деле еще не дошел, потому что дальше проверки продвинуться не могу



установка ContentEncoding не используется?

Пример подписи и проверки на js
Техническую поддержку оказываем тут
Наша база знаний
Offline Ragnarek  
#12 Оставлено : 22 августа 2018 г. 8:14:57(UTC)
Ragnarek

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

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

Поблагодарили: 2 раз в 1 постах
Автор: Андрей Писарев Перейти к цитате

установка ContentEncoding не используется?

Пробовал как с установкой кодировки, так и без
$sd->set_ContentEncoding(BASE64_TO_BINARY);
Вот прям в одной папке делаю
Код:

root@thisisit:~# /opt/cprocsp/bin/amd64/cryptcp -verify c68a9bb1622149ca47913e38a86dd19c.png  -f signature.sgn  --detached
CryptCP 4.0 (c) "Crypto-Pro", 2002-2017.
Command prompt Utility for file signature and encryption.

The following certificate will be used:
RDN:*****
Valid from 05.04.2018 10:00:03 to 20.04.2019 10:10:03

Certificate chains are checked.
Folder './':
c68a9bb1622149ca47913e38a86dd19c.png... Signature verifying...     
    
Signer: *****
 Signature's verified.
[ErrorCode: 0x00000000]


Код:
<?php

$data = base64_encode(file_get_contents('c68a9bb1622149ca47913e38a86dd19c.png'));
$sgn = file_get_contents('signature.sgn');
try
{
        $sd = new \CPSignedData();

        $sd->set_Content($data);
        $sd->set_ContentEncoding(BASE64_TO_BINARY);

        $check = $sd->Verify($sgn,1, 0);

        printf('OK');
}
catch(Exception $e)
{
echo $e;
}
?>

Код:

root@thisisit:~# php7.1 test.php 
Exception: Invalid Signature. (0x80090006) in /root/test.php:12
Stack trace:
#0 /root/test.php(12): CPSignedData->Verify('MIIOnAYJKoZIhvc...', 1, 0)




Offline Андрей Писарев  
#13 Оставлено : 22 августа 2018 г. 8:26:21(UTC)
Андрей *

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

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

Сказал «Спасибо»: 494 раз
Поблагодарили: 2035 раз в 1579 постах
set_ContentEncoding - нужно вызывать до set_Content.

BASE64_TO_BINARY = 1 ?


Цитата:

// Значение свойства ContentEncoding должно быть задано
// до заполнения свойства Content
oSignedData.ContentEncoding = CADESCOM_BASE64_TO_BINARY;
oSignedData.Content = dataToSign;
Техническую поддержку оказываем тут
Наша база знаний
Offline Ragnarek  
#14 Оставлено : 22 августа 2018 г. 8:47:48(UTC)
Ragnarek

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

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

Поблагодарили: 2 раз в 1 постах
Автор: Андрей Писарев Перейти к цитате
set_ContentEncoding - нужно вызывать до set_Content.

BASE64_TO_BINARY = 1 ?


Цитата:

// Значение свойства ContentEncoding должно быть задано
// до заполнения свойства Content
oSignedData.ContentEncoding = CADESCOM_BASE64_TO_BINARY;
oSignedData.Content = dataToSign;



BASE64_TO_BINARY = 1
Если поместить set_ContentEncoding перед set_Content, то получую ошибку вообще другую
Код:

root@thisisit:~# php7.1 test.php 
Exception: Internal error. (0x80070490) in /root/test.php:11
Stack trace:
#0 /root/test.php(11): CPSignedData->Verify('MIIOnAYJKoZIhvc...', 1, 0)

Offline Андрей Писарев  
#15 Оставлено : 22 августа 2018 г. 11:30:15(UTC)
Андрей *

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

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

Сказал «Спасибо»: 494 раз
Поблагодарили: 2035 раз в 1579 постах
Цитата:
$sd->Verify($sgn, true, VERIFY_SIGNATURE_AND_CERTIFICATE);


В $sgn (или в Verify) поместите декодированные данные из base64 - такая же ошибка?
Техническую поддержку оказываем тут
Наша база знаний
Offline Ragnarek  
#16 Оставлено : 22 августа 2018 г. 12:37:16(UTC)
Ragnarek

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

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

Поблагодарили: 2 раз в 1 постах
Автор: Андрей Писарев Перейти к цитате
Цитата:
$sd->Verify($sgn, true, VERIFY_SIGNATURE_AND_CERTIFICATE);


В $sgn (или в Verify) поместите декодированные данные из base64 - такая же ошибка?


Код:
$sd = new \CPSignedData();
$sd->set_ContentEncoding(BASE64_TO_BINARY);
$sd->set_Content($data);
$sgn = base64_decode($sgn);
$check = $sd->Verify($sgn, true, VERIFY_SIGNATURE_AND_CERTIFICATE);

Такая же. Сейчас попробую библиотеку для 5.6 сбилдить.

Не, такая же ошибка, видимо дело не в версии php

Отредактировано пользователем 22 августа 2018 г. 14:00:24(UTC)  | Причина: Не указана

Offline Ragnarek  
#17 Оставлено : 1 сентября 2018 г. 7:29:48(UTC)
Ragnarek

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

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

Поблагодарили: 2 раз в 1 постах
есть идеи, предложения?
Offline Андрей Писарев  
#18 Оставлено : 1 сентября 2018 г. 14:28:50(UTC)
Андрей *

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

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

Сказал «Спасибо»: 494 раз
Поблагодарили: 2035 раз в 1579 постах
Автор: Ragnarek Перейти к цитате
есть идеи, предложения?


В ЛС ссылку пришлите, чтобы скачать архив с файлами.

Техническую поддержку оказываем тут
Наша база знаний
Offline Ragnarek  
#19 Оставлено : 4 сентября 2018 г. 9:40:12(UTC)
Ragnarek

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

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

Поблагодарили: 2 раз в 1 постах
Автор: Андрей Писарев Перейти к цитате
Автор: Ragnarek Перейти к цитате
есть идеи, предложения?


В ЛС ссылку пришлите, чтобы скачать архив с файлами.



отправил
Offline Андрей Писарев  
#20 Оставлено : 5 сентября 2018 г. 13:20:33(UTC)
Андрей *

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

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

Сказал «Спасибо»: 494 раз
Поблагодарили: 2035 раз в 1579 постах
Проверить работу:
/opt/cprocsp/src/phpcades/test_extension.php


Цитата:
$cert = SetupCertificate(CURRENT_USER_STORE, "My", STORE_OPEN_READ_ONLY,
CERTIFICATE_FIND_SUBJECT_NAME, "test", 0,
1);


Изменить на своё значение или сгенерировать для тестов такой сертификат (test)


Далее проверить в php:
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
3 Страницы<123>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.