1package org.bouncycastle.asn1.nist;
2
3import org.bouncycastle.asn1.ASN1ObjectIdentifier;
4
5/**
6 *
7 * NIST:
8 *     iso/itu(2) joint-assign(16) us(840) organization(1) gov(101) csor(3)
9 */
10public interface NISTObjectIdentifiers
11{
12    //
13    // nistalgorithms(4)
14    //
15    /** 2.16.840.1.101.3.4 -- algorithms */
16    static final ASN1ObjectIdentifier    nistAlgorithm           = new ASN1ObjectIdentifier("2.16.840.1.101.3.4");
17
18    /** 2.16.840.1.101.3.4.2 */
19    static final ASN1ObjectIdentifier    hashAlgs                = nistAlgorithm.branch("2");
20
21    /** 2.16.840.1.101.3.4.2.1 */
22    static final ASN1ObjectIdentifier    id_sha256               = hashAlgs.branch("1");
23    /** 2.16.840.1.101.3.4.2.2 */
24    static final ASN1ObjectIdentifier    id_sha384               = hashAlgs.branch("2");
25    /** 2.16.840.1.101.3.4.2.3 */
26    static final ASN1ObjectIdentifier    id_sha512               = hashAlgs.branch("3");
27    /** 2.16.840.1.101.3.4.2.4 */
28    static final ASN1ObjectIdentifier    id_sha224               = hashAlgs.branch("4");
29    /** 2.16.840.1.101.3.4.2.5 */
30    static final ASN1ObjectIdentifier    id_sha512_224           = hashAlgs.branch("5");
31    /** 2.16.840.1.101.3.4.2.6 */
32    static final ASN1ObjectIdentifier    id_sha512_256           = hashAlgs.branch("6");
33
34    /** 2.16.840.1.101.3.4.2.7 */
35    static final ASN1ObjectIdentifier    id_sha3_224 = hashAlgs.branch("7");
36    /** 2.16.840.1.101.3.4.2.8 */
37    static final ASN1ObjectIdentifier    id_sha3_256 = hashAlgs.branch("8");
38    /** 2.16.840.1.101.3.4.2.9 */
39    static final ASN1ObjectIdentifier    id_sha3_384 = hashAlgs.branch("9");
40    /** 2.16.840.1.101.3.4.2.10 */
41    static final ASN1ObjectIdentifier    id_sha3_512 = hashAlgs.branch("10");
42    /** 2.16.840.1.101.3.4.2.11 */
43    static final ASN1ObjectIdentifier    id_shake128 = hashAlgs.branch("11");
44    /** 2.16.840.1.101.3.4.2.12 */
45    static final ASN1ObjectIdentifier    id_shake256 = hashAlgs.branch("12");
46    /** 2.16.840.1.101.3.4.2.13 */
47    static final ASN1ObjectIdentifier    id_hmacWithSHA3_224 = hashAlgs.branch("13");
48    /** 2.16.840.1.101.3.4.2.14 */
49    static final ASN1ObjectIdentifier    id_hmacWithSHA3_256 = hashAlgs.branch("14");
50    /** 2.16.840.1.101.3.4.2.15 */
51    static final ASN1ObjectIdentifier    id_hmacWithSHA3_384 = hashAlgs.branch("15");
52    /** 2.16.840.1.101.3.4.2.16 */
53    static final ASN1ObjectIdentifier    id_hmacWithSHA3_512 = hashAlgs.branch("16");
54
55    /** 2.16.840.1.101.3.4.1 */
56    static final ASN1ObjectIdentifier    aes                     = nistAlgorithm.branch("1");
57
58    /** 2.16.840.1.101.3.4.1.1 */
59    static final ASN1ObjectIdentifier    id_aes128_ECB           = aes.branch("1");
60    /** 2.16.840.1.101.3.4.1.2 */
61    static final ASN1ObjectIdentifier    id_aes128_CBC           = aes.branch("2");
62    /** 2.16.840.1.101.3.4.1.3 */
63    static final ASN1ObjectIdentifier    id_aes128_OFB           = aes.branch("3");
64    /** 2.16.840.1.101.3.4.1.4 */
65    static final ASN1ObjectIdentifier    id_aes128_CFB           = aes.branch("4");
66    /** 2.16.840.1.101.3.4.1.5 */
67    static final ASN1ObjectIdentifier    id_aes128_wrap          = aes.branch("5");
68    /** 2.16.840.1.101.3.4.1.6 */
69    static final ASN1ObjectIdentifier    id_aes128_GCM           = aes.branch("6");
70    /** 2.16.840.1.101.3.4.1.7 */
71    static final ASN1ObjectIdentifier    id_aes128_CCM           = aes.branch("7");
72    /** 2.16.840.1.101.3.4.1.28 */
73    static final ASN1ObjectIdentifier    id_aes128_wrap_pad      = aes.branch("8");
74
75    /** 2.16.840.1.101.3.4.1.21 */
76    static final ASN1ObjectIdentifier    id_aes192_ECB           = aes.branch("21");
77    /** 2.16.840.1.101.3.4.1.22 */
78    static final ASN1ObjectIdentifier    id_aes192_CBC           = aes.branch("22");
79    /** 2.16.840.1.101.3.4.1.23 */
80    static final ASN1ObjectIdentifier    id_aes192_OFB           = aes.branch("23");
81    /** 2.16.840.1.101.3.4.1.24 */
82    static final ASN1ObjectIdentifier    id_aes192_CFB           = aes.branch("24");
83    /** 2.16.840.1.101.3.4.1.25 */
84    static final ASN1ObjectIdentifier    id_aes192_wrap          = aes.branch("25");
85    /** 2.16.840.1.101.3.4.1.26 */
86    static final ASN1ObjectIdentifier    id_aes192_GCM           = aes.branch("26");
87    /** 2.16.840.1.101.3.4.1.27 */
88    static final ASN1ObjectIdentifier    id_aes192_CCM           = aes.branch("27");
89    /** 2.16.840.1.101.3.4.1.28 */
90    static final ASN1ObjectIdentifier    id_aes192_wrap_pad      = aes.branch("28");
91
92    /** 2.16.840.1.101.3.4.1.41 */
93    static final ASN1ObjectIdentifier    id_aes256_ECB           = aes.branch("41");
94    /** 2.16.840.1.101.3.4.1.42 */
95    static final ASN1ObjectIdentifier    id_aes256_CBC           = aes.branch("42");
96    /** 2.16.840.1.101.3.4.1.43 */
97    static final ASN1ObjectIdentifier    id_aes256_OFB           = aes.branch("43");
98    /** 2.16.840.1.101.3.4.1.44 */
99    static final ASN1ObjectIdentifier    id_aes256_CFB           = aes.branch("44");
100    /** 2.16.840.1.101.3.4.1.45 */
101    static final ASN1ObjectIdentifier    id_aes256_wrap          = aes.branch("45");
102    /** 2.16.840.1.101.3.4.1.46 */
103    static final ASN1ObjectIdentifier    id_aes256_GCM           = aes.branch("46");
104    /** 2.16.840.1.101.3.4.1.47 */
105    static final ASN1ObjectIdentifier    id_aes256_CCM           = aes.branch("47");
106    /** 2.16.840.1.101.3.4.1.48 */
107    static final ASN1ObjectIdentifier    id_aes256_wrap_pad      = aes.branch("48");
108
109    //
110    // signatures
111    //
112    /** 2.16.840.1.101.3.4.3 */
113    static final ASN1ObjectIdentifier    sigAlgs        = nistAlgorithm.branch("3");
114
115    static final ASN1ObjectIdentifier    id_dsa_with_sha2        = sigAlgs;
116
117    /** 2.16.840.1.101.3.4.3.1 */
118    static final ASN1ObjectIdentifier    dsa_with_sha224         = sigAlgs.branch("1");
119    /** 2.16.840.1.101.3.4.3.2 */
120    static final ASN1ObjectIdentifier    dsa_with_sha256         = sigAlgs.branch("2");
121    /** 2.16.840.1.101.3.4.3.3 */
122    static final ASN1ObjectIdentifier    dsa_with_sha384         = sigAlgs.branch("3");
123    /** 2.16.840.1.101.3.4.3.4 */
124    static final ASN1ObjectIdentifier    dsa_with_sha512         = sigAlgs.branch("4");
125    /** 2.16.840.1.101.3.4.3.5 */
126    static final ASN1ObjectIdentifier    id_dsa_with_sha3_224       = sigAlgs.branch("5");
127    /** 2.16.840.1.101.3.4.3.6 */
128    static final ASN1ObjectIdentifier    id_dsa_with_sha3_256       = sigAlgs.branch("6");
129    /** 2.16.840.1.101.3.4.3.7 */
130    static final ASN1ObjectIdentifier    id_dsa_with_sha3_384       = sigAlgs.branch("7");
131    /** 2.16.840.1.101.3.4.3.8 */
132    static final ASN1ObjectIdentifier    id_dsa_with_sha3_512       = sigAlgs.branch("8");
133
134    // ECDSA with SHA-3
135    /** 2.16.840.1.101.3.4.3.9 */
136    static final ASN1ObjectIdentifier    id_ecdsa_with_sha3_224       = sigAlgs.branch("9");
137    /** 2.16.840.1.101.3.4.3.10 */
138    static final ASN1ObjectIdentifier    id_ecdsa_with_sha3_256       = sigAlgs.branch("10");
139    /** 2.16.840.1.101.3.4.3.11 */
140    static final ASN1ObjectIdentifier    id_ecdsa_with_sha3_384       = sigAlgs.branch("11");
141    /** 2.16.840.1.101.3.4.3.12 */
142    static final ASN1ObjectIdentifier    id_ecdsa_with_sha3_512       = sigAlgs.branch("12");
143
144    // RSA PKCS #1 v1.5 Signature with SHA-3 family.
145    /** 2.16.840.1.101.3.4.3.9 */
146    static final ASN1ObjectIdentifier    id_rsassa_pkcs1_v1_5_with_sha3_224       = sigAlgs.branch("13");
147    /** 2.16.840.1.101.3.4.3.10 */
148    static final ASN1ObjectIdentifier    id_rsassa_pkcs1_v1_5_with_sha3_256       = sigAlgs.branch("14");
149    /** 2.16.840.1.101.3.4.3.11 */
150    static final ASN1ObjectIdentifier    id_rsassa_pkcs1_v1_5_with_sha3_384       = sigAlgs.branch("15");
151    /** 2.16.840.1.101.3.4.3.12 */
152    static final ASN1ObjectIdentifier    id_rsassa_pkcs1_v1_5_with_sha3_512       = sigAlgs.branch("16");
153}
154