I have some code for my app that creates a keystore in android, creates some default keys then saves the keystore.
Later on the code tries to reload the keystore, on the emulator this runs fine however when run on a phone I get an EOFException. Any advice on where I'm going wrong? An out take of the code is below: In the class I have the following variables static KeyStore keyStore; String filenameKeyStore = "KeyStore.kstore"; Then the following two functions public KeyHandler(Context context) { if(keyStore == null) { Log.d("KeyStore", "Keystore is null so loading"); if(initialiseKeyStore(context) == false) { // KeyStore failed to initialise Log.e("ERROR", "Store failed to initialise"); } } } private boolean initialiseKeyStore(Context context) { FileInputStream input = null; try { // Get an instance of KeyStore keyStore = KeyStore.getInstance("BKS"); // Load the KeyStore file try { // Try and open the private key store input = context.openFileInput(filenameKeyStore); } catch (FileNotFoundException e) { // If the file doesn't exist then create the file, a ECDH key and store the key Log.w("Warning","File does not exist, creating new file"); try { // Load the default Key Store keyStore.load(null, null); // Create the file FileOutputStream output = context.openFileOutput(filenameKeyStore, 0); // Reset private key resetPrivateKey(context); // Save the key keyStore.store(output, "password".toCharArray()); // Close the keystore and set the input stream output.close(); input = context.openFileInput(filenameKeyStore); // Reset the keyStore keyStore = KeyStore.getInstance("BKS"); } catch (FileNotFoundException ee) { Log.e("ERROR", "File not found, even though we just created it"); return false; } catch (NoSuchProviderException e1) { // BC isn't working exit e1.printStackTrace(); System.exit(1); } catch (InvalidAlgorithmParameterException e1) { Log.e("ERROR", "The algorithm used for secure algorithm is incorrect"); e1.printStackTrace(); return false; } } // Load the store keyStore.load(input, "password".toCharArray()); } catch (KeyStoreException e) { // TODO Auto-generated catch block e.printStackTrace(); return false; } catch (CertificateException e) { // TODO Auto-generated catch block e.printStackTrace(); return false; } catch (EOFException e) { // Where the exception is caught e.printStackTrace(); return false; } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); return false; } catch (NoSuchAlgorithmException e) { // TODO Auto-generated catch block e.printStackTrace(); return false; } catch (NoSuchProviderException e) { // Serious error, return e.printStackTrace(); System.exit(1); } return true; } -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en