# 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.17. [TC-DD-3.17] Commissioning Flow - 21-digit Manual Pairing Code -
    Negative Scenario [DUT - Commissioner]

PICS:
    - MCORE.ROLE.COMMISSIONER
    - MCORE.DD.21_MANUAL_PC

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

tests:
    - label: "Note"
      verification: |
          Chip-tool command used below are an example to verify the DUT as commissioner test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
      disabled: true

    - label: "Preconditions"
      verification: |
          Preconditions
          1 - DUT is on an operational network and has accurate date, time, timezone, regulatory, and fabric information available.

          2 - 5.1.4.2 - 21-digit Manual Pairing Code is printed on the Commissionee device or in additional provided materials (ex: manual).

          An example onboarding payload could be "749701123365521327694" (21-digit) (following 5.1.4. Table 37. "Manual Pairing Code Elements") which each include:

          - 1-bit VID_PID_PRESENT = 1 (21-digit only)

          - 1-bit VERSION=0

          - 4-bit SHORT DISCRIMINATOR=0xF00 (4 Most-significant bits of the 12-bits Discriminator value)

          - 27-bit PASSCODE=20202021 (see section 5.1.6. Generation of the Passcode)

          - 16-bit VENDOR_ID=0xFFF1 (as defined in section 2.5.2. "Vendor Identifier", for 21-digit Manual Pairing Code only)

          - 16-bit PRODUCT_ID=0x8001 (as defined in section 2.5.3. "Product Identifier", present if and only if VID is present)

          - A generated CHECK_DIGIT (see section 5.1.4. Manual Pairing Code, subsection "Check Digit")
      disabled: true

    - label:
          "Provide the 21-digit Manual Pairing Code from the Commissionee to the
          DUT in any format supported by DUT"
      verification: |
          Verify in TH (All-cluster-app):
          ./chip-all-clusters-app

          [1657203632.334400][13827:13827] CHIP:DL: Device Configuration:
          [1657203632.334663][13827:13827] CHIP:DL:   Serial Number: (not set)
          [1657203632.334724][13827:13827] CHIP:DL:   Vendor Id: 65521 (0xFFF1)
          [1657203632.334801][13827:13827] CHIP:DL:   Product Id: 32769 (0x8001)
          [1657203632.334879][13827:13827] CHIP:DL:   Hardware Version: 0
          [1657203632.334934][13827:13827] CHIP:DL:   Setup Pin Code (0 for UNKNOWN/ERROR): 20202021
          [1657203632.334983][13827:13827] CHIP:DL:   Setup Discriminator (0xFFFF for UNKNOWN/ERROR): 3840 (0xF00)
          [1657203632.335054][13827:13827] CHIP:DL:   Manufacturing Date: (not set)
          [1657203632.335109][13827:13827] CHIP:DL:   Device Type: 65535 (0xFFFF)
          [1657203632.335158][13827:13827] CHIP:-: ==== Onboarding payload for Standard Commissioning Flow ====
          [1657203632.335234][13827:13827] CHIP:SVR: SetupQRCode: [MT:-24J042C00KA0648G00]
          [1657203632.335298][13827:13827] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code:
          [1657203632.335348][13827:13827] CHIP:SVR: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J042C00KA0648G00
          [1657203632.335420][13827:13827] CHIP:SVR: Manual pairing code: [34970112332]
          [1657203632.335470][13827:13827] CHIP:-: ==== Onboarding payload for Custom Commissioning Flows ====
          [1657203632.335532][13827:13827] CHIP:SVR: SetupQRCode: [MT:-24J0YXE00KA0648G00]
          [1657203632.335589][13827:13827] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code:
          [1657203632.335637][13827:13827] CHIP:SVR: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J0YXE00KA0648G00
          [1657203632.335712][13827:13827] CHIP:SVR: Manual pairing code: [749701123365521327694]
      disabled: true

    - label:
          "VERSION: Using the manual code from Step 1, generate a new manual
          code but substituting out the current VERSION with an invalid VERSION:
          2"
      verification: |
          1. Use chip-tool"s "payload verhoeff-generate" command to help generate the new, invalid Manual code
          No applicable TH or DUT logs.

           ./chip-tool payload verhoeff-generate  84970112336552132769

          [1657238290868] [31968:16868160] CHIP: [SPL] Generating Character for: 84970112336552132769
          [1657238290868] [31968:16868160] CHIP: [SPL] Generated Char: 3

          Manual code: 849701123365521327693
      disabled: true

    - label:
          "Provide the Manual Pairing Code, generated in the previous step, to
          the DUT in any format supported by the DUT"
      verification: |
          ./chip-tool pairing code 1 849701123365521327693

          Verify in DUT (Chip-tool):
          [1657238348848] [31971:16868925] CHIP: [TOO] Run command failure: ../../examples/chip-tool/third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:137: CHIP Error 0x0000002F: Invalid argument
      disabled: true

    - label:
          "VID_PID_PRESENT: Using the manual code from Step 1, generate a new
          manual code but substituting out the current VID_PID_PRESENT with an
          invalid VID_PID_PRESENT set to 0"
      verification: |
          1. Use chip-tool"s "payload verhoeff-generate" command to help generate the new, invalid Manual code
          Verify in DUT (Chip-tool):

           ./chip-tool payload verhoeff-generate 34970112336552132769

          [1651186492744] [13434:353094] CHIP: [SPL] Generating Character for: 34970112336552132769
          [1651186492744] [13434:353094] CHIP: [SPL] Generated Char: 6

          Manual code: 349701123365521327696
      disabled: true

    - label:
          "Provide the Manual Pairing Code, generated in the previous step, to
          the DUT in any format supported by the DUT"
      verification: |
          ./chip-tool pairing code 1 349701123365521327696

          Verify in DUT (Chip-tool):
          [1657238541643] [31975:16871084] CHIP: [SPL] Failed decoding base10. Input length 20 was not expected length 10
          ...
          [1657238541644] [31975:16871079] CHIP: [TOO] Run command failure: ../../examples/chip-tool/third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:63: CHIP Error 0x0000001E: Invalid string length
      disabled: true

    - label:
          "SHORT DISCRIMINATOR: Using the manual code from Step 1, generate a
          new manual code but substituting out the current SHORT DISCRIMINATOR
          string with a discriminator value that makes the generated manual code
          differ from Step 1s manual code (i.e. Choose a discriminator value
          that changes any of the 4 most-significant bits of Step 1s 12-bit
          discriminator value and adheres to rules of section 5.1.1.5.
          'Discriminator value')"
      verification: |
          1. Use chip-tool"s "payload generate-manualcode" command to help generate the new, invalid Manual code
          Verify in DUT (Chip-tool):

           ./chip-tool payload generate-manualcode --existing-payload 749701123365521327694 --allow-invalid-payload 1 --discriminator 3584
          [1657238783501] [31989:16873588] CHIP: [TOO] Manual Code: 733317123365521327692
      disabled: true

    - label:
          "Provide the Manual Pairing Code, generated in the previous step, to
          the DUT in any format supported by the DUT"
      verification: |
          ./chip-tool pairing code 1 733317123365521327692

          Verify in DUT (Chip-tool):
          [1655814152.716988][3723:3726] CHIP:CTL: Commissioning discovery over BLE failed: ../../third_party/connectedhomeip/src/platform/Linux/BLEManagerImpl.cpp:829: CHIP Error 0x00000032: Timeout
          [1655814152.717099][3723:3726] CHIP:-: ../../third_party/connectedhomeip/src/platform/Linux/BLEManagerImpl.cpp:829: CHIP Error 0x00000032: Timeout at ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:270
          [1655814172.703455][3723:3728] CHIP:CTL: Discovery timed out
          [1655814172.703550][3723:3728] CHIP:CTL: Stopping commissioning discovery over DNS-SD
          [1655814172.703607][3723:3728] CHIP:TOO: Secure Pairing Failed
      disabled: true

    - label:
          "Passcode: Using the manual code from Step 1, generate a new manual
          code using all the same Onboarding Payload components except for the
          Passcode. For each Passcode in the following list, set the Passcode
          component to one of the invalid Passcode and generate a new manual
          code using all the same Onboarding Payload components and one Passcode
          from the list: 00000000, 11111111, 22222222, 33333333, 44444444,
          55555555, 66666666, 77777777, 88888888, 99999999, 12345678, 87654321"
      verification: |
          1. Use this as an example of how to generate a manual code with an invalid passcode. In this example the invalid passcode=00000000
          Verify in DUT (Chip-tool):

          Use chip-tool"s "payload generate-manualcode" command to help generate the new, invalid Manual code

           ./chip-tool payload generate-manualcode --existing-payload 749701123365521327694 --allow-invalid-payload 1 --setup-pin-code 00000000
          [1657239062245] [32164:16876812] CHIP: [TOO] Manual Code: 749152000065521327698
      disabled: true

    - label:
          "Provide each of the Manual Pairing Codes, generated in the previous
          step, to the DUT in any format supported by the DUT"
      verification: |
          Verify in DUT (Chip-tool):
          No applicable TH logs.

           (00000000)
             ./chip-tool pairing code 1 749152000065521327698
          [1651187937232] [13896:372977] CHIP: [TOO] Run command failure: ../../examples/chip-tool/third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:161: CHIP Error 0x0000002F: Invalid argument

           (11111111)
             ./chip-tool pairing code 1 751911067865521327698
          [1655814240.531424][3747:3747] CHIP:TOO: Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:55: CHIP Error 0x0000002F: Invalid argument


           (22222222)
             ./chip-tool pairing code 1 754670135665521327694
          [1655814269.264731][3754:3754] CHIP:TOO: Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:55: CHIP Error 0x0000002F: Invalid argument


           (33333333)
             ./chip-tool pairing code 1 757429203465521327699
          [1655814269.264731][3754:3754] CHIP:TOO: Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:55: CHIP Error 0x0000002F: Invalid argument


           (44444444)
             ./chip-tool pairing code 1 760188271265521327697
          [1655814269.264731][3754:3754] CHIP:TOO: Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:55: CHIP Error 0x0000002F: Invalid argument


           (55555555)
             ./chip-tool pairing code 1 762947339065521327695
          [1655814269.264731][3754:3754] CHIP:TOO: Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:55: CHIP Error 0x0000002F: Invalid argument


           (66666666)
             ./chip-tool pairing code 1 749322406965521327695
          [1655814269.264731][3754:3754] CHIP:TOO: Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:55: CHIP Error 0x0000002F: Invalid argument


           (77777777)
             ./chip-tool pairing code 1 752081474765521327697
          [1655814269.264731][3754:3754] CHIP:TOO: Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:55: CHIP Error 0x0000002F: Invalid argument


           (88888888)
             ./chip-tool pairing code 1 754840542565521327693
          [1655814269.264731][3754:3754] CHIP:TOO: Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:55: CHIP Error 0x0000002F: Invalid argument


           (99999999)
             ./chip-tool pairing code 1 757599610365521327695
          [1655814269.264731][3754:3754] CHIP:TOO: Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:55: CHIP Error 0x0000002F: Invalid argument


           (12345678)
             ./chip-tool pairing code 1 757678075365521327695
          [1655814269.264731][3754:3754] CHIP:TOO: Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:55: CHIP Error 0x0000002F: Invalid argument


           (87654321)
             ./chip-tool pairing code 1 765457534965521327696
          [1655814323.718122][3761:3761] CHIP:TOO: Run command failure: ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:55: CHIP Error 0x0000002F: Invalid argument
      disabled: true

    - label:
          "VENDOR_ID: Using the manual code from Step 1, generate a new manual
          code using all the same Onboarding Payload components except for the
          VENDOR_ID. For each VENDOR_ID in the following list, set the VENDOR_ID
          component to one of the invalid Test VENDOR_IDs and generate a new
          manual code using all the same Onboarding Payload components and one
          Test VENDOR_ID from the list: 0xFFF1, 0xFFF2, 0xFFF3, 0xFFF4"
      verification: |
          1. Use this as an example of how to generate a manual code with an invalid vendor IDs
          Verify in DUT (Chip-tool):

           ./chip-tool payload generate-manualcode --discriminator 3840 --setup-pin-code 20202021 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 1
          [1651189120686] [14218:398626] CHIP: [TOO] Manual Code: 749701123365521327694
      disabled: true

    - label:
          "Provide each of the Manual Pairing Codes, generated in the previous
          step, to the DUT in any format supported by the DUT"
      verification: |
          1. Run each of the following DUT commands below containing invalid Vendor IDs.
          2. Verify that the TH commissionee=all-cluserters-app does not get commissioned -OR- the DUT Commissioner make the user fully aware of the security risks of providing an uncertified device with operational and networking credentials

           (0xFFF1)
             ./chip-tool pairing code 1 749701123365521327694

           (0xFFF2)
             ./chip-tool pairing code 1 749701123365522327692

           (0xFFF3)
             ./chip-tool pairing code 1 749701123365523327697

           (0xFFF4)
             ./chip-tool pairing code 1 749701123365524327693

          [1667893519.289945][2201:2203] CHIP:CTL: Successfully finished commissioning step "SendComplete"
          [1667893519.290002][2201:2203] CHIP:CTL: Commissioning stage next step: "SendComplete" -> "Cleanup"
          [1667893519.290101][2201:2203] CHIP:CTL: Performing next commissioning step "Cleanup"
          [1667893519.290169][2201:2203] CHIP:IN: SecureSession[0xffff8000aa10]: MarkForEviction Type:1 LSID:45403
          [1667893519.290227][2201:2203] CHIP:SC: SecureSession[0xffff8000aa10]: Moving from state "kActive" --> "kPendingEviction"
          [1667893519.290365][2201:2203] CHIP:IN: SecureSession[0xffff8000aa10]: Released - Type:1 LSID:45403
          [1667893519.290450][2201:2203] CHIP:CTL: Successfully finished commissioning step "Cleanup"
          [1667893519.290540][2201:2203] CHIP:TOO: Device commissioning completed with success
          [1667893519.290691][2201:2203] CHIP:DMG: ICR moving to [AwaitingDe]
          [1667893519.290894][2201:2203] CHIP:EM: <<< [E:27144i M:100805848 (Ack:153455649)] (S) Msg TX to 1:0000000000000001 [3FBC] --- Type 0000:10 (SecureChannel:StandaloneAck)
          [1667893519.291027][2201:2203] CHIP:IN: (S) Sending msg 100805848 on secure session with LSID: 45404
          [1667893519.291284][2201:2203] CHIP:EM: Flushed pending ack for MessageCounter:153455649 on exchange 27144i
          [1667893519.291742][2201:2201] CHIP:CTL: Shutting down the commissioner
          [1667893519.291817][2201:2201] CHIP:CTL: Stopping commissioning discovery over DNS-SD
          [1667893519.292017][2201:2201] CHIP:CTL: Shutting down the controller
          [1667893519.292084][2201:2201] CHIP:IN: Expiring all sessions for fabric 0x1!!
          [1667893519.292143][2201:2201] CHIP:IN: SecureSession[0xffff80010440]: MarkForEviction Type:2 LSID:45404
          [1667893519.292199][2201:2201] CHIP:SC: SecureSession[0xffff80010440]: Moving from state "kActive" --> "kPendingEviction"
          [1667893519.292254][2201:2201] CHIP:IN: SecureSession[0xffff80010440]: Released - Type:2 LSID:45404
          [1667893519.292315][2201:2201] CHIP:FP: Forgetting fabric 0x1
          [1667893519.292390][2201:2201] CHIP:TS: Pending Last Known Good Ti
      disabled: true

    - label:
          "PRODUCT_ID: Using the manual code from Step 1, generate a new manual
          code but substituting out the current PRODUCT_ID with an invalid
          PRODUCT_ID of 0x0000(i.e. While following section 2.5.3. 'Product
          Identifier')"
      verification: |
          1. Use chip-tool"s "payload generate-manualcode" command to help generate the new, invalid Manual code
          Verify in DUT (Chip-tool):

           ./chip-tool payload generate-manualcode --existing-payload 749701123365521327694 --allow-invalid-payload 1 --product-id 0x0000
          [1657239418656] [32180:16880488] CHIP: [TOO] Manual Code: 749701123365521000006
      disabled: true

    - label:
          "Provide the Manual Pairing Code, generated in the previous step, to
          the DUT in any format supported by the DUT"
      verification: |
          Verify in DUT (Chip-tool):
            ./chip-tool pairing code 1 749701123365521000006

          [1657239565895] [32193:16881922] CHIP: [TOO] Run command failure: ../../examples/chip-tool/third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:55: CHIP Error 0x0000002F: Invalid argument
      disabled: true

    - label:
          "Check Digit: Using the manual code from Step 1, generate a new manual
          code but substituting out the current CHECK_DIGIT with an invalid
          CHECK_DIGIT (i.e. Any different CHECK_DIGIT than the commissionees
          CHECK_DIGIT while following Table 39. Encoding Method with Vendor and
          Product IDs included (VID_PID_Present == 1))"
      verification: |
          1. Use chip-tool"s "payload verhoeff-verify" command to help verify that the check-digit is invalid
          Verify in DUT (Chip-tool):

           ./chip-tool payload verhoeff-verify 749701123365521327693 20

          [1651187504088] [13629:367627] CHIP: [SPL] Verifying Manual Code: 74970112336552132769
          [1651187504088] [13629:367627] CHIP: [SPL] 749701123365521327693 is INVALID at position 20
      disabled: true

    - label:
          "Provide the Manual Pairing Code, generated in the previous step, to
          the DUT in any format supported by the DUT"
      verification: |
          ./chip-tool pairing code 1 749701123365521327693

          Verify in DUT (Chip-tool):
          [1651187528666] [13631:367920] CHIP: [TOO] Run command failure: ../../examples/chip-tool/third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:50: CHIP Error 0x00000013: Integrity check failed
      disabled: true
