summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Basch <probe@mit.edu>1996-01-11 12:05:07 +0000
committerRichard Basch <probe@mit.edu>1996-01-11 12:05:07 +0000
commit06464ee3e73fd75c670066acbb855c2319b77e4b (patch)
treeb4d196081228514d43bcfc5780904a5c86a8fe74
parentbc9a7bd5f5aa9a73fc6a58383800c98e2123b118 (diff)
downloadkrb5-06464ee3e73fd75c670066acbb855c2319b77e4b.tar.gz
krb5-06464ee3e73fd75c670066acbb855c2319b77e4b.tar.xz
krb5-06464ee3e73fd75c670066acbb855c2319b77e4b.zip
Set the enctype to ENCTYPE_UNKNOWN when the enctype should be determined from
the stash file. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@7306 dc483132-0cff-0310-8789-dd5450dbe970
-rw-r--r--src/admin/edit/kdb5_edit.c4
-rw-r--r--src/kadmin/v5server/srv_key.c12
-rw-r--r--src/kdc/main.c4
3 files changed, 14 insertions, 6 deletions
diff --git a/src/admin/edit/kdb5_edit.c b/src/admin/edit/kdb5_edit.c
index 838d44f20..b6e92d7a5 100644
--- a/src/admin/edit/kdb5_edit.c
+++ b/src/admin/edit/kdb5_edit.c
@@ -251,10 +251,10 @@ char *kdb5_edit_Init(argc, argv)
if (manual_mkey)
master_keyblock.enctype = DEFAULT_KDC_ENCTYPE;
else
- master_keyblock.enctype = NULL;
+ master_keyblock.enctype = ENCTYPE_UNKNOWN;
}
- if (master_keyblock.enctype) {
+ if (master_keyblock.enctype != ENCTYPE_UNKNOWN) {
if (!valid_enctype(master_keyblock.enctype)) {
char tmp[32];
if (krb5_enctype_to_string(master_keyblock.enctype,
diff --git a/src/kadmin/v5server/srv_key.c b/src/kadmin/v5server/srv_key.c
index 25e709833..e0910e61c 100644
--- a/src/kadmin/v5server/srv_key.c
+++ b/src/kadmin/v5server/srv_key.c
@@ -367,7 +367,12 @@ key_init(kcontext, debug_level, key_type, master_key_name, manual,
/*
* Figure out arguments.
*/
- master_keyblock.enctype=((key_type == -1) ? DEFAULT_KDC_ENCTYPE : key_type);
+ if (key_type == -1)
+ master_keyblock.enctype =
+ manual ? DEFAULT_KDC_ENCTYPE : ENCTYPE_UNKNOWN;
+ else
+ master_keyblock.enctype = key_type;
+
mkey_name = ((!master_key_name) ? KRB5_KDB_M_NAME : master_key_name);
/*
@@ -466,7 +471,9 @@ key_init(kcontext, debug_level, key_type, master_key_name, manual,
}
ment_init = 1;
- krb5_use_enctype(kcontext, &master_encblock, master_keyblock.enctype);
+ /* krb5_db_fetch_mkey will setup the eblock if it is reading the stash */
+ if (manual)
+ krb5_use_enctype(kcontext, &master_encblock, master_keyblock.enctype);
/* Go get the master key */
kret = krb5_db_fetch_mkey(kcontext,
@@ -739,7 +746,6 @@ key_string2key_keysalt(ksent, ptr)
*/
if ((kret = krb5_string_to_key(argp->context,
&master_encblock,
- kdata->key_data_type[0],
&key,
argp->string,
&salt)))
diff --git a/src/kdc/main.c b/src/kdc/main.c
index 27c38c66f..c2671388a 100644
--- a/src/kdc/main.c
+++ b/src/kdc/main.c
@@ -697,7 +697,7 @@ initialize_realms(kcontext, argc, argv)
char *rcname = KDCRCACHE;
char *lrealm;
krb5_error_code retval;
- krb5_enctype menctype = ENCTYPE_DES_CBC_CRC;
+ krb5_enctype menctype = ENCTYPE_UNKNOWN;
kdc_realm_t *rdatap;
krb5_boolean manual = FALSE;
char *default_ports = 0;
@@ -742,6 +742,8 @@ initialize_realms(kcontext, argc, argv)
break;
case 'm': /* manual type-in of master key */
manual = TRUE;
+ if (menctype == ENCTYPE_UNKNOWN)
+ menctype = ENCTYPE_DES_CBC_CRC;
break;
case 'M': /* master key name in DB */
mkey_name = optarg;