Skip to main content

Crate fancy_garbling

Crate fancy_garbling 

Source
Expand description

fancy-garbling provides boolean and arithmetic garbling capabilities.

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.
circuit_analyzer
Fancy object to profile a fancy circuit and compute stats such as the multiplicative depth or the number of boolean and arithmetic gates in a circuit.
classic
Provides objects and functions for statically garbling and evaluating a circuit without streaming.
dummy
Dummy implementation of Fancy.
informer
Informer runs a fancy computation and learns information from it.
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
A WireLabel that supports all possible moduli

Traits§

ArithmeticBundleGadgets
Arithmetic operations on wire bundles, extending the capability of FancyArithmetic operating on individual wires.
ArithmeticProjBundleGadgets
Arithmetic operations on wire bundles that utilize projection gates.
ArithmeticWire
A marker trait indicating that the given WireLabel instantiation supports arithmetic operations.
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.
BinaryWireLabel
The BinaryWireLabel provides the subroutines to implement AND gates for the garbler and evaluator in crate::fancy::FancyBinary.
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.
CrtProjGadgets
CRT gadgets that use projection gates.
Fancy
The Fancy trait provides the basic set of operations possible in a garbled circuit.
FancyArithmetic
Extension trait for Fancy that provides arithmetic operations.
FancyBinary
Extension trait for Fancy that provides binary operations.
FancyProj
Extension trait for Fancy that provides a projection gate, alongside methods that utilize projection gates.
HasModulus
An object that has a modulus.
WireLabel
A trait that defines a wirelabel as used in garbled circuits.

Functions§

hash_wires
Hash a batch of wires, using the same tweak for each wire.