private List extractJarInfo()

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;
    }