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:
17
admin/add.c
17
admin/add.c
@@ -78,24 +78,9 @@ 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");
|
||||
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);
|
||||
if((keytab = ktutil_open_keytab()) == NULL)
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (verbose_flag)
|
||||
fprintf (stderr, "Using keytab %s\n", keytab_string);
|
||||
|
||||
memset(&entry, 0, sizeof(entry));
|
||||
if(principal_string == NULL) {
|
||||
printf("Principal: ");
|
||||
|
@@ -150,24 +150,9 @@ 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");
|
||||
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);
|
||||
if((keytab = ktutil_open_keytab()) == NULL)
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (verbose_flag)
|
||||
fprintf (stderr, "Using keytab %s\n", keytab_string);
|
||||
|
||||
j = 0;
|
||||
max = 10;
|
||||
princs = malloc (max * sizeof(*princs));
|
||||
|
17
admin/get.c
17
admin/get.c
@@ -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");
|
||||
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);
|
||||
if((keytab = ktutil_open_keytab()) == NULL)
|
||||
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,
|
||||
|
@@ -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)
|
||||
{
|
||||
|
@@ -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);
|
||||
|
@@ -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");
|
||||
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);
|
||||
if((keytab = ktutil_open_keytab()) == NULL)
|
||||
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);
|
||||
|
@@ -96,24 +96,9 @@ 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");
|
||||
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);
|
||||
if((keytab = ktutil_open_keytab()) == NULL)
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (verbose_flag)
|
||||
fprintf (stderr, "Using keytab %s\n", keytab_string);
|
||||
|
||||
entry.principal = principal;
|
||||
entry.keyblock.keytype = enctype;
|
||||
entry.vno = kvno;
|
||||
|
Reference in New Issue
Block a user