1 /*
2 * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
3 * Use is subject to license terms.
4 */
5
6 #pragma ident "%Z%%M% %I% %E% SMI"
7
8 /*
9 * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
10 *
11 * Openvision retains the copyright to derivative works of
12 * this source code. Do *NOT* create a derivative of this
13 * source code before consulting with your legal department.
14 * Do *NOT* integrate *ANY* of this source code into another
15 * product before consulting with your legal department.
16 *
17 * For further information, read the top-level Openvision
18 * copyright which is contained in the top-level MIT Kerberos
19 * copyright.
20 *
21 * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
22 *
23 */
24
25
26 /*
27 * Copyright 1993-1994 OpenVision Technologies, Inc., All Rights Reserved.
28 *
29 * $Header: /cvs/krbdev/krb5/src/kadmin/passwd/tty_kpasswd.c,v 1.9 2001/02/26 18:22:08 epeisach Exp $
30 *
31 *
32 */
33
34 static char rcsid[] = "$Id: tty_kpasswd.c,v 1.9 2001/02/26 18:22:08 epeisach Exp $";
35
36 #include <kadm5/admin.h>
37 #include <krb5.h>
38
39 #include "kpasswd_strings.h"
40 #define string_text error_message
41
42 #include "kpasswd.h"
43 #include <stdio.h>
44 #include <pwd.h>
45 #include <string.h>
46 #include <libintl.h>
47 #include <locale.h>
48
49 char *whoami;
50
display_intro_message(fmt_string,arg_string)51 void display_intro_message(fmt_string, arg_string)
52 const char *fmt_string;
53 const char *arg_string;
54 {
55 com_err(whoami, 0, fmt_string, arg_string);
56 }
57
read_old_password(context,password,pwsize)58 long read_old_password(context, password, pwsize)
59 krb5_context context;
60 char *password;
61 unsigned int *pwsize;
62 {
63 long code = krb5_read_password(context,
64 (char *) string_text(KPW_STR_OLD_PASSWORD_PROMPT),
65 0, password, pwsize);
66 return code;
67 }
68
read_new_password(server_handle,password,pwsize,msg_ret,msg_len,princ)69 long read_new_password(server_handle, password, pwsize, msg_ret, msg_len, princ)
70 void *server_handle;
71 char *password;
72 unsigned int *pwsize;
73 char *msg_ret;
74 int msg_len;
75 krb5_principal princ;
76 {
77 return (kadm5_chpass_principal_util(server_handle, princ, NULL,
78 NULL /* don't need new pw back */,
79 msg_ret, msg_len));
80 }
81
82
83 /*
84 * main() for tty version of kpasswd.c
85 */
86 int
main(argc,argv)87 main(argc, argv)
88 int argc;
89 char *argv[];
90 {
91 krb5_context context;
92 int retval;
93
94 whoami = (whoami = strrchr(argv[0], '/')) ? whoami + 1 : argv[0];
95
96 (void) setlocale(LC_ALL, "");
97
98 #if !defined(TEXT_DOMAIN) /* Should be defined by cc -D */
99 #define TEXT_DOMAIN "SYS_TEST" /* Use this only if it weren't */
100 #endif
101
102 (void) textdomain(TEXT_DOMAIN);
103
104 retval = krb5_init_context(&context);
105 if (retval) {
106 com_err(whoami, retval, gettext("initializing krb5 context"));
107 exit(retval);
108 }
109 /* initialize_kpws_error_table(); SUNWresync121 */
110
111 retval = kpasswd(context, argc, argv);
112
113 if (!retval)
114 printf(string_text(KPW_STR_PASSWORD_CHANGED));
115
116 exit(retval);
117 }
118