ojdkbuild / ojdkbuild

Community builds using source code from OpenJDK project

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

java-1.8.0-openjdk-1.8.0.252-2\jre\bin\sunmscapi.dll: Can't find dependent libraries

imweijh opened this issue · comments

commented
2020-05-14 10:18:29.957 [main] INFO  Application.main(Application.java:22) - ***************************************************
2020-05-14 10:18:29.957 [main] INFO  Application.main(Application.java:23) - **************     MDGW Starting     **************
2020-05-14 10:18:29.957 [main] INFO  Application.main(Application.java:24) - ***************************************************
2020-05-14 10:18:29.973 [main] INFO  b.a(MdgwConfig.java:115) - Reading configuration: ./cfg/mdgw.properties
2020-05-14 10:18:29.989 [main] INFO  Application.a(Application.java:96) - ***************** Hardware and OS information ******************
2020-05-14 10:18:29.989 [main] INFO  Application.a(Application.java:97) - OS Name           = Windows 2003
2020-05-14 10:18:29.989 [main] INFO  Application.a(Application.java:98) - OS Arch           = x86
2020-05-14 10:18:29.989 [main] INFO  Application.a(Application.java:99) - OS Version        = 5.2
2020-05-14 10:18:29.989 [main] INFO  Application.a(Application.java:100) - OS Processors     = 16
2020-05-14 10:18:29.989 [main] INFO  Application.a(Application.java:101) - Java Vendor       = Oracle Corporation
2020-05-14 10:18:29.989 [main] INFO  Application.a(Application.java:102) - Java Version      = 1.8.0_252
2020-05-14 10:18:29.989 [main] INFO  Application.a(Application.java:103) - Java VM Name      = OpenJDK Server VM
2020-05-14 10:18:29.989 [main] INFO  Application.a(Application.java:104) - User dir          = D:\SSE_MDGW-0.4.1\mdgw
2020-05-14 10:18:29.989 [main] INFO  Application.a(Application.java:105) - Jvm Argument      = [-Xmx512m, -Xms512m, -XX:+HeapDumpOnOutOfMemoryError, -Dlog4j.configurationFile=./cfg/log4j2.xml]
2020-05-14 10:18:29.989 [main] INFO  Application.a(Application.java:106) - Mdgw Version      = 0.4.1
2020-05-14 10:18:29.989 [main] INFO  Application.a(Application.java:107) - Protocol Version  = 1.4
2020-05-14 10:18:29.989 [main] INFO  Application.a(Application.java:108) - Vss Appl Version  = 0.30
2020-05-14 10:18:29.989 [main] INFO  Application.a(Application.java:109) - ****************************************************************
2020-05-14 10:18:30.067 [main] INFO  d.c(TaskConfigManager.java:120) - Reading configuration UdpGround-Tasks.json
2020-05-14 10:18:30.098 [main] INFO  a.a(MdgwQuotaStats.java:40) - task fileTask register quota stats.
2020-05-14 10:18:30.114 [main] INFO  a.a(MdgwQuotaStats.java:40) - task marketDataTask register quota stats.
2020-05-14 10:18:30.114 [main] INFO  a.a(MdgwQuotaStats.java:40) - task forwardTask register quota stats.
2020-05-14 10:18:30.129 [main] ERROR Application.main(Application.java:65) - exception
java.lang.UnsatisfiedLinkError: C:\Program Files\ojdkbuild\java-1.8.0-openjdk-1.8.0.252-2\jre\bin\sunmscapi.dll: Can't find dependent libraries
	at java.lang.ClassLoader$NativeLibrary.load(Native Method) ~[?:1.8.0_252]
	at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1934) ~[?:1.8.0_252]
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1838) ~[?:1.8.0_252]
	at java.lang.Runtime.loadLibrary0(Runtime.java:870) ~[?:1.8.0_252]
	at java.lang.System.loadLibrary(System.java:1124) ~[?:1.8.0_252]
	at sun.security.mscapi.SunMSCAPI$1.run(SunMSCAPI.java:52) ~[sunmscapi.jar:1.8.0_252]
	at sun.security.mscapi.SunMSCAPI$1.run(SunMSCAPI.java:50) ~[sunmscapi.jar:1.8.0_252]
	at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_252]
	at sun.security.mscapi.SunMSCAPI.<clinit>(SunMSCAPI.java:50) ~[sunmscapi.jar:1.8.0_252]
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_252]
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_252]
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_252]
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_252]
	at java.lang.Class.newInstance(Class.java:442) ~[?:1.8.0_252]
	at sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:221) ~[?:1.8.0_252]
	at sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:206) ~[?:1.8.0_252]
	at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_252]
	at sun.security.jca.ProviderConfig.doLoadProvider(ProviderConfig.java:206) ~[?:1.8.0_252]
	at sun.security.jca.ProviderConfig.getProvider(ProviderConfig.java:187) ~[?:1.8.0_252]
	at sun.security.jca.ProviderList.getProvider(ProviderList.java:233) ~[?:1.8.0_252]
	at sun.security.jca.ProviderList.getIndex(ProviderList.java:263) ~[?:1.8.0_252]
	at sun.security.jca.ProviderList.getProviderConfig(ProviderList.java:247) ~[?:1.8.0_252]
	at sun.security.jca.ProviderList.getProvider(ProviderList.java:253) ~[?:1.8.0_252]
	at sun.security.jca.GetInstance.getService(GetInstance.java:81) ~[?:1.8.0_252]
	at sun.security.jca.GetInstance.getInstance(GetInstance.java:206) ~[?:1.8.0_252]
	at java.security.Security.getImpl(Security.java:698) ~[?:1.8.0_252]
	at java.security.KeyStore.getInstance(KeyStore.java:896) ~[?:1.8.0_252]
	at com.sse.certificate.b.d.a(UsbRsaCaDevice.java:39) ~[?:?]
	at com.sse.certificate.a.g(CertificationManager.java:277) ~[?:?]
	at com.sse.certificate.a.a(CertificationManager.java:43) ~[?:?]
	at com.sse.Application.main(Application.java:39) [?:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_252]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_252]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_252]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_252]
	at com.security.sse.d.g.a(SecurityJarLauncher.java:66) [mdgw.jar:?]
	at com.security.sse.BootStrap.main(BootStrap.java:10) [mdgw.jar:?]
2020-05-14 10:18:30.129 [main] ERROR Application.a(Application.java:88) - mdgw app exit. reason C:\Program Files\ojdkbuild\java-1.8.0-openjdk-1.8.0.252-2\jre\bin\sunmscapi.dll: Can't find dependent libraries

The "Java Version = 1.8.0_191-1-ojdkbuild" is OK

Hi, thanks for the report, let me re-check this. I don't think there were any local patches regarding MSCAPI.

Beginning from 8u252 sunmscapi.dll additionally depends on system library ncrypt.dll (API docs):

    ncrypt.dll
             180006298 Import Address Table
             1800072B0 Import Name Table
                     0 time date stamp
                     0 Index of first forwarder reference

                          4B NCryptOpenStorageProvider
                          46 NCryptImportKey
                          41 NCryptExportKey
                          51 NCryptVerifySignature
                          50 NCryptTranslateHandle
                          4F NCryptSignHash
                          44 NCryptFreeObject
                          45 NCryptGetProperty

This new dependency comes from JDK-8230978.

Is is possible to check whether ncrypt.dll is available in your environment?

commented

Thanks.
Maybe the windows 2003 is too old and no ncrypt.dll

Yes, this NCrypt API is Windows 2008+, it is a pity this change breaks 2003 support, but I can understand why this is done. These security changes are backported to OpenJDK 8 to allow adding support for TLS 1.3 there. For OpenJDK 8 to remain usable for some more years (2026 at least), TLS 1.3 is necessary. I don't think that any of commercial OpenJDK vendors provide support for running on Windows 2003, so it was a matter of time when it became broken on 2003. Continue using 8u242 may be the best possible option for Windows 2003 setup.

commented

Thanks for your works, ojdkbuild is the only openjdk run on win2003.
I will keep with 8u242.
closed

It seems the exported C API prefix also changed
U252: _Java_sun_security_mscapi_C*
U242:Java_sun_security_mscapi*

I'd like to know if there a possibility to revert (replace) the crypto+jsse component to u242 while using latest update for the rest.
I'm on WinXP and been using JRE 8U241+ JavaFX U111, which allow me to use BlueJ
I don't care about TLS 1.3. just want continual updates.
is there a simple jar to test crypto provider functionality?