Lines Matching refs:buf

66 asn1_error_code asn1buf_create(asn1buf **buf)  in asn1buf_create()  argument
68 *buf = (asn1buf*)malloc(sizeof(asn1buf)); in asn1buf_create()
69 if (*buf == NULL) return ENOMEM; in asn1buf_create()
70 (*buf)->base = NULL; in asn1buf_create()
71 (*buf)->bound = NULL; in asn1buf_create()
72 (*buf)->next = NULL; in asn1buf_create()
76 asn1_error_code asn1buf_wrap_data(asn1buf *buf, const krb5_data *code) in asn1buf_wrap_data() argument
79 buf->next = buf->base = code->data; in asn1buf_wrap_data()
80 buf->bound = code->data + code->length - 1; in asn1buf_wrap_data()
84 asn1_error_code asn1buf_imbed(asn1buf *subbuf, const asn1buf *buf, const unsigned int length, const… in asn1buf_imbed() argument
86 if (buf->next > buf->bound + 1) return ASN1_OVERRUN; in asn1buf_imbed()
87 subbuf->base = subbuf->next = buf->next; in asn1buf_imbed()
89 if (length > (size_t)(buf->bound + 1 - buf->next)) return ASN1_OVERRUN; in asn1buf_imbed()
92 subbuf->bound = buf->bound; in asn1buf_imbed()
96 asn1_error_code asn1buf_sync(asn1buf *buf, asn1buf *subbuf, in asn1buf_sync() argument
104 buf->next = subbuf->bound + 1; in asn1buf_sync()
111 buf->next = subbuf->next; in asn1buf_sync()
116 asn1_error_code asn1buf_skiptail(asn1buf *buf, const unsigned int length, const int indef) in asn1buf_skiptail() argument
124 if (length <= buf->bound - buf->next + 1) in asn1buf_skiptail()
125 buf->next += length; in asn1buf_skiptail()
130 if (buf->bound - buf->next + 1 <= 0) in asn1buf_skiptail()
132 retval = asn1_get_tag_2(buf, &t); in asn1buf_skiptail()
135 if (t.length <= buf->bound - buf->next + 1) in asn1buf_skiptail()
136 buf->next += t.length; in asn1buf_skiptail()
148 asn1_error_code asn1buf_destroy(asn1buf **buf) in asn1buf_destroy() argument
150 if (*buf != NULL) { in asn1buf_destroy()
151 if ((*buf)->base != NULL) free((*buf)->base); in asn1buf_destroy()
152 free(*buf); in asn1buf_destroy()
153 *buf = NULL; in asn1buf_destroy()
161 asn1_error_code asn1buf_insert_octet(asn1buf *buf, const int o) in asn1buf_insert_octet() argument
165 retval = asn1buf_ensure_space(buf,1U); in asn1buf_insert_octet()
167 *(buf->next) = (char)o; in asn1buf_insert_octet()
168 (buf->next)++; in asn1buf_insert_octet()
172 asn1_error_code asn1buf_insert_octetstring(asn1buf *buf, const unsigned int len, const krb5_octet *… in asn1buf_insert_octetstring() argument
177 retval = asn1buf_ensure_space(buf,len); in asn1buf_insert_octetstring()
179 for(length=1; length<=len; length++,(buf->next)++) in asn1buf_insert_octetstring()
180 *(buf->next) = (char)(s[len-length]); in asn1buf_insert_octetstring()
184 asn1_error_code asn1buf_insert_charstring(asn1buf *buf, const unsigned int len, const char *s) in asn1buf_insert_charstring() argument
189 retval = asn1buf_ensure_space(buf,len); in asn1buf_insert_charstring()
191 for(length=1; length<=len; length++,(buf->next)++) in asn1buf_insert_charstring()
192 *(buf->next) = (char)(s[len-length]); in asn1buf_insert_charstring()
197 asn1_error_code asn1buf_remove_octet(asn1buf *buf, asn1_octet *o) in asn1buf_remove_octet() argument
199 if(buf->next > buf->bound) return ASN1_OVERRUN; in asn1buf_remove_octet()
200 *o = (asn1_octet)(*((buf->next)++)); in asn1buf_remove_octet()
204 asn1_error_code asn1buf_remove_octetstring(asn1buf *buf, const unsigned int len, asn1_octet **s) in asn1buf_remove_octetstring() argument
208 if (buf->next > buf->bound + 1) return ASN1_OVERRUN; in asn1buf_remove_octetstring()
209 if (len > buf->bound + 1 - buf->next) return ASN1_OVERRUN; in asn1buf_remove_octetstring()
218 (*s)[i] = (asn1_octet)(buf->next)[i]; in asn1buf_remove_octetstring()
219 buf->next += len; in asn1buf_remove_octetstring()
223 asn1_error_code asn1buf_remove_charstring(asn1buf *buf, const unsigned int len, char **s) in asn1buf_remove_charstring() argument
227 if (buf->next > buf->bound + 1) return ASN1_OVERRUN; in asn1buf_remove_charstring()
228 if (len > buf->bound + 1 - buf->next) return ASN1_OVERRUN; in asn1buf_remove_charstring()
236 (*s)[i] = (char)(buf->next)[i]; in asn1buf_remove_charstring()
237 buf->next += len; in asn1buf_remove_charstring()
241 int asn1buf_remains(asn1buf *buf, int indef) in asn1buf_remains() argument
244 if(buf == NULL || buf->base == NULL) return 0; in asn1buf_remains()
245 remain = buf->bound - buf->next +1; in asn1buf_remains()
250 if (indef && remain >= 2 && !*(buf->next) && !*(buf->next + 1)) in asn1buf_remains()
255 asn1_error_code asn12krb5_buf(const asn1buf *buf, krb5_data **code) in asn12krb5_buf() argument
263 (*code)->length = asn1buf_len(buf); in asn12krb5_buf()
271 ((*code)->data)[i] = (buf->base)[((*code)->length)-i-1]; in asn12krb5_buf()
281 asn1_error_code asn1buf_unparse(const asn1buf *buf, char **s) in asn1buf_unparse() argument
284 if(buf == NULL){ in asn1buf_unparse()
288 }else if(buf->base == NULL){ in asn1buf_unparse()
293 unsigned int length = asn1buf_len(buf); in asn1buf_unparse()
305 asn1_error_code asn1buf_hex_unparse(const asn1buf *buf, char **s) in asn1buf_hex_unparse() argument
313 if(buf == NULL){ in asn1buf_hex_unparse()
317 }else if(buf->base == NULL){ in asn1buf_hex_unparse()
322 unsigned int length = asn1buf_len(buf); in asn1buf_hex_unparse()
328 (*s)[3*(length-i-1)] = hexchar(((buf->base)[i]&0xF0)>>4); in asn1buf_hex_unparse()
329 (*s)[3*(length-i-1)+1] = hexchar((buf->base)[i]&0x0F); in asn1buf_hex_unparse()
341 int asn1buf_size(const asn1buf *buf) in asn1buf_size() argument
343 if(buf == NULL || buf->base == NULL) return 0; in asn1buf_size()
344 return buf->bound - buf->base + 1; in asn1buf_size()
348 int asn1buf_free(const asn1buf *buf) in asn1buf_free() argument
350 if(buf == NULL || buf->base == NULL) return 0; in asn1buf_free()
351 else return buf->bound - buf->next + 1; in asn1buf_free()
355 asn1_error_code asn1buf_ensure_space(asn1buf *buf, const unsigned int amount) in asn1buf_ensure_space() argument
357 int avail = asn1buf_free(buf); in asn1buf_ensure_space()
359 asn1_error_code retval = asn1buf_expand(buf, amount-avail); in asn1buf_ensure_space()
365 asn1_error_code asn1buf_expand(asn1buf *buf, unsigned int inc) in asn1buf_expand() argument
368 int next_offset = buf->next - buf->base; in asn1buf_expand()
370 if (buf->base == NULL) bound_offset = -1; in asn1buf_expand()
371 else bound_offset = buf->bound - buf->base; in asn1buf_expand()
376 if (buf->base == NULL) in asn1buf_expand()
377 buf->base = malloc((asn1buf_size(buf)+inc) * sizeof(asn1_octet)); in asn1buf_expand()
379 buf->base = realloc(buf->base, in asn1buf_expand()
380 (asn1buf_size(buf)+inc) * sizeof(asn1_octet)); in asn1buf_expand()
381 if (buf->base == NULL) return ENOMEM; in asn1buf_expand()
382 buf->bound = (buf->base) + bound_offset + inc; in asn1buf_expand()
383 buf->next = (buf->base) + next_offset; in asn1buf_expand()
388 int asn1buf_len(const asn1buf *buf) in asn1buf_len() argument
390 return buf->next - buf->base; in asn1buf_len()