J'ai été en mesure de suivre les instructions dans this question pour construire une bibliothèque partagée de openssl pour Android.Utilisation des bibliothèques partagées openssl-fips-2.0 dans Android
E.g.
cd openssl-fips-2.0/
./config
make
make install
Et
cd openssl-1.0.1c/
./config fips --with-fipsdir=/usr/local/ssl/fips-2.0/ shared
make depend
make
Cela génère libcrypto.so.1.0.0 et libssl.so.1.0.0 avec les liens symboliques correspondant à eux comme libcrypto.so et libssl.so.
Étant donné que le système de compilation NDK ne supporte pas les bibliothèques partagées avec version, j'ai dû utiliser les liens symboliques (avec PREBUILT_SHARED_LIBRARY). Cependant, avec ceci, les librairies finissent par arriver sur le périphérique en tant que libcrypto.so et libssl.so au lieu de libcrypto.so.1.0.0 et libssl.so.1.0.0 provoquant l'échec du chargement de ma librairie. pour les bibliothèques avec les noms de version.
La question liée mentionne le chargement des bibliothèques avec System.load (libcrypto.so.1.0.0) au lieu de System.loadLibrary() mais je n'ai pas réussi à faire fonctionner ceci même avec des chemins complets car comme mentionné plus tôt, le fichier est copié sur le périphérique sous le nom de libcrypto.so.
Quelqu'un l'a fait avec succès?
Note: J'ai également essayé de modifier la config openssl-1.0.1c et makefiles pour générer libcrypto.1.0.0.so (par exemple avec le numéro de version avant l'extension dans le nom de fichier et soname) et cela m'a permis de contourner le problème de chargement précédent. Cependant, avec cela, j'obtiens une erreur lorsque j'essaie d'activer le mode FIPS avec FIPS_module_mode_set (FIPS_R_FINGERPRINT_DOES_NOT_MATCH).
Je ne sais pas encore pourquoi cela se produit, mais cela pourrait être dû à un dépouillement de NDK de choses inutiles (voir ceci question) ... Je suis toujours en train de regarder ça aussi mais si quelqu'un en a L'information sur ceci aussi bien serait très appréciée. Laissez-nous identifier le problème correctement.
avez-vous vu cette discussion http://stackoverflow.com/questions/11091905/android-build-openssl-fips-2-0 avant de poster votre question? –
Ouais, j'ai essayé d'ajouter un commentaire suite à cela, car il semblait au moins que brewphone a fonctionné, mais comme je n'ai pas assez de crédibilité, je n'ai pas été capable de le faire. Et quand j'ai ajouté une «réponse», elle a été supprimée. –
Cette question est également liée à cela. –