18212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrompackage org.bouncycastle.crypto.params; 28212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom 38212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstromimport java.math.BigInteger; 48212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom 58212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstromimport org.bouncycastle.math.ec.ECConstants; 68212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstromimport org.bouncycastle.math.ec.ECCurve; 78212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstromimport org.bouncycastle.math.ec.ECPoint; 8a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstromimport org.bouncycastle.util.Arrays; 98212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom 108212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrompublic class ECDomainParameters 118212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom implements ECConstants 128212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom{ 13a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom private ECCurve curve; 14a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom private byte[] seed; 15a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom private ECPoint G; 16a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom private BigInteger n; 17a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom private BigInteger h; 188212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom 198212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom public ECDomainParameters( 208212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom ECCurve curve, 218212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom ECPoint G, 228212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom BigInteger n) 238212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom { 24a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom this(curve, G, n, ONE, null); 258212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom } 268212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom 278212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom public ECDomainParameters( 288212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom ECCurve curve, 298212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom ECPoint G, 308212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom BigInteger n, 318212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom BigInteger h) 328212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom { 33a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom this(curve, G, n, h, null); 348212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom } 358212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom 368212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom public ECDomainParameters( 378212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom ECCurve curve, 388212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom ECPoint G, 398212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom BigInteger n, 408212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom BigInteger h, 418212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom byte[] seed) 428212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom { 438212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom this.curve = curve; 445db505e1f6a68c8d5dfdb0fed0b8607dea7bed96Kenny Root this.G = G.normalize(); 458212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom this.n = n; 468212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom this.h = h; 478212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom this.seed = seed; 488212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom } 498212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom 508212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom public ECCurve getCurve() 518212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom { 528212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom return curve; 538212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom } 548212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom 558212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom public ECPoint getG() 568212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom { 578212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom return G; 588212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom } 598212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom 608212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom public BigInteger getN() 618212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom { 628212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom return n; 638212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom } 648212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom 658212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom public BigInteger getH() 668212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom { 678212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom return h; 688212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom } 698212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom 708212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom public byte[] getSeed() 718212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom { 72a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom return Arrays.clone(seed); 738212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom } 748212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom} 75