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", "");
|
arg_printusage(args, num_args, "ktutil add", "");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if (keytab_string == NULL) {
|
if((keytab = ktutil_open_keytab()) == 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);
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
|
||||||
|
|
||||||
if (verbose_flag)
|
|
||||||
fprintf (stderr, "Using keytab %s\n", keytab_string);
|
|
||||||
|
|
||||||
memset(&entry, 0, sizeof(entry));
|
memset(&entry, 0, sizeof(entry));
|
||||||
if(principal_string == NULL) {
|
if(principal_string == NULL) {
|
||||||
printf("Principal: ");
|
printf("Principal: ");
|
||||||
|
@@ -150,24 +150,9 @@ kt_change (int argc, char **argv)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (keytab_string == NULL) {
|
if((keytab = ktutil_open_keytab()) == 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);
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
|
||||||
|
|
||||||
if (verbose_flag)
|
|
||||||
fprintf (stderr, "Using keytab %s\n", keytab_string);
|
|
||||||
|
|
||||||
j = 0;
|
j = 0;
|
||||||
max = 10;
|
max = 10;
|
||||||
princs = malloc (max * sizeof(*princs));
|
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;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (keytab_string == NULL) {
|
if((keytab = ktutil_open_keytab()) == 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);
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
|
||||||
|
|
||||||
if (etype_strs.num_strings) {
|
if (etype_strs.num_strings) {
|
||||||
int i;
|
int i;
|
||||||
@@ -140,6 +128,9 @@ kt_get(int argc, char **argv)
|
|||||||
conf.mask |= KADM5_CONFIG_KADMIND_PORT;
|
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,
|
ret = kadm5_init_with_password_ctx(context,
|
||||||
principal,
|
principal,
|
||||||
NULL,
|
NULL,
|
||||||
|
@@ -40,7 +40,7 @@ static int help_flag;
|
|||||||
static int version_flag;
|
static int version_flag;
|
||||||
int verbose_flag;
|
int verbose_flag;
|
||||||
char *keytab_string;
|
char *keytab_string;
|
||||||
char keytab_buf[256];
|
static char keytab_buf[256];
|
||||||
|
|
||||||
static int help(int argc, char **argv);
|
static int help(int argc, char **argv);
|
||||||
|
|
||||||
@@ -108,6 +108,31 @@ static int num_args = sizeof(args) / sizeof(args[0]);
|
|||||||
|
|
||||||
krb5_context context;
|
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
|
static int
|
||||||
help(int argc, char **argv)
|
help(int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
@@ -71,7 +71,8 @@ extern krb5_context context;
|
|||||||
|
|
||||||
extern int verbose_flag;
|
extern int verbose_flag;
|
||||||
extern char *keytab_string;
|
extern char *keytab_string;
|
||||||
extern char keytab_buf[256];
|
|
||||||
|
krb5_keytab ktutil_open_keytab(void);
|
||||||
|
|
||||||
int kt_add (int argc, char **argv);
|
int kt_add (int argc, char **argv);
|
||||||
int kt_change (int argc, char **argv);
|
int kt_change (int argc, char **argv);
|
||||||
|
@@ -132,20 +132,8 @@ kt_purge(int argc, char **argv)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (keytab_string == NULL) {
|
if((keytab = ktutil_open_keytab()) == 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);
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
|
||||||
|
|
||||||
ret = krb5_kt_start_seq_get(context, keytab, &cursor);
|
ret = krb5_kt_start_seq_get(context, keytab, &cursor);
|
||||||
if(ret){
|
if(ret){
|
||||||
@@ -153,9 +141,6 @@ kt_purge(int argc, char **argv)
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (verbose_flag)
|
|
||||||
fprintf (stderr, "Using keytab %s\n", keytab_string);
|
|
||||||
|
|
||||||
while((ret = krb5_kt_next_entry(context, keytab, &entry, &cursor)) == 0) {
|
while((ret = krb5_kt_next_entry(context, keytab, &entry, &cursor)) == 0) {
|
||||||
add_entry (entry.principal, entry.vno, &head);
|
add_entry (entry.principal, entry.vno, &head);
|
||||||
krb5_kt_free_entry(context, &entry);
|
krb5_kt_free_entry(context, &entry);
|
||||||
|
@@ -96,24 +96,9 @@ kt_remove(int argc, char **argv)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (keytab_string == NULL) {
|
if((keytab = ktutil_open_keytab()) == 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);
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
|
||||||
|
|
||||||
if (verbose_flag)
|
|
||||||
fprintf (stderr, "Using keytab %s\n", keytab_string);
|
|
||||||
|
|
||||||
entry.principal = principal;
|
entry.principal = principal;
|
||||||
entry.keyblock.keytype = enctype;
|
entry.keyblock.keytype = enctype;
|
||||||
entry.vno = kvno;
|
entry.vno = kvno;
|
||||||
|
Reference in New Issue
Block a user