001package org.apache.commons.ssl.org.bouncycastle.asn1.x9;
002
003import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Integer;
004import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Object;
005import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Primitive;
006import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1TaggedObject;
007
008public class DHPublicKey
009    extends ASN1Object
010{
011    private ASN1Integer y;
012
013    public static DHPublicKey getInstance(ASN1TaggedObject obj, boolean explicit)
014    {
015        return getInstance(ASN1Integer.getInstance(obj, explicit));
016    }
017
018    public static DHPublicKey getInstance(Object obj)
019    {
020        if (obj == null || obj instanceof DHPublicKey)
021        {
022            return (DHPublicKey)obj;
023        }
024
025        if (obj instanceof ASN1Integer)
026        {
027            return new DHPublicKey((ASN1Integer)obj);
028        }
029
030        throw new IllegalArgumentException("Invalid DHPublicKey: " + obj.getClass().getName());
031    }
032
033    public DHPublicKey(ASN1Integer y)
034    {
035        if (y == null)
036        {
037            throw new IllegalArgumentException("'y' cannot be null");
038        }
039
040        this.y = y;
041    }
042
043    public ASN1Integer getY()
044    {
045        return this.y;
046    }
047
048    public ASN1Primitive toASN1Primitive()
049    {
050        return this.y;
051    }
052}