Chateau gonflable d'Android: IOException

J'utilise le keytool de Sun pour créer un magasin de clés Bouncy Castle et y importer un certificat. Le keytool produit un magasin de clés dans le format Bouncy Castle.

Je tente ensuite d'importer le magasin de clés Bouncy Castle dans un programme Android. Je suis en mesure d'obtenir une instance du magasin de clés "BKS" mais d'appeler la charge sur les magasins de magasins de clés

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

C'est le code

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

J'ai essayé diverses versions du château Bouncy JAR téléchargé à partir de http://www.bouncycastle.org/latest_releases.html

Qu'est-ce que je fais mal?

Merci Ranjit

  • Données de synchronisation Android entre utilisateurs
  • Possibilité d'utiliser plusieurs autorités avec FileProvider?
  • But du paramètre args de getLoaderManager (). InitLoader (..., ..., ...)?
  • Application de base de données Android ContentProvider plusieurs tables
  • Comment observer le changement de contenu? Android
  • Ajout de type mime personnalisé aux contacts dans Android
  • 3 Solutions collect form web for “Chateau gonflable d'Android: IOException”

    Il semble que la version de BouncyCastle livrée avec Android 4.0.3 (API version 15) échoue lorsque vous essayez d'ouvrir des magasins de clés produits à l'aide de la bibliothèque BouncyCastle la plus récente. Lorsque j'ai créé un magasin de bcprov-jdk15on-147.jar utilisant bcprov-jdk15on-147.jar , mon exemple d'application Android a échoué avec java.io.IOException: Wrong version of key store erreur du java.io.IOException: Wrong version of key store .

    Cependant, si le magasin de bcprov-jdk16-146.jar été créé avec la bibliothèque bcprov-jdk16-146.jar , il pourrait être chargé par l'application. Ma solution était de créer le magasin de clés avec cette ancienne bibliothèque.

    On peut supposer que ce sera également le cas pour les anciennes versions de l'API; Essayez les anciennes versions de BouncyCastle lors de la création du magasin de clés.

    Résolu. La commande keytool manquait l'argument "-storype de type BKS", donc, bien que le fichier BKS keystore ait été généré, il était probablement invalide.

    Ce problème est dû à votre longueur de mot de passe de certificat BKS, il doit être inférieur ou égal à 7 caractères. Il s'agit de la politique des États-Unis et des contrôles des exportations des États-Unis (non pour des raisons techniques).

    Re-exportez votre certificat en utilisant une longueur de 7 caractères et cela fonctionnera.

    J'espère que cela aide

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.