Lines Matching refs:ber

43  * Note: kmfber_read() only uses the ber_end and ber_ptr elements of ber.
46 * elements of the ber structure, those functions will need to be changed
50 kmfber_read(BerElement *ber, char *buf, ber_len_t len)
55 nleft = ber->ber_end - ber->ber_ptr;
58 (void) memmove(buf, ber->ber_ptr, (size_t)actuallen);
60 ber->ber_ptr += actuallen;
66 * enlarge the ber buffer.
70 kmfber_realloc(BerElement *ber, ber_len_t len)
78 have_bytes = ber->ber_end - ber->ber_buf;
83 oldbuf = ber->ber_buf;
85 if (ber->ber_buf == NULL) {
86 if ((ber->ber_buf = (char *)malloc((size_t)total))
90 ber->ber_flags &= ~KMFBER_FLAG_NO_FREE_BUFFER;
92 if (ber->ber_flags & KMFBER_FLAG_NO_FREE_BUFFER) {
94 if ((ber->ber_buf = (char *)malloc(
98 ber->ber_flags &= ~KMFBER_FLAG_NO_FREE_BUFFER;
101 (void) memmove(ber->ber_buf, oldbuf, have_bytes);
103 if ((ber->ber_buf = (char *)realloc(
111 ber->ber_end = ber->ber_buf + total;
115 * reset all the sos and ber pointers. Offsets would've been
118 if (ber->ber_buf != oldbuf) {
119 ber->ber_ptr = ber->ber_buf + (ber->ber_ptr - oldbuf);
121 for (s = ber->ber_sos; s != NULLSEQORSET; s = s->sos_next) {
123 s->sos_first = ber->ber_buf + off;
126 s->sos_ptr = ber->ber_buf + off;
137 kmfber_write(BerElement *ber, char *buf, ber_len_t len, int nosos)
139 if (nosos || ber->ber_sos == NULL) {
140 if (ber->ber_ptr + len > ber->ber_end) {
141 if (kmfber_realloc(ber, len) != 0)
144 (void) memmove(ber->ber_ptr, buf, (size_t)len);
145 ber->ber_ptr += len;
148 if (ber->ber_sos->sos_ptr + len > ber->ber_end) {
149 if (kmfber_realloc(ber, len) != 0)
152 (void) memmove(ber->ber_sos->sos_ptr, buf, (size_t)len);
153 ber->ber_sos->sos_ptr += len;
154 ber->ber_sos->sos_clen += len;
160 kmfber_free(BerElement *ber, int freebuf)
162 if (ber != NULL) {
164 !(ber->ber_flags & KMFBER_FLAG_NO_FREE_BUFFER))
165 free(ber->ber_buf);
166 free((char *)ber);
174 BerElement *ber;
176 if ((ber = (BerElement*)calloc(1,
181 ber->ber_tag = KMFBER_DEFAULT;
182 ber->ber_options = options;
183 ber->ber_buf = (char *)ber + sizeof (struct berelement);
184 ber->ber_ptr = ber->ber_buf;
185 ber->ber_end = ber->ber_buf + EXBUFSIZ;
186 ber->ber_flags = KMFBER_FLAG_NO_FREE_BUFFER;
188 return (ber);
205 kmfber_dup(BerElement *ber)
212 *new = *ber;
219 ber_init_w_nullchar(BerElement *ber, int options)
221 (void) memset((char *)ber, '\0', sizeof (struct berelement));
222 ber->ber_tag = KMFBER_DEFAULT;
224 ber->ber_options = options;
229 kmfber_reset(BerElement *ber, int was_writing)
232 ber->ber_end = ber->ber_ptr;
233 ber->ber_ptr = ber->ber_buf;
235 ber->ber_ptr = ber->ber_end;
238 ber->ber_rwptr = NULL;
245 ber_dump(BerElement *ber, int inout)
249 ber->ber_buf, ber->ber_ptr, ber->ber_rwptr, ber->ber_end);
253 ber->ber_end - ber->ber_ptr);
255 lber_bprint(ber->ber_ptr, ber->ber_end - ber->ber_ptr);
258 ber->ber_ptr - ber->ber_buf);
260 lber_bprint(ber->ber_buf, ber->ber_ptr - ber->ber_buf);
295 * are a BER encoding taken from the ber argument. The bvPtr pointer
304 kmfber_flatten(BerElement *ber, struct berval **bvPtr)
320 if (ber == NULL) {
324 len = ber->ber_ptr - ber->ber_buf;
330 (void) memmove(new->bv_val, ber->ber_buf, (size_t)len);
344 BerElement *ber;
347 if ((ber = kmfber_alloc_t(KMFBER_OPT_USE_DER)) != NULL) {
350 if ((kmfber_write(ber, bv->bv_val, bv->bv_len, 0)) !=
352 kmfber_free(ber, 1);
358 * and initialized ber element can be READ
360 kmfber_reset(ber, 1);
366 return (ber);
372 BerElement *ber;
375 if ((ber = kmfber_alloc_t(0)) != NULL) {
378 if ((kmfber_write(ber, bv->bv_val, bv->bv_len, 0)) !=
380 kmfber_free(ber, 1);
386 * and initialized ber element can be READ
388 kmfber_reset(ber, 1);
394 return (ber);