[][src]Crate scuttlebutt

The scuttlebutt multi-party computation utilities toolkit

Or: "Where rust MPC libraries come to drink"

The scuttlebutt library provides a bunch of core primitives for building multi-party computation (MPC) related protocols, such as garbled circuits or oblivious transfer. In particular, scuttlebutt provides the following:

scuttlebutt should be considered unstable and under active development until version 1.0 is released

Building

Use cargo build to build, cargo test to run the test suite, and cargo bench to benchmark the various protocols.

scuttlebutt also supports the following features:

License

MIT License

Authors

Acknowledgments

This material is based upon work supported by the ARO and DARPA under Contract No. W911NF-15-C-0227.

Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the ARO and DARPA.

Copyright © 2019 Galois, Inc.

Modules

cointoss

Implementation of a simple two-party coin tossing protocol using a PRG as a commitment.

commitment

A trait defining a Commitment Scheme and an implementation in the random oracle model using SHA256.

utils

Useful utility functions.

Structs

Aes128

AES-128, encryption only.

Aes256

AES-256, encryption only.

AesHash

AES-based correlation-robust hash function.

AesRng

Implementation of a random number generator based on fixed-key AES.

Block

A 128-bit chunk.

Block512

A 512-bit value.

Channel

A standard read/write channel that implements AbstractChannel.

HashChannel

An instantiation of the AbstractChannel trait which computes a running hash of all bytes read from and written to the channel.

SyncChannel

A channel that implements AbstractChannel as well as Send and Sync.

TrackChannel

A channel for tracking the number of bits read/written.

Constants

AES_HASH

AesHash with a fixed key.

FIXED_KEY_AES128

Fixed-key AES-128.

Traits

AbstractChannel

A trait for managing I/O. AbstractChannels are clonable, and provide basic read/write capabilities for both common and scuttlebutt-specific types.

Malicious

A marker trait denoting that the given scheme is maliciously secure.

SemiHonest

A marker trait denoting that the given scheme is semi-honest secure.