16e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrompackage org.bouncycastle.asn1.x9;
26e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
36e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstromimport org.bouncycastle.asn1.ASN1Encodable;
46e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstromimport org.bouncycastle.asn1.ASN1TaggedObject;
56e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstromimport org.bouncycastle.asn1.DERInteger;
66e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstromimport org.bouncycastle.asn1.DERObject;
76e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
86e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrompublic class DHPublicKey
96e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    extends ASN1Encodable
106e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom{
116e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    private DERInteger y;
126e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
136e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    public static DHPublicKey getInstance(ASN1TaggedObject obj, boolean explicit)
146e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    {
156e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        return getInstance(DERInteger.getInstance(obj, explicit));
166e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    }
176e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
186e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    public static DHPublicKey getInstance(Object obj)
196e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    {
206e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        if (obj == null || obj instanceof DHPublicKey)
216e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        {
226e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom            return (DHPublicKey)obj;
236e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        }
246e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
256e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        if (obj instanceof DERInteger)
266e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        {
276e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom            return new DHPublicKey((DERInteger)obj);
286e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        }
296e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
306e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        throw new IllegalArgumentException("Invalid DHPublicKey: " + obj.getClass().getName());
316e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    }
326e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
336e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    public DHPublicKey(DERInteger y)
346e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    {
356e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        if (y == null)
366e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        {
376e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom            throw new IllegalArgumentException("'y' cannot be null");
386e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        }
396e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
406e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        this.y = y;
416e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    }
426e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
436e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    public DERInteger getY()
446e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    {
456e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        return this.y;
466e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    }
476e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
486e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    public DERObject toASN1Object()
496e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    {
506e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        return this.y;
516e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    }
526e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom}
53