2 * Dropbear - a SSH2 server
4 * Copyright (c) 2002,2003 Matt Johnston
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:
14 * The above copyright notice and this permission notice shall be included in
15 * all copies or substantial portions of the Software.
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
25 /* This file contains the various numbers in the protocol */
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
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
46 /* packets 60-79 are method-specific, aren't one-one mapping */
47 #define SSH_MSG_USERAUTH_SPECIFIC_60 60
49 #define SSH_MSG_USERAUTH_PASSWD_CHANGEREQ 60
51 #define SSH_MSG_USERAUTH_PK_OK 60
53 /* keyboard interactive auth */
54 #define SSH_MSG_USERAUTH_INFO_REQUEST 60
55 #define SSH_MSG_USERAUTH_INFO_RESPONSE 61
58 /* If adding numbers here, check MAX_UNAUTH_PACKET_TYPE in process-packet.c
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
77 /* extended data types */
78 #define SSH_EXTENDED_DATA_STDERR 1
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
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
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
109 /* Agent commands. These aren't part of the spec, and are defined
110 * only on the openssh implementation. */
111 #define SSH_AGENT_FAILURE 5
112 #define SSH_AGENT_SUCCESS 6
113 #define SSH2_AGENTC_REQUEST_IDENTITIES 11
114 #define SSH2_AGENT_IDENTITIES_ANSWER 12
115 #define SSH2_AGENTC_SIGN_REQUEST 13
116 #define SSH2_AGENT_SIGN_RESPONSE 14
118 #define SSH2_AGENT_FAILURE 30