Skip to content

LeastAuthority/haskell-spake2

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Haskell SPAKE2 implementation

Implementation of SPAKE2 key exchange protocol.

Status

Working implementation that interoperates with python-spake2 using the default settings, i.e. with Ed25519.

No other groups implemented.

Goals

Non-goals

Right now:

How to use it

The interoperability harness entry point is the best working example of how to use the code.

The main module documentation might also help.

Testing for interoperability

Requires the LeastAuthority interoperability harness.

Assumes that haskell-spake2 has been compiled (stack build will do it) and that you know where the executable lives (stack install might be helpful here).

To show that Python works as Side A and Haskell works as Side B:

$ runhaskell TestInterop.hs ./python-spake2-interop-entrypoint.hs A abc -- /path/to/haskell-spake2-interop-entrypoint B abc
["./python-spake2-interop-entrypoint.py","A","abc"]
["/path/to/haskell-spake2-interop-entrypoint","B","abc"]
A's key: 8a2e19664f0a2bc6e446d2c44900c67604fe42f6d7e0a1328a5253b21f4131a5
B's key: 8a2e19664f0a2bc6e446d2c44900c67604fe42f6d7e0a1328a5253b21f4131a5
Session keys match.

Note: if you want to run runhaskell with stack, you will need to invoke it like:

stack runhaskell TestInterop.hs -- ./python-spake2-interop-entrypoint.hs A abc -- /path/to/haskell-spake2-interop-entrypoint B abc

The above results are genuine, and demonstrate that the Haskell SPAKE2 implementation does work. Specifically, that it interoperates with python-spake2.

Contributing

We use stack for building and testing.

High-quality documentation with examples is very strongly encouraged, because this stuff is pretty hard to figure out, and we need all the help we can get.

About

SPAKE2 key exchange protocol for Haskell

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •