aboutsummaryrefslogtreecommitdiff
path: root/lib/kadm5/chpass_c.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/kadm5/chpass_c.c')
-rw-r--r--lib/kadm5/chpass_c.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/kadm5/chpass_c.c b/lib/kadm5/chpass_c.c
index af4328c9c4fc..4512942b4626 100644
--- a/lib/kadm5/chpass_c.c
+++ b/lib/kadm5/chpass_c.c
@@ -38,6 +38,9 @@ RCSID("$Id$");
kadm5_ret_t
kadm5_c_chpass_principal(void *server_handle,
krb5_principal princ,
+ int keepold,
+ int n_ks_tuple,
+ krb5_key_salt_tuple *ks_tuple,
const char *password)
{
kadm5_client_context *context = server_handle;
@@ -47,6 +50,14 @@ kadm5_c_chpass_principal(void *server_handle,
int32_t tmp;
krb5_data reply;
+ /*
+ * We should get around to implementing this... At the moment, the
+ * the server side API is implemented but the wire protocol has not
+ * been updated.
+ */
+ if (n_ks_tuple > 0)
+ return KADM5_KS_TUPLE_NOSUPP;
+
ret = _kadm5_connect(server_handle);
if(ret)
return ret;
@@ -59,6 +70,7 @@ kadm5_c_chpass_principal(void *server_handle,
krb5_store_int32(sp, kadm_chpass);
krb5_store_principal(sp, princ);
krb5_store_string(sp, password);
+ krb5_store_int32(sp, keepold); /* extension */
ret = _kadm5_client_send(context, sp);
krb5_storage_free(sp);
if (ret)
@@ -82,6 +94,7 @@ kadm5_c_chpass_principal(void *server_handle,
kadm5_ret_t
kadm5_c_chpass_principal_with_key(void *server_handle,
krb5_principal princ,
+ int keepold,
int n_key_data,
krb5_key_data *key_data)
{
@@ -107,6 +120,7 @@ kadm5_c_chpass_principal_with_key(void *server_handle,
krb5_store_int32(sp, n_key_data);
for (i = 0; i < n_key_data; ++i)
kadm5_store_key_data (sp, &key_data[i]);
+ krb5_store_int32(sp, keepold); /* extension */
ret = _kadm5_client_send(context, sp);
krb5_storage_free(sp);
if (ret)