Реагируйте на собственное шифрование RSA с помощью открытого ключа PEM или SSLeay.

Я пытаюсь найти работающую библиотеку javascript для реактивного натива, которая позволит шифровать открытый ключ RSA в формате PEM.

Я не специалист по шифрованию и только начинаю с реагировать на нативную, поэтому, пожалуйста, извините, если я пропустил что-то очевидное.

До сих пор я пробовал реагировать-native-rsa, как рекомендуется в этом посте и реагировать-native-rsa-util.

Я не смог заставить работать реагирующий-нативный-rsa-утилиту, и, как мне кажется, реагирующий-нативный-rsa не принимает открытые ключи PEM, а только ключи в формате JWK.

Единственная причина, по которой я не желаю использовать формат JWK, заключается в том, что я не могу найти библиотеку PHP, которая расшифровывает входящее сообщение с помощью ключа JWK.

Я был бы очень признателен за любую помощь / указатели.

Большое спасибо

1 ответ

Я написал библиотеку PHP, которая поддерживает шифрование / дешифрование JWT со множеством других полезных функций, включая сжатие.

Поддерживаются все алгоритмы, указанные в RFC7518 и JWK/JWKSet.

Что вы можете сделать, это конвертировать ваш ключ PEM в JWK с моей библиотекой:

<?php
use Jose\Factory\JWKFactory;

$jwk = JWKFactory::createFromKeyFile('/path/to/my/key.pem');

var_dump($jwk->getAll());

И расшифровать JWT с помощью вашего JWK и моей библиотеки:

use Jose\Loader;

$input = 'eyJhbGciOiJS...';
$loader = new Loader();
$jwe = $loader->loadAndDecryptUsingKey($input, $jwk, ['RSA-OAEP-256'], ['A256CBC-HS512']); // The list of accepted key and content encryption algorithms depends on your needs

Переменная $jwe теперь объект JWE. Вы можете получить полезную нагрузку, позвонив $jwe->getPayload();

Не стесняйтесь обращаться ко мне на выделенном канале Gitter, если это необходимо.

Другие вопросы по тегам