summaryrefslogtreecommitdiffstats
path: root/src/tests/create
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2010-07-06 21:53:23 +0000
committerGreg Hudson <ghudson@mit.edu>2010-07-06 21:53:23 +0000
commit8e78a7eeb7266329891971090d2666f5c6a13ad0 (patch)
treeb5d8a1827176cd1fdc9da5983181ee25c30b31b8 /src/tests/create
parent4a1d6a694452122f71d876e39ee335ea7ee022b6 (diff)
downloadkrb5-8e78a7eeb7266329891971090d2666f5c6a13ad0.tar.gz
krb5-8e78a7eeb7266329891971090d2666f5c6a13ad0.tar.xz
krb5-8e78a7eeb7266329891971090d2666f5c6a13ad0.zip
Remove count parameters from get_principal, put_principal,
free_principal, delete_principal, and get_policy. Make get_principal allocate the DB entry container. Fold krb5_db_get_principal_ext into krb5_db_get_principal. ticket: 6749 status: open git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@24175 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/tests/create')
-rw-r--r--src/tests/create/kdb5_mkdums.c79
1 files changed, 30 insertions, 49 deletions
diff --git a/src/tests/create/kdb5_mkdums.c b/src/tests/create/kdb5_mkdums.c
index 0d860b909..f451307d7 100644
--- a/src/tests/create/kdb5_mkdums.c
+++ b/src/tests/create/kdb5_mkdums.c
@@ -70,7 +70,6 @@ usage(who, status)
int master_princ_set = 0;
krb5_keyblock master_keyblock;
krb5_principal master_princ;
-krb5_db_entry master_entry;
krb5_pointer master_random;
krb5_context test_context;
@@ -202,9 +201,8 @@ main(argc, argv)
com_err(progname, retval, "while closing database");
exit(1);
}
- if (master_princ_set) {
+ if (master_princ_set)
krb5_free_principal(test_context, master_princ);
- }
krb5_free_context(test_context);
exit(0);
}
@@ -216,10 +214,15 @@ add_princ(context, str_newprinc)
{
krb5_error_code retval;
krb5_principal newprinc;
- krb5_db_entry newentry;
+ krb5_db_entry *newentry;
char princ_name[4096];
- memset(&newentry, 0, sizeof(newentry));
+ newentry = krb5_db_alloc(context, NULL, sizeof(*newentry));
+ if (newentry == NULL) {
+ com_err(progname, ENOMEM, "while allocating DB entry");
+ return;
+ }
+ memset(newentry, 0, sizeof(*newentry));
snprintf(princ_name, sizeof(princ_name), "%s@%s", str_newprinc, cur_realm);
if ((retval = krb5_parse_name(context, princ_name, &newprinc))) {
com_err(progname, retval, "while parsing '%s'", princ_name);
@@ -227,15 +230,15 @@ add_princ(context, str_newprinc)
}
/* Add basic data */
- newentry.len = KRB5_KDB_V1_BASE_LENGTH;
- newentry.attributes = mblock.flags;
- newentry.max_life = mblock.max_life;
- newentry.max_renewable_life = mblock.max_rlife;
- newentry.expiration = mblock.expiration;
- newentry.pw_expiration = mblock.expiration;
+ newentry->len = KRB5_KDB_V1_BASE_LENGTH;
+ newentry->attributes = mblock.flags;
+ newentry->max_life = mblock.max_life;
+ newentry->max_renewable_life = mblock.max_rlife;
+ newentry->expiration = mblock.expiration;
+ newentry->pw_expiration = mblock.expiration;
/* Add princ to db entry */
- if ((retval = krb5_copy_principal(context, newprinc, &newentry.princ))) {
+ if ((retval = krb5_copy_principal(context, newprinc, &newentry->princ))) {
com_err(progname, retval, "while encoding princ to db entry for '%s'",
princ_name);
krb5_free_principal(context, newprinc);
@@ -252,7 +255,7 @@ add_princ(context, str_newprinc)
krb5_free_principal(context, newprinc);
goto error;
}
- retval = krb5_dbe_update_mod_princ_data(context, &newentry, now,
+ retval = krb5_dbe_update_mod_princ_data(context, newentry, now,
master_princ);
if (retval) {
com_err(progname, retval, "while encoding mod_princ data");
@@ -285,7 +288,7 @@ add_princ(context, str_newprinc)
}
krb5_free_data_contents(context, &salt);
- if ((retval = krb5_dbe_create_key_data(context, &newentry))) {
+ if ((retval = krb5_dbe_create_key_data(context, newentry))) {
com_err(progname, retval, "while creating key_data for '%s'",
princ_name);
free(key.contents);
@@ -294,7 +297,7 @@ add_princ(context, str_newprinc)
if ((retval = krb5_dbe_encrypt_key_data(context, &master_keyblock,
&key, NULL, 1,
- newentry.key_data))) {
+ newentry->key_data))) {
com_err(progname, retval, "while encrypting key for '%s'",
princ_name);
free(key.contents);
@@ -303,26 +306,15 @@ add_princ(context, str_newprinc)
free(key.contents);
}
- {
- int one = 1;
-
- if ((retval = krb5_db_put_principal(context, &newentry, &one))) {
- com_err(progname, retval, "while storing principal date");
- goto error;
- }
- if (one != 1) {
- com_err(progname,0,"entry not stored in database (unknown failure)");
- goto error;
- }
+ if ((retval = krb5_db_put_principal(context, newentry))) {
+ com_err(progname, retval, "while storing principal date");
+ goto error;
}
fprintf(stdout, "Added %s to database\n", princ_name);
error: /* Do cleanup of newentry regardless of error */
-#if 0
- krb5_dbe_free_contents(context, &newentry);
-#endif
- krb5_db_free_principal(context, &newentry, 1);
+ krb5_db_free_principal(context, newentry);
return;
}
@@ -332,11 +324,10 @@ set_dbname_help(pname, dbname)
char *dbname;
{
krb5_error_code retval;
- int nentries;
- krb5_boolean more;
krb5_data pwd, scratch;
char *args[2];
krb5_keylist_node *mkeys;
+ krb5_db_entry *master_entry;
/* assemble & parse the master key name */
@@ -401,30 +392,20 @@ set_dbname_help(pname, dbname)
return(1);
}
krb5_db_free_mkey_list(test_context, mkeys);
- nentries = 1;
- if ((retval = krb5_db_get_principal(test_context, master_princ,
- &master_entry, &nentries, &more))) {
+ if ((retval = krb5_db_get_principal(test_context, master_princ, 0,
+ &master_entry))) {
com_err(pname, retval, "while retrieving master entry");
(void) krb5_db_fini(test_context);
return(1);
- } else if (more) {
- com_err(pname, KRB5KDC_ERR_PRINCIPAL_NOT_UNIQUE,
- "while retrieving master entry");
- (void) krb5_db_fini(test_context);
- return(1);
- } else if (!nentries) {
- com_err(pname, KRB5_KDB_NOENTRY, "while retrieving master entry");
- (void) krb5_db_fini(test_context);
- return(1);
}
- mblock.max_life = master_entry.max_life;
- mblock.max_rlife = master_entry.max_renewable_life;
- mblock.expiration = master_entry.expiration;
+ mblock.max_life = master_entry->max_life;
+ mblock.max_rlife = master_entry->max_renewable_life;
+ mblock.expiration = master_entry->expiration;
/* don't set flags, master has some extra restrictions */
- mblock.mkvno = master_entry.key_data[0].key_data_kvno;
+ mblock.mkvno = master_entry->key_data[0].key_data_kvno;
- krb5_db_free_principal(test_context, &master_entry, nentries);
+ krb5_db_free_principal(test_context, master_entry);
return 0;
}