diff options
author | David Hook <dgh@cryptoworkshop.com> | 2014-06-23 16:02:07 +0400 |
---|---|---|
committer | David Hook <dgh@cryptoworkshop.com> | 2014-06-23 16:02:07 +0400 |
commit | 144d6dbf2df00d3fd98f46838b040b215a995c72 (patch) | |
tree | 60783047879cd28e216d2305077e5a6d75f7ff19 /core/src/main/java/org/bouncycastle/crypto | |
parent | 147293c4a6c913c2ddb42a52c636ead5c9c78c6e (diff) |
fixed retreatCounter added bounds check.
Diffstat (limited to 'core/src/main/java/org/bouncycastle/crypto')
-rw-r--r-- | core/src/main/java/org/bouncycastle/crypto/engines/ChaChaEngine.java | 7 | ||||
-rw-r--r-- | core/src/main/java/org/bouncycastle/crypto/engines/Salsa20Engine.java | 7 |
2 files changed, 12 insertions, 2 deletions
diff --git a/core/src/main/java/org/bouncycastle/crypto/engines/ChaChaEngine.java b/core/src/main/java/org/bouncycastle/crypto/engines/ChaChaEngine.java index f2e04209..31da795f 100644 --- a/core/src/main/java/org/bouncycastle/crypto/engines/ChaChaEngine.java +++ b/core/src/main/java/org/bouncycastle/crypto/engines/ChaChaEngine.java @@ -39,7 +39,12 @@ public class ChaChaEngine extends Salsa20Engine protected void retreatCounter() { - if (--engineState[12] == Integer.MIN_VALUE) + if (engineState[12] == 0 && engineState[13] == 0) + { + throw new IllegalStateException("attempt to reduce counter past zero."); + } + + if (--engineState[12] == -1) { --engineState[13]; } diff --git a/core/src/main/java/org/bouncycastle/crypto/engines/Salsa20Engine.java b/core/src/main/java/org/bouncycastle/crypto/engines/Salsa20Engine.java index a6acc96f..1452d1e6 100644 --- a/core/src/main/java/org/bouncycastle/crypto/engines/Salsa20Engine.java +++ b/core/src/main/java/org/bouncycastle/crypto/engines/Salsa20Engine.java @@ -164,7 +164,12 @@ public class Salsa20Engine protected void retreatCounter() { - if (--engineState[8] == Integer.MIN_VALUE) + if (engineState[8] == 0 && engineState[9] == 0) + { + throw new IllegalStateException("attempt to reduce counter past zero."); + } + + if (--engineState[8] == -1) { --engineState[9]; } |