Open
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.