Merge pull request #1912 from dgarske/fix_BN_bn2hex

Fixes for compatibility function `BN_bn2hex`
This commit is contained in:
toddouska
2018-11-07 08:35:15 -08:00
committed by GitHub
5 changed files with 26 additions and 26 deletions

View File

@@ -23157,7 +23157,6 @@ WOLFSSL_BN_ULONG wolfSSL_BN_mod_word(const WOLFSSL_BIGNUM *bn,
char *wolfSSL_BN_bn2hex(const WOLFSSL_BIGNUM *bn) char *wolfSSL_BN_bn2hex(const WOLFSSL_BIGNUM *bn)
{ {
#if defined(WOLFSSL_KEY_GEN) || defined(HAVE_COMP_KEY) || defined(DEBUG_WOLFSSL)
int len = 0; int len = 0;
char *buf; char *buf;
@@ -23172,24 +23171,20 @@ char *wolfSSL_BN_bn2hex(const WOLFSSL_BIGNUM *bn)
WOLFSSL_MSG("mp_radix_size failure"); WOLFSSL_MSG("mp_radix_size failure");
return NULL; return NULL;
} }
len += 1; /* add one for null terminator */
buf = (char*) XMALLOC(len, NULL, DYNAMIC_TYPE_ECC); buf = (char*)XMALLOC(len, NULL, DYNAMIC_TYPE_OPENSSL);
if (buf == NULL) { if (buf == NULL) {
WOLFSSL_MSG("BN_bn2hex malloc buffer failure"); WOLFSSL_MSG("BN_bn2hex malloc buffer failure");
return NULL; return NULL;
} }
if (mp_tohex((mp_int*)bn->internal, buf) != MP_OKAY) { if (mp_tohex((mp_int*)bn->internal, buf) != MP_OKAY) {
XFREE(buf, NULL, DYNAMIC_TYPE_ECC); XFREE(buf, NULL, DYNAMIC_TYPE_OPENSSL);
return NULL; return NULL;
} }
return buf; return buf;
#else
(void)bn;
WOLFSSL_MSG("wolfSSL_BN_bn2hex not compiled in");
return (char*)"";
#endif
} }
#ifndef NO_FILESYSTEM #ifndef NO_FILESYSTEM
@@ -23198,7 +23193,6 @@ char *wolfSSL_BN_bn2hex(const WOLFSSL_BIGNUM *bn)
*/ */
int wolfSSL_BN_print_fp(XFILE fp, const WOLFSSL_BIGNUM *bn) int wolfSSL_BN_print_fp(XFILE fp, const WOLFSSL_BIGNUM *bn)
{ {
#if defined(WOLFSSL_KEY_GEN) || defined(HAVE_COMP_KEY) || defined(DEBUG_WOLFSSL)
char *buf; char *buf;
WOLFSSL_ENTER("wolfSSL_BN_print_fp"); WOLFSSL_ENTER("wolfSSL_BN_print_fp");
@@ -23215,17 +23209,9 @@ int wolfSSL_BN_print_fp(XFILE fp, const WOLFSSL_BIGNUM *bn)
} }
fprintf(fp, "%s", buf); fprintf(fp, "%s", buf);
XFREE(buf, NULL, DYNAMIC_TYPE_ECC); XFREE(buf, NULL, DYNAMIC_TYPE_OPENSSL);
return WOLFSSL_SUCCESS; return WOLFSSL_SUCCESS;
#else
(void)fp;
(void)bn;
WOLFSSL_MSG("wolfSSL_BN_print_fp not compiled in");
return WOLFSSL_SUCCESS;
#endif
} }
#endif /* !NO_FILESYSTEM */ #endif /* !NO_FILESYSTEM */

View File

@@ -1420,9 +1420,8 @@ static void test_wolfSSL_EC(void)
EC_POINT *Gxy, *new_point; EC_POINT *Gxy, *new_point;
BIGNUM *k = NULL, *Gx = NULL, *Gy = NULL, *Gz = NULL; BIGNUM *k = NULL, *Gx = NULL, *Gy = NULL, *Gz = NULL;
BIGNUM *X, *Y; BIGNUM *X, *Y;
#if defined(WOLFSSL_KEY_GEN) || defined(HAVE_COMP_KEY) || defined(DEBUG_WOLFSSL)
char* hexStr; char* hexStr;
#endif
const char* kTest = "F4F8338AFCC562C5C3F3E1E46A7EFECD17AF381913FF7A96314EA47055EA0FD0"; const char* kTest = "F4F8338AFCC562C5C3F3E1E46A7EFECD17AF381913FF7A96314EA47055EA0FD0";
/* NISTP256R1 Gx/Gy */ /* NISTP256R1 Gx/Gy */
const char* kGx = "6B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296"; const char* kGx = "6B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296";
@@ -1459,19 +1458,29 @@ static void test_wolfSSL_EC(void)
AssertIntEQ(BN_is_zero(X), WOLFSSL_FAILURE); AssertIntEQ(BN_is_zero(X), WOLFSSL_FAILURE);
/* check bx2hex */ /* check bx2hex */
#if defined(WOLFSSL_KEY_GEN) || defined(HAVE_COMP_KEY) || defined(DEBUG_WOLFSSL)
hexStr = BN_bn2hex(k); hexStr = BN_bn2hex(k);
AssertStrEQ(hexStr, kTest); AssertStrEQ(hexStr, kTest);
#ifndef NO_FILESYSTEM
BN_print_fp(stdout, k);
printf("\n");
#endif
XFREE(hexStr, NULL, DYNAMIC_TYPE_ECC); XFREE(hexStr, NULL, DYNAMIC_TYPE_ECC);
hexStr = BN_bn2hex(Gx); hexStr = BN_bn2hex(Gx);
AssertStrEQ(hexStr, kGx); AssertStrEQ(hexStr, kGx);
#ifndef NO_FILESYSTEM
BN_print_fp(stdout, Gx);
printf("\n");
#endif
XFREE(hexStr, NULL, DYNAMIC_TYPE_ECC); XFREE(hexStr, NULL, DYNAMIC_TYPE_ECC);
hexStr = BN_bn2hex(Gy); hexStr = BN_bn2hex(Gy);
AssertStrEQ(hexStr, kGy); AssertStrEQ(hexStr, kGy);
XFREE(hexStr, NULL, DYNAMIC_TYPE_ECC); #ifndef NO_FILESYSTEM
BN_print_fp(stdout, Gy);
printf("\n");
#endif #endif
XFREE(hexStr, NULL, DYNAMIC_TYPE_ECC);
/* cleanup */ /* cleanup */
BN_free(X); BN_free(X);
@@ -20132,7 +20141,7 @@ static void test_wolfSSL_X509_get_serialNumber(void)
ASN1_INTEGER* a; ASN1_INTEGER* a;
BIGNUM* bn; BIGNUM* bn;
X509* x509; X509* x509;
char *serialHex;
printf(testingFmt, "wolfSSL_X509_get_serialNumber()"); printf(testingFmt, "wolfSSL_X509_get_serialNumber()");
@@ -20143,6 +20152,11 @@ static void test_wolfSSL_X509_get_serialNumber(void)
/* check on value of ASN1 Integer */ /* check on value of ASN1 Integer */
AssertNotNull(bn = ASN1_INTEGER_to_BN(a, NULL)); AssertNotNull(bn = ASN1_INTEGER_to_BN(a, NULL));
AssertNotNull(serialHex = BN_bn2hex(bn));
AssertStrEQ(serialHex, "1");
OPENSSL_free(serialHex);
AssertIntEQ(BN_get_word(bn), 1); AssertIntEQ(BN_get_word(bn), 1);
BN_free(bn); BN_free(bn);

View File

@@ -4835,7 +4835,7 @@ LBL_U:mp_clear (&v);
#if !defined(NO_DSA) || defined(HAVE_ECC) || defined(WOLFSSL_KEY_GEN) || \ #if !defined(NO_DSA) || defined(HAVE_ECC) || defined(WOLFSSL_KEY_GEN) || \
defined(HAVE_COMP_KEY) || defined(WOLFSSL_DEBUG_MATH) || \ defined(HAVE_COMP_KEY) || defined(WOLFSSL_DEBUG_MATH) || \
defined(DEBUG_WOLFSSL) defined(DEBUG_WOLFSSL) || defined(OPENSSL_EXTRA)
/* chars used in radix conversions */ /* chars used in radix conversions */
const char *mp_s_rmap = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\ const char *mp_s_rmap = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\

View File

@@ -3903,7 +3903,7 @@ int mp_add_d(fp_int *a, fp_digit b, fp_int *c)
#if !defined(NO_DSA) || defined(HAVE_ECC) || defined(WOLFSSL_KEY_GEN) || \ #if !defined(NO_DSA) || defined(HAVE_ECC) || defined(WOLFSSL_KEY_GEN) || \
defined(HAVE_COMP_KEY) || defined(WOLFSSL_DEBUG_MATH) || \ defined(HAVE_COMP_KEY) || defined(WOLFSSL_DEBUG_MATH) || \
defined(DEBUG_WOLFSSL) defined(DEBUG_WOLFSSL) || defined(OPENSSL_EXTRA)
/* chars used in radix conversions */ /* chars used in radix conversions */
static const char* const fp_s_rmap = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" static const char* const fp_s_rmap = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"

View File

@@ -753,7 +753,7 @@
#if defined(WOLFSSL_KEY_GEN) || defined(HAVE_COMP_KEY) || \ #if defined(WOLFSSL_KEY_GEN) || defined(HAVE_COMP_KEY) || \
defined(WOLFSSL_DEBUG_MATH) || defined(DEBUG_WOLFSSL) || \ defined(WOLFSSL_DEBUG_MATH) || defined(DEBUG_WOLFSSL) || \
defined(WOLFSSL_PUBLIC_MP) || \ defined(WOLFSSL_PUBLIC_MP) || defined(OPENSSL_EXTRA) || \
(defined(HAVE_ECC) && defined(HAVE_ECC_KEY_EXPORT)) (defined(HAVE_ECC) && defined(HAVE_ECC_KEY_EXPORT))
#undef WC_MP_TO_RADIX #undef WC_MP_TO_RADIX
#define WC_MP_TO_RADIX #define WC_MP_TO_RADIX