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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Fridz55  
#1 Оставлено : 23 ноября 2017 г. 18:43:11(UTC)
Fridz55

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 1 раз в 1 постах
Добрый день.
При верификации подписи на стороне сервера с использованием расширения php, как можно извлечь данные подписи, если она не проходит проверку на цепочку сертификатов?

Код:

try {

            $CPSignedData = new \CPSignedData();

            $CPHashedData = new \CPHashedData();

            $CPHashedData->SetHashValue($hash);

            // Верификация
            $CPSignedData->VerifyHash($CPHashedData, $signature, 0x01);
         
            // Подписанты
            $signersObj = $CPSignedData->get_Signers();
            $signerObj = $signersObj->get_Item(1);

            $signerObj->get_SigningTime();
             
            $cert = $signerObj->get_Certificate();

            $issuerName = $cert->get_IssuerName();
            $fromDate = $cert->get_ValidFromDate();
            $toDate = $cert->get_ValidToDate();
            $serialNumber = $cert->get_SerialNumber();
            $subjectName = $cert->get_SubjectName();
           

        }
        catch (\Exception $e)
        {
             
        }
Offline Fridz55  
#2 Оставлено : 23 ноября 2017 г. 19:06:56(UTC)
Fridz55

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 1 раз в 1 постах
Решил, нужно разбить на блока try и не забыть про $CPSignedData->set_Content('d') - установить любое не пустое значение, вероятно ошибку до сих пор не устранили, хотя тема поднималась 8 месяцев назад.

Код:

 try {

            $CPSignedData = new \CPSignedData();

            $CPHashedData = new \CPHashedData();

            $CPHashedData->set_Algorithm(100);
            $CPSignedData->set_Content('d');
            $CPHashedData->SetHashValue($hash);

            $CPSignedData->VerifyHash($CPHashedData, $signature, Cades::$CADES_BES);

        }
        catch (\Exception $e)
        {


        }

        try {


            $signersObj = $CPSignedData->get_Signers();
            $signerObj = $signersObj->get_Item(1);

            $cert = $signerObj->get_Certificate();

        
            $issuerName = $cert->get_IssuerName();
            $fromDate = $cert->get_ValidFromDate();
            $toDate = $cert->get_ValidToDate();
            $serialNumber = $cert->get_SerialNumber();
            $subjectNameFull = $cert->get_SubjectName();
            $subjectName = $subjectNameCert;


        }
        catch (\Exception $e)
        {
             echo $e;
        }
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.