Acrescentando aqui uma ajuda para quem precisar. A parte do Gzip
Em C#
public string CompressGzip2(string svalue)
{
byte[] compressedBytes;
using (var uncompressedStream = new MemoryStream(Encoding.UTF8.GetBytes(svalue)))
{
using (var compressedStream = new MemoryStream())
{
using (var compressorStream = new GZipStream(compressedStream, CompressionMode.Compress))
{
uncompressedStream.CopyTo(compressorStream);
}
compressedBytes = compressedStream.ToArray();
}
}
return Convert.ToBase64String(compressedBytes);
}
---------------------
Em Vb.Net
Public Function CompressGzip2(ByVal svalue As String) As String
Dim compressedBytes As Byte()
Using uncompressedStream = New MemoryStream(Encoding.UTF8.GetBytes(svalue))
Using compressedStream = New MemoryStream()
Using compressorStream = New GZipStream(compressedStream, CompressionMode.Compress)
uncompressedStream.CopyTo(compressorStream)
End Using
compressedBytes = compressedStream.ToArray()
End Using
End Using
Return Convert.ToBase64String(compressedBytes)
End Function
Não é necessário fazer nada, apenas pegar o XML q começa com a tag CTe e enviar para a compressão, após, encapsular o zipado dentro do envelope