libss 0.1.0

libss is a Rust library for secret sharing.
Documentation
<h1 align="center">libss</h1>

<p align="center">
    <a href="https://travis-ci.org/amousa11/libss"><img src="https://travis-ci.org/amousa11/libss.svg?branch=master"></a>
   <a href="https://github.com/amousa11/libss/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg"></a>
</p>


libss is a Rust library for secret sharing.

**WARNING:** This implementation has not received any audit and is NOT ready for production use.

## Overview

libss provides an impelmentation of shamir secret sharing over the field GF(2**8), supporting arbitrary size secrets with up to 255 shares.

## Directory structure

* [`src/gf256.rs`]src/gf256.rs: Rust module that provides an implementation of the finite field GF(2**8)
* [`src/shamir.rs`]src/shamir.rs: Rust module that impelments shamir secret sharing over GF256

This library comes with unit tests for each of the provided crates. Run the tests with:
```bash
cargo test
```

To perform the benchmarks, run the following command:
```bash
cargo bench
```

## Future Goals

- improve interpolation algorithm
- wrap Share struct into a SignedShare struct so integrity of shares can be verified with a public key
- implement [Feldman Secret Sharing Scheme]"https://en.wikipedia.org/wiki/Verifiable_secret_sharing#Feldman%E2%80%99s_scheme", a verifiable secret sharing scheme
- guarantee constant-time cryptographic operations