Skip to content

chore(fips): merge main into fips#362

Draft
Copilot wants to merge 8 commits intomainfrom
copilot/merge-main-into-fips
Draft

chore(fips): merge main into fips#362
Copilot wants to merge 8 commits intomainfrom
copilot/merge-main-into-fips

Conversation

Copy link
Copy Markdown

Copilot AI commented May 5, 2026

Brings the fips branch up to date with main (v0.15.0), incorporating ~50 commits of new features and refactoring while preserving FIPS-specific crypto changes.

Conflict resolution

ECKeyPair.java

The two branches diverged significantly: main restructured around an ECCurve enum, KeyPair field, and added getPEMPublicKeyFromX509Cert; fips switched to standard java.security.interfaces types and removed explicit BouncyCastle provider pinning from JCA operations. Resolution takes main's structure and applies fips's FIPS-critical constraints:

  • KeyPairGeneratorSpi.getInstance(algo) — no explicit BC provider
  • KeyFactory.getInstance("EC") — not "ECDSA" or "EC","BC"
  • KeyAgreement.getInstance("ECDH") / Signature.getInstance("SHA256withECDSA") — no "BC" provider arg
  • new JcaPEMKeyConverter() — no .setProvider(BOUNCY_CASTLE_PROVIDER)
  • Return types use java.security.interfaces.ECPublicKey/ECPrivateKey (compatible with auto-merged TDF.java/KASClient.java)

ECKeyPairTest.java

  • Removed extractPemPubKeyFromX509 — used BC-specific .getQ() which is unavailable on java.security.interfaces.ECPublicKey
  • Added createSymmetricKeysWithOtherCurves from main (no BC-specific calls)
  • Enabled the previously-commented publicKeyFromECPoint assertion using SECP256R1.getCurveName()

NanoTDF.java

Accepted main's deletion. All NanoTDF dependencies (ECCMode, NanoTDFType, NanoTDFECDSAStruct, etc.) were removed in main; keeping NanoTDF.java alone would break compilation. The fips-branch changes to NanoTDF.java were incidental import-style updates, not new FIPS functionality.

mkleene and others added 3 commits June 11, 2025 17:57
Merges main (v0.15.0) into the fips branch.

Conflict resolution:
- ECKeyPair.java: Combined main's structure (ECCurve enum, KeyPair field,
  new methods like getPEMPublicKeyFromX509Cert) with fips's FIPS-compatible
  crypto changes (no explicit BouncyCastle provider, standard Java interfaces
  for ECPublicKey/ECPrivateKey, KeyFactory.getInstance("EC")).
- ECKeyPairTest.java: Kept fips's removal of extractPemPubKeyFromX509 test
  (which used BC-specific .getQ()), incorporated main's new
  createSymmetricKeysWithOtherCurves test, and enabled publicKeyFromECPoint
  assertion using ECCurve.getCurveName().
- NanoTDF.java: Accepted main's deletion since all NanoTDF dependencies
  (ECCMode, NanoTDFType, etc.) were also removed in main.

Signed-off-by: GitHub <noreply@github.com>

Co-authored-by: mkleene <262667+mkleene@users.noreply.github.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 7, 2026

X-Test Results

✅ java-main
✅ go-main
✅ js-main

mkleene and others added 2 commits May 7, 2026 11:39
Remove the three io.github.hakky54:ayza* dependencies and replace their
TLS trust-material role with an SDK-owned TrustProvider built on
provider-agnostic JCA APIs (CertificateFactory, KeyStore,
TrustManagerFactory, SSLContext). This works under any registered crypto
provider, including BC-FIPS, and avoids hardcoded provider names.

- Add TrustProvider and package-private CompositeX509ExtendedTrustManager
  for combining JVM default + custom trust material.
- SDKBuilder: replace SSLFactory field with SSLSocketFactory +
  X509TrustManager. sslFactory(SSLFactory) becomes
  sslFactory(SSLSocketFactory); add sslFactory(SSLSocketFactory,
  X509TrustManager) for callers that have a matching trust manager.
  sslFactoryFromDirectory / sslFactoryFromKeyStore signatures and
  semantics are preserved, now backed by TrustProvider internally.
- TokenSource takes SSLSocketFactory directly.
- Command.java --insecure path uses TrustProvider.insecure().
- SDKBuilderTest reworked to drop nl.altindag imports and use
  TrustProvider + standard JCA.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
try {
SSLContext ctx = SSLContext.getInstance("TLS");
X509ExtendedTrustManager trustAll = new InsecureTrustManager();
ctx.init(new KeyManager[0], new TrustManager[]{trustAll}, new SecureRandom());
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 7, 2026

X-Test Failure Report

❌ go-main
❌ js-main

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 7, 2026

X-Test Failure Report

@mkleene mkleene force-pushed the copilot/merge-main-into-fips branch from 0c540e0 to 46ac8d9 Compare May 7, 2026 16:00
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 7, 2026

X-Test Failure Report

@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented May 7, 2026

Quality Gate Failed Quality Gate failed

Failed conditions
D Security Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 7, 2026

X-Test Results

✅ java-main
✅ js-main
✅ go-main

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants