Asn1_module#

Modules#

mbedtls_asn1_buf

mbedtls_asn1_bitstring

mbedtls_asn1_sequence

mbedtls_asn1_named_data

Functions to parse ASN.1 data structures#

int
mbedtls_asn1_get_len(unsigned char **p, const unsigned char *end, size_t *len)

Get the length of an ASN.1 element.

int
mbedtls_asn1_get_tag(unsigned char **p, const unsigned char *end, size_t *len, int tag)

Get the tag and length of the element.

int
mbedtls_asn1_get_bool(unsigned char **p, const unsigned char *end, int *val)

Retrieve a boolean ASN.1 tag and its value.

int
mbedtls_asn1_get_int(unsigned char **p, const unsigned char *end, int *val)

Retrieve an integer ASN.1 tag and its value.

int
mbedtls_asn1_get_enum(unsigned char **p, const unsigned char *end, int *val)

Retrieve an enumerated ASN.1 tag and its value.

int
mbedtls_asn1_get_bitstring(unsigned char **p, const unsigned char *end, mbedtls_asn1_bitstring *bs)

Retrieve a bitstring ASN.1 tag and its value.

int
mbedtls_asn1_get_bitstring_null(unsigned char **p, const unsigned char *end, size_t *len)

Retrieve a bitstring ASN.1 tag without unused bits and its value.

int
mbedtls_asn1_get_sequence_of(unsigned char **p, const unsigned char *end, mbedtls_asn1_sequence *cur, int tag)

Parses and splits an ASN.1 "SEQUENCE OF <tag>".

void
mbedtls_asn1_sequence_free(mbedtls_asn1_sequence *seq)

Free a heap-allocated linked list presentation of an ASN.1 sequence, including the first element.

int
mbedtls_asn1_traverse_sequence_of(unsigned char **p, const unsigned char *end, unsigned char tag_must_mask, unsigned char tag_must_val, unsigned char tag_may_mask, unsigned char tag_may_val, int(*cb)(void *ctx, int tag, unsigned char *start, size_t len), void *ctx)

Traverse an ASN.1 SEQUENCE container and call a callback for each entry.

int
mbedtls_asn1_get_mpi(unsigned char **p, const unsigned char *end, mbedtls_mpi *X)

Retrieve an integer ASN.1 tag and its value.

int
mbedtls_asn1_get_alg(unsigned char **p, const unsigned char *end, mbedtls_asn1_buf *alg, mbedtls_asn1_buf *params)

Retrieve an AlgorithmIdentifier ASN.1 sequence.

int
mbedtls_asn1_get_alg_null(unsigned char **p, const unsigned char *end, mbedtls_asn1_buf *alg)

Retrieve an AlgorithmIdentifier ASN.1 sequence with NULL or no params.

mbedtls_asn1_find_named_data(const mbedtls_asn1_named_data *list, const char *oid, size_t len)

Find a specific named_data entry in a sequence or list based on the OID.

void MBEDTLS_DEPRECATED
mbedtls_asn1_free_named_data(mbedtls_asn1_named_data *entry)
void
mbedtls_asn1_free_named_data_list(mbedtls_asn1_named_data **head)

Free all entries in a mbedtls_asn1_named_data list.

void
mbedtls_asn1_free_named_data_list_shallow(mbedtls_asn1_named_data *name)

Free all shallow entries in a mbedtls_asn1_named_data list, but do not free internal pointer targets.

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

Out of data when parsing an ASN1 data structure.

#define

ASN1 tag was of an unexpected value.

#define

Error when trying to determine the length or invalid length.

#define

Actual length differs from expected length.

#define

Data is invalid.

#define

Memory allocation failed.

#define

Buffer too small when writing ASN.1 data structure.

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 INTEGER0x01 length in octets0x05 value Such sequences are typically read into mbedtls_x509_buf.

#define
#define
#define

Macros#

#define

Returns the size of the binary string, without the trailing \0.

#define
MBEDTLS_OID_CMP (oid_str, oid_buf)

Compares an mbedtls_asn1_buf structure to a reference OID.

#define
MBEDTLS_OID_CMP_RAW (oid_str, oid_buf, oid_buf_len)

Functions to parse ASN.1 data structures Documentation#

mbedtls_asn1_get_len#

int mbedtls_asn1_get_len (unsigned char **p, const unsigned char *end, size_t *len)

Get the length of an ASN.1 element.

Parameters
N/Ap

On entry, *p points to the first byte of the length, i.e. immediately after the tag. On successful completion, *p points to the first byte after the length, i.e. the first byte of the content. On error, the value of *p is undefined.

N/Aend

End of data.

N/Alen

On successful completion, *len contains the length read from the ASN.1 input.

Updates the pointer to immediately behind the length.

Returns


Definition at line 231 of file util/third_party/mbedtls/include/mbedtls/asn1.h

mbedtls_asn1_get_tag#

int mbedtls_asn1_get_tag (unsigned char **p, const unsigned char *end, size_t *len, int tag)

Get the tag and length of the element.

Parameters
N/Ap

On entry, *p points to the start of the ASN.1 element. On successful completion, *p points to the first byte after the length, i.e. the first byte of the content. On error, the value of *p is undefined.

N/Aend

End of data.

N/Alen

On successful completion, *len contains the length read from the ASN.1 input.

N/Atag

The expected tag.

Check for the requested tag. Updates the pointer to immediately behind the tag and length.

Returns


Definition at line 256 of file util/third_party/mbedtls/include/mbedtls/asn1.h

mbedtls_asn1_get_bool#

int mbedtls_asn1_get_bool (unsigned char **p, const unsigned char *end, int *val)

Retrieve a boolean ASN.1 tag and its value.

Parameters
N/Ap

On entry, *p points to the start of the ASN.1 element. On successful completion, *p points to the first byte beyond the ASN.1 element. On error, the value of *p is undefined.

N/Aend

End of data.

N/Aval

On success, the parsed value (0 or 1).

Updates the pointer to immediately behind the full tag.

Returns

  • 0 if successful.

  • An ASN.1 error code if the input does not start with a valid ASN.1 BOOLEAN.


Definition at line 277 of file util/third_party/mbedtls/include/mbedtls/asn1.h

mbedtls_asn1_get_int#

int mbedtls_asn1_get_int (unsigned char **p, const unsigned char *end, int *val)

Retrieve an integer ASN.1 tag and its value.

Parameters
N/Ap

On entry, *p points to the start of the ASN.1 element. On successful completion, *p points to the first byte beyond the ASN.1 element. On error, the value of *p is undefined.

N/Aend

End of data.

N/Aval

On success, the parsed value.

Updates the pointer to immediately behind the full tag.

Returns

  • 0 if successful.

  • An ASN.1 error code if the input does not start with a valid ASN.1 INTEGER.

  • MBEDTLS_ERR_ASN1_INVALID_LENGTH if the parsed value does not fit in an int.


Definition at line 298 of file util/third_party/mbedtls/include/mbedtls/asn1.h

mbedtls_asn1_get_enum#

int mbedtls_asn1_get_enum (unsigned char **p, const unsigned char *end, int *val)

Retrieve an enumerated ASN.1 tag and its value.

Parameters
N/Ap

On entry, *p points to the start of the ASN.1 element. On successful completion, *p points to the first byte beyond the ASN.1 element. On error, the value of *p is undefined.

N/Aend

End of data.

N/Aval

On success, the parsed value.

Updates the pointer to immediately behind the full tag.

Returns

  • 0 if successful.

  • An ASN.1 error code if the input does not start with a valid ASN.1 ENUMERATED.

  • MBEDTLS_ERR_ASN1_INVALID_LENGTH if the parsed value does not fit in an int.


Definition at line 319 of file util/third_party/mbedtls/include/mbedtls/asn1.h

mbedtls_asn1_get_bitstring#

int mbedtls_asn1_get_bitstring (unsigned char **p, const unsigned char *end, mbedtls_asn1_bitstring *bs)

Retrieve a bitstring ASN.1 tag and its value.

Parameters
N/Ap

On entry, *p points to the start of the ASN.1 element. On successful completion, *p is equal to end. On error, the value of *p is undefined.

N/Aend

End of data.

N/Abs

On success, mbedtls_asn1_bitstring information about the parsed value.

Updates the pointer to immediately behind the full tag.

Returns

  • 0 if successful.

  • MBEDTLS_ERR_ASN1_LENGTH_MISMATCH if the input contains extra data after a valid BIT STRING.

  • An ASN.1 error code if the input does not start with a valid ASN.1 BIT STRING.


Definition at line 340 of file util/third_party/mbedtls/include/mbedtls/asn1.h

mbedtls_asn1_get_bitstring_null#

int mbedtls_asn1_get_bitstring_null (unsigned char **p, const unsigned char *end, size_t *len)

Retrieve a bitstring ASN.1 tag without unused bits and its value.

Parameters
N/Ap

On entry, *p points to the start of the ASN.1 element. On successful completion, *p points to the first byte of the content of the BIT STRING. On error, the value of *p is undefined.

N/Aend

End of data.

N/Alen

On success, *len is the length of the content in bytes.

Updates the pointer to the beginning of the bit/octet string.

Returns

  • 0 if successful.

  • MBEDTLS_ERR_ASN1_INVALID_DATA if the input starts with a valid BIT STRING with a nonzero number of unused bits.

  • An ASN.1 error code if the input does not start with a valid ASN.1 BIT STRING.


Definition at line 361 of file util/third_party/mbedtls/include/mbedtls/asn1.h

mbedtls_asn1_get_sequence_of#

int mbedtls_asn1_get_sequence_of (unsigned char **p, const unsigned char *end, mbedtls_asn1_sequence *cur, int tag)

Parses and splits an ASN.1 "SEQUENCE OF <tag>".

Parameters
N/Ap

On entry, *p points to the start of the ASN.1 element. On successful completion, *p is equal to end. On error, the value of *p is undefined.

N/Aend

End of data.

N/Acur

A mbedtls_asn1_sequence which this function fills. When this function returns, *cur is the head of a linked list. Each node in this list is allocated with mbedtls_calloc() apart from cur itself, and should therefore be freed with mbedtls_free(). The list describes the content of the sequence. The head of the list (i.e. *cur itself) describes the first element, *cur->next describes the second element, etc. For each element, buf.tag == tag, buf.len is the length of the content of the content of the element, and buf.p points to the first byte of the content (i.e. immediately past the length of the element). Note that list elements may be allocated even on error.

N/Atag

Each element of the sequence must have this tag.

Updates the pointer to immediately behind the full sequence tag.

This function allocates memory for the sequence elements. You can free the allocated memory with mbedtls_asn1_sequence_free().

Note

  • On error, this function may return a partial list in cur. You must set cur->next = NULL before calling this function! Otherwise it is impossible to distinguish a previously non-null pointer from a pointer to an object allocated by this function.

  • If the sequence is empty, this function does not modify *cur. If the sequence is valid and non-empty, this function sets cur->buf.tag to tag. This allows callers to distinguish between an empty sequence and a one-element sequence.

Returns


Definition at line 412 of file util/third_party/mbedtls/include/mbedtls/asn1.h

mbedtls_asn1_sequence_free#

void mbedtls_asn1_sequence_free (mbedtls_asn1_sequence *seq)

Free a heap-allocated linked list presentation of an ASN.1 sequence, including the first element.

Parameters
N/Aseq

The address of the first sequence component. This may be NULL, in which case this functions returns immediately.

There are two common ways to manage the memory used for the representation of a parsed ASN.1 sequence:


Definition at line 437 of file util/third_party/mbedtls/include/mbedtls/asn1.h

mbedtls_asn1_traverse_sequence_of#

int mbedtls_asn1_traverse_sequence_of (unsigned char **p, const unsigned char *end, unsigned char tag_must_mask, unsigned char tag_must_val, unsigned char tag_may_mask, unsigned char tag_may_val, int(*cb)(void *ctx, int tag, unsigned char *start, size_t len), void *ctx)

Traverse an ASN.1 SEQUENCE container and call a callback for each entry.

Parameters
N/Ap

The address of the pointer to the beginning of the ASN.1 SEQUENCE header. This is updated to point to the end of the ASN.1 SEQUENCE container on a successful invocation.

N/Aend

The end of the ASN.1 SEQUENCE container.

N/Atag_must_mask

A mask to be applied to the ASN.1 tags found within the SEQUENCE before comparing to tag_must_val.

N/Atag_must_val

The required value of each ASN.1 tag found in the SEQUENCE, after masking with tag_must_mask. Mismatching tags lead to an error. For example, a value of 0 for both tag_must_mask and tag_must_val means that every tag is allowed, while a value of 0xFF for tag_must_mask means that tag_must_val is the only allowed tag.

N/Atag_may_mask

A mask to be applied to the ASN.1 tags found within the SEQUENCE before comparing to tag_may_val.

N/Atag_may_val

The desired value of each ASN.1 tag found in the SEQUENCE, after masking with tag_may_mask. Mismatching tags will be silently ignored. For example, a value of 0 for tag_may_mask and tag_may_val means that any tag will be considered, while a value of 0xFF for tag_may_mask means that all tags with value different from tag_may_val will be ignored.

N/Acb

The callback to trigger for each component in the ASN.1 SEQUENCE that matches tag_may_val. The callback function is called with the following parameters:

  • ctx.

  • The tag of the current element.

  • A pointer to the start of the current element's content inside the input.

  • The length of the content of the current element. If the callback returns a non-zero value, the function stops immediately, forwarding the callback's return value.

N/Actx

The context to be passed to the callback cb.

This function checks that the input is a SEQUENCE of elements that each have a "must" tag, and calls a callback function on the elements that have a "may" tag.

For example, to validate that the input is a SEQUENCE of tag1 and call cb on each element, use

mbedtls_asn1_traverse_sequence_of(&p, end, 0xff, tag1, 0, 0, cb, ctx);

To validate that the input is a SEQUENCE of ANY and call cb on each element, use

mbedtls_asn1_traverse_sequence_of(&p, end, 0, 0, 0, 0, cb, ctx);

To validate that the input is a SEQUENCE of CHOICE {NULL, OCTET STRING} and call cb on each element that is an OCTET STRING, use

mbedtls_asn1_traverse_sequence_of(&p, end, 0xfe, 0x04, 0xff, 0x04, cb, ctx);

The callback is called on the elements with a "may" tag from left to right. If the input is not a valid SEQUENCE of elements with a "must" tag, the callback is called on the elements up to the leftmost point where the input is invalid.

Warnings

  • This function is still experimental and may change at any time.

Returns

  • 0 if successful the entire ASN.1 SEQUENCE was traversed without parsing or callback errors.

  • MBEDTLS_ERR_ASN1_LENGTH_MISMATCH if the input contains extra data after a valid SEQUENCE of elements with an accepted tag.

  • MBEDTLS_ERR_ASN1_UNEXPECTED_TAG if the input starts with an ASN.1 SEQUENCE in which an element has a tag that is not accepted.

  • An ASN.1 error code if the input does not start with a valid ASN.1 SEQUENCE.

  • A non-zero error code forwarded from the callback cb in case the latter returns a non-zero value.


Definition at line 524 of file util/third_party/mbedtls/include/mbedtls/asn1.h

mbedtls_asn1_get_mpi#

int mbedtls_asn1_get_mpi (unsigned char **p, const unsigned char *end, mbedtls_mpi *X)

Retrieve an integer ASN.1 tag and its value.

Parameters
N/Ap

On entry, *p points to the start of the ASN.1 element. On successful completion, *p points to the first byte beyond the ASN.1 element. On error, the value of *p is undefined.

N/Aend

End of data.

N/AX

On success, the parsed value.

Updates the pointer to immediately behind the full tag.

Returns

  • 0 if successful.

  • An ASN.1 error code if the input does not start with a valid ASN.1 INTEGER.

  • MBEDTLS_ERR_ASN1_INVALID_LENGTH if the parsed value does not fit in an int.

  • An MPI error code if the parsed value is too large.


Definition at line 552 of file util/third_party/mbedtls/include/mbedtls/asn1.h

mbedtls_asn1_get_alg#

int mbedtls_asn1_get_alg (unsigned char **p, const unsigned char *end, mbedtls_asn1_buf *alg, mbedtls_asn1_buf *params)

Retrieve an AlgorithmIdentifier ASN.1 sequence.

Parameters
N/Ap

On entry, *p points to the start of the ASN.1 element. On successful completion, *p points to the first byte beyond the AlgorithmIdentifier element. On error, the value of *p is undefined.

N/Aend

End of data.

N/Aalg

The buffer to receive the OID.

N/Aparams

The buffer to receive the parameters. This is zeroized if there are no parameters.

Updates the pointer to immediately behind the full AlgorithmIdentifier.

Returns

  • 0 if successful or a specific ASN.1 or MPI error code.


Definition at line 573 of file util/third_party/mbedtls/include/mbedtls/asn1.h

mbedtls_asn1_get_alg_null#

int mbedtls_asn1_get_alg_null (unsigned char **p, const unsigned char *end, mbedtls_asn1_buf *alg)

Retrieve an AlgorithmIdentifier ASN.1 sequence with NULL or no params.

Parameters
N/Ap

On entry, *p points to the start of the ASN.1 element. On successful completion, *p points to the first byte beyond the AlgorithmIdentifier element. On error, the value of *p is undefined.

N/Aend

End of data.

N/Aalg

The buffer to receive the OID.

Updates the pointer to immediately behind the full AlgorithmIdentifier.

Returns

  • 0 if successful or a specific ASN.1 or MPI error code.


Definition at line 592 of file util/third_party/mbedtls/include/mbedtls/asn1.h

mbedtls_asn1_find_named_data#

const mbedtls_asn1_named_data * mbedtls_asn1_find_named_data (const mbedtls_asn1_named_data *list, const char *oid, size_t len)

Find a specific named_data entry in a sequence or list based on the OID.

Parameters
N/Alist

The list to seek through

N/Aoid

The OID to look for

N/Alen

Size of the OID

Returns

  • NULL if not found, or a pointer to the existing entry.


Definition at line 606 of file util/third_party/mbedtls/include/mbedtls/asn1.h

mbedtls_asn1_free_named_data#

void MBEDTLS_DEPRECATED mbedtls_asn1_free_named_data (mbedtls_asn1_named_data *entry)

Free a mbedtls_asn1_named_data entry.

Parameters
N/Aentry

The named data entry to free. This function calls mbedtls_free() on entry->oid.p and entry->val.p.


Definition at line 622 of file util/third_party/mbedtls/include/mbedtls/asn1.h

mbedtls_asn1_free_named_data_list#

void mbedtls_asn1_free_named_data_list (mbedtls_asn1_named_data **head)

Free all entries in a mbedtls_asn1_named_data list.

Parameters
N/Ahead

Pointer to the head of the list of named data entries to free. This function calls mbedtls_free() on entry->oid.p and entry->val.p and then on entry for each list entry, and sets *head to NULL.


Definition at line 633 of file util/third_party/mbedtls/include/mbedtls/asn1.h

mbedtls_asn1_free_named_data_list_shallow#

void mbedtls_asn1_free_named_data_list_shallow (mbedtls_asn1_named_data *name)

Free all shallow entries in a mbedtls_asn1_named_data list, but do not free internal pointer targets.

Parameters
N/Aname

Head of the list of named data entries to free. This function calls mbedtls_free() on each list element.


Definition at line 642 of file util/third_party/mbedtls/include/mbedtls/asn1.h

ASN1 Error codes Documentation#

MBEDTLS_ERR_ASN1_OUT_OF_DATA#

#define MBEDTLS_ERR_ASN1_OUT_OF_DATA
Value:
-0x0060

Out of data when parsing an ASN1 data structure.


Definition at line 49 of file util/third_party/mbedtls/include/mbedtls/asn1.h

MBEDTLS_ERR_ASN1_UNEXPECTED_TAG#

#define MBEDTLS_ERR_ASN1_UNEXPECTED_TAG
Value:
-0x0062

ASN1 tag was of an unexpected value.


Definition at line 51 of file util/third_party/mbedtls/include/mbedtls/asn1.h

MBEDTLS_ERR_ASN1_INVALID_LENGTH#

#define MBEDTLS_ERR_ASN1_INVALID_LENGTH
Value:
-0x0064

Error when trying to determine the length or invalid length.


Definition at line 53 of file util/third_party/mbedtls/include/mbedtls/asn1.h

MBEDTLS_ERR_ASN1_LENGTH_MISMATCH#

#define MBEDTLS_ERR_ASN1_LENGTH_MISMATCH
Value:
-0x0066

Actual length differs from expected length.


Definition at line 55 of file util/third_party/mbedtls/include/mbedtls/asn1.h

MBEDTLS_ERR_ASN1_INVALID_DATA#

#define MBEDTLS_ERR_ASN1_INVALID_DATA
Value:
-0x0068

Data is invalid.


Definition at line 57 of file util/third_party/mbedtls/include/mbedtls/asn1.h

MBEDTLS_ERR_ASN1_ALLOC_FAILED#

#define MBEDTLS_ERR_ASN1_ALLOC_FAILED
Value:
-0x006A

Memory allocation failed.


Definition at line 59 of file util/third_party/mbedtls/include/mbedtls/asn1.h

MBEDTLS_ERR_ASN1_BUF_TOO_SMALL#

#define MBEDTLS_ERR_ASN1_BUF_TOO_SMALL
Value:
-0x006C

Buffer too small when writing ASN.1 data structure.


Definition at line 61 of file util/third_party/mbedtls/include/mbedtls/asn1.h

DER constants Documentation#

MBEDTLS_ASN1_BOOLEAN#

#define MBEDTLS_ASN1_BOOLEAN
Value:
0x01

Definition at line 76 of file util/third_party/mbedtls/include/mbedtls/asn1.h

MBEDTLS_ASN1_INTEGER#

#define MBEDTLS_ASN1_INTEGER
Value:
0x02

Definition at line 77 of file util/third_party/mbedtls/include/mbedtls/asn1.h

MBEDTLS_ASN1_BIT_STRING#

#define MBEDTLS_ASN1_BIT_STRING
Value:
0x03

Definition at line 78 of file util/third_party/mbedtls/include/mbedtls/asn1.h

MBEDTLS_ASN1_OCTET_STRING#

#define MBEDTLS_ASN1_OCTET_STRING
Value:
0x04

Definition at line 79 of file util/third_party/mbedtls/include/mbedtls/asn1.h

MBEDTLS_ASN1_NULL#

#define MBEDTLS_ASN1_NULL
Value:
0x05

Definition at line 80 of file util/third_party/mbedtls/include/mbedtls/asn1.h

MBEDTLS_ASN1_OID#

#define MBEDTLS_ASN1_OID
Value:
0x06

Definition at line 81 of file util/third_party/mbedtls/include/mbedtls/asn1.h

MBEDTLS_ASN1_ENUMERATED#

#define MBEDTLS_ASN1_ENUMERATED
Value:
0x0A

Definition at line 82 of file util/third_party/mbedtls/include/mbedtls/asn1.h

MBEDTLS_ASN1_UTF8_STRING#

#define MBEDTLS_ASN1_UTF8_STRING
Value:
0x0C

Definition at line 83 of file util/third_party/mbedtls/include/mbedtls/asn1.h

MBEDTLS_ASN1_SEQUENCE#

#define MBEDTLS_ASN1_SEQUENCE
Value:
0x10

Definition at line 84 of file util/third_party/mbedtls/include/mbedtls/asn1.h

MBEDTLS_ASN1_SET#

#define MBEDTLS_ASN1_SET
Value:
0x11

Definition at line 85 of file util/third_party/mbedtls/include/mbedtls/asn1.h

MBEDTLS_ASN1_PRINTABLE_STRING#

#define MBEDTLS_ASN1_PRINTABLE_STRING
Value:
0x13

Definition at line 86 of file util/third_party/mbedtls/include/mbedtls/asn1.h

MBEDTLS_ASN1_T61_STRING#

#define MBEDTLS_ASN1_T61_STRING
Value:
0x14

Definition at line 87 of file util/third_party/mbedtls/include/mbedtls/asn1.h

MBEDTLS_ASN1_IA5_STRING#

#define MBEDTLS_ASN1_IA5_STRING
Value:
0x16

Definition at line 88 of file util/third_party/mbedtls/include/mbedtls/asn1.h

MBEDTLS_ASN1_UTC_TIME#

#define MBEDTLS_ASN1_UTC_TIME
Value:
0x17

Definition at line 89 of file util/third_party/mbedtls/include/mbedtls/asn1.h

MBEDTLS_ASN1_GENERALIZED_TIME#

#define MBEDTLS_ASN1_GENERALIZED_TIME
Value:
0x18

Definition at line 90 of file util/third_party/mbedtls/include/mbedtls/asn1.h

MBEDTLS_ASN1_UNIVERSAL_STRING#

#define MBEDTLS_ASN1_UNIVERSAL_STRING
Value:
0x1C

Definition at line 91 of file util/third_party/mbedtls/include/mbedtls/asn1.h

MBEDTLS_ASN1_BMP_STRING#

#define MBEDTLS_ASN1_BMP_STRING
Value:
0x1E

Definition at line 92 of file util/third_party/mbedtls/include/mbedtls/asn1.h

MBEDTLS_ASN1_PRIMITIVE#

#define MBEDTLS_ASN1_PRIMITIVE
Value:
0x00

Definition at line 93 of file util/third_party/mbedtls/include/mbedtls/asn1.h

MBEDTLS_ASN1_CONSTRUCTED#

#define MBEDTLS_ASN1_CONSTRUCTED
Value:
0x20

Definition at line 94 of file util/third_party/mbedtls/include/mbedtls/asn1.h

MBEDTLS_ASN1_CONTEXT_SPECIFIC#

#define MBEDTLS_ASN1_CONTEXT_SPECIFIC
Value:
0x80

Definition at line 95 of file util/third_party/mbedtls/include/mbedtls/asn1.h

MBEDTLS_ASN1_IS_STRING_TAG#

#define MBEDTLS_ASN1_IS_STRING_TAG
Value:
((unsigned int) (tag) < 32u && ( \
((1u << (tag)) & ((1u << MBEDTLS_ASN1_BMP_STRING) | \
(1u << MBEDTLS_ASN1_UTF8_STRING) | \
(1u << MBEDTLS_ASN1_T61_STRING) | \
(1u << MBEDTLS_ASN1_IA5_STRING) | \
(1u << MBEDTLS_ASN1_UNIVERSAL_STRING) | \
(1u << MBEDTLS_ASN1_PRINTABLE_STRING))) != 0))

Definition at line 99 of file util/third_party/mbedtls/include/mbedtls/asn1.h

MBEDTLS_ASN1_TAG_CLASS_MASK#

#define MBEDTLS_ASN1_TAG_CLASS_MASK
Value:
0xC0

Definition at line 118 of file util/third_party/mbedtls/include/mbedtls/asn1.h

MBEDTLS_ASN1_TAG_PC_MASK#

#define MBEDTLS_ASN1_TAG_PC_MASK
Value:
0x20

Definition at line 119 of file util/third_party/mbedtls/include/mbedtls/asn1.h

MBEDTLS_ASN1_TAG_VALUE_MASK#

#define MBEDTLS_ASN1_TAG_VALUE_MASK
Value:
0x1F

Definition at line 120 of file util/third_party/mbedtls/include/mbedtls/asn1.h

Macro Definition Documentation#

MBEDTLS_OID_SIZE#

#define MBEDTLS_OID_SIZE
Value:
(x)

Returns the size of the binary string, without the trailing \0.


Definition at line 125 of file util/third_party/mbedtls/include/mbedtls/asn1.h

MBEDTLS_OID_CMP#

#define MBEDTLS_OID_CMP
Value:
((MBEDTLS_OID_SIZE(oid_str) != (oid_buf)->len) || \
memcmp((oid_str), (oid_buf)->p, (oid_buf)->len) != 0)

Compares an mbedtls_asn1_buf structure to a reference OID.

Only works for 'defined' oid_str values (MBEDTLS_OID_HMAC_SHA1), you cannot use a 'unsigned char *oid' here!


Definition at line 133 of file util/third_party/mbedtls/include/mbedtls/asn1.h

MBEDTLS_OID_CMP_RAW#

#define MBEDTLS_OID_CMP_RAW
Value:
((MBEDTLS_OID_SIZE(oid_str) != (oid_buf_len)) || \
memcmp((oid_str), (oid_buf), (oid_buf_len)) != 0)

Definition at line 137 of file util/third_party/mbedtls/include/mbedtls/asn1.h