Как использовать 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. Просто чтобы прояснить, я считаю, что мне нужно сделать следующее:
- Прочитайте содержимое public.pem в буфер
- Выкиньте верхний и нижний колонтитулы, содержащие "Начальный открытый ключ" и т. Д.
- Декодировать данные из base64.
- Передайте полученные данные в 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 сделал ключ без проблем, и я смог оттуда зашифровать / расшифровать.