in src/main/native/org/apache/commons/crypto/DynamicLoader.c [32:60]
HMODULE open_library(JNIEnv *env)
#endif
{
if (!openssl) {
const char *libraryPath = COMMONS_CRYPTO_OPENSSL_LIBRARY;
jclass clazz = (*env)->FindClass(env, "org/apache/commons/crypto/utils/Utils");
if (clazz) {
jmethodID libraryPathFunc = (*env)->GetStaticMethodID(env, clazz, "libraryPath", "(Ljava/lang/String;)Ljava/lang/String;");
if (libraryPathFunc) {
jstring defaultLibrary = (*env)->NewStringUTF(env, COMMONS_CRYPTO_OPENSSL_LIBRARY);
jstring result = (jstring) (*env)->CallStaticObjectMethod(env, clazz, libraryPathFunc, defaultLibrary);
if (result) {
libraryPath = (*env)->GetStringUTFChars(env, result, NULL);
}
}
}
#ifdef UNIX
openssl = dlopen(libraryPath, RTLD_LAZY | RTLD_GLOBAL);
#endif
#ifdef WINDOWS
// not necessary to provide override for Windows
openssl = LoadLibrary(TEXT(COMMONS_CRYPTO_OPENSSL_LIBRARY));
#endif
}
return openssl;
}