Skip to content

Commit

Permalink
[Telink] Fix EnableKey parameter of factory data
Browse files Browse the repository at this point in the history
  • Loading branch information
s07641069 committed Apr 25, 2024
1 parent 85fb3c4 commit 336a172
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 4 deletions.
6 changes: 6 additions & 0 deletions examples/platform/telink/common/src/AppTaskCommon.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@

#include <DeviceInfoProviderImpl.h>
#include <app/clusters/identify-server/identify-server.h>
#include <app/clusters/ota-requestor/OTATestEventTriggerHandler.h>
#include <app/server/OnboardingCodesUtil.h>
#include <app/server/Server.h>
#include <app/util/attribute-storage.h>
Expand Down Expand Up @@ -271,8 +272,13 @@ CHIP_ERROR AppTaskCommon::InitCommonParts(void)

// Init ZCL Data Model and start server
static CommonCaseDeviceServerInitParams initParams;
static SimpleTestEventTriggerDelegate sTestEventTriggerDelegate{};
static OTATestEventTriggerHandler sOtaTestEventTriggerHandler{};
VerifyOrDie(sTestEventTriggerDelegate.Init(ByteSpan(sTestEventTriggerEnableKey)) == CHIP_NO_ERROR);
VerifyOrDie(sTestEventTriggerDelegate.AddHandler(&sOtaTestEventTriggerHandler) == CHIP_NO_ERROR);
(void) initParams.InitializeStaticResourcesBeforeServerInit();
initParams.appDelegate = &sCallbacks;
initParams.testEventTriggerDelegate = &sTestEventTriggerDelegate;
ReturnErrorOnFailure(chip::Server::GetInstance().Init(initParams));

#if APP_SET_DEVICE_INFO_PROVIDER
Expand Down
1 change: 1 addition & 0 deletions scripts/tools/telink/mfg_tool.py
Original file line number Diff line number Diff line change
Expand Up @@ -671,6 +671,7 @@ def base64_str(s): return base64.b64decode(s)
check_str_range(args.hw_ver_str, 1, 64, 'Hardware version string')
check_str_range(args.mfg_date, 8, 16, 'Manufacturing date')
check_str_range(args.rd_id_uid, 16, 32, 'Rotating device Unique id')
check_str_range(args.enable_key, 32, 32, 'Enable Key')

# Validates the attestation related arguments
# DAC key and DAC cert both should be present or none
Expand Down
8 changes: 4 additions & 4 deletions src/platform/telink/FactoryDataProvider.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
#include "FactoryDataProvider.h"
#include "CHIPDevicePlatformConfig.h"
#include <crypto/CHIPCryptoPAL.h>

#include <lib/support/BytesToHex.h>
#if CONFIG_CHIP_CERTIFICATION_DECLARATION_STORAGE
#include <credentials/CertificationDeclaration.h>
#include <platform/Zephyr/ZephyrConfig.h>
Expand Down Expand Up @@ -329,11 +329,11 @@ template <class FlashFactoryData>
CHIP_ERROR FactoryDataProvider<FlashFactoryData>::GetEnableKey(MutableByteSpan & enableKey)
{
ReturnErrorCodeIf(!mFactoryData.enable_key.data, CHIP_ERROR_PERSISTED_STORAGE_VALUE_NOT_FOUND);
ReturnErrorCodeIf(enableKey.size() < mFactoryData.enable_key.len, CHIP_ERROR_BUFFER_TOO_SMALL);
ReturnErrorCodeIf(enableKey.size() < mFactoryData.enable_key.len/2, CHIP_ERROR_BUFFER_TOO_SMALL);

memcpy(enableKey.data(), mFactoryData.enable_key.data, mFactoryData.enable_key.len);
Encoding::HexToBytes((const char*)mFactoryData.enable_key.data, mFactoryData.enable_key.len, enableKey.data(), enableKey.size());

enableKey.reduce_size(mFactoryData.enable_key.len);
enableKey.reduce_size(mFactoryData.enable_key.len/2);

return CHIP_NO_ERROR;
}
Expand Down

0 comments on commit 336a172

Please sign in to comment.