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

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

config:
    nodeId: 0x12344321
    cluster: "Basic"
    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: |
          1 - DUT is on an operational network and has accurate date, time, timezone, regulatory, and fabric information available.

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

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

          - 1-bit VID_PID_PRESENT = 0 (11-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 11-digit Manual Pairing Code from the Commissionee to the
          DUT in any format supported by DUT"
      verification: |
          Verify on the TH Commissionee side:
          $ ./out/all-clusters-app/chip-all-clusters-app --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --custom-flow 0 --capabilities 4 --discriminator 3840 --passcode 20202021

          [1651180718.960383][13218:13218] CHIP:DL: Device Configuration:
          [1651180718.960441][13218:13218] CHIP:DL:   Serial Number: TEST_SN
          [1651180718.960477][13218:13218] CHIP:DL:   Vendor Id: 65521 (0xFFF1)
          [1651180718.960512][13218:13218] CHIP:DL:   Product Id: 32769 (0x8001)
          [1651180718.960546][13218:13218] CHIP:DL:   Hardware Version: 0
          [1651180718.960569][13218:13218] CHIP:DL:   Setup Pin Code (0 for UNKNOWN/ERROR): 20202021
          [1651180718.960597][13218:13218] CHIP:DL:   Setup Discriminator (0xFFFF for UNKNOWN/ERROR): 3840 (0xF00)
          [1651180718.960627][13218:13218] CHIP:DL:   Manufacturing Date: (not set)
          [1651180718.960650][13218:13218] CHIP:DL:   Device Type: 65535 (0xFFFF)
          [1651180718.960671][13218:13218] CHIP:-: ==== Onboarding payload for Standard Commissioning Flow ====
          [1651180718.960729][13218:13218] CHIP:SVR: SetupQRCode: [MT:-24J0AFN00KA0648G00]
          [1651180718.960760][13218:13218] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code:
          [1651180718.960781][13218:13218] CHIP:SVR: https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3A-24J0AFN00KA0648G00
          [1651180718.960814][13218:13218] CHIP:SVR: Manual pairing code: [34970112332]
      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 DUT or TH logs

          $ ./chip-tool payload verhoeff-generate 8497011233

          [1651186243492] [13415:349553] CHIP: [SPL] Generating Character for: 84970112331
          [1651186243492] [13415:349553] CHIP: [SPL] Generated Char: 1
          Manual Code: 84970112331
      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 84970112331

          Verify in DUT Commissioner side

          Run command failure: ../../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 1"
      verification: |
          1. Use chip-tool"s "payload generate-manualcode" command to help generate the new, invalid Manual code
          No applicable DUT or TH logs

          $ ./chip-tool payload generate-manualcode --discriminator 0xF00 --setup-pin-code 20202021 --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 2 --force-short-code 1

          [1651181048462] [11611:269469] CHIP: [TOO] Manual Code: 74970112334
      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 74970112334

          Verify on the DUT Commissioner side:
          [1651184274318] [12512:321250] CHIP: [SPL] Failed decoding base10. Input length 10 was not expected length 20
          ...
          [1651184274321] [12512:321244] 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
          No applicable DUT or TH logs

          $ ./chip-tool payload generate-manualcode --existing-payload 34970112332 --discriminator 0xE00
          [1657236763262] [31784:16850989] CHIP: [TOO] Manual Code: 33331712336

          Manual Code: 33331712336
      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 on the DUT Commissioner side:
          $  ./chip-tool pairing code 1 33331712336

          [1654001605.517505][3200:3205] CHIP:-: ../../third_party/connectedhomeip/src/platform/Linux/BLEManagerImpl.cpp:748: CHIP Error 0x0000002D: Not Implemented at ../../third_party/connectedhomeip/src/controller/SetUpCodePairer.cpp:450
          [1654001605.517563][3200:3205] CHIP:CTL: Stopping commissioning discovery over DNS-SD
          [1654001605.517619][3200:3205] 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 these as examples of how to generate manual codes with invalid passcodes
          No applicable DUT or TH logs

          "34915200008" (00000000),
          $ ./chip-tool payload generate-manualcode --discriminator 3840  --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 00000000
          [1651182185732] [11790:282099] CHIP: [TOO] Manual Code: 34915200008

          "35191106788" (11111111),
          $ ./chip-tool payload generate-manualcode --discriminator 3840  --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 11111111
          [1651182284292] [11799:283222] CHIP: [TOO] Manual Code: 35191106788

          "35467013565" (22222222),
          $ ./chip-tool payload generate-manualcode --discriminator 3840  --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 22222222
          [1651182331458] [11817:283904] CHIP: [TOO] Manual Code: 35467013565

          "35742920344" (33333333),
          $ ./chip-tool payload generate-manualcode --discriminator 3840  --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 33333333
          [1651182345419] [11876:284294] CHIP: [TOO] Manual Code: 35742920344

          "36018827124" (44444444),
          $ ./chip-tool payload generate-manualcode --discriminator 3840  --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 44444444
          [1651182362963] [11944:284816] CHIP: [TOO] Manual Code: 36018827124

          "36294733900" (55555555),
          $ ./chip-tool payload generate-manualcode --discriminator 3840  --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 55555555
          [1651182375363] [11945:284938] CHIP: [TOO] Manual Code: 36294733900

          "34932240691" (66666666),
          $ ./chip-tool payload generate-manualcode --discriminator 3840  --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 66666666
          [1651182395140] [11958:285261] CHIP: [TOO] Manual Code: 34932240691

          "35208147474" (77777777),
          $ ./chip-tool payload generate-manualcode --discriminator 3840  --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 77777777
          [1651182411341] [11966:285478] CHIP: [TOO] Manual Code: 35208147474

          "35484054250" (88888888),
          $ ./chip-tool payload generate-manualcode --discriminator 3840  --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 88888888
          [1651182422264] [11967:285581] CHIP: [TOO] Manual Code: 35484054250

          "35759961037" (99999999),
          $ ./chip-tool payload generate-manualcode --discriminator 3840  --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 99999999
          [1651182431755] [11968:285672] CHIP: [TOO] Manual Code: 35759961037

          "35767807533" (12345678),
          $ ./chip-tool payload generate-manualcode --discriminator 3840  --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 12345678
          [1651182443511] [11969:285786] CHIP: [TOO] Manual Code: 35767807533

          "36545753496" (87654321),
          $ ./chip-tool payload generate-manualcode --discriminator 3840  --version 0 --vendor-id 0xFFF1 --product-id 0x8001 --commissioning-mode 0 --allow-invalid-payload 1 --setup-pin-code 87654321
          [1651182459737] [11970:285960] CHIP: [TOO] Manual Code: 36545753496
      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 on the DUT Commissioner side:
          No applicable TH logs

          (00000000)
          $  ./chip-tool pairing code 1 34915200008
          Run command failure: ../../third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:137: CHIP Error 0x0000002F: Invalid argument

          (11111111)
          $  ./chip-tool pairing code 1 35191106788
          Run command failure: ../../third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:137: CHIP Error 0x0000002F: Invalid argument

          (22222222)
          $  ./chip-tool pairing code 1 35467013565
          Run command failure: ../../third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:137: CHIP Error 0x0000002F: Invalid argument

          (33333333)
          $  ./chip-tool pairing code 1 35742920344
          Run command failure: ../../third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:137: CHIP Error 0x0000002F: Invalid argument

          (44444444)
          $  ./chip-tool pairing code 1 36018827124
          Run command failure: ../../third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:137: CHIP Error 0x0000002F: Invalid argument

          (55555555)
          $  ./chip-tool pairing code 1 36294733900
          Run command failure: ../../third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:137: CHIP Error 0x0000002F: Invalid argument

          (66666666)
          $  ./chip-tool pairing code 1 34932240691
          Run command failure: ../../third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:137: CHIP Error 0x0000002F: Invalid argument

          (77777777)
          $  ./chip-tool pairing code 1 35208147474
          Run command failure: ../../third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:137: CHIP Error 0x0000002F: Invalid argument

          (88888888)
          $  ./chip-tool pairing code 1 35484054250
          Run command failure: ../../third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:137: CHIP Error 0x0000002F: Invalid argument

          (99999999)
          $  ./chip-tool pairing code 1 35759961037
          Run command failure: ../../third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:137: CHIP Error 0x0000002F: Invalid argument

          (12345678)
          $  ./chip-tool pairing code 1 35767807533
          Run command failure: ../../third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:137: CHIP Error 0x0000002F: Invalid argument

          (87654321)
          $  ./chip-tool pairing code 1 36545753496
          Run command failure: ../../third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:137: 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 38. Encoding Method without Vendor
          and Product IDs (VID_PID_Present == 0))"
      verification: |
          1. Manually change the last digit of the manual pairing code to a different digit
          No applicable DUT or TH logs

          Manual Code: 34970112331
      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 on the DUT Commissioner side:
          $ ./chip-tool pairing code 1 34970112331
          [1657586218401] [10710:465838] CHIP: [TOO] Run command failure: ../../third_party/connectedhomeip/src/setup_payload/ManualSetupPayloadParser.cpp:50: CHIP Error 0x00000013: Integrity check failed
      disabled: true
