identity.rs
identity.rs copied to clipboard
[Task] Upgrade to Ed25519 Signature 2020
Description
Add support for Ed25519VerificationKey2020
~and Ed25519Signature2020
.~
We still need to keep Ed25519VerificationKey2018
for backwards compatibility, but should default to Ed25519VerificationKey2020
in the future.
Motivation
Stay compliant with the latest specification.
Resources
https://w3c-ccg.github.io/lds-ed25519-2020/
Change checklist
Add an x
to the boxes that are relevant to your changes, and delete any items that are not.
- [ ] The feature or fix is implemented in Rust and across all bindings whereas possible.
- [ ] The feature or fix has sufficient testing coverage
- [ ] All tests and examples build and run locally as expected
- [ ] Every piece of code has been document according to the documentation guidelines.
- [ ] If conceptual documentation (mdbook) and examples highlighting the feature exist, they are properly updated.
- [ ] If the feature is not currently documented, a documentation task Issue has been opened to address this.
We use JcsEd25519Signature2020, we do not use Ed25519Signature2018
nor Ed25519Signature2020
because they have a different data canonicalisation algorithm (RDF).
@cycraig Thank you for clarifying 🙏As there is no superseding spec should we consider this issue obsolete?
We should still add first-class support for Ed25519VerificationKey2020
(and maybe default to it) for interoperability. It's only the signature I think we should ignore, considering the better alternatives.
General cryptographic agility is now tracked in https://github.com/iotaledger/identity.rs/issues/1037.