OpenSSL с путями Юникода - PullRequest
       17

OpenSSL с путями Юникода

3 голосов
/ 08 марта 2010

У меня есть реализация SSL рукопожатия со стороны клиента, используя эти функции: SSL_CTX_load_verify_locations SSL_CTX_use_certificate_chain_file SSL_CTX_use_PrivateKey_file

Все функции получают тип char * для параметра имени файла. Как я могу изменить его, чтобы он поддерживал также расположение файлов в Юникоде?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 11 марта 2010

На какой платформе? OpenSSL под Posix поддерживает пути UTF-8, но не на других платформах. Скорее всего, вам придется вручную загружать файлы сертификатов, используя стандартные функции ввода-вывода файлов ОС, которые поддерживают пути Unicode, а затем анализировать необработанные данные и загружать их в OpenSSL, например, через PEM_read_bio_X509 с sk_X509_NAME_push, PEM_read_bio_PrivateKey/d2i_PrivateKey_bio с SSL_CTX_use_PrivateKey, d2i_X509_bio/PEM_read_bio_X509 с SSL_CTX_use_certificate и т. Д.

0 голосов
/ 03 мая 2012

Я хочу ответить на этот пост вместо создания нового ответа, однако я не смог ответить на него, поэтому я создаю новый ответ. Основываясь на моем тестировании SSL_CTX_load_verify_locations и просмотре кода openssl, на самом деле openssl будет использовать utf-8 для пути к файлу, а также в Windows. В функции BIO_new_file для открытия файла она выберет utf-8 для пути к файлу, если определены и _WIN32, и CP_UTF8. Те определены в окнах. Однако openssl также имеет код для возврата к пути ANSI, если путь не является допустимым символом utf-8. Таким образом, на самом деле openssl будет работать как с UTF-8, так и с ANSI-путями в Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...