18212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrompackage org.bouncycastle.asn1.x9; 28212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom 34c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.asn1.ASN1Object; 48212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstromimport org.bouncycastle.asn1.ASN1OctetString; 54c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.asn1.ASN1Primitive; 68212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstromimport org.bouncycastle.asn1.DEROctetString; 78212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstromimport org.bouncycastle.math.ec.ECCurve; 88212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstromimport org.bouncycastle.math.ec.ECPoint; 98212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom 108212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom/** 118212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom * class for describing an ECPoint as a DER object. 128212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom */ 138212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrompublic class X9ECPoint 144c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom extends ASN1Object 158212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom{ 168212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom ECPoint p; 178212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom 188212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom public X9ECPoint( 198212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom ECPoint p) 208212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom { 218212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom this.p = p; 228212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom } 238212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom 248212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom public X9ECPoint( 258212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom ECCurve c, 268212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom ASN1OctetString s) 278212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom { 288212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom this.p = c.decodePoint(s.getOctets()); 298212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom } 308212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom 318212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom public ECPoint getPoint() 328212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom { 338212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom return p; 348212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom } 358212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom 368212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom /** 378212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom * Produce an object suitable for an ASN1OutputStream. 388212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom * <pre> 398212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom * ECPoint ::= OCTET STRING 408212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom * </pre> 418212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom * <p> 428212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom * Octet string produced using ECPoint.getEncoded(). 438212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom */ 444c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public ASN1Primitive toASN1Primitive() 458212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom { 468212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom return new DEROctetString(p.getEncoded()); 478212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom } 488212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom} 49