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();
}
}