<?xml version="1.0"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
    <!ENTITY rfc2119 PUBLIC ''
        'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml'>
    <!ENTITY xml2rfc PUBLIC ''
        'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2629.xml'>
    <!ENTITY sshconn PUBLIC ''
        'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4254.xml'>
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="6"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" ipr="trust200902" docName="draft-sgtatham-secsh-iutf8-02">
  <front>
    <title abbrev="IUTF8 Terminal Mode in SSH">IUTF8 Terminal Mode in Secure Shell (SSH)</title>
    <author initials="S.G." surname="Tatham" fullname="Simon Tatham">
      <organization abbrev="PuTTY">PuTTY</organization>
      <address>
        <email>anakin@pobox.com</email>
      </address>
    </author>
    <author initials="D.A." surname="Tucker" fullname="Darren Tucker">
      <organization abbrev="OpenSSH">OpenSSH</organization>
      <address>
        <email>dtucker@openssh.com</email>
      </address>
    </author>
    <date month="July" year="2016" />
    <area>Applications</area>
    <keyword>Secure Shell</keyword>
    <keyword>SSH</keyword>
    <abstract>
      <t>
        This document specifies a value for the widely used IUTF8 bit
        in the Secure Shell terminal modes encoding.
      </t>
    </abstract>
  </front>
  <middle>
    <section title="Introduction">
      <t>
        The Secure Shell (SSH) connection protocol <xref
        target="RFC4254" /> provides an encoding for terminal modes,
        used in the "pty-req" channel request type.
      </t>
      <t>
        A commonly used terminal mode is IUTF8, which indicates that
        the terminal driver should assume that terminal I/O uses the
        UTF-8 character encoding <xref target="ISO10646" />. This is
        typically used by the kernel's terminal driver on the server
        to decide how many bytes of input to treat as a single logical
        character during line editing.
      </t>
      <t>
        SSH currently does not provide an encoding for IUTF8. This
        document specifies one.
      </t>
    </section>
    <section title="Conventions Used in this Document">
      <t>
        The key phrases "SHOULD" and "MAY" in this document are to be
        interpreted as described in <xref target="RFC2119"/>.
      </t>
    </section>
    <section title="New terminal mode">
      <t>
        The opcode value 42 is defined for the IUTF8 terminal mode.
      </t>
      <t>
        As <xref target="RFC4254"/> section 8 specifies for all
        opcodes in the range 1 to 159, it is therefore followed by a
        single uint32 argument. The value 0 indicates that the IUTF8
        mode is disabled, and the value 1 indicates that it is
        enabled.
      </t>
      <t>
        As with all other encoded terminal modes, the client SHOULD
        transmit a value for this mode if it knows about one, and the
        server MAY ignore it.
      </t>
    </section>
    <section title="IANA Considerations">
      <t>
        This document augments the "Encoding of Terminal Modes" list
        in section 8 of <xref target="RFC4254"/>.
      </t>
      <t>
        IANA is requested to update the SSH encoded terminal modes
        registry with the following additional entry:
      </t>
      <figure anchor="figure.iana">
        <artwork>
opcode  mnemonic       description
------  --------       -----------
42      IUTF8          Terminal input and output is assumed to be
                        encoded in UTF-8.
        </artwork>
      </figure>
    </section>
    <section title="Security Considerations">
      <t>
        The security considerations of <xref target="RFC4254"/> apply.
        This additional terminal mode encoding is believed to have no
        security implications differing from the existing set of
        encoded terminal modes.
      </t>
    </section>
    <section title="Acknowledgements">
      <t>
        The authors are indebted to Colin Watson for originally
        suggesting this terminal mode in 2006, and David Madore and
        Jakub Jelen for prior implementation efforts.
      </t>
      <t>
        This document was written using the xml2rfc tool described in
        <xref target="RFC2629"/>.
      </t>
    </section>
  </middle>
  <back>
    <references title="Normative References">
      &rfc2119;
      &sshconn;
    </references>
    <references title="Informative References">
      &xml2rfc;
      <reference anchor="ISO10646">
        <front>
          <title>Information technology - Universal Coded Character Set (UCS)</title>
          <author>
            <organization>International Organization for Standardization</organization>
          </author>
          <date month="September" year="2014" />
        </front>
        <seriesInfo name="ISO/IEC" value="Standard 10646:2014" />
      </reference>
    </references>
  </back>
</rfc>
