summaryrefslogtreecommitdiffstats
path: root/src/kadmin/v5server
diff options
context:
space:
mode:
authorPaul Park <pjpark@mit.edu>1995-08-09 21:25:23 +0000
committerPaul Park <pjpark@mit.edu>1995-08-09 21:25:23 +0000
commit2112e946095b18056fc8a126eee72c43939d845b (patch)
tree4f83fb1089764cc92ccb27e4829a6d011debc1b5 /src/kadmin/v5server
parentf45a85530e0e807b33f9b01a7f835bf428df9447 (diff)
downloadkrb5-2112e946095b18056fc8a126eee72c43939d845b.tar.gz
krb5-2112e946095b18056fc8a126eee72c43939d845b.tar.xz
krb5-2112e946095b18056fc8a126eee72c43939d845b.zip
Add krb5_use_keytype for each keytype
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@6487 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/kadmin/v5server')
-rw-r--r--src/kadmin/v5server/srv_key.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/kadmin/v5server/srv_key.c b/src/kadmin/v5server/srv_key.c
index c09a19090..5a60462a7 100644
--- a/src/kadmin/v5server/srv_key.c
+++ b/src/kadmin/v5server/srv_key.c
@@ -649,6 +649,7 @@ key_string2key_keysalt(ksent, ptr)
* Determine if this key/salt pair is salted.
*/
salted = 0;
+ krb5_use_keytype(argp->context, &master_encblock, ksent->ks_keytype);
if (!key_name_to_data(argp->dbentry, ksent, -1, &kdata)) {
if (kdata->key_data_length[1] && kdata->key_data_contents[1])
salted = 1;
@@ -833,6 +834,7 @@ key_randomkey_keysalt(ksent, ptr)
argp = (struct keysalt_iterate_args *) ptr;
kret = 0;
+ krb5_use_keytype(argp->context, &master_encblock, ksent->ks_keytype);
if (key_name_to_data(argp->dbentry, ksent, -1, &kdata)) {
/*
* Cannot find a name-to-data matching, so we must have to create a
@@ -953,6 +955,9 @@ key_encrypt_keys(kcontext, dbentp, nkeysp, inkeys, outkeysp)
ndone = 0;
nkeys = *nkeysp;
for (i=0; i<nkeys; i++) {
+ krb5_use_keytype(kcontext,
+ &master_encblock,
+ (krb5_keytype) inkeys[i].key_data_type[0]);
if (!(kret = krb5_dbe_create_key_data(kcontext, &loser))) {
tmpkey.keytype = inkeys[i].key_data_type[0];
tmpkey.length = inkeys[i].key_data_length[0];
@@ -1026,6 +1031,9 @@ key_decrypt_keys(kcontext, dbentp, nkeysp, inkeys, outkeysp)
ndone = 0;
nkeys = *nkeysp;
for (i=0; i<nkeys; i++) {
+ krb5_use_keytype(kcontext,
+ &master_encblock,
+ (krb5_keytype) inkeys[i].key_data_type[0]);
if (!(kret = krb5_dbe_create_key_data(kcontext, &loser))) {
if (kret = krb5_dbekd_decrypt_key_data(kcontext,
&master_encblock,
@@ -1139,6 +1147,15 @@ key_admin_key()
}
/*
+ * key_master_encblock() - Return pointer to master encryption block.
+ */
+krb5_encrypt_block *
+key_master_encblock()
+{
+ return((mencb_init) ? &master_encblock : (krb5_encrypt_block *) NULL);
+}
+
+/*
* key_free_key_data() - Free a krb5_key_data array.
*/
void