1
0
mirror of https://github.com/openbsd/src.git synced 2026-06-17 23:03:29 +02:00

Factor out hex2bin into a shared helper function. Replace sscanf %hhx

(which is C99) with plain %x for better compatibility in -portable.
ok djm@
This commit is contained in:
dtucker
2026-06-16 22:27:10 +00:00
parent d92f77debe
commit 95aaafce93
5 changed files with 21 additions and 29 deletions
@@ -1,4 +1,4 @@
/* $OpenBSD: test_ed25519.c,v 1.2 2026/06/16 09:00:47 dtucker Exp $ */
/* $OpenBSD: test_ed25519.c,v 1.3 2026/06/16 22:27:10 dtucker Exp $ */
/*
* Regress test for Ed25519 keypair from seed
*
@@ -61,14 +61,6 @@ static const struct ed25519_kat ed25519_kats[] = {
void ed25519_tests(void);
static void
hex2bin(uint8_t *bin, const char *hex, size_t len)
{
size_t i;
for (i = 0; i < len; i++)
sscanf(hex + i * 2, "%02hhx", &bin[i]);
}
void
ed25519_tests(void)
{
@@ -1,4 +1,4 @@
/* $OpenBSD: test_mldsa.c,v 1.2 2026/06/16 09:00:47 dtucker Exp $ */
/* $OpenBSD: test_mldsa.c,v 1.3 2026/06/16 22:27:10 dtucker Exp $ */
/*
* Regress test for ML-DSA
*
@@ -79,14 +79,6 @@ free_kats(struct kat **kats, size_t nkats)
free(kats);
}
static void
hex2bin(uint8_t *bin, const char *hex, size_t len)
{
size_t i;
for (i = 0; i < len; i++)
sscanf(hex + i * 2, "%02hhx", &bin[i]);
}
void
mldsa_tests(void)
{
@@ -1,4 +1,4 @@
/* $OpenBSD: test_mlkem.c,v 1.1 2026/06/14 04:08:06 djm Exp $ */
/* $OpenBSD: test_mlkem.c,v 1.2 2026/06/16 22:27:10 dtucker Exp $ */
/*
* Regress test for ML-KEM
*
@@ -108,14 +108,6 @@ static const struct mlkem768_kat mlkem768_kats[] = {
void mlkem_tests(void);
static void
hex2bin(uint8_t *bin, const char *hex, size_t len)
{
size_t i;
for (i = 0; i < len; i++)
sscanf(hex + i * 2, "%02hhx", &bin[i]);
}
void
mlkem_tests(void)
{
@@ -1,4 +1,4 @@
/* $OpenBSD: test_helper.c,v 1.16 2026/03/06 06:57:33 dtucker Exp $ */
/* $OpenBSD: test_helper.c,v 1.17 2026/06/16 22:27:10 dtucker Exp $ */
/*
* Copyright (c) 2011 Damien Miller <djm@mindrot.org>
*
@@ -626,6 +626,20 @@ tstod(const struct timespec *ts)
return (double)ts->tv_sec + ((double)ts->tv_nsec / 1000000000.0);
}
void
hex2bin(uint8_t *bin, const char *hex, size_t len)
{
size_t i;
unsigned int v;
/* Don't use %hhx since it's C99 and older platforms don't have it. */
for (i = 0; i < len; i++) {
sscanf(hex + i * 2, "%02x", &v);
ASSERT_U_INT_LE(v, 256);
bin[i] = (uint8_t)v;
}
}
void
bench_start(const char *file, int line, const char *name)
{
@@ -1,4 +1,4 @@
/* $OpenBSD: test_helper.h,v 1.12 2026/03/06 06:57:33 dtucker Exp $ */
/* $OpenBSD: test_helper.h,v 1.13 2026/06/16 22:27:10 dtucker Exp $ */
/*
* Copyright (c) 2011 Damien Miller <djm@mindrot.org>
*
@@ -35,6 +35,8 @@ typedef void (test_onerror_func_t)(void *);
void tests(void);
void benchmarks(void);
void hex2bin(uint8_t *, const char *, size_t);
const char *test_data_file(const char *name);
void test_start(const char *n);
void test_info(char *s, size_t len);