mingw-w64 is able to work with old enough Microsoft C runtimes which
don't support %llx. However, all versions of mingw-w64 do have
inttypes.h, so use it (PRIx64 is shimmed for other platforms, since
inttypes.h is a C99 header).
In order to determine how to set up the ARGON2_PUBLIC and ARGON2_LOCAL
macros, we check for various different environments via preprocessor
defines. For Microsoft Visual Studio, we check that the macro _MSC_VER
evaluates to non-zero via `#elif _MSC_VER`. This may raise a compile
error when compiling with "-Werror=undef" if the variable isn't defined.
Fix the issue by using `#elif defined(_MSC_VER)` instead.
Some Linux distributions (e.g. NixOS, where this issue was spotted) don't provide an unprefixed ar when cross-compiling. This PR aims to fix this.
See[NixOS/nixpkgs#67490](https://github.com/NixOS/nixpkgs/pull/67490) for information on where did it start.
I've published an Android binding for Argon2 that makes it simple for Android developers to use Argon2. It emerged from a personal mobile app project. I've found that the existing Java bindings don't work too well with Android - especially with the now mandatory 64-bit support.
I hope adding to the listing will help other mobile developers.
make sure that lib or libdata are selected based on Kernel
and sed the template file to have correct paths
If kernel is Linux then default path for Ubuntu
For others add LIBRARY_REL=lib64 (or similar to make command)
Signed-off-by: Christopher Hall <hsw@bitmark.com>
On memory-constrained systems (like cgroups limited processes)
thread creation often fails.
The code needs to wait for already running threads on error path;
otherwise these threads can access deallocated memory
(and cause a segfault or another crash).
glibc 2.25+ has explicit_bzero(), so we can use it to securely wipe memory
instead of hacking our own memset-based replacement, just like we already
do on OpenBSD.
There are two improvements here. First, drop the minimum requirement for Visual Studio to 2010. This allows someone to open and run the project with VS2010, 2012, 2013, 2015, 2017, etc. Whatever they have on their machine works, and they won't encounter "wrong toolset" errors (or similar). Second, enable debugging information so the code can be stepped under Visual Studio.
Argon2 by default runs Travis CI in a containerized environment
https://docs.travis-ci.com/user/reference/overview/#Container-based
This is faster and works fine for most things. However, #89 added ASAN
to the test cases. As ASAN requires the SYS_PTRACE capability, when
Travis/Docker permissions changed earlier this year, our tests stoped
working. See https://github.com/travis-ci/travis-ci/issues/9033
The solution is just to run ASAN in a VM (sudo=true). This test takes so
long normally that the cost to startup a VM is relativly small.
Adding an include of core.h to genkat.h makes it so genkat.h will
compile on it's own. All other headers in the project have this
property.
This was causing warnings when importing argon2 into other build systems
like Bazel/Blaze.
A few days ago i started building an Argon2 Erlang binding called eArgon2.
It's in his early beta stages, however it's working and bypassed simple tests. I added my binding to the binding list alphabetically (i noticed all are listed alphabetically). Please accept my listing. Thank's!