RFC 4251: Section 5
A string containing a comma-separated list of names. A name-list
is represented as a uint32 containing its length (number of bytes
that follow) followed by a comma-separated list of zero or more
names. A name MUST have a non-zero length, and it MUST NOT
contain a comma (","). As this is a list of names, all of the
elements contained are names and MUST be in US-ASCII. Context may
impose additional restrictions on the names. For example, the
names in a name-list may have to be a list of valid algorithm
identifiers (see Section 6 below), or a list of [RFC3066] language
tags. The order of the names in a name-list may or may not be
significant. Again, this depends on the context in which the list
is used. Terminating null characters MUST NOT be used, neither
for the individual names, nor for the list as a whole.
Examples:
value representation (hex)
----- --------------------
(), the empty name-list 00 00 00 00
("zlib") 00 00 00 04 7a 6c 69 62
("zlib,none") 00 00 00 09 7a 6c 69 62 2c 6e 6f 6e
RFC 4251: 5. Data Type Representations Used in the SSH Protocols
Arbitrary length binary string. Strings are allowed to contain
arbitrary binary data, including null characters and 8-bit
characters. They are stored as a uint32 containing its length
(number of bytes that follow) and zero (= empty string) or more
bytes that are the value of the string. Terminating null
characters are not used.
Strings are also used to store text. In that case, US-ASCII is
used for internal names, and ISO-10646 UTF-8 for text that might
be displayed to the user. The terminating null character SHOULD
NOT normally be stored in the string. For example: the US-ASCII
string "testing" is represented as 00 00 00 07 t e s t i n g. The
UTF-8 mapping does not alter the encoding of US-ASCII characters.