Skip to content

[SANTUARIO-615] xades extension implementation - #617

Open
jrihtarsic wants to merge 6 commits into
apache:mainfrom
jrihtarsic:feature/SANTUARIO-615-XADES-extension
Open

[SANTUARIO-615] xades extension implementation#617
jrihtarsic wants to merge 6 commits into
apache:mainfrom
jrihtarsic:feature/SANTUARIO-615-XADES-extension

Conversation

@jrihtarsic

Copy link
Copy Markdown
Contributor

The purpose of this PR is to implement XAdES support using the pre/post‑processing mechanism for XML signatures introduced in the previous PR 616. This work addresses the XAdES requirements described in SANTUARIO‑402 and SANTUARIO‑416, and currently covers the Basic Signatures profile.

For composing the XAdES structures, the implementation uses JAXB‑generated classes based on the XAdES schema versions 1.4.1 and 1.3.2, combined with Santuario’s internal ElementProxy model.

@jrihtarsic jrihtarsic changed the title Feature/santuario 615 xades extension [SANTUARIO-615] xades extension implementation Jun 16, 2026
@jrihtarsic

Copy link
Copy Markdown
Contributor Author

Hi @coheigea

Is it possible
To review the following two PRs regarding XAdES-B
First this one:
#616 - adds the feature to be able to implement pre/post processors to the signature

And then this:
#617 - This PR builds on the feature introduced in PR 616 and provides an implementation of the XAdES‑B profile.

In the second M 617 R I also added a tool
src/test/java/org/apache/xml/security/testutils/SelfSignedCertGenerator.java

which generates simple test certificates on the fly so that there is no need to add new keystore/truststore binaries for new key types. The tool is intentionally minimal, has no external dependencies, and is reusable for future work, including for the future contributions on Post‑Quantum Cryptography.
I created it because Mr. @seanjmullan previously raised concerns when I added keystores for the X25519/X448 and EdDSA use-cases, and this now serves as the alternative.

@coheigea

Copy link
Copy Markdown
Contributor

@jrihtarsic Please resolve the conflicts

@jrihtarsic

Copy link
Copy Markdown
Contributor Author

@coheigea the conflict is resolved now.

ffang added a commit to ffang/santuario-xml-security-java that referenced this pull request Aug 21, 2026
Adds ML-DSA-44/65/87 XML digital signature support via the JSR-105
API (DOM) and the STAX signature path, wired through JCEMapper and
the JSR-105 provider's algorithm URI registrations. Part of the
post-quantum work tracked under SANTUARIO-634 (originally proposed
in SANTUARIO-633 / apache#645), split
out here as the signature-only half per community request.

- The ML-DSA test keystore is generated on the fly per test run
  instead of a committed PKCS12 binary, avoiding the maintenance
  burden of binary test fixtures. Uses SelfSignedCertGenerator,
  originally authored by Joze Rihtarsic (unmerged PR apache#617), copied
  in and extended here with ML-DSA-44/65/87 AlgorithmIdentifier
  support per his suggestion on apache#645.
- Adds negative-test coverage on both the DOM/JSR-105 and STAX
  paths: a tampered SignatureValue is rejected, and verification
  against the wrong public key fails. Added per Arpan0995's review
  feedback on apache#645.
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