From 67de29f9e593a52552f838bf3542a85ae7d8278f Mon Sep 17 00:00:00 2001 From: Peter Dettman Date: Wed, 12 Mar 2014 18:11:46 +0700 Subject: Allow subclasses to override the ECMultiplier used for base-point multiplication --- .../java/org/bouncycastle/crypto/signers/DSTU4145Signer.java | 7 ++++++- .../main/java/org/bouncycastle/crypto/signers/ECDSASigner.java | 9 +++++++-- .../java/org/bouncycastle/crypto/signers/ECGOST3410Signer.java | 7 ++++++- 3 files changed, 19 insertions(+), 4 deletions(-) (limited to 'core/src/main/java/org/bouncycastle/crypto/signers') diff --git a/core/src/main/java/org/bouncycastle/crypto/signers/DSTU4145Signer.java b/core/src/main/java/org/bouncycastle/crypto/signers/DSTU4145Signer.java index 0a3ef37f..d0b893a6 100644 --- a/core/src/main/java/org/bouncycastle/crypto/signers/DSTU4145Signer.java +++ b/core/src/main/java/org/bouncycastle/crypto/signers/DSTU4145Signer.java @@ -75,7 +75,7 @@ public class DSTU4145Signer BigInteger d = ((ECPrivateKeyParameters)key).getD(); - ECMultiplier basePointMultiplier = new FixedPointCombMultiplier(); + ECMultiplier basePointMultiplier = createBasePointMultiplier(); do { @@ -135,6 +135,11 @@ public class DSTU4145Signer return fieldElement2Integer(n, y).compareTo(r) == 0; } + protected ECMultiplier createBasePointMultiplier() + { + return new FixedPointCombMultiplier(); + } + /** * Generates random integer such, than its bit length is less than that of n */ diff --git a/core/src/main/java/org/bouncycastle/crypto/signers/ECDSASigner.java b/core/src/main/java/org/bouncycastle/crypto/signers/ECDSASigner.java index 26fd588e..8ea2a5b9 100644 --- a/core/src/main/java/org/bouncycastle/crypto/signers/ECDSASigner.java +++ b/core/src/main/java/org/bouncycastle/crypto/signers/ECDSASigner.java @@ -97,7 +97,7 @@ public class ECDSASigner BigInteger r, s; - ECMultiplier basePointMultiplier = new FixedPointCombMultiplier(); + ECMultiplier basePointMultiplier = createBasePointMultiplier(); // 5.3.2 do // generate s @@ -169,7 +169,7 @@ public class ECDSASigner return v.equals(r); } - private BigInteger calculateE(BigInteger n, byte[] message) + protected BigInteger calculateE(BigInteger n, byte[] message) { int log2n = n.bitLength(); int messageBitLength = message.length * 8; @@ -181,4 +181,9 @@ public class ECDSASigner } return e; } + + protected ECMultiplier createBasePointMultiplier() + { + return new FixedPointCombMultiplier(); + } } diff --git a/core/src/main/java/org/bouncycastle/crypto/signers/ECGOST3410Signer.java b/core/src/main/java/org/bouncycastle/crypto/signers/ECGOST3410Signer.java index ed256fe8..0ef88762 100644 --- a/core/src/main/java/org/bouncycastle/crypto/signers/ECGOST3410Signer.java +++ b/core/src/main/java/org/bouncycastle/crypto/signers/ECGOST3410Signer.java @@ -75,7 +75,7 @@ public class ECGOST3410Signer BigInteger r, s; - ECMultiplier basePointMultiplier = new FixedPointCombMultiplier(); + ECMultiplier basePointMultiplier = createBasePointMultiplier(); do // generate s { @@ -152,4 +152,9 @@ public class ECGOST3410Signer return R.equals(r); } + + protected ECMultiplier createBasePointMultiplier() + { + return new FixedPointCombMultiplier(); + } } -- cgit v1.2.3