Skip to content

Commit

Permalink
[mod] refactored libsphinx into seperate repo
Browse files Browse the repository at this point in the history
  • Loading branch information
stef committed Mar 5, 2018
1 parent b1da643 commit ece30d6
Show file tree
Hide file tree
Showing 28 changed files with 14 additions and 3,426 deletions.
32 changes: 14 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,12 @@
libdecaf-based sphinx password storage implementation
sphinx: a password **S**tore that **P**erfectly **H**ides from **I**tself
(**N**o **X**aggeration)

sphinx: a password *S*tore that *P*erfectly *H*ides from *I*tself
(*N*o *X*aggeration)

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

and as presented by the Levchin Prize winner 2018 Hugo Krawczyk on
Real World Crypto https://www.youtube.com/watch?v=px8hiyf81iM

pitchforked sphinx comes with variety of interfaces: a library, a
python wrapper around that library, a network server/client written in
python and simple command-line binaries.

## What is this thing?

It allows you to have only a few (at least one) passwords that you
Expand Down Expand Up @@ -44,19 +38,19 @@ it's unique and cannot be used to login to other sites or services.
## Installing

Install `libsodium` using your operating system provided package
management. And if you use any of the python goodies you need to
install also `pysodium` using either your OS package manager or pip.
management.

Building everything should be quite simple afterwards:
Building everything should (hopefully) be quite simple afterwards:

```
git submodule init
cd src
make
```

## Library

Pitchforked sphinx builds a library, which you can use to build your
libsphinx builds a library, which you can use to build your
own password manager either in C/C++ or any other language that can
bind to this library. The library also contains an experimental
version of the PKI-free PAKE protocol from page 18 of the paper.
Expand Down Expand Up @@ -156,7 +150,7 @@ function return 1, otherwise 0.

## Standalone Binaries

pitchforked sphinx comes with very simple binaries, so you can build
libsphinx comes with very simple binaries, so you can build
your own password storage even from shell scripts. Each step in the
protocol is handled by one binary:

Expand Down Expand Up @@ -190,12 +184,14 @@ The derived password is sent to standard output and currently is a 32 byte
binary string.

### step 4 - transform into ASCII password

The output from step 3 is a 32 byte binary string, most passwords have some
limitations to accept only printable - ASCII - chars. `bin2pass.py` is a python
script which takes a binary input on standard input and transforms it into an
ASCII password. It can have max two parameters the classes of characters
allowed ([*u*]pper-, [*l*]ower-case letters, [*d*]igits and [*s*]ymbols) and
the size of the password. The following examples should make this clear:
script in the [pwdsphinx](https://github.com/stef/pwdsphinx) python module which takes a binary input on standard
input and transforms it into an ASCII password. It can have max two parameters
the classes of characters allowed ([**u**]pper-, [**l**]ower-case letters,
[**d**]igits and [**s**]ymbols) and the size of the password. The following
examples should make this clear:

Full ASCII, max size:
```
Expand Down
2 changes: 0 additions & 2 deletions python/MANIFEST.in

This file was deleted.

170 changes: 0 additions & 170 deletions python/README.md

This file was deleted.

Empty file removed python/pwdsphinx/__init__.py
Empty file.
81 changes: 0 additions & 81 deletions python/pwdsphinx/bin2pass.py

This file was deleted.

18 changes: 0 additions & 18 deletions python/pwdsphinx/config.py

This file was deleted.

Loading

0 comments on commit ece30d6

Please sign in to comment.