diff options
| author | Paul Park <pjpark@mit.edu> | 1995-07-17 19:35:58 +0000 |
|---|---|---|
| committer | Paul Park <pjpark@mit.edu> | 1995-07-17 19:35:58 +0000 |
| commit | 98b59e5b55dda7eef896bb9edfc36a5b13b1eccb (patch) | |
| tree | e24aa5a4973411a7df959bd677960864c42b874b /src/admin/stash | |
| parent | 014c25c2a4825abf099bd91a01daa5f33be0839e (diff) | |
| download | krb5-98b59e5b55dda7eef896bb9edfc36a5b13b1eccb.tar.gz krb5-98b59e5b55dda7eef896bb9edfc36a5b13b1eccb.tar.xz krb5-98b59e5b55dda7eef896bb9edfc36a5b13b1eccb.zip | |
Add KDC profile and stash file support
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@6304 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/admin/stash')
| -rw-r--r-- | src/admin/stash/ChangeLog | 7 | ||||
| -rw-r--r-- | src/admin/stash/configure.in | 1 | ||||
| -rw-r--r-- | src/admin/stash/kdb5_stash.c | 45 |
3 files changed, 51 insertions, 2 deletions
diff --git a/src/admin/stash/ChangeLog b/src/admin/stash/ChangeLog index 65ca88b74..f0f9a9603 100644 --- a/src/admin/stash/ChangeLog +++ b/src/admin/stash/ChangeLog @@ -1,4 +1,11 @@ +Mon Jul 17 15:02:29 EDT 1995 Paul Park (pjpark@mit.edu) + * configure.in - Add KADM library. + * kdb5_stash.c - Change calling sequence to krb5_db_fetch_mkey(). Add + KDC profile reading/handling as a supplement to command line + arguments. + + Fri Jul 7 15:38:50 EDT 1995 Paul Park (pjpark@mit.edu) * Makefile.in - Remove all explicit library handling and LDFLAGS. * configure.in - Add USE_KDB5_LIBRARY and KRB5_LIBRARIES. diff --git a/src/admin/stash/configure.in b/src/admin/stash/configure.in index eb8220e6d..c37cbcf82 100644 --- a/src/admin/stash/configure.in +++ b/src/admin/stash/configure.in @@ -15,6 +15,7 @@ else fi AC_SUBST(DBFLAGS)dnl dnl +USE_KADM_LIBRARY USE_KDB5_LIBRARY KRB5_LIBRARIES V5_USE_SHARED_LIB diff --git a/src/admin/stash/kdb5_stash.c b/src/admin/stash/kdb5_stash.c index 1cc87def0..6d5157316 100644 --- a/src/admin/stash/kdb5_stash.c +++ b/src/admin/stash/kdb5_stash.c @@ -26,6 +26,8 @@ #include "k5-int.h" #include "com_err.h" +#include "adm.h" +#include "adm_proto.h" #include <stdio.h> extern int errno; @@ -54,12 +56,13 @@ char *argv[]; extern char *optarg; int optchar; krb5_error_code retval; - char *dbname = DEFAULT_KDB_FILE; + char *dbname = (char *) NULL; char *realm = 0; char *mkey_name = 0; char *mkey_fullname; char *keyfile = 0; krb5_context context; + krb5_realm_params *rparams; int keytypedone = 0; krb5_enctype etype = 0xffff; @@ -98,6 +101,43 @@ char *argv[]; } } + /* + * Attempt to read the KDC profile. If we do, then read appropriate values + * from it and augment values supplied on the command line. + */ + if (!(retval = krb5_read_realm_params(context, + realm, + (char *) NULL, + (char *) NULL, + &rparams))) { + /* Get the value for the database */ + if (rparams->realm_dbname && !dbname) + dbname = strdup(rparams->realm_dbname); + + /* Get the value for the master key name */ + if (rparams->realm_mkey_name && !mkey_name) + mkey_name = strdup(rparams->realm_mkey_name); + + /* Get the value for the master key type */ + if (rparams->realm_keytype_valid && !keytypedone) { + master_keyblock.keytype = rparams->realm_keytype; + keytypedone++; + } + + /* Get the value for the stash file */ + if (rparams->realm_stash_file && !keyfile) + keyfile = strdup(rparams->realm_stash_file); + + /* Get the value for the encryption type */ + if (rparams->realm_enctype_valid && (etype == 0xffff)) + etype = rparams->realm_enctype; + + krb5_free_realm_params(context, rparams); + } + + if (!dbname) + dbname = DEFAULT_KDB_FILE; + if (!keytypedone) master_keyblock.keytype = DEFAULT_KDC_KEYTYPE; @@ -146,7 +186,8 @@ char *argv[]; /* TRUE here means read the keyboard, but only once */ if (retval = krb5_db_fetch_mkey(context, master_princ, &master_encblock, - TRUE, FALSE, 0, &master_keyblock)) { + TRUE, FALSE, (char *) NULL, + 0, &master_keyblock)) { com_err(argv[0], retval, "while reading master key"); (void) krb5_db_fini(context); exit(1); |
