Support Anoma stdlib APIs sign
and verify
#2788
Merged
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 adds support for the Anoma stdlib
sign
andverify
APIs.These correspond to the
sign
andsign_open
APIs from libsodium respectively.If signature verification fails in
anomaVerify
, the Anoma program exits. We copy this behaviour in the evaluator by throwing an error in this case.Notes
The Haskell Ed25519 library does not support
sign_open
. Its verification function returns Bool, i.e it checks that the signature is valid. The signed message is simply the concatenation of the signature (64 bytes) and the original message so I added a function to remove the signature from a signed message.