in third-party-libs/bouncycastle-native/src/main/java/org/apache/teaclave/javasdk/thirdpartylibs/bouncycatsle/BouncyCastleFeature.java [74:102]
private List<String> extractJarInfo(AfterRegistrationAccess access) throws BouncycastleJarNameFormatException {
List<String> ret = new ArrayList<>();
for (Path p : access.getApplicationClassPath()) {
String s = p.getFileName().toString();
if (s.endsWith(".jar")) {
for (String m : BC_MODULES) {
if (s.startsWith("bc" + m + "-")) {
//bouncycastle jar name format is "bc[module]-[jdkversion]-[bcversion].jar"
int lastdot = s.lastIndexOf('.');
String jarName = s.substring(0, lastdot);
String[] nameElements = jarName.split("-");
String versionCandidate = nameElements[2];
if (versionCandidate.matches("\\d*\\.?\\d*")) {
if (versionCandidate.indexOf('.') == -1) {
int v = Integer.parseInt(versionCandidate);
versionCandidate = Float.toString(v / 100f);
}
version = versionCandidate;
} else {
throw new BouncycastleJarNameFormatException(String.format("bouncycastle jar file %s does not follow bc[module]-[jdkversion]-[bcversion]<-others>.jar", jarName));
}
ret.add(m);
}
}
}
}
return ret;
}