1*ae771770SStanislav Sedov.\" Copyright (c) 2003 - 2004 Kungliga Tekniska Högskolan 28d4ba808SJacques Vidrine.\" (Royal Institute of Technology, Stockholm, Sweden). 38d4ba808SJacques Vidrine.\" All rights reserved. 48d4ba808SJacques Vidrine.\" 58d4ba808SJacques Vidrine.\" Redistribution and use in source and binary forms, with or without 68d4ba808SJacques Vidrine.\" modification, are permitted provided that the following conditions 78d4ba808SJacques Vidrine.\" are met: 88d4ba808SJacques Vidrine.\" 98d4ba808SJacques Vidrine.\" 1. Redistributions of source code must retain the above copyright 108d4ba808SJacques Vidrine.\" notice, this list of conditions and the following disclaimer. 118d4ba808SJacques Vidrine.\" 128d4ba808SJacques Vidrine.\" 2. Redistributions in binary form must reproduce the above copyright 138d4ba808SJacques Vidrine.\" notice, this list of conditions and the following disclaimer in the 148d4ba808SJacques Vidrine.\" documentation and/or other materials provided with the distribution. 158d4ba808SJacques Vidrine.\" 168d4ba808SJacques Vidrine.\" 3. Neither the name of the Institute nor the names of its contributors 178d4ba808SJacques Vidrine.\" may be used to endorse or promote products derived from this software 188d4ba808SJacques Vidrine.\" without specific prior written permission. 198d4ba808SJacques Vidrine.\" 208d4ba808SJacques Vidrine.\" THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND 218d4ba808SJacques Vidrine.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 228d4ba808SJacques Vidrine.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 238d4ba808SJacques Vidrine.\" ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE 248d4ba808SJacques Vidrine.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 258d4ba808SJacques Vidrine.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 268d4ba808SJacques Vidrine.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 278d4ba808SJacques Vidrine.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 288d4ba808SJacques Vidrine.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 298d4ba808SJacques Vidrine.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 308d4ba808SJacques Vidrine.\" SUCH DAMAGE. 318d4ba808SJacques Vidrine.\" 32*ae771770SStanislav Sedov.\" $Id$ 338d4ba808SJacques Vidrine.\" 34c19800e8SDoug Rabson.Dd July 15, 2004 358d4ba808SJacques Vidrine.Dt KRB5_SET_PASSWORD 3 368d4ba808SJacques Vidrine.Os HEIMDAL 378d4ba808SJacques Vidrine.Sh NAME 388d4ba808SJacques Vidrine.Nm krb5_change_password , 398d4ba808SJacques Vidrine.Nm krb5_set_password , 40c19800e8SDoug Rabson.Nm krb5_set_password_using_ccache , 41c19800e8SDoug Rabson.Nm krb5_passwd_result_to_string 428d4ba808SJacques Vidrine.Nd change password functions 438d4ba808SJacques Vidrine.Sh LIBRARY 448d4ba808SJacques VidrineKerberos 5 Library (libkrb5, -lkrb5) 458d4ba808SJacques Vidrine.Sh SYNOPSIS 468d4ba808SJacques Vidrine.In krb5.h 478d4ba808SJacques Vidrine.Ft krb5_error_code 488d4ba808SJacques Vidrine.Fo krb5_change_password 498d4ba808SJacques Vidrine.Fa "krb5_context context" 508d4ba808SJacques Vidrine.Fa "krb5_creds *creds" 518d4ba808SJacques Vidrine.Fa "char *newpw" 528d4ba808SJacques Vidrine.Fa "int *result_code" 538d4ba808SJacques Vidrine.Fa "krb5_data *result_code_string" 548d4ba808SJacques Vidrine.Fa "krb5_data *result_string" 558d4ba808SJacques Vidrine.Fc 568d4ba808SJacques Vidrine.Ft krb5_error_code 578d4ba808SJacques Vidrine.Fo krb5_set_password 588d4ba808SJacques Vidrine.Fa "krb5_context context" 598d4ba808SJacques Vidrine.Fa "krb5_creds *creds" 608d4ba808SJacques Vidrine.Fa "char *newpw" 61c19800e8SDoug Rabson.Fa "krb5_principal targprinc" 628d4ba808SJacques Vidrine.Fa "int *result_code" 638d4ba808SJacques Vidrine.Fa "krb5_data *result_code_string" 648d4ba808SJacques Vidrine.Fa "krb5_data *result_string" 658d4ba808SJacques Vidrine.Fc 668d4ba808SJacques Vidrine.Ft krb5_error_code 678d4ba808SJacques Vidrine.Fo krb5_set_password_using_ccache 688d4ba808SJacques Vidrine.Fa "krb5_context context" 698d4ba808SJacques Vidrine.Fa "krb5_ccache ccache" 708d4ba808SJacques Vidrine.Fa "char *newpw" 718d4ba808SJacques Vidrine.Fa "krb5_principal targprinc" 728d4ba808SJacques Vidrine.Fa "int *result_code" 738d4ba808SJacques Vidrine.Fa "krb5_data *result_code_string" 748d4ba808SJacques Vidrine.Fa "krb5_data *result_string" 758d4ba808SJacques Vidrine.Fc 76c19800e8SDoug Rabson.Ft "const char *" 77c19800e8SDoug Rabson.Fo krb5_passwd_result_to_string 78c19800e8SDoug Rabson.Fa "krb5_context context" 79c19800e8SDoug Rabson.Fa "int result" 80c19800e8SDoug Rabson.Fc 818d4ba808SJacques Vidrine.Sh DESCRIPTION 828d4ba808SJacques VidrineThese functions change the password for a given principal. 838d4ba808SJacques Vidrine.Pp 848d4ba808SJacques Vidrine.Fn krb5_set_password 858d4ba808SJacques Vidrineand 86c19800e8SDoug Rabson.Fn krb5_set_password_using_ccache 87c19800e8SDoug Rabsonare the newer of the three functions, and use a newer version of the 88c19800e8SDoug Rabsonprotocol (and also fall back to the older set-password protocol if the 89c19800e8SDoug Rabsonnewer protocol doesn't work). 908d4ba808SJacques Vidrine.Pp 918d4ba808SJacques Vidrine.Fn krb5_change_password 92c19800e8SDoug Rabsonsets the password 938d4ba808SJacques Vidrine.Fa newpasswd 948d4ba808SJacques Vidrinefor the client principal in 958d4ba808SJacques Vidrine.Fa creds . 968d4ba808SJacques VidrineThe server principal of creds must be 978d4ba808SJacques Vidrine.Li kadmin/changepw . 988d4ba808SJacques Vidrine.Pp 998d4ba808SJacques Vidrine.Fn krb5_set_password 100c19800e8SDoug Rabsonand 101c19800e8SDoug Rabson.Fn krb5_set_password_using_ccache 102c19800e8SDoug Rabsonchange the password for the principal 103c19800e8SDoug Rabson.Fa targprinc . 104c19800e8SDoug Rabson.Pp 105c19800e8SDoug Rabson.Fn krb5_set_password 106c19800e8SDoug Rabsonrequires that the credential for 107c19800e8SDoug Rabson.Li kadmin/changepw@REALM 108c19800e8SDoug Rabsonis in 109c19800e8SDoug Rabson.Fa creds . 110c19800e8SDoug RabsonIf the user caller isn't an administrator, this credential 111c19800e8SDoug Rabsonneeds to be an initial credential, see 112c19800e8SDoug Rabson.Xr krb5_get_init_creds 3 113c19800e8SDoug Rabsonhow to get such credentials. 114c19800e8SDoug Rabson.Pp 115c19800e8SDoug Rabson.Fn krb5_set_password_using_ccache 116c19800e8SDoug Rabsonwill get the credential from 117c19800e8SDoug Rabson.Fa ccache . 118c19800e8SDoug Rabson.Pp 119c19800e8SDoug RabsonIf 1208d4ba808SJacques Vidrine.Fa targprinc 1218d4ba808SJacques Vidrineis 122c19800e8SDoug Rabson.Dv NULL , 123c19800e8SDoug Rabson.Fn krb5_set_password_using_ccache 124c19800e8SDoug Rabsonuses the the default principal in 1258d4ba808SJacques Vidrine.Fa ccache 126c19800e8SDoug Rabsonand 127c19800e8SDoug Rabson.Fn krb5_set_password 128c19800e8SDoug Rabsonuses the global the default principal. 1298d4ba808SJacques Vidrine.Pp 130c19800e8SDoug RabsonAll three functions return an error in 1318d4ba808SJacques Vidrine.Fa result_code 132c19800e8SDoug Rabsonand maybe an error string to print in 1338d4ba808SJacques Vidrine.Fa result_string . 134c19800e8SDoug Rabson.Pp 135c19800e8SDoug Rabson.Fn krb5_passwd_result_to_string 136c19800e8SDoug Rabsonreturns an human readable string describing the error code in 137c19800e8SDoug Rabson.Fa result_code 138c19800e8SDoug Rabsonfrom the 139c19800e8SDoug Rabson.Fn krb5_set_password 140c19800e8SDoug Rabsonfunctions. 1418d4ba808SJacques Vidrine.Sh SEE ALSO 1428d4ba808SJacques Vidrine.Xr krb5_ccache 3 , 1438d4ba808SJacques Vidrine.Xr krb5_init_context 3 144