# 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:
          "Provide the 11-digit Manual Pairing Code from the Commissionee to the
          DUT in any format supported by DUT"
      verification: |
          Verify in TH as server 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

          $ ./chip-tool payload verhoeff-generate 8497011233

          Verify in DUT as client side
          [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 as client 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: |
          $ ./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

          Verify in DUT as client side
          [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 in DUT as client 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

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

          Verify in DUT as client side
          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: |
          On DUT=chip-tool:
          $  ./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

          Verify in DUT as client side

          "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 in DUT as client side

          (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. Change the last digit of the manual pairing code to a different digit

          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: |
          On DUT=chip-tool:
          $ ./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
