1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
package cz.crcs.ectester.reader.ec;
import cz.crcs.ectester.applet.EC_Consts;
import javacard.security.KeyPair;
/**
* An Elliptic curve, contains parameters Fp/F2M, A, B, G, R, (K)?.
*
* @author Jan Jancar johny@neuromancer.sk
*/
public class EC_Curve extends EC_Params {
private short bits;
private byte field;
private String desc;
/**
* @param bits
* @param field KeyPair.ALG_EC_FP or KeyPair.ALG_EC_F2M
*/
public EC_Curve(short bits, byte field) {
super(field == KeyPair.ALG_EC_FP ? EC_Consts.PARAMETERS_DOMAIN_FP : EC_Consts.PARAMETERS_DOMAIN_F2M);
this.bits = bits;
this.field = field;
}
public EC_Curve(String id, short bits, byte field) {
this(bits, field);
this.id = id;
}
public EC_Curve(String id, short bits, byte field, String desc) {
this(id, bits, field);
this.desc = desc;
}
public short getBits() {
return bits;
}
public byte getField() {
return field;
}
public String getDesc() {
return desc;
}
@Override
public String toString() {
return "<" + getId() + "> " + (field == KeyPair.ALG_EC_FP ? "Prime" : "Binary") + " field Elliptic curve (" + String.valueOf(bits) + "b)" + (desc == null ? "" : ": " + desc);
}
}
|