mbed TLS v2.2.0
|
ASN.1 buffer writing functionality.
Copyright (C) 2006-2015, ARM Limited, All Rights Reserved SPDX-License-Identifier: Apache-2.0
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
This file is part of mbed TLS (https://tls.mbed.org)
Definition in file asn1write.h.
#include "asn1.h"
Go to the source code of this file.
Macros | |
#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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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 Note: function works backwards in data buffer. More... | |
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 Note: function works backwards in data buffer. More... | |
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. More... | |
#define MBEDTLS_ASN1_CHK_ADD | ( | g, | |
f | |||
) |
Definition at line 28 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 Note: function works backwards in data buffer.
p | reference to current position pointer |
start | start of the buffer (for bounds-checking) |
buf | the bitstring |
bits | the total number of bits in the bitstring |
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 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_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 |