Add built-in ECDSA-SHA256 XML signature support#12
Merged
Conversation
Agent-Logs-Url: https://github.com/rikulo/xml-crypto/sessions/e8be92a4-c274-47cd-b52b-d60474de8c21 Co-authored-by: scribetw <6398934+scribetw@users.noreply.github.com>
Agent-Logs-Url: https://github.com/rikulo/xml-crypto/sessions/e8be92a4-c274-47cd-b52b-d60474de8c21 Co-authored-by: scribetw <6398934+scribetw@users.noreply.github.com>
Agent-Logs-Url: https://github.com/rikulo/xml-crypto/sessions/e8be92a4-c274-47cd-b52b-d60474de8c21 Co-authored-by: scribetw <6398934+scribetw@users.noreply.github.com>
Agent-Logs-Url: https://github.com/rikulo/xml-crypto/sessions/e8be92a4-c274-47cd-b52b-d60474de8c21 Co-authored-by: scribetw <6398934+scribetw@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Add support for Elliptic Curve Signatures using ECDSA
Add built-in ECDSA-SHA256 XML signature support
May 8, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
Adds first-class ECDSA-SHA256 XMLDSIG support (http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha256) to SignedXml, along with fixtures, tests, and documentation updates to validate interoperability and in-library signing.
Changes:
- Register and implement
ecdsa-sha256signing/verification, including XMLDSIG rawr || sSignatureValueencoding/decoding. - Add external ECDSA signature + EC PEM fixtures and new ECDSA-focused tests.
- Update README supported algorithms and add new crypto dependencies.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| lib/src/signed_xml.dart | Adds ECDSA-SHA256 signature algorithm implementation and raw `r |
| pubspec.yaml | Adds basic_utils + pointycastle dependencies; updates false_secrets exclusions for test key material. |
| README.md | Documents ECDSA-SHA256 as a supported signature algorithm; fixes a formatting issue in “Who Uses”. |
| test/ecdsa_test.dart | Adds tests for verifying an external ECDSA signature and generating/verifying ECDSA signatures in-library. |
| test/static/ecdsa_signature.xml | Adds an externally-generated ECDSA-SHA256 signed XML fixture for interoperability coverage. |
| test/static/ecdsa_public.pem | Adds EC public key fixture used for ECDSA verification tests. |
| test/static/ecdsa_private.pem | Adds EC private key fixture used for ECDSA signing tests. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
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.
This adds first-class support for elliptic-curve XML signatures, specifically
http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha256. It also adds interoperability coverage with a valid externally generated ECDSA XML signature.Signature algorithm support
ecdsa-sha256inSignedXml.signatureAlgorithmsSignatureValuein rawr || sform, including fixed-width encoding per curve orderInteroperability coverage
Regression tests
Docs
ECDSA-SHA256as a supported signature algorithm in the READMEExample:
Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
https://storage.googleapis.com/flutter_infra_release/releases/releases_linux.json/dependabot-proxy /dependabot-proxy 5e7a95e21dca4817f4bc4ffdeb75aa2eb952bf807bfdc22dcd63297620f74d94 f871bcd0d8d48ad6-t /usr/lib/git-corfilter orig�� a3091003:pubspecDOCKER(http block)/dependabot-proxy /dependabot-proxy start 5e7a95e21dca4817f4bc4ffdeb75aa2eb952bf807bfdc22dcd63297620f74d94 /usr/lib/git-corfilter pack�� md --revs k/_temp/ghcca-nobr-5670be8cd6a7 c93637d2573f5335691415bc16e36833220/log.json --delta-base-off--wait -q git --no�� submodules | heaDOCKER_OUTPUT -- /home/REDACTED/.co127.0.0.11 609428e4f3eeeaa2bash c93637d2573f5335691415bc16e36833220/33c4af9e547ca384c3183a31b1dd032b10a0b952a3ce05d4ab94de37a8e6ec8a.pid it git(http block)If you need me to access, download, or install something from one of these locations, you can either: