ssh2.h revision 65668
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 */
5565668Skris/* RCSID("$OpenBSD: ssh2.h,v 1.4 2000/09/07 20:27:54 deraadt 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
7660573Skris/* user authentication: generic */
7760573Skris
7860573Skris#define SSH2_MSG_USERAUTH_REQUEST			50
7960573Skris#define SSH2_MSG_USERAUTH_FAILURE			51
8060573Skris#define SSH2_MSG_USERAUTH_SUCCESS			52
8160573Skris#define SSH2_MSG_USERAUTH_BANNER			53
8260573Skris
8360573Skris/* user authentication: method specific, can be reused */
8460573Skris
8560573Skris#define SSH2_MSG_USERAUTH_PK_OK				60
8660573Skris#define SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ		60
8760573Skris#define SSH2_MSG_USERAUTH_INFO_REQUEST			60
8860573Skris#define SSH2_MSG_USERAUTH_INFO_RESPONSE			61
8960573Skris
9060573Skris/* connection protocol: generic */
9160573Skris
9260573Skris#define SSH2_MSG_GLOBAL_REQUEST				80
9360573Skris#define SSH2_MSG_REQUEST_SUCCESS			81
9460573Skris#define SSH2_MSG_REQUEST_FAILURE			82
9560573Skris
9660573Skris/* channel related messages */
9760573Skris
9860573Skris#define SSH2_MSG_CHANNEL_OPEN				90
9960573Skris#define SSH2_MSG_CHANNEL_OPEN_CONFIRMATION		91
10060573Skris#define SSH2_MSG_CHANNEL_OPEN_FAILURE			92
10160573Skris#define SSH2_MSG_CHANNEL_WINDOW_ADJUST			93
10260573Skris#define SSH2_MSG_CHANNEL_DATA				94
10360573Skris#define SSH2_MSG_CHANNEL_EXTENDED_DATA			95
10460573Skris#define SSH2_MSG_CHANNEL_EOF				96
10560573Skris#define SSH2_MSG_CHANNEL_CLOSE				97
10660573Skris#define SSH2_MSG_CHANNEL_REQUEST			98
10760573Skris#define SSH2_MSG_CHANNEL_SUCCESS			99
10860573Skris#define SSH2_MSG_CHANNEL_FAILURE			100
10960573Skris
11060573Skris/* disconnect reason code */
11160573Skris
11260573Skris#define SSH2_DISCONNECT_HOST_NOT_ALLOWED_TO_CONNECT	1
11360573Skris#define SSH2_DISCONNECT_PROTOCOL_ERROR			2
11460573Skris#define SSH2_DISCONNECT_KEY_EXCHANGE_FAILED		3
11560573Skris#define SSH2_DISCONNECT_HOST_AUTHENTICATION_FAILED	4
11661209Skris#define SSH2_DISCONNECT_RESERVED			4
11760573Skris#define SSH2_DISCONNECT_MAC_ERROR			5
11860573Skris#define SSH2_DISCONNECT_COMPRESSION_ERROR		6
11960573Skris#define SSH2_DISCONNECT_SERVICE_NOT_AVAILABLE		7
12060573Skris#define SSH2_DISCONNECT_PROTOCOL_VERSION_NOT_SUPPORTED	8
12160573Skris#define SSH2_DISCONNECT_HOST_KEY_NOT_VERIFIABLE		9
12260573Skris#define SSH2_DISCONNECT_CONNECTION_LOST			10
12360573Skris#define SSH2_DISCONNECT_BY_APPLICATION			11
12461209Skris#define SSH2_DISCONNECT_TOO_MANY_CONNECTIONS		12
12561209Skris#define SSH2_DISCONNECT_AUTH_CANCELLED_BY_USER		13
12661209Skris#define SSH2_DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE	14
12761209Skris#define SSH2_DISCONNECT_ILLEGAL_USER_NAME		15
12860573Skris
12960573Skris/* misc */
13060573Skris
13160573Skris#define SSH2_OPEN_ADMINISTRATIVELY_PROHIBITED		1
13260573Skris#define SSH2_OPEN_CONNECT_FAILED			2
13360573Skris#define SSH2_OPEN_UNKNOWN_CHANNEL_TYPE			3
13460573Skris#define SSH2_OPEN_RESOURCE_SHORTAGE			4
13560573Skris
13660573Skris#define SSH2_EXTENDED_DATA_STDERR			1
137