krb5 commit: Remove unused CCAPI libkrb5 code
ghudson at mit.edu
ghudson at mit.edu
Wed May 18 17:38:19 EDT 2022
https://github.com/krb5/krb5/commit/151004b6364e232e8195d19b189f9a682589a094
commit 151004b6364e232e8195d19b189f9a682589a094
Author: Greg Hudson <ghudson at mit.edu>
Date: Wed Feb 2 16:01:48 2022 -0500
Remove unused CCAPI libkrb5 code
Remove the pre-CCAPIv3 code in the ccache type, and remove the unused
stdccCredsMatch() function from stdcc_util.c.
src/lib/krb5/ccache/Makefile.in | 6 +-
src/lib/krb5/ccache/cc-int.h | 2 -
src/lib/krb5/ccache/ccapi/Makefile.in | 2 +-
src/lib/krb5/ccache/ccapi/stdcc.c | 624 ---------------------------------
src/lib/krb5/ccache/ccapi/stdcc.h | 68 ----
src/lib/krb5/ccache/ccapi/stdcc_util.c | 537 ----------------------------
src/lib/krb5/ccache/ccapi/stdcc_util.h | 18 -
src/lib/krb5/ccache/ccapi/winccld.h | 121 -------
src/lib/krb5/ccache/ccbase.c | 8 +-
9 files changed, 7 insertions(+), 1379 deletions(-)
diff --git a/src/lib/krb5/ccache/Makefile.in b/src/lib/krb5/ccache/Makefile.in
index 73468547e..eaff6d2d9 100644
--- a/src/lib/krb5/ccache/Makefile.in
+++ b/src/lib/krb5/ccache/Makefile.in
@@ -2,11 +2,9 @@ mydir=lib$(S)krb5$(S)ccache
BUILDTOP=$(REL)..$(S)..$(S)..
SUBDIRS = # ccapi
WINSUBDIRS = ccapi
-##WIN32##DEFINES = -DUSE_CCAPI -DUSE_CCAPI_V3
+##WIN32##DEFINES = -DUSE_CCAPI
-LOCALINCLUDES = -I$(srcdir)$(S)ccapi -I$(srcdir) -I. $(WIN_INCLUDES)
-
-##DOS##WIN_INCLUDES = -I$(top_srcdir)\windows\lib
+LOCALINCLUDES = -I$(srcdir)$(S)ccapi -I$(srcdir) -I.
##DOS##BUILDTOP = ..\..\..
##DOS##PREFIXDIR=ccache
diff --git a/src/lib/krb5/ccache/cc-int.h b/src/lib/krb5/ccache/cc-int.h
index 70f28273e..6039a1f5b 100644
--- a/src/lib/krb5/ccache/cc-int.h
+++ b/src/lib/krb5/ccache/cc-int.h
@@ -110,13 +110,11 @@ extern k5_cc_mutex krb5int_mcc_mutex;
extern k5_cc_mutex krb5int_krcc_mutex;
extern k5_cc_mutex krb5int_cc_file_mutex;
-#ifdef USE_CCAPI_V3
extern krb5_error_code KRB5_CALLCONV krb5_stdccv3_context_lock
(krb5_context context);
extern krb5_error_code KRB5_CALLCONV krb5_stdccv3_context_unlock
(krb5_context context);
-#endif
krb5_error_code
k5_cc_lock(krb5_context context, krb5_ccache ccache);
diff --git a/src/lib/krb5/ccache/ccapi/Makefile.in b/src/lib/krb5/ccache/ccapi/Makefile.in
index 736573786..c842b498e 100644
--- a/src/lib/krb5/ccache/ccapi/Makefile.in
+++ b/src/lib/krb5/ccache/ccapi/Makefile.in
@@ -1,7 +1,7 @@
mydir=lib$(S)krb5$(S)ccache$(S)ccapi
BUILDTOP=$(REL)..$(S)..$(S)..$(S)..
LOCALINCLUDES = $(WIN_INCLUDES)
-DEFINES= -DUSE_CCAPI -DUSE_CCAPI_V3
+DEFINES= -DUSE_CCAPI
##DOS##WIN_INCLUDES = -I$(top_srcdir)\windows\lib
diff --git a/src/lib/krb5/ccache/ccapi/stdcc.c b/src/lib/krb5/ccache/ccapi/stdcc.c
index 0dc5259fd..bb13eb574 100644
--- a/src/lib/krb5/ccache/ccapi/stdcc.c
+++ b/src/lib/krb5/ccache/ccapi/stdcc.c
@@ -57,12 +57,8 @@
#define SHOW_DEBUG(buf)
#endif
-#ifdef USE_CCAPI_V3
cc_context_t gCntrlBlock = NULL;
cc_int32 gCCVersion = 0;
-#else
-apiCB *gCntrlBlock = NULL;
-#endif
/*
* declare our global object wanna-be
@@ -72,7 +68,6 @@ apiCB *gCntrlBlock = NULL;
krb5_cc_ops krb5_cc_stdcc_ops = {
0,
"API",
-#ifdef USE_CCAPI_V3
krb5_stdccv3_get_name,
krb5_stdccv3_resolve,
krb5_stdccv3_generate_new,
@@ -96,28 +91,6 @@ krb5_cc_ops krb5_cc_stdcc_ops = {
krb5_stdccv3_lock,
krb5_stdccv3_unlock,
krb5_stdccv3_switch_to,
-#else
- krb5_stdcc_get_name,
- krb5_stdcc_resolve,
- krb5_stdcc_generate_new,
- krb5_stdcc_initialize,
- krb5_stdcc_destroy,
- krb5_stdcc_close,
- krb5_stdcc_store,
- krb5_stdcc_retrieve,
- krb5_stdcc_get_principal,
- krb5_stdcc_start_seq_get,
- krb5_stdcc_next_cred,
- krb5_stdcc_end_seq_get,
- krb5_stdcc_remove,
- krb5_stdcc_set_flags,
- krb5_stdcc_get_flags,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
-#endif
};
#if defined(_WIN32)
@@ -153,7 +126,6 @@ struct err_xlate
static const struct err_xlate err_xlate_table[] =
{
-#ifdef USE_CCAPI_V3
{ ccIteratorEnd, KRB5_CC_END },
{ ccErrBadParam, KRB5_FCC_INTERNAL },
{ ccErrNoMem, KRB5_CC_NOMEM },
@@ -182,25 +154,6 @@ static const struct err_xlate err_xlate_table[] =
{ ccErrTimeOffsetNotSet, KRB5_FCC_INTERNAL },
{ ccErrBadInternalMessage, KRB5_FCC_INTERNAL },
{ ccErrNotImplemented, KRB5_FCC_INTERNAL },
-#else
- { CC_BADNAME, KRB5_CC_BADNAME },
- { CC_NOTFOUND, KRB5_CC_NOTFOUND },
- { CC_END, KRB5_CC_END },
- { CC_IO, KRB5_CC_IO },
- { CC_WRITE, KRB5_CC_WRITE },
- { CC_NOMEM, KRB5_CC_NOMEM },
- { CC_FORMAT, KRB5_CC_FORMAT },
- { CC_WRITE, KRB5_CC_WRITE },
- { CC_LOCKED, KRB5_FCC_INTERNAL /* XXX */ },
- { CC_BAD_API_VERSION, KRB5_FCC_INTERNAL /* XXX */ },
- { CC_NO_EXIST, KRB5_FCC_NOFILE },
- { CC_NOT_SUPP, KRB5_FCC_INTERNAL /* XXX */ },
- { CC_BAD_PARM, KRB5_FCC_INTERNAL /* XXX */ },
- { CC_ERR_CACHE_ATTACH, KRB5_FCC_INTERNAL /* XXX */ },
- { CC_ERR_CACHE_RELEASE, KRB5_FCC_INTERNAL /* XXX */ },
- { CC_ERR_CACHE_FULL, KRB5_FCC_INTERNAL /* XXX */ },
- { CC_ERR_CRED_VERSION, KRB5_FCC_INTERNAL /* XXX */ },
-#endif
{ 0, 0 }
};
@@ -209,13 +162,8 @@ static krb5_error_code cc_err_xlate(int err)
{
const struct err_xlate *p;
-#ifdef USE_CCAPI_V3
if (err == ccNoError)
return 0;
-#else
- if (err == CC_NOERROR)
- return 0;
-#endif
for (p = err_xlate_table; p->cc_err; p++) {
if (err == p->cc_err)
@@ -226,8 +174,6 @@ static krb5_error_code cc_err_xlate(int err)
}
-#ifdef USE_CCAPI_V3
-
static krb5_error_code stdccv3_get_timeoffset (krb5_context in_context,
cc_ccache_t in_ccache)
{
@@ -1072,574 +1018,4 @@ krb5_error_code KRB5_CALLCONV krb5_stdccv3_switch_to
return cc_err_xlate(err);
}
-#else /* !USE_CCAPI_V3 */
-
-static krb5_error_code stdcc_setup(krb5_context context,
- stdccCacheDataPtr ccapi_data)
-{
- int err;
-
- /* make sure the API has been initialized */
- if (gCntrlBlock == NULL) {
-#ifdef CC_API_VER2
- err = cc_initialize(&gCntrlBlock, CC_API_VER_2, NULL, NULL);
-#else
- err = cc_initialize(&gCntrlBlock, CC_API_VER_1, NULL, NULL);
-#endif
- if (err != CC_NOERROR)
- return cc_err_xlate(err);
- }
-
- /*
- * No ccapi_data structure, so we don't need to make sure the
- * ccache exists.
- */
- if (!ccapi_data)
- return 0;
-
- /*
- * The ccache already exists
- */
- if (ccapi_data->NamedCache)
- return 0;
-
- err = cc_open(gCntrlBlock, ccapi_data->cache_name,
- CC_CRED_V5, 0L, &ccapi_data->NamedCache);
- if (err == CC_NOTFOUND)
- err = CC_NO_EXIST;
- if (err == CC_NOERROR)
- return 0;
-
- ccapi_data->NamedCache = NULL;
- return cc_err_xlate(err);
-}
-
-void krb5_stdcc_shutdown()
-{
- if (gCntrlBlock)
- cc_shutdown(&gCntrlBlock);
- gCntrlBlock = NULL;
-}
-
-/*
- * -- generate_new --------------------------------
- *
- * create a new cache with a unique name, corresponds to creating a
- * named cache iniitialize the API here if we have to.
- */
-krb5_error_code KRB5_CALLCONV krb5_stdcc_generate_new
-(krb5_context context, krb5_ccache *id )
-{
- krb5_ccache newCache = NULL;
- krb5_error_code retval;
- stdccCacheDataPtr ccapi_data = NULL;
- char *name = NULL;
- cc_time_t change_time;
- int err;
-
- if ((retval = stdcc_setup(context, NULL)))
- return retval;
-
- retval = KRB5_CC_NOMEM;
- if (!(newCache = (krb5_ccache) malloc(sizeof(struct _krb5_ccache))))
- goto errout;
- if (!(ccapi_data = (stdccCacheDataPtr)malloc(sizeof(stdccCacheData))))
- goto errout;
- if (!(name = malloc(256)))
- goto errout;
-
- /* create a unique name */
- cc_get_change_time(gCntrlBlock, &change_time);
- snprintf(name, 256, "gen_new_cache%d", change_time);
-
- /* create the new cache */
- err = cc_create(gCntrlBlock, name, name, CC_CRED_V5, 0L,
- &ccapi_data->NamedCache);
- if (err != CC_NOERROR) {
- retval = cc_err_xlate(err);
- goto errout;
- }
-
- /* setup some fields */
- newCache->ops = &krb5_cc_stdcc_ops;
- newCache->data = ccapi_data;
- ccapi_data->cache_name = name;
-
- /* return a pointer to the new cache */
- *id = newCache;
-
- return 0;
-
-errout:
- if (newCache)
- free(newCache);
- if (ccapi_data)
- free(ccapi_data);
- if (name)
- free(name);
- return retval;
-}
-
-/*
- * resolve
- *
- * create a new cache with the name stored in residual
- */
-krb5_error_code KRB5_CALLCONV krb5_stdcc_resolve
-(krb5_context context, krb5_ccache *id , const char *residual )
-{
- krb5_ccache newCache = NULL;
- stdccCacheDataPtr ccapi_data = NULL;
- int err;
- krb5_error_code retval;
- char *cName = NULL;
-
- if ((retval = stdcc_setup(context, NULL)))
- return retval;
-
- retval = KRB5_CC_NOMEM;
- if (!(newCache = (krb5_ccache) malloc(sizeof(struct _krb5_ccache))))
- goto errout;
-
- if (!(ccapi_data = (stdccCacheDataPtr)malloc(sizeof(stdccCacheData))))
- goto errout;
-
- if (!(cName = strdup(residual)))
- goto errout;
-
- newCache->ops = &krb5_cc_stdcc_ops;
- newCache->data = ccapi_data;
- ccapi_data->cache_name = cName;
-
- err = cc_open(gCntrlBlock, cName, CC_CRED_V5, 0L,
- &ccapi_data->NamedCache);
- if (err != CC_NOERROR) {
- ccapi_data->NamedCache = NULL;
- if (err != CC_NO_EXIST) {
- retval = cc_err_xlate(err);
- goto errout;
- }
- }
-
- /* return new cache structure */
- *id = newCache;
-
- return 0;
-
-errout:
- if (newCache)
- free(newCache);
- if (ccapi_data)
- free(ccapi_data);
- if (cName)
- free(cName);
- return retval;
-}
-
-/*
- * initialize
- *
- * initialize the cache, check to see if one already exists for this
- * principal if not set our principal to this principal. This
- * searching enables ticket sharing
- */
-krb5_error_code KRB5_CALLCONV krb5_stdcc_initialize
-(krb5_context context, krb5_ccache id, krb5_principal princ)
-{
- stdccCacheDataPtr ccapi_data = NULL;
- int err;
- char *cName = NULL;
- krb5_error_code retval;
-
- if ((retval = stdcc_setup(context, NULL)))
- return retval;
-
- /* test id for null */
- if (id == NULL) return KRB5_CC_NOMEM;
-
- if ((retval = krb5_unparse_name(context, princ, &cName)))
- return retval;
-
- ccapi_data = id->data;
-
-
- if (ccapi_data->NamedCache)
- cc_close(gCntrlBlock, &ccapi_data->NamedCache);
-
- err = cc_create(gCntrlBlock, ccapi_data->cache_name, cName,
- CC_CRED_V5, 0L, &ccapi_data->NamedCache);
- if (err != CC_NOERROR) {
- krb5_free_unparsed_name(context, cName);
- return cc_err_xlate(err);
- }
-
- krb5_free_unparsed_name(context, cName);
- cache_changed();
-
- return cc_err_xlate(err);
-}
-
-/*
- * store
- *
- * store some credentials in our cache
- */
-krb5_error_code KRB5_CALLCONV krb5_stdcc_store
-(krb5_context context, krb5_ccache id, krb5_creds *creds )
-{
- krb5_error_code retval;
- stdccCacheDataPtr ccapi_data = id->data;
- cred_union *cu = NULL;
- int err;
-
- if ((retval = stdcc_setup(context, ccapi_data)))
- return retval;
-
- /* copy the fields from the almost identical structures */
- dupK5toCC(context, creds, &cu);
-
- /*
- * finally store the credential
- * store will copy (that is duplicate) everything
- */
- err = cc_store(gCntrlBlock,
- ((stdccCacheDataPtr)(id->data))->NamedCache, *cu);
- if (err != CC_NOERROR)
- return cc_err_xlate(err);
-
- /* free the cred union using our local version of cc_free_creds()
- since we allocated it locally */
- err = krb5int_free_cc_cred_union(&cu);
-
- cache_changed();
- return err;
-}
-
-/*
- * start_seq_get
- *
- * begin an iterator call to get all of the credentials in the cache
- */
-krb5_error_code KRB5_CALLCONV krb5_stdcc_start_seq_get
-(krb5_context context, krb5_ccache id , krb5_cc_cursor *cursor )
-{
- stdccCacheDataPtr ccapi_data = id->data;
- krb5_error_code retval;
- int err;
- ccache_cit *iterator;
-
- if ((retval = stdcc_setup(context, ccapi_data)))
- return retval;
-
-#ifdef CC_API_VER2
- err = cc_seq_fetch_creds_begin(gCntrlBlock, ccapi_data->NamedCache,
- &iterator);
- if (err != CC_NOERROR)
- return cc_err_xlate(err);
- *cursor = iterator;
-#else
- /* all we have to do is initialize the cursor */
- *cursor = NULL;
-#endif
- return 0;
-}
-
-/*
- * next cred
- *
- * - get the next credential in the cache as part of an iterator call
- * - this maps to call to cc_seq_fetch_creds
- */
-krb5_error_code KRB5_CALLCONV krb5_stdcc_next_cred
-(krb5_context context, krb5_ccache id, krb5_cc_cursor *cursor,
- krb5_creds *creds)
-{
- krb5_error_code retval;
- stdccCacheDataPtr ccapi_data = id->data;
- int err;
- cred_union *credU = NULL;
- ccache_cit *iterator;
-
- if ((retval = stdcc_setup(context, ccapi_data)))
- return retval;
-
-#ifdef CC_API_VER2
- iterator = *cursor;
- if (iterator == 0)
- return KRB5_CC_END;
- err = cc_seq_fetch_creds_next(gCntrlBlock, &credU, iterator);
-
- if (err == CC_END) {
- cc_seq_fetch_creds_end(gCntrlBlock, &iterator);
- *cursor = 0;
- }
-#else
- err = cc_seq_fetch_creds(gCntrlBlock, ccapi_data->NamedCache,
- &credU, (ccache_cit **)cursor);
-#endif
-
- if (err != CC_NOERROR)
- return cc_err_xlate(err);
-
- /* copy data (with translation) */
- dupCCtoK5(context, credU->cred.pV5Cred, creds);
-
- /* free our version of the cred - okay to use cc_free_creds() here
- because we got it from the CCache library */
- cc_free_creds(gCntrlBlock, &credU);
-
- return 0;
-}
-
-
-/*
- * retrieve
- *
- * - try to find a matching credential in the cache
- */
-krb5_error_code KRB5_CALLCONV
-krb5_stdcc_retrieve(context, id, whichfields, mcreds, creds)
- krb5_context context;
- krb5_ccache id;
- krb5_flags whichfields;
- krb5_creds *mcreds;
- krb5_creds *creds;
-{
- return k5_cc_retrieve_cred_default(context, id, whichfields, mcreds,
- creds);
-}
-
-/*
- * end seq
- *
- * just free up the storage associated with the cursor (if we could)
- */
-krb5_error_code KRB5_CALLCONV krb5_stdcc_end_seq_get
-(krb5_context context, krb5_ccache id, krb5_cc_cursor *cursor)
-{
- krb5_error_code retval;
- stdccCacheDataPtr ccapi_data = NULL;
- int err;
-#ifndef CC_API_VER2
- cred_union *credU = NULL;
-#endif
-
- ccapi_data = id->data;
-
- if ((retval = stdcc_setup(context, ccapi_data)))
- return retval;
-
- if (*cursor == NULL)
- return 0;
-
-#ifdef CC_API_VER2
- err = cc_seq_fetch_creds_end(gCntrlBlock, (ccache_cit **)cursor);
- if (err != CC_NOERROR)
- return cc_err_xlate(err);
-#else
- /*
- * Finish calling cc_seq_fetch_creds to clear out the cursor
- */
- while (*cursor) {
- err = cc_seq_fetch_creds(gCntrlBlock, ccapi_data->NamedCache,
- &credU, (ccache_cit **)cursor);
- if (err)
- break;
-
- /* okay to call cc_free_creds() here because we got credU from CCache lib */
- cc_free_creds(gCntrlBlock, &credU);
- }
-#endif
-
- return(0);
-}
-
-/*
- * close
- *
- * - free our pointers to the NC
- */
-krb5_error_code KRB5_CALLCONV
-krb5_stdcc_close(krb5_context context, krb5_ccache id)
-{
- krb5_error_code retval;
- stdccCacheDataPtr ccapi_data = id->data;
-
- if ((retval = stdcc_setup(context, NULL)))
- return retval;
-
- /* free it */
-
- if (ccapi_data) {
- if (ccapi_data->cache_name)
- free(ccapi_data->cache_name);
- if (ccapi_data->NamedCache)
- cc_close(gCntrlBlock, &ccapi_data->NamedCache);
- free(ccapi_data);
- id->data = NULL;
- }
- free(id);
-
- return 0;
-}
-
-/*
- * destroy
- *
- * - free our storage and the cache
- */
-krb5_error_code KRB5_CALLCONV
-krb5_stdcc_destroy (krb5_context context, krb5_ccache id)
-{
- int err;
- krb5_error_code retval;
- stdccCacheDataPtr ccapi_data = id->data;
-
- if ((retval = stdcc_setup(context, ccapi_data))) {
- return retval;
- }
-
- /* free memory associated with the krb5_ccache */
- if (ccapi_data) {
- if (ccapi_data->cache_name)
- free(ccapi_data->cache_name);
- if (ccapi_data->NamedCache) {
- /* destroy the named cache */
- err = cc_destroy(gCntrlBlock, &ccapi_data->NamedCache);
- retval = cc_err_xlate(err);
- cache_changed();
- }
- free(ccapi_data);
- id->data = NULL;
- }
- free(id);
-
- /* If the cache does not exist when we tried to destroy it,
- that's fine. That means someone else destroyed it since
- we resolved it. */
- if (retval == KRB5_FCC_NOFILE)
- return 0;
- return retval;
-}
-
-/*
- * getname
- *
- * - return the name of the named cache
- */
-const char * KRB5_CALLCONV krb5_stdcc_get_name
-(krb5_context context, krb5_ccache id )
-{
- stdccCacheDataPtr ccapi_data = id->data;
-
- if (!ccapi_data)
- return 0;
-
- return (ccapi_data->cache_name);
-}
-
-
-/* get_principal
- *
- * - return the principal associated with the named cache
- */
-krb5_error_code KRB5_CALLCONV krb5_stdcc_get_principal
-(krb5_context context, krb5_ccache id , krb5_principal *princ)
-{
- int err;
- char *name = NULL;
- stdccCacheDataPtr ccapi_data = id->data;
- krb5_error_code retval;
-
- if ((retval = stdcc_setup(context, ccapi_data)))
- return retval;
-
- /* another wrapper */
- err = cc_get_principal(gCntrlBlock, ccapi_data->NamedCache,
- &name);
-
- if (err != CC_NOERROR)
- return cc_err_xlate(err);
-
- /* turn it into a krb principal */
- err = krb5_parse_name(context, name, princ);
-
- cc_free_principal(gCntrlBlock, &name);
-
- return err;
-}
-
-/*
- * set_flags
- *
- * - currently a NOP since we don't store any flags in the NC
- */
-krb5_error_code KRB5_CALLCONV krb5_stdcc_set_flags
-(krb5_context context, krb5_ccache id , krb5_flags flags)
-{
- stdccCacheDataPtr ccapi_data = id->data;
- krb5_error_code retval;
-
- if ((retval = stdcc_setup(context, ccapi_data)))
- return retval;
-
- return 0;
-}
-
-/*
- * get_flags
- *
- * - currently a NOP since we don't store any flags in the NC
- */
-krb5_error_code KRB5_CALLCONV krb5_stdcc_get_flags
-(krb5_context context, krb5_ccache id , krb5_flags *flags)
-{
- stdccCacheDataPtr ccapi_data = id->data;
- krb5_error_code retval;
-
- if ((retval = stdcc_setup(context, ccapi_data)))
- return retval;
-
- return 0;
-}
-
-/*
- * remove
- *
- * - remove the specified credentials from the NC
- */
-krb5_error_code KRB5_CALLCONV krb5_stdcc_remove
-(krb5_context context, krb5_ccache id,
- krb5_flags flags, krb5_creds *creds)
-{
- cred_union *cu = NULL;
- int err;
- stdccCacheDataPtr ccapi_data = id->data;
- krb5_error_code retval;
-
- if ((retval = stdcc_setup(context, ccapi_data))) {
- if (retval == KRB5_FCC_NOFILE)
- return 0;
- return retval;
- }
-
- /* convert to a cred union */
- dupK5toCC(context, creds, &cu);
-
- /* remove it */
- err = cc_remove_cred(gCntrlBlock, ccapi_data->NamedCache, *cu);
- if (err != CC_NOERROR)
- return cc_err_xlate(err);
-
- /* free the cred union using our local version of cc_free_creds()
- since we allocated it locally */
- err = krb5int_free_cc_cred_union(&cu);
- cache_changed();
- if (err != CC_NOERROR)
- return cc_err_xlate(err);
-
- return 0;
-}
-#endif /* !USE_CCAPI_V3 */
-
#endif /* defined(_WIN32) || defined(USE_CCAPI) */
diff --git a/src/lib/krb5/ccache/ccapi/stdcc.h b/src/lib/krb5/ccache/ccapi/stdcc.h
index acb8a2649..ef50445b7 100644
--- a/src/lib/krb5/ccache/ccapi/stdcc.h
+++ b/src/lib/krb5/ccache/ccapi/stdcc.h
@@ -7,15 +7,7 @@
#include "k5-int.h" /* loads krb5.h */
#include "../cc-int.h"
-#ifdef USE_CCAPI_V3
#include <CredentialsCache.h>
-#else
-#if defined(_WIN32)
-#include "cacheapi.h"
-#else
-#include <CredentialsCache2.h>
-#endif
-#endif
#define kStringLiteralLen 255
@@ -27,11 +19,7 @@ extern krb5_cc_ops krb5_cc_stdcc_ops;
*/
typedef struct _stdccCacheData {
char *cache_name;
-#ifdef USE_CCAPI_V3
cc_ccache_t NamedCache;
-#else
- ccache_p *NamedCache;
-#endif
} stdccCacheData, *stdccCacheDataPtr;
@@ -39,8 +27,6 @@ typedef struct _stdccCacheData {
void krb5_stdcc_shutdown(void);
-#ifdef USE_CCAPI_V3
-
krb5_error_code KRB5_CALLCONV krb5_stdccv3_close
(krb5_context, krb5_ccache id );
@@ -116,60 +102,6 @@ krb5_error_code KRB5_CALLCONV krb5_stdccv3_context_unlock
krb5_error_code KRB5_CALLCONV krb5_stdccv3_switch_to
(krb5_context context, krb5_ccache id);
-#else
-
-krb5_error_code KRB5_CALLCONV krb5_stdcc_close
-(krb5_context, krb5_ccache id );
-
-krb5_error_code KRB5_CALLCONV krb5_stdcc_destroy
-(krb5_context, krb5_ccache id );
-
-krb5_error_code KRB5_CALLCONV krb5_stdcc_end_seq_get
-(krb5_context, krb5_ccache id , krb5_cc_cursor *cursor );
-
-krb5_error_code KRB5_CALLCONV krb5_stdcc_generate_new
-(krb5_context, krb5_ccache *id );
-
-const char * KRB5_CALLCONV krb5_stdcc_get_name
-(krb5_context, krb5_ccache id );
-
-krb5_error_code KRB5_CALLCONV krb5_stdcc_get_principal
-(krb5_context, krb5_ccache id , krb5_principal *princ );
-
-krb5_error_code KRB5_CALLCONV krb5_stdcc_initialize
-(krb5_context, krb5_ccache id , krb5_principal princ );
-
-krb5_error_code KRB5_CALLCONV krb5_stdcc_next_cred
-(krb5_context,
- krb5_ccache id ,
- krb5_cc_cursor *cursor ,
- krb5_creds *creds );
-
-krb5_error_code KRB5_CALLCONV krb5_stdcc_resolve
-(krb5_context, krb5_ccache *id , const char *residual );
-
-krb5_error_code KRB5_CALLCONV krb5_stdcc_retrieve
-(krb5_context,
- krb5_ccache id ,
- krb5_flags whichfields ,
- krb5_creds *mcreds ,
- krb5_creds *creds );
-
-krb5_error_code KRB5_CALLCONV krb5_stdcc_start_seq_get
-(krb5_context, krb5_ccache id , krb5_cc_cursor *cursor );
-
-krb5_error_code KRB5_CALLCONV krb5_stdcc_store
-(krb5_context, krb5_ccache id , krb5_creds *creds );
-
-krb5_error_code KRB5_CALLCONV krb5_stdcc_set_flags
-(krb5_context, krb5_ccache id , krb5_flags flags );
-
-krb5_error_code KRB5_CALLCONV krb5_stdcc_get_flags
-(krb5_context, krb5_ccache id , krb5_flags *flags );
-
-krb5_error_code KRB5_CALLCONV krb5_stdcc_remove
-(krb5_context, krb5_ccache id , krb5_flags flags, krb5_creds *creds);
-#endif
#endif /* defined(_WIN32) || defined(USE_CCAPI) */
diff --git a/src/lib/krb5/ccache/ccapi/stdcc_util.c b/src/lib/krb5/ccache/ccapi/stdcc_util.c
index b7d728e03..91f2bd5a7 100644
--- a/src/lib/krb5/ccache/ccapi/stdcc_util.c
+++ b/src/lib/krb5/ccache/ccapi/stdcc_util.c
@@ -24,9 +24,6 @@
#define fieldSize 255
-#ifdef USE_CCAPI_V3
-
-
static void
free_cc_array (cc_data **io_cc_array)
{
@@ -528,538 +525,4 @@ cred_union_release (cc_credentials_union *in_cred_union)
return 0;
}
-#else /* !USE_CCAPI_V3 */
-/*
- * CopyCCDataArrayToK5
- * - copy and translate the null terminated arrays of data records
- * used in k5 tickets
- */
-int copyCCDataArrayToK5(cc_creds *ccCreds, krb5_creds *v5Creds, char whichArray) {
-
- if (whichArray == kAddressArray) {
- if (ccCreds->addresses == NULL) {
- v5Creds->addresses = NULL;
- } else {
-
- krb5_address **addrPtr, *addr;
- cc_data **dataPtr, *data;
- unsigned int numRecords = 0;
-
- /* Allocate the array of pointers: */
- for (dataPtr = ccCreds->addresses; *dataPtr != NULL; numRecords++, dataPtr++) {}
-
- v5Creds->addresses = (krb5_address **) malloc (sizeof(krb5_address *) * (numRecords + 1));
- if (v5Creds->addresses == NULL)
- return ENOMEM;
-
- /* Fill in the array, allocating the address structures: */
- for (dataPtr = ccCreds->addresses, addrPtr = v5Creds->addresses; *dataPtr != NULL; addrPtr++, dataPtr++) {
-
- *addrPtr = (krb5_address *) malloc (sizeof(krb5_address));
- if (*addrPtr == NULL)
- return ENOMEM;
- data = *dataPtr;
- addr = *addrPtr;
-
- addr->addrtype = data->type;
- addr->magic = KV5M_ADDRESS;
- addr->length = data->length;
- addr->contents = (krb5_octet *) malloc (sizeof(krb5_octet) * addr->length);
- if (addr->contents == NULL)
- return ENOMEM;
- memmove(addr->contents, data->data, addr->length); /* copy contents */
- }
-
- /* Write terminator: */
- *addrPtr = NULL;
- }
- }
-
- if (whichArray == kAuthDataArray) {
- if (ccCreds->authdata == NULL) {
- v5Creds->authdata = NULL;
- } else {
- krb5_authdata **authPtr, *auth;
- cc_data **dataPtr, *data;
- unsigned int numRecords = 0;
-
- /* Allocate the array of pointers: */
- for (dataPtr = ccCreds->authdata; *dataPtr != NULL; numRecords++, dataPtr++) {}
-
- v5Creds->authdata = (krb5_authdata **) malloc (sizeof(krb5_authdata *) * (numRecords + 1));
- if (v5Creds->authdata == NULL)
- return ENOMEM;
-
- /* Fill in the array, allocating the address structures: */
- for (dataPtr = ccCreds->authdata, authPtr = v5Creds->authdata; *dataPtr != NULL; authPtr++, dataPtr++) {
-
- *authPtr = (krb5_authdata *) malloc (sizeof(krb5_authdata));
- if (*authPtr == NULL)
- return ENOMEM;
- data = *dataPtr;
- auth = *authPtr;
-
- auth->ad_type = data->type;
- auth->magic = KV5M_AUTHDATA;
- auth->length = data->length;
- auth->contents = (krb5_octet *) malloc (sizeof(krb5_octet) * auth->length);
- if (auth->contents == NULL)
- return ENOMEM;
- memmove(auth->contents, data->data, auth->length); /* copy contents */
- }
-
- /* Write terminator: */
- *authPtr = NULL;
- }
- }
-
- return 0;
-}
-
-/*
- * copyK5DataArrayToCC
- * - analogous to above, but in the other direction
- */
-int copyK5DataArrayToCC(krb5_creds *v5Creds, cc_creds *ccCreds, char whichArray)
-{
- if (whichArray == kAddressArray) {
- if (v5Creds->addresses == NULL) {
- ccCreds->addresses = NULL;
- } else {
-
- krb5_address **addrPtr, *addr;
- cc_data **dataPtr, *data;
- unsigned int numRecords = 0;
-
- /* Allocate the array of pointers: */
- for (addrPtr = v5Creds->addresses; *addrPtr != NULL; numRecords++, addrPtr++) {}
-
- ccCreds->addresses = (cc_data **) malloc (sizeof(cc_data *) * (numRecords + 1));
- if (ccCreds->addresses == NULL)
- return ENOMEM;
-
- /* Fill in the array, allocating the address structures: */
- for (dataPtr = ccCreds->addresses, addrPtr = v5Creds->addresses; *addrPtr != NULL; addrPtr++, dataPtr++) {
-
- *dataPtr = (cc_data *) malloc (sizeof(cc_data));
- if (*dataPtr == NULL)
- return ENOMEM;
- data = *dataPtr;
- addr = *addrPtr;
-
- data->type = addr->addrtype;
- data->length = addr->length;
- data->data = malloc (sizeof(char) * data->length);
- if (data->data == NULL)
- return ENOMEM;
- memmove(data->data, addr->contents, data->length); /* copy contents */
- }
-
- /* Write terminator: */
- *dataPtr = NULL;
- }
- }
-
- if (whichArray == kAuthDataArray) {
- if (v5Creds->authdata == NULL) {
- ccCreds->authdata = NULL;
- } else {
- krb5_authdata **authPtr, *auth;
- cc_data **dataPtr, *data;
- unsigned int numRecords = 0;
-
- /* Allocate the array of pointers: */
- for (authPtr = v5Creds->authdata; *authPtr != NULL; numRecords++, authPtr++) {}
-
- ccCreds->authdata = (cc_data **) malloc (sizeof(cc_data *) * (numRecords + 1));
- if (ccCreds->authdata == NULL)
- return ENOMEM;
-
- /* Fill in the array, allocating the address structures: */
- for (dataPtr = ccCreds->authdata, authPtr = v5Creds->authdata; *authPtr != NULL; authPtr++, dataPtr++) {
-
- *dataPtr = (cc_data *) malloc (sizeof(cc_data));
- if (*dataPtr == NULL)
- return ENOMEM;
- data = *dataPtr;
- auth = *authPtr;
-
- data->type = auth->ad_type;
- data->length = auth->length;
- data->data = malloc (sizeof(char) * data->length);
- if (data->data == NULL)
- return ENOMEM;
- memmove(data->data, auth->contents, data->length); /* copy contents */
- }
-
- /* Write terminator: */
- *dataPtr = NULL;
- }
- }
-
- return 0;
-}
-
-/*
- * dupcctok5
- * - allocate an empty k5 style ticket and copy info from the cc_creds ticket
- */
-
-void dupCCtoK5(krb5_context context, cc_creds *src, krb5_creds *dest)
-{
- krb5_int32 offset_seconds = 0, offset_microseconds = 0;
- int err;
-
- /*
- * allocate and copy
- * copy all of those damn fields back
- */
- err = krb5_parse_name(context, src->client, &(dest->client));
- err = krb5_parse_name(context, src->server, &(dest->server));
- if (err) return; /* parsename fails w/o krb5.ini for example */
-
- /* copy keyblock */
- dest->keyblock.enctype = src->keyblock.type;
- dest->keyblock.length = src->keyblock.length;
- dest->keyblock.contents = (krb5_octet *)malloc(dest->keyblock.length);
- memcpy(dest->keyblock.contents, src->keyblock.data, dest->keyblock.length);
-
- /* copy times */
-#if TARGET_OS_MAC
- err = krb5_get_time_offsets(context, &offset_seconds, &offset_microseconds);
- if (err) return;
-#endif
- dest->times.authtime = ts_incr(src->authtime, offset_seconds);
- dest->times.starttime = ts_incr(src->starttime, offset_seconds);
- dest->times.endtime = ts_incr(src->endtime, offset_seconds);
- dest->times.renew_till = ts_incr(src->renew_till, offset_seconds);
- dest->is_skey = src->is_skey;
- dest->ticket_flags = src->ticket_flags;
-
- /* more branching fields */
- err = copyCCDataArrayToK5(src, dest, kAddressArray);
- if (err) return;
-
- dest->ticket.length = src->ticket.length;
- dest->ticket.data = (char *)malloc(src->ticket.length);
- memcpy(dest->ticket.data, src->ticket.data, src->ticket.length);
- dest->second_ticket.length = src->second_ticket.length;
- (dest->second_ticket).data = ( char *)malloc(src->second_ticket.length);
- memcpy(dest->second_ticket.data, src->second_ticket.data, src->second_ticket.length);
-
- /* zero out magic number */
- dest->magic = 0;
-
- /* authdata */
- err = copyCCDataArrayToK5(src, dest, kAuthDataArray);
- if (err) return;
-
- return;
-}
-
-/*
- * dupK5toCC
- * - analogous to above but in the reverse direction
- */
-void dupK5toCC(krb5_context context, krb5_creds *creds, cred_union **cu)
-{
- cc_creds *c;
- int err;
- krb5_int32 offset_seconds = 0, offset_microseconds = 0;
-
- if (cu == NULL) return;
-
- /* allocate the cred_union */
- *cu = (cred_union *)malloc(sizeof(cred_union));
- if ((*cu) == NULL)
- return;
-
- (*cu)->cred_type = CC_CRED_V5;
-
- /* allocate creds structure (and install) */
- c = (cc_creds *)malloc(sizeof(cc_creds));
- if (c == NULL) return;
- (*cu)->cred.pV5Cred = c;
-
- /* convert krb5 principals to flat principals */
- err = krb5_unparse_name(context, creds->client, &(c->client));
- err = krb5_unparse_name(context, creds->server, &(c->server));
- if (err) return;
-
- /* copy more fields */
- c->keyblock.type = creds->keyblock.enctype;
- c->keyblock.length = creds->keyblock.length;
-
- if (creds->keyblock.contents != NULL) {
- c->keyblock.data = (unsigned char *)malloc(creds->keyblock.length);
- memcpy(c->keyblock.data, creds->keyblock.contents, creds->keyblock.length);
- } else {
- c->keyblock.data = NULL;
- }
-
-#if TARGET_OS_MAC
- err = krb5_get_time_offsets(context, &offset_seconds, &offset_microseconds);
- if (err) return;
-#endif
- c->authtime = ts_incr(creds->times.authtime, -offset_seconds);
- c->starttime = ts_incr(creds->times.starttime, -offset_seconds);
- c->endtime = ts_incr(creds->times.endtime, -offset_seconds);
- c->renew_till = ts_incr(creds->times.renew_till, -offset_seconds);
- c->is_skey = creds->is_skey;
- c->ticket_flags = creds->ticket_flags;
-
- err = copyK5DataArrayToCC(creds, c, kAddressArray);
- if (err) return;
-
- c->ticket.length = creds->ticket.length;
- if (creds->ticket.data != NULL) {
- c->ticket.data = (unsigned char *)malloc(creds->ticket.length);
- memcpy(c->ticket.data, creds->ticket.data, creds->ticket.length);
- } else {
- c->ticket.data = NULL;
- }
-
- c->second_ticket.length = creds->second_ticket.length;
- if (creds->second_ticket.data != NULL) {
- c->second_ticket.data = (unsigned char *)malloc(creds->second_ticket.length);
- memcpy(c->second_ticket.data, creds->second_ticket.data, creds->second_ticket.length);
- } else {
- c->second_ticket.data = NULL;
- }
-
- err = copyK5DataArrayToCC(creds, c, kAuthDataArray);
- if (err) return;
-
- return;
-}
-
-/* ----- free_cc_cred_union, etc -------------- */
-/*
- Since the Kerberos5 library allocates a credentials cache structure
- (in dupK5toCC() above) with its own memory allocation routines - which
- may be different than how the CCache allocates memory - the Kerb5 library
- must have its own version of cc_free_creds() to deallocate it. These
- functions do that. The top-level function to substitute for cc_free_creds()
- is krb5_free_cc_cred_union().
-
- If the CCache library wants to use a cred_union structure created by
- the Kerb5 library, it should make a deep copy of it to "translate" to its
- own memory allocation space.
-*/
-static void deep_free_cc_data (cc_data data)
-{
- if (data.data != NULL)
- free (data.data);
-}
-
-static void deep_free_cc_data_array (cc_data** data) {
-
- unsigned int i;
-
- if (data == NULL)
- return;
-
- for (i = 0; data [i] != NULL; i++) {
- deep_free_cc_data (*(data [i]));
- free (data [i]);
- }
-
- free (data);
-}
-
-static void deep_free_cc_v5_creds (cc_creds* creds)
-{
- if (creds == NULL)
- return;
-
- if (creds -> client != NULL)
- free (creds -> client);
- if (creds -> server != NULL)
- free (creds -> server);
-
- deep_free_cc_data (creds -> keyblock);
- deep_free_cc_data (creds -> ticket);
- deep_free_cc_data (creds -> second_ticket);
-
- deep_free_cc_data_array (creds -> addresses);
- deep_free_cc_data_array (creds -> authdata);
-
- free(creds);
-}
-
-static void deep_free_cc_creds (cred_union creds)
-{
- if (creds.cred_type == CC_CRED_V5) {
- deep_free_cc_v5_creds (creds.cred.pV5Cred);
- }
-}
-
-/* top-level exported function */
-cc_int32 krb5int_free_cc_cred_union (cred_union** creds)
-{
- if (creds == NULL)
- return CC_BAD_PARM;
-
- if (*creds != NULL) {
- deep_free_cc_creds (**creds);
- free (*creds);
- *creds = NULL;
- }
-
- return CC_NOERROR;
-}
-#endif
-
-/*
- * Utility functions...
- */
-static krb5_boolean
-times_match(t1, t2)
- const krb5_ticket_times *t1;
- const krb5_ticket_times *t2;
-{
- if (t1->renew_till) {
- if (ts_after(t1->renew_till, t2->renew_till))
- return FALSE; /* this one expires too late */
- }
- if (t1->endtime) {
- if (ts_after(t1->endtime, t2->endtime))
- return FALSE; /* this one expires too late */
- }
- /* only care about expiration on a times_match */
- return TRUE;
-}
-
-static krb5_boolean
-times_match_exact (t1, t2)
- const krb5_ticket_times *t1, *t2;
-{
- return (t1->authtime == t2->authtime
- && t1->starttime == t2->starttime
- && t1->endtime == t2->endtime
- && t1->renew_till == t2->renew_till);
-}
-
-static krb5_boolean
-standard_fields_match(context, mcreds, creds)
- krb5_context context;
- const krb5_creds *mcreds, *creds;
-{
- if (mcreds->client != NULL &&
- !krb5_principal_compare(context, mcreds->client, creds->client))
- return FALSE;
- if (mcreds->server != NULL &&
- !krb5_principal_compare(context, mcreds->server,creds->server))
- return FALSE;
- return TRUE;
-}
-
-/* only match the server name portion, not the server realm portion */
-
-static krb5_boolean
-srvname_match(context, mcreds, creds)
- krb5_context context;
- const krb5_creds *mcreds, *creds;
-{
- if (mcreds->client != NULL &&
- !krb5_principal_compare(context, mcreds->client, creds->client))
- return FALSE;
- if (mcreds->server != NULL &&
- !krb5_principal_compare_any_realm(context, mcreds->server,
- creds->server))
- return FALSE;
- return TRUE;
-}
-
-
-static krb5_boolean
-authdata_match(mdata, data)
- krb5_authdata *const *mdata, *const *data;
-{
- const krb5_authdata *mdatap, *datap;
-
- if (mdata == data)
- return TRUE;
-
- if (mdata == NULL)
- return *data == NULL;
-
- if (data == NULL)
- return *mdata == NULL;
-
- while ((mdatap = *mdata)
- && (datap = *data)
- && mdatap->ad_type == datap->ad_type
- && mdatap->length == datap->length
- && !memcmp ((char *) mdatap->contents, (char *) datap->contents,
- datap->length)) {
- mdata++;
- data++;
- }
-
- return !*mdata && !*data;
-}
-
-static krb5_boolean
-data_match(data1, data2)
- const krb5_data *data1, *data2;
-{
- if (!data1) {
- if (!data2)
- return TRUE;
- else
- return FALSE;
- }
- if (!data2) return FALSE;
-
- if (data1->length != data2->length)
- return FALSE;
- else
- return memcmp(data1->data, data2->data, data1->length) ? FALSE : TRUE;
-}
-
-#define MATCH_SET(bits) (whichfields & bits)
-#define flags_match(a,b) (((a) & (b)) == (a))
-
-/* stdccCredsMatch
- * - check to see if the creds match based on the whichFields variable
- * NOTE: if whichfields is zero we are now comparing 'standard fields.'
- * This is the bug that was killing fetch for a
- * week. The behaviour is what krb5 expects, however.
- */
-int stdccCredsMatch(krb5_context context, krb5_creds *base,
- krb5_creds *match, int whichfields)
-{
- if (((MATCH_SET(KRB5_TC_MATCH_SRV_NAMEONLY) &&
- srvname_match(context, match, base)) ||
- standard_fields_match(context, match, base))
- &&
- (! MATCH_SET(KRB5_TC_MATCH_IS_SKEY) ||
- match->is_skey == base->is_skey)
- &&
- (! MATCH_SET(KRB5_TC_MATCH_FLAGS_EXACT) ||
- match->ticket_flags == base->ticket_flags)
- &&
- (! MATCH_SET(KRB5_TC_MATCH_FLAGS) ||
- flags_match(match->ticket_flags, base->ticket_flags))
- &&
- (! MATCH_SET(KRB5_TC_MATCH_TIMES_EXACT) ||
- times_match_exact(&match->times, &base->times))
- &&
- (! MATCH_SET(KRB5_TC_MATCH_TIMES) ||
- times_match(&match->times, &base->times))
- &&
- (! MATCH_SET(KRB5_TC_MATCH_AUTHDATA) ||
- authdata_match (match->authdata, base->authdata))
- &&
- (! MATCH_SET(KRB5_TC_MATCH_2ND_TKT) ||
- data_match (&match->second_ticket, &base->second_ticket))
- &&
- ((! MATCH_SET(KRB5_TC_MATCH_KTYPE))||
- (match->keyblock.enctype == base->keyblock.enctype))
- )
- return TRUE;
- return FALSE;
-}
-
#endif /* defined(_WIN32) || defined(USE_CCAPI) */
diff --git a/src/lib/krb5/ccache/ccapi/stdcc_util.h b/src/lib/krb5/ccache/ccapi/stdcc_util.h
index 6836d548f..34e438dfd 100644
--- a/src/lib/krb5/ccache/ccapi/stdcc_util.h
+++ b/src/lib/krb5/ccache/ccapi/stdcc_util.h
@@ -8,20 +8,11 @@
#include "autoconf.h"
-#if USE_CCAPI_V3
#include <CredentialsCache.h>
-#else
-#if defined(_WIN32)
-#include "cacheapi.h"
-#else
-#include <CredentialsCache2.h>
-#endif
-#endif
#include "krb5.h"
/* prototypes for private functions declared in stdcc_util.c */
-#ifdef USE_CCAPI_V3
krb5_error_code
copy_cc_cred_union_to_krb5_creds (krb5_context in_context,
const cc_credentials_union *in_cred_union,
@@ -33,15 +24,6 @@ copy_krb5_creds_to_cc_cred_union (krb5_context in_context,
krb5_error_code
cred_union_release (cc_credentials_union *in_cred_union);
-#else
-int copyCCDataArrayToK5(cc_creds *cc, krb5_creds *kc, char whichArray);
-int copyK5DataArrayToCC(krb5_creds *kc, cc_creds *cc, char whichArray);
-void dupCCtoK5(krb5_context context, cc_creds *src, krb5_creds *dest);
-void dupK5toCC(krb5_context context, krb5_creds *creds, cred_union **cu);
-cc_int32 krb5int_free_cc_cred_union (cred_union** creds);
-#endif
-int stdccCredsMatch(krb5_context context, krb5_creds *base, krb5_creds *match, int whichfields);
-int bitTst(int var, int mask);
#define kAddressArray 4
#define kAuthDataArray 5
diff --git a/src/lib/krb5/ccache/ccapi/winccld.h b/src/lib/krb5/ccache/ccapi/winccld.h
index df34e3346..d617d4d20 100644
--- a/src/lib/krb5/ccache/ccapi/winccld.h
+++ b/src/lib/krb5/ccache/ccapi/winccld.h
@@ -7,62 +7,13 @@
#ifndef KRB5_WINCCLD_H_
#define KRB5_WINCCLD_H_
-#ifdef USE_CCAPI_V3
#include <CredentialsCache.h>
-#else
-
-#ifndef CC_API_VER2
-#define CC_API_VER2
-#endif
-
-#include "cacheapi.h"
-#endif
-#ifdef USE_CCAPI_V3
typedef CCACHE_API cc_int32 (*FP_cc_initialize) (
cc_context_t* outContext,
cc_int32 inVersion,
cc_int32* outSupportedVersion,
char const** outVendor);
-#else
-typedef cc_int32 (*FP_cc_initialize)(apiCB**, const cc_int32,
- cc_int32*, const char**);
-typedef cc_int32 (*FP_cc_shutdown)(apiCB**);
-typedef cc_int32 (*FP_cc_get_change_time)(apiCB*, cc_time_t*);
-typedef cc_int32 (*FP_cc_create)(apiCB*, const char*, const char*,
- const enum cc_cred_vers, const cc_int32, ccache_p**);
-typedef cc_int32 (*FP_cc_open)(apiCB*, const char*, const enum cc_cred_vers,
- const cc_int32, ccache_p**);
-typedef cc_int32 (*FP_cc_close)(apiCB*, ccache_p**);
-typedef cc_int32 (*FP_cc_destroy)(apiCB*, ccache_p**);
-typedef cc_int32 (*FP_cc_seq_fetch_NCs)(apiCB*, ccache_p**, ccache_cit**);
-typedef cc_int32 (*FP_cc_seq_fetch_NCs_begin)(apiCB*, ccache_cit**);
-typedef cc_int32 (*FP_cc_seq_fetch_NCs_next)(apiCB*, ccache_p**, ccache_cit*);
-typedef cc_int32 (*FP_cc_seq_fetch_NCs_end)(apiCB*, ccache_cit**);
-typedef cc_int32 (*FP_cc_get_NC_info)(apiCB*, struct _infoNC***);
-typedef cc_int32 (*FP_cc_free_NC_info)(apiCB*, struct _infoNC***);
-typedef cc_int32 (*FP_cc_get_name)(apiCB*, const ccache_p*, char**);
-typedef cc_int32 (*FP_cc_set_principal)(apiCB*, const ccache_p*,
- const enum cc_cred_vers, const char*);
-typedef cc_int32 (*FP_cc_get_principal)(apiCB*, ccache_p*, char**);
-typedef cc_int32 (*FP_cc_get_cred_version)(apiCB*, const ccache_p*,
- enum cc_cred_vers*);
-typedef cc_int32 (*FP_cc_lock_request)(apiCB*, const ccache_p*,
- const cc_int32);
-typedef cc_int32 (*FP_cc_store)(apiCB*, const ccache_p*, const cred_union);
-typedef cc_int32 (*FP_cc_remove_cred)(apiCB*, const ccache_p*,
- const cred_union);
-typedef cc_int32 (*FP_cc_seq_fetch_creds)(apiCB*, const ccache_p*,
- cred_union**, ccache_cit**);
-typedef cc_int32 (*FP_cc_seq_fetch_creds_begin)(apiCB*, const ccache_p*,
- ccache_cit**);
-typedef cc_int32 (*FP_cc_seq_fetch_creds_next)(apiCB*, cred_union**,
- ccache_cit*);
-typedef cc_int32 (*FP_cc_seq_fetch_creds_end)(apiCB*, ccache_cit**);
-typedef cc_int32 (*FP_cc_free_principal)(apiCB*, char**);
-typedef cc_int32 (*FP_cc_free_name)(apiCB*, char** name);
-typedef cc_int32 (*FP_cc_free_creds)(apiCB*, cred_union** pCred);
-#endif
#ifdef KRB5_WINCCLD_C_
typedef struct _FUNC_INFO {
@@ -78,58 +29,10 @@ typedef struct _FUNC_INFO {
#endif
DECL_FUNC_PTR(cc_initialize);
-#ifndef USE_CCAPI_V3
-DECL_FUNC_PTR(cc_shutdown);
-DECL_FUNC_PTR(cc_get_change_time);
-DECL_FUNC_PTR(cc_create);
-DECL_FUNC_PTR(cc_open);
-DECL_FUNC_PTR(cc_close);
-DECL_FUNC_PTR(cc_destroy);
-DECL_FUNC_PTR(cc_get_name);
-DECL_FUNC_PTR(cc_set_principal);
-DECL_FUNC_PTR(cc_get_principal);
-DECL_FUNC_PTR(cc_get_cred_version);
-DECL_FUNC_PTR(cc_store);
-DECL_FUNC_PTR(cc_remove_cred);
-#ifdef CC_API_VER2
-DECL_FUNC_PTR(cc_seq_fetch_creds_begin);
-DECL_FUNC_PTR(cc_seq_fetch_creds_next);
-DECL_FUNC_PTR(cc_seq_fetch_creds_end);
-#else
-DECL_FUNC_PTR(cc_seq_fetch_creds);
-#endif
-DECL_FUNC_PTR(cc_free_principal);
-DECL_FUNC_PTR(cc_free_name);
-DECL_FUNC_PTR(cc_free_creds);
-#endif
#ifdef KRB5_WINCCLD_C_
FUNC_INFO krbcc_fi[] = {
MAKE_FUNC_INFO(cc_initialize),
-#ifndef USE_CCAPI_V3
- MAKE_FUNC_INFO(cc_shutdown),
- MAKE_FUNC_INFO(cc_get_change_time),
- MAKE_FUNC_INFO(cc_create),
- MAKE_FUNC_INFO(cc_open),
- MAKE_FUNC_INFO(cc_close),
- MAKE_FUNC_INFO(cc_destroy),
- MAKE_FUNC_INFO(cc_get_name),
- MAKE_FUNC_INFO(cc_set_principal),
- MAKE_FUNC_INFO(cc_get_principal),
- MAKE_FUNC_INFO(cc_get_cred_version),
- MAKE_FUNC_INFO(cc_store),
- MAKE_FUNC_INFO(cc_remove_cred),
-#ifdef CC_API_VER2
- MAKE_FUNC_INFO(cc_seq_fetch_creds_begin),
- MAKE_FUNC_INFO(cc_seq_fetch_creds_next),
- MAKE_FUNC_INFO(cc_seq_fetch_creds_end),
-#else
- MAKE_FUNC_INFO(cc_seq_fetch_creds),
-#endif
- MAKE_FUNC_INFO(cc_free_principal),
- MAKE_FUNC_INFO(cc_free_name),
- MAKE_FUNC_INFO(cc_free_creds),
-#endif
END_FUNC_INFO
};
#undef MAKE_FUNC_INFO
@@ -137,30 +40,6 @@ FUNC_INFO krbcc_fi[] = {
#else
#define cc_initialize pcc_initialize
-#ifndef USE_CCAPI_V3
-#define cc_shutdown pcc_shutdown
-#define cc_get_change_time pcc_get_change_time
-#define cc_create pcc_create
-#define cc_open pcc_open
-#define cc_close pcc_close
-#define cc_destroy pcc_destroy
-#define cc_get_name pcc_get_name
-#define cc_set_principal pcc_set_principal
-#define cc_get_principal pcc_get_principal
-#define cc_get_cred_version pcc_get_cred_version
-#define cc_store pcc_store
-#define cc_remove_cred pcc_remove_cred
-#ifdef CC_API_VER2
-#define cc_seq_fetch_creds_begin pcc_seq_fetch_creds_begin
-#define cc_seq_fetch_creds_next pcc_seq_fetch_creds_next
-#define cc_seq_fetch_creds_end pcc_seq_fetch_creds_end
-#else
-#define cc_seq_fetch_creds pcc_seq_fetch_creds
-#endif
-#define cc_free_principal pcc_free_principal
-#define cc_free_name pcc_free_name
-#define cc_free_creds pcc_free_creds
-#endif
#endif
#undef DECL_FUNC_PTR
diff --git a/src/lib/krb5/ccache/ccbase.c b/src/lib/krb5/ccache/ccbase.c
index 8d5bcef74..43da47e5b 100644
--- a/src/lib/krb5/ccache/ccbase.c
+++ b/src/lib/krb5/ccache/ccbase.c
@@ -51,7 +51,7 @@ static struct krb5_cc_typelist cc_lcc_entry = { &krb5_lcc_ops, NEXT };
#define NEXT &cc_lcc_entry
#endif
-#ifdef USE_CCAPI_V3
+#ifdef USE_CCAPI
extern const krb5_cc_ops krb5_cc_stdcc_ops;
static struct krb5_cc_typelist cc_stdcc_entry = { &krb5_cc_stdcc_ops, NEXT };
#undef NEXT
@@ -562,7 +562,7 @@ k5_cccol_lock(krb5_context context)
#ifdef USE_KEYRING_CCACHE
k5_cc_mutex_lock(context, &krb5int_krcc_mutex);
#endif
-#ifdef USE_CCAPI_V3
+#ifdef USE_CCAPI
ret = krb5_stdccv3_context_lock(context);
if (ret) {
k5_cc_mutex_unlock(context, &krb5int_mcc_mutex);
@@ -587,7 +587,7 @@ k5_cccol_unlock(krb5_context context)
k5_mutex_lock(&cc_typelist_lock);
/* unlock each type in the opposite order */
-#ifdef USE_CCAPI_V3
+#ifdef USE_CCAPI
krb5_stdccv3_context_unlock(context);
#endif
#ifdef USE_KEYRING_CCACHE
@@ -621,7 +621,7 @@ k5_cccol_force_unlock()
#ifdef USE_KEYRING_CCACHE
k5_cc_mutex_force_unlock(&krb5int_krcc_mutex);
#endif
-#ifdef USE_CCAPI_V3
+#ifdef USE_CCAPI
krb5_stdccv3_context_unlock(NULL);
#endif
k5_cc_mutex_force_unlock(&krb5int_mcc_mutex);
More information about the cvs-krb5
mailing list