From 1dc5e4cee52ec053e6c60a5727f2b9fa85dc0910 Mon Sep 17 00:00:00 2001 From: Jacob Barthelmeh Date: Mon, 16 May 2022 15:26:29 -0600 Subject: [PATCH 1/2] add padding for variable ecc signature size --- wolfcrypt/src/pkcs7.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/wolfcrypt/src/pkcs7.c b/wolfcrypt/src/pkcs7.c index a4dba75c6..f5e8c751b 100644 --- a/wolfcrypt/src/pkcs7.c +++ b/wolfcrypt/src/pkcs7.c @@ -2624,6 +2624,9 @@ static int PKCS7_EncodeSigned(PKCS7* pkcs7, ESD* esd, if (totalSz > *outputSz) { if (*outputSz == 0) { + if (pkcs7->publicKeyOID == ECDSAk) { + totalSz += ECC_MAX_PAD_SZ; /* signatures size can vary */ + } *outputSz = totalSz; idx = totalSz; goto out; From 8b46c95f06aa37dface91b2ee2ffe6684a0ca9c0 Mon Sep 17 00:00:00 2001 From: Jacob Barthelmeh Date: Tue, 17 May 2022 11:36:09 -0600 Subject: [PATCH 2/2] macro guard for build with disable ecc --- wolfcrypt/src/pkcs7.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/wolfcrypt/src/pkcs7.c b/wolfcrypt/src/pkcs7.c index f5e8c751b..5a70ce6d6 100644 --- a/wolfcrypt/src/pkcs7.c +++ b/wolfcrypt/src/pkcs7.c @@ -2624,9 +2624,11 @@ static int PKCS7_EncodeSigned(PKCS7* pkcs7, ESD* esd, if (totalSz > *outputSz) { if (*outputSz == 0) { + #ifdef HAVE_ECC if (pkcs7->publicKeyOID == ECDSAk) { totalSz += ECC_MAX_PAD_SZ; /* signatures size can vary */ } + #endif *outputSz = totalSz; idx = totalSz; goto out;