[ANN] callipyge 0.2 and eqaf 0.1

I’m happy to announce the second release of callipyge which is an implementation of curve25519 in OCaml and eqaf which is an implementation of the equal function on string in a linear time - specially to avoid timing attacks.

digestif will be updated with eqaf too.

The goal of callipyge is to have a good implementation of curve25519 but it should be replaced by a C stub extracted from the HACL Star project (like what Firefox does). So, currently, we provide this implementation which is 3 times slower than the reference implementation.

Then, it’s a good project to introduce eqaf which provides only one function equal : string -> string -> bool (a binding to the OpenBSD’s implementation) and ensure to execute this function on linear time and avoid timing attacks. So we did some benchmarks and compare them with the current implementation of String.equal from the standard library of OCaml. Then, we get expected results: in any situation eqaf took the same time to compare two string which is not the case with String.equal.

So, happy hacking!

7 Likes

And if you are interesting by eqaf and how we can check if the function has linear time, you should look the first issue of eqaf. You can find a good explanation about expected results of benchmarks on eqaf.