Android bouncy castle: IOException

Estoy usando el keytool de Sun para crear un keystore de castillo Bouncy e importar un certificado en él. El keytool produce un keystore en el formato del castillo Bouncy.

Entonces intento importar el almacén de llaves Bouncy del castillo en un programa de Androide. Soy capaz de obtener una instancia de la "BKS" keystore pero llamando a carga en el keystore lanza

"java.io.IOException: Wrong version of key store". 

Este es el codigo

 KeyStore keyStore = KeyStore.getInstance("BKS"); InputStream is = new FileInputStream("/mnt/sdcard/ArcGIS/mystore.bks"); keyStore.load(is, "abcdef".toCharArray()); 

He probado varias versiones del castillo Bouncy JAR descargado de http://www.bouncycastle.org/latest_releases.html

¿Qué estoy haciendo mal?

Gracias, Ranjit

Parece que la versión de BouncyCastle enviada con Android 4.0.3 (versión API 15) falla al intentar abrir los almacenes de claves producidos con la biblioteca BouncyCastle más reciente. Cuando creé un almacén de claves usando bcprov-jdk15on-147.jar , mi aplicación de ejemplo de Android falló con java.io.IOException: Wrong version of key store error de java.io.IOException: Wrong version of key store .

Sin embargo, si el almacén de claves se creó con la biblioteca bcprov-jdk16-146.jar , la aplicación podría cargarla. Mi solución fue crear el almacén de claves con esta biblioteca más antigua.

Presumiblemente, esto también será el caso de las versiones API más antiguas; Pruebe versiones anteriores de BouncyCastle al crear el almacén de claves.

Resuelto. El comando keytool faltaba el argumento "-storetype BKS", por lo que aunque el archivo BKS keystore fue generado, era probablemente inválido.

Este problema se debe a su longitud de contraseña de certificado BKS, debe ser menor o igual a 7 caracteres. Este es un asunto de la política de EE.UU. y los controles de exportación de EE.UU. (no por razones técnicas).

Vuelva a exportar su certificado con una longitud de 7 caracteres y funcionará.

Espero eso ayude

  • No se puede exportar firmado APK en Android Studio
  • Perdí mi archivo de firma privada para Android
  • Firmar un apk como sistema usando las claves encontradas en source / build / target / product / security /
  • Cómo importar clave privada RSA, generada por openssl, en AndroidKeyStore
  • Android: Tienda SecretKey en KeyStore
  • Diferentes almacenes de claves de depuración en Eclipse en una base por proyecto?
  • Compartir debug.keystore
  • Cordova build -release Android Unsigned apk
  • ¿Cómo puedo especificar la ubicación de debug keystore para Android ant debug builds?
  • Utilizar el mismo almacén de claves de depuración en varios equipos
  • Java Keystore contraseña sin sentido?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.