diff options
author | Peter Dettman <peter.dettman@bouncycastle.org> | 2014-01-21 16:19:11 +0700 |
---|---|---|
committer | Peter Dettman <peter.dettman@bouncycastle.org> | 2014-01-21 16:19:11 +0700 |
commit | 0d74a23f78cc18401b5f746a97faf1f43003655f (patch) | |
tree | a4aee2333d364a49b947f371924d2e5d3bc53bd6 /crypto/src/math/field/GF2Polynomial.cs | |
parent | Use ECCurve.CreatePoint (diff) | |
download | BouncyCastle.NET-ed25519-0d74a23f78cc18401b5f746a97faf1f43003655f.tar.xz |
Add new classes in Math.Field and some other EC-related stuff from Java
Diffstat (limited to 'crypto/src/math/field/GF2Polynomial.cs')
-rw-r--r-- | crypto/src/math/field/GF2Polynomial.cs | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/crypto/src/math/field/GF2Polynomial.cs b/crypto/src/math/field/GF2Polynomial.cs new file mode 100644 index 000000000..c062d508a --- /dev/null +++ b/crypto/src/math/field/GF2Polynomial.cs @@ -0,0 +1,46 @@ +using System; + +using Org.BouncyCastle.Utilities; + +namespace Org.BouncyCastle.Math.Field +{ + internal class GF2Polynomial + : IPolynomial + { + protected readonly int[] exponents; + + internal GF2Polynomial(int[] exponents) + { + this.exponents = Arrays.Clone(exponents); + } + + public virtual int Degree + { + get { return exponents[exponents.Length - 1]; } + } + + public virtual int[] GetExponentsPresent() + { + return Arrays.Clone(exponents); + } + + public override bool Equals(object obj) + { + if (this == obj) + { + return true; + } + GF2Polynomial other = obj as GF2Polynomial; + if (null == other) + { + return false; + } + return Arrays.AreEqual(exponents, other.exponents); + } + + public override int GetHashCode() + { + return Arrays.GetHashCode(exponents); + } + } +} |