25
25
krb5_error_code code;
26
26
if ((pw = getpwuid(getuid()))) {
27
27
if ((code = krb5_parse_name(kcontext, pw->pw_name, me))) {
28
com_err (program_name, code, "when parsing name %s", pw->pw_name);
28
com_err(program_name, code, _("when parsing name %s"),
32
fprintf(stderr, "Unable to identify user from password file\n");
33
fprintf(stderr, _("Unable to identify user from password file\n"));
59
60
krb5_data result_code_string, result_string;
62
setlocale(LC_MESSAGES, "");
62
fprintf(stderr, "usage: %s [principal]\n", argv[0]);
64
fprintf(stderr, _("usage: %s [principal]\n"), argv[0]);
68
70
ret = krb5_init_context(&context);
70
com_err(argv[0], ret, "initializing kerberos library");
72
com_err(argv[0], ret, _("initializing kerberos library"));
73
75
if ((ret = krb5_get_init_creds_opt_alloc(context, &opts))) {
74
com_err(argv[0], ret, "allocating krb5_get_init_creds_opt");
76
com_err(argv[0], ret, _("allocating krb5_get_init_creds_opt"));
87
89
ret = krb5_cc_default(context, &ccache);
89
com_err(argv[0], ret, "opening default ccache");
91
com_err(argv[0], ret, _("opening default ccache"));
92
94
ret = krb5_cc_get_principal(context, ccache, &princ);
93
95
if (ret != 0 && ret != KRB5_CC_NOTFOUND && ret != KRB5_FCC_NOFILE) {
94
com_err(argv[0], ret, "getting principal from ccache");
96
com_err(argv[0], ret, _("getting principal from ccache"));
97
99
if (princ != NULL) {
98
100
ret = krb5_get_init_creds_opt_set_fast_ccache(context, opts,
101
com_err(argv[0], ret, "while setting FAST ccache");
103
com_err(argv[0], ret, _("while setting FAST ccache"));
106
108
ret = krb5_cc_close(context, ccache);
108
com_err(argv[0], ret, "closing ccache");
110
com_err(argv[0], ret, _("closing ccache"));
112
114
krb5_free_principal(context, princ);
114
116
if ((ret = krb5_parse_name(context, pname, &princ))) {
115
com_err(argv[0], ret, "parsing client name");
117
com_err(argv[0], ret, _("parsing client name"));
129
131
0, "kadmin/changepw", opts))) {
130
132
if (ret == KRB5KRB_AP_ERR_BAD_INTEGRITY)
131
133
com_err(argv[0], 0,
132
"Password incorrect while getting initial ticket");
134
_("Password incorrect while getting initial ticket"));
134
com_err(argv[0], ret, "getting initial ticket");
136
com_err(argv[0], ret, _("getting initial ticket"));
135
137
krb5_get_init_creds_opt_free(context, opts);
139
141
pwlen = sizeof(pw);
140
142
if ((ret = krb5_read_password(context, P1, P2, pw, &pwlen))) {
141
com_err(argv[0], ret, "while reading password");
143
com_err(argv[0], ret, _("while reading password"));
142
144
krb5_get_init_creds_opt_free(context, opts);
146
148
if ((ret = krb5_change_password(context, &creds, pw,
147
149
&result_code, &result_code_string,
148
150
&result_string))) {
149
com_err(argv[0], ret, "changing password");
151
com_err(argv[0], ret, _("changing password"));
150
152
krb5_get_init_creds_opt_free(context, opts);
167
169
free(result_code_string.data);
168
170
krb5_get_init_creds_opt_free(context, opts);
170
printf("Password changed.\n");
172
printf(_("Password changed.\n"));