HmacPBESHA256 not available in Openwrt

I am using a distro based on OpenWRT 21, running on an ARM Cortex A9 with NEON architecture (i.MX6). When I try to run a Java application with a .jar extension, I encounter the following error: Algorithm HmacPBESHA256 not available. The default Java version that comes with the distro is:

openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment AdoptOpenJDK-11.0.11+9 (build 11.0.11+9)
OpenJDK Server VM AdoptOpenJDK-11.0.11+9 (build 11.0.11+9, mixed mode)

Moreover, when I test the same application on my x86 PC running Ubuntu 22.04, I don't encounter this error. The Java version on this system is:

openjdk version "11.0.20.1" 2023-08-24
OpenJDK Runtime Environment (build 11.0.20.1+1-post-Ubuntu-0ubuntu122.04)
OpenJDK 64-Bit Server VM (build 11.0.20.1+1-post-Ubuntu-0ubuntu122.04, mixed mode, sharing)

The application is distributed directly in a JAR format, and I have no expertise in Java. I tried copying the java.security file directly from the working version on Ubuntu to the OpenWRT system, but as expected, it didn’t work.

Updating the Java version might be an option, but it seems quite hard, and moreover, it appears to work on another device with the same main version. I can’t think of any other solutions and feel quite stuck. Any suggestions or insights would be greatly appreciated.

Then you should ask the people who provided you with the distro.

Your response is a disappointment for someone who actively uses the forum and has a high number of solutions. What is wrong there in my question or in the situation I am in?

Theres nothing wrong with the question, but it should be sent to the people who created the "distro based on Openwrt".

You may be right, but the people who develop distro are not the same ones who develop AdoptJDK, after all. The experience of someone who has previously worked with Java and how they solved this issue, or how one might perform a cross-compilation process to use a more up-to-date version of Java, or even version recommendations from someone who has used an alternative JVM on the OpenWRT operating system before could also be helpful.

Look, the situation is rather simple:

a) you aren't using OpenWrt (no, a distro 'based on OpenWrt' with random -unknown- changes, a different kernel and no support for the whole target in OpenWrt does not qualify)
b) OpenWrt doesn't ship AdoptOpenJDK (or any JDK for that matter)

at which point is OpenWrt involved in all this?

At this point, your websearching is as good as ours. You could just as well post this question in a classic car enthusiast forum or at a congress for hoof diseases in lifestock, it would fit in there just as well.


It appears you are using firmware that is not from the official OpenWrt project.

When using forks/offshoots/vendor-specific builds that are "based on OpenWrt", there may be many differences compared to the official versions (hosted by OpenWrt.org). Some of these customizations may fundamentally change the way that OpenWrt works. You might need help from people with specific/specialized knowledge about the firmware you are using, so it is possible that advice you get here may not be useful.

You may find that the best options are:

  1. Install an official version of OpenWrt, if your device is supported (see https://firmware-selector.openwrt.org).
  2. Ask for help from the maintainer(s) or user community of the specific firmware that you are using.
  3. Provide the source code for the firmware so that users on this forum can understand how your firmware works (OpenWrt forum users are volunteers, so somebody might look at the code if they have time and are interested in your issue).

If you believe that this specific issue is common to generic/official OpenWrt and/or the maintainers of your build have indicated as such, please feel free to clarify.

2 Likes

Have you tried Alpine's Java and installed it into OpenWRT. The biggest obstacle when cross-compiling OpenJDK on OpenWRT