Class ECCurve
- Namespace
- Org.BouncyCastle.Math.EC
- Assembly
- BouncyCastle.Cryptography.dll
public abstract class ECCurve
- Inheritance
-
ECCurve
- Derived
- Inherited Members
Remarks
Base class for an elliptic curve.
Constructors
ECCurve(IFiniteField)
protected ECCurve(IFiniteField field)
Parameters
fieldIFiniteField
Fields
COORD_AFFINE
public const int COORD_AFFINE = 0
Field Value
COORD_HOMOGENEOUS
public const int COORD_HOMOGENEOUS = 1
Field Value
COORD_JACOBIAN
public const int COORD_JACOBIAN = 2
Field Value
COORD_JACOBIAN_CHUDNOVSKY
public const int COORD_JACOBIAN_CHUDNOVSKY = 3
Field Value
COORD_JACOBIAN_MODIFIED
public const int COORD_JACOBIAN_MODIFIED = 4
Field Value
COORD_LAMBDA_AFFINE
public const int COORD_LAMBDA_AFFINE = 5
Field Value
COORD_LAMBDA_PROJECTIVE
public const int COORD_LAMBDA_PROJECTIVE = 6
Field Value
COORD_SKEWED
public const int COORD_SKEWED = 7
Field Value
m_a
protected ECFieldElement m_a
Field Value
m_b
protected ECFieldElement m_b
Field Value
m_cofactor
protected BigInteger m_cofactor
Field Value
m_coord
protected int m_coord
Field Value
m_endomorphism
protected ECEndomorphism m_endomorphism
Field Value
m_field
protected readonly IFiniteField m_field
Field Value
m_multiplier
protected ECMultiplier m_multiplier
Field Value
m_order
protected BigInteger m_order
Field Value
Properties
A
public virtual ECFieldElement A { get; }
Property Value
B
public virtual ECFieldElement B { get; }
Property Value
Cofactor
public virtual BigInteger Cofactor { get; }
Property Value
CoordinateSystem
public virtual int CoordinateSystem { get; }
Property Value
Field
public virtual IFiniteField Field { get; }
Property Value
FieldElementEncodingLength
public virtual int FieldElementEncodingLength { get; }
Property Value
FieldSize
public abstract int FieldSize { get; }
Property Value
Infinity
public abstract ECPoint Infinity { get; }
Property Value
Order
public virtual BigInteger Order { get; }
Property Value
Methods
CheckPoint(ECPoint)
protected virtual void CheckPoint(ECPoint point)
Parameters
pointECPoint
CheckPoints(ECPoint[])
protected virtual void CheckPoints(ECPoint[] points)
Parameters
pointsECPoint[]
CheckPoints(ECPoint[], int, int)
protected virtual void CheckPoints(ECPoint[] points, int off, int len)
Parameters
CloneCurve()
protected abstract ECCurve CloneCurve()
Returns
Configure()
public virtual ECCurve.Config Configure()
Returns
CreateCacheSafeLookupTable(ECPoint[], int, int)
public virtual ECLookupTable CreateCacheSafeLookupTable(ECPoint[] points, int off, int len)
Parameters
Returns
CreateDefaultMultiplier()
protected virtual ECMultiplier CreateDefaultMultiplier()
Returns
CreatePoint(BigInteger, BigInteger)
public virtual ECPoint CreatePoint(BigInteger x, BigInteger y)
Parameters
xBigIntegeryBigInteger
Returns
CreateRawPoint(ECFieldElement, ECFieldElement)
protected abstract ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y)
Parameters
Returns
CreateRawPoint(ECFieldElement, ECFieldElement, ECFieldElement[])
protected abstract ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs)
Parameters
xECFieldElementyECFieldElementzsECFieldElement[]
Returns
DecodePoint(byte[])
public virtual ECPoint DecodePoint(byte[] encoded)
Parameters
encodedbyte[]
Returns
DecodePoint(ReadOnlySpan<byte>)
public virtual ECPoint DecodePoint(ReadOnlySpan<byte> encoded)
Parameters
encodedReadOnlySpan<byte>
Returns
DecompressPoint(int, BigInteger)
protected abstract ECPoint DecompressPoint(int yTilde, BigInteger X1)
Parameters
yTildeintX1BigInteger
Returns
Equals(ECCurve)
public virtual bool Equals(ECCurve other)
Parameters
otherECCurve
Returns
Equals(object)
Determines whether the specified object is equal to the current object.
public override bool Equals(object obj)
Parameters
objobjectThe object to compare with the current object.
Returns
FromBigInteger(BigInteger)
public abstract ECFieldElement FromBigInteger(BigInteger x)
Parameters
Returns
GetAffinePointEncodingLength(bool)
public virtual int GetAffinePointEncodingLength(bool compressed)
Parameters
compressedbool
Returns
GetAllCoordinateSystems()
public static int[] GetAllCoordinateSystems()
Returns
- int[]
GetEndomorphism()
public virtual ECEndomorphism GetEndomorphism()
Returns
GetHashCode()
Serves as the default hash function.
public override int GetHashCode()
Returns
- int
A hash code for the current object.
GetMultiplier()
public virtual ECMultiplier GetMultiplier()
Returns
GetPreCompInfo(ECPoint, string)
public virtual PreCompInfo GetPreCompInfo(ECPoint point, string name)
Parameters
Returns
ImportPoint(ECPoint)
public virtual ECPoint ImportPoint(ECPoint p)
Parameters
pECPoint
Returns
IsValidFieldElement(BigInteger)
public abstract bool IsValidFieldElement(BigInteger x)
Parameters
Returns
NormalizeAll(ECPoint[])
public virtual void NormalizeAll(ECPoint[] points)
Parameters
pointsECPoint[]
NormalizeAll(ECPoint[], int, int, ECFieldElement)
public virtual void NormalizeAll(ECPoint[] points, int off, int len, ECFieldElement iso)
Parameters
pointsECPoint[]offintlenintisoECFieldElement
Precompute(ECPoint, string, IPreCompCallback)
public virtual PreCompInfo Precompute(ECPoint point, string name, IPreCompCallback callback)
Parameters
pointECPointnamestringcallbackIPreCompCallback
Returns
RandomFieldElement(SecureRandom)
public abstract ECFieldElement RandomFieldElement(SecureRandom r)
Parameters
Returns
RandomFieldElementMult(SecureRandom)
public abstract ECFieldElement RandomFieldElementMult(SecureRandom r)
Parameters
Returns
SupportsCoordinateSystem(int)
public virtual bool SupportsCoordinateSystem(int coord)
Parameters
coordint
Returns
ValidatePoint(BigInteger, BigInteger)
public virtual ECPoint ValidatePoint(BigInteger x, BigInteger y)
Parameters
xBigIntegeryBigInteger