in src/java/org/apache/fulcrum/jce/crypto/extended/CryptoParametersJ8.java [147:167]
public static List<String> getSupportedAlgos(List<String> algoList, String type, boolean exact) {
Provider p[] = Security.getProviders();
List<Provider> providerList = Arrays.asList(p);
List<String> result =
providerList.stream().flatMap(provider -> Collections.list(provider.keys()).stream().map(Object::toString)
.filter(x ->
(exact) ?
(x.startsWith(type) && algoList.contains(x.replaceAll(type + ".", ""))) :
(x.matches("(" + String.join("|", PROVIDER_TYPES) + ").*$") &&
algoList.stream().anyMatch(y -> y.contains(x.replaceAll(type + ".", "")))
)
)
.map(x ->
(exact) ?
x.replaceAll(type + ".", "") :
x.replaceAll("(" + String.join("|", PROVIDER_TYPES) + ")" + ".", "")
)
.collect(Collectors.toList()).stream()).collect(Collectors.toList());
return result;
}