From 1323b81cd2679bb61a480524a0e4cd008d3d0bee Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Wed, 1 Jul 2026 21:37:09 +0200 Subject: Add support for the reference implementation of Argon2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- librecrypt_set_pepper.c | 79 +++++++++++++++++++++++++++++++++---------------- 1 file changed, 54 insertions(+), 25 deletions(-) (limited to 'librecrypt_set_pepper.c') diff --git a/librecrypt_set_pepper.c b/librecrypt_set_pepper.c index 966563c..ee51124 100644 --- a/librecrypt_set_pepper.c +++ b/librecrypt_set_pepper.c @@ -62,77 +62,106 @@ main(void) assert(ctx != NULL); -#if defined(SUPPORT_ARGON2I) +#if defined(SUPPORT_ARGON2I) && defined(SUPPORT_ARGON2_V1_0) SET_PEPPER(LIBRECRYPT_ARGON2I_V1_0, &a2i10, 2u); - SET_PEPPER(LIBRECRYPT_ARGON2I_V1_3, &a2i13, 5u); # if SIZE_MAX > UINT32_MAX CHECK_EINVAL(LIBRECRYPT_ARGON2I_V1_0, NULL, (size_t)UINT32_MAX + 1u); - CHECK_EINVAL(LIBRECRYPT_ARGON2I_V1_3, NULL, (size_t)UINT32_MAX + 1u); # endif #else CHECK_ENOSYS(LIBRECRYPT_ARGON2I_V1_0, &a2i10, 2u); - CHECK_ENOSYS(LIBRECRYPT_ARGON2I_V1_3, &a2i13, 5u); #endif -#if defined(SUPPORT_ARGON2D) +#if defined(SUPPORT_ARGON2D) && defined(SUPPORT_ARGON2_V1_0) SET_PEPPER(LIBRECRYPT_ARGON2D_V1_0, &a2d10, 3u); - SET_PEPPER(LIBRECRYPT_ARGON2D_V1_3, &a2d13, 8u); # if SIZE_MAX > UINT32_MAX CHECK_EINVAL(LIBRECRYPT_ARGON2D_V1_0, NULL, (size_t)UINT32_MAX + 1u); - CHECK_EINVAL(LIBRECRYPT_ARGON2D_V1_3, NULL, (size_t)UINT32_MAX + 1u); # endif #else CHECK_ENOSYS(LIBRECRYPT_ARGON2D_V1_0, &a2d10, 3u); - CHECK_ENOSYS(LIBRECRYPT_ARGON2D_V1_3, &a2d13, 8u); #endif -#if defined(SUPPORT_ARGON2ID) +#if defined(SUPPORT_ARGON2ID) && defined(SUPPORT_ARGON2_V1_0) SET_PEPPER(LIBRECRYPT_ARGON2ID_V1_0, &a2id10, 7u); - SET_PEPPER(LIBRECRYPT_ARGON2ID_V1_3, &a2id13, 4u); # if SIZE_MAX > UINT32_MAX CHECK_EINVAL(LIBRECRYPT_ARGON2ID_V1_0, NULL, (size_t)UINT32_MAX + 1u); - CHECK_EINVAL(LIBRECRYPT_ARGON2ID_V1_3, NULL, (size_t)UINT32_MAX + 1u); # endif #else CHECK_ENOSYS(LIBRECRYPT_ARGON2ID_V1_0, &a2id10, 7u); - CHECK_ENOSYS(LIBRECRYPT_ARGON2ID_V1_3, &a2id13, 4u); #endif -#if defined(SUPPORT_ARGON2DS) +#if defined(SUPPORT_ARGON2DS) && defined(SUPPORT_ARGON2_V1_0) SET_PEPPER(LIBRECRYPT_ARGON2DS_V1_0, &a2ds10, 9u); - SET_PEPPER(LIBRECRYPT_ARGON2DS_V1_3, &a2ds13, 6u); # if SIZE_MAX > UINT32_MAX CHECK_EINVAL(LIBRECRYPT_ARGON2DS_V1_0, NULL, (size_t)UINT32_MAX + 1u); - CHECK_EINVAL(LIBRECRYPT_ARGON2DS_V1_3, NULL, (size_t)UINT32_MAX + 1u); # endif #else CHECK_ENOSYS(LIBRECRYPT_ARGON2DS_V1_0, &a2ds10, 9u); - CHECK_ENOSYS(LIBRECRYPT_ARGON2DS_V1_3, &a2ds13, 6u); #endif +#if defined(SUPPORT_ARGON2I) && defined(SUPPORT_ARGON2_V1_3) + SET_PEPPER(LIBRECRYPT_ARGON2I_V1_3, &a2i13, 5u); +# if SIZE_MAX > UINT32_MAX + CHECK_EINVAL(LIBRECRYPT_ARGON2I_V1_3, NULL, (size_t)UINT32_MAX + 1u); +# endif +#else + CHECK_ENOSYS(LIBRECRYPT_ARGON2I_V1_3, &a2i13, 5u); +#endif + +#if defined(SUPPORT_ARGON2D) && defined(SUPPORT_ARGON2_V1_3) + SET_PEPPER(LIBRECRYPT_ARGON2D_V1_3, &a2d13, 8u); +# if SIZE_MAX > UINT32_MAX + CHECK_EINVAL(LIBRECRYPT_ARGON2D_V1_3, NULL, (size_t)UINT32_MAX + 1u); +# endif +#else + CHECK_ENOSYS(LIBRECRYPT_ARGON2D_V1_3, &a2d13, 8u); +#endif + +#if defined(SUPPORT_ARGON2ID) && defined(SUPPORT_ARGON2_V1_3) + SET_PEPPER(LIBRECRYPT_ARGON2ID_V1_3, &a2id13, 4u); +# if SIZE_MAX > UINT32_MAX + CHECK_EINVAL(LIBRECRYPT_ARGON2ID_V1_3, NULL, (size_t)UINT32_MAX + 1u); +# endif +#else + CHECK_ENOSYS(LIBRECRYPT_ARGON2ID_V1_3, &a2id13, 4u); +#endif + +#if defined(SUPPORT_ARGON2DS) && defined(SUPPORT_ARGON2_V1_3) + SET_PEPPER(LIBRECRYPT_ARGON2DS_V1_3, &a2ds13, 6u); +# if SIZE_MAX > UINT32_MAX + CHECK_EINVAL(LIBRECRYPT_ARGON2DS_V1_3, NULL, (size_t)UINT32_MAX + 1u); +# endif +#else + CHECK_ENOSYS(LIBRECRYPT_ARGON2DS_V1_3, &a2ds13, 6u); +#endif CHECK_ENOSYS(LIBRECRYPT_HASH_ALGORITHM_END, NULL, 0u); CHECK_ENOSYS(LIBRECRYPT_HASH_ALGORITHM_END, &(char){4}, 32u); - -#if defined(SUPPORT_ARGON2I) +#if defined(SUPPORT_ARGON2I) && defined(SUPPORT_ARGON2_V1_0) CHECK_PEPPER(LIBRECRYPT_ARGON2I_V1_0, &a2i10, 2u); - CHECK_PEPPER(LIBRECRYPT_ARGON2I_V1_3, &a2i13, 5u); #endif -#if defined(SUPPORT_ARGON2D) +#if defined(SUPPORT_ARGON2D) && defined(SUPPORT_ARGON2_V1_0) CHECK_PEPPER(LIBRECRYPT_ARGON2D_V1_0, &a2d10, 3u); - CHECK_PEPPER(LIBRECRYPT_ARGON2D_V1_3, &a2d13, 8u); #endif -#if defined(SUPPORT_ARGON2ID) +#if defined(SUPPORT_ARGON2ID) && defined(SUPPORT_ARGON2_V1_0) CHECK_PEPPER(LIBRECRYPT_ARGON2ID_V1_0, &a2id10, 7u); - CHECK_PEPPER(LIBRECRYPT_ARGON2ID_V1_3, &a2id13, 4u); #endif -#if defined(SUPPORT_ARGON2DS) +#if defined(SUPPORT_ARGON2DS) && defined(SUPPORT_ARGON2_V1_0) CHECK_PEPPER(LIBRECRYPT_ARGON2DS_V1_0, &a2ds10, 9u); +#endif +#if defined(SUPPORT_ARGON2I) && defined(SUPPORT_ARGON2_V1_3) + CHECK_PEPPER(LIBRECRYPT_ARGON2I_V1_3, &a2i13, 5u); +#endif +#if defined(SUPPORT_ARGON2D) && defined(SUPPORT_ARGON2_V1_3) + CHECK_PEPPER(LIBRECRYPT_ARGON2D_V1_3, &a2d13, 8u); +#endif +#if defined(SUPPORT_ARGON2ID) && defined(SUPPORT_ARGON2_V1_3) + CHECK_PEPPER(LIBRECRYPT_ARGON2ID_V1_3, &a2id13, 4u); +#endif +#if defined(SUPPORT_ARGON2DS) && defined(SUPPORT_ARGON2_V1_3) CHECK_PEPPER(LIBRECRYPT_ARGON2DS_V1_3, &a2ds13, 6u); #endif - librecrypt_free_context(ctx); STOP_RESOURCE_TEST(); -- cgit v1.3.1