Pregunta

Estoy tratando de escribir una pequeña aplicación usando el algoritmo de Bouncycastle, del Bouncycastleprovider.java Dice que tenemos que importar y agregar el proveedor durante el tiempo de ejecución por el siguiente código

import org.bouncycastle.jce.provider.BouncyCastleProvider; Security.addProvider(new BouncyCastleProvider());

Error: la importación org.bouncycastle no se puede resolver; Durante el error de importación: BouncycastleProvider no se puede resolver a un tipo; Al llamar a AddProvider

Pensé que Bouncycastle no está provisto de Android 1.6 SDK, por lo que pensé en instalar por separado. ¿Cómo debería hacer esto? Si Bouncycastle se envía junto con SDK, ¿qué debo hacer para evitar estos errores? Estoy usando Android 1.6, Eclipse-V3.4.0 en WinXP. Gracias por adelantado

¿Fue útil?

Solución

No estoy familiarizado con esta biblioteca en particular. Sin embargo, aquí hay instrucciones generales sobre cómo incluir una biblioteca entregada como un archivo 'jar' en un proyecto de Android.

Descargue el archivo JAR y colóquelo en algún lugar de su estación de trabajo. Es posible que desee poner en el directorio raíz del proyecto en el que lo está instalando, o tal vez en un directorio 'lib' en la raíz.

En Eclipse, seleccione Proyecto-> Propiedades, luego seleccione Java Build Rath. Luego haga clic en Agregar frascos externos, navegue hacia donde coloque el archivo .jar, seleccione y haga clic en abrir.

Ahora escriba o pegue algún código que intente usar las clases en el frasco. Si tiene suerte, aparecerá un icono de bombilla en el margen izquierdo. Al hacer clic en esto, le pedirá que agregue la instrucción de importación correcta a la parte superior de su archivo .java.

Todavía hay cosas que pueden salir mal en este momento. La biblioteca puede hacer uso de Java.* O Javax.* Contenido no suministrado por Android (tiene solo un subconjunto de estas bibliotecas). También puede tener dependencias de biblioteca adicionales propias. Hay otras razones por las cuales el .jar puede no ser compatible con la plataforma Android.

Tenga en cuenta también que aumentará el tamaño de su .APK para acomodar el nuevo contenido.

Otros consejos

O mejor todavía usar Spongycastle Dado que el BC enviado con Android está paralizado y viejo.

No debería necesitar agregar explícitamente Bouncycastle como proveedor. Como usted dice, ya está incluido con Android.

Esto es lo que hago para obtener un cifrado Bouncycastle Aes,

SecretKeyFactory keyFac = SecretKeyFactory.getInstance("PBEWithSHA256And256BitAES-CBC-BC");

Si miras en Bouncycastleprovider.java Verá una referencia a PBewithsha256 y256Bitaes-CBC-BC junto con algunos otros cifrados proporcionados por Bouncycastle.

Debería compilar la biblioteca BC con un nombre diferente, ya que tendrá un conflicto con el BC incorporado ya en Android: recompilar y referencia como BC2 o org.bouncycastle2.x

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top