# Copyright (c) 2021 Project CHIP Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default

name: 3.3.5. [TC-DD-3.5] Commissioning Flow - Concurrent [DUT - Commissioner]

PICS:
    - MCORE.ROLE.COMMISSIONER

config:
    nodeId: 0x12344321
    cluster: "Basic"
    endpoint: 0

tests:
    - label:
          "Commissioner has regulatory and fabric information available and has
          accurate date, time and timezone"
      verification: |
          sudo ./chip-all-clusters-app --wifi --discriminator 3841

          Verify in TH as server side

          [1653471956.966855][10713:10713] CHIP:SPT: PASE PBKDF iterations set to 1000
          [1653471956.966887][10713:10713] CHIP:SPT: LinuxCommissionableDataProvider didn"t get a PASE salt, generating one.
          [1653471956.972152][10713:10713] CHIP:DL: Device Configuration:
          [1653471956.972270][10713:10713] CHIP:DL:   Serial Number: TEST_SN
          [1653471956.972315][10713:10713] CHIP:DL:   Vendor Id: 65521 (0xFFF1)
          [1653471956.972354][10713:10713] CHIP:DL:   Product Id: 32769 (0x8001)
          [1653471956.972388][10713:10713] CHIP:DL:   Hardware Version: 0
          [1653471956.972413][10713:10713] CHIP:DL:   Setup Pin Code (0 for UNKNOWN/ERROR): 20202021
          [1653471956.972435][10713:10713] CHIP:DL:   Setup Discriminator (0xFFFF for UNKNOWN/ERROR): 3841 (0xF01)
          [1653471956.972464][10713:10713] CHIP:DL:   Manufacturing Date: (not set)
          [1653471956.972488][10713:10713] CHIP:DL:   Device Type: 65535 (0xFFFF)
          [1653471956.972509][10713:10713] CHIP:-: ==== Onboarding payload for Standard Commissioning Flow ====
          [1653471956.972546][10713:10713] CHIP:SVR: SetupQRCode: [MT:-24J0CEK01KA0648G00]
          [1653471956.972579][10713:10713] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code:
          [1653471956.972600][10713:10713] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J0CEK01KA0648G00
          [1653471956.972632][10713:10713] CHIP:SVR: Manual pairing code: [34970112332]
          [1653471956.972654][10713:10713] CHIP:-: ==== Onboarding payload for Custom Commissioning Flows ====
          [1653471956.972715][10713:10713] CHIP:SVR: SetupQRCode: [MT:-24J048N01KA0648G00]
          [1653471956.972748][10713:10713] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code:
          [1653471956.972769][10713:10713] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J048N01KA0648G00
          [1653471956.972803][10713:10713] CHIP:SVR: Manual pairing code: [749701123365521327694]


          ./chip-tool pairing code 1 MT:-24J0CEK01KA0648G00
          Verify in DUT as client side

          [1657226543861] [30621:16744161] CHIP: [IN] SecureSession[0x6000007cc000]: Activated - Type:1 LSID:47293
          [1657226543861] [30621:16744161] CHIP: [IN] New secure session activated for device <FFFFFFFB00000000, 0>, LSID:47293 PSID:201!
          [1657226543861] [30621:16744161] CHIP: [CTL] Remote device completed SPAKE2+ handshake
          [1657226543861] [30621:16744161] CHIP: [CTL] Stopping commissioning discovery over DNS-SD
          [1657226543861] [30621:16744161] CHIP: [TOO] Pairing Success
          [1657226543861] [30621:16744161] CHIP: [TOO] PASE establishment successful
          [1657226543861] [30621:16744161] CHIP: [CTL] Commissioning stage next step: "SecurePairing" -> "ReadCommissioningInfo"
      disabled: true

    - label:
          "Commissioner and Commissionee discover each other and connect via the
          discovery mode applicable for the DUT. If (MCORE.DD.DT_IP), TH device
          is advertising over IP Network using DNS-based Service Discovery
          (DNS-SD)"
      PICS: MCORE.DD.DISCOVERY_IP
      verification: |
          Verify in DUT as client side
          ./chip-tool pairing code 1 MT:-24J0AFN00KA0648G00
          ...
          [1657226543861] [30621:16744161] CHIP: [IN] SecureSession[0x6000007cc000]: Activated - Type:1 LSID:47293
          [1657226543861] [30621:16744161] CHIP: [IN] New secure session activated for device <FFFFFFFB00000000, 0>, LSID:47293 PSID:201!
          [1657226543861] [30621:16744161] CHIP: [CTL] Remote device completed SPAKE2+ handshake
          [1657226543861] [30621:16744161] CHIP: [CTL] Stopping commissioning discovery over DNS-SD
          [1657226543861] [30621:16744161] CHIP: [TOO] Pairing Success
          [1657226543861] [30621:16744161] CHIP: [TOO] PASE establishment successful
          [1657226543861] [30621:16744161] CHIP: [CTL] Commissioning stage next step: "SecurePairing" -> "ReadCommissioningInfo"


          Verify in TH as server side
          $ ./out/all-clusters-app/chip-all-clusters-app
          ...
          [1657226543.948995][369114:369114] CHIP:IN: SecureSession[0xaaaab60788e0]: Activated - Type:1 LSID:201
          [1657226543.949023][369114:369114] CHIP:IN: New secure session created for device <FFFFFFFB00000000, 0>, LSID:201 PSID:47293!
          [1657226543.949048][369114:369114] CHIP:SVR: Commissioning completed session establishment step
      disabled: true

    - label:
          "Establish encryption keys with Password Authenticated Session
          Establishment on the commissioning channel"
      verification: |
          Verify that the responder receives the PBKDFParamRequest message

          Verify in DUT as client side
          CHIP:SC: Received PBKDF param request
          CHIP:SC: Peer assigned session ID 18450
          CHIP:SC: Found MRP parameters in the message
          CHIP:SC: Including MRP parameters in PBKDF param response
          CHIP:EM: Piggybacking Ack for MessageCounter:850320430 on exchange: 63762r
          CHIP:IN: Prepared unauthenticated message 0xaaaaad340560 to 0x0000000000000000 (0)  of type 0x21 and protocolId (0, 0) on exchange 63762r with MessageCounter:1341084110.
          CHIP:IN: Sending unauthenticated msg 0xaaaaad340560 with MessageCounter:1341084110 to 0x0000000000000000 at monotonic time: 0000000000FBA380 msec
          CHIP:SC: Sent PBKDF param response

          Verify in TH as server side
          Sent PBKDF param request
          [1653471961.364996][30157:30162] CHIP:CTL: Setting wifi credentials from parameters
          [1653471961.365051][30157:30162] CHIP:CTL: Setting attestation nonce to random value
          [1653471961.365166][30157:30162] CHIP:CTL: Setting CSR nonce to random value
          [1653471961.365285][30157:30162] CHIP:CTL: Commission called for node ID 0x0000000000000001
          [1653471961.365797][30157:30163] CHIP:DL: TRACE: Bluez mainloop starting Thread
          [1653471961.366157][30157:30160] CHIP:DL: TRACE: Bus acquired for name C-75cd
          [1653471961.382240][30157:30162] CHIP:DL: PlatformBlueZInit init success
          [1653471961.393893][30157:30160] CHIP:BLE: BLE removing known devices.
          [1653471961.397319][30157:30160] CHIP:BLE: BLE initiating scan.
          [1653471961.415415][30157:30160] CHIP:BLE: Device 21:2D:EF:B9:9D:46 does not look like a CHIP device.
      disabled: true

    - label:
          "Commissioner SHALL re-arm Fail-safe timer on Commissionee within 60s
          (the autonomously Fail-safe timer length set by Commissionee)"
      verification: |
          Verify in TH as server side
          CHIP:DL: NVS set: chip-config/fail-safe-armed = true

          Verify in DUT as client side

          : Performing next commissioning step "ArmFailSafe"
          [1653471968.064493][30157:30162] CHIP:CTL: Arming failsafe (60 seconds)
      disabled: true

    - label:
          "Commissioner SHALL configure regulatory information in the
          Commissionee."
      PICS: MCORE.COM.WIRELESS
      verification: |
          Verify in DUT as client side
          Performing next commissioning step "ConfigRegulatory"
          [1653471968.202645][30157:30162] CHIP:CTL: Setting Regulatory Config
          [1653471968.202666][30157:30162] CHIP:CTL: No regulatory config supplied by controller, leaving as device default (0)

          Verify in TH as server side
           NVS set: chip-config/regulatory-location = 0 (0x0)
      disabled: true

    - label:
          "Commissioner requests operational CSR from Commissionee with
          OperationalCSRRequest command"
      verification: |
          Verify the following on DUT after commissioning

          Verify in TH as server side
          [1646909537.102263][3145:3150] CHIP:CTL: Received Attestation Information from the device
          [1646909537.102418][3145:3150] CHIP:CTL: Verifying attestation
          [1646909537.115081][3145:3150] CHIP:CTL: Successfully validated "Attestation Information" command received from the device.

          Verify in DUT as client side
          CHIP:ZCL: OpCreds: commissioner has requested a CSR
          CHIP:ZCL: OpCreds: NewCertificateSigningRequest returned ../../third_party/connectedhomeip/src/crypto/CHIPCryptoPALOpenSSL.cpp:1114: Success
      disabled: true

    - label:
          "Commissioner configures operational credentials on DUT if not
          previously installed"
      verification: |
          Verify in DUT as client side

          OpCreds: Received an AddTrustedRootCertificate command

          Verify in TH as server side

          Sending root certificate to the device
          CHIP:DMG: ICR moving to [AddingComm]
          CHIP:DMG: ICR moving to [AddedComma]
          CHIP:IN: Prepared secure message 0xffffa4cdf8c8 to 0xFFFFFFFB00000000 (0)  of type 0x8 and protocolId (0, 1) on exchange 23999i with MessageCounter:211812.
          CHIP:IN: Sending encrypted msg 0xffffa4cdf8c8 with MessageCounter:211812 to 0xFFFFFFFB00000000 (0) at monotonic time: 00000000010D06BD msec
          CHIP:DMG: ICR moving to [CommandSen]
          CHIP:CTL: Sent root certificate to the device
      disabled: true

    - label:
          "Commissioner configures itself as administrator in ACL on TH if
          needed"
      verification: |
          Verify in DUT as client side after commissioning

          CHIP:CTL: Commissioning stage next step: "SendTrustedRootCert" -> "SendNOC"
          [1653471969.812357][30157:30162] CHIP:CTL: Performing next commissioning step "SendNOC"
          [1653471969.812478][30157:30162] CHIP:DMG: ICR moving to [AddingComm]
          [1653471969.812559][30157:30162] CHIP:DMG: ICR moving to [AddedComma]
          [1653471969.812778][30157:30162] CHIP:IN: Prepared secure message 0xffffa4ce0998 to 0xFFFFFFFB00000000 (0)  of type 0x8 and protocolId (0, 1) on exchange 24000i with MessageCounter:211813.
          [1653471969.812871][30157:30162] CHIP:IN: Sending encrypted msg 0xffffa4ce0998 with MessageCounter:211813 to 0xFFFFFFFB00000000 (0) at monotonic time: 00000000010D077D msec
          [1653471969.813068][30157:30162] CHIP:DMG: ICR moving to [CommandSen]
          [1653471969.813137][30157:30162] CHIP:CTL: Sent operational certificate to the device
          [1653471969.813237][30157:30162] CHIP:DMG: ICR moving to [AwaitingDe]
          [1653471969.952613][30157:30162] CHIP:DL: HandlePlatformSpecificBLEEvent 16387
          [1653471970.050705][30157:30162] CHIP:DL: HandlePlatformSpecificBLEEvent 16387
          [1653471970.148491][30157:30162] CHIP:DL: HandlePlatformSpecificBLEEvent 16387
          [1653471970.344099][30157:30160] CHIP:DL: Indication received, conn = 0xffff9c04df70
          [1653471970.344351][30157:30162] CHIP:DL: HandlePlatformSpecificBLEEvent 16389
          [1653471970.344611][30157:30162] CHIP:EM: Received message of type 0x9 with protocolId (0, 1) and MessageCounter:1000769 on exchange 24000i
          [1653471970.344688][30157:30162] CHIP:EM: Found matching exchange: 24000i, Delegate: 0xffff9c06f0a0
          [1653471970.344771][30157:30162] CHIP:DMG: ICR moving to [ResponseRe]
          [1653471970.344870][30157:30162] CHIP:DMG: InvokeResponseMessage =
          [1653471970.345060][30157:30162] CHIP:DMG: {
          [1653471970.345124][30157:30162] CHIP:DMG:         suppressResponse = false,
          [1653471970.345198][30157:30162] CHIP:DMG:         InvokeResponseIBs =
          [1653471970.345276][30157:30162] CHIP:DMG:         [
          [1653471970.345338][30157:30162] CHIP:DMG:                 InvokeResponseIB =
          [1653471970.345422][30157:30162] CHIP:DMG:                 {
          [1653471970.345501][30157:30162] CHIP:DMG:                         CommandDataIB =
          [1653471970.345586][30157:30162] CHIP:DMG:                         {
          [1653471970.345666][30157:30162] CHIP:DMG:                                 CommandPathIB =
          [1653471970.345748][30157:30162] CHIP:DMG:                                 {
          [1653471970.345835][30157:30162] CHIP:DMG:                                         EndpointId = 0x0,
          [1653471970.345924][30157:30162] CHIP:DMG:                                         ClusterId = 0x3e,
          [1653471970.346017][30157:30162] CHIP:DMG:                                         CommandId = 0x8,
          [1653471970.346105][30157:30162] CHIP:DMG:                                 },
          [1653471970.346198][30157:30162] CHIP:DMG:
          [1653471970.346280][30157:30162] CHIP:DMG:                                 CommandData =
          [1653471970.346361][30157:30162] CHIP:DMG:                                 {
          [1653471970.346452][30157:30162] CHIP:DMG:                                         0x0 = 0,
          [1653471970.346539][30157:30162] CHIP:DMG:                                         0x1 = 1,
          [1653471970.346628][30157:30162] CHIP:DMG:                                 },
          [1653471970.346702][30157:30162] CHIP:DMG:                         },
          [1653471970.346767][30157:30162] CHIP:DMG:
          [1653471970.346889][30157:30162] CHIP:DMG:                 },
          [1653471970.346954][30157:30162] CHIP:DMG:
          [1653471970.346999][30157:30162] CHIP:DMG:         ],
          [1653471970.347056][30157:30162] CHIP:DMG:
          [1653471970.347101][30157:30162] CHIP:DMG:         InteractionModelRevision = 1
          [1653471970.347144][30157:30162] CHIP:DMG: },
          [1653471970.347251][30157:30162] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0008
          [1653471970.347339][30157:30162] CHIP:CTL: Device returned status 0 on receiving the NOC
          [1653471970.347381][30157:30162] CHIP:CTL: Operational credentials provisioned on device 0xffff90000b60
          [1653471970.347439][30157:30162] CHIP:TOO: Secure Pairing Success
          [1653471970.347485][30157:30162] CHIP:CTL: Successfully finished commissioning step "SendNOC"

          Verify in DUT as client side

           OpCreds: Received an AddNOC command
      disabled: true

    - label:
          "Commissioner configures operational network on TH if TH both supports
          and requires"
      verification: |
          Verify in DUT as client side after commissioning

          [1646909537.345068][3145:3150] CHIP:CTL: Received certificate signing request from the device
      disabled: true

    - label:
          "Commissioner instructs Commissionee to connect to operational network
          if not already connected"
      verification: |
          Verify in DUT as client side after commissioning

          [1646909537.976592][3145:3150] CHIP:CTL: Operational credentials provisioned on device 0xffffac001730
          [1646909537.976664][3145:3150] CHIP:TOO: Secure Pairing Success
      disabled: true

    - label: "Commissioner starts discovery of TH using Operational Discovery"
      verification: |
          Verify in DUT as client side

          Commissioning stage next step: "WiFiNetworkEnable" -> "FindOperational"
          [1653471976.344532][30157:30162] CHIP:CTL: Performing next commissioning step "FindOperational"
          [1653471976.344586][30157:30162] CHIP:CSM: FindOrEstablishSession: PeerId = CCCB8A2597E4538B:0000000000000001
          [1653471976.344642][30157:30162] CHIP:CSM: FindOrEstablishSession: No existing OperationalDeviceProxy instance found
          [1653471976.344715][30157:30162] CHIP:CTL: OperationalDeviceProxy[CCCB8A2597E4538B:0000000000000001]: State change 1 --> 2
          [1653471976.344783][30157:30162] CHIP:DIS: Resolving CCCB8A2597E4538B:0000000000000001 ...
          [1653471976.346864][30157:30162] CHIP:DIS: Operational node lookup already in progress. Will NOT start a new one.
          [1653471976.347000][30157:30162] CHIP:DMG: ICR moving to [AwaitingDe]
          [1653471976.348514][30157:30162] CHIP:DL: Avahi resolve found
          [1653471976.348597][30157:30162] CHIP:DIS: Node ID resolved for CCCB8A2597E4538B:0000000000000001
          [1653471976.348633][30157:30162] CHIP:DIS:         Hostname: E45F010F27530000        [1653471976.348670][30157:30162] CHIP:DIS:         IP Address #1: fe80::e65f:1ff:fe0f:2753
          [1653471976.348702][30157:30162] CHIP:DIS:         Port: 5540
          [1653471976.348732][30157:30162] CHIP:DIS:         Mrp Interval idle: 5000 ms
          [1653471976.348762][30157:30162] CHIP:DIS:         Mrp Interval active: 300 ms
          [1653471976.349059][30157:30162] CHIP:DIS: UDP:[fe80::e65f:1ff:fe0f:2753%eth0]:5540: new best score: 3
      disabled: true

    - label:
          "Commissioner opens a CASE session with TH over operational network"
      verification: |
          Verify in DUT as client side

           CASE Server enabling CASE session setups
          [1653471957.713139][10713:10713] CHIP:SVR: Joining Multicast groups
          [1653471957.713654][10713:10713] CHIP:ZCL: Emitting StartUp event
          [1653471957.714762][10713:10713] CHIP:EVL: LogEvent event number: 0x0000000000000000 priority: 2, endpoint id:  0x0 cluster id: 0x0000_0028 event id: 0x0 Sys timestamp: 0x000000000059AC88
          [1653471957.715456][10713:10713] CHIP:ZCL: GeneralDiagnosticsDelegate: OnDeviceRebooted
      disabled: true

    - label: "Commissioner sends CommissioningComplete command"
      verification: |
          Received CommissioningComplete response

          CHIP:CTL: Received CommissioningComplete response
      disabled: true

    - label:
          "Commissioning channel between the Commissioner and Commissionee is
          terminated."
      verification: |
          Verify in DUT as client side

          CHIP:CTL: Successfully finished commissioning step "SendComplete"
          CHIP:CTL: Commissioning stage next step: "SendComplete" -> "Cleanup"
          CHIP:CTL: Performing next commissioning step "Cleanup"
          CHIP:CTL: Successfully finished commissioning step "Cleanup"
          CHIP:TOO: Device commissioning completed with success
          CHIP:CTL: Performing next commissioning step "Cleanup"
          CHIP:DIS: Closing all BLE connections
          CHIP:IN: Clearing BLE pending packets.
          CHIP:BLE: Auto-closing end point"s BLE connection.
          CHIP:DL: Closing BLE GATT connection (con 0xffff9c04df70)
          CHIP:CTL: Successfully finished commissioning step "Cleanup"
          CHIP:TOO: Device commissioning completed with success
      disabled: true
