Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/quite/humla-spongycastle.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Hook <dgh@cryptoworkshop.com>2014-06-23 16:02:07 +0400
committerDavid Hook <dgh@cryptoworkshop.com>2014-06-23 16:02:07 +0400
commit144d6dbf2df00d3fd98f46838b040b215a995c72 (patch)
tree60783047879cd28e216d2305077e5a6d75f7ff19
parent147293c4a6c913c2ddb42a52c636ead5c9c78c6e (diff)
fixed retreatCounter added bounds check.
-rw-r--r--core/src/main/java/org/bouncycastle/crypto/engines/ChaChaEngine.java7
-rw-r--r--core/src/main/java/org/bouncycastle/crypto/engines/Salsa20Engine.java7
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];
}