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

Уведомление

Icon
Error

3 Страницы123>
Опции
К последнему сообщению К первому непрочитанному
Offline Slavenin  
#1 Оставлено : 18 июля 2018 г. 13:24:02(UTC)
Slavenin

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

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

Сказал(а) «Спасибо»: 1 раз
Здравствуйте!

Формирую подпись через браузерный плагин для файла.
Скачиваю файл с сервера и отдаю функции подписи:
Код:
$.ajax({
            url: url,
            type: "GET",
            dataType: "binary",
            processData: false,
            success: function (result) {
                var reader = new FileReader();
                reader.addEventListener("loadend", function () {
                    var data = Base64.encode(reader.result);
                    SignCadesBES_Async_File('CertListBox', data, function (sign) {
                        ESP.onSign(sign);
                    }, function (err) {
                        alert(err.message);
                    })
                });
                reader.readAsBinaryString(result);
            }
        });


Код:
function SignCadesBES_Async_File(certListBoxId, dataToSign, onSign, onError) {
    cadesplugin.async_spawn(function* (arg) {
        var e = document.getElementById(arg[ 0 ]);
        var selectedCertID = e.selectedIndex;
        if (selectedCertID == -1) {
            alert("Select certificate");
            return;
        }
        var certificate = global_selectbox_container[ selectedCertID ];
        var Signature;
        try {
            //FillCertInfo_Async(certificate);
            var errormes = "";
            try {
                var oSigner = yield cadesplugin.CreateObjectAsync("CAdESCOM.CPSigner");
            } catch (err) {
                errormes = "Failed to create CAdESCOM.CPSigner: " + err.number;
                throw errormes;
            }
            var oSigningTimeAttr = yield cadesplugin.CreateObjectAsync("CADESCOM.CPAttribute");

            var CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME = 0;
            yield oSigningTimeAttr.propset_Name(CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME);
            var oTimeNow = new Date();
            yield oSigningTimeAttr.propset_Value(oTimeNow);
            var attr = yield oSigner.AuthenticatedAttributes2;
            yield attr.Add(oSigningTimeAttr);


            var oDocumentNameAttr = yield cadesplugin.CreateObjectAsync("CADESCOM.CPAttribute");
            var CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME = 1;
            yield oDocumentNameAttr.propset_Name(CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME);
            yield oDocumentNameAttr.propset_Value("Document Name");
            yield attr.Add(oDocumentNameAttr);

            if (oSigner) {
                yield oSigner.propset_Certificate(certificate);
            }
            else {
                errormes = "Failed to create CAdESCOM.CPSigner";
                throw errormes;
            }

            var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
            var CADES_BES = 1;

            if (dataToSign) {
                // Данные на подпись ввели
                yield oSignedData.propset_ContentEncoding(1); //CADESCOM_BASE64_TO_BINARY
                yield oSignedData.propset_Content(dataToSign);
                yield oSigner.propset_Options(1); //CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN
                try {
                    // var StartTime = Date.now();
                    Signature = yield oSignedData.SignCades(oSigner, CADES_BES, true);
                    // var EndTime = Date.now();
                    // document.getElementsByName('TimeTitle')[ 0 ].innerHTML = "Время выполнения: " + (EndTime - StartTime) + " мс";
                }
                catch (err) {
                    errormes = "Не удалось создать подпись из-за ошибки: " + cadesplugin.getLastError(err);
                    throw errormes;
                }
            }
            onSign(Signature);
            // document.getElementById("SignatureTxtBox").innerHTML = Signature;
        }
        catch (err) {
            onError(err)
            // document.getElementById("SignatureTxtBox").innerHTML = err;
        }
    }, certListBoxId); //cadesplugin.async_spawn
}


Далее сформированную подпись отправляю на сервер и пытаюсь проверить:

Код:
public function verify($sgn, $data)
    {
        $data = base64_encode($data);

        try
        {
            $sd = new \CPSignedData();

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

            $check = $sd->VerifyCades($sgn, CADES_BES, 1); // 1 - отсоединенная

            dump($check);
        }
        catch(Exception $e)
        {
            dump('Exception: ' . $e->getMessage() . "\n");
        }
    }

В $sgn непосредственно подпись из браузера.
в итоге вываливается Invalid Signature. (0x80090006)
Пробовал через командную строку:
Код:
/opt/cprocsp/bin/amd64/cryptcp -nochain -vsignf -mroot 30f2126fd7182ce48d75779d6396d708.pdf -f 30f2126fd7182ce48d75779d6396d708.pdf.sgn 
CryptCP 4.0 (c) "Crypto-Pro", 2002-2017.
Command prompt Utility for file signature and encryption.

Certificates found: 3
Folder './':
30f2126fd7182ce48d75779d6396d708.pdf... Signature verifying...     
    
Signer: RU, tests, etst, test, test, Максим, m****@g***.com
Error: ������������ �������./dailybuildsbranches/CSP_4_0/CSPbuild/CSP/samples/CPCrypt/DSign.cpp:743: 0x80090006
Error: Signature.
/dailybuildsbranches/CSP_4_0/CSPbuild/CSP/samples/CPCrypt/DSign.cpp:851: 0x200001F9
[ErrorCode: 0x200001f9]

Консоль у меня в юникоде, что именно написано в ошибке мне не известно, найти этот файл я не смог...

Повысил уровень лога. В /var/log/messages
Цитата:
cpcsp[27941]: capi20: CryptMsgControl () Exception :'������ 0x80090006: ������������ �������.' at file:'/dailybuildsbranches/CSP_4_0/CSPbuild/CSP/capilite/CMSSignedMessage.cpp' line:884


Что не так? В какой кодировке выводятся ошибки? Хоть текст увидеть...

Код:
uname -a
Linux dev.**** 3.10.0-514.10.2.el7.x86_64 #1 SMP Mon Feb 20 02:37:52 EST 2017 x86_64 x86_64 x86_64 GNU/Linux
->| cat /etc/os-release
NAME="Red Hat Enterprise Linux Server"
VERSION="7.3 (Maipo)"
ID="rhel"
ID_LIKE="fedora"
VERSION_ID="7.3"
PRETTY_NAME="Red Hat Enterprise Linux Server 7.3 (Maipo)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:7.3:GA:server"
HOME_URL="https://www.redhat.com/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"

REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 7"
REDHAT_BUGZILLA_PRODUCT_VERSION=7.3
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="7.3"

Отредактировано пользователем 18 июля 2018 г. 13:27:24(UTC)  | Причина: Не указана

Offline Slavenin  
#2 Оставлено : 20 июля 2018 г. 16:47:03(UTC)
Slavenin

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

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

Сказал(а) «Спасибо»: 1 раз
есть кто живой?
Offline Slavenin  
#3 Оставлено : 20 июля 2018 г. 17:02:06(UTC)
Slavenin

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

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

Сказал(а) «Спасибо»: 1 раз
я как-то вообще не понимаю что происходит... я взял Hello World и положил его в файлик test.txt, взял подпись с вашей тестовой страницы https://www.cryptopro.ru...des/demopage/simple.html расшифровал и записал в соседний файлик test.txt.sgn запускаю
Код:
/opt/cprocsp/bin/amd64/cryptcp -nochain -verify -mroot test.txt -f test.txt.sgn

и в ответ
Код:
->| /opt/cprocsp/bin/amd64/cryptcp -nochain -verify -mroot test.txt -f test.txt.sgn
CryptCP 4.0 (c) "Crypto-Pro", 2002-2017.
Command prompt Utility for file signature and encryption.

Certificates found: 5
Folder './':
test.txt... Signature verifying...     
Error: ������������ ��� ������������������ ���������./dailybuildsbranches/CSP_4_0/CSPbuild/CSP/samples/CPCrypt/DSign.cpp:1898: 0x80091004
[ErrorCode: 0x80091004]


Как так то???
Offline Slavenin  
#4 Оставлено : 20 июля 2018 г. 17:16:35(UTC)
Slavenin

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

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

Сказал(а) «Спасибо»: 1 раз
при запуске без ключа -f выдаёт
Код:
->| /opt/cprocsp/bin/amd64/cryptcp -nochain -vsignf -mroot test.txt
CryptCP 4.0 (c) "Crypto-Pro", 2002-2017.
Command prompt Utility for file signature and encryption.

Certificates found: 3
Folder './':
test.txt... Signature verifying...     
    
Signer: RU, tests, etst, test, test, Максим, mb****om
Skipping the signature due to signer certificate is not in certificate criterion.
Error: Signature.
/dailybuildsbranches/CSP_4_0/CSPbuild/CSP/samples/CPCrypt/DSign.cpp:851: 0x200001F9
[ErrorCode: 0x200001f9]
Offline bulkak  
#5 Оставлено : 23 июля 2018 г. 13:47:54(UTC)
bulkak

Статус: Новичок

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

Присоединяюсь к проблеме. Сервер CentOs 7, php 7.1.10.
при попытке проверить подпись из php в логах вот такое:
Код:

Jul 23 15:53:51 crypto cpcsp[20687]: cades: 0x7feced8f3880: :2949 CadesVerifyDetachedMessage (pVerifyPara=0x0x7fff19852ea0, dwSignerIndex=0, pbDetachedSignBlob=0x0x55672e1595f0, cbDetachedSignBlob=2044, cToBeSigned=1, rgpbToBeSigned=0x0x7fff19852e58, rgcbToBeSigned=0x0x7fff19852e64, ppVerifi
Jul 23 15:53:51 crypto cpcsp[20687]: cades: 0x7feced8f3880: :1802 CadesMsgVerifySignatureImpl Input parameters checked
Jul 23 15:53:51 crypto cpcsp[20687]: cades: 0x7feced8f3880: :2949 CadesVerifyDetachedMessage (pVerifyPara=0x0x7fff19852ea0, dwSignerIndex=0, pbDetachedSignBlob=0x0x55672e1595f0, cbDetachedSignBlob=2044, cToBeSigned=1, rgpbToBeSigned=0x0x7fff19852e58, rgcbToBeSigned=0x0x7fff19852e64, ppVerifi
Jul 23 15:53:51 crypto cpcsp[20687]: cades: 0x7feced8f3880: :1802 CadesMsgVerifySignatureImpl Input parameters checked
Jul 23 15:53:51 crypto cpcsp[20687]: cades: 0x7feced8f3880: :1699 VerifyMessageSignature Signature verification started
Jul 23 15:53:51 crypto cpcsp[20687]: cades: 0x7feced8f3880: :1708 VerifyMessageSignature Exception thrown: _hr
Jul 23 15:53:51 crypto cpcsp[20687]: cades: 0x7feced8f3880: :2959 CadesVerifyDetachedMessage CAtlException, m_hr=0x80090006
Jul 23 15:53:51 crypto cpcsp[20687]: cades: 0x7feced8f3880: :2978 CadesVerifyDetachedMessage (res=0, GetLastError=0x80090006
Jul 23 15:53:51 crypto cpcsp[20687]: cades: 0x7feced8f3880: :1699 VerifyMessageSignature Signature verification started
Jul 23 15:53:51 crypto cpcsp[20687]: cades: 0x7feced8f3880: :1708 VerifyMessageSignature Exception thrown: _hr
Jul 23 15:53:51 crypto cpcsp[20687]: cades: 0x7feced8f3880: :2959 CadesVerifyDetachedMessage CAtlException, m_hr=0x80090006
Jul 23 15:53:51 crypto cpcsp[20687]: cades: 0x7feced8f3880: :2995 CadesFreeVerificationInfo (pVerificationInfo=0x0x55672e16f0a0)
Jul 23 15:53:51 crypto cpcsp[20687]: cades: 0x7feced8f3880: :3022 CadesFreeVerificationInfo (res=1, GetLastError=0x80090006
Jul 23 15:53:51 crypto cpcsp[20687]: cades: 0x7feced8f3880: :2978 CadesVerifyDetachedMessage (res=0, GetLastError=0x80090006
Jul 23 15:53:51 crypto cpcsp[20687]: cades: 0x7feced8f3880: :2995 CadesFreeVerificationInfo (pVerificationInfo=0x0x55672e16f0a0)
Jul 23 15:53:51 crypto cpcsp[20687]: cades: 0x7feced8f3880: :3022 CadesFreeVerificationInfo (res=1, GetLastError=0x80090006


код проверки на php:
Код:

$sgn = file_get_contents('/tmp/testSigned');
try
{
        $sd = new \CPSignedData();

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

        printf('OK');
}
catch(Exception $e)
{
        printf('Exception: ' . $e->getMessage() . "\n" . $e->getTraceAsString() . "\n");
        printf("FAIL\n");
}



результат:

Код:

Exception: Invalid Signature. (0x80090006)


тоже коротко о системе:
Код:

[root@crypto]# uname -a
Linux crypto.**** 3.10.0-862.9.1.el7.x86_64 #1 SMP Mon Jul 16 16:29:36 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@crypto Service]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

установленные пакеты:
Код:

[root@crypto]# rpm -qa | grep 'csp'
lsb-cprocsp-capilite-64-4.0.9944-5.x86_64
cprocsp-pki-plugin-2.0.0-1.x86_64
lsb-cprocsp-base-4.0.9944-5.noarch
lsb-cprocsp-ca-certs-4.0.9944-5.noarch
cprocsp-pki-phpcades-2.0.0-1.x86_64
lsb-cprocsp-rdr-64-4.0.9944-5.x86_64
cprocsp-curl-64-4.0.9944-5.x86_64
lsb-cprocsp-devel-4.0.9921-5.noarch
lsb-cprocsp-kc1-64-4.0.9944-5.x86_64
cprocsp-pki-cades-2.0.0-1.x86_64


при проверке подписанных данных через командную строку:
Код:

[root@crypto CryptoProStub]# /opt/cprocsp/bin/amd64/cryptcp -nochain -verify -mroot /home/developer/testSigned -f /home/developer/testSigned
CryptCP 4.0 (c) "Crypto-Pro", 2002-2017.
Command prompt Utility for file signature and encryption.

Certificates found: 4
Folder '/home/developer/':
/home/developer/testSigned... Signature verifying...     
Signer: Den&ska
 Signature's verified.
[ReturnCode: 0]

Отредактировано пользователем 24 июля 2018 г. 13:13:19(UTC)  | Причина: добавил код проверки на php

Offline cross  
#6 Оставлено : 23 июля 2018 г. 18:48:37(UTC)
Анатолий Беляев

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

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 965
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
Автор: Slavenin Перейти к цитате
я как-то вообще не понимаю что происходит... я взял Hello World и положил его в файлик test.txt, взял подпись с вашей тестовой страницы https://www.cryptopro.ru...des/demopage/simple.html расшифровал и записал в соседний файлик test.txt.sgn запускаю
Код:
/opt/cprocsp/bin/amd64/cryptcp -nochain -verify -mroot test.txt -f test.txt.sgn

и в ответ
Код:
->| /opt/cprocsp/bin/amd64/cryptcp -nochain -verify -mroot test.txt -f test.txt.sgn
CryptCP 4.0 (c) "Crypto-Pro", 2002-2017.
Command prompt Utility for file signature and encryption.

Certificates found: 5
Folder './':
test.txt... Signature verifying...     
Error: ������������ ��� ������������������ ���������./dailybuildsbranches/CSP_4_0/CSPbuild/CSP/samples/CPCrypt/DSign.cpp:1898: 0x80091004
[ErrorCode: 0x80091004]


Как так то???

Вы используете команду для проверки присоединенной подписи подсовывая вместо подписи файл test.txt. В первых сообщениях вы использовали правильную команду -vsignf, тут почему то решили другую. Так же обращаю ваше внимание на то что при вставке "Hellow World" в файл часто вставляют перевод строки.
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
Offline cross  
#7 Оставлено : 23 июля 2018 г. 18:51:20(UTC)
Анатолий Беляев

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

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 965
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
Автор: bulkak Перейти к цитате
Присоединяюсь к проблеме. Сервер CentOs 7, php 7.1.10.
при попытке проверить подпись из php в логах вот такое:
Код:

Jul 23 15:53:51 crypto cpcsp[20687]: cades: 0x7feced8f3880: :2949 CadesVerifyDetachedMessage (pVerifyPara=0x0x7fff19852ea0, dwSignerIndex=0, pbDetachedSignBlob=0x0x55672e1595f0, cbDetachedSignBlob=2044, cToBeSigned=1, rgpbToBeSigned=0x0x7fff19852e58, rgcbToBeSigned=0x0x7fff19852e64, ppVerifi
Jul 23 15:53:51 crypto cpcsp[20687]: cades: 0x7feced8f3880: :1802 CadesMsgVerifySignatureImpl Input parameters checked
Jul 23 15:53:51 crypto cpcsp[20687]: cades: 0x7feced8f3880: :2949 CadesVerifyDetachedMessage (pVerifyPara=0x0x7fff19852ea0, dwSignerIndex=0, pbDetachedSignBlob=0x0x55672e1595f0, cbDetachedSignBlob=2044, cToBeSigned=1, rgpbToBeSigned=0x0x7fff19852e58, rgcbToBeSigned=0x0x7fff19852e64, ppVerifi
Jul 23 15:53:51 crypto cpcsp[20687]: cades: 0x7feced8f3880: :1802 CadesMsgVerifySignatureImpl Input parameters checked
Jul 23 15:53:51 crypto cpcsp[20687]: cades: 0x7feced8f3880: :1699 VerifyMessageSignature Signature verification started
Jul 23 15:53:51 crypto cpcsp[20687]: cades: 0x7feced8f3880: :1708 VerifyMessageSignature Exception thrown: _hr
Jul 23 15:53:51 crypto cpcsp[20687]: cades: 0x7feced8f3880: :2959 CadesVerifyDetachedMessage CAtlException, m_hr=0x80090006
Jul 23 15:53:51 crypto cpcsp[20687]: cades: 0x7feced8f3880: :2978 CadesVerifyDetachedMessage (res=0, GetLastError=0x80090006
Jul 23 15:53:51 crypto cpcsp[20687]: cades: 0x7feced8f3880: :1699 VerifyMessageSignature Signature verification started
Jul 23 15:53:51 crypto cpcsp[20687]: cades: 0x7feced8f3880: :1708 VerifyMessageSignature Exception thrown: _hr
Jul 23 15:53:51 crypto cpcsp[20687]: cades: 0x7feced8f3880: :2959 CadesVerifyDetachedMessage CAtlException, m_hr=0x80090006
Jul 23 15:53:51 crypto cpcsp[20687]: cades: 0x7feced8f3880: :2995 CadesFreeVerificationInfo (pVerificationInfo=0x0x55672e16f0a0)
Jul 23 15:53:51 crypto cpcsp[20687]: cades: 0x7feced8f3880: :3022 CadesFreeVerificationInfo (res=1, GetLastError=0x80090006
Jul 23 15:53:51 crypto cpcsp[20687]: cades: 0x7feced8f3880: :2978 CadesVerifyDetachedMessage (res=0, GetLastError=0x80090006
Jul 23 15:53:51 crypto cpcsp[20687]: cades: 0x7feced8f3880: :2995 CadesFreeVerificationInfo (pVerificationInfo=0x0x55672e16f0a0)
Jul 23 15:53:51 crypto cpcsp[20687]: cades: 0x7feced8f3880: :3022 CadesFreeVerificationInfo (res=1, GetLastError=0x80090006


код проверки на php:
Код:

$sgn = file_get_contents('/tmp/testSigned');
try
{
        $sd = new \CPSignedData();

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

        printf('OK');
}
catch(Exception $e)
{
        printf('Exception: ' . $e->getMessage() . "\n" . $e->getTraceAsString() . "\n");
        printf("FAIL\n");
}



результат:

Код:

Exception: Invalid Signature. (0x80090006)


тоже коротко о системе:
Код:

[root@crypto]# uname -a
Linux crypto.**** 3.10.0-862.9.1.el7.x86_64 #1 SMP Mon Jul 16 16:29:36 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@crypto Service]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

установленные пакеты:
Код:

[root@crypto]# rpm -qa | grep 'csp'
lsb-cprocsp-capilite-64-4.0.9944-5.x86_64
lsb-cprocsp-base-4.0.9944-5.noarch
lsb-cprocsp-ca-certs-4.0.9944-5.noarch
lsb-cprocsp-rdr-64-4.0.9944-5.x86_64
cprocsp-curl-64-4.0.9944-5.x86_64
lsb-cprocsp-kc1-64-4.0.9944-5.x86_64


при проверке подписанных данных через командную строку:
Код:

[root@crypto CryptoProStub]# /opt/cprocsp/bin/amd64/cryptcp -nochain -verify -mroot /home/developer/testSigned -f /home/developer/testSigned
CryptCP 4.0 (c) "Crypto-Pro", 2002-2017.
Command prompt Utility for file signature and encryption.

Certificates found: 4
Folder '/home/developer/':
/home/developer/testSigned... Signature verifying...     
Signer: Den&ska
 Signature's verified.
[ReturnCode: 0]


Вы путаете параметры в функции Veirify в php коде. См https://docs.microsoft.c...Crypto/signeddata-verify
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
Offline Slavenin  
#8 Оставлено : 24 июля 2018 г. 9:51:37(UTC)
Slavenin

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

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

Сказал(а) «Спасибо»: 1 раз
Автор: cross Перейти к цитате
Автор: Slavenin Перейти к цитате
я как-то вообще не понимаю что происходит... я взял Hello World и положил его в файлик test.txt, взял подпись с вашей тестовой страницы https://www.cryptopro.ru...des/demopage/simple.html расшифровал и записал в соседний файлик test.txt.sgn запускаю
Код:
/opt/cprocsp/bin/amd64/cryptcp -nochain -verify -mroot test.txt -f test.txt.sgn

и в ответ
Код:
->| /opt/cprocsp/bin/amd64/cryptcp -nochain -verify -mroot test.txt -f test.txt.sgn
CryptCP 4.0 (c) "Crypto-Pro", 2002-2017.
Command prompt Utility for file signature and encryption.

Certificates found: 5
Folder './':
test.txt... Signature verifying...     
Error: ������������ ��� ������������������ ���������./dailybuildsbranches/CSP_4_0/CSPbuild/CSP/samples/CPCrypt/DSign.cpp:1898: 0x80091004
[ErrorCode: 0x80091004]


Как так то???

Вы используете команду для проверки присоединенной подписи подсовывая вместо подписи файл test.txt. В первых сообщениях вы использовали правильную команду -vsignf, тут почему то решили другую. Так же обращаю ваше внимание на то что при вставке "Hellow World" в файл часто вставляют перевод строки.


Да я как уже не пробовал...

Специально перепроверил ещё раз:
Код:
echo "Hello World" > test.txt

Взял подпись с сайта записал в файлик и раскодировал
Код:
php -r "file_put_contents('test.txt.sgn', base64_decode(file_get_contents('test.txt.sgn')));"

Проверяю:
Код:
/opt/cprocsp/bin/amd64/cryptcp -nochain -vsignf -mroot test.txt -f test.txt.sgn
CryptCP 4.0 (c) "Crypto-Pro", 2002-2017.
Command prompt Utility for file signature and encryption.

Certificates found: 4
Folder './':
test.txt... Signature verifying...       0%    
  0%    
Signer: RU, tests, etst, test, test, Максим, mb****om
Error: Неправильная подпись./dailybuildsbranches/CSP_4_0/CSPbuild/CSP/samples/CPCrypt/DSign.cpp:743: 0x80090006
Error: Signature.
/dailybuildsbranches/CSP_4_0/CSPbuild/CSP/samples/CPCrypt/DSign.cpp:851: 0x200001F9
[ErrorCode: 0x200001f9]


По поводу аргументов в php
Вот определение функции:
Код:
SignedData.Verify( _
  ByVal SignedMessage, _
  [ ByVal bDetached ], _
  [ ByVal VerifyFlag ] _
)

Вот вызов:
Код:
$check = $sd->Verify($sgn, CADES_BES,1);

Где перепутаны аргументы?

Отредактировано пользователем 24 июля 2018 г. 9:54:04(UTC)  | Причина: Не указана

Offline Slavenin  
#9 Оставлено : 24 июля 2018 г. 11:30:03(UTC)
Slavenin

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

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

Сказал(а) «Спасибо»: 1 раз
Попробовал так:
Код:
$check = $sd->VerifyCades($sgn, 1); // 1 - отсоединенная

Ничего нового:
Код:
Exception {#1235 ▼
  #message: "Invalid Signature. (0x80090006)"
  #code: -2146893818
Offline bulkak  
#10 Оставлено : 24 июля 2018 г. 11:46:34(UTC)
bulkak

Статус: Новичок

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

Автор: cross Перейти к цитате

Вы путаете параметры в функции Veirify в php коде. См https://docs.microsoft.c...Crypto/signeddata-verify

Код:

$sd = new \CPSignedData();
$check = $sd->Verify($sgn,1, VERIFY_SIGNATURE_AND_CERTIFICATE);


Код:

Exception: Invalid Signature. (0x80090006)


случайно засунул в пример параметры из VerifyCades. Результат один для Verify и VerifyCades с верным набором параметров(
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
3 Страницы123>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.