From 8ed03a29821515b248725d53fb438a2488d8b0e6 Mon Sep 17 00:00:00 2001 From: Emma Stensland Date: Wed, 15 Jul 2026 10:07:01 -0600 Subject: [PATCH] F-6721: capture wc_RsaKeyToDer() result in a signed int before checking for errors in createKey --- crypto/pkcs12/pkcs12-create-example.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/crypto/pkcs12/pkcs12-create-example.c b/crypto/pkcs12/pkcs12-create-example.c index dc8d920a..02add3a6 100644 --- a/crypto/pkcs12/pkcs12-create-example.c +++ b/crypto/pkcs12/pkcs12-create-example.c @@ -43,6 +43,7 @@ static int devId = INVALID_DEVID; /* set to alternate dev id if wanted */ static int createKey(byte** keyDer, word32* keySz, RsaKey* key, WC_RNG* rng) { int ret; + int derSz; *keyDer = NULL; *keySz = 0; @@ -57,10 +58,13 @@ static int createKey(byte** keyDer, word32* keySz, RsaKey* key, WC_RNG* rng) } if (ret == 0) { - *keySz = wc_RsaKeyToDer(key, NULL, 0); - if (*keySz < 0) { + derSz = wc_RsaKeyToDer(key, NULL, 0); + if (derSz < 0) { printf("unable to convert RSA key to DER\n"); - ret = *keySz; + ret = derSz; + } + else { + *keySz = (word32)derSz; } } @@ -72,10 +76,13 @@ static int createKey(byte** keyDer, word32* keySz, RsaKey* key, WC_RNG* rng) } if (ret == 0) { - *keySz = wc_RsaKeyToDer(key, *keyDer, *keySz); - if (*keySz < 0) { + derSz = wc_RsaKeyToDer(key, *keyDer, *keySz); + if (derSz < 0) { printf("unable to convert RSA key to DER\n"); - ret = *keySz; + ret = derSz; + } + else { + *keySz = (word32)derSz; } }