Lines Matching refs:ber

8 /* decode.c - ber input decoding routines */
60 static int ber_getnint( BerElement *ber, int *num, int len );
66 ber_get_tag( BerElement *ber )
73 if ( ber_read( ber, (char *) &xbyte, 1 ) != 1 )
82 if ( ber_read( ber, (char *) &xbyte, 1 ) != 1 )
100 ber_skip_tag( BerElement *ber, unsigned int *len )
108 * Any ber element looks like this: tag length contents.
121 if ( (tag = ber_get_tag( ber )) == LBER_DEFAULT )
132 if ( ber_read( ber, (char *) &lc, 1 ) != 1 )
139 if ( ber_read( ber, (char *) &netlen + diff, noctets )
151 ber_peek_tag( BerElement *ber, unsigned int *len )
156 save = ber->ber_ptr;
157 tag = ber_skip_tag( ber, len );
158 ber->ber_ptr = save;
164 ber_getnint( BerElement *ber, int *num, int len )
179 if ( ber_read( ber, (char *) buffer, len ) != len )
194 ber_get_int( BerElement *ber, int *num )
198 if ( (tag = ber_skip_tag( ber, &len )) == LBER_DEFAULT )
201 if ( ber_getnint( ber, num, (int)len ) != len )
208 ber_get_stringb( BerElement *ber, char *buf, unsigned int *len )
215 if ( (tag = ber_skip_tag( ber, &datalen )) == LBER_DEFAULT )
220 if ( ber_read( ber, buf, datalen ) != datalen )
226 if ( datalen > 0 && ( ber->ber_options & LBER_TRANSLATE_STRINGS ) != 0
227 && ber->ber_decode_translate_proc != NULL ) {
230 if ( (*(ber->ber_decode_translate_proc))( &transbuf, &datalen,
249 ber_get_stringa( BerElement *ber, char **buf )
253 if ( (tag = ber_skip_tag( ber, &datalen )) == LBER_DEFAULT )
259 if ( ber_read( ber, *buf, datalen ) != datalen )
264 if ( datalen > 0 && ( ber->ber_options & LBER_TRANSLATE_STRINGS ) != 0
265 && ber->ber_decode_translate_proc != NULL ) {
267 if ( (*(ber->ber_decode_translate_proc))( buf, &datalen, 1 )
279 ber_get_stringal( BerElement *ber, struct berval **bv )
286 if ( (tag = ber_skip_tag( ber, &len )) == LBER_DEFAULT )
292 if ( ber_read( ber, (*bv)->bv_val, len ) != len )
298 if ( len > 0 && ( ber->ber_options & LBER_TRANSLATE_STRINGS ) != 0
299 && ber->ber_decode_translate_proc != NULL ) {
301 if ( (*(ber->ber_decode_translate_proc))( &((*bv)->bv_val),
314 ber_get_bitstringa( BerElement *ber, char **buf, unsigned int *blen )
319 if ( (tag = ber_skip_tag( ber, &datalen )) == LBER_DEFAULT )
326 if ( ber_read( ber, (char *)&unusedbits, 1 ) != 1 )
329 if ( ber_read( ber, *buf, datalen ) != datalen )
337 ber_get_null( BerElement *ber )
341 if ( (tag = ber_skip_tag( ber, &len )) == LBER_DEFAULT )
351 ber_get_boolean( BerElement *ber, int *boolval )
356 rc = ber_get_int( ber, &longbool );
363 ber_first_element( BerElement *ber, unsigned int *len, char **last )
366 if ( ber_skip_tag( ber, len ) == LBER_DEFAULT ) {
370 *last = ber->ber_ptr + *len;
372 if ( *last == ber->ber_ptr ) {
376 return( ber_peek_tag( ber, len ) );
380 ber_next_element( BerElement *ber, unsigned int *len, char *last )
382 if ( ber->ber_ptr == last ) {
386 return( ber_peek_tag( ber, len ) );
393 BerElement *ber, char *fmt, ... )
401 BerElement *ber;
415 ber = va_arg( ap, BerElement * );
421 (void) fprintf( stderr, catgets(slapdcat, 1, 73, "ber_scanf fmt (%s) ber:\n"), fmt );
422 ber_dump( ber, 1 );
430 rc = ber_get_stringa( ber, ss );
435 rc = ber_get_boolean( ber, i );
441 rc = ber_get_int( ber, l );
446 rc = ber_peek_tag( ber, (unsigned int *)l );
450 rc = ber_get_null( ber );
456 rc = ber_get_stringb( ber, s, (unsigned int *)l );
461 ber_peek_tag( ber, &bval->bv_len );
462 rc = ber_get_stringa( ber, &bval->bv_val );
467 rc = ber_get_stringal( ber, bvp );
473 rc = ber_get_bitstringa( ber, ss, (unsigned int *)l );
478 *i = rc = ber_peek_tag( ber, &len );
483 *i = rc = ber_skip_tag( ber, &len );
490 for ( tag = ber_first_element( ber, &len, &last );
492 tag = ber_next_element( ber, &len, last ) ) {
500 rc = ber_get_stringa( ber, &((*sss)[j]) );
511 for ( tag = ber_first_element( ber, &len, &last );
513 tag = ber_next_element( ber, &len, last ) ) {
521 rc = ber_get_stringal( ber, &((*bv)[j]) );
529 if ( (rc = ber_skip_tag( ber, &len )) == LBER_DEFAULT )
531 ber->ber_ptr += len;
537 rc = ber_skip_tag( ber, &len );
599 ber_set_string_translators( BerElement *ber, BERTranslateProc encode_proc,
602 ber->ber_encode_translate_proc = encode_proc;
603 ber->ber_decode_translate_proc = decode_proc;
607 int ber_flatten(BerElement *ber, struct berval **bvPtr)
612 if ((ber == NULL) || (ber->ber_buf == NULL))
615 len = ber->ber_ptr - ber->ber_buf;
624 SAFEMEMCPY(bv->bv_val, ber->ber_buf, (size_t)len);