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] |
1.6.1