diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2017-05-31 07:59:35 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2017-05-31 07:59:35 +0000 |
commit | c14559a39672806cdda57d3aa7ca49a9dcc0e71f (patch) | |
tree | dc840cc90ea0d3c91ce0f3b0976008f8d0995dc4 /bcprov/src/main | |
parent | bd77265adc1fd78a28cc61d49f1b9631b3ff6b4f (diff) | |
parent | 9107bf1d7df939cf1bc8cd20bce80290b5bc6cb6 (diff) | |
download | bouncycastle-c14559a39672806cdda57d3aa7ca49a9dcc0e71f.tar.gz |
release-request-31f776a2-f093-4abe-9235-1702f8bafc9d-for-git_oc-dr1-release-4054002 snap-temp-L42500000069020014
Change-Id: I6274627860f653bca8f151c4bcc959b06828e081
Diffstat (limited to 'bcprov/src/main')
-rw-r--r-- | bcprov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher.java | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/bcprov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher.java b/bcprov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher.java index 59b715ad..63d7b351 100644 --- a/bcprov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher.java +++ b/bcprov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher.java @@ -642,14 +642,17 @@ public class BaseBlockCipher { pbeSpec = (PBEParameterSpec)params; // BEGIN android-added - // At this point, k.getParam() == null, so the key hasn't been generated. Recreate - // the BCPBEKey with specs from algorithm parameters as to generate the key. - k = new BCPBEKey(k.getAlgorithm(), k.getOID(), k.getType(), k.getDigest(), - k.getKeySize(), k.getIvSize(), - new PBEKeySpec( - k.getPassword(), pbeSpec.getSalt(), pbeSpec.getIterationCount(), - k.getKeySize()), - null /* CipherParameters */); + // At this point, k.getParam() == null, so the key hasn't been generated. If + // the parameters have non-default values, recreate the BCPBEKey from algorithm + // parameters as to generate the key. + if ((pbeSpec.getSalt().length != 0) && (pbeSpec.getIterationCount() > 0)) { + k = new BCPBEKey(k.getAlgorithm(), k.getOID(), k.getType(), k.getDigest(), + k.getKeySize(), k.getIvSize(), + new PBEKeySpec( + k.getPassword(), pbeSpec.getSalt(), pbeSpec.getIterationCount(), + k.getKeySize()), + null /* CipherParameters */); + } // END android-added param = PBE.Util.makePBEParameters(k, params, cipher.getUnderlyingCipher().getAlgorithmName()); } |