diff options
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/src/asn1/x9/X9ECParameters.cs | 2 | ||||
-rw-r--r-- | crypto/src/asn1/x9/X9ECPoint.cs | 12 | ||||
-rw-r--r-- | crypto/src/crypto/parameters/ECDomainParameters.cs | 82 | ||||
-rw-r--r-- | crypto/src/crypto/parameters/ECPublicKeyParameters.cs | 106 | ||||
-rw-r--r-- | crypto/src/crypto/signers/ECNRSigner.cs | 3 | ||||
-rw-r--r-- | crypto/test/src/math/ec/test/F2mProofer.cs | 2 |
6 files changed, 103 insertions, 104 deletions
diff --git a/crypto/src/asn1/x9/X9ECParameters.cs b/crypto/src/asn1/x9/X9ECParameters.cs index 6389defa8..a192e4c52 100644 --- a/crypto/src/asn1/x9/X9ECParameters.cs +++ b/crypto/src/asn1/x9/X9ECParameters.cs @@ -87,7 +87,7 @@ namespace Org.BouncyCastle.Asn1.X9 byte[] seed) { this.curve = curve; - this.g = g; + this.g = g.Normalize(); this.n = n; this.h = h; this.seed = seed; diff --git a/crypto/src/asn1/x9/X9ECPoint.cs b/crypto/src/asn1/x9/X9ECPoint.cs index ba2b2bcbf..75d58cd38 100644 --- a/crypto/src/asn1/x9/X9ECPoint.cs +++ b/crypto/src/asn1/x9/X9ECPoint.cs @@ -10,25 +10,25 @@ namespace Org.BouncyCastle.Asn1.X9 { private readonly ECPoint p; - public X9ECPoint( + public X9ECPoint( ECPoint p) { - this.p = p; + this.p = p.Normalize(); } - public X9ECPoint( + public X9ECPoint( ECCurve c, Asn1OctetString s) { this.p = c.DecodePoint(s.GetOctets()); } - public ECPoint Point + public ECPoint Point { - get { return p; } + get { return p; } } - /** + /** * Produce an object suitable for an Asn1OutputStream. * <pre> * ECPoint ::= OCTET STRING diff --git a/crypto/src/crypto/parameters/ECDomainParameters.cs b/crypto/src/crypto/parameters/ECDomainParameters.cs index c6a3e4e72..619971a6c 100644 --- a/crypto/src/crypto/parameters/ECDomainParameters.cs +++ b/crypto/src/crypto/parameters/ECDomainParameters.cs @@ -14,11 +14,11 @@ namespace Org.BouncyCastle.Crypto.Parameters internal BigInteger n; internal BigInteger h; - public ECDomainParameters( + public ECDomainParameters( ECCurve curve, ECPoint g, BigInteger n) - : this(curve, g, n, BigInteger.One) + : this(curve, g, n, BigInteger.One) { } @@ -27,34 +27,34 @@ namespace Org.BouncyCastle.Crypto.Parameters ECPoint g, BigInteger n, BigInteger h) - : this(curve, g, n, h, null) - { + : this(curve, g, n, h, null) + { } - public ECDomainParameters( + public ECDomainParameters( ECCurve curve, ECPoint g, BigInteger n, BigInteger h, byte[] seed) { - if (curve == null) - throw new ArgumentNullException("curve"); - if (g == null) - throw new ArgumentNullException("g"); - if (n == null) - throw new ArgumentNullException("n"); - if (h == null) - throw new ArgumentNullException("h"); - - this.curve = curve; - this.g = g; + if (curve == null) + throw new ArgumentNullException("curve"); + if (g == null) + throw new ArgumentNullException("g"); + if (n == null) + throw new ArgumentNullException("n"); + if (h == null) + throw new ArgumentNullException("h"); + + this.curve = curve; + this.g = g.Normalize(); this.n = n; this.h = h; this.seed = Arrays.Clone(seed); } - public ECCurve Curve + public ECCurve Curve { get { return curve; } } @@ -76,40 +76,40 @@ namespace Org.BouncyCastle.Crypto.Parameters public byte[] GetSeed() { - return Arrays.Clone(seed); + return Arrays.Clone(seed); } - public override bool Equals( - object obj) + public override bool Equals( + object obj) { - if (obj == this) - return true; + if (obj == this) + return true; - ECDomainParameters other = obj as ECDomainParameters; + ECDomainParameters other = obj as ECDomainParameters; - if (other == null) - return false; + if (other == null) + return false; - return Equals(other); + return Equals(other); + } + + protected bool Equals( + ECDomainParameters other) + { + return curve.Equals(other.curve) + && g.Equals(other.g) + && n.Equals(other.n) + && h.Equals(other.h) + && Arrays.AreEqual(seed, other.seed); } - protected bool Equals( - ECDomainParameters other) - { - return curve.Equals(other.curve) - && g.Equals(other.g) - && n.Equals(other.n) - && h.Equals(other.h) - && Arrays.AreEqual(seed, other.seed); - } - - public override int GetHashCode() + public override int GetHashCode() { return curve.GetHashCode() - ^ g.GetHashCode() - ^ n.GetHashCode() - ^ h.GetHashCode() - ^ Arrays.GetHashCode(seed); + ^ g.GetHashCode() + ^ n.GetHashCode() + ^ h.GetHashCode() + ^ Arrays.GetHashCode(seed); } } diff --git a/crypto/src/crypto/parameters/ECPublicKeyParameters.cs b/crypto/src/crypto/parameters/ECPublicKeyParameters.cs index 9e71c2a25..1eb665da9 100644 --- a/crypto/src/crypto/parameters/ECPublicKeyParameters.cs +++ b/crypto/src/crypto/parameters/ECPublicKeyParameters.cs @@ -7,78 +7,78 @@ using Org.BouncyCastle.Math.EC; namespace Org.BouncyCastle.Crypto.Parameters { public class ECPublicKeyParameters - : ECKeyParameters + : ECKeyParameters { private readonly ECPoint q; - public ECPublicKeyParameters( - ECPoint q, - ECDomainParameters parameters) - : this("EC", q, parameters) - { - } - - [Obsolete("Use version with explicit 'algorithm' parameter")] - public ECPublicKeyParameters( - ECPoint q, - DerObjectIdentifier publicKeyParamSet) - : base("ECGOST3410", false, publicKeyParamSet) - { - if (q == null) - throw new ArgumentNullException("q"); - - this.q = q; - } - - public ECPublicKeyParameters( - string algorithm, - ECPoint q, - ECDomainParameters parameters) - : base(algorithm, false, parameters) + public ECPublicKeyParameters( + ECPoint q, + ECDomainParameters parameters) + : this("EC", q, parameters) { - if (q == null) - throw new ArgumentNullException("q"); + } + + [Obsolete("Use version with explicit 'algorithm' parameter")] + public ECPublicKeyParameters( + ECPoint q, + DerObjectIdentifier publicKeyParamSet) + : base("ECGOST3410", false, publicKeyParamSet) + { + if (q == null) + throw new ArgumentNullException("q"); - this.q = q; - } + this.q = q.Normalize(); + } - public ECPublicKeyParameters( - string algorithm, - ECPoint q, - DerObjectIdentifier publicKeyParamSet) - : base(algorithm, false, publicKeyParamSet) + public ECPublicKeyParameters( + string algorithm, + ECPoint q, + ECDomainParameters parameters) + : base(algorithm, false, parameters) { - if (q == null) - throw new ArgumentNullException("q"); + if (q == null) + throw new ArgumentNullException("q"); - this.q = q; - } + this.q = q.Normalize(); + } - public ECPoint Q + public ECPublicKeyParameters( + string algorithm, + ECPoint q, + DerObjectIdentifier publicKeyParamSet) + : base(algorithm, false, publicKeyParamSet) { - get { return q; } + if (q == null) + throw new ArgumentNullException("q"); + + this.q = q.Normalize(); } - public override bool Equals(object obj) + public ECPoint Q { - if (obj == this) - return true; + get { return q; } + } + + public override bool Equals(object obj) + { + if (obj == this) + return true; - ECPublicKeyParameters other = obj as ECPublicKeyParameters; + ECPublicKeyParameters other = obj as ECPublicKeyParameters; - if (other == null) - return false; + if (other == null) + return false; - return Equals(other); + return Equals(other); } - protected bool Equals( - ECPublicKeyParameters other) - { - return q.Equals(other.q) && base.Equals(other); - } + protected bool Equals( + ECPublicKeyParameters other) + { + return q.Equals(other.q) && base.Equals(other); + } - public override int GetHashCode() + public override int GetHashCode() { return q.GetHashCode() ^ base.GetHashCode(); } diff --git a/crypto/src/crypto/signers/ECNRSigner.cs b/crypto/src/crypto/signers/ECNRSigner.cs index ba953aca4..cae15bdbf 100644 --- a/crypto/src/crypto/signers/ECNRSigner.cs +++ b/crypto/src/crypto/signers/ECNRSigner.cs @@ -106,8 +106,7 @@ namespace Org.BouncyCastle.Crypto.Signers // BigInteger Vx = tempPair.getPublic().getW().getAffineX(); ECPublicKeyParameters V = (ECPublicKeyParameters) tempPair.Public; // get temp's public key - ECPoint vq = V.Q.Normalize(); - BigInteger Vx = vq.AffineXCoord.ToBigInteger(); // get the point's x coordinate + BigInteger Vx = V.Q.AffineXCoord.ToBigInteger(); // get the point's x coordinate r = Vx.Add(e).Mod(n); } diff --git a/crypto/test/src/math/ec/test/F2mProofer.cs b/crypto/test/src/math/ec/test/F2mProofer.cs index 88e868c34..727d32c55 100644 --- a/crypto/test/src/math/ec/test/F2mProofer.cs +++ b/crypto/test/src/math/ec/test/F2mProofer.cs @@ -83,7 +83,7 @@ // { // BigInteger rand = new BigInteger(inputProps.getProperty(Integer // .ToString(i)), 16); -// F2mPoint result = (F2mPoint) g.Multiply(rand); +// F2mPoint result = (F2mPoint) g.Multiply(rand).normalize(); // string resultStr = pointToString(result); // outputProps.setProperty(i.ToString(), resultStr); // } |