Я пишу приложение Java 14 , которое должно проверять некоторые подписи с помощью таких алгоритмов, как SHA256withECDSA
, SHA384withECDSA
и SHA512withECDSA
, но я испытываю особый побочный эффект из jlink
:
- при запуске приложения со стандартной средой выполнения JDK / JRE 14 алгоритмы отображаются (SunE C загружен успешно)
- при запуске приложения с оптимизированной версией среды выполнения JRE с использованием jlink И , включая модуль
jdk.crypto.ec
, SunE C не загружается вообще, и алгоритмы недоступны
Мне известно о этом билете в системе отслеживания ошибок OpenJDK, но я не могу понять, почему в оптимизированной версии jlink другое поведение.
В папка времени выполнения, созданная jlink, есть также libsunec.so
.
Я распечатываю доступные алгоритмы с помощью этого фрагмента SO и получаю следующий результат:
MD2withRSA
MD5andSHA1withRSA
MD5withRSA
NONEwithDSA
NONEwithDSAinP1363Format
RSASSA-PSS
SHA1withDSA
SHA1withDSAinP1363Format
SHA1withRSA
SHA224withDSA
SHA224withDSAinP1363Format
SHA224withRSA
SHA256withDSA
SHA256withDSAinP1363Format
SHA256withRSA
SHA384withRSA
SHA512/224withRSA
SHA512/256withRSA
SHA512withRSA
По тем же и связанным причинам проверка подписанных Jar-файлов с файлами политики не работает.
Может ли кто-нибудь объяснить / указать мне, что мне искать?
EDIT : среда выполнения jlink построена со следующими аргументами:
jlink --strip-debug \
--strip-native-commands \
--bind-services \
--no-header-files \
--no-man-pages \
--compress=2 \
--module-path ${JAVA_HOME}/jmods \
--add-modules java.desktop,java.smartcardio,java.management,java.sql,java.logging,java.net.http,java.xml.crypto,jdk.crypto.ec \
--output jlink-runtime