OpenSSL Static Library слишком велика, есть альтернатива или способ уменьшить ее размер? - PullRequest
4 голосов
/ 24 марта 2011

Я использовал предварительно собранные статические библиотеки OpenSSL 1.0, но это делает мой бинарный файл слишком большим (увеличьте его размер примерно на 800 КБ в режиме выпуска).

Мне не нужна большая часть возможностейOpenSSL, например, BIO, я использую свои собственные сокеты, поэтому в коде я использую только пару вызовов SSL_XXXXXXXXX (SSL_accept (3) или SSL_connect (3), SSL_read (3) и SSL_write (3))

Мое единственное требование - поддержка SSLv2 / v3 с winsock для Windows и сокетов в Linux как для клиента, так и для сервера (для C ++)

Есть ли способ сделать OpenSSL намного меньше (возможно, путем его компиляции самостоятельно) илив крайнем случае, какая-нибудь другая хорошая, но более легкая библиотека SSL, которая отвечает моим требованиям?Библиотека должна быть связана статически.

Спасибо вам

Ответы [ 3 ]

4 голосов
/ 24 марта 2011

Я думаю, что вы хотите эту страницу, в частности раздел о размере кода:

https://en.wikipedia.org/w/index.php?title=Comparison_of_TLS_implementations&oldid=585386367#Code_size_and_dependencies

(от декабря 2013 г.)

update : Увы, больше не является частью обновленной страницы.

3 голосов
/ 03 ноября 2011

Вы можете попробовать скомпилировать его самостоятельно с помощью --ffunction-sections и --fdata-sections, что говорит gcc поместить каждую функцию и глобальную переменную данных в отдельный раздел внутри объекта.

(При использовании статических библиотеккомпоновщик копирует весь объект, содержащий необходимую функцию, из архива в приложение.)

1 голос
/ 24 марта 2011

OpenSSL имеет большое количество опций времени компиляции, позволяющих контролировать, какие функции создаются. Я полагаю, что функции SSL используют BIO внизу, так что они вам все еще нужны, но есть множество других функций, без которых вы, вероятно, можете обойтись (например, шифры, которые вы не будете использовать, шифрование конвертов, поддержка S / MIME. ..).

Я не уверен, насколько это уменьшит размер двоичного файла, но стоит попробовать.

...