docs: @ShellMethod(key = "jasypt-list-providers", value = "List encryption providers with PBE Ciphers you can use with Jasypt")
      public void listAlgorithms(@ShellOption(value = {"includeBC"},
          help = "Include Bouncy Castle provider") final boolean includeBC) {
          if (includeBC) {
              if (Security.getProvider(BouncyCastleProvider.PROVIDER_NAME) == null) {
                  Security.addProvider(new BouncyCastleProvider());
              }
          } else {
              Security.removeProvider(BouncyCastleProvider.PROVIDER_NAME);
          }
  
          val providers = Security.getProviders();
          for (val provider : providers) {
              val services = provider.getServices();
              val algorithms =
                  services.stream()
                      .filter(service -> "Cipher".equals(service.getType()) && service.getAlgorithm().contains("PBE"))
                      .map(Provider.Service::getAlgorithm)
                      .collect(Collectors.toList());
              if (!algorithms.isEmpty()) {
                  LOGGER.info("Provider: Name: [{}] Class: [{}]", provider.getName(), provider.getClass().getName());
                  for (val algorithm : algorithms) {
                      LOGGER.info(" - Algorithm: [{}]", algorithm);
                  }
              }
          }
      }