ECPublicKeyParameters
using Org.BouncyCastle.Asn1;
using Org.BouncyCastle.Math.EC;
namespace Org.BouncyCastle.Crypto.Parameters
{
public class ECPublicKeyParameters : ECKeyParameters
{
private readonly ECPoint m_q;
public ECPoint Q => m_q;
public ECPublicKeyParameters(ECPoint q, ECDomainParameters parameters)
: this("EC", q, parameters)
{
}
public ECPublicKeyParameters(string algorithm, ECPoint q, ECDomainParameters parameters)
: base(algorithm, false, parameters)
{
m_q = ECDomainParameters.ValidatePublicPoint(base.Parameters.Curve, q);
}
public ECPublicKeyParameters(string algorithm, ECPoint q, DerObjectIdentifier publicKeyParamSet)
: base(algorithm, false, publicKeyParamSet)
{
m_q = ECDomainParameters.ValidatePublicPoint(base.Parameters.Curve, q);
}
public override bool Equals(object obj)
{
ECPublicKeyParameters eCPublicKeyParameters = obj as ECPublicKeyParameters;
if (eCPublicKeyParameters != null)
return Equals(eCPublicKeyParameters);
return false;
}
protected bool Equals(ECPublicKeyParameters other)
{
if (m_q.Equals(other.m_q))
return Equals((ECKeyParameters)other);
return false;
}
public override int GetHashCode()
{
return m_q.GetHashCode() ^ base.GetHashCode();
}
}
}