Crate fancy_garbling

Source
Expand description

fancy-garbling provides boolean and arithmetic garbling capabilities.

Re-exports§

pub use crate::errors::FancyError;

Modules§

circuit
DSL for creating circuits compatible with fancy-garbling in the old-fashioned way, where you create a circuit for a computation then garble it.
classic
Provides objects and functions for statically garbling and evaluating a circuit without streaming.
depth_informer
Fancy object to compute the multiplicative depth of a computation.
dummy
Dummy implementation of Fancy.
errors
Errors that may be output by this library.
informer
Informer runs a fancy computation and learns information from it.
twopac
Implementations of two-party secure computation.
util
Tools useful for interacting with fancy-garbling.

Structs§

BinaryBundle
Bundle which is explicitly binary representation.
Bundle
A collection of wires, useful for the garbled gadgets defined by BundleGadgets.
CrtBundle
Bundle which is explicitly CRT-representation.
Evaluator
Streaming evaluator using a callback to receive ciphertexts as needed.
Garbler
Streams garbled circuit ciphertexts through a callback.
WireMod2
Representation of a mod-2 wire.
WireMod3
Representation of a mod-3 wire.
WireModQ
Representation of a mod-q wire.

Enums§

AllWire
The core wire-label type.

Traits§

ArithmeticBundleGadgets
Arithmetic operations on wire bundles, extending the capability of FancyArithmetic operating on individual wires.
ArithmeticWire
Marker trait indicating an arithmetic wire
BinaryBundleGadgets
Binary operations on wire bundles, extending the capability of FancyBinary operating on individual wires.
BinaryGadgets
Extension trait for Fancy providing gadgets that operate over bundles of mod2 wires.
BundleGadgets
Extension trait for Fancy which provides Bundle constructions which are not necessarily CRT nor binary-based.
CrtGadgets
Extension trait for Fancy providing advanced CRT gadgets based on bundles of wires.
Fancy
DSL for the basic computations supported by fancy-garbling.
FancyArithmetic
DSL for arithmetic computation.
FancyBinary
Fancy DSL providing binary operations
FancyInput
Convenience functions for encoding input to Fancy objects.
FancyReveal
Trait to describe Fancy objects which can reveal outputs to both parties. For many simple Fancy objects in this library such as Dummy, this is simply output. For Garbler and Evaluator, it is more complicated since the BMR16 protocol outputs to the Evaluator only.
HasModulus
An object that has some modulus. Basic object of Fancy computations.
WireLabel
Trait implementing a wire that can be used for secure computation via garbled circuits

Functions§

hash_wires
Batch hashing of wires