diff options
author | Peter Dettman <peter.dettman@bouncycastle.org> | 2014-03-12 15:11:46 +0400 |
---|---|---|
committer | Peter Dettman <peter.dettman@bouncycastle.org> | 2014-03-12 15:11:46 +0400 |
commit | 67de29f9e593a52552f838bf3542a85ae7d8278f (patch) | |
tree | b928371abaad623aa31c8a06f95aeed06b4e89ed /core/src/main/java/org/bouncycastle/crypto/signers | |
parent | 0294f98205215e542647c2be0a4701e46aba1c3b (diff) |
Allow subclasses to override the ECMultiplier used for base-point
multiplication
Diffstat (limited to 'core/src/main/java/org/bouncycastle/crypto/signers')
3 files changed, 19 insertions, 4 deletions
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(); + } } |