diff -cr openssl-0.9.7a/include/openssl/kssl.h openssl-0.9.7a-new/include/openssl/kssl.h
*** openssl-0.9.7a/include/openssl/kssl.h	Tue Nov 26 10:09:27 2002
--- openssl-0.9.7a-new/include/openssl/kssl.h	Thu Mar 27 14:11:11 2003
***************
*** 138,143 ****
--- 138,144 ----
  #define KSSL_SERVER 	2
  #define	KSSL_SERVICE	3
  #define	KSSL_KEYTAB 	4
+ #define	KSSL_CCACHE	5
  
  #define KSSL_CTX_OK 	0
  #define KSSL_CTX_ERR	1
diff -cr openssl-0.9.7a/ssl/kssl.c openssl-0.9.7a-new/ssl/kssl.c
*** openssl-0.9.7a/ssl/kssl.c	Tue Dec 24 21:53:34 2002
--- openssl-0.9.7a-new/ssl/kssl.c	Thu Mar 27 14:14:24 2003
***************
*** 1084,1095 ****
  		goto err;
  		}
  
! 	if ((krb5rc = krb5_cc_default(krb5context, &krb5ccdef)) != 0)
!                 {
! 		kssl_err_set(kssl_err, SSL_R_KRB5_C_CC_PRINC,
!                         "krb5_cc_default fails.\n");
! 		goto err;
! 		}
  
  	if ((krb5rc = krb5_cc_get_principal(krb5context, krb5ccdef,
                  &krb5creds.client)) != 0)
--- 1084,1104 ----
  		goto err;
  		}
  
!        if (kssl_ctx->cred_cache) {
!             if ((krb5rc = krb5_cc_resolve(krb5context, kssl_ctx->cred_cache, &krb5ccdef)) != 0)
!                     {
! 	    	    kssl_err_set(kssl_err, SSL_R_KRB5_C_CC_PRINC,
!                             "krb5_cc_resolve fails.\n");
! 		    goto err;
! 		    }
!         } else {
! 	    if ((krb5rc = krb5_cc_default(krb5context, &krb5ccdef)) != 0)
!                     {
! 	    	    kssl_err_set(kssl_err, SSL_R_KRB5_C_CC_PRINC,
!                             "krb5_cc_default fails.\n");
! 		    goto err;
! 		    }
! 	}
  
  	if ((krb5rc = krb5_cc_get_principal(krb5context, krb5ccdef,
                  &krb5creds.client)) != 0)
***************
*** 1557,1562 ****
--- 1566,1572 ----
  	if (kssl_ctx->service_host) 	free(kssl_ctx->service_host);
  	if (kssl_ctx->service_name) 	free(kssl_ctx->service_name);
  	if (kssl_ctx->keytab_file) 	free(kssl_ctx->keytab_file);
+ 	if (kssl_ctx->cred_cache) 	free(kssl_ctx->cred_cache);
  
  	free(kssl_ctx);
  	return (KSSL_CTX *) NULL;
***************
*** 1621,1626 ****
--- 1631,1637 ----
          case KSSL_SERVER:	string = &kssl_ctx->service_host;	break;
          case KSSL_CLIENT:	string = &kssl_ctx->client_princ;	break;
          case KSSL_KEYTAB:	string = &kssl_ctx->keytab_file;	break;
+         case KSSL_CCACHE:	string = &kssl_ctx->cred_cache;		break;
          default:		return KSSL_CTX_ERR;			break;
  		}
  	if (*string)  free(*string);
***************
*** 1717,1722 ****
--- 1728,1735 ----
                  (kssl_ctx->service_host)? kssl_ctx->service_host: "NULL");
  	printf("\tkeytab:\t%s\n",
                  (kssl_ctx->keytab_file)? kssl_ctx->keytab_file: "NULL");
+ 	printf("\tccache:\t%s\n",
+                 (kssl_ctx->cred_cache)? kssl_ctx->cred_cache: "NULL");
  	printf("\tkey [%d:%d]:\t",
                  kssl_ctx->enctype, kssl_ctx->length);
  
***************
*** 1809,1817 ****
                                                KRB5_NT_SRV_HST, &krb5creds.server)) != 0)
              goto err;
  
!         if ((krb5rc = krb5_cc_default(krb5context, &krb5ccdef)) != 0)
!             goto err;
! 
          if ((krb5rc = krb5_cc_get_principal(krb5context, krb5ccdef,
                                               &krb5creds.client)) != 0)
              goto err;
--- 1822,1834 ----
                                                KRB5_NT_SRV_HST, &krb5creds.server)) != 0)
              goto err;
  
!         if (kssl_ctx->cred_cache) {
!             if ((krb5rc = krb5_cc_resolve(krb5context, kssl_ctx->cred_cache, &krb5ccdef)) != 0)
!                 goto err;
!         } else {
!             if ((krb5rc = krb5_cc_default(krb5context, &krb5ccdef)) != 0)
!                 goto err;
!         }
          if ((krb5rc = krb5_cc_get_principal(krb5context, krb5ccdef,
                                               &krb5creds.client)) != 0)
              goto err;
***************
*** 2049,2055 ****
--- 2066,2074 ----
  
  #ifdef KSSL_DEBUG
  	printf("kssl_check_authent: decrypted authenticator[%d] =\n", outl);
+         { int padl;
  	for (padl=0; padl < outl; padl++) printf("%02x ",unenc_authent[padl]);
+         } 
  	printf("\n");
  #endif	/* KSSL_DEBUG */
  
diff -cr openssl-0.9.7a/ssl/kssl.h openssl-0.9.7a-new/ssl/kssl.h
*** openssl-0.9.7a/ssl/kssl.h	Tue Nov 26 10:09:27 2002
--- openssl-0.9.7a-new/ssl/kssl.h	Thu Mar 27 14:11:11 2003
***************
*** 138,143 ****
--- 138,144 ----
  #define KSSL_SERVER 	2
  #define	KSSL_SERVICE	3
  #define	KSSL_KEYTAB 	4
+ #define	KSSL_CCACHE	5
  
  #define KSSL_CTX_OK 	0
  #define KSSL_CTX_ERR	1
