/*
* Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#include <string.h>
#include "k5-int.h"
#include <client_internal.h>
#include "auth_con.h"
#include <locale.h>
char *passwd,
{
char *ptr;
goto cleanup;
goto cleanup;
{
goto cleanup;
}
/* length */
/* version == 0x0001 big-endian
* NOTE: when MS and MIT start supporting the latest
* version of the passwd change protocol (v2),
* this value will change to 2.
*/
*ptr++ = 0;
*ptr++ = 1;
/* ap_req length, big-endian */
/* ap-req data */
/* krb-priv of password */
return(ret);
}
krb5int_rd_chpw_rep(krb5_context context, krb5_auth_context auth_context, krb5_data *packet, int *result_code, krb5_data *result_data)
{
char *ptr;
int local_result_code;
/* either this, or the server is printing bad messages,
or the caller passed in garbage */
return(KRB5KRB_AP_ERR_MODIFIED);
/* verify length */
{
/*
* MS KDCs *may* send back a KRB_ERROR. Although
* not 100% correct via RFC3244, it's something
* we can workaround here.
*/
if (krb5_is_krb_error(packet)) {
return(ret);
return (ret);
}
}
else
{
return(KRB5KRB_AP_ERR_MODIFIED);
}
}
/* verify version number */
/*
* when the servers update to v2 of the protocol,
* "2" will be a valid version number here
*/
return (KRB5KDC_ERR_BAD_PVNO);
/* read, check ap-rep length */
return(KRB5KRB_AP_ERR_MODIFIED);
/* verify ap_rep */
/*
* Save send_subkey to later smash recv_subkey.
*/
if (ret)
return ret;
if (ret) {
return(ret);
}
/* extract and decrypt the result */
/*
* Smash recv_subkey to be send_subkey, per spec.
*/
if (ret)
return ret;
&replay);
if (ret)
return(ret);
} else {
return(ret);
}
goto cleanup;
}
if (result_code)
/*
* Make sure the result code is in range for this
* protocol.
*/
if ((local_result_code < KRB5_KPASSWD_SUCCESS) ||
goto cleanup;
}
/* all success replies should be authenticated/encrypted */
goto cleanup;
}
if (result_data->length) {
goto cleanup;
}
} else {
}
ret = 0;
} else {
}
return(ret);
}