From: Andreas Schneider Date: Wed, 7 Sep 2016 16:33:43 +0000 (+0200) Subject: Add krb5_db_register_keytab() X-Git-Tag: krb5-1.15-beta1~53 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2e99582062d9d6a70f2adb00fd8fe58a1f95b9b7;p=thirdparty%2Fkrb5.git Add krb5_db_register_keytab() Add a public libkdb5 function to register the KDB keytab type. This functionality is needed for out-of-tree KDC servers such as the Samba kpasswd service. [ghudson@mit.edu: edited comments, whitespace, commit message] ticket: 8494 (new) --- diff --git a/src/include/kdb.h b/src/include/kdb.h index c6dd15f46d..e9d1a84ba1 100644 --- a/src/include/kdb.h +++ b/src/include/kdb.h @@ -837,6 +837,13 @@ krb5_dbe_free_strings(krb5_context, krb5_string_attr *, int count); void krb5_dbe_free_string(krb5_context, char *); +/* + * Register the KDB keytab type, allowing "KDB:" to be used as a keytab name. + * For this type to work, the context used for keytab operations must have an + * associated database handle (via krb5_db_open()). + */ +krb5_error_code krb5_db_register_keytab(krb5_context context); + #define KRB5_KDB_DEF_FLAGS 0 #define KDB_MAX_DB_NAME 128 diff --git a/src/lib/kdb/keytab.c b/src/lib/kdb/keytab.c index b85b67daac..c6aa100daf 100644 --- a/src/lib/kdb/keytab.c +++ b/src/lib/kdb/keytab.c @@ -65,6 +65,12 @@ typedef struct krb5_ktkdb_data { char * name; } krb5_ktkdb_data; +krb5_error_code +krb5_db_register_keytab(krb5_context context) +{ + return krb5_kt_register(context, &krb5_kt_kdb_ops); +} + krb5_error_code krb5_ktkdb_resolve(context, name, id) krb5_context context; diff --git a/src/lib/kdb/libkdb5.exports b/src/lib/kdb/libkdb5.exports index f7b3061d4a..5df596aa47 100644 --- a/src/lib/kdb/libkdb5.exports +++ b/src/lib/kdb/libkdb5.exports @@ -87,6 +87,7 @@ krb5_db_delete_policy krb5_db_free_policy krb5_def_store_mkey_list krb5_db_promote +krb5_db_register_keytab ulog_add_update ulog_init_header ulog_map