Object Identifier (OID) database. More...
#include "polarssl/config.h"
#include "polarssl/oid.h"
#include "polarssl/rsa.h"
#include "polarssl/x509.h"
#include <stdio.h>
Go to the source code of this file.
Object Identifier (OID) database.
Copyright (C) 2006-2013, Brainspark B.V.
This file is part of PolarSSL (http://www.polarssl.org) Lead Maintainer: Paul Bakker <polarssl_maintainer at polarssl.org>
All rights reserved.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Definition in file oid.c.
#define FN_OID_GET_ATTR1 | ( | FN_NAME, | |||
TYPE_T, | |||||
TYPE_NAME, | |||||
ATTR1_TYPE, | |||||
ATTR1 | ) |
int FN_NAME( const asn1_buf *oid, ATTR1_TYPE * ATTR1 ) \ { \ const TYPE_T *data = oid_ ## TYPE_NAME ## _from_asn1( oid ); \ if( data == NULL ) return ( POLARSSL_ERR_OID_NOT_FOUND ); \ *ATTR1 = data->ATTR1; \ return( 0 ); \ }
#define FN_OID_GET_ATTR2 | ( | FN_NAME, | |||
TYPE_T, | |||||
TYPE_NAME, | |||||
ATTR1_TYPE, | |||||
ATTR1, | |||||
ATTR2_TYPE, | |||||
ATTR2 | ) |
int FN_NAME( const asn1_buf *oid, ATTR1_TYPE * ATTR1, ATTR2_TYPE * ATTR2 ) \ { \ const TYPE_T *data = oid_ ## TYPE_NAME ## _from_asn1( oid ); \ if( data == NULL ) return ( POLARSSL_ERR_OID_NOT_FOUND ); \ *ATTR1 = data->ATTR1; \ *ATTR2 = data->ATTR2; \ return( 0 ); \ }
#define FN_OID_GET_DESCRIPTOR_ATTR1 | ( | FN_NAME, | |||
TYPE_T, | |||||
TYPE_NAME, | |||||
ATTR1_TYPE, | |||||
ATTR1 | ) |
int FN_NAME( const asn1_buf *oid, ATTR1_TYPE * ATTR1 ) \ { \ const TYPE_T *data = oid_ ## TYPE_NAME ## _from_asn1( oid ); \ if( data == NULL ) return ( POLARSSL_ERR_OID_NOT_FOUND ); \ *ATTR1 = data->descriptor.ATTR1; \ return( 0 ); \ }
#define FN_OID_GET_OID_BY_ATTR1 | ( | FN_NAME, | |||
TYPE_T, | |||||
LIST, | |||||
ATTR1_TYPE, | |||||
ATTR1 | ) |
int FN_NAME( ATTR1_TYPE ATTR1, const char **oid, size_t *olen ) \ { \ const TYPE_T *cur = LIST; \ while( cur->descriptor.asn1 != NULL ) { \ if( cur->ATTR1 == ATTR1 ) { \ *oid = cur->descriptor.asn1; \ *olen = cur->descriptor.asn1_len; \ return( 0 ); \ } \ cur++; \ } \ return( POLARSSL_ERR_OID_NOT_FOUND ); \ }
#define FN_OID_GET_OID_BY_ATTR2 | ( | FN_NAME, | |||
TYPE_T, | |||||
LIST, | |||||
ATTR1_TYPE, | |||||
ATTR1, | |||||
ATTR2_TYPE, | |||||
ATTR2 | ) |
int FN_NAME( ATTR1_TYPE ATTR1, ATTR2_TYPE ATTR2, const char **oid , \ size_t *olen ) \ { \ const TYPE_T *cur = LIST; \ while( cur->descriptor.asn1 != NULL ) { \ if( cur->ATTR1 == ATTR1 && cur->ATTR2 == ATTR2 ) { \ *oid = cur->descriptor.asn1; \ *olen = cur->descriptor.asn1_len; \ return( 0 ); \ } \ cur++; \ } \ return( POLARSSL_ERR_OID_NOT_FOUND ); \ }
#define FN_OID_TYPED_FROM_ASN1 | ( | TYPE_T, | |||
NAME, | |||||
LIST | ) |
static const TYPE_T * oid_ ## NAME ## _from_asn1( const asn1_buf *oid ) \ { \ const TYPE_T *p = LIST; \ const oid_descriptor_t *cur = (const oid_descriptor_t *) p; \ if( p == NULL || oid == NULL ) return( NULL ); \ while( cur->asn1 != NULL ) { \ if( cur->asn1_len == oid->len && \ memcmp( cur->asn1, oid->p, oid->len ) == 0 ) { \ return( p ); \ } \ p++; \ cur = (const oid_descriptor_t *) p; \ } \ return( NULL ); \ }
#define POLARSSL_ERR_DEBUG_BUF_TOO_SMALL -2 |
Definition at line 581 of file oid.c.
Referenced by oid_get_numeric_string(), and x509_key_size_helper().
#define SAFE_SNPRINTF | ( | ) |
{ \ if( ret == -1 ) \ return( -1 ); \ \ if ( (unsigned int) ret > n ) { \ p[n - 1] = '\0'; \ return POLARSSL_ERR_DEBUG_BUF_TOO_SMALL;\ } \ \ n -= (unsigned int) ret; \ p += (unsigned int) ret; \ }
Definition at line 583 of file oid.c.
Referenced by oid_get_numeric_string(), x509_crl_info(), x509_crt_info(), x509_csr_info(), x509_dn_gets(), x509_key_size_helper(), and x509_serial_gets().
FN_OID_GET_ATTR1 | ( | oid_get_md_alg | , | |
oid_md_alg_t | , | |||
md_alg | , | |||
md_type_t | , | |||
md_alg | ||||
) |
FN_OID_GET_ATTR1 | ( | oid_get_cipher_alg | , | |
oid_cipher_alg_t | , | |||
cipher_alg | , | |||
cipher_type_t | , | |||
cipher_alg | ||||
) |
FN_OID_GET_ATTR1 | ( | oid_get_ec_grp | , | |
oid_ecp_grp_t | , | |||
grp_id | , | |||
ecp_group_id | , | |||
grp_id | ||||
) |
FN_OID_GET_ATTR1 | ( | oid_get_pk_alg | , | |
oid_pk_alg_t | , | |||
pk_alg | , | |||
pk_type_t | , | |||
pk_alg | ||||
) |
FN_OID_GET_ATTR1 | ( | oid_get_extended_key_usage | , | |
oid_descriptor_t | , | |||
ext_key_usage | , | |||
const char * | , | |||
description | ||||
) |
FN_OID_GET_ATTR1 | ( | oid_get_x509_ext_type | , | |
oid_x509_ext_t | , | |||
x509_ext | , | |||
int | , | |||
ext_type | ||||
) |
FN_OID_GET_ATTR1 | ( | oid_get_attr_short_name | , | |
oid_x520_attr_t | , | |||
x520_attr | , | |||
const char * | , | |||
short_name | ||||
) |
FN_OID_GET_ATTR2 | ( | oid_get_pkcs12_pbe_alg | , | |
oid_pkcs12_pbe_alg_t | , | |||
pkcs12_pbe_alg | , | |||
md_type_t | , | |||
md_alg | , | |||
cipher_type_t | , | |||
cipher_alg | ||||
) |
FN_OID_GET_ATTR2 | ( | oid_get_sig_alg | , | |
oid_sig_alg_t | , | |||
sig_alg | , | |||
md_type_t | , | |||
md_alg | , | |||
pk_type_t | , | |||
pk_alg | ||||
) |
FN_OID_GET_DESCRIPTOR_ATTR1 | ( | oid_get_sig_alg_desc | , | |
oid_sig_alg_t | , | |||
sig_alg | , | |||
const char * | , | |||
description | ||||
) |
FN_OID_GET_OID_BY_ATTR1 | ( | oid_get_oid_by_md | , | |
oid_md_alg_t | , | |||
oid_md_alg | , | |||
md_type_t | , | |||
md_alg | ||||
) |
FN_OID_GET_OID_BY_ATTR1 | ( | oid_get_oid_by_ec_grp | , | |
oid_ecp_grp_t | , | |||
oid_ecp_grp | , | |||
ecp_group_id | , | |||
grp_id | ||||
) |
FN_OID_GET_OID_BY_ATTR1 | ( | oid_get_oid_by_pk_alg | , | |
oid_pk_alg_t | , | |||
oid_pk_alg | , | |||
pk_type_t | , | |||
pk_alg | ||||
) |
FN_OID_GET_OID_BY_ATTR2 | ( | oid_get_oid_by_sig_alg | , | |
oid_sig_alg_t | , | |||
oid_sig_alg | , | |||
pk_type_t | , | |||
pk_alg | , | |||
md_type_t | , | |||
md_alg | ||||
) |
FN_OID_TYPED_FROM_ASN1 | ( | oid_pkcs12_pbe_alg_t | , | |
pkcs12_pbe_alg | , | |||
oid_pkcs12_pbe_alg | ||||
) |
FN_OID_TYPED_FROM_ASN1 | ( | oid_md_alg_t | , | |
md_alg | , | |||
oid_md_alg | ||||
) |
FN_OID_TYPED_FROM_ASN1 | ( | oid_cipher_alg_t | , | |
cipher_alg | , | |||
oid_cipher_alg | ||||
) |
FN_OID_TYPED_FROM_ASN1 | ( | oid_ecp_grp_t | , | |
grp_id | , | |||
oid_ecp_grp | ||||
) |
FN_OID_TYPED_FROM_ASN1 | ( | oid_pk_alg_t | , | |
pk_alg | , | |||
oid_pk_alg | ||||
) |
FN_OID_TYPED_FROM_ASN1 | ( | oid_sig_alg_t | , | |
sig_alg | , | |||
oid_sig_alg | ||||
) |
FN_OID_TYPED_FROM_ASN1 | ( | oid_descriptor_t | , | |
ext_key_usage | , | |||
oid_ext_key_usage | ||||
) |
FN_OID_TYPED_FROM_ASN1 | ( | oid_x509_ext_t | , | |
x509_ext | , | |||
oid_x509_ext | ||||
) |
FN_OID_TYPED_FROM_ASN1 | ( | oid_x520_attr_t | , | |
x520_attr | , | |||
oid_x520_attr_type | ||||
) |
int oid_get_numeric_string | ( | char * | buf, | |
size_t | size, | |||
const asn1_buf * | oid | |||
) |
Translate an ASN.1 OID into its numeric representation (e.g.
"\x2A\x86\x48\x86\xF7\x0D" into "1.2.840.113549")
buf | buffer to put representation in | |
size | size of the buffer | |
oid | OID to translate |
Definition at line 598 of file oid.c.
References _asn1_buf::len, _asn1_buf::p, POLARSSL_ERR_DEBUG_BUF_TOO_SMALL, and SAFE_SNPRINTF.
Referenced by x509_oid_get_numeric_string().
const oid_cipher_alg_t oid_cipher_alg[] [static] |
{ { { ADD_LEN( OID_DES_CBC ), "desCBC", "DES-CBC" }, POLARSSL_CIPHER_DES_CBC, }, { { ADD_LEN( OID_DES_EDE3_CBC ), "des-ede3-cbc", "DES-EDE3-CBC" }, POLARSSL_CIPHER_DES_EDE3_CBC, }, { { NULL, 0, NULL, NULL }, 0, }, }
const oid_ecp_grp_t oid_ecp_grp[] [static] |
const oid_descriptor_t oid_ext_key_usage[] [static] |
{ { ADD_LEN( OID_SERVER_AUTH ), "id-kp-serverAuth", "TLS Web Server Authentication" }, { ADD_LEN( OID_CLIENT_AUTH ), "id-kp-clientAuth", "TLS Web Client Authentication" }, { ADD_LEN( OID_CODE_SIGNING ), "id-kp-codeSigning", "Code Signing" }, { ADD_LEN( OID_EMAIL_PROTECTION ), "id-kp-emailProtection", "E-mail Protection" }, { ADD_LEN( OID_TIME_STAMPING ), "id-kp-timeStamping", "Time Stamping" }, { ADD_LEN( OID_OCSP_SIGNING ), "id-kp-OCSPSigning", "OCSP Signing" }, { NULL, 0, NULL, NULL }, }
const oid_md_alg_t oid_md_alg[] [static] |
const oid_pk_alg_t oid_pk_alg[] [static] |
{ { { ADD_LEN( OID_PKCS1_RSA ), "rsaEncryption", "RSA" }, POLARSSL_PK_RSA, }, { { ADD_LEN( OID_EC_ALG_UNRESTRICTED ), "id-ecPublicKey", "Generic EC key" }, POLARSSL_PK_ECKEY, }, { { ADD_LEN( OID_EC_ALG_ECDH ), "id-ecDH", "EC key for ECDH" }, POLARSSL_PK_ECKEY_DH, }, { { NULL, 0, NULL, NULL }, 0, }, }
const oid_pkcs12_pbe_alg_t oid_pkcs12_pbe_alg[] [static] |
{ { { ADD_LEN( OID_PKCS12_PBE_SHA1_DES3_EDE_CBC ), "pbeWithSHAAnd3-KeyTripleDES-CBC", "PBE with SHA1 and 3-Key 3DES" }, POLARSSL_MD_SHA1, POLARSSL_CIPHER_DES_EDE3_CBC, }, { { ADD_LEN( OID_PKCS12_PBE_SHA1_DES2_EDE_CBC ), "pbeWithSHAAnd2-KeyTripleDES-CBC", "PBE with SHA1 and 2-Key 3DES" }, POLARSSL_MD_SHA1, POLARSSL_CIPHER_DES_EDE_CBC, }, { { NULL, 0, NULL, NULL }, 0, 0, }, }
const oid_sig_alg_t oid_sig_alg[] [static] |
const oid_x509_ext_t oid_x509_ext[] [static] |
{ { { ADD_LEN( OID_BASIC_CONSTRAINTS ), "id-ce-basicConstraints", "Basic Constraints" }, EXT_BASIC_CONSTRAINTS, }, { { ADD_LEN( OID_KEY_USAGE ), "id-ce-keyUsage", "Key Usage" }, EXT_KEY_USAGE, }, { { ADD_LEN( OID_EXTENDED_KEY_USAGE ), "id-ce-keyUsage", "Extended Key Usage" }, EXT_EXTENDED_KEY_USAGE, }, { { ADD_LEN( OID_SUBJECT_ALT_NAME ), "id-ce-subjectAltName", "Subject Alt Name" }, EXT_SUBJECT_ALT_NAME, }, { { ADD_LEN( OID_NS_CERT_TYPE ), "id-netscape-certtype", "Netscape Certificate Type" }, EXT_NS_CERT_TYPE, }, { { NULL, 0, NULL, NULL }, 0, }, }
const oid_x520_attr_t oid_x520_attr_type[] [static] |