private static byte[] SerializeManifest(FileDatabaseManifest fileDatabaseManifest, Config config)
        {
            using (MemoryStream serializedManifestStream = new MemoryStream(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(fileDatabaseManifest))))
                using (MemoryStream compressedMemoryStream = new MemoryStream())
                {
                    // It's very important that we dispose of the GZipStream before reading from the memory stream
                    using (GZipStream compressionStream = new GZipStream(compressedMemoryStream, CompressionMode.Compress, true))
                    {
                        serializedManifestStream.CopyTo(compressionStream);
                    }

                    return(EncryptionHelpers.EncryptBytes(compressedMemoryStream.ToArray(), config.EncryptionKey, config.InitializationVector));
                }
        }