[cifs-protocol] [MS-XCA] LZ77+ Huffman: questions about blocks
douglas.bagnall at catalyst.net.nz
Fri Oct 14 04:57:25 UTC 2022
Does the beginning of the second and subsequent blocks break the bitstream,
starting again at a byte boundary after the new Huffman table?
The question is best explained by analogy to the way long lengths are handled in
matches. Suppose we have a match symbol in the middle of a bitstream, and the
match is a long one, requiring the reading of an extra byte:
ijklmnop abcDEFgh [distance] qrs...
[match 1, 15]
Here abc, ghi.. are the sequence of bits in the stream around the match DEF,
which is read in alternating bytes by little-endian rules, and the distance is
plonked in the middle of the stream as an individual byte. The stream just flows
around it, so gh-ijklmnop are interpreted after [distance].
Now, if DEF instead ended the block:
ijklmnop abcDEFgh [new Huffman table] qrs...
[ends the block (64k)]
would the bits gh-jklmnop be interpreted using the new Huffman table, as part of
the new block, or would those bits be dropped?
Multi-block examples would of course be helpful.
More information about the cifs-protocol