001package org.apache.commons.ssl.org.bouncycastle.asn1.x9; 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.ECCurve; 008import org.bouncycastle.math.ec.ECPoint; 009 010/** 011 * class for describing an ECPoint as a DER object. 012 */ 013public class X9ECPoint 014 extends ASN1Object 015{ 016 ECPoint p; 017 018 public X9ECPoint( 019 ECPoint p) 020 { 021 this.p = p.normalize(); 022 } 023 024 public X9ECPoint( 025 ECCurve c, 026 ASN1OctetString s) 027 { 028 this.p = c.decodePoint(s.getOctets()); 029 } 030 031 public ECPoint getPoint() 032 { 033 return p; 034 } 035 036 /** 037 * Produce an object suitable for an ASN1OutputStream. 038 * <pre> 039 * ECPoint ::= OCTET STRING 040 * </pre> 041 * <p> 042 * Octet string produced using ECPoint.getEncoded(). 043 */ 044 public ASN1Primitive toASN1Primitive() 045 { 046 return new DEROctetString(p.getEncoded()); 047 } 048}