123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
- using System;
- using Org.BouncyCastle.Math;
- using Org.BouncyCastle.Math.EC;
- using Org.BouncyCastle.Utilities;
- namespace Org.BouncyCastle.Crypto.Parameters
- {
- public class ECDomainParameters
- {
- internal ECCurve curve;
- internal byte[] seed;
- internal ECPoint g;
- internal BigInteger n;
- internal BigInteger h;
- public ECDomainParameters(
- ECCurve curve,
- ECPoint g,
- BigInteger n)
- : this(curve, g, n, BigInteger.One)
- {
- }
- public ECDomainParameters(
- ECCurve curve,
- ECPoint g,
- BigInteger n,
- BigInteger h)
- : this(curve, g, n, h, null)
- {
- }
- 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.Normalize();
- this.n = n;
- this.h = h;
- this.seed = Arrays.Clone(seed);
- }
- public ECCurve Curve
- {
- get { return curve; }
- }
- public ECPoint G
- {
- get { return g; }
- }
- public BigInteger N
- {
- get { return n; }
- }
- public BigInteger H
- {
- get { return h; }
- }
- public byte[] GetSeed()
- {
- return Arrays.Clone(seed);
- }
- public override bool Equals(
- object obj)
- {
- if (obj == this)
- return true;
- ECDomainParameters other = obj as ECDomainParameters;
- if (other == null)
- return false;
- return Equals(other);
- }
- protected virtual bool Equals(
- ECDomainParameters other)
- {
- return curve.Equals(other.curve)
- && g.Equals(other.g)
- && n.Equals(other.n)
- && h.Equals(other.h);
- }
- public override int GetHashCode()
- {
- int hc = curve.GetHashCode();
- hc *= 37;
- hc ^= g.GetHashCode();
- hc *= 37;
- hc ^= n.GetHashCode();
- hc *= 37;
- hc ^= h.GetHashCode();
- return hc;
- }
- }
- }
- #endif
|