Update README
This commit is contained in:
parent
58b2b38065
commit
7532e40f4b
1 changed files with 43 additions and 1 deletions
44
README.org
44
README.org
|
@ -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]]
|
[[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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue