From 1268592ad0ab26e3d7fa0be5d3984bc5785d5812 Mon Sep 17 00:00:00 2001 From: joonhaengHeo <85541460+joonhaengHeo@users.noreply.github.com> Date: Wed, 26 Jan 2022 13:30:36 +0900 Subject: [PATCH] [Chip-Cert] Avoid Serialized packet loss (chip-cert genCert - Chip_Base64) (#13853) * Avoid serializedKeyPair packet loss in keyFormat_Chip_Base64 mode * Restyled by clang-format Co-authored-by: Restyled.io --- src/tools/chip-cert/KeyUtils.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/tools/chip-cert/KeyUtils.cpp b/src/tools/chip-cert/KeyUtils.cpp index c41d31c7095e3d..0bfa6e20d5541d 100644 --- a/src/tools/chip-cert/KeyUtils.cpp +++ b/src/tools/chip-cert/KeyUtils.cpp @@ -240,15 +240,15 @@ bool GenerateKeyPair(EVP_PKEY * key) bool WritePrivateKey(const char * fileName, EVP_PKEY * key, KeyFormat keyFmt) { - bool res = true; - FILE * file = nullptr; - uint8_t * keyToWrite = nullptr; - uint32_t keyToWriteLen = 0; - uint32_t chipKeyLen = kP256_PublicKey_Length + kP256_PrivateKey_Length; + bool res = true; + FILE * file = nullptr; + uint8_t * keyToWrite = nullptr; + uint32_t keyToWriteLen = 0; + P256SerializedKeypair serializedKeypair; + uint32_t chipKeyLen = sizeof(serializedKeypair); uint32_t chipKeyBase64Len = BASE64_ENCODED_LEN(chipKeyLen); std::unique_ptr chipKey(new uint8_t[chipKeyLen]); std::unique_ptr chipKeyBase64(new uint8_t[chipKeyBase64Len]); - P256SerializedKeypair serializedKeypair; VerifyOrExit(key != nullptr, res = false); @@ -282,7 +282,7 @@ bool WritePrivateKey(const char * fileName, EVP_PKEY * key, KeyFormat keyFmt) if (keyFmt == kKeyFormat_Chip_Base64) { - res = Base64Encode(serializedKeypair, static_cast(serializedKeypair.Length()), chipKeyBase64.get(), + res = Base64Encode(serializedKeypair, static_cast(sizeof(serializedKeypair)), chipKeyBase64.get(), chipKeyBase64Len, chipKeyBase64Len); VerifyTrueOrExit(res);