Luke Parker
31b64b3082
Update according to the latest clippy
2022-09-04 21:23:38 -04:00
Luke Parker
e67033a207
Apply an initial set of rustfmt rules
2022-07-16 15:16:30 -05:00
Luke Parker
d81f6270c7
Version bump and synchronize packages
...
Uses "dleq-serai", instead of "dleq", as the dleq crate name hasn't been
transferred yet :(
2022-07-12 03:38:59 -04:00
Luke Parker
5eb61f3a87
Fix https://github.com/serai-dex/serai/issues/14 .
2022-07-12 01:28:01 -04:00
Luke Parker
f8760ae021
Document the transcript library
2022-07-09 00:37:39 -04:00
Luke Parker
1430b189bf
Enable no_std on transcript
...
Removes the Vec challenge for an associated type.
Fixes the merlin feature which was horribly broken.
Also adds no_std to dalek-ff-group.
2022-06-28 04:02:56 -04:00
Luke Parker
7b70baaa96
Rename transcript-trait to flexible-transcript
...
It offers the trait for flexibility, yet it also offers an incredibly
competent (and logical) transcript format, along with a Merlin wrapper.
2022-06-27 09:02:21 -04:00
Luke Parker
6775fb471e
Version bump Transcript trait
...
Preparation for yanking 0.1.0 which had an insecure format due to lack
of length prefixing labels.
2022-06-24 18:59:28 -04:00
Luke Parker
a46524f0ce
Supply a RecommendedTranscript type of DT<Blake2b512>
2022-06-24 18:58:24 -04:00
Luke Parker
963d9eab10
Have DigestTranscript require a 32-byte hash
...
Needed to generate RNG seeds without panicking. Mandates at least a
128-bit security level.
2022-06-24 18:49:04 -04:00
Luke Parker
eb94abb81a
Have DigestTranscript update its digest instead of maintaining a Vec
2022-06-24 18:43:32 -04:00
Luke Parker
03e759b1fd
Fix DigestTranscript to be secure
...
Collisions were possible depending on static label substrings. Now,
labels are prefixed by their length to prevent this from being possible.
All variables are also flagged by their type, preventing other potential
conflicts.
2022-06-24 08:42:38 -04:00
Luke Parker
9549dc6a49
Prepare transcript for publishing
2022-06-19 06:35:15 -04:00
Luke Parker
e4fc469e58
Use a transcript when generating the per-chain binding for a given set of keys
...
While it was fine as-is, as it only had one variable length property,
this is a bit more robust. Also binds the Curve ID, which should declare
differently even for just different basepoints, and therefore adds two
variable length properties (justifying the transcript).
2022-06-03 01:37:12 -04:00
Luke Parker
7b4c5dbe52
Remove rng_seed's additional entropy
...
It was never used as we derive entropy via the other fields in the
transcript, and explicitly add fields directly as needed for entropy.
Also drops an unused crate and corrects a bug in FROST's Schnorr
implementation which used the Group's generator, instead of the Curve's.
Also updates the Monero crate's description.
2022-05-31 02:12:14 -04:00
Luke Parker
d67d6f2f98
Add PartialEq to structs
2022-05-25 00:21:01 -04:00
Luke Parker
964cb357e6
Use a global transcript
2022-05-06 07:33:08 -04:00
Luke Parker
cc9c2e0d40
Use dom-sep tags in the transcripts
...
Also simplifies form in some places
2022-05-06 01:35:23 -04:00
Luke Parker
9a42391b75
Cleanup which makes transcript optional, only required for multisig
2022-05-03 08:49:46 -04:00
Luke Parker
bf257b3a1f
Transcript crate with both a merlin backend and a basic label len value backend
...
Moves binding factor/seeded RNGs over to the transcripts.
2022-05-03 07:20:24 -04:00