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

ECPrivateKeyParameters

using Org.BouncyCastle.Asn1; using Org.BouncyCastle.Math; namespace Org.BouncyCastle.Crypto.Parameters { public class ECPrivateKeyParameters : ECKeyParameters { private readonly BigInteger m_d; public BigInteger D => m_d; public ECPrivateKeyParameters(BigInteger d, ECDomainParameters parameters) : this("EC", d, parameters) { } public ECPrivateKeyParameters(string algorithm, BigInteger d, ECDomainParameters parameters) : base(algorithm, true, parameters) { m_d = base.Parameters.ValidatePrivateScalar(d); } public ECPrivateKeyParameters(string algorithm, BigInteger d, DerObjectIdentifier publicKeyParamSet) : base(algorithm, true, publicKeyParamSet) { m_d = base.Parameters.ValidatePrivateScalar(d); } public override bool Equals(object obj) { ECPrivateKeyParameters eCPrivateKeyParameters = obj as ECPrivateKeyParameters; if (eCPrivateKeyParameters != null) return Equals(eCPrivateKeyParameters); return false; } protected bool Equals(ECPrivateKeyParameters other) { if (m_d.Equals(other.m_d)) return Equals((ECKeyParameters)other); return false; } public override int GetHashCode() { return m_d.GetHashCode() ^ base.GetHashCode(); } } }