Update README

This commit is contained in:
Dimitri Lozeve 2020-06-12 11:51:09 +02:00
parent 58b2b38065
commit 7532e40f4b

View file

@ -1,3 +1,45 @@
* Solutions to the [[https://cryptopals.com/][Cryptopals]] challenges
* Cryptopals
[[https://github.com/dlozeve/cryptopals/actions][https://github.com/dlozeve/cryptopals/workflows/CI/badge.svg]]
Here are my solutions to the [[https://cryptopals.com/][cryptopals crypto challenges]], implemented
in C.
** Build
You will need [[https://mesonbuild.com/][Meson]] and [[https://ninja-build.org/][Ninja]], and CMake for the mbedtls dependency,
which is a [[https://mesonbuild.com/CMake-module.html][CMake subproject]].
#+begin_src sh
meson build
cd build
ninja
#+end_src
Use e.g. ~CC=clang meson build~ if you want to use a different
compiler.
The build will generate one executable for each challenge, and an
additional executable =tests=.
Building will automatically pull and compile the dependencies: [[https://github.com/ARMmbed/mbedtls/][Mbed
TLS]] and [[https://github.com/nemequ/munit/][µnit]].
** Test
After building, there is a =tests= executable in the =build=
directory, that will run the unit tests. You can also run them with
the built-in =ninja test= command.
To test the challenges outputs, run the =tests/challenges.py= Python
script, which will run the executable for each challenge and test it
against the expected output.
** Development
For editor integration, you might want to link
=compile_commands.json=, which is automatically generated by the build
system, at the root of the project:
#+begin_src sh
ln -s build/compile_commands.json
#+end_src