docs: @Override
      public SecurityUtilityReturnCodes handleTask(ConsoleWrapper stdin, PrintStream stdout, PrintStream stderr, String[] args) throws Exception {
          this.stdin = stdin;
          this.stdout = stdout;
  
          validateArgumentList(args, Arrays.asList(new String[] { ARG_PASSWORD }));
  
          String path = getArgumentValue(ARG_FILE, args, DEFAULT_LTPA_KEY_FILE);
          String serverName = getArgumentValue(ARG_SERVER, args, null);
  
          // Verify the server or client exists, if it does not then exit and do not create the certificate
          // Do this first so we don't prompt for a password we'll not use
          if (serverName != null) {
              String usrServers = fileUtility.getServersDirectory();
              String serverDir = usrServers + serverName + SLASH;
  
              if (!fileUtility.exists(serverDir)) {
                  usrServers = fileUtility.resolvePath(usrServers);
                  stdout.println(getMessage("createLTPAKeys.abort"));
                  stdout.println(getMessage("serverNotFound", serverName, usrServers));
                  return SecurityUtilityReturnCodes.ERR_SERVER_NOT_FOUND;
              }
  
              // Create the directories we need before we prompt for a password
              String location = serverDir + "resources" + SLASH + "security" + SLASH + "ltpa.keys";
              location = fileUtility.resolvePath(location);
              File fLocation = new File(location);
              if (!fileUtility.createParentDirectory(stdout, fLocation)) {
                  stdout.println(getMessage("createLTPAKeys.abort"));
                  stdout.println(getMessage("file.requiredDirNotCreated", location));
                  return SecurityUtilityReturnCodes.ERR_PATH_CANNOT_BE_CREATED;
              }
  
              path = location;
          }
  
          if (fileUtility.exists(path)) {
              stdout.println(getMessage("createLTPAKeys.abort"));
              stdout.println(getMessage("createLTPAKeys.fileExists", path));
              return SecurityUtilityReturnCodes.ERR_FILE_EXISTS;
          } else {
              String password = getArgumentValue(ARG_PASSWORD, args, null);
              String encoding = getArgumentValue(ARG_ENCODING, args, PasswordUtil.getDefaultEncoding());
              String key = getArgumentValue(ARG_KEY, args, null);
              String encodedPassword = PasswordUtil.encode(password, encoding, key);
  
              String xmlSnippet;
              // If the keys are generated for a server, omit the keysFileName as it would end up
              // being the default value
              if (serverName != null) {
                  xmlSnippet = "    <ltpa keysPassword=\"" + encodedPassword + "\" />";
              } else {
                  xmlSnippet = "    <ltpa keysPassword=\"" + encodedPassword + "\" keysFileName=\"" + path + "\" />";
              }
  
              ltpaKeyFileUtil.createLTPAKeysFile(path, password.getBytes());
              stdout.println(getMessage("createLTPAKeys.createdFile", path, xmlSnippet));
              return SecurityUtilityReturnCodes.OK;
          }
      }