@@ -74,7 +74,7 @@ void BridgePollingThread()
74
74
#if defined(PW_RPC_FABRIC_BRIDGE_SERVICE) && PW_RPC_FABRIC_BRIDGE_SERVICE
75
75
else if (ch == ' o' )
76
76
{
77
- CHIP_ERROR err = OpenCommissioningWindow (0x1234 );
77
+ CHIP_ERROR err = OpenCommissioningWindow (0x1234 , 300 , 3840 , 1000 , chip::NullOptional, chip::NullOptional );
78
78
if (err != CHIP_NO_ERROR)
79
79
{
80
80
ChipLogError (NotSpecified, " Failed to call OpenCommissioningWindow RPC: %" CHIP_ERROR_FORMAT, err.Format ());
@@ -128,26 +128,46 @@ void AdministratorCommissioningCommandHandler::InvokeCommand(HandlerContext & ha
128
128
return ;
129
129
}
130
130
131
+ uint16_t commissioningTimeout;
132
+ chip::Optional<chip::ByteSpan> pakeVerifier;
133
+ uint16_t discriminator;
134
+ uint32_t iterations;
135
+ chip::Optional<chip::ByteSpan> salt;
136
+ Device * device = nullptr ;
137
+ Status status = Status::Failure;
138
+
139
+ Commands::OpenCommissioningWindow::DecodableType commandData;
140
+ CHIP_ERROR tlvError = DataModel::Decode (handlerContext.mPayload , commandData);
141
+ SuccessOrExit (tlvError);
142
+
143
+ commissioningTimeout = commandData.commissioningTimeout ;
144
+ pakeVerifier = chip::Optional<chip::ByteSpan>(commandData.PAKEPasscodeVerifier );
145
+ discriminator = commandData.discriminator ;
146
+ iterations = commandData.iterations ;
147
+ salt = chip::Optional<chip::ByteSpan>(commandData.salt );
148
+ ChipLogProgress (NotSpecified, " Proxying OCW with discriminator %d and iterations %d" , discriminator, iterations);
149
+
131
150
handlerContext.SetCommandHandled ();
132
- Status status = Status::Success;
133
151
134
152
#if defined(PW_RPC_FABRIC_BRIDGE_SERVICE) && PW_RPC_FABRIC_BRIDGE_SERVICE
135
- Device * device = DeviceMgr ().GetDevice (endpointId);
136
-
137
- if (device != nullptr && OpenCommissioningWindow (device->GetNodeId ()) == CHIP_NO_ERROR)
153
+ device = DeviceMgr ().GetDevice (endpointId);
154
+ if (device != nullptr &&
155
+ OpenCommissioningWindow (device->GetNodeId (), commissioningTimeout, discriminator, iterations, salt, pakeVerifier) ==
156
+ CHIP_NO_ERROR)
138
157
{
139
158
ChipLogProgress (NotSpecified, " Commissioning window is now open" );
159
+ status = Status::Success;
140
160
}
141
161
else
142
162
{
143
- status = Status::Failure;
144
- ChipLogProgress (NotSpecified, " Commissioning window is failed to open" );
163
+ ChipLogError (NotSpecified, " Commissioning window is failed to open" );
145
164
}
146
165
#else
147
166
status = Status::Failure;
148
167
ChipLogProgress (NotSpecified, " Commissioning window failed to open: PW_RPC_FABRIC_BRIDGE_SERVICE not defined" );
149
168
#endif // defined(PW_RPC_FABRIC_BRIDGE_SERVICE) && PW_RPC_FABRIC_BRIDGE_SERVICE
150
169
170
+ exit :
151
171
handlerContext.mCommandHandler .AddStatus (handlerContext.mRequestPath , status);
152
172
}
153
173
0 commit comments