Статус: Участник
Группы: Участники
Зарегистрирован: 10.11.2020(UTC) Сообщений: 14  Поблагодарили: 1 раз в 1 постах
|
Автор: Александр Лавник  Автор: lcodemakerl  На ubuntu 18 собралось, на ubuntu 20 ни в какую :( Здравствуйте. См. тему. Благодарю, все собралось. Установили тестовый сертификат sudo -u web /opt/cprocsp/bin/amd64/cryptcp -creatcert -dn "CN=test" -cont '\\.\HDIMAGE\testcont' sudo -u web /opt/cprocsp/bin/amd64/csptest -absorb -certs -autoprov при запуске тестового скрипта подпись создается, а при проверке "Ошибка сегментирования" Код:
sudo -u web php -f /opt/cprocsp/src/phpcades/test_extension.php
Crypto-Pro GOST R 34.10-2012 KC1 CSP requests container password
Type password:
Signature is:
MIIH5AYJKoZIhvcNAQcCoIIH1TCCB9ECAQExDDAKBggqhQMHAQECAjAbBgkqhkiG9w0BBwGgDgQM
dGVzdCBjb250ZW50oIIEKDCCBCQwggPRoAMCAQICE3wAAe2KC1YCGE+4gPcAAQAB7YowCgYIKoUD
BwEBAwIwggEKMRgwFgYFKoUDZAESDTEyMzQ1Njc4OTAxMjMxGjAYBggqhQMDgQMBARIMMDAxMjM0
NTY3ODkwMS8wLQYDVQQJDCbRg9C7LiDQodGD0YnRkdCy0YHQutC40Lkg0LLQsNC7INC0LiAxODEL
MAkGA1UEBhMCUlUxGTAXBgNVBAgMENCzLiDQnNC+0YHQutCy0LAxFTATBgNVBAcMDNCc0L7RgdC6
0LLQsDElMCMGA1UECgwc0J7QntCeICLQmtCg0JjQn9Ci0J4t0J/QoNCeIjE7MDkGA1UEAwwy0KLQ
tdGB0YLQvtCy0YvQuSDQo9CmINCe0J7QniAi0JrQoNCY0J/QotCeLdCf0KDQniIwHhcNMjEwMTE4
MDkwNjUxWhcNMjEwNDE4MDkxNjUxWjAPMQ0wCwYDVQQDDAR0ZXN0MGYwHwYIKoUDBwEBAQEwEwYH
KoUDAgIkAAYIKoUDBwEBAgIDQwAEQNFPvLW1oHYHJhP/eKuxHVtyioUyRc1EC1kVl2R9Rr34kOHu
1PMbG1XwLD/rVkMO4KZbSTSTM2gmPyTvg4wic5CjggIAMIIB/DAOBgNVHQ8BAf8EBAMCBPAwHQYD
VR0OBBYEFCWO8b1A6CKJXAPZiFZu16cOZ5M0MB8GA1UdIwQYMBaAFJuFXvuB3E1ZB1Fjz77f2ix/
yUQ8MIHMBgNVHR8EgcQwgcEwgb6ggbuggbiGgbVodHRwOi8vdGVzdGdvc3QyMDEyLmNyeXB0b3By
by5ydS9DZXJ0RW5yb2xsLyEwNDIyITA0MzUhMDQ0MSEwNDQyITA0M2UhMDQzMiEwNDRiITA0Mzkl
MjAhMDQyMyEwNDI2JTIwITA0MWUhMDQxZSEwNDFlJTIwITAwMjIhMDQxYSEwNDIwITA0MTghMDQx
ZiEwNDIyITA0MWUtITA0MWYhMDQyMCEwNDFlITAwMjIoMSkuY3JsMIHaBggrBgEFBQcBAQSBzTCB
yjBEBggrBgEFBQcwAoY4aHR0cDovL3Rlc3Rnb3N0MjAxMi5jcnlwdG9wcm8ucnUvQ2VydEVucm9s
bC9yb290MjAxOC5jcnQwPwYIKwYBBQUHMAGGM2h0dHA6Ly90ZXN0Z29zdDIwMTIuY3J5cHRvcHJv
LnJ1L29jc3AyMDEyZy9vY3NwLnNyZjBBBggrBgEFBQcwAYY1aHR0cDovL3Rlc3Rnb3N0MjAxMi5j
cnlwdG9wcm8ucnUvb2NzcDIwMTJnc3Qvb2NzcC5zcmYwCgYIKoUDBwEBAwIDQQCemGfH5FvG6Sts
ZQWeSdIzmSOZtxqEB5E2PFzrObvg3Flvyx7Ts1mQb1ztwuTXYEwXYsmqWwNKzh/qAiP9eL2NMYID
czCCA28CAQEwggEjMIIBCjEYMBYGBSqFA2QBEg0xMjM0NTY3ODkwMTIzMRowGAYIKoUDA4EDAQES
DDAwMTIzNDU2Nzg5MDEvMC0GA1UECQwm0YPQuy4g0KHRg9GJ0ZHQstGB0LrQuNC5INCy0LDQuyDQ
tC4gMTgxCzAJBgNVBAYTAlJVMRkwFwYDVQQIDBDQsy4g0JzQvtGB0LrQstCwMRUwEwYDVQQHDAzQ
nNC+0YHQutCy0LAxJTAjBgNVBAoMHNCe0J7QniAi0JrQoNCY0J/QotCeLdCf0KDQniIxOzA5BgNV
BAMMMtCi0LXRgdGC0L7QstGL0Lkg0KPQpiDQntCe0J4gItCa0KDQmNCf0KLQni3Qn9Cg0J4iAhN8
AAHtigtWAhhPuID3AAEAAe2KMAoGCCqFAwcBAQICoIIB5zAYBgkqhkiG9w0BCQMxCwYJKoZIhvcN
AQcBMBwGCSqGSIb3DQEJBTEPFw0yMTAxMTgxMDIzMjRaMC8GCSqGSIb3DQEJBDEiBCAkfGgU9Sxa
xfK3sBE/knTq0UZSaL7UjgopMu51PEw3SzCCAXoGCyqGSIb3DQEJEAIvMYIBaTCCAWUwggFhMIIB
XTAKBggqhQMHAQECAgQgBSiT4GjPaEvSJN1fKaPQCYFGUHRur46EBcGNM1UIInwwggErMIIBEqSC
AQ4wggEKMRgwFgYFKoUDZAESDTEyMzQ1Njc4OTAxMjMxGjAYBggqhQMDgQMBARIMMDAxMjM0NTY3
ODkwMS8wLQYDVQQJDCbRg9C7LiDQodGD0YnRkdCy0YHQutC40Lkg0LLQsNC7INC0LiAxODELMAkG
A1UEBhMCUlUxGTAXBgNVBAgMENCzLiDQnNC+0YHQutCy0LAxFTATBgNVBAcMDNCc0L7RgdC60LLQ
sDElMCMGA1UECgwc0J7QntCeICLQmtCg0JjQn9Ci0J4t0J/QoNCeIjE7MDkGA1UEAwwy0KLQtdGB
0YLQvtCy0YvQuSDQo9CmINCe0J7QniAi0JrQoNCY0J/QotCeLdCf0KDQniICE3wAAe2KC1YCGE+4
gPcAAQAB7YowCgYIKoUDBwEBAQEEQJuFsWAy3Vlat6nS87eUin0rPII6UA1Mqq+MOQbfiOkdBg1C
nPI4lBMBp7PnMC/4rXiMluOKJ6W76ua4YYvGVnQ=
Ошибка сегментирования
либо Код:
munmap_chunk(): invalid pointer
Аварийный останов
Код:
<?php
//Вспомогательные функции предварительной инициализации
function SetupStore($location, $name, $mode)
{
$store = new CPStore();
$store->Open($location, $name, $mode);
return $store;
}
function SetupCertificates($location, $name, $mode)
{
$store = SetupStore($location, $name, $mode);
$certs = $store->get_Certificates();
return $certs;
}
function SetupCertificate($location, $name, $mode,
$find_type, $query, $valid_only,
$number)
{
$certs = SetupCertificates($location, $name, $mode);
if(!is_null($find_type))
{
$certs = $certs->Find($find_type, $query, $valid_only);
return $certs->Item($number);
}
else
{
$cert = $certs->Item($number);
return $cert;
}
}
function test_CPSignedData_Sign_Verify()
{
try{
$content = "test content";
$address = "http://testca.cryptopro.ru/tsp/tsp.srf";
$cert = SetupCertificate(CURRENT_USER_STORE, "My", STORE_OPEN_READ_ONLY,
CERTIFICATE_FIND_SUBJECT_NAME, "test", 0,
1);
if(!$cert)
return "Certificate not found";
$signer = new CPSigner();
$signer->set_TSAAddress($address);
$signer->set_Certificate($cert);
$sd = new CPSignedData();
$sd->set_ContentEncoding(1);
$sd->set_Content(base64_encode($content));
// Второй параметр - тип подписи(1 = CADES_BES): http://cpdn.cryptopro.ru/default.asp?url=content/cades/namespace_c_ad_e_s_c_o_m_fe49883d8ff77f7edbeeaf0be3d44c0b_1fe49883d8ff77f7edbeeaf0be3d44c0b.html
//Третий параметр detached - отделенная(true) или совмещенная (false)
$sm = $sd->SignCades($signer, 1, false, 0);
printf("Signature is:\n");
printf($sm);
printf("\n");
$sd->VerifyCades($sm, 1, true); // true/false - ошибка сегментирования
return 1;
}catch(Exception $e)
{
printf($e->getMessage());
}
}
if(test_CPSignedData_Sign_Verify() == 1)
{
printf("TEST OK\n");
}else
{
printf("TEST FAIL\n");
}
?>
далее решили все удалить и установить по новой при создании тестового сертификата (ubuntu20) на ubuntu18 все собралось, тестовый сертификат создался и тестовый скрипт возвращает "ОК" Код:
/opt/cprocsp/bin/amd64/cryptcp -creatcert -dn "CN=test" -cont '\\.\HDIMAGE\testcont'
CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2020.
Утилита командной строки для подписи и шифрования файлов.
Создание запроса...
Ошибка: Внутренняя ошибка.
../../../../CSPbuild/CSP/samples/CPCrypt/Enroll.cpp:440: 0x80090020
Ошибка: Внутренняя ошибка.
../../../../CSPbuild/CSP/samples/CPCrypt/Enroll.cpp:1029: 0x80090020
[ErrorCode: 0x80090020]
Что не так в ubuntu20? Помогите...
|