При условии проверки php, что подпись верна для указанных данных с использованием идентификатора открытого ключа. Что такое рубиновый эквивалент?

Приведенный ниже следующий метод PHP для проверки правильности подписи для указанных данных с использованием открытого ключа, связанного с pub_key_id. Увидеть PHP openssl_verify. Что такое рубиновый эквивалент? У меня есть следующий фрагмент кода PHP:

$data = $_POST['posted_data'];
$signature = base64_decode($_POST['signature']);
$public_key_id = openssl_pkey_get_public($public_key);
$verified = openssl_verify($data, $signature, $public_key_id);
openssl_free_key($key_id);

if($verified == 1)
{
echo "VERIFIED";
}
else if ($verified == 0)
{
echo "VERIFICATION FAILED";
}
else if ($verified < 0)
{
echo "ERROR";
}

Я пытаюсь написать рубиновый эквивалент программы? Заранее спасибо.

0

Решение

Я считаю, что это должно работать для вас:

signature = Base64.decode64(params["signature"])
sha256    = OpenSSL::Digest::SHA256.new
pub_key   = OpenSSL::PKey::RSA.new(public_key).public_key
pub_key.verify(sha256, signature, params["data"])

Это вернется true если они совпадают, false иначе

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]