Problem
The library exposes XMLDSig and XMLEnc pipelines, but cannot be used as a drop-in command-line replacement by existing libxmlsec1 automation. Upstream test scripts currently require the C xmlsec1 executable or a translation layer, so command compatibility and end-to-end coverage are not measured against the Rust implementation.
Scope
- Add a native
xmlsec1-compatible Rust binary for signing, verification, encryption, decryption, key handling, and capability queries.
- Preserve the upstream command aliases, option syntax, output routing, and process exit-status contract for the implemented surface.
- Drive operations through the existing provider, policy, XMLDSig, and XMLEnc APIs without a second cryptographic implementation or implicit resource access.
- Advertise only capabilities that complete end-to-end; unsupported formats and algorithms must fail capability checks cleanly.
- Run the unmodified upstream
testDSig.sh, testEnc.sh, and testKeys.sh scripts against the Rust binary without a Python translation layer.
- Reconcile command, option, status, transform, and key-data results with the compatibility ledger.
- Document installation, supported CLI behavior, limitations, and representative usage.
Acceptance criteria
- Sign/verify and encrypt/decrypt round trips work through the process interface.
- Wrong keys, tampered data, malformed XML, invalid options, unsupported capabilities, and output failures return deterministic non-zero statuses.
- Capability queries and runtime behavior are sourced from the same registry and cannot contradict each other.
- Unit, process integration, donor interoperability, doctest, clippy, and all-feature workspace checks pass.
Validation
cargo nextest run --workspace --all-features
cargo test --workspace --all-features --doc
cargo check --workspace --all-targets --all-features
cargo clippy --workspace --all-targets --all-features -- -D warnings
Problem
The library exposes XMLDSig and XMLEnc pipelines, but cannot be used as a drop-in command-line replacement by existing libxmlsec1 automation. Upstream test scripts currently require the C
xmlsec1executable or a translation layer, so command compatibility and end-to-end coverage are not measured against the Rust implementation.Scope
xmlsec1-compatible Rust binary for signing, verification, encryption, decryption, key handling, and capability queries.testDSig.sh,testEnc.sh, andtestKeys.shscripts against the Rust binary without a Python translation layer.Acceptance criteria
Validation
cargo nextest run --workspace --all-featurescargo test --workspace --all-features --doccargo check --workspace --all-targets --all-featurescargo clippy --workspace --all-targets --all-features -- -D warnings