🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.protocols.kerberos
Article #849

Re: telnet encryption option vs. Clarkson TCP

#849
From: Patrick Herlihy
Date: Wed, 18 Nov 1992 21:38
80 lines
3381 bytes
alan@CURTA.CC.COLUMBIA.EDU (Alan Crosswell) writes:

>I wonder if you have heard of any interoperability problems between
>the Kerberized (version 4) telnetd that came with the first beta of
>MIT Kerberos 5 and Clarkson TCP for the PC (CUTE-2.2TN-D).

>The problem I have is the telnet session "freezes" right around the
>TELOPT_ENCRYPTION (option 38) negotiation.  Clarkson TCP is not
>capable of doing the auth or encrypt options (boy do I wish!) so it is
>just something messing up in the part where the unknown option is
>supposed to be rejected.  If I recompile telnetd with -UENCRYPT then
>Clarkson TCP is able to get in.  Other telnet clients like Unix and
>Kermit can get in just fine.

I figured that Clarkson TCP just doesn't handle the encryption option
properly:  telnetd says "WILL ENCRYPT", expecting a response from CUTCP
if it won't encrypt; CUTCP just ignores the option altogether.

Telnetd then assumes that the option has been accepted, and waits in a loop
expecting to get encryption key info.

If you make the initial telnetd option "DO ENCRYPT" instead of "WILL ENCRYPT",
and put a "WILL ENCRYPT" later on, CUTCP will respond properly in the
negative.

My diffs to telnetd/telnetd.c in the telnet.91.03.25 release follow:

*** telnetd.c.orig	Wed Nov 18 08:34:47 1992
--- telnetd.c	Wed Nov 18 08:34:51 1992
***************
*** 417,423 ****
  #endif
  
  #if	defined(ENCRYPT)
!     send_will(TELOPT_ENCRYPT, 1);
  #endif
      send_do(TELOPT_TTYPE, 1);
      send_do(TELOPT_TSPEED, 1);
--- 417,424 ----
  #endif
  
  #if	defined(ENCRYPT)
! /*    send_will(TELOPT_ENCRYPT, 1); */
!     send_do(TELOPT_ENCRYPT, 1);
  #endif
      send_do(TELOPT_TTYPE, 1);
      send_do(TELOPT_TSPEED, 1);
***************
*** 425,431 ****
      send_do(TELOPT_ENVIRON, 1);
      while (
  #if	defined(ENCRYPT)
! 	   his_do_dont_is_changing(TELOPT_ENCRYPT) ||
  #endif
  	   his_will_wont_is_changing(TELOPT_TTYPE) ||
  	   his_will_wont_is_changing(TELOPT_TSPEED) ||
--- 426,433 ----
      send_do(TELOPT_ENVIRON, 1);
      while (
  #if	defined(ENCRYPT)
! /* 	   his_do_dont_is_changing(TELOPT_ENCRYPT) || */
! 	   his_will_wont_is_changing(TELOPT_ENCRYPT) ||
  #endif
  	   his_will_wont_is_changing(TELOPT_TTYPE) ||
  	   his_will_wont_is_changing(TELOPT_TSPEED) ||
***************
*** 439,444 ****
--- 441,447 ----
       * send with.  If autoencrypt is not set, this will just return.
       */
      if (his_state_is_will(TELOPT_ENCRYPT)) {
+         send_will(TELOPT_ENCRYPT, 1);
  	encrypt_wait();
      }
  #endif
-- 
Patrick John Herlihy,                            P.Herlihy@ccsd.uts.EDU.AU
Communications Services Branch,		                Ph: +61 2 330 5162
University of Technology, Sydney,                      Fax: +61 2 330 5562
PO Box 123, Broadway, NSW, 2007, Australia.      
Technical Details
Message-ID: <patrick.722122736@kgi.uts.EDU.AU>
Path: arc1-ca.pugleaf.net!sparky!uunet!munnari.oz.au!metro!sequoia!kgi.uts.EDU.AU!patrick
References: <CMM.0.90.0.721344901.alan@curta.cc.columbia.edu>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!munnari.oz.au!metro!sequoia!kgi.uts.EDU.AU!patrick
From: P.Herlihy@ccsd.uts.EDU.AU (Patrick Herlihy)
Newsgroups: comp.protocols.kerberos
Subject: Re: telnet encryption option vs. Clarkson TCP
Date: 18 Nov 92 21:38:56 GMT
Organization: University of Technology, Sydney
Lines: 80
Message-ID: <patrick.722122736@kgi.uts.EDU.AU>
References: <CMM.0.90.0.721344901.alan@curta.cc.columbia.edu>
NNTP-Posting-Host: kgispy.ccsd.uts.edu.au
Originator: patrick@kgispy.ccsd.uts.EDU.AU