Вопросы

Расшифровать с помощью открытого ключа, используя openssl в командной строке

Я хочу «вручную» сравнить дайджест/хэш сообщения с расшифрованным значением подписи в этом дайджесте.

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

У меня есть следующие предметы:

  • Дайджест-значение сообщения в base64 (рассчитывается с помощью SHA256)
  • Значение подписи в дайджесте в base64, подписанном закрытым ключом (с использованием SHA256 с шифрованием RSA).
  • Открытый ключ в формате .pem, принадлежащий закрытому ключу
  • У меня есть фактическое сообщение (оно в формате XML, содержащем несколько подписей в разных разделах документа). Я уже проверил подписи с помощью библиотеки безопасности XML. Меня интересует только расшифровка значения подписи с помощью открытого ключа.

Я как бы застрял в том, как я могу добиться этого с помощью openssl.

Я пробую варианты команд, описанных здесь и здесь, однако я немного растерялся.

Читать:
Как я могу проверить, есть ли значение, например имя существует в коллекции в любом из документов в Cloud Firestore?

Я полагаю, мне следует преобразовать подпись из значения base64 в октет, используя:

base64 --d sigfile > sigfile_octet?

Затем я использую команду:

openssl rsautl -inkey pubkey.pem -pubin -in sigfile_octet

Дает ли это мне расшифрованное значение подписи в октете? Какие следующие шаги мне нужно выполнить, чтобы сравнить его с дайджестом base64?

p.s. Я уже проверил подпись с помощью библиотеки безопасности XML Алексея, поэтому я знаю, что дайджест должен соответствовать расшифрованной подписи. ценность.

Ваша помощь будет очень признательна!!

С уважением,

Дидерик

Похожие записи

Невозможно развернуть Go в Oracle Cloud Function с помощью Cloud Shell

admin

ВНИМАНИЕ: индекс RubyGems 1.2+ не найден для: RubyGems вернется к устаревшим индексам, что снизит производительность

admin

Git Pull без изменения моих локальных файлов

admin

Как сообщить JavaScript, что моя переменная является массивом, а не строкой?

admin

Несколько точек входа не работают в Symfony 4.4

admin

Alpine.js — отображение поля ввода и одновременное добавление к нему фокуса

admin