Помогите с проверкой запроса ключём шлюза по OpenSSL.

Valentin

Новичок
Помогите с проверкой запроса ключём шлюза по OpenSSL.

Я правильно понял? У меня есть публичный ключ клиента, который мне присылает запроc. Например: server.crt. В POST запросе клиент мне передаёт данные и подпись $_POST["Signature"]. Чтобы проверить эту подпись, я открываю ключ Server.crt, формирую данные $data (тоже для проверки запроса), и ключ $pubkeyid;

Код:
<?php
$fp = fopen("server.crt", "r");
$cert = fread($fp, 8192);
fclose($fp);
	
$pubkeyid = openssl_get_publickey($cert);
	
// Проверка подписи
$ok = openssl_verify($data, base64_decode($_POST["Signature"]), $pubkeyid);
?>
Получается:
Код:
 $ok == 0 // $error = "Incorrect signature
base64_decode - для перевода подписи в бинарный формат.

что тут не так... :confused: Подскажите пожалуйста. Заранее спасибо.
 

MadMike

Новичок
Re: Помогите с проверкой запроса ключём шлюза по OpenSSL.

попробуй
PHP:
$ok = openssl_verify($data, pack("H*",strtolower($_POST['Signature'])),  $pubkeyid);
 

Valentin

Новичок
Не помогло... Может ошибка не в его подписи, а в том, как я формирую строку подписи - $data? или у него уже изменился ключ server.cert
 
Сверху