Add AleoSignature2021 linked data signature suite#360
Merged
Conversation
This was referenced Nov 29, 2021
Merged
- Implement signing and verifying linked data signature with Aleo key - Enable Aleo account address blockchainAccountId verification - Implement Aleo JWK generation and account address conversion
Contributor
Author
|
Squashing for merge... |
97fccc3 to
cc61fbf
Compare
Merged
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 PR defines and implements a new linked data signature suite (proof type and verification method type) using Aleo keypairs and signatures. A partial specification for the suite is added in the Rust docs, which can be seen rendered in the docs preview links below. A verifiable credential using this signature suite is added as a test vector.
This implementation uses snarkVM crates for the signing and verification functions, types, and global static parameters.
A private key representation for Aleo keypairs in JWK (JSON Web Key) format is defined, for local use only. Public key representation is via
blockchainAccountId(CAIP-10) which uses an Aleo account address and network id (according to the proposed CAIP ChainAgnostic/CAIPs#84).The functionality is enabled using a Cargo feature "aleosig". To run tests (with the feature enabled):
This signature suite is intended to work with did:pkh:aleo (#348) as a verifiable credential issuer.
Docs preview