Construire openssl avec juste RSA et AES
Je suis en utilisant libcrypto.un (OpenSSL) avec un projet. Par défaut, tous les algorithmes sont disponibles sous libcrypto.un. Pour le projet, j'ai juste besoin RSA, AES et SHA.
Comment je peux construire libcrypto.un avec juste ces algorithmes?
Un
.a
fichier "archive": c'est en fait une collection de plusieurs fichiers objets (.o
), chaque exécution de l'une ou de quelques fonctions. Lorsque vous liez votre application avec libcrypto.a
, seuls les fichiers qui définissent les fonctions dont vous avez réellement utilisé obtenez tiré dans le binaire. En plus courte, les mots: retrait des algorithmes que vous n'utilisez pas de l' libcrypto.a
fichier ne sera pas vous faire gagner quoi que ce soit après le lien.OriginalL'auteur zelegolas | 2011-10-19
Vous devez vous connecter pour publier un commentaire.
Si vous construisez OpenSSL en exécutant la
config
ouConfigure
script, vous fournirno-<cipher>
comme un argument pour exclure l'algorithme de chiffrement. ExécuterConfigure
sans options pour voir la disposition des options de compilation.Le script de configuration convertit ces arguments dans les options du préprocesseur. Voici une liste de presque tout ce que vous pouvez désactiver au moment de la compilation. D'abord, c'est la configuration-argument du script, et puis l'argument de compilateur, il est converti.
Notez que certaines choses ont des dépendances. Par exemple, vous ne pouvez pas construire la bibliothèque SSL sans algorithmes de chiffrement et de digérer les algorithmes parce que les protocoles SSL et TLS de la demande. Donc au lieu de faire
make all
, vous voulez fairemake build_crypto
de sorte qu'il s'appuie uniquement libcrypto.un.Par l'expérimentation, que j'ai trouvé (dans OpenSSL 0.9.8 r) qui libcrypto a 2 algorithme de dépendances: MD5 pour le générateur de nombres aléatoires de l'algorithme (en crypto/rand_lib.c) et SHA-1 pour l'impression de hachages de certificat (en crypto/asn1/t_x509.c). Je dirais que ces dépendances sont les oublis par les développeurs.
C'est la manière dont je construis libcrypto.avec seulement MD5 et SHA:
J'ai aussi réussi à construire avec tout, sauf AES, RSA, SHA, MD5 comme à la question posée.
J'ai été en mesure de construire sans rien, sauf le RSA, AES, SHA, MD5. Le RNG a un message digest de dépendance, donc j'ai juste pris MD5. J'ai édité ma réponse avec les détails.
Je vais essayer avec vos options. Merci 🙂
la compilation échoue avec les options ci-dessus.
OriginalL'auteur indiv