public static int EncodeTag(IBerOutput output, BerTag tag) { var number = tag.Number; var size = 1; tag.Preamble &= 0xE0; if(number < 0x1F) { output.WriteByte((byte)(tag.Preamble | (number & 0x1F))); } else { output.WriteByte((byte)(tag.Preamble | 0x1F)); size += EncodeMultiByteInteger(output, number); } return size; }
static void EncodeHeader(IBerOutput output, BerTag tag, int length) { BerEncoding.EncodeTag(output, tag); BerEncoding.EncodeLength(output, length); }