OpenSSL Bibliothèque Statique trop grand, une alternative ou une façon de réduire sa taille?
J'ai utilisé en pré-construire des bibliothèques statiques de OpenSSL 1.0, mais il rend mon binaires trop gros, (augmentation de sa taille d'environ 800 ko en mode release).
Je n'ai pas besoin de plus de la fonction de OpenSSL comme le BIO, je utiliser mon propre sockets, donc dans le code, je ne suis qu'à l'aide d'un couple de SSL_XXXXXXXXX appels(SSL_accept(3) ou SSL_connect(3), SSL_read(3) et SSL_write(3))
Ma seule exigence est de soutenir SSLv2/v3 avec winsock sur windows, et prises sur linux pour à la fois côté client et serveur (pour C++)
Est-il de toute façon à faire OpenSSL beaucoup plus petite (peut-être par le compiler moi-même) ou, en dernier ressort, toutes les autres bonnes, mais plus lightwight bibliothèque SSL qui répondent à mes besoins? La lib doit être lié staticly.
Vous remercie
- Est-il une raison de 800 ko est un briseur d'affaire? Dans la fin, si vous voulez démarrer la coupe vers le bas OpenSSL libs, vous aurez à commencer à passer à travers et désherbage des fonctions que vous n'avez pas besoin (qui peut être un peu poilu si vous ne comprenez pas l'ensemble du fonctionnement interne).
- Binaire à la taille est d'environ 700Kb, et sa déjà grande pour notre déploiement, l'ajout de 800 ko sembler faible, mais rend le truc deux fois plus grande. Malheureusement, 1,5 Mo est tout simplement pas une option 🙁
Vous devez vous connecter pour publier un commentaire.
Je pense que vous voulez de cette page, notamment la section sur la taille du code:
https://en.wikipedia.org/w/index.php?title=Comparison_of_TLS_implementations&oldid=585386367#Code_size_and_dependencies
(en date de décembre 2013)
mise à jour: Hélas n'est plus une partie de la page à jour.
Vous pouvez essayer de le compiler vous-même avec
--ffunction-sections
et--fdata-sections
, qui raconte gcc pour mettre chaque fonction et les données globales de la variable dans une section distincte à l'intérieur de l'objet.(Lors de l'utilisation de bibliothèques statiques, l'éditeur de liens des copies de la totalité de l'objet qui contient la fonction désirée à partir de l'archive de l'application).
OpenSSL a un grand nombre de compilation options permettant de contrôler les fonctionnalités sont intégrées. Je crois que les fonctions SSL utiliser
BIO
s en dessous, de sorte que vous aurez toujours besoin de ceux-ci, mais il y a beaucoup d'autres fonctionnalités que vous pouvez probablement aller sans (comme les algorithmes de chiffrement que vous n'utiliserez pas, enveloppe de chiffrement S/MIME support...).Je ne suis pas sûr combien il permettra de réduire la taille du binaire, mais il vaut la peine d'essayer.