From 95c8a482856db9d14c8fdd3c5579098d1742d489 Mon Sep 17 00:00:00 2001 From: David Garske Date: Thu, 29 Oct 2020 08:38:55 -0700 Subject: [PATCH] Trim leading zero's first, then check for MSB being set. --- wolfcrypt/src/asn.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/wolfcrypt/src/asn.c b/wolfcrypt/src/asn.c index 9c384f826..fcf3b4ac0 100644 --- a/wolfcrypt/src/asn.c +++ b/wolfcrypt/src/asn.c @@ -15466,13 +15466,13 @@ int StoreECC_DSA_Sig_Bin(byte* out, word32* outLen, const byte* r, word32 rLen, word32 headerSz = 4; /* 2*ASN_TAG + 2*LEN(ENUM) */ int rAddLeadZero, sAddLeadZero; + /* Trim leading zeros */ + rLen = trim_leading_zeros(&r, rLen); + sLen = trim_leading_zeros(&s, sLen); /* If the leading bit on the INTEGER is a 1, add a leading zero */ /* Add leading zero if MSB is set */ rAddLeadZero = is_leading_bit_set(r, rLen); sAddLeadZero = is_leading_bit_set(s, sLen); - /* Trim leading zeros */ - rLen = trim_leading_zeros(&r, rLen); - sLen = trim_leading_zeros(&s, sLen); if (*outLen < (rLen + rAddLeadZero + sLen + sAddLeadZero + headerSz + 2)) /* SEQ_TAG + LEN(ENUM) */