aboutsummaryrefslogtreecommitdiffstats
path: root/libraries/spongycastle/core/src/main/java/org/spongycastle/crypto/modes/gcm/Tables1kGCMExponentiator.java
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/spongycastle/core/src/main/java/org/spongycastle/crypto/modes/gcm/Tables1kGCMExponentiator.java')
-rw-r--r--libraries/spongycastle/core/src/main/java/org/spongycastle/crypto/modes/gcm/Tables1kGCMExponentiator.java58
1 files changed, 0 insertions, 58 deletions
diff --git a/libraries/spongycastle/core/src/main/java/org/spongycastle/crypto/modes/gcm/Tables1kGCMExponentiator.java b/libraries/spongycastle/core/src/main/java/org/spongycastle/crypto/modes/gcm/Tables1kGCMExponentiator.java
deleted file mode 100644
index f78188988..000000000
--- a/libraries/spongycastle/core/src/main/java/org/spongycastle/crypto/modes/gcm/Tables1kGCMExponentiator.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package org.spongycastle.crypto.modes.gcm;
-
-import java.util.Vector;
-
-import org.spongycastle.util.Arrays;
-
-public class Tables1kGCMExponentiator implements GCMExponentiator
-{
- // A lookup table of the power-of-two powers of 'x'
- // - lookupPowX2[i] = x^(2^i)
- private Vector lookupPowX2;
-
- public void init(byte[] x)
- {
- int[] y = GCMUtil.asInts(x);
- if (lookupPowX2 != null && Arrays.areEqual(y, (int[])lookupPowX2.elementAt(0)))
- {
- return;
- }
-
- lookupPowX2 = new Vector(8);
- lookupPowX2.addElement(y);
- }
-
- public void exponentiateX(long pow, byte[] output)
- {
- int[] y = GCMUtil.oneAsInts();
- int bit = 0;
- while (pow > 0)
- {
- if ((pow & 1L) != 0)
- {
- ensureAvailable(bit);
- GCMUtil.multiply(y, (int[])lookupPowX2.elementAt(bit));
- }
- ++bit;
- pow >>>= 1;
- }
-
- GCMUtil.asBytes(y, output);
- }
-
- private void ensureAvailable(int bit)
- {
- int count = lookupPowX2.size();
- if (count <= bit)
- {
- int[] tmp = (int[])lookupPowX2.elementAt(count - 1);
- do
- {
- tmp = Arrays.clone(tmp);
- GCMUtil.multiply(tmp, tmp);
- lookupPowX2.addElement(tmp);
- }
- while (++count <= bit);
- }
- }
-}