diff --git a/examples/chip-tool/commands/clusters/ModelCommand.cpp b/examples/chip-tool/commands/clusters/ModelCommand.cpp index efe866b451800e..58e6a3b7c9f0ec 100644 --- a/examples/chip-tool/commands/clusters/ModelCommand.cpp +++ b/examples/chip-tool/commands/clusters/ModelCommand.cpp @@ -18,6 +18,7 @@ #include "ModelCommand.h" +#include #include using namespace ::chip; @@ -29,9 +30,12 @@ constexpr uint16_t kWaitDurationInSeconds = 10; CHIP_ERROR ModelCommand::Run(PersistentStorage & storage, NodeId localId, NodeId remoteId) { CHIP_ERROR err = CHIP_NO_ERROR; - chip::Controller::CommissionerInitParams initParams; - initParams.storageDelegate = &storage; + mOpCredsIssuer.Initialize(); + + chip::Controller::CommissionerInitParams initParams; + initParams.storageDelegate = &storage; + initParams.operationalCredentialsDelegate = &mOpCredsIssuer; err = mCommissioner.SetUdpListenPort(storage.GetListenPort()); VerifyOrExit(err == CHIP_NO_ERROR, ChipLogError(Controller, "Init failure! Commissioner: %s", ErrorStr(err))); diff --git a/examples/chip-tool/commands/clusters/ModelCommand.h b/examples/chip-tool/commands/clusters/ModelCommand.h index cf13212965d07b..fbcfb8502479f9 100644 --- a/examples/chip-tool/commands/clusters/ModelCommand.h +++ b/examples/chip-tool/commands/clusters/ModelCommand.h @@ -21,6 +21,7 @@ #include "../../config/PersistentStorage.h" #include "../common/Command.h" #include +#include #include // Limits on endpoint values. @@ -42,5 +43,6 @@ class ModelCommand : public Command private: ChipDeviceCommissioner mCommissioner; ChipDevice * mDevice; + chip::Controller::ExampleOperationalCredentialsIssuer mOpCredsIssuer; uint8_t mEndPointId; }; diff --git a/examples/chip-tool/commands/discover/DiscoverCommand.cpp b/examples/chip-tool/commands/discover/DiscoverCommand.cpp index ad8ffb1805ddb7..e7db1bdd00c3da 100644 --- a/examples/chip-tool/commands/discover/DiscoverCommand.cpp +++ b/examples/chip-tool/commands/discover/DiscoverCommand.cpp @@ -24,8 +24,9 @@ CHIP_ERROR DiscoverCommand::Run(PersistentStorage & storage, NodeId localId, Nod { chip::Controller::CommissionerInitParams params; - params.storageDelegate = &storage; - params.mDeviceAddressUpdateDelegate = this; + params.storageDelegate = &storage; + params.mDeviceAddressUpdateDelegate = this; + params.operationalCredentialsDelegate = &mOpCredsIssuer; ReturnErrorOnFailure(mCommissioner.SetUdpListenPort(storage.GetListenPort())); ReturnErrorOnFailure(mCommissioner.Init(localId, params)); diff --git a/examples/chip-tool/commands/discover/DiscoverCommand.h b/examples/chip-tool/commands/discover/DiscoverCommand.h index 724fc55b311e12..6743fab8f93cdc 100644 --- a/examples/chip-tool/commands/discover/DiscoverCommand.h +++ b/examples/chip-tool/commands/discover/DiscoverCommand.h @@ -20,6 +20,7 @@ #include "../../config/PersistentStorage.h" #include "../common/Command.h" +#include class DiscoverCommand : public Command, public chip::Controller::DeviceAddressUpdateDelegate { @@ -44,4 +45,5 @@ class DiscoverCommand : public Command, public chip::Controller::DeviceAddressUp private: chip::NodeId mNodeId; uint64_t mFabricId; + chip::Controller::ExampleOperationalCredentialsIssuer mOpCredsIssuer; }; diff --git a/examples/chip-tool/commands/pairing/PairingCommand.cpp b/examples/chip-tool/commands/pairing/PairingCommand.cpp index fdb2fc17e01af1..7521c39418934f 100644 --- a/examples/chip-tool/commands/pairing/PairingCommand.cpp +++ b/examples/chip-tool/commands/pairing/PairingCommand.cpp @@ -31,8 +31,9 @@ CHIP_ERROR PairingCommand::Run(PersistentStorage & storage, NodeId localId, Node { CHIP_ERROR err = CHIP_NO_ERROR; - chip::Controller::CommissionerInitParams params; + mOpCredsIssuer.Initialize(); + chip::Controller::CommissionerInitParams params; params.storageDelegate = &storage; params.mDeviceAddressUpdateDelegate = this; params.pairingDelegate = this; diff --git a/examples/chip-tool/commands/reporting/ReportingCommand.cpp b/examples/chip-tool/commands/reporting/ReportingCommand.cpp index b19d99cec1dc38..29d43c77dd3f4d 100644 --- a/examples/chip-tool/commands/reporting/ReportingCommand.cpp +++ b/examples/chip-tool/commands/reporting/ReportingCommand.cpp @@ -31,10 +31,14 @@ constexpr uint16_t kWaitDurationInSeconds = UINT16_MAX; CHIP_ERROR ReportingCommand::Run(PersistentStorage & storage, NodeId localId, NodeId remoteId) { CHIP_ERROR err = CHIP_NO_ERROR; + + mOpCredsIssuer.Initialize(); + chip::Controller::BasicCluster cluster; chip::Controller::CommissionerInitParams initParams; - initParams.storageDelegate = &storage; + initParams.storageDelegate = &storage; + initParams.operationalCredentialsDelegate = &mOpCredsIssuer; err = mCommissioner.SetUdpListenPort(storage.GetListenPort()); VerifyOrExit(err == CHIP_NO_ERROR, ChipLogError(Controller, "Init failure! Commissioner: %s", ErrorStr(err))); diff --git a/examples/chip-tool/commands/reporting/ReportingCommand.h b/examples/chip-tool/commands/reporting/ReportingCommand.h index bb86cbc466c4a9..ff29239916a97f 100644 --- a/examples/chip-tool/commands/reporting/ReportingCommand.h +++ b/examples/chip-tool/commands/reporting/ReportingCommand.h @@ -21,6 +21,8 @@ #include "../../config/PersistentStorage.h" #include "../common/Command.h" +#include + // Limits on endpoint values. #define CHIP_ZCL_ENDPOINT_MIN 0x00 #define CHIP_ZCL_ENDPOINT_MAX 0xF0 @@ -43,4 +45,5 @@ class ReportingCommand : public Command ChipDeviceCommissioner mCommissioner; ChipDevice * mDevice; + chip::Controller::ExampleOperationalCredentialsIssuer mOpCredsIssuer; }; diff --git a/src/darwin/Framework/CHIP/BUILD.gn b/src/darwin/Framework/CHIP/BUILD.gn index 039dea3169f488..62e4598defe6e7 100644 --- a/src/darwin/Framework/CHIP/BUILD.gn +++ b/src/darwin/Framework/CHIP/BUILD.gn @@ -45,6 +45,7 @@ static_library("framework") { "CHIPManualSetupPayloadParser.h", "CHIPManualSetupPayloadParser.mm", "CHIPOnboardingPayloadParser.m", + "CHIPOperationalCredentialsDelegate.mm", "CHIPPersistentStorageDelegate.h", "CHIPPersistentStorageDelegateBridge.h", "CHIPPersistentStorageDelegateBridge.mm", @@ -64,6 +65,8 @@ static_library("framework") { "${chip_root}/src/lib/support", ] + frameworks = [ "Security.framework" ] + public_configs = [ ":darwin_config" ] } diff --git a/src/darwin/Framework/CHIP/CHIPOperationalCredentialsDelegate.mm b/src/darwin/Framework/CHIP/CHIPOperationalCredentialsDelegate.mm index 3edff95b191334..492d8b23e8cea6 100644 --- a/src/darwin/Framework/CHIP/CHIPOperationalCredentialsDelegate.mm +++ b/src/darwin/Framework/CHIP/CHIPOperationalCredentialsDelegate.mm @@ -237,6 +237,11 @@ static BOOL isRunningTests(void) NSCalendar * calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; NSDateComponents * components = [calendar components:units fromDate:date]; - return chip::CalendarToChipEpochTime([components year], [components month], [components day], [components hour], - [components minute], [components second], epoch); + uint16_t year = static_cast([components year]); + uint8_t month = static_cast([components month]); + uint8_t day = static_cast([components day]); + uint8_t hour = static_cast([components hour]); + uint8_t minute = static_cast([components minute]); + uint8_t second = static_cast([components second]); + return chip::CalendarToChipEpochTime(year, month, day, hour, minute, second, epoch); }