diff --git a/builds/msvc/vs2010/libsodium/libsodium.vcxproj b/builds/msvc/vs2010/libsodium/libsodium.vcxproj
index e3402320..eb651a8e 100644
--- a/builds/msvc/vs2010/libsodium/libsodium.vcxproj
+++ b/builds/msvc/vs2010/libsodium/libsodium.vcxproj
@@ -189,6 +189,7 @@
+
@@ -318,6 +319,7 @@
+
diff --git a/builds/msvc/vs2010/libsodium/libsodium.vcxproj.filters b/builds/msvc/vs2010/libsodium/libsodium.vcxproj.filters
index 17c6ab39..363a53bc 100644
--- a/builds/msvc/vs2010/libsodium/libsodium.vcxproj.filters
+++ b/builds/msvc/vs2010/libsodium/libsodium.vcxproj.filters
@@ -360,6 +360,9 @@
crypto_core\ed25519
+
+ crypto_core\ed25519
+
crypto_core\ed25519\ref10
@@ -743,6 +746,9 @@
crypto_stream\salsa20\xmm6
+
+ crypto_core\ed25519
+
crypto_core\ed25519\ref10\fe_25_5
diff --git a/builds/msvc/vs2012/libsodium/libsodium.vcxproj b/builds/msvc/vs2012/libsodium/libsodium.vcxproj
index 837f1063..f4f4d659 100644
--- a/builds/msvc/vs2012/libsodium/libsodium.vcxproj
+++ b/builds/msvc/vs2012/libsodium/libsodium.vcxproj
@@ -189,6 +189,7 @@
+
@@ -318,6 +319,7 @@
+
diff --git a/builds/msvc/vs2012/libsodium/libsodium.vcxproj.filters b/builds/msvc/vs2012/libsodium/libsodium.vcxproj.filters
index 17c6ab39..363a53bc 100644
--- a/builds/msvc/vs2012/libsodium/libsodium.vcxproj.filters
+++ b/builds/msvc/vs2012/libsodium/libsodium.vcxproj.filters
@@ -360,6 +360,9 @@
crypto_core\ed25519
+
+ crypto_core\ed25519
+
crypto_core\ed25519\ref10
@@ -743,6 +746,9 @@
crypto_stream\salsa20\xmm6
+
+ crypto_core\ed25519
+
crypto_core\ed25519\ref10\fe_25_5
diff --git a/builds/msvc/vs2013/libsodium/libsodium.vcxproj b/builds/msvc/vs2013/libsodium/libsodium.vcxproj
index d29a0c6c..06fb462d 100644
--- a/builds/msvc/vs2013/libsodium/libsodium.vcxproj
+++ b/builds/msvc/vs2013/libsodium/libsodium.vcxproj
@@ -189,6 +189,7 @@
+
@@ -318,6 +319,7 @@
+
diff --git a/builds/msvc/vs2013/libsodium/libsodium.vcxproj.filters b/builds/msvc/vs2013/libsodium/libsodium.vcxproj.filters
index 17c6ab39..363a53bc 100644
--- a/builds/msvc/vs2013/libsodium/libsodium.vcxproj.filters
+++ b/builds/msvc/vs2013/libsodium/libsodium.vcxproj.filters
@@ -360,6 +360,9 @@
crypto_core\ed25519
+
+ crypto_core\ed25519
+
crypto_core\ed25519\ref10
@@ -743,6 +746,9 @@
crypto_stream\salsa20\xmm6
+
+ crypto_core\ed25519
+
crypto_core\ed25519\ref10\fe_25_5
diff --git a/builds/msvc/vs2015/libsodium/libsodium.vcxproj b/builds/msvc/vs2015/libsodium/libsodium.vcxproj
index e581c78a..ffe754e7 100644
--- a/builds/msvc/vs2015/libsodium/libsodium.vcxproj
+++ b/builds/msvc/vs2015/libsodium/libsodium.vcxproj
@@ -189,6 +189,7 @@
+
@@ -318,6 +319,7 @@
+
diff --git a/builds/msvc/vs2015/libsodium/libsodium.vcxproj.filters b/builds/msvc/vs2015/libsodium/libsodium.vcxproj.filters
index 17c6ab39..363a53bc 100644
--- a/builds/msvc/vs2015/libsodium/libsodium.vcxproj.filters
+++ b/builds/msvc/vs2015/libsodium/libsodium.vcxproj.filters
@@ -360,6 +360,9 @@
crypto_core\ed25519
+
+ crypto_core\ed25519
+
crypto_core\ed25519\ref10
@@ -743,6 +746,9 @@
crypto_stream\salsa20\xmm6
+
+ crypto_core\ed25519
+
crypto_core\ed25519\ref10\fe_25_5
diff --git a/builds/msvc/vs2017/libsodium/libsodium.vcxproj b/builds/msvc/vs2017/libsodium/libsodium.vcxproj
index 55168ad8..c6df3a98 100644
--- a/builds/msvc/vs2017/libsodium/libsodium.vcxproj
+++ b/builds/msvc/vs2017/libsodium/libsodium.vcxproj
@@ -189,6 +189,7 @@
+
@@ -318,6 +319,7 @@
+
diff --git a/builds/msvc/vs2017/libsodium/libsodium.vcxproj.filters b/builds/msvc/vs2017/libsodium/libsodium.vcxproj.filters
index 17c6ab39..363a53bc 100644
--- a/builds/msvc/vs2017/libsodium/libsodium.vcxproj.filters
+++ b/builds/msvc/vs2017/libsodium/libsodium.vcxproj.filters
@@ -360,6 +360,9 @@
crypto_core\ed25519
+
+ crypto_core\ed25519
+
crypto_core\ed25519\ref10
@@ -743,6 +746,9 @@
crypto_stream\salsa20\xmm6
+
+ crypto_core\ed25519
+
crypto_core\ed25519\ref10\fe_25_5
diff --git a/builds/msvc/vs2019/libsodium/libsodium.vcxproj b/builds/msvc/vs2019/libsodium/libsodium.vcxproj
index c5549a12..6d060bc5 100644
--- a/builds/msvc/vs2019/libsodium/libsodium.vcxproj
+++ b/builds/msvc/vs2019/libsodium/libsodium.vcxproj
@@ -189,6 +189,7 @@
+
@@ -318,6 +319,7 @@
+
diff --git a/builds/msvc/vs2019/libsodium/libsodium.vcxproj.filters b/builds/msvc/vs2019/libsodium/libsodium.vcxproj.filters
index 17c6ab39..363a53bc 100644
--- a/builds/msvc/vs2019/libsodium/libsodium.vcxproj.filters
+++ b/builds/msvc/vs2019/libsodium/libsodium.vcxproj.filters
@@ -360,6 +360,9 @@
crypto_core\ed25519
+
+ crypto_core\ed25519
+
crypto_core\ed25519\ref10
@@ -743,6 +746,9 @@
crypto_stream\salsa20\xmm6
+
+ crypto_core\ed25519
+
crypto_core\ed25519\ref10\fe_25_5
diff --git a/libsodium.vcxproj b/libsodium.vcxproj
index 12e90dd1..500f518a 100644
--- a/libsodium.vcxproj
+++ b/libsodium.vcxproj
@@ -427,6 +427,7 @@
+
@@ -556,6 +557,7 @@
+
diff --git a/libsodium.vcxproj.filters b/libsodium.vcxproj.filters
index d5226704..42bef65f 100644
--- a/libsodium.vcxproj.filters
+++ b/libsodium.vcxproj.filters
@@ -351,6 +351,9 @@
Source Files
+
+ Source Files
+
Source Files
@@ -734,6 +737,9 @@
Header Files
+
+ Header Files
+
Header Files
diff --git a/src/libsodium/Makefile.am b/src/libsodium/Makefile.am
index ebb2ce9a..f6e67f2d 100644
--- a/src/libsodium/Makefile.am
+++ b/src/libsodium/Makefile.am
@@ -14,6 +14,8 @@ libsodium_la_SOURCES = \
crypto_box/crypto_box_easy.c \
crypto_box/crypto_box_seal.c \
crypto_box/curve25519xsalsa20poly1305/box_curve25519xsalsa20poly1305.c \
+ crypto_core/ed25519/core_h2c.c \
+ crypto_core/ed25519/core_h2c.h \
crypto_core/ed25519/ref10/ed25519_ref10.c \
crypto_core/hchacha20/core_hchacha20.c \
crypto_core/hsalsa20/ref2/core_hsalsa20_ref2.c \
diff --git a/src/libsodium/crypto_core/ed25519/core_ed25519.c b/src/libsodium/crypto_core/ed25519/core_ed25519.c
index 8b9e27fb..790016f9 100644
--- a/src/libsodium/crypto_core/ed25519/core_ed25519.c
+++ b/src/libsodium/crypto_core/ed25519/core_ed25519.c
@@ -1,9 +1,8 @@
-
-#include
#include
#include
#include
+#include "core_h2c.h"
#include "crypto_core_ed25519.h"
#include "crypto_hash_sha512.h"
#include "private/common.h"
@@ -74,58 +73,6 @@ crypto_core_ed25519_from_uniform(unsigned char *p, const unsigned char *r)
return 0;
}
-#define HASH_BYTES crypto_hash_sha512_BYTES
-#define HASH_BLOCKBYTES 128U
-
-static void
-_string_to_h2c_hash(unsigned char *h, const size_t h_len,
- const char *ctx, const unsigned char *msg, size_t msg_len)
-{
- crypto_hash_sha512_state st;
- const unsigned char empty_block[HASH_BLOCKBYTES] = { 0 };
- unsigned char u0[HASH_BYTES];
- unsigned char ux[HASH_BYTES] = { 0 };
- unsigned char t[3] = { 0U, (unsigned char) h_len, 0U};
- unsigned char ctx_len_u8;
- size_t ctx_len = ctx != NULL ? strlen(ctx) : 0U;
- size_t i, j;
-
- assert(h_len <= 0xff);
- if (ctx_len > (size_t) 0xff) {
- crypto_hash_sha512_init(&st);
- crypto_hash_sha512_update(&st,
- (const unsigned char *) "H2C-OVERSIZE-DST-",
- sizeof "H2C-OVERSIZE-DST-" - 1U);
- crypto_hash_sha512_update(&st, (const unsigned char *) ctx, ctx_len);
- crypto_hash_sha512_final(&st, u0);
- ctx = (const char *) u0;
- ctx_len = HASH_BYTES;
- COMPILER_ASSERT(HASH_BYTES <= (size_t) 0xff);
- }
- ctx_len_u8 = (unsigned char) ctx_len;
- crypto_hash_sha512_init(&st);
- crypto_hash_sha512_update(&st, empty_block, sizeof empty_block);
- crypto_hash_sha512_update(&st, msg, msg_len);
- crypto_hash_sha512_update(&st, t, 3U);
- crypto_hash_sha512_update(&st, (const unsigned char *) ctx, ctx_len);
- crypto_hash_sha512_update(&st, &ctx_len_u8, 1U);
- crypto_hash_sha512_final(&st, u0);
-
- for (i = 0U; i < h_len; i += HASH_BYTES) {
- for (j = 0U; j < HASH_BYTES; j++) {
- ux[j] ^= u0[j];
- }
- t[2]++;
- crypto_hash_sha512_init(&st);
- crypto_hash_sha512_update(&st, ux, HASH_BYTES);
- crypto_hash_sha512_update(&st, &t[2], 1U);
- crypto_hash_sha512_update(&st, (const unsigned char *) ctx, ctx_len);
- crypto_hash_sha512_update(&st, &ctx_len_u8, 1U);
- crypto_hash_sha512_final(&st, ux);
- memcpy(&h[i], ux, h_len - i >= (sizeof ux) ? (sizeof ux) : h_len - i);
- }
-}
-
#define HASH_GE_L 48U
static int
@@ -139,8 +86,10 @@ _string_to_points(unsigned char * const px, const size_t n,
if (n > 2U) {
abort(); /* LCOV_EXCL_LINE */
}
- _string_to_h2c_hash(h_be, n * HASH_GE_L, ctx, msg, msg_len);
-
+ if (core_h2c_string_to_hash(h_be, n * HASH_GE_L, ctx, msg, msg_len,
+ CORE_H2C_SHA512) != 0) {
+ return -1;
+ }
COMPILER_ASSERT(sizeof h >= HASH_GE_L);
for (i = 0U; i < n; i++) {
for (j = 0U; j < HASH_GE_L; j++) {
diff --git a/src/libsodium/crypto_core/ed25519/core_h2c.c b/src/libsodium/crypto_core/ed25519/core_h2c.c
new file mode 100644
index 00000000..37f3ed59
--- /dev/null
+++ b/src/libsodium/crypto_core/ed25519/core_h2c.c
@@ -0,0 +1,133 @@
+#include
+#include
+#include
+#include
+
+#include "core_h2c.h"
+#include "crypto_hash_sha256.h"
+#include "crypto_hash_sha512.h"
+#include "private/common.h"
+
+#define HASH_BYTES crypto_hash_sha256_BYTES
+#define HASH_BLOCKBYTES 64U
+
+static int
+core_h2c_string_to_hash_sha256(unsigned char *h, const size_t h_len, const char *ctx,
+ const unsigned char *msg, size_t msg_len)
+{
+ crypto_hash_sha256_state st;
+ const unsigned char empty_block[HASH_BLOCKBYTES] = { 0 };
+ unsigned char u0[HASH_BYTES];
+ unsigned char ux[HASH_BYTES] = { 0 };
+ unsigned char t[3] = { 0U, (unsigned char) h_len, 0U};
+ unsigned char ctx_len_u8;
+ size_t ctx_len = ctx != NULL ? strlen(ctx) : 0U;
+ size_t i, j;
+
+ assert(h_len <= 0xff);
+ if (ctx_len > (size_t) 0xff) {
+ crypto_hash_sha256_init(&st);
+ crypto_hash_sha256_update(&st,
+ (const unsigned char *) "H2C-OVERSIZE-DST-",
+ sizeof "H2C-OVERSIZE-DST-" - 1U);
+ crypto_hash_sha256_update(&st, (const unsigned char *) ctx, ctx_len);
+ crypto_hash_sha256_final(&st, u0);
+ ctx = (const char *) u0;
+ ctx_len = HASH_BYTES;
+ COMPILER_ASSERT(HASH_BYTES <= (size_t) 0xff);
+ }
+ ctx_len_u8 = (unsigned char) ctx_len;
+ crypto_hash_sha256_init(&st);
+ crypto_hash_sha256_update(&st, empty_block, sizeof empty_block);
+ crypto_hash_sha256_update(&st, msg, msg_len);
+ crypto_hash_sha256_update(&st, t, 3U);
+ crypto_hash_sha256_update(&st, (const unsigned char *) ctx, ctx_len);
+ crypto_hash_sha256_update(&st, &ctx_len_u8, 1U);
+ crypto_hash_sha256_final(&st, u0);
+
+ for (i = 0U; i < h_len; i += HASH_BYTES) {
+ for (j = 0U; j < HASH_BYTES; j++) {
+ ux[j] ^= u0[j];
+ }
+ t[2]++;
+ crypto_hash_sha256_init(&st);
+ crypto_hash_sha256_update(&st, ux, HASH_BYTES);
+ crypto_hash_sha256_update(&st, &t[2], 1U);
+ crypto_hash_sha256_update(&st, (const unsigned char *) ctx, ctx_len);
+ crypto_hash_sha256_update(&st, &ctx_len_u8, 1U);
+ crypto_hash_sha256_final(&st, ux);
+ memcpy(&h[i], ux, h_len - i >= (sizeof ux) ? (sizeof ux) : h_len - i);
+ }
+ return 0;
+}
+
+#undef HASH_BYTES
+#undef HASH_BLOCKBYTES
+
+#define HASH_BYTES crypto_hash_sha512_BYTES
+#define HASH_BLOCKBYTES 128U
+
+static int
+core_h2c_string_to_hash_sha512(unsigned char *h, const size_t h_len, const char *ctx,
+ const unsigned char *msg, size_t msg_len)
+{
+ crypto_hash_sha512_state st;
+ const unsigned char empty_block[HASH_BLOCKBYTES] = { 0 };
+ unsigned char u0[HASH_BYTES];
+ unsigned char ux[HASH_BYTES] = { 0 };
+ unsigned char t[3] = { 0U, (unsigned char) h_len, 0U};
+ unsigned char ctx_len_u8;
+ size_t ctx_len = ctx != NULL ? strlen(ctx) : 0U;
+ size_t i, j;
+
+ assert(h_len <= 0xff);
+ if (ctx_len > (size_t) 0xff) {
+ crypto_hash_sha512_init(&st);
+ crypto_hash_sha512_update(&st,
+ (const unsigned char *) "H2C-OVERSIZE-DST-",
+ sizeof "H2C-OVERSIZE-DST-" - 1U);
+ crypto_hash_sha512_update(&st, (const unsigned char *) ctx, ctx_len);
+ crypto_hash_sha512_final(&st, u0);
+ ctx = (const char *) u0;
+ ctx_len = HASH_BYTES;
+ COMPILER_ASSERT(HASH_BYTES <= (size_t) 0xff);
+ }
+ ctx_len_u8 = (unsigned char) ctx_len;
+ crypto_hash_sha512_init(&st);
+ crypto_hash_sha512_update(&st, empty_block, sizeof empty_block);
+ crypto_hash_sha512_update(&st, msg, msg_len);
+ crypto_hash_sha512_update(&st, t, 3U);
+ crypto_hash_sha512_update(&st, (const unsigned char *) ctx, ctx_len);
+ crypto_hash_sha512_update(&st, &ctx_len_u8, 1U);
+ crypto_hash_sha512_final(&st, u0);
+
+ for (i = 0U; i < h_len; i += HASH_BYTES) {
+ for (j = 0U; j < HASH_BYTES; j++) {
+ ux[j] ^= u0[j];
+ }
+ t[2]++;
+ crypto_hash_sha512_init(&st);
+ crypto_hash_sha512_update(&st, ux, HASH_BYTES);
+ crypto_hash_sha512_update(&st, &t[2], 1U);
+ crypto_hash_sha512_update(&st, (const unsigned char *) ctx, ctx_len);
+ crypto_hash_sha512_update(&st, &ctx_len_u8, 1U);
+ crypto_hash_sha512_final(&st, ux);
+ memcpy(&h[i], ux, h_len - i >= (sizeof ux) ? (sizeof ux) : h_len - i);
+ }
+ return 0;
+}
+
+int
+core_h2c_string_to_hash(unsigned char *h, const size_t h_len, const char *ctx,
+ const unsigned char *msg, size_t msg_len, int hash_alg)
+{
+ switch (hash_alg) {
+ case CORE_H2C_SHA256:
+ return core_h2c_string_to_hash_sha256(h, h_len, ctx, msg, msg_len);
+ case CORE_H2C_SHA512:
+ return core_h2c_string_to_hash_sha512(h, h_len, ctx, msg, msg_len);
+ default:
+ errno = EINVAL;
+ return -1;
+ }
+}
diff --git a/src/libsodium/crypto_core/ed25519/core_h2c.h b/src/libsodium/crypto_core/ed25519/core_h2c.h
new file mode 100644
index 00000000..95dbdc78
--- /dev/null
+++ b/src/libsodium/crypto_core/ed25519/core_h2c.h
@@ -0,0 +1,10 @@
+#ifndef core_h2c_H
+#define core_h2c_H
+
+#define CORE_H2C_SHA256 1
+#define CORE_H2C_SHA512 2
+
+int core_h2c_string_to_hash(unsigned char *h, const size_t h_len, const char *ctx,
+ const unsigned char *msg, size_t msg_len,
+ int hash_alg);
+#endif
diff --git a/src/libsodium/crypto_core/ed25519/core_ristretto255.c b/src/libsodium/crypto_core/ed25519/core_ristretto255.c
index ba61c2b9..81951f5c 100644
--- a/src/libsodium/crypto_core/ed25519/core_ristretto255.c
+++ b/src/libsodium/crypto_core/ed25519/core_ristretto255.c
@@ -3,6 +3,7 @@
#include
#include
+#include "core_h2c.h"
#include "crypto_core_ed25519.h"
#include "crypto_core_ristretto255.h"
#include "crypto_hash_sha256.h"
@@ -70,65 +71,16 @@ crypto_core_ristretto255_from_hash(unsigned char *p, const unsigned char *r)
return 0;
}
-#define HASH_BYTES crypto_hash_sha256_BYTES
-#define HASH_BLOCKBYTES 64U
-
-static void
-_string_to_h2c_hash(unsigned char *h, const size_t h_len,
- const char *ctx, const unsigned char *msg, size_t msg_len)
-{
- crypto_hash_sha256_state st;
- const unsigned char empty_block[HASH_BLOCKBYTES] = { 0 };
- unsigned char u0[HASH_BYTES];
- unsigned char ux[HASH_BYTES] = { 0 };
- unsigned char t[3] = { 0U, (unsigned char) h_len, 0U};
- unsigned char ctx_len_u8;
- size_t ctx_len = ctx != NULL ? strlen(ctx) : 0U;
- size_t i, j;
-
- assert(h_len <= 0xff);
- if (ctx_len > (size_t) 0xff) {
- crypto_hash_sha256_init(&st);
- crypto_hash_sha256_update(&st,
- (const unsigned char *) "H2C-OVERSIZE-DST-",
- sizeof "H2C-OVERSIZE-DST-" - 1U);
- crypto_hash_sha256_update(&st, (const unsigned char *) ctx, ctx_len);
- crypto_hash_sha256_final(&st, u0);
- ctx = (const char *) u0;
- ctx_len = HASH_BYTES;
- COMPILER_ASSERT(HASH_BYTES <= (size_t) 0xff);
- }
- ctx_len_u8 = (unsigned char) ctx_len;
- crypto_hash_sha256_init(&st);
- crypto_hash_sha256_update(&st, empty_block, sizeof empty_block);
- crypto_hash_sha256_update(&st, msg, msg_len);
- crypto_hash_sha256_update(&st, t, 3U);
- crypto_hash_sha256_update(&st, (const unsigned char *) ctx, ctx_len);
- crypto_hash_sha256_update(&st, &ctx_len_u8, 1U);
- crypto_hash_sha256_final(&st, u0);
-
- for (i = 0U; i < h_len; i += HASH_BYTES) {
- for (j = 0U; j < HASH_BYTES; j++) {
- ux[j] ^= u0[j];
- }
- t[2]++;
- crypto_hash_sha256_init(&st);
- crypto_hash_sha256_update(&st, ux, HASH_BYTES);
- crypto_hash_sha256_update(&st, &t[2], 1U);
- crypto_hash_sha256_update(&st, (const unsigned char *) ctx, ctx_len);
- crypto_hash_sha256_update(&st, &ctx_len_u8, 1U);
- crypto_hash_sha256_final(&st, ux);
- memcpy(&h[i], ux, h_len - i >= (sizeof ux) ? (sizeof ux) : h_len - i);
- }
-}
-
static int
_string_to_element(unsigned char *p,
const char *ctx, const unsigned char *msg, size_t msg_len)
{
unsigned char h[crypto_core_ristretto255_HASHBYTES];
- _string_to_h2c_hash(h, sizeof h, ctx, msg, msg_len);
+ if (core_h2c_string_to_hash(h, sizeof h, ctx, msg, msg_len,
+ CORE_H2C_SHA256) != 0) {
+ return -1;
+ }
ristretto255_from_hash(p, h);
return 0;
@@ -231,8 +183,10 @@ crypto_core_ristretto255_scalar_from_string(unsigned char *s,
unsigned char h_be[HASH_SC_L];
size_t i;
- _string_to_h2c_hash(h_be, sizeof h_be, ctx, msg, msg_len);
-
+ if (core_h2c_string_to_hash(h_be, sizeof h_be, ctx, msg, msg_len,
+ CORE_H2C_SHA256) != 0) {
+ return -1;
+ }
COMPILER_ASSERT(sizeof h >= sizeof h_be);
for (i = 0U; i < HASH_SC_L; i++) {
h[i] = h_be[HASH_SC_L - 1U - i];
diff --git a/src/libsodium/include/sodium/private/quirks.h b/src/libsodium/include/sodium/private/quirks.h
index 96737cf4..8c6eba45 100644
--- a/src/libsodium/include/sodium/private/quirks.h
+++ b/src/libsodium/include/sodium/private/quirks.h
@@ -37,6 +37,7 @@
#define blake2b_pick_best_implementation _sodium_blake2b_pick_best_implementation
#define blake2b_salt_personal _sodium_blake2b_salt_personal
#define blake2b_update _sodium_blake2b_update
+#define core_h2c_string_to_hash _sodium_core_h2c_string_to_hash
#define escrypt_PBKDF2_SHA256 _sodium_escrypt_PBKDF2_SHA256
#define escrypt_alloc_region _sodium_escrypt_alloc_region
#define escrypt_free_local _sodium_escrypt_free_local
diff --git a/test/symbols/all-symbols.txt b/test/symbols/all-symbols.txt
index bdc87e3d..b5937f65 100644
--- a/test/symbols/all-symbols.txt
+++ b/test/symbols/all-symbols.txt
@@ -32,6 +32,7 @@ blake2b_long
blake2b_pick_best_implementation
blake2b_salt_personal
blake2b_update
+core_h2c_string_to_hash
crypto_aead_aegis128l_abytes
crypto_aead_aegis128l_decrypt
crypto_aead_aegis128l_decrypt_detached