181cb6ddcSMark Murray /* 281cb6ddcSMark Murray * Copyright (c) 1983, 1993 381cb6ddcSMark Murray * The Regents of the University of California. All rights reserved. 481cb6ddcSMark Murray * 581cb6ddcSMark Murray * Redistribution and use in source and binary forms, with or without 681cb6ddcSMark Murray * modification, are permitted provided that the following conditions 781cb6ddcSMark Murray * are met: 881cb6ddcSMark Murray * 1. Redistributions of source code must retain the above copyright 981cb6ddcSMark Murray * notice, this list of conditions and the following disclaimer. 1081cb6ddcSMark Murray * 2. Redistributions in binary form must reproduce the above copyright 1181cb6ddcSMark Murray * notice, this list of conditions and the following disclaimer in the 1281cb6ddcSMark Murray * documentation and/or other materials provided with the distribution. 13*83129c0bSEd Maste * 3. Neither the name of the University nor the names of its contributors 1481cb6ddcSMark Murray * may be used to endorse or promote products derived from this software 1581cb6ddcSMark Murray * without specific prior written permission. 1681cb6ddcSMark Murray * 1781cb6ddcSMark Murray * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 1881cb6ddcSMark Murray * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1981cb6ddcSMark Murray * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2081cb6ddcSMark Murray * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 2181cb6ddcSMark Murray * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2281cb6ddcSMark Murray * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2381cb6ddcSMark Murray * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2481cb6ddcSMark Murray * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2581cb6ddcSMark Murray * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2681cb6ddcSMark Murray * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2781cb6ddcSMark Murray * SUCH DAMAGE. 2881cb6ddcSMark Murray * 2981cb6ddcSMark Murray * @(#)telnet.h 8.2 (Berkeley) 12/15/93 30ecece7e3SPeter Wemm * $FreeBSD$ 3181cb6ddcSMark Murray */ 3281cb6ddcSMark Murray 3304c426ccSMark Murray #ifndef _ARPA_TELNET_H_ 3404c426ccSMark Murray #define _ARPA_TELNET_H_ 3581cb6ddcSMark Murray 3681cb6ddcSMark Murray /* 3781cb6ddcSMark Murray * Definitions for the TELNET protocol. 3881cb6ddcSMark Murray */ 3981cb6ddcSMark Murray #define IAC 255 /* interpret as command: */ 4081cb6ddcSMark Murray #define DONT 254 /* you are not to use option */ 4181cb6ddcSMark Murray #define DO 253 /* please, you use option */ 4281cb6ddcSMark Murray #define WONT 252 /* I won't use option */ 4381cb6ddcSMark Murray #define WILL 251 /* I will use option */ 4481cb6ddcSMark Murray #define SB 250 /* interpret as subnegotiation */ 4581cb6ddcSMark Murray #define GA 249 /* you may reverse the line */ 4681cb6ddcSMark Murray #define EL 248 /* erase the current line */ 4781cb6ddcSMark Murray #define EC 247 /* erase the current character */ 4881cb6ddcSMark Murray #define AYT 246 /* are you there */ 4981cb6ddcSMark Murray #define AO 245 /* abort output--but let prog finish */ 5081cb6ddcSMark Murray #define IP 244 /* interrupt process--permanently */ 5181cb6ddcSMark Murray #define BREAK 243 /* break */ 5281cb6ddcSMark Murray #define DM 242 /* data mark--for connect. cleaning */ 5381cb6ddcSMark Murray #define NOP 241 /* nop */ 5481cb6ddcSMark Murray #define SE 240 /* end sub negotiation */ 5581cb6ddcSMark Murray #define EOR 239 /* end of record (transparent mode) */ 5681cb6ddcSMark Murray #define ABORT 238 /* Abort process */ 5781cb6ddcSMark Murray #define SUSP 237 /* Suspend process */ 5881cb6ddcSMark Murray #define xEOF 236 /* End of file: EOF is already used... */ 5981cb6ddcSMark Murray 6081cb6ddcSMark Murray #define SYNCH 242 /* for telfunc calls */ 6181cb6ddcSMark Murray 6281cb6ddcSMark Murray #ifdef TELCMDS 638fa113e5SMark Murray const char *telcmds[] = { 6481cb6ddcSMark Murray "EOF", "SUSP", "ABORT", "EOR", 6581cb6ddcSMark Murray "SE", "NOP", "DMARK", "BRK", "IP", "AO", "AYT", "EC", 6604c426ccSMark Murray "EL", "GA", "SB", "WILL", "WONT", "DO", "DONT", "IAC", 6704c426ccSMark Murray 0 6881cb6ddcSMark Murray }; 6981cb6ddcSMark Murray #else 7081cb6ddcSMark Murray extern char *telcmds[]; 7181cb6ddcSMark Murray #endif 7281cb6ddcSMark Murray 7381cb6ddcSMark Murray #define TELCMD_FIRST xEOF 7481cb6ddcSMark Murray #define TELCMD_LAST IAC 7581cb6ddcSMark Murray #define TELCMD_OK(x) ((unsigned int)(x) <= TELCMD_LAST && \ 7681cb6ddcSMark Murray (unsigned int)(x) >= TELCMD_FIRST) 7781cb6ddcSMark Murray #define TELCMD(x) telcmds[(x)-TELCMD_FIRST] 7881cb6ddcSMark Murray 7981cb6ddcSMark Murray /* telnet options */ 8081cb6ddcSMark Murray #define TELOPT_BINARY 0 /* 8-bit data path */ 8181cb6ddcSMark Murray #define TELOPT_ECHO 1 /* echo */ 8281cb6ddcSMark Murray #define TELOPT_RCP 2 /* prepare to reconnect */ 8381cb6ddcSMark Murray #define TELOPT_SGA 3 /* suppress go ahead */ 8481cb6ddcSMark Murray #define TELOPT_NAMS 4 /* approximate message size */ 8581cb6ddcSMark Murray #define TELOPT_STATUS 5 /* give status */ 8681cb6ddcSMark Murray #define TELOPT_TM 6 /* timing mark */ 8781cb6ddcSMark Murray #define TELOPT_RCTE 7 /* remote controlled transmission and echo */ 8881cb6ddcSMark Murray #define TELOPT_NAOL 8 /* negotiate about output line width */ 8981cb6ddcSMark Murray #define TELOPT_NAOP 9 /* negotiate about output page size */ 9081cb6ddcSMark Murray #define TELOPT_NAOCRD 10 /* negotiate about CR disposition */ 9181cb6ddcSMark Murray #define TELOPT_NAOHTS 11 /* negotiate about horizontal tabstops */ 9281cb6ddcSMark Murray #define TELOPT_NAOHTD 12 /* negotiate about horizontal tab disposition */ 9381cb6ddcSMark Murray #define TELOPT_NAOFFD 13 /* negotiate about formfeed disposition */ 9481cb6ddcSMark Murray #define TELOPT_NAOVTS 14 /* negotiate about vertical tab stops */ 9581cb6ddcSMark Murray #define TELOPT_NAOVTD 15 /* negotiate about vertical tab disposition */ 9681cb6ddcSMark Murray #define TELOPT_NAOLFD 16 /* negotiate about output LF disposition */ 9781cb6ddcSMark Murray #define TELOPT_XASCII 17 /* extended ascic character set */ 9881cb6ddcSMark Murray #define TELOPT_LOGOUT 18 /* force logout */ 9981cb6ddcSMark Murray #define TELOPT_BM 19 /* byte macro */ 10081cb6ddcSMark Murray #define TELOPT_DET 20 /* data entry terminal */ 10181cb6ddcSMark Murray #define TELOPT_SUPDUP 21 /* supdup protocol */ 10281cb6ddcSMark Murray #define TELOPT_SUPDUPOUTPUT 22 /* supdup output */ 10381cb6ddcSMark Murray #define TELOPT_SNDLOC 23 /* send location */ 10481cb6ddcSMark Murray #define TELOPT_TTYPE 24 /* terminal type */ 10581cb6ddcSMark Murray #define TELOPT_EOR 25 /* end or record */ 10681cb6ddcSMark Murray #define TELOPT_TUID 26 /* TACACS user identification */ 10781cb6ddcSMark Murray #define TELOPT_OUTMRK 27 /* output marking */ 10881cb6ddcSMark Murray #define TELOPT_TTYLOC 28 /* terminal location number */ 10981cb6ddcSMark Murray #define TELOPT_3270REGIME 29 /* 3270 regime */ 11081cb6ddcSMark Murray #define TELOPT_X3PAD 30 /* X.3 PAD */ 11181cb6ddcSMark Murray #define TELOPT_NAWS 31 /* window size */ 11281cb6ddcSMark Murray #define TELOPT_TSPEED 32 /* terminal speed */ 11381cb6ddcSMark Murray #define TELOPT_LFLOW 33 /* remote flow control */ 11481cb6ddcSMark Murray #define TELOPT_LINEMODE 34 /* Linemode option */ 11581cb6ddcSMark Murray #define TELOPT_XDISPLOC 35 /* X Display Location */ 11681cb6ddcSMark Murray #define TELOPT_OLD_ENVIRON 36 /* Old - Environment variables */ 11781cb6ddcSMark Murray #define TELOPT_AUTHENTICATION 37/* Authenticate */ 11881cb6ddcSMark Murray #define TELOPT_ENCRYPT 38 /* Encryption option */ 11981cb6ddcSMark Murray #define TELOPT_NEW_ENVIRON 39 /* New - Environment variables */ 120a3bb66deSBill Fumerola #define TELOPT_TN3270E 40 /* RFC2355 - TN3270 Enhancements */ 121a3bb66deSBill Fumerola #define TELOPT_CHARSET 42 /* RFC2066 - Charset */ 122a3bb66deSBill Fumerola #define TELOPT_COMPORT 44 /* RFC2217 - Com Port Control */ 123a3bb66deSBill Fumerola #define TELOPT_KERMIT 47 /* RFC2840 - Kermit */ 12481cb6ddcSMark Murray #define TELOPT_EXOPL 255 /* extended-options-list */ 12581cb6ddcSMark Murray 126ad11def5SEnji Cooper #define COMPORT_SET_BAUDRATE 1 /* RFC2217 - Com Port Set Baud Rate */ 12781cb6ddcSMark Murray 128a3bb66deSBill Fumerola #define NTELOPTS (1+TELOPT_KERMIT) 12981cb6ddcSMark Murray #ifdef TELOPTS 1308fa113e5SMark Murray const char *telopts[NTELOPTS+1] = { 13181cb6ddcSMark Murray "BINARY", "ECHO", "RCP", "SUPPRESS GO AHEAD", "NAME", 13281cb6ddcSMark Murray "STATUS", "TIMING MARK", "RCTE", "NAOL", "NAOP", 13381cb6ddcSMark Murray "NAOCRD", "NAOHTS", "NAOHTD", "NAOFFD", "NAOVTS", 13481cb6ddcSMark Murray "NAOVTD", "NAOLFD", "EXTEND ASCII", "LOGOUT", "BYTE MACRO", 13581cb6ddcSMark Murray "DATA ENTRY TERMINAL", "SUPDUP", "SUPDUP OUTPUT", 13681cb6ddcSMark Murray "SEND LOCATION", "TERMINAL TYPE", "END OF RECORD", 13781cb6ddcSMark Murray "TACACS UID", "OUTPUT MARKING", "TTYLOC", 13881cb6ddcSMark Murray "3270 REGIME", "X.3 PAD", "NAWS", "TSPEED", "LFLOW", 13981cb6ddcSMark Murray "LINEMODE", "XDISPLOC", "OLD-ENVIRON", "AUTHENTICATION", 140d676c049SAntoine Brodin "ENCRYPT", "NEW-ENVIRON", "TN3270E", "XAUTH", "CHARSET", 141d676c049SAntoine Brodin "RSP", "COM-PORT", "SLE", "STARTTLS", "KERMIT", 14204c426ccSMark Murray 0 14381cb6ddcSMark Murray }; 14481cb6ddcSMark Murray #define TELOPT_FIRST TELOPT_BINARY 145a3bb66deSBill Fumerola #define TELOPT_LAST TELOPT_KERMIT 14681cb6ddcSMark Murray #define TELOPT_OK(x) ((unsigned int)(x) <= TELOPT_LAST) 14781cb6ddcSMark Murray #define TELOPT(x) telopts[(x)-TELOPT_FIRST] 14881cb6ddcSMark Murray #endif 14981cb6ddcSMark Murray 15081cb6ddcSMark Murray /* sub-option qualifiers */ 15181cb6ddcSMark Murray #define TELQUAL_IS 0 /* option is... */ 15281cb6ddcSMark Murray #define TELQUAL_SEND 1 /* send option */ 15381cb6ddcSMark Murray #define TELQUAL_INFO 2 /* ENVIRON: informational version of IS */ 15481cb6ddcSMark Murray #define TELQUAL_REPLY 2 /* AUTHENTICATION: client version of IS */ 15581cb6ddcSMark Murray #define TELQUAL_NAME 3 /* AUTHENTICATION: client version of IS */ 15681cb6ddcSMark Murray 15781cb6ddcSMark Murray #define LFLOW_OFF 0 /* Disable remote flow control */ 15881cb6ddcSMark Murray #define LFLOW_ON 1 /* Enable remote flow control */ 15981cb6ddcSMark Murray #define LFLOW_RESTART_ANY 2 /* Restart output on any char */ 16081cb6ddcSMark Murray #define LFLOW_RESTART_XON 3 /* Restart output only on XON */ 16181cb6ddcSMark Murray 16281cb6ddcSMark Murray /* 16381cb6ddcSMark Murray * LINEMODE suboptions 16481cb6ddcSMark Murray */ 16581cb6ddcSMark Murray 16681cb6ddcSMark Murray #define LM_MODE 1 16781cb6ddcSMark Murray #define LM_FORWARDMASK 2 16881cb6ddcSMark Murray #define LM_SLC 3 16981cb6ddcSMark Murray 17081cb6ddcSMark Murray #define MODE_EDIT 0x01 17181cb6ddcSMark Murray #define MODE_TRAPSIG 0x02 17281cb6ddcSMark Murray #define MODE_ACK 0x04 17381cb6ddcSMark Murray #define MODE_SOFT_TAB 0x08 17481cb6ddcSMark Murray #define MODE_LIT_ECHO 0x10 17581cb6ddcSMark Murray 17681cb6ddcSMark Murray #define MODE_MASK 0x1f 17781cb6ddcSMark Murray 17881cb6ddcSMark Murray /* Not part of protocol, but needed to simplify things... */ 17981cb6ddcSMark Murray #define MODE_FLOW 0x0100 18081cb6ddcSMark Murray #define MODE_ECHO 0x0200 18181cb6ddcSMark Murray #define MODE_INBIN 0x0400 18281cb6ddcSMark Murray #define MODE_OUTBIN 0x0800 18381cb6ddcSMark Murray #define MODE_FORCE 0x1000 18481cb6ddcSMark Murray 18581cb6ddcSMark Murray #define SLC_SYNCH 1 18681cb6ddcSMark Murray #define SLC_BRK 2 18781cb6ddcSMark Murray #define SLC_IP 3 18881cb6ddcSMark Murray #define SLC_AO 4 18981cb6ddcSMark Murray #define SLC_AYT 5 19081cb6ddcSMark Murray #define SLC_EOR 6 19181cb6ddcSMark Murray #define SLC_ABORT 7 19281cb6ddcSMark Murray #define SLC_EOF 8 19381cb6ddcSMark Murray #define SLC_SUSP 9 19481cb6ddcSMark Murray #define SLC_EC 10 19581cb6ddcSMark Murray #define SLC_EL 11 19681cb6ddcSMark Murray #define SLC_EW 12 19781cb6ddcSMark Murray #define SLC_RP 13 19881cb6ddcSMark Murray #define SLC_LNEXT 14 19981cb6ddcSMark Murray #define SLC_XON 15 20081cb6ddcSMark Murray #define SLC_XOFF 16 20181cb6ddcSMark Murray #define SLC_FORW1 17 20281cb6ddcSMark Murray #define SLC_FORW2 18 20304c426ccSMark Murray #define SLC_MCL 19 20404c426ccSMark Murray #define SLC_MCR 20 20504c426ccSMark Murray #define SLC_MCWL 21 20604c426ccSMark Murray #define SLC_MCWR 22 20704c426ccSMark Murray #define SLC_MCBOL 23 20804c426ccSMark Murray #define SLC_MCEOL 24 20904c426ccSMark Murray #define SLC_INSRT 25 21004c426ccSMark Murray #define SLC_OVER 26 21104c426ccSMark Murray #define SLC_ECR 27 21204c426ccSMark Murray #define SLC_EWR 28 21304c426ccSMark Murray #define SLC_EBOL 29 21404c426ccSMark Murray #define SLC_EEOL 30 21581cb6ddcSMark Murray 21604c426ccSMark Murray #define NSLC 30 21781cb6ddcSMark Murray 21881cb6ddcSMark Murray /* 2192fa72ea7SJeroen Ruigrok van der Werven * For backwards compatibility, we define SLC_NAMES to be the 22081cb6ddcSMark Murray * list of names if SLC_NAMES is not defined. 22181cb6ddcSMark Murray */ 22281cb6ddcSMark Murray #define SLC_NAMELIST "0", "SYNCH", "BRK", "IP", "AO", "AYT", "EOR", \ 22381cb6ddcSMark Murray "ABORT", "EOF", "SUSP", "EC", "EL", "EW", "RP", \ 22404c426ccSMark Murray "LNEXT", "XON", "XOFF", "FORW1", "FORW2", \ 22504c426ccSMark Murray "MCL", "MCR", "MCWL", "MCWR", "MCBOL", \ 22604c426ccSMark Murray "MCEOL", "INSRT", "OVER", "ECR", "EWR", \ 22704c426ccSMark Murray "EBOL", "EEOL", \ 22804c426ccSMark Murray 0 22904c426ccSMark Murray 23081cb6ddcSMark Murray #ifdef SLC_NAMES 2318fa113e5SMark Murray const char *slc_names[] = { 23281cb6ddcSMark Murray SLC_NAMELIST 23381cb6ddcSMark Murray }; 23481cb6ddcSMark Murray #else 23581cb6ddcSMark Murray extern char *slc_names[]; 23681cb6ddcSMark Murray #define SLC_NAMES SLC_NAMELIST 23781cb6ddcSMark Murray #endif 23881cb6ddcSMark Murray 23981cb6ddcSMark Murray #define SLC_NAME_OK(x) ((unsigned int)(x) <= NSLC) 24081cb6ddcSMark Murray #define SLC_NAME(x) slc_names[x] 24181cb6ddcSMark Murray 24281cb6ddcSMark Murray #define SLC_NOSUPPORT 0 24381cb6ddcSMark Murray #define SLC_CANTCHANGE 1 24481cb6ddcSMark Murray #define SLC_VARIABLE 2 24581cb6ddcSMark Murray #define SLC_DEFAULT 3 24681cb6ddcSMark Murray #define SLC_LEVELBITS 0x03 24781cb6ddcSMark Murray 24881cb6ddcSMark Murray #define SLC_FUNC 0 24981cb6ddcSMark Murray #define SLC_FLAGS 1 25081cb6ddcSMark Murray #define SLC_VALUE 2 25181cb6ddcSMark Murray 25281cb6ddcSMark Murray #define SLC_ACK 0x80 25381cb6ddcSMark Murray #define SLC_FLUSHIN 0x40 25481cb6ddcSMark Murray #define SLC_FLUSHOUT 0x20 25581cb6ddcSMark Murray 25681cb6ddcSMark Murray #define OLD_ENV_VAR 1 25781cb6ddcSMark Murray #define OLD_ENV_VALUE 0 25881cb6ddcSMark Murray #define NEW_ENV_VAR 0 25981cb6ddcSMark Murray #define NEW_ENV_VALUE 1 26081cb6ddcSMark Murray #define ENV_ESC 2 26181cb6ddcSMark Murray #define ENV_USERVAR 3 26281cb6ddcSMark Murray 26381cb6ddcSMark Murray /* 26481cb6ddcSMark Murray * AUTHENTICATION suboptions 26581cb6ddcSMark Murray */ 26681cb6ddcSMark Murray 26781cb6ddcSMark Murray /* 26881cb6ddcSMark Murray * Who is authenticating who ... 26981cb6ddcSMark Murray */ 27081cb6ddcSMark Murray #define AUTH_WHO_CLIENT 0 /* Client authenticating server */ 27181cb6ddcSMark Murray #define AUTH_WHO_SERVER 1 /* Server authenticating client */ 27281cb6ddcSMark Murray #define AUTH_WHO_MASK 1 27381cb6ddcSMark Murray 27481cb6ddcSMark Murray /* 27581cb6ddcSMark Murray * amount of authentication done 27681cb6ddcSMark Murray */ 27781cb6ddcSMark Murray #define AUTH_HOW_ONE_WAY 0 27881cb6ddcSMark Murray #define AUTH_HOW_MUTUAL 2 27981cb6ddcSMark Murray #define AUTH_HOW_MASK 2 28081cb6ddcSMark Murray 28181cb6ddcSMark Murray #define AUTHTYPE_NULL 0 28281cb6ddcSMark Murray #define AUTHTYPE_KERBEROS_V4 1 28381cb6ddcSMark Murray #define AUTHTYPE_KERBEROS_V5 2 28481cb6ddcSMark Murray #define AUTHTYPE_SPX 3 28581cb6ddcSMark Murray #define AUTHTYPE_MINK 4 2860f8c8396SNick Sayer #define AUTHTYPE_SRA 6 2870f8c8396SNick Sayer #define AUTHTYPE_CNT 7 28881cb6ddcSMark Murray 28981cb6ddcSMark Murray #define AUTHTYPE_TEST 99 29081cb6ddcSMark Murray 29181cb6ddcSMark Murray #ifdef AUTH_NAMES 2928fa113e5SMark Murray const char *authtype_names[] = { 2930f8c8396SNick Sayer "NULL", "KERBEROS_V4", "KERBEROS_V5", "SPX", "MINK", NULL, "SRA", 29404c426ccSMark Murray 0 29581cb6ddcSMark Murray }; 29681cb6ddcSMark Murray #else 29781cb6ddcSMark Murray extern char *authtype_names[]; 29881cb6ddcSMark Murray #endif 29981cb6ddcSMark Murray 30081cb6ddcSMark Murray #define AUTHTYPE_NAME_OK(x) ((unsigned int)(x) < AUTHTYPE_CNT) 30181cb6ddcSMark Murray #define AUTHTYPE_NAME(x) authtype_names[x] 30281cb6ddcSMark Murray 30381cb6ddcSMark Murray /* 30481cb6ddcSMark Murray * ENCRYPTion suboptions 30581cb6ddcSMark Murray */ 30681cb6ddcSMark Murray #define ENCRYPT_IS 0 /* I pick encryption type ... */ 30781cb6ddcSMark Murray #define ENCRYPT_SUPPORT 1 /* I support encryption types ... */ 30881cb6ddcSMark Murray #define ENCRYPT_REPLY 2 /* Initial setup response */ 30981cb6ddcSMark Murray #define ENCRYPT_START 3 /* Am starting to send encrypted */ 31081cb6ddcSMark Murray #define ENCRYPT_END 4 /* Am ending encrypted */ 31181cb6ddcSMark Murray #define ENCRYPT_REQSTART 5 /* Request you start encrypting */ 31204c426ccSMark Murray #define ENCRYPT_REQEND 6 /* Request you end encrypting */ 31381cb6ddcSMark Murray #define ENCRYPT_ENC_KEYID 7 31481cb6ddcSMark Murray #define ENCRYPT_DEC_KEYID 8 31581cb6ddcSMark Murray #define ENCRYPT_CNT 9 31681cb6ddcSMark Murray 31781cb6ddcSMark Murray #define ENCTYPE_ANY 0 31881cb6ddcSMark Murray #define ENCTYPE_DES_CFB64 1 31981cb6ddcSMark Murray #define ENCTYPE_DES_OFB64 2 32081cb6ddcSMark Murray #define ENCTYPE_CNT 3 32181cb6ddcSMark Murray 32281cb6ddcSMark Murray #ifdef ENCRYPT_NAMES 3238fa113e5SMark Murray const char *encrypt_names[] = { 32481cb6ddcSMark Murray "IS", "SUPPORT", "REPLY", "START", "END", 32581cb6ddcSMark Murray "REQUEST-START", "REQUEST-END", "ENC-KEYID", "DEC-KEYID", 32604c426ccSMark Murray 0 32781cb6ddcSMark Murray }; 3288fa113e5SMark Murray const char *enctype_names[] = { 32904c426ccSMark Murray "ANY", "DES_CFB64", "DES_OFB64", 33004c426ccSMark Murray 0 33181cb6ddcSMark Murray }; 33281cb6ddcSMark Murray #else 33381cb6ddcSMark Murray extern char *encrypt_names[]; 33481cb6ddcSMark Murray extern char *enctype_names[]; 33581cb6ddcSMark Murray #endif 33681cb6ddcSMark Murray 33781cb6ddcSMark Murray 33881cb6ddcSMark Murray #define ENCRYPT_NAME_OK(x) ((unsigned int)(x) < ENCRYPT_CNT) 33981cb6ddcSMark Murray #define ENCRYPT_NAME(x) encrypt_names[x] 34081cb6ddcSMark Murray 34181cb6ddcSMark Murray #define ENCTYPE_NAME_OK(x) ((unsigned int)(x) < ENCTYPE_CNT) 34281cb6ddcSMark Murray #define ENCTYPE_NAME(x) enctype_names[x] 34381cb6ddcSMark Murray 34481cb6ddcSMark Murray #endif /* !_TELNET_H_ */ 345