Git Product home page Git Product logo

rustysecrets-cli's Introduction

RustySecrets CLI

Build Status Crates.io license

rustysecrets-cli is a command-line wrapper around RustySecrets, a Rust implementation of threshold Shamir's secret sharing.

Demo

asciicast

Installation

$ cargo install rustysecrets-cli

Usage

$ mkdir shares
$ cat > secret.txt
These programs were never about terrorism: they’re about economic spying,
social control, and diplomatic manipulation. They’re about power.
^D

$ rustysecrets split secret.txt -o shares -k 7 -n 10 -m text/plain
$ ls shares/
share_0 share_1 share_2 share_3 share_4 share_5 share_6 share_7 share_8 share_9

$ rustysecrets recover shares/share_{0-6}
     info: Version: INITIAL_RELEASE
     info: MIME-Type: text/plain
These programs were never about terrorism: they’re about economic spying,
social control, and diplomatic manipulation. They’re about power.

$ rustysecrets recover shares/share_{0-2}
    error: Could not recover secret
caused by: Not enough shares provided!

Documentation

rustysecrets

USAGE:
    rustysecrets <SUBCOMMAND>

OPTIONS:
    -h, --help       Prints help information
    -V, --version    Prints version information

SUBCOMMANDS:
    help       Prints this message or the help of the given subcommand(s)
    recover    Recover the secret from the shares [aliases: r]
    split      Split a secret into shares [aliases: s]

rustysecrets split

Split a secret into shares

USAGE:
    rustysecrets split [OPTIONS] <INPUT> --output <DIR> -k <k> -n <n>

OPTIONS:
    -o, --output <DIR>               Path to the directory to output the shares to
    -m, --mime <MIME>                The MIME type of the secret
    -h, --help                       Prints help information
    -k <k>                           Number of shares necessary to recover the secret
    -n <n>                           Total number of generated shares
    -r, --raw                        Include this flag to generate raw shares (ie. without a MIME type)
    -t, --share-tmpl <share-tmpl>    Template for the share names. Defaults to 'share_{{num}}'
    -s, --sign                       Sign the shares
    -v, --verbose                    Enable verbose mode

ARGS:
    <INPUT>    Path to the file containing the secret to split, or - to read from stdin

rustysecrets recover

Recover the secret from the shares

USAGE:
    rustysecrets recover [OPTIONS] <SHARES>...

OPTIONS:
    -o, --output <FILE>    Path to file to output the secret to, prints to stdout if omitted
    -h, --help             Prints help information
    -r, --raw              Include this flag if the shares are raw (ie. do not contain a MIME type)
    -v, --verbose          Enable verbose mode
        --verify           Verify the shares signatures

ARGS:
    <SHARES>...    Paths to shares to recover the secret from

Bug Reporting

Please report bugs either as pull requests or as issues in the issue tracker. rustysecrets-cli has a full disclosure vulnerability policy. Please do NOT attempt to report any security vulnerability in this code privately to anybody.

License

RustySecrets CLI is released under the BSD3 license. See LICENSE for more informations.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.