From 441f3a7f1f2deeb66efc17f3072892e2c53c2b8c Mon Sep 17 00:00:00 2001 From: Tesfa Mael Date: Mon, 14 Oct 2019 16:43:45 -0700 Subject: [PATCH] Add leading zero for odd number of hex digits --- tests/api.c | 2 +- wolfcrypt/src/tfm.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/tests/api.c b/tests/api.c index fa53eef67..7795ff068 100644 --- a/tests/api.c +++ b/tests/api.c @@ -24095,7 +24095,7 @@ static void test_wolfSSL_X509_get_serialNumber(void) X509_free(x509); /* free's a */ AssertNotNull(serialHex = BN_bn2hex(bn)); - AssertStrEQ(serialHex, "1"); + AssertStrEQ(serialHex, "01"); OPENSSL_free(serialHex); AssertIntEQ(BN_get_word(bn), 1); diff --git a/wolfcrypt/src/tfm.c b/wolfcrypt/src/tfm.c index c5e4aac2b..899503426 100644 --- a/wolfcrypt/src/tfm.c +++ b/wolfcrypt/src/tfm.c @@ -4780,6 +4780,12 @@ int mp_toradix (mp_int *a, char *str, int radix) ++digs; } + /* For hexadecimal output, add zero when number of digits is odd */ + if ((digs & 1) && (radix == 16)) { + *str++ = fp_s_rmap[0]; + ++digs; + } + /* reverse the digits of the string. In this case _s points * to the first digit [excluding the sign] of the number] */