ASN.1 buffer writing functionality. More...
#include "config.h"
#include "asn1.h"
Go to the source code of this file.
Defines | |
#define | MBEDTLS_ASN1_CHK_ADD(g, f) |
Functions | |
int | mbedtls_asn1_write_len (unsigned char **p, unsigned char *start, size_t len) |
Write a length field in ASN.1 format Note: function works backwards in data buffer. | |
int | mbedtls_asn1_write_tag (unsigned char **p, unsigned char *start, unsigned char tag) |
Write a ASN.1 tag in ASN.1 format Note: function works backwards in data buffer. | |
int | mbedtls_asn1_write_raw_buffer (unsigned char **p, unsigned char *start, const unsigned char *buf, size_t size) |
Write raw buffer data Note: function works backwards in data buffer. | |
int | mbedtls_asn1_write_null (unsigned char **p, unsigned char *start) |
Write a NULL tag (MBEDTLS_ASN1_NULL) with zero data in ASN.1 format Note: function works backwards in data buffer. | |
int | mbedtls_asn1_write_oid (unsigned char **p, unsigned char *start, const char *oid, size_t oid_len) |
Write an OID tag (MBEDTLS_ASN1_OID) and data in ASN.1 format Note: function works backwards in data buffer. | |
int | mbedtls_asn1_write_algorithm_identifier (unsigned char **p, unsigned char *start, const char *oid, size_t oid_len, size_t par_len) |
Write an AlgorithmIdentifier sequence in ASN.1 format Note: function works backwards in data buffer. | |
int | mbedtls_asn1_write_bool (unsigned char **p, unsigned char *start, int boolean) |
Write a boolean tag (MBEDTLS_ASN1_BOOLEAN) and value in ASN.1 format Note: function works backwards in data buffer. | |
int | mbedtls_asn1_write_int (unsigned char **p, unsigned char *start, int val) |
Write an int tag (MBEDTLS_ASN1_INTEGER) and value in ASN.1 format Note: function works backwards in data buffer. | |
int | mbedtls_asn1_write_printable_string (unsigned char **p, unsigned char *start, const char *text, size_t text_len) |
Write a printable string tag (MBEDTLS_ASN1_PRINTABLE_STRING) and value in ASN.1 format Note: function works backwards in data buffer. | |
int | mbedtls_asn1_write_ia5_string (unsigned char **p, unsigned char *start, const char *text, size_t text_len) |
Write an IA5 string tag (MBEDTLS_ASN1_IA5_STRING) and value in ASN.1 format Note: function works backwards in data buffer. | |
int | mbedtls_asn1_write_bitstring (unsigned char **p, unsigned char *start, const unsigned char *buf, size_t bits) |
Write a bitstring tag (MBEDTLS_ASN1_BIT_STRING) and value in ASN.1 format. | |
int | mbedtls_asn1_write_octet_string (unsigned char **p, unsigned char *start, const unsigned char *buf, size_t size) |
Write an octet string tag (MBEDTLS_ASN1_OCTET_STRING) and value in ASN.1 format. | |
mbedtls_asn1_named_data * | mbedtls_asn1_store_named_data (mbedtls_asn1_named_data **list, const char *oid, size_t oid_len, const unsigned char *val, size_t val_len) |
Create or find a specific named_data entry for writing in a sequence or list based on the OID. If not already in there, a new entry is added to the head of the list. Warning: Destructive behaviour for the val data! |
ASN.1 buffer writing functionality.
Definition in file asn1write.h.
#define MBEDTLS_ASN1_CHK_ADD | ( | g, | |||
f | ) |
do { if( ( ret = f ) < 0 ) return( ret ); else \ g += ret; } while( 0 )
Definition at line 62 of file asn1write.h.
mbedtls_asn1_named_data* mbedtls_asn1_store_named_data | ( | mbedtls_asn1_named_data ** | list, | |
const char * | oid, | |||
size_t | oid_len, | |||
const unsigned char * | val, | |||
size_t | val_len | |||
) |
Create or find a specific named_data entry for writing in a sequence or list based on the OID. If not already in there, a new entry is added to the head of the list. Warning: Destructive behaviour for the val data!
list | Pointer to the location of the head of the list to seek through (will be updated in case of a new entry) | |
oid | The OID to look for | |
oid_len | Size of the OID | |
val | Data to store (can be NULL if you want to fill it by hand) | |
val_len | Minimum length of the data buffer needed |
int mbedtls_asn1_write_algorithm_identifier | ( | unsigned char ** | p, | |
unsigned char * | start, | |||
const char * | oid, | |||
size_t | oid_len, | |||
size_t | par_len | |||
) |
Write an AlgorithmIdentifier sequence in ASN.1 format Note: function works backwards in data buffer.
p | reference to current position pointer | |
start | start of the buffer (for bounds-checking) | |
oid | the OID of the algorithm | |
oid_len | length of the OID | |
par_len | length of parameters, which must be already written. If 0, NULL parameters are added |
int mbedtls_asn1_write_bitstring | ( | unsigned char ** | p, | |
unsigned char * | start, | |||
const unsigned char * | buf, | |||
size_t | bits | |||
) |
Write a bitstring tag (MBEDTLS_ASN1_BIT_STRING) and value in ASN.1 format.
p | The reference to the current position pointer. | |
start | The start of the buffer, for bounds-checking. | |
buf | The bitstring to write. | |
bits | The total number of bits in the bitstring. |
p
on success. int mbedtls_asn1_write_bool | ( | unsigned char ** | p, | |
unsigned char * | start, | |||
int | boolean | |||
) |
Write a boolean tag (MBEDTLS_ASN1_BOOLEAN) and value in ASN.1 format Note: function works backwards in data buffer.
p | reference to current position pointer | |
start | start of the buffer (for bounds-checking) | |
boolean | 0 or 1 |
int mbedtls_asn1_write_ia5_string | ( | unsigned char ** | p, | |
unsigned char * | start, | |||
const char * | text, | |||
size_t | text_len | |||
) |
Write an IA5 string tag (MBEDTLS_ASN1_IA5_STRING) and value in ASN.1 format Note: function works backwards in data buffer.
p | reference to current position pointer | |
start | start of the buffer (for bounds-checking) | |
text | the text to write | |
text_len | length of the text |
int mbedtls_asn1_write_int | ( | unsigned char ** | p, | |
unsigned char * | start, | |||
int | val | |||
) |
Write an int tag (MBEDTLS_ASN1_INTEGER) and value in ASN.1 format Note: function works backwards in data buffer.
p | reference to current position pointer | |
start | start of the buffer (for bounds-checking) | |
val | the integer value |
int mbedtls_asn1_write_len | ( | unsigned char ** | p, | |
unsigned char * | start, | |||
size_t | len | |||
) |
Write a length field in ASN.1 format Note: function works backwards in data buffer.
p | reference to current position pointer | |
start | start of the buffer (for bounds-checking) | |
len | the length to write |
int mbedtls_asn1_write_null | ( | unsigned char ** | p, | |
unsigned char * | start | |||
) |
Write a NULL tag (MBEDTLS_ASN1_NULL) with zero data in ASN.1 format Note: function works backwards in data buffer.
p | reference to current position pointer | |
start | start of the buffer (for bounds-checking) |
int mbedtls_asn1_write_octet_string | ( | unsigned char ** | p, | |
unsigned char * | start, | |||
const unsigned char * | buf, | |||
size_t | size | |||
) |
Write an octet string tag (MBEDTLS_ASN1_OCTET_STRING) and value in ASN.1 format.
p | reference to current position pointer | |
start | start of the buffer (for bounds-checking) | |
buf | data buffer to write | |
size | length of the data buffer |
int mbedtls_asn1_write_oid | ( | unsigned char ** | p, | |
unsigned char * | start, | |||
const char * | oid, | |||
size_t | oid_len | |||
) |
Write an OID tag (MBEDTLS_ASN1_OID) and data in ASN.1 format Note: function works backwards in data buffer.
p | reference to current position pointer | |
start | start of the buffer (for bounds-checking) | |
oid | the OID to write | |
oid_len | length of the OID |
int mbedtls_asn1_write_printable_string | ( | unsigned char ** | p, | |
unsigned char * | start, | |||
const char * | text, | |||
size_t | text_len | |||
) |
Write a printable string tag (MBEDTLS_ASN1_PRINTABLE_STRING) and value in ASN.1 format Note: function works backwards in data buffer.
p | reference to current position pointer | |
start | start of the buffer (for bounds-checking) | |
text | the text to write | |
text_len | length of the text |
int mbedtls_asn1_write_raw_buffer | ( | unsigned char ** | p, | |
unsigned char * | start, | |||
const unsigned char * | buf, | |||
size_t | size | |||
) |
Write raw buffer data Note: function works backwards in data buffer.
p | reference to current position pointer | |
start | start of the buffer (for bounds-checking) | |
buf | data buffer to write | |
size | length of the data buffer |
int mbedtls_asn1_write_tag | ( | unsigned char ** | p, | |
unsigned char * | start, | |||
unsigned char | tag | |||
) |
Write a ASN.1 tag in ASN.1 format Note: function works backwards in data buffer.
p | reference to current position pointer | |
start | start of the buffer (for bounds-checking) | |
tag | the tag to write |