summaryrefslogtreecommitdiffstats
path: root/src/admin/create
diff options
context:
space:
mode:
authorChris Provenzano <proven@mit.edu>1995-07-27 08:44:42 +0000
committerChris Provenzano <proven@mit.edu>1995-07-27 08:44:42 +0000
commit17a888de38b276e6fc5ed4420bced0465510ee19 (patch)
treed301b5bbec4b43153559292d651ffd65f6143de3 /src/admin/create
parent4f0debdb553c49e68b36ee4e0ece3d2f32e4ae03 (diff)
downloadkrb5-17a888de38b276e6fc5ed4420bced0465510ee19.tar.gz
krb5-17a888de38b276e6fc5ed4420bced0465510ee19.tar.xz
krb5-17a888de38b276e6fc5ed4420bced0465510ee19.zip
Use new kdb format
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@6329 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/admin/create')
-rw-r--r--src/admin/create/ChangeLog4
-rw-r--r--src/admin/create/kdb5_create.c56
2 files changed, 37 insertions, 23 deletions
diff --git a/src/admin/create/ChangeLog b/src/admin/create/ChangeLog
index 79a305406..3f2447ea6 100644
--- a/src/admin/create/ChangeLog
+++ b/src/admin/create/ChangeLog
@@ -1,4 +1,8 @@
+Thu Jul 27 02:59:05 1995 Chris Provenzano (proven@mit.edu)
+
+ * kdb5_create.c : Use new kdb format.
+
Mon Jul 17 14:58:00 EDT 1995 Paul Park (pjpark@mit.edu)
* configure.in - Add KADM library.
* kdb5_create.c - Add KDC profile reading/handling as a supplement to
diff --git a/src/admin/create/kdb5_create.c b/src/admin/create/kdb5_create.c
index 07d724130..ef243c6d6 100644
--- a/src/admin/create/kdb5_create.c
+++ b/src/admin/create/kdb5_create.c
@@ -360,37 +360,51 @@ add_principal(context, princ, op, pblock)
enum ap_op op;
struct realm_info *pblock;
{
- krb5_db_entry entry;
- krb5_error_code retval;
- krb5_encrypted_keyblock ekey;
- krb5_keyblock *rkey;
- int nentries = 1;
+ krb5_error_code retval;
+ krb5_db_entry entry;
+ krb5_keyblock * rkey;
+
+ krb5_tl_mod_princ mod_princ;
+
+ int nentries = 1;
memset((char *) &entry, 0, sizeof(entry));
- entry.principal = princ;
- entry.kvno = 1;
+
+ entry.mkvno = 1;
+ entry.len = KRB5_KDB_V1_BASE_LENGTH;
+ entry.attributes = pblock->flags;
entry.max_life = pblock->max_life;
entry.max_renewable_life = pblock->max_rlife;
- entry.mkvno = 1;
entry.expiration = pblock->expiration;
- entry.mod_name = &db_create_princ;
- if (retval = krb5_timeofday(context, &entry.mod_date))
- return retval;
- entry.attributes = pblock->flags;
+ if (retval = krb5_copy_principal(context, princ, &entry.princ))
+ goto error_out;
+
+ mod_princ.mod_princ = &db_create_princ;
+ if (retval = krb5_timeofday(context, &mod_princ.mod_date))
+ goto error_out;
+ if (retval = krb5_dbe_encode_mod_princ_data(context, &mod_princ, &entry))
+ goto error_out;
+
+ if ((entry.key_data=(krb5_key_data*)malloc(sizeof(krb5_key_data))) == NULL)
+ goto error_out;
+ memset((char *) entry.key_data, 0, sizeof(krb5_key_data));
+ entry.n_key_data = 1;
switch (op) {
case MASTER_KEY:
entry.attributes |= KRB5_KDB_DISALLOW_ALL_TIX;
- if (retval = krb5_kdb_encrypt_key(context, pblock->eblock,
- &master_keyblock, &ekey))
+ if (retval = krb5_dbekd_encrypt_key_data(context, pblock->eblock,
+ &master_keyblock, NULL,
+ 1, entry.key_data))
return retval;
break;
case RANDOM_KEY:
if (retval = krb5_random_key(context, pblock->eblock,
pblock->rseed, &rkey))
return retval;
- retval = krb5_kdb_encrypt_key(context, pblock->eblock, rkey, &ekey);
+ retval = krb5_dbekd_encrypt_key_data(context, pblock->eblock, rkey,
+ NULL, 1, entry.key_data);
krb5_free_keyblock(context, rkey);
if (retval)
return retval;
@@ -400,14 +414,10 @@ add_principal(context, princ, op, pblock)
default:
break;
}
- entry.key = ekey;
- entry.salt_type = KRB5_KDB_SALTTYPE_NORMAL;
- entry.salt_length = 0;
- entry.salt = 0;
- if (retval = krb5_db_put_principal(context, &entry, &nentries))
- return retval;
+ retval = krb5_db_put_principal(context, &entry, &nentries);
- krb5_xfree(ekey.contents);
- return 0;
+error_out:;
+ krb5_dbe_free_contents(context, &entry);
+ return retval;
}