asn1.h File Reference
Generic ASN.1 parsing. More...
Go to the source code of this file.
Data Structures | |
struct | mbedtls_asn1_buf |
Type-length-value structure that allows for ASN1 using DER. More... | |
struct | mbedtls_asn1_bitstring |
Container for ASN1 bit strings. More... | |
struct | mbedtls_asn1_sequence |
Container for a sequence of ASN.1 items. More... | |
struct | mbedtls_asn1_named_data |
Container for a sequence or list of 'named' ASN.1 data items. More... | |
Functions to parse ASN.1 data structures | |
typedef struct mbedtls_asn1_buf | mbedtls_asn1_buf |
Type-length-value structure that allows for ASN1 using DER. | |
typedef struct mbedtls_asn1_bitstring | mbedtls_asn1_bitstring |
Container for ASN1 bit strings. | |
typedef struct mbedtls_asn1_sequence | mbedtls_asn1_sequence |
Container for a sequence of ASN.1 items. | |
typedef struct mbedtls_asn1_named_data | mbedtls_asn1_named_data |
Container for a sequence or list of 'named' ASN.1 data items. | |
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 tag. | |
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_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>" Updated the pointer to immediately behind the full sequence tag. | |
int | mbedtls_asn1_get_mpi (unsigned char **p, const unsigned char *end, mbedtls_mpi *X) |
Retrieve a MPI value from an integer ASN.1 tag. | |
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_named_data * | mbedtls_asn1_find_named_data (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_asn1_free_named_data (mbedtls_asn1_named_data *entry) |
Free a 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 Head will be set to NULL. |
Detailed Description
Generic ASN.1 parsing.
Definition in file asn1.h.
Typedef Documentation
typedef struct mbedtls_asn1_bitstring mbedtls_asn1_bitstring |
Container for ASN1 bit strings.
typedef struct mbedtls_asn1_buf mbedtls_asn1_buf |
Type-length-value structure that allows for ASN1 using DER.
typedef struct mbedtls_asn1_named_data mbedtls_asn1_named_data |
Container for a sequence or list of 'named' ASN.1 data items.
typedef struct mbedtls_asn1_sequence mbedtls_asn1_sequence |
Container for a sequence of ASN.1 items.
Function Documentation
mbedtls_asn1_named_data* mbedtls_asn1_find_named_data | ( | 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:
-
list The list to seek through oid The OID to look for len Size of the OID
- Returns:
- NULL if not found, or a pointer to the existing entry.
Definition at line 376 of file asn1parse.c.
void mbedtls_asn1_free_named_data | ( | mbedtls_asn1_named_data * | entry ) |
Free a mbedtls_asn1_named_data entry.
- Parameters:
-
entry The named data entry to free
Definition at line 353 of file asn1parse.c.
void mbedtls_asn1_free_named_data_list | ( | mbedtls_asn1_named_data ** | head ) |
Free all entries in a mbedtls_asn1_named_data list Head will be set to NULL.
- Parameters:
-
head Pointer to the head of the list of named data entries to free
Definition at line 364 of file asn1parse.c.
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.
Updates the pointer to immediately behind the full AlgorithmIdentifier.
- Parameters:
-
p The position in the ASN.1 data end End of data alg The buffer to receive the OID params The buffer to receive the params (if any)
- Returns:
- 0 if successful or a specific ASN.1 or MPI error code.
Definition at line 291 of file asn1parse.c.
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.
Updates the pointer to immediately behind the full AlgorithmIdentifier.
- Parameters:
-
p The position in the ASN.1 data end End of data alg The buffer to receive the OID
- Returns:
- 0 if successful or a specific ASN.1 or MPI error code.
Definition at line 335 of file asn1parse.c.
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.
Updates the pointer to immediately behind the full tag.
- Parameters:
-
p The position in the ASN.1 data end End of data bs The variable that will receive the value
- Returns:
- 0 if successful or a specific ASN.1 error code.
Definition at line 189 of file asn1parse.c.
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.
Updates the pointer to the beginning of the bit/octet string.
- Parameters:
-
p The position in the ASN.1 data end End of data len Length of the actual bit/octect string in bytes
- Returns:
- 0 if successful or a specific ASN.1 error code.
Definition at line 222 of file asn1parse.c.
int mbedtls_asn1_get_bool | ( | unsigned char ** | p, |
const unsigned char * | end, | ||
int * | val | ||
) |
Retrieve a boolean ASN.1 tag and its value.
Updates the pointer to immediately behind the full tag.
- Parameters:
-
p The position in the ASN.1 data end End of data val The variable that will receive the value
- Returns:
- 0 if successful or a specific ASN.1 error code.
Definition at line 127 of file asn1parse.c.
int mbedtls_asn1_get_int | ( | unsigned char ** | p, |
const unsigned char * | end, | ||
int * | val | ||
) |
Retrieve an integer ASN.1 tag and its value.
Updates the pointer to immediately behind the full tag.
- Parameters:
-
p The position in the ASN.1 data end End of data val The variable that will receive the value
- Returns:
- 0 if successful or a specific ASN.1 error code.
Definition at line 146 of file asn1parse.c.
int mbedtls_asn1_get_len | ( | unsigned char ** | p, |
const unsigned char * | end, | ||
size_t * | len | ||
) |
Get the length of an ASN.1 element.
Updates the pointer to immediately behind the length.
- Parameters:
-
p The position in the ASN.1 data end End of data len The variable that will receive the value
- Returns:
- 0 if successful, MBEDTLS_ERR_ASN1_OUT_OF_DATA on reaching end of data, MBEDTLS_ERR_ASN1_INVALID_LENGTH if length is unparseable.
Definition at line 54 of file asn1parse.c.
int mbedtls_asn1_get_mpi | ( | unsigned char ** | p, |
const unsigned char * | end, | ||
mbedtls_mpi * | X | ||
) |
Retrieve a MPI value from an integer ASN.1 tag.
Updates the pointer to immediately behind the full tag.
- Parameters:
-
p The position in the ASN.1 data end End of data X The MPI that will receive the value
- Returns:
- 0 if successful or a specific ASN.1 or MPI error code.
Definition at line 171 of file asn1parse.c.
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>" Updated the pointer to immediately behind the full sequence tag.
- Parameters:
-
p The position in the ASN.1 data end End of data cur First variable in the chain to fill tag Type of sequence
- Returns:
- 0 if successful or a specific ASN.1 error code.
Definition at line 241 of file asn1parse.c.
int mbedtls_asn1_get_tag | ( | unsigned char ** | p, |
const unsigned char * | end, | ||
size_t * | len, | ||
int | tag | ||
) |
Get the tag and length of the tag.
Check for the requested tag. Updates the pointer to immediately behind the tag and length.
- Parameters:
-
p The position in the ASN.1 data end End of data len The variable that will receive the length tag The expected tag
- Returns:
- 0 if successful, MBEDTLS_ERR_ASN1_UNEXPECTED_TAG if tag did not match requested tag, or another specific ASN.1 error code.
Definition at line 112 of file asn1parse.c.
Generated on Tue Jul 12 2022 12:22:29 by
