1
package org.bouncycastle.asn1.x9;
3
import java.math.BigInteger;
5
import org.bouncycastle.asn1.ASN1EncodableVector;
6
import org.bouncycastle.asn1.ASN1OctetString;
7
import org.bouncycastle.asn1.ASN1Sequence;
8
import org.bouncycastle.asn1.DERBitString;
9
import org.bouncycastle.asn1.DEREncodable;
10
import org.bouncycastle.asn1.DERInteger;
11
import org.bouncycastle.asn1.DERObject;
12
import org.bouncycastle.asn1.DERSequence;
13
import org.bouncycastle.math.ec.ECCurve;
14
import org.bouncycastle.math.ec.ECCurveFp;
17
* ASN.1 def for Elliptic-Curve Curve structure. See
18
* X9.62, for further details.
21
implements DEREncodable, X9ObjectIdentifiers
23
private ECCurve curve;
45
if (fieldID.getIdentifier().equals(prime_field))
47
BigInteger q = ((DERInteger)fieldID.getParameters()).getValue();
48
X9FieldElement x9A = new X9FieldElement(true, q, (ASN1OctetString)seq.getObjectAt(0));
49
X9FieldElement x9B = new X9FieldElement(true, q, (ASN1OctetString)seq.getObjectAt(1));
50
curve = new ECCurveFp(q, x9A.getValue().toBigInteger(), x9B.getValue().toBigInteger());
54
throw new RuntimeException("not implemented");
59
seed = ((DERBitString)seq.getObjectAt(2)).getBytes();
63
public ECCurve getCurve()
68
public byte[] getSeed()
75
* Curve ::= SEQUENCE {
78
* seed BIT STRING OPTIONAL
82
public DERObject getDERObject()
84
ASN1EncodableVector seq = new ASN1EncodableVector();
86
seq.add(new X9FieldElement(curve.getA()).getDERObject());
87
seq.add(new X9FieldElement(curve.getB()).getDERObject());
91
seq.add(new DERBitString(seed));
94
return new DERSequence(seq);