diff options
Diffstat (limited to 'core/src/main/java/org/bouncycastle/math/ec/GLVMultiplier.java')
-rw-r--r-- | core/src/main/java/org/bouncycastle/math/ec/GLVMultiplier.java | 42 |
1 files changed, 0 insertions, 42 deletions
diff --git a/core/src/main/java/org/bouncycastle/math/ec/GLVMultiplier.java b/core/src/main/java/org/bouncycastle/math/ec/GLVMultiplier.java deleted file mode 100644 index 09b83668..00000000 --- a/core/src/main/java/org/bouncycastle/math/ec/GLVMultiplier.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.bouncycastle.math.ec; - -import java.math.BigInteger; - -import org.bouncycastle.math.ec.endo.GLVEndomorphism; - -public class GLVMultiplier extends AbstractECMultiplier -{ - protected final ECCurve curve; - protected final GLVEndomorphism glvEndomorphism; - - public GLVMultiplier(ECCurve curve, GLVEndomorphism glvEndomorphism) - { - if (curve == null || curve.getOrder() == null) - { - throw new IllegalArgumentException("Need curve with known group order"); - } - - this.curve = curve; - this.glvEndomorphism = glvEndomorphism; - } - - protected ECPoint multiplyPositive(ECPoint p, BigInteger k) - { - if (!curve.equals(p.getCurve())) - { - throw new IllegalStateException(); - } - - BigInteger n = p.getCurve().getOrder(); - BigInteger[] ab = glvEndomorphism.decomposeScalar(k.mod(n)); - BigInteger a = ab[0], b = ab[1]; - - ECPointMap pointMap = glvEndomorphism.getPointMap(); - if (glvEndomorphism.hasEfficientPointMap()) - { - return ECAlgorithms.implShamirsTrickWNaf(p, a, pointMap, b); - } - - return ECAlgorithms.implShamirsTrickWNaf(p, a, pointMap.map(p), b); - } -} |