Lines Matching +full:- +full:p
5 * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
24 int mbedtls_asn1_write_len(unsigned char **p, const unsigned char *start, size_t len) in mbedtls_asn1_write_len() argument
40 if (required > (*p - start)) { in mbedtls_asn1_write_len()
45 *--(*p) = MBEDTLS_BYTE_0(len); in mbedtls_asn1_write_len()
50 *--(*p) = (unsigned char) (0x80 + required - 1); in mbedtls_asn1_write_len()
56 int mbedtls_asn1_write_tag(unsigned char **p, const unsigned char *start, unsigned char tag) in mbedtls_asn1_write_tag() argument
58 if (*p - start < 1) { in mbedtls_asn1_write_tag()
62 *--(*p) = tag; in mbedtls_asn1_write_tag()
69 static int mbedtls_asn1_write_len_and_tag(unsigned char **p, in mbedtls_asn1_write_len_and_tag() argument
76 MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(p, start, len)); in mbedtls_asn1_write_len_and_tag()
77 MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(p, start, tag)); in mbedtls_asn1_write_len_and_tag()
82 int mbedtls_asn1_write_raw_buffer(unsigned char **p, const unsigned char *start, in mbedtls_asn1_write_raw_buffer() argument
87 if (*p < start || (size_t) (*p - start) < size) { in mbedtls_asn1_write_raw_buffer()
92 (*p) -= len; in mbedtls_asn1_write_raw_buffer()
94 memcpy(*p, buf, len); in mbedtls_asn1_write_raw_buffer()
101 int mbedtls_asn1_write_mpi(unsigned char **p, const unsigned char *start, const mbedtls_mpi *X) in mbedtls_asn1_write_mpi() argument
116 if (*p < start || (size_t) (*p - start) < len) { in mbedtls_asn1_write_mpi()
120 (*p) -= len; in mbedtls_asn1_write_mpi()
121 MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(X, *p, len)); in mbedtls_asn1_write_mpi()
126 if (X->s == 1 && **p & 0x80) { in mbedtls_asn1_write_mpi()
127 if (*p - start < 1) { in mbedtls_asn1_write_mpi()
131 *--(*p) = 0x00; in mbedtls_asn1_write_mpi()
135 ret = mbedtls_asn1_write_len_and_tag(p, start, len, MBEDTLS_ASN1_INTEGER); in mbedtls_asn1_write_mpi()
142 int mbedtls_asn1_write_null(unsigned char **p, const unsigned char *start) in mbedtls_asn1_write_null() argument
146 return mbedtls_asn1_write_len_and_tag(p, start, 0, MBEDTLS_ASN1_NULL); in mbedtls_asn1_write_null()
149 int mbedtls_asn1_write_oid(unsigned char **p, const unsigned char *start, in mbedtls_asn1_write_oid() argument
155 MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_raw_buffer(p, start, in mbedtls_asn1_write_oid()
157 return mbedtls_asn1_write_len_and_tag(p, start, len, MBEDTLS_ASN1_OID); in mbedtls_asn1_write_oid()
160 int mbedtls_asn1_write_algorithm_identifier(unsigned char **p, const unsigned char *start, in mbedtls_asn1_write_algorithm_identifier() argument
164 return mbedtls_asn1_write_algorithm_identifier_ext(p, start, oid, oid_len, par_len, 1); in mbedtls_asn1_write_algorithm_identifier()
167 int mbedtls_asn1_write_algorithm_identifier_ext(unsigned char **p, const unsigned char *start, in mbedtls_asn1_write_algorithm_identifier_ext() argument
176 MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_null(p, start)); in mbedtls_asn1_write_algorithm_identifier_ext()
182 MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_oid(p, start, oid, oid_len)); in mbedtls_asn1_write_algorithm_identifier_ext()
184 return mbedtls_asn1_write_len_and_tag(p, start, len, in mbedtls_asn1_write_algorithm_identifier_ext()
188 int mbedtls_asn1_write_bool(unsigned char **p, const unsigned char *start, int boolean) in mbedtls_asn1_write_bool() argument
192 if (*p - start < 1) { in mbedtls_asn1_write_bool()
196 *--(*p) = (boolean) ? 255 : 0; in mbedtls_asn1_write_bool()
199 return mbedtls_asn1_write_len_and_tag(p, start, len, MBEDTLS_ASN1_BOOLEAN); in mbedtls_asn1_write_bool()
202 static int asn1_write_tagged_int(unsigned char **p, const unsigned char *start, int val, int tag) in asn1_write_tagged_int() argument
207 if (*p - start < 1) { in asn1_write_tagged_int()
211 *--(*p) = val & 0xff; in asn1_write_tagged_int()
215 if (**p & 0x80) { in asn1_write_tagged_int()
216 if (*p - start < 1) { in asn1_write_tagged_int()
219 *--(*p) = 0x00; in asn1_write_tagged_int()
223 return mbedtls_asn1_write_len_and_tag(p, start, len, tag); in asn1_write_tagged_int()
226 int mbedtls_asn1_write_int(unsigned char **p, const unsigned char *start, int val) in mbedtls_asn1_write_int() argument
228 return asn1_write_tagged_int(p, start, val, MBEDTLS_ASN1_INTEGER); in mbedtls_asn1_write_int()
231 int mbedtls_asn1_write_enum(unsigned char **p, const unsigned char *start, int val) in mbedtls_asn1_write_enum() argument
233 return asn1_write_tagged_int(p, start, val, MBEDTLS_ASN1_ENUMERATED); in mbedtls_asn1_write_enum()
236 int mbedtls_asn1_write_tagged_string(unsigned char **p, const unsigned char *start, int tag, in mbedtls_asn1_write_tagged_string() argument
242 MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_raw_buffer(p, start, in mbedtls_asn1_write_tagged_string()
246 return mbedtls_asn1_write_len_and_tag(p, start, len, tag); in mbedtls_asn1_write_tagged_string()
249 int mbedtls_asn1_write_utf8_string(unsigned char **p, const unsigned char *start, in mbedtls_asn1_write_utf8_string() argument
252 return mbedtls_asn1_write_tagged_string(p, start, MBEDTLS_ASN1_UTF8_STRING, text, text_len); in mbedtls_asn1_write_utf8_string()
255 int mbedtls_asn1_write_printable_string(unsigned char **p, const unsigned char *start, in mbedtls_asn1_write_printable_string() argument
258 return mbedtls_asn1_write_tagged_string(p, start, MBEDTLS_ASN1_PRINTABLE_STRING, text, in mbedtls_asn1_write_printable_string()
262 int mbedtls_asn1_write_ia5_string(unsigned char **p, const unsigned char *start, in mbedtls_asn1_write_ia5_string() argument
265 return mbedtls_asn1_write_tagged_string(p, start, MBEDTLS_ASN1_IA5_STRING, text, text_len); in mbedtls_asn1_write_ia5_string()
268 int mbedtls_asn1_write_named_bitstring(unsigned char **p, in mbedtls_asn1_write_named_bitstring() argument
279 unused_bits = (byte_len * 8) - bits; in mbedtls_asn1_write_named_bitstring()
287 cur_byte = buf + byte_len - 1; in mbedtls_asn1_write_named_bitstring()
298 bits--; in mbedtls_asn1_write_named_bitstring()
304 cur_byte_shifted = *--cur_byte; in mbedtls_asn1_write_named_bitstring()
309 return mbedtls_asn1_write_bitstring(p, start, buf, bits); in mbedtls_asn1_write_named_bitstring()
312 int mbedtls_asn1_write_bitstring(unsigned char **p, const unsigned char *start, in mbedtls_asn1_write_bitstring() argument
319 unused_bits = (byte_len * 8) - bits; in mbedtls_asn1_write_bitstring()
321 if (*p < start || (size_t) (*p - start) < byte_len + 1) { in mbedtls_asn1_write_bitstring()
329 byte_len--; in mbedtls_asn1_write_bitstring()
330 *--(*p) = buf[byte_len] & ~((0x1 << unused_bits) - 1); in mbedtls_asn1_write_bitstring()
331 (*p) -= byte_len; in mbedtls_asn1_write_bitstring()
332 memcpy(*p, buf, byte_len); in mbedtls_asn1_write_bitstring()
336 *--(*p) = (unsigned char) unused_bits; in mbedtls_asn1_write_bitstring()
338 return mbedtls_asn1_write_len_and_tag(p, start, len, MBEDTLS_ASN1_BIT_STRING); in mbedtls_asn1_write_bitstring()
341 int mbedtls_asn1_write_octet_string(unsigned char **p, const unsigned char *start, in mbedtls_asn1_write_octet_string() argument
347 MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_raw_buffer(p, start, buf, size)); in mbedtls_asn1_write_octet_string()
349 return mbedtls_asn1_write_len_and_tag(p, start, len, MBEDTLS_ASN1_OCTET_STRING); in mbedtls_asn1_write_octet_string()
361 if (list->oid.len == len && in asn1_find_named_data()
362 memcmp(list->oid.p, oid, len) == 0) { in asn1_find_named_data()
366 list = list->next; in asn1_find_named_data()
393 cur->oid.len = oid_len; in mbedtls_asn1_store_named_data()
394 cur->oid.p = mbedtls_calloc(1, oid_len); in mbedtls_asn1_store_named_data()
395 if (cur->oid.p == NULL) { in mbedtls_asn1_store_named_data()
400 memcpy(cur->oid.p, oid, oid_len); in mbedtls_asn1_store_named_data()
402 cur->val.len = val_len; in mbedtls_asn1_store_named_data()
404 cur->val.p = mbedtls_calloc(1, val_len); in mbedtls_asn1_store_named_data()
405 if (cur->val.p == NULL) { in mbedtls_asn1_store_named_data()
406 mbedtls_free(cur->oid.p); in mbedtls_asn1_store_named_data()
412 cur->next = *head; in mbedtls_asn1_store_named_data()
415 mbedtls_free(cur->val.p); in mbedtls_asn1_store_named_data()
416 cur->val.p = NULL; in mbedtls_asn1_store_named_data()
417 cur->val.len = 0; in mbedtls_asn1_store_named_data()
418 } else if (cur->val.len != val_len) { in mbedtls_asn1_store_named_data()
424 void *p = mbedtls_calloc(1, val_len); in mbedtls_asn1_store_named_data() local
425 if (p == NULL) { in mbedtls_asn1_store_named_data()
429 mbedtls_free(cur->val.p); in mbedtls_asn1_store_named_data()
430 cur->val.p = p; in mbedtls_asn1_store_named_data()
431 cur->val.len = val_len; in mbedtls_asn1_store_named_data()
435 memcpy(cur->val.p, val, val_len); in mbedtls_asn1_store_named_data()