move common code for opening the keytab to ktutil.c

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@10383 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Johan Danielsson
2001-07-23 09:46:41 +00:00
parent fd34ebd90c
commit 4d7d46d8b7
7 changed files with 36 additions and 79 deletions

View File

@@ -78,23 +78,8 @@ kt_add(int argc, char **argv)
arg_printusage(args, num_args, "ktutil add", "");
return 1;
}
if (keytab_string == NULL) {
ret = krb5_kt_default_modify_name (context, keytab_buf,
sizeof(keytab_buf));
if (ret) {
krb5_warn(context, ret, "krb5_kt_default_modify_name");
if((keytab = ktutil_open_keytab()) == NULL)
return 1;
}
keytab_string = keytab_buf;
}
ret = krb5_kt_resolve(context, keytab_string, &keytab);
if (ret) {
krb5_warn(context, ret, "resolving keytab %s", keytab_string);
return 1;
}
if (verbose_flag)
fprintf (stderr, "Using keytab %s\n", keytab_string);
memset(&entry, 0, sizeof(entry));
if(principal_string == NULL) {

View File

@@ -150,23 +150,8 @@ kt_change (int argc, char **argv)
return 1;
}
if (keytab_string == NULL) {
ret = krb5_kt_default_modify_name (context, keytab_buf,
sizeof(keytab_buf));
if (ret) {
krb5_warn(context, ret, "krb5_kt_default_modify_name");
if((keytab = ktutil_open_keytab()) == NULL)
return 1;
}
keytab_string = keytab_buf;
}
ret = krb5_kt_resolve(context, keytab_string, &keytab);
if (ret) {
krb5_warn(context, ret, "resolving keytab %s", keytab_string);
return 1;
}
if (verbose_flag)
fprintf (stderr, "Using keytab %s\n", keytab_string);
j = 0;
max = 10;

View File

@@ -87,20 +87,8 @@ kt_get(int argc, char **argv)
return 1;
}
if (keytab_string == NULL) {
ret = krb5_kt_default_modify_name (context, keytab_buf,
sizeof(keytab_buf));
if (ret) {
krb5_warn(context, ret, "krb5_kt_default_modify_name");
if((keytab = ktutil_open_keytab()) == NULL)
return 1;
}
keytab_string = keytab_buf;
}
ret = krb5_kt_resolve(context, keytab_string, &keytab);
if (ret) {
krb5_warn(context, ret, "resolving keytab %s", keytab_string);
return 1;
}
if (etype_strs.num_strings) {
int i;
@@ -140,6 +128,9 @@ kt_get(int argc, char **argv)
conf.mask |= KADM5_CONFIG_KADMIND_PORT;
}
/* should get realm from each principal, instead of doing
everything with the same (local) realm */
ret = kadm5_init_with_password_ctx(context,
principal,
NULL,

View File

@@ -40,7 +40,7 @@ static int help_flag;
static int version_flag;
int verbose_flag;
char *keytab_string;
char keytab_buf[256];
static char keytab_buf[256];
static int help(int argc, char **argv);
@@ -108,6 +108,31 @@ static int num_args = sizeof(args) / sizeof(args[0]);
krb5_context context;
krb5_keytab
ktutil_open_keytab(void)
{
krb5_error_code ret;
krb5_keytab keytab;
if (keytab_string == NULL) {
ret = krb5_kt_default_modify_name (context, keytab_buf,
sizeof(keytab_buf));
if (ret) {
krb5_warn(context, ret, "krb5_kt_default_modify_name");
return NULL;
}
keytab_string = keytab_buf;
}
ret = krb5_kt_resolve(context, keytab_string, &keytab);
if (ret) {
krb5_warn(context, ret, "resolving keytab %s", keytab_string);
return NULL;
}
if (verbose_flag)
fprintf (stderr, "Using keytab %s\n", keytab_string);
return keytab;
}
static int
help(int argc, char **argv)
{

View File

@@ -71,7 +71,8 @@ extern krb5_context context;
extern int verbose_flag;
extern char *keytab_string;
extern char keytab_buf[256];
krb5_keytab ktutil_open_keytab(void);
int kt_add (int argc, char **argv);
int kt_change (int argc, char **argv);

View File

@@ -132,20 +132,8 @@ kt_purge(int argc, char **argv)
return 1;
}
if (keytab_string == NULL) {
ret = krb5_kt_default_modify_name (context, keytab_buf,
sizeof(keytab_buf));
if (ret) {
krb5_warn(context, ret, "krb5_kt_default_modify_name");
if((keytab = ktutil_open_keytab()) == NULL)
return 1;
}
keytab_string = keytab_buf;
}
ret = krb5_kt_resolve(context, keytab_string, &keytab);
if (ret) {
krb5_warn(context, ret, "resolving keytab %s", keytab_string);
return 1;
}
ret = krb5_kt_start_seq_get(context, keytab, &cursor);
if(ret){
@@ -153,9 +141,6 @@ kt_purge(int argc, char **argv)
goto out;
}
if (verbose_flag)
fprintf (stderr, "Using keytab %s\n", keytab_string);
while((ret = krb5_kt_next_entry(context, keytab, &entry, &cursor)) == 0) {
add_entry (entry.principal, entry.vno, &head);
krb5_kt_free_entry(context, &entry);

View File

@@ -96,23 +96,8 @@ kt_remove(int argc, char **argv)
return 1;
}
if (keytab_string == NULL) {
ret = krb5_kt_default_modify_name (context, keytab_buf,
sizeof(keytab_buf));
if (ret) {
krb5_warn(context, ret, "krb5_kt_default_modify_name");
if((keytab = ktutil_open_keytab()) == NULL)
return 1;
}
keytab_string = keytab_buf;
}
ret = krb5_kt_resolve(context, keytab_string, &keytab);
if (ret) {
krb5_warn(context, ret, "resolving keytab %s", keytab_string);
return 1;
}
if (verbose_flag)
fprintf (stderr, "Using keytab %s\n", keytab_string);
entry.principal = principal;
entry.keyblock.keytype = enctype;