krb5: Improve cccol sub naming; add gss_store_cred_into2()
commit7bf4d76e75e904dd65a0fbb90c9cad981245f714
authorNicolas Williams <nico@twosigma.com>
Thu, 23 Jan 2020 01:18:14 +0000 (22 19:18 -0600)
committerNicolas Williams <nico@twosigma.com>
Mon, 2 Mar 2020 23:48:04 +0000 (2 17:48 -0600)
treec090bc4abe87dab946dd6797538eb0ba4cfa7099
parenta7359d689809263ef844f899c782b58e21e8165d
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?
33 files changed:
kcm/glue.c
kuser/kinit.c
lib/gssapi/gssapi/gssapi.h
lib/gssapi/gssapi_mech.h
lib/gssapi/krb5/accept_sec_context.c
lib/gssapi/krb5/copy_ccache.c
lib/gssapi/krb5/external.c
lib/gssapi/krb5/set_cred_option.c
lib/gssapi/krb5/store_cred.c
lib/gssapi/libgssapi-exports.def
lib/gssapi/mech/gss_store_cred_into.c
lib/gssapi/ntlm/external.c
lib/gssapi/spnego/external.c
lib/gssapi/test_add_store_cred.c
lib/gssapi/version-script.map
lib/krb5/acache.c
lib/krb5/cache.c
lib/krb5/dcache.c
lib/krb5/fcache.c
lib/krb5/kcm.c
lib/krb5/krb5.h
lib/krb5/krcache.c
lib/krb5/libkrb5-exports.def.in
lib/krb5/mcache.c
lib/krb5/scache.c
lib/krb5/test_cc.c
lib/krb5/verify_krb5_conf.c
lib/krb5/version-script.map
tests/gss/check-basic.in
tests/gss/check-context.in
tests/kdc/Makefile.am
tests/kdc/check-cc.in
tests/kdc/krb5-cccol.conf.in [new file with mode: 0644]