2009-11-04 5 views
3

Мне нужно программно извлечь сертификаты и их секретные ключи из хранилища сертификатов MS и каким-то образом получить их в формате .PEM. Я не хочу использовать OpenSSL в командной строке, так как я хотел бы хранить все в памяти, избегая файлов.Преобразование .PFX в .PEM программно?

Я могу экспортировать их из Windows в PFX-формат, используя PFXExportCertStoreEx(). Я протестировал это, записав его в файл и преобразовывая его в .PEM с OpenSSL. Полученный .PEM-файл работает нормально. Таким образом, оставшаяся проблема заключается в том, чтобы получить их в формате .PEM в памяти.

Мы интегрировали другую библиотеку SSL, которая хочет .PEM. (Это не OpenSSL ...) Поэтому я бы хотел сделать это, не включая исходный текст OpenSSL в наш проект на C++. Есть идеи?

+0

Можете ли вы рассказать нам библиотеку SSL вы работаете? – jheddings

+0

Это yaSSL, который, кажется, хочет .PEM-файлы. – GShultz

ответ

1

Как насчет статической привязки к файлам OpenSSL .lib?

Я адаптировал некоторые примеры использования OpenSSL, чтобы сделать это, вы можете найти C++ кода для преобразования PFX в PEM здесь: https://github.com/michaelmotes/PKCS12toPEM

И этот файл содержит VB.NET Interop код для преобразования PFX в PEM с помощью OpenSSL:

https://github.com/michaelmotes/libCurlVB.NET-native/blob/master/LibCurlDecl.vb

Смежные вопросы