mbed TLS v2.23.0: oid.h Source File

mbed TLS v2.23.0

oid.h
Go to the documentation of this file.
1
6 /*
7 * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved
8 * SPDX-License-Identifier: Apache-2.0
9 *
10 * Licensed under the Apache License, Version 2.0 (the "License"); you may
11 * not use this file except in compliance with the License.
12 * You may obtain a copy of the License at
13 *
14 * http://www.apache.org/licenses/LICENSE-2.0
15 *
16 * Unless required by applicable law or agreed to in writing, software
17 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
18 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19 * See the License for the specific language governing permissions and
20 * limitations under the License.
21 *
22 * This file is part of mbed TLS (https://tls.mbed.org)
23 */
24 #ifndef MBEDTLS_OID_H
25 #define MBEDTLS_OID_H
26
27 #if !defined(MBEDTLS_CONFIG_FILE)
28 #include "mbedtls/config.h"
29 #else
30 #include MBEDTLS_CONFIG_FILE
31 #endif
32
33 #include "mbedtls/asn1.h"
34 #include "mbedtls/pk.h"
35
36 #include <stddef.h>
37
38 #if defined(MBEDTLS_CIPHER_C)
39 #include "mbedtls/cipher.h"
40 #endif
41
42 #if defined(MBEDTLS_MD_C)
43 #include "mbedtls/md.h"
44 #endif
45
46 #define MBEDTLS_ERR_OID_NOT_FOUND -0x002E
47 #define MBEDTLS_ERR_OID_BUF_TOO_SMALL -0x000B
49 /* This is for the benefit of X.509, but defined here in order to avoid
50 * having a "backwards" include of x.509.h here */
51 /*
52 * X.509 extension types (internal, arbitrary values for bitsets)
53 */
54 #define MBEDTLS_OID_X509_EXT_AUTHORITY_KEY_IDENTIFIER (1 << 0)
55 #define MBEDTLS_OID_X509_EXT_SUBJECT_KEY_IDENTIFIER (1 << 1)
56 #define MBEDTLS_OID_X509_EXT_KEY_USAGE (1 << 2)
57 #define MBEDTLS_OID_X509_EXT_CERTIFICATE_POLICIES (1 << 3)
58 #define MBEDTLS_OID_X509_EXT_POLICY_MAPPINGS (1 << 4)
59 #define MBEDTLS_OID_X509_EXT_SUBJECT_ALT_NAME (1 << 5)
60 #define MBEDTLS_OID_X509_EXT_ISSUER_ALT_NAME (1 << 6)
61 #define MBEDTLS_OID_X509_EXT_SUBJECT_DIRECTORY_ATTRS (1 << 7)
62 #define MBEDTLS_OID_X509_EXT_BASIC_CONSTRAINTS (1 << 8)
63 #define MBEDTLS_OID_X509_EXT_NAME_CONSTRAINTS (1 << 9)
64 #define MBEDTLS_OID_X509_EXT_POLICY_CONSTRAINTS (1 << 10)
65 #define MBEDTLS_OID_X509_EXT_EXTENDED_KEY_USAGE (1 << 11)
66 #define MBEDTLS_OID_X509_EXT_CRL_DISTRIBUTION_POINTS (1 << 12)
67 #define MBEDTLS_OID_X509_EXT_INIHIBIT_ANYPOLICY (1 << 13)
68 #define MBEDTLS_OID_X509_EXT_FRESHEST_CRL (1 << 14)
69 #define MBEDTLS_OID_X509_EXT_NS_CERT_TYPE (1 << 16)
70
71 /*
72 * Top level OID tuples
73 */
74 #define MBEDTLS_OID_ISO_MEMBER_BODIES "\x2a" /* {iso(1) member-body(2)} */
75 #define MBEDTLS_OID_ISO_IDENTIFIED_ORG "\x2b" /* {iso(1) identified-organization(3)} */
76 #define MBEDTLS_OID_ISO_CCITT_DS "\x55" /* {joint-iso-ccitt(2) ds(5)} */
77 #define MBEDTLS_OID_ISO_ITU_COUNTRY "\x60" /* {joint-iso-itu-t(2) country(16)} */
78
79 /*
80 * ISO Member bodies OID parts
81 */
82 #define MBEDTLS_OID_COUNTRY_US "\x86\x48" /* {us(840)} */
83 #define MBEDTLS_OID_ORG_RSA_DATA_SECURITY "\x86\xf7\x0d" /* {rsadsi(113549)} */
84 #define MBEDTLS_OID_RSA_COMPANY MBEDTLS_OID_ISO_MEMBER_BODIES MBEDTLS_OID_COUNTRY_US \
85 MBEDTLS_OID_ORG_RSA_DATA_SECURITY /* {iso(1) member-body(2) us(840) rsadsi(113549)} */
86 #define MBEDTLS_OID_ORG_ANSI_X9_62 "\xce\x3d" /* ansi-X9-62(10045) */
87 #define MBEDTLS_OID_ANSI_X9_62 MBEDTLS_OID_ISO_MEMBER_BODIES MBEDTLS_OID_COUNTRY_US \
88 MBEDTLS_OID_ORG_ANSI_X9_62
89
90 /*
91 * ISO Identified organization OID parts
92 */
93 #define MBEDTLS_OID_ORG_DOD "\x06" /* {dod(6)} */
94 #define MBEDTLS_OID_ORG_OIW "\x0e"
95 #define MBEDTLS_OID_OIW_SECSIG MBEDTLS_OID_ORG_OIW "\x03"
96 #define MBEDTLS_OID_OIW_SECSIG_ALG MBEDTLS_OID_OIW_SECSIG "\x02"
97 #define MBEDTLS_OID_OIW_SECSIG_SHA1 MBEDTLS_OID_OIW_SECSIG_ALG "\x1a"
98 #define MBEDTLS_OID_ORG_CERTICOM "\x81\x04" /* certicom(132) */
99 #define MBEDTLS_OID_CERTICOM MBEDTLS_OID_ISO_IDENTIFIED_ORG MBEDTLS_OID_ORG_CERTICOM
100 #define MBEDTLS_OID_ORG_TELETRUST "\x24" /* teletrust(36) */
101 #define MBEDTLS_OID_TELETRUST MBEDTLS_OID_ISO_IDENTIFIED_ORG MBEDTLS_OID_ORG_TELETRUST
102
103 /*
104 * ISO ITU OID parts
105 */
106 #define MBEDTLS_OID_ORGANIZATION "\x01" /* {organization(1)} */
107 #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)} */
108
109 #define MBEDTLS_OID_ORG_GOV "\x65" /* {gov(101)} */
110 #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)} */
111
112 #define MBEDTLS_OID_ORG_NETSCAPE "\x86\xF8\x42" /* {netscape(113730)} */
113 #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)} */
114
115 /* ISO arc for standard certificate and CRL extensions */
116 #define MBEDTLS_OID_ID_CE MBEDTLS_OID_ISO_CCITT_DS "\x1D"
118 #define MBEDTLS_OID_NIST_ALG MBEDTLS_OID_GOV "\x03\x04"
125 #define MBEDTLS_OID_INTERNET MBEDTLS_OID_ISO_IDENTIFIED_ORG MBEDTLS_OID_ORG_DOD "\x01"
126 #define MBEDTLS_OID_PKIX MBEDTLS_OID_INTERNET "\x05\x05\x07"
127
128 /*
129 * Arc for standard naming attributes
130 */
131 #define MBEDTLS_OID_AT MBEDTLS_OID_ISO_CCITT_DS "\x04"
132 #define MBEDTLS_OID_AT_CN MBEDTLS_OID_AT "\x03"
133 #define MBEDTLS_OID_AT_SUR_NAME MBEDTLS_OID_AT "\x04"
134 #define MBEDTLS_OID_AT_SERIAL_NUMBER MBEDTLS_OID_AT "\x05"
135 #define MBEDTLS_OID_AT_COUNTRY MBEDTLS_OID_AT "\x06"
136 #define MBEDTLS_OID_AT_LOCALITY MBEDTLS_OID_AT "\x07"
137 #define MBEDTLS_OID_AT_STATE MBEDTLS_OID_AT "\x08"
138 #define MBEDTLS_OID_AT_ORGANIZATION MBEDTLS_OID_AT "\x0A"
139 #define MBEDTLS_OID_AT_ORG_UNIT MBEDTLS_OID_AT "\x0B"
140 #define MBEDTLS_OID_AT_TITLE MBEDTLS_OID_AT "\x0C"
141 #define MBEDTLS_OID_AT_POSTAL_ADDRESS MBEDTLS_OID_AT "\x10"
142 #define MBEDTLS_OID_AT_POSTAL_CODE MBEDTLS_OID_AT "\x11"
143 #define MBEDTLS_OID_AT_GIVEN_NAME MBEDTLS_OID_AT "\x2A"
144 #define MBEDTLS_OID_AT_INITIALS MBEDTLS_OID_AT "\x2B"
145 #define MBEDTLS_OID_AT_GENERATION_QUALIFIER MBEDTLS_OID_AT "\x2C"
146 #define MBEDTLS_OID_AT_UNIQUE_IDENTIFIER MBEDTLS_OID_AT "\x2D"
147 #define MBEDTLS_OID_AT_DN_QUALIFIER MBEDTLS_OID_AT "\x2E"
148 #define MBEDTLS_OID_AT_PSEUDONYM MBEDTLS_OID_AT "\x41"
150 #define MBEDTLS_OID_DOMAIN_COMPONENT "\x09\x92\x26\x89\x93\xF2\x2C\x64\x01\x19"
152 /*
153 * OIDs for standard certificate extensions
154 */
155 #define MBEDTLS_OID_AUTHORITY_KEY_IDENTIFIER MBEDTLS_OID_ID_CE "\x23"
156 #define MBEDTLS_OID_SUBJECT_KEY_IDENTIFIER MBEDTLS_OID_ID_CE "\x0E"
157 #define MBEDTLS_OID_KEY_USAGE MBEDTLS_OID_ID_CE "\x0F"
158 #define MBEDTLS_OID_CERTIFICATE_POLICIES MBEDTLS_OID_ID_CE "\x20"
159 #define MBEDTLS_OID_POLICY_MAPPINGS MBEDTLS_OID_ID_CE "\x21"
160 #define MBEDTLS_OID_SUBJECT_ALT_NAME MBEDTLS_OID_ID_CE "\x11"
161 #define MBEDTLS_OID_ISSUER_ALT_NAME MBEDTLS_OID_ID_CE "\x12"
162 #define MBEDTLS_OID_SUBJECT_DIRECTORY_ATTRS MBEDTLS_OID_ID_CE "\x09"
163 #define MBEDTLS_OID_BASIC_CONSTRAINTS MBEDTLS_OID_ID_CE "\x13"
164 #define MBEDTLS_OID_NAME_CONSTRAINTS MBEDTLS_OID_ID_CE "\x1E"
165 #define MBEDTLS_OID_POLICY_CONSTRAINTS MBEDTLS_OID_ID_CE "\x24"
166 #define MBEDTLS_OID_EXTENDED_KEY_USAGE MBEDTLS_OID_ID_CE "\x25"
167 #define MBEDTLS_OID_CRL_DISTRIBUTION_POINTS MBEDTLS_OID_ID_CE "\x1F"
168 #define MBEDTLS_OID_INIHIBIT_ANYPOLICY MBEDTLS_OID_ID_CE "\x36"
169 #define MBEDTLS_OID_FRESHEST_CRL MBEDTLS_OID_ID_CE "\x2E"
171 /*
172 * Certificate policies
173 */
174 #define MBEDTLS_OID_ANY_POLICY MBEDTLS_OID_CERTIFICATE_POLICIES "\x00"
176 /*
177 * Netscape certificate extensions
178 */
179 #define MBEDTLS_OID_NS_CERT MBEDTLS_OID_NETSCAPE "\x01"
180 #define MBEDTLS_OID_NS_CERT_TYPE MBEDTLS_OID_NS_CERT "\x01"
181 #define MBEDTLS_OID_NS_BASE_URL MBEDTLS_OID_NS_CERT "\x02"
182 #define MBEDTLS_OID_NS_REVOCATION_URL MBEDTLS_OID_NS_CERT "\x03"
183 #define MBEDTLS_OID_NS_CA_REVOCATION_URL MBEDTLS_OID_NS_CERT "\x04"
184 #define MBEDTLS_OID_NS_RENEWAL_URL MBEDTLS_OID_NS_CERT "\x07"
185 #define MBEDTLS_OID_NS_CA_POLICY_URL MBEDTLS_OID_NS_CERT "\x08"
186 #define MBEDTLS_OID_NS_SSL_SERVER_NAME MBEDTLS_OID_NS_CERT "\x0C"
187 #define MBEDTLS_OID_NS_COMMENT MBEDTLS_OID_NS_CERT "\x0D"
188 #define MBEDTLS_OID_NS_DATA_TYPE MBEDTLS_OID_NETSCAPE "\x02"
189 #define MBEDTLS_OID_NS_CERT_SEQUENCE MBEDTLS_OID_NS_DATA_TYPE "\x05"
190
191 /*
192 * OIDs for CRL extensions
193 */
194 #define MBEDTLS_OID_PRIVATE_KEY_USAGE_PERIOD MBEDTLS_OID_ID_CE "\x10"
195 #define MBEDTLS_OID_CRL_NUMBER MBEDTLS_OID_ID_CE "\x14"
197 /*
198 * X.509 v3 Extended key usage OIDs
199 */
200 #define MBEDTLS_OID_ANY_EXTENDED_KEY_USAGE MBEDTLS_OID_EXTENDED_KEY_USAGE "\x00"
202 #define MBEDTLS_OID_KP MBEDTLS_OID_PKIX "\x03"
203 #define MBEDTLS_OID_SERVER_AUTH MBEDTLS_OID_KP "\x01"
204 #define MBEDTLS_OID_CLIENT_AUTH MBEDTLS_OID_KP "\x02"
205 #define MBEDTLS_OID_CODE_SIGNING MBEDTLS_OID_KP "\x03"
206 #define MBEDTLS_OID_EMAIL_PROTECTION MBEDTLS_OID_KP "\x04"
207 #define MBEDTLS_OID_TIME_STAMPING MBEDTLS_OID_KP "\x08"
208 #define MBEDTLS_OID_OCSP_SIGNING MBEDTLS_OID_KP "\x09"
215 #define MBEDTLS_OID_WISUN_FAN MBEDTLS_OID_INTERNET "\x04\x01\x82\xe4\x25\x01"
216
217 #define MBEDTLS_OID_ON MBEDTLS_OID_PKIX "\x08"
218 #define MBEDTLS_OID_ON_HW_MODULE_NAME MBEDTLS_OID_ON "\x04"
220 /*
221 * PKCS definition OIDs
222 */
223
224 #define MBEDTLS_OID_PKCS MBEDTLS_OID_RSA_COMPANY "\x01"
225 #define MBEDTLS_OID_PKCS1 MBEDTLS_OID_PKCS "\x01"
226 #define MBEDTLS_OID_PKCS5 MBEDTLS_OID_PKCS "\x05"
227 #define MBEDTLS_OID_PKCS9 MBEDTLS_OID_PKCS "\x09"
228 #define MBEDTLS_OID_PKCS12 MBEDTLS_OID_PKCS "\x0c"
230 /*
231 * PKCS#1 OIDs
232 */
233 #define MBEDTLS_OID_PKCS1_RSA MBEDTLS_OID_PKCS1 "\x01"
234 #define MBEDTLS_OID_PKCS1_MD2 MBEDTLS_OID_PKCS1 "\x02"
235 #define MBEDTLS_OID_PKCS1_MD4 MBEDTLS_OID_PKCS1 "\x03"
236 #define MBEDTLS_OID_PKCS1_MD5 MBEDTLS_OID_PKCS1 "\x04"
237 #define MBEDTLS_OID_PKCS1_SHA1 MBEDTLS_OID_PKCS1 "\x05"
238 #define MBEDTLS_OID_PKCS1_SHA224 MBEDTLS_OID_PKCS1 "\x0e"
239 #define MBEDTLS_OID_PKCS1_SHA256 MBEDTLS_OID_PKCS1 "\x0b"
240 #define MBEDTLS_OID_PKCS1_SHA384 MBEDTLS_OID_PKCS1 "\x0c"
241 #define MBEDTLS_OID_PKCS1_SHA512 MBEDTLS_OID_PKCS1 "\x0d"
243 #define MBEDTLS_OID_RSA_SHA_OBS "\x2B\x0E\x03\x02\x1D"
244
245 #define MBEDTLS_OID_PKCS9_EMAIL MBEDTLS_OID_PKCS9 "\x01"
247 /* RFC 4055 */
248 #define MBEDTLS_OID_RSASSA_PSS MBEDTLS_OID_PKCS1 "\x0a"
249 #define MBEDTLS_OID_MGF1 MBEDTLS_OID_PKCS1 "\x08"
251 /*
252 * Digest algorithms
253 */
254 #define MBEDTLS_OID_DIGEST_ALG_MD2 MBEDTLS_OID_RSA_COMPANY "\x02\x02"
255 #define MBEDTLS_OID_DIGEST_ALG_MD4 MBEDTLS_OID_RSA_COMPANY "\x02\x04"
256 #define MBEDTLS_OID_DIGEST_ALG_MD5 MBEDTLS_OID_RSA_COMPANY "\x02\x05"
257 #define MBEDTLS_OID_DIGEST_ALG_SHA1 MBEDTLS_OID_ISO_IDENTIFIED_ORG MBEDTLS_OID_OIW_SECSIG_SHA1
258 #define MBEDTLS_OID_DIGEST_ALG_SHA224 MBEDTLS_OID_NIST_ALG "\x02\x04"
259 #define MBEDTLS_OID_DIGEST_ALG_SHA256 MBEDTLS_OID_NIST_ALG "\x02\x01"
261 #define MBEDTLS_OID_DIGEST_ALG_SHA384 MBEDTLS_OID_NIST_ALG "\x02\x02"
263 #define MBEDTLS_OID_DIGEST_ALG_SHA512 MBEDTLS_OID_NIST_ALG "\x02\x03"
265 #define MBEDTLS_OID_DIGEST_ALG_RIPEMD160 MBEDTLS_OID_TELETRUST "\x03\x02\x01"
267 #define MBEDTLS_OID_HMAC_SHA1 MBEDTLS_OID_RSA_COMPANY "\x02\x07"
269 #define MBEDTLS_OID_HMAC_SHA224 MBEDTLS_OID_RSA_COMPANY "\x02\x08"
271 #define MBEDTLS_OID_HMAC_SHA256 MBEDTLS_OID_RSA_COMPANY "\x02\x09"
273 #define MBEDTLS_OID_HMAC_SHA384 MBEDTLS_OID_RSA_COMPANY "\x02\x0A"
275 #define MBEDTLS_OID_HMAC_SHA512 MBEDTLS_OID_RSA_COMPANY "\x02\x0B"
277 /*
278 * Encryption algorithms
279 */
280 #define MBEDTLS_OID_DES_CBC MBEDTLS_OID_ISO_IDENTIFIED_ORG MBEDTLS_OID_OIW_SECSIG_ALG "\x07"
281 #define MBEDTLS_OID_DES_EDE3_CBC MBEDTLS_OID_RSA_COMPANY "\x03\x07"
282 #define MBEDTLS_OID_AES MBEDTLS_OID_NIST_ALG "\x01"
284 /*
285 * Key Wrapping algorithms
286 */
287 /*
288 * RFC 5649
289 */
290 #define MBEDTLS_OID_AES128_KW MBEDTLS_OID_AES "\x05"
291 #define MBEDTLS_OID_AES128_KWP MBEDTLS_OID_AES "\x08"
292 #define MBEDTLS_OID_AES192_KW MBEDTLS_OID_AES "\x19"
293 #define MBEDTLS_OID_AES192_KWP MBEDTLS_OID_AES "\x1c"
294 #define MBEDTLS_OID_AES256_KW MBEDTLS_OID_AES "\x2d"
295 #define MBEDTLS_OID_AES256_KWP MBEDTLS_OID_AES "\x30"
296 /*
297 * PKCS#5 OIDs
298 */
299 #define MBEDTLS_OID_PKCS5_PBKDF2 MBEDTLS_OID_PKCS5 "\x0c"
300 #define MBEDTLS_OID_PKCS5_PBES2 MBEDTLS_OID_PKCS5 "\x0d"
301 #define MBEDTLS_OID_PKCS5_PBMAC1 MBEDTLS_OID_PKCS5 "\x0e"
303 /*
304 * PKCS#5 PBES1 algorithms
305 */
306 #define MBEDTLS_OID_PKCS5_PBE_MD2_DES_CBC MBEDTLS_OID_PKCS5 "\x01"
307 #define MBEDTLS_OID_PKCS5_PBE_MD2_RC2_CBC MBEDTLS_OID_PKCS5 "\x04"
308 #define MBEDTLS_OID_PKCS5_PBE_MD5_DES_CBC MBEDTLS_OID_PKCS5 "\x03"
309 #define MBEDTLS_OID_PKCS5_PBE_MD5_RC2_CBC MBEDTLS_OID_PKCS5 "\x06"
310 #define MBEDTLS_OID_PKCS5_PBE_SHA1_DES_CBC MBEDTLS_OID_PKCS5 "\x0a"
311 #define MBEDTLS_OID_PKCS5_PBE_SHA1_RC2_CBC MBEDTLS_OID_PKCS5 "\x0b"
313 /*
314 * PKCS#8 OIDs
315 */
316 #define MBEDTLS_OID_PKCS9_CSR_EXT_REQ MBEDTLS_OID_PKCS9 "\x0e"
318 /*
319 * PKCS#12 PBE OIDs
320 */
321 #define MBEDTLS_OID_PKCS12_PBE MBEDTLS_OID_PKCS12 "\x01"
323 #define MBEDTLS_OID_PKCS12_PBE_SHA1_RC4_128 MBEDTLS_OID_PKCS12_PBE "\x01"
324 #define MBEDTLS_OID_PKCS12_PBE_SHA1_RC4_40 MBEDTLS_OID_PKCS12_PBE "\x02"
325 #define MBEDTLS_OID_PKCS12_PBE_SHA1_DES3_EDE_CBC MBEDTLS_OID_PKCS12_PBE "\x03"
326 #define MBEDTLS_OID_PKCS12_PBE_SHA1_DES2_EDE_CBC MBEDTLS_OID_PKCS12_PBE "\x04"
327 #define MBEDTLS_OID_PKCS12_PBE_SHA1_RC2_128_CBC MBEDTLS_OID_PKCS12_PBE "\x05"
328 #define MBEDTLS_OID_PKCS12_PBE_SHA1_RC2_40_CBC MBEDTLS_OID_PKCS12_PBE "\x06"
330 /*
331 * EC key algorithms from RFC 5480
332 */
333
334 /* id-ecPublicKey OBJECT IDENTIFIER ::= {
335 * iso(1) member-body(2) us(840) ansi-X9-62(10045) keyType(2) 1 } */
336 #define MBEDTLS_OID_EC_ALG_UNRESTRICTED MBEDTLS_OID_ANSI_X9_62 "\x02\01"
337
338 /* id-ecDH OBJECT IDENTIFIER ::= {
339 * iso(1) identified-organization(3) certicom(132)
340 * schemes(1) ecdh(12) } */
341 #define MBEDTLS_OID_EC_ALG_ECDH MBEDTLS_OID_CERTICOM "\x01\x0c"
342
343 /*
344 * ECParameters namedCurve identifiers, from RFC 5480, RFC 5639, and SEC2
345 */
346
347 /* secp192r1 OBJECT IDENTIFIER ::= {
348 * iso(1) member-body(2) us(840) ansi-X9-62(10045) curves(3) prime(1) 1 } */
349 #define MBEDTLS_OID_EC_GRP_SECP192R1 MBEDTLS_OID_ANSI_X9_62 "\x03\x01\x01"
350
351 /* secp224r1 OBJECT IDENTIFIER ::= {
352 * iso(1) identified-organization(3) certicom(132) curve(0) 33 } */
353 #define MBEDTLS_OID_EC_GRP_SECP224R1 MBEDTLS_OID_CERTICOM "\x00\x21"
354
355 /* secp256r1 OBJECT IDENTIFIER ::= {
356 * iso(1) member-body(2) us(840) ansi-X9-62(10045) curves(3) prime(1) 7 } */
357 #define MBEDTLS_OID_EC_GRP_SECP256R1 MBEDTLS_OID_ANSI_X9_62 "\x03\x01\x07"
358
359 /* secp384r1 OBJECT IDENTIFIER ::= {
360 * iso(1) identified-organization(3) certicom(132) curve(0) 34 } */
361 #define MBEDTLS_OID_EC_GRP_SECP384R1 MBEDTLS_OID_CERTICOM "\x00\x22"
362
363 /* secp521r1 OBJECT IDENTIFIER ::= {
364 * iso(1) identified-organization(3) certicom(132) curve(0) 35 } */
365 #define MBEDTLS_OID_EC_GRP_SECP521R1 MBEDTLS_OID_CERTICOM "\x00\x23"
366
367 /* secp192k1 OBJECT IDENTIFIER ::= {
368 * iso(1) identified-organization(3) certicom(132) curve(0) 31 } */
369 #define MBEDTLS_OID_EC_GRP_SECP192K1 MBEDTLS_OID_CERTICOM "\x00\x1f"
370
371 /* secp224k1 OBJECT IDENTIFIER ::= {
372 * iso(1) identified-organization(3) certicom(132) curve(0) 32 } */
373 #define MBEDTLS_OID_EC_GRP_SECP224K1 MBEDTLS_OID_CERTICOM "\x00\x20"
374
375 /* secp256k1 OBJECT IDENTIFIER ::= {
376 * iso(1) identified-organization(3) certicom(132) curve(0) 10 } */
377 #define MBEDTLS_OID_EC_GRP_SECP256K1 MBEDTLS_OID_CERTICOM "\x00\x0a"
378
379 /* RFC 5639 4.1
380 * ecStdCurvesAndGeneration OBJECT IDENTIFIER::= {iso(1)
381 * identified-organization(3) teletrust(36) algorithm(3) signature-
382 * algorithm(3) ecSign(2) 8}
383 * ellipticCurve OBJECT IDENTIFIER ::= {ecStdCurvesAndGeneration 1}
384 * versionOne OBJECT IDENTIFIER ::= {ellipticCurve 1} */
385 #define MBEDTLS_OID_EC_BRAINPOOL_V1 MBEDTLS_OID_TELETRUST "\x03\x03\x02\x08\x01\x01"
386
387 /* brainpoolP256r1 OBJECT IDENTIFIER ::= {versionOne 7} */
388 #define MBEDTLS_OID_EC_GRP_BP256R1 MBEDTLS_OID_EC_BRAINPOOL_V1 "\x07"
389
390 /* brainpoolP384r1 OBJECT IDENTIFIER ::= {versionOne 11} */
391 #define MBEDTLS_OID_EC_GRP_BP384R1 MBEDTLS_OID_EC_BRAINPOOL_V1 "\x0B"
392
393 /* brainpoolP512r1 OBJECT IDENTIFIER ::= {versionOne 13} */
394 #define MBEDTLS_OID_EC_GRP_BP512R1 MBEDTLS_OID_EC_BRAINPOOL_V1 "\x0D"
395
396 /*
397 * SEC1 C.1
398 *
399 * prime-field OBJECT IDENTIFIER ::= { id-fieldType 1 }
400 * id-fieldType OBJECT IDENTIFIER ::= { ansi-X9-62 fieldType(1)}
401 */
402 #define MBEDTLS_OID_ANSI_X9_62_FIELD_TYPE MBEDTLS_OID_ANSI_X9_62 "\x01"
403 #define MBEDTLS_OID_ANSI_X9_62_PRIME_FIELD MBEDTLS_OID_ANSI_X9_62_FIELD_TYPE "\x01"
404
405 /*
406 * ECDSA signature identifiers, from RFC 5480
407 */
408 #define MBEDTLS_OID_ANSI_X9_62_SIG MBEDTLS_OID_ANSI_X9_62 "\x04" /* signatures(4) */
409 #define MBEDTLS_OID_ANSI_X9_62_SIG_SHA2 MBEDTLS_OID_ANSI_X9_62_SIG "\x03" /* ecdsa-with-SHA2(3) */
410
411 /* ecdsa-with-SHA1 OBJECT IDENTIFIER ::= {
412 * iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4) 1 } */
413 #define MBEDTLS_OID_ECDSA_SHA1 MBEDTLS_OID_ANSI_X9_62_SIG "\x01"
414
415 /* ecdsa-with-SHA224 OBJECT IDENTIFIER ::= {
416 * iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4)
417 * ecdsa-with-SHA2(3) 1 } */
418 #define MBEDTLS_OID_ECDSA_SHA224 MBEDTLS_OID_ANSI_X9_62_SIG_SHA2 "\x01"
419
420 /* ecdsa-with-SHA256 OBJECT IDENTIFIER ::= {
421 * iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4)
422 * ecdsa-with-SHA2(3) 2 } */
423 #define MBEDTLS_OID_ECDSA_SHA256 MBEDTLS_OID_ANSI_X9_62_SIG_SHA2 "\x02"
424
425 /* ecdsa-with-SHA384 OBJECT IDENTIFIER ::= {
426 * iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4)
427 * ecdsa-with-SHA2(3) 3 } */
428 #define MBEDTLS_OID_ECDSA_SHA384 MBEDTLS_OID_ANSI_X9_62_SIG_SHA2 "\x03"
429
430 /* ecdsa-with-SHA512 OBJECT IDENTIFIER ::= {
431 * iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4)
432 * ecdsa-with-SHA2(3) 4 } */
433 #define MBEDTLS_OID_ECDSA_SHA512 MBEDTLS_OID_ANSI_X9_62_SIG_SHA2 "\x04"
434
435 #ifdef __cplusplus
436 extern "C" {
437 #endif
438
442 typedef struct mbedtls_oid_descriptor_t
443 {
444 const char *asn1;
445 size_t asn1_len;
446 const char *name;
447 const char *description;
448 } mbedtls_oid_descriptor_t;
449
461 int mbedtls_oid_get_numeric_string( char *buf, size_t size, const mbedtls_asn1_buf *oid );
462
471 int mbedtls_oid_get_x509_ext_type( const mbedtls_asn1_buf *oid, int *ext_type );
472
482 int mbedtls_oid_get_attr_short_name( const mbedtls_asn1_buf *oid, const char **short_name );
483
492 int mbedtls_oid_get_pk_alg( const mbedtls_asn1_buf *oid, mbedtls_pk_type_t *pk_alg );
493
503 int mbedtls_oid_get_oid_by_pk_alg( mbedtls_pk_type_t pk_alg,
504 const char **oid, size_t *olen );
505
506 #if defined(MBEDTLS_ECP_C)
507
515 int mbedtls_oid_get_ec_grp( const mbedtls_asn1_buf *oid, mbedtls_ecp_group_id *grp_id );
516
526 int mbedtls_oid_get_oid_by_ec_grp( mbedtls_ecp_group_id grp_id,
527 const char **oid, size_t *olen );
528 #endif /* MBEDTLS_ECP_C */
529
530 #if defined(MBEDTLS_MD_C)
531
540 int mbedtls_oid_get_sig_alg( const mbedtls_asn1_buf *oid,
541 mbedtls_md_type_t *md_alg, mbedtls_pk_type_t *pk_alg );
542
551 int mbedtls_oid_get_sig_alg_desc( const mbedtls_asn1_buf *oid, const char **desc );
552
563 int mbedtls_oid_get_oid_by_sig_alg( mbedtls_pk_type_t pk_alg, mbedtls_md_type_t md_alg,
564 const char **oid, size_t *olen );
565
574 int mbedtls_oid_get_md_alg( const mbedtls_asn1_buf *oid, mbedtls_md_type_t *md_alg );
575
584 int mbedtls_oid_get_md_hmac( const mbedtls_asn1_buf *oid, mbedtls_md_type_t *md_hmac );
585 #endif /* MBEDTLS_MD_C */
586
595 int mbedtls_oid_get_extended_key_usage( const mbedtls_asn1_buf *oid, const char **desc );
596
605 int mbedtls_oid_get_certificate_policies( const mbedtls_asn1_buf *oid, const char **desc );
606
616 int mbedtls_oid_get_oid_by_md( mbedtls_md_type_t md_alg, const char **oid, size_t *olen );
617
618 #if defined(MBEDTLS_CIPHER_C)
619
627 int mbedtls_oid_get_cipher_alg( const mbedtls_asn1_buf *oid, mbedtls_cipher_type_t *cipher_alg );
628 #endif /* MBEDTLS_CIPHER_C */
629
630 #if defined(MBEDTLS_PKCS12_C)
631
641 int mbedtls_oid_get_pkcs12_pbe_alg( const mbedtls_asn1_buf *oid, mbedtls_md_type_t *md_alg,
642 mbedtls_cipher_type_t *cipher_alg );
643 #endif /* MBEDTLS_PKCS12_C */
644
645 #ifdef __cplusplus
646 }
647 #endif
648
649 #endif /* oid.h */
mbedtls_md_type_t
mbedtls_md_type_t
Supported message digests.
Definition: md.h:58
mbedtls_oid_get_cipher_alg
int mbedtls_oid_get_cipher_alg(const mbedtls_asn1_buf *oid, mbedtls_cipher_type_t *cipher_alg)
Translate encryption algorithm OID into cipher_type.
mbedtls_oid_get_extended_key_usage
int mbedtls_oid_get_extended_key_usage(const mbedtls_asn1_buf *oid, const char **desc)
Translate Extended Key Usage OID into description.
md.h
This file contains the generic message-digest wrapper.
mbedtls_oid_get_certificate_policies
int mbedtls_oid_get_certificate_policies(const mbedtls_asn1_buf *oid, const char **desc)
Translate certificate policies OID into description.
mbedtls_oid_get_sig_alg_desc
int mbedtls_oid_get_sig_alg_desc(const mbedtls_asn1_buf *oid, const char **desc)
Translate SignatureAlgorithm OID into description.
mbedtls_oid_descriptor_t::asn1_len
size_t asn1_len
Definition: oid.h:445
mbedtls_oid_get_oid_by_ec_grp
int mbedtls_oid_get_oid_by_ec_grp(mbedtls_ecp_group_id grp_id, const char **oid, size_t *olen)
Translate EC group identifier into NamedCurve OID.
mbedtls_oid_get_numeric_string
int mbedtls_oid_get_numeric_string(char *buf, size_t size, const mbedtls_asn1_buf *oid)
Translate an ASN.1 OID into its numeric representation (e.g. "\x2A\x86\x48\x86\xF7\x0D" into "1....
mbedtls_oid_descriptor_t
Base OID descriptor structure.
Definition: oid.h:443
mbedtls_oid_get_x509_ext_type
int mbedtls_oid_get_x509_ext_type(const mbedtls_asn1_buf *oid, int *ext_type)
Translate an X.509 extension OID into local values.
mbedtls_oid_get_attr_short_name
int mbedtls_oid_get_attr_short_name(const mbedtls_asn1_buf *oid, const char **short_name)
Translate an X.509 attribute type OID into the short name (e.g. the OID for an X520 Common Name into ...
cipher.h
This file contains an abstraction interface for use with the cipher primitives provided by the librar...
mbedtls_ecp_group_id
mbedtls_ecp_group_id
Definition: ecp.h:78
mbedtls_oid_descriptor_t::description
const char * description
Definition: oid.h:447
mbedtls_oid_get_ec_grp
int mbedtls_oid_get_ec_grp(const mbedtls_asn1_buf *oid, mbedtls_ecp_group_id *grp_id)
Translate NamedCurve OID into an EC group identifier.
mbedtls_oid_get_sig_alg
int mbedtls_oid_get_sig_alg(const mbedtls_asn1_buf *oid, mbedtls_md_type_t *md_alg, mbedtls_pk_type_t *pk_alg)
Translate SignatureAlgorithm OID into md_type and pk_type.
mbedtls_pk_type_t
mbedtls_pk_type_t
Public key types.
Definition: pk.h:82
mbedtls_oid_descriptor_t::asn1
const char * asn1
Definition: oid.h:444
mbedtls_oid_descriptor_t
struct mbedtls_oid_descriptor_t mbedtls_oid_descriptor_t
Base OID descriptor structure.
mbedtls_oid_get_md_alg
int mbedtls_oid_get_md_alg(const mbedtls_asn1_buf *oid, mbedtls_md_type_t *md_alg)
Translate hash algorithm OID into md_type.
mbedtls_oid_get_md_hmac
int mbedtls_oid_get_md_hmac(const mbedtls_asn1_buf *oid, mbedtls_md_type_t *md_hmac)
Translate hmac algorithm OID into md_type.
mbedtls_oid_descriptor_t::name
const char * name
Definition: oid.h:446
mbedtls_oid_get_pk_alg
int mbedtls_oid_get_pk_alg(const mbedtls_asn1_buf *oid, mbedtls_pk_type_t *pk_alg)
Translate PublicKeyAlgorithm OID into pk_type.
pk.h
Public Key abstraction layer.
mbedtls_oid_get_oid_by_sig_alg
int mbedtls_oid_get_oid_by_sig_alg(mbedtls_pk_type_t pk_alg, mbedtls_md_type_t md_alg, const char **oid, size_t *olen)
Translate md_type and pk_type into SignatureAlgorithm OID.
config.h
Configuration options (set of defines)
md_hmac
#define md_hmac
Definition: compat-1.3.h:2026
mbedtls_oid_get_pkcs12_pbe_alg
int mbedtls_oid_get_pkcs12_pbe_alg(const mbedtls_asn1_buf *oid, mbedtls_md_type_t *md_alg, mbedtls_cipher_type_t *cipher_alg)
Translate PKCS#12 PBE algorithm OID into md_type and cipher_type.
mbedtls_asn1_buf
Definition: asn1.h:152
mbedtls_oid_get_oid_by_md
int mbedtls_oid_get_oid_by_md(mbedtls_md_type_t md_alg, const char **oid, size_t *olen)
Translate md_type into hash algorithm OID.
mbedtls_oid_get_oid_by_pk_alg
int mbedtls_oid_get_oid_by_pk_alg(mbedtls_pk_type_t pk_alg, const char **oid, size_t *olen)
Translate pk_type into PublicKeyAlgorithm OID.
mbedtls_cipher_type_t
mbedtls_cipher_type_t
Supported {cipher type, cipher mode} pairs.
Definition: cipher.h:104
asn1.h
Generic ASN.1 parsing.