Lines Matching refs:ber

41 static int	ober_dump_element(struct ber *ber, struct ber_element *root);
42 static void ober_dump_header(struct ber *ber, struct ber_element *root);
43 static void ober_putc(struct ber *ber, u_char c);
44 static void ober_write(struct ber *ber, void *buf, size_t len);
45 static ssize_t get_id(struct ber *b, unsigned int *tag, int *class,
47 static ssize_t get_len(struct ber *b, ssize_t *len);
48 static ssize_t ober_read_element(struct ber *ber, struct ber_element *elm);
49 static ssize_t ober_getc(struct ber *b, u_char *c);
50 static ssize_t ober_read(struct ber *ber, void *buf, size_t len);
115 struct ber_element *ber, *next; in ober_replace_elements() local
117 ber = ober_unlink_elements(prev); in ober_replace_elements()
118 next = ober_unlink_elements(ber); in ober_replace_elements()
123 ober_free_elements(ber); in ober_replace_elements()
581 ober_printf_elements(struct ber_element *ber, char *fmt, ...) in ober_printf_elements() argument
592 struct ber_element *origber = ber, *firstber = NULL; in ober_printf_elements()
603 if ((ber = ober_add_bitstring(ber, p, len)) == NULL) in ober_printf_elements()
608 if ((ber = ober_add_boolean(ber, d)) == NULL) in ober_printf_elements()
613 if ((ber = ober_add_integer(ber, d)) == NULL) in ober_printf_elements()
618 ober_link_elements(ber, e); in ober_printf_elements()
622 if ((ber = ober_add_enumerated(ber, i)) == NULL) in ober_printf_elements()
627 if ((ber = ober_add_integer(ber, i)) == NULL) in ober_printf_elements()
632 if ((ber = ober_add_oid(ber, o)) == NULL) in ober_printf_elements()
637 if ((ber = ober_add_oidstring(ber, s)) == NULL) in ober_printf_elements()
642 if ((ber = ober_add_string(ber, s)) == NULL) in ober_printf_elements()
648 ober_set_header(ber, class, type); in ober_printf_elements()
653 if ((ber = ober_add_nstring(ber, s, len)) == NULL) in ober_printf_elements()
657 if ((ber = ober_add_null(ber)) == NULL) in ober_printf_elements()
663 if ((ber= ober_add_sequence(ber)) == NULL) in ober_printf_elements()
665 parent[level++] = ber; in ober_printf_elements()
670 if ((ber = ober_add_set(ber)) == NULL) in ober_printf_elements()
672 parent[level++] = ber; in ober_printf_elements()
678 ber = parent[--level]; in ober_printf_elements()
681 if ((e = ober_add_eoc(ber)) == NULL) in ober_printf_elements()
683 ber = e; in ober_printf_elements()
689 firstber = ber; in ober_printf_elements()
693 return (ber); in ober_printf_elements()
702 ober_scanf_elements(struct ber_element *ber, char *fmt, ...) in ober_scanf_elements() argument
719 if (ber == NULL && *fmt != '$' && *fmt != '}' && *fmt != ')') in ober_scanf_elements()
723 if (ber != NULL) in ober_scanf_elements()
730 if (ober_get_bitstring(ber, ptr, len) == -1) in ober_scanf_elements()
736 if (ober_get_boolean(ber, d) == -1) in ober_scanf_elements()
742 if (ober_get_integer(ber, &l) == -1) in ober_scanf_elements()
750 *e = ber; in ober_scanf_elements()
755 if (ober_get_enumerated(ber, i) == -1) in ober_scanf_elements()
761 if (ober_get_integer(ber, i) == -1) in ober_scanf_elements()
767 if (ober_get_oid(ber, o) == -1) in ober_scanf_elements()
776 if (ober_get_string(ber, s) == -1) in ober_scanf_elements()
784 *d = ber->be_class; in ober_scanf_elements()
786 *t = ber->be_type; in ober_scanf_elements()
792 if (ober_get_nstring(ber, ptr, len) == -1) in ober_scanf_elements()
797 if (ber->be_encoding != BER_TYPE_NULL) in ober_scanf_elements()
802 if (ber->be_encoding != BER_TYPE_EOC) in ober_scanf_elements()
808 *pos = ober_getpos(ber); in ober_scanf_elements()
813 if (ber->be_encoding != BER_TYPE_SEQUENCE && in ober_scanf_elements()
814 ber->be_encoding != BER_TYPE_SET) in ober_scanf_elements()
818 parent[++level] = ber; in ober_scanf_elements()
819 ber = ber->be_sub; in ober_scanf_elements()
826 ber = parent[level--]; in ober_scanf_elements()
833 ber = ber->be_next; in ober_scanf_elements()
845 ober_get_writebuf(struct ber *b, void **buf) in ober_get_writebuf()
865 ober_write_elements(struct ber *ber, struct ber_element *root) in ober_write_elements() argument
873 if (ber->br_wbuf != NULL && ber->br_wbuf + len > ber->br_wend) { in ober_write_elements()
874 free(ber->br_wbuf); in ober_write_elements()
875 ber->br_wbuf = NULL; in ober_write_elements()
877 if (ber->br_wbuf == NULL) { in ober_write_elements()
878 if ((ber->br_wbuf = malloc(len)) == NULL) in ober_write_elements()
880 ber->br_wend = ber->br_wbuf + len; in ober_write_elements()
884 ber->br_wptr = ber->br_wbuf; in ober_write_elements()
886 if (ober_dump_element(ber, root) == -1) in ober_write_elements()
893 ober_set_readbuf(struct ber *b, void *buf, size_t len) in ober_set_readbuf()
913 ober_read_elements(struct ber *ber, struct ber_element *elm) in ober_read_elements() argument
924 if (ober_read_element(ber, root) == -1) { in ober_read_elements()
1040 ober_set_application(struct ber *b, unsigned int (*cb)(struct ber_element *)) in ober_set_application()
1054 ober_free(struct ber *b) in ober_free()
1064 ober_dump_element(struct ber *ber, struct ber_element *root) in ober_dump_element() argument
1070 ober_dump_header(ber, root); in ober_dump_element()
1072 root->be_cb(root->be_cbarg, ber->br_wptr - ber->br_wbuf); in ober_dump_element()
1081 ober_putc(ber, u); in ober_dump_element()
1087 ober_write(ber, root->be_val, root->be_len); in ober_dump_element()
1094 if (root->be_sub && ober_dump_element(ber, root->be_sub) == -1) in ober_dump_element()
1101 return ober_dump_element(ber, root->be_next); in ober_dump_element()
1105 ober_dump_header(struct ber *ber, struct ber_element *root) in ober_dump_header() argument
1119 ober_putc(ber, id); in ober_dump_header()
1126 ober_putc(ber, id); in ober_dump_header()
1134 ober_putc(ber, buf[t]); in ober_dump_header()
1140 ober_putc(ber, root->be_len); in ober_dump_header()
1145 ober_putc(ber, t | BER_TAG_MORE); in ober_dump_header()
1148 ober_putc(ber, buf[--t]); in ober_dump_header()
1153 ober_putc(struct ber *ber, u_char c) in ober_putc() argument
1155 if (ber->br_wptr + 1 <= ber->br_wend) in ober_putc()
1156 *ber->br_wptr = c; in ober_putc()
1157 ber->br_wptr++; in ober_putc()
1161 ober_write(struct ber *ber, void *buf, size_t len) in ober_write() argument
1163 if (ber->br_wptr + len <= ber->br_wend) in ober_write()
1164 bcopy(buf, ber->br_wptr, len); in ober_write()
1165 ber->br_wptr += len; in ober_write()
1172 get_id(struct ber *b, unsigned int *tag, int *class, int *cstruct) in get_id()
1215 get_len(struct ber *b, ssize_t *len) in get_len()
1267 ober_read_element(struct ber *ber, struct ber_element *elm) in ober_read_element() argument
1276 if ((r = get_id(ber, &type, &class, &cstruct)) == -1) in ober_read_element()
1281 if ((r = get_len(ber, &len)) == -1) in ober_read_element()
1300 if (len > ber->br_rend - ber->br_rptr) { in ober_read_element()
1307 elm->be_offs = ber->br_offs; /* element position within stream */ in ober_read_element()
1316 else if (ber->br_application != NULL) { in ober_read_element()
1322 elm->be_encoding = (*ber->br_application)(elm); in ober_read_element()
1347 if (ober_getc(ber, &c) != 1) in ober_read_element()
1374 ober_read(ber, elm->be_val, len); in ober_read_element()
1383 ober_read(ber, elm->be_val, len); in ober_read_element()
1408 r = ober_read_element(ber, next); in ober_read_element()
1434 ober_getc(struct ber *b, u_char *c) in ober_getc()
1440 ober_read(struct ber *ber, void *buf, size_t len) in ober_read() argument
1444 if (ber->br_rbuf == NULL) { in ober_read()
1449 sz = ber->br_rend - ber->br_rptr; in ober_read()
1455 bcopy(ber->br_rptr, buf, len); in ober_read()
1456 ber->br_rptr += len; in ober_read()
1457 ber->br_offs += len; in ober_read()