Ask for password before calling get_in_tkt. This makes it possible to

call key_proc more than once.


git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@2465 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Johan Danielsson
1997-07-19 07:54:21 +00:00
parent bb48e3930a
commit 7f13df2470

View File

@@ -80,7 +80,8 @@ main (int argc, char **argv)
krb5_preauthtype pre_auth_types[] = {KRB5_PADATA_ENC_TIMESTAMP};
int c;
char *realm;
char pwbuf[128];
union {
krb5_flags i;
KDCOptions f;
@@ -125,13 +126,9 @@ main (int argc, char **argv)
krb5_get_err_text(context, ret));
if(argv[0]){
char *p;
ret = krb5_parse_name (context, argv[0], &principal);
if (ret)
errx (1, "krb5_parse_name: %s", krb5_get_err_text(context, ret));
krb5_unparse_name(context, principal, &p);
fprintf (stderr, "%s's ", p);
free(p);
}else{
struct passwd *pw;
@@ -142,7 +139,6 @@ main (int argc, char **argv)
if (ret)
errx (1, "krb5_build_principal: %s",
krb5_get_err_text(context, ret));
fprintf (stderr, "%s@%s's ", pw->pw_name, realm);
}
free(realm);
@@ -173,15 +169,28 @@ main (int argc, char **argv)
cred.server = server;
cred.times.endtime = 0;
{
char *p;
char *prompt;
krb5_unparse_name(context, principal, &p);
asprintf(&prompt, "%s's Password: ", p);
free(p);
des_read_pw_string(pwbuf, sizeof(pwbuf), prompt, 0);
free(prompt);
}
ret = krb5_get_in_tkt_with_password (context,
options.i,
NULL,
NULL,
preauth ? pre_auth_types : NULL,
NULL,
pwbuf,
ccache,
&cred,
NULL);
memset(pwbuf, 0, sizeof(pwbuf));
if (ret)
errx (1, "krb5_get_in_tkt_with_password: %s",
krb5_get_err_text(context, ret));