krb5: Improve cccol sub naming; add gss_store_cred_into2()
- Formalize the TYPE:collection_name:subsidiary_name naming scheme for ccaches in ccache collections - KEYRING: ccaches are weird because they have one more optional field: the "anchor", so rather than just assume a naming convention everywhere, we add new functions as well - Add krb5_cc_{resolve,default}_sub() that allows one to specify a "subsidiary" ccache name in a collection separately from the collection name - Add krb5_cc_{resolve,default}_for() which take a principal name, unparse it, and use it as the subsidiary ccache name (with colons replaced) - Make kinit use the new interfaces - Add missing DIR ccache iteration functionality - Revamps test_cc - Add krb5_cc_get_collection() and krb5_cc_get_subsidiary() - Bump the ccops SPI version number - Add gss_store_cred_into2() - Make MEMORY:anonymous not linked into the global MEMORY ccache collection, and uses this for delegated cred handles TBD: - Split this up into a krb5 change and gss mech_krb5 change? - Add krb5_cc_init_and_store() utility, per Greg's suggestion?
This commit is contained in:
@@ -491,13 +491,16 @@ typedef struct krb5_creds {
|
||||
|
||||
typedef struct krb5_cc_cache_cursor_data *krb5_cc_cache_cursor;
|
||||
|
||||
#define KRB5_CC_OPS_VERSION 3
|
||||
#define KRB5_CC_OPS_VERSION 4
|
||||
|
||||
typedef struct krb5_cc_ops {
|
||||
int version;
|
||||
const char *prefix;
|
||||
const char* (KRB5_CALLCONV * get_name)(krb5_context, krb5_ccache);
|
||||
krb5_error_code (KRB5_CALLCONV * resolve)(krb5_context, krb5_ccache *, const char *);
|
||||
krb5_error_code (KRB5_CALLCONV * get_name)(krb5_context, krb5_ccache,
|
||||
const char **, const char **,
|
||||
const char **);
|
||||
krb5_error_code (KRB5_CALLCONV * resolve)(krb5_context, krb5_ccache *, const char *,
|
||||
const char *);
|
||||
krb5_error_code (KRB5_CALLCONV * gen_new)(krb5_context, krb5_ccache *);
|
||||
krb5_error_code (KRB5_CALLCONV * init)(krb5_context, krb5_ccache, krb5_principal);
|
||||
krb5_error_code (KRB5_CALLCONV * destroy)(krb5_context, krb5_ccache);
|
||||
|
Reference in New Issue
Block a user