When I transcribed the code into this document, I misread 'put_data' as 'put_string' in several places, and documented SSH-style string length headers that do not actually exist in the format.