* mpc-garble
* move semihonest test to integration, expose some more types
* value config doc
* reenable all mpc crates
* rename msg type
* simplify config a bit
* typo
* add bound to StaticValueType
* clean up setup_inputs
* appease clippy
* add more flexible methods to memory trait
* add getter for value type
* comments and tweaks
* rename append -> append_string
* fix registry corruption
* drain filter
* finalize bug
* use matches!
* use as_ref
* remove default
* make decode public
* lower visibility for evaluator fn
* eval doc fix
* update buffering to be per value id
* input buffer methods
* move memory impl into separate module
* encapsulate finalized state
* flatten logic in value config
* fixes in utils
* docs
* WIP: Adapting share-conversion to new OT interface
* Adapted share-conversion crate in mpc to new ot traits
* Adapted actor-share-conversion sender to new ot interface
* Adapted share-conversion receiver to new OT interface
* Remove OT factory in `mpc-ot`
* Actor handles for OTSenderActor now implement OT traits
* Added that actor sender stores child OT
* WIP: Reworking receiver...
* Bugfixes for sender
* Added new handlers and messages for receiver
* Remove barrier
* Added verify functionality for receiver
* Changed error msg
* Adapted actor-sender to send back child-sender directly
* Adapt receiver-actor to send back receiver
* Added new traits and adapted old ones
* Added mock implementation
* WIP: Repairing tests...
* Repaired unit tests and some code hygiene
* Adapt traits and move mock
* Repair imports
* Added part of feedback
* Add more feedback
* Restructure mock module and add test for borrowed OT
* Added remaining feedback
* Adapt OT traits to use vec
* Remove splitting from mpc-ot and mpc-ot-core
- remove unused state variables
- adapt verify function
- remove barrier
- remove factory implementation
- some OT traits related to garbling have been moved to
mpc-garble
* Remove OT trait implementation for garbling
* Added rayon backend for OTSender
* Added new SpawnRayon trait
* Remove &self reference
* Typo
* Improved implementation and added a test
* Undo changes in mpc
* Backend is now a global static ZST
- OT setup now uses backend
* Replaced old RayonBackend for Garbling with new Backend
* Move tokio to dev-dependencies
* Added feedback
* Added correct feature flags to dev-dependency tokio in
actor-share-conversion
* WIP: Repairing rebase...
* aead
* minor tidying
* add _public suffix to methods
* rebase fixes
* move commitment from garble module to commit module
* add commit-reveal to tag protocol
* factor out fn for ghash prep
* mock point addition
* add naive key exchange impl
* split ke and pa
* WIP: Implementing key exchange...
* WIP: Adding key-exchange leader implementation...
* Added pms-share computation for key-exchange leader
* Improved awaiting both futures for leader
* Added key-exchange follower
* Improving architecture of KeyExchange
* No need for follower
* Adapted comments and variable names
* WIP: Building circuit for DualExConfig
* Added circuit to key-exchange
* WIP: Working on circuit construction
* WIP: Constructing circuit
* Going back to being generic over DEExecute
* WIP: Working on compute_pms_labels
* WIP: Tinkering with gc api
* Finished compute_pms_labels
* Wrapped nbit_xor in a byte-value circuit
* Small improvements and bugfixes
* Added mock implementation for key exchange
* WIP: Adding tests...
* Fixed test and added `to_be_bytes` for field
* Fix bug in implementation
* WIP: Battling with circuit builder
* Fixed bugs and added one more test
* Add comments and improve code
* Improve message types
* Add part of feedback
* Added rest of feedback
* Improving naming and comments
* Remove double reference
* Added feedback part 2
* Add Builder for KeyExchangeConfig
* Improved input assignment from `Role`
* Added ZST `Leader` and `Follower` structs and `Role` trait
* Sealed role trait
* Added feedback and added encoder
* Add feedback
- improve comment for outputs
---------
Co-authored-by: sinu <65924192+sinui0@users.noreply.github.com>
* add msb0 functionality
* add bit order to circuit model
* preserve bit order of Bits value type
* add bit order to WireGroup
* update garble crates to handle bit order
* update encoder
* reverse circuits
* update dependents
* disable tls crates
* comment from_str
* comments
Removes the xor operation in decoding to make it simpler to reason about decoding:
1. We set DecodingInfo(w) to LSB(W_0)
2. `let truth_value = if LSB(W) == DecodingInfo(w) {0} else {1}
It is easier to reason about the protocol if we break it down in 2 steps:
(sender's additive share is x, receiver's is y)
1. the sender sends to peer `y * random`
2. the sender mixes in `x * random` into the last OT.
* Moved point-addition crate out of key-exchange
* Small improvements
* Added implementation for PointAddition
* WIP: Mock converter
* Implemented mock point addition
- refactored implementation
* Refactored mock implementation
* WIP: Added test to point-addition
* Completed test for point addition
* Undo name changes. Will be done in other branch
* Simplify async test
* Simplify conversion
* Added test for point_to_p256
* Repaired rebase
* Improve point-addition implementation
- Reduce roundtrips
- Add Field supertrait to XCoordinate of PointAddition trait
* Added feedback on comments
* Use enum `Role` instead of bool