# 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.4. [TC-OPCREDS-3.4] UpdateNOC-Error Condition [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  NOC lists and verify the returned lists has single entry in TH(chip-tool) 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 the UpdateNOC command to the Node Operational Credentials
          cluster with the following fields: NOCValue is set to noc_original
          ICACValue is to set icac_original"
      PICS: OPCREDS.S.C07.Rsp
      verification: |
          Verify that the DUT responds with FAILSAFE_REQUIRED

          ./chip-tool operationalcredentials update-noc hex:1530010101240201370324130118260480228127260580254D3A3706241501241101182407012408013009410410C15281FE7A04637C46E47E30948152C5F9481B6D62D08C9D476A3D44D26E20C704DCAE97FCA4612B17A2A9B16A2D78BF9220F63E9CD19C6589CFC4CE09FF90370A350128011824020136030402040118300414C8FF1A09BE17C6824D61DA88A603A7B180804009300514574F6879804602B57796FB2D6F7212969A171E7118300B40A969CA49361A3F69E3220B19583F05F6D6B2D156AFE1992FDAD8A67A22049A0A7F62E7F303BA0B8AFDC2826A77AC94A3D042F4C611FDE66B41E34B812CEB3CFB18 1 0

          [1658736631.224352][4080:4085] CHIP:DMG: ICR moving to [ResponseRe]
          [1658736631.224399][4080:4085] CHIP:DMG: InvokeResponseMessage =
          [1658736631.224425][4080:4085] CHIP:DMG: {
          [1658736631.224450][4080:4085] CHIP:DMG:         suppressResponse = false,
          [1658736631.224476][4080:4085] CHIP:DMG:         InvokeResponseIBs =
          [1658736631.224506][4080:4085] CHIP:DMG:         [
          [1658736631.224531][4080:4085] CHIP:DMG:                 InvokeResponseIB =
          [1658736631.224563][4080:4085] CHIP:DMG:                 {
          [1658736631.224589][4080:4085] CHIP:DMG:                         CommandStatusIB =
          [1658736631.224618][4080:4085] CHIP:DMG:                         {
          [1658736631.224665][4080:4085] CHIP:DMG:                                 CommandPathIB =
          [1658736631.224706][4080:4085] CHIP:DMG:                                 {
          [1658736631.224739][4080:4085] CHIP:DMG:                                         EndpointId = 0x0,
          [1658736631.224776][4080:4085] CHIP:DMG:                                         ClusterId = 0x3e,
          [1658736631.224807][4080:4085] CHIP:DMG:                                         CommandId = 0x7,
          [1658736631.224843][4080:4085] CHIP:DMG:                                 },
          [1658736631.224876][4080:4085] CHIP:DMG:
          [1658736631.224906][4080:4085] CHIP:DMG:                                 StatusIB =
          [1658736631.224940][4080:4085] CHIP:DMG:                                 {
          [1658736631.224977][4080:4085] CHIP:DMG:                                         status = 0xca (FAILSAFE_REQUIRED),
          [1658736631.225012][4080:4085] CHIP:DMG:                                 },
          [1658736631.225046][4080:4085] CHIP:DMG:
          [1658736631.225075][4080:4085] CHIP:DMG:                         },
          [1658736631.225109][4080:4085] CHIP:DMG:
          [1658736631.225134][4080:4085] CHIP:DMG:                 },
          [1658736631.225165][4080:4085] CHIP:DMG:
          [1658736631.225189][4080:4085] CHIP:DMG:         ],
          [1658736631.225218][4080:4085] CHIP:DMG:
          [1658736631.225243][4080:4085] CHIP:DMG:         InteractionModelRevision = 1
          [1658736631.225271][4080:4085] CHIP:DMG: },
          [1658736631.225332][4080:4085] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_003E Command=0x0000_0007 Status=0xca
          [1658736631.225367][4080:4085] CHIP:TOO: Error: IM Error 0x000005CA: General error: 0xca (FAILSAFE_REQUIRED)
      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 the UpdateNOC command to the Node Operational Credentials
          cluster with the following fields: NOCValue is set to noc_original
          ICACValue is to set icac_original"
      PICS: OPCREDS.S.C07.Rsp
      verification: |
          Verify that the DUT responds with a NOCResponse with the StatusCode field set to MissingCsr that is status code 4

          ./chip-tool operationalcredentials update-noc hex:1530010101240201370324130118260480228127260580254D3A3706241501241101182407012408013009410410C15281FE7A04637C46E47E30948152C5F9481B6D62D08C9D476A3D44D26E20C704DCAE97FCA4612B17A2A9B16A2D78BF9220F63E9CD19C6589CFC4CE09FF90370A350128011824020136030402040118300414C8FF1A09BE17C6824D61DA88A603A7B180804009300514574F6879804602B57796FB2D6F7212969A171E7118300B40A969CA49361A3F69E3220B19583F05F6D6B2D156AFE1992FDAD8A67A22049A0A7F62E7F303BA0B8AFDC2826A77AC94A3D042F4C611FDE66B41E34B812CEB3CFB18 1 0

          [1658736892.440441][4160:4170] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Command 0x0000_0008
          [1658736892.440714][4160:4170] CHIP:TOO:   NOCResponse: {
          [1658736892.440945][4160:4170] CHIP:TOO:     statusCode: 4
          [1658736892.441000][4160:4170] CHIP:TOO:    }
          [1658736892.441078][4160:4170] CHIP:DMG: ICR moving to [AwaitingDe]
      disabled: true

    - label:
          "TH1 Sends CSRRequest command with the IsForUpdateNOC field set to
          false"
      PICS: OPCREDS.S.C04.Rsp
      verification: |
          Verify that the DUT returns a CSRResponse and save as csr_not_update

          To get csr nonce give below command 2 times in TH(chip-tool) Log
           echo hex:$(hexdump -vn32 -e"4/4 "%08X" " /dev/urandom)

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

          Verify DUT returns a CSRResponse in TH(chip-tool) Log
          [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 chain with ICAC with the following
          properties: new NOC is generated from the NOCSR returned in
          csr_not_for_update and is signed by ICA. Save as noc_not_for_update
          ICAC must be signed by the original key for trusted_root_original.
          Save as icac_not_for_update"
      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_not_for_update ICACValue is to set icac_not_for_update"
      PICS: OPCREDS.S.C07.Rsp
      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 sends the UpdateNOC command to the Node Operational Credentials
          cluster with the following fields: NOCValue is set to noc_original
          ICACValue is to set icac_original"
      PICS: OPCREDS.S.C07.Rsp
      verification: |
          verification step to be updated.
      disabled: true

    - label:
          "TH1 generates a new Trusted Root Certificate and Private Key and
          saves as new_root_cert and new_root_key so that TH can generate an NOC
          for UpdateNOC that doesnt chain to the original root"
      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_update and is signed
          by new ICA. Save as noc_update_new_root new ICAC is generated and
          signed by new_root_key. Save as icac_update_new_root"
      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_update_new_root ICACValue is to set icac_update_new_root"
      PICS: OPCREDS.S.C07.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_update with the
          matter-fabric-id set to a different value than noc_original. The NOC
          is signed by new ICA. Save as noc_update_bad_fabric_on_noc new ICAC is
          generated with the and matter-fabric-id omitted. ICAC is signed by the
          original key for trusted_root_original. Save as
          icac_update_bad_fabric_on_noc"
      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_update_bad_fabric_on_noc ICACValue is to set
          icac_update_bad_fabric_on_noc"
      PICS: OPCREDS.S.C07.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_update with the
          matter-fabric-id set to the same value as noc_original. The NOC is
          signed by new ICA. Save as noc_update_bad_fabric_on_icac new ICAC is
          generated with the and matter-fabric-id included as set to a different
          value than noc_original. ICAC is signed by the original key for
          trusted_root_original. Save as icac_update_bad_fabric_on_icac"
      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_update_bad_fabric_on_icac ICACValue is to set
          icac_update_bad_fabric_on_icac"
      PICS: OPCREDS.S.C07.Rsp
      verification: |
          verification step to be updated.
      disabled: true

    - label:
          "TH1 sends AddTrustedRootCertificate command to DUT again with the
          RootCACertificate field set to new_root_cert"
      PICS: OPCREDS.S.C0b.Rsp
      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_update_new_root ICACValue is to set icac_update_new_root"
      PICS: OPCREDS.S.C07.Rsp
      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 sends an OpenCommissioningWindow command to the DUT"
      verification: |
          verification step to be updated.
      disabled: true

    - label:
          "TH1 connects to the DUT over PASE and sends ArmFailSafe command to
          the DUT with the ExpiryLengthSeconds field set to 900. Steps 24-26 are
          all performed over the PASE connection."
      verification: |
          verification step to be updated.
      disabled: true

    - label:
          "TH1 Sends CSRRequest command over PASE 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 chain with ICAC with the following
          properties: new NOC is generated from the NOCSR returned in csr_pase
          and is signed by ICA. Save as noc_pase ICAC must be signed by the
          original key for trusted_root_original. Save as icac_pase"
      verification: |
          verification step to be updated.
      disabled: true

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

    - label: ""
      verification: |
          verification step to be updated.
      disabled: true
