6 releases
0.2.4 | Jan 17, 2020 |
---|---|
0.2.3 | Jan 17, 2020 |
0.1.0 | Jan 13, 2020 |
#1559 in Cryptography
25KB
583 lines
frauth - The Friend Authenticator
Frauth is a command line tool to verify the identity of friends in a decentralized manner.
It is currently in an early alpha state.
Design Principles
Frauth aims to provide reasonable default behavior for actions including:
- Identity validation
- Discovery of mutual friends
- Signing and verification of messages or files
- Encryption and decryption of messages or files
Frauth does not aim to be configurable with regards to cryptography, instead selecting one reasonable way to do things.
Installing
For early releases, you must build frauth
from source. frauth
is written in Rust. You can install from source in one of two ways:
- Run
cargo install frauth
, OR - Clone this repo (e.g.
git clone https://github.com/jamesmunns/frauth.git
), and runcargo install --path .
in thecli
directory
In the future, binaries will be provided. frauth
should work on any major OS.
TL;DR HOWTO
This section will be rewritten later once I have more time. For now:
- You install
frauth
. - You initialize your info using
frauth init
- You create a text file using
frauth publish
that contains:- Your name
- Your ed25519 public key, generated by frauth
- Some metadata of your choice
- This text file is signed with your ed25519 private key
- You put this text file on a static website you control. You could host this at:
- GitHub Pages
- Netlify
- AWS/S3
- Really anywhere you can host a text file
- Where you host the text file becomes your unique identity.
- Usually you call this file
me.frauth
. - My identity lives at
https://jamesmunns.com/me.frauth
.
- Usually you call this file
In the future, you will be able to do stuff like discover friends, sign/verify/encrypt/decrypt messages and files, or more.
TL;DR Commands
Note: You can use
--help
at any level to get more information
frauth
frauth init
- Set up frauth on first usefrauth friend
- Actions around verified friendsfrauth friend add <url>
- Add a friend by their published URLfrauth friend list [--detailed]
- List all of your friends (and their info)frauth friend remove <url>
- Remove a friend by their published URLfrauth friend update <url>
- Update information from a friend
frauth publish [--output PATH]
- Create a plain text file you can host on a static site
Contributing
Contributions are welcome!
License
This project is licensed under GPLv3.0. See the license for more details
Dependencies
~15–27MB
~406K SLoC