Files
rustysecrets-cli/README.md
2018-02-17 17:02:24 +01:00

113 lines
3.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# RustySecrets CLI
[![Build Status](https://travis-ci.org/SpinResearch/rustysecrets-cli.svg?branch=master&style=flat)](https://travis-ci.org/SpinResearch/rustysecrets-cli)
[![Crates.io](https://img.shields.io/crates/v/rustysecrets-cli.svg)](https://crates.io/crates/rustysecrets-cli)
[![license](https://img.shields.io/github/license/SpinResearch/rustysecrets-cli.svg)](License)
> *rustysecrets-cli* is a command-line wrapper around [RustySecrets](https://github.com/SpinResearch/RustySecrets), a Rust implementation of threshold [Shamir's secret sharing](https://en.wikipedia.org/wiki/Shamir%27s_Secret_Sharing).
## Demo
[![asciicast](https://asciinema.org/a/163541.png)](https://asciinema.org/a/163541)
## Installation
$ cargo install rustysecrets-cli
## Usage
```bash
$ mkdir shares
$ cat > secret.txt
These programs were never about terrorism: theyre about economic spying,
social control, and diplomatic manipulation. Theyre 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: theyre about economic spying,
social control, and diplomatic manipulation. Theyre 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](https://github.com/SpinResearch/rustysecrets-cli). *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](LICENSE) for more informations.