1package org.bouncycastle.asn1.x9;
2
3import org.bouncycastle.asn1.ASN1ObjectIdentifier;
4
5public interface X9ObjectIdentifiers
6{
7    //
8    // X9.62
9    //
10    // ansi-X9-62 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
11    //            us(840) ansi-x962(10045) }
12    //
13    static final ASN1ObjectIdentifier ansi_X9_62 = new ASN1ObjectIdentifier("1.2.840.10045");
14    static final ASN1ObjectIdentifier id_fieldType = ansi_X9_62.branch("1");
15
16    static final ASN1ObjectIdentifier prime_field = id_fieldType.branch("1");
17
18    static final ASN1ObjectIdentifier characteristic_two_field = id_fieldType.branch("2");
19
20    static final ASN1ObjectIdentifier gnBasis = id_fieldType.branch("2.3.1");
21
22    static final ASN1ObjectIdentifier tpBasis = id_fieldType.branch("2.3.2");
23
24    static final ASN1ObjectIdentifier ppBasis = id_fieldType.branch("2.3.3");
25
26    static final ASN1ObjectIdentifier id_ecSigType = ansi_X9_62.branch("4");
27
28    static final ASN1ObjectIdentifier ecdsa_with_SHA1 = new ASN1ObjectIdentifier(id_ecSigType + ".1");
29
30    static final ASN1ObjectIdentifier id_publicKeyType = ansi_X9_62.branch("2");
31
32    static final ASN1ObjectIdentifier id_ecPublicKey = id_publicKeyType.branch("1");
33
34    static final ASN1ObjectIdentifier ecdsa_with_SHA2 = id_ecSigType.branch("3");
35
36    static final ASN1ObjectIdentifier ecdsa_with_SHA224 = ecdsa_with_SHA2.branch("1");
37
38    static final ASN1ObjectIdentifier ecdsa_with_SHA256 = ecdsa_with_SHA2.branch("2");
39
40    static final ASN1ObjectIdentifier ecdsa_with_SHA384 = ecdsa_with_SHA2.branch("3");
41
42    static final ASN1ObjectIdentifier ecdsa_with_SHA512 = ecdsa_with_SHA2.branch("4");
43
44    //
45    // named curves
46    //
47    static final ASN1ObjectIdentifier ellipticCurve = ansi_X9_62.branch("3");
48
49    //
50    // Two Curves
51    //
52    static final ASN1ObjectIdentifier  cTwoCurve = ellipticCurve.branch("0");
53
54    static final ASN1ObjectIdentifier c2pnb163v1 = cTwoCurve.branch("1");
55    static final ASN1ObjectIdentifier c2pnb163v2 = cTwoCurve.branch("2");
56    static final ASN1ObjectIdentifier c2pnb163v3 = cTwoCurve.branch("3");
57    static final ASN1ObjectIdentifier c2pnb176w1 = cTwoCurve.branch("4");
58    static final ASN1ObjectIdentifier c2tnb191v1 = cTwoCurve.branch("5");
59    static final ASN1ObjectIdentifier c2tnb191v2 = cTwoCurve.branch("6");
60    static final ASN1ObjectIdentifier c2tnb191v3 = cTwoCurve.branch("7");
61    static final ASN1ObjectIdentifier c2onb191v4 = cTwoCurve.branch("8");
62    static final ASN1ObjectIdentifier c2onb191v5 = cTwoCurve.branch("9");
63    static final ASN1ObjectIdentifier c2pnb208w1 = cTwoCurve.branch("10");
64    static final ASN1ObjectIdentifier c2tnb239v1 = cTwoCurve.branch("11");
65    static final ASN1ObjectIdentifier c2tnb239v2 = cTwoCurve.branch("12");
66    static final ASN1ObjectIdentifier c2tnb239v3 = cTwoCurve.branch("13");
67    static final ASN1ObjectIdentifier c2onb239v4 = cTwoCurve.branch("14");
68    static final ASN1ObjectIdentifier c2onb239v5 = cTwoCurve.branch("15");
69    static final ASN1ObjectIdentifier c2pnb272w1 = cTwoCurve.branch("16");
70    static final ASN1ObjectIdentifier c2pnb304w1 = cTwoCurve.branch("17");
71    static final ASN1ObjectIdentifier c2tnb359v1 = cTwoCurve.branch("18");
72    static final ASN1ObjectIdentifier c2pnb368w1 = cTwoCurve.branch("19");
73    static final ASN1ObjectIdentifier c2tnb431r1 = cTwoCurve.branch("20");
74
75    //
76    // Prime
77    //
78    static final ASN1ObjectIdentifier primeCurve = ellipticCurve.branch("1");
79
80    static final ASN1ObjectIdentifier prime192v1 = primeCurve.branch("1");
81    static final ASN1ObjectIdentifier prime192v2 = primeCurve.branch("2");
82    static final ASN1ObjectIdentifier prime192v3 = primeCurve.branch("3");
83    static final ASN1ObjectIdentifier prime239v1 = primeCurve.branch("4");
84    static final ASN1ObjectIdentifier prime239v2 = primeCurve.branch("5");
85    static final ASN1ObjectIdentifier prime239v3 = primeCurve.branch("6");
86    static final ASN1ObjectIdentifier prime256v1 = primeCurve.branch("7");
87
88    //
89    // DSA
90    //
91    // dsapublicnumber OBJECT IDENTIFIER ::= { iso(1) member-body(2)
92    //            us(840) ansi-x957(10040) number-type(4) 1 }
93    static final ASN1ObjectIdentifier id_dsa = new ASN1ObjectIdentifier("1.2.840.10040.4.1");
94
95    /**
96     * id-dsa-with-sha1 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) x9-57
97     * (10040) x9cm(4) 3 }
98     */
99    public static final ASN1ObjectIdentifier id_dsa_with_sha1 = new ASN1ObjectIdentifier("1.2.840.10040.4.3");
100
101    /**
102     * X9.63
103     */
104    public static final ASN1ObjectIdentifier x9_63_scheme = new ASN1ObjectIdentifier("1.3.133.16.840.63.0");
105    public static final ASN1ObjectIdentifier dhSinglePass_stdDH_sha1kdf_scheme = x9_63_scheme.branch("2");
106    public static final ASN1ObjectIdentifier dhSinglePass_cofactorDH_sha1kdf_scheme = x9_63_scheme.branch("3");
107    public static final ASN1ObjectIdentifier mqvSinglePass_sha1kdf_scheme = x9_63_scheme.branch("16");
108
109    /**
110     * X9.42
111     */
112
113    static final ASN1ObjectIdentifier ansi_X9_42 = new ASN1ObjectIdentifier("1.2.840.10046");
114
115    //
116    // Diffie-Hellman
117    //
118    // dhpublicnumber OBJECT IDENTIFIER ::= { iso(1) member-body(2)
119    //            us(840) ansi-x942(10046) number-type(2) 1 }
120    //
121    public static final ASN1ObjectIdentifier dhpublicnumber = ansi_X9_42.branch("2.1");
122
123    public static final ASN1ObjectIdentifier x9_42_schemes = ansi_X9_42.branch("3");
124    public static final ASN1ObjectIdentifier dhStatic = x9_42_schemes.branch("1");
125    public static final ASN1ObjectIdentifier dhEphem = x9_42_schemes.branch("2");
126    public static final ASN1ObjectIdentifier dhOneFlow = x9_42_schemes.branch("3");
127    public static final ASN1ObjectIdentifier dhHybrid1 = x9_42_schemes.branch("4");
128    public static final ASN1ObjectIdentifier dhHybrid2 = x9_42_schemes.branch("5");
129    public static final ASN1ObjectIdentifier dhHybridOneFlow = x9_42_schemes.branch("6");
130    public static final ASN1ObjectIdentifier mqv2 = x9_42_schemes.branch("7");
131    public static final ASN1ObjectIdentifier mqv1 = x9_42_schemes.branch("8");
132}
133