Luke Parker
5765d1d278
Update to May's nightly
...
Doesn't use the PR due to the needed changes.
2023-05-01 04:58:50 -04:00
Luke Parker
47be373eb0
Resolve #268 by adding a Zeroize to DigestTranscript which writes a full block
...
This is a 'better-than-nothing' attempt to invalidate its state.
Also replaces black_box features with usage of the rustversion crate.
2023-03-28 04:43:10 -04:00
Luke Parker
8d4d630e0f
Fully document crypto/
2023-03-20 20:10:00 -04:00
Luke Parker
837c776297
Make Schnorr modular to its transcript
2023-03-07 05:30:21 -05:00
Luke Parker
2bad06e5d9
Fix #200
2023-03-07 03:55:58 -05:00
Luke Parker
a053454ae4
3.9.4 Add tests to the transcript crate
2023-03-07 02:25:10 -05:00
Luke Parker
7efedb9a91
3.9.1 Also correct invalid doc comment
2023-03-06 07:16:04 -05:00
Luke Parker
79124b9a33
3.9.2 Better document rng_seed is allowed to conflict with challenge
2023-03-02 11:19:26 -05:00
Luke Parker
2f4f1de488
3.9.1 Fix SecureDigest trait bound
2023-03-02 10:57:22 -05:00
Luke Parker
12136a9409
Document extensions to FROST
...
Also makes misc other doc corrections.
2022-12-07 20:23:25 -05:00
Luke Parker
8de465af87
Have Transcript::append_message take in AsRef<[u8]>, not &[u8]
...
Simplifies calling it.
2022-11-05 18:43:36 -04:00
Luke Parker
8d9315b797
Use HashMarker for Transcript and when generating scalars from digests
2022-09-29 05:33:46 -04:00
Luke Parker
ca091a5f04
Expand and correct documentation
2022-09-29 05:25:29 -04:00
Luke Parker
19cd609cba
Use doc_auto_cfg
2022-09-29 04:47:55 -04:00
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
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
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
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