Попытка проверить подпись с помощью 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- ... nature/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;
}
}


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

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

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

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

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

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