xref: /utopia/UTPA2-700.0.x/projects/tools/lint/mips-linux-gnu_include/arpa/telnet.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1*53ee8cc1Swenshuai.xi /*
2*53ee8cc1Swenshuai.xi  * Copyright (c) 1983, 1993
3*53ee8cc1Swenshuai.xi  *	The Regents of the University of California.  All rights reserved.
4*53ee8cc1Swenshuai.xi  *
5*53ee8cc1Swenshuai.xi  * Redistribution and use in source and binary forms, with or without
6*53ee8cc1Swenshuai.xi  * modification, are permitted provided that the following conditions
7*53ee8cc1Swenshuai.xi  * are met:
8*53ee8cc1Swenshuai.xi  * 1. Redistributions of source code must retain the above copyright
9*53ee8cc1Swenshuai.xi  *    notice, this list of conditions and the following disclaimer.
10*53ee8cc1Swenshuai.xi  * 2. Redistributions in binary form must reproduce the above copyright
11*53ee8cc1Swenshuai.xi  *    notice, this list of conditions and the following disclaimer in the
12*53ee8cc1Swenshuai.xi  *    documentation and/or other materials provided with the distribution.
13*53ee8cc1Swenshuai.xi  * 4. Neither the name of the University nor the names of its contributors
14*53ee8cc1Swenshuai.xi  *    may be used to endorse or promote products derived from this software
15*53ee8cc1Swenshuai.xi  *    without specific prior written permission.
16*53ee8cc1Swenshuai.xi  *
17*53ee8cc1Swenshuai.xi  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
18*53ee8cc1Swenshuai.xi  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19*53ee8cc1Swenshuai.xi  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20*53ee8cc1Swenshuai.xi  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
21*53ee8cc1Swenshuai.xi  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22*53ee8cc1Swenshuai.xi  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23*53ee8cc1Swenshuai.xi  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24*53ee8cc1Swenshuai.xi  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25*53ee8cc1Swenshuai.xi  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26*53ee8cc1Swenshuai.xi  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27*53ee8cc1Swenshuai.xi  * SUCH DAMAGE.
28*53ee8cc1Swenshuai.xi  *
29*53ee8cc1Swenshuai.xi  *	@(#)telnet.h	8.2 (Berkeley) 12/15/93
30*53ee8cc1Swenshuai.xi  */
31*53ee8cc1Swenshuai.xi 
32*53ee8cc1Swenshuai.xi #ifndef _ARPA_TELNET_H
33*53ee8cc1Swenshuai.xi #define	_ARPA_TELNET_H 1
34*53ee8cc1Swenshuai.xi 
35*53ee8cc1Swenshuai.xi /*
36*53ee8cc1Swenshuai.xi  * Definitions for the TELNET protocol.
37*53ee8cc1Swenshuai.xi  */
38*53ee8cc1Swenshuai.xi #define	IAC	255		/* interpret as command: */
39*53ee8cc1Swenshuai.xi #define	DONT	254		/* you are not to use option */
40*53ee8cc1Swenshuai.xi #define	DO	253		/* please, you use option */
41*53ee8cc1Swenshuai.xi #define	WONT	252		/* I won't use option */
42*53ee8cc1Swenshuai.xi #define	WILL	251		/* I will use option */
43*53ee8cc1Swenshuai.xi #define	SB	250		/* interpret as subnegotiation */
44*53ee8cc1Swenshuai.xi #define	GA	249		/* you may reverse the line */
45*53ee8cc1Swenshuai.xi #define	EL	248		/* erase the current line */
46*53ee8cc1Swenshuai.xi #define	EC	247		/* erase the current character */
47*53ee8cc1Swenshuai.xi #define	AYT	246		/* are you there */
48*53ee8cc1Swenshuai.xi #define	AO	245		/* abort output--but let prog finish */
49*53ee8cc1Swenshuai.xi #define	IP	244		/* interrupt process--permanently */
50*53ee8cc1Swenshuai.xi #define	BREAK	243		/* break */
51*53ee8cc1Swenshuai.xi #define	DM	242		/* data mark--for connect. cleaning */
52*53ee8cc1Swenshuai.xi #define	NOP	241		/* nop */
53*53ee8cc1Swenshuai.xi #define	SE	240		/* end sub negotiation */
54*53ee8cc1Swenshuai.xi #define EOR     239             /* end of record (transparent mode) */
55*53ee8cc1Swenshuai.xi #define	ABORT	238		/* Abort process */
56*53ee8cc1Swenshuai.xi #define	SUSP	237		/* Suspend process */
57*53ee8cc1Swenshuai.xi #define	xEOF	236		/* End of file: EOF is already used... */
58*53ee8cc1Swenshuai.xi 
59*53ee8cc1Swenshuai.xi #define SYNCH	242		/* for telfunc calls */
60*53ee8cc1Swenshuai.xi 
61*53ee8cc1Swenshuai.xi #ifdef TELCMDS
62*53ee8cc1Swenshuai.xi char *telcmds[] = {
63*53ee8cc1Swenshuai.xi 	"EOF", "SUSP", "ABORT", "EOR",
64*53ee8cc1Swenshuai.xi 	"SE", "NOP", "DMARK", "BRK", "IP", "AO", "AYT", "EC",
65*53ee8cc1Swenshuai.xi 	"EL", "GA", "SB", "WILL", "WONT", "DO", "DONT", "IAC", 0,
66*53ee8cc1Swenshuai.xi };
67*53ee8cc1Swenshuai.xi #else
68*53ee8cc1Swenshuai.xi extern char *telcmds[];
69*53ee8cc1Swenshuai.xi #endif
70*53ee8cc1Swenshuai.xi 
71*53ee8cc1Swenshuai.xi #define	TELCMD_FIRST	xEOF
72*53ee8cc1Swenshuai.xi #define	TELCMD_LAST	IAC
73*53ee8cc1Swenshuai.xi #define	TELCMD_OK(x)	((unsigned int)(x) <= TELCMD_LAST && \
74*53ee8cc1Swenshuai.xi 			 (unsigned int)(x) >= TELCMD_FIRST)
75*53ee8cc1Swenshuai.xi #define	TELCMD(x)	telcmds[(x)-TELCMD_FIRST]
76*53ee8cc1Swenshuai.xi 
77*53ee8cc1Swenshuai.xi /* telnet options */
78*53ee8cc1Swenshuai.xi #define TELOPT_BINARY	0	/* 8-bit data path */
79*53ee8cc1Swenshuai.xi #define TELOPT_ECHO	1	/* echo */
80*53ee8cc1Swenshuai.xi #define	TELOPT_RCP	2	/* prepare to reconnect */
81*53ee8cc1Swenshuai.xi #define	TELOPT_SGA	3	/* suppress go ahead */
82*53ee8cc1Swenshuai.xi #define	TELOPT_NAMS	4	/* approximate message size */
83*53ee8cc1Swenshuai.xi #define	TELOPT_STATUS	5	/* give status */
84*53ee8cc1Swenshuai.xi #define	TELOPT_TM	6	/* timing mark */
85*53ee8cc1Swenshuai.xi #define	TELOPT_RCTE	7	/* remote controlled transmission and echo */
86*53ee8cc1Swenshuai.xi #define TELOPT_NAOL 	8	/* negotiate about output line width */
87*53ee8cc1Swenshuai.xi #define TELOPT_NAOP 	9	/* negotiate about output page size */
88*53ee8cc1Swenshuai.xi #define TELOPT_NAOCRD	10	/* negotiate about CR disposition */
89*53ee8cc1Swenshuai.xi #define TELOPT_NAOHTS	11	/* negotiate about horizontal tabstops */
90*53ee8cc1Swenshuai.xi #define TELOPT_NAOHTD	12	/* negotiate about horizontal tab disposition */
91*53ee8cc1Swenshuai.xi #define TELOPT_NAOFFD	13	/* negotiate about formfeed disposition */
92*53ee8cc1Swenshuai.xi #define TELOPT_NAOVTS	14	/* negotiate about vertical tab stops */
93*53ee8cc1Swenshuai.xi #define TELOPT_NAOVTD	15	/* negotiate about vertical tab disposition */
94*53ee8cc1Swenshuai.xi #define TELOPT_NAOLFD	16	/* negotiate about output LF disposition */
95*53ee8cc1Swenshuai.xi #define TELOPT_XASCII	17	/* extended ascii character set */
96*53ee8cc1Swenshuai.xi #define	TELOPT_LOGOUT	18	/* force logout */
97*53ee8cc1Swenshuai.xi #define	TELOPT_BM	19	/* byte macro */
98*53ee8cc1Swenshuai.xi #define	TELOPT_DET	20	/* data entry terminal */
99*53ee8cc1Swenshuai.xi #define	TELOPT_SUPDUP	21	/* supdup protocol */
100*53ee8cc1Swenshuai.xi #define	TELOPT_SUPDUPOUTPUT 22	/* supdup output */
101*53ee8cc1Swenshuai.xi #define	TELOPT_SNDLOC	23	/* send location */
102*53ee8cc1Swenshuai.xi #define	TELOPT_TTYPE	24	/* terminal type */
103*53ee8cc1Swenshuai.xi #define	TELOPT_EOR	25	/* end or record */
104*53ee8cc1Swenshuai.xi #define	TELOPT_TUID	26	/* TACACS user identification */
105*53ee8cc1Swenshuai.xi #define	TELOPT_OUTMRK	27	/* output marking */
106*53ee8cc1Swenshuai.xi #define	TELOPT_TTYLOC	28	/* terminal location number */
107*53ee8cc1Swenshuai.xi #define	TELOPT_3270REGIME 29	/* 3270 regime */
108*53ee8cc1Swenshuai.xi #define	TELOPT_X3PAD	30	/* X.3 PAD */
109*53ee8cc1Swenshuai.xi #define	TELOPT_NAWS	31	/* window size */
110*53ee8cc1Swenshuai.xi #define	TELOPT_TSPEED	32	/* terminal speed */
111*53ee8cc1Swenshuai.xi #define	TELOPT_LFLOW	33	/* remote flow control */
112*53ee8cc1Swenshuai.xi #define TELOPT_LINEMODE	34	/* Linemode option */
113*53ee8cc1Swenshuai.xi #define TELOPT_XDISPLOC	35	/* X Display Location */
114*53ee8cc1Swenshuai.xi #define TELOPT_OLD_ENVIRON 36	/* Old - Environment variables */
115*53ee8cc1Swenshuai.xi #define	TELOPT_AUTHENTICATION 37/* Authenticate */
116*53ee8cc1Swenshuai.xi #define	TELOPT_ENCRYPT	38	/* Encryption option */
117*53ee8cc1Swenshuai.xi #define TELOPT_NEW_ENVIRON 39	/* New - Environment variables */
118*53ee8cc1Swenshuai.xi #define	TELOPT_EXOPL	255	/* extended-options-list */
119*53ee8cc1Swenshuai.xi 
120*53ee8cc1Swenshuai.xi 
121*53ee8cc1Swenshuai.xi #define	NTELOPTS	(1+TELOPT_NEW_ENVIRON)
122*53ee8cc1Swenshuai.xi #ifdef TELOPTS
123*53ee8cc1Swenshuai.xi char *telopts[NTELOPTS+1] = {
124*53ee8cc1Swenshuai.xi 	"BINARY", "ECHO", "RCP", "SUPPRESS GO AHEAD", "NAME",
125*53ee8cc1Swenshuai.xi 	"STATUS", "TIMING MARK", "RCTE", "NAOL", "NAOP",
126*53ee8cc1Swenshuai.xi 	"NAOCRD", "NAOHTS", "NAOHTD", "NAOFFD", "NAOVTS",
127*53ee8cc1Swenshuai.xi 	"NAOVTD", "NAOLFD", "EXTEND ASCII", "LOGOUT", "BYTE MACRO",
128*53ee8cc1Swenshuai.xi 	"DATA ENTRY TERMINAL", "SUPDUP", "SUPDUP OUTPUT",
129*53ee8cc1Swenshuai.xi 	"SEND LOCATION", "TERMINAL TYPE", "END OF RECORD",
130*53ee8cc1Swenshuai.xi 	"TACACS UID", "OUTPUT MARKING", "TTYLOC",
131*53ee8cc1Swenshuai.xi 	"3270 REGIME", "X.3 PAD", "NAWS", "TSPEED", "LFLOW",
132*53ee8cc1Swenshuai.xi 	"LINEMODE", "XDISPLOC", "OLD-ENVIRON", "AUTHENTICATION",
133*53ee8cc1Swenshuai.xi 	"ENCRYPT", "NEW-ENVIRON",
134*53ee8cc1Swenshuai.xi 	0,
135*53ee8cc1Swenshuai.xi };
136*53ee8cc1Swenshuai.xi #define	TELOPT_FIRST	TELOPT_BINARY
137*53ee8cc1Swenshuai.xi #define	TELOPT_LAST	TELOPT_NEW_ENVIRON
138*53ee8cc1Swenshuai.xi #define	TELOPT_OK(x)	((unsigned int)(x) <= TELOPT_LAST)
139*53ee8cc1Swenshuai.xi #define	TELOPT(x)	telopts[(x)-TELOPT_FIRST]
140*53ee8cc1Swenshuai.xi #endif
141*53ee8cc1Swenshuai.xi 
142*53ee8cc1Swenshuai.xi /* sub-option qualifiers */
143*53ee8cc1Swenshuai.xi #define	TELQUAL_IS	0	/* option is... */
144*53ee8cc1Swenshuai.xi #define	TELQUAL_SEND	1	/* send option */
145*53ee8cc1Swenshuai.xi #define	TELQUAL_INFO	2	/* ENVIRON: informational version of IS */
146*53ee8cc1Swenshuai.xi #define	TELQUAL_REPLY	2	/* AUTHENTICATION: client version of IS */
147*53ee8cc1Swenshuai.xi #define	TELQUAL_NAME	3	/* AUTHENTICATION: client version of IS */
148*53ee8cc1Swenshuai.xi 
149*53ee8cc1Swenshuai.xi #define	LFLOW_OFF		0	/* Disable remote flow control */
150*53ee8cc1Swenshuai.xi #define	LFLOW_ON		1	/* Enable remote flow control */
151*53ee8cc1Swenshuai.xi #define	LFLOW_RESTART_ANY	2	/* Restart output on any char */
152*53ee8cc1Swenshuai.xi #define	LFLOW_RESTART_XON	3	/* Restart output only on XON */
153*53ee8cc1Swenshuai.xi 
154*53ee8cc1Swenshuai.xi /*
155*53ee8cc1Swenshuai.xi  * LINEMODE suboptions
156*53ee8cc1Swenshuai.xi  */
157*53ee8cc1Swenshuai.xi 
158*53ee8cc1Swenshuai.xi #define	LM_MODE		1
159*53ee8cc1Swenshuai.xi #define	LM_FORWARDMASK	2
160*53ee8cc1Swenshuai.xi #define	LM_SLC		3
161*53ee8cc1Swenshuai.xi 
162*53ee8cc1Swenshuai.xi #define	MODE_EDIT	0x01
163*53ee8cc1Swenshuai.xi #define	MODE_TRAPSIG	0x02
164*53ee8cc1Swenshuai.xi #define	MODE_ACK	0x04
165*53ee8cc1Swenshuai.xi #define MODE_SOFT_TAB	0x08
166*53ee8cc1Swenshuai.xi #define MODE_LIT_ECHO	0x10
167*53ee8cc1Swenshuai.xi 
168*53ee8cc1Swenshuai.xi #define	MODE_MASK	0x1f
169*53ee8cc1Swenshuai.xi 
170*53ee8cc1Swenshuai.xi /* Not part of protocol, but needed to simplify things... */
171*53ee8cc1Swenshuai.xi #define MODE_FLOW		0x0100
172*53ee8cc1Swenshuai.xi #define MODE_ECHO		0x0200
173*53ee8cc1Swenshuai.xi #define MODE_INBIN		0x0400
174*53ee8cc1Swenshuai.xi #define MODE_OUTBIN		0x0800
175*53ee8cc1Swenshuai.xi #define MODE_FORCE		0x1000
176*53ee8cc1Swenshuai.xi 
177*53ee8cc1Swenshuai.xi #define	SLC_SYNCH	1
178*53ee8cc1Swenshuai.xi #define	SLC_BRK		2
179*53ee8cc1Swenshuai.xi #define	SLC_IP		3
180*53ee8cc1Swenshuai.xi #define	SLC_AO		4
181*53ee8cc1Swenshuai.xi #define	SLC_AYT		5
182*53ee8cc1Swenshuai.xi #define	SLC_EOR		6
183*53ee8cc1Swenshuai.xi #define	SLC_ABORT	7
184*53ee8cc1Swenshuai.xi #define	SLC_EOF		8
185*53ee8cc1Swenshuai.xi #define	SLC_SUSP	9
186*53ee8cc1Swenshuai.xi #define	SLC_EC		10
187*53ee8cc1Swenshuai.xi #define	SLC_EL		11
188*53ee8cc1Swenshuai.xi #define	SLC_EW		12
189*53ee8cc1Swenshuai.xi #define	SLC_RP		13
190*53ee8cc1Swenshuai.xi #define	SLC_LNEXT	14
191*53ee8cc1Swenshuai.xi #define	SLC_XON		15
192*53ee8cc1Swenshuai.xi #define	SLC_XOFF	16
193*53ee8cc1Swenshuai.xi #define	SLC_FORW1	17
194*53ee8cc1Swenshuai.xi #define	SLC_FORW2	18
195*53ee8cc1Swenshuai.xi 
196*53ee8cc1Swenshuai.xi #define	NSLC		18
197*53ee8cc1Swenshuai.xi 
198*53ee8cc1Swenshuai.xi /*
199*53ee8cc1Swenshuai.xi  * For backwards compatibility, we define SLC_NAMES to be the
200*53ee8cc1Swenshuai.xi  * list of names if SLC_NAMES is not defined.
201*53ee8cc1Swenshuai.xi  */
202*53ee8cc1Swenshuai.xi #define	SLC_NAMELIST	"0", "SYNCH", "BRK", "IP", "AO", "AYT", "EOR", \
203*53ee8cc1Swenshuai.xi 			"ABORT", "EOF", "SUSP", "EC", "EL", "EW", "RP", \
204*53ee8cc1Swenshuai.xi 			"LNEXT", "XON", "XOFF", "FORW1", "FORW2", 0,
205*53ee8cc1Swenshuai.xi #ifdef	SLC_NAMES
206*53ee8cc1Swenshuai.xi char *slc_names[] = {
207*53ee8cc1Swenshuai.xi 	SLC_NAMELIST
208*53ee8cc1Swenshuai.xi };
209*53ee8cc1Swenshuai.xi #else
210*53ee8cc1Swenshuai.xi extern char *slc_names[];
211*53ee8cc1Swenshuai.xi #define	SLC_NAMES SLC_NAMELIST
212*53ee8cc1Swenshuai.xi #endif
213*53ee8cc1Swenshuai.xi 
214*53ee8cc1Swenshuai.xi #define	SLC_NAME_OK(x)	((unsigned int)(x) <= NSLC)
215*53ee8cc1Swenshuai.xi #define SLC_NAME(x)	slc_names[x]
216*53ee8cc1Swenshuai.xi 
217*53ee8cc1Swenshuai.xi #define	SLC_NOSUPPORT	0
218*53ee8cc1Swenshuai.xi #define	SLC_CANTCHANGE	1
219*53ee8cc1Swenshuai.xi #define	SLC_VARIABLE	2
220*53ee8cc1Swenshuai.xi #define	SLC_DEFAULT	3
221*53ee8cc1Swenshuai.xi #define	SLC_LEVELBITS	0x03
222*53ee8cc1Swenshuai.xi 
223*53ee8cc1Swenshuai.xi #define	SLC_FUNC	0
224*53ee8cc1Swenshuai.xi #define	SLC_FLAGS	1
225*53ee8cc1Swenshuai.xi #define	SLC_VALUE	2
226*53ee8cc1Swenshuai.xi 
227*53ee8cc1Swenshuai.xi #define	SLC_ACK		0x80
228*53ee8cc1Swenshuai.xi #define	SLC_FLUSHIN	0x40
229*53ee8cc1Swenshuai.xi #define	SLC_FLUSHOUT	0x20
230*53ee8cc1Swenshuai.xi 
231*53ee8cc1Swenshuai.xi #define	OLD_ENV_VAR	1
232*53ee8cc1Swenshuai.xi #define	OLD_ENV_VALUE	0
233*53ee8cc1Swenshuai.xi #define	NEW_ENV_VAR	0
234*53ee8cc1Swenshuai.xi #define	NEW_ENV_VALUE	1
235*53ee8cc1Swenshuai.xi #define	ENV_ESC		2
236*53ee8cc1Swenshuai.xi #define ENV_USERVAR	3
237*53ee8cc1Swenshuai.xi 
238*53ee8cc1Swenshuai.xi /*
239*53ee8cc1Swenshuai.xi  * AUTHENTICATION suboptions
240*53ee8cc1Swenshuai.xi  */
241*53ee8cc1Swenshuai.xi 
242*53ee8cc1Swenshuai.xi /*
243*53ee8cc1Swenshuai.xi  * Who is authenticating who ...
244*53ee8cc1Swenshuai.xi  */
245*53ee8cc1Swenshuai.xi #define	AUTH_WHO_CLIENT		0	/* Client authenticating server */
246*53ee8cc1Swenshuai.xi #define	AUTH_WHO_SERVER		1	/* Server authenticating client */
247*53ee8cc1Swenshuai.xi #define	AUTH_WHO_MASK		1
248*53ee8cc1Swenshuai.xi 
249*53ee8cc1Swenshuai.xi /*
250*53ee8cc1Swenshuai.xi  * amount of authentication done
251*53ee8cc1Swenshuai.xi  */
252*53ee8cc1Swenshuai.xi #define	AUTH_HOW_ONE_WAY	0
253*53ee8cc1Swenshuai.xi #define	AUTH_HOW_MUTUAL		2
254*53ee8cc1Swenshuai.xi #define	AUTH_HOW_MASK		2
255*53ee8cc1Swenshuai.xi 
256*53ee8cc1Swenshuai.xi #define	AUTHTYPE_NULL		0
257*53ee8cc1Swenshuai.xi #define	AUTHTYPE_KERBEROS_V4	1
258*53ee8cc1Swenshuai.xi #define	AUTHTYPE_KERBEROS_V5	2
259*53ee8cc1Swenshuai.xi #define	AUTHTYPE_SPX		3
260*53ee8cc1Swenshuai.xi #define	AUTHTYPE_MINK		4
261*53ee8cc1Swenshuai.xi #define	AUTHTYPE_CNT		5
262*53ee8cc1Swenshuai.xi 
263*53ee8cc1Swenshuai.xi #define	AUTHTYPE_TEST		99
264*53ee8cc1Swenshuai.xi 
265*53ee8cc1Swenshuai.xi #ifdef	AUTH_NAMES
266*53ee8cc1Swenshuai.xi char *authtype_names[] = {
267*53ee8cc1Swenshuai.xi 	"NULL", "KERBEROS_V4", "KERBEROS_V5", "SPX", "MINK", 0,
268*53ee8cc1Swenshuai.xi };
269*53ee8cc1Swenshuai.xi #else
270*53ee8cc1Swenshuai.xi extern char *authtype_names[];
271*53ee8cc1Swenshuai.xi #endif
272*53ee8cc1Swenshuai.xi 
273*53ee8cc1Swenshuai.xi #define	AUTHTYPE_NAME_OK(x)	((unsigned int)(x) < AUTHTYPE_CNT)
274*53ee8cc1Swenshuai.xi #define	AUTHTYPE_NAME(x)	authtype_names[x]
275*53ee8cc1Swenshuai.xi 
276*53ee8cc1Swenshuai.xi /*
277*53ee8cc1Swenshuai.xi  * ENCRYPTion suboptions
278*53ee8cc1Swenshuai.xi  */
279*53ee8cc1Swenshuai.xi #define	ENCRYPT_IS		0	/* I pick encryption type ... */
280*53ee8cc1Swenshuai.xi #define	ENCRYPT_SUPPORT		1	/* I support encryption types ... */
281*53ee8cc1Swenshuai.xi #define	ENCRYPT_REPLY		2	/* Initial setup response */
282*53ee8cc1Swenshuai.xi #define	ENCRYPT_START		3	/* Am starting to send encrypted */
283*53ee8cc1Swenshuai.xi #define	ENCRYPT_END		4	/* Am ending encrypted */
284*53ee8cc1Swenshuai.xi #define	ENCRYPT_REQSTART	5	/* Request you start encrypting */
285*53ee8cc1Swenshuai.xi #define	ENCRYPT_REQEND		6	/* Request you send encrypting */
286*53ee8cc1Swenshuai.xi #define	ENCRYPT_ENC_KEYID	7
287*53ee8cc1Swenshuai.xi #define	ENCRYPT_DEC_KEYID	8
288*53ee8cc1Swenshuai.xi #define	ENCRYPT_CNT		9
289*53ee8cc1Swenshuai.xi 
290*53ee8cc1Swenshuai.xi #define	ENCTYPE_ANY		0
291*53ee8cc1Swenshuai.xi #define	ENCTYPE_DES_CFB64	1
292*53ee8cc1Swenshuai.xi #define	ENCTYPE_DES_OFB64	2
293*53ee8cc1Swenshuai.xi #define	ENCTYPE_CNT		3
294*53ee8cc1Swenshuai.xi 
295*53ee8cc1Swenshuai.xi #ifdef	ENCRYPT_NAMES
296*53ee8cc1Swenshuai.xi char *encrypt_names[] = {
297*53ee8cc1Swenshuai.xi 	"IS", "SUPPORT", "REPLY", "START", "END",
298*53ee8cc1Swenshuai.xi 	"REQUEST-START", "REQUEST-END", "ENC-KEYID", "DEC-KEYID",
299*53ee8cc1Swenshuai.xi 	0,
300*53ee8cc1Swenshuai.xi };
301*53ee8cc1Swenshuai.xi char *enctype_names[] = {
302*53ee8cc1Swenshuai.xi 	"ANY", "DES_CFB64",  "DES_OFB64",  0,
303*53ee8cc1Swenshuai.xi };
304*53ee8cc1Swenshuai.xi #else
305*53ee8cc1Swenshuai.xi extern char *encrypt_names[];
306*53ee8cc1Swenshuai.xi extern char *enctype_names[];
307*53ee8cc1Swenshuai.xi #endif
308*53ee8cc1Swenshuai.xi 
309*53ee8cc1Swenshuai.xi 
310*53ee8cc1Swenshuai.xi #define	ENCRYPT_NAME_OK(x)	((unsigned int)(x) < ENCRYPT_CNT)
311*53ee8cc1Swenshuai.xi #define	ENCRYPT_NAME(x)		encrypt_names[x]
312*53ee8cc1Swenshuai.xi 
313*53ee8cc1Swenshuai.xi #define	ENCTYPE_NAME_OK(x)	((unsigned int)(x) < ENCTYPE_CNT)
314*53ee8cc1Swenshuai.xi #define	ENCTYPE_NAME(x)		enctype_names[x]
315*53ee8cc1Swenshuai.xi 
316*53ee8cc1Swenshuai.xi #endif /* arpa/telnet.h */
317