An open API service indexing awesome lists of open source software.

https://github.com/chiefbiiko/falcon-cli

post-quantum file sigs
https://github.com/chiefbiiko/falcon-cli

cli digital-signatures post-quantum-cryptography

Last synced: about 1 year ago
JSON representation

post-quantum file sigs

Awesome Lists containing this project

README

          

# falcon-cli

[![release](https://img.shields.io/github/v/release/chiefbiiko/falcon-cli?include_prereleases)](https://github.com/chiefbiiko/falcon-cli/releases/latest) [![GitHub license](https://img.shields.io/github/license/chiefbiiko/falcon-cli.svg)](https://github.com/chiefbiiko/falcon-cli/blob/main/LICENSE) [![stability-experimental](https://img.shields.io/badge/stability-experimental-orange.svg)](https://github.com/chiefbiiko/falcon-cli)

CLI tool to sign and verify files with the post-quantum signature scheme [FALCON](https://falcon-sign.info/), a round 3 finalist for digital signature algorithms in NIST's post-quantum cryptography standardization competition

## Installation

**With `cargo`**

``` bash
cargo install --git https://github.com/chiefbiiko/falcon-cli#0.1.2
```

The tool will come available on your command line as `falcon`

To install and compile successfully make sure you are at least using `rustc 1.55.0`

**Or `curl`**

``` bash
release_url=https://github.com/chiefbiiko/falcon-cli/releases/download/v0.1.2/falcon-cli-v0.1.2-x86_64-unknown-linux-gnu.gz

curl -fsSL $release_url | gunzip > /usr/local/bin/falcon
chmod u+x /usr/local/bin/falcon
```

Find current prebuilds for Linux, and macOS ~~, Windows~~ on the [releases page](https://github.com/chiefbiiko/falcon-cli/releases/latest)

## Usage

If not havin' generated a key pair yet (default location `~/.falcon-cli`) do it now

```bash
falcon --keygen
```

A test file to roundtrip

```bash
echo "msg 2 sign safely post quantum" > ./file.txt
```

Signin' and openin' - here explcititely referencin' secret and public key with the `-s` and `-p` options respectively

```bash
falcon -S -o ./signed.txt -s ~/.falcon-cli/secret.key ./file.txt
falcon -O -o ./opened.txt -p ~/.falcon-cli/public.key ./signed.txt
```

Outcome

```bash
cmp ./opened.txt ./file.txt
cat ./opened.txt ./file.txt
# msg 2 sign safely post quantum
# msg 2 sign safely post quantum
```

## Docs

```
falcon-cli 0.1.2

chiefbiiko

Sign and verify files with the post-quantum signature scheme FALCON

USAGE:
falcon [FLAGS] [OPTIONS] [FILE]

ARGS:
Input file

FLAGS:
-F, --force Overwrites possibly existing key files
-h, --help Print help information
-K, --keygen Generates a fresh FALCON keypair
-O, --open Verifies a file
-S, --sign Signs a file
-V, --version Print version information

OPTIONS:
-d 512 or 1024; default 1024
-f Input file
-k Base64 public key
-o Output file
-p Public key file; default: ~/.falcon-cli/public.key
-s Secret key file; default: ~/.falcon-cli/secret.key

If no input/output file(s) are given stdin/stdout are used for IO
```

## License

[MIT](./LICENSE)