All Projects → LeastAuthority → haskell-spake2

LeastAuthority / haskell-spake2

Licence: Apache-2.0 license
SPAKE2 key exchange protocol for Haskell

Programming Languages

haskell
3896 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to haskell-spake2

Algotrading
Algorithmic trading framework for cryptocurrencies.
Stars: ✭ 249 (+1678.57%)
Mutual labels:  crypto
Pkcs11Interop.X509Store
Easy to use PKCS#11 based X.509 certificate store
Stars: ✭ 24 (+71.43%)
Mutual labels:  crypto
anyl-wallet
🏦 Anyl Embedded Wallet for Internet of Things
Stars: ✭ 28 (+100%)
Mutual labels:  crypto
coinget
**deprecated API (no longer works)** The fastest cli 💻 price checker for cryptocurrencies📈
Stars: ✭ 27 (+92.86%)
Mutual labels:  crypto
ed25519-hd-key
🔐 Key Derivation for ed25519
Stars: ✭ 54 (+285.71%)
Mutual labels:  crypto
rari-dApp
Rari Capital's Web3 Portal.
Stars: ✭ 145 (+935.71%)
Mutual labels:  crypto
Secureenclavecrypto
Demonstration library for using the Secure Enclave on iOS
Stars: ✭ 251 (+1692.86%)
Mutual labels:  crypto
denarius
Denarius [$D] is a PoW/PoS Hybrid Cryptocurrency with Tribus a new PoW Hashing Algo built specifically for D, one of a kind hybrid masternodes called Fortuna Stakes, atomic swaps, staking, mining, IPFS, optional Native Tor and I2P, and much more!
Stars: ✭ 105 (+650%)
Mutual labels:  crypto
frontend-moon-wallet
Lightweight & user-friendly crypto wallet
Stars: ✭ 46 (+228.57%)
Mutual labels:  crypto
NFT.net
An engine developed with .NET Core to generate NFT's through a graphical interface. Simple as that, in the best Grab & Go style.
Stars: ✭ 294 (+2000%)
Mutual labels:  crypto
VSHG
A standalone addon for GnuPG
Stars: ✭ 18 (+28.57%)
Mutual labels:  crypto
cryptouri.rs
Rust implementation of CryptoURI: URN-like namespace for cryptographic objects with Bech32-based encoding
Stars: ✭ 33 (+135.71%)
Mutual labels:  crypto
chat-diffie-hellman
A secure chat between an Android client and Java server using AES for encryption and Diffie-Hellman for key exchange.
Stars: ✭ 26 (+85.71%)
Mutual labels:  crypto
Cryptopp
free C++ class library of cryptographic schemes
Stars: ✭ 3,150 (+22400%)
Mutual labels:  crypto
TensorTrade
This repository hosts all my code related to TensorTrade. It consists of the main program, its old versions, and some extras for more insights.
Stars: ✭ 16 (+14.29%)
Mutual labels:  crypto
Crypto Trading Bot
Automated Bittrex crypto-currency technical analysis and trading tool
Stars: ✭ 251 (+1692.86%)
Mutual labels:  crypto
WeDPR-Lab-Core
Core libraries of WeDPR instant scenario-focused solutions for privacy-inspired business; WeDPR即时可用场景式隐私保护高效解决方案核心算法组件
Stars: ✭ 147 (+950%)
Mutual labels:  crypto
zold-java-client
Java wrapper for Zold's RESTful API.
Stars: ✭ 13 (-7.14%)
Mutual labels:  crypto
framework
Aplus Full-Stack Framework
Stars: ✭ 172 (+1128.57%)
Mutual labels:  crypto
backend
Bitex Python crypto exchange backend
Stars: ✭ 23 (+64.29%)
Mutual labels:  crypto

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].