[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problems running krb5 telnet



Jonas Oberg <jonas@coyote.org> writes:
> Thanks for your help. I've been having some trouble compiling with
> OTP support. It appears to me that xdbm.h might want to be changed to
> support gdbm. 

It does support gdbm, but you need to install the ndbm.h file in gdbm
(typically with `make install-compat').

> What I'm getting at is that compiling without OTP seems fine but
> appl/ftp/ftpd/Makefile.am seems to need a patch for this since it
> includes libotp.la in the ftpd_DEPENDENCIES.

Yes, that's a bug.  Patch appended.

> I get an "Kerberos V5: mk_req failed (Inappropriate type of checksum in
> message)", is this the error message to which you were referring or is
> this caused by some other problem?

Yes, that's the error.  Try the appended patch.

/assar
Index: appl/ftp/ftpd/Makefile.am
===================================================================
RCS file: /afs/pdc.kth.se/src/packages/kth-krb/SourceRepository/appl/ftp/ftpd/Makefile.am,v
retrieving revision 1.18
diff -u -w -u -w -r1.18 Makefile.am
--- Makefile.am	1999/04/09 18:22:32	1.18
+++ Makefile.am	1999/04/25 13:22:56
@@ -47,7 +47,7 @@
 	$(LIB_gssapi) \
 	$(LIB_krb5) \
 	$(LIB_krb4) \
-	$(top_builddir)/lib/otp/libotp.la \
+	$(LIB_otp) \
 	$(top_builddir)/lib/des/libdes.la \
 	$(LIB_roken) \
 	$(DBLIB)


Index: lib/krb5/mk_req_ext.c
===================================================================
RCS file: /afs/pdc.kth.se/src/packages/kth-krb/SourceRepository/heimdal/lib/krb5/mk_req_ext.c,v
retrieving revision 1.19
diff -u -w -u -w -r1.19 mk_req_ext.c
--- mk_req_ext.c	1999/02/11 21:03:44	1.19
+++ mk_req_ext.c	1999/04/25 12:41:09
@@ -94,6 +94,15 @@
   krb5_copy_keyblock(context, &in_creds->session, &ac->keyblock);
   
   if (in_data) {
+      if(ac->keyblock->keytype == ETYPE_DES_CBC_CRC) {
+	  /* this is to make DCE secd (and older MIT kdcs?) happy */
+	  ret = krb5_create_checksum(context, 
+				     NULL,
+				     CKSUMTYPE_RSA_MD4,
+				     in_data->data,
+				     in_data->length,
+				     &c);
+      } else {
       krb5_crypto crypto;
       krb5_crypto_init(context, ac->keyblock, 0, &crypto);
       ret = krb5_create_checksum(context, 
@@ -104,6 +113,7 @@
 				 &c);
       
       krb5_crypto_destroy(context, crypto);
+      }
       c_opt = &c;
   } else {
       c_opt = NULL;