diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-05-11 05:06:33 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-05-11 05:06:33 +0000 |
commit | 008c065b0024b7b3f394df4221f8ca2b9be6ea90 (patch) | |
tree | 146344a6d75ab7447f325d57c8c6f0b1b689e6c3 /repackaged_platform/bcprov/src/main/java/com/android/internal | |
parent | 8687a85bc0e6ef46bac3bce290cca2cddc7d6720 (diff) | |
parent | b7454c366ffd804c3df4e2c4889e6b9bb7d80d88 (diff) | |
download | bouncycastle-aml_net_331110020.tar.gz |
Snap for 8570526 from b7454c366ffd804c3df4e2c4889e6b9bb7d80d88 to mainline-networking-releaseaml_net_331313030aml_net_331313010aml_net_331110020aml_net_331011030aml_net_330910010aml_net_330811010
Change-Id: I3408e14bf54d0e33af178e0c8d8dc07aadb0bb75
Diffstat (limited to 'repackaged_platform/bcprov/src/main/java/com/android/internal')
-rw-r--r-- | repackaged_platform/bcprov/src/main/java/com/android/internal/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi.java | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/repackaged_platform/bcprov/src/main/java/com/android/internal/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi.java b/repackaged_platform/bcprov/src/main/java/com/android/internal/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi.java index 44be654a..6c2c25b0 100644 --- a/repackaged_platform/bcprov/src/main/java/com/android/internal/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi.java +++ b/repackaged_platform/bcprov/src/main/java/com/android/internal/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi.java @@ -935,6 +935,33 @@ public class BcKeyStoreSpi dOut.close(); } + // BEGIN Android-added: new API for KeyStore probing. + /** + * Probe the first few bytes of the keystore data stream for a valid + * keystore encoding. Only the primary keystore implementation is probed. + */ + public boolean engineProbe(InputStream stream) throws IOException { + if (stream == null) { + throw new NullPointerException("input stream must not be null"); + } + DataInputStream dIn = new DataInputStream(stream); + int version = dIn.readInt(); + + if (version != STORE_VERSION) { + if (version != 0 && version != 1) { + return false; + } + } + byte[] salt = new byte[dIn.readInt()]; + + if (salt.length != STORE_SALT_SIZE) { + return false; + } + + return true; + } + // END Android-added: new API for KeyStore probing. + /** * the BouncyCastle store. This wont work with the key tool as the * store is stored encrypted on disk, so the password is mandatory, @@ -1055,6 +1082,30 @@ public class BcKeyStoreSpi cOut.close(); } + + // BEGIN Android-added: new API for KeyStore probing. + @Override + public boolean engineProbe(InputStream stream) throws IOException { + if (stream == null) { + throw new NullPointerException("input stream must not be null"); + } + DataInputStream dIn = new DataInputStream(stream); + int version = dIn.readInt(); + + if (version != STORE_VERSION) { + if (version != 0 && version != 1) { + return false; + } + } + byte[] salt = new byte[dIn.readInt()]; + + if (salt.length != STORE_SALT_SIZE) { + return false; + } + + return true; + } + // END Android-added: new API for KeyStore probing. } /** |