// Build extra and return public Extra Build(bool Compress = false) { // Encode object list to hex data foreach (object Child in Extra.Children) { byte[] Children = Encoding.ObjectToByteArray(Child); if (Compress) { Children = Encoding.CompressByteArray(Children); } Extra.Hex += "02" + Encoding.IntegerToHexString(Children.Length) + Encoding.ByteArrayToHexString(Children); } // Check extra length against block size if (Extra.Hex.Length / 2 > Encoding.BlockSizeLimit()) { throw new Exception("Extra size exceeds block limit"); } // Output extra return(Extra); }