<PackageReference Include="BouncyCastle.Cryptography" Version="2.4.0" />

X9ECParametersHolder

public abstract class X9ECParametersHolder
using Org.BouncyCastle.Math.EC; using Org.BouncyCastle.Utilities; namespace Org.BouncyCastle.Asn1.X9 { public abstract class X9ECParametersHolder { private ECCurve m_curve; private X9ECParameters m_parameters; public ECCurve Curve => Objects.EnsureSingletonInitialized(ref m_curve, this, (X9ECParametersHolder self) => self.CreateCurve()); public X9ECParameters Parameters => Objects.EnsureSingletonInitialized(ref m_parameters, this, (X9ECParametersHolder self) => self.CreateParameters()); protected virtual ECCurve CreateCurve() { return Parameters.Curve; } protected abstract X9ECParameters CreateParameters(); } }