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

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

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

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

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

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

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

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

base64 —d sigfile > sigfile_octet?

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

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

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

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

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

С уважением,

Дидерик

Источник: ledsshop.ru

Стиль жизни - Здоровье!