Add krb5_use_keytype for each keytype
authorPaul Park <pjpark@mit.edu>
Wed, 9 Aug 1995 21:25:23 +0000 (21:25 +0000)
committerPaul Park <pjpark@mit.edu>
Wed, 9 Aug 1995 21:25:23 +0000 (21:25 +0000)
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@6487 dc483132-0cff-0310-8789-dd5450dbe970

src/kadmin/v5server/srv_key.c

index c09a190904cfa7b9b5d015a093a119a857de70d0..5a60462a7953755e8406a86e6d46d0aef376736a 100644 (file)
@@ -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,
@@ -1138,6 +1146,15 @@ key_admin_key()
     return((madmin_key_init) ? &madmin_key : (krb5_keyblock *) NULL);
 }
 \f
+/*
+ * key_master_encblock()       - Return pointer to master encryption block.
+ */
+krb5_encrypt_block *
+key_master_encblock()
+{
+    return((mencb_init) ? &master_encblock : (krb5_encrypt_block *) NULL);
+}
+\f
 /*
  * key_free_key_data()         - Free a krb5_key_data array.
  */