2011-08-01 17 views
25

Aparentemente Spongy Castle es la alternativa de Android al uso de una versión completa de Bouncy Castle.¿Cómo incluir Spongy Castle JAR en Android?

Sin embargo, al importar el archivo jar estoy recibiendo todo tipo de errores "no se pueden resolver" porque se basa en paquetes no incluidos con Android, principalmente javax.mail, javax.activation y javax.awt.datatransfer.

¿Cuál es la mejor manera de evitar esto? Las respuestas a this question y this indican que esos paquetes no se deben usar en absoluto, y this popular question ni siquiera considera encontrar una manera de recuperar AWT. Entonces, ¿cómo es que Spongy Castle depende de ellos? People are using Spongy Castle, ¿verdad?

Respuesta

31

Estos son dos ejemplos muy simples de cómo incluir Castillo esponjoso en un proyecto:

Desde v1.47, el castillo ha sido esponjoso dividido en subta jar separados que reflejan exactamente los artefactos de Bouncy Castle (por ejemplo, sc-light-jdk15on.jar, scpg-jdk15on.jar, etc.), y es importante asegurarse de incluir todos se requieren los frascos de Spongy Castle para lo que estás haciendo.

información completa sobre las dependencias se puede encontrar en:

http://rtyley.github.com/spongycastle/#downloads

Como mínimo debes contar con la sc-light-jdk15on.jar (la implementación base de peso ligero-API) y probablemente scprov-jdk15on.jar (JCE la envoltura alrededor de la ligera-API) Si está usando Maven, entonces todo esto de gestión de la dependencia se ocupará de usted.

Las dependencias problemáticas que usted describe en javax.mail, javax.activation, etc., indican que podría haber elegido un tarro incorrecta (por ejemplo, la cada de un solo-biblioteca-componente uno, en lugar de la 'proveedor principal' uno) - como el scprov-jdk15on jar definitivamente no tiene tiene alguna de esas dependencias raras, y funciona felizmente en Android.

(descargo de responsabilidad, yo soy el mantenedor del Castillo esponjoso, pero he tenido un montón de informes de éxito de otros usuarios también!)

+0

La cosa es, creo que ese es el archivo JAR exacto que estaba usando. Fui a https://github.com/rtyley/spongycastle y hice clic en el enlace "Puede descargar directamente el último archivo aquí" debajo del subencabezado de Descargas. Desafortunadamente, ya no estoy trabajando en ese proyecto, así que probablemente no tenga la oportunidad de volver a intentarlo pronto, pero por el bien de otros, ¿cuáles son los pasos recomendados para incluir su archivo JAR en un proyecto de Android? –

+0

Agregué tu lib pero todavía lanza carga de clase de excepción que la clase bouncycastle.ans1 no encontró. cómo hacerlo buscar en Spongycastle? –

+0

cómo agrego la lib desde este enlace https://github.com/rtyley/spongycastle ... no hay archivo jar ... –

32

Si está utilizando Gradle, a continuación, puedes especificar sus dependencias en build.gradle presenta así:

dependencies { 
    .... 
    compile 'com.madgag.spongycastle:core:1.54.0.0' 
    compile 'com.madgag.spongycastle:prov:1.54.0.0' 
    compile 'com.madgag.spongycastle:pkix:1.54.0.0' 
    compile 'com.madgag.spongycastle:pg:1.54.0.0' 

    } 

puede encontrar la versión más reciente de la biblioteca here.

No olvide insertarlo como proveedor de seguridad en su aplicación.

static { 
    Security.insertProviderAt(new org.spongycastle.jce.provider.BouncyCastleProvider(), 1); 
} 
+6

¿Dónde se agregaría la línea del proveedor de seguridad? En una clase de aplicación personalizada? – AndyRoid

+0

Sí, hemos agregado esto en nuestra clase personalizada. Siempre que se refiera esa instancia de clase, se insertará el proveedor. Asegúrese de que la clase en la que va a insertar esto sea el punto de entrada para sus operaciones de criptografía. – ua741

+1

En mi caso, he colocado el bloque estático en mi clase de aplicación personalizada, ocurrió la pesadilla. La aplicación siempre se queja de los certificados SSL no válidos y muestra un diálogo de conexiones que no son de confianza. El moví el bloque estático a la clase Crypto utils, los problemas se corrigieron. –

Cuestiones relacionadas