diff options
| author | Chris Provenzano <proven@mit.edu> | 1995-07-27 08:44:42 +0000 |
|---|---|---|
| committer | Chris Provenzano <proven@mit.edu> | 1995-07-27 08:44:42 +0000 |
| commit | 17a888de38b276e6fc5ed4420bced0465510ee19 (patch) | |
| tree | d301b5bbec4b43153559292d651ffd65f6143de3 /src/admin/create | |
| parent | 4f0debdb553c49e68b36ee4e0ece3d2f32e4ae03 (diff) | |
| download | krb5-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/ChangeLog | 4 | ||||
| -rw-r--r-- | src/admin/create/kdb5_create.c | 56 |
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; } |
