Skip to main content

8. Protocol Numbers

The protocol number tables from Section 8 are preserved below.

8.  Protocol Numbers

8.1.  Message Type Numbers

   The following numbers are used as message types for requests from the
   client to the agent.

             +------------------------------------------+----+
             | SSH_AGENTC_REQUEST_IDENTITIES            | 11 |
             +------------------------------------------+----+
             | SSH_AGENTC_SIGN_REQUEST                  | 13 |
             +------------------------------------------+----+
             | SSH_AGENTC_ADD_IDENTITY                  | 17 |
             +------------------------------------------+----+
             | SSH_AGENTC_REMOVE_IDENTITY               | 18 |
             +------------------------------------------+----+
             | SSH_AGENTC_REMOVE_ALL_IDENTITIES         | 19 |
             +------------------------------------------+----+
             | SSH_AGENTC_ADD_SMARTCARD_KEY             | 20 |
             +------------------------------------------+----+
             | SSH_AGENTC_REMOVE_SMARTCARD_KEY          | 21 |
             +------------------------------------------+----+
             | SSH_AGENTC_LOCK                          | 22 |
             +------------------------------------------+----+
             | SSH_AGENTC_UNLOCK                        | 23 |
             +------------------------------------------+----+
             | SSH_AGENTC_ADD_ID_CONSTRAINED            | 25 |
             +------------------------------------------+----+
             | SSH_AGENTC_ADD_SMARTCARD_KEY_CONSTRAINED | 26 |
             +------------------------------------------+----+
             | SSH_AGENTC_EXTENSION                     | 27 |
             +------------------------------------------+----+

                                  Table 1

   The following numbers are used as message types for replies from the
   agent to the client.

                   +------------------------------+----+
                   | SSH_AGENT_FAILURE            | 5  |
                   +------------------------------+----+
                   | SSH_AGENT_SUCCESS            | 6  |
                   +------------------------------+----+
                   | SSH_AGENT_IDENTITIES_ANSWER  | 12 |
                   +------------------------------+----+
                   | SSH_AGENT_SIGN_RESPONSE      | 14 |
                   +------------------------------+----+
                   | SSH_AGENT_EXTENSION_FAILURE  | 28 |
                   +------------------------------+----+
                   | SSH_AGENT_EXTENSION_RESPONSE | 29 |
                   +------------------------------+----+

                                  Table 2

8.1.1.  Reserved Message Type Numbers

   The following message type numbers are reserved for implementations
   that implement support for the legacy SSH protocol version 1: 1-4,
   7-10, 15-16, and 24 (inclusive).  These message numbers MAY be used
   by an implementation supporting the legacy protocol but MUST NOT be
   reused otherwise.

   Message number 0 is also reserved and MUST NOT be used.

   The range of message numbers 240-255 is reserved for Private Use
   extensions to the agent protocol and MUST NOT be used by generic
   implementations (see [RFC8126] for more information on Private Use).

8.2.  Constraint Identifiers

   The following numbers are used to identify key constraints.  These
   are only used in key constraints and are not sent as message numbers.

                  +-------------------------------+-----+
                  | SSH_AGENT_CONSTRAIN_LIFETIME  | 1   |
                  +-------------------------------+-----+
                  | SSH_AGENT_CONSTRAIN_CONFIRM   | 2   |
                  +-------------------------------+-----+
                  | SSH_AGENT_CONSTRAIN_EXTENSION | 255 |
                  +-------------------------------+-----+

                                  Table 3

   The constraint identifier 0 is reserved.

8.3.  Signature Flags

   The following numbers may be present in signature request
   (SSH_AGENTC_SIGN_REQUEST) messages.  These flags form a bit field by
   taking the logical OR of zero or more flags.

                  +------------------------+------------+
                  | SSH_AGENT_RSA_SHA2_256 | 0x00000002 |
                  +------------------------+------------+
                  | SSH_AGENT_RSA_SHA2_512 | 0x00000004 |
                  +------------------------+------------+

                                  Table 4

   The flag value 1 is reserved for historical implementations.