ECDomainParameters.java revision 8212855a312dc8ebe081a3e08b1d2d8f8757af02
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;
88212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom
98212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrompublic class ECDomainParameters
108212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom    implements ECConstants
118212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom{
128212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom    ECCurve     curve;
138212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom    byte[]      seed;
148212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom    ECPoint     G;
158212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom    BigInteger  n;
168212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom    BigInteger  h;
178212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom
188212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom    public ECDomainParameters(
198212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom        ECCurve     curve,
208212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom        ECPoint     G,
218212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom        BigInteger  n)
228212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom    {
238212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom        this.curve = curve;
248212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom        this.G = G;
258212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom        this.n = n;
268212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom        this.h = ONE;
278212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom        this.seed = null;
288212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom    }
298212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom
308212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom    public ECDomainParameters(
318212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom        ECCurve     curve,
328212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom        ECPoint     G,
338212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom        BigInteger  n,
348212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom        BigInteger  h)
358212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom    {
368212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom        this.curve = curve;
378212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom        this.G = G;
388212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom        this.n = n;
398212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom        this.h = h;
408212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom        this.seed = null;
418212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom    }
428212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom
438212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom    public ECDomainParameters(
448212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom        ECCurve     curve,
458212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom        ECPoint     G,
468212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom        BigInteger  n,
478212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom        BigInteger  h,
488212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom        byte[]      seed)
498212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom    {
508212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom        this.curve = curve;
518212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom        this.G = G;
528212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom        this.n = n;
538212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom        this.h = h;
548212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom        this.seed = seed;
558212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom    }
568212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom
578212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom    public ECCurve getCurve()
588212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom    {
598212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom        return curve;
608212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom    }
618212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom
628212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom    public ECPoint getG()
638212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom    {
648212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom        return G;
658212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom    }
668212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom
678212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom    public BigInteger getN()
688212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom    {
698212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom        return n;
708212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom    }
718212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom
728212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom    public BigInteger getH()
738212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom    {
748212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom        return h;
758212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom    }
768212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom
778212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom    public byte[] getSeed()
788212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom    {
798212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom        return seed;
808212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom    }
818212855a312dc8ebe081a3e08b1d2d8f8757af02Brian Carlstrom}
82