Repository navigation
Conversation
|
|
||
| @Override | ||
| public Cipher getAesCbcCipher() throws NoSuchAlgorithmException, NoSuchPaddingException { | ||
| return Cipher.getInstance("AES/CBC/PKCS5Padding", jipherProvider); |
slaskawi
force-pushed
the
brisbane_poc
branch
4 times, most recently
from
October 7, 2026 20:05
8a85c84 to
6ce3106
Compare
Signed-off-by: Sebastian Łaskawiec <sebastian.laskawiec@defenseunicorns.com>
slaskawi
force-pushed
the
brisbane_poc
branch
from
October 12, 2026 09:41
6ce3106 to
675881c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This draft prototypes Project Brisbane as an alternative FIPS cryptographic provider in Keycloak. Bouncy Castle remains the default.
--features=fips,brisbaneopts into Brisbane;brisbanedepends onfips. The implementation uses the pinned JitPack artifact, OpenJDK 25, and an OpenSSL 3.1.2 FIPS provider with an OpenSSL 3.5.9 runtime.The Brisbane PoC report covers the architecture, native build, exact macOS and Linux run steps, validation, and FIPS limits. This is a prototype, not a claim that Keycloak or this image is FIPS 140-3 validated.
Try the image
The image is built with strict Brisbane mode. After the startup message, check discovery and request a token:
Discovery should return HTTP 200; the token response should contain a bearer access token. Confirm the native versions in the running image:
Expected: JipherJCE 20.1, OpenSSL 3.5.9, OpenSSL FIPS provider 3.1.2. Stop the demo with
docker rm --force "$CONTAINER_ID". The example uses HTTP and an embedded database for local evaluation.Implementation details
fips. It is selected during augmentation, so switching providers requires rebuilding the distribution or image.FIPSorFIPS_STRICTpolicy before use. Strict mode requires JipherJCE to have highest provider priority.RSA1_5; existing providers retain their behavior.Limitations
jipher.openssl.useOsInstance=true, even when their OpenSSL and FIPS packages are installed. This limits adoption on those distributions; the PoC retains its separate OpenSSL build. Pinned OS detection.RSA1_5must choose another algorithm.X509CertificateBuildersigns certificates without a provider-selection hook. Explicit selection would require a different certificate-building path.DOMReferencehashes XML references without a provider-selection hook. Its signature-provider hook does not cover these digests; removing priority dependence also requires changes to the XML signature integration.Validation
git diff --checkpassed.AI assistance: Codex helped implement and review this prototype.