001package org.apache.commons.ssl.org.bouncycastle.asn1.ua;
002
003import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Object;
004import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1OctetString;
005import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Primitive;
006import org.apache.commons.ssl.org.bouncycastle.asn1.DEROctetString;
007import org.bouncycastle.math.ec.ECPoint;
008
009public class DSTU4145PublicKey
010    extends ASN1Object
011{
012
013    private ASN1OctetString pubKey;
014
015    public DSTU4145PublicKey(ECPoint pubKey)
016    {
017        // We always use big-endian in parameter encoding
018        this.pubKey = new DEROctetString(DSTU4145PointEncoder.encodePoint(pubKey));
019    }
020
021    private DSTU4145PublicKey(ASN1OctetString ocStr)
022    {
023        pubKey = ocStr;
024    }
025
026    public static DSTU4145PublicKey getInstance(Object obj)
027    {
028        if (obj instanceof DSTU4145PublicKey)
029        {
030            return (DSTU4145PublicKey)obj;
031        }
032
033        if (obj != null)
034        {
035            return new DSTU4145PublicKey(ASN1OctetString.getInstance(obj));
036        }
037
038        return null;
039    }
040
041    public ASN1Primitive toASN1Primitive()
042    {
043        return pubKey;
044    }
045
046}