A multi-arch library implementing the Argon2 password hashing algorithm.
This project is based on the original source code by the Argon2 authors. The goal of this project is to provide efficient Argon2 implementations for various HW architectures (x86, SSE, ARM, PowerPC, ...).
For the x86_64 architecture, the library implements a simple CPU dispatch which automatically selects the best implementation based on CPU flags and quick benchmarks.
To prepare the build environment, run:
autoreconf -i
./configure
After that, just run make
to build the library.
After configuring the build environment, run make check
to run the tests.
You can specify the target architecture by passing the --host=...
flag to ./configure
.
Supported architectures:
x86_64
– 64-bit x86 architecturegeneric
– use generic C impementation
To prepare the build environment, run:
cmake -DCMAKE_BUILD_TYPE=Release .
Then you can run make
to build the library.
A QMake project is also available in the qmake
directory. You can open it in the Qt Creator IDE or build it from terminal:
cd qmake
# see table below for the list of possible ARCH and CONFIG values
qmake ARCH=... CONFIG+=...
make
For QMake builds you can configure support for different architectures. Use the ARCH
variable to choose the architecture and the CONFIG
variable to set additional options.
Supported architectures:
x86_64
– 64-bit x86 architecture- QMake config flags:
USE_SSE2
– use SSE2 instructionsUSE_SSSE3
– use SSSE3 instructionsUSE_XOP
– use XOP instructionsUSE_AVX2
– use AVX2 instructionsUSE_AVX512F
– use AVX-512F instructions
- QMake config flags:
generic
– use generic C impementation