Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of mbedtls by
oid.h
00001 /** 00002 * \file oid.h 00003 * 00004 * \brief Object Identifier (OID) database 00005 * 00006 * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved 00007 * SPDX-License-Identifier: Apache-2.0 00008 * 00009 * Licensed under the Apache License, Version 2.0 (the "License"); you may 00010 * not use this file except in compliance with the License. 00011 * You may obtain a copy of the License at 00012 * 00013 * http://www.apache.org/licenses/LICENSE-2.0 00014 * 00015 * Unless required by applicable law or agreed to in writing, software 00016 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 00017 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00018 * See the License for the specific language governing permissions and 00019 * limitations under the License. 00020 * 00021 * This file is part of mbed TLS (https://tls.mbed.org) 00022 */ 00023 #ifndef MBEDTLS_OID_H 00024 #define MBEDTLS_OID_H 00025 00026 #if !defined(MBEDTLS_CONFIG_FILE) 00027 #include "config.h" 00028 #else 00029 #include MBEDTLS_CONFIG_FILE 00030 #endif 00031 00032 #include "asn1.h" 00033 #include "pk.h" 00034 00035 #include <stddef.h> 00036 00037 #if defined(MBEDTLS_CIPHER_C) 00038 #include "cipher.h" 00039 #endif 00040 00041 #if defined(MBEDTLS_MD_C) 00042 #include "md.h" 00043 #endif 00044 00045 #if defined(MBEDTLS_X509_USE_C) || defined(MBEDTLS_X509_CREATE_C) 00046 #include "x509.h" 00047 #endif 00048 00049 #define MBEDTLS_ERR_OID_NOT_FOUND -0x002E /**< OID is not found. */ 00050 #define MBEDTLS_ERR_OID_BUF_TOO_SMALL -0x000B /**< output buffer is too small */ 00051 00052 /* 00053 * Top level OID tuples 00054 */ 00055 #define MBEDTLS_OID_ISO_MEMBER_BODIES "\x2a" /* {iso(1) member-body(2)} */ 00056 #define MBEDTLS_OID_ISO_IDENTIFIED_ORG "\x2b" /* {iso(1) identified-organization(3)} */ 00057 #define MBEDTLS_OID_ISO_CCITT_DS "\x55" /* {joint-iso-ccitt(2) ds(5)} */ 00058 #define MBEDTLS_OID_ISO_ITU_COUNTRY "\x60" /* {joint-iso-itu-t(2) country(16)} */ 00059 00060 /* 00061 * ISO Member bodies OID parts 00062 */ 00063 #define MBEDTLS_OID_COUNTRY_US "\x86\x48" /* {us(840)} */ 00064 #define MBEDTLS_OID_ORG_RSA_DATA_SECURITY "\x86\xf7\x0d" /* {rsadsi(113549)} */ 00065 #define MBEDTLS_OID_RSA_COMPANY MBEDTLS_OID_ISO_MEMBER_BODIES MBEDTLS_OID_COUNTRY_US \ 00066 MBEDTLS_OID_ORG_RSA_DATA_SECURITY /* {iso(1) member-body(2) us(840) rsadsi(113549)} */ 00067 #define MBEDTLS_OID_ORG_ANSI_X9_62 "\xce\x3d" /* ansi-X9-62(10045) */ 00068 #define MBEDTLS_OID_ANSI_X9_62 MBEDTLS_OID_ISO_MEMBER_BODIES MBEDTLS_OID_COUNTRY_US \ 00069 MBEDTLS_OID_ORG_ANSI_X9_62 00070 00071 /* 00072 * ISO Identified organization OID parts 00073 */ 00074 #define MBEDTLS_OID_ORG_DOD "\x06" /* {dod(6)} */ 00075 #define MBEDTLS_OID_ORG_OIW "\x0e" 00076 #define MBEDTLS_OID_OIW_SECSIG MBEDTLS_OID_ORG_OIW "\x03" 00077 #define MBEDTLS_OID_OIW_SECSIG_ALG MBEDTLS_OID_OIW_SECSIG "\x02" 00078 #define MBEDTLS_OID_OIW_SECSIG_SHA1 MBEDTLS_OID_OIW_SECSIG_ALG "\x1a" 00079 #define MBEDTLS_OID_ORG_CERTICOM "\x81\x04" /* certicom(132) */ 00080 #define MBEDTLS_OID_CERTICOM MBEDTLS_OID_ISO_IDENTIFIED_ORG MBEDTLS_OID_ORG_CERTICOM 00081 #define MBEDTLS_OID_ORG_TELETRUST "\x24" /* teletrust(36) */ 00082 #define MBEDTLS_OID_TELETRUST MBEDTLS_OID_ISO_IDENTIFIED_ORG MBEDTLS_OID_ORG_TELETRUST 00083 00084 /* 00085 * ISO ITU OID parts 00086 */ 00087 #define MBEDTLS_OID_ORGANIZATION "\x01" /* {organization(1)} */ 00088 #define MBEDTLS_OID_ISO_ITU_US_ORG MBEDTLS_OID_ISO_ITU_COUNTRY MBEDTLS_OID_COUNTRY_US MBEDTLS_OID_ORGANIZATION /* {joint-iso-itu-t(2) country(16) us(840) organization(1)} */ 00089 00090 #define MBEDTLS_OID_ORG_GOV "\x65" /* {gov(101)} */ 00091 #define MBEDTLS_OID_GOV MBEDTLS_OID_ISO_ITU_US_ORG MBEDTLS_OID_ORG_GOV /* {joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101)} */ 00092 00093 #define MBEDTLS_OID_ORG_NETSCAPE "\x86\xF8\x42" /* {netscape(113730)} */ 00094 #define MBEDTLS_OID_NETSCAPE MBEDTLS_OID_ISO_ITU_US_ORG MBEDTLS_OID_ORG_NETSCAPE /* Netscape OID {joint-iso-itu-t(2) country(16) us(840) organization(1) netscape(113730)} */ 00095 00096 /* ISO arc for standard certificate and CRL extensions */ 00097 #define MBEDTLS_OID_ID_CE MBEDTLS_OID_ISO_CCITT_DS "\x1D" /**< id-ce OBJECT IDENTIFIER ::= {joint-iso-ccitt(2) ds(5) 29} */ 00098 00099 /** 00100 * Private Internet Extensions 00101 * { iso(1) identified-organization(3) dod(6) internet(1) 00102 * security(5) mechanisms(5) pkix(7) } 00103 */ 00104 #define MBEDTLS_OID_PKIX MBEDTLS_OID_ISO_IDENTIFIED_ORG MBEDTLS_OID_ORG_DOD "\x01\x05\x05\x07" 00105 00106 /* 00107 * Arc for standard naming attributes 00108 */ 00109 #define MBEDTLS_OID_AT MBEDTLS_OID_ISO_CCITT_DS "\x04" /**< id-at OBJECT IDENTIFIER ::= {joint-iso-ccitt(2) ds(5) 4} */ 00110 #define MBEDTLS_OID_AT_CN MBEDTLS_OID_AT "\x03" /**< id-at-commonName AttributeType:= {id-at 3} */ 00111 #define MBEDTLS_OID_AT_SUR_NAME MBEDTLS_OID_AT "\x04" /**< id-at-surName AttributeType:= {id-at 4} */ 00112 #define MBEDTLS_OID_AT_SERIAL_NUMBER MBEDTLS_OID_AT "\x05" /**< id-at-serialNumber AttributeType:= {id-at 5} */ 00113 #define MBEDTLS_OID_AT_COUNTRY MBEDTLS_OID_AT "\x06" /**< id-at-countryName AttributeType:= {id-at 6} */ 00114 #define MBEDTLS_OID_AT_LOCALITY MBEDTLS_OID_AT "\x07" /**< id-at-locality AttributeType:= {id-at 7} */ 00115 #define MBEDTLS_OID_AT_STATE MBEDTLS_OID_AT "\x08" /**< id-at-state AttributeType:= {id-at 8} */ 00116 #define MBEDTLS_OID_AT_ORGANIZATION MBEDTLS_OID_AT "\x0A" /**< id-at-organizationName AttributeType:= {id-at 10} */ 00117 #define MBEDTLS_OID_AT_ORG_UNIT MBEDTLS_OID_AT "\x0B" /**< id-at-organizationalUnitName AttributeType:= {id-at 11} */ 00118 #define MBEDTLS_OID_AT_TITLE MBEDTLS_OID_AT "\x0C" /**< id-at-title AttributeType:= {id-at 12} */ 00119 #define MBEDTLS_OID_AT_POSTAL_ADDRESS MBEDTLS_OID_AT "\x10" /**< id-at-postalAddress AttributeType:= {id-at 16} */ 00120 #define MBEDTLS_OID_AT_POSTAL_CODE MBEDTLS_OID_AT "\x11" /**< id-at-postalCode AttributeType:= {id-at 17} */ 00121 #define MBEDTLS_OID_AT_GIVEN_NAME MBEDTLS_OID_AT "\x2A" /**< id-at-givenName AttributeType:= {id-at 42} */ 00122 #define MBEDTLS_OID_AT_INITIALS MBEDTLS_OID_AT "\x2B" /**< id-at-initials AttributeType:= {id-at 43} */ 00123 #define MBEDTLS_OID_AT_GENERATION_QUALIFIER MBEDTLS_OID_AT "\x2C" /**< id-at-generationQualifier AttributeType:= {id-at 44} */ 00124 #define MBEDTLS_OID_AT_UNIQUE_IDENTIFIER MBEDTLS_OID_AT "\x2D" /**< id-at-uniqueIdentifier AttributType:= {id-at 45} */ 00125 #define MBEDTLS_OID_AT_DN_QUALIFIER MBEDTLS_OID_AT "\x2E" /**< id-at-dnQualifier AttributeType:= {id-at 46} */ 00126 #define MBEDTLS_OID_AT_PSEUDONYM MBEDTLS_OID_AT "\x41" /**< id-at-pseudonym AttributeType:= {id-at 65} */ 00127 00128 #define MBEDTLS_OID_DOMAIN_COMPONENT "\x09\x92\x26\x89\x93\xF2\x2C\x64\x01\x19" /** id-domainComponent AttributeType:= {itu-t(0) data(9) pss(2342) ucl(19200300) pilot(100) pilotAttributeType(1) domainComponent(25)} */ 00129 00130 /* 00131 * OIDs for standard certificate extensions 00132 */ 00133 #define MBEDTLS_OID_AUTHORITY_KEY_IDENTIFIER MBEDTLS_OID_ID_CE "\x23" /**< id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 35 } */ 00134 #define MBEDTLS_OID_SUBJECT_KEY_IDENTIFIER MBEDTLS_OID_ID_CE "\x0E" /**< id-ce-subjectKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 14 } */ 00135 #define MBEDTLS_OID_KEY_USAGE MBEDTLS_OID_ID_CE "\x0F" /**< id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 } */ 00136 #define MBEDTLS_OID_CERTIFICATE_POLICIES MBEDTLS_OID_ID_CE "\x20" /**< id-ce-certificatePolicies OBJECT IDENTIFIER ::= { id-ce 32 } */ 00137 #define MBEDTLS_OID_POLICY_MAPPINGS MBEDTLS_OID_ID_CE "\x21" /**< id-ce-policyMappings OBJECT IDENTIFIER ::= { id-ce 33 } */ 00138 #define MBEDTLS_OID_SUBJECT_ALT_NAME MBEDTLS_OID_ID_CE "\x11" /**< id-ce-subjectAltName OBJECT IDENTIFIER ::= { id-ce 17 } */ 00139 #define MBEDTLS_OID_ISSUER_ALT_NAME MBEDTLS_OID_ID_CE "\x12" /**< id-ce-issuerAltName OBJECT IDENTIFIER ::= { id-ce 18 } */ 00140 #define MBEDTLS_OID_SUBJECT_DIRECTORY_ATTRS MBEDTLS_OID_ID_CE "\x09" /**< id-ce-subjectDirectoryAttributes OBJECT IDENTIFIER ::= { id-ce 9 } */ 00141 #define MBEDTLS_OID_BASIC_CONSTRAINTS MBEDTLS_OID_ID_CE "\x13" /**< id-ce-basicConstraints OBJECT IDENTIFIER ::= { id-ce 19 } */ 00142 #define MBEDTLS_OID_NAME_CONSTRAINTS MBEDTLS_OID_ID_CE "\x1E" /**< id-ce-nameConstraints OBJECT IDENTIFIER ::= { id-ce 30 } */ 00143 #define MBEDTLS_OID_POLICY_CONSTRAINTS MBEDTLS_OID_ID_CE "\x24" /**< id-ce-policyConstraints OBJECT IDENTIFIER ::= { id-ce 36 } */ 00144 #define MBEDTLS_OID_EXTENDED_KEY_USAGE MBEDTLS_OID_ID_CE "\x25" /**< id-ce-extKeyUsage OBJECT IDENTIFIER ::= { id-ce 37 } */ 00145 #define MBEDTLS_OID_CRL_DISTRIBUTION_POINTS MBEDTLS_OID_ID_CE "\x1F" /**< id-ce-cRLDistributionPoints OBJECT IDENTIFIER ::= { id-ce 31 } */ 00146 #define MBEDTLS_OID_INIHIBIT_ANYPOLICY MBEDTLS_OID_ID_CE "\x36" /**< id-ce-inhibitAnyPolicy OBJECT IDENTIFIER ::= { id-ce 54 } */ 00147 #define MBEDTLS_OID_FRESHEST_CRL MBEDTLS_OID_ID_CE "\x2E" /**< id-ce-freshestCRL OBJECT IDENTIFIER ::= { id-ce 46 } */ 00148 00149 /* 00150 * Netscape certificate extensions 00151 */ 00152 #define MBEDTLS_OID_NS_CERT MBEDTLS_OID_NETSCAPE "\x01" 00153 #define MBEDTLS_OID_NS_CERT_TYPE MBEDTLS_OID_NS_CERT "\x01" 00154 #define MBEDTLS_OID_NS_BASE_URL MBEDTLS_OID_NS_CERT "\x02" 00155 #define MBEDTLS_OID_NS_REVOCATION_URL MBEDTLS_OID_NS_CERT "\x03" 00156 #define MBEDTLS_OID_NS_CA_REVOCATION_URL MBEDTLS_OID_NS_CERT "\x04" 00157 #define MBEDTLS_OID_NS_RENEWAL_URL MBEDTLS_OID_NS_CERT "\x07" 00158 #define MBEDTLS_OID_NS_CA_POLICY_URL MBEDTLS_OID_NS_CERT "\x08" 00159 #define MBEDTLS_OID_NS_SSL_SERVER_NAME MBEDTLS_OID_NS_CERT "\x0C" 00160 #define MBEDTLS_OID_NS_COMMENT MBEDTLS_OID_NS_CERT "\x0D" 00161 #define MBEDTLS_OID_NS_DATA_TYPE MBEDTLS_OID_NETSCAPE "\x02" 00162 #define MBEDTLS_OID_NS_CERT_SEQUENCE MBEDTLS_OID_NS_DATA_TYPE "\x05" 00163 00164 /* 00165 * OIDs for CRL extensions 00166 */ 00167 #define MBEDTLS_OID_PRIVATE_KEY_USAGE_PERIOD MBEDTLS_OID_ID_CE "\x10" 00168 #define MBEDTLS_OID_CRL_NUMBER MBEDTLS_OID_ID_CE "\x14" /**< id-ce-cRLNumber OBJECT IDENTIFIER ::= { id-ce 20 } */ 00169 00170 /* 00171 * X.509 v3 Extended key usage OIDs 00172 */ 00173 #define MBEDTLS_OID_ANY_EXTENDED_KEY_USAGE MBEDTLS_OID_EXTENDED_KEY_USAGE "\x00" /**< anyExtendedKeyUsage OBJECT IDENTIFIER ::= { id-ce-extKeyUsage 0 } */ 00174 00175 #define MBEDTLS_OID_KP MBEDTLS_OID_PKIX "\x03" /**< id-kp OBJECT IDENTIFIER ::= { id-pkix 3 } */ 00176 #define MBEDTLS_OID_SERVER_AUTH MBEDTLS_OID_KP "\x01" /**< id-kp-serverAuth OBJECT IDENTIFIER ::= { id-kp 1 } */ 00177 #define MBEDTLS_OID_CLIENT_AUTH MBEDTLS_OID_KP "\x02" /**< id-kp-clientAuth OBJECT IDENTIFIER ::= { id-kp 2 } */ 00178 #define MBEDTLS_OID_CODE_SIGNING MBEDTLS_OID_KP "\x03" /**< id-kp-codeSigning OBJECT IDENTIFIER ::= { id-kp 3 } */ 00179 #define MBEDTLS_OID_EMAIL_PROTECTION MBEDTLS_OID_KP "\x04" /**< id-kp-emailProtection OBJECT IDENTIFIER ::= { id-kp 4 } */ 00180 #define MBEDTLS_OID_TIME_STAMPING MBEDTLS_OID_KP "\x08" /**< id-kp-timeStamping OBJECT IDENTIFIER ::= { id-kp 8 } */ 00181 #define MBEDTLS_OID_OCSP_SIGNING MBEDTLS_OID_KP "\x09" /**< id-kp-OCSPSigning OBJECT IDENTIFIER ::= { id-kp 9 } */ 00182 00183 /* 00184 * PKCS definition OIDs 00185 */ 00186 00187 #define MBEDTLS_OID_PKCS MBEDTLS_OID_RSA_COMPANY "\x01" /**< pkcs OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) 1 } */ 00188 #define MBEDTLS_OID_PKCS1 MBEDTLS_OID_PKCS "\x01" /**< pkcs-1 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 1 } */ 00189 #define MBEDTLS_OID_PKCS5 MBEDTLS_OID_PKCS "\x05" /**< pkcs-5 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 5 } */ 00190 #define MBEDTLS_OID_PKCS9 MBEDTLS_OID_PKCS "\x09" /**< pkcs-9 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 9 } */ 00191 #define MBEDTLS_OID_PKCS12 MBEDTLS_OID_PKCS "\x0c" /**< pkcs-12 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 12 } */ 00192 00193 /* 00194 * PKCS#1 OIDs 00195 */ 00196 #define MBEDTLS_OID_PKCS1_RSA MBEDTLS_OID_PKCS1 "\x01" /**< rsaEncryption OBJECT IDENTIFIER ::= { pkcs-1 1 } */ 00197 #define MBEDTLS_OID_PKCS1_MD2 MBEDTLS_OID_PKCS1 "\x02" /**< md2WithRSAEncryption ::= { pkcs-1 2 } */ 00198 #define MBEDTLS_OID_PKCS1_MD4 MBEDTLS_OID_PKCS1 "\x03" /**< md4WithRSAEncryption ::= { pkcs-1 3 } */ 00199 #define MBEDTLS_OID_PKCS1_MD5 MBEDTLS_OID_PKCS1 "\x04" /**< md5WithRSAEncryption ::= { pkcs-1 4 } */ 00200 #define MBEDTLS_OID_PKCS1_SHA1 MBEDTLS_OID_PKCS1 "\x05" /**< sha1WithRSAEncryption ::= { pkcs-1 5 } */ 00201 #define MBEDTLS_OID_PKCS1_SHA224 MBEDTLS_OID_PKCS1 "\x0e" /**< sha224WithRSAEncryption ::= { pkcs-1 14 } */ 00202 #define MBEDTLS_OID_PKCS1_SHA256 MBEDTLS_OID_PKCS1 "\x0b" /**< sha256WithRSAEncryption ::= { pkcs-1 11 } */ 00203 #define MBEDTLS_OID_PKCS1_SHA384 MBEDTLS_OID_PKCS1 "\x0c" /**< sha384WithRSAEncryption ::= { pkcs-1 12 } */ 00204 #define MBEDTLS_OID_PKCS1_SHA512 MBEDTLS_OID_PKCS1 "\x0d" /**< sha512WithRSAEncryption ::= { pkcs-1 13 } */ 00205 00206 #define MBEDTLS_OID_RSA_SHA_OBS "\x2B\x0E\x03\x02\x1D" 00207 00208 #define MBEDTLS_OID_PKCS9_EMAIL MBEDTLS_OID_PKCS9 "\x01" /**< emailAddress AttributeType ::= { pkcs-9 1 } */ 00209 00210 /* RFC 4055 */ 00211 #define MBEDTLS_OID_RSASSA_PSS MBEDTLS_OID_PKCS1 "\x0a" /**< id-RSASSA-PSS ::= { pkcs-1 10 } */ 00212 #define MBEDTLS_OID_MGF1 MBEDTLS_OID_PKCS1 "\x08" /**< id-mgf1 ::= { pkcs-1 8 } */ 00213 00214 /* 00215 * Digest algorithms 00216 */ 00217 #define MBEDTLS_OID_DIGEST_ALG_MD2 MBEDTLS_OID_RSA_COMPANY "\x02\x02" /**< id-mbedtls_md2 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) digestAlgorithm(2) 2 } */ 00218 #define MBEDTLS_OID_DIGEST_ALG_MD4 MBEDTLS_OID_RSA_COMPANY "\x02\x04" /**< id-mbedtls_md4 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) digestAlgorithm(2) 4 } */ 00219 #define MBEDTLS_OID_DIGEST_ALG_MD5 MBEDTLS_OID_RSA_COMPANY "\x02\x05" /**< id-mbedtls_md5 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) digestAlgorithm(2) 5 } */ 00220 #define MBEDTLS_OID_DIGEST_ALG_SHA1 MBEDTLS_OID_ISO_IDENTIFIED_ORG MBEDTLS_OID_OIW_SECSIG_SHA1 /**< id-mbedtls_sha1 OBJECT IDENTIFIER ::= { iso(1) identified-organization(3) oiw(14) secsig(3) algorithms(2) 26 } */ 00221 #define MBEDTLS_OID_DIGEST_ALG_SHA224 MBEDTLS_OID_GOV "\x03\x04\x02\x04" /**< id-sha224 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistalgorithm(4) hashalgs(2) 4 } */ 00222 #define MBEDTLS_OID_DIGEST_ALG_SHA256 MBEDTLS_OID_GOV "\x03\x04\x02\x01" /**< id-mbedtls_sha256 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistalgorithm(4) hashalgs(2) 1 } */ 00223 00224 #define MBEDTLS_OID_DIGEST_ALG_SHA384 MBEDTLS_OID_GOV "\x03\x04\x02\x02" /**< id-sha384 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistalgorithm(4) hashalgs(2) 2 } */ 00225 00226 #define MBEDTLS_OID_DIGEST_ALG_SHA512 MBEDTLS_OID_GOV "\x03\x04\x02\x03" /**< id-mbedtls_sha512 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistalgorithm(4) hashalgs(2) 3 } */ 00227 00228 #define MBEDTLS_OID_HMAC_SHA1 MBEDTLS_OID_RSA_COMPANY "\x02\x07" /**< id-hmacWithSHA1 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) digestAlgorithm(2) 7 } */ 00229 00230 /* 00231 * Encryption algorithms 00232 */ 00233 #define MBEDTLS_OID_DES_CBC MBEDTLS_OID_ISO_IDENTIFIED_ORG MBEDTLS_OID_OIW_SECSIG_ALG "\x07" /**< desCBC OBJECT IDENTIFIER ::= { iso(1) identified-organization(3) oiw(14) secsig(3) algorithms(2) 7 } */ 00234 #define MBEDTLS_OID_DES_EDE3_CBC MBEDTLS_OID_RSA_COMPANY "\x03\x07" /**< des-ede3-cbc OBJECT IDENTIFIER ::= { iso(1) member-body(2) -- us(840) rsadsi(113549) encryptionAlgorithm(3) 7 } */ 00235 00236 /* 00237 * PKCS#5 OIDs 00238 */ 00239 #define MBEDTLS_OID_PKCS5_PBKDF2 MBEDTLS_OID_PKCS5 "\x0c" /**< id-PBKDF2 OBJECT IDENTIFIER ::= {pkcs-5 12} */ 00240 #define MBEDTLS_OID_PKCS5_PBES2 MBEDTLS_OID_PKCS5 "\x0d" /**< id-PBES2 OBJECT IDENTIFIER ::= {pkcs-5 13} */ 00241 #define MBEDTLS_OID_PKCS5_PBMAC1 MBEDTLS_OID_PKCS5 "\x0e" /**< id-PBMAC1 OBJECT IDENTIFIER ::= {pkcs-5 14} */ 00242 00243 /* 00244 * PKCS#5 PBES1 algorithms 00245 */ 00246 #define MBEDTLS_OID_PKCS5_PBE_MD2_DES_CBC MBEDTLS_OID_PKCS5 "\x01" /**< pbeWithMD2AndDES-CBC OBJECT IDENTIFIER ::= {pkcs-5 1} */ 00247 #define MBEDTLS_OID_PKCS5_PBE_MD2_RC2_CBC MBEDTLS_OID_PKCS5 "\x04" /**< pbeWithMD2AndRC2-CBC OBJECT IDENTIFIER ::= {pkcs-5 4} */ 00248 #define MBEDTLS_OID_PKCS5_PBE_MD5_DES_CBC MBEDTLS_OID_PKCS5 "\x03" /**< pbeWithMD5AndDES-CBC OBJECT IDENTIFIER ::= {pkcs-5 3} */ 00249 #define MBEDTLS_OID_PKCS5_PBE_MD5_RC2_CBC MBEDTLS_OID_PKCS5 "\x06" /**< pbeWithMD5AndRC2-CBC OBJECT IDENTIFIER ::= {pkcs-5 6} */ 00250 #define MBEDTLS_OID_PKCS5_PBE_SHA1_DES_CBC MBEDTLS_OID_PKCS5 "\x0a" /**< pbeWithSHA1AndDES-CBC OBJECT IDENTIFIER ::= {pkcs-5 10} */ 00251 #define MBEDTLS_OID_PKCS5_PBE_SHA1_RC2_CBC MBEDTLS_OID_PKCS5 "\x0b" /**< pbeWithSHA1AndRC2-CBC OBJECT IDENTIFIER ::= {pkcs-5 11} */ 00252 00253 /* 00254 * PKCS#8 OIDs 00255 */ 00256 #define MBEDTLS_OID_PKCS9_CSR_EXT_REQ MBEDTLS_OID_PKCS9 "\x0e" /**< extensionRequest OBJECT IDENTIFIER ::= {pkcs-9 14} */ 00257 00258 /* 00259 * PKCS#12 PBE OIDs 00260 */ 00261 #define MBEDTLS_OID_PKCS12_PBE MBEDTLS_OID_PKCS12 "\x01" /**< pkcs-12PbeIds OBJECT IDENTIFIER ::= {pkcs-12 1} */ 00262 00263 #define MBEDTLS_OID_PKCS12_PBE_SHA1_RC4_128 MBEDTLS_OID_PKCS12_PBE "\x01" /**< pbeWithSHAAnd128BitRC4 OBJECT IDENTIFIER ::= {pkcs-12PbeIds 1} */ 00264 #define MBEDTLS_OID_PKCS12_PBE_SHA1_RC4_40 MBEDTLS_OID_PKCS12_PBE "\x02" /**< pbeWithSHAAnd40BitRC4 OBJECT IDENTIFIER ::= {pkcs-12PbeIds 2} */ 00265 #define MBEDTLS_OID_PKCS12_PBE_SHA1_DES3_EDE_CBC MBEDTLS_OID_PKCS12_PBE "\x03" /**< pbeWithSHAAnd3-KeyTripleDES-CBC OBJECT IDENTIFIER ::= {pkcs-12PbeIds 3} */ 00266 #define MBEDTLS_OID_PKCS12_PBE_SHA1_DES2_EDE_CBC MBEDTLS_OID_PKCS12_PBE "\x04" /**< pbeWithSHAAnd2-KeyTripleDES-CBC OBJECT IDENTIFIER ::= {pkcs-12PbeIds 4} */ 00267 #define MBEDTLS_OID_PKCS12_PBE_SHA1_RC2_128_CBC MBEDTLS_OID_PKCS12_PBE "\x05" /**< pbeWithSHAAnd128BitRC2-CBC OBJECT IDENTIFIER ::= {pkcs-12PbeIds 5} */ 00268 #define MBEDTLS_OID_PKCS12_PBE_SHA1_RC2_40_CBC MBEDTLS_OID_PKCS12_PBE "\x06" /**< pbeWithSHAAnd40BitRC2-CBC OBJECT IDENTIFIER ::= {pkcs-12PbeIds 6} */ 00269 00270 /* 00271 * EC key algorithms from RFC 5480 00272 */ 00273 00274 /* id-ecPublicKey OBJECT IDENTIFIER ::= { 00275 * iso(1) member-body(2) us(840) ansi-X9-62(10045) keyType(2) 1 } */ 00276 #define MBEDTLS_OID_EC_ALG_UNRESTRICTED MBEDTLS_OID_ANSI_X9_62 "\x02\01" 00277 00278 /* id-ecDH OBJECT IDENTIFIER ::= { 00279 * iso(1) identified-organization(3) certicom(132) 00280 * schemes(1) ecdh(12) } */ 00281 #define MBEDTLS_OID_EC_ALG_ECDH MBEDTLS_OID_CERTICOM "\x01\x0c" 00282 00283 /* 00284 * ECParameters namedCurve identifiers, from RFC 5480, RFC 5639, and SEC2 00285 */ 00286 00287 /* secp192r1 OBJECT IDENTIFIER ::= { 00288 * iso(1) member-body(2) us(840) ansi-X9-62(10045) curves(3) prime(1) 1 } */ 00289 #define MBEDTLS_OID_EC_GRP_SECP192R1 MBEDTLS_OID_ANSI_X9_62 "\x03\x01\x01" 00290 00291 /* secp224r1 OBJECT IDENTIFIER ::= { 00292 * iso(1) identified-organization(3) certicom(132) curve(0) 33 } */ 00293 #define MBEDTLS_OID_EC_GRP_SECP224R1 MBEDTLS_OID_CERTICOM "\x00\x21" 00294 00295 /* secp256r1 OBJECT IDENTIFIER ::= { 00296 * iso(1) member-body(2) us(840) ansi-X9-62(10045) curves(3) prime(1) 7 } */ 00297 #define MBEDTLS_OID_EC_GRP_SECP256R1 MBEDTLS_OID_ANSI_X9_62 "\x03\x01\x07" 00298 00299 /* secp384r1 OBJECT IDENTIFIER ::= { 00300 * iso(1) identified-organization(3) certicom(132) curve(0) 34 } */ 00301 #define MBEDTLS_OID_EC_GRP_SECP384R1 MBEDTLS_OID_CERTICOM "\x00\x22" 00302 00303 /* secp521r1 OBJECT IDENTIFIER ::= { 00304 * iso(1) identified-organization(3) certicom(132) curve(0) 35 } */ 00305 #define MBEDTLS_OID_EC_GRP_SECP521R1 MBEDTLS_OID_CERTICOM "\x00\x23" 00306 00307 /* secp192k1 OBJECT IDENTIFIER ::= { 00308 * iso(1) identified-organization(3) certicom(132) curve(0) 31 } */ 00309 #define MBEDTLS_OID_EC_GRP_SECP192K1 MBEDTLS_OID_CERTICOM "\x00\x1f" 00310 00311 /* secp224k1 OBJECT IDENTIFIER ::= { 00312 * iso(1) identified-organization(3) certicom(132) curve(0) 32 } */ 00313 #define MBEDTLS_OID_EC_GRP_SECP224K1 MBEDTLS_OID_CERTICOM "\x00\x20" 00314 00315 /* secp256k1 OBJECT IDENTIFIER ::= { 00316 * iso(1) identified-organization(3) certicom(132) curve(0) 10 } */ 00317 #define MBEDTLS_OID_EC_GRP_SECP256K1 MBEDTLS_OID_CERTICOM "\x00\x0a" 00318 00319 /* RFC 5639 4.1 00320 * ecStdCurvesAndGeneration OBJECT IDENTIFIER::= {iso(1) 00321 * identified-organization(3) teletrust(36) algorithm(3) signature- 00322 * algorithm(3) ecSign(2) 8} 00323 * ellipticCurve OBJECT IDENTIFIER ::= {ecStdCurvesAndGeneration 1} 00324 * versionOne OBJECT IDENTIFIER ::= {ellipticCurve 1} */ 00325 #define MBEDTLS_OID_EC_BRAINPOOL_V1 MBEDTLS_OID_TELETRUST "\x03\x03\x02\x08\x01\x01" 00326 00327 /* brainpoolP256r1 OBJECT IDENTIFIER ::= {versionOne 7} */ 00328 #define MBEDTLS_OID_EC_GRP_BP256R1 MBEDTLS_OID_EC_BRAINPOOL_V1 "\x07" 00329 00330 /* brainpoolP384r1 OBJECT IDENTIFIER ::= {versionOne 11} */ 00331 #define MBEDTLS_OID_EC_GRP_BP384R1 MBEDTLS_OID_EC_BRAINPOOL_V1 "\x0B" 00332 00333 /* brainpoolP512r1 OBJECT IDENTIFIER ::= {versionOne 13} */ 00334 #define MBEDTLS_OID_EC_GRP_BP512R1 MBEDTLS_OID_EC_BRAINPOOL_V1 "\x0D" 00335 00336 /* 00337 * SEC1 C.1 00338 * 00339 * prime-field OBJECT IDENTIFIER ::= { id-fieldType 1 } 00340 * id-fieldType OBJECT IDENTIFIER ::= { ansi-X9-62 fieldType(1)} 00341 */ 00342 #define MBEDTLS_OID_ANSI_X9_62_FIELD_TYPE MBEDTLS_OID_ANSI_X9_62 "\x01" 00343 #define MBEDTLS_OID_ANSI_X9_62_PRIME_FIELD MBEDTLS_OID_ANSI_X9_62_FIELD_TYPE "\x01" 00344 00345 /* 00346 * ECDSA signature identifiers, from RFC 5480 00347 */ 00348 #define MBEDTLS_OID_ANSI_X9_62_SIG MBEDTLS_OID_ANSI_X9_62 "\x04" /* signatures(4) */ 00349 #define MBEDTLS_OID_ANSI_X9_62_SIG_SHA2 MBEDTLS_OID_ANSI_X9_62_SIG "\x03" /* ecdsa-with-SHA2(3) */ 00350 00351 /* ecdsa-with-SHA1 OBJECT IDENTIFIER ::= { 00352 * iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4) 1 } */ 00353 #define MBEDTLS_OID_ECDSA_SHA1 MBEDTLS_OID_ANSI_X9_62_SIG "\x01" 00354 00355 /* ecdsa-with-SHA224 OBJECT IDENTIFIER ::= { 00356 * iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4) 00357 * ecdsa-with-SHA2(3) 1 } */ 00358 #define MBEDTLS_OID_ECDSA_SHA224 MBEDTLS_OID_ANSI_X9_62_SIG_SHA2 "\x01" 00359 00360 /* ecdsa-with-SHA256 OBJECT IDENTIFIER ::= { 00361 * iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4) 00362 * ecdsa-with-SHA2(3) 2 } */ 00363 #define MBEDTLS_OID_ECDSA_SHA256 MBEDTLS_OID_ANSI_X9_62_SIG_SHA2 "\x02" 00364 00365 /* ecdsa-with-SHA384 OBJECT IDENTIFIER ::= { 00366 * iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4) 00367 * ecdsa-with-SHA2(3) 3 } */ 00368 #define MBEDTLS_OID_ECDSA_SHA384 MBEDTLS_OID_ANSI_X9_62_SIG_SHA2 "\x03" 00369 00370 /* ecdsa-with-SHA512 OBJECT IDENTIFIER ::= { 00371 * iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4) 00372 * ecdsa-with-SHA2(3) 4 } */ 00373 #define MBEDTLS_OID_ECDSA_SHA512 MBEDTLS_OID_ANSI_X9_62_SIG_SHA2 "\x04" 00374 00375 #ifdef __cplusplus 00376 extern "C" { 00377 #endif 00378 00379 /** 00380 * \brief Base OID descriptor structure 00381 */ 00382 typedef struct { 00383 const char *asn1 ; /*!< OID ASN.1 representation */ 00384 size_t asn1_len ; /*!< length of asn1 */ 00385 const char *name ; /*!< official name (e.g. from RFC) */ 00386 const char *description ; /*!< human friendly description */ 00387 } mbedtls_oid_descriptor_t; 00388 00389 /** 00390 * \brief Translate an ASN.1 OID into its numeric representation 00391 * (e.g. "\x2A\x86\x48\x86\xF7\x0D" into "1.2.840.113549") 00392 * 00393 * \param buf buffer to put representation in 00394 * \param size size of the buffer 00395 * \param oid OID to translate 00396 * 00397 * \return Length of the string written (excluding final NULL) or 00398 * MBEDTLS_ERR_OID_BUF_TOO_SMALL in case of error 00399 */ 00400 int mbedtls_oid_get_numeric_string( char *buf, size_t size, const mbedtls_asn1_buf *oid ); 00401 00402 #if defined(MBEDTLS_X509_USE_C) || defined(MBEDTLS_X509_CREATE_C) 00403 /** 00404 * \brief Translate an X.509 extension OID into local values 00405 * 00406 * \param oid OID to use 00407 * \param ext_type place to store the extension type 00408 * 00409 * \return 0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND 00410 */ 00411 int mbedtls_oid_get_x509_ext_type( const mbedtls_asn1_buf *oid, int *ext_type ); 00412 #endif 00413 00414 /** 00415 * \brief Translate an X.509 attribute type OID into the short name 00416 * (e.g. the OID for an X520 Common Name into "CN") 00417 * 00418 * \param oid OID to use 00419 * \param short_name place to store the string pointer 00420 * 00421 * \return 0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND 00422 */ 00423 int mbedtls_oid_get_attr_short_name( const mbedtls_asn1_buf *oid, const char **short_name ); 00424 00425 /** 00426 * \brief Translate PublicKeyAlgorithm OID into pk_type 00427 * 00428 * \param oid OID to use 00429 * \param pk_alg place to store public key algorithm 00430 * 00431 * \return 0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND 00432 */ 00433 int mbedtls_oid_get_pk_alg( const mbedtls_asn1_buf *oid, mbedtls_pk_type_t *pk_alg ); 00434 00435 /** 00436 * \brief Translate pk_type into PublicKeyAlgorithm OID 00437 * 00438 * \param pk_alg Public key type to look for 00439 * \param oid place to store ASN.1 OID string pointer 00440 * \param olen length of the OID 00441 * 00442 * \return 0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND 00443 */ 00444 int mbedtls_oid_get_oid_by_pk_alg( mbedtls_pk_type_t pk_alg, 00445 const char **oid, size_t *olen ); 00446 00447 #if defined(MBEDTLS_ECP_C) 00448 /** 00449 * \brief Translate NamedCurve OID into an EC group identifier 00450 * 00451 * \param oid OID to use 00452 * \param grp_id place to store group id 00453 * 00454 * \return 0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND 00455 */ 00456 int mbedtls_oid_get_ec_grp( const mbedtls_asn1_buf *oid, mbedtls_ecp_group_id *grp_id ); 00457 00458 /** 00459 * \brief Translate EC group identifier into NamedCurve OID 00460 * 00461 * \param grp_id EC group identifier 00462 * \param oid place to store ASN.1 OID string pointer 00463 * \param olen length of the OID 00464 * 00465 * \return 0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND 00466 */ 00467 int mbedtls_oid_get_oid_by_ec_grp( mbedtls_ecp_group_id grp_id, 00468 const char **oid, size_t *olen ); 00469 #endif /* MBEDTLS_ECP_C */ 00470 00471 #if defined(MBEDTLS_MD_C) 00472 /** 00473 * \brief Translate SignatureAlgorithm OID into md_type and pk_type 00474 * 00475 * \param oid OID to use 00476 * \param md_alg place to store message digest algorithm 00477 * \param pk_alg place to store public key algorithm 00478 * 00479 * \return 0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND 00480 */ 00481 int mbedtls_oid_get_sig_alg( const mbedtls_asn1_buf *oid, 00482 mbedtls_md_type_t *md_alg, mbedtls_pk_type_t *pk_alg ); 00483 00484 /** 00485 * \brief Translate SignatureAlgorithm OID into description 00486 * 00487 * \param oid OID to use 00488 * \param desc place to store string pointer 00489 * 00490 * \return 0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND 00491 */ 00492 int mbedtls_oid_get_sig_alg_desc( const mbedtls_asn1_buf *oid, const char **desc ); 00493 00494 /** 00495 * \brief Translate md_type and pk_type into SignatureAlgorithm OID 00496 * 00497 * \param md_alg message digest algorithm 00498 * \param pk_alg public key algorithm 00499 * \param oid place to store ASN.1 OID string pointer 00500 * \param olen length of the OID 00501 * 00502 * \return 0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND 00503 */ 00504 int mbedtls_oid_get_oid_by_sig_alg( mbedtls_pk_type_t pk_alg, mbedtls_md_type_t md_alg, 00505 const char **oid, size_t *olen ); 00506 00507 /** 00508 * \brief Translate hash algorithm OID into md_type 00509 * 00510 * \param oid OID to use 00511 * \param md_alg place to store message digest algorithm 00512 * 00513 * \return 0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND 00514 */ 00515 int mbedtls_oid_get_md_alg( const mbedtls_asn1_buf *oid, mbedtls_md_type_t *md_alg ); 00516 #endif /* MBEDTLS_MD_C */ 00517 00518 /** 00519 * \brief Translate Extended Key Usage OID into description 00520 * 00521 * \param oid OID to use 00522 * \param desc place to store string pointer 00523 * 00524 * \return 0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND 00525 */ 00526 int mbedtls_oid_get_extended_key_usage( const mbedtls_asn1_buf *oid, const char **desc ); 00527 00528 /** 00529 * \brief Translate md_type into hash algorithm OID 00530 * 00531 * \param md_alg message digest algorithm 00532 * \param oid place to store ASN.1 OID string pointer 00533 * \param olen length of the OID 00534 * 00535 * \return 0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND 00536 */ 00537 int mbedtls_oid_get_oid_by_md( mbedtls_md_type_t md_alg, const char **oid, size_t *olen ); 00538 00539 #if defined(MBEDTLS_CIPHER_C) 00540 /** 00541 * \brief Translate encryption algorithm OID into cipher_type 00542 * 00543 * \param oid OID to use 00544 * \param cipher_alg place to store cipher algorithm 00545 * 00546 * \return 0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND 00547 */ 00548 int mbedtls_oid_get_cipher_alg( const mbedtls_asn1_buf *oid, mbedtls_cipher_type_t *cipher_alg ); 00549 #endif /* MBEDTLS_CIPHER_C */ 00550 00551 #if defined(MBEDTLS_PKCS12_C) 00552 /** 00553 * \brief Translate PKCS#12 PBE algorithm OID into md_type and 00554 * cipher_type 00555 * 00556 * \param oid OID to use 00557 * \param md_alg place to store message digest algorithm 00558 * \param cipher_alg place to store cipher algorithm 00559 * 00560 * \return 0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND 00561 */ 00562 int mbedtls_oid_get_pkcs12_pbe_alg( const mbedtls_asn1_buf *oid, mbedtls_md_type_t *md_alg, 00563 mbedtls_cipher_type_t *cipher_alg ); 00564 #endif /* MBEDTLS_PKCS12_C */ 00565 00566 #ifdef __cplusplus 00567 } 00568 #endif 00569 00570 #endif /* oid.h */
Generated on Tue Jul 12 2022 17:25:42 by
