Overview
Minimus provides FIPS 140-3 validated Java images that enable cryptographic operations compliant with Federal Information Processing Standards. These images are configured with FIPS-validated cryptographic providers and enforce strict FIPS compliance at runtime.Available Java FIPS 140-3 images
Minimus offers 4 Java FIPS 140-3 image types:openjdk-fips- OpenJDK Development Kit (JDK) with FIPS supportopenjre-fips- OpenJDK Runtime Environment (JRE) with FIPS supportamazon-corretto-jdk-fips- Amazon Corretto JDK with FIPS supportamazon-corretto-jre-fips- Amazon Corretto JRE with FIPS support
eclipse-temurin (Eclipse Temurin). The Amazon Corretto FIPS images are based on amazoncorretto (Amazon Corretto).
Supported Java versions
Java FIPS images support active Java versions:- Java 25
- Java 24 (Reached EOL)
- Java 21
- Java 17
- Java 11
FIPS 140-3 configuration
Cryptographic providers
Java FIPS 140-3 images are configured with the following security providers (ordered by priority):- SafeLogic CryptoComply FIPS Provider (CCJ) - Primary FIPS 140-3 validated provider
- Bouncy Castle JSSE Provider - FIPS-compliant TLS/SSL provider that delegates to CCJ
- Sun Provider - Loaded at low priority (required for CCJ JAR signature validation only)
- Infrastructure Providers - SunJGSS, SunSASL, XMLDSig, SunPCSC, JdkLDAP, JdkSASL (delegate crypto operations to CCJ/BCJSSE)
FIPS 140-3 libraries
The images include the following FIPS-validated libraries in/usr/share/fips-libs/:
ccj-4.0.0-fips.jar- SafeLogic CryptoComply FIPS 140-3 providersl-bcutil-2.0.3.jar- SafeLogic Bouncy Castle utilitiessl-bctls-2.0.21.jar- SafeLogic Bouncy Castle TLS/SSL (JSSE)sl-bcpkix-2.0.8.jar- SafeLogic Bouncy Castle PKIX/X.509sl-bcmail-2.0.5.jar- SafeLogic Bouncy Castle S/MIMEsl-bcpg-2.0.12.jar- SafeLogic Bouncy Castle OpenPGP
Security configuration
The images enforce FIPS compliance through:- Approved-only mode:
com.safelogic.cryptocomply.fips.approved_only=true - Non-FIPS providers disabled: SunRsaSign, SunEC, SunJCE, and SunJSSE are omitted
- FIPS-approved algorithms only: Non-FIPS algorithms are blocked (e.g., MD5)
- BCFKS keystore type: Required for private keys (Bouncy Castle FIPS KeyStore is a FIPS-compliant keystore format)
- Trust store types: JKS, PKCS12, and BCFKS supported for truststores
Environment variables
Minimus Java FIPS images set the following environment variables by default:-
JAVA_HOME: Points to the default JVM installation -
CLASSPATH: Includes FIPS libraries from/usr/share/fips-libs/* -
JAVA_FIPS_CLASSPATH: Explicit FIPS classpath reference -
JDK_JAVA_OPTIONS: Includes the required exports and FIPS trust store configuration:
Verifying the Java FIPS 140-3 module
Each Java FIPS image includes automated tests that verify:- Java version - Confirms that the correct Java version is installed
- FIPS provider availability - Verifies that SafeLogic CryptoComply and Bouncy Castle JSSE providers are loaded
- Provider priority - Ensures providers are in the correct order (CCJ at position 1, BCJSSE at position 2)
- FIPS-approved algorithms - Tests that FIPS-approved algorithms (AES, SHA-256, RSA) are available
- Non-FIPS algorithm blocking - Confirms non-FIPS algorithms (e.g., MD5) are correctly blocked
Basic verification
FIPS compliance test
You can verify FIPS compliance by creating a test program. For example, save the following code as the fileTestFIPS.java:
Notes
- FIPS compliance is enforced at runtime via Java security configurations
- Applications must use FIPS-approved algorithms and keystore formats (BCFKS)
- The Sun provider is included only for JAR signature validation and does not perform cryptographic operations
- All cryptographic operations are routed through FIPS-validated providers (CCJ and BCJSSE)
- The Java FIPS module requires specialized hardware. Learn more