summaryrefslogtreecommitdiffstats
path: root/src/admin/stash
diff options
context:
space:
mode:
authorPaul Park <pjpark@mit.edu>1995-07-17 19:35:58 +0000
committerPaul Park <pjpark@mit.edu>1995-07-17 19:35:58 +0000
commit98b59e5b55dda7eef896bb9edfc36a5b13b1eccb (patch)
treee24aa5a4973411a7df959bd677960864c42b874b /src/admin/stash
parent014c25c2a4825abf099bd91a01daa5f33be0839e (diff)
downloadkrb5-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/ChangeLog7
-rw-r--r--src/admin/stash/configure.in1
-rw-r--r--src/admin/stash/kdb5_stash.c45
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);