Example #1
0
BOOL ber_read_enumerated(wStream* s, BYTE* enumerated, BYTE count)
{
	int length;

	if (!ber_read_universal_tag(s, BER_TAG_ENUMERATED, FALSE) ||
		!ber_read_length(s, &length))
		return FALSE;

	if (length != 1 || Stream_GetRemainingLength(s) < 1)
		return FALSE;

	Stream_Read_UINT8(s, *enumerated);

	/* check that enumerated value falls within expected range */
	if (*enumerated + 1 > count)
		return FALSE;

	return TRUE;
}
Example #2
0
boolean ber_read_octet_string_tag(STREAM* s, int* length)
{
	ber_read_universal_tag(s, BER_TAG_OCTET_STRING, false);
	ber_read_length(s, length);
	return true;
}
Example #3
0
BOOL ber_read_octet_string_tag(wStream* s, int* length)
{
	return
		ber_read_universal_tag(s, BER_TAG_OCTET_STRING, FALSE) &&
		ber_read_length(s, length);
}
Example #4
0
boolean ber_read_integer_length(STREAM* s, int* length)
{
	ber_read_universal_tag(s, BER_TAG_INTEGER, false);
	ber_read_length(s, length);
	return true;
}