18212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrompackage org.bouncycastle.jce.spec; 28212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom 38212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstromimport org.bouncycastle.math.ec.ECPoint; 48212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom 58212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom/** 68212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom * Elliptic Curve public key specification 78212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom */ 88212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrompublic class ECPublicKeySpec 98212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom extends ECKeySpec 108212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom{ 118212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom private ECPoint q; 128212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom 138212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom /** 148212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom * base constructor 158212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom * 168212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom * @param q the public point on the curve. 178212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom * @param spec the domain parameters for the curve. 188212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom */ 198212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom public ECPublicKeySpec( 208212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom ECPoint q, 218212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom ECParameterSpec spec) 228212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom { 238212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom super(spec); 248212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom 255db505e1f6a68c8d5dfdb0fed0b8607dea7bed96Kenny Root if (q.getCurve() != null) 265db505e1f6a68c8d5dfdb0fed0b8607dea7bed96Kenny Root { 275db505e1f6a68c8d5dfdb0fed0b8607dea7bed96Kenny Root this.q = q.normalize(); 285db505e1f6a68c8d5dfdb0fed0b8607dea7bed96Kenny Root } 295db505e1f6a68c8d5dfdb0fed0b8607dea7bed96Kenny Root else 305db505e1f6a68c8d5dfdb0fed0b8607dea7bed96Kenny Root { 315db505e1f6a68c8d5dfdb0fed0b8607dea7bed96Kenny Root this.q = q; 325db505e1f6a68c8d5dfdb0fed0b8607dea7bed96Kenny Root } 338212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom } 348212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom 358212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom /** 368212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom * return the public point q 378212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom */ 388212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom public ECPoint getQ() 398212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom { 408212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom return q; 418212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom } 428212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom} 43