We require the calling application to securely store private types returned from each subprotocol and clearly annotate them, but we don't provide any methods for serializing or converting to and from bytes on those types:
KeySharePrivate
AuxInfoPrivate
PresignRecord
It might be wise to do some careful serialization -- like, rather than just slapping derive(Serialize) on all of these, we can have specific types, and we might want to do e.g. length encoding or additional validation (for example, the private key share should be <q).
Also, for testing that secure storage works correctly, it would be helpful to be able to compare different instances of the private types (e.g. PartialEq, Eq).
[x] Choose a misuse-resistant way to convert between the above types and bytes
[x] Add equality checks and byte conversions for KeySharePrivate. Test them. (#439)
[x] Add equality checks and byte conversions for AuxInfoPrivate. Test them. (#433)
[ ] Add equality checks and byte conversions for PresignRecord. Test them.
We require the calling application to securely store private types returned from each subprotocol and clearly annotate them, but we don't provide any methods for serializing or converting to and from bytes on those types:
KeySharePrivate
AuxInfoPrivate
PresignRecord
It might be wise to do some careful serialization -- like, rather than just slapping
derive(Serialize)
on all of these, we can have specific types, and we might want to do e.g. length encoding or additional validation (for example, the private key share should be<q
).Also, for testing that secure storage works correctly, it would be helpful to be able to compare different instances of the private types (e.g.
PartialEq, Eq
).KeySharePrivate
. Test them. (#439)AuxInfoPrivate
. Test them. (#433)PresignRecord
. Test them.