public void afterRegistration()

in third-party-libs/bouncycastle-native/src/main/java/org/apache/teaclave/javasdk/thirdpartylibs/bouncycatsle/BouncyCastleFeature.java [53:72]


    public void afterRegistration(AfterRegistrationAccess access) {
        try {
            List<String> dependBCModules = extractJarInfo(access);
            // Bouncycastle core is always required.
            ConfigurationFiles.Options.ReflectionConfigurationResources.update(getOptionsMap(), String.format(PATH_FORMAT, version, "core", "reflect"));
            dependBCModules.forEach(module -> {
                ConfigurationFiles.Options.ReflectionConfigurationResources.update(getOptionsMap(), String.format(PATH_FORMAT, version, module, "reflect"));
                ConfigurationFiles.Options.SerializationConfigurationResources.update(getOptionsMap(), String.format(PATH_FORMAT, version, module, "serialization"));
            });
        } catch (BouncycastleJarNameFormatException e) {
            VMError.shouldNotReachHere(e);
        }
        if (RegisterBCProvider.getValue()) {
            // Must register initialization first and then explicitly add the BouncyCastleProvider to the security provider list,
            // so that it can be seen later at build time.
            RuntimeClassInitialization.initializeAtBuildTime("org.bouncycastle");
            Security.addProvider(new BouncyCastleProvider());
            AdditionalSecurityProviders.update(getOptionsMap(), BouncyCastleProvider.class.getName());
        }
    }