# File control/AdminPassword/AdminPassword.rb, line 28
  def change_password
    old_encrypted_password = @admin_params.admin_password
    if (empty_string? old_encrypted_password) then
      unless (empty_string? @old_password) then
        raise 'mismatch old password.'
      end
    else
      if (old_encrypted_password != @pw_enc.crypt(@old_password, old_encrypted_password)) then
        raise 'mismatch old password.'
      end
    end
    if (@new_password != @retype_password) then
      raise 'mismatch new password.'
    end

    if (empty_string? @new_password) then
      @admin_params.admin_password = ''
    else
      @admin_params.admin_password = @pw_enc.crypt(@new_password)
    end
    @control.set_admin_params(@admin_params)
    @driver.redirect('Administrator')

    nil
  end