?? RIGHT := 110 ??
?? NEWTITLE := 'NOS/VE Accounting and Validation: Login Password Encryption ' ??
MODULE avm$process_password_attributes;

{ PURPOSE:
{   This module contains the procedure which is called whenever the password
{   for a user is changed.
{ DESIGN:
{   The released version of the AVP$PROCESS_PASSWORD_ATTRIBUTES procedure simply
{   returns a normal status to the caller.  Sites may modify this procedure to
{   alter password change requests.
{
{   The password attributes have been provided to allow sites the ability to
{   specify information, on a user by user basis, that can be used to control
{   the processing done by AVP$PROCESS_PASSWORD_ATTRIBUTES.
{
{   The following list contains some examples of the use of this procedure:
{
{     *  Prevent passwords that match the user name.
{     *  Prevent reuse of the old password.
{     *  Set a minimum length for passwords.
{     *  Prevent the use of easily guessed passwords.
?? NEWTITLE := 'Global declarations referenced by this module', EJECT ??
?? PUSH (LISTEXT := ON) ??
*copyc avt$login_password
*copyc avt$name_list_size
*copyc avt$validation_authority
*copyc ost$date_time
*copyc ost$status
*copyc ost$user_identification
?? POP ??
?? OLDTITLE ??
?? NEWTITLE := '[XDCL] avp$process_password_attributes', EJECT ??
*copyc avh$process_password_attributes

  PROCEDURE [XDCL] avp$process_password_attributes
    (    validation_authority: avt$validation_authority;
         user_name: ost$user_name;
         last_password_change_date: ost$date_time;
         old_encrypted_password: avt$login_password;
         new_encrypted_password: avt$login_password;
         old_password: string(osc$max_name_size);
     VAR new_password: string(osc$max_name_size);
     VAR login_password_attributes: array [1 .. avc$maximum_name_list_size] OF ost$name;
     VAR number_of_password_attributes: 1 .. avc$maximum_name_list_size;
     VAR status: ost$status);

  status.normal := TRUE;

  PROCEND avp$process_password_attributes;

MODEND avm$process_password_attributes;
