1/*
2 * Dropbear - a SSH2 server
3 *
4 * Copyright (c) 2002,2003 Matt Johnston
5 * All rights reserved.
6 *
7 * Permission is hereby granted, free of charge, to any person obtaining a copy
8 * of this software and associated documentation files (the "Software"), to deal
9 * in the Software without restriction, including without limitation the rights
10 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 * copies of the Software, and to permit persons to whom the Software is
12 * furnished to do so, subject to the following conditions:
13 *
14 * The above copyright notice and this permission notice shall be included in
15 * all copies or substantial portions of the Software.
16 *
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23 * SOFTWARE. */
24
25/* This file contains the various numbers in the protocol */
26
27
28/* message numbers */
29#define SSH_MSG_DISCONNECT             1
30#define SSH_MSG_IGNORE                 2
31#define SSH_MSG_UNIMPLEMENTED          3
32#define SSH_MSG_DEBUG                  4
33#define SSH_MSG_SERVICE_REQUEST        5
34#define SSH_MSG_SERVICE_ACCEPT         6
35#define SSH_MSG_KEXINIT                20
36#define SSH_MSG_NEWKEYS                21
37#define SSH_MSG_KEXDH_INIT             30
38#define SSH_MSG_KEXDH_REPLY            31
39
40/* userauth message numbers */
41#define SSH_MSG_USERAUTH_REQUEST            50
42#define SSH_MSG_USERAUTH_FAILURE            51
43#define SSH_MSG_USERAUTH_SUCCESS            52
44#define SSH_MSG_USERAUTH_BANNER             53
45
46/* packets 60-79 are method-specific, aren't one-one mapping */
47#define SSH_MSG_USERAUTH_SPECIFIC_60   60
48
49#define SSH_MSG_USERAUTH_PASSWD_CHANGEREQ   60
50
51#define SSH_MSG_USERAUTH_PK_OK				60
52
53/* keyboard interactive auth */
54#define SSH_MSG_USERAUTH_INFO_REQUEST           60
55#define SSH_MSG_USERAUTH_INFO_RESPONSE          61
56
57
58/* If adding numbers here, check MAX_UNAUTH_PACKET_TYPE in process-packet.c
59 * is still valid */
60
61/* connect message numbers */
62#define SSH_MSG_GLOBAL_REQUEST                  80
63#define SSH_MSG_REQUEST_SUCCESS                 81
64#define SSH_MSG_REQUEST_FAILURE                 82
65#define SSH_MSG_CHANNEL_OPEN                    90
66#define SSH_MSG_CHANNEL_OPEN_CONFIRMATION       91
67#define SSH_MSG_CHANNEL_OPEN_FAILURE            92
68#define SSH_MSG_CHANNEL_WINDOW_ADJUST           93
69#define SSH_MSG_CHANNEL_DATA                    94
70#define SSH_MSG_CHANNEL_EXTENDED_DATA           95
71#define SSH_MSG_CHANNEL_EOF                     96
72#define SSH_MSG_CHANNEL_CLOSE                   97
73#define SSH_MSG_CHANNEL_REQUEST                 98
74#define SSH_MSG_CHANNEL_SUCCESS                 99
75#define SSH_MSG_CHANNEL_FAILURE                 100
76
77/* extended data types */
78#define SSH_EXTENDED_DATA_STDERR	1
79
80/* disconnect codes */
81#define SSH_DISCONNECT_HOST_NOT_ALLOWED_TO_CONNECT      1
82#define SSH_DISCONNECT_PROTOCOL_ERROR                   2
83#define SSH_DISCONNECT_KEY_EXCHANGE_FAILED              3
84#define SSH_DISCONNECT_RESERVED                         4
85#define SSH_DISCONNECT_MAC_ERROR                        5
86#define SSH_DISCONNECT_COMPRESSION_ERROR                6
87#define SSH_DISCONNECT_SERVICE_NOT_AVAILABLE            7
88#define SSH_DISCONNECT_PROTOCOL_VERSION_NOT_SUPPORTED   8
89#define SSH_DISCONNECT_HOST_KEY_NOT_VERIFIABLE          9
90#define SSH_DISCONNECT_CONNECTION_LOST                 10
91#define SSH_DISCONNECT_BY_APPLICATION                  11
92#define SSH_DISCONNECT_TOO_MANY_CONNECTIONS            12
93#define SSH_DISCONNECT_AUTH_CANCELLED_BY_USER          13
94#define SSH_DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE  14
95#define SSH_DISCONNECT_ILLEGAL_USER_NAME               15
96
97/* service types */
98#define SSH_SERVICE_USERAUTH "ssh-userauth"
99#define SSH_SERVICE_USERAUTH_LEN 12
100#define SSH_SERVICE_CONNECTION "ssh-connection"
101#define SSH_SERVICE_CONNECTION_LEN 14
102
103/* public key types */
104#define SSH_SIGNKEY_DSS "ssh-dss"
105#define SSH_SIGNKEY_DSS_LEN 7
106#define SSH_SIGNKEY_RSA "ssh-rsa"
107#define SSH_SIGNKEY_RSA_LEN 7
108