# 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, companion app, web service).

          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
