diff options
Diffstat (limited to 'keystore/java/android')
-rw-r--r-- | keystore/java/android/security/SystemKeyStore.java | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/keystore/java/android/security/SystemKeyStore.java b/keystore/java/android/security/SystemKeyStore.java index abdb0ae..1093219 100644 --- a/keystore/java/android/security/SystemKeyStore.java +++ b/keystore/java/android/security/SystemKeyStore.java @@ -20,6 +20,8 @@ import android.os.Environment; import android.os.FileUtils; import android.os.Process; +import org.apache.harmony.luni.util.InputStreamHelper; + import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; @@ -108,26 +110,19 @@ public class SystemKeyStore { return keyFile; } - public String retrieveKeyHexString(String keyName) { + public String retrieveKeyHexString(String keyName) throws IOException { return toHexString(retrieveKey(keyName)); } - public byte[] retrieveKey(String keyName) { - + public byte[] retrieveKey(String keyName) throws IOException { File keyFile = getKeyFile(keyName); + if (!keyFile.exists()) { return null; } - try { - FileInputStream fis = new FileInputStream(keyFile); - int keyLen = fis.available(); - byte[] retKey = new byte[keyLen]; - fis.read(retKey); - fis.close(); - return retKey; - } catch (IOException ioe) { } - throw new IllegalArgumentException(); + FileInputStream fis = new FileInputStream(keyFile); + return InputStreamHelper.readFullyAndClose(fis); } public void deleteKey(String keyName) { |