IntersectMBO / IntersectMBO/cardano-base

Add tests to verify that DSIGNM and DSIGN implementations match

Open
#363 0 comments 1 reaction 1 assignee Claimed by @tdammers View on GitHub
technical debt
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.