ssh2.h revision 76259
160573Skris/*
265668Skris * Copyright (c) 2000 Markus Friedl.  All rights reserved.
365668Skris *
465668Skris * Redistribution and use in source and binary forms, with or without
565668Skris * modification, are permitted provided that the following conditions
665668Skris * are met:
765668Skris * 1. Redistributions of source code must retain the above copyright
865668Skris *    notice, this list of conditions and the following disclaimer.
965668Skris * 2. Redistributions in binary form must reproduce the above copyright
1065668Skris *    notice, this list of conditions and the following disclaimer in the
1165668Skris *    documentation and/or other materials provided with the distribution.
1265668Skris *
1365668Skris * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
1465668Skris * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
1565668Skris * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
1665668Skris * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
1765668Skris * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
1865668Skris * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
1965668Skris * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
2065668Skris * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
2165668Skris * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
2265668Skris * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2365668Skris */
2465668Skris
2565668Skris/*
2661209Skris * draft-ietf-secsh-architecture-05.txt
2760573Skris *
2860573Skris *   Transport layer protocol:
2960573Skris *
3060573Skris *     1-19     Transport layer generic (e.g. disconnect, ignore, debug,
3160573Skris *              etc)
3260573Skris *     20-29    Algorithm negotiation
3360573Skris *     30-49    Key exchange method specific (numbers can be reused for
3460573Skris *              different authentication methods)
3560573Skris *
3660573Skris *   User authentication protocol:
3760573Skris *
3860573Skris *     50-59    User authentication generic
3960573Skris *     60-79    User authentication method specific (numbers can be reused
4060573Skris *              for different authentication methods)
4160573Skris *
4260573Skris *   Connection protocol:
4360573Skris *
4460573Skris *     80-89    Connection protocol generic
4560573Skris *     90-127   Channel related messages
4660573Skris *
4760573Skris *   Reserved for client protocols:
4860573Skris *
4960573Skris *     128-191  Reserved
5060573Skris *
5160573Skris *   Local extensions:
5260573Skris *
5360573Skris *     192-255  Local extensions
5460573Skris */
5576259Sgreen/* RCSID("$OpenBSD: ssh2.h,v 1.6 2001/03/27 17:46:49 provos Exp $"); */
5660573Skris
5760573Skris/* transport layer: generic */
5860573Skris
5960573Skris#define SSH2_MSG_DISCONNECT				1
6060573Skris#define SSH2_MSG_IGNORE					2
6160573Skris#define SSH2_MSG_UNIMPLEMENTED				3
6260573Skris#define SSH2_MSG_DEBUG					4
6360573Skris#define SSH2_MSG_SERVICE_REQUEST			5
6460573Skris#define SSH2_MSG_SERVICE_ACCEPT				6
6560573Skris
6660573Skris/* transport layer: alg negotiation */
6760573Skris
6860573Skris#define SSH2_MSG_KEXINIT				20
6960573Skris#define SSH2_MSG_NEWKEYS				21
7060573Skris
7160573Skris/* transport layer: kex specific messages, can be reused */
7260573Skris
7360573Skris#define SSH2_MSG_KEXDH_INIT				30
7460573Skris#define SSH2_MSG_KEXDH_REPLY				31
7560573Skris
7669587Sgreen/* dh-group-exchange */
7776259Sgreen#define SSH2_MSG_KEX_DH_GEX_REQUEST_OLD			30
7869587Sgreen#define SSH2_MSG_KEX_DH_GEX_GROUP			31
7969587Sgreen#define SSH2_MSG_KEX_DH_GEX_INIT			32
8069587Sgreen#define SSH2_MSG_KEX_DH_GEX_REPLY			33
8176259Sgreen#define SSH2_MSG_KEX_DH_GEX_REQUEST			34
8269587Sgreen
8360573Skris/* user authentication: generic */
8460573Skris
8560573Skris#define SSH2_MSG_USERAUTH_REQUEST			50
8660573Skris#define SSH2_MSG_USERAUTH_FAILURE			51
8760573Skris#define SSH2_MSG_USERAUTH_SUCCESS			52
8860573Skris#define SSH2_MSG_USERAUTH_BANNER			53
8960573Skris
9060573Skris/* user authentication: method specific, can be reused */
9160573Skris
9260573Skris#define SSH2_MSG_USERAUTH_PK_OK				60
9360573Skris#define SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ		60
9460573Skris#define SSH2_MSG_USERAUTH_INFO_REQUEST			60
9560573Skris#define SSH2_MSG_USERAUTH_INFO_RESPONSE			61
9660573Skris
9760573Skris/* connection protocol: generic */
9860573Skris
9960573Skris#define SSH2_MSG_GLOBAL_REQUEST				80
10060573Skris#define SSH2_MSG_REQUEST_SUCCESS			81
10160573Skris#define SSH2_MSG_REQUEST_FAILURE			82
10260573Skris
10360573Skris/* channel related messages */
10460573Skris
10560573Skris#define SSH2_MSG_CHANNEL_OPEN				90
10660573Skris#define SSH2_MSG_CHANNEL_OPEN_CONFIRMATION		91
10760573Skris#define SSH2_MSG_CHANNEL_OPEN_FAILURE			92
10860573Skris#define SSH2_MSG_CHANNEL_WINDOW_ADJUST			93
10960573Skris#define SSH2_MSG_CHANNEL_DATA				94
11060573Skris#define SSH2_MSG_CHANNEL_EXTENDED_DATA			95
11160573Skris#define SSH2_MSG_CHANNEL_EOF				96
11260573Skris#define SSH2_MSG_CHANNEL_CLOSE				97
11360573Skris#define SSH2_MSG_CHANNEL_REQUEST			98
11460573Skris#define SSH2_MSG_CHANNEL_SUCCESS			99
11560573Skris#define SSH2_MSG_CHANNEL_FAILURE			100
11660573Skris
11760573Skris/* disconnect reason code */
11860573Skris
11960573Skris#define SSH2_DISCONNECT_HOST_NOT_ALLOWED_TO_CONNECT	1
12060573Skris#define SSH2_DISCONNECT_PROTOCOL_ERROR			2
12160573Skris#define SSH2_DISCONNECT_KEY_EXCHANGE_FAILED		3
12260573Skris#define SSH2_DISCONNECT_HOST_AUTHENTICATION_FAILED	4
12361209Skris#define SSH2_DISCONNECT_RESERVED			4
12460573Skris#define SSH2_DISCONNECT_MAC_ERROR			5
12560573Skris#define SSH2_DISCONNECT_COMPRESSION_ERROR		6
12660573Skris#define SSH2_DISCONNECT_SERVICE_NOT_AVAILABLE		7
12760573Skris#define SSH2_DISCONNECT_PROTOCOL_VERSION_NOT_SUPPORTED	8
12860573Skris#define SSH2_DISCONNECT_HOST_KEY_NOT_VERIFIABLE		9
12960573Skris#define SSH2_DISCONNECT_CONNECTION_LOST			10
13060573Skris#define SSH2_DISCONNECT_BY_APPLICATION			11
13161209Skris#define SSH2_DISCONNECT_TOO_MANY_CONNECTIONS		12
13261209Skris#define SSH2_DISCONNECT_AUTH_CANCELLED_BY_USER		13
13361209Skris#define SSH2_DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE	14
13461209Skris#define SSH2_DISCONNECT_ILLEGAL_USER_NAME		15
13560573Skris
13660573Skris/* misc */
13760573Skris
13860573Skris#define SSH2_OPEN_ADMINISTRATIVELY_PROHIBITED		1
13960573Skris#define SSH2_OPEN_CONNECT_FAILED			2
14060573Skris#define SSH2_OPEN_UNKNOWN_CHANNEL_TYPE			3
14160573Skris#define SSH2_OPEN_RESOURCE_SHORTAGE			4
14260573Skris
14360573Skris#define SSH2_EXTENDED_DATA_STDERR			1
144