]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
upstream: Factor out hex2bin into a shared helper function. master anongit/master
authordtucker@openbsd.org <dtucker@openbsd.org>
Tue, 16 Jun 2026 22:27:10 +0000 (22:27 +0000)
committerDarren Tucker <dtucker@dtucker.net>
Tue, 16 Jun 2026 22:41:55 +0000 (08:41 +1000)
Replace sscanf %hhx (which is C99) with plain %x for better compatibility
in -portable. ok djm@

OpenBSD-Regress-ID: 4d30bb27ffdf2154f1a9f2317df18d256717b300

regress/unittests/crypto/test_ed25519.c
regress/unittests/crypto/test_mldsa.c
regress/unittests/crypto/test_mlkem.c
regress/unittests/test_helper/test_helper.c
regress/unittests/test_helper/test_helper.h

index 3f6a8196c5f863d84c88a127aafba6cfdd397c47..14d12383215bd5572a83a33e84b3943c2204a549 100644 (file)
@@ -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
  *
@@ -63,14 +63,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)
 {
index d845c49d4289246b152da2c5c19d85136538a6b7..4cbe8d5f896e48e4b10510dfe202a839072e0f2f 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: test_mldsa.c,v 1.1 2026/06/14 04:08:06 djm Exp $ */
+/*     $OpenBSD: test_mldsa.c,v 1.3 2026/06/16 22:27:10 dtucker Exp $ */
 /*
  * Regress test for ML-DSA
  *
@@ -82,14 +82,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)
 {
index 5d1b421f7886032ea151b90fff45e52dbe7d9e12..e9c41dc4f0a364fca36c7e4c3c09bc9131cf0f7f 100644 (file)
@@ -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
  *
@@ -112,14 +112,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)
 {
index 525a82b1ff87e6e8c51eb793cae6150dc164879c..f734b8f484daa70b4f52c263166c7f4fa807f78c 100644 (file)
@@ -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>
  *
@@ -662,6 +662,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)
 {
index 91fdca4353476993fed7f55e1cbf12c9e0c687fa..9cfc415539d4554c36c47c6a323d579fc1bcc81f 100644 (file)
@@ -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>
  *
@@ -39,6 +39,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);