1#ifndef CRYPTOPP_OIDS_H
2#define CRYPTOPP_OIDS_H
3
4// crypto-related ASN.1 object identifiers
5
6#include "asn.h"
7
8NAMESPACE_BEGIN(CryptoPP)
9
10NAMESPACE_BEGIN(ASN1)
11
12#define DEFINE_OID(value, name)	inline OID name() {return value;}
13
14DEFINE_OID(1, iso)
15	DEFINE_OID(iso()+2, member_body)
16		DEFINE_OID(member_body()+840, iso_us)
17			DEFINE_OID(iso_us()+10040, ansi_x9_57)
18				DEFINE_OID(ansi_x9_57()+4+1, id_dsa)
19			DEFINE_OID(iso_us()+10045, ansi_x9_62)
20				DEFINE_OID(ansi_x9_62()+1, id_fieldType)
21					DEFINE_OID(id_fieldType()+1, prime_field)
22					DEFINE_OID(id_fieldType()+2, characteristic_two_field)
23						DEFINE_OID(characteristic_two_field()+3, id_characteristic_two_basis)
24							DEFINE_OID(id_characteristic_two_basis()+1, gnBasis)
25							DEFINE_OID(id_characteristic_two_basis()+2, tpBasis)
26							DEFINE_OID(id_characteristic_two_basis()+3, ppBasis)
27				DEFINE_OID(ansi_x9_62()+2, id_publicKeyType)
28					DEFINE_OID(id_publicKeyType()+1, id_ecPublicKey)
29				DEFINE_OID(ansi_x9_62()+3, ansi_x9_62_curves)
30					DEFINE_OID(ansi_x9_62_curves()+1, ansi_x9_62_curves_prime)
31						DEFINE_OID(ansi_x9_62_curves_prime()+1, secp192r1)
32						DEFINE_OID(ansi_x9_62_curves_prime()+7, secp256r1)
33			DEFINE_OID(iso_us()+113549, rsadsi)
34				DEFINE_OID(rsadsi()+1, pkcs)
35					DEFINE_OID(pkcs()+1, pkcs_1)
36						DEFINE_OID(pkcs_1()+1, rsaEncryption);
37				DEFINE_OID(rsadsi()+2, rsadsi_digestAlgorithm)
38					DEFINE_OID(rsadsi_digestAlgorithm()+2, id_md2)
39					DEFINE_OID(rsadsi_digestAlgorithm()+5, id_md5)
40	DEFINE_OID(iso()+3, identified_organization);
41		DEFINE_OID(identified_organization()+14, oiw);
42			DEFINE_OID(oiw()+14, oiw_secsig);
43				DEFINE_OID(oiw_secsig()+2, oiw_secsig_algorithms);
44					DEFINE_OID(oiw_secsig_algorithms()+26, id_sha1);
45
46		DEFINE_OID(identified_organization()+36, teletrust);
47			DEFINE_OID(teletrust()+3, teletrust_algorithm)
48				DEFINE_OID(teletrust_algorithm()+2+1, id_ripemd160)
49				DEFINE_OID(teletrust_algorithm()+3+2+8+1, teletrust_ellipticCurve)
50					DEFINE_OID(teletrust_ellipticCurve()+1+1, brainpoolP160r1)
51					DEFINE_OID(teletrust_ellipticCurve()+1+3, brainpoolP192r1)
52					DEFINE_OID(teletrust_ellipticCurve()+1+5, brainpoolP224r1)
53					DEFINE_OID(teletrust_ellipticCurve()+1+7, brainpoolP256r1)
54					DEFINE_OID(teletrust_ellipticCurve()+1+9, brainpoolP320r1)
55					DEFINE_OID(teletrust_ellipticCurve()+1+11, brainpoolP384r1)
56					DEFINE_OID(teletrust_ellipticCurve()+1+13, brainpoolP512r1)
57
58		DEFINE_OID(identified_organization()+132, certicom);
59			DEFINE_OID(certicom()+0, certicom_ellipticCurve);
60				// these are sorted by curve type and then by OID
61				// first curves based on GF(p)
62				DEFINE_OID(certicom_ellipticCurve()+6, secp112r1);
63				DEFINE_OID(certicom_ellipticCurve()+7, secp112r2);
64				DEFINE_OID(certicom_ellipticCurve()+8, secp160r1);
65				DEFINE_OID(certicom_ellipticCurve()+9, secp160k1);
66				DEFINE_OID(certicom_ellipticCurve()+10, secp256k1);
67				DEFINE_OID(certicom_ellipticCurve()+28, secp128r1);
68				DEFINE_OID(certicom_ellipticCurve()+29, secp128r2);
69				DEFINE_OID(certicom_ellipticCurve()+30, secp160r2);
70				DEFINE_OID(certicom_ellipticCurve()+31, secp192k1);
71				DEFINE_OID(certicom_ellipticCurve()+32, secp224k1);
72				DEFINE_OID(certicom_ellipticCurve()+33, secp224r1);
73				DEFINE_OID(certicom_ellipticCurve()+34, secp384r1);
74				DEFINE_OID(certicom_ellipticCurve()+35, secp521r1);
75				// then curves based on GF(2^n)
76				DEFINE_OID(certicom_ellipticCurve()+1, sect163k1);
77				DEFINE_OID(certicom_ellipticCurve()+2, sect163r1);
78				DEFINE_OID(certicom_ellipticCurve()+3, sect239k1);
79				DEFINE_OID(certicom_ellipticCurve()+4, sect113r1);
80				DEFINE_OID(certicom_ellipticCurve()+5, sect113r2);
81				DEFINE_OID(certicom_ellipticCurve()+15, sect163r2);
82				DEFINE_OID(certicom_ellipticCurve()+16, sect283k1);
83				DEFINE_OID(certicom_ellipticCurve()+17, sect283r1);
84				DEFINE_OID(certicom_ellipticCurve()+22, sect131r1);
85				DEFINE_OID(certicom_ellipticCurve()+23, sect131r2);
86				DEFINE_OID(certicom_ellipticCurve()+24, sect193r1);
87				DEFINE_OID(certicom_ellipticCurve()+25, sect193r2);
88				DEFINE_OID(certicom_ellipticCurve()+26, sect233k1);
89				DEFINE_OID(certicom_ellipticCurve()+27, sect233r1);
90				DEFINE_OID(certicom_ellipticCurve()+36, sect409k1);
91				DEFINE_OID(certicom_ellipticCurve()+37, sect409r1);
92				DEFINE_OID(certicom_ellipticCurve()+38, sect571k1);
93				DEFINE_OID(certicom_ellipticCurve()+39, sect571r1);
94DEFINE_OID(2, joint_iso_ccitt)
95	DEFINE_OID(joint_iso_ccitt()+16, country)
96		DEFINE_OID(country()+840, joint_iso_ccitt_us)
97			DEFINE_OID(joint_iso_ccitt_us()+1, us_organization)
98				DEFINE_OID(us_organization()+101, us_gov)
99					DEFINE_OID(us_gov()+3, csor)
100						DEFINE_OID(csor()+4, nistalgorithms)
101							DEFINE_OID(nistalgorithms()+1, aes)
102								DEFINE_OID(aes()+1, id_aes128_ECB)
103								DEFINE_OID(aes()+2, id_aes128_cbc)
104								DEFINE_OID(aes()+3, id_aes128_ofb)
105								DEFINE_OID(aes()+4, id_aes128_cfb)
106								DEFINE_OID(aes()+21, id_aes192_ECB)
107								DEFINE_OID(aes()+22, id_aes192_cbc)
108								DEFINE_OID(aes()+23, id_aes192_ofb)
109								DEFINE_OID(aes()+24, id_aes192_cfb)
110								DEFINE_OID(aes()+41, id_aes256_ECB)
111								DEFINE_OID(aes()+42, id_aes256_cbc)
112								DEFINE_OID(aes()+43, id_aes256_ofb)
113								DEFINE_OID(aes()+44, id_aes256_cfb)
114							DEFINE_OID(nistalgorithms()+2, nist_hashalgs)
115								DEFINE_OID(nist_hashalgs()+1, id_sha256)
116								DEFINE_OID(nist_hashalgs()+2, id_sha384)
117								DEFINE_OID(nist_hashalgs()+3, id_sha512)
118
119NAMESPACE_END
120
121NAMESPACE_END
122
123#endif
124