A "working" implementation of SPAKE2 with the I1024 group.
This is ready to merge, IMO.
Also implement our own Group, but it's a really crappy one that must not be used for cryptography.
- capital "M" etc. for seed - correct HKDF information (remove a space) - do modulo arithmetic correctly to get byte size - hash session key elements as byte digests, not as hex digests Unrelated - export `elementSizeBytes` (for testing) - derive Eq, Show for group (for testing) - refactor arbitraryElement (for easier comparison with Python)
I'm going to merge this now.
I'd still really like feedback, especially on:
And, for @exarkun in particular, I'd be happy to answer any questions about Haskell things that are strange or unfamiliar.