Lines Matching refs:ber

40 /* decode.c - ber input decoding routines */
46 * Note: ber_get_tag() only uses the ber_end and ber_ptr elements of ber.
53 ber_get_tag( BerElement *ber )
60 if ( ber_read( ber, (char *) &xbyte, 1 ) != 1 )
69 if ( ber_read( ber, (char *) &xbyte, 1 ) != 1 )
87 * Note: ber_skip_tag() only uses the ber_end and ber_ptr elements of ber.
93 ber_skip_tag( BerElement *ber, ber_len_t *len )
101 * Any ber element looks like this: tag length contents.
114 if ( (tag = ber_get_tag( ber )) == LBER_DEFAULT )
125 if ( ber_read( ber, (char *) &lc, 1 ) != 1 )
132 if ( ber_read( ber, (char *) &netlen + diff, noctets )
145 * Note: Previously, we passed the "ber" parameter directly to ber_skip_tag(),
147 * of the fact that the only ber structure elements touched by ber_skip_tag()
152 ber_peek_tag( BerElement *ber, ber_len_t *len )
156 bercopy.ber_end = ber->ber_end;
157 bercopy.ber_ptr = ber->ber_ptr;
162 ber_getnint( BerElement *ber, ber_int_t *num, ber_slen_t len )
178 if ( ber_read( ber, (char *) buffer, len ) != len )
198 ber_get_int( BerElement *ber, ber_int_t *num )
203 if ( (tag = ber_skip_tag( ber, &len )) == LBER_DEFAULT )
210 if ( ber_getnint( ber, num, (int)len ) != (ber_slen_t)len )
218 ber_get_stringb( BerElement *ber, char *buf, ber_len_t *len )
226 if ( (tag = ber_skip_tag( ber, &datalen )) == LBER_DEFAULT )
235 if ( ber_read( ber, buf, datalen ) != (ber_slen_t) datalen )
241 if ( datalen > 0 && ( ber->ber_options & LBER_OPT_TRANSLATE_STRINGS )
242 != 0 && ber->ber_decode_translate_proc != NULL ) {
245 if ( (*(ber->ber_decode_translate_proc))( &transbuf, &datalen,
265 ber_get_stringa( BerElement *ber, char **buf )
270 if ( (tag = ber_skip_tag( ber, &datalen )) == LBER_DEFAULT )
279 if ( ber_read( ber, *buf, datalen ) != (ber_slen_t) datalen )
284 if ( datalen > 0 && ( ber->ber_options & LBER_OPT_TRANSLATE_STRINGS )
285 != 0 && ber->ber_decode_translate_proc != NULL ) {
287 if ( (*(ber->ber_decode_translate_proc))( buf, &datalen, 1 )
300 ber_get_stringal( BerElement *ber, struct berval **bv )
310 if ( (tag = ber_skip_tag( ber, &len )) == LBER_DEFAULT ) {
322 if ( ber_read( ber, (*bv)->bv_val, len ) != (ber_slen_t) len )
328 if ( len > 0 && ( ber->ber_options & LBER_OPT_TRANSLATE_STRINGS ) != 0
329 && ber->ber_decode_translate_proc != NULL ) {
331 if ( (*(ber->ber_decode_translate_proc))( &((*bv)->bv_val),
345 ber_get_bitstringa( BerElement *ber, char **buf, ber_len_t *blen )
351 if ( (tag = ber_skip_tag( ber, &datalen )) == LBER_DEFAULT )
358 if ( ber_read( ber, (char *)&unusedbits, 1 ) != 1 )
364 if ( ber_read( ber, *buf, datalen ) != (ber_slen_t) datalen )
373 ber_get_null( BerElement *ber )
378 if ( (tag = ber_skip_tag( ber, &len )) == LBER_DEFAULT )
389 ber_get_boolean( BerElement *ber, int *boolval )
394 rc = ber_get_int( ber, &longbool );
402 ber_first_element( BerElement *ber, ber_len_t *len, char **last )
405 if ( ber_skip_tag( ber, len ) == LBER_DEFAULT ) {
409 *last = ber->ber_ptr + *len;
411 if ( *last == ber->ber_ptr ) {
415 return( ber_peek_tag( ber, len ) );
420 ber_next_element( BerElement *ber, ber_len_t *len, char *last )
422 if ( ber->ber_ptr == last ) {
426 return( ber_peek_tag( ber, len ) );
432 ber_scanf( BerElement *ber, const char *fmt, ... )
449 sprintf( msg, "ber_scanf fmt (%s) ber:\n", fmt );
451 ber_dump( ber, 1 );
459 rc = ber_get_stringa( ber, ss );
464 rc = ber_get_boolean( ber, i );
470 rc = ber_get_int( ber, l );
475 rc = ber_peek_tag( ber, (ber_len_t *)l );
479 rc = ber_get_null( ber );
485 rc = ber_get_stringb( ber, s, (ber_len_t *)l );
490 ber_peek_tag( ber, &bval->bv_len );
491 rc = ber_get_stringa( ber, &bval->bv_val );
496 rc = ber_get_stringal( ber, bvp );
502 rc = ber_get_bitstringa( ber, ss, (ber_len_t *)l );
507 *t = rc = ber_peek_tag( ber, &len );
512 *t = rc = ber_skip_tag( ber, &len );
520 for ( tag = ber_first_element( ber, &len, &last );
523 tag = ber_next_element( ber, &len, last ) ) {
535 rc = ber_get_stringa( ber, &((*sss)[j]) );
550 for ( tag = ber_first_element( ber, &len, &last );
553 tag = ber_next_element( ber, &len, last ) ) {
562 rc = ber_get_stringal( ber, &((*bv)[j]) );
574 if ( (rc = ber_skip_tag( ber, &len )) == LBER_DEFAULT )
576 ber->ber_ptr += len;
582 rc = ber_skip_tag( ber, &len );
762 BerElement *ber,
767 ber->ber_encode_translate_proc = encode_proc;
768 ber->ber_decode_translate_proc = decode_proc;