Integrar libreria criptografía y OpenSLL en proyecto iOS

Integrar libreria criptografía y OpenSLL en proyecto iOS

En varios proyecto iOS me he visto en la tesitura de buscar librerías de criptografía de todo tipo y con infinitas incompatibilidades para cumplir requisitos. Horas de investigación e intentos de integración de distintas librerías, con el consecuente engorro de proyectos y código. En este caso se trataba de generar claves RSA asíncronas de 2048 bytes, cifrado SHA1 y firma de claves, esta solución cumple con estos requisitos y muchos más.

Con el fin de zanjar la búsqueda de la librería perfecta para seguridad y criptografía escribo este articulo. La mejor solución que he encontrado hasta el momento es la integración de OpenSSL y la librería SSCrypto. SSCrypto a sido implementada por Septicus Software la podeis encontrar aquí. Esta libreria hace de inferface entre OpenSSL e iOS, fue implementada para Mac OSX pero se puede integrar fácilmente en cualquier proyecto iOS. Podéis descargar la ultima version de OpenSSL desde su web oficial: http://www.openssl.org/. He dejado el proyecto subido en nuestro GitHub: https://github.com/TxL1/cryptSSL.git

Lo más complicado del proceso de integración es la correcta configuración del proyecto en XCode, muchas veces es confuso, así como compilar las librerías para Objective-C de OpenSSL.

– El primer paso lógico es insertar en el proyecto las librerias libssl.a y libcrypto.a. Así como la clase SSCrypto, simplemente arrastrando SSCrypto.h y SSCrypto.m al proyecto.

– Como se puede observar la clase SSCrypto depende de OpenSSL: #import <openssl/evp.h>, para que Xcode la reconozca necesita tener los ficheros de cabecera .h de libssl.a. Para ello hay que crear una carpeta en la raiz del proyecto con estos ficheros de cabecera. Por ejemplo: include/openssl/*.h.

– Para que XCode reconozca la carpeta hay que editar el fichero build settings del proyecto, buscar Header Search Path en Build Settings y añadir $(inherited) “$(SRCROOT)/include”. También es necesario configurar Library Search Paths con el valor: $(inherited) “$(SRCROOT)/lib”.

Si todo a salido bien y no olvido comentar algo ya deberías tener OpenSSL y SSCrypto integrado en tu proyecto. =)

Generando claves RSA en iOS

SSCrypto y OpenSSL ofrecen muchas otras posibilidades de generación de claves, firmado, multiples algoritmos, etc.. Los métodos públicos de SSCrypto son:

Métodos fichero SSCrypto.h

Si se os ocurre alguna mejora o encontráis algún fallo no dudéis en comentar!

Un Saludo y Buen desarrollo!
TxL

Comentarios

No hay comentarios

Escribe el primer comentario.

Deja un comentario

Nombre. Email. Mensaje.