From 75826086d596098143134a5f066fa3cde5a9b531 Mon Sep 17 00:00:00 2001 From: Evgeny Margolis Date: Tue, 24 May 2022 06:03:23 -0700 Subject: [PATCH] Check Value Returned by BN_bn2binpad() (#18699) --- src/crypto/CHIPCryptoPALOpenSSL.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/crypto/CHIPCryptoPALOpenSSL.cpp b/src/crypto/CHIPCryptoPALOpenSSL.cpp index 4c66d912f1f779..24ed1b2c1ccdd1 100644 --- a/src/crypto/CHIPCryptoPALOpenSSL.cpp +++ b/src/crypto/CHIPCryptoPALOpenSSL.cpp @@ -653,8 +653,9 @@ CHIP_ERROR P256Keypair::ECDSA_sign_hash(const uint8_t * hash, const size_t hash_ // Concatenate r and s to output. Sizes were checked above. VerifyOrExit(out_signature.SetLength(kP256_ECDSA_Signature_Length_Raw) == CHIP_NO_ERROR, error = CHIP_ERROR_INTERNAL); - BN_bn2binpad(r, out_signature.Bytes() + 0u, kP256_FE_Length); - BN_bn2binpad(s, out_signature.Bytes() + kP256_FE_Length, kP256_FE_Length); + VerifyOrExit(BN_bn2binpad(r, out_signature.Bytes() + 0u, kP256_FE_Length) == kP256_FE_Length, error = CHIP_ERROR_INTERNAL); + VerifyOrExit(BN_bn2binpad(s, out_signature.Bytes() + kP256_FE_Length, kP256_FE_Length) == kP256_FE_Length, + error = CHIP_ERROR_INTERNAL); exit: if (sig != nullptr)