Crypto Wrappers
This crypto wrapper defines the following main structures:
Signer- a generic structure to sign messagesVerifier- a generic structure to verify signed messagesCondition- an AND/OR/NofT combination of verifiers, badges, and conditionsBadge- a trait with an ID, a Condition, and a version.
An example use-case is the following:
- When a node starts, it creates a
Signer, and aBadgewith aConditionpointing to theVerifierof thatSigner. This allows the node to do key rotation by updating itsBadge - A user wants to create a website with many objects, so they create:
- one or more nodes with the corresponding
Badges. A CLI tool to update the page also acts as a node. - a
WebPageT: Badgewith an OR of all nodes and CLIsBadges - a
WebPageAR: ACEwith rules likeupdate_object,add_object,rm_object, pointing to theWebPageT
- one or more nodes with the corresponding
- Now the user can create objects and point them to the
WebPageAR, allowing them to:- control all objects from any node
- update the
WebPageTif nodes join or go away - update the
WebPageARif part of the rules should apply to otherBadges. An example could be a rule to update theTTLof an object, which could be allowed by more nodes than the rule to modify an object
Signer and Verifier
Currently there is an implementation for:
Ed25519for good old EDDSA signaturesMlDSAfor different sizes of FIPS 204 compatible signatures