Hacker News new | ask | show | jobs
by xcthulhu 3389 days ago
Well, a couple months back I attended a talk on a Haskell implementation of the Noise protocol.

The programmer admitted that he was a cryptography novice, and in fact a Haskell novice.

As a result the code he wrote is needlessly abstract - for one thing the guy uses Free monads and in turn ropes in template Haskell as part of his state model. I really have no idea what code he's generating.

The code has other features that make review challenging - for instance he doesn't qualify any of his imports so it's hard to tell where to look for the functions he's implementing.

Maybe you are better at auditing Haskell than I am. As DJ Bernstein writes in various places, one common exploit is to construct an elliptic curve Diffie Helman shared secret with input that isn't a curve point. I really can't tell if the guy is mitigating against this attack or not, but here you can have a look:

https://github.com/centromere/cacophony