1 // oids.h - originally written and placed in the public domain by Wei Dai 2 3 /// \file oids.h 4 /// \brief ASN.1 object identifiers for algorthms and schemes 5 /// \details Most OIDs can be found at http://www.oid-info.com/. The Chinese OIDs 6 /// are assigned in GM/T 0006-2012, Cryptographic Application Identifier Criterion 7 /// Specification. A reproduction can be found at http://gmssl.org/docs/oid.html. 8 /// There seems to be some confusion between the text of GmSSL's oid.html web page 9 /// and the actual OID used in the code. We used the same OIDs that were detailed in 10 /// http://github.com/guanzhi/GmSSL/blob/master/crypto/objects/objects.txt. 11 12 #ifndef CRYPTOPP_OIDS_H 13 #define CRYPTOPP_OIDS_H 14 15 #include "asn.h" 16 17 NAMESPACE_BEGIN(CryptoPP) 18 19 NAMESPACE_BEGIN(ASN1) 20 21 #define DEFINE_OID(value, name) inline OID name() {return value;} 22 23 DEFINE_OID(1, iso) 24 DEFINE_OID(iso()+2, member_body) 25 DEFINE_OID(member_body()+156, iso_cn) 26 DEFINE_OID(iso_cn()+10197, oscca) 27 DEFINE_OID(oscca()+1, sm_scheme) 28 DEFINE_OID(sm_scheme()+104, sms4) 29 DEFINE_OID(sm_scheme()+301, sm2p256v1) 30 DEFINE_OID(sm2p256v1()+1, sm2sign) 31 DEFINE_OID(sm2p256v1()+2, sm2exchange) 32 DEFINE_OID(sm2p256v1()+3, sm2encrypt) 33 DEFINE_OID(sm2encrypt()+1, sm2encrypt_recommendedParameters) 34 DEFINE_OID(sm2encrypt()+2, sm2encrypt_specifiedParameters) 35 DEFINE_OID(member_body()+840, iso_us) 36 DEFINE_OID(iso_us()+10040, ansi_x9_57) 37 DEFINE_OID(ansi_x9_57()+4, ansi_x9cm) 38 DEFINE_OID(ansi_x9cm()+1, id_dsa) 39 DEFINE_OID(iso_us()+10045, ansi_x9_62) 40 DEFINE_OID(ansi_x9_62()+1, id_fieldType) 41 DEFINE_OID(id_fieldType()+1, prime_field) 42 DEFINE_OID(id_fieldType()+2, characteristic_two_field) 43 DEFINE_OID(characteristic_two_field()+3, id_characteristic_two_basis) 44 DEFINE_OID(id_characteristic_two_basis()+1, gnBasis) 45 DEFINE_OID(id_characteristic_two_basis()+2, tpBasis) 46 DEFINE_OID(id_characteristic_two_basis()+3, ppBasis) 47 DEFINE_OID(ansi_x9_62()+2, id_publicKeyType) 48 DEFINE_OID(id_publicKeyType()+1, id_ecPublicKey) 49 DEFINE_OID(ansi_x9_62()+3, ansi_x9_62_curves) 50 DEFINE_OID(ansi_x9_62_curves()+1, ansi_x9_62_curves_prime) 51 // ANSI X9.62 52 DEFINE_OID(ansi_x9_62_curves_prime()+1, secp192r1) // secp192v1 53 //DEFINE_OID(ansi_x9_62_curves_prime()+2, secp192v2) 54 //DEFINE_OID(ansi_x9_62_curves_prime()+3, secp192v3) 55 //DEFINE_OID(ansi_x9_62_curves_prime()+4, secp239v1) 56 //DEFINE_OID(ansi_x9_62_curves_prime()+5, secp239v2) 57 //DEFINE_OID(ansi_x9_62_curves_prime()+6, secp239v3) 58 DEFINE_OID(ansi_x9_62_curves_prime()+7, secp256r1) // secp256v1 59 DEFINE_OID(ansi_x9_62()+4, ansi_signatures) 60 DEFINE_OID(ansi_signatures()+3, ecdsa_with_sha2) 61 DEFINE_OID(ecdsa_with_sha2()+1, ecdsa_with_sha224) 62 DEFINE_OID(ecdsa_with_sha2()+2, ecdsa_with_sha256) 63 DEFINE_OID(ecdsa_with_sha2()+3, ecdsa_with_sha384) 64 DEFINE_OID(ecdsa_with_sha2()+4, ecdsa_with_sha512) 65 DEFINE_OID(iso_us()+113549, rsadsi) 66 DEFINE_OID(rsadsi()+1, pkcs) 67 DEFINE_OID(pkcs()+1, pkcs_1) 68 // Arc from PKCS #1 and RFC 2459 69 DEFINE_OID(pkcs_1()+1, rsaEncryption) 70 DEFINE_OID(pkcs_1()+2, md2WithRSAEncryption) 71 DEFINE_OID(pkcs_1()+3, md4withRSAEncryption) 72 DEFINE_OID(pkcs_1()+4, md5WithRSAEncryption) 73 DEFINE_OID(pkcs_1()+5, sha1WithRSAEncryption) 74 DEFINE_OID(pkcs_1()+10, rsassa_pss) 75 DEFINE_OID(pkcs_1()+11, sha256WithRSAEncryption) 76 DEFINE_OID(pkcs_1()+12, sha384WithRSAEncryption) 77 DEFINE_OID(pkcs_1()+13, sha512WithRSAEncryption) 78 DEFINE_OID(pkcs_1()+14, sha224WithRSAEncryption) 79 DEFINE_OID(pkcs_1()+15, sha512_224WithRSAEncryption) 80 DEFINE_OID(pkcs_1()+16, sha512_256WithRSAEncryption) 81 DEFINE_OID(rsadsi()+2, rsadsi_digestAlgorithm) 82 DEFINE_OID(rsadsi_digestAlgorithm()+2, id_md2) 83 DEFINE_OID(rsadsi_digestAlgorithm()+5, id_md5) 84 DEFINE_OID(iso()+3, identified_organization) 85 // Arc from http://tools.ietf.org/html/draft-josefsson-pkix-newcurves 86 DEFINE_OID(identified_organization()+6, dod) 87 DEFINE_OID(dod()+1, internet) 88 DEFINE_OID(internet()+4, internet_private) 89 DEFINE_OID(internet_private()+1, enterprise) 90 DEFINE_OID(enterprise()+11591,gnu) 91 DEFINE_OID(gnu()+15,ellipticCurve) 92 DEFINE_OID(ellipticCurve()+1,curve25519) 93 DEFINE_OID(ellipticCurve()+2,curve448) 94 DEFINE_OID(ellipticCurve()+3,curve25519ph) 95 DEFINE_OID(ellipticCurve()+4,curve448ph) 96 DEFINE_OID(identified_organization()+14, oiw) 97 DEFINE_OID(oiw()+3, oiw_secsig) 98 DEFINE_OID(oiw_secsig()+2, oiw_secsig_algorithms) 99 DEFINE_OID(oiw_secsig_algorithms()+26, id_sha1) 100 DEFINE_OID(oiw()+7, dssig) 101 DEFINE_OID(dssig()+2, algorithm) 102 DEFINE_OID(algorithm()+1, encryptionAlgorithm) 103 DEFINE_OID(encryptionAlgorithm()+1, elGamal) 104 DEFINE_OID(identified_organization()+36, teletrust) 105 DEFINE_OID(teletrust()+3, teletrust_algorithm) 106 DEFINE_OID(teletrust_algorithm()+2+1, id_ripemd160) 107 DEFINE_OID(teletrust_algorithm()+3+2+8+1, teletrust_ellipticCurve) 108 DEFINE_OID(teletrust_ellipticCurve()+1+1, brainpoolP160r1) 109 DEFINE_OID(teletrust_ellipticCurve()+1+3, brainpoolP192r1) 110 DEFINE_OID(teletrust_ellipticCurve()+1+5, brainpoolP224r1) 111 DEFINE_OID(teletrust_ellipticCurve()+1+7, brainpoolP256r1) 112 DEFINE_OID(teletrust_ellipticCurve()+1+9, brainpoolP320r1) 113 DEFINE_OID(teletrust_ellipticCurve()+1+11, brainpoolP384r1) 114 DEFINE_OID(teletrust_ellipticCurve()+1+13, brainpoolP512r1) 115 // https://tools.ietf.org/html/draft-ietf-curdle-pkix-07 116 DEFINE_OID(identified_organization()+101, thawte) 117 DEFINE_OID(thawte()+110, X25519) 118 DEFINE_OID(thawte()+111, X448) 119 DEFINE_OID(thawte()+112, Ed25519) 120 DEFINE_OID(thawte()+113, Ed448) 121 DEFINE_OID(identified_organization()+132, certicom) 122 DEFINE_OID(certicom()+0, certicom_ellipticCurve) 123 // these are sorted by curve type and then by OID 124 // first curves based on GF(p) 125 DEFINE_OID(certicom_ellipticCurve()+6, secp112r1) 126 DEFINE_OID(certicom_ellipticCurve()+7, secp112r2) 127 DEFINE_OID(certicom_ellipticCurve()+8, secp160r1) 128 DEFINE_OID(certicom_ellipticCurve()+9, secp160k1) 129 DEFINE_OID(certicom_ellipticCurve()+10, secp256k1) 130 DEFINE_OID(certicom_ellipticCurve()+28, secp128r1) 131 DEFINE_OID(certicom_ellipticCurve()+29, secp128r2) 132 DEFINE_OID(certicom_ellipticCurve()+30, secp160r2) 133 DEFINE_OID(certicom_ellipticCurve()+31, secp192k1) 134 DEFINE_OID(certicom_ellipticCurve()+32, secp224k1) 135 DEFINE_OID(certicom_ellipticCurve()+33, secp224r1) 136 DEFINE_OID(certicom_ellipticCurve()+34, secp384r1) 137 DEFINE_OID(certicom_ellipticCurve()+35, secp521r1) 138 // then curves based on GF(2^n) 139 DEFINE_OID(certicom_ellipticCurve()+1, sect163k1) 140 DEFINE_OID(certicom_ellipticCurve()+2, sect163r1) 141 DEFINE_OID(certicom_ellipticCurve()+3, sect239k1) 142 DEFINE_OID(certicom_ellipticCurve()+4, sect113r1) 143 DEFINE_OID(certicom_ellipticCurve()+5, sect113r2) 144 DEFINE_OID(certicom_ellipticCurve()+15, sect163r2) 145 DEFINE_OID(certicom_ellipticCurve()+16, sect283k1) 146 DEFINE_OID(certicom_ellipticCurve()+17, sect283r1) 147 DEFINE_OID(certicom_ellipticCurve()+22, sect131r1) 148 DEFINE_OID(certicom_ellipticCurve()+23, sect131r2) 149 DEFINE_OID(certicom_ellipticCurve()+24, sect193r1) 150 DEFINE_OID(certicom_ellipticCurve()+25, sect193r2) 151 DEFINE_OID(certicom_ellipticCurve()+26, sect233k1) 152 DEFINE_OID(certicom_ellipticCurve()+27, sect233r1) 153 DEFINE_OID(certicom_ellipticCurve()+36, sect409k1) 154 DEFINE_OID(certicom_ellipticCurve()+37, sect409r1) 155 DEFINE_OID(certicom_ellipticCurve()+38, sect571k1) 156 DEFINE_OID(certicom_ellipticCurve()+39, sect571r1) 157 DEFINE_OID(2, joint_iso_ccitt) 158 DEFINE_OID(joint_iso_ccitt()+16, country) 159 DEFINE_OID(country()+840, joint_iso_ccitt_us) 160 DEFINE_OID(joint_iso_ccitt_us()+1, us_organization) 161 DEFINE_OID(us_organization()+101, us_gov) 162 DEFINE_OID(us_gov()+3, csor) 163 DEFINE_OID(csor()+4, nistalgorithms) 164 DEFINE_OID(nistalgorithms()+1, aes) 165 DEFINE_OID(aes()+1, id_aes128_ECB) 166 DEFINE_OID(aes()+2, id_aes128_cbc) 167 DEFINE_OID(aes()+3, id_aes128_ofb) 168 DEFINE_OID(aes()+4, id_aes128_cfb) 169 DEFINE_OID(aes()+21, id_aes192_ECB) 170 DEFINE_OID(aes()+22, id_aes192_cbc) 171 DEFINE_OID(aes()+23, id_aes192_ofb) 172 DEFINE_OID(aes()+24, id_aes192_cfb) 173 DEFINE_OID(aes()+41, id_aes256_ECB) 174 DEFINE_OID(aes()+42, id_aes256_cbc) 175 DEFINE_OID(aes()+43, id_aes256_ofb) 176 DEFINE_OID(aes()+44, id_aes256_cfb) 177 DEFINE_OID(nistalgorithms()+2, nist_hashalgs) 178 DEFINE_OID(nist_hashalgs()+1, id_sha256) 179 DEFINE_OID(nist_hashalgs()+2, id_sha384) 180 DEFINE_OID(nist_hashalgs()+3, id_sha512) 181 DEFINE_OID(nist_hashalgs()+4, id_sha224) 182 DEFINE_OID(nist_hashalgs()+7, id_sha3_224) 183 DEFINE_OID(nist_hashalgs()+8, id_sha3_256) 184 DEFINE_OID(nist_hashalgs()+9, id_sha3_384) 185 DEFINE_OID(nist_hashalgs()+10, id_sha3_512) 186 DEFINE_OID(joint_iso_ccitt_us()+10046, ansi_x942) 187 DEFINE_OID(ansi_x942()+2, number_type) 188 DEFINE_OID(number_type()+1, dhpublicnumber) 189 190 NAMESPACE_END 191 192 NAMESPACE_END 193 194 #endif 195