Commit Graph

22 Commits

Author SHA1 Message Date
Luke Parker
7c0886a113 Support signing Monero TXs with multiple inputs
Remove's CLSAG's msg Rc for the msg available through AlgorithmMachine. 
Potentially slightly more inefficient, as it needs to be converted from 
a slice to a [u8; 32], yet removes a re-impl.

Also removes a match for an if.
2022-05-18 00:53:13 -04:00
Luke Parker
3a13f80bdd Patch for previous commit 2022-05-17 19:51:04 -04:00
Luke Parker
fd0fd77cf5 Simplify Monero key image handling 2022-05-17 19:15:53 -04:00
Luke Parker
94bd30083b Slightly simplify CLSAG signing
Expands its test to test all possible ring indexes, though just 0 and a 
single n would be sufficient.
2022-05-14 00:45:13 -04:00
Luke Parker
3533e66c7f Add Rust CLSAG verification
Marked experimental, not guaranteed to match Monero yet
2022-05-13 20:26:29 -04:00
Luke Parker
3e7598315c Reorganize CLSAG sign flow 2022-05-06 19:07:37 -04:00
Luke Parker
3dab26cd94 Correct discrepancies with the IETF draft
While all the transcript/extension code works as expected, which means, 
they don't cause any conflicts, n was still capped at u64::MAX at 
creation when it needs to be u16. Furthermore, participant index and 
scalars/points were little endian instead of big endian/curve dependent.
2022-05-06 07:49:18 -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
Luke Parker
9ccf683e9d Working multisig TXs 2022-04-30 04:32:19 -04:00
Luke Parker
d6649fffb1 Merge InputMultisig into Multisig
There's no reason to use the latter.
2022-04-30 01:43:15 -04:00
Luke Parker
22ac5ce3b6 Update the CLSAG multisig API for TX signing 2022-04-30 01:41:05 -04:00
Luke Parker
27396a6291 Implement a CLSAG algorithm extension which also does key images
Practically, this should be mergeable. There's little reason to do a 
CLSAG and not also a key image. Keeps them isolated for now.
2022-04-29 22:03:34 -04:00
Luke Parker
45559e14ee Various corrections to multisig API 2022-04-29 15:28:04 -04:00
Luke Parker
1d0a0c7c16 Clean up code, correct a few bugs, add leader based one-time-key/BP gen 2022-04-28 20:09:31 -04:00
Luke Parker
c4b7cb71d7 Move SignableInput to clsag::Input 2022-04-28 17:29:56 -04:00
Luke Parker
7ed1fca270 Use a SeedableRng for CLSAG multisig signing 2022-04-28 17:12:54 -04:00
Luke Parker
20f214c300 Update CLSAG multisig to work again 2022-04-28 12:01:20 -04:00
Luke Parker
c9537a08a1 Files meant for the previous commit 2022-04-27 00:09:25 -04:00
Luke Parker
df4be9ca0c Move the Monero create to coins/
Includes misc bug fixes
2022-04-27 00:09:05 -04:00