Как использовать libtomcrypt для импорта открытого ключа RSA?

Я экспериментирую с использованием libtomcrypt для шифрования RSA-2048. Моя текущая цель - импортировать открытый ключ из файла. Этот файл был создан с использованием OpenSSL с командой:

$ openssl rsa -in private.pem -outform PEM -pubout -out public.pem

Поэтому я считаю, что мой открытый ключ находится в заполнении PKCS#1 и в формате PEM OpenSSL.

Я полагаю, что мне нужно использовать функцию rsa_import(), но она принимает входной буфер, длину и выводит указатель rsa_key. Просто чтобы прояснить, я считаю, что мне нужно сделать следующее:

  1. Прочитайте содержимое public.pem в буфер
  2. Выкиньте верхний и нижний колонтитулы, содержащие "Начальный открытый ключ" и т. Д.
  3. Декодировать данные из base64.
  4. Передайте полученные данные в rsa_import.

Это правильно? Может кто-нибудь, кто использовал libtomcrypt для этой цели, прокомментировать это? Благодарю.

1 ответ

Решение

Итак, покопавшись в источнике rsa_import(), я довольно быстро выяснил, что он ожидает, что ключ будет в формате DER. Поскольку у меня был доступ к закрытому ключу, я просто создал файл DER с помощью команды openssl:

openssl rsa -in private.pem -outform DER -pubout -out public.der

Примечательно, что аргумент -outform теперь является DER, а не PEM. После этого я просто считал содержимое файла в буфер символов, а затем передал его в качестве основного аргумента для rsa_import. После этого rsa_import сделал ключ без проблем, и я смог оттуда зашифровать / расшифровать.

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