XenevaOS
Loading...
Searching...
No Matches
Classes | Macros
asn1.h File Reference

Generic ASN.1 parsing. More...

#include "mbedtls/private_access.h"
#include "mbedtls/build_info.h"
#include "mbedtls/platform_util.h"
#include <stddef.h>
Include dependency graph for asn1.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  mbedtls_asn1_buf
 
struct  mbedtls_asn1_bitstring
 
struct  mbedtls_asn1_sequence
 
struct  mbedtls_asn1_named_data
 

Macros

#define MBEDTLS_OID_SIZE(x)   (sizeof(x) - 1)
 
#define MBEDTLS_OID_CMP(oid_str, oid_buf)
 
#define MBEDTLS_OID_CMP_RAW(oid_str, oid_buf, oid_buf_len)
 
ASN1 Error codes

These error codes are combined with other error codes for higher error granularity. e.g. X.509 and PKCS #7 error codes ASN1 is a standard to specify data structures.

#define MBEDTLS_ERR_ASN1_OUT_OF_DATA   -0x0060
 
#define MBEDTLS_ERR_ASN1_UNEXPECTED_TAG   -0x0062
 
#define MBEDTLS_ERR_ASN1_INVALID_LENGTH   -0x0064
 
#define MBEDTLS_ERR_ASN1_LENGTH_MISMATCH   -0x0066
 
#define MBEDTLS_ERR_ASN1_INVALID_DATA   -0x0068
 
#define MBEDTLS_ERR_ASN1_ALLOC_FAILED   -0x006A
 
#define MBEDTLS_ERR_ASN1_BUF_TOO_SMALL   -0x006C
 
DER constants

These constants comply with the DER encoded ASN.1 type tags. DER encoding uses hexadecimal representation. An example DER sequence is:

  • 0x02 – tag indicating INTEGER
  • 0x01 – length in octets
  • 0x05 – value Such sequences are typically read into mbedtls_x509_buf.
#define MBEDTLS_ASN1_BOOLEAN   0x01
 
#define MBEDTLS_ASN1_INTEGER   0x02
 
#define MBEDTLS_ASN1_BIT_STRING   0x03
 
#define MBEDTLS_ASN1_OCTET_STRING   0x04
 
#define MBEDTLS_ASN1_NULL   0x05
 
#define MBEDTLS_ASN1_OID   0x06
 
#define MBEDTLS_ASN1_ENUMERATED   0x0A
 
#define MBEDTLS_ASN1_UTF8_STRING   0x0C
 
#define MBEDTLS_ASN1_SEQUENCE   0x10
 
#define MBEDTLS_ASN1_SET   0x11
 
#define MBEDTLS_ASN1_PRINTABLE_STRING   0x13
 
#define MBEDTLS_ASN1_T61_STRING   0x14
 
#define MBEDTLS_ASN1_IA5_STRING   0x16
 
#define MBEDTLS_ASN1_UTC_TIME   0x17
 
#define MBEDTLS_ASN1_GENERALIZED_TIME   0x18
 
#define MBEDTLS_ASN1_UNIVERSAL_STRING   0x1C
 
#define MBEDTLS_ASN1_BMP_STRING   0x1E
 
#define MBEDTLS_ASN1_PRIMITIVE   0x00
 
#define MBEDTLS_ASN1_CONSTRUCTED   0x20
 
#define MBEDTLS_ASN1_CONTEXT_SPECIFIC   0x80
 
#define MBEDTLS_ASN1_IS_STRING_TAG(tag)
 
#define MBEDTLS_ASN1_TAG_CLASS_MASK   0xC0
 
#define MBEDTLS_ASN1_TAG_PC_MASK   0x20
 
#define MBEDTLS_ASN1_TAG_VALUE_MASK   0x1F
 

Typedefs

Functions to parse ASN.1 data structures
typedef struct mbedtls_asn1_buf mbedtls_asn1_buf
 
typedef struct mbedtls_asn1_bitstring mbedtls_asn1_bitstring
 
typedef struct mbedtls_asn1_sequence mbedtls_asn1_sequence
 
typedef struct mbedtls_asn1_named_data mbedtls_asn1_named_data
 

Detailed Description

Generic ASN.1 parsing.