Skip to content

Commit

Permalink
[doc] added documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
stef committed Jan 29, 2018
1 parent bb7f58c commit f930775
Showing 1 changed file with 36 additions and 0 deletions.
36 changes: 36 additions & 0 deletions README.md
@@ -0,0 +1,36 @@
libdecaf (goldilocks) based sphinx implementation

sphinx is a cryptographic password storage as described in
https://eprint.iacr.org/2015/1099

sphinx has a very simple interface

## step 1 - challenge
the following creates a challenge for a device:
```
echo -n "shitty master password" | ../challenge >c 2>b
```
The master password is passed in through standard input.

The challenge is sent to standard output.

A blinding factor is stored in a tempfile, the name of this file is output to
stderr. This tempfile is needed in the last step again.

## step 2 - device responds
Pass the challenge from step 1 on standard input like:
```
../respond secret <c >r0
```
The response is sent to standard output.

## step 3 - derive password
To derive a (currently hex) password, pass the response from step 2 on standard
input and the filename of the tempfile from step 1 like:
```
fname=$(cat b)
../derive $fname <r0 >pwd0
```
The derived password is sent to standard output and currently is a 32 byte
binary string. Further transformations can be added which make it satisfy
various character set requirements, this is todo ;)

0 comments on commit f930775

Please sign in to comment.