Renci.SshNet.Security.Org.BouncyCastle.Math.EC.ECCurve
namespace Renci.SshNet.Security.Org.BouncyCastle.Math.EC
{
internal abstract class ECCurve
{
public const int COORD_AFFINE = 0;
public const int COORD_HOMOGENEOUS = 1;
public const int COORD_JACOBIAN = 2;
public const int COORD_JACOBIAN_CHUDNOVSKY = 3;
public const int COORD_JACOBIAN_MODIFIED = 4;
public const int COORD_LAMBDA_AFFINE = 5;
public const int COORD_LAMBDA_PROJECTIVE = 6;
public const int COORD_SKEWED = 7;
protected readonly IFiniteField m_field;
protected ECFieldElement m_a;
protected ECFieldElement m_b;
protected BigInteger m_order;
protected BigInteger m_cofactor;
protected int m_coord;
protected ECEndomorphism m_endomorphism;
protected ECMultiplier m_multiplier;
public abstract int FieldSize { get; }
public abstract ECPoint Infinity { get; }
public virtual IFiniteField Field { get; }
public virtual ECFieldElement A { get; }
public virtual ECFieldElement B { get; }
public virtual BigInteger Order { get; }
public virtual BigInteger Cofactor { get; }
public virtual int CoordinateSystem { get; }
public static int[] GetAllCoordinateSystems();
protected ECCurve(IFiniteField field);
public abstract ECFieldElement FromBigInteger(BigInteger x);
public abstract bool IsValidFieldElement(BigInteger x);
public virtual Config Configure();
public virtual ECPoint ValidatePoint(BigInteger x, BigInteger y);
public virtual ECPoint ValidatePoint(BigInteger x, BigInteger y, bool withCompression);
public virtual ECPoint CreatePoint(BigInteger x, BigInteger y);
public virtual ECPoint CreatePoint(BigInteger x, BigInteger y, bool withCompression);
protected abstract ECCurve CloneCurve();
protected virtual ECMultiplier CreateDefaultMultiplier();
public virtual bool SupportsCoordinateSystem(int coord);
public virtual PreCompInfo GetPreCompInfo(ECPoint point, string name);
public virtual PreCompInfo Precompute(ECPoint point, string name, IPreCompCallback callback);
public virtual ECPoint ImportPoint(ECPoint p);
public virtual void NormalizeAll(ECPoint[] points);
public virtual void NormalizeAll(ECPoint[] points, int off, int len, ECFieldElement iso);
public virtual ECLookupTable CreateCacheSafeLookupTable(ECPoint[] points, int off, int len);
protected virtual void CheckPoint(ECPoint point);
protected virtual void CheckPoints(ECPoint[] points);
protected virtual void CheckPoints(ECPoint[] points, int off, int len);
public virtual bool Equals(ECCurve other);
protected abstract ECPoint DecompressPoint(int yTilde, BigInteger X1);
public virtual ECEndomorphism GetEndomorphism();
public virtual ECMultiplier GetMultiplier();
public virtual ECPoint DecodePoint(byte[] encoded);
}
}