Presign, signing, and interactive signing all take outputs from other protocols as input. In the expected usage of the library, a node running computations will receive protocol output, encrypt it, and stick it in a database, then retrieve, reconstruct, and use it as necessary. There's a possibility that the outputs will get (intentionally or otherwise) corrupted in this process.
All the output types should have some verification on deserialization that they're still correct. For example, auxinfo output contains a modulus and a set of ring-Pedersen parameters; the ring-Pedersen modulus should match the stand-alone modulus. There are likely other properties on the other outputs.
Note: this issue should be broken into multiple, maybe one for each type.
[ ] Identify properties that must hold for all instances of a type
[ ] Add some validation method to check this on deserialization (check #6 for the latest plan?)
[ ] Add unit tests (manually creating invalid types, then asserting that serializing + deserializing them fails)
Presign, signing, and interactive signing all take outputs from other protocols as input. In the expected usage of the library, a node running computations will receive protocol output, encrypt it, and stick it in a database, then retrieve, reconstruct, and use it as necessary. There's a possibility that the outputs will get (intentionally or otherwise) corrupted in this process.
All the output types should have some verification on deserialization that they're still correct. For example, auxinfo output contains a modulus and a set of ring-Pedersen parameters; the ring-Pedersen modulus should match the stand-alone modulus. There are likely other properties on the other outputs.
Note: this issue should be broken into multiple, maybe one for each type.