Попытка проверить подпись с помощью openssl_pkey_get_public()Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Попытка проверить подпись с помощью openssl_pkey_get_public()

Сообщение Anonymous »

Я пытаюсь проверить подпись с помощью Volume API для совершения платежа. По их словам, мне нужно:
Чтобы проверить подпись, использовать исходную немодифицированную полезную нагрузку, отправленную с тома, и проверить ее с помощью открытого ключа тома, расположенного здесь:
песочница https: //api.sandbox.volumepay.io/.well-known/signature/pem
live https://api.volumepay.io/.well-known/signature/pem
Я получаю две ошибки:

Ошибка OpenSSL: ошибка: 02000068: процедуры rsa:: неверная подпись
Ошибка OpenSSL: ошибка: 1C880004: Подпрограммы поставщика::RSA lib

Мой источник:

Код: Выделить всё

  private function verifySignature($payload, $signature) {

$pemUrl= 'https://api.sandbox.volumepay.io/.well-known/signature/pem';
$pemContent = file_get_contents($pemUrl);
$pemContent = trim(preg_replace('/\s+/', '', $pemContent));

if (empty($pemContent)) {
custom_log_message('ERROR', "O conteúdo do PEM está vazio.");
return false;
}

$publicKey = "-----BEGIN PUBLIC KEY-----\n" . $pemContent . "\n-----END PUBLIC KEY-----";

$publicKeyResource = openssl_pkey_get_public($publicKey);
if ($publicKeyResource === false) {
while ($error = openssl_error_string()) {
custom_log_message('ERROR', "\n OpenSSL error: {$error} \n ");
}
return false;
}
$hashedPayload = hash('sha256', $payload, true);

$result = openssl_verify($hashedPayload, base64_decode($signature), $publicKeyResource, OPENSSL_ALGO_SHA256);

if ($result === 1) {
custom_log_message('SUCCESS', 'OpenSSL Aceito: ' . " \n");
return true;
} else {
custom_log_message('ERROR', 'OpenSSL error: ' . openssl_error_string() ." \n");
return false;
}
}
Получены заголовки: {"Connection":"close","X-Varnish":"36059175","X-Groupone-Reqid":"0 -1728345217-f1f4d43736059174","X-Groupone-Host":"realmoneytransfer.co.uk","X-Original-Url":"/volumePayment/webhook","X-Groupone-Forwarded-Ip":"52.30. 246.188","X-Onecom-Host":"realmoneytransfer.co.uk","X-Groupone-Brand":"ome.com","X-Onecom-Brand":"ome.com","X- Forwarded-Proto":"https","X-Onecom-Forwarded-Proto":"https","Via":"1.1 webcache1 (Varnish/trunk)","X-Forwarded-For":"52.30.246.188" ,"Tracestate":"dd=s:1;p:3d4ec978861e3f2d;t.dm:-1;t.tid:6704748100000000","Traceparent":"00-6704748100000000082bb5817a305ad0-3d4ec978861e3f2d-0 1","X-Datadog-Tags ":"_dd.p.dm=-1,_dd.p.tid=6704748100000000","X-Datadog-Sampling-Priority":"1","X-Datadog-Parent-Id":"4417689803980422957"," X-Datadog-Trace-Id":"588763744007379664","Content-Length":"414","Content-Type":"application/json","Accept":"/", «Хост»: «realmoneytransfer.co.uk», «Агент пользователя»: «ReactorNetty/dev», «Авторизация»: «SHA256withRSA aa0ILSmN6vaQPktyCYQ9g8qEEAZX7D8fa4GMNKTaba9LweEtH+UMCEYDLDa1BzVX1bO3eYP8EndOhrG3fC8Ce5hCeMS Qml9xnYvsojEnIBzI256QaHYYz5APatt512s8XW3A9w0JX3+rxSQdBurGVDEgCjT5sYRGWN1thH2FIEIktE43TPHdDRY0Ywz5fdhO2jU46eESQNS02B0uCF2tmoW8Y/ifkTSaogvDv/GcIYhBza Cd8qhz9EObEDbFbDKvP82KbZQoId1e2/EMG6csIAsqWAWG5JkKH2UmRSwNn6egQJWuJngAgXFzUSWI0nX4hyorkqEz7oL8Pvmkh1aNfQ=="}Тело получено: {"PaymentId":"8e54f2d2-ce52-4355-b42c-d4ecff926ad8","merchantPaymentId":"Payment_6704727a90e6a9.50903431","PaymentStatus":"FAILED" ,"errorDescription":"Не удалось создать авторизацию платежа — поставщик платежей возвратил ошибку","payRequest":{"amount":43.21,"currency":"GBP","reference":"Payment Reference"},"payRefundData ":null,"payMetadata":null,"applicationId":"96c1e0d-93au-417e-aae5-aa02aa317ff6"
Сервер: Сервер: {COM_DOMAIN_NAME":"real.com" ,"COM_DOMAIN_ROOT":"/real.com/",COM_MEMORYLIMIT":"2147483648",COM_CPU_SHARES":"2048",COM_EXEC":"php8.0",COM_CONFIG_MTIME":"1727265261702181",COM_DOCUMENT_ROOT":"/customers/ a/2/c/real.com/httpd.www","HTTP_CONNECTION":"close","SCRIPT_NAME":"/index.php","REQUEST_URI":"/volumePayment/webhook","QUERY_STRING":" ","REQUEST_METHOD":"PUT","SERVER_PROTOCOL":"HTTP/1.1","GATEWAY_INTERFACE":"CGI/1.1","REDIRECT_QUERY_STRING":"volumePayment/webhook","REDIRECT_URL":"/volumePayment/webhook" ,"REMOTE_PORT":"47356","SCRIPT_FILENAME":"/customers/a/2/c/real.com/httpd.www/index.php","SERVER_ADMIN":"support@one.com","CONTEXT_DOCUMENT_ROOT ":"/var/www","CONTEXT_PREFIX":"","REQUEST_SCHEME":"https","REMOTE_ADDR":"52.30.246.188","SERVER_PORT":"80","SERVER_ADDR":"10.27.5.21 ","SERVER_NAME":"real.com","SERVER_SOFTWARE":"Apache","SERVER_SIGNATURE":"","PATH":"/usr/local/sbin:/usr/local/bin:/usr/sbin :/usr/bin:/sbin:/bin","HTTP_X_VARNISH":"36059175","HTTP_X_GROUPONE_REQID":"0-1728345217-f1f4d43736059174","HTTP_X_GROUPONE_HOST":"real.com","HTTP_X_ORIGINAL_URL":"/volumePa yment /webhook","HTTP_X_GROUPONE_FORWARDED_IP":"52.30.246.188","HTTP_X_ONECOM_HOST":"real.com","HTTP_X_GROUPONE_BRAND":.com","HTTP_X_ONECOM_BRAND":.com","HTTP_X_FORWARDED_PROTO":"https","HTTP_X_ONECOM_F ORWARDED_PROTO ":"https","HTTP_VIA":"1.1 webcache1 (Varnish/trunk)","HTTP_X_FORWARDED_FOR":"52.30.246.188","HTTP_TRACESTATE":"dd=s:1;p:3d4ec978861e3f2d;t.dm:- 1;t.tid:6704748100000000","HTTP_TRACEPARENT":"00-6704748100000000082bb5817a305ad0-3d4ec978861e3f2d-01","HTTP_X_DATADOG_TAGS":"_dd.p.dm=-1,_dd.p. tid=6704748100000000","HTTP_X_DATADOG_SAMPLING_PRIORITY": "1","HTTP_X_DATADOG_PARENT_ID":"4417689803980422957","HTTP_X_DATADOG_TRACE_ID":"588763744007379664","CONTENT_LENGTH":"414","CONTENT_TYPE":"application/json","HTTP_ACCEPT":"/","HTTP_HOST":"real.com","HTTP_USER_AGENT":"ReactorNetty/dev","ENV_VCV_ENV_ADDONS_ID":.com","ENV_VCV_TOKEN_URL":"https://wpapi.one.com/api/v1. 0/plugins/visualcomposer/activate",COM_WP_ADDONS_API":"https://wpapi.one.com",COM_WEBSHOP_HOST":"webshop2.cst.webpod13-cph3.one.com","HTTPS":"on",COM_PHP_WORKERS ":"8","GROUPONE_BRAND_NAME":.com",COM_BRAND_ID":"1",COM_TMPDIR":"/customers/a/2/c/real.com//tmp","DOMAIN_NAME":"real.com ","DOCUMENT_ROOT":"/customers/a/2/c/real.com/httpd.www","HTTP_AUTHORIZATION":"SHA256withRSA aa0ILSmN6vaQPktyCYQ9g8qEEAZX7D8fa4GMNKTaba9LweEtH+UMCEYDLDa1BzVX1bO3eYP8EndOhrG3fC8Ce5h CeMSQml9xnYvsojEnIBzI256QaHYYz5APatt512s8XW3A9w0JX3+rxSQdBurGVDEgCjT5sYRGWN1thH2FIEIktE43TPHdDRY0Ywz5fdhO2jU46eESQNS02B0uCF2tmoW8Y/ifkTSaogvDv/GcIY hBzaCd8qhz9EObEDbFbDKvP82KbZQoId1e2/EMG6csIAsqWAWG5JkKH2UmRSwNn6egQJWuJngAgXFzUSWI0nX4hyorkqEz7oL8Pvmkh1aNfQ==","REDIRECT_STATUS": "200","REDIRECT_ENV_VCV_ENV_ADDONS_ID":.com","REDIRECT_ENV_VCV_TOKEN_URL":"https://wpapi.one.com/api/v1.0/plugins/ ... ps://wpapi .one.com","REDIRECT_ONECOM_WEBSHOP_HOST":"webshop2.cst.webpod13-cph3.one.com","REDIRECT_HTTPS":"on","REDIRECT_ONECOM_CPU_SHARES":"2048","REDIRECT_ONECOM_MEMORYLIMIT":"2147483648","REDIRECT_ONECOM_PHP_WORKERS ":"8","REDIRECT_GROUPONE_BRAND_NAME":.com","REDIRECT_ONECOM_BRAND_ID":"1","REDIRECT_ONECOM_CONFIG_MTIME":"1727265261702181","REDIRECT_ONECOM_EXEC":"php8.0","REDIRECT_ONECOM_TMPDIR":"/customers/a/ 2/c/real.com//tmp","REDIRECT_COM_DOMAIN_ROOT":"/real.com/","REDIRECT_ONECOM_DOMAIN_NAME":"real.com","REDIRECT_DOMAIN_NAME":"real.com","REDIRECT_ONECOM_DOCUMENT_ROOT":"/ customer/a/2/c/real.com/httpd.www","REDIRECT_DOCUMENT_ROOT":"/customers/a/2/c/real.com/httpd.www","REDIRECT_HTTP_AUTHORIZATION":"SHA256withRSA aa0ILSmN6vaQPktyCYQ9g8qEEAZX7D8fa4GMNKTaba9LweEtH+UMCEYDLDa1Bz VX1bO3eYP8EndOhrG3fC8Ce5hCeMSQml9xnYvsojEnIBzI256QaHYYz5APatt512s8XW3A9w0JX3+ rxSQdBurGVDEgCjT5sYRGWN1thH2FIEIktE43TPHdDRY0Ywz5fdhO2jU46eESQNS02B0uCF2tmoW8Y/ifkTSaogvDv/GcIYhBzaCd8qhz9EObEDbFbDKvP82KbZQoId1e2/EMG6csIAsqWAWG5 JkKH2UmRSwNn6egQJWuJngAgXFzUSWI0nX4hyorkqEz7oL8Pvmkh1aNfQ==","FCGI_ROLE":"RESPONDER","PHP_SELF":"/index.php","REQUEST_TIME_FLOAT":1728345217.831069946289062 5, "REQUEST_TIME": 1728345217

Подробнее здесь: https://stackoverflow.com/questions/790 ... get-public
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»