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