LINUX.ORG.RU

[OpenSSL]Определить, зашифрован приватный ключ или нет


0

1

Имеется на входе файлик с секретным ключом в формате PEM. Ключ может быть зашифрованным, либо хранится в открытом виде. Также в этом файлике может находиться сертификат, т.е приблизительно так:

-----BEGIN CERTIFICATE-----
тут идет содержимое сертификата
-----END CERTIFICATE-----

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,B5083979655159C0
тут ключ
-----END RSA PRIVATE KEY-----

Какой самый правильный, Ъ и юниксвейный способ определить, зашифрован ключ или нет? Чтобы знать, спрашивать у юзера пароль, или нет. Есть ли в OpenSSL какая-то соответствующая функция? Я что-то не нашел.

Можно тупо сделать system(«grep ENCRYPTED $keyfile.pem»), но программа должна еще и работать под оффтопиком, придется тащить grep с собой, да и не очень правильным мне это кажется

P.S. Спрашивать пароль в функции, заданной set_default_passwd_cb не предлагать. Она может вызваться параллельно много раз, исходя из логики приложения, соответственно юзер может получить 100500 всплывающих окошек с требованием пароля, коллбэк-функция должна заранее знать пароль и молча отдавать его

★★★★★

Ответ на: комментарий от Harald

ты сейчас из-за этого велосипеда будешь неделю страдать вместо того, чтоб работать над проектом. Пиши уже давай как есть, потом исправишь.

anonymous ()

man strstr

Входит в стандарт С89, так что даже на MSVC будет работать.

hippi90 ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.