# 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: 12.3.5. [TC-OPCREDS-3.5] NOC Check for UpdateNOC [DUT-Server]

PICS:
    - OPCREDS.S

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

tests:
    - label: "TH1 fully commissions the DUT"
      verification: |
          "DUT side:
          sudo ./chip-all-clusters-app --wifi

          TH side:
          ./chip-tool pairing ble-wifi 1 zigbeehome matter123 20202021 3841 --trace_decode 1

          [1650455358.501816][4366:4371] CHIP:TOO: Device commissioning completed with success"
      disabled: true

    - label:
          "TH1 reads the NOCs attribute from the Node Operational Credentials
          cluster using a fabric-filtered read"
      verification: |
          ./chip-tool operationalcredentials read nocs 1 0 --fabric-filtered 1

          Verify in TH Log
          [1658736497.592132][3787:3792] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0000 DataVersion: 999376603
          [1658736497.595396][3787:3792] CHIP:TOO:   NOCs: 1 entries
          [1658736497.595477][3787:3792] CHIP:TOO:     [1]: {
          [1658736497.595519][3787:3792] CHIP:TOO:       Noc: 1530010101240201370324130118260480228127260580254D3A3706241501241101182407012408013009410410C15281FE7A04637C46E47E30948152C5F9481B6D62D08C9D476A3D44D26E20C704DCAE97FCA4612B17A2A9B16A2D78BF9220F63E9CD19C6589CFC4CE09FF90370A350128011824020136030402040118300414C8FF1A09BE17C6824D61DA88A603A7B180804009300514574F6879804602B57796FB2D6F7212969A171E7118300B40A969CA49361A3F69E3220B19583F05F6D6B2D156AFE1992FDAD8A67A22049A0A7F62E7F303BA0B8AFDC2826A77AC94A3D042F4C611FDE66B41E34B812CEB3CFB18
          [1658736497.595588][3787:3792] CHIP:TOO:       Icac: 1530010100240201370324140018260480228127260580254D3A37062413011824070124080130094104650A6D674CF5E46402644A71D2BD59888911C9B997F5797369BAA8545057A2379DDA08AF05269B0C009AF76F940EA120DCBAF0E7720921A44C22DC07BF1BD44C370A3501290118240260300414574F6879804602B57796FB2D6F7212969A171E713005142D48B9286C5E218E5AD7EFFC31E492E297FCA12818300B40604E48C301208B4CA077AD7EEAB2DAFA2A728556A86D610234AD8200E7AE0D85836279320D5F3EFF97D573D53FC9D88B44103602FC3CA8574C844A8379BCC52C18
          [1658736497.595621][3787:3792] CHIP:TOO:       FabricIndex: 1
          [1658736497.595662][3787:3792] CHIP:TOO:      }
      disabled: true

    - label:
          "TH1 reads the TrustedRootCertificates attribute from the Node
          Operational Credentials cluster"
      verification: |
          ./chip-tool operationalcredentials read trusted-root-certificates    1 0

          Verify the value returned has a single entry

          [1658736567.913921][3938:3943] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0004 DataVersion: 999376603
          [1658736567.914057][3938:3943] CHIP:TOO:   TrustedRootCertificates: 1 entries
          [1658736567.914145][3938:3943] CHIP:TOO:     [1]: 1530010100240201370324140018260480228127260580254D3A3706241400182407012408013009410470D319542F3A50625EF977E66A1277F3E50FCFF4516A5162E25016CB4E170A4D62562797E12184EB9A88A0160697122C9E473B7AA7F776E239CCB4420A82D4FE370A35012901182402603004142D48B9286C5E218E5AD7EFFC31E492E297FCA1283005142D48B9286C5E218E5AD7EFFC31E492E297FCA12818300B40C7EB3A1BA993A52EBC1D2E16C763CD9C9E4BDD82B166084FA72B5DF73437E9EB257271E09C69A8DEB6A2C09D42F833A788FD0E4092F0DA7229992B31587EE9DF18
      disabled: true

    - label:
          "TH1 sends ArmFailSafe command to the DUT with the ExpiryLengthSeconds
          field set to 900"
      verification: |
          ./chip-tool generalcommissioning arm-fail-safe 900 0 1 0

          Verify the ArmFailSafeResponse with the ErrorCode set to OK is returned

          [1658736675.488274][4129:4134] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001
          [1658736675.488329][4129:4134] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Command 0x0000_0001
          [1658736675.488401][4129:4134] CHIP:TOO:   ArmFailSafeResponse: {
          [1658736675.488441][4129:4134] CHIP:TOO:     errorCode: 0
          [1658736675.488471][4129:4134] CHIP:TOO:     debugText:
          [1658736675.488496][4129:4134] CHIP:TOO:    }
      disabled: true

    - label:
          "TH1 Sends CSRRequest command with the IsForUpdateNOC field set to
          true"
      PICS: OPCREDS.S.C04.Rsp
      verification: |
          To get csr nonce give below command 2 times
           echo hex:$(hexdump -vn32 -e"4/4 "%08X" " /dev/urandom)

          ./chip-tool operationalcredentials csrrequest hex:C11D6EAA00A54066220DA7F3FC5DC0F684C13D8B8FD3758B51163C2AEDD6F10F 1 0 --IsForUpdateNOC 0

          [1658743641.233113][9670:9675] CHIP:DMG: Received Command Response Data, Endpoint=0 Cluster=0x0000_003E Command=0x0000_0005
          [1658743641.233162][9670:9675] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Command 0x0000_0005
          [1658743641.233226][9670:9675] CHIP:TOO:   CSRResponse: {
          [1658743641.233269][9670:9675] CHIP:TOO:     NOCSRElements: 153001CA3081C73070020100300E310C300A060355040A0C034353523059301306072A8648CE3D020106082A8648CE3D03010703420004D3C12FD39A573184AC822E12F9D76C43EA3872B8D541BF0DCF68FF33AF7E62E71ADB4D4F35AA9E206D00CC290CCA1BAD557537A05BA8D3BAD1B7F3EE323B2CE9A000300A06082A8648CE3D04030203470030440220232B91662198D24E57F5967A06C0A554991CAA02D958D507AAAABB41450AD39002204575858E909DCE43563F33725928FF2AA01A176CECF611F9B248CD9D2CBC76CA300220C11D6EAA00A54066220DA7F3FC5DC0F684C13D8B8FD3758B51163C2AEDD6F10F18
          [1658743641.233306][9670:9675] CHIP:TOO:     attestationSignature: 2D4052E30061B78A79B5C2D392C93BEFADE17BA5F3547776A545D4913EC935CF446C9105E9F203BF898BF17F87106E63AD8E93E894C5398CAC344F7D6ECE27F6
      disabled: true

    - label:
          "TH1 generates a new NOC and ICAC with the following properties: new
          NOC is generated from the NOCSR returned in csr_update1. The subject
          is set to match noc_original. The NOC is signed by the new ICA. Save
          as noc_update1 new ICAC must be distinguishable from icac_original.
          This can be accomplished by changing any of the following: the
          subject, subject public key or validity. The certificate must be
          valid. ICAC is signed by the original key for trusted_root_original.
          Save as icac_update1"
      verification: |
          verification step to be updated.
      disabled: true

    - label:
          "TH1 sends the UpdateNOC command to the Node Operational Credentials
          cluster with the following fields: NOCValue is set to noc_update1
          ICACValue is to set icac_update1"
      PICS: OPCREDS.S.C07.Rsp
      verification: |
          verification step to be updated.
      disabled: true

    - label:
          "TH1 reads the NOCs attribute from the Node Operational Credentials
          cluster using a fabric-filtered read"
      verification: |
          verification step to be updated.
      disabled: true

    - label:
          "TH1 sends ArmFailSafe command to the DUT with the ExpiryLengthSeconds
          field set to 0"
      verification: |
          verification step to be updated.
      disabled: true

    - label:
          "TH1 reads the NOCs attribute from the Node Operational Credentials
          cluster using a fabric-filtered read"
      verification: |
          verification step to be updated.
      disabled: true

    - label:
          "TH1 sends ArmFailSafe command to the DUT with the ExpiryLengthSeconds
          field set to 900"
      verification: |
          verification step to be updated.
      disabled: true

    - label:
          "TH1 Sends CSRRequest command with the IsForUpdateNOC field set to
          true"
      PICS: OPCREDS.S.C04.Rsp
      verification: |
          verification step to be updated.
      disabled: true

    - label:
          "TH1 generates a new NOC and ICAC with the following properties: new
          NOC is generated from the NOCSR returned in csr_update2. The subject
          is set to match noc_original. The NOC is signed by new ICA. Save as
          noc_update2 new ICAC must be distinguishable from icac_original and
          icac_update1. This can be accomplished by changing any of the
          following: the subject, subject public key or validity. The
          certificate must be valid. ICAC is signed by the original key for
          trusted_root_original. Save as icac_update2"
      verification: |
          verification step to be updated.
      disabled: true

    - label:
          "TH1 sends the UpdateNOC command to the Node Operational Credentials
          cluster with the following fields: NOCValue is set to noc_update2
          ICACValue is to set icac_update2"
      PICS: OPCREDS.S.C07.Rsp
      verification: |
          verification step to be updated.
      disabled: true

    - label:
          "TH1 reads the NOCs attribute from the Node Operational Credentials
          cluster using a fabric-filtered read"
      verification: |
          verification step to be updated.
      disabled: true

    - label:
          "TH1 sends the CommissioningComplete command to the General
          Commissioning cluster"
      verification: |
          verification step to be updated.
      disabled: true

    - label:
          "TH1 sends ArmFailSafe command to the DUT with the ExpiryLengthSeconds
          field set to 0 to verify that the CommissioningComplete command
          successfully persisted the failsafe context."
      verification: |
          verification step to be updated.
      disabled: true

    - label:
          "TH1 reads the NOCs attribute from the Node Operational Credentials
          cluster using a fabric-filtered read"
      verification: |
          verification step to be updated.
      disabled: true
