package org.bouncycastle.crypto.params;

import java.math.BigInteger;

public class CramerShoupPublicKeyParameters
    extends CramerShoupKeyParameters
{

    private BigInteger c, d, h; // public key group elements

    public CramerShoupPublicKeyParameters(CramerShoupParameters params, BigInteger c, BigInteger d, BigInteger h)
    {
        super(false, params);

        this.c = c;
        this.d = d;
        this.h = h;
    }

    public BigInteger getC()
    {
        return c;
    }

    public BigInteger getD()
    {
        return d;
    }

    public BigInteger getH()
    {
        return h;
    }

    public int hashCode()
    {
        return c.hashCode() ^ d.hashCode() ^ h.hashCode() ^ super.hashCode();
    }

    public boolean equals(Object obj)
    {
        if (!(obj instanceof CramerShoupPublicKeyParameters))
        {
            return false;
        }

        CramerShoupPublicKeyParameters other = (CramerShoupPublicKeyParameters)obj;

        return other.getC().equals(c) && other.getD().equals(d) && other.getH().equals(h) && super.equals(obj);
    }
}
