Lines Matching +full:- +full:p

5  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
28 int mbedtls_asn1_get_len(unsigned char **p, in mbedtls_asn1_get_len() argument
32 if ((end - *p) < 1) { in mbedtls_asn1_get_len()
36 if ((**p & 0x80) == 0) { in mbedtls_asn1_get_len()
37 *len = *(*p)++; in mbedtls_asn1_get_len()
39 int n = (**p) & 0x7F; in mbedtls_asn1_get_len()
43 if ((end - *p) <= n) { in mbedtls_asn1_get_len()
47 (*p)++; in mbedtls_asn1_get_len()
48 while (n--) { in mbedtls_asn1_get_len()
49 *len = (*len << 8) | **p; in mbedtls_asn1_get_len()
50 (*p)++; in mbedtls_asn1_get_len()
54 if (*len > (size_t) (end - *p)) { in mbedtls_asn1_get_len()
61 int mbedtls_asn1_get_tag(unsigned char **p, in mbedtls_asn1_get_tag() argument
65 if ((end - *p) < 1) { in mbedtls_asn1_get_tag()
69 if (**p != tag) { in mbedtls_asn1_get_tag()
73 (*p)++; in mbedtls_asn1_get_tag()
75 return mbedtls_asn1_get_len(p, end, len); in mbedtls_asn1_get_tag()
80 int mbedtls_asn1_get_bool(unsigned char **p, in mbedtls_asn1_get_bool() argument
87 if ((ret = mbedtls_asn1_get_tag(p, end, &len, MBEDTLS_ASN1_BOOLEAN)) != 0) { in mbedtls_asn1_get_bool()
95 *val = (**p != 0) ? 1 : 0; in mbedtls_asn1_get_bool()
96 (*p)++; in mbedtls_asn1_get_bool()
101 static int asn1_get_tagged_int(unsigned char **p, in asn1_get_tagged_int() argument
108 if ((ret = mbedtls_asn1_get_tag(p, end, &len, tag)) != 0) { in asn1_get_tagged_int()
120 if ((**p & 0x80) != 0) { in asn1_get_tagged_int()
125 while (len > 0 && **p == 0) { in asn1_get_tagged_int()
126 ++(*p); in asn1_get_tagged_int()
127 --len; in asn1_get_tagged_int()
135 if (len == sizeof(int) && (**p & 0x80) != 0) { in asn1_get_tagged_int()
140 while (len-- > 0) { in asn1_get_tagged_int()
141 *val = (*val << 8) | **p; in asn1_get_tagged_int()
142 (*p)++; in asn1_get_tagged_int()
148 int mbedtls_asn1_get_int(unsigned char **p, in mbedtls_asn1_get_int() argument
152 return asn1_get_tagged_int(p, end, MBEDTLS_ASN1_INTEGER, val); in mbedtls_asn1_get_int()
155 int mbedtls_asn1_get_enum(unsigned char **p, in mbedtls_asn1_get_enum() argument
159 return asn1_get_tagged_int(p, end, MBEDTLS_ASN1_ENUMERATED, val); in mbedtls_asn1_get_enum()
163 int mbedtls_asn1_get_mpi(unsigned char **p, in mbedtls_asn1_get_mpi() argument
170 if ((ret = mbedtls_asn1_get_tag(p, end, &len, MBEDTLS_ASN1_INTEGER)) != 0) { in mbedtls_asn1_get_mpi()
174 ret = mbedtls_mpi_read_binary(X, *p, len); in mbedtls_asn1_get_mpi()
176 *p += len; in mbedtls_asn1_get_mpi()
182 int mbedtls_asn1_get_bitstring(unsigned char **p, const unsigned char *end, in mbedtls_asn1_get_bitstring() argument
188 if ((ret = mbedtls_asn1_get_tag(p, end, &bs->len, MBEDTLS_ASN1_BIT_STRING)) != 0) { in mbedtls_asn1_get_bitstring()
193 if (bs->len < 1) { in mbedtls_asn1_get_bitstring()
196 bs->len -= 1; in mbedtls_asn1_get_bitstring()
199 bs->unused_bits = **p; in mbedtls_asn1_get_bitstring()
200 if (bs->unused_bits > 7) { in mbedtls_asn1_get_bitstring()
203 (*p)++; in mbedtls_asn1_get_bitstring()
206 bs->p = *p; in mbedtls_asn1_get_bitstring()
207 *p += bs->len; in mbedtls_asn1_get_bitstring()
209 if (*p != end) { in mbedtls_asn1_get_bitstring()
221 unsigned char **p, in mbedtls_asn1_traverse_sequence_of() argument
233 if ((ret = mbedtls_asn1_get_tag(p, end, &len, in mbedtls_asn1_traverse_sequence_of()
238 if (*p + len != end) { in mbedtls_asn1_traverse_sequence_of()
242 while (*p < end) { in mbedtls_asn1_traverse_sequence_of()
243 unsigned char const tag = *(*p)++; in mbedtls_asn1_traverse_sequence_of()
249 if ((ret = mbedtls_asn1_get_len(p, end, &len)) != 0) { in mbedtls_asn1_traverse_sequence_of()
255 ret = cb(ctx, tag, *p, len); in mbedtls_asn1_traverse_sequence_of()
262 *p += len; in mbedtls_asn1_traverse_sequence_of()
271 int mbedtls_asn1_get_bitstring_null(unsigned char **p, const unsigned char *end, in mbedtls_asn1_get_bitstring_null() argument
276 if ((ret = mbedtls_asn1_get_tag(p, end, len, MBEDTLS_ASN1_BIT_STRING)) != 0) { in mbedtls_asn1_get_bitstring_null()
283 --(*len); in mbedtls_asn1_get_bitstring_null()
285 if (**p != 0) { in mbedtls_asn1_get_bitstring_null()
288 ++(*p); in mbedtls_asn1_get_bitstring_null()
296 mbedtls_asn1_sequence *next = seq->next; in mbedtls_asn1_sequence_free()
315 cb_ctx->cur; in asn1_get_sequence_of_cb()
317 if (cur->buf.p != NULL) { in asn1_get_sequence_of_cb()
318 cur->next = in asn1_get_sequence_of_cb()
321 if (cur->next == NULL) { in asn1_get_sequence_of_cb()
325 cur = cur->next; in asn1_get_sequence_of_cb()
328 cur->buf.p = start; in asn1_get_sequence_of_cb()
329 cur->buf.len = len; in asn1_get_sequence_of_cb()
330 cur->buf.tag = tag; in asn1_get_sequence_of_cb()
332 cb_ctx->cur = cur; in asn1_get_sequence_of_cb()
339 int mbedtls_asn1_get_sequence_of(unsigned char **p, in mbedtls_asn1_get_sequence_of() argument
347 p, end, 0xFF, tag, 0, 0, in mbedtls_asn1_get_sequence_of()
351 int mbedtls_asn1_get_alg(unsigned char **p, in mbedtls_asn1_get_alg() argument
358 if ((ret = mbedtls_asn1_get_tag(p, end, &len, in mbedtls_asn1_get_alg()
363 if ((end - *p) < 1) { in mbedtls_asn1_get_alg()
367 alg->tag = **p; in mbedtls_asn1_get_alg()
368 end = *p + len; in mbedtls_asn1_get_alg()
370 if ((ret = mbedtls_asn1_get_tag(p, end, &alg->len, MBEDTLS_ASN1_OID)) != 0) { in mbedtls_asn1_get_alg()
374 alg->p = *p; in mbedtls_asn1_get_alg()
375 *p += alg->len; in mbedtls_asn1_get_alg()
377 if (*p == end) { in mbedtls_asn1_get_alg()
382 params->tag = **p; in mbedtls_asn1_get_alg()
383 (*p)++; in mbedtls_asn1_get_alg()
385 if ((ret = mbedtls_asn1_get_len(p, end, &params->len)) != 0) { in mbedtls_asn1_get_alg()
389 params->p = *p; in mbedtls_asn1_get_alg()
390 *p += params->len; in mbedtls_asn1_get_alg()
392 if (*p != end) { in mbedtls_asn1_get_alg()
399 int mbedtls_asn1_get_alg_null(unsigned char **p, in mbedtls_asn1_get_alg_null() argument
408 if ((ret = mbedtls_asn1_get_alg(p, end, alg, &params)) != 0) { in mbedtls_asn1_get_alg_null()
426 mbedtls_free(cur->oid.p); in mbedtls_asn1_free_named_data()
427 mbedtls_free(cur->val.p); in mbedtls_asn1_free_named_data()
438 *head = cur->next; in mbedtls_asn1_free_named_data_list()
439 mbedtls_free(cur->oid.p); in mbedtls_asn1_free_named_data_list()
440 mbedtls_free(cur->val.p); in mbedtls_asn1_free_named_data_list()
448 next = name->next; in mbedtls_asn1_free_named_data_list_shallow()
457 if (list->oid.len == len && in mbedtls_asn1_find_named_data()
458 memcmp(list->oid.p, oid, len) == 0) { in mbedtls_asn1_find_named_data()
462 list = list->next; in mbedtls_asn1_find_named_data()