/// <summary> /// Serializes a SerializedBiscuit to a byte array /// </summary> /// <returns></returns> public Either <Error, byte[]> Serialize() { Format.Schema.Biscuit biscuit = new Format.Schema.Biscuit() { Signature = signature.Serialize() }; for (int i = 0; i < keys.Count; i++) { biscuit.Keys.Add(ByteString.CopyFrom(keys[i].Compress().ToByteArray())); } biscuit.Authority = ByteString.CopyFrom(authority); for (int i = 0; i < blocks.Count; i++) { biscuit.Blocks.Add(ByteString.CopyFrom(blocks[i])); } try { using MemoryStream stream = new MemoryStream(); biscuit.WriteTo(stream); byte[] data = stream.ToArray(); return(data); } catch (IOException e) { return(new SerializationError(e.ToString())); } }