Lines Matching full:base
29 struct cbb_buffer_st *base; in cbb_init() local
31 if ((base = calloc(1, sizeof(struct cbb_buffer_st))) == NULL) in cbb_init()
34 base->buf = buf; in cbb_init()
35 base->len = 0; in cbb_init()
36 base->cap = cap; in cbb_init()
37 base->can_resize = 1; in cbb_init()
39 cbb->base = base; in cbb_init()
74 cbb->base->can_resize = 0; in CBB_init_fixed()
82 if (cbb->base) { in CBB_cleanup()
83 if (cbb->base->can_resize) in CBB_cleanup()
84 freezero(cbb->base->buf, cbb->base->cap); in CBB_cleanup()
85 free(cbb->base); in CBB_cleanup()
87 cbb->base = NULL; in CBB_cleanup()
92 cbb_buffer_add(struct cbb_buffer_st *base, uint8_t **out, size_t len) in cbb_buffer_add() argument
96 if (base == NULL) in cbb_buffer_add()
99 newlen = base->len + len; in cbb_buffer_add()
100 if (newlen < base->len) in cbb_buffer_add()
104 if (newlen > base->cap) { in cbb_buffer_add()
105 size_t newcap = base->cap * 2; in cbb_buffer_add()
108 if (!base->can_resize) in cbb_buffer_add()
111 if (newcap < base->cap || newcap < newlen) in cbb_buffer_add()
114 newbuf = recallocarray(base->buf, base->cap, newcap, 1); in cbb_buffer_add()
118 base->buf = newbuf; in cbb_buffer_add()
119 base->cap = newcap; in cbb_buffer_add()
123 *out = base->buf + base->len; in cbb_buffer_add()
125 base->len = newlen; in cbb_buffer_add()
141 if (!CBB_flush(cbb) || !cbb_buffer_add(cbb->base, &buf, len_len)) in cbb_add_u()
160 if (cbb->base->can_resize && (out_data == NULL || out_len == NULL)) in CBB_finish()
171 *out_data = cbb->base->buf; in CBB_finish()
174 *out_len = cbb->base->len; in CBB_finish()
176 cbb->base->buf = NULL; in CBB_finish()
183 * length of the underlying base is taken to be the length of the
191 if (cbb->base == NULL) in CBB_flush()
200 cbb->base->len < child_start) in CBB_flush()
203 len = cbb->base->len - child_start; in CBB_flush()
250 if (!cbb_buffer_add(cbb->base, NULL, extra_bytes)) in CBB_flush()
253 memmove(cbb->base->buf + child_start + extra_bytes, in CBB_flush()
254 cbb->base->buf + child_start, len); in CBB_flush()
256 cbb->base->buf[cbb->offset++] = initial_length_byte; in CBB_flush()
261 cbb->base->buf[cbb->offset + i] = len; in CBB_flush()
267 cbb->child->base = NULL; in CBB_flush()
282 cbb->base->len = cbb->offset; in CBB_discard_child()
284 cbb->child->base = NULL; in CBB_discard_child()
299 cbb->offset = cbb->base->len; in cbb_add_length_prefixed()
300 if (!cbb_buffer_add(cbb->base, &prefix_bytes, len_len)) in cbb_add_length_prefixed()
305 out_contents->base = cbb->base; in cbb_add_length_prefixed()
355 cbb->offset = cbb->base->len; in CBB_add_asn1()
360 out_contents->base = cbb->base; in CBB_add_asn1()
373 if (!CBB_flush(cbb) || !cbb_buffer_add(cbb->base, &dest, len)) in CBB_add_bytes()
383 if (!CBB_flush(cbb) || !cbb_buffer_add(cbb->base, out_data, len)) in CBB_add_space()