Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
9bf8ebc
set bc in approved only
mkleene Jun 9, 2026
47d455c
feat(sdk): use cipher wrap/unwrap for RSA key operations
mkleene Jun 9, 2026
ff37ca6
add an empty default key store in FIPS mode
mkleene Jun 10, 2026
335cfd4
add new module
mkleene Jun 11, 2026
25d4b2a
use a good envvar
mkleene Jun 11, 2026
debc0cf
deal with the CP correctly
mkleene Jun 11, 2026
9d75430
do this faster
mkleene Jun 11, 2026
49aae55
set this up
mkleene Jun 11, 2026
0d79a1f
include the main class
mkleene Jun 11, 2026
057d260
get the property right
mkleene Jun 11, 2026
f272301
one more segment
mkleene Jun 11, 2026
1c80757
print stuff out
mkleene Jun 11, 2026
f00598d
see if this works
mkleene Jun 11, 2026
7e08117
oops
mkleene Jun 11, 2026
6a137c4
one more
mkleene Jun 11, 2026
af427fc
one more
mkleene Jun 11, 2026
e4b4aa1
try this
mkleene Jun 11, 2026
81afe20
move this back to the right place
mkleene Jun 11, 2026
d03af4b
one more
mkleene Jun 11, 2026
2014c3d
make sure to get output it
mkleene Jun 11, 2026
2629f07
debug
mkleene Jun 11, 2026
2309106
maybe this
mkleene Jun 11, 2026
f24d41a
see about this
mkleene Jun 11, 2026
c999916
crazy
mkleene Jun 11, 2026
027ab7d
one more try
mkleene Jun 11, 2026
fad0435
one more
mkleene Jun 11, 2026
8f1fd51
more logging
mkleene Jun 11, 2026
36b7141
ok
mkleene Jun 11, 2026
6669843
more logging
mkleene Jun 11, 2026
da712ee
more logging
mkleene Jun 11, 2026
815be2a
one more
mkleene Jun 11, 2026
3511f02
one more log
mkleene Jun 11, 2026
fa5c26f
try changing the log level
mkleene Jun 12, 2026
f3c811b
more explicit logging
mkleene Jun 12, 2026
6dd35f2
get some logs
mkleene Jun 12, 2026
32d7d42
yikes
mkleene Jun 12, 2026
d24c1a9
one more
mkleene Jun 12, 2026
54752b9
just run it in FIPS mode all the time
mkleene Jun 12, 2026
b5e820f
sonarcloud
mkleene Jun 12, 2026
5b07fa8
fix mvnverify
mkleene Jun 12, 2026
887ba9d
refer to the module in a simpler way
mkleene Jun 12, 2026
d7621b7
refactor scripts some
mkleene Jun 12, 2026
2a8bd54
update permissions
mkleene Jun 12, 2026
9369d07
Update TDFReader.java
mkleene Jun 12, 2026
46d1d87
Remove static logger from TDFReader
mkleene Jun 12, 2026
baee611
Update log4j2.xml
mkleene Jun 12, 2026
9d21147
Update TDF.java
mkleene Jun 12, 2026
a8c39b4
Remove blank lines in TDF.java
mkleene Jun 12, 2026
517bd27
fix label
mkleene Jun 12, 2026
4683cc5
Merge remote-tracking branch 'origin/enhance-fips-tests' into enhance…
mkleene Jun 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .github/workflows/checks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,10 @@ jobs:
BUF_INPUT_HTTPS_PASSWORD: ${{ secrets.PERSONAL_ACCESS_TOKEN_OPENTDF }}
run: mvn clean --batch-mode clean generate-sources
- name: Tests and enforcer (fips)
run: mvn --batch-mode test enforcer:enforce -P 'fips,!non-fips' -Dmaven.antrun.skip
run: |
mvn --batch-mode test enforcer:enforce -P 'fips,!non-fips' \
-Dmaven.antrun.skip \
-Dorg.bouncycastle.fips.approved_only=true
- name: Tests with coverage and javadoc (non-fips)
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package io.opentdf.platform.sdk;

import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledIfSystemProperty;

import java.security.Security;

import static org.junit.jupiter.api.Assertions.*;

/**
* Verifies that the java.security.fips.test properties file was actually loaded when running
* under the fips Maven profile. Without this check, a misconfigured argLine would silently run
* all other tests against the default (non-FIPS) provider stack.
*/
@EnabledIfSystemProperty(named = "org.bouncycastle.fips.approved_only", matches = "true")
Comment thread
mkleene marked this conversation as resolved.
class FipsProviderVerificationTest {

@Test
void bcFipsIsFirstProvider() {
var providers = Security.getProviders();
assertNotNull(providers, "No security providers registered");
assertTrue(providers.length > 0, "Provider list is empty");
assertEquals("BCFIPS", providers[0].getName(),
"Expected BCFIPS as the first security provider but got: " + providers[0].getName()
+ " — the java.security.fips.test file was likely not loaded");
}

@Test
void bcJsseIsRegistered() {
assertNotNull(Security.getProvider("BCJSSE"),
"BCJSSE provider is not registered — the java.security.fips.test file was likely not loaded");
}

@Test
void sunJceIsNotRegistered() {
assertNull(Security.getProvider("SunJCE"),
"SunJCE provider is still registered — it should have been removed by java.security.fips.test");
}

@Test
void keyManagerFactoryAlgorithmIsPkix() {
assertEquals("PKIX", Security.getProperty("ssl.KeyManagerFactory.algorithm"),
"ssl.KeyManagerFactory.algorithm was not overridden to PKIX — the java.security.fips.test file was likely not loaded");
}
}
Loading