Once the "standalone" signing protocol is implemented, we can use it as a building block to implement interactive signing. To reduce PR size, we'll implement interactive signing in two parts. This is the first part: defining types and putting other infrastructure in place. The second part will be the actual protocol implementation.
We want to outline a type for interactive signing that implements ProtocolParticipant with:
input: Define a custom type that includes a message (&[u8]) and a PresignInput (e.g. the output of auxinfo + keygen) -- can rename if more appropriate here or hide the fact that it's presign-related from the public API
output: The internal signature type defined in #378
todo!() implementations for all the trait methods
[ ] Create an InteractiveSigningParticipant type, either in the sign module from #422 or in a separate module.
[ ] Instantiate the ProtocolParticipant trait as described
[ ] Define the Input type with a nice API for instantiating it (can base on presign input)
Once the "standalone" signing protocol is implemented, we can use it as a building block to implement interactive signing. To reduce PR size, we'll implement interactive signing in two parts. This is the first part: defining types and putting other infrastructure in place. The second part will be the actual protocol implementation.
We want to outline a type for interactive signing that implements
ProtocolParticipant
with:input: Define a custom type that includes a message (&[u8]) and a
PresignInput
(e.g. the output of auxinfo + keygen) -- can rename if more appropriate here or hide the fact that it's presign-related from the public APIoutput: The internal signature type defined in #378
todo!() implementations for all the trait methods
[ ] Create an
InteractiveSigningParticipant
type, either in thesign
module from #422 or in a separate module.[ ] Instantiate the
ProtocolParticipant
trait as described[ ] Define the
Input
type with a nice API for instantiating it (can base on presign input)