IntersectMBO / IntersectMBO/cardano-base
Add tests to verify that DSIGNM and DSIGN implementations match
- Dominant language
- Haskell
- Stars
- 105
- Forks
- 54
- Avg merge
- 9d 2h
- Merged PRs (30d)
- 4
Description
For DSIGN algorithms that are available in both monadic mlocked (`class DSIGNM`) and pure (`class DSIGN`) flavors, add tests that make sure both implementations produce the same results.
Specifically, we want to check the following operations:
- `genKeyDSIGN{M}` (generate a sign key from a seed)
- `deriveVerKeyDSIGN{M}` (derive verification key from sign key)
- `signDSIGM{M}` (sign a message)
- `verifyDSIGN{M}` (verify a message against a verification key - the verification itself does not require any monadic APIs, but we need monadic code in order to generate the correct keys)
Currently, the only DSIGN algorithm that is available in both flavors is ED25519 (as `Ed25519` and `Ed25519ML`).
In order to do this properly, we should wait for #317, which introduces the `DirectSerialise` and `DirectDeserialise` typeclasses that we can use to inspect the results of mlocked Ed25519 operations.
Contributor guide
Assessment
This issue has not been assessed yet.