diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 774da18b982ba1..0a5684b2d9eb3d 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -74,3 +74,12 @@ RUN chown -R $USERNAME:$USERNAME /opt/ameba/ambd_sdk_with_chip_non_NDA/ RUN chown -R $USERNAME:$USERNAME /opt/sdk/sdks/ RUN chown -R $USERNAME:$USERNAME /opt/fsl-imx-xwayland/5.10-hardknott/ + +# Add access to openocd for VSCode debugging +RUN chown -R $USERNAME:$USERNAME /opt/openocd + +# Fix Tizen SDK paths for new user +RUN sed -i '/^TIZEN_SDK_DATA_PATH/d' $TIZEN_SDK_ROOT/sdk.info \ + && echo TIZEN_SDK_DATA_PATH=/home/$USERNAME/tizen-sdk-data >> $TIZEN_SDK_ROOT/sdk.info \ + && ln -sf /home/$USERNAME/.tizen-cli-config $TIZEN_SDK_ROOT/tools/.tizen-cli-config \ + && : # last line diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index d7503bcf6d0e62..ba21e5e4402d30 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -17,7 +17,7 @@ "build": { "dockerfile": "Dockerfile", "args": { - "BUILD_VERSION": "0.5.73" + "BUILD_VERSION": "0.5.77" } }, "remoteUser": "vscode", @@ -38,7 +38,8 @@ "christian-kohler.path-intellisense", "knisterpeter.vscode-github", "npclaudiu.vscode-gn", - "marus25.cortex-debug" + "marus25.cortex-debug", + "msedge-dev.gnls" ], // Use 'settings' to set *default* container specific settings.json values on container create. // You can edit these settings after create using File > Preferences > Settings > Remote. diff --git a/.github/.wordlist.txt b/.github/.wordlist.txt index dcf58ac5b08236..9189db4df34508 100644 --- a/.github/.wordlist.txt +++ b/.github/.wordlist.txt @@ -430,6 +430,7 @@ DS duplicative DUT DV +DVK dynload eabi EB @@ -532,6 +533,7 @@ fsync ftd fullclean fuzzer +FW gbl gcloud GDB @@ -624,7 +626,6 @@ IlluminanceMeasurement IM imager imagetool -ImageURI imageUri img Impl @@ -879,6 +880,7 @@ nongnu nordicsemi NotAvailable notValue +npm nRF nrfconnect nrfdks @@ -1103,6 +1105,7 @@ RPi RPis rsn RSSI +RST rsync RTL rtld @@ -1274,6 +1277,7 @@ timedInteractionTimeoutMs TimeFormatLocalization timeoutMs TimeSynchronization +tinycrypt Tizen TKIP tlsr @@ -1308,6 +1312,7 @@ ttyACMx ttymxc ttyUSB TurbidityConcentrationMeasurement +TvCasting TXD txt uargument diff --git a/.github/workflows/bloat_check.yaml b/.github/workflows/bloat_check.yaml index 7ad83e0a9b68bb..39efab85d61e66 100644 --- a/.github/workflows/bloat_check.yaml +++ b/.github/workflows/bloat_check.yaml @@ -30,7 +30,7 @@ jobs: runs-on: ubuntu-latest container: - image: connectedhomeip/chip-build:0.5.75 + image: connectedhomeip/chip-build:0.5.77 steps: - uses: Wandalen/wretry.action@v1.0.15 diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 00c620e9326e78..7b1a88b1b3ee9a 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -32,7 +32,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: connectedhomeip/chip-build:0.5.75 + image: connectedhomeip/chip-build:0.5.77 volumes: - "/tmp/log_output:/tmp/test_logs" options: --sysctl "net.ipv6.conf.all.disable_ipv6=0 @@ -107,7 +107,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: connectedhomeip/chip-build:0.5.75 + image: connectedhomeip/chip-build:0.5.77 volumes: - "/tmp/log_output:/tmp/test_logs" options: --sysctl "net.ipv6.conf.all.disable_ipv6=0 @@ -237,7 +237,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: connectedhomeip/chip-build:0.5.75 + image: connectedhomeip/chip-build:0.5.77 volumes: - "/tmp/log_output:/tmp/test_logs" options: --sysctl "net.ipv6.conf.all.disable_ipv6=0 diff --git a/.github/workflows/chef.yaml b/.github/workflows/chef.yaml new file mode 100644 index 00000000000000..7f856d8e9f085c --- /dev/null +++ b/.github/workflows/chef.yaml @@ -0,0 +1,119 @@ +# 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. + +name: Build Chef CI examples on all platforms + +on: + push: + pull_request: + +concurrency: + group: ${{ github.ref }}-${{ github.workflow }}-${{ (github.event_name == 'pull_request' && github.event.number) || (github.event_name == 'workflow_dispatch' && github.run_number) || github.sha }} + cancel-in-progress: true + +jobs: + + validate_zzz: + name: Chef - Validate cached ZAP output + runs-on: ubuntu-latest + if: github.actor != 'restyled-io[bot]' + container: + image: connectedhomeip/chip-build:0.5.77 + options: --user root + steps: + - uses: Wandalen/wretry.action@v1.0.15 + name: Checkout + with: + action: actions/checkout@v3 + with: | + token: ${{ github.token }} + attempt_limit: 3 + attempt_delay: 2000 + - name: Chef validate zzz + shell: bash + run: | + cd examples/chef + python3 chef.py --validate_zzz + + chef_linux: + name: Chef - Linux CI Examples + needs: validate_zzz + runs-on: ubuntu-latest + if: github.actor != 'restyled-io[bot]' + + container: + image: connectedhomeip/chip-build:0.5.77 + options: --user root + + steps: + - uses: Wandalen/wretry.action@v1.0.15 + name: Checkout + with: + action: actions/checkout@v3 + with: | + token: ${{ github.token }} + attempt_limit: 3 + attempt_delay: 2000 + - name: CI Examples Linux + shell: bash + run: | + ./scripts/run_in_build_env.sh "./examples/chef/chef.py --ci -t linux" + + chef_esp32: + name: Chef - ESP32 CI Examples + needs: validate_zzz + runs-on: ubuntu-latest + if: github.actor != 'restyled-io[bot]' + + container: + image: connectedhomeip/chip-build-esp32:0.5.77 + options: --user root + + steps: + - uses: Wandalen/wretry.action@v1.0.15 + name: Checkout + with: + action: actions/checkout@v3 + with: | + token: ${{ github.token }} + attempt_limit: 3 + attempt_delay: 2000 + - name: CI Examples ESP32 + shell: bash + run: | + ./scripts/run_in_build_env.sh "./examples/chef/chef.py --ci -t esp32" + + chef_nrfconnect: + name: Chef - NRFConnect CI Examples + needs: validate_zzz + runs-on: ubuntu-latest + if: github.actor != 'restyled-io[bot]' + + container: + image: connectedhomeip/chip-build-nrf-platform:0.5.77 + options: --user root + + steps: + - uses: Wandalen/wretry.action@v1.0.15 + name: Checkout + with: + action: actions/checkout@v3 + with: | + token: ${{ github.token }} + attempt_limit: 3 + attempt_delay: 2000 + - name: CI Examples NRFConnect + shell: bash + run: | + ./scripts/run_in_build_env.sh "./examples/chef/chef.py --ci -t nrfconnect" diff --git a/.github/workflows/cirque.yaml b/.github/workflows/cirque.yaml index 989e263675d9cf..ca77207d322d94 100644 --- a/.github/workflows/cirque.yaml +++ b/.github/workflows/cirque.yaml @@ -38,7 +38,7 @@ jobs: # need to run with privilege, which isn't supported by job.XXX.contaner # https://github.com/actions/container-action/issues/2 # container: - # image: connectedhomeip/chip-build-cirque:0.5.75 + # image: connectedhomeip/chip-build-cirque:0.5.77 # volumes: # - "/tmp:/tmp" # - "/dev/pts:/dev/pts" diff --git a/.github/workflows/darwin-tests.yaml b/.github/workflows/darwin-tests.yaml index 384a85e4d4032d..0f0f57b57104a5 100644 --- a/.github/workflows/darwin-tests.yaml +++ b/.github/workflows/darwin-tests.yaml @@ -29,7 +29,7 @@ concurrency: jobs: test_suites_chip_tool_darwin: name: Test Suites - Darwin - timeout-minutes: 120 + timeout-minutes: 135 strategy: matrix: @@ -82,11 +82,11 @@ jobs: .environment/gn_out/.ninja_log .environment/pigweed-venv/*.log - name: Build Apps - timeout-minutes: 30 + timeout-minutes: 45 run: | ./scripts/run_in_build_env.sh \ "./scripts/build/build_examples.py \ - --target darwin-x64-chip-tool-darwin-${BUILD_VARIANT} \ + --target darwin-x64-darwin-framework-tool-${BUILD_VARIANT} \ --target darwin-x64-all-clusters-${BUILD_VARIANT} \ --target darwin-x64-lock-${BUILD_VARIANT} \ --target darwin-x64-ota-provider-${BUILD_VARIANT} \ @@ -96,11 +96,11 @@ jobs: --copy-artifacts-to objdir-clone \ " - name: Run Tests - timeout-minutes: 45 + timeout-minutes: 60 run: | ./scripts/run_in_build_env.sh \ "./scripts/tests/run_test_suite.py \ - --chip-tool ./out/darwin-x64-chip-tool-darwin-${BUILD_VARIANT}/chip-tool-darwin \ + --chip-tool ./out/darwin-x64-darwin-framework-tool-${BUILD_VARIANT}/darwin-framework-tool \ --target-skip-glob '{TestGroupMessaging}' \ run \ --iterations 1 \ diff --git a/.github/workflows/darwin.yaml b/.github/workflows/darwin.yaml index 40c160b50b1f7c..258d2d66336833 100644 --- a/.github/workflows/darwin.yaml +++ b/.github/workflows/darwin.yaml @@ -91,10 +91,10 @@ jobs: - name: Clean Build run: xcodebuild clean working-directory: src/darwin/Framework - - name: Build example chip-tool-darwin + - name: Build example darwin-framework-tool timeout-minutes: 15 run: | - scripts/examples/gn_build_example.sh examples/chip-tool-darwin out/debug chip_config_network_layer_ble=false is_asan=true + scripts/examples/gn_build_example.sh examples/darwin-framework-tool out/debug chip_config_network_layer_ble=false is_asan=true - name: Build example All Clusters Server timeout-minutes: 15 run: | diff --git a/.github/workflows/doxygen.yaml b/.github/workflows/doxygen.yaml index e8da8037750c1b..a3ccea381f4060 100644 --- a/.github/workflows/doxygen.yaml +++ b/.github/workflows/doxygen.yaml @@ -82,7 +82,7 @@ jobs: runs-on: ubuntu-20.04 container: - image: connectedhomeip/chip-build-doxygen:0.5.75 + image: connectedhomeip/chip-build-doxygen:0.5.77 if: github.actor != 'restyled-io[bot]' diff --git a/.github/workflows/examples-ameba.yaml b/.github/workflows/examples-ameba.yaml index 470298121b5d05..fdfeae09cdefae 100644 --- a/.github/workflows/examples-ameba.yaml +++ b/.github/workflows/examples-ameba.yaml @@ -32,7 +32,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: connectedhomeip/chip-build-ameba:0.5.75 + image: connectedhomeip/chip-build-ameba:0.5.77 options: --user root steps: diff --git a/.github/workflows/examples-cc13x2x7_26x2x7.yaml b/.github/workflows/examples-cc13x2x7_26x2x7.yaml index f7ea96fa03660e..ab358c4e7721a9 100644 --- a/.github/workflows/examples-cc13x2x7_26x2x7.yaml +++ b/.github/workflows/examples-cc13x2x7_26x2x7.yaml @@ -34,7 +34,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: connectedhomeip/chip-build-ti:0.5.75 + image: connectedhomeip/chip-build-ti:0.5.77 volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" steps: @@ -106,6 +106,13 @@ jobs: cc13x2_26x2 LP_CC2652R7 all-clusters-app \ out/artifacts/cc13x2x7_26x2x7-all-clusters/chip-LP_CC2652R7-all-clusters-example.out \ /tmp/bloat_reports/ + - name: Get All Clusters Minimal App size stats + timeout-minutes: 5 + run: | + .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ + cc13x2_26x2 LP_CC2652R7 all-clusters-minimal-app \ + out/artifacts/cc13x2x7_26x2x7-all-clusters-minimal/chip-LP_CC2652R7-all-clusters-minimal-example.out \ + /tmp/bloat_reports/ - name: Get Shell App size stats timeout-minutes: 5 run: | diff --git a/.github/workflows/examples-efr32.yaml b/.github/workflows/examples-efr32.yaml index 3b71f064e013a8..548909c27aa7bb 100644 --- a/.github/workflows/examples-efr32.yaml +++ b/.github/workflows/examples-efr32.yaml @@ -35,7 +35,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: connectedhomeip/chip-build-efr32:0.5.75 + image: connectedhomeip/chip-build-efr32:0.5.77 volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" steps: diff --git a/.github/workflows/examples-esp32.yaml b/.github/workflows/examples-esp32.yaml index 2dfd0e15bd8280..f7f27572b4b35f 100644 --- a/.github/workflows/examples-esp32.yaml +++ b/.github/workflows/examples-esp32.yaml @@ -32,7 +32,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: connectedhomeip/chip-build-esp32:0.5.75 + image: connectedhomeip/chip-build-esp32:0.5.77 volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" @@ -66,12 +66,12 @@ jobs: .environment/gn_out/.ninja_log .environment/pigweed-venv/*.log - name: Build some M5Stack variations - timeout-minutes: 30 + timeout-minutes: 45 run: | ./scripts/run_in_build_env.sh \ "./scripts/build/build_examples.py \ --enable-flashbundle \ - --target-glob '*-m5stack-{all-clusters,all-clusters-rpc-ipv6only}' \ + --target-glob '*-m5stack-{all-clusters,all-clusters-minimal,all-clusters-rpc-ipv6only}' \ build \ --copy-artifacts-to out/artifacts \ " @@ -118,7 +118,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: connectedhomeip/chip-build-esp32:0.5.75 + image: connectedhomeip/chip-build-esp32:0.5.77 volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" @@ -163,10 +163,6 @@ jobs: timeout-minutes: 15 run: scripts/examples/esp_example.sh temperature-measurement-app sdkconfig.optimize.defaults - - name: Build example IPv6 Only App - timeout-minutes: 15 - run: scripts/examples/esp_example.sh ipv6only-app sdkconfig.defaults - - name: Build example OTA Requestor App run: scripts/examples/esp_example.sh ota-requestor-app sdkconfig.defaults timeout-minutes: 15 diff --git a/.github/workflows/examples-infineon.yaml b/.github/workflows/examples-infineon.yaml index 3804cdb33afdea..8604a3b6756326 100644 --- a/.github/workflows/examples-infineon.yaml +++ b/.github/workflows/examples-infineon.yaml @@ -32,7 +32,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: connectedhomeip/chip-build-infineon:0.5.75 + image: connectedhomeip/chip-build-infineon:0.5.77 steps: - uses: Wandalen/wretry.action@v1.0.15 @@ -89,6 +89,19 @@ jobs: .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ p6 default all-clusters-app \ out/infineon-p6-all-clusters/chip-p6-clusters-example.out + - name: Build all-clusters-minimal-app example + timeout-minutes: 10 + run: | + scripts/run_in_build_env.sh \ + "scripts/build/build_examples.py \ + --enable-flashbundle --no-log-timestamps \ + --target infineon-p6-all-clusters-minimal \ + build \ + --copy-artifacts-to out/artifacts \ + " + .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ + p6 default all-clusters-minimal-app \ + out/infineon-p6-all-clusters-minimal/chip-p6-clusters-minimal-example.out - name: Build lighting-app example timeout-minutes: 10 run: | @@ -110,4 +123,5 @@ jobs: path: | out/infineon-p6-lock/p6-default-lock-app-sizes.json out/infineon-p6-all-clusters/p6-default-all-clusters-app-sizes.json + out/infineon-p6-all-clusters-minimal/p6-default-all-clusters-minimal-app-sizes.json out/infineon-p6-light/p6-default-light-app-sizes.json diff --git a/.github/workflows/examples-k32w.yaml b/.github/workflows/examples-k32w.yaml index 1bf51ac1e3b070..3342c4f5739884 100644 --- a/.github/workflows/examples-k32w.yaml +++ b/.github/workflows/examples-k32w.yaml @@ -34,7 +34,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: connectedhomeip/chip-build-k32w:0.5.75 + image: connectedhomeip/chip-build-k32w:0.5.77 volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" steps: diff --git a/.github/workflows/examples-linux-arm.yaml b/.github/workflows/examples-linux-arm.yaml index 6ad5590f00379a..88ffe8491e48df 100644 --- a/.github/workflows/examples-linux-arm.yaml +++ b/.github/workflows/examples-linux-arm.yaml @@ -31,7 +31,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: connectedhomeip/chip-build-crosscompile:0.5.75 + image: connectedhomeip/chip-build-crosscompile:0.5.77 volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" diff --git a/.github/workflows/examples-linux-imx.yaml b/.github/workflows/examples-linux-imx.yaml index 22dd10de9d8b59..c1c9971c9dd985 100644 --- a/.github/workflows/examples-linux-imx.yaml +++ b/.github/workflows/examples-linux-imx.yaml @@ -31,7 +31,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: connectedhomeip/chip-build-imx:0.5.75 + image: connectedhomeip/chip-build-imx:0.5.77 steps: - uses: Wandalen/wretry.action@v1.0.15 @@ -69,6 +69,13 @@ jobs: "./scripts/build/build_examples.py \ --target imx-all-clusters-app build \ " + - name: Build all-cluster-minimal + timeout-minutes: 30 + run: | + ./scripts/run_in_build_env.sh \ + "./scripts/build/build_examples.py \ + --target imx-all-clusters-minimal-app build \ + " - name: Build ota-provider-app timeout-minutes: 30 run: | diff --git a/.github/workflows/examples-linux-standalone.yaml b/.github/workflows/examples-linux-standalone.yaml index 1990b03b24e932..f557aaeb597f9f 100644 --- a/.github/workflows/examples-linux-standalone.yaml +++ b/.github/workflows/examples-linux-standalone.yaml @@ -34,7 +34,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: connectedhomeip/chip-build:0.5.75 + image: connectedhomeip/chip-build:0.5.77 volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" @@ -96,6 +96,14 @@ jobs: linux debug all-clusters-app \ out/all_clusters_debug/chip-all-clusters-app \ /tmp/bloat_reports/ + - name: Build example Standalone All Clusters Mininal Server + timeout-minutes: 10 + run: | + scripts/examples/gn_build_example.sh examples/all-clusters-minimal-app/linux out/all_clusters_minimal_debug + .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ + linux debug all-clusters-minimal-app \ + out/all_clusters_minimal_debug/chip-all-clusters-minimal-app \ + /tmp/bloat_reports/ - name: Build example TV app timeout-minutes: 10 run: | diff --git a/.github/workflows/examples-mbed.yaml b/.github/workflows/examples-mbed.yaml index 2ac13165a74285..19d59ad4bad2a8 100644 --- a/.github/workflows/examples-mbed.yaml +++ b/.github/workflows/examples-mbed.yaml @@ -37,7 +37,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: connectedhomeip/chip-build-mbed-os:0.5.75 + image: connectedhomeip/chip-build-mbed-os:0.5.77 volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" @@ -121,6 +121,16 @@ jobs: examples/all-clusters-app/mbed/build-CY8CPROTO_062_4343W/release/chip-mbed-all-clusters-app-example.elf \ /tmp/bloat_reports/ + - name: Build all-clusters-minimal-app example + if: github.event_name == 'push' || steps.changed_paths.outputs.mbed == 'true' + timeout-minutes: 20 + run: | + scripts/examples/mbed_example.sh -a=all-clusters-minimal-app -b=$APP_TARGET -p=$APP_PROFILE + .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ + mbed $APP_TARGET+$APP_PROFILE all-clusters-minimal-app \ + examples/all-clusters-minimal-app/mbed/build-CY8CPROTO_062_4343W/release/chip-mbed-all-clusters-minimal-app-example.elf \ + /tmp/bloat_reports/ + - name: Build shell example if: github.event_name == 'push' || steps.changed_paths.outputs.mbed == 'true' timeout-minutes: 20 diff --git a/.github/workflows/examples-nrfconnect.yaml b/.github/workflows/examples-nrfconnect.yaml index 9b0b74d4f85912..458bf7fa712c80 100644 --- a/.github/workflows/examples-nrfconnect.yaml +++ b/.github/workflows/examples-nrfconnect.yaml @@ -34,7 +34,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: connectedhomeip/chip-build-nrf-platform:0.5.75 + image: connectedhomeip/chip-build-nrf-platform:0.5.77 volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" @@ -181,6 +181,14 @@ jobs: nrfconnect nrf52840dk_nrf52840 all-clusters-app \ examples/all-clusters-app/nrfconnect/build/zephyr/zephyr.elf \ /tmp/bloat_reports/ + - name: Build example nRF Connect SDK All Clusters Minimal App on nRF52840 DK + timeout-minutes: 15 + run: | + scripts/examples/nrfconnect_example.sh all-clusters-minimal-app nrf52840dk_nrf52840 -DCONF_FILE=prj_dfu.conf + .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ + nrfconnect nrf52840dk_nrf52840 all-clusters-minimal-app \ + examples/all-clusters-minimal-app/nrfconnect/build/zephyr/zephyr.elf \ + /tmp/bloat_reports/ - name: Run unit tests for Zephyr native_posix_64 platform if: github.event_name == 'push' || steps.changed_paths.outputs.tests == 'true' timeout-minutes: 10 diff --git a/.github/workflows/examples-qpg.yaml b/.github/workflows/examples-qpg.yaml index ace36d1373e789..278d535dbe0a55 100644 --- a/.github/workflows/examples-qpg.yaml +++ b/.github/workflows/examples-qpg.yaml @@ -34,7 +34,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: connectedhomeip/chip-build:0.5.75 + image: connectedhomeip/chip-build:0.5.77 volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" steps: diff --git a/.github/workflows/examples-telink.yaml b/.github/workflows/examples-telink.yaml index 12061f605d2a71..58fea93d501b9f 100644 --- a/.github/workflows/examples-telink.yaml +++ b/.github/workflows/examples-telink.yaml @@ -32,7 +32,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: connectedhomeip/chip-build-telink:0.5.75 + image: connectedhomeip/chip-build-telink:0.5.77 volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" diff --git a/.github/workflows/examples-tizen.yaml b/.github/workflows/examples-tizen.yaml index 22c4152f0d5902..eeadfd200d916b 100644 --- a/.github/workflows/examples-tizen.yaml +++ b/.github/workflows/examples-tizen.yaml @@ -32,7 +32,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: connectedhomeip/chip-build-tizen:0.5.75 + image: connectedhomeip/chip-build-tizen:0.5.77 options: --user root volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" diff --git a/.github/workflows/full-android.yaml b/.github/workflows/full-android.yaml index 7cbc347042c685..cd278c6c1e75b0 100644 --- a/.github/workflows/full-android.yaml +++ b/.github/workflows/full-android.yaml @@ -34,7 +34,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: connectedhomeip/chip-build-android:0.5.75 + image: connectedhomeip/chip-build-android:0.5.77 volumes: - "/tmp/log_output:/tmp/test_logs" diff --git a/.github/workflows/fuzzing-build.yaml b/.github/workflows/fuzzing-build.yaml index c54fd61836a4b5..c2ecc70cdecd91 100644 --- a/.github/workflows/fuzzing-build.yaml +++ b/.github/workflows/fuzzing-build.yaml @@ -31,7 +31,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: connectedhomeip/chip-build:0.5.75 + image: connectedhomeip/chip-build:0.5.77 volumes: - "/tmp/log_output:/tmp/test_logs" diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index b5c296573021d7..ce0a12059f6916 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -85,6 +85,10 @@ jobs: if: always() run: scripts/tools/check_includes.sh + - name: Check for zcl.json and extension sync status + if: always() + run: scripts/tools/check_zcl_file_sync.py . + - name: Ensure all PICS are set for tests (to true or false) if: always() run: | diff --git a/.github/workflows/qemu.yaml b/.github/workflows/qemu.yaml index aba3d6760cc63f..c9e26c8cc97914 100644 --- a/.github/workflows/qemu.yaml +++ b/.github/workflows/qemu.yaml @@ -34,7 +34,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: connectedhomeip/chip-build-esp32-qemu:0.5.75 + image: connectedhomeip/chip-build-esp32-qemu:0.5.77 volumes: - "/tmp/log_output:/tmp/test_logs" diff --git a/.github/workflows/release_artifacts.yaml b/.github/workflows/release_artifacts.yaml index 0ce3451f8c9741..4ab6fcfbe0f6b3 100644 --- a/.github/workflows/release_artifacts.yaml +++ b/.github/workflows/release_artifacts.yaml @@ -29,7 +29,7 @@ jobs: runs-on: ubuntu-latest container: - image: connectedhomeip/chip-build-esp32:0.5.75 + image: connectedhomeip/chip-build-esp32:0.5.77 steps: - uses: Wandalen/wretry.action@v1.0.15 @@ -75,7 +75,7 @@ jobs: runs-on: ubuntu-latest container: - image: connectedhomeip/chip-build-efr32:0.5.75 + image: connectedhomeip/chip-build-efr32:0.5.77 steps: - uses: Wandalen/wretry.action@v1.0.15 name: Checkout diff --git a/.github/workflows/smoketest-android.yaml b/.github/workflows/smoketest-android.yaml index db5b4fe1331b74..bf59a586b67bde 100644 --- a/.github/workflows/smoketest-android.yaml +++ b/.github/workflows/smoketest-android.yaml @@ -34,7 +34,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: connectedhomeip/chip-build-android:0.5.75 + image: connectedhomeip/chip-build-android:0.5.77 volumes: - "/tmp/log_output:/tmp/test_logs" diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 9058c0697bcb03..ebb81d9ed58df4 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -28,7 +28,7 @@ concurrency: jobs: test_suites_linux: name: Test Suites - Linux - timeout-minutes: 120 + timeout-minutes: 140 strategy: matrix: @@ -43,7 +43,7 @@ jobs: runs-on: ubuntu-latest container: - image: connectedhomeip/chip-build:0.5.75 + image: connectedhomeip/chip-build:0.5.77 options: --privileged --sysctl "net.ipv6.conf.all.disable_ipv6=0 net.ipv4.conf.all.forwarding=1 net.ipv6.conf.all.forwarding=1" @@ -76,7 +76,7 @@ jobs: .environment/gn_out/.ninja_log .environment/pigweed-venv/*.log - name: Build Apps - timeout-minutes: 30 + timeout-minutes: 45 run: | ./scripts/run_in_build_env.sh \ "./scripts/build/build_examples.py \ @@ -90,7 +90,7 @@ jobs: --copy-artifacts-to objdir-clone \ " - name: Run Tests - timeout-minutes: 40 + timeout-minutes: 60 run: | ./scripts/run_in_build_env.sh \ "./scripts/tests/run_test_suite.py \ @@ -121,7 +121,7 @@ jobs: retention-days: 5 test_suites_darwin: name: Test Suites - Darwin - timeout-minutes: 120 + timeout-minutes: 140 strategy: matrix: @@ -190,12 +190,12 @@ jobs: --copy-artifacts-to objdir-clone \ " - name: Run Tests - timeout-minutes: 50 + timeout-minutes: 70 run: | ./scripts/run_in_build_env.sh \ "./scripts/tests/run_test_suite.py \ --chip-tool ./out/darwin-x64-chip-tool${CHIP_TOOL_VARIANT}-${BUILD_VARIANT}/chip-tool \ - --target-skip-glob '{TestGroupMessaging}' \ + --target-skip-glob '{TestGroupMessaging,Test_TC_DIAG_TH_NW_1_1,Test_TC_DIAG_TH_NW_1_2,Test_TC_DIAG_TH_NW_2_2,Test_TC_DIAG_TH_NW_2_3,Test_TC_DIAG_TH_NW_2_6,Test_TC_DIAG_TH_NW_2_7,Test_TC_DIAG_TH_NW_2_8,Test_TC_DIAG_TH_NW_2_9}' \ run \ --iterations 1 \ --all-clusters-app ./out/darwin-x64-all-clusters-${BUILD_VARIANT}/chip-all-clusters-app \ @@ -237,7 +237,7 @@ jobs: runs-on: ubuntu-latest container: - image: connectedhomeip/chip-build:0.5.75 + image: connectedhomeip/chip-build:0.5.77 options: --privileged --sysctl "net.ipv6.conf.all.disable_ipv6=0 net.ipv4.conf.all.forwarding=1 net.ipv6.conf.all.forwarding=1" diff --git a/.github/workflows/unit_integration_test.yaml b/.github/workflows/unit_integration_test.yaml index b82411998f3681..92c5db7a27a938 100644 --- a/.github/workflows/unit_integration_test.yaml +++ b/.github/workflows/unit_integration_test.yaml @@ -37,7 +37,7 @@ jobs: runs-on: ubuntu-latest container: - image: connectedhomeip/chip-build:0.5.75 + image: connectedhomeip/chip-build:0.5.77 volumes: - "/tmp/log_output:/tmp/test_logs" options: --privileged --sysctl "net.ipv6.conf.all.disable_ipv6=0 net.ipv4.conf.all.forwarding=1 net.ipv6.conf.all.forwarding=1" diff --git a/.github/workflows/zap_regeneration.yaml b/.github/workflows/zap_regeneration.yaml index 9c2c299f1b5e0e..0584c11887fd1d 100644 --- a/.github/workflows/zap_regeneration.yaml +++ b/.github/workflows/zap_regeneration.yaml @@ -28,7 +28,7 @@ jobs: runs-on: ubuntu-20.04 container: - image: connectedhomeip/chip-build-zap:0.5.75 + image: connectedhomeip/chip-build-zap:0.5.77 defaults: run: shell: sh diff --git a/.github/workflows/zap_templates.yaml b/.github/workflows/zap_templates.yaml index 7a6ad22c9e2271..f5a1d809540dfd 100644 --- a/.github/workflows/zap_templates.yaml +++ b/.github/workflows/zap_templates.yaml @@ -29,7 +29,7 @@ jobs: runs-on: ubuntu-20.04 container: - image: connectedhomeip/chip-build-zap:0.5.75 + image: connectedhomeip/chip-build-zap:0.5.77 defaults: run: shell: sh diff --git a/.gitmodules b/.gitmodules index 7a0b2154efd292..0682becb54cfce 100644 --- a/.gitmodules +++ b/.gitmodules @@ -88,7 +88,6 @@ [submodule "third_party/openthread/ot-ifx"] path = third_party/openthread/ot-ifx url = https://github.com/Infineon/ot-ifx-release.git - branch = cyw30739 platforms = cyw30739 [submodule "third_party/mbed-os/repo"] path = third_party/mbed-os/repo @@ -203,7 +202,7 @@ url = https://github.com/open-source-parsers/jsoncpp.git [submodule "cyw30739_sdk/30739A0"] path = third_party/cyw30739_sdk/repos/30739A0 - url = https://github.com/Infineon/30739A0.git + url = https://github.com/Infineon/OT-Matter-30739A0.git platforms = cyw30739 [submodule "cyw30739_sdk/include"] path = third_party/cyw30739_sdk/repos/btsdk-include @@ -211,7 +210,7 @@ platforms = cyw30739 [submodule "cyw30739_sdk/target"] path = third_party/cyw30739_sdk/repos/CYW930739M2EVB-01 - url = https://github.com/Infineon/TARGET_CYW930739M2EVB-01.git + url = https://github.com/Infineon/OT-Matter-TARGET_CYW930739M2EVB-01.git platforms = cyw30739 [submodule "cyw30739_sdk/tools"] path = third_party/cyw30739_sdk/repos/btsdk-tools @@ -247,3 +246,8 @@ url = https://github.com/bouffalolab/bl_iot_sdk_matter.git branch = bl602_release platforms = bl602 +[submodule "third_party/nxp/libs/mbedtls/repo"] + path = third_party/nxp/libs/mbedtls/repo + url = https://github.com/NXPmicro/mbedtls.git + branch = tinycrypt-mbedtls-2.28 + platforms = k32w0 diff --git a/.restyled.yaml b/.restyled.yaml index 28003f28532fd4..937a8b4afa2a53 100644 --- a/.restyled.yaml +++ b/.restyled.yaml @@ -70,6 +70,8 @@ exclude: - "src/controller/python/chip/clusters/Objects.py" # generated file, no point to restyle - "src/controller/python/chip/clusters/CHIPClusters.py" # generated file, no point to restyle - "scripts/idl/tests/outputs/**/*" # Matches generated output 1:1 + - "examples/chef/sample_app_util/test_files/*.yaml" + - "examples/chef/zzz_generated/**/*" changed_paths: diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json index fbd94e8520286d..425b49fdf84ae3 100644 --- a/.vscode/c_cpp_properties.json +++ b/.vscode/c_cpp_properties.json @@ -82,6 +82,18 @@ "path": ["${workspaceFolder}/out/debug/"], "limitSymbolsToIncludedHeaders": true } + }, + { + "name": "Tizen examples debug (GN)", + "cStandard": "c11", + "cppStandard": "gnu++14", + "intelliSenseMode": "gcc-arm", + "compilerPath": "/opt/tizen-sdk/tools/arm-linux-gnueabi-gcc-9.2/bin/arm-linux-gnueabi-gcc", + "compileCommands": "${workspaceFolder}/out/debug/compile_commands.tizen_arm.json", + "browse": { + "path": ["${workspaceFolder}/out/debug/"], + "limitSymbolsToIncludedHeaders": true + } } ], "version": 4 diff --git a/.vscode/launch.json b/.vscode/launch.json index 33cc32c99b49c9..3439327d84e5a2 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -97,8 +97,8 @@ "request": "launch", "cwd": "${workspaceRoot}/examples/${input:mbedApp}/mbed", "executable": "./build-${input:mbedTarget}/${input:mbedDebugProfile}/chip-mbed-${input:mbedApp}-example.elf", - "armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/pigweed/bin/", // Pigweed environment bootstraping required - "openocdPath": "${env:OPENOCD_PATH/bin}", + "armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/packages/arm/bin/", // Pigweed environment bootstraping required + "serverpath": "${env:OPENOCD_PATH}/bin/openocd", "servertype": "openocd", "searchDir": [ "${workspaceRoot}/config/mbed/scripts", @@ -130,7 +130,7 @@ "request": "launch", "cwd": "${workspaceRoot}/examples/${input:mbedApp}/mbed", "executable": "./build-${input:mbedTarget}/${input:mbedDebugProfile}/chip-mbed-${input:mbedApp}-example.elf", - "armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/pigweed/bin/", // Pigweed environment bootstraping required + "armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/packages/arm/bin/", // Pigweed environment bootstraping required "servertype": "external", "gdbTarget": "host.docker.internal:3334", //port 3333 for the CM0+, 3334 for the CM4 "overrideLaunchCommands": [ @@ -157,8 +157,8 @@ "request": "launch", "cwd": "${workspaceRoot}/examples/${input:mbedApp}/mbed", "executable": "./build-${input:mbedTarget}/${input:mbedFlashProfile}/chip-mbed-${input:mbedApp}-example.elf", - "armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/pigweed/bin/", // Pigweed environment bootstraping required - "openocdPath": "${env:OPENOCD_PATH/bin}", + "armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/packages/arm/bin/", // Pigweed environment bootstraping required + "serverpath": "${env:OPENOCD_PATH}/bin/openocd", "servertype": "openocd", "searchDir": [ "${workspaceRoot}/config/mbed/scripts", @@ -182,7 +182,7 @@ "request": "launch", "cwd": "${workspaceRoot}/examples/${input:mbedApp}/mbed", "executable": "./build-${input:mbedTarget}/${input:mbedFlashProfile}/chip-mbed-${input:mbedApp}-example.elf", - "armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/pigweed/bin/", // Pigweed environment bootstraping required + "armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/packages/arm/bin/", // Pigweed environment bootstraping required "servertype": "external", "gdbTarget": "host.docker.internal:3334", //port 3333 for the CM0+, 3334 for the CM4 "overrideLaunchCommands": [ @@ -200,9 +200,9 @@ "request": "launch", "cwd": "${workspaceRoot}/src/test_driver/mbed/unit_tests", "executable": "./build-${input:mbedTarget}/${input:mbedDebugProfile}/chip-mbed-unit-tests.elf", - "armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/pigweed/bin/", // Pigweed environment bootstraping required + "armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/packages/arm/bin/", // Pigweed environment bootstraping required "servertype": "openocd", - "openocdPath": "${env:OPENOCD_PATH/bin}", + "serverpath": "${env:OPENOCD_PATH}/bin/openocd", "searchDir": [ "${workspaceRoot}/config/mbed/scripts", "${env:OPENOCD_PATH}/scripts" @@ -233,7 +233,7 @@ "request": "launch", "cwd": "${workspaceRoot}/src/test_driver/mbed/unit_tests", "executable": "./build-${input:mbedTarget}/${input:mbedDebugProfile}/chip-mbed-unit-tests.elf", - "armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/pigweed/bin/", // Pigweed environment bootstraping required + "armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/packages/arm/bin/", // Pigweed environment bootstraping required "servertype": "external", "gdbTarget": "host.docker.internal:3334", //port 3333 for the CM0+, 3334 for the CM4 "overrideLaunchCommands": [ @@ -260,9 +260,9 @@ "request": "launch", "cwd": "${workspaceRoot}/src/test_driver/mbed//unit_tests", "executable": "./build-${input:mbedTarget}/${input:mbedFlashProfile}/chip-mbed-unit-tests.elf", - "armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/pigweed/bin/", // Pigweed environment bootstraping required + "armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/packages/arm/bin/", // Pigweed environment bootstraping required "servertype": "openocd", - "openocdPath": "${env:OPENOCD_PATH/bin}", + "serverpath": "${env:OPENOCD_PATH}/bin/openocd", "searchDir": [ "${workspaceRoot}/config/mbed/scripts", "${env:OPENOCD_PATH/scripts}" @@ -285,7 +285,7 @@ "request": "launch", "cwd": "${workspaceRoot}/src/test_driver/mbed/unit_tests", "executable": "./build-${input:mbedTarget}/${input:mbedFlashProfile}/chip-mbed-unit-tests.elf", - "armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/pigweed/bin/", // Pigweed environment bootstraping required + "armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/packages/arm/bin/", // Pigweed environment bootstraping required "servertype": "external", "gdbTarget": "host.docker.internal:3334", //port 3333 for the CM0+, 3334 for the CM4 "overrideLaunchCommands": [ @@ -303,9 +303,9 @@ "request": "launch", "cwd": "${workspaceRoot}/examples/platform/mbed/bootloader", "executable": "./build-${input:mbedTarget}/${input:mbedDebugProfile}/chip-mbed-bootloader.elf", - "armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/pigweed/bin/", // Pigweed environment bootstraping required + "armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/packages/arm/bin/", // Pigweed environment bootstraping required "servertype": "openocd", - "openocdPath": "${env:OPENOCD_PATH/bin}", + "serverpath": "${env:OPENOCD_PATH}/bin/openocd", "searchDir": [ "${workspaceRoot}/config/mbed/scripts", "${env:OPENOCD_PATH}/scripts" @@ -336,7 +336,7 @@ "request": "launch", "cwd": "${workspaceRoot}/examples/platform/mbed/bootloader", "executable": "./build-${input:mbedTarget}/${input:mbedDebugProfile}/chip-mbed-bootloader.elf", - "armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/pigweed/bin/", // Pigweed environment bootstraping required + "armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/packages/arm/bin/", // Pigweed environment bootstraping required "servertype": "external", "gdbTarget": "host.docker.internal:3334", //port 3333 for the CM0+, 3334 for the CM4 "overrideLaunchCommands": [ diff --git a/BUILD.gn b/BUILD.gn index d978b56af01a31..f8aa0cc17bd289 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -135,6 +135,10 @@ if (current_toolchain != "${dir_pw_toolchain}/default:default") { "${chip_root}/src/setup_payload/java", ] } + + if (build_tv_casting_common_a) { + deps += [ "${chip_root}/examples/tv-casting-app/tv-casting-common:tvCastingCommon" ] + } } if (chip_build_tools) { @@ -162,6 +166,7 @@ if (current_toolchain != "${dir_pw_toolchain}/default:default") { if (chip_link_tests) { deps = [ "//:fake_platform_tests", + "//examples/chef:chef.tests", "//scripts/build:build_examples.tests", "//scripts/idl:idl.tests", "//src:tests_run", @@ -178,6 +183,9 @@ if (current_toolchain != "${dir_pw_toolchain}/default:default") { # Enable building for Android. enable_android_builds = false + # Enable building for Tizen. + enable_tizen_builds = false + # Set this to true to enable TI builds by default. enable_ti_simplelink_builds = false @@ -215,7 +223,7 @@ if (current_toolchain != "${dir_pw_toolchain}/default:default") { enable_standalone_chip_tool_build = enable_default_builds && host_os != "win" - # Build the chip-tool-darwin example. + # Build the darwin-framework-tool example. enable_standalone_chip_tool_darwin_build = enable_default_builds && host_os == "mac" @@ -284,6 +292,8 @@ if (current_toolchain != "${dir_pw_toolchain}/default:default") { enable_bl602_lighting_app_build = enable_bl602_builds enable_fake_tests = enable_default_builds && host_os == "linux" + + enable_tizen_lighting_app = enable_tizen_builds } if (enable_host_clang_build) { @@ -345,8 +355,9 @@ if (current_toolchain != "${dir_pw_toolchain}/default:default") { if (enable_standalone_chip_tool_darwin_build) { group("standalone_chip_tool_darwin") { - deps = - [ "${chip_root}/examples/chip-tool-darwin(${standalone_toolchain})" ] + deps = [ + "${chip_root}/examples/darwin-framework-tool(${standalone_toolchain})", + ] } } @@ -467,6 +478,12 @@ if (current_toolchain != "${dir_pw_toolchain}/default:default") { } } + if (enable_tizen_lighting_app) { + group("tizen_lighting_app") { + deps = [ "${chip_root}/examples/lighting-app/tizen/(${chip_root}/build/toolchain/tizen:tizen_arm)" ] + } + } + group("default") { deps = [] if (enable_host_clang_build) { @@ -486,6 +503,9 @@ if (current_toolchain != "${dir_pw_toolchain}/default:default") { ":android_x86", ] } + if (enable_tizen_builds) { + deps += [ ":tizen_lighting_app" ] + } if (enable_standalone_chip_cert_build) { deps += [ ":standalone_chip_cert" ] } diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn index 0a58245f688ef9..b2e1787a7939d3 100644 --- a/build/config/BUILDCONFIG.gn +++ b/build/config/BUILDCONFIG.gn @@ -110,7 +110,8 @@ if (_chip_defaults.custom_toolchain != "") { "${_build_overrides.build_root}/toolchain/tizen:tizen_${target_cpu}" } else if (target_os == "webos") { if (target_cpu == "arm" || target_cpu == "arm64") { - _default_toolchain = "//build/toolchain/webos" + _default_toolchain = + "${_build_overrides.build_root}/toolchain/webos" } else { assert(false, "Unsupported target_cpu: ${current_cpu}. Shall be arm for webOS") diff --git a/build/config/sysroot.gni b/build/config/sysroot.gni index bf2669f0a469b0..8c5d105c76e4cd 100644 --- a/build/config/sysroot.gni +++ b/build/config/sysroot.gni @@ -26,6 +26,8 @@ if (sysroot_platform_config == "") { sysroot_platform_config = "${build_root}/config/webos/webos_sysroot.gni" } else if (is_clang && current_cpu == "arm" && current_os == "freertos") { sysroot_platform_config = "${build_root}/toolchain/arm/arm_sysroot.gni" + } else if (current_os == "tizen") { + sysroot_platform_config = "${build_root}/config/tizen/tizen_sysroot.gni" } } diff --git a/build/config/tizen/config.gni b/build/config/tizen/config.gni index eb3be358bbf6a7..585a889ccfbffd 100644 --- a/build/config/tizen/config.gni +++ b/build/config/tizen/config.gni @@ -13,6 +13,9 @@ # limitations under the License. declare_args() { + # Location of The Tizen sysroot + tizen_sdk_sysroot = "" + # Location of the Tizen SDK. tizen_sdk_root = "" } diff --git a/build/config/tizen/tizen_sysroot.gni b/build/config/tizen/tizen_sysroot.gni new file mode 100644 index 00000000000000..ab2943869d061d --- /dev/null +++ b/build/config/tizen/tizen_sysroot.gni @@ -0,0 +1,18 @@ +# Copyright (c) 2022 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. + +import("//build_overrides/build.gni") +import("${build_root}/config/tizen/config.gni") + +sysroot = tizen_sdk_sysroot diff --git a/build_overrides/mbedtls.gni b/build_overrides/mbedtls.gni index 04f377ed99eabc..ac8a6f16203880 100644 --- a/build_overrides/mbedtls.gni +++ b/build_overrides/mbedtls.gni @@ -15,4 +15,5 @@ declare_args() { # Root directory for mbedTLS. mbedtls_root = "//third_party/mbedtls" + mbedtls_repo = "//third_party/mbedtls" } diff --git a/src/app/tests/suites/certification/Test_TC_BDX_2_5.yaml b/build_overrides/zephyr.gni similarity index 50% rename from src/app/tests/suites/certification/Test_TC_BDX_2_5.yaml rename to build_overrides/zephyr.gni index 03a8eec9fe4241..9ad63cf8d53544 100644 --- a/src/app/tests/suites/certification/Test_TC_BDX_2_5.yaml +++ b/build_overrides/zephyr.gni @@ -11,22 +11,5 @@ # 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: 28.2.5. [TC-BDX-2.5] Asynchronous file receiving - -config: - nodeId: 0x12344321 - cluster: "Basic" - endpoint: 0 - -tests: - - label: - "DUT sends a ReceiveInit message to TH + TH sends a ReceiveAccept - message back to DUT + TH sends a Block message to DUT" - disabled: true - - - label: - "TH sends a BlockEOF message to DUT + DUT sends a BlockAckEOF message - back to TH" - disabled: true +# place holder diff --git a/config/ameba/chip.cmake b/config/ameba/chip.cmake index 015f5bf72f2a9f..40dc11bd659711 100644 --- a/config/ameba/chip.cmake +++ b/config/ameba/chip.cmake @@ -114,6 +114,7 @@ string(APPEND CHIP_GN_ARGS "pw_assert_BACKEND = \"//third_party/connectedhomeip/ string(APPEND CHIP_GN_ARGS "pw_sys_io_BACKEND = \"//third_party/connectedhomeip/examples/platform/ameba/pw_sys_io:pw_sys_io_ameba\"\n") string(APPEND CHIP_GN_ARGS "dir_pw_third_party_nanopb = \"//third_party/connectedhomeip/third_party/nanopb/repo\"\n") string(APPEND CHIP_GN_ARGS "pw_build_LINK_DEPS = [\"//third_party/connectedhomeip/third_party/pigweed/repo/pw_assert:impl\", \"//third_party/connectedhomeip/third_party/pigweed/repo/pw_log:impl\"]\n") +string(APPEND CHIP_GN_ARGS "pw_rpc_CONFIG = \"//third_party/connectedhomeip/third_party/pigweed/repo/pw_rpc:disable_global_mutex\"") endif (matter_enable_rpc) # Build ota-requestor diff --git a/config/esp32/components/chip/CMakeLists.txt b/config/esp32/components/chip/CMakeLists.txt index bcd7af4b0add58..4f8c60e4af25d4 100644 --- a/config/esp32/components/chip/CMakeLists.txt +++ b/config/esp32/components/chip/CMakeLists.txt @@ -90,6 +90,7 @@ if(CONFIG_ENABLE_PW_RPC) chip_gn_arg_append("pw_trace_BACKEND" "\"//third_party/connectedhomeip/third_party/pigweed/repo/pw_trace_tokenized\"") chip_gn_arg_append("dir_pw_third_party_nanopb" "\"//third_party/connectedhomeip/third_party/nanopb/repo\"") chip_gn_arg_append("pw_build_LINK_DEPS" "[\"\$dir_pw_assert:impl\", \"\$dir_pw_log:impl\"]") + chip_gn_arg_append("pw_rpc_CONFIG" "\"//third_party/connectedhomeip/third_party/pigweed/repo/pw_rpc:disable_global_mutex\"") endif() if (CONFIG_BUILD_CHIP_TESTS) @@ -136,6 +137,24 @@ if (CONFIG_CHIP_ENABLE_EXTERNAL_PLATFORM) chip_gn_arg_append("chip_platform_target" "\"//${CONFIG_CHIP_EXTERNAL_PLATFORM_DIR}\"") endif() +# Set up CHIP project configuration file + +if (CONFIG_CHIP_PROJECT_CONFIG) + get_filename_component(CHIP_PROJECT_CONFIG + ${CONFIG_CHIP_PROJECT_CONFIG} + REALPATH + BASE_DIR ${CMAKE_SOURCE_DIR} + ) + set(CHIP_PROJECT_CONFIG "<${CHIP_PROJECT_CONFIG}>") +else() + set(CHIP_PROJECT_CONFIG "") +endif() + +if (CHIP_PROJECT_CONFIG) + chip_gn_arg_append("chip_project_config_include" "\"${CHIP_PROJECT_CONFIG}\"") + chip_gn_arg_append("chip_system_project_config_include" "\"${CHIP_PROJECT_CONFIG}\"") +endif() + if (CONFIG_ENABLE_ESP32_FACTORY_DATA_PROVIDER) chip_gn_arg_append("chip_use_transitional_commissionable_data_provider" "false") endif() diff --git a/config/mbed/CMakeLists.txt b/config/mbed/CMakeLists.txt index 0a54cc303e86b0..dbf7e91ba13708 100644 --- a/config/mbed/CMakeLists.txt +++ b/config/mbed/CMakeLists.txt @@ -375,6 +375,10 @@ target_sources(${APP_TARGET} PRIVATE ${MBED_COMMON}/util/PigweedLogger.cpp ) +list(APPEND CHIP_DEFINES + PW_RPC_USE_GLOBAL_MUTEX=0 +) + target_include_directories(${APP_TARGET} PRIVATE ${PIGWEED_ROOT}/pw_sys_io/public ${PIGWEED_ROOT}/pw_assert/public diff --git a/config/mbed/chip-gn/lib/pw_rpc/pw_rpc.gni b/config/mbed/chip-gn/lib/pw_rpc/pw_rpc.gni index 79a34c17f17346..f35741414952c5 100644 --- a/config/mbed/chip-gn/lib/pw_rpc/pw_rpc.gni +++ b/config/mbed/chip-gn/lib/pw_rpc/pw_rpc.gni @@ -28,5 +28,6 @@ pw_build_LINK_DEPS = [ ] dir_pw_third_party_nanopb = "${chip_root}/third_party/nanopb/repo" +pw_rpc_CONFIG = "$dir_pw_rpc:disable_global_mutex" chip_enable_pw_rpc = true diff --git a/config/nrfconnect/.nrfconnect-recommended-revision b/config/nrfconnect/.nrfconnect-recommended-revision index 64f70a191193e6..bf3768f23580c0 100644 --- a/config/nrfconnect/.nrfconnect-recommended-revision +++ b/config/nrfconnect/.nrfconnect-recommended-revision @@ -1 +1 @@ -5ea8f7fa91d7315fcc6cd9eb3aa74f9640d0abac +fd5905aa6b04febd99d00dba6c482ac25eb15222 diff --git a/config/nrfconnect/chip-module/CMakeLists.txt b/config/nrfconnect/chip-module/CMakeLists.txt index d75f3eddd3d9f3..ac4a8f7e561aa1 100644 --- a/config/nrfconnect/chip-module/CMakeLists.txt +++ b/config/nrfconnect/chip-module/CMakeLists.txt @@ -30,7 +30,7 @@ if (CONFIG_CHIP) include(ExternalProject) include(../../zephyr/ota-image.cmake) include(../../zephyr/zephyr-util.cmake) -include(ota-content-header.cmake) +include(generate_factory_data.cmake) # ============================================================================== # Declare configuration variables and define constants @@ -100,7 +100,7 @@ endif() if (CONFIG_POSIX_API) list(APPEND CHIP_CFLAGS -D_SYS__PTHREADTYPES_H_ - -isystem${ZEPHYR_BASE}/include/posix + -isystem${ZEPHYR_BASE}/include/zephyr/posix ) endif() @@ -342,32 +342,21 @@ add_dependencies(chip chip-gn) # ============================================================================== if (CONFIG_CHIP_OTA_IMAGE_BUILD) - if (CONFIG_CHIP_OTA_IMAGE_INCLUDE_MCUBOOT) - list(APPEND CHIP_IMAGE_TYPES "mcuboot") - list(APPEND CHIP_IMAGE_PATHS "${APPLICATION_BINARY_DIR}/mcuboot/zephyr/zephyr.bin") - endif() - - list(APPEND CHIP_IMAGE_TYPES "app_mcuboot") - list(APPEND CHIP_IMAGE_PATHS "${PROJECT_BINARY_DIR}/app_update.bin") - - if (CONFIG_NRF53_UPGRADE_NETWORK_CORE) - list(APPEND CHIP_IMAGE_TYPES "net_mcuboot") - list(APPEND CHIP_IMAGE_PATHS "${PROJECT_BINARY_DIR}/net_core_app_update.bin") - endif() - - chip_ota_content_header(chip-ota-content-header - FILE_TYPES ${CHIP_IMAGE_TYPES} - FILE_PATHS ${CHIP_IMAGE_PATHS} - OUTPUT_FILE ${PROJECT_BINARY_DIR}/${CONFIG_CHIP_OTA_IMAGE_FILE_NAME}.content - ) chip_ota_image(chip-ota-image - INPUT_FILES ${PROJECT_BINARY_DIR}/${CONFIG_CHIP_OTA_IMAGE_FILE_NAME}.content ${CHIP_IMAGE_PATHS} + INPUT_FILES ${PROJECT_BINARY_DIR}/dfu_multi_image.bin OUTPUT_FILE ${PROJECT_BINARY_DIR}/${CONFIG_CHIP_OTA_IMAGE_FILE_NAME} ) - add_dependencies(chip-ota-content-header mcuboot_sign_target) - add_dependencies(chip-ota-image chip-ota-content-header) + add_dependencies(chip-ota-image dfu_multi_image_pkg) +endif() + +# ============================================================================== +# Define 'factory_data' target for generating a factory data partition +# ============================================================================== + +if(CONFIG_CHIP_FACTORY_DATA_BUILD) + nrfconnect_generate_factory_data() endif() endif() # CONFIG_CHIP diff --git a/config/nrfconnect/chip-module/Kconfig b/config/nrfconnect/chip-module/Kconfig index de12cbb5e6ad67..54dbe2cd8ef750 100644 --- a/config/nrfconnect/chip-module/Kconfig +++ b/config/nrfconnect/chip-module/Kconfig @@ -31,6 +31,7 @@ config CHIP_NFC_COMMISSIONING # See config/zephyr/Kconfig for full definition config CHIP_OTA_REQUESTOR bool + imply DFU_MULTI_IMAGE imply DFU_TARGET imply BOOTLOADER_MCUBOOT imply IMG_MANAGER @@ -60,6 +61,7 @@ config CHIP_OTA_IMAGE_BUILD bool default y if CHIP_OTA_REQUESTOR depends on SIGN_IMAGES + select DFU_MULTI_IMAGE_PACKAGE_BUILD config CHIP_EXAMPLE_DEVICE_INFO_PROVIDER bool "Include default device information provider build" @@ -70,3 +72,155 @@ config CHIP_DEBUG_SYMBOLS default y help Build the application with debug symbols. + +config CHIP_FACTORY_DATA_BUILD + bool "Enable Factory Data build" + default n + help + Enables generation of factory data during the building. + It requires factory_data partition to exist in the partition manager + configuration file pm_static.yml. + As a result a new output file factory_data.hex will be created. + +if CHIP_FACTORY_DATA_BUILD + +# Factory data definitions +config CHIP_MERGE_FACTORY_DATA_WITH_FIRMWARE + bool "Enable merging generated factory data with the build target .hex file" + default y + help + Enables merging generated factory data with the build target merged.hex file. + As a result, a new output file merged.hex will consist of all partitions including + factory data. + +# Use default certificates without generating or providing them +config CHIP_FACTORY_DATA_USE_DEFAULTS_CERTS + bool "Use default certificates located in Matter repository" + default y + help + Pre-generated certificates can be used for development purpose. + This config includes default pre-generated certificates + which are located in credentials/development/attestation/ directory + instead of generating new ones. + If this config is set to `n` new certificates will be generated. + +# Configs for SPAKE2 generation +config CHIP_FACTORY_DATA_GENERATE_SPAKE2_VERIFIER + bool "Enable spake2 verifier generation" + help + Enables generation of spake2 verifier according to + given iteration counter, salt and passcode. + To generate Spake2 verifier a spake2p executable must be available + from system variables environment. + +config CHIP_DEVICE_GENERATE_ROTATING_DEVICE_UID + bool "Enable generation of a new Rotating device id unique id" + default y + help + Enables generation of a new Rotating device id unique id. + +endif #CHIP_FACTORY_DATA_BUILD + +# Factory data parameters +config CHIP_DEVICE_SERIAL_NUMBER + string "Serial number of device" + default "11223344556677889900" + help + A serial number parameter defines an unique number of manufactured device. + Maximum length of serial number is 32 characters. + +config CHIP_DEVICE_VENDOR_NAME + string "Human-readable vendor name" + default "Nordic Semiconductor ASA" + help + A human-readable vendor name which provides a simple string + containing identification of device's vendor for the Content APP. + This information should be included in the Matter Basic Cluster. + +config CHIP_DEVICE_PRODUCT_NAME + string "Human-readable product name" + default "not-specified" + help + A human-readable product name which provides a simple string + containing identification of the product for the Content APP. + +config CHIP_DEVICE_MANUFACTURING_DATE + string "Manufacturing date in ISO 8601" + default "2022-01-01" + help + A manufacturing date specifies the date that the device was manufactured. + The format used for providing a manufacturing date is ISO 8601 e.g. YYYY-MM-DD. + +config CHIP_DEVICE_HARDWARE_VERSION + int "Integer representation of hardware version" + default 0 + help + A hardware version number specifies the version number + of the hardware of the device. The meaning of its value, + and the versioning scheme, are vendor defined. + +config CHIP_DEVICE_HARDWARE_VERSION_STRING + string "user-friendly string representation of hardware version" + default "prerelease" + help + A hardware version string parameter specifies the version + of the hardware of the device as a more user-friendly value + than that represented by the hardware version integer value. + The meaning of its value, and the versioning scheme, are + vendor defined. + +config CHIP_DEVICE_DISCRIMINATOR + hex "Device pairing discriminator" + default 0xF00 + help + A 12-bit value matching the field of the same name in + the setup code. Discriminator is used during + a discovery process. + +config CHIP_DEVICE_SPAKE2_PASSCODE + int "Spake2+ passcode" + default 20202021 + range 1 99999998 + help + A pairing passcode is a 27-bit unsigned integer which serves + as a proof of possession during commissioning. + Its value shall be restricted to the values 0x0000001 to 0x5F5E0FE + (00000001 to 99999998 in decimal), excluding the invalid Passcode values: + - 00000000, 11111111, 22222222, 33333333, 44444444, 55555555, + 66666666, 77777777, 88888888, 99999999, 12345678, 87654321. + +config CHIP_DEVICE_SPAKE2_IT + int "Spake2+ iteration count" + default 1000 + help + The Spake2 iteration count is associated with the ephemeral + PAKE passcode verifier to be used for the commissioning. + The iteration count is used as a crypto parameter to process + spake2 verifier. + +config CHIP_DEVICE_SPAKE2_SALT + string "Spake2+ salt in string format" + default "U1BBS0UyUCBLZXkgU2FsdA==" + help + The spake2 salt is random data that is used as an additional input + to a one-way function that “hashes” data. + A new salt should be randomly generated for each password. + The minimum length of spake2 salt is 16 Bytes. + The maximum length of spake2 salt is 32 Bytes. + +config CHIP_DEVICE_SPAKE2_TEST_VERIFIER + string "Testing spake2+ verifier" + default "uWFwqugDNGiEck/po7KHwwMwwqZgN10XuyBajPGuyzUEV/iree4lOrao5GuwnlQ65CJzbeUB49s31EH+NEkg0JVI5MGCQGMMT/SRPFNRODm3wH/MBiehuFc6FJ/NH6Rmzw==" + help + The spake 2 verifier generated using default SPAKE2 salt, + iteration count and passcode. This value can be used for development + or testing purposes. + Generated with: + spake2p gen-verifier -o - -i 1000 -s "U1BBS0UyUCBLZXkgU2FsdA==" -p 20202021 + +config CHIP_DEVICE_ROTATING_DEVICE_UID + string "A rotating device id unique id" + default "91a9c12a7c80700a31ddcfa7fce63e44" + help + A device rotating id unique id which will be generated if + this config is not set in prj.conf file. diff --git a/config/nrfconnect/chip-module/Kconfig.defaults b/config/nrfconnect/chip-module/Kconfig.defaults index 73216d9dbfc9c2..4ffa2034b9b22a 100644 --- a/config/nrfconnect/chip-module/Kconfig.defaults +++ b/config/nrfconnect/chip-module/Kconfig.defaults @@ -190,6 +190,15 @@ config CHIP_EXTENDED_DISCOVERY bool default y +config NVS_LOOKUP_CACHE + bool + default y + +# Increase the default RX stack size +config IEEE802154_NRF5_RX_STACK_SIZE + int + default 1024 + # Enable OpenThread config NET_L2_OPENTHREAD @@ -202,9 +211,9 @@ choice OPENTHREAD_SECURITY default OPENTHREAD_NRF_SECURITY_CHOICE endchoice -config CC3XX_BACKEND - bool - default n +config PSA_CRYPTO_DRIVER_CC3XX + bool + default n config OBERON_BACKEND bool @@ -347,6 +356,10 @@ endif # SOC_SERIES_NRF52X if SOC_SERIES_NRF53X +config UPDATEABLE_IMAGE_NUMBER + int + default 2 + # Generate random numbers using Xoroshiro algorithm instead of direct calls # to the cryptocell library to workaround firmware hangs. choice RNG_GENERATOR_CHOICE diff --git a/config/nrfconnect/chip-module/Kconfig.features b/config/nrfconnect/chip-module/Kconfig.features index 07c0cc5c4759aa..b63983a11e9e3f 100644 --- a/config/nrfconnect/chip-module/Kconfig.features +++ b/config/nrfconnect/chip-module/Kconfig.features @@ -93,10 +93,6 @@ config SYSTEM_WORKQUEUE_STACK_SIZE if SOC_SERIES_NRF53X -config UPDATEABLE_IMAGE_NUMBER - int - default 2 - # FLASH nop device is enabled to prevent bus faults when mcumgr tries to access # simulated partition with network core image data. config FLASH_NOP_DEVICE diff --git a/config/nrfconnect/chip-module/generate_factory_data.cmake b/config/nrfconnect/chip-module/generate_factory_data.cmake new file mode 100644 index 00000000000000..1928b3e4ff1441 --- /dev/null +++ b/config/nrfconnect/chip-module/generate_factory_data.cmake @@ -0,0 +1,206 @@ +# +# Copyright (c) 2022 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. +# + + +# Create a JSON file based on factory data given via kConfigs. +# +# This function creates a list of arguments for external script and then run it to write a JSON file. +# Created JSON file can be checked using JSON SCHEMA file if it is provided. +# +# This script can be manipulated using following kConfigs: +# - To merge generated factory data with final zephyr.hex file set kConfig CONFIG_CHIP_MERGE_FACTORY_DATA_WITH_FIRMWARE=y +# - To use default certification paths set CONFIG_CHIP_FACTORY_DATA_USE_DEFAULTS_CERTS_PATH=y +# +# During generation process a some file will be created in zephyr's build directory: +# - .args a file containing arguments for nrfconnect_generate_partition.py script. +# - .json a file containing all factory data written in JSON format. +# +# [Args]: +# factory_data_target - a name for target to generate factory_data. +# script_path - a path to script that makes a JSON factory data file from given arguments. +# schema_path - a path to JSON schema file which can be used to verify generated factory data JSON file. +# This argument is optional, if you don't want to verify the JSON file put it empty "". +# output_path - a path to output directory, where created JSON file will be stored. +function(nrfconnect_create_factory_data_json factory_data_target script_path schema_path output_path) + +# set script args for future purpose +set(script_args) +## generate all script arguments +string(APPEND script_args "--sn \"${CONFIG_CHIP_DEVICE_SERIAL_NUMBER}\"\n") +string(APPEND script_args "--date \"${CONFIG_CHIP_DEVICE_MANUFACTURING_DATE}\"\n") +string(APPEND script_args "--vendor_id ${CONFIG_CHIP_DEVICE_VENDOR_ID}\n") +string(APPEND script_args "--product_id ${CONFIG_CHIP_DEVICE_PRODUCT_ID}\n") +string(APPEND script_args "--vendor_name \"${CONFIG_CHIP_DEVICE_VENDOR_NAME}\"\n") +string(APPEND script_args "--product_name \"${CONFIG_CHIP_DEVICE_PRODUCT_NAME}\"\n") +string(APPEND script_args "--hw_ver ${CONFIG_CHIP_DEVICE_HARDWARE_VERSION}\n") +string(APPEND script_args "--hw_ver_str \"${CONFIG_CHIP_DEVICE_HARDWARE_VERSION_STRING}\"\n") + +# check if Rotating Device Id Unique Id should be generated +if(NOT CONFIG_CHIP_DEVICE_GENERATE_ROTATING_DEVICE_UID) + if(NOT DEFINED CONFIG_CHIP_DEVICE_ROTATING_DEVICE_UID) + message(FATAL_ERROR "CHIP_DEVICE_ROTATING_DEVICE_UID was not provided. To generate it use CONFIG_CHIP_DEVICE_GENERATE_ROTATING_DEVICE_UID=y") + else() + string(APPEND script_args "--rd_uid \"${CONFIG_CHIP_DEVICE_ROTATING_DEVICE_UID}\"\n") + endif() +endif() + +# for development purpose user can use default certs instead of generating or providing them +if(CONFIG_CHIP_FACTORY_DATA_USE_DEFAULTS_CERTS) + # convert decimal PID to its hexadecimal representation to find out certification files in repository + math(EXPR LOCAL_PID "${CONFIG_CHIP_DEVICE_PRODUCT_ID}" OUTPUT_FORMAT HEXADECIMAL) + string(SUBSTRING ${LOCAL_PID} 2 -1 raw_pid) + # all certs are located in ${CHIP_ROOT}/credentials/development/attestation + # it can be used during development without need to generate new certifications + string(APPEND script_args "--dac_cert \"${CHIP_ROOT}/credentials/development/attestation/Matter-Development-DAC-${raw_pid}-Cert.der\"\n") + string(APPEND script_args "--dac_key \"${CHIP_ROOT}/credentials/development/attestation/Matter-Development-DAC-${raw_pid}-Key.der\"\n") + string(APPEND script_args "--pai_cert \"${CHIP_ROOT}/credentials/development/attestation/Matter-Development-PAI-noPID-Cert.der\"\n") +else() + # try to generate a new DAC and PAI certs and DAC key + # request script to generate a new certificates + # by adding an argument to script_args + find_program(chip-cert NAMES chip-cert) + if(NOT chip-cert) + message(FATAL_ERROR "Could not find chip_cert_path executable in PATH") + endif() + string(APPEND script_args "--chip_cert_path ${chip-cert}\n") +endif() + +# add Password-Authenticated Key Exchange parameters +string(APPEND script_args "--spake2_it \"${CONFIG_CHIP_DEVICE_SPAKE2_IT}\"\n") +string(APPEND script_args "--spake2_salt \"${CONFIG_CHIP_DEVICE_SPAKE2_SALT}\"\n") +string(APPEND script_args "--discriminator ${CONFIG_CHIP_DEVICE_DISCRIMINATOR}\n") +string(APPEND script_args "--passcode ${CONFIG_CHIP_DEVICE_SPAKE2_PASSCODE}\n") + +# check if spake2 verifier should be generated using script +if(CONFIG_CHIP_FACTORY_DATA_GENERATE_SPAKE2_VERIFIER) + # request script to generate a new spake2_verifier + # by adding an argument to script_args + find_program(spake_exe NAMES spake2p) + if(NOT spake_exe) + message(FATAL_ERROR "Could not find spake2p executable in PATH") + endif() + string(APPEND script_args "--spake2p_path ${spake_exe}\n") +else() + # Spake2 verifier should be provided using kConfig + string(APPEND script_args "--spake2_verifier \"${CONFIG_CHIP_DEVICE_SPAKE2_TEST_VERIFIER}\"\n") +endif() + +# Set output JSON file and path to SCHEMA file to validate generated factory data +string(APPEND script_args "-o \"${output_path}/${factory_data_target}.json\"\n") +string(APPEND script_args "-s \"${schema_path}\"\n") + +# execute first script to create a JSON file +separate_arguments(separated_script_args NATIVE_COMMAND ${script_args}) +add_custom_target(${factory_data_target} ALL + COMMAND ${Python3_EXECUTABLE} ${FACTORY_DATA_SCRIPT_PATH} ${separated_script_args} + COMMENT "Generating new Factory Data..." + ) + +endfunction() + + +# Create a .hex file with factory data in CBOR format. +# +# This function creates a .hex and .cbor files from given JSON factory data file. +# +# +# During generation process some files will be created in zephyr's build directory: +# - _cbor.args a file containing arguments for nrfconnect_generate_partition.py script. +# - .hex a file containing all factory data in CBOR format. +# - .bin a binary file containing all raw factory data in CBOR format. +# - .cbor a file containing all factory data in CBOR format. +# +# [Args]: +# factory_data_target - a name for target to generate factory_data. +# script_path - a path to script that makes a factory data .hex file from given arguments. +# output_path - a path to output directory, where created JSON file will be stored. +# output_hex - an output variable to store a .hex file. This variable can be used to merge with firmware .hex file. +function(nrfconnect_create_factory_data_hex_file factory_data_target script_path output_path output_hex) + +# Pass the argument list via file +set(cbor_script_args "-i ${output_path}/${factory_data_target}.json\n") +string(APPEND cbor_script_args "-o ${output_path}/${factory_data_target}\n") +# get partition address and offset from partition manager during compilation +string(APPEND cbor_script_args "--offset $\n") +string(APPEND cbor_script_args "--size $\n") +string(APPEND cbor_script_args "-r\n") + +# execute second script to create a hex file containing factory data in cbor format +separate_arguments(separated_cbor_script_args NATIVE_COMMAND ${cbor_script_args}) +set(factory_data_hex ${output_path}/${factory_data_target}.hex) + +# return output hex to parent scope +set(${output_hex} ${factory_data_hex} PARENT_SCOPE) +add_custom_command(OUTPUT ${factory_data_hex} + COMMAND ${Python3_EXECUTABLE} ${script_path} ${separated_cbor_script_args} + COMMENT "Generating factory data HEX file..." + DEPENDS ${factory_data_target} + ) + +endfunction() + +# Generate factory data partition using given args +# +# +# During generation process a some file will be created in zephyr's build directory: +# - merged.hex a file containing firmware and factory data merged to single file +# - factory_data.hex a file containing only a factory data partition including proper offset +# +function(nrfconnect_generate_factory_data) + +find_package(Python REQUIRED) + +# CHIP_ROOT must be provided as a reference set all localization of scripts +if(NOT CHIP_ROOT) +message(FATAL_ERROR "CHIP_ROOT variable is not set, please add it to CMakeLists.txt file") +endif() + +# Localize all scripts needed to generate factory data partition +set(FACTORY_DATA_SCRIPT_PATH ${CHIP_ROOT}/scripts/tools/nrfconnect/generate_nrfconnect_chip_factory_data.py) +set(GENERATE_CBOR_SCRIPT_PATH ${CHIP_ROOT}/scripts/tools/nrfconnect/nrfconnect_generate_partition.py) +SET(MERGE_HEX_SCRIPT_PATH ${CHIP_ROOT}/config/nrfconnect/chip-module/merge_factory_data.py) +set(FACTORY_DATA_SCHEMA_PATH ${CHIP_ROOT}/scripts/tools/nrfconnect/nrfconnect_factory_data.schema) +set(OUTPUT_FILE_PATH ${APPLICATION_BINARY_DIR}/zephyr) + +# create a JSON file with all factory data +nrfconnect_create_factory_data_json(factory_data + ${FACTORY_DATA_SCRIPT_PATH} + ${FACTORY_DATA_SCHEMA_PATH} + ${OUTPUT_FILE_PATH}) + +# create a .hex file with factory data in CBOR format based on the JSON file created previously +nrfconnect_create_factory_data_hex_file(factory_data + ${GENERATE_CBOR_SCRIPT_PATH} + ${OUTPUT_FILE_PATH} + factory_data_hex) + +if(CONFIG_CHIP_MERGE_FACTORY_DATA_WITH_FIRMWARE) + # set custom target for merging factory_data hex file + add_custom_target(factory_data_merge + DEPENDS ${factory_data_hex} + ) + set_property(GLOBAL PROPERTY + factory_data_PM_HEX_FILE + ${factory_data_hex} + ) + set_property(GLOBAL PROPERTY + ${parent_slot}_PM_TARGET + ${target_name}_merge + ) +endif() + + +endfunction() diff --git a/config/nrfconnect/chip-module/make_ota_content_header.py b/config/nrfconnect/chip-module/make_ota_content_header.py deleted file mode 100755 index 1aa437a6b96f30..00000000000000 --- a/config/nrfconnect/chip-module/make_ota_content_header.py +++ /dev/null @@ -1,122 +0,0 @@ -#!/usr/bin/env python3 - -# -# Copyright (c) 2022 Project CHIP Authors -# All rights reserved. -# -# 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. -# - -""" -Utility for creating a Matter OTA content header that describes a list of files -included in a Matter OTA image. The header format is specific to the nRF Connect -platform. - -Usage example: - -./make_ota_content_header.py \ - --file mcuboot mcuboot/zephyr/zephyr.bin \ - --file app_mcuboot zephyr/app_update.bin \ - out.header -""" - -import argparse -import os -import struct -import sys -from enum import IntEnum - -sys.path.insert(0, os.path.join(os.path.dirname( - __file__), '../../../src/controller/python')) -from chip.tlv import TLVWriter, uint # noqa: E402 - - -# Context-specific tags describing members of the top-level header TLV structure -class HeaderTag(IntEnum): - FILE_INFO_LIST = 0, - - -# Context-specific tags describing members of the file info TLV structure -class FileInfoTag(IntEnum): - FILE_ID = 0, - FILE_SIZE = 1, - - -# File identifiers for all the supported file types -FILE_IDS = dict( - mcuboot=0, - app_mcuboot=1, - net_mcuboot=2, -) - - -def generate_header_tlv(file_infos: list): - """ - Generate TLV structure describing OTA image contents: - - Header ::= - [0] FileInfoList: [ - [0]: - [0] FileId: - [1] FileSize: - [1]: - [0] FileId: - [1] FileSize: - ... - ] - """ - - writer = TLVWriter() - writer.put(None, { - HeaderTag.FILE_INFO_LIST: [{ - FileInfoTag.FILE_ID: uint(file_id), - FileInfoTag.FILE_SIZE: uint(file_size), - } for file_id, file_size in file_infos] - }) - - return writer.encoding - - -def generate_header(file_infos: list, output_file: str): - """ - Generate OTA image content header and save it to file - """ - - header_tlv = generate_header_tlv(file_infos) - header = struct.pack(':-std=gnu++17> + -D_SYS__PTHREADTYPES_H_) +target_link_libraries(app PRIVATE gnu17) diff --git a/config/zephyr/app/flashing.cmake b/config/zephyr/app/flashing.cmake new file mode 100644 index 00000000000000..b70e166ff28cfe --- /dev/null +++ b/config/zephyr/app/flashing.cmake @@ -0,0 +1,55 @@ +# +# 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. +# + +# Adds rules to generate a flashing wrapper script for an nrfconnect firmware. + +set(FLASHBUNDLE_FLASHER_COMMON ${CMAKE_PROJECT_NAME}/firmware_utils.py) +set(FLASHBUNDLE_FLASHER_PLATFORM ${CMAKE_PROJECT_NAME}/nrfconnect_firmware_utils.py) +set(FLASHBUNDLE_FLASHER_WRAPPER ${CMAKE_PROJECT_NAME}/${CMAKE_PROJECT_NAME}.flash.py) +set(FLASHBUNDLE_FIRMWARE ${CMAKE_PROJECT_NAME}/${CMAKE_PROJECT_NAME}.hex) +set(FLASHBUNDLE_FILES ${FLASHBUNDLE_FLASHER_COMMON} ${FLASHBUNDLE_FLASHER_PLATFORM} ${FLASHBUNDLE_FLASHER_WRAPPER} ${FLASHBUNDLE_FIRMWARE}) + +get_filename_component(FLASHBUNDLE_FIRMWARE_BASENAME ${FLASHBUNDLE_FIRMWARE} NAME) + +list(JOIN FLASHBUNDLE_FILES "\n" FLASHBUNDLE_MANIFEST) + +file(GENERATE + OUTPUT ${CMAKE_PROJECT_NAME}.flashbundle.txt + CONTENT "${FLASHBUNDLE_MANIFEST}\n" + ) + +add_custom_command(OUTPUT "${FLASHBUNDLE_FLASHER_COMMON}" + COMMAND ${CMAKE_COMMAND} ARGS -E copy "${PROJECT_SOURCE_DIR}/third_party/connectedhomeip/scripts/flashing/firmware_utils.py" "${FLASHBUNDLE_FLASHER_COMMON}" + VERBATIM) + +add_custom_command(OUTPUT "${FLASHBUNDLE_FLASHER_PLATFORM}" + COMMAND ${CMAKE_COMMAND} ARGS -E copy "${PROJECT_SOURCE_DIR}/third_party/connectedhomeip/scripts/flashing/nrfconnect_firmware_utils.py" "${FLASHBUNDLE_FLASHER_PLATFORM}" + VERBATIM) + +add_custom_command(OUTPUT "${FLASHBUNDLE_FIRMWARE}" + DEPENDS zephyr/${KERNEL_HEX_NAME} + COMMAND ${CMAKE_COMMAND} ARGS -DFLASHBUNDLE_FIRMWARE=${FLASHBUNDLE_FIRMWARE} -DKERNEL_HEX_NAME=${KERNEL_HEX_NAME} -P "${CHIP_ROOT}/config/nrfconnect/app/copy-flashbundle-firmware.cmake" + VERBATIM) + +add_custom_command(OUTPUT "${CMAKE_PROJECT_NAME}/${CMAKE_PROJECT_NAME}.flash.py" + COMMAND ${python} + "${PROJECT_SOURCE_DIR}/third_party/connectedhomeip/scripts/flashing/gen_flashing_script.py" nrfconnect + --output "${FLASHBUNDLE_FLASHER_WRAPPER}" + --application "${FLASHBUNDLE_FIRMWARE_BASENAME}" + COMMENT "To flash ${FLASHBUNDLE_FIRMWARE_BASENAME} run ${FLASHBUNDLE_FLASHER_WRAPPER}" + VERBATIM) + +add_custom_target(flashing_script DEPENDS ${FLASHBUNDLE_FILES}) diff --git a/config/zephyr/app/overlay-usb_support.conf b/config/zephyr/app/overlay-usb_support.conf new file mode 100644 index 00000000000000..1b4a2d56fe8490 --- /dev/null +++ b/config/zephyr/app/overlay-usb_support.conf @@ -0,0 +1,24 @@ +# +# Copyright (c) 2020 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. +# + +CONFIG_GPIO=y + +CONFIG_USB=y +CONFIG_USB_DEVICE_STACK=y +CONFIG_USB_UART_CONSOLE=y + +CONFIG_UART_INTERRUPT_DRIVEN=y +CONFIG_UART_LINE_CTRL=y diff --git a/config/zephyr/chip-gn/.gn b/config/zephyr/chip-gn/.gn new file mode 100644 index 00000000000000..2024e95fed6079 --- /dev/null +++ b/config/zephyr/chip-gn/.gn @@ -0,0 +1,29 @@ +# Copyright (c) 2020 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. + +import("//build_overrides/build.gni") +import("//build_overrides/chip.gni") + +# The location of the build configuration file. +buildconfig = "${build_root}/config/BUILDCONFIG.gn" + +# CHIP uses angle bracket includes. +check_system_includes = true + +default_args = { + target_cpu = "" + target_os = "zephyr" + + import("${chip_root}/config/zephyr/chip-gn/args.gni") +} diff --git a/config/zephyr/chip-gn/BUILD.gn b/config/zephyr/chip-gn/BUILD.gn new file mode 100644 index 00000000000000..85288992c84812 --- /dev/null +++ b/config/zephyr/chip-gn/BUILD.gn @@ -0,0 +1,40 @@ +# Copyright (c) 2020 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. + +import("//build_overrides/build.gni") +import("//build_overrides/chip.gni") + +import("${chip_root}/build/chip/tests.gni") + +assert(current_os == "zephyr") + +declare_args() { + chip_build_example_providers = false +} + +group("zephyr") { + deps = [ "${chip_root}/src/lib" ] + + if (chip_build_tests) { + deps += [ "${chip_root}/src:tests" ] + } + + if (chip_build_example_providers) { + deps += [ "${chip_root}/examples/providers:device_info_provider" ] + } +} + +group("default") { + deps = [ ":zephyr" ] +} diff --git a/config/zephyr/chip-gn/args.gni b/config/zephyr/chip-gn/args.gni new file mode 100644 index 00000000000000..e5d5aedf5bc17d --- /dev/null +++ b/config/zephyr/chip-gn/args.gni @@ -0,0 +1,27 @@ +# Copyright (c) 2020 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. + +import("//build_overrides/chip.gni") + +chip_device_platform = "zephyr" + +chip_build_tests = false + +chip_project_config_include = "" +chip_system_project_config_include = "" +chip_ble_project_config_include = "" + +custom_toolchain = "${chip_root}/config/zephyr/chip-gn/toolchain:zephyr" + +pw_build_PIP_CONSTRAINTS = [ "${chip_root}/scripts/constraints.txt" ] diff --git a/config/zephyr/chip-gn/toolchain/BUILD.gn b/config/zephyr/chip-gn/toolchain/BUILD.gn new file mode 100644 index 00000000000000..28fbe6d8e939b0 --- /dev/null +++ b/config/zephyr/chip-gn/toolchain/BUILD.gn @@ -0,0 +1,33 @@ +# Copyright (c) 2020 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. + +import("//build/toolchain/gcc_toolchain.gni") +import("//build_overrides/build.gni") + +declare_args() { + zephyr_ar = "" + zephyr_cc = "" + zephyr_cxx = "" +} + +gcc_toolchain("zephyr") { + ar = zephyr_ar + cc = zephyr_cc + cxx = zephyr_cxx + + toolchain_args = { + current_os = "zephyr" + is_clang = false + } +} diff --git a/config/zephyr/chip-module/CMakeLists.txt b/config/zephyr/chip-module/CMakeLists.txt new file mode 100644 index 00000000000000..ba25a316f57a2e --- /dev/null +++ b/config/zephyr/chip-module/CMakeLists.txt @@ -0,0 +1,257 @@ +# +# Copyright (c) 2022 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. +# + +# +# @file +# CMake sub-project defining 'chip' target which represents CHIP library +# Since CHIP doesn't provide native CMake support, ExternalProject +# module is used to build the required artifacts with GN meta-build +# system. It is assumed that find_package(Zephyr) has been called before +# including this file. +# + +if (CONFIG_CHIP) + +include(ExternalProject) +include(../zephyr-util.cmake) + +# ============================================================================== +# Declare configuration variables and define constants +# ============================================================================== + +# C/C++ compiler flags passed to CHIP build system +list(APPEND CHIP_CFLAGS) + +# C compiler flags passed to CHIP build system +list(APPEND CHIP_CFLAGS_C) + +# C++ compiler flags passed to CHIP build system +list(APPEND CHIP_CFLAGS_CC) + +# CHIP libraries that the application should be linked with +list(APPEND CHIP_LIBRARIES) + +# GN meta-build system arguments in the form of 'key1 = value1\nkey2 = value2...' string +string(APPEND CHIP_GN_ARGS) + +# C/C++ compiler flags which should not be forwarded to CHIP +# build system (e.g. because CHIP configures them on its own) +set(CHIP_CFLAG_EXCLUDES + "-fno-asynchronous-unwind-tables" + "-fno-common" + "-fno-defer-pop" + "-fno-reorder-functions" + "-ffunction-sections" + "-fdata-sections" + "-g*" + "-O*" + "-W*" +) + +# ============================================================================== +# Helper macros +# ============================================================================== + +macro(chip_gn_arg_import FILE) + string(APPEND CHIP_GN_ARGS "import(\"${FILE}\")\n") +endmacro() + +macro(chip_gn_arg_string ARG STRING) + string(APPEND CHIP_GN_ARGS "${ARG} = \"${STRING}\"\n") +endmacro() + +macro(chip_gn_arg_bool ARG BOOLEAN) + if (${BOOLEAN}) + string(APPEND CHIP_GN_ARGS "${ARG} = true\n") + else() + string(APPEND CHIP_GN_ARGS "${ARG} = false\n") + endif() +endmacro() + +macro(chip_gn_arg_cflags ARG CFLAGS) + set(CFLAG_EXCLUDES "[") + foreach(cflag ${CHIP_CFLAG_EXCLUDES}) + string(APPEND CFLAG_EXCLUDES "\"${cflag}\", ") + endforeach() + string(APPEND CFLAG_EXCLUDES "]") + string(APPEND CHIP_GN_ARGS "${ARG} = filter_exclude(string_split(\"${CFLAGS}\"), ${CFLAG_EXCLUDES})\n") +endmacro() + +# ============================================================================== +# Prepare CHIP configuration based on the project Kconfig configuration +# ============================================================================== + +if (NOT CHIP_ROOT) + get_filename_component(CHIP_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../../.. REALPATH) +endif() + +set(GN_ROOT_TARGET ${CHIP_ROOT}/config/zephyr/chip-gn) + +if (CONFIG_POSIX_API) + list(APPEND CHIP_CFLAGS + -D_SYS__PTHREADTYPES_H_ + -isystem${ZEPHYR_BASE}/include/zephyr/posix + ) +endif() + +list(APPEND CHIP_CFLAGS -isystem${ZEPHYR_BASE}/../modules/crypto/mbedtls/include/) + +zephyr_get_compile_flags(CHIP_CFLAGS_C C) +zephyr_get_compile_flags(CHIP_CFLAGS_CC CXX) +zephyr_get_gnu_cpp_standard(CHIP_CFLAGS_CC) + +convert_list_of_flags_to_string_of_flags(CHIP_CFLAGS CHIP_CFLAGS) +convert_list_of_flags_to_string_of_flags(CHIP_CFLAGS_C CHIP_CFLAGS_C) +convert_list_of_flags_to_string_of_flags(CHIP_CFLAGS_CC CHIP_CFLAGS_CC) + +# Prepare CHIP libraries that the application should be linked with + +if (NOT CHIP_LIBRARIES) + set(CHIP_LIBRARIES -lCHIP) +endif() + +if (CONFIG_CHIP_LIB_SHELL) + list(APPEND CHIP_LIBRARIES -lCHIPShell) +endif() + +if (CONFIG_CHIP_PW_RPC) + list(APPEND CHIP_LIBRARIES -lPwRpc) +endif() + + +# Set up CHIP project configuration file + +if (CONFIG_CHIP_PROJECT_CONFIG) + get_filename_component(CHIP_PROJECT_CONFIG + ${CONFIG_CHIP_PROJECT_CONFIG} + REALPATH + BASE_DIR ${CMAKE_SOURCE_DIR} + ) + set(CHIP_PROJECT_CONFIG "<${CHIP_PROJECT_CONFIG}>") +else() + set(CHIP_PROJECT_CONFIG "") +endif() + +# Set up custom OpenThread configuration + +if (CONFIG_CHIP_OPENTHREAD_CONFIG) + get_filename_component(CHIP_OPENTHREAD_CONFIG + ${CONFIG_CHIP_OPENTHREAD_CONFIG} + REALPATH + BASE_DIR ${CMAKE_SOURCE_DIR} + ) + zephyr_set_openthread_config(${CHIP_OPENTHREAD_CONFIG}) +endif() + +# Find required programs + +find_program(GN_EXECUTABLE gn) +if (${GN_EXECUTABLE} STREQUAL GN_EXECUTABLE-NOTFOUND) + message(FATAL_ERROR "The 'gn' command was not found. Make sure you have GN installed.") +else() + # Parse the 'gn --version' output to find the installed version. + set(MIN_GN_VERSION 1000) + execute_process( + COMMAND + ${GN_EXECUTABLE} --version + OUTPUT_VARIABLE gn_version_output + ERROR_VARIABLE gn_error_output + RESULT_VARIABLE gn_status + ) + + if(${gn_status} EQUAL 0) + if(gn_version_output VERSION_LESS ${MIN_GN_VERSION}) + message(FATAL_ERROR "Found unsuitable version of 'gn'. Required is at least ${MIN_GN_VERSION}") + endif() + else() + message(FATAL_ERROR "Could NOT find working gn: Found gn (${GN_EXECUTABLE}), but failed to load with:\n ${gn_error_output}") + endif() +endif() + +find_package(Python3 REQUIRED) + +# ============================================================================== +# Generate configuration for CHIP GN build system +# ============================================================================== +chip_gn_arg_cflags("target_cflags" ${CHIP_CFLAGS}) +chip_gn_arg_cflags("target_cflags_c" ${CHIP_CFLAGS_C}) +chip_gn_arg_cflags("target_cflags_cc" ${CHIP_CFLAGS_CC}) +chip_gn_arg_string("zephyr_ar" ${CMAKE_AR}) +chip_gn_arg_string("zephyr_cc" ${CMAKE_C_COMPILER}) +chip_gn_arg_string("zephyr_cxx" ${CMAKE_CXX_COMPILER}) +chip_gn_arg_string("chip_project_config_include" "${CHIP_PROJECT_CONFIG}") +chip_gn_arg_string("chip_system_project_config_include" "${CHIP_PROJECT_CONFIG}") +chip_gn_arg_bool ("is_debug" CONFIG_DEBUG) +chip_gn_arg_bool ("chip_enable_openthread" CONFIG_NET_L2_OPENTHREAD) +chip_gn_arg_bool ("chip_openthread_ftd" CONFIG_OPENTHREAD_FTD) +chip_gn_arg_bool ("chip_inet_config_enable_ipv4" CONFIG_NET_IPV4) +chip_gn_arg_bool ("chip_build_tests" CONFIG_CHIP_BUILD_TESTS) +chip_gn_arg_bool ("chip_inet_config_enable_tcp_endpoint" CONFIG_CHIP_BUILD_TESTS) +chip_gn_arg_bool ("chip_build_libshell" CONFIG_CHIP_LIB_SHELL) + +if (CONFIG_CHIP_ENABLE_DNSSD_SRP) + chip_gn_arg_string("chip_mdns" "platform") +endif() + +file(GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/args.gn CONTENT ${CHIP_GN_ARGS}) + +# ============================================================================== +# Define 'chip-gn' target that builds CHIP library(ies) with GN build system +# ============================================================================== + +ExternalProject_Add( + chip-gn + PREFIX ${CMAKE_CURRENT_BINARY_DIR} + SOURCE_DIR ${CHIP_ROOT} + BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR} + CONFIGURE_COMMAND ${GN_EXECUTABLE} + --root=${CHIP_ROOT} + --root-target=${GN_ROOT_TARGET} + --dotfile=${GN_ROOT_TARGET}/.gn + --script-executable=${Python3_EXECUTABLE} + gen --check --fail-on-unused-args ${CMAKE_CURRENT_BINARY_DIR} + BUILD_COMMAND ninja + INSTALL_COMMAND "" + BUILD_BYPRODUCTS ${CHIP_LIBRARIES} + BUILD_ALWAYS TRUE + USES_TERMINAL_CONFIGURE TRUE + USES_TERMINAL_BUILD TRUE +) +add_dependencies(chip-gn kernel) + +# ============================================================================== +# Define 'chip' target that exposes CHIP headers & libraries to the application +# ============================================================================== + +zephyr_interface_library_named(chip) +target_compile_definitions(chip INTERFACE CHIP_HAVE_CONFIG_H) +target_include_directories(chip INTERFACE + ${CHIP_ROOT}/src + ${CHIP_ROOT}/src/include + ${CHIP_ROOT}/src/lib + ${CHIP_ROOT}/third_party/nlassert/repo/include + ${CMAKE_CURRENT_BINARY_DIR}/gen/include +) +target_link_directories(chip INTERFACE ${CMAKE_CURRENT_BINARY_DIR}/lib) + +if (CONFIG_CHIP_LIB_SHELL) + target_link_options(chip INTERFACE -Wl,--whole-archive -lCHIPShell -Wl,--no-whole-archive) +endif() + +target_link_libraries(chip INTERFACE -Wl,--start-group ${CHIP_LIBRARIES} -Wl,--end-group) +add_dependencies(chip chip-gn) + +endif() # CONFIG_CHIP \ No newline at end of file diff --git a/config/zephyr/chip-module/Kconfig b/config/zephyr/chip-module/Kconfig new file mode 100644 index 00000000000000..90c7d73f470b8f --- /dev/null +++ b/config/zephyr/chip-module/Kconfig @@ -0,0 +1,17 @@ +# +# 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. +# + +rsource "../Kconfig" \ No newline at end of file diff --git a/config/zephyr/chip-module/Kconfig.defaults b/config/zephyr/chip-module/Kconfig.defaults new file mode 100644 index 00000000000000..4cf4edea17a939 --- /dev/null +++ b/config/zephyr/chip-module/Kconfig.defaults @@ -0,0 +1,225 @@ +# +# Copyright (c) 2022 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. +# + +# The purpose of this file is to define new default values of settings used when building Matter samples. +# This file only changes defaults and thus all symbols here must be promptless +# and safeguarded so that they only are applied when building Matter. + +if CHIP + +config LOG + bool + default y + +if LOG + +choice LOG_MODE + default LOG_MODE_MINIMAL +endchoice + +choice MATTER_LOG_LEVEL_CHOICE + default MATTER_LOG_LEVEL_DBG +endchoice + +config LOG_DEFAULT_LEVEL + int + default 2 + +endif + +config PRINTK_SYNC + bool + default y + +config ASSERT + bool + default y + +config HW_STACK_PROTECTION + bool + default y + +config FPU + bool + default y + +config SHELL + bool + default y + +# Enable getting reboot reasons information +config HWINFO + bool + default y + +# Generic networking options +config NET_SOCKETS_POSIX_NAMES + bool + default n + +# Application stack size +config MAIN_STACK_SIZE + int + default 8192 + +config INIT_STACKS + bool + default y + +config CHIP_DEVICE_VENDOR_ID + int + default 65521 + +config CHIP_DEVICE_PRODUCT_ID + int + default 32768 + +# Disable certain parts of Zephyr IPv6 stack +config NET_IPV6_NBR_CACHE + bool + default n + +config NET_IPV6_MLD + bool + default y + +config NET_IF_MCAST_IPV6_ADDR_COUNT + int + default 14 + +# Network buffers +config NET_PKT_RX_COUNT + int + default 16 + +config NET_PKT_TX_COUNT + int + default 16 + +config NET_BUF_RX_COUNT + int + default 80 + +config NET_BUF_TX_COUNT + int + default 80 + +# Bluetooth Low Energy configs +config BT + bool + default y + +config BT_PERIPHERAL + bool + default y + +config BT_PERIPHERAL_PREF_MIN_INT + int + default 36 + +config BT_PERIPHERAL_PREF_MAX_INT + int + default 36 + +config BT_GAP_AUTO_UPDATE_CONN_PARAMS + bool + default y + +config BT_GATT_DYNAMIC_DB + bool + default y + +config BT_DEVICE_NAME_DYNAMIC + bool + default y + +config BT_DEVICE_NAME_MAX + int + default 15 + +config BT_MAX_CONN + int + default 1 + +config BT_L2CAP_TX_MTU + int + default 247 + +config BT_BUF_ACL_RX_SIZE + int + default 251 + +config BT_BUF_ACL_TX_SIZE + int + default 251 + +config BT_RX_STACK_SIZE + int + default 1200 + +config CHIP_OTA_REQUESTOR + bool + default y + +# Enable extended discovery +config CHIP_EXTENDED_DISCOVERY + bool + default y + +config NVS_LOOKUP_CACHE + bool + default y + +# Enable OpenThread +config NET_L2_OPENTHREAD + bool + default y + +# Enable mbedTLS +config MBEDTLS_ENABLE_HEAP + bool + default y + +config MBEDTLS_HEAP_SIZE + int + default 15360 + +# Disable not used shell modules +config SENSOR_SHELL + bool + default n + +config DEVICE_SHELL + bool + default n + +config DATE_SHELL + bool + default n + +config DEVMEM_SHELL + bool + default n + +config MCUBOOT_SHELL + bool + default n + +config FLASH_SHELL + bool + default n + +endif # CHIP diff --git a/config/zephyr/chip-module/Kconfig.features b/config/zephyr/chip-module/Kconfig.features new file mode 100644 index 00000000000000..bc800095dc7ce0 --- /dev/null +++ b/config/zephyr/chip-module/Kconfig.features @@ -0,0 +1,68 @@ +# +# Copyright (c) 2022 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. +# + +# The purpose of this file is to define Kconfig options enabling specific features. +# Feature options will define defaults for settings that are related to the specific feature. + +if CHIP + +# MCU Manager and SMP configuration +config MCUMGR + bool + default y + +config MCUMGR_CMD_IMG_MGMT + bool + default y + +config MCUMGR_CMD_OS_MGMT + bool + default y + +config MCUMGR_SMP_BT + bool + default y + +config MCUMGR_SMP_BT_AUTHEN + bool + default n + +config MCUMGR_BUF_COUNT + int + default 6 + +# Increase BT MTU and RX buffer for big size DFU messages +config BT_L2CAP_TX_MTU + int + default 498 + +config BT_BUF_ACL_RX_SIZE + int + default 502 + +# Increase MCUMGR_BUF_SIZE, as it must be big enough to fit MAX MTU + overhead and for single-image DFU default is 384 B +config MCUMGR_BUF_SIZE + int + default 1024 + +# Increase system workqueue size, as SMP is processed within it +config SYSTEM_WORKQUEUE_STACK_SIZE + int + default 2800 + +endif # CHIP_DFU_OVER_BT_SMP + +endif # CHIP diff --git a/config/zephyr/chip-module/Kconfig.mcuboot.defaults b/config/zephyr/chip-module/Kconfig.mcuboot.defaults new file mode 100644 index 00000000000000..4d5979330000f4 --- /dev/null +++ b/config/zephyr/chip-module/Kconfig.mcuboot.defaults @@ -0,0 +1,89 @@ +# +# Copyright (c) 2022 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. +# + +# The purpose of this file is to define new default values of settings used when building mcuboot child image for Matter samples. + +config MAIN_STACK_SIZE + int + default 10240 + +config BOOT_SWAP_SAVE_ENCTLV + bool + default n + +config BOOT_ENCRYPT_RSA + bool + default n + +config BOOT_ENCRYPT_EC256 + bool + default n + +config BOOT_ENCRYPT_X25519 + bool + default n + +config BOOT_BOOTSTRAP + bool + default n + +config PM + bool + default n + +config FLASH + bool + default y + +config FPROTECT + bool + default y + +config BOOT_MAX_IMG_SECTORS + int + default 256 + +config LOG + bool + default n + +config CONSOLE_HANDLER + bool + default n + +config BOOT_BANNER + bool + default n + +config TIMESLICING + bool + default n + +config RESET_ON_FATAL_ERROR + bool + default n + +config MULTITHREADING + bool + default n + +config TICKLESS_KERNEL + bool + default n + +config TIMEOUT_64BIT + bool + default n diff --git a/config/zephyr/chip-module/Kconfig.mcuboot.root b/config/zephyr/chip-module/Kconfig.mcuboot.root new file mode 100644 index 00000000000000..e8756636dfd66d --- /dev/null +++ b/config/zephyr/chip-module/Kconfig.mcuboot.root @@ -0,0 +1,21 @@ +# +# Copyright (c) 2022 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. +# + +# The purpose of this file is to create a wrapper Kconfig file that will be set as +# mcuboot_KCONFIG_ROOT and processed before any other Kconfig for mcuboot child image. + +rsource "Kconfig.mcuboot.defaults" +source "${ZEPHYR_BASE}/../bootloader/mcuboot/boot/zephyr/Kconfig" diff --git a/config/zephyr/chip-module/Kconfig.multiprotocol_rpmsg.defaults b/config/zephyr/chip-module/Kconfig.multiprotocol_rpmsg.defaults new file mode 100644 index 00000000000000..dea52bae56e2f4 --- /dev/null +++ b/config/zephyr/chip-module/Kconfig.multiprotocol_rpmsg.defaults @@ -0,0 +1,91 @@ +# +# Copyright (c) 2022 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. +# + +# The purpose of this file is to define new default values of settings used when building multiprotocol_rpmsg child image for Matter samples. + +config LOG + bool + default n + +config HEAP_MEM_POOL_SIZE + int + default 8192 + +config MAIN_STACK_SIZE + int + default 2048 + +config SYSTEM_WORKQUEUE_STACK_SIZE + int + default 2048 + +config BT + bool + default y + +config BT_HCI_RAW + bool + default y + +config BT_MAX_CONN + int + default 1 + +config BT_PERIPHERAL + bool + default y + +config BT_CENTRAL + bool + default n + +config BT_BUF_ACL_RX_SIZE + int + default 502 + +config BT_BUF_ACL_TX_SIZE + int + default 251 + +config BT_CTLR_DATA_LENGTH_MAX + int + default 251 + +config BT_CTLR_ASSERT_HANDLER + bool + default y + +config BT_HCI_RAW_RESERVE + int + default 1 + +# Workaround: Unable to allocate command buffer when using K_NO_WAIT since +# Host number of completed commands does not follow normal flow control. +config BT_BUF_CMD_TX_COUNT + int + default 10 + +config ASSERT + bool + default y + +config DEBUG_INFO + bool + default y + +config EXCEPTION_STACK_TRACE + bool + default y diff --git a/config/zephyr/chip-module/Kconfig.multiprotocol_rpmsg.root b/config/zephyr/chip-module/Kconfig.multiprotocol_rpmsg.root new file mode 100644 index 00000000000000..b34c82243585b4 --- /dev/null +++ b/config/zephyr/chip-module/Kconfig.multiprotocol_rpmsg.root @@ -0,0 +1,21 @@ +# +# Copyright (c) 2022 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. +# + +# The purpose of this file is to create a wrapper Kconfig file that will be set as +# multiprotocol_rpmsg_KCONFIG_ROOT and processed before any other Kconfig for multiprotocol_rpmsg child image. + +rsource "Kconfig.multiprotocol_rpmsg.defaults" +source "Kconfig.zephyr" diff --git a/config/zephyr/chip-module/make_gn_args.py b/config/zephyr/chip-module/make_gn_args.py new file mode 100644 index 00000000000000..f30cd459a6e7d4 --- /dev/null +++ b/config/zephyr/chip-module/make_gn_args.py @@ -0,0 +1,73 @@ +#!/usr/bin/env python3 + +# +# Copyright (c) 2021 Project CHIP Authors +# All rights reserved. +# +# 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. +# + +import argparse +import re +import sys + +GN_SPECIAL_CHARACTERS = r'(["$\\])' +GN_CFLAG_EXCLUDES = [ + '-fno-asynchronous-unwind-tables', + '-fno-common', + '-fno-defer-pop', + '-fno-reorder-functions', + '-ffunction-sections', + '-fdata-sections', + '-g*', + '-O*', + '-W*', +] + + +def escape_strings(gn_args): + return [[key, re.sub(GN_SPECIAL_CHARACTERS, r'\\\1', value)] for key, value in gn_args] + + +def write_gn_args(args): + if args.module: + sys.stdout.write('import("{}")\n'.format(args.module)) + + for key, value in args.arg: + sys.stdout.write('{} = {}\n'.format(key, value)) + + for key, value in args.arg_string: + sys.stdout.write('{} = "{}"\n'.format(key, value)) + + cflag_excludes = ', '.join(['"{}"'.format(exclude) + for exclude in GN_CFLAG_EXCLUDES]) + + for key, value in args.arg_cflags: + sys.stdout.write('{} = filter_exclude(string_split("{}"), [{}])\n'.format( + key, value, cflag_excludes)) + + +def main(): + parser = argparse.ArgumentParser(fromfile_prefix_chars='@') + parser.add_argument('--module', action='store') + parser.add_argument('--arg', action='append', nargs=2, default=[]) + parser.add_argument('--arg-string', action='append', nargs=2, default=[]) + parser.add_argument('--arg-cflags', action='append', nargs=2, default=[]) + args = parser.parse_args() + args.arg_string = escape_strings(args.arg_string) + args.arg_cflags = escape_strings(args.arg_cflags) + write_gn_args(args) + + +if __name__ == "__main__": + main() diff --git a/config/zephyr/chip-module/zephyr/module.yml b/config/zephyr/chip-module/zephyr/module.yml new file mode 100644 index 00000000000000..c09c9ea59e218a --- /dev/null +++ b/config/zephyr/chip-module/zephyr/module.yml @@ -0,0 +1,22 @@ +# +# 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. +# + +name: connectedhomeip +build: + cmake: . + kconfig: Kconfig + depends: + - openthread diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/cd.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/cd.der index 53e5cb4d67a06b..759c4d4831647a 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/cd.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/dac-Cert.der index 80c0de2e6a7887..f7d0520d6e3a74 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/dac-Cert.pem index 2e1d0da26077b5..ce041492264709 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5DCCAYqgAwIBAgIIDtJw5lBJd2IwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5DCCAYqgAwIBAgIIcLZzJNOZdCMwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -aHdm7IC/HRIUD7pJ9BGAbZrjoLqtusIoXHEvNtH337dSpJ33XmTurNOVM5djDaDQ -JCyTMdJRGPzyW9w3NSvWc6NgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFP5jEcg1BvluzHKajDenbFY3MWfeMB8GA1UdIwQYMBaAFI7a -GmEQADreTTAcq0PbQI4sd/oUMAoGCCqGSM49BAMCA0gAMEUCIEayqWJRPerLDxbG -9lbZPDYAHcMM0Y9uCnI7pk+ViPBrAiEA+UYtsuqD6UMmZuSqSuq5DbsSPlQRSOZc -An01lyXwtbk= +g0oUQN48dQ5KfjCnrEWLpmo1UcClyooPOviF9uWhe6cxm0vc8Rn+x73RoWqMZK/H +4P1/u5Ud+ailIB5d8vIB/qNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFGED+3fjAwmr7LTg80ALYOmP61vmMB8GA1UdIwQYMBaAFAP3 +VqzDRhOGPY6lPTdia6Ujj3k6MAoGCCqGSM49BAMCA0gAMEUCIQD8dFapxcs/R87W +Ly+wtW1HC64DNFGJYDu/WKfH2zUZ8gIgRO+864Qo9nq0873KSMJTiV2F7++evnLJ +FIZTmUWVfhI= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/dac-Key.der index 3e8026da7f527a..1ce770fdc4c4e3 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/dac-Key.pem index 784eeb332cc7ca..535c8d58d43078 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEICGpPB4uswCmHUOinM96MynNntO/Yr1Fw8T2Ep5siSncoAoGCCqGSM49 -AwEHoUQDQgAEaHdm7IC/HRIUD7pJ9BGAbZrjoLqtusIoXHEvNtH337dSpJ33XmTu -rNOVM5djDaDQJCyTMdJRGPzyW9w3NSvWcw== +MHcCAQEEIFkRqEET0o9sXIm7H1mDIguJ8pU1aBeFRnf9fOz+NCV9oAoGCCqGSM49 +AwEHoUQDQgAEg0oUQN48dQ5KfjCnrEWLpmo1UcClyooPOviF9uWhe6cxm0vc8Rn+ +x73RoWqMZK/H4P1/u5Ud+ailIB5d8vIB/g== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/pai-Cert.der index ebfe85e6b0f5e4..018f8de165c3fb 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/pai-Cert.pem index dc8066cb07163b..cd401e341c001a 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIG+yCQ0e7q7cwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB0zCCAXqgAwIBAgIIfm3eggiakfswCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQtjUKXG5iMToM+b9qyITgksM1W3FDF -7X44zEiDpmI3o4OS/wegQFjhG60UDzpElL0fpWWpKaIa5K7/F6vcTse/o2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUjtoa -YRAAOt5NMByrQ9tAjix3+hQwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIhAOJyYz0uUlxhw9hVExzpW84h3aolmWw93SAx -Udds3NxvAiAs7MlDu7sw4iNL51MgwBYRa3MyVV8BUyU6dS7E02iwnQ== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ5F4O2t1nOj7D+y56ZmTGRT2AQB16P +87gexd0Xog3M8bnsZ4mINkMpk3p+sN4MTm/0W71rrfuunZ4NKJKy9QFVo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUA/dW +rMNGE4Y9jqU9N2JrpSOPeTowHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDRwAwRAIgT4guacQ825+4Eht8Bopviywsn7bgTV8TkRdq +mWbqmlUCID/7eYXyV5NlttSvDE0CpSVUInH6RcTRAgGm7g7BLSYw -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/pai-Key.der index 50e04be6267d4f..dea4c2eadf0a64 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/pai-Key.pem index 33d5c3f0350d51..7e6ddfc73ee476 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIJeiWx406I1+OsL0h1xWOY93lhbyZLoZQTMhJyyZ5LhQoAoGCCqGSM49 -AwEHoUQDQgAELY1ClxuYjE6DPm/asiE4JLDNVtxQxe1+OMxIg6ZiN6ODkv8HoEBY -4RutFA86RJS9H6VlqSmiGuSu/xer3E7Hvw== +MHcCAQEEIFb8ZQbqebrWSCzBU2Yqw80UDKEtesajUfT9Pnzk20v4oAoGCCqGSM49 +AwEHoUQDQgAEOReDtrdZzo+w/suemZkxkU9gEAdej/O4HsXdF6INzPG57GeJiDZD +KZN6frDeDE5v9Fu9a637rp2eDSiSsvUBVQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/test_case_vector.json index 4cc3cde0bbe43f..6ec5be0b5e483b 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count0/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The authorized_paa_list contains one valid PAA which is authorized to sign the PAI.", "is_success_case": "false", - "dac_cert": "308201e43082018aa00302010202080ed270e650497762300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004687766ec80bf1d12140fba49f411806d9ae3a0baadbac2285c712f36d1f7dfb752a49df75e64eeacd3953397630da0d0242c9331d25118fcf25bdc37352bd673a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414fe6311c83506f96ecc729a8c37a76c56373167de301f0603551d230418301680148eda1a6110003ade4d301cab43db408e2c77fa14300a06082a8648ce3d0403020348003045022046b2a962513deacb0f16c6f656d93c36001dc30cd18f6e0a723ba64f9588f06b022100f9462db2ea83e9432666e4aa4aeab90dbb123e541148e65c027d359725f0b5b9", - "pai_cert": "308201d43082017aa00302010202081bec824347bbabb7300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200042d8d42971b988c4e833e6fdab2213824b0cd56dc50c5ed7e38cc4883a66237a38392ff07a04058e11bad140f3a4494bd1fa565a929a21ae4aeff17abdc4ec7bfa366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604148eda1a6110003ade4d301cab43db408e2c77fa14301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100e272633d2e525c61c3d855131ce95bce21ddaa25996c3ddd203151d76cdcdc6f02202cecc943bbbb30e2234be75320c016116b7332555f0153253a752ec4d368b09d", - "certification_declaration": "3081ec06092a864886f70d010702a081de3081db020103310d300b0609608648016503040201304806092a864886f70d010701a03b0439152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b1818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100eb42d6fe79c28db107bb6564695e2b53c990b500b97587eea57accb8034016a802202d2c21557fe74e1cba1444f14e844c79200d495fd86d28c1194966e7a0e0049b", - "dac_private_key": "21a93c1e2eb300a61d43a29ccf7a3329cd9ed3bf62bd45c3c4f6129e6c8929dc", - "dac_public_key": "04687766ec80bf1d12140fba49f411806d9ae3a0baadbac2285c712f36d1f7dfb752a49df75e64eeacd3953397630da0d0242c9331d25118fcf25bdc37352bd673" + "dac_cert": "308201e43082018aa003020102020870b67324d3997423300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004834a1440de3c750e4a7e30a7ac458ba66a3551c0a5ca8a0f3af885f6e5a17ba7319b4bdcf119fec7bdd1a16a8c64afc7e0fd7fbb951df9a8a5201e5df2f201fea360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604146103fb77e30309abecb4e0f3400b60e98feb5be6301f0603551d2304183016801403f756acc34613863d8ea53d37626ba5238f793a300a06082a8648ce3d0403020348003045022100fc7456a9c5cb3f47ced62f2fb0b56d470bae03345189603bbf58a7c7db3519f2022044efbceb8428f67ab4f3bdca48c253895d85efef9ebe72c91486539945957e12", + "pai_cert": "308201d33082017aa00302010202087e6dde82089a91fb300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004391783b6b759ce8fb0fecb9e999931914f6010075e8ff3b81ec5dd17a20dccf1b9ec678988364329937a7eb0de0c4e6ff45bbd6badfbae9d9e0d2892b2f50155a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041403f756acc34613863d8ea53d37626ba5238f793a301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402204f882e69c43cdb9fb8121b7c068a6f8b2c2c9fb6e04d5f1391176a9966ea9a5502203ffb7985f2579365b6d4af0c4d02a525542271fa45c4d10201a6ee0ec12d2630", + "certification_declaration": "3081ec06092a864886f70d010702a081de3081db020103310d300b0609608648016503040201304806092a864886f70d010701a03b0439152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b1818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100ac7febbe34655cf6e060681f2a5d178a6af556f0a00dca2e6a599cac1228149f02205c9f189911266e8d5d695c7499411dcf11249ff5e99483b293d8b44bd8cf8d62", + "dac_private_key": "5911a84113d28f6c5c89bb1f5983220b89f295356817854677fd7cecfe34257d", + "dac_public_key": "04834a1440de3c750e4a7e30a7ac458ba66a3551c0a5ca8a0f3af885f6e5a17ba7319b4bdcf119fec7bdd1a16a8c64afc7e0fd7fbb951df9a8a5201e5df2f201fe" } diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/cd.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/cd.der index db95fba7b30b2a..c3116108b0690b 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/cd.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/dac-Cert.der index 5858c42dafc644..6f03a61d232230 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/dac-Cert.pem index d40f0e615d6609..45e6467e389bd2 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5DCCAYqgAwIBAgIIK8pbdgy1VcgwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5DCCAYqgAwIBAgIIJkiozFuUL3IwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -Rj6Qncdf/SueNI8ZRxZNtM/NC1DZ9DzNIPHfSf+t0bNP6x4zUzOPeav//tyhqC/j -VXKkpgOAa0bVbR5kAKKE4qNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFAHOVpBnnpk6BcVnpCA+7NdUGsUhMB8GA1UdIwQYMBaAFCqm -Z1/xFOE20znvG+X0ec+jrdTKMAoGCCqGSM49BAMCA0gAMEUCIQCEREcr7Lzqn5ai -yT7WtN3tEgagSBgArTRJup7Spfri8QIgXsX5Y0+GP5E4aAIh6MAsvIn/SOVycnk0 -ZMOoZML5u1g= +mxN0vKmsU7qcBagXWnfg2sR/vqQuA+6ZaqBJrENuJiuDArPL0e33yF98NsMrtM/f ++Kz/MkHaqUUbCMe3tVuCL6NgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFL04t1SWDjUexyYsYRmD4EajIGFwMB8GA1UdIwQYMBaAFEMY +UYctih1brnzQCdqMXlEWJasMMAoGCCqGSM49BAMCA0gAMEUCIGaMB4BA4nmD97ao +DmZM2A0UqAzg2FBds/6vXgy3qnXQAiEAlqh3AxC4C056hmt6mxtWWLWEu0CX5lRo +MZE6F0le1O0= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/dac-Key.der index 681ebe04f81f2d..877687b8370ff4 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/dac-Key.pem index d6190f5d6b1f04..3bc99e8168c416 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIMhqmLcYCUX/E7Pfe7VlQyQKRmEPEJ7LJMldfCgaVCa8oAoGCCqGSM49 -AwEHoUQDQgAERj6Qncdf/SueNI8ZRxZNtM/NC1DZ9DzNIPHfSf+t0bNP6x4zUzOP -eav//tyhqC/jVXKkpgOAa0bVbR5kAKKE4g== +MHcCAQEEIAnMbelVOLMHAACTmra3m8jYftyJhnbH6LrMPykmwaX+oAoGCCqGSM49 +AwEHoUQDQgAEmxN0vKmsU7qcBagXWnfg2sR/vqQuA+6ZaqBJrENuJiuDArPL0e33 +yF98NsMrtM/f+Kz/MkHaqUUbCMe3tVuCLw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/pai-Cert.der index f4440d034740df..08b98b81e8bfca 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/pai-Cert.pem index e9a7d69d3a1425..75555dd9a97e10 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIG8kqUmYTRaYwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1TCCAXqgAwIBAgIIf1AvR3iy3tYwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASWb8VOfeZJ7r1OSB68PiboYRviYGy3 -RL4ePhIb/kcx3e4wFrLGPGHvv+ob52vjel6yABOfYVzhoL+mDikTcwL/o2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUKqZn -X/EU4TbTOe8b5fR5z6Ot1MowHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIhAIYxtlFKXyQ/qrFj4/e7eMoR7OzIld2u680v -6+fujQ3yAiBUC1rWdBazLJJdVTWTuxxXC+pgMQXmJTEM1Igi+odjWg== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAT3Jlc/ZGIrAMBtuRLOdBRSsyRTAwZN +fEEO37ddScPSdG9f6vfGwUJlIXdUmQQuLvN5wRKBDfx0P2BtX/y/q8vbo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUQxhR +hy2KHVuufNAJ2oxeURYlqwwwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSQAwRgIhAKm9CD49W72/2y39hPw4OzMSUQOddX07hmrM +waB8U5xPAiEAskxvUHLcjNQ1SKXLjWC+w+MtIDcYX4SBDOwFyCo33zw= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/pai-Key.der index 2c8c687848afc9..9542b60f4c1717 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/pai-Key.pem index 08f6851bb59da6..0cc03441af7ec6 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIOYZnNFrOFWzHr8wf7ZA2nTFvclJqCTAHQ2RmPuvw541oAoGCCqGSM49 -AwEHoUQDQgAElm/FTn3mSe69TkgevD4m6GEb4mBst0S+Hj4SG/5HMd3uMBayxjxh -77/qG+dr43pesgATn2Fc4aC/pg4pE3MC/w== +MHcCAQEEIGzo+oDDHVQ3GJHFdznjt8c1iNl5QeRHj3cslvxbHVG8oAoGCCqGSM49 +AwEHoUQDQgAE9yZXP2RiKwDAbbkSznQUUrMkUwMGTXxBDt+3XUnD0nRvX+r3xsFC +ZSF3VJkELi7zecESgQ38dD9gbV/8v6vL2w== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/test_case_vector.json index 2717d050c9f7b7..eb2f4511ee8308 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_invalid/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The authorized_paa_list contains ten PAAs none of which is a valid PAA authorized to sign the PAI.", "is_success_case": "false", - "dac_cert": "308201e43082018aa00302010202082bca5b760cb555c8300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004463e909dc75ffd2b9e348f1947164db4cfcd0b50d9f43ccd20f1df49ffadd1b34feb1e3353338f79abfffedca1a82fe35572a4a603806b46d56d1e6400a284e2a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041401ce5690679e993a05c567a4203eecd7541ac521301f0603551d230418301680142aa6675ff114e136d339ef1be5f479cfa3add4ca300a06082a8648ce3d04030203480030450221008444472becbcea9f96a2c93ed6b4dded1206a0481800ad3449ba9ed2a5fae2f102205ec5f9634f863f9138680221e8c02cbc89ff48e57272793464c3a864c2f9bb58", - "pai_cert": "308201d43082017aa00302010202081bc92a52661345a6300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004966fc54e7de649eebd4e481ebc3e26e8611be2606cb744be1e3e121bfe4731ddee3016b2c63c61efbfea1be76be37a5eb200139f615ce1a0bfa60e29137302ffa366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604142aa6675ff114e136d339ef1be5f479cfa3add4ca301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203480030450221008631b6514a5f243faab163e3f7bb78ca11ececc895ddaeebcd2febe7ee8d0df20220540b5ad67416b32c925d553593bb1c570bea603105e625310cd48822fa87635a", - "certification_declaration": "308201d106092a864886f70d010702a08201c2308201be020103310d300b06096086480165030402013082012806092a864886f70d010701a082011904820115152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe662010140bbbcabbc5016577aa8b44ffb90fcca140fe662010140bbb35bbc5016577aa8b44ffb90fcca140fe662010140bbb3544c5016577aa8b44ffb90fcca140fe662010140bbb35443a016577aa8b44ffb90fcca140fe662010140bbb35443afe6577aa8b44ffb90fcca140fe662010140bbb35443afe9a77aa8b44ffb90fcca140fe662010140bbb35443afe9a88aa8b44ffb90fcca140fe662010140bbb35443afe9a88558b44ffb90fcca140fe662010140bbb35443afe9a88557444ffb90fcca140fe66201818317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100e8d48d7040c6268533898c0fa4830938a3b4c21240cb6fa8109dbba8ad6a2a6b022100d7231e9fde1b472e481d412c799c303577912e0ada5c2ef192c74a49f6ed5c97", - "dac_private_key": "c86a98b7180945ff13b3df7bb56543240a46610f109ecb24c95d7c281a5426bc", - "dac_public_key": "04463e909dc75ffd2b9e348f1947164db4cfcd0b50d9f43ccd20f1df49ffadd1b34feb1e3353338f79abfffedca1a82fe35572a4a603806b46d56d1e6400a284e2" + "dac_cert": "308201e43082018aa00302010202082648a8cc5b942f72300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200049b1374bca9ac53ba9c05a8175a77e0dac47fbea42e03ee996aa049ac436e262b8302b3cbd1edf7c85f7c36c32bb4cfdff8acff3241daa9451b08c7b7b55b822fa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414bd38b754960e351ec7262c611983e046a3206170301f0603551d23041830168014431851872d8a1d5bae7cd009da8c5e511625ab0c300a06082a8648ce3d04030203480030450220668c078040e27983f7b6a80e664cd80d14a80ce0d8505db3feaf5e0cb7aa75d002210096a8770310b80b4e7a866b7a9b1b5658b584bb4097e6546831913a17495ed4ed", + "pai_cert": "308201d53082017aa00302010202087f502f4778b2ded6300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004f726573f64622b00c06db912ce741452b3245303064d7c410edfb75d49c3d2746f5feaf7c6c1426521775499042e2ef379c112810dfc743f606d5ffcbfabcbdba366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414431851872d8a1d5bae7cd009da8c5e511625ab0c301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100a9bd083e3d5bbdbfdb2dfd84fc383b331251039d757d3b866accc1a07c539c4f022100b24c6f5072dc8cd43548a5cb8d60bec3e32d2037185f84810cec05c82a37df3c", + "certification_declaration": "308201d106092a864886f70d010702a08201c2308201be020103310d300b06096086480165030402013082012806092a864886f70d010701a082011904820115152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe662010140bbbcabbc5016577aa8b44ffb90fcca140fe662010140bbb35bbc5016577aa8b44ffb90fcca140fe662010140bbb3544c5016577aa8b44ffb90fcca140fe662010140bbb35443a016577aa8b44ffb90fcca140fe662010140bbb35443afe6577aa8b44ffb90fcca140fe662010140bbb35443afe9a77aa8b44ffb90fcca140fe662010140bbb35443afe9a88aa8b44ffb90fcca140fe662010140bbb35443afe9a88558b44ffb90fcca140fe662010140bbb35443afe9a88557444ffb90fcca140fe66201818317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044830460221008ab7808cc2dce431af11785256dc9ed4cee7e365a6d8420ae344784da981fee60221008c2c865c2ca2a6e8304f3138ef7d88f9cf365552c64841113cc2fc33acf73664", + "dac_private_key": "09cc6de95538b3070000939ab6b79bc8d87edc898676c7e8bacc3f2926c1a5fe", + "dac_public_key": "049b1374bca9ac53ba9c05a8175a77e0dac47fbea42e03ee996aa049ac436e262b8302b3cbd1edf7c85f7c36c32bb4cfdff8acff3241daa9451b08c7b7b55b822f" } diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/cd.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/cd.der index 0cc501a035e017..b3be1d20332fbe 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/cd.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/dac-Cert.der index 3351b5bffcdf10..ecfe041e9ce2ef 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/dac-Cert.pem index a2e446179b9044..42ac79bfdc2e06 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5DCCAYqgAwIBAgIIf1mCoDxz4yYwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5DCCAYqgAwIBAgIIGwYoGLddI3gwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -iFaVmjbYp9C9gJtoElpmY5EQ0iBw9wEjvUP0J/COujvDi58sTvR5CPovGupplS9a -7T5XFbe4awTlG9CVKToyq6NgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFLKeOK0VZRfBgjT6Mh5EttzqTipzMB8GA1UdIwQYMBaAFHSX -aLhQ+/ogweNwQqzkjJxn6/SHMAoGCCqGSM49BAMCA0gAMEUCIQC6jKkrvF86l/xg -DTmrDAOPbSa6e6UcHEv3FIVY2U5blgIgLb9KpOg8bcgeq2G4URM55JdvxK8UTx5B -p89RCgo6NlY= +asounqdQYyOLLe653F55bFxU2Rs0CrhvxquBOIlSG1c6P15BMa98ZExcurwBAKiI +RKtLDas3kQla3ebE/ziGMKNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFNyVXVNU/7SrmL/1sBeuNCAFH1OuMB8GA1UdIwQYMBaAFDjx +ejkWk5X+4iCiapW4PkrgoXZUMAoGCCqGSM49BAMCA0gAMEUCIQCaHamOREc88xXS +ucpwomQoPku6amSfyst2ASlIWF9JpgIgPGOZrEfpnQAAkg9cAyQr0TuyrXx+SxNu +jwMUL7ZJf+s= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/dac-Key.der index 0461728b2b8258..80a7841b794306 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/dac-Key.pem index d251900f6489a4..7eacf5cae37525 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIE+dxvaEHTTPjeplvsFNzv7VHLu6Z4eng9enqZqoEfqJoAoGCCqGSM49 -AwEHoUQDQgAEiFaVmjbYp9C9gJtoElpmY5EQ0iBw9wEjvUP0J/COujvDi58sTvR5 -CPovGupplS9a7T5XFbe4awTlG9CVKToyqw== +MHcCAQEEIMZh9j4K3pmHFph6KBPoxvXP7h/tL6d2IdmtwAmc8eEmoAoGCCqGSM49 +AwEHoUQDQgAEasounqdQYyOLLe653F55bFxU2Rs0CrhvxquBOIlSG1c6P15BMa98 +ZExcurwBAKiIRKtLDas3kQla3ebE/ziGMA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/pai-Cert.der index 45093e62652cd0..7b029ad62996c8 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/pai-Cert.pem index 49e53ae204387b..3b7ef508178c0a 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB0zCCAXqgAwIBAgIIbZOk9e/o6C4wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1DCCAXqgAwIBAgIIdNV0SXUqsWUwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASE3aaZb3xnAzzOamqq2dYzgeYZLbI7 -zCIpN33TdTjxFnzNWgU2EjzT3bbzmf95R64vaZuw3ctblKtx6f9xCrT0o2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUdJdo -uFD7+iDB43BCrOSMnGfr9IcwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDRwAwRAIgLqiaveztkXqVy7NaJ1lXMY+iBu8gnLnQJEhE -dIyXT4ACIBNNP0+W8LUwjtSP6DneliN9DQLeAdnxhb6O60n0G4Ua +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASwumg2OCld9yDbJh2rgqFdc20k9Obo +82OHGpAhiXDPKbMMuXrTjORqSrBs+XvR25OICM0mL8x23c73eUPhbGsCo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUOPF6 +ORaTlf7iIKJqlbg+SuChdlQwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIhAOVfkkfMBn+SJ0M00z2eTgg+V9UyseH5rIN/ +cb9mACX4AiB6uPa2jrf8dYHrcoWl0z+RZfvRi+n7M/7uCxEPMThoXA== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/pai-Key.der index e57e30892702ba..33664539bc8228 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/pai-Key.pem index c845d07e07f218..6f196115947b52 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIGb30EUs4LkuZ0sdJBYhCWqd9Fzcuu+qj9NM5LD0yuIToAoGCCqGSM49 -AwEHoUQDQgAEhN2mmW98ZwM8zmpqqtnWM4HmGS2yO8wiKTd903U48RZ8zVoFNhI8 -092285n/eUeuL2mbsN3LW5Srcen/cQq09A== +MHcCAQEEIGMQaXPIOBP5k/xhKd8u+HFxtnlqWKDNQlL7TAGEmOSkoAoGCCqGSM49 +AwEHoUQDQgAEsLpoNjgpXfcg2yYdq4KhXXNtJPTm6PNjhxqQIYlwzymzDLl604zk +akqwbPl70duTiAjNJi/Mdt3O93lD4WxrAg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/test_case_vector.json index 9ea14e2c24d7d6..0aa6e96b81f893 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count10_valid/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The authorized_paa_list contains ten PAAs one of which is valid PAA authorized to sign the PAI.", "is_success_case": "true", - "dac_cert": "308201e43082018aa00302010202087f5982a03c73e326300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200048856959a36d8a7d0bd809b68125a66639110d22070f70123bd43f427f08eba3bc38b9f2c4ef47908fa2f1aea69952f5aed3e5715b7b86b04e51bd095293a32aba360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414b29e38ad156517c18234fa321e44b6dcea4e2a73301f0603551d23041830168014749768b850fbfa20c1e37042ace48c9c67ebf487300a06082a8648ce3d0403020348003045022100ba8ca92bbc5f3a97fc600d39ab0c038f6d26ba7ba51c1c4bf7148558d94e5b9602202dbf4aa4e83c6dc81eab61b8511339e4976fc4af144f1e41a7cf510a0a3a3656", - "pai_cert": "308201d33082017aa00302010202086d93a4f5efe8e82e300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000484dda6996f7c67033cce6a6aaad9d63381e6192db23bcc2229377dd37538f1167ccd5a0536123cd3ddb6f399ff7947ae2f699bb0ddcb5b94ab71e9ff710ab4f4a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414749768b850fbfa20c1e37042ace48c9c67ebf487301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402202ea89abdeced917a95cbb35a275957318fa206ef209cb9d0244844748c974f800220134d3f4f96f0b5308ed48fe839de96237d0d02de01d9f185be8eeb49f41b851a", - "certification_declaration": "308201cf06092a864886f70d010702a08201c0308201bc020103310d300b06096086480165030402013082012806092a864886f70d010701a082011904820115152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10146afd22771f511fecbf1641976710dcdc31a1717e1014f4bbcabbc5016577aa8b44ffb90fcca140fe66201014f4bb35bbc5016577aa8b44ffb90fcca140fe66201014f4bb3544c5016577aa8b44ffb90fcca140fe66201014f4bb35443a016577aa8b44ffb90fcca140fe66201014f4bb35443afe6577aa8b44ffb90fcca140fe66201014f4bb35443afe9a77aa8b44ffb90fcca140fe66201014f4bb35443afe9a88aa8b44ffb90fcca140fe66201014f4bb35443afe9a88558b44ffb90fcca140fe66201014f4bb35443afe9a88557444ffb90fcca140fe66201818317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044630440220036cfdbd9efc823d801a3f906cd764f4392cfd97200747a8f48f623ca8935312022055d32d8f87b3012575f1db54d3418c1807ef8dee5dcae0b261d4f3dfbaaebe8d", - "dac_private_key": "4f9dc6f6841d34cf8dea65bec14dcefed51cbbba6787a783d7a7a99aa811fa89", - "dac_public_key": "048856959a36d8a7d0bd809b68125a66639110d22070f70123bd43f427f08eba3bc38b9f2c4ef47908fa2f1aea69952f5aed3e5715b7b86b04e51bd095293a32ab" + "dac_cert": "308201e43082018aa00302010202081b062818b75d2378300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200046aca2e9ea75063238b2deeb9dc5e796c5c54d91b340ab86fc6ab813889521b573a3f5e4131af7c644c5cbabc0100a88844ab4b0dab3791095adde6c4ff388630a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414dc955d5354ffb4ab98bff5b017ae3420051f53ae301f0603551d2304183016801438f17a39169395fee220a26a95b83e4ae0a17654300a06082a8648ce3d04030203480030450221009a1da98e44473cf315d2b9ca70a264283e4bba6a649fcacb76012948585f49a602203c6399ac47e99d0000920f5c03242bd13bb2ad7c7e4b136e8f03142fb6497feb", + "pai_cert": "308201d43082017aa003020102020874d57449752ab165300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004b0ba683638295df720db261dab82a15d736d24f4e6e8f363871a90218970cf29b30cb97ad38ce46a4ab06cf97bd1db938808cd262fcc76ddcef77943e16c6b02a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041438f17a39169395fee220a26a95b83e4ae0a17654301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100e55f9247cc067f92274334d33d9e4e083e57d532b1e1f9ac837f71bf660025f802207ab8f6b68eb7fc7581eb7285a5d33f9165fbd18be9fb33feee0b110f3138685c", + "certification_declaration": "308201d106092a864886f70d010702a08201c2308201be020103310d300b06096086480165030402013082012806092a864886f70d010701a082011904820115152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10146afd22771f511fecbf1641976710dcdc31a1717e1014f4bbcabbc5016577aa8b44ffb90fcca140fe66201014f4bb35bbc5016577aa8b44ffb90fcca140fe66201014f4bb3544c5016577aa8b44ffb90fcca140fe66201014f4bb35443a016577aa8b44ffb90fcca140fe66201014f4bb35443afe6577aa8b44ffb90fcca140fe66201014f4bb35443afe9a77aa8b44ffb90fcca140fe66201014f4bb35443afe9a88aa8b44ffb90fcca140fe66201014f4bb35443afe9a88558b44ffb90fcca140fe66201014f4bb35443afe9a88557444ffb90fcca140fe66201818317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100baa33a2b9363fc16483e5f87830d96871af61d38c87fd3ce3ecbee6d43ff15d80221009192020c3c7f82959208b73f84e2808240436d55c4ab2549e63ae06e86398263", + "dac_private_key": "c661f63e0ade998716987a2813e8c6f5cfee1fed2fa77621d9adc0099cf1e126", + "dac_public_key": "046aca2e9ea75063238b2deeb9dc5e796c5c54d91b340ab86fc6ab813889521b573a3f5e4131af7c644c5cbabc0100a88844ab4b0dab3791095adde6c4ff388630" } diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/cd.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/cd.der index c3fef102317cfd..6758e5ba4a4b58 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/cd.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/dac-Cert.der index a6bf015433038c..1469ca3bd71475 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/dac-Cert.pem index 0ac834df730e39..329f4f5da8d068 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5TCCAYqgAwIBAgIIcETZsl89VkQwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5DCCAYqgAwIBAgIIdNmZKNQCYWMwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -S+zLGT/RZV4t6W31W+dT5GCiPSPsth4tCMm6s5nG+n7jA3gv0imMHslqx3fn1ASR -UN/q59c40Sz46Ec/2QOaDaNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFO8ZZZcuM1EJOrm6RwEuTmZNvXgTMB8GA1UdIwQYMBaAFGEM -k/YcOyOVLhNKzhITzZC2Lj/VMAoGCCqGSM49BAMCA0kAMEYCIQDzPAYt0TRUddya -52vqz8AC07Kq9/O2nmIN26xKQuG5YAIhAKKQwQTi/qChn9PRmT5jX0d0bqhSR+AP -+g+QlA9rO/Ad +lHyn6BTU7jJky1sXvayobEIIC/UifDpDSEYyUMwrp4sxC5VjDwid/BvCIs3WRjdC +SXsgDrGgrsfXiqu8QGo44KNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFBsbwvK0M49z3l/ILHy6l1xWZXu2MB8GA1UdIwQYMBaAFLOt +0tb0sCTx9ppthyk4NdEN9j7cMAoGCCqGSM49BAMCA0gAMEUCIQC6jg4+m1bf6rH6 +tuILqO93F5X6GgEub9/N1duj8IzOCgIgFuaU5SSNhorqYtIaCAttCzbB9IWSxaaR +XVdYjkS4Wmo= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/dac-Key.der index 1431ad1c3c8c40..44083ab6aa3e50 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/dac-Key.pem index 86fd78a7202826..5d9a7ccfb3126e 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIBkxC7e8YWX2+/XfgF44wqTSbnLmcl1ieG4h8kGy5VnFoAoGCCqGSM49 -AwEHoUQDQgAES+zLGT/RZV4t6W31W+dT5GCiPSPsth4tCMm6s5nG+n7jA3gv0imM -Hslqx3fn1ASRUN/q59c40Sz46Ec/2QOaDQ== +MHcCAQEEIMdUQLHKR6+i9GH0z3rYMW/9Uefw2XaJkkg5Be7zQim0oAoGCCqGSM49 +AwEHoUQDQgAElHyn6BTU7jJky1sXvayobEIIC/UifDpDSEYyUMwrp4sxC5VjDwid +/BvCIs3WRjdCSXsgDrGgrsfXiqu8QGo44A== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/pai-Cert.der index 81ec578304221a..a8356045568dbc 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/pai-Cert.pem index f7054d13ce4bcc..b1550bc01f8c02 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIaCIr2PF5HccwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1DCCAXqgAwIBAgIIVFUGBqrBvmkwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARWqEls3lfJzFIGpI7QNUSlD6HM7sQX -t566fcYTbGO9UCnY5lRwvGCT0rEv5eBksVS5cFVgiRp1eWuFt/rGG5Syo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUYQyT -9hw7I5UuE0rOEhPNkLYuP9UwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIgR6aCRE7AE30bqDAwWsC8/CYo5fL+l+RjCALI -Tjxdp8sCIQCC1Lan4znOavR8X/WCTGcE6qeV0UW6zg7DpIH8KaP4ag== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATPAnkb0YNM15fIozq9uwwGUp1AVGup +uyzZvnaIN+8b1L0yDOEd6bQODl41GffzTTF9bCGjN8zYIcPgIggHj3Yfo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUs63S +1vSwJPH2mm2HKTg10Q32PtwwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIgNyhN/2mcUHnb8ME/zxVPTc733OR+med1DFcN +xlWA4d0CIQCdSjpjOOpbNP3xCM5j67A+OIni7i1+F/9yrqA7crvMKA== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/pai-Key.der index f9361903775012..0340c6532e8d89 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/pai-Key.pem index 7be6f23a2f3468..e07394adadbf38 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIA7T1qen3KCrXmubdr2k4QXBp/vFO90JiIAau/rYi4BUoAoGCCqGSM49 -AwEHoUQDQgAEVqhJbN5XycxSBqSO0DVEpQ+hzO7EF7eeun3GE2xjvVAp2OZUcLxg -k9KxL+XgZLFUuXBVYIkadXlrhbf6xhuUsg== +MHcCAQEEIKuVA2YM5OftMZgGQvN4E4ij1ibTiWtiMhMrd56pBmrIoAoGCCqGSM49 +AwEHoUQDQgAEzwJ5G9GDTNeXyKM6vbsMBlKdQFRrqbss2b52iDfvG9S9MgzhHem0 +Dg5eNRn3800xfWwhozfM2CHD4CIIB492Hw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/test_case_vector.json index ee794a021dd9dc..0b2ce1a0a4d1db 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count1_valid/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The authorized_paa_list contains one valid PAA which is authorized to sign the PAI.", "is_success_case": "true", - "dac_cert": "308201e53082018aa00302010202087044d9b25f3d5644300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200044beccb193fd1655e2de96df55be753e460a23d23ecb61e2d08c9bab399c6fa7ee303782fd2298c1ec96ac777e7d4049150dfeae7d738d12cf8e8473fd9039a0da360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414ef1965972e3351093ab9ba47012e4e664dbd7813301f0603551d23041830168014610c93f61c3b23952e134ace1213cd90b62e3fd5300a06082a8648ce3d0403020349003046022100f33c062dd1345475dc9ae76beacfc002d3b2aaf7f3b69e620ddbac4a42e1b960022100a290c104e2fea0a19fd3d1993e635f47746ea85247e00ffa0f90940f6b3bf01d", - "pai_cert": "308201d43082017aa003020102020868222bd8f1791dc7300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000456a8496cde57c9cc5206a48ed03544a50fa1cceec417b79eba7dc6136c63bd5029d8e65470bc6093d2b12fe5e064b154b9705560891a75796b85b7fac61b94b2a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414610c93f61c3b23952e134ace1213cd90b62e3fd5301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022047a682444ec0137d1ba830305ac0bcfc2628e5f2fe97e4630802c84e3c5da7cb02210082d4b6a7e339ce6af47c5ff5824c6704eaa795d145bace0ec3a481fc29a3f86a", - "certification_declaration": "3082010306092a864886f70d010702a081f53081f2020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10146afd22771f511fecbf1641976710dcdc31a1717e1818317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100aa83c3d8602da9e1267445aaca0a53476c7a1026df7aa2c39fd350a5353a382d022100ee23b14794a218b2b78943ae1cc98b028418572d455723aa2c0d933d98228c11", - "dac_private_key": "19310bb7bc6165f6fbf5df805e38c2a4d26e72e6725d62786e21f241b2e559c5", - "dac_public_key": "044beccb193fd1655e2de96df55be753e460a23d23ecb61e2d08c9bab399c6fa7ee303782fd2298c1ec96ac777e7d4049150dfeae7d738d12cf8e8473fd9039a0d" + "dac_cert": "308201e43082018aa003020102020874d99928d4026163300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004947ca7e814d4ee3264cb5b17bdaca86c42080bf5227c3a4348463250cc2ba78b310b95630f089dfc1bc222cdd6463742497b200eb1a0aec7d78aabbc406a38e0a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604141b1bc2f2b4338f73de5fc82c7cba975c56657bb6301f0603551d23041830168014b3add2d6f4b024f1f69a6d87293835d10df63edc300a06082a8648ce3d0403020348003045022100ba8e0e3e9b56dfeab1fab6e20ba8ef771795fa1a012e6fdfcdd5dba3f08cce0a022016e694e5248d868aea62d21a080b6d0b36c1f48592c5a6915d57588e44b85a6a", + "pai_cert": "308201d43082017aa003020102020854550606aac1be69300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004cf02791bd1834cd797c8a33abdbb0c06529d40546ba9bb2cd9be768837ef1bd4bd320ce11de9b40e0e5e3519f7f34d317d6c21a337ccd821c3e02208078f761fa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414b3add2d6f4b024f1f69a6d87293835d10df63edc301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022037284dff699c5079dbf0c13fcf154f4dcef7dce47e99e7750c570dc65580e1dd0221009d4a3a6338ea5b34fdf108ce63ebb03e3889e2ee2d7e17ff72aea03b72bbcc28", + "certification_declaration": "3082010106092a864886f70d010702a081f33081f0020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10146afd22771f511fecbf1641976710dcdc31a1717e1818317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204463044022053886321101af891530f5961c3fe0ed2ea65806aa7301f8b8e0a5f863bbd82d6022055fd216de9938a02f50eefadbce6a7fdb6d2d98aff506c26d56035e6f0412961", + "dac_private_key": "c75440b1ca47afa2f461f4cf7ad8316ffd51e7f0d9768992483905eef34229b4", + "dac_public_key": "04947ca7e814d4ee3264cb5b17bdaca86c42080bf5227c3a4348463250cc2ba78b310b95630f089dfc1bc222cdd6463742497b200eb1a0aec7d78aabbc406a38e0" } diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/cd.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/cd.der index 4fd7d29fdc52ef..51b636e02e717d 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/cd.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/dac-Cert.der index dcbd5790847bdd..94a0484251ccf7 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/dac-Cert.pem index 8d7d013c0b956e..9a85744620b91e 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5DCCAYqgAwIBAgIILtgK8IVOgO0wCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB4zCCAYqgAwIBAgIIEqLB8RL8he0wCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -q9pwikfoPwiDZEd3d2azEshSOYAMaav0966ynB1tASy9IIHCwzfF8+r3/Q++uTnK -N2fn73fsVxOpER8fAVKIaKNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFAvfzUVdPws9EjKg9NI0GaAR2FfwMB8GA1UdIwQYMBaAFCRk -COBkjb+cWIX3LIiyJiQ5KtGKMAoGCCqGSM49BAMCA0gAMEUCIQCH6Y6XiAL8d8LV -dbVUOdcpGe4YemZ8OTYNL3Q1nNak2gIgcH7FO7k2YyOIVBo1gvFAjFmAQkrvc0TC -uX4fDkzakNg= +/vL1pWtjv89pKsbhAj3BEHHomk/jeepQcgdRmtDdgJsF8ZdxDuoNOdpF7E8No2/k +VJP0wxqsgztHQc1XQstJgaNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFFQfDidKime/iDRWT009y7kiMlWpMB8GA1UdIwQYMBaAFOWm +UOmP0w+x9KIGN/qpz3cWvF1rMAoGCCqGSM49BAMCA0cAMEQCIE6H581SftxXACyp +MevqOJgUJOvhmX31nnHt9HLeCF0HAiBJcCaBucV/7Qw6OKA9ejcOGG8lpDbTsNxa +RMu3QKlHrA== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/dac-Key.der index bcd0ebd3ed220e..0d63b533f37ae2 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/dac-Key.pem index 1a4679eebb0440..db4f2ef457bda3 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIP3ppsU8X1F+yRlNkQ4c/yagX1OHTphHQaIDoQcLuGVIoAoGCCqGSM49 -AwEHoUQDQgAEq9pwikfoPwiDZEd3d2azEshSOYAMaav0966ynB1tASy9IIHCwzfF -8+r3/Q++uTnKN2fn73fsVxOpER8fAVKIaA== +MHcCAQEEILJiPTolwyBDRdvTBoKGknmKNzQ+8HRE+d2uNx1TK9vooAoGCCqGSM49 +AwEHoUQDQgAE/vL1pWtjv89pKsbhAj3BEHHomk/jeepQcgdRmtDdgJsF8ZdxDuoN +OdpF7E8No2/kVJP0wxqsgztHQc1XQstJgQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/pai-Cert.der index c1993989c58bc1..de9186d59137a3 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/pai-Cert.pem index 9f68677f836807..0b722cb8cc6d1c 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIIWFYrYJRS/owCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB0zCCAXqgAwIBAgIINySEY6V9jJQwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR1Ue2PTPiv0LJ4J+VHvhgwhR7CbOkH -UMUSXvWL3H2c1yoDfms1HqplGGEUd10VHdrgcD/1VQdJ0cZ8r3/seV+io2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUJGQI -4GSNv5xYhfcsiLImJDkq0YowHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIgUEEGcYnxFFI1udDW6MsOR8I2O7xoeoCLfCNd -n5NakdECIQDDVueR4PSML1wzVpLEo+0gpjepomPbPxT5xFOukiJ+tA== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAShS1YELdTRR6aI8ILwK6J1Ig2j6e+U +P9pszA1GqsWFRCmUkWI93scA+K+L1Mcq5xbdNTSTKRHWzFLK4Z2NiONXo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU5aZQ +6Y/TD7H0ogY3+qnPdxa8XWswHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDRwAwRAIgIlVmQEYxbcmHHnuOIVjZnVqcM6sJ8vGp1t7t +kzyLLMQCIC5kD2Xy7w9Vl7zg3PxH8KDQtlBydUL9I5sHgZwlHBRS -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/pai-Key.der index 52877110d42b7f..c78a2f5a000891 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/pai-Key.pem index f54da100d91dcf..98e744ec036073 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEICXCXn+HuGQY27ctSG7uSyNcY8KS3qoIKhoyyBNOAC2qoAoGCCqGSM49 -AwEHoUQDQgAEdVHtj0z4r9CyeCflR74YMIUewmzpB1DFEl71i9x9nNcqA35rNR6q -ZRhhFHddFR3a4HA/9VUHSdHGfK9/7Hlfog== +MHcCAQEEILiTIVBw+tq0rUz4BJ3fub+81Lz/kety3w6Q+Vg5Wn6eoAoGCCqGSM49 +AwEHoUQDQgAEoUtWBC3U0UemiPCC8CuidSINo+nvlD/abMwNRqrFhUQplJFiPd7H +APivi9THKucW3TU0kykR1sxSyuGdjYjjVw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/test_case_vector.json index 5e41046a881d44..3d1a5c9897d1c1 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count2_valid/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The authorized_paa_list contains two PAAs one of which is valid PAA authorized to sign the PAI.", "is_success_case": "true", - "dac_cert": "308201e43082018aa00302010202082ed80af0854e80ed300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004abda708a47e83f08836447777766b312c85239800c69abf4f7aeb29c1d6d012cbd2081c2c337c5f3eaf7fd0fbeb939ca3767e7ef77ec5713a9111f1f01528868a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604140bdfcd455d3f0b3d1232a0f4d23419a011d857f0301f0603551d23041830168014246408e0648dbf9c5885f72c88b22624392ad18a300a06082a8648ce3d040302034800304502210087e98e978802fc77c2d575b55439d72919ee187a667c39360d2f74359cd6a4da0220707ec53bb936632388541a3582f1408c5980424aef7344c2b97e1f0e4cda90d8", - "pai_cert": "308201d43082017aa0030201020208216158ad82514bfa300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200047551ed8f4cf8afd0b27827e547be1830851ec26ce90750c5125ef58bdc7d9cd72a037e6b351eaa65186114775d151ddae0703ff5550749d1c67caf7fec795fa2a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414246408e0648dbf9c5885f72c88b22624392ad18a301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502205041067189f1145235b9d0d6e8cb0e47c2363bbc687a808b7c235d9f935a91d1022100c356e791e0f48c2f5c335692c4a3ed20a637a9a263db3f14f9c453ae92227eb4", - "certification_declaration": "3082011a06092a864886f70d010702a082010b30820107020103310d300b0609608648016503040201307406092a864886f70d010701a0670465152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10146afd22771f511fecbf1641976710dcdc31a1717e1014f4bbcabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502206debec7b91394474896b5c86c0a505ae8f6ee8415acde6c9d0b8bdaff1b6dc44022100f799e5fc9cddd66606698073fe9cbb61d4ee58890996c68ced64181bcf2bc0ad", - "dac_private_key": "fde9a6c53c5f517ec9194d910e1cff26a05f53874e984741a203a1070bb86548", - "dac_public_key": "04abda708a47e83f08836447777766b312c85239800c69abf4f7aeb29c1d6d012cbd2081c2c337c5f3eaf7fd0fbeb939ca3767e7ef77ec5713a9111f1f01528868" + "dac_cert": "308201e33082018aa003020102020812a2c1f112fc85ed300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004fef2f5a56b63bfcf692ac6e1023dc11071e89a4fe379ea507207519ad0dd809b05f197710eea0d39da45ec4f0da36fe45493f4c31aac833b4741cd5742cb4981a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414541f0e274a8a67bf8834564f4d3dcbb9223255a9301f0603551d23041830168014e5a650e98fd30fb1f4a20637faa9cf7716bc5d6b300a06082a8648ce3d040302034700304402204e87e7cd527edc57002ca931ebea38981424ebe1997df59e71edf472de085d07022049702681b9c57fed0c3a38a03d7a370e186f25a436d3b0dc5a44cbb740a947ac", + "pai_cert": "308201d33082017aa003020102020837248463a57d8c94300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004a14b56042dd4d147a688f082f02ba275220da3e9ef943fda6ccc0d46aac58544299491623ddec700f8af8bd4c72ae716dd3534932911d6cc52cae19d8d88e357a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414e5a650e98fd30fb1f4a20637faa9cf7716bc5d6b301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402202255664046316dc9871e7b8e2158d99d5a9c33ab09f2f1a9d6deed933c8b2cc402202e640f65f2ef0f5597bce0dcfc47f0a0d0b650727542fd239b07819c251c1452", + "certification_declaration": "3082011906092a864886f70d010702a082010a30820106020103310d300b0609608648016503040201307406092a864886f70d010701a0670465152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10146afd22771f511fecbf1641976710dcdc31a1717e1014f4bbcabbc5016577aa8b44ffb90fcca140fe66201818317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402205036c90aca5885fda4fc51c7c5a0069dd87fba06a991877e30ea9713a63e092e02200d6fb45b507cb0f841146c6729484a284dc69003572da46dd8f16841d473787c", + "dac_private_key": "b2623d3a25c3204345dbd306828692798a37343ef07444f9ddae371d532bdbe8", + "dac_public_key": "04fef2f5a56b63bfcf692ac6e1023dc11071e89a4fe379ea507207519ad0dd809b05f197710eea0d39da45ec4f0da36fe45493f4c31aac833b4741cd5742cb4981" } diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/cd.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/cd.der index a274b4ca57b512..a477e606641e75 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/cd.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/dac-Cert.der index b3f85c2ac410a2..40edf75a96fce2 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/dac-Cert.pem index 72bf3b65130d22..d536d0db77a540 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5DCCAYqgAwIBAgIIUYu7Q7WxD2AwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5DCCAYqgAwIBAgIIPc6myJwo42YwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -CZ0bbCHRPFoi7ahtIgVNqXd3KDhEMgVkdNCBcH80RroUvUQVs+dGjG7ZijOrNfAm -eD3mUSVGvjoQ3TmECRsEtKNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFKgC0WYIZQrs4w4KY1sAgTYey2yhMB8GA1UdIwQYMBaAFDDS -WyKJEiotsKibeXczyzGKmeA3MAoGCCqGSM49BAMCA0gAMEUCIEygGm8jekQk0p1a -Xcrx+CxlB21EEv66/39rDzXMt1a3AiEA6VG3InK0NjkgO9y7x4ZguS4NRx0vhW3z -facKhSJ9SMo= +T0Uq1XUb2c4R91QlOxAV/f/Lad48pl8YZis8uy3R+o9PGYRiFUNR4+cINucG/ES2 +KxT1+rHI78vi++0us+EyFqNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFNrZJxnzoqTOUQ07CMuwURsbREuxMB8GA1UdIwQYMBaAFHiI +2HASDYJpr38+BN84oUvjspuyMAoGCCqGSM49BAMCA0gAMEUCIQDfo0nO4Lgd3riJ +1hsiDi1ZOtUdZY/5pDKMD2U/MmsSxQIgdtAqUu5s3VDRxZ3MKHE3Q1OobYVodSw7 +vTZu3NDEAtY= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/dac-Key.der index 5b0bfa2414da0d..cecf91fde03161 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/dac-Key.pem index f65aa8ad19be6d..479fdc9222cedb 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEINMfFMkjZEL9lRh9uU5O1QWWAazHXPhjvGbAkNIag4CaoAoGCCqGSM49 -AwEHoUQDQgAECZ0bbCHRPFoi7ahtIgVNqXd3KDhEMgVkdNCBcH80RroUvUQVs+dG -jG7ZijOrNfAmeD3mUSVGvjoQ3TmECRsEtA== +MHcCAQEEIPxcpKYFQTEZ8UzNlCXx+870QFIP/aUYay7WxJ5FzmC5oAoGCCqGSM49 +AwEHoUQDQgAET0Uq1XUb2c4R91QlOxAV/f/Lad48pl8YZis8uy3R+o9PGYRiFUNR +4+cINucG/ES2KxT1+rHI78vi++0us+EyFg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/pai-Cert.der index 1a8d5153503d23..4e4f027c0f1bb9 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/pai-Cert.pem index 62b8b4f6411aba..d0b72754cfea94 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIEhmidBNI/tQwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1DCCAXqgAwIBAgIIILq0G3MIkSIwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARe80WynXdUccvepI/ckVLpdY8QakZj -++bxAk5VddghLE3yShO4tlTeZJnAyzBxlbcM1Jch5GEnxwVaUDDwWQxco2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUMNJb -IokSKi2wqJt5dzPLMYqZ4DcwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIgPqj+ObogQrmrO98Q4zb08jwAV9kIK7ujgMSa -00VNaOECIQC9HhcI9DYAWB9FkHofh2JszGuj24xpoCHbYa7rv0sFHw== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARJaQB6ThZZCGIy2p5vR+jyRCuzephg +KDnrNJfW9vqJefwEunRnqboNullf43KxMkMT4yw3ReyfscspUSjCk4z7o2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUeIjY +cBINgmmvfz4E3zihS+Oym7IwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIgCq3FrHs6ULv732atHLbE2fxm39c30YQtR53B +asvqPiwCIQCgBVl8I5hWFZnLrjX+8+Ov5qReAKt5rCsiUM+dZQLYvQ== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/pai-Key.der index 1a65a4a0c76770..72f1df7459e1c3 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/pai-Key.pem index 818b2bd690e9cb..948ce8981bc8c2 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIHhZDwwJF7WntLQlh6rQmys2GpyBCjloQDS7Dfu66G9AoAoGCCqGSM49 -AwEHoUQDQgAEXvNFsp13VHHL3qSP3JFS6XWPEGpGY/vm8QJOVXXYISxN8koTuLZU -3mSZwMswcZW3DNSXIeRhJ8cFWlAw8FkMXA== +MHcCAQEEIGzfCxVa9BuJYacxJz6fwz8ApySjzWW+JJ2hI8p6l33uoAoGCCqGSM49 +AwEHoUQDQgAESWkAek4WWQhiMtqeb0fo8kQrs3qYYCg56zSX1vb6iXn8BLp0Z6m6 +DbpZX+NysTJDE+MsN0Xsn7HLKVEowpOM+w== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/test_case_vector.json index 835967465cb1fe..bf7755519e58cb 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_count3_invalid/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The authorized_paa_list contains three PAAs none of which is a valid PAA authorized to sign the PAI.", "is_success_case": "false", - "dac_cert": "308201e43082018aa0030201020208518bbb43b5b10f60300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004099d1b6c21d13c5a22eda86d22054da9777728384432056474d081707f3446ba14bd4415b3e7468c6ed98a33ab35f026783de6512546be3a10dd3984091b04b4a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414a802d16608650aece30e0a635b0081361ecb6ca1301f0603551d2304183016801430d25b2289122a2db0a89b797733cb318a99e037300a06082a8648ce3d040302034800304502204ca01a6f237a4424d29d5a5dcaf1f82c65076d4412febaff7f6b0f35ccb756b7022100e951b72272b43639203bdcbbc78660b92e0d471d2f856df37da70a85227d48ca", - "pai_cert": "308201d43082017aa00302010202081219a2741348fed4300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200045ef345b29d775471cbdea48fdc9152e9758f106a4663fbe6f1024e5575d8212c4df24a13b8b654de6499c0cb307195b70cd49721e46127c7055a5030f0590c5ca366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e0416041430d25b2289122a2db0a89b797733cb318a99e037301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502203ea8fe39ba2042b9ab3bdf10e336f4f23c0057d9082bbba380c49ad3454d68e1022100bd1e1708f43600581f45907a1f87626ccc6ba3db8c69a021db61aeebbf4b051f", - "certification_declaration": "3082013206092a864886f70d010702a08201233082011f020103310d300b060960864801650304020130818a06092a864886f70d010701a07d047b152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe662010140bbbcabbc5016577aa8b44ffb90fcca140fe662010140bbb35bbc5016577aa8b44ffb90fcca140fe66201818317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100df70d10986d5d723b7756c75d43803b45a4a8e5c7baa031ee9bf6e45b5b2fcdd022100be6de163e8bf924352e3618afa1ace3bd3f56c8b54d1e9d4c8775c9fbe32440f", - "dac_private_key": "d31f14c9236442fd95187db94e4ed5059601acc75cf863bc66c090d21a83809a", - "dac_public_key": "04099d1b6c21d13c5a22eda86d22054da9777728384432056474d081707f3446ba14bd4415b3e7468c6ed98a33ab35f026783de6512546be3a10dd3984091b04b4" + "dac_cert": "308201e43082018aa00302010202083dcea6c89c28e366300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200044f452ad5751bd9ce11f754253b1015fdffcb69de3ca65f18662b3cbb2dd1fa8f4f198462154351e3e70836e706fc44b62b14f5fab1c8efcbe2fbed2eb3e13216a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414dad92719f3a2a4ce510d3b08cbb0511b1b444bb1301f0603551d230418301680147888d870120d8269af7f3e04df38a14be3b29bb2300a06082a8648ce3d0403020348003045022100dfa349cee0b81ddeb889d61b220e2d593ad51d658ff9a4328c0f653f326b12c5022076d02a52ee6cdd50d1c59dcc2871374353a86d8568752c3bbd366edcd0c402d6", + "pai_cert": "308201d43082017aa003020102020820bab41b73089122300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200044969007a4e1659086232da9e6f47e8f2442bb37a98602839eb3497d6f6fa8979fc04ba7467a9ba0dba595fe372b1324313e32c3745ec9fb1cb295128c2938cfba366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604147888d870120d8269af7f3e04df38a14be3b29bb2301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502200aadc5ac7b3a50bbfbdf66ad1cb6c4d9fc66dfd737d1842d479dc16acbea3e2c022100a005597c2398561599cbae35fef3e3afe6a45e00ab79ac2b2250cf9d6502d8bd", + "certification_declaration": "3082013106092a864886f70d010702a08201223082011e020103310d300b060960864801650304020130818a06092a864886f70d010701a07d047b152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe662010140bbbcabbc5016577aa8b44ffb90fcca140fe662010140bbb35bbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502200377dd745c729b6785752d4c5ac1ca068a920c32e04c6f9973ea0da636f3b51a022100cc0699fd6c9a999ecf37dfb23b6c32fb339c802725b0dac9fb83205f5280495d", + "dac_private_key": "fc5ca4a605413119f14ccd9425f1fbcef440520ffda5186b2ed6c49e45ce60b9", + "dac_public_key": "044f452ad5751bd9ce11f754253b1015fdffcb69de3ca65f18662b3cbb2dd1fa8f4f198462154351e3e70836e706fc44b62b14f5fab1c8efcbe2fbed2eb3e13216" } diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/cd.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/cd.der index cec8ac3a9b1665..18d86ba6227c5e 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/cd.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/dac-Cert.der index f231380cee0aa5..f0416ff4c47830 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/dac-Cert.pem index f6af79a2fdc4fd..241f043561e42e 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5DCCAYqgAwIBAgIIGJvSMGkBBFIwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5DCCAYqgAwIBAgIIQms4STrnqFwwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -KBTJ26EPrk3bps57lqS9nuFCxKuqITxjPOda3ay1KIga2u6VW2te1jJdkeYlSBf3 -89WW5jYEhEgqnT/AR1daJaNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFG0GK0+NL03JjynODodUMehSOv7oMB8GA1UdIwQYMBaAFBU6 -rFmtO7zA6mSf5sPE0lt9UvlxMAoGCCqGSM49BAMCA0gAMEUCIDJnOGTTsFSgBhCB -RX2khwKrtXsjvHLp0Su8CJQlm+fhAiEAvjrHcLP5jTJJEiUlxmA3lp3o0IRBew50 -L1t+wJAdZpE= +2MCKse/tfP/MOznSBNh+4DenB1/AKV1qdaZ1vXbXn2RgdSHD6GsiTpY590BE8/A+ +o4m2AGIDO2mpXbXU/3v9h6NgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFDVaPUbefo+lauAtnQ6tcRtD/dzmMB8GA1UdIwQYMBaAFCcw +uzWh3CQmeYS3Wy4L4a97bUaSMAoGCCqGSM49BAMCA0gAMEUCIQDDYRdEg603p8Wm +8pggq8r0JiogV3U4SJtbqX0UzM/Y7gIgcYcP7Zhn+CjPAcW1+vlZq8vCf/nf7Zm1 +2C5mQkC2FVM= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/dac-Key.der index 72564fb08c53b1..bd16bf21401e82 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/dac-Key.pem index 2a429b546feae9..4aeca65160ba9b 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEICLK+xHpMqWVFqfp7/8JDPLNCN60xpQicfwTJyte6igKoAoGCCqGSM49 -AwEHoUQDQgAEKBTJ26EPrk3bps57lqS9nuFCxKuqITxjPOda3ay1KIga2u6VW2te -1jJdkeYlSBf389WW5jYEhEgqnT/AR1daJQ== +MHcCAQEEIIbh0k5+GXFxBkaqq4PzltZ+bSHSbxxj0rhmenAAcu+noAoGCCqGSM49 +AwEHoUQDQgAE2MCKse/tfP/MOznSBNh+4DenB1/AKV1qdaZ1vXbXn2RgdSHD6Gsi +TpY590BE8/A+o4m2AGIDO2mpXbXU/3v9hw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/pai-Cert.der index 079415583c9d89..473ddc2de96095 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/pai-Cert.pem index 81fc0614b5063c..b0a5b7d4225757 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIITQWjzp/UP0kwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1TCCAXqgAwIBAgIIfhvC58nKbpIwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATbUTSCrL6Aee8k++q65miV59AVM85F -PzM/V1rrKMBniLTXnvq31dMeL/eJ8nlF2agL5K5yYnEa/umvjnJ11yAco2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUFTqs -Wa07vMDqZJ/mw8TSW31S+XEwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIhAPs9+PlvxIYXnDHWZV3IUoyixrT7EeOSJbd6 -DWrow60CAiAApJxztGwaEr4ueKzbJMPf9CJskBUGpHhzl+ofXESb6g== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATJ4KsdXFk8NKBg1zXjp9kW2o4Ugeam +1SQMYuCASZPSi2sBkkogReIc9DV+plFZQpe5sV1tZnmWYTl58idyvUwto2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUJzC7 +NaHcJCZ5hLdbLgvhr3ttRpIwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSQAwRgIhALLLvlnzzRN+4lPsiq0/N6Fx0NEGVgWdfLZ9 +czBFe7erAiEAhlcXJnkOSU9MHjGg5pNJmt3Rs3WfnIXW4WbRQk7hUX4= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/pai-Key.der index 9246d36c47e2f1..5c427c2beeb768 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/pai-Key.pem index c8b94a95b76f8c..b58d82a6650237 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIFdbifx3vALiRZ4js8td+9nMRhZgABC0qC5nohiiCF8yoAoGCCqGSM49 -AwEHoUQDQgAE21E0gqy+gHnvJPvquuZolefQFTPORT8zP1da6yjAZ4i01576t9XT -Hi/3ifJ5RdmoC+SucmJxGv7pr45yddcgHA== +MHcCAQEEIMJmNbGya4KPkWptWQV2pCpaoJTgb+BsKr1A0J4dKqzNoAoGCCqGSM49 +AwEHoUQDQgAEyeCrHVxZPDSgYNc146fZFtqOFIHmptUkDGLggEmT0otrAZJKIEXi +HPQ1fqZRWUKXubFdbWZ5lmE5efIncr1MLQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/test_case_vector.json index ada0ecb15f0d1b..e8815b2d57bc0a 100644 --- a/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_authorized_paa_list_missing/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The optional authorized_paa_list field is not present.", "is_success_case": "true", - "dac_cert": "308201e43082018aa0030201020208189bd23069010452300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200042814c9dba10fae4ddba6ce7b96a4bd9ee142c4abaa213c633ce75addacb528881adaee955b6b5ed6325d91e6254817f7f3d596e6360484482a9d3fc047575a25a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604146d062b4f8d2f4dc98f29ce0e875431e8523afee8301f0603551d23041830168014153aac59ad3bbcc0ea649fe6c3c4d25b7d52f971300a06082a8648ce3d0403020348003045022032673864d3b054a0061081457da48702abb57b23bc72e9d12bbc0894259be7e1022100be3ac770b3f98d3249122525c66037969de8d084417b0e742f5b7ec0901d6691", - "pai_cert": "308201d43082017aa00302010202084d05a3ce9fd43f49300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004db513482acbe8079ef24fbeabae66895e7d01533ce453f333f575aeb28c06788b4d79efab7d5d31e2ff789f27945d9a80be4ae7262711afee9af8e7275d7201ca366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414153aac59ad3bbcc0ea649fe6c3c4d25b7d52f971301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100fb3df8f96fc486179c31d6655dc8528ca2c6b4fb11e39225b77a0d6ae8c3ad02022000a49c73b46c1a12be2e78acdb24c3dff4226c901506a4787397ea1f5c449bea", - "certification_declaration": "3082010206092a864886f70d010702a081f43081f1020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450221009d0671e7751a9672bce1211c070e5fa9856122c84b591221c61768a46612e3c40220200e658b3717370a8598a5b34f7740ce06acadac3907777a694c7a3f9d3bf511", - "dac_private_key": "22cafb11e932a59516a7e9efff090cf2cd08deb4c6942271fc13272b5eea280a", - "dac_public_key": "042814c9dba10fae4ddba6ce7b96a4bd9ee142c4abaa213c633ce75addacb528881adaee955b6b5ed6325d91e6254817f7f3d596e6360484482a9d3fc047575a25" + "dac_cert": "308201e43082018aa0030201020208426b38493ae7a85c300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004d8c08ab1efed7cffcc3b39d204d87ee037a7075fc0295d6a75a675bd76d79f64607521c3e86b224e9639f74044f3f03ea389b60062033b69a95db5d4ff7bfd87a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414355a3d46de7e8fa56ae02d9d0ead711b43fddce6301f0603551d230418301680142730bb35a1dc24267984b75b2e0be1af7b6d4692300a06082a8648ce3d0403020348003045022100c361174483ad37a7c5a6f29820abcaf4262a20577538489b5ba97d14cccfd8ee022071870fed9867f828cf01c5b5faf959abcbc27ff9dfed99b5d82e664240b61553", + "pai_cert": "308201d53082017aa00302010202087e1bc2e7c9ca6e92300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004c9e0ab1d5c593c34a060d735e3a7d916da8e1481e6a6d5240c62e0804993d28b6b01924a2045e21cf4357ea651594297b9b15d6d667996613979f22772bd4c2da366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604142730bb35a1dc24267984b75b2e0be1af7b6d4692301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100b2cbbe59f3cd137ee253ec8aad3f37a171d0d10656059d7cb67d7330457bb7ab02210086571726790e494f4c1e31a0e693499addd1b3759f9c85d6e166d1424ee1517e", + "certification_declaration": "3082010206092a864886f70d010702a081f43081f1020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450220600400539d3b287082cddc61d39be3800027d7abdf6ca1a3ace28b405117dab3022100c43de458625e47d3f8e878335ebc4609023d0496d8e26989c20fc3f3eed72ac9", + "dac_private_key": "86e1d24e7e1971710646aaab83f396d67e6d21d26f1c63d2b8667a700072efa7", + "dac_public_key": "04d8c08ab1efed7cffcc3b39d204d87ee037a7075fc0295d6a75a675bd76d79f64607521c3e86b224e9639f74044f3f03ea389b60062033b69a95db5d4ff7bfd87" } diff --git a/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/cd.der b/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/cd.der index 9abab0879b4200..0966dd7bc4a7b0 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/cd.der and b/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/dac-Cert.der index e95645ccdd02d6..b694ab4910c81b 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/dac-Cert.pem index 7569f3b19ba1f6..6a288ee8cfa645 100644 --- a/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5TCCAYqgAwIBAgIIGoBGORoGjbcwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5DCCAYqgAwIBAgIIXVOXr/aOFGcwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -tU1g+OyXpT134o12s4jHKrWx0OxoOjvut9uw2jSM/ScOURjcuKVUYvSJs3TipBJj -itFknDFdCc76ME/M+Sa/MKNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFOrbxDTWqIqLeAbgKOZR9FzrTNjEMB8GA1UdIwQYMBaAFNv6 -Bw6XkVUKqLb0i0REi7YLKeS6MAoGCCqGSM49BAMCA0kAMEYCIQCkF4QynSt6W4xw -D2B/nOBgMlqJAfSe1Pz0eO2yzRs+ugIhAJ4NtXrFv7Stmyhu12zhnMNsKW2LpTh+ -E+0Pw8L3Ugyn +2TaccSRRawA/i2TdbRyK27mHZfU+i9yJPqmcmeGnX3WBH1Cj9BsESPCxUGpeBDGi +7wGeLZ4MymjMxq578Z7NmqNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFHJtfAOZqMWkeyPhLrH3Q+hl9IchMB8GA1UdIwQYMBaAFEDH +pCdFc6xbSiE1IKHu4Emj5U85MAoGCCqGSM49BAMCA0gAMEUCIBpgTQm7STvNKhGQ +nbFSDUUSTNuR2jGHHcuOE5f19Mt0AiEA0W+EMwR2uz1s0LL6xj8Vpx1cbY5GZC6c +KlCK6SKkIyg= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/dac-Key.der index 211246b7c17614..99cb9c092295c8 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/dac-Key.pem index ce5dba1a28adf8..bad57815db7bcf 100644 --- a/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIG7DBxG+DsbOj2vpacTgTPekdthlvEBJ1AjqCbw3FPM6oAoGCCqGSM49 -AwEHoUQDQgAEtU1g+OyXpT134o12s4jHKrWx0OxoOjvut9uw2jSM/ScOURjcuKVU -YvSJs3TipBJjitFknDFdCc76ME/M+Sa/MA== +MHcCAQEEINjzBs0ABnaVgvAOYeE2/PkLhi21fvR7RsltuJyUrEKWoAoGCCqGSM49 +AwEHoUQDQgAE2TaccSRRawA/i2TdbRyK27mHZfU+i9yJPqmcmeGnX3WBH1Cj9BsE +SPCxUGpeBDGi7wGeLZ4MymjMxq578Z7Nmg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/pai-Cert.der index 112c478d2ae589..464475bb073b6f 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/pai-Cert.pem index 25b800ce9f9ed9..f1cc985754e1de 100644 --- a/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIINPkT6IeMjLkwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1DCCAXqgAwIBAgIIMT5MMy0KGPcwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATuZUkWKm3bKUSLqBerjlsZXAAUPlM8 -ocA62rTadMUgDw74AzwAyEyurjSK+FiA7gaBUld7AuSUoxNLlUgnlriyo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU2/oH -DpeRVQqotvSLRESLtgsp5LowHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIhAJGjhOZD/p9B2VyDgOLQbOKaQP4xh5GGQMQW -mB2MA4sOAiARZSsECRQqkPZ3QqElYvLQBYOH4p6OJcZzZH00RH/odg== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR4rZmC3pAIo4gW6P0brfANqcRJ+wrP +GpFj2drbcaRpwwuDWej38KOyLnONt7Pbw9stnBgjxEgjuqah+5gGyarPo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUQMek +J0VzrFtKITUgoe7gSaPlTzkwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIgWgTMoGN/mq+N3vaO75Pf72DXB6r2rf6C7t6s +JPDGL4oCIQDapgNBztWsiAX9vFikYENGuPcG1KjcQrr7qMxTTBFQ9w== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/pai-Key.der index 216a3ec6f446e9..d75a499bd927f0 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/pai-Key.pem index 68d6ed8f6fdf7e..4c97d4f9dedb8e 100644 --- a/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIGGxWu8N9B56PBQvX7wl2RR0EEhYKPl6VqpC/sZJ4SuPoAoGCCqGSM49 -AwEHoUQDQgAE7mVJFipt2ylEi6gXq45bGVwAFD5TPKHAOtq02nTFIA8O+AM8AMhM -rq40ivhYgO4GgVJXewLklKMTS5VIJ5a4sg== +MHcCAQEEIIR7XSzcJ8zOiW58eTSy/viZ/RKat4EVBJI3Gt5kQs0NoAoGCCqGSM49 +AwEHoUQDQgAEeK2Zgt6QCKOIFuj9G63wDanESfsKzxqRY9na23GkacMLg1no9/Cj +si5zjbez28PbLZwYI8RII7qmofuYBsmqzw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/test_case_vector.json index ce77ed4be2afd9..4edf553d19773a 100644 --- a/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_cert_id_len_wrong/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The certificate_id field has wrong length.", "is_success_case": "false", - "dac_cert": "308201e53082018aa00302010202081a8046391a068db7300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004b54d60f8ec97a53d77e28d76b388c72ab5b1d0ec683a3beeb7dbb0da348cfd270e5118dcb8a55462f489b374e2a412638ad1649c315d09cefa304fccf926bf30a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414eadbc434d6a88a8b7806e028e651f45ceb4cd8c4301f0603551d23041830168014dbfa070e9791550aa8b6f48b44448bb60b29e4ba300a06082a8648ce3d0403020349003046022100a41784329d2b7a5b8c700f607f9ce060325a8901f49ed4fcf478edb2cd1b3eba0221009e0db57ac5bfb4ad9b286ed76ce19cc36c296d8ba5387e13ed0fc3c2f7520ca7", - "pai_cert": "308201d43082017aa003020102020834f913e8878c8cb9300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004ee6549162a6ddb29448ba817ab8e5b195c00143e533ca1c03adab4da74c5200f0ef8033c00c84caeae348af85880ee068152577b02e494a3134b95482796b8b2a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414dbfa070e9791550aa8b6f48b44448bb60b29e4ba301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502210091a384e643fe9f41d95c8380e2d06ce29a40fe3187918640c416981d8c038b0e022011652b0409142a90f67742a12562f2d0058387e29e8e25c673647d34447fe876", - "certification_declaration": "3082010506092a864886f70d010702a081f73081f4020103310d300b0609608648016503040201306206092a864886f70d010701a0550453152000012501f1ff360205008018250334122c04175a494732303134315a423333303030312d32343132333424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402206c4ddfa910850cb37c0e5f03e4877700053699b66c7c8be023be13c5fecf690902201a13e5d9a7a1a394d86bb86d904aaf76a45537ad75493ac4ae317fc0a8c89b08", - "dac_private_key": "6ec30711be0ec6ce8f6be969c4e04cf7a476d865bc4049d408ea09bc3714f33a", - "dac_public_key": "04b54d60f8ec97a53d77e28d76b388c72ab5b1d0ec683a3beeb7dbb0da348cfd270e5118dcb8a55462f489b374e2a412638ad1649c315d09cefa304fccf926bf30" + "dac_cert": "308201e43082018aa00302010202085d5397aff68e1467300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004d9369c7124516b003f8b64dd6d1c8adbb98765f53e8bdc893ea99c99e1a75f75811f50a3f41b0448f0b1506a5e0431a2ef019e2d9e0cca68ccc6ae7bf19ecd9aa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414726d7c0399a8c5a47b23e12eb1f743e865f48721301f0603551d2304183016801440c7a4274573ac5b4a213520a1eee049a3e54f39300a06082a8648ce3d040302034800304502201a604d09bb493bcd2a11909db1520d45124cdb91da31871dcb8e1397f5f4cb74022100d16f84330476bb3d6cd0b2fac63f15a71d5c6d8e46642e9c2a508ae922a42328", + "pai_cert": "308201d43082017aa0030201020208313e4c332d0a18f7300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000478ad9982de9008a38816e8fd1badf00da9c449fb0acf1a9163d9dadb71a469c30b8359e8f7f0a3b22e738db7b3dbc3db2d9c1823c44823baa6a1fb9806c9aacfa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041440c7a4274573ac5b4a213520a1eee049a3e54f39301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502205a04cca0637f9aaf8ddef68eef93dfef60d707aaf6adfe82eedeac24f0c62f8a022100daa60341ced5ac8805fdbc58a4604346b8f706d4a8dc42bafba8cc534c1150f7", + "certification_declaration": "3082010506092a864886f70d010702a081f73081f4020103310d300b0609608648016503040201306206092a864886f70d010701a0550453152000012501f1ff360205008018250334122c04175a494732303134315a423333303030312d32343132333424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204463044022052d7e30b120a81160cd6ed795091196759de0286c029cbb9614cefe25d4669fd0220225fa6ec012986aa6e2e7aa512d33a5fd958d55b40681f19ae45175645cdf19f", + "dac_private_key": "d8f306cd0006769582f00e61e136fcf90b862db57ef47b46c96db89c94ac4296", + "dac_public_key": "04d9369c7124516b003f8b64dd6d1c8adbb98765f53e8bdc893ea99c99e1a75f75811f50a3f41b0448f0b1506a5e0431a2ef019e2d9e0cca68ccc6ae7bf19ecd9a" } diff --git a/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/cd.der b/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/cd.der index 0a75bd3f7fec47..5e3d7ec741aa2c 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/cd.der and b/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/dac-Cert.der index b084e1202f969e..d24fb0d5af27f4 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/dac-Cert.pem index 533dfc447f9169..bce0074c4e7d5e 100644 --- a/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5DCCAYqgAwIBAgIIelRAQDSbAM8wCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5DCCAYqgAwIBAgIIZ4HmaDpeyU8wCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -EdIfUar65dV4qb4co3UHBuFKmg4VAhxVWsa98OxEL8G77Ix6WccXzRkwlZcxOYNU -TTUZyxpizeHxVW4+l38kq6NgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFFsfX3NRDFPR+Hh93E8C808KNTqYMB8GA1UdIwQYMBaAFIIH -FbG55bWOqdxCsNQ1d0c/H0rKMAoGCCqGSM49BAMCA0gAMEUCIQCfonmuo00ObF/t -Ms8jwRdgI8mfDafxkWWkLtayIbVRngIga7s7KSzs3GwNSdKIPkA1++VsrQbibnHz -NmVRC1DiiQ8= +AhBU4SDORsW3huPapYTERe0bLqfu3T+36iwVAFA5Qrf6dpOfpOc2DE47hB29KxF6 +887U1iagHC83Yl26dUkkC6NgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFFC0+vHGlsLa4BXeO8K/GALlodrfMB8GA1UdIwQYMBaAFG8f +0dZgM8MPq6/lNo2aGgqpLNqiMAoGCCqGSM49BAMCA0gAMEUCIGAK8PJ6pFeCE1uk +AspIspiYnS3J3xhrs7ZGyYNcfaFnAiEA8Kw0vJKI4N37cE0mCVSqhTSmr1WjU/F3 +XB0dzAqcMnw= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/dac-Key.der index 83193f3772855c..66ddde4bb19453 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/dac-Key.pem index 0c8054b5caea62..5ab7b5c76f8284 100644 --- a/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIPYAV7qSzFbdVj6cX2thbLxfEuTOyfwDl0kgn+UB0Lu7oAoGCCqGSM49 -AwEHoUQDQgAEEdIfUar65dV4qb4co3UHBuFKmg4VAhxVWsa98OxEL8G77Ix6WccX -zRkwlZcxOYNUTTUZyxpizeHxVW4+l38kqw== +MHcCAQEEICloF+XV6xh5iXphMCSoSDqIY7WjmdwLU0uvuiza0f1GoAoGCCqGSM49 +AwEHoUQDQgAEAhBU4SDORsW3huPapYTERe0bLqfu3T+36iwVAFA5Qrf6dpOfpOc2 +DE47hB29KxF6887U1iagHC83Yl26dUkkCw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/pai-Cert.der index 23d854be064308..fbdb9849f26e3f 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/pai-Cert.pem index 9debaccdeaa718..aa3cc38f3c9e59 100644 --- a/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIVmP9HJVZtegwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1DCCAXqgAwIBAgIIfRjqqXCQT4IwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ7fVkZu8WSfPdIj0vKAZl0rddffME2 -UWY3zM5Rr2+oT1VsRmNFuVlVifrr7umNJ9daGINRYNQYN4uoRMP/Vraio2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUggcV -sbnltY6p3EKw1DV3Rz8fSsowHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIhAIazE8eM4W+L2mfXw2E0jhSPqZ5zCwuIEM38 -pOkWEH5NAiAlMs72Rvhm/zxbSEA8ib9wDextZws9l2Jt/VnZq2qQ1Q== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQKv0D+XLAyvBsgzGfwT6tO/eJOSMw3 +2p8uQdWUyK7sI10EtkrlPMbEoOOzeQ3QS8rxOdI8UkZHzZuSY62f2U56o2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUbx/R +1mAzww+rr+U2jZoaCqks2qIwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIhAN+kERUWuyNQkHDlWqLGkPNZBd5p6IBxBf2y +mDIvM9woAiAFX4oFcMwV1NN5wVaas6qePx2naEi9CpV2U745X5sCxw== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/pai-Key.der index 1fa17d6a38d1ec..aeb2c4da0e1115 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/pai-Key.pem index a37f2a606c7eef..6fe0ecaa36cabe 100644 --- a/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIF7GtIsAT/X0XZYFPgZ2jiXf1gDuRP0X24S4sApmHRBZoAoGCCqGSM49 -AwEHoUQDQgAEO31ZGbvFknz3SI9LygGZdK3XX3zBNlFmN8zOUa9vqE9VbEZjRblZ -VYn66+7pjSfXWhiDUWDUGDeLqETD/1a2og== +MHcCAQEEIMkU6/b2gaoDxKLduzKLw+cAj/E8gQiuPJrmgwc5pWiGoAoGCCqGSM49 +AwEHoUQDQgAECr9A/lywMrwbIMxn8E+rTv3iTkjMN9qfLkHVlMiu7CNdBLZK5TzG +xKDjs3kN0EvK8TnSPFJGR82bkmOtn9lOeg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/test_case_vector.json index d43ca518e0c929..f718edc1177b10 100644 --- a/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_cert_id_mismatch/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The certificate_id field doesn't contain a globally unique serial number allocated by the CSA for this CD.", "is_success_case": "false", - "dac_cert": "308201e43082018aa00302010202087a544040349b00cf300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000411d21f51aafae5d578a9be1ca3750706e14a9a0e15021c555ac6bdf0ec442fc1bbec8c7a59c717cd19309597313983544d3519cb1a62cde1f1556e3e977f24aba360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604145b1f5f73510c53d1f8787ddc4f02f34f0a353a98301f0603551d23041830168014820715b1b9e5b58ea9dc42b0d43577473f1f4aca300a06082a8648ce3d04030203480030450221009fa279aea34d0e6c5fed32cf23c1176023c99f0da7f19165a42ed6b221b5519e02206bbb3b292cecdc6c0d49d2883e4035fbe56cad06e26e71f33665510b50e2890f", - "pai_cert": "308201d43082017aa00302010202085663fd1c9559b5e8300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200043b7d5919bbc5927cf7488f4bca019974add75f7cc136516637ccce51af6fa84f556c466345b9595589faebeee98d27d75a18835160d418378ba844c3ff56b6a2a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414820715b1b9e5b58ea9dc42b0d43577473f1f4aca301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502210086b313c78ce16f8bda67d7c361348e148fa99e730b0b8810cdfca4e916107e4d02202532cef646f866ff3c5b48403c89bf700dec6d670b3d97626dfd59d9ab6a90d5", - "certification_declaration": "3082010106092a864886f70d010702a081f33081f0020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c0413494e5632303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204463044022017fd411eb2fa77c2979aa8042ab218ddd72cd4313f5c9e5df2d0f3904060736f02205de116d2bccd7d013fde28f289289490b39e9f54c0263f3824358c67c683453c", - "dac_private_key": "f60057ba92cc56dd563e9c5f6b616cbc5f12e4cec9fc039749209fe501d0bbbb", - "dac_public_key": "0411d21f51aafae5d578a9be1ca3750706e14a9a0e15021c555ac6bdf0ec442fc1bbec8c7a59c717cd19309597313983544d3519cb1a62cde1f1556e3e977f24ab" + "dac_cert": "308201e43082018aa00302010202086781e6683a5ec94f300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004021054e120ce46c5b786e3daa584c445ed1b2ea7eedd3fb7ea2c1500503942b7fa76939fa4e7360c4e3b841dbd2b117af3ced4d626a01c2f37625dba7549240ba360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041450b4faf1c696c2dae015de3bc2bf1802e5a1dadf301f0603551d230418301680146f1fd1d66033c30fabafe5368d9a1a0aa92cdaa2300a06082a8648ce3d04030203480030450220600af0f27aa45782135ba402ca48b298989d2dc9df186bb3b646c9835c7da167022100f0ac34bc9288e0ddfb704d260954aa8534a6af55a353f1775c1d1dcc0a9c327c", + "pai_cert": "308201d43082017aa00302010202087d18eaa970904f82300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200040abf40fe5cb032bc1b20cc67f04fab4efde24e48cc37da9f2e41d594c8aeec235d04b64ae53cc6c4a0e3b3790dd04bcaf139d23c524647cd9b9263ad9fd94e7aa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604146f1fd1d66033c30fabafe5368d9a1a0aa92cdaa2301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100dfa4111516bb23509070e55aa2c690f35905de69e8807105fdb298322f33dc280220055f8a0570cc15d4d379c1569ab3aa9e3f1da76848bd0a957653be395f9b02c7", + "certification_declaration": "3082010206092a864886f70d010702a081f43081f1020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c0413494e5632303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502201a65b8b75d451a236f57f0b9e72d1ff31912753052c6a74efb3148b7a04d9c83022100ab03902b380b47152e9afc60797f5c00da02c4184b44b3cb1bdefcaeb143c48d", + "dac_private_key": "296817e5d5eb1879897a613024a8483a8863b5a399dc0b534bafba2cdad1fd46", + "dac_public_key": "04021054e120ce46c5b786e3daa584c445ed1b2ea7eedd3fb7ea2c1500503942b7fa76939fa4e7360c4e3b841dbd2b117af3ced4d626a01c2f37625dba7549240b" } diff --git a/credentials/development/commissioner_dut/struct_cd_cert_id_missing/cd.der b/credentials/development/commissioner_dut/struct_cd_cert_id_missing/cd.der index 518b97bb99a143..d2a30326b0ca00 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cert_id_missing/cd.der and b/credentials/development/commissioner_dut/struct_cd_cert_id_missing/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cert_id_missing/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_cert_id_missing/dac-Cert.der index 43e17965fea34b..0e5c28396d76af 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cert_id_missing/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_cert_id_missing/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cert_id_missing/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_cert_id_missing/dac-Cert.pem index 556b27c7b7f4de..725e5075e1ab88 100644 --- a/credentials/development/commissioner_dut/struct_cd_cert_id_missing/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_cert_id_missing/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB4zCCAYqgAwIBAgIIMl0q2jMcrCMwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB4zCCAYqgAwIBAgIICMn7tKjYE+gwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -jAT8rEL/l6aVezTNe6Qq1PWx0St6h7cBIegym+vYySz+YPm+lGvRkNKS1ojXvCae -6WL7cCOoe8PPebSCOuD+qKNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFGfrwOcJQRfwmz8nRCFIVGX9KtFcMB8GA1UdIwQYMBaAFMMH -7FtCNNh6y1qMi5b6in+0HasvMAoGCCqGSM49BAMCA0cAMEQCIFqYUze8vAlF15t9 -r/wSauMNtIviEGUgqF6c9Bet47SVAiARz0N5rIHQbXumoeMTO8XKNCvSl5ATEjU2 -oB+gI58SyQ== +l3/1azs3ab+miXmCqYbAJ9UIZ7TGFeu86FXfvoA3Wc4RcHpagKuvcEW9lNoUjWbT +qqVhFadlI4PVYQPoeRj5OqNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFKTY5AHlpCyq/lAdB8PejdoJitreMB8GA1UdIwQYMBaAFP/i +DQIJ+kbfR1SNzvgScCFHrKU5MAoGCCqGSM49BAMCA0cAMEQCIAvZufoG8Mqy+Pjt +1BnKJM7+sNS/FrkE2RoCjlz6TxJYAiAQj1EMC/fojXgJg8DIWDFs1onUgOOTbOiV +mD2NxkGOcA== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_cert_id_missing/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_cert_id_missing/dac-Key.der index 58701706251589..341e6a65f27778 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cert_id_missing/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_cert_id_missing/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cert_id_missing/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_cert_id_missing/dac-Key.pem index e9e077eb5f14cc..2f3a71da77c7b9 100644 --- a/credentials/development/commissioner_dut/struct_cd_cert_id_missing/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_cert_id_missing/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIOog12VT5oTXDSObHUdQl5Rspoi+GggndqoqRapyORpaoAoGCCqGSM49 -AwEHoUQDQgAEjAT8rEL/l6aVezTNe6Qq1PWx0St6h7cBIegym+vYySz+YPm+lGvR -kNKS1ojXvCae6WL7cCOoe8PPebSCOuD+qA== +MHcCAQEEIJzLho7kwA5+8J3uV4gTtgUsJcUKUWGz9cx5btUc0L37oAoGCCqGSM49 +AwEHoUQDQgAEl3/1azs3ab+miXmCqYbAJ9UIZ7TGFeu86FXfvoA3Wc4RcHpagKuv +cEW9lNoUjWbTqqVhFadlI4PVYQPoeRj5Og== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_cert_id_missing/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_cert_id_missing/pai-Cert.der index 835a6d934a713d..ebd7403d278aa6 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cert_id_missing/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_cert_id_missing/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cert_id_missing/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_cert_id_missing/pai-Cert.pem index c9bba4d287164c..0b5a9a6fdd6849 100644 --- a/credentials/development/commissioner_dut/struct_cd_cert_id_missing/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_cert_id_missing/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIQdzlu1cJeWUwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1TCCAXqgAwIBAgIIL69Jy/an4rQwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAT0WZmBSOZ1DxUUTq6ctCYf02kyJlQh -FxS9yilARBpUFgT1hyOCHdQ2j2BS6cxhME0Ekn7orWTS+JaPiJgjPqldo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUwwfs -W0I02HrLWoyLlvqKf7Qdqy8wHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIgY5ckfakzrj/CrPOzMqmZ1bTEvL+5anrK80Xi -CvL3vJsCIQCCb9C5cghdmUXc0E5MguMalH70cluSQpslw/sD1I7B6g== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASsByeiDawMAgmgKer11mSqwBwJh+h7 +afRtK2xtNCQ2LP9FLQeu8TN+M/C/B9WWMuB6gp0cPyZmIMAUVFRhS0UZo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU/+IN +Agn6Rt9HVI3O+BJwIUespTkwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSQAwRgIhAKDKZRWg6qkzz+brGUo6kLEfOXMlyJ7Xcju5 +OdZsOpE5AiEAzRmkLIU6NNxEpzkXkiPGglMmnJVKhK2kpXREl1eLKH4= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_cert_id_missing/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_cert_id_missing/pai-Key.der index 6335ad071a79d1..cbc73d6705ed03 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cert_id_missing/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_cert_id_missing/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cert_id_missing/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_cert_id_missing/pai-Key.pem index e1930a6e8efe2a..a8821766d31473 100644 --- a/credentials/development/commissioner_dut/struct_cd_cert_id_missing/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_cert_id_missing/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIB0B3BOZDI/qoKQvssp+TkzMbyIVwXEc+BCHidMl82YuoAoGCCqGSM49 -AwEHoUQDQgAE9FmZgUjmdQ8VFE6unLQmH9NpMiZUIRcUvcopQEQaVBYE9Ycjgh3U -No9gUunMYTBNBJJ+6K1k0viWj4iYIz6pXQ== +MHcCAQEEID6S4QMHk3yNPEX1hDhWNHY9DQhLVxabYHkLMb5ByOcgoAoGCCqGSM49 +AwEHoUQDQgAErAcnog2sDAIJoCnq9dZkqsAcCYfoe2n0bStsbTQkNiz/RS0HrvEz +fjPwvwfVljLgeoKdHD8mZiDAFFRUYUtFGQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_cert_id_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_cert_id_missing/test_case_vector.json index e1d987efc62311..040eda54d7c636 100644 --- a/credentials/development/commissioner_dut/struct_cd_cert_id_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_cert_id_missing/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The certificate_id field is missing.", "is_success_case": "false", - "dac_cert": "308201e33082018aa0030201020208325d2ada331cac23300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200048c04fcac42ff97a6957b34cd7ba42ad4f5b1d12b7a87b70121e8329bebd8c92cfe60f9be946bd190d292d688d7bc269ee962fb7023a87bc3cf79b4823ae0fea8a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041467ebc0e7094117f09b3f274421485465fd2ad15c301f0603551d23041830168014c307ec5b4234d87acb5a8c8b96fa8a7fb41dab2f300a06082a8648ce3d040302034700304402205a985337bcbc0945d79b7daffc126ae30db48be2106520a85e9cf417ade3b495022011cf4379ac81d06d7ba6a1e3133bc5ca342bd2979013123536a01fa0239f12c9", - "pai_cert": "308201d43082017aa003020102020841dce5bb57097965300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004f459998148e6750f15144eae9cb4261fd369322654211714bdca2940441a541604f58723821dd4368f6052e9cc61304d04927ee8ad64d2f8968f8898233ea95da366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414c307ec5b4234d87acb5a8c8b96fa8a7fb41dab2f301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502206397247da933ae3fc2acf3b332a999d5b4c4bcbfb96a7acaf345e20af2f7bc9b022100826fd0b972085d9945dcd04e4c82e31a947ef4725b92429b25c3fb03d48ec1ea", - "certification_declaration": "3081ed06092a864886f70d010702a081df3081dc020103310d300b0609608648016503040201304806092a864886f70d010701a03b0439152000012501f1ff3602050080182503341224050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020448304602210087eb4707e94d0b3032b8ea1a20b63953968d25e28129a8a135d66386b14b53e80221008d841413fd65f1a5119c5c4616316cfae7c8cda576a28fd7fabe93b23fb168ac", - "dac_private_key": "ea20d76553e684d70d239b1d475097946ca688be1a082776aa2a45aa72391a5a", - "dac_public_key": "048c04fcac42ff97a6957b34cd7ba42ad4f5b1d12b7a87b70121e8329bebd8c92cfe60f9be946bd190d292d688d7bc269ee962fb7023a87bc3cf79b4823ae0fea8" + "dac_cert": "308201e33082018aa003020102020808c9fbb4a8d813e8300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004977ff56b3b3769bfa6897982a986c027d50867b4c615ebbce855dfbe803759ce11707a5a80abaf7045bd94da148d66d3aaa56115a7652383d56103e87918f93aa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414a4d8e401e5a42caafe501d07c3de8dda098adade301f0603551d23041830168014ffe20d0209fa46df47548dcef812702147aca539300a06082a8648ce3d040302034700304402200bd9b9fa06f0cab2f8f8edd419ca24cefeb0d4bf16b904d91a028e5cfa4f12580220108f510c0bf7e88d780983c0c858316cd689d480e3936ce895983d8dc6418e70", + "pai_cert": "308201d53082017aa00302010202082faf49cbf6a7e2b4300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004ac0727a20dac0c0209a029eaf5d664aac01c0987e87b69f46d2b6c6d3424362cff452d07aef1337e33f0bf07d59632e07a829d1c3f266620c0145454614b4519a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414ffe20d0209fa46df47548dcef812702147aca539301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100a0ca6515a0eaa933cfe6eb194a3a90b11f397325c89ed7723bb939d66c3a9139022100cd19a42c853a34dc44a739179223c68253269c954a84ada4a5744497578b287e", + "certification_declaration": "3081ec06092a864886f70d010702a081de3081db020103310d300b0609608648016503040201304806092a864886f70d010701a03b0439152000012501f1ff3602050080182503341224050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022019ca0856a34f33902e880d26b28b234eb866a7fca5c56d500fa0b50822235f8d022100b58b48d72a5c7570864b6774764ec2d5f2183302a1cf72c623fbed3ed6f06dcd", + "dac_private_key": "9ccb868ee4c00e7ef09dee578813b6052c25c50a5161b3f5cc796ed51cd0bdfb", + "dac_public_key": "04977ff56b3b3769bfa6897982a986c027d50867b4c615ebbce855dfbe803759ce11707a5a80abaf7045bd94da148d66d3aaa56115a7652383d56103e87918f93a" } diff --git a/credentials/development/commissioner_dut/struct_cd_cert_type_missing/cd.der b/credentials/development/commissioner_dut/struct_cd_cert_type_missing/cd.der index b29379e4d79165..69438cbfa06fc6 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cert_type_missing/cd.der and b/credentials/development/commissioner_dut/struct_cd_cert_type_missing/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cert_type_missing/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_cert_type_missing/dac-Cert.der index f50c9209d436a2..66fe4cba8f25f1 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cert_type_missing/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_cert_type_missing/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cert_type_missing/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_cert_type_missing/dac-Cert.pem index c316ac723db2c9..05fb399087efb6 100644 --- a/credentials/development/commissioner_dut/struct_cd_cert_type_missing/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_cert_type_missing/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB4zCCAYqgAwIBAgIIcGVd0lPSaCAwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5TCCAYqgAwIBAgIIdMFTkU3cd40wCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -jQBrxvGLuCXfb6Q0TXVC8xhrk7oie+okKVipM7kyRtS8OdqSUVRDfOaLHETa6qwR -ElM5cDyvpQ7NZXl09qOVPqNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFFlcHAE/e+EqLugeGMZ0NG/JVztxMB8GA1UdIwQYMBaAFIb7 -vJw1HBdp94XIROL0Qig8If2aMAoGCCqGSM49BAMCA0cAMEQCIAdiavS3RyqV1Cyd -nGbo9GONuZtECmnAbgEYN7T9PUGiAiAqlJ6e9Y/XgS7+xdxda6zV5lFuTav5Qydn -j4XRfp2QLw== +Qxkf0c2eprbM1bZkSD1okhhSr7Jrd+lFS5qvzxy72G+ph3sRwXMjGIsIS+S3GviG +YBvHmaVgIziMMQACHhL5kqNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFNNyjOO9nQLddsT30V2au0GzxhhxMB8GA1UdIwQYMBaAFEHJ +pPr668toRRTDjmU9OEhizfpdMAoGCCqGSM49BAMCA0kAMEYCIQCLzfbkUfMKPjeN +rrUNkq6pmSDDV+husvKQiIGvw7TMngIhAKzDZZ/3ipx934+0nfOF3hR/9cySrNVw +NKbhPP2o+/s8 -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_cert_type_missing/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_cert_type_missing/dac-Key.der index 31c961e441fd50..df6205d96b0882 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cert_type_missing/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_cert_type_missing/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cert_type_missing/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_cert_type_missing/dac-Key.pem index fd83bfb7e7a0ef..99c35159770b74 100644 --- a/credentials/development/commissioner_dut/struct_cd_cert_type_missing/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_cert_type_missing/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIE2nxS0uSqSCLqzUixT5zkFFJeE47scGDJryLtqf9K87oAoGCCqGSM49 -AwEHoUQDQgAEjQBrxvGLuCXfb6Q0TXVC8xhrk7oie+okKVipM7kyRtS8OdqSUVRD -fOaLHETa6qwRElM5cDyvpQ7NZXl09qOVPg== +MHcCAQEEIOCqQXk0IURvJqiwjZE7rWMuMqfquPCyXPk+I2xQx73joAoGCCqGSM49 +AwEHoUQDQgAEQxkf0c2eprbM1bZkSD1okhhSr7Jrd+lFS5qvzxy72G+ph3sRwXMj +GIsIS+S3GviGYBvHmaVgIziMMQACHhL5kg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_cert_type_missing/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_cert_type_missing/pai-Cert.der index 364790d931e240..4bf83d1a6d985d 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cert_type_missing/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_cert_type_missing/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cert_type_missing/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_cert_type_missing/pai-Cert.pem index e6ea29ec991018..945bf9a05b5be8 100644 --- a/credentials/development/commissioner_dut/struct_cd_cert_type_missing/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_cert_type_missing/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB0zCCAXqgAwIBAgIIBP0lej+YSSowCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1DCCAXqgAwIBAgIIZI0sZe6Cv0YwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASuu+BXXgG03u/GGyaxxlYC61UsSY2P -SixXg/7r9ANgay+1mmtZiwhqVyPu1jRJ+VBCKJJBiCbUqfoE0w8y4UZIo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUhvu8 -nDUcF2n3hchE4vRCKDwh/ZowHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDRwAwRAIgHDMxx0uVbkU1IrV3dWAkTpa+wddU/HlxYl9X -O0k8Gu0CIBIf1Wwd4liq8oAOA2bFuJZNJ50lR9xVOWN4zYR/XnvM +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQc7GJZjrX8i+qndSyWY3xqsiuMMUky +AzXa0NepBg9uHAEMU7/QfzM+5jNcQkAQNcbYxh8eC3dXv8yGBE0qmsRno2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUQcmk ++vrry2hFFMOOZT04SGLN+l0wHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIgZm5e9JSlm18FWbXSXwho3i2ye1E/rXTeos42 +wksgmzMCIQDTMPnrHnJZYAhik2LpfabLS3sFT0n2EJLLgt6IQVeLvA== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_cert_type_missing/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_cert_type_missing/pai-Key.der index 22531d57289087..68abb6165b6087 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cert_type_missing/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_cert_type_missing/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cert_type_missing/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_cert_type_missing/pai-Key.pem index 76c237a3813b4b..6e7575f424af4b 100644 --- a/credentials/development/commissioner_dut/struct_cd_cert_type_missing/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_cert_type_missing/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIHKJyysY7Cujm9B1qXoFsGCHHe95zEmgmZElOh7X998BoAoGCCqGSM49 -AwEHoUQDQgAErrvgV14BtN7vxhsmscZWAutVLEmNj0osV4P+6/QDYGsvtZprWYsI -alcj7tY0SflQQiiSQYgm1Kn6BNMPMuFGSA== +MHcCAQEEIEvPrIQYFWEJ9EuUmi7T93iLGPBngLMjmEvL2IWRD0DPoAoGCCqGSM49 +AwEHoUQDQgAEHOxiWY61/Ivqp3UslmN8arIrjDFJMgM12tDXqQYPbhwBDFO/0H8z +PuYzXEJAEDXG2MYfHgt3V7/MhgRNKprEZw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_cert_type_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_cert_type_missing/test_case_vector.json index 17e9726ae1671c..b35bbbe55e3092 100644 --- a/credentials/development/commissioner_dut/struct_cd_cert_type_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_cert_type_missing/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The certification_type field is missing.", "is_success_case": "false", - "dac_cert": "308201e33082018aa003020102020870655dd253d26820300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200048d006bc6f18bb825df6fa4344d7542f3186b93ba227bea242958a933b93246d4bc39da925154437ce68b1c44daeaac11125339703cafa50ecd657974f6a3953ea360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414595c1c013f7be12a2ee81e18c674346fc9573b71301f0603551d2304183016801486fbbc9c351c1769f785c844e2f442283c21fd9a300a06082a8648ce3d0403020347003044022007626af4b7472a95d42c9d9c66e8f4638db99b440a69c06e011837b4fd3d41a202202a949e9ef58fd7812efec5dc5d6bacd5e6516e4dabf94327678f85d17e9d902f", - "pai_cert": "308201d33082017aa003020102020804fd257a3f98492a300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004aebbe0575e01b4deefc61b26b1c65602eb552c498d8f4a2c5783feebf403606b2fb59a6b598b086a5723eed63449f950422892418826d4a9fa04d30f32e14648a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e0416041486fbbc9c351c1769f785c844e2f442283c21fd9a301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402201c3331c74b956e453522b5777560244e96bec1d754fc7971625f573b493c1aed0220121fd56c1de258aaf2800e0366c5b8964d279d2547dc55396378cd847f5e7bcc", - "certification_declaration": "3081ff06092a864886f70d010702a081f13081ee020103310d300b0609608648016503040201305b06092a864886f70d010701a04e044c152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450221009d5c0ccefc62c914828ee6bf1bf248b2a0e951e03948d94f1dcaf4a8fe037831022036a2f396bd672041aaf63225c9e555a0dde172a855d66f835a6136ecf2a8f2fc", - "dac_private_key": "4da7c52d2e4aa4822eacd48b14f9ce414525e138eec7060c9af22eda9ff4af3b", - "dac_public_key": "048d006bc6f18bb825df6fa4344d7542f3186b93ba227bea242958a933b93246d4bc39da925154437ce68b1c44daeaac11125339703cafa50ecd657974f6a3953e" + "dac_cert": "308201e53082018aa003020102020874c153914ddc778d300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000443191fd1cd9ea6b6ccd5b664483d68921852afb26b77e9454b9aafcf1cbbd86fa9877b11c17323188b084be4b71af886601bc799a56023388c3100021e12f992a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414d3728ce3bd9d02dd76c4f7d15d9abb41b3c61871301f0603551d2304183016801441c9a4fafaebcb684514c38e653d384862cdfa5d300a06082a8648ce3d04030203490030460221008bcdf6e451f30a3e378daeb50d92aea99920c357e86eb2f2908881afc3b4cc9e022100acc3659ff78a9c7ddf8fb49df385de147ff5cc92acd57034a6e13cfda8fbfb3c", + "pai_cert": "308201d43082017aa0030201020208648d2c65ee82bf46300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200041cec62598eb5fc8beaa7752c96637c6ab22b8c3149320335dad0d7a9060f6e1c010c53bfd07f333ee6335c42401035c6d8c61f1e0b7757bfcc86044d2a9ac467a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041441c9a4fafaebcb684514c38e653d384862cdfa5d301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203480030450220666e5ef494a59b5f0559b5d25f0868de2db27b513fad74dea2ce36c24b209b33022100d330f9eb1e72596008629362e97da6cb4b7b054f49f61092cb82de8841578bbc", + "certification_declaration": "3081fe06092a864886f70d010702a081f03081ed020103310d300b0609608648016503040201305b06092a864886f70d010701a04e044c152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044630440220026b2621f8587114476b1274bb00d4b7008b7f5c0357ae757742734300533d3c02203f242d6ba80a89211ff18b3a0787f8ce3bdc58b26dc99d3d565ccdb01446c3de", + "dac_private_key": "e0aa41793421446f26a8b08d913bad632e32a7eab8f0b25cf93e236c50c7bde3", + "dac_public_key": "0443191fd1cd9ea6b6ccd5b664483d68921852afb26b77e9454b9aafcf1cbbd86fa9877b11c17323188b084be4b71af886601bc799a56023388c3100021e12f992" } diff --git a/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/cd.der b/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/cd.der index add3eda3f06d8f..8e4c350d46c83a 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/cd.der and b/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/dac-Cert.der index 91f7c0f3e341f3..5ac03972b2c71f 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/dac-Cert.pem index f93891f6949b7f..7875f93839a748 100644 --- a/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB4zCCAYqgAwIBAgIIO3CHv0Rc1PgwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5DCCAYqgAwIBAgIIC9d0jKyav0gwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -R+HhzbcgEV45yI4QHVQta4adeoWXzwRbI2KUQQs8UHbOuE4MD8sHIBjkLWVvHIpf -CKUYjydBgExoMg3ko8bQW6NgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFAnu/HiD1V8WRlV7r/b1G39NUts2MB8GA1UdIwQYMBaAFNf4 -hvhvywuARlGVwm0zVVgtmgiqMAoGCCqGSM49BAMCA0cAMEQCICVQSS+oH+TR0wmO -0dL6o5xxmRVEy6thkrfYIYjyWvagAiAjTrdRqRR1ybDLPfPt/TPiIbT8zxcLc7aK -j9ISxCTaYg== +wj/V33C0LTTDruuEEElQ5h/bCA4do4aIxYiI54ilu+mm3OTAze/R3ySgXjDuhlW/ +vi1k1A9E2+D+x6LL5OZ8fqNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFCY3QYBeLelCRA79dJFAaiKnoLFiMB8GA1UdIwQYMBaAFPQI +cXl6OcxZ+4PaIpOxgKTwKMeQMAoGCCqGSM49BAMCA0gAMEUCIQDsA+nqWq6vX+ke +J69DtBr7tyu/V6MQ9fCQKQ0uke5g0gIgLSpLdMUP1GMYc12wDTO77XF62fg2T3Bz +KnCNYysYgnk= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/dac-Key.der index a094c89a416f60..7f1c1124cbf6c8 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/dac-Key.pem index 4212bcd5338f16..e49cde88106660 100644 --- a/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIAc0YflpU43791Tsdz285OYQtamLpxx7SShQesVPxyUjoAoGCCqGSM49 -AwEHoUQDQgAER+HhzbcgEV45yI4QHVQta4adeoWXzwRbI2KUQQs8UHbOuE4MD8sH -IBjkLWVvHIpfCKUYjydBgExoMg3ko8bQWw== +MHcCAQEEIP2HDXIzm+FatCYZCiMsNRUXBdvHukPK/7fJoX2FlUb1oAoGCCqGSM49 +AwEHoUQDQgAEwj/V33C0LTTDruuEEElQ5h/bCA4do4aIxYiI54ilu+mm3OTAze/R +3ySgXjDuhlW/vi1k1A9E2+D+x6LL5OZ8fg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/pai-Cert.der index 8a47de1517aaa7..46243cc01ea273 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/pai-Cert.pem index d50228b1a4655c..33cdf7b9c9f584 100644 --- a/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIKk9PSO9fSKswCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1DCCAXqgAwIBAgIISVRM2vIIKX0wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATRhc+mw9SD7L/g9qvOaI0ulS0QjGoU -dbygHSdsbjMSA2cRK01F3AaFpPAQY9qonlcEwvKeu/xSUmWvZHoMsIl+o2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU1/iG -+G/LC4BGUZXCbTNVWC2aCKowHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIgEujHAhbQSju1SnBH2zNqf+S20ciEVS6FbY8q -MY7vJSsCIQDQYhcctUef8iHKI6dbHzs6qeCQ1ceaRpcCKfolj8YfTA== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASEcqZ5heS/+y7bOH4snDBeLSod9lTM +HyYdacLxDXRLu6eaOq9oP/oW13tYunx1ctuIXT8lz4Mem24WnVIN+lsto2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU9Ahx +eXo5zFn7g9oik7GApPAox5AwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIhAJftZV+BZ1nW/0L21F3AJKfHC/CKM8ba0VUw +S7tek0DsAiA8zrbdWJn56mlc28vwNL3pmyiuiWEBIuK2CQHQcBJl4Q== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/pai-Key.der index d4c1a549fda02c..c52381d59a60b0 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/pai-Key.pem index 009ea45343d00a..2a5bf11d964864 100644 --- a/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIOZPLhGTC5/sJpUG23m4l1Yo4YkkXgRZJBePvzfycct2oAoGCCqGSM49 -AwEHoUQDQgAE0YXPpsPUg+y/4ParzmiNLpUtEIxqFHW8oB0nbG4zEgNnEStNRdwG -haTwEGPaqJ5XBMLynrv8UlJlr2R6DLCJfg== +MHcCAQEEILKpEQtdoi9kKjgktd5ZyUQumKIm5b9kei6Kx7zc8HYioAoGCCqGSM49 +AwEHoUQDQgAEhHKmeYXkv/su2zh+LJwwXi0qHfZUzB8mHWnC8Q10S7unmjqvaD/6 +Ftd7WLp8dXLbiF0/Jc+DHptuFp1SDfpbLQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/test_case_vector.json index 9922727ee6eaf2..ecdcb40be3f66e 100644 --- a/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_cert_type_wrong/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The certification_type field is set to invalid value.", "is_success_case": "false", - "dac_cert": "308201e33082018aa00302010202083b7087bf445cd4f8300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000447e1e1cdb720115e39c88e101d542d6b869d7a8597cf045b236294410b3c5076ceb84e0c0fcb072018e42d656f1c8a5f08a5188f2741804c68320de4a3c6d05ba360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041409eefc7883d55f1646557baff6f51b7f4d52db36301f0603551d23041830168014d7f886f86fcb0b80465195c26d3355582d9a08aa300a06082a8648ce3d040302034700304402202550492fa81fe4d1d3098ed1d2faa39c71991544cbab6192b7d82188f25af6a00220234eb751a91475c9b0cb3df3edfd33e221b4fccf170b73b68a8fd212c424da62", - "pai_cert": "308201d43082017aa00302010202082a4f4f48ef5f48ab300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004d185cfa6c3d483ecbfe0f6abce688d2e952d108c6a1475bca01d276c6e33120367112b4d45dc0685a4f01063daa89e5704c2f29ebbfc525265af647a0cb0897ea366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414d7f886f86fcb0b80465195c26d3355582d9a08aa301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022012e8c70216d04a3bb54a7047db336a7fe4b6d1c884552e856d8f2a318eef252b022100d062171cb5479ff221ca23a75b1f3b3aa9e090d5c79a46970229fa258fc61f4c", - "certification_declaration": "3082010306092a864886f70d010702a081f53081f2020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d3234240500240600250776982408ff360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100ed73b064eddf1e69529f4bd8ca1cae7b5ad1d5ee96255b979ab30fe27f02bf06022100a1bc5c3c1f2a4804f536c51acecd7703a206b7ee37793a54ad4aed914825b1ae", - "dac_private_key": "073461f969538dfbf754ec773dbce4e610b5a98ba71c7b4928507ac54fc72523", - "dac_public_key": "0447e1e1cdb720115e39c88e101d542d6b869d7a8597cf045b236294410b3c5076ceb84e0c0fcb072018e42d656f1c8a5f08a5188f2741804c68320de4a3c6d05b" + "dac_cert": "308201e43082018aa00302010202080bd7748cac9abf48300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004c23fd5df70b42d34c3aeeb84104950e61fdb080e1da38688c58888e788a5bbe9a6dce4c0cdefd1df24a05e30ee8655bfbe2d64d40f44dbe0fec7a2cbe4e67c7ea360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414263741805e2de942440efd7491406a22a7a0b162301f0603551d23041830168014f40871797a39cc59fb83da2293b180a4f028c790300a06082a8648ce3d0403020348003045022100ec03e9ea5aaeaf5fe91e27af43b41afbb72bbf57a310f5f090290d2e91ee60d202202d2a4b74c50fd46318735db00d33bbed717ad9f8364f70732a708d632b188279", + "pai_cert": "308201d43082017aa003020102020849544cdaf208297d300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200048472a67985e4bffb2edb387e2c9c305e2d2a1df654cc1f261d69c2f10d744bbba79a3aaf683ffa16d77b58ba7c7572db885d3f25cf831e9b6e169d520dfa5b2da366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414f40871797a39cc59fb83da2293b180a4f028c790301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502210097ed655f816759d6ff42f6d45dc024a7c70bf08a33c6dad155304bbb5e9340ec02203cceb6dd5899f9ea695cdbcbf034bde99b28ae89610122e2b60901d0701265e1", + "certification_declaration": "3082010206092a864886f70d010702a081f43081f1020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d3234240500240600250776982408ff360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100ade26d9e024856a06bcc2eb905a7781d45c5fe582577b207b1db32b413b5621e022016bf78e30d5e4a1c1790f6811517c7e401a390166d00ea280d9cc7b4f2c81fed", + "dac_private_key": "fd870d72339be15ab426190a232c35151705dbc7ba43caffb7c9a17d859546f5", + "dac_public_key": "04c23fd5df70b42d34c3aeeb84104950e61fdb080e1da38688c58888e788a5bbe9a6dce4c0cdefd1df24a05e30ee8655bfbe2d64d40f44dbe0fec7a2cbe4e67c7e" } diff --git a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/cd.der b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/cd.der index ef330113161563..9b3cb55bfb1418 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/cd.der and b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/dac-Cert.der index 7513a02224892d..ec27c17436f19d 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/dac-Cert.pem index 06f6d9a2932b12..1f20aed9826a34 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB4zCCAYqgAwIBAgIILgGHRW6c5ncwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5TCCAYqgAwIBAgIIbm1Cyk2mUPIwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -pkq74TU6MBGqU5Zi3XEPRZUMjaBxaM8L1L2ttRkBImS5XjuR/4oeU2RAOY7CzEqj -6FdTiJ3W8Xu7lXyqvsaleaNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFCgaa3hWcFwhq1tBXGca7MItc7f3MB8GA1UdIwQYMBaAFPZ5 -RIO5t2+z6ym83LIUds8pEc4AMAoGCCqGSM49BAMCA0cAMEQCID0402JhDkOkyRL0 -wM8FHbmitppvNxOC9zlBTnhpMPMOAiBomw+sFkYBwm7rSJ9kBakYTrNnBd8KMx4R -8JOvPcc2xQ== +qbb9dMhkxnZhqtDxoZsO1m0p5pDbXlDqafqnuyGqbRutQKGmlTjkUlYf+KrKXQBX +ixaL6FTUs/DTfKJ/cdRvXKNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFNVcipGRosRkgh4YTNnb6MsalqWIMB8GA1UdIwQYMBaAFB3N +ZBg/4tDOJY96me7jh6zZu+0kMAoGCCqGSM49BAMCA0kAMEYCIQDCdxtCChgj7qpr +FimoEyE7cj7EvJxAZonyzv9vyB22BQIhANnhAct75rZIsWv4MqydGtXQ456JvLu0 +4rvEVMUztXGq -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/dac-Key.der index 7d0ee14af3c306..941071441ebf3a 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/dac-Key.pem index add167402ff720..470bc511d74534 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIH0OgRWlMtVZmGuh9Eig3QyPdCiXtGB+CCXA9pwok5xooAoGCCqGSM49 -AwEHoUQDQgAEpkq74TU6MBGqU5Zi3XEPRZUMjaBxaM8L1L2ttRkBImS5XjuR/4oe -U2RAOY7CzEqj6FdTiJ3W8Xu7lXyqvsaleQ== +MHcCAQEEIMQATNqqXWIsKRvjcNuoVUas7wrkG693beAkceZc0aKOoAoGCCqGSM49 +AwEHoUQDQgAEqbb9dMhkxnZhqtDxoZsO1m0p5pDbXlDqafqnuyGqbRutQKGmlTjk +UlYf+KrKXQBXixaL6FTUs/DTfKJ/cdRvXA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/pai-Cert.der index 31ab12077be645..256060bc59fedf 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/pai-Cert.pem index d387ad4a6b1d08..221b6686b59868 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1TCCAXqgAwIBAgIIXCw6DxrI+3IwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB0zCCAXqgAwIBAgIIZSgLZhd5Yu0wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQCqjVPE8k5UCLeLEowiyBBND9ymWt+ -1sDX5nhnjl0pT2bzLahid5fj5zIu7JBjZIrp+onuVtkZIjnKQXd56W/vo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU9nlE -g7m3b7PrKbzcshR2zykRzgAwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSQAwRgIhAJx07GAgyBpQZ/SzLQa59zMUWwSI6tb3H79r -jHLa3VI+AiEA6a8VTUrXTOI0ywPvtjWWLNfEsAoD394VDMLXr4I1p3I= +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASp65LHyfx1jeip9Bl5VLuyBPpweVAb +mAtcW8ScBmJNzt2as8H7tslXPEtQa8UF6tk0sudvC82bDzDpKDcOjsfVo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUHc1k +GD/i0M4lj3qZ7uOHrNm77SQwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDRwAwRAIgPVSUJV1iAxS7FhgLNN1pX36ERqSfYZKE5jnv +Svt7wpICIB2KHyX095mTSZ2JmLSac8oUnlJ9bC77FDQI19OHs+a7 -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/pai-Key.der index a45d85137e8979..c0eb4f5869695b 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/pai-Key.pem index 815885b617c657..b32d5e1ad20e03 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIM7cLW050gsxFf6D5egt6GMN+QjFr6obzzUxoi2X0CmhoAoGCCqGSM49 -AwEHoUQDQgAEAqo1TxPJOVAi3ixKMIsgQTQ/cplrftbA1+Z4Z45dKU9m8y2oYneX -4+cyLuyQY2SK6fqJ7lbZGSI5ykF3eelv7w== +MHcCAQEEIM0GPHOtYsjnggsG8edYpGGa3esicz4vZzswzoO3IGx1oAoGCCqGSM49 +AwEHoUQDQgAEqeuSx8n8dY3oqfQZeVS7sgT6cHlQG5gLXFvEnAZiTc7dmrPB+7bJ +VzxLUGvFBerZNLLnbwvNmw8w6Sg3Do7H1Q== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/test_case_vector.json index e3aad9e7fd8dd5..50816286f29ead 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha1/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: Invalid CMS digest algorithm SHA1.", "is_success_case": "false", - "dac_cert": "308201e33082018aa00302010202082e0187456e9ce677300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004a64abbe1353a3011aa539662dd710f45950c8da07168cf0bd4bdadb519012264b95e3b91ff8a1e536440398ec2cc4aa3e85753889dd6f17bbb957caabec6a579a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414281a6b7856705c21ab5b415c671aecc22d73b7f7301f0603551d23041830168014f6794483b9b76fb3eb29bcdcb21476cf2911ce00300a06082a8648ce3d040302034700304402203d38d362610e43a4c912f4c0cf051db9a2b69a6f371382f739414e786930f30e0220689b0fac164601c26eeb489f6405a9184eb36705df0a331e11f093af3dc736c5", - "pai_cert": "308201d53082017aa00302010202085c2c3a0f1ac8fb72300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000402aa354f13c9395022de2c4a308b2041343f72996b7ed6c0d7e678678e5d294f66f32da8627797e3e7322eec9063648ae9fa89ee56d9192239ca417779e96fefa366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414f6794483b9b76fb3eb29bcdcb21476cf2911ce00301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203490030460221009c74ec6020c81a5067f4b32d06b9f733145b0488ead6f71fbf6b8c72dadd523e022100e9af154d4ad74ce234cb03efb635962cd7c4b00a03dfde150cc2d7af8235a772", - "certification_declaration": "3081fd06092a864886f70d010702a081ef3081ec0201033109300706052b0e03021a305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204463044022023716c7ca3a0d8b6f0a052e075b220fc2b845b230806f4226d015551021afb13022038c9ee68dc4e153a53ca69974fef3b339fcd718baa28d3024501e55f4f6f3965", - "dac_private_key": "7d0e8115a532d559986ba1f448a0dd0c8f742897b4607e0825c0f69c28939c68", - "dac_public_key": "04a64abbe1353a3011aa539662dd710f45950c8da07168cf0bd4bdadb519012264b95e3b91ff8a1e536440398ec2cc4aa3e85753889dd6f17bbb957caabec6a579" + "dac_cert": "308201e53082018aa00302010202086e6d42ca4da650f2300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004a9b6fd74c864c67661aad0f1a19b0ed66d29e690db5e50ea69faa7bb21aa6d1bad40a1a69538e452561ff8aaca5d00578b168be854d4b3f0d37ca27f71d46f5ca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414d55c8a9191a2c464821e184cd9dbe8cb1a96a588301f0603551d230418301680141dcd64183fe2d0ce258f7a99eee387acd9bbed24300a06082a8648ce3d0403020349003046022100c2771b420a1823eeaa6b1629a813213b723ec4bc9c406689f2ceff6fc81db605022100d9e101cb7be6b648b16bf832ac9d1ad5d0e39e89bcbbb4e2bbc454c533b571aa", + "pai_cert": "308201d33082017aa003020102020865280b66177962ed300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004a9eb92c7c9fc758de8a9f4197954bbb204fa7079501b980b5c5bc49c06624dcedd9ab3c1fbb6c9573c4b506bc505ead934b2e76f0bcd9b0f30e928370e8ec7d5a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604141dcd64183fe2d0ce258f7a99eee387acd9bbed24301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402203d5494255d620314bb16180b34dd695f7e8446a49f619284e639ef4afb7bc29202201d8a1f25f4f79993499d8998b49a73ca149e527d6c2efb143408d7d387b3e6bb", + "certification_declaration": "3081fe06092a864886f70d010702a081f03081ed0201033109300706052b0e03021a305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100cc6d9e30253e6de04c586eea69a587a71cd6f0936aea09fd2ef5b53e93b5278702201ed54646c500db8d7aea993fd81f729a22a86957b094db142eda2d5e68a6d00b", + "dac_private_key": "c4004cdaaa5d622c291be370dba85546acef0ae41baf776de02471e65cd1a28e", + "dac_public_key": "04a9b6fd74c864c67661aad0f1a19b0ed66d29e690db5e50ea69faa7bb21aa6d1bad40a1a69538e452561ff8aaca5d00578b168be854d4b3f0d37ca27f71d46f5c" } diff --git a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/cd.der b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/cd.der index 2570c5b433239b..475e2320453b13 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/cd.der and b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/dac-Cert.der index 4b530235ebc3d8..a5dd30714dac30 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/dac-Cert.pem index c622261bdb379f..7f4824c302def2 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5TCCAYqgAwIBAgIIEi/iMIBYtXQwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5TCCAYqgAwIBAgIISKU4M8BWiB4wCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -yC6yDoVO/N7/IHkdYc7+A6/RwW3flNd+A5OSIkIz/E7JEaOqt2MixUM9buOeBtIq -+wmi1+et9cRs8dLtIgHlcaNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFJIWJu+gcJnUe8d+IaOBlGLKi0D7MB8GA1UdIwQYMBaAFAMk -/5Mjpqe0rvPRF4eLS/KuBd6EMAoGCCqGSM49BAMCA0kAMEYCIQCQIi0Lt83lBfJn -TCKCVuoUSE5CTNZEVjM51X8Iyg18HQIhAIfcd4K/Psy3wRyEno+HT3o49WZgP0Fb -kE6bxT3PRvYe +dqqHm6oQEjtRk02BqnDueNw9IMoeDny1PkEdvSV5MTkQ5Ben6/Zp6+VloZ8MZA2/ +gIxY4CMu0DvvE9/wJFB4/6NgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFI8ovkl7pVxNprHkyeqn5AJSxhlhMB8GA1UdIwQYMBaAFL1L +VQW/LTZJKIJUOJBDW0tBkT+GMAoGCCqGSM49BAMCA0kAMEYCIQDFpPxV428batig +pjdgk7tgNmqUXfNPRJk1aDw2G+YDMwIhAOmrmjPc3K9qe/nFAoX7KNhdK4XP5+JM +BHamHnljyJlF -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/dac-Key.der index bfb142854125db..c346570bb00587 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/dac-Key.pem index d3741aa0684a44..3573c6164f28c4 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIJPS4BZKmRTZiTQaBoisjfE6PGMozB3C3x7w1c0XX/tZoAoGCCqGSM49 -AwEHoUQDQgAEyC6yDoVO/N7/IHkdYc7+A6/RwW3flNd+A5OSIkIz/E7JEaOqt2Mi -xUM9buOeBtIq+wmi1+et9cRs8dLtIgHlcQ== +MHcCAQEEIOK6NPP0m2OJCcYd3rFdoaZlVeAhOiOm9ZbtS5dNYWZ9oAoGCCqGSM49 +AwEHoUQDQgAEdqqHm6oQEjtRk02BqnDueNw9IMoeDny1PkEdvSV5MTkQ5Ben6/Zp +6+VloZ8MZA2/gIxY4CMu0DvvE9/wJFB4/w== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/pai-Cert.der index d222d23cfc8c9f..3e319cf12e99f4 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/pai-Cert.pem index 2a1542ffab7cf8..d12e6013c58864 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIF00YgRODnFQwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1DCCAXqgAwIBAgIIITG3VmD3G9QwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARHVZCKDsa9hPiSdP+hoIIFE7mZWnTP -SW27STmfi8qTZdh97gLQjKgi44x9qWKIVD3myOw6UOZhlNbUzthfZ8Pxo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUAyT/ -kyOmp7Su89EXh4tL8q4F3oQwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIgXhlFRpURnDHndgPJj5jTQor2NCEFlkhOv1F1 -Nj6LxEMCIQD3U29Qbeh30HDx4kSQJC/FYcGzOeEnV54PzDPYOZL7xw== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQtwnbAQX9fhAzJNi0x9yaqJxma+m+5 ++/guG2fbSSCg12AVRBSEMopDQko/XaFvGt0Ivl0qFlbTHr3c1jlPC3VYo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUvUtV +Bb8tNkkoglQ4kENbS0GRP4YwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIhALe5Yy7GcrPD/K7WDgHWTPxr0u0Tn/OV36tX +jj19+KMOAiBCqxCu1rMKYbL9/Ju7L2PsG+csiIpSfNUiQvf3htprzA== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/pai-Key.der index b7fa65180fe74b..02a042a58c6a68 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/pai-Key.pem index c74c21e4f07d2e..389a170b4f684f 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIEeu67/ISo1LO5qCc7od2RSl9D+iPHLHzXfjwhCE08cyoAoGCCqGSM49 -AwEHoUQDQgAER1WQig7GvYT4knT/oaCCBRO5mVp0z0ltu0k5n4vKk2XYfe4C0Iyo -IuOMfaliiFQ95sjsOlDmYZTW1M7YX2fD8Q== +MHcCAQEEIMeqqc2505KlX/H5wA5VRj4PdggDn1oovmWACOa6s+fyoAoGCCqGSM49 +AwEHoUQDQgAELcJ2wEF/X4QMyTYtMfcmqicZmvpvufv4Lhtn20kgoNdgFUQUhDKK +Q0JKP12hbxrdCL5dKhZW0x693NY5Twt1WA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/test_case_vector.json index a0966bf63fac87..bac15927e1a0c0 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_cms_digest_algo_sha256/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: Valid CMS digest algorithm SHA256.", "is_success_case": "true", - "dac_cert": "308201e53082018aa0030201020208122fe2308058b574300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004c82eb20e854efcdeff20791d61cefe03afd1c16ddf94d77e039392224233fc4ec911a3aab76322c5433d6ee39e06d22afb09a2d7e7adf5c46cf1d2ed2201e571a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414921626efa07099d47bc77e21a3819462ca8b40fb301f0603551d230418301680140324ff9323a6a7b4aef3d117878b4bf2ae05de84300a06082a8648ce3d040302034900304602210090222d0bb7cde505f2674c228256ea14484e424cd644563339d57f08ca0d7c1d02210087dc7782bf3eccb7c11c849e8f874f7a38f566603f415b904e9bc53dcf46f61e", - "pai_cert": "308201d43082017aa0030201020208174d188113839c54300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200044755908a0ec6bd84f89274ffa1a0820513b9995a74cf496dbb49399f8bca9365d87dee02d08ca822e38c7da96288543de6c8ec3a50e66194d6d4ced85f67c3f1a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604140324ff9323a6a7b4aef3d117878b4bf2ae05de84301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502205e19454695119c31e77603c98f98d3428af634210596484ebf5175363e8bc443022100f7536f506de877d070f1e24490242fc561c1b339e127579e0fcc33d83992fbc7", - "certification_declaration": "3082010206092a864886f70d010702a081f43081f1020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100a5ea65630305148e481ad89839b6d8fd4471fa4535e5bb8624187e1e7367e6d7022064925c0cbdb5afc7cf9a6d527ba01ec58a999919c3a8442b7841cab1c62120f0", - "dac_private_key": "93d2e0164a9914d989341a0688ac8df13a3c6328cc1dc2df1ef0d5cd175ffb59", - "dac_public_key": "04c82eb20e854efcdeff20791d61cefe03afd1c16ddf94d77e039392224233fc4ec911a3aab76322c5433d6ee39e06d22afb09a2d7e7adf5c46cf1d2ed2201e571" + "dac_cert": "308201e53082018aa003020102020848a53833c056881e300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000476aa879baa10123b51934d81aa70ee78dc3d20ca1e0e7cb53e411dbd2579313910e417a7ebf669ebe565a19f0c640dbf808c58e0232ed03bef13dff0245078ffa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604148f28be497ba55c4da6b1e4c9eaa7e40252c61961301f0603551d23041830168014bd4b5505bf2d36492882543890435b4b41913f86300a06082a8648ce3d0403020349003046022100c5a4fc55e36f1b6ad8a0a6376093bb60366a945df34f449935683c361be60333022100e9ab9a33dcdcaf6a7bf9c50285fb28d85d2b85cfe7e24c0476a61e7963c89945", + "pai_cert": "308201d43082017aa00302010202082131b75660f71bd4300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200042dc276c0417f5f840cc9362d31f726aa27199afa6fb9fbf82e1b67db4920a0d76015441484328a43424a3f5da16f1add08be5d2a1656d31ebddcd6394f0b7558a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414bd4b5505bf2d36492882543890435b4b41913f86301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100b7b9632ec672b3c3fcaed60e01d64cfc6bd2ed139ff395dfab578e3d7df8a30e022042ab10aed6b30a61b2fdfc9bbb2f63ec1be72c888a527cd52242f7f786da6bcc", + "certification_declaration": "3082010306092a864886f70d010702a081f53081f2020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100d934e704af35d291bce12c7354a62be19849735e8efec88d59bb28fe5f657df5022100bbacda2cbeda18eb656e404d3a970978506024449ea8cd68fb8f769d67ad73de", + "dac_private_key": "e2ba34f3f49b638909c61ddeb15da1a66555e0213a23a6f596ed4b974d61667d", + "dac_public_key": "0476aa879baa10123b51934d81aa70ee78dc3d20ca1e0e7cb53e411dbd2579313910e417a7ebf669ebe565a19f0c640dbf808c58e0232ed03bef13dff0245078ff" } diff --git a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/cd.der b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/cd.der index e0b70e1e245260..dffc045be1177f 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/cd.der and b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/dac-Cert.der index 1d68a4106932c5..31d1e0e77f0b4f 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/dac-Cert.pem index 99127a1c2c6d9a..32d323d8d0404c 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5DCCAYqgAwIBAgIICHwd/zKjS1kwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5DCCAYqgAwIBAgIIaazjpdp9GlUwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -GpThL/7QNxWPh7cGoWAU6ibBNBpOnTbKRcTeOnuaW+r3L8ro6BeRq6d7IQb7FYkL -oXvItHLmASDSDnEOXUW8UaNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFC5BHVhOM7cwUcmNUhugB4Bi3fXHMB8GA1UdIwQYMBaAFCO1 -YTp13J75z35Xzy25ocYtKDclMAoGCCqGSM49BAMCA0gAMEUCIDKkESKy1ZnCKkZw -4vJeZvbV5u5eRySgQVpMZmwJbSitAiEAlTBSBSodgP/OoAupJyvbwn6UcIMKgeh6 -J1GtQEYSOSY= +uRQnH/yQQzVCF2wpAIpRUFfLHGEidUWYpU/MWIbjSjwQnqz7Q0PgibBTPs8H5S5/ +cSP1bp9iCTqA/fz+CuCrvKNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFFrbZzlwxWTb+4ABPlRwbFFPaoT7MB8GA1UdIwQYMBaAFIr1 +oy+jsBNYxUGNwpcjMM+ZuWSLMAoGCCqGSM49BAMCA0gAMEUCIHhM7WPf4MY+7/Nc +/wXWCZxZ+5Gqicqs6SNU5JFl9zkqAiEAybT4Leql+aKVKZLmCOqmXFLhiCmPF4qf +Y2lF/NrjbqU= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/dac-Key.der index 4c5734b4a3a3c6..3236797a5bfd30 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/dac-Key.pem index 71cb096cb871ca..7c69c6b0a55ff5 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIAlPFon7NwOFiKWzBkDcsxblgc8h/iEVCMB8H5DsfrZsoAoGCCqGSM49 -AwEHoUQDQgAEGpThL/7QNxWPh7cGoWAU6ibBNBpOnTbKRcTeOnuaW+r3L8ro6BeR -q6d7IQb7FYkLoXvItHLmASDSDnEOXUW8UQ== +MHcCAQEEIIL+r+uRByApNudYfV1lzHa9/0P77f2VYXlEg1YFcZYPoAoGCCqGSM49 +AwEHoUQDQgAEuRQnH/yQQzVCF2wpAIpRUFfLHGEidUWYpU/MWIbjSjwQnqz7Q0Pg +ibBTPs8H5S5/cSP1bp9iCTqA/fz+CuCrvA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/pai-Cert.der index 346aee6c3e0040..50d44ba7697988 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/pai-Cert.pem index d8a06119051e00..975c9e8d4de97f 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIYl01dUM84EQwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1TCCAXqgAwIBAgIIUk5HAkGBwVswCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS5sBhFJPDCRnnxMZVtVhfmwmFAjGEX -Kg4/JuayI1X7jOh+Dtbyw2injqRvaZ+khyQj1J1zYGPHaruvT1tGlpToo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUI7Vh -OnXcnvnPflfPLbmhxi0oNyUwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIhAIR5RcsMEsNK5GzQDOW2KMbv74PSrSlhAwdC -PxUAs/xRAiBwaWyncOzoQRv0sN5DUMYR/vzwqlKb5kMRJDNfoWlOSw== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATbCx+PkqubkGCox/frM8m0VSQZfnGp +TWS+NxnKbySmRNaf5rlspqETBgLRGaTvBfe0ufKvolS+vZCcSk4UqSMYo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUivWj +L6OwE1jFQY3ClyMwz5m5ZIswHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSQAwRgIhANa76pQpBvjOjUMZxs/IzrMoZ7jUrXf2SzLW +t1QMdl79AiEAyvn5GkwlbUP/qt+YHvY+DGx8LmUgErlZ228kyKBRyW4= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/pai-Key.der index 3987a190fb32e0..c1eb28fad71d70 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/pai-Key.pem index b3ce709ab57ce7..411d7bdc9c45b7 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIO6EaL3vV2y8wA9Ad3xPsRa6TcbQPVrj0TqgDmR8mFoMoAoGCCqGSM49 -AwEHoUQDQgAEubAYRSTwwkZ58TGVbVYX5sJhQIxhFyoOPybmsiNV+4zofg7W8sNo -p46kb2mfpIckI9Sdc2Bjx2q7r09bRpaU6A== +MHcCAQEEIMVws14K7CCWVihcGsakKSLK05AKZ9WER1LNRkBSU4OUoAoGCCqGSM49 +AwEHoUQDQgAE2wsfj5Krm5BgqMf36zPJtFUkGX5xqU1kvjcZym8kpkTWn+a5bKah +EwYC0Rmk7wX3tLnyr6JUvr2QnEpOFKkjGA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/test_case_vector.json index 7eac89a1a15e15..46ec5639c57fcc 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_msac/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: Invalid CMS eContentType is set to Microsoft Authenticode [MSAC] OID = { 1.3.6.1.4.1.311.2.1.4 }.", "is_success_case": "false", - "dac_cert": "308201e43082018aa0030201020208087c1dff32a34b59300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200041a94e12ffed037158f87b706a16014ea26c1341a4e9d36ca45c4de3a7b9a5beaf72fcae8e81791aba77b2106fb15890ba17bc8b472e60120d20e710e5d45bc51a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604142e411d584e33b73051c98d521ba0078062ddf5c7301f0603551d2304183016801423b5613a75dc9ef9cf7e57cf2db9a1c62d283725300a06082a8648ce3d0403020348003045022032a41122b2d599c22a4670e2f25e66f6d5e6ee5e4724a0415a4c666c096d28ad022100953052052a1d80ffcea00ba9272bdbc27e9470830a81e87a2751ad4046123926", - "pai_cert": "308201d43082017aa0030201020208625d3575433ce044300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004b9b0184524f0c24679f131956d5617e6c261408c61172a0e3f26e6b22355fb8ce87e0ed6f2c368a78ea46f699fa4872423d49d736063c76abbaf4f5b469694e8a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e0416041423b5613a75dc9ef9cf7e57cf2db9a1c62d283725301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100847945cb0c12c34ae46cd00ce5b628c6efef83d2ad29610307423f1500b3fc51022070696ca770ece8411bf4b0de4350c611fefcf0aa529be6431124335fa1694e4b", - "certification_declaration": "3082010506092a864886f70d010702a081f73081f4020103310d300b06096086480165030402013061060c060a2b060104018237020104a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502201421395e60a0ea620f02ae238cd5b9841c4dd2684c60091e28abfa02b02b3f250221009b501736577bbaf4a9fe4a9fdaad01ead1c5e2625d36c8b1ed552b56d8d1b468", - "dac_private_key": "094f1689fb37038588a5b30640dcb316e581cf21fe211508c07c1f90ec7eb66c", - "dac_public_key": "041a94e12ffed037158f87b706a16014ea26c1341a4e9d36ca45c4de3a7b9a5beaf72fcae8e81791aba77b2106fb15890ba17bc8b472e60120d20e710e5d45bc51" + "dac_cert": "308201e43082018aa003020102020869ace3a5da7d1a55300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004b914271ffc90433542176c29008a515057cb1c6122754598a54fcc5886e34a3c109eacfb4343e089b0533ecf07e52e7f7123f56e9f62093a80fdfcfe0ae0abbca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604145adb673970c564dbfb80013e54706c514f6a84fb301f0603551d230418301680148af5a32fa3b01358c5418dc2972330cf99b9648b300a06082a8648ce3d04030203480030450220784ced63dfe0c63eeff35cff05d6099c59fb91aa89caace92354e49165f7392a022100c9b4f82deaa5f9a2952992e608eaa65c52e188298f178a9f636945fcdae36ea5", + "pai_cert": "308201d53082017aa0030201020208524e47024181c15b300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004db0b1f8f92ab9b9060a8c7f7eb33c9b45524197e71a94d64be3719ca6f24a644d69fe6b96ca6a1130602d119a4ef05f7b4b9f2afa254bebd909c4a4e14a92318a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604148af5a32fa3b01358c5418dc2972330cf99b9648b301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100d6bbea942906f8ce8d4319c6cfc8ceb32867b8d4ad77f64b32d6b7540c765efd022100caf9f91a4c256d43ffaadf981ef63e0c6c7c2e652012b959db6f24c8a051c96e", + "certification_declaration": "3082010506092a864886f70d010702a081f73081f4020103310d300b06096086480165030402013061060c060a2b060104018237020104a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022060f76293c68c5ba66807336606c0952eb9d822a719ff4d141fb8e4b0c1229576022100ca79502edac5331d966e42eb23d2916d9d79482de9d32858c4bb3468ae90f77c", + "dac_private_key": "82feafeb9107202936e7587d5d65cc76bdff43fbedfd9561794483560571960f", + "dac_public_key": "04b914271ffc90433542176c29008a515057cb1c6122754598a54fcc5886e34a3c109eacfb4343e089b0533ecf07e52e7f7123f56e9f62093a80fdfcfe0ae0abbc" } diff --git a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/cd.der b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/cd.der index fc45cd70e72011..e4febc48721b5e 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/cd.der and b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/dac-Cert.der index 3f22bff4a0f49c..17a2c412a79827 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/dac-Cert.pem index f2a902c9d03b42..cdc6a08ab94256 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB4zCCAYqgAwIBAgIIPdMLkeVstGYwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5DCCAYqgAwIBAgIII8f2dsMKtOQwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -16gc704lreu/RKUduFNo6NzJAmgee/PYr9He+4wI4egpNTt+Jg+IdRpV+ih7F6UG -zZKT2D7JWvj+t5naTVJnAaNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFIgpPFPjTY17JQojQFh7QOZNxp82MB8GA1UdIwQYMBaAFDeF -i+5KOyiAIoinLoIBETWbpv51MAoGCCqGSM49BAMCA0cAMEQCIFVfibQknxyHYYNj -jCmkp3As53v7/A6T12Oj+lqgyv4BAiB6P+88ldBxAnGVNkbC5/xMFM/OpU/+LPhk -wnoUMDUZew== +IIhcUMf6Uiyb7dMFrWrpL20yfnrVOQ6qQ+JoE3Ywp3dvSR4HB/e8jpcIrrq6WPSQ +6w8FnZQgTF8/BYN1tJhyu6NgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFHXlAz5nm1QOc7VTjKJPhh9RzllXMB8GA1UdIwQYMBaAFNFs +uoOFh/8nd1XG1P6SQNyPci7kMAoGCCqGSM49BAMCA0gAMEUCIBnqSp0QMzsorz+3 +mTAJqqhEKdUQ3yciI9aeVI6i3Q5SAiEAs6gImdOLNL+9pP30jMJA0WbZUHmvrO6U +uyA2WTdwwmo= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/dac-Key.der index f623c42a1b0f76..cebe3b5580e651 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/dac-Key.pem index 0f35e72ba49602..032e1067ffb3ec 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIF+gpplUh1GvzEkgpeszSvIxLypMHGI8rvwVHEG0J4AyoAoGCCqGSM49 -AwEHoUQDQgAE16gc704lreu/RKUduFNo6NzJAmgee/PYr9He+4wI4egpNTt+Jg+I -dRpV+ih7F6UGzZKT2D7JWvj+t5naTVJnAQ== +MHcCAQEEIOQQdgxUj4Gak8WZXTlPUQPorgIybsKoW5G9pz1OjbsuoAoGCCqGSM49 +AwEHoUQDQgAEIIhcUMf6Uiyb7dMFrWrpL20yfnrVOQ6qQ+JoE3Ywp3dvSR4HB/e8 +jpcIrrq6WPSQ6w8FnZQgTF8/BYN1tJhyuw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/pai-Cert.der index 7909603eda7e34..65c9b4d3b49234 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/pai-Cert.pem index c6cf90fc98c1e2..0d7d7472b25078 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIOW38WinyliIwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1TCCAXqgAwIBAgIIKzJhyani0/cwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARMCz03jxIxvpuvO3Mh431jAbGrcvmq -XpdRZp6HHytywW9vmBajtXBb6RuUoemSvsDKmJNBTQG3x9bEXa1S2Lk0o2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUN4WL -7ko7KIAiiKcuggERNZum/nUwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIgXTtnLiXM88qiOp1zarIChDZqQXOu4CDmAMnL -5HaQL8YCIQCWQf1OTcBcjIgBn3s09tlFGbGQipOXcVQzXQG3UGnX/g== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQH7IWQkm2ybCC+iwNOOqeSiEy0OyLh +x2Qpd7uLRsmMX7QFiq53sexlHJYSyU8mnEim05uD4U3iLtIFl4w3FNmSo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU0Wy6 +g4WH/yd3VcbU/pJA3I9yLuQwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSQAwRgIhAKtUne/gtPNiAtpbQq/gLKgoDaBLTBvhyaa7 +v4y9PPZtAiEAq+d+9LA+0BRV92/5ZoyXW71xXCCMUGQcCZK+HcDa3+k= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/pai-Key.der index c13d7e9fe30d45..9fa0571af76195 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/pai-Key.pem index 12ecdb4d7f08c2..134e08335b466c 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIOOt0X7+bPYEHc3GWS0wGKlA+70IgyW5HQdr4eKP3K0AoAoGCCqGSM49 -AwEHoUQDQgAETAs9N48SMb6brztzIeN9YwGxq3L5ql6XUWaehx8rcsFvb5gWo7Vw -W+kblKHpkr7AypiTQU0Bt8fWxF2tUti5NA== +MHcCAQEEIEUTf3EIxcJR2kdie5K116J+LfXPJlnAAOWJogsE0yxAoAoGCCqGSM49 +AwEHoUQDQgAEB+yFkJJtsmwgvosDTjqnkohMtDsi4cdkKXe7i0bJjF+0BYqud7Hs +ZRyWEslPJpxIptObg+FN4i7SBZeMNxTZkg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/test_case_vector.json index d4163b88877681..6663786a4a2920 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_cms_econtent_type_pkcs7_data/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: Valid CMS eContentType pkcs7-data.", "is_success_case": "true", - "dac_cert": "308201e33082018aa00302010202083dd30b91e56cb466300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004d7a81cef4e25adebbf44a51db85368e8dcc902681e7bf3d8afd1defb8c08e1e829353b7e260f88751a55fa287b17a506cd9293d83ec95af8feb799da4d526701a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041488293c53e34d8d7b250a2340587b40e64dc69f36301f0603551d2304183016801437858bee4a3b28802288a72e820111359ba6fe75300a06082a8648ce3d04030203470030440220555f89b4249f1c876183638c29a4a7702ce77bfbfc0e93d763a3fa5aa0cafe0102207a3fef3c95d0710271953646c2e7fc4c14cfcea54ffe2cf864c27a143035197b", - "pai_cert": "308201d43082017aa0030201020208396dfc5a29f29622300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200044c0b3d378f1231be9baf3b7321e37d6301b1ab72f9aa5e9751669e871f2b72c16f6f9816a3b5705be91b94a1e992bec0ca9893414d01b7c7d6c45dad52d8b934a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e0416041437858bee4a3b28802288a72e820111359ba6fe75301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502205d3b672e25ccf3caa23a9d736ab20284366a4173aee020e600c9cbe476902fc60221009641fd4e4dc05c8c88019f7b34f6d94519b1908a93977154335d01b75069d7fe", - "certification_declaration": "3082010106092a864886f70d010702a081f33081f0020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402206b479b74f2d3ad86fafca5e20ed8cc719306841c90b4330637e960766fad658802203e3f0c886f6bc87467886a16388a5c3e0cf21e3c1b2e642129f8d1537ae9e3c3", - "dac_private_key": "5fa0a699548751afcc4920a5eb334af2312f2a4c1c623caefc151c41b4278032", - "dac_public_key": "04d7a81cef4e25adebbf44a51db85368e8dcc902681e7bf3d8afd1defb8c08e1e829353b7e260f88751a55fa287b17a506cd9293d83ec95af8feb799da4d526701" + "dac_cert": "308201e43082018aa003020102020823c7f676c30ab4e4300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000420885c50c7fa522c9bedd305ad6ae92f6d327e7ad5390eaa43e268137630a7776f491e0707f7bc8e9708aebaba58f490eb0f059d94204c5f3f058375b49872bba360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041475e5033e679b540e73b5538ca24f861f51ce5957301f0603551d23041830168014d16cba838587ff277755c6d4fe9240dc8f722ee4300a06082a8648ce3d0403020348003045022019ea4a9d10333b28af3fb7993009aaa84429d510df272223d69e548ea2dd0e52022100b3a80899d38b34bfbda4fdf48cc240d166d95079afacee94bb2036593770c26a", + "pai_cert": "308201d53082017aa00302010202082b3261c9a9e2d3f7300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000407ec8590926db26c20be8b034e3aa792884cb43b22e1c7642977bb8b46c98c5fb4058aae77b1ec651c9612c94f269c48a6d39b83e14de22ed205978c3714d992a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414d16cba838587ff277755c6d4fe9240dc8f722ee4301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100ab549defe0b4f36202da5b42afe02ca8280da04b4c1be1c9a6bbbf8cbd3cf66d022100abe77ef4b03ed01455f76ff9668c975bbd715c208c50641c0992be1dc0dadfe9", + "certification_declaration": "3082010306092a864886f70d010702a081f53081f2020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100c56193c26339204622c3362e7d38c546cff314c33026eb2bef1be2ac647a21a902210087f25223fb20425a824923d862e2863cc20b3a21fbfb98ed46bd7cf3e88cbbc7", + "dac_private_key": "e410760c548f819a93c5995d394f5103e8ae02326ec2a85b91bda73d4e8dbb2e", + "dac_public_key": "0420885c50c7fa522c9bedd305ad6ae92f6d327e7ad5390eaa43e268137630a7776f491e0707f7bc8e9708aebaba58f490eb0f059d94204c5f3f058375b49872bb" } diff --git a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/cd.der b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/cd.der index a5f58832d8e427..52e1d8b2b29c80 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/cd.der and b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/dac-Cert.der index f0a9cbc8714718..99fd898cdce70b 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/dac-Cert.pem index b6179be052f897..449b0cda1961e8 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5DCCAYqgAwIBAgIIWYA/T0sgELIwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB4zCCAYqgAwIBAgIIBetDoiGQoM4wCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -d/29qL0KisWKa/vTr3kKf9dhZSoYffwPdAaDCC5qelTH+QlOAPJCKeLuVBysfQMH -pgw2odTi75A0yJGXIvBvlqNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFGFMfIaAwMiUFfe1hluv40jP8KMXMB8GA1UdIwQYMBaAFJph -dBbQmGerFDhJ5jaFylHYb740MAoGCCqGSM49BAMCA0gAMEUCIQC9JeXc6M3KhBBO -kmNNQbyuDTJKLiSwIF4YP7J5k2PO9wIgBeuLPy++ubBrWnj3psam2Z+Yq3wfDRKn -liJCEsFzAjA= +7WYn3XVSsq/wT9Eq8YCgfYONqxiO5huLEJoNnCUmcuOZLALHHM6HG/UmlcQvKX9F +nhoIB2kc58YPuU4M4OdUy6NgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFE3NXV+43iNuxiuN/7w9sZcp5FUvMB8GA1UdIwQYMBaAFNXO +TfbMKamgTcdNlbgxEGQYddVfMAoGCCqGSM49BAMCA0cAMEQCIFfqWM0v3GMtc8nB +9EZNYrUbOjS262tV169YtihLxzEtAiA5WWqy4i2FMu91XI7loHSVGoD2QcyVeQTj +YZmGXHtMqQ== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/dac-Key.der index f0669b297ea791..b7a31e7a1e2d5c 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/dac-Key.pem index cc10771f544df9..446c478aa64c5a 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIAilEVcXWEe2TWYAFij6rjyJvIMDA63q5HOtBZhreqH3oAoGCCqGSM49 -AwEHoUQDQgAEd/29qL0KisWKa/vTr3kKf9dhZSoYffwPdAaDCC5qelTH+QlOAPJC -KeLuVBysfQMHpgw2odTi75A0yJGXIvBvlg== +MHcCAQEEIP7gpLvwifggwOS0Jx7nJRNvuZR31c94v0XTNm2NiIJIoAoGCCqGSM49 +AwEHoUQDQgAE7WYn3XVSsq/wT9Eq8YCgfYONqxiO5huLEJoNnCUmcuOZLALHHM6H +G/UmlcQvKX9FnhoIB2kc58YPuU4M4OdUyw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/pai-Cert.der index 91dc22603f9b53..f585d45b9f9830 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/pai-Cert.pem index 672ffa0de6c09e..8335d91fe0c5e3 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIFMwDSPKHQqcwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1DCCAXqgAwIBAgIIJi9kgBr37tQwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQzkE63fa2BDDjwCmbmIqV8ySv5iWQV -4LvKNrdva+o6UnHOGKE8yEDPso9qGhI9wjHB5GXYmqLCWcQNlzaQJsJZo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUmmF0 -FtCYZ6sUOEnmNoXKUdhvvjQwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIhALl9bL3b+XmTEJ06ZxD36OpplOHWqh52bPia -blEKTLgzAiAF+KjWgsCV3dgE1tryPbAnVxJ5y3Nje3uFzNd0hFVQtA== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARv+RUwomHntZS0sKQE2eMeG4Ns113K +55cGe1DBfwBlokZt5mfDYcyTeF95rCPtmDByecrJvyEWna2VYKCx8CFVo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU1c5N +9swpqaBNx02VuDEQZBh11V8wHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIhAJJT7mZJLvmCCK12MU8MlerWxXfZHB77/V6l +SL3ss5QFAiBg2gztHUkWpiw6mcSOOtqizmy7FfS+NDAgKrluOyMNjA== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/pai-Key.der index 03fae6fd01002f..e8103a400af16d 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/pai-Key.pem index b5b5c9b33e5cce..8dfb6a9b7fc715 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIMVJNQKPENfHZPNLHzOr5o8XEuJfdJu0HpNi+l5/aV3DoAoGCCqGSM49 -AwEHoUQDQgAEM5BOt32tgQw48Apm5iKlfMkr+YlkFeC7yja3b2vqOlJxzhihPMhA -z7KPahoSPcIxweRl2JqiwlnEDZc2kCbCWQ== +MHcCAQEEIC9uFvpy4MFs8k8M4GkbhyPjMvuGgtYSWu+Cdp1C3sf+oAoGCCqGSM49 +AwEHoUQDQgAEb/kVMKJh57WUtLCkBNnjHhuDbNddyueXBntQwX8AZaJGbeZnw2HM +k3hfeawj7ZgwcnnKyb8hFp2tlWCgsfAhVQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/test_case_vector.json index dc211e2a891cbc..cbef8ba2b1b94d 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha1/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: Invalid CMS signature algorithm ECDSA_WITH_SHA1.", "is_success_case": "false", - "dac_cert": "308201e43082018aa003020102020859803f4f4b2010b2300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000477fdbda8bd0a8ac58a6bfbd3af790a7fd761652a187dfc0f740683082e6a7a54c7f9094e00f24229e2ee541cac7d0307a60c36a1d4e2ef9034c8919722f06f96a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414614c7c8680c0c89415f7b5865bafe348cff0a317301f0603551d230418301680149a617416d09867ab143849e63685ca51d86fbe34300a06082a8648ce3d0403020348003045022100bd25e5dce8cdca84104e92634d41bcae0d324a2e24b0205e183fb2799363cef7022005eb8b3f2fbeb9b06b5a78f7a6c6a6d99f98ab7c1f0d12a796224212c1730230", - "pai_cert": "308201d43082017aa003020102020814cc0348f28742a7300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000433904eb77dad810c38f00a66e622a57cc92bf9896415e0bbca36b76f6bea3a5271ce18a13cc840cfb28f6a1a123dc231c1e465d89aa2c259c40d97369026c259a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604149a617416d09867ab143849e63685ca51d86fbe34301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100b97d6cbddbf97993109d3a6710f7e8ea6994e1d6aa1e766cf89a6e510a4cb833022005f8a8d682c095ddd804d6daf23db027571279cb73637b7b85ccd774845550b4", - "certification_declaration": "3082010006092a864886f70d010702a081f23081ef020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317b3079020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300906072a8648ce3d040104463044022049f9b5d56c8df4df39b8438a21025d8ea7316c64131c3c167f73bf99e6bb046702207b0b6a2720baf548fc3964c39748c33b02cd96042d5b8355f37d7099851a25da", - "dac_private_key": "08a51157175847b64d66001628faae3c89bc830303adeae473ad05986b7aa1f7", - "dac_public_key": "0477fdbda8bd0a8ac58a6bfbd3af790a7fd761652a187dfc0f740683082e6a7a54c7f9094e00f24229e2ee541cac7d0307a60c36a1d4e2ef9034c8919722f06f96" + "dac_cert": "308201e33082018aa003020102020805eb43a22190a0ce300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004ed6627dd7552b2aff04fd12af180a07d838dab188ee61b8b109a0d9c252672e3992c02c71cce871bf52695c42f297f459e1a0807691ce7c60fb94e0ce0e754cba360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604144dcd5d5fb8de236ec62b8dffbc3db19729e4552f301f0603551d23041830168014d5ce4df6cc29a9a04dc74d95b83110641875d55f300a06082a8648ce3d0403020347003044022057ea58cd2fdc632d73c9c1f4464d62b51b3a34b6eb6b55d7af58b6284bc7312d022039596ab2e22d8532ef755c8ee5a074951a80f641cc957904e36199865c7b4ca9", + "pai_cert": "308201d43082017aa0030201020208262f64801af7eed4300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200046ff91530a261e7b594b4b0a404d9e31e1b836cd75dcae797067b50c17f0065a2466de667c361cc93785f79ac23ed98307279cac9bf21169dad9560a0b1f02155a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414d5ce4df6cc29a9a04dc74d95b83110641875d55f301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203480030450221009253ee66492ef98208ad76314f0c95ead6c577d91c1efbfd5ea548bdecb39405022060da0ced1d4916a62c3a99c48e3adaa2ce6cbb15f4be3430202ab96e3b230d8c", + "certification_declaration": "3082010206092a864886f70d010702a081f43081f1020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300906072a8648ce3d0401044830460221008b344b948a2322356dff2b091859a4edd7deaafa61b336849af08656cf61828c022100a392c688e6177c5f8cfef6cc2849240097e1deb8213b4bdb95557d3ffacd183d", + "dac_private_key": "fee0a4bbf089f820c0e4b4271ee725136fb99477d5cf78bf45d3366d8d888248", + "dac_public_key": "04ed6627dd7552b2aff04fd12af180a07d838dab188ee61b8b109a0d9c252672e3992c02c71cce871bf52695c42f297f459e1a0807691ce7c60fb94e0ce0e754cb" } diff --git a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/cd.der b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/cd.der index 320f79fe86509e..5629f047d210d2 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/cd.der and b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/dac-Cert.der index 7272ea69583961..68b2aeb3f5da5e 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/dac-Cert.pem index beed86f3486bfa..09aa8e11f12dbe 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5DCCAYqgAwIBAgIIUa+/awG73QcwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5DCCAYqgAwIBAgIIHx/+qCnI3D8wCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -EFnP3n8Qgh8uZudyZCkD9mJXpl0Ai/+Wmb/Dc1CgXGpqUbEZ4ra/7KgHnQMi4pYc -rnqHIxYZ1Vve6WFYe2S4NqNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFHquxgnj0CVuN8AVgod7XNrc2Z+RMB8GA1UdIwQYMBaAFGR8 -lcYl2RWQpYBNGNPQEadSenC7MAoGCCqGSM49BAMCA0gAMEUCIQClmcCcXr0fU7Ei -WSdvza2vQYtXU1X9e0dtIGousLyt8wIgKVSFVu7vi24HOt1OI/mPWULjdsMJzpUF -2BxFTMNoL8w= +uKnNfeXawCOf18CszNGtcOJCdFU/UyCLKHJE9+gx22KtpHGrFT4ig4SdTzjZzEGz +DjiaXp6UtDjgR7dzoFGXJaNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFIvUD50vX51LM7ZWiUhnPRK3m8XCMB8GA1UdIwQYMBaAFImh +Lm1ABbKxXtfYUpBUKsgSMaivMAoGCCqGSM49BAMCA0gAMEUCIQC6gfPN9bb4kp+n +xSRpgWUp69gudt57TBxy20r0zrxB/QIgTyUQxSWhQ+Z+lkgLHXwkO++eI1JJsXpE +VMRA+jdxtR4= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/dac-Key.der index 0ade22b7e90086..7cd39bec3cc884 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/dac-Key.pem index 8e0f87730b9400..2d0c3bc4df5b63 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIP1yvpYRrZUkkuY4TjcIwDIoBq2YMdYH6uvQ/zIE2KD9oAoGCCqGSM49 -AwEHoUQDQgAEEFnP3n8Qgh8uZudyZCkD9mJXpl0Ai/+Wmb/Dc1CgXGpqUbEZ4ra/ -7KgHnQMi4pYcrnqHIxYZ1Vve6WFYe2S4Ng== +MHcCAQEEIC5VyV5cJKdDW33DgAzfagP5bPs09qlf2bRl5detp6hcoAoGCCqGSM49 +AwEHoUQDQgAEuKnNfeXawCOf18CszNGtcOJCdFU/UyCLKHJE9+gx22KtpHGrFT4i +g4SdTzjZzEGzDjiaXp6UtDjgR7dzoFGXJQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/pai-Cert.der index 777a035d8814a3..a1191ea8bf1149 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/pai-Cert.pem index bd237aad71abfc..9510cd58c5f429 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB0zCCAXqgAwIBAgIIHNO7+2g/W9IwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1TCCAXqgAwIBAgIIcGvX8CQYHIcwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR7Kn2DWq7jxwru8iDEtCvxtGcBenKG -J43lIzi076C2T+N/cQ7QldYjMdSw0yYjYYjMWyv9gAdJokyQAcxYHJHoo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUZHyV -xiXZFZClgE0Y09ARp1J6cLswHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDRwAwRAIgLEHiRUg+8X9xvIdDV/lZHjDa79/TyVosM8P5 -jb046RYCIATt5XR/1neaENVBpdLYwIb3DAszzN70pJiT/c8tLvn6 +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS+A/77KY26MaMI6DhgQ0aqwlpke/hM +6qpHd6lSd8RrW8GfMd/INjz7gJJ6OXNj5uT5RBU4k2jq584GBlWNKliEo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUiaEu +bUAFsrFe19hSkFQqyBIxqK8wHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSQAwRgIhAM/Q4Z2Ve4/TZTfUexB5Z5B/cvrDy91ebhje ++D5b9SuTAiEAzFf4AEp2RccKhe6tsKdB8ElzLzrIYHpUS0wWE7uyTho= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/pai-Key.der index 212a8506bdaf5b..58fc538ba228d5 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/pai-Key.pem index a7735d190dbff8..fba4e6b59eb2b1 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIGXEdqJrz0YBnq7iI9naAhOhJMbritLmWEF0DGfda2wNoAoGCCqGSM49 -AwEHoUQDQgAEeyp9g1qu48cK7vIgxLQr8bRnAXpyhieN5SM4tO+gtk/jf3EO0JXW -IzHUsNMmI2GIzFsr/YAHSaJMkAHMWByR6A== +MHcCAQEEIHOaPGmmli+hgLv42yoxuXW8EO9aY6RMuGokGXjT2rMIoAoGCCqGSM49 +AwEHoUQDQgAEvgP++ymNujGjCOg4YENGqsJaZHv4TOqqR3epUnfEa1vBnzHfyDY8 ++4CSejlzY+bk+UQVOJNo6ufOBgZVjSpYhA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/test_case_vector.json index 43831cf8c5e8c4..324e771f040932 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_cms_sig_algo_ecdsa_with_sha256/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: Valid CMS signature algorithm ECDSA_WITH_SHA256.", "is_success_case": "true", - "dac_cert": "308201e43082018aa003020102020851afbf6b01bbdd07300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200041059cfde7f10821f2e66e772642903f66257a65d008bff9699bfc37350a05c6a6a51b119e2b6bfeca8079d0322e2961cae7a87231619d55bdee961587b64b836a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604147aaec609e3d0256e37c01582877b5cdadcd99f91301f0603551d23041830168014647c95c625d91590a5804d18d3d011a7527a70bb300a06082a8648ce3d0403020348003045022100a599c09c5ebd1f53b12259276fcdadaf418b575355fd7b476d206a2eb0bcadf3022029548556eeef8b6e073add4e23f98f5942e376c309ce9505d81c454cc3682fcc", - "pai_cert": "308201d33082017aa00302010202081cd3bbfb683f5bd2300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200047b2a7d835aaee3c70aeef220c4b42bf1b467017a7286278de52338b4efa0b64fe37f710ed095d62331d4b0d326236188cc5b2bfd800749a24c9001cc581c91e8a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414647c95c625d91590a5804d18d3d011a7527a70bb301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402202c41e245483ef17f71bc874357f9591e30daefdfd3c95a2c33c3f98dbd38e916022004ede5747fd6779a10d541a5d2d8c086f70c0b33ccdef4a49893fdcf2d2ef9fa", - "certification_declaration": "3082010206092a864886f70d010702a081f43081f1020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100eee5435e9f6666883e39b126cbc5fae347032a169abc55929b41e1ed68bbc40b02206bdc22977e3ffe804922e178369d67c47e86b3e4e67d87d14409177e4164936d", - "dac_private_key": "fd72be9611ad952492e6384e3708c0322806ad9831d607eaebd0ff3204d8a0fd", - "dac_public_key": "041059cfde7f10821f2e66e772642903f66257a65d008bff9699bfc37350a05c6a6a51b119e2b6bfeca8079d0322e2961cae7a87231619d55bdee961587b64b836" + "dac_cert": "308201e43082018aa00302010202081f1ffea829c8dc3f300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004b8a9cd7de5dac0239fd7c0acccd1ad70e24274553f53208b287244f7e831db62ada471ab153e2283849d4f38d9cc41b30e389a5e9e94b438e047b773a0519725a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604148bd40f9d2f5f9d4b33b6568948673d12b79bc5c2301f0603551d2304183016801489a12e6d4005b2b15ed7d85290542ac81231a8af300a06082a8648ce3d0403020348003045022100ba81f3cdf5b6f8929fa7c52469816529ebd82e76de7b4c1c72db4af4cebc41fd02204f2510c525a143e67e96480b1d7c243bef9e235249b17a4454c440fa3771b51e", + "pai_cert": "308201d53082017aa0030201020208706bd7f024181c87300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004be03fefb298dba31a308e838604346aac25a647bf84ceaaa4777a95277c46b5bc19f31dfc8363cfb80927a397363e6e4f94415389368eae7ce0606558d2a5884a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041489a12e6d4005b2b15ed7d85290542ac81231a8af301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100cfd0e19d957b8fd36537d47b107967907f72fac3cbdd5e6e18def83e5bf52b93022100cc57f8004a7645c70a85eeadb0a741f049732f3ac8607a544b4c1613bbb24e1a", + "certification_declaration": "3082010206092a864886f70d010702a081f43081f1020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100f9f71dacadba36990cd390d9858873cf754972a638dff54bfe869de2f4943366022075a6f1b9b2bb86b5074f15b24999f019b28e580e15c0409fdbcc4c292328d342", + "dac_private_key": "2e55c95e5c24a7435b7dc3800cdf6a03f96cfb34f6a95fd9b465e5d7ada7a85c", + "dac_public_key": "04b8a9cd7de5dac0239fd7c0acccd1ad70e24274553f53208b287244f7e831db62ada471ab153e2283849d4f38d9cc41b30e389a5e9e94b438e047b773a0519725" } diff --git a/credentials/development/commissioner_dut/struct_cd_cms_signature/cd.der b/credentials/development/commissioner_dut/struct_cd_cms_signature/cd.der index d832ff2dee0088..a0c02537887c98 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_signature/cd.der and b/credentials/development/commissioner_dut/struct_cd_cms_signature/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_signature/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_cms_signature/dac-Cert.der index a1b7b3c3a402d2..c3f4436a81d0bb 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_signature/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_cms_signature/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_signature/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_cms_signature/dac-Cert.pem index a6c340b4c99e92..0a7a11560403ad 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_signature/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_signature/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB4zCCAYqgAwIBAgIIZB+UTV2XfT0wCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5TCCAYqgAwIBAgIITodBibhaoAEwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -kJLXerOu6ysHzmCxqwYNj8uVJtM1T19H19dTOGGvEpz7UpF3tWk3SiNf9bMbb2nV -PNS+pqEO2EZYE8ssPbRMv6NgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFOyGGeIlsPO9fyYTwl8a63iJsiBuMB8GA1UdIwQYMBaAFFYh -h6gBCq2Mjx5KraGoPWFKy3SBMAoGCCqGSM49BAMCA0cAMEQCID2p6rJsOcjefKb4 -c62ddfEBTDgWEgE73ah0g8XHBtVYAiBp1VIo0OJntQ1TjcKAaMb9DZ1+PBOXW02P -JG99TsNwVQ== +Dml60tber0B0bC4UOnwf3EXr92kg9iiO6XDkljevE9Sv7j4LWlYodNKZNBm46bNl +MzvldG+Jdi70xw8+bROYfqNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFM/bcX4oG2GonHl00T3mz6KLX4dxMB8GA1UdIwQYMBaAFOwJ +lFqsH5sa6U4WQP5KBZ145OvtMAoGCCqGSM49BAMCA0kAMEYCIQD9lEVu68pczlhv +UQnbiEzBS6oZ6feCWTXqA5NxjrIE3QIhAP/AdqK1yLdmBeGX7rmhYF9sNlu5Wn1h +GYqvY/CUb5+O -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_signature/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_cms_signature/dac-Key.der index 28d71a8d551614..04ff5cf66d82fa 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_signature/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_cms_signature/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_signature/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_cms_signature/dac-Key.pem index af194e828d1003..b6ce1c16c0bfea 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_signature/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_signature/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIOFDuHbLrpxlVvvP00IAuAglKVmh3FkMZh2oBT9cJyTRoAoGCCqGSM49 -AwEHoUQDQgAEkJLXerOu6ysHzmCxqwYNj8uVJtM1T19H19dTOGGvEpz7UpF3tWk3 -SiNf9bMbb2nVPNS+pqEO2EZYE8ssPbRMvw== +MHcCAQEEIKcP58Uz2uqUXUKqjzVPuecEaGDoZUKuyhGihkQE+1L3oAoGCCqGSM49 +AwEHoUQDQgAEDml60tber0B0bC4UOnwf3EXr92kg9iiO6XDkljevE9Sv7j4LWlYo +dNKZNBm46bNlMzvldG+Jdi70xw8+bROYfg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_signature/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_cms_signature/pai-Cert.der index d228555d16c801..e07cce6241b3c7 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_signature/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_cms_signature/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_signature/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_cms_signature/pai-Cert.pem index 52fb00d97984bd..f753c901fa206e 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_signature/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_signature/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIVy3yKzzyswwwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1TCCAXqgAwIBAgIIZlhE88L24hkwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQHqYCBjFhwURB1vFv+U0Csz00Yuvps -c40V4CwX7Eh0TGgBVfhkVQu3LwT6MvitXBALwnF0zXmkJMnDf1YzuuTZo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUViGH -qAEKrYyPHkqtoag9YUrLdIEwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIgQVg1d0g/z3eEX5povioGq5dycjh3Eds+NhB/ -Q6RrYUoCIQD59OyRkyONzepimsC9srkxaFJQZyP8jo0o+kBOaj57/Q== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATDJ0DvKty0IOSjvoppJn1fFDWM+nyH +/iI0XzUtDOBDP+WTJLyFzLYqU2NEKJwLWtsiXZYJorjQF0kKDtIGogtZo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU7AmU +WqwfmxrpThZA/koFnXjk6+0wHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSQAwRgIhANjLZzb14B/jGMgdgHmyIP4hoEOxt6JHAOJR +bCTRpAPYAiEArZjC09r6hLg80YGJzugkKyIKtsmpyVXvBftULE7wKFU= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_signature/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_cms_signature/pai-Key.der index 3c581e68891ff1..321f91f97c4d7a 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_signature/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_cms_signature/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_signature/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_cms_signature/pai-Key.pem index 6e8cdba227549b..7555fb7a732776 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_signature/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_signature/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIP+0y35+Wl09aF45bGAenM3vakJfxB0C185/Bf1JCq4SoAoGCCqGSM49 -AwEHoUQDQgAEB6mAgYxYcFEQdbxb/lNArM9NGLr6bHONFeAsF+xIdExoAVX4ZFUL -ty8E+jL4rVwQC8JxdM15pCTJw39WM7rk2Q== +MHcCAQEEIAPrnEWEYOvBpG07XnZc92RdfvufXizdcVnZbMuRLESNoAoGCCqGSM49 +AwEHoUQDQgAEwydA7yrctCDko76KaSZ9XxQ1jPp8h/4iNF81LQzgQz/lkyS8hcy2 +KlNjRCicC1rbIl2WCaK40BdJCg7SBqILWQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_signature/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_cms_signature/test_case_vector.json index 00e8b9d2660bba..a5b1ba36d50678 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_signature/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_cms_signature/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: Invalid CMS Signature.", "is_success_case": "false", - "dac_cert": "308201e33082018aa0030201020208641f944d5d977d3d300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200049092d77ab3aeeb2b07ce60b1ab060d8fcb9526d3354f5f47d7d7533861af129cfb529177b569374a235ff5b31b6f69d53cd4bea6a10ed8465813cb2c3db44cbfa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414ec8619e225b0f3bd7f2613c25f1aeb7889b2206e301f0603551d23041830168014562187a8010aad8c8f1e4aada1a83d614acb7481300a06082a8648ce3d040302034700304402203da9eab26c39c8de7ca6f873ad9d75f1014c381612013bdda87483c5c706d558022069d55228d0e267b50d538dc28068c6fd0d9d7e3c13975b4d8f246f7d4ec37055", - "pai_cert": "308201d43082017aa0030201020208572df22b3cf2b30c300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000407a980818c5870511075bc5bfe5340accf4d18bafa6c738d15e02c17ec48744c680155f864550bb72f04fa32f8ad5c100bc27174cd79a424c9c37f5633bae4d9a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414562187a8010aad8c8f1e4aada1a83d614acb7481301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022041583577483fcf77845f9a68be2a06ab977272387711db3e36107f43a46b614a022100f9f4ec9193238dcdea629ac0bdb2b9316852506723fc8e8d28fa404e6a3e7bfd", - "certification_declaration": "3082010206092a864886f70d010702a081f43081f1020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450220508c3b11006d745208ebe4d8b47a5fc3150c24f449b2cf55d4059359ce68cc3b02210086ac5f4e6d3733848bc6b63efe7a31002932acc3b6d3e594d6d47dbee9fc89af", - "dac_private_key": "e143b876cbae9c6556fbcfd34200b808252959a1dc590c661da8053f5c2724d1", - "dac_public_key": "049092d77ab3aeeb2b07ce60b1ab060d8fcb9526d3354f5f47d7d7533861af129cfb529177b569374a235ff5b31b6f69d53cd4bea6a10ed8465813cb2c3db44cbf" + "dac_cert": "308201e53082018aa00302010202084e874189b85aa001300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200040e697ad2d6deaf40746c2e143a7c1fdc45ebf76920f6288ee970e49637af13d4afee3e0b5a562874d2993419b8e9b365333be5746f89762ef4c70f3e6d13987ea360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414cfdb717e281b61a89c7974d13de6cfa28b5f8771301f0603551d23041830168014ec09945aac1f9b1ae94e1640fe4a059d78e4ebed300a06082a8648ce3d0403020349003046022100fd94456eebca5cce586f5109db884cc14baa19e9f7825935ea0393718eb204dd022100ffc076a2b5c8b76605e197eeb9a1605f6c365bb95a7d61198aaf63f0946f9f8e", + "pai_cert": "308201d53082017aa0030201020208665844f3c2f6e219300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004c32740ef2adcb420e4a3be8a69267d5f14358cfa7c87fe22345f352d0ce0433fe59324bc85ccb62a536344289c0b5adb225d9609a2b8d017490a0ed206a20b59a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414ec09945aac1f9b1ae94e1640fe4a059d78e4ebed301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100d8cb6736f5e01fe318c81d8079b220fe21a043b1b7a24700e2516c24d1a403d8022100ad98c2d3dafa84b83cd18189cee8242b220ab6c9a9c955ef05fb542c4ef02855", + "certification_declaration": "3082010306092a864886f70d010702a081f53081f2020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100d78b101a2f977e551c575ed5f355bb3feec9cd65cf39b69e431f74271cdf8c75022100c8da9da310a9b77784126617fe4a31a772819e661861498651541024f22ab066", + "dac_private_key": "a70fe7c533daea945d42aa8f354fb9e7046860e86542aeca11a2864404fb52f7", + "dac_public_key": "040e697ad2d6deaf40746c2e143a7c1fdc45ebf76920f6288ee970e49637af13d4afee3e0b5a562874d2993419b8e9b365333be5746f89762ef4c70f3e6d13987e" } diff --git a/credentials/development/commissioner_dut/struct_cd_cms_v2/cd.der b/credentials/development/commissioner_dut/struct_cd_cms_v2/cd.der index 0cec6f03d80f2c..a89a83ab121953 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_v2/cd.der and b/credentials/development/commissioner_dut/struct_cd_cms_v2/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_v2/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_cms_v2/dac-Cert.der index 2f5590f877d213..1719e845f1c116 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_v2/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_cms_v2/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_v2/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_cms_v2/dac-Cert.pem index 1548c487f67892..107a8467f67c6b 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_v2/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_v2/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB4zCCAYqgAwIBAgIIatD/GBMuvkkwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5TCCAYqgAwIBAgIIBnjr7G9ebzkwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -A7cNuuIxo/lkyfHv28FO3b7ybhz79kTmubkPDqNqLdwRc5B2vrBrRR28b2huoPbn -IuoNTsETgBkeIhAfDPqV3aNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFHKd28iQYutSi1iNOuvUwyiNwFJlMB8GA1UdIwQYMBaAFGP0 -RHvw5ZsEEGFYd/g+b0PVkLgDMAoGCCqGSM49BAMCA0cAMEQCICXfBCZ2VdugCl3q -4ki1hImTQs6kmMIA6yd5yz58BjkwAiBPXbNFH5SvalLRr3RwoJ3MggEpcEqdJxQa -XRbdBgFGlw== +uJcDCUisHQsDdpI4/WOlqVOuIYgwBN11PS4XfRIXblsx+11m1ZPdsn0eG8079OI3 +enPzfLH1c0Pc3rvc0hyUrqNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFMLhLHfxZDcBGJKr9vXQLwIo+GupMB8GA1UdIwQYMBaAFEAN +tiQG0VpJWZWszGb7wF21gjWJMAoGCCqGSM49BAMCA0kAMEYCIQCcWPT01sxKnNe/ +UDWhe3zmt/x1m2pqNcWVv7uttGGyUAIhAKq31bX8d7R5fjGdt5knmmM6WaT2uCBq +Pxam9B71yHXq -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_v2/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_cms_v2/dac-Key.der index debfe88c6ccaa2..e1e60cdc30ae4b 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_v2/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_cms_v2/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_v2/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_cms_v2/dac-Key.pem index 24eccaae52b755..bac3a09a37e748 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_v2/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_v2/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIIwOzCwKHV5B8K+e/pWT+dDdnNIVHrMKaHwc98XLSKsHoAoGCCqGSM49 -AwEHoUQDQgAEA7cNuuIxo/lkyfHv28FO3b7ybhz79kTmubkPDqNqLdwRc5B2vrBr -RR28b2huoPbnIuoNTsETgBkeIhAfDPqV3Q== +MHcCAQEEILFi/V4koEHiGAN8NZ0Yeu53fQHrBILNAsOmQp1+bQ/2oAoGCCqGSM49 +AwEHoUQDQgAEuJcDCUisHQsDdpI4/WOlqVOuIYgwBN11PS4XfRIXblsx+11m1ZPd +sn0eG8079OI3enPzfLH1c0Pc3rvc0hyUrg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_v2/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_cms_v2/pai-Cert.der index 91eb78573563f8..2c0184c5686590 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_v2/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_cms_v2/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_v2/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_cms_v2/pai-Cert.pem index 79747ac45a6290..46fa9cf3d961fd 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_v2/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_v2/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIEAYfyyDdug0wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1DCCAXqgAwIBAgIINvg+dWL638MwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASF77xXt/l+9OVfaOudjCgBn6VsYGz6 -imsz7UKrFIAqUNVuWHlhqkkkiW62hPwqtmwdX6rUqLGhPImgbL/NZ1glo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUY/RE -e/DlmwQQYVh3+D5vQ9WQuAMwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIhAIsXhx3hoNcZLxf6Vb3B8cZNZ20QFp06wA/i -LoNdQk9uAiAE3iiuuZc5GJQ1ud8kf8ba//ao/w3L9OACiiGts5LHig== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATfDGYycYLdly5ZNtCZALecFS4K6N/x +BSK1lGlknx0M/zjsgFoNcInlvsBpWZ3KNhh9zn6YmLXxU07iJ3KxwAggo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUQA22 +JAbRWklZlazMZvvAXbWCNYkwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIhAKIpxdI5HmYxL9/WYtiVNLXvVFHZg1ynPuil +EShV8kgNAiBMtB5k0MnCEP3MsCg5lpFoCv4dC0CMcbE+giwpjYQzmg== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_v2/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_cms_v2/pai-Key.der index 0d706d74dc4283..2ffe9060c507c1 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_v2/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_cms_v2/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_v2/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_cms_v2/pai-Key.pem index 9b9f5d02c50025..43e051863cb617 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_v2/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_v2/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIFJP9xtsdXzE0BBnOFDKxD3REAGs0NfrBu4V2VE/A050oAoGCCqGSM49 -AwEHoUQDQgAEhe+8V7f5fvTlX2jrnYwoAZ+lbGBs+oprM+1CqxSAKlDVblh5YapJ -JIlutoT8KrZsHV+q1KixoTyJoGy/zWdYJQ== +MHcCAQEEIC1ScE4GhRwlsYx9mBl9cqiI8FIxixpdmeUB52LS2tbooAoGCCqGSM49 +AwEHoUQDQgAE3wxmMnGC3ZcuWTbQmQC3nBUuCujf8QUitZRpZJ8dDP847IBaDXCJ +5b7AaVmdyjYYfc5+mJi18VNO4idyscAIIA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_v2/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_cms_v2/test_case_vector.json index 4d94363e5259ba..d47b1d437b31ce 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_v2/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_cms_v2/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: Invalid CMS version set to v2.", "is_success_case": "false", - "dac_cert": "308201e33082018aa00302010202086ad0ff18132ebe49300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000403b70dbae231a3f964c9f1efdbc14eddbef26e1cfbf644e6b9b90f0ea36a2ddc11739076beb06b451dbc6f686ea0f6e722ea0d4ec11380191e22101f0cfa95dda360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414729ddbc89062eb528b588d3aebd4c3288dc05265301f0603551d2304183016801463f4447bf0e59b0410615877f83e6f43d590b803300a06082a8648ce3d0403020347003044022025df04267655dba00a5deae248b584899342cea498c200eb2779cb3e7c06393002204f5db3451f94af6a52d1af7470a09dcc820129704a9d27141a5d16dd06014697", - "pai_cert": "308201d43082017aa003020102020810061fcb20ddba0d300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000485efbc57b7f97ef4e55f68eb9d8c28019fa56c606cfa8a6b33ed42ab14802a50d56e587961aa4924896eb684fc2ab66c1d5faad4a8b1a13c89a06cbfcd675825a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e0416041463f4447bf0e59b0410615877f83e6f43d590b803301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203480030450221008b17871de1a0d7192f17fa55bdc1f1c64d676d10169d3ac00fe22e835d424f6e022004de28aeb99739189435b9df247fc6dafff6a8ff0dcbf4e0028a21adb392c78a", - "certification_declaration": "3082010106092a864886f70d010702a081f33081f0020102310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204463044022019f5259dd5e6b80fce74e06a8a23c1d9e1352f230d79dd5dd6b554e79b53195702204719e8b44ef27b723afd74404ec3d2163b9039957d38a4d48d275fb5e32a9a51", - "dac_private_key": "8c0ecc2c0a1d5e41f0af9efe9593f9d0dd9cd2151eb30a687c1cf7c5cb48ab07", - "dac_public_key": "0403b70dbae231a3f964c9f1efdbc14eddbef26e1cfbf644e6b9b90f0ea36a2ddc11739076beb06b451dbc6f686ea0f6e722ea0d4ec11380191e22101f0cfa95dd" + "dac_cert": "308201e53082018aa00302010202080678ebec6f5e6f39300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004b897030948ac1d0b03769238fd63a5a953ae21883004dd753d2e177d12176e5b31fb5d66d593ddb27d1e1bcd3bf4e2377a73f37cb1f57343dcdebbdcd21c94aea360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414c2e12c77f16437011892abf6f5d02f0228f86ba9301f0603551d23041830168014400db62406d15a495995accc66fbc05db5823589300a06082a8648ce3d04030203490030460221009c58f4f4d6cc4a9cd7bf5035a17b7ce6b7fc759b6a6a35c595bfbbadb461b250022100aab7d5b5fc77b4797e319db799279a633a59a4f6b8206a3f16a6f41ef5c875ea", + "pai_cert": "308201d43082017aa003020102020836f83e7562fadfc3300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004df0c66327182dd972e5936d09900b79c152e0ae8dff10522b59469649f1d0cff38ec805a0d7089e5bec069599dca36187dce7e9898b5f1534ee22772b1c00820a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414400db62406d15a495995accc66fbc05db5823589301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100a229c5d2391e66312fdfd662d89534b5ef5451d9835ca73ee8a5112855f2480d02204cb41e64d0c9c210fdccb028399691680afe1d0b408c71b13e822c298d84339a", + "certification_declaration": "3082010206092a864886f70d010702a081f43081f1020102310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502207380d00c09bbbc2455d598f8242ad670a6ca351f255583ed23eb72ad1a36c41d022100a59ed7a414f5465872325942a2218edf15c4f00fb9ffef2d503540521d00c041", + "dac_private_key": "b162fd5e24a041e218037c359d187aee777d01eb0482cd02c3a6429d7e6d0ff6", + "dac_public_key": "04b897030948ac1d0b03769238fd63a5a953ae21883004dd753d2e177d12176e5b31fb5d66d593ddb27d1e1bcd3bf4e2377a73f37cb1f57343dcdebbdcd21c94ae" } diff --git a/credentials/development/commissioner_dut/struct_cd_cms_v3/cd.der b/credentials/development/commissioner_dut/struct_cd_cms_v3/cd.der index 7383b4d362994b..7f4b111ed2e187 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_v3/cd.der and b/credentials/development/commissioner_dut/struct_cd_cms_v3/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_v3/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_cms_v3/dac-Cert.der index 03678411c06e2a..f1daff9c6941f7 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_v3/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_cms_v3/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_v3/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_cms_v3/dac-Cert.pem index c9e47a89598d12..89db9b1bcbfe5f 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_v3/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_v3/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5TCCAYqgAwIBAgIIHiDnEYI1sxEwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5DCCAYqgAwIBAgIIAff8umNaPb4wCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -dSfTwrc9Te/7N3LDV1LjZFJiVJ1tEhHK+KATpQ9NkFF2s9iPXYmuDTuXbzy8UpWf -rSCB0QDnkdM4USKZ9x9ZDqNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFCKmbtZ+MuufFuWxoXnwlEKLde+pMB8GA1UdIwQYMBaAFLXH -Pikar4NAjdaGNJyANhW0Av73MAoGCCqGSM49BAMCA0kAMEYCIQDRYbwfyajiog3J -5rTJlT+ouHHOTvBS+7s5+VPSoCYV0AIhALbirlKSUHf9gmvkRBdJGZsOjX414fuP -10UrrkWZjhsY +dwJFiUCXGpJHgaKozoOkASn/fpFXNH0NNDap8EQha5q0aoWRsTks8/EG2ieR3til +ND5W9a8knVw/i2xatIb0VqNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFGgo+I0LleWWUsbkYBSUBuiNoJzfMB8GA1UdIwQYMBaAFPdG +brQ62LAZk0LU47KQIVJzhEcxMAoGCCqGSM49BAMCA0gAMEUCIQDXNgtPm45wAgFf +4tcEJvbNjX/Wfl/+BROeRFmRIuUBzQIgQbbMyUioRsxbZxd7fPIeEvY64nAorcg8 +81lrF6iS9uk= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_v3/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_cms_v3/dac-Key.der index a4db3edb42ec75..9091f28d36db14 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_v3/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_cms_v3/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_v3/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_cms_v3/dac-Key.pem index 599a32870eac3d..5acd7bb499b167 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_v3/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_v3/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIBm7pUsR+PFnsLnFT1syUbQ011B9pXU7Rl4MWAZGoqaxoAoGCCqGSM49 -AwEHoUQDQgAEdSfTwrc9Te/7N3LDV1LjZFJiVJ1tEhHK+KATpQ9NkFF2s9iPXYmu -DTuXbzy8UpWfrSCB0QDnkdM4USKZ9x9ZDg== +MHcCAQEEII1FUwgyDxZP+nJouH2WS3rOXgFNRT83GSkykhrxyekZoAoGCCqGSM49 +AwEHoUQDQgAEdwJFiUCXGpJHgaKozoOkASn/fpFXNH0NNDap8EQha5q0aoWRsTks +8/EG2ieR3tilND5W9a8knVw/i2xatIb0Vg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_v3/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_cms_v3/pai-Cert.der index e72e1bdc289e65..a967702a3fe7d8 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_v3/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_cms_v3/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_v3/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_cms_v3/pai-Cert.pem index 83f7ee936ebe3d..6bfbf2324ece0f 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_v3/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_v3/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIWEAO9H/LrnMwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1DCCAXqgAwIBAgIIJkLJQne7zuswCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR83Y2hx9XrLzl0MimCT4Bauc0pl649 -cMIw+kJdoefj/ltob54P7tJ3d2XzzUZJI+y9xe9elEbmuKQP2FUvqUm7o2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtcc+ -KRqvg0CN1oY0nIA2FbQC/vcwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIgfYc6cVZvc2mNEdoV1/MRaOHsL6B7pCral7km -6Ef262ACIQCtX4nYWzjhx80ON/4Us90CpdIvlJrzrwaoJY1cyew8oA== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQkz8bDSMVHPBEC43N6cjqB4tX7Lf1U +i10dgfq78eB+AzTiX+jSGx1Y1JSxwBjk3wtkTKugxkDsD3RuqUbwjOuio2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU90Zu +tDrYsBmTQtTjspAhUnOERzEwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIgSLADi3ZBrWkwmDI+c/erG1GmfFfyS3J+O01x +iY4TUkMCIQDzhxWuBfNDKbFkBMuuyIrWLIJ44C3DcyVFVDOHZKjDlQ== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_v3/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_cms_v3/pai-Key.der index 08155849b3541a..ae3dbbf6e74d75 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_cms_v3/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_cms_v3/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_cms_v3/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_cms_v3/pai-Key.pem index 8791c186b97c13..073fb359d7fc87 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_v3/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_cms_v3/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIOw7UllUZomdfOkDPK9a2MfWZhIejepw8AS56MV8bsraoAoGCCqGSM49 -AwEHoUQDQgAEfN2NocfV6y85dDIpgk+AWrnNKZeuPXDCMPpCXaHn4/5baG+eD+7S -d3dl881GSSPsvcXvXpRG5rikD9hVL6lJuw== +MHcCAQEEIM7eDm0ywOnTpS9a/VsROt2eKbgSKJVVA7ZyilSdesT3oAoGCCqGSM49 +AwEHoUQDQgAEJM/Gw0jFRzwRAuNzenI6geLV+y39VItdHYH6u/HgfgM04l/o0hsd +WNSUscAY5N8LZEyroMZA7A90bqlG8Izrog== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_cms_v3/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_cms_v3/test_case_vector.json index ee06d5d581aecf..4069d357a84679 100644 --- a/credentials/development/commissioner_dut/struct_cd_cms_v3/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_cms_v3/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: Valid CMS version set to v3.", "is_success_case": "true", - "dac_cert": "308201e53082018aa00302010202081e20e7118235b311300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200047527d3c2b73d4deffb3772c35752e3645262549d6d1211caf8a013a50f4d905176b3d88f5d89ae0d3b976f3cbc52959fad2081d100e791d338512299f71f590ea360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041422a66ed67e32eb9f16e5b1a179f094428b75efa9301f0603551d23041830168014b5c73e291aaf83408dd686349c803615b402fef7300a06082a8648ce3d0403020349003046022100d161bc1fc9a8e2a20dc9e6b4c9953fa8b871ce4ef052fbbb39f953d2a02615d0022100b6e2ae52925077fd826be4441749199b0e8d7e35e1fb8fd7452bae45998e1b18", - "pai_cert": "308201d43082017aa003020102020858400ef47fcbae73300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200047cdd8da1c7d5eb2f39743229824f805ab9cd2997ae3d70c230fa425da1e7e3fe5b686f9e0feed2777765f3cd464923ecbdc5ef5e9446e6b8a40fd8552fa949bba366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414b5c73e291aaf83408dd686349c803615b402fef7301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502207d873a71566f73698d11da15d7f31168e1ec2fa07ba42ada97b926e847f6eb60022100ad5f89d85b38e1c7cd0e37fe14b3dd02a5d22f949af3af06a8258d5cc9ec3ca0", - "certification_declaration": "3082010306092a864886f70d010702a081f53081f2020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100d25e9b259829f79d4d34d9a098b9f66ddf2b3bf387c8fe378079bcee2913f96a022100cf6ec0bc9f5bb179904f7e6f5a3c4f583caf21847603b2b1ad237681e1191178", - "dac_private_key": "19bba54b11f8f167b0b9c54f5b3251b434d7507da5753b465e0c580646a2a6b1", - "dac_public_key": "047527d3c2b73d4deffb3772c35752e3645262549d6d1211caf8a013a50f4d905176b3d88f5d89ae0d3b976f3cbc52959fad2081d100e791d338512299f71f590e" + "dac_cert": "308201e43082018aa003020102020801f7fcba635a3dbe300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200047702458940971a924781a2a8ce83a40129ff7e9157347d0d3436a9f044216b9ab46a8591b1392cf3f106da2791ded8a5343e56f5af249d5c3f8b6c5ab486f456a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604146828f88d0b95e59652c6e460149406e88da09cdf301f0603551d23041830168014f7466eb43ad8b0199342d4e3b290215273844731300a06082a8648ce3d0403020348003045022100d7360b4f9b8e7002015fe2d70426f6cd8d7fd67e5ffe05139e44599122e501cd022041b6ccc948a846cc5b67177b7cf21e12f63ae27028adc83cf3596b17a892f6e9", + "pai_cert": "308201d43082017aa00302010202082642c94277bbceeb300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000424cfc6c348c5473c1102e3737a723a81e2d5fb2dfd548b5d1d81fabbf1e07e0334e25fe8d21b1d58d494b1c018e4df0b644caba0c640ec0f746ea946f08ceba2a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414f7466eb43ad8b0199342d4e3b290215273844731301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022048b0038b7641ad693098323e73f7ab1b51a67c57f24b727e3b4d71898e135243022100f38715ae05f34329b16404cbaec88ad62c8278e02dc373254554338764a8c395", + "certification_declaration": "3082010206092a864886f70d010702a081f43081f1020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022056ada9b84252bcd38a9a3416fdcd94f2bc58cb7f4e96b8c351b2d09c227e110c022100960f812ce9699e273a05b29d63c7baddb4224c16e9eaa43d0666b75ebc41c807", + "dac_private_key": "8d455308320f164ffa7268b87d964b7ace5e014d453f37192932921af1c9e919", + "dac_public_key": "047702458940971a924781a2a8ce83a40129ff7e9157347d0d3436a9f044216b9ab46a8591b1392cf3f106da2791ded8a5343e56f5af249d5c3f8b6c5ab486f456" } diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/cd.der b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/cd.der index 35357f994c513d..946d9fc2a32dee 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/cd.der and b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/dac-Cert.der index 1827eea7a1a554..1503c715e4df1a 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/dac-Cert.pem index ab98859efcb1bf..a6386314f10f02 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5TCCAYqgAwIBAgIIPKLZP2LwPS4wCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5TCCAYqgAwIBAgIIN5c+V6/YlLwwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -FHTP4riz3/QDoHNTwXudq2TNQ4JmbW03ZuF0qeEx9ctyEy3NyU5ofp+F+Fs92CL7 -CMey0dknt74kR1BAARZsLaNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFAE1YvIh7zVCuXW/rAAmr3Pm8xHYMB8GA1UdIwQYMBaAFEWF -UEVirtEXa717VeR5KlfxFwwfMAoGCCqGSM49BAMCA0kAMEYCIQC+9F2IHOkMyWE3 -mTMgjwNxDS1DznKV+AvjuS9VExFXngIhAOYxW6A1YNIFp8w2ZY/PZKcNzSCiCF/g -rVn+is8yoGzV +E9aREPEQ6Ded8EKoejog9kh7qJ38vDa5+7hWpEeuy/csJ+JRdNNhedRWH9TXeDR+ +12GmbgRfWoR1XX7dN6btPaNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFG+oPy7NjCXTyZOKRbrEx3hmPJptMB8GA1UdIwQYMBaAFA4K +GGG0T3oxsx7moZWk/EmYKmFhMAoGCCqGSM49BAMCA0kAMEYCIQDffBxPYWlXfDNV +5sm0duyGGL2nexiLkbyj6pV02e6OmAIhAIfoiSU6SbA7TE5Y4yB6sdVh1NJIQy2Z +9mK1gwe67cvE -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/dac-Key.der index a984cc91df8387..33f25f58012bc2 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/dac-Key.pem index 0bffa695ed4502..ec138ddc2591aa 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIHPwR1JafqJmyDQFJ0rNP1DaIOzl2oTJKITbF8SjKeOvoAoGCCqGSM49 -AwEHoUQDQgAEFHTP4riz3/QDoHNTwXudq2TNQ4JmbW03ZuF0qeEx9ctyEy3NyU5o -fp+F+Fs92CL7CMey0dknt74kR1BAARZsLQ== +MHcCAQEEINhJAVcujwL/wE9efTdlKYHJqyfOvmCGY78ztqPOyS93oAoGCCqGSM49 +AwEHoUQDQgAEE9aREPEQ6Ded8EKoejog9kh7qJ38vDa5+7hWpEeuy/csJ+JRdNNh +edRWH9TXeDR+12GmbgRfWoR1XX7dN6btPQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/pai-Cert.der index 6aec9bbb00f704..2325d8f0854bd1 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/pai-Cert.pem index 8078ccac543c6d..19810aae42a67f 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1TCCAXqgAwIBAgIIC/cAUgBOTjIwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB0zCCAXqgAwIBAgIIN8PbZJOFO4EwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASn2Mn3bT8apGi9WzWfX28v8BfVy47U -I/ADklEojp5D7MdFerTUh3KQEe0ioKweRJkw65naMI6FhP27d73fhDfso2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQURYVQ -RWKu0RdrvXtV5HkqV/EXDB8wHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSQAwRgIhAKPBbEUmZrWbHi61AuEa/xda9EToTkkYExAd -t5AEli44AiEA7zgCBeQ4Ax676kwLRPLCzQvTttLxh6c+f8y4bda7I2c= +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQTkCR1ErcpIEeww8hoFOIs1nN7nIa3 +v4FTemkoYXRiYhXRhqPq2Ya/GAE5R8cSwFqQthweR9k6MPhgQIhKDZP1o2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUDgoY +YbRPejGzHuahlaT8SZgqYWEwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDRwAwRAIgNI4iI7gLrLg7N8b1cHJgXD4RcUujR6sOClMx +rYSUgYQCIBNEtXNqHbO1lJSj2alGHuOLTWY9rrN5RrvBDjtMMwbT -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/pai-Key.der index 5a94ee8a212f50..acdd77ef738d6e 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/pai-Key.pem index e88b9a8d929721..2d6da788a156b3 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIBqGwzfAG/VZU+6gmGTwjNALCipCa23f91P9LhFQnB6HoAoGCCqGSM49 -AwEHoUQDQgAEp9jJ920/GqRovVs1n19vL/AX1cuO1CPwA5JRKI6eQ+zHRXq01Idy -kBHtIqCsHkSZMOuZ2jCOhYT9u3e934Q37A== +MHcCAQEEIKgIKaU8yo8RcqZdYPrufk5Cuz5bvuRr1QdRdA4ZvVHLoAoGCCqGSM49 +AwEHoUQDQgAEE5AkdRK3KSBHsMPIaBTiLNZze5yGt7+BU3ppKGF0YmIV0Yaj6tmG +vxgBOUfHEsBakLYcHkfZOjD4YECISg2T9Q== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/test_case_vector.json index 022dfcad06e90f..eacc7f3e1a07cb 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_missing_pid_present/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The dac_origin_vendor_id fild is not present and dac_origin_product_id is present.", "is_success_case": "false", - "dac_cert": "308201e53082018aa00302010202083ca2d93f62f03d2e300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200041474cfe2b8b3dff403a07353c17b9dab64cd4382666d6d3766e174a9e131f5cb72132dcdc94e687e9f85f85b3dd822fb08c7b2d1d927b7be2447504001166c2da360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414013562f221ef3542b975bfac0026af73e6f311d8301f0603551d230418301680144585504562aed1176bbd7b55e4792a57f1170c1f300a06082a8648ce3d0403020349003046022100bef45d881ce90cc961379933208f03710d2d43ce7295f80be3b92f551311579e022100e6315ba03560d205a7cc36658fcf64a70dcd20a2085fe0ad59fe8acf32a06cd5", - "pai_cert": "308201d53082017aa00302010202080bf70052004e4e32300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004a7d8c9f76d3f1aa468bd5b359f5f6f2ff017d5cb8ed423f0039251288e9e43ecc7457ab4d487729011ed22a0ac1e449930eb99da308e8584fdbb77bddf8437eca366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604144585504562aed1176bbd7b55e4792a57f1170c1f301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100a3c16c452666b59b1e2eb502e11aff175af444e84e491813101db79004962e38022100ef380205e438031ebbea4c0b44f2c2cd0bd3b6d2f187a73e7fccb86dd6bb2367", - "certification_declaration": "3082010606092a864886f70d010702a081f83081f5020103310d300b0609608648016503040201306206092a864886f70d010701a0550453152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800250a0080360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100b06bf38312df4bd88390de9af2c8e9f54ea98c4ef5ede8c54d16ae1b82c19ba402207a0844691a300b22cfde61aa1ab2ec7031201ee95b9e44a52ff0356703002088", - "dac_private_key": "73f047525a7ea266c83405274acd3f50da20ece5da84c92884db17c4a329e3af", - "dac_public_key": "041474cfe2b8b3dff403a07353c17b9dab64cd4382666d6d3766e174a9e131f5cb72132dcdc94e687e9f85f85b3dd822fb08c7b2d1d927b7be2447504001166c2d" + "dac_cert": "308201e53082018aa003020102020837973e57afd894bc300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000413d69110f110e8379df042a87a3a20f6487ba89dfcbc36b9fbb856a447aecbf72c27e25174d36179d4561fd4d778347ed761a66e045f5a84755d7edd37a6ed3da360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604146fa83f2ecd8c25d3c9938a45bac4c778663c9a6d301f0603551d230418301680140e0a1861b44f7a31b31ee6a195a4fc49982a6161300a06082a8648ce3d0403020349003046022100df7c1c4f6169577c3355e6c9b476ec8618bda77b188b91bca3ea9574d9ee8e9802210087e889253a49b03b4c4e58e3207ab1d561d4d248432d99f662b58307baedcbc4", + "pai_cert": "308201d33082017aa003020102020837c3db6493853b81300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200041390247512b7292047b0c3c86814e22cd6737b9c86b7bf81537a69286174626215d186a3ead986bf18013947c712c05a90b61c1e47d93a30f86040884a0d93f5a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604140e0a1861b44f7a31b31ee6a195a4fc49982a6161301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203470030440220348e2223b80bacb83b37c6f57072605c3e11714ba347ab0e0a5331ad8494818402201344b5736a1db3b59494a3d9a9461ee38b4d663daeb37946bbc10e3b4c3306d3", + "certification_declaration": "3082010606092a864886f70d010702a081f83081f5020103310d300b0609608648016503040201306206092a864886f70d010701a0550453152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800250a0080360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450220126f13eafead3c674a29d5f6cae02c6a8a42a75e6d50987f7ca6a5e988f2bf35022100bdd09b007cfe0d7576d510d0b11dfc11eded7f49ea61af12afc3df477eed8aff", + "dac_private_key": "d84901572e8f02ffc04f5e7d37652981c9ab27cebe608663bf33b6a3cec92f77", + "dac_public_key": "0413d69110f110e8379df042a87a3a20f6487ba89dfcbc36b9fbb856a447aecbf72c27e25174d36179d4561fd4d778347ed761a66e045f5a84755d7edd37a6ed3d" } diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/cd.der b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/cd.der index 79d91a71c099b1..17720cae56c52f 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/cd.der and b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/dac-Cert.der index 244d7bfc8cb72c..6fad516397c048 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/dac-Cert.pem index 44944c828af6a2..dc9ef8c6248228 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB4zCCAYqgAwIBAgIIFBryveui1dowCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5DCCAYqgAwIBAgIIFzxUc6nJ8oEwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -+7zGBq2m55gQtztxoaQ6tPsz4b3Rwdgw1sjWyAb/5/AR+4P/GEl5UodEvb7gntfS -3JjUGaWvWGEBC39cd4cJwqNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFKkUehZ6rjUqVrLupggel5mBnXMMMB8GA1UdIwQYMBaAFMhi -ou2NWYW785NCE6OmZkPTK0fGMAoGCCqGSM49BAMCA0cAMEQCIFm5BkByqBFNTUpF -Jv/t0sPtamfMUW5SUXBBVxzXrxfiAiBbwgc/c6rfG3xJisMJlD1SCmmH01WqILdq -l0hlG5Zo5w== +NwWonmb3xT+x/P4ey9UWM87KBZGwcUXHxPFH0rh+sWDD31CvVqThJ7IpNR63kV6j +eOPT42qqiHckQGFy4oDAX6NgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFC/Takh6/cm2WZ1F7R0lkn+qS0o9MB8GA1UdIwQYMBaAFOzd +NYioNpGQ43wdxDsg55UWUoS6MAoGCCqGSM49BAMCA0gAMEUCIQDU4izaqnmGpDM0 +IUtu4eYWop9VduLMevJYRoPJGKLC1gIgDO+9fvyEx2i/KFpVnx073VumhsmePmfg +VTO+5zDfdTQ= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/dac-Key.der index bcc9ee4932c5de..7579d965fa0248 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/dac-Key.pem index 48c8060f6b380f..3713cc0cae7a01 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIGDCBI+Wdigz7UF33TIlBkfxBgNrOMAdbLn8u6xNIK1foAoGCCqGSM49 -AwEHoUQDQgAE+7zGBq2m55gQtztxoaQ6tPsz4b3Rwdgw1sjWyAb/5/AR+4P/GEl5 -UodEvb7gntfS3JjUGaWvWGEBC39cd4cJwg== +MHcCAQEEIHSZgUawD8hnF9XJqXOoSB1Kst+XatzHhUdYHVecjY7MoAoGCCqGSM49 +AwEHoUQDQgAENwWonmb3xT+x/P4ey9UWM87KBZGwcUXHxPFH0rh+sWDD31CvVqTh +J7IpNR63kV6jeOPT42qqiHckQGFy4oDAXw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/pai-Cert.der index 1c769f245a9a4d..e6fe7997607876 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/pai-Cert.pem index 31bea54163a0d4..fc85bcefd1a86f 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIFZApYO9UD6swCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1TCCAXqgAwIBAgIIaAV2pI71JRAwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASuwNx1cCOUoFOh9RIDzQZ7AoEswYXB -fkJvT3swJwpcTb5/gexJ1QeGThqqY/cY9sRutdf63rf0K3rv5+f0fMOIo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUyGKi -7Y1Zhbvzk0ITo6ZmQ9MrR8YwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIgaN1KhSpaFuMrAZol9wnnytko6scC0q45/gsr -ztTqpn4CIQCv+oPlDaifesfQZBit/+xjS5JwRwHEraskhVXW8KBY0g== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ9AigDkzgFw7pcpgC0UoBl82OKFFCt +gY2sC+nHwbsiQapUCLSkG5qX0jGoVCk18f1244gRsDY586ejcGRsX/zzo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU7N01 +iKg2kZDjfB3EOyDnlRZShLowHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSQAwRgIhAIaAhAGgG7aTvWOeBirLbSOkcpIkAUIaCRq6 +/KFbL4QPAiEA6ru/+1su/ICzViB+T5jOZ0z1gqQtK8XR43kNNQW6vyM= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/pai-Key.der index 98507a2207c8a3..7a2692d0ff3616 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/pai-Key.pem index b362e1c937bf61..c019b24312e92e 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIKx5rPIQh0I7bfgznssx0XKiCJIUODDwVZPhCu64fqFhoAoGCCqGSM49 -AwEHoUQDQgAErsDcdXAjlKBTofUSA80GewKBLMGFwX5Cb097MCcKXE2+f4HsSdUH -hk4aqmP3GPbEbrXX+t639Ct67+fn9HzDiA== +MHcCAQEEIBHrRyIKtaJR5EL5bbHqjllVxXu4ngVyzAK6SWMCEYZloAoGCCqGSM49 +AwEHoUQDQgAEPQIoA5M4BcO6XKYAtFKAZfNjihRQrYGNrAvpx8G7IkGqVAi0pBua +l9IxqFQpNfH9duOIEbA2OfOno3BkbF/88w== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/test_case_vector.json index 03279780f4b696..ec0708143802e6 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_missing/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The dac_origin_vendor_id and dac_origin_product_id fields are not present.", "is_success_case": "true", - "dac_cert": "308201e33082018aa0030201020208141af2bdeba2d5da300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004fbbcc606ada6e79810b73b71a1a43ab4fb33e1bdd1c1d830d6c8d6c806ffe7f011fb83ff184979528744bdbee09ed7d2dc98d419a5af5861010b7f5c778709c2a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414a9147a167aae352a56b2eea6081e9799819d730c301f0603551d23041830168014c862a2ed8d5985bbf3934213a3a66643d32b47c6300a06082a8648ce3d0403020347003044022059b9064072a8114d4d4a4526ffedd2c3ed6a67cc516e52517041571cd7af17e202205bc2073f73aadf1b7c498ac309943d520a6987d355aa20b76a9748651b9668e7", - "pai_cert": "308201d43082017aa003020102020815902960ef540fab300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004aec0dc75702394a053a1f51203cd067b02812cc185c17e426f4f7b30270a5c4dbe7f81ec49d507864e1aaa63f718f6c46eb5d7fadeb7f42b7aefe7e7f47cc388a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414c862a2ed8d5985bbf3934213a3a66643d32b47c6301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022068dd4a852a5a16e32b019a25f709e7cad928eac702d2ae39fe0b2bced4eaa67e022100affa83e50da89f7ac7d06418adffec634b92704701c4adab248555d6f0a058d2", - "certification_declaration": "3082010206092a864886f70d010702a081f43081f1020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502203d016d2d0934828cd314d7fdb19a88a9ad55d4fabcc213b50531d79a3bd85c77022100d755e7bbbbedae040ddeee8688dd54889d0e2ad3980ee118c63ebebc7071b04b", - "dac_private_key": "60c2048f96762833ed4177dd32250647f106036b38c01d6cb9fcbbac4d20ad5f", - "dac_public_key": "04fbbcc606ada6e79810b73b71a1a43ab4fb33e1bdd1c1d830d6c8d6c806ffe7f011fb83ff184979528744bdbee09ed7d2dc98d419a5af5861010b7f5c778709c2" + "dac_cert": "308201e43082018aa0030201020208173c5473a9c9f281300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200043705a89e66f7c53fb1fcfe1ecbd51633ceca0591b07145c7c4f147d2b87eb160c3df50af56a4e127b229351eb7915ea378e3d3e36aaa887724406172e280c05fa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604142fd36a487afdc9b6599d45ed1d25927faa4b4a3d301f0603551d23041830168014ecdd3588a8369190e37c1dc43b20e795165284ba300a06082a8648ce3d0403020348003045022100d4e22cdaaa7986a43334214b6ee1e616a29f5576e2cc7af2584683c918a2c2d602200cefbd7efc84c768bf285a559f1d3bdd5ba686c99e3e67e05533bee730df7534", + "pai_cert": "308201d53082017aa0030201020208680576a48ef52510300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200043d022803933805c3ba5ca600b4528065f3638a1450ad818dac0be9c7c1bb2241aa5408b4a41b9a97d231a8542935f1fd76e38811b03639f3a7a370646c5ffcf3a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414ecdd3588a8369190e37c1dc43b20e795165284ba301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034900304602210086808401a01bb693bd639e062acb6d23a472922401421a091abafca15b2f840f022100eabbbffb5b2efc80b356207e4f98ce674cf582a42d2bc5d1e3790d3505babf23", + "certification_declaration": "3082010106092a864886f70d010702a081f33081f0020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204463044022062a5599b044e3d22014801194c59118145f4e8e2fa98188356426e232b497aaa0220293921578e23e3d85dc9df00226b8aa4ef3cfc5ebd04d4c9fe288721a6b93420", + "dac_private_key": "74998146b00fc86717d5c9a973a8481d4ab2df976adcc78547581d579c8d8ecc", + "dac_public_key": "043705a89e66f7c53fb1fcfe1ecbd51633ceca0591b07145c7c4f147d2b87eb160c3df50af56a4e127b229351eb7915ea378e3d3e36aaa887724406172e280c05f" } diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/cd.der b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/cd.der index 916e779cfab009..cf7a8f036274d5 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/cd.der and b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/dac-Cert.der index 0de6ac486c358f..9856168f56fa5d 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/dac-Cert.pem index 194a33a695b9a8..ece9389db67033 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB4zCCAYqgAwIBAgIIL2kTwFJl2V8wCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5TCCAYqgAwIBAgIILY2cVqGzLVYwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -h5a981lmF1DUvSGaSodCkoIL1xhJbTiHZjpG7Eeznnq7mOJf1UyiiklTB8xmBGCl -CvWOYhOHBuKVazShKfD2oaNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFPgwlK+pBJV52h44H5yyRhzwwaM0MB8GA1UdIwQYMBaAFDjM -tJZSoxpks80SAXp7q17/fEALMAoGCCqGSM49BAMCA0cAMEQCIF0/s09Fe2SmDBE6 -EY7YAteYZSbGTc1Zo7I1RFTAWOWjAiBworHn7cr5buEquOslTq+q/Rx/ZaPEb1rl -SkH21Ra0EA== +xus3QGDvf25ZyvScm3itALu5C7gyeAB+nQcvqFmg0XxXds8lMThUDKCaGCUyUR8a +NO/xcmBPH/rf4+nwrzVFkKNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFG2VAgwn4ERoASi3Xo+9yfnc9n/YMB8GA1UdIwQYMBaAFEe6 +9EsY7aJOg7cB4ksA+z1q6qvHMAoGCCqGSM49BAMCA0kAMEYCIQC3AiriaqkEARhu +dK0cE/EcCsVNnqrRvNwHEJ5+fyp/LgIhAO0zviDtXCs+sJnyXymfMF7rpbhv/3fK +2zjETEu4l3x7 -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/dac-Key.der index 8ab8f6ffe08394..1cfd238785054e 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/dac-Key.pem index bf83136887f946..36d768b1cd3056 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIHknMdCWK5I8Vj4A8xNlIH2VpO9UoZd23Cb3kdvK4o4woAoGCCqGSM49 -AwEHoUQDQgAEh5a981lmF1DUvSGaSodCkoIL1xhJbTiHZjpG7Eeznnq7mOJf1Uyi -iklTB8xmBGClCvWOYhOHBuKVazShKfD2oQ== +MHcCAQEEIEKsAC1GNU5otNnBgH1vsqARYUJXPVQeczz7wEm6GlTcoAoGCCqGSM49 +AwEHoUQDQgAExus3QGDvf25ZyvScm3itALu5C7gyeAB+nQcvqFmg0XxXds8lMThU +DKCaGCUyUR8aNO/xcmBPH/rf4+nwrzVFkA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/pai-Cert.der index ae2214f17a57a9..455e245ba52d37 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/pai-Cert.pem index a9c9f9449216a8..e5d512f58b4bcb 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIK3lXIPSYT5MwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1DCCAXqgAwIBAgIIf/UiU84qYy0wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATwFy9vHDGsCNLbs9ZS/c3RBnyX1x9k -chUoCME5i5WBouO4SgEYb3l1r6/A4Z5irnnLv8RH1GOp5sM8bDpNHp98o2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUOMy0 -llKjGmSzzRIBenurXv98QAswHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIgJ7c8hx7jvKb2gwMuWfEj++6lb/itCALDMDRA -ziV+u5ACIQC6vn4hkFA4RKLfGELD3d4AspMQGQkjwto/25k3cOhqmg== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASQJ7ef2USioSL7qiT2l4z+XDSX6cuo +o+sxvBC2VZyjQx6vRa89bLrvhjcwUWaglveGsKSQnH5ghsq7fQiQKaG/o2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUR7r0 +Sxjtok6DtwHiSwD7PWrqq8cwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIhAPtozGKjANywu/VOvoJ1avlKVMxh6qbAKysA +x24/odjEAiA+UcWqD9oHZtKapLtvvhlNsCU8tWIHtxFDose6ebI7ig== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/pai-Key.der index 88efe1bc074e5f..67d0efd48f40f0 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/pai-Key.pem index 110b8a4f96c224..f378418954fa57 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIKOHNUl0RM8IxDsEO9tRtCIrYgYTB7x84BBvbtormSY1oAoGCCqGSM49 -AwEHoUQDQgAE8BcvbxwxrAjS27PWUv3N0QZ8l9cfZHIVKAjBOYuVgaLjuEoBGG95 -da+vwOGeYq55y7/ER9RjqebDPGw6TR6ffA== +MHcCAQEEIMRbyq0BucetfRDLzNLcSXSluV10goA4Zo2uvdj/gh/xoAoGCCqGSM49 +AwEHoUQDQgAEkCe3n9lEoqEi+6ok9peM/lw0l+nLqKPrMbwQtlWco0Mer0WvPWy6 +74Y3MFFmoJb3hrCkkJx+YIbKu30IkCmhvw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/test_case_vector.json index fa2eaa5aff63d1..6dd2ca5da1c00f 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_match/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The dac_origin_vendor_id and dac_origin_product_id fields present and contain the VID and PID values that match the VID and PID found in the DAC Subject DN.", "is_success_case": "true", - "dac_cert": "308201e33082018aa00302010202082f6913c05265d95f300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200048796bdf359661750d4bd219a4a874292820bd718496d3887663a46ec47b39e7abb98e25fd54ca28a495307cc660460a50af58e62138706e2956b34a129f0f6a1a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414f83094afa9049579da1e381f9cb2461cf0c1a334301f0603551d2304183016801438ccb49652a31a64b3cd12017a7bab5eff7c400b300a06082a8648ce3d040302034700304402205d3fb34f457b64a60c113a118ed802d7986526c64dcd59a3b2354454c058e5a3022070a2b1e7edcaf96ee12ab8eb254eafaafd1c7f65a3c46f5ae54a41f6d516b410", - "pai_cert": "308201d43082017aa00302010202082b795720f4984f93300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004f0172f6f1c31ac08d2dbb3d652fdcdd1067c97d71f6472152808c1398b9581a2e3b84a01186f7975afafc0e19e62ae79cbbfc447d463a9e6c33c6c3a4d1e9f7ca366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e0416041438ccb49652a31a64b3cd12017a7bab5eff7c400b301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022027b73c871ee3bca6f683032e59f123fbeea56ff8ad0802c3303440ce257ebb90022100babe7e2190503844a2df1842c3ddde00b29310190923c2da3fdb993770e86a9a", - "certification_declaration": "3082010906092a864886f70d010702a081fb3081f8020103310d300b0609608648016503040201306606092a864886f70d010701a0590457152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d3234240500240600250776982408002509f1ff250a0080360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402205b07a7bac8aa6db5e79a1a0471b6c33b07b0f4ea8da7e6d9e35dfe3bbbbae7df0220449e2667909b442fcb65943def9b26db2f9aaae4701a9d36312798b1c4c26bc2", - "dac_private_key": "792731d0962b923c563e00f31365207d95a4ef54a19776dc26f791dbcae28e30", - "dac_public_key": "048796bdf359661750d4bd219a4a874292820bd718496d3887663a46ec47b39e7abb98e25fd54ca28a495307cc660460a50af58e62138706e2956b34a129f0f6a1" + "dac_cert": "308201e53082018aa00302010202082d8d9c56a1b32d56300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004c6eb374060ef7f6e59caf49c9b78ad00bbb90bb83278007e9d072fa859a0d17c5776cf253138540ca09a182532511f1a34eff172604f1ffadfe3e9f0af354590a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604146d95020c27e044680128b75e8fbdc9f9dcf67fd8301f0603551d2304183016801447baf44b18eda24e83b701e24b00fb3d6aeaabc7300a06082a8648ce3d0403020349003046022100b7022ae26aa90401186e74ad1c13f11c0ac54d9eaad1bcdc07109e7e7f2a7f2e022100ed33be20ed5c2b3eb099f25f299f305eeba5b86fff77cadb38c44c4bb8977c7b", + "pai_cert": "308201d43082017aa00302010202087ff52253ce2a632d300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200049027b79fd944a2a122fbaa24f6978cfe5c3497e9cba8a3eb31bc10b6559ca3431eaf45af3d6cbaef8637305166a096f786b0a4909c7e6086cabb7d089029a1bfa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041447baf44b18eda24e83b701e24b00fb3d6aeaabc7301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100fb68cc62a300dcb0bbf54ebe82756af94a54cc61eaa6c02b2b00c76e3fa1d8c402203e51c5aa0fda0766d29aa4bb6fbe194db0253cb56207b71143a2c7ba79b23b8a", + "certification_declaration": "3082010a06092a864886f70d010702a081fc3081f9020103310d300b0609608648016503040201306606092a864886f70d010701a0590457152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d3234240500240600250776982408002509f1ff250a0080360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100eb0602ea25f357700d6f39582d2cc273764fd7a48d4f78b672471c173b0fc59902202029f73f5cb06d0dce4b872ffb61559d6d83d3a7b6d7448022e2f0b32bf7fd55", + "dac_private_key": "42ac002d46354e68b4d9c1807d6fb2a0116142573d541e733cfbc049ba1a54dc", + "dac_public_key": "04c6eb374060ef7f6e59caf49c9b78ad00bbb90bb83278007e9d072fa859a0d17c5776cf253138540ca09a182532511f1a34eff172604f1ffadfe3e9f0af354590" } diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/cd.der b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/cd.der index 9b0964bc3dae09..ba396736737841 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/cd.der and b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/dac-Cert.der index 3ef51b47dd24ab..b3055d781f8fc2 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/dac-Cert.pem index f5db07dbeebf8d..e29ad1354f73f3 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5DCCAYqgAwIBAgIIClEuk5qM4AgwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5DCCAYqgAwIBAgIIRT4kWtqebgIwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -iw3y9n8cLpR2bq8E7cajlZ7uwblFB8r1/UzL2gO5UrfcIO19Ub/vd+DaOSZ0NEB9 -4hCnN+2lv3Uzqg64RDlMhqNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFHsy91L5Nb18Hplb3UWFOsis98ACMB8GA1UdIwQYMBaAFOY1 -KVMOQ8gu5e/Vffixn8UHaTlOMAoGCCqGSM49BAMCA0gAMEUCIA6BHAMaswlm/KTl -9CKuH1Q3bXGRt2DPnpGO0T64UdK+AiEA4o5E4mOuldG2guM6QvWwcn8MqfgEoaWd -wgPmSfqKglc= +KmN1yIIGzgi2b0nV1iHeDJVw8c/xaMAnAd/3kd/K+McCI6zStMr+NRf3XcaCWl2A +1KSH39/lRFbK2ylhqRC1XaNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFOH57la50tXT+kz+ziG+ba1B/qAdMB8GA1UdIwQYMBaAFP0J +pVBELan2bsfbUN0DvyguZFopMAoGCCqGSM49BAMCA0gAMEUCIQC5oJ4pxJQ0wHLg +qwO4d1rmhCnY5Bydd+8ZsFHfOtn8OwIgelpUZZlfOir18vw4I81w/3V1N0yegzhe +yR7dWTzYTyE= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/dac-Key.der index 4baaad9b46f82a..16e737757106fe 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/dac-Key.pem index 2c133fbf7ad4bc..0c31a2896fb965 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIEj0X+pnTDSRkJrrpKILvXawNJAiTJgJljn2b9w8kdkfoAoGCCqGSM49 -AwEHoUQDQgAEiw3y9n8cLpR2bq8E7cajlZ7uwblFB8r1/UzL2gO5UrfcIO19Ub/v -d+DaOSZ0NEB94hCnN+2lv3Uzqg64RDlMhg== +MHcCAQEEIFig2eRdcriJq/J0Yw2p7hXf0B3oZy/O6l8glWcl39oZoAoGCCqGSM49 +AwEHoUQDQgAEKmN1yIIGzgi2b0nV1iHeDJVw8c/xaMAnAd/3kd/K+McCI6zStMr+ +NRf3XcaCWl2A1KSH39/lRFbK2ylhqRC1XQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/pai-Cert.der index e5b2b1cc640696..f63967c578590a 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/pai-Cert.pem index 39c039cb3820c3..3a2268926fc01f 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB0zCCAXqgAwIBAgIINAseX9srVKQwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1DCCAXqgAwIBAgIIcCw2uR6umbUwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARMv/bgf/rF2Xqd5X8ZHGf6LyQ7Z0TL -LcocqRXBe2eKYTbuAWO7WixLKwDXqJxo2PpuMGs1xluZunGJ/D8kcATXo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU5jUp -Uw5DyC7l79V9+LGfxQdpOU4wHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDRwAwRAIgAgJa6/thQiQiRSPfrsmBIspEMVdfnWuqc3ni -EGfcH/4CIAcL4OwMS3Oii2FW1QN6rzHFX+e8feUvEGOaO5xym6Md +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATjSmDky9WaBBXc9t5wKUB32/dlTXiL +mZNRFF5Sh7SlDQp58LIFKTDZHtAY2Om0GG2warl0Dys8AitPzgeX88yCo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU/Qml +UEQtqfZux9tQ3QO/KC5kWikwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIhAMCzRaMQqGYbSyklQjOEDhpfjrvgpNM/2Y/i +nbE/OEkvAiAV3I6Aw2EGRCarotOtszzb/uobjDDAa/FTpRI495ihFQ== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/pai-Key.der index 66c2596447eb53..e47350fa2d632e 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/pai-Key.pem index 8cf3ee29b48910..2d71b1dd0d9914 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEICXupILzHXU7bq6WuXPN7J4MFtOo/paC6aSy6XQH5htRoAoGCCqGSM49 -AwEHoUQDQgAETL/24H/6xdl6neV/GRxn+i8kO2dEyy3KHKkVwXtnimE27gFju1os -SysA16icaNj6bjBrNcZbmbpxifw/JHAE1w== +MHcCAQEEIJdGMXh1zEChNZAX3emOYdk2UMq5VaVjbt91GhfkYKOuoAoGCCqGSM49 +AwEHoUQDQgAE40pg5MvVmgQV3PbecClAd9v3ZU14i5mTURReUoe0pQ0KefCyBSkw +2R7QGNjptBhtsGq5dA8rPAIrT84Hl/PMgg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/test_case_vector.json index 1f852b14881286..751d9f1b8bab14 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_pid_mismatch/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The dac_origin_vendor_id and dac_origin_product_id fields present and the PID value doesn't match the PID found in the DAC Subject DN.", "is_success_case": "false", - "dac_cert": "308201e43082018aa00302010202080a512e939a8ce008300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200048b0df2f67f1c2e94766eaf04edc6a3959eeec1b94507caf5fd4ccbda03b952b7dc20ed7d51bfef77e0da39267434407de210a737eda5bf7533aa0eb844394c86a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604147b32f752f935bd7c1e995bdd45853ac8acf7c002301f0603551d23041830168014e63529530e43c82ee5efd57df8b19fc50769394e300a06082a8648ce3d040302034800304502200e811c031ab30966fca4e5f422ae1f54376d7191b760cf9e918ed13eb851d2be022100e28e44e263ae95d1b682e33a42f5b0727f0ca9f804a1a59dc203e649fa8a8257", - "pai_cert": "308201d33082017aa0030201020208340b1e5fdb2b54a4300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200044cbff6e07ffac5d97a9de57f191c67fa2f243b6744cb2dca1ca915c17b678a6136ee0163bb5a2c4b2b00d7a89c68d8fa6e306b35c65b99ba7189fc3f247004d7a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414e63529530e43c82ee5efd57df8b19fc50769394e301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020347003044022002025aebfb614224224523dfaec98122ca4431575f9d6baa7379e21067dc1ffe0220070be0ec0c4b73a28b6156d5037aaf31c55fe7bc7de52f10639a3b9c729ba31d", - "certification_declaration": "3082010a06092a864886f70d010702a081fc3081f9020103310d300b0609608648016503040201306606092a864886f70d010701a0590457152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080025090880250a00ff360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022007112bef07d67f28e5987f0681e7ff3315991e0e208a470fbb83a1c9ac56258d022100cc173ee88366038a3fbbee34323eda9e8796f66df5d0f12bae0bffa76b9bbb36", - "dac_private_key": "48f45fea674c3491909aeba4a20bbd76b03490224c98099639f66fdc3c91d91f", - "dac_public_key": "048b0df2f67f1c2e94766eaf04edc6a3959eeec1b94507caf5fd4ccbda03b952b7dc20ed7d51bfef77e0da39267434407de210a737eda5bf7533aa0eb844394c86" + "dac_cert": "308201e43082018aa0030201020208453e245ada9e6e02300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200042a6375c88206ce08b66f49d5d621de0c9570f1cff168c02701dff791dfcaf8c70223acd2b4cafe3517f75dc6825a5d80d4a487dfdfe54456cadb2961a910b55da360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414e1f9ee56b9d2d5d3fa4cfece21be6dad41fea01d301f0603551d23041830168014fd09a550442da9f66ec7db50dd03bf282e645a29300a06082a8648ce3d0403020348003045022100b9a09e29c49434c072e0ab03b8775ae68429d8e41c9d77ef19b051df3ad9fc3b02207a5a5465995f3a2af5f2fc3823cd70ff7575374c9e83385ec91edd593cd84f21", + "pai_cert": "308201d43082017aa0030201020208702c36b91eae99b5300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004e34a60e4cbd59a0415dcf6de70294077dbf7654d788b999351145e5287b4a50d0a79f0b2052930d91ed018d8e9b4186db06ab9740f2b3c022b4fce0797f3cc82a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414fd09a550442da9f66ec7db50dd03bf282e645a29301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100c0b345a310a8661b4b29254233840e1a5f8ebbe0a4d33fd98fe29db13f38492f022015dc8e80c361064426aba2d3adb33cdbfeea1b8c30c06bf153a51238f798a115", + "certification_declaration": "3082010b06092a864886f70d010702a081fd3081fa020103310d300b0609608648016503040201306606092a864886f70d010701a0590457152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080025090880250a00ff360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044830460221008d2087a64f755602d132c9c05c688240ba27b9153081c9fc49c92b92f6654ab2022100cecabcaed42bee5021cdc4d79a5208f74c6d80f70b734983bb467e5ef896b4da", + "dac_private_key": "58a0d9e45d72b889abf274630da9ee15dfd01de8672fceea5f20956725dfda19", + "dac_public_key": "042a6375c88206ce08b66f49d5d621de0c9570f1cff168c02701dff791dfcaf8c70223acd2b4cafe3517f75dc6825a5d80d4a487dfdfe54456cadb2961a910b55d" } diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/cd.der b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/cd.der index e15bcf7089181e..8fa15c6e6cadd6 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/cd.der and b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/dac-Cert.der index 9087896f369b60..123d0e13447c8e 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/dac-Cert.pem index 3a9a2f6311b374..1a477e2f2c34e6 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5DCCAYqgAwIBAgIIZvUWJmJPJuIwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5DCCAYqgAwIBAgIIDsFM3tIJY4swCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -JRcrpgHlOa8iwCX17lkRWjxhdMHDxOTbZHDlv3w5fUOh96oHFBWoLo2ulajTmHHk -TiR3ZoWfFAoUZyB/XyfsgKNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFPTUaQ2L83aRP/xiYfQZM8Q6XPvRMB8GA1UdIwQYMBaAFHgB -wEBGn+ekZQPSg36fnJcnI5fhMAoGCCqGSM49BAMCA0gAMEUCIQCw0tR3AO8b+TP3 -dy0epqTcvle+Ta7WG7hrJxOMc+1CxwIgbo79w7/fJOF90KjyAIwal+RXSV4y4YU3 -9ZIMYpiTxSM= +AXrv8SGerAMB0umDpkw0RkGC9tk0Wgm9Fj//mTGkMv1WtOHYq7JilR/hAE5xfQEm +gCJylor+Wzq1xeiz82FQvaNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFFLuoTj16HS8QeU0WlWb4Zk2K98cMB8GA1UdIwQYMBaAFBNS +Cn8R5nJg29yvQomKtOtz/eb2MAoGCCqGSM49BAMCA0gAMEUCIEXg3crNC3uPjBkk +rOrnYsK0leM2N+vH6U2S8c9lTNCcAiEAjou8RTa4qdP3ZMWNen4GKkBa6Ej29JCb +unyek5Ciny4= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/dac-Key.der index 6750824aaf7b6f..0353af8b8d44c9 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/dac-Key.pem index 3f02ea7a5136a1..81807d91112f8f 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIACF70lsdafBLNTQMcM/WsVMb6pFp6Pt9ZMMhUDXBGl3oAoGCCqGSM49 -AwEHoUQDQgAEJRcrpgHlOa8iwCX17lkRWjxhdMHDxOTbZHDlv3w5fUOh96oHFBWo -Lo2ulajTmHHkTiR3ZoWfFAoUZyB/XyfsgA== +MHcCAQEEIB7gZ5Os8e+U1DgNTVVmA1X8X12fdEmKEwv7P083LVYboAoGCCqGSM49 +AwEHoUQDQgAEAXrv8SGerAMB0umDpkw0RkGC9tk0Wgm9Fj//mTGkMv1WtOHYq7Ji +lR/hAE5xfQEmgCJylor+Wzq1xeiz82FQvQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/pai-Cert.der index 46be24550c0c71..8627d8fd2eb175 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/pai-Cert.pem index 7cca94bc711cdc..559246babf35e8 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1TCCAXqgAwIBAgIIaCFGD5Isg/wwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1DCCAXqgAwIBAgIIEkkAf5kui6UwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAT3ZAvXWzRfYC0lnsfCz5iLOoB+ccvr -HIZdAxfCH/Ye3kX8o4v/3aHfAdnLRJw0xAA07YsoepvFxBaL6qRmGJkho2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUeAHA -QEaf56RlA9KDfp+clycjl+EwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSQAwRgIhAOQX7xz4YLTzvKl4S/cQj+/CRbMEBc+PA1lP -gk+ntrThAiEAi0NJr6KsO3kNuzoPLNSof4AcKv+C8rylj6/BbAzwibo= +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQHdSDVMCer9ll8DNTEr9lpXtwxesoQ +rJyOlpcAyY9I8X63Y3VJum4/7NVTHnO2loDQPJiW0IwrM9DByFsDKuOGo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUE1IK +fxHmcmDb3K9CiYq063P95vYwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIhAJwY6s0x3FOWHbEGyvO6XX9pgBCGxAZ4OKCu +nYW98gt3AiBgxjnTvVrMRSikYBvYJPFFV0QAUjsDAEpHGbZoStPYow== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/pai-Key.der index b18961d447575f..339d0c603427e8 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/pai-Key.pem index 4a3c5fb4d648e7..ad6d29e4a33662 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIM4/RxmHxCsDzF3g2JSdMAvoZV94b9yhO9lknRRhOH0soAoGCCqGSM49 -AwEHoUQDQgAE92QL11s0X2AtJZ7Hws+YizqAfnHL6xyGXQMXwh/2Ht5F/KOL/92h -3wHZy0ScNMQANO2LKHqbxcQWi+qkZhiZIQ== +MHcCAQEEIHDVH7Z/IMDtl2ZSlvWAZ78r+ipjwC5qgB3HgM3g4HQLoAoGCCqGSM49 +AwEHoUQDQgAEB3Ug1TAnq/ZZfAzUxK/ZaV7cMXrKEKycjpaXAMmPSPF+t2N1Sbpu +P+zVUx5ztpaA0DyYltCMKzPQwchbAyrjhg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/test_case_vector.json index 5b2f3d761346a1..b9b7e0006e69eb 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_pid_present_vid_mismatch/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The dac_origin_vendor_id and dac_origin_product_id fields present and the VID value doesn't match the VID found in the DAC Subject DN.", "is_success_case": "false", - "dac_cert": "308201e43082018aa003020102020866f51626624f26e2300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000425172ba601e539af22c025f5ee59115a3c6174c1c3c4e4db6470e5bf7c397d43a1f7aa071415a82e8dae95a8d39871e44e247766859f140a1467207f5f27ec80a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414f4d4690d8bf376913ffc6261f41933c43a5cfbd1301f0603551d230418301680147801c040469fe7a46503d2837e9f9c97272397e1300a06082a8648ce3d0403020348003045022100b0d2d47700ef1bf933f7772d1ea6a4dcbe57be4daed61bb86b27138c73ed42c702206e8efdc3bfdf24e17dd0a8f2008c1a97e457495e32e18537f5920c629893c523", - "pai_cert": "308201d53082017aa00302010202086821460f922c83fc300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004f7640bd75b345f602d259ec7c2cf988b3a807e71cbeb1c865d0317c21ff61ede45fca38bffdda1df01d9cb449c34c40034ed8b287a9bc5c4168beaa466189921a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604147801c040469fe7a46503d2837e9f9c97272397e1301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100e417ef1cf860b4f3bca9784bf7108fefc245b30405cf8f03594f824fa7b6b4e10221008b4349afa2ac3b790dbb3a0f2cd4a87f801c2aff82f2bca58fafc16c0cf089ba", - "certification_declaration": "3082010b06092a864886f70d010702a081fd3081fa020103310d300b0609608648016503040201306606092a864886f70d010701a0590457152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080025090880250a00ff360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100a423ae3c91c27d56d4091dacd4a1f7d97373f9cc13f7eb97a1ab173cf3709264022100d1b217747980c9ffe28b451d75608f6ff000a2c29e0aabb478ffa473c727604a", - "dac_private_key": "0085ef496c75a7c12cd4d031c33f5ac54c6faa45a7a3edf5930c8540d7046977", - "dac_public_key": "0425172ba601e539af22c025f5ee59115a3c6174c1c3c4e4db6470e5bf7c397d43a1f7aa071415a82e8dae95a8d39871e44e247766859f140a1467207f5f27ec80" + "dac_cert": "308201e43082018aa00302010202080ec14cded209638b300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004017aeff1219eac0301d2e983a64c34464182f6d9345a09bd163fff9931a432fd56b4e1d8abb262951fe1004e717d0126802272968afe5b3ab5c5e8b3f36150bda360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041452eea138f5e874bc41e5345a559be199362bdf1c301f0603551d2304183016801413520a7f11e67260dbdcaf42898ab4eb73fde6f6300a06082a8648ce3d0403020348003045022045e0ddcacd0b7b8f8c1924aceae762c2b495e33637ebc7e94d92f1cf654cd09c0221008e8bbc4536b8a9d3f764c58d7a7e062a405ae848f6f4909bba7c9e9390a29f2e", + "pai_cert": "308201d43082017aa00302010202081249007f992e8ba5300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004077520d53027abf6597c0cd4c4afd9695edc317aca10ac9c8e969700c98f48f17eb7637549ba6e3fecd5531e73b69680d03c9896d08c2b33d0c1c85b032ae386a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041413520a7f11e67260dbdcaf42898ab4eb73fde6f6301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203480030450221009c18eacd31dc53961db106caf3ba5d7f69801086c4067838a0ae9d85bdf20b77022060c639d3bd5acc4528a4601bd824f145574400523b03004a4719b6684ad3d8a3", + "certification_declaration": "3082010b06092a864886f70d010702a081fd3081fa020103310d300b0609608648016503040201306606092a864886f70d010701a0590457152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080025090880250a00ff360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020448304602210098274181c3c7282114426896d0f510d31d39d32d228f13fb14507b92107913eb0221008c33978b88ca12c79eba51d9fd2de9c0476c139344479589b66e999773e078b6", + "dac_private_key": "1ee06793acf1ef94d4380d4d55660355fc5f5d9f74498a130bfb3f4f372d561b", + "dac_public_key": "04017aeff1219eac0301d2e983a64c34464182f6d9345a09bd163fff9931a432fd56b4e1d8abb262951fe1004e717d0126802272968afe5b3ab5c5e8b3f36150bd" } diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/cd.der b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/cd.der index 9b1a87d2b16630..e35ccbf304d19e 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/cd.der and b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/dac-Cert.der index fe174896274356..2fc94874264961 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/dac-Cert.pem index 026286ddb0de3b..b6f269fca6d833 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB4zCCAYqgAwIBAgIITpeKQOtSc8gwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5DCCAYqgAwIBAgIIQyOd5XAjakEwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -rnkLQ4V4RMDftZ5PevxSbss+Y+hxvEn9yqxy0vxkPzRpRw/NSUX5KIIejctMD0xG -gVWdcZd8zyvNWUX0+dDSqaNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFPdta+27l/2heXA1N4m8hZCZ4SjQMB8GA1UdIwQYMBaAFBUR -JJg6Ho/F9wBFtXhhybLuHekiMAoGCCqGSM49BAMCA0cAMEQCIC8lAPU1eoExnm9C -Vh4NKs/z03aldtF8FKk4gNNU+GqQAiAtXgwTrWB7JjvJTd3vRkuFh2b50dp6bxad -d6bO8UPBrA== +i9/WKm1va8vLvk/2f0Rla4+pgBAhXr/KmdXKK+tgLnEv+1I57VQ6as2ZOExWdR8F +zvA2GDN/5hjTLt7vj9EfH6NgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFHfZPcc5eAWFp87Y7ll5Sr4xd0BOMB8GA1UdIwQYMBaAFKjQ +bUQc6OS7QqGPJuSXCW4Vxb3TMAoGCCqGSM49BAMCA0gAMEUCIQDB1Ldt+M9bWKrw +lfFIvyt1NjbyvwnOWqPO0aiUpZvUWAIgSNDch0WXeXQDyfCA2su71fWaUXESdPU0 +AK6Tp+D/+Bk= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/dac-Key.der index d80533ec35184c..1298c82dde7081 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/dac-Key.pem index a1a406e040ddba..2ccd459e2a66d6 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIDAlLmaeMzrFYCcJPaALCwafOJ7gbzhKEbkljW+1fDbuoAoGCCqGSM49 -AwEHoUQDQgAErnkLQ4V4RMDftZ5PevxSbss+Y+hxvEn9yqxy0vxkPzRpRw/NSUX5 -KIIejctMD0xGgVWdcZd8zyvNWUX0+dDSqQ== +MHcCAQEEIPUb6ojwF7CDfTBbygk9is2oJp7s+izujkZLoCcTi1sMoAoGCCqGSM49 +AwEHoUQDQgAEi9/WKm1va8vLvk/2f0Rla4+pgBAhXr/KmdXKK+tgLnEv+1I57VQ6 +as2ZOExWdR8FzvA2GDN/5hjTLt7vj9EfHw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/pai-Cert.der index 063ed82d1b79d0..242f5047c54e66 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/pai-Cert.pem index 4983663f7538fd..5c267ae9c4bcc4 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIITtLKkw7Xm3owCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1DCCAXqgAwIBAgIIOSDwDhfeWa8wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQedsBuhSznsAXmsrhFonJgmdua2vl1 -dw/JBhfhT/lLaGh2KXovU6p98cTMPC3NIAwd75aNNEhAaNM2UkJFmFfGo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUFREk -mDoej8X3AEW1eGHJsu4d6SIwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIgLaBXOm+qxEB3mljBleVuvECw/1hVUME1raK+ -GJ33A1QCIQDs7JoX6WS+ovuZrmMXvRDH0dMGe4isEpebn4rhFuRFKA== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARdXNS9aez7/ohTq+i7R3lMJosQMBoD +JlS8vVSf3d/ItY3BkEyLo7SxbfKkjFrGoup1id18ynM3TwRZjJx8jKnEo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUqNBt +RBzo5LtCoY8m5JcJbhXFvdMwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIgAIrQaxC8Mvxvh3R8udsX1X9lsLa/0Xqsk4zH +6Hy6qxECIQDU4bQooJ5JjX0I5xPOUL3+iti149GYFjP3eXJ5gPArFQ== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/pai-Key.der index bed64e8b43c157..87784c29ae3599 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/pai-Key.pem index a191c10a4d8576..a94876f785c3b8 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEICZHYDKWFEPm2D3DFhNt/vINCKDoBIbDMPrSvoL5qb3AoAoGCCqGSM49 -AwEHoUQDQgAEHnbAboUs57AF5rK4RaJyYJnbmtr5dXcPyQYX4U/5S2hodil6L1Oq -ffHEzDwtzSAMHe+WjTRIQGjTNlJCRZhXxg== +MHcCAQEEIGBR+MQga37w9rNFc8sfM2MC1l0RE62vhYjnIK1v4I+koAoGCCqGSM49 +AwEHoUQDQgAEXVzUvWns+/6IU6vou0d5TCaLEDAaAyZUvL1Un93fyLWNwZBMi6O0 +sW3ypIxaxqLqdYndfMpzN08EWYycfIypxA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/test_case_vector.json index 17060cdefe779e..2726ec7eaa71da 100644 --- a/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_dac_origin_vid_present_pid_missing/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The dac_origin_vendor_id fild is present and dac_origin_product_id fields is not present.", "is_success_case": "false", - "dac_cert": "308201e33082018aa00302010202084e978a40eb5273c8300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004ae790b43857844c0dfb59e4f7afc526ecb3e63e871bc49fdcaac72d2fc643f3469470fcd4945f928821e8dcb4c0f4c4681559d71977ccf2bcd5945f4f9d0d2a9a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414f76d6bedbb97fda17970353789bc859099e128d0301f0603551d23041830168014151124983a1e8fc5f70045b57861c9b2ee1de922300a06082a8648ce3d040302034700304402202f2500f5357a81319e6f42561e0d2acff3d376a576d17c14a93880d354f86a9002202d5e0c13ad607b263bc94dddef464b858766f9d1da7a6f169d77a6cef143c1ac", - "pai_cert": "308201d43082017aa00302010202084ed2ca930ed79b7a300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200041e76c06e852ce7b005e6b2b845a2726099db9adaf975770fc90617e14ff94b686876297a2f53aa7df1c4cc3c2dcd200c1def968d34484068d3365242459857c6a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414151124983a1e8fc5f70045b57861c9b2ee1de922301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502202da0573a6faac440779a58c195e56ebc40b0ff585550c135ada2be189df70354022100ecec9a17e964bea2fb99ae6317bd10c7d1d3067b88ac12979b9f8ae116e44528", - "certification_declaration": "3082010606092a864886f70d010702a081f83081f5020103310d300b0609608648016503040201306206092a864886f70d010701a0550453152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d3234240500240600250776982408002509f1ff360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450220057d8dcc397b75d7e74e5777b5627e44b221385c509d9131cf7da30b0dcf1df9022100e4b356d30d9db3910dbacaafd055f9f59de4538f158661b7eec3a1b53f1e107c", - "dac_private_key": "30252e669e333ac56027093da00b0b069f389ee06f384a11b9258d6fb57c36ee", - "dac_public_key": "04ae790b43857844c0dfb59e4f7afc526ecb3e63e871bc49fdcaac72d2fc643f3469470fcd4945f928821e8dcb4c0f4c4681559d71977ccf2bcd5945f4f9d0d2a9" + "dac_cert": "308201e43082018aa003020102020843239de570236a41300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200048bdfd62a6d6f6bcbcbbe4ff67f44656b8fa98010215ebfca99d5ca2beb602e712ffb5239ed543a6acd99384c56751f05cef03618337fe618d32edeef8fd11f1fa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041477d93dc739780585a7ced8ee59794abe3177404e301f0603551d23041830168014a8d06d441ce8e4bb42a18f26e497096e15c5bdd3300a06082a8648ce3d0403020348003045022100c1d4b76df8cf5b58aaf095f148bf2b753636f2bf09ce5aa3ced1a894a59bd458022048d0dc874597797403c9f080dacbbbd5f59a51711274f53400ae93a7e0fff819", + "pai_cert": "308201d43082017aa00302010202083920f00e17de59af300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200045d5cd4bd69ecfbfe8853abe8bb47794c268b10301a032654bcbd549fdddfc8b58dc1904c8ba3b4b16df2a48c5ac6a2ea7589dd7cca73374f04598c9c7c8ca9c4a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414a8d06d441ce8e4bb42a18f26e497096e15c5bdd3301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203480030450220008ad06b10bc32fc6f87747cb9db17d57f65b0b6bfd17aac938cc7e87cbaab11022100d4e1b428a09e498d7d08e713ce50bdfe8ad8b5e3d1981633f779727980f02b15", + "certification_declaration": "3082010606092a864886f70d010702a081f83081f5020103310d300b0609608648016503040201306206092a864886f70d010701a0550453152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d3234240500240600250776982408002509f1ff360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022038edcc96a1f97e1adedebe39a958c060adfe365f4912d016ae520c32fa0a64bf022100dfb86c94e78e5f05753ee27aa415a072d57479d98f91c668d9f70833ee78e5ba", + "dac_private_key": "f51bea88f017b0837d305bca093d8acda8269eecfa2cee8e464ba027138b5b0c", + "dac_public_key": "048bdfd62a6d6f6bcbcbbe4ff67f44656b8fa98010215ebfca99d5ca2beb602e712ffb5239ed543a6acd99384c56751f05cef03618337fe618d32edeef8fd11f1f" } diff --git a/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/cd.der b/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/cd.der index 73c8768fa1cccb..f63027a133ef6d 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/cd.der and b/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/dac-Cert.der index afb64f2da0729e..36d1fbad6ec1d0 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/dac-Cert.pem index a808423c9504e6..81833e5e0b77e4 100644 --- a/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB4zCCAYqgAwIBAgIIOoA42SdJRPowCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5DCCAYqgAwIBAgIINWM7GMn2z38wCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -pbjDNcIxusS7itpr3YIiMxlD8bhXa/5cGJ2wOT6vCtMahq3YJt+CxNZJZm2uXf3o -k4NjCtRbiYjflSsYUEX76aNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFDNaSyTXKP3VFRF3ZXfKWlizSGpuMB8GA1UdIwQYMBaAFMPI -Xa9BHXmrPotOc0MMVX7gm38MMAoGCCqGSM49BAMCA0cAMEQCIHOae+vkzChY/MJD -n3QFmd1Eyg+5DAg5PQde3kBNZ+VfAiAiWrYW7x5l1961FTRcZhGNZ21mj/uQzVxe -YnCCmT6x7A== +6gc85K+EElZ72TraQtnjIR2Y6smJ+/Z+XyMCmU5qedv87EqBZ12MByS441407W2R +czwscpSK3bvgfp+dJYbze6NgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFKX2QeTFC5iLkzxE9i+i2wASD5LEMB8GA1UdIwQYMBaAFJf7 +WyHclWDHzs4m83JZaLBT2sRxMAoGCCqGSM49BAMCA0gAMEUCIBFvwT7MWYp8RUjy +ft0cQcRLbVuG3iuCYg5jOt5XqaXMAiEAygCmaDXyD7gfxxrLNNINdGBC940kryHk +kO3vs8+tthQ= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/dac-Key.der index 50ad4167043cc7..1f02f6f54072ef 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/dac-Key.pem index a4d2771ef305fd..4822421ffd6395 100644 --- a/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIBLny6wa7lE7N9siOT322H263YOS28QdkfqZJbNZMtX6oAoGCCqGSM49 -AwEHoUQDQgAEpbjDNcIxusS7itpr3YIiMxlD8bhXa/5cGJ2wOT6vCtMahq3YJt+C -xNZJZm2uXf3ok4NjCtRbiYjflSsYUEX76Q== +MHcCAQEEIOzbXnjNvltzCYzpfJkxMK5mHsltIC+1wtQMooVQo57OoAoGCCqGSM49 +AwEHoUQDQgAE6gc85K+EElZ72TraQtnjIR2Y6smJ+/Z+XyMCmU5qedv87EqBZ12M +ByS441407W2RczwscpSK3bvgfp+dJYbzew== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/pai-Cert.der index d14f217df80679..250743fb6b147c 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/pai-Cert.pem index 0853616fac9e3b..4fa2fb49153777 100644 --- a/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB0zCCAXqgAwIBAgIIYB85njKWyDEwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1DCCAXqgAwIBAgIIBWdEeY4WI10wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQlJRmqiOrzsEVd0hP9mffouYgo4LDk -3U1O8SagrIEIj9RV0fBmf5g8q+swT1tCNRDoZoJMTBDrXD1dO1mHQoVjo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUw8hd -r0Edeas+i05zQwxVfuCbfwwwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDRwAwRAIgQJ6bbnfwYBNkT+GYdQmupAwyHFY+oKzuCdgy -iZkA9fMCIDXMUAYJZLWg9igSFtug0gcoRn4062EWkpqDR3DyJB6I +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASJ510mMVIqRYZ6y8gFPLhkV1fp8jfY +3smqKg6lCsgmv2KtI0NVbkjWdJZ/iVEXew5ZOLvdHaAIo/KG1lOK2ubno2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUl/tb +IdyVYMfOzibzcllosFPaxHEwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIgSwdcACJ20UvlEagcgAZoE697BrOKjqot/Pio +qa60b3oCIQD4gl4DksziW7IGvTmFB4p3JEvE5tCM1bBIptC9iJf5hg== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/pai-Key.der index c7c01c72c2d845..26edce655b12c5 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/pai-Key.pem index a53108e1ffdb21..bd3f6be8c33847 100644 --- a/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIEsLiHQlA0CoWWRe/nKx/sBK9cMSW7Ibf5Ml6QsGzTVnoAoGCCqGSM49 -AwEHoUQDQgAEJSUZqojq87BFXdIT/Zn36LmIKOCw5N1NTvEmoKyBCI/UVdHwZn+Y -PKvrME9bQjUQ6GaCTEwQ61w9XTtZh0KFYw== +MHcCAQEEIBvAO7wltJibqsImCxZ+BOaT8mO3YwTfe/JQFs0R9zMzoAoGCCqGSM49 +AwEHoUQDQgAEieddJjFSKkWGesvIBTy4ZFdX6fI32N7JqioOpQrIJr9irSNDVW5I +1nSWf4lRF3sOWTi73R2gCKPyhtZTitrm5w== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/test_case_vector.json index ad072ceadecc38..888fd056bddda0 100644 --- a/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_device_type_id_mismatch/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The device_type_id field doesn't match the device_type_id value in the DCL entries associated with the VID and PID.", "is_success_case": "false", - "dac_cert": "308201e33082018aa00302010202083a8038d9274944fa300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004a5b8c335c231bac4bb8ada6bdd8222331943f1b8576bfe5c189db0393eaf0ad31a86add826df82c4d649666dae5dfde89383630ad45b8988df952b185045fbe9a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414335a4b24d728fdd51511776577ca5a58b3486a6e301f0603551d23041830168014c3c85daf411d79ab3e8b4e73430c557ee09b7f0c300a06082a8648ce3d04030203470030440220739a7bebe4cc2858fcc2439f740599dd44ca0fb90c08393d075ede404d67e55f0220225ab616ef1e65d7deb515345c66118d676d668ffb90cd5c5e627082993eb1ec", - "pai_cert": "308201d33082017aa0030201020208601f399e3296c831300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004252519aa88eaf3b0455dd213fd99f7e8b98828e0b0e4dd4d4ef126a0ac81088fd455d1f0667f983cabeb304f5b423510e866824c4c10eb5c3d5d3b5987428563a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414c3c85daf411d79ab3e8b4e73430c557ee09b7f0c301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203470030440220409e9b6e77f06013644fe1987509aea40c321c563ea0acee09d832899900f5f3022035cc50060964b5a0f6281216dba0d20728467e34eb6116929a834770f2241e88", - "certification_declaration": "3082010506092a864886f70d010702a081f73081f4020103310d300b0609608648016503040201306006092a864886f70d010701a0530451152000012501f1ff3602050080182603cbedffff2c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100b9533e419c94349dae9a73a93c1c917531d16ae9c11518fa238ba1959591a01c0221009967653898d11a0d7ea3f1fd96dc74d742bbf0c67339c2c3653e6bf0426df4bf", - "dac_private_key": "12e7cbac1aee513b37db22393df6d87dbadd8392dbc41d91fa9925b35932d5fa", - "dac_public_key": "04a5b8c335c231bac4bb8ada6bdd8222331943f1b8576bfe5c189db0393eaf0ad31a86add826df82c4d649666dae5dfde89383630ad45b8988df952b185045fbe9" + "dac_cert": "308201e43082018aa003020102020835633b18c9f6cf7f300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004ea073ce4af8412567bd93ada42d9e3211d98eac989fbf67e5f2302994e6a79dbfcec4a81675d8c0724b8e35e34ed6d91733c2c72948addbbe07e9f9d2586f37ba360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414a5f641e4c50b988b933c44f62fa2db00120f92c4301f0603551d2304183016801497fb5b21dc9560c7cece26f3725968b053dac471300a06082a8648ce3d04030203480030450220116fc13ecc598a7c4548f27edd1c41c44b6d5b86de2b82620e633ade57a9a5cc022100ca00a66835f20fb81fc71acb34d20d746042f78d24af21e490edefb3cfadb614", + "pai_cert": "308201d43082017aa0030201020208056744798e16235d300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000489e75d2631522a45867acbc8053cb8645757e9f237d8dec9aa2a0ea50ac826bf62ad2343556e48d674967f8951177b0e5938bbdd1da008a3f286d6538adae6e7a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041497fb5b21dc9560c7cece26f3725968b053dac471301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502204b075c002276d14be511a81c80066813af7b06b38a8eaa2dfcf8a8a9aeb46f7a022100f8825e0392cce25bb206bd3985078a77244bc4e6d08cd5b048a6d0bd8897f986", + "certification_declaration": "3082010406092a864886f70d010702a081f63081f3020103310d300b0609608648016503040201306006092a864886f70d010701a0530451152000012501f1ff3602050080182603cbedffff2c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100f4f82b239cfd2f8cea53df37dd69f5405cb310a99797ec372603e4cb15a7d573022042f6f585b9f9a4ada57162fed47acf98a87a96e4469af80020507a094d4cc51c", + "dac_private_key": "ecdb5e78cdbe5b73098ce97c993130ae661ec96d202fb5c2d40ca28550a39ece", + "dac_public_key": "04ea073ce4af8412567bd93ada42d9e3211d98eac989fbf67e5f2302994e6a79dbfcec4a81675d8c0724b8e35e34ed6d91733c2c72948addbbe07e9f9d2586f37b" } diff --git a/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/cd.der b/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/cd.der index 309be2c998a698..edf0fc5a0abcce 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/cd.der and b/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/dac-Cert.der index 7d5aac336621a6..a06e4ca4b8c1a8 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/dac-Cert.pem index ac107f296a55e7..87d2fbdb0e3948 100644 --- a/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5DCCAYqgAwIBAgIIIczR0EbmfmwwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5TCCAYqgAwIBAgIIc+C8/Au85WAwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -5UltaoaBbSSE5vcwiEmvTegCdtJ2TRd+hL123RCwAhv8uIqXwaaJcUV67CWF6RDt -YDdJlCqFVN+inBqWRHhpsKNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFKZPozavyCjfRqJeuBk1XYcVMHtkMB8GA1UdIwQYMBaAFPS7 -6dx6RWa5AGf7sEjhx0sxbZ5iMAoGCCqGSM49BAMCA0gAMEUCIQD96ZRLx74Vkci2 -W2aZyTkePXPzVqrBlTr+WMWgjM0K9gIgevd0x5ATnr7X153AiZRQha774Gy57cZk -bYuUaZe9RTU= +R2XTKEutymlr/n+cFInaexB+PZAp/BCddo8tcmZCaxgrCVol7vnHUBoakfR78Wli +iHMYhts6wslt4Zszp63xvqNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFEZDgm1A+XwgrJPTYXbTdtyvN1pjMB8GA1UdIwQYMBaAFPEZ +JRSheDjIrAuVuY7sNpLZQo96MAoGCCqGSM49BAMCA0kAMEYCIQCqzTN7M9g2TY1E +0SsSUpwn5DqP4zYUyLw1iT+xPhbd8AIhAPaiwSNdzf8VoVHV+BT0/1g6DYkoZ0DO +7npzHVd3kNOZ -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/dac-Key.der index d5fd3932c87d92..40e566c55ac839 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/dac-Key.pem index 598797bff8fb28..6456a58b30ddb7 100644 --- a/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIOpYl1XDthBf3vqarjkFjml9fLbhb4KSRBKG76E7ql5aoAoGCCqGSM49 -AwEHoUQDQgAE5UltaoaBbSSE5vcwiEmvTegCdtJ2TRd+hL123RCwAhv8uIqXwaaJ -cUV67CWF6RDtYDdJlCqFVN+inBqWRHhpsA== +MHcCAQEEIJ5/tDG+GYOGIQJJkJY8tk7AtUK3bDZkQfdDr/dnYyIqoAoGCCqGSM49 +AwEHoUQDQgAER2XTKEutymlr/n+cFInaexB+PZAp/BCddo8tcmZCaxgrCVol7vnH +UBoakfR78WliiHMYhts6wslt4Zszp63xvg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/pai-Cert.der index 80e21e3b744e23..9f664af9731cd8 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/pai-Cert.pem index e91bc0c9c22ac6..0e93af893dddc9 100644 --- a/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB0zCCAXqgAwIBAgIIJhxUwaQ5L3IwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1DCCAXqgAwIBAgIIIc1o61HXsKswCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAT4+iWlu+4cdkvXJA1xqiLX4ibElwbJ -6nZeiG0YpBoMeLYfDr4YqDxU3L1uHlEiOf0JOZq0YUlEaEvNusR0twoyo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU9Lvp -3HpFZrkAZ/uwSOHHSzFtnmIwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDRwAwRAIgE5QL9ta2dm/xLHSBE5FzzW8AeG7oSO2m2FuP -xzQkztkCIHzXTiLZKo9/i6oRkfYsqKL58TAtVUs9PdWUbc1M7vHN +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQr/bbqa5MHQe+mTBjcxXF/rOHS7X4N +YDUx0SjjC/k1sBE5U90A3AgG4htTyPbUkW9Ef2tEJhJfkJ3EXB71Y4UNo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU8Rkl +FKF4OMisC5W5juw2ktlCj3owHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIhAKp404qNofxo/L3kpayECbQZBzK7t3/0tUgo +o3lggVKKAiASGn8l7ZRm8A4oyaAdmnq9OXxqZfjQ0fjkOo6gGPV7xA== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/pai-Key.der index 8dd3072ff7b6f9..d68b27e59d1633 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/pai-Key.pem index 1c5bb49fe60bb7..a19c61081e282e 100644 --- a/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIAEvsBvl36qxuHWpklcmGIbbuNc7bxY9C+dh9y76VHxGoAoGCCqGSM49 -AwEHoUQDQgAE+PolpbvuHHZL1yQNcaoi1+ImxJcGyep2XohtGKQaDHi2Hw6+GKg8 -VNy9bh5RIjn9CTmatGFJRGhLzbrEdLcKMg== +MHcCAQEEIHASSe6GEaKI15whZvh/8GsRgoBZV7wMgAEOh4N1y5xooAoGCCqGSM49 +AwEHoUQDQgAEK/226muTB0HvpkwY3MVxf6zh0u1+DWA1MdEo4wv5NbAROVPdANwI +BuIbU8j21JFvRH9rRCYSX5CdxFwe9WOFDQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/test_case_vector.json index 1ffe8542d6647b..a8c9f09be015a1 100644 --- a/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_device_type_id_missing/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The device_type_id field is missing.", "is_success_case": "false", - "dac_cert": "308201e43082018aa003020102020821ccd1d046e67e6c300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004e5496d6a86816d2484e6f7308849af4de80276d2764d177e84bd76dd10b0021bfcb88a97c1a68971457aec2585e910ed603749942a8554dfa29c1a96447869b0a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414a64fa336afc828df46a25eb819355d8715307b64301f0603551d23041830168014f4bbe9dc7a4566b90067fbb048e1c74b316d9e62300a06082a8648ce3d0403020348003045022100fde9944bc7be1591c8b65b6699c9391e3d73f356aac1953afe58c5a08ccd0af602207af774c790139ebed7d79dc089945085aefbe06cb9edc6646d8b946997bd4535", - "pai_cert": "308201d33082017aa0030201020208261c54c1a4392f72300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004f8fa25a5bbee1c764bd7240d71aa22d7e226c49706c9ea765e886d18a41a0c78b61f0ebe18a83c54dcbd6e1e512239fd09399ab4614944684bcdbac474b70a32a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414f4bbe9dc7a4566b90067fbb048e1c74b316d9e62301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020347003044022013940bf6d6b6766ff12c7481139173cd6f00786ee848eda6d85b8fc73424ced902207cd74e22d92a8f7f8baa1191f62ca8a2f9f1302d554b3d3dd5946dcd4ceef1cd", - "certification_declaration": "3081fd06092a864886f70d010702a081ef3081ec020103310d300b0609608648016503040201305a06092a864886f70d010701a04d044b152000012501f1ff3602050080182c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402201a964402d8cb92a6cb59f1984fef77f833e7a7600db8d7150a3894416d13e53102207461724c01add824c78b61f67aec5649a45ae0076adf77fb6626b37ce618e4c7", - "dac_private_key": "ea589755c3b6105fdefa9aae39058e697d7cb6e16f8292441286efa13baa5e5a", - "dac_public_key": "04e5496d6a86816d2484e6f7308849af4de80276d2764d177e84bd76dd10b0021bfcb88a97c1a68971457aec2585e910ed603749942a8554dfa29c1a96447869b0" + "dac_cert": "308201e53082018aa003020102020873e0bcfc0bbce560300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200044765d3284badca696bfe7f9c1489da7b107e3d9029fc109d768f2d7266426b182b095a25eef9c7501a1a91f47bf1696288731886db3ac2c96de19b33a7adf1bea360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604144643826d40f97c20ac93d36176d376dcaf375a63301f0603551d23041830168014f1192514a17838c8ac0b95b98eec3692d9428f7a300a06082a8648ce3d0403020349003046022100aacd337b33d8364d8d44d12b12529c27e43a8fe33614c8bc35893fb13e16ddf0022100f6a2c1235dcdff15a151d5f814f4ff583a0d89286740ceee7a731d577790d399", + "pai_cert": "308201d43082017aa003020102020821cd68eb51d7b0ab300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200042bfdb6ea6b930741efa64c18dcc5717face1d2ed7e0d603531d128e30bf935b0113953dd00dc0806e21b53c8f6d4916f447f6b4426125f909dc45c1ef563850da366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414f1192514a17838c8ac0b95b98eec3692d9428f7a301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100aa78d38a8da1fc68fcbde4a5ac8409b4190732bbb77ff4b54828a3796081528a0220121a7f25ed9466f00e28c9a01d9a7abd397c6a65f8d0d1f8e43a8ea018f57bc4", + "certification_declaration": "3081fe06092a864886f70d010702a081f03081ed020103310d300b0609608648016503040201305a06092a864886f70d010701a04d044b152000012501f1ff3602050080182c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100dd5f901f2529515fbc7bd9aa7daf07d1aeaca7dc5f99cc2856b0d246f831f13902201e0fbf2b3302a80424c85f1cfa206b75526c0b25c310f58585fb9165ca31526b", + "dac_private_key": "9e7fb431be19838621024990963cb64ec0b542b76c366441f743aff76763222a", + "dac_public_key": "044765d3284badca696bfe7f9c1489da7b107e3d9029fc109d768f2d7266426b182b095a25eef9c7501a1a91f47bf1696288731886db3ac2c96de19b33a7adf1be" } diff --git a/credentials/development/commissioner_dut/struct_cd_format_version_1/cd.der b/credentials/development/commissioner_dut/struct_cd_format_version_1/cd.der index c404fa1ce917e5..626ecc3d71b4f9 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_format_version_1/cd.der and b/credentials/development/commissioner_dut/struct_cd_format_version_1/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_format_version_1/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_format_version_1/dac-Cert.der index e6c14307acab1d..0b725574fc2a39 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_format_version_1/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_format_version_1/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_format_version_1/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_format_version_1/dac-Cert.pem index bf6f65428b7a4c..13ec080587fc01 100644 --- a/credentials/development/commissioner_dut/struct_cd_format_version_1/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_format_version_1/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5DCCAYqgAwIBAgIIREaH9eT2TUEwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5TCCAYqgAwIBAgIIaP0AInrLBg8wCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -kO2NHVlNOXLKvt1+Fc7PxlzmQyJUvBC+cSKiSUxyCJHy740Rv/s8u1NiC0RsOKO2 -oyag/TA4DUBA3QXnPkwIfKNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFECRN36RK3PgV3uQJNdSVsRpSLDkMB8GA1UdIwQYMBaAFLPA -cKh0c5BRa7Xgmo5xymHvAE7FMAoGCCqGSM49BAMCA0gAMEUCIDhvV7zSdQTSE92Y -CZwP7ENbDgpi1z0ReH9wy8q4XtukAiEAwAdsskjpRBQ7xe74EKZd3luDm5BoRAJm -kStJ+moPQoI= +sAwzhggJChb2Trvysoa0zBBxgLYunI05tE0V7YBmISc5NwaU2nb4Fp8ZM8WGq0hf +2lUtLuUgnhcX8OcWhG5YIKNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFMb+5aHmYNQHVLE10fSexNnqaFWHMB8GA1UdIwQYMBaAFHhm +KJlJLyTG65MJ6WyDT1C702yVMAoGCCqGSM49BAMCA0kAMEYCIQCBfQ9LGMMMI5gT +2DgwC4wFOJqQPyGjz1m0QGyTWSBi8QIhAO423ZR/mOagtHbsbeDtY8a/5iwo2bxG +If8fTBlauOVf -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_format_version_1/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_format_version_1/dac-Key.der index ae468e237e34ba..d598bf192e4f5d 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_format_version_1/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_format_version_1/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_format_version_1/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_format_version_1/dac-Key.pem index 63322aa2503fa5..6ee3f6c30e2122 100644 --- a/credentials/development/commissioner_dut/struct_cd_format_version_1/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_format_version_1/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIKkbyY28dSzrcnlS8g9mz+tFfCl2vuNSzFMs4uUlcSRloAoGCCqGSM49 -AwEHoUQDQgAEkO2NHVlNOXLKvt1+Fc7PxlzmQyJUvBC+cSKiSUxyCJHy740Rv/s8 -u1NiC0RsOKO2oyag/TA4DUBA3QXnPkwIfA== +MHcCAQEEIMe9OrnX7hNnp0mT318HFmiOHe3838sxxoQIvmohcBC1oAoGCCqGSM49 +AwEHoUQDQgAEsAwzhggJChb2Trvysoa0zBBxgLYunI05tE0V7YBmISc5NwaU2nb4 +Fp8ZM8WGq0hf2lUtLuUgnhcX8OcWhG5YIA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_format_version_1/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_format_version_1/pai-Cert.der index 7abc8ce2a2ea53..c928dbaf4c3304 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_format_version_1/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_format_version_1/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_format_version_1/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_format_version_1/pai-Cert.pem index 327cbaf9eb577e..2548d67fbd00e6 100644 --- a/credentials/development/commissioner_dut/struct_cd_format_version_1/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_format_version_1/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIAcL94d5XecgwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1DCCAXqgAwIBAgIIKm/KdWrtoEowCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASZRot4DT/0+VpTUaiublozKnN8zI6A -dDSQmAnJMmoMbdHhneV+uBd7MBYfzKeL2mIugOVq4Tq8W4AVke2MXOCxo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUs8Bw -qHRzkFFrteCajnHKYe8ATsUwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIhALFVo+Vnc+0CADbHu9gsfNuixl6uLztJ/98N -XGx6o9OKAiAC1ep7PzbVwceTKEjsYhXfEHYKH20pz5F0eldNTh8ObA== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASL7IaGEfkSdQq1TkzFKrYGsd/WbCpU +l8MVvkMhzJv61NoOz5xw/ySRmNwPIFCKXXtNTCw+GLNqtlgLBmSMLjZ9o2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUeGYo +mUkvJMbrkwnpbINPULvTbJUwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIhAOS8bfv0csX9rhYGaoVf57Kdwhf/bwWDjl3K +pNPKaVrwAiBnvA6kUvpLdo46m48DjeKgsM+1DPENkqk8TCFVpUN7pA== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_format_version_1/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_format_version_1/pai-Key.der index e8d55e3715d608..c88fc88c1c4196 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_format_version_1/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_format_version_1/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_format_version_1/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_format_version_1/pai-Key.pem index 8076ac9cf70bc6..4302cbac5f8dc9 100644 --- a/credentials/development/commissioner_dut/struct_cd_format_version_1/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_format_version_1/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIBnS9jSN1856qT/78l1OzEyirlyoeZltQ8vjXfZi+hfooAoGCCqGSM49 -AwEHoUQDQgAEmUaLeA0/9PlaU1Gorm5aMypzfMyOgHQ0kJgJyTJqDG3R4Z3lfrgX -ezAWH8yni9piLoDlauE6vFuAFZHtjFzgsQ== +MHcCAQEEIAtZwtCcsEBKqNOiUf5Git1NZt2d131XlaT+PBs8nR9woAoGCCqGSM49 +AwEHoUQDQgAEi+yGhhH5EnUKtU5MxSq2BrHf1mwqVJfDFb5DIcyb+tTaDs+ccP8k +kZjcDyBQil17TUwsPhizarZYCwZkjC42fQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_format_version_1/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_format_version_1/test_case_vector.json index e65aa958c0896a..5938afeabcbafc 100644 --- a/credentials/development/commissioner_dut/struct_cd_format_version_1/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_format_version_1/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: Valid format_version field set to 1.", "is_success_case": "true", - "dac_cert": "308201e43082018aa0030201020208444687f5e4f64d41300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000490ed8d1d594d3972cabedd7e15cecfc65ce6432254bc10be7122a2494c720891f2ef8d11bffb3cbb53620b446c38a3b6a326a0fd30380d4040dd05e73e4c087ca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604144091377e912b73e0577b9024d75256c46948b0e4301f0603551d23041830168014b3c070a8747390516bb5e09a8e71ca61ef004ec5300a06082a8648ce3d04030203480030450220386f57bcd27504d213dd98099c0fec435b0e0a62d73d11787f70cbcab85edba4022100c0076cb248e944143bc5eef810a65dde5b839b9068440266912b49fa6a0f4282", - "pai_cert": "308201d43082017aa003020102020801c2fde1de5779c8300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000499468b780d3ff4f95a5351a8ae6e5a332a737ccc8e807434909809c9326a0c6dd1e19de57eb8177b30161fcca78bda622e80e56ae13abc5b801591ed8c5ce0b1a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414b3c070a8747390516bb5e09a8e71ca61ef004ec5301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100b155a3e56773ed020036c7bbd82c7cdba2c65eae2f3b49ffdf0d5c6c7aa3d38a022002d5ea7b3f36d5c1c7932848ec6215df10760a1f6d29cf91747a574d4e1f0e6c", - "certification_declaration": "3082010306092a864886f70d010702a081f53081f2020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100f690c75cc9f011ce8e03fc43bb7de9cc0dda0a41e966bc45ffda24898a1a8c4e022100eab979048ea0a0d069fd72a1ab6ccce7e05522353f7244e019cccb43cf5e23c2", - "dac_private_key": "a91bc98dbc752ceb727952f20f66cfeb457c2976bee352cc532ce2e525712465", - "dac_public_key": "0490ed8d1d594d3972cabedd7e15cecfc65ce6432254bc10be7122a2494c720891f2ef8d11bffb3cbb53620b446c38a3b6a326a0fd30380d4040dd05e73e4c087c" + "dac_cert": "308201e53082018aa003020102020868fd00227acb060f300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004b00c338608090a16f64ebbf2b286b4cc107180b62e9c8d39b44d15ed8066212739370694da76f8169f1933c586ab485fda552d2ee5209e1717f0e716846e5820a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414c6fee5a1e660d40754b135d1f49ec4d9ea685587301f0603551d2304183016801478662899492f24c6eb9309e96c834f50bbd36c95300a06082a8648ce3d0403020349003046022100817d0f4b18c30c239813d838300b8c05389a903f21a3cf59b4406c93592062f1022100ee36dd947f98e6a0b476ec6de0ed63c6bfe62c28d9bc4621ff1f4c195ab8e55f", + "pai_cert": "308201d43082017aa00302010202082a6fca756aeda04a300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200048bec868611f912750ab54e4cc52ab606b1dfd66c2a5497c315be4321cc9bfad4da0ecf9c70ff249198dc0f20508a5d7b4d4c2c3e18b36ab6580b06648c2e367da366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041478662899492f24c6eb9309e96c834f50bbd36c95301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100e4bc6dfbf472c5fdae16066a855fe7b29dc217ff6f05838e5dcaa4d3ca695af0022067bc0ea452fa4b768e3a9b8f038de2a0b0cfb50cf10d92a93c4c2155a5437ba4", + "certification_declaration": "3082010206092a864886f70d010702a081f43081f1020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502207092fe41f57172ff0fc86b8f190337e7be48a25679166f046c642c0fa92cf45f022100daf90a2229a7af6bb162d4a78b1251ce8a16a9ca2283c75017de46fb858ea7d5", + "dac_private_key": "c7bd3ab9d7ee1367a74993df5f0716688e1dedfcdfcb31c68408be6a217010b5", + "dac_public_key": "04b00c338608090a16f64ebbf2b286b4cc107180b62e9c8d39b44d15ed8066212739370694da76f8169f1933c586ab485fda552d2ee5209e1717f0e716846e5820" } diff --git a/credentials/development/commissioner_dut/struct_cd_format_version_2/cd.der b/credentials/development/commissioner_dut/struct_cd_format_version_2/cd.der index 34bf8edcf8aaf5..09c7cb616496b5 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_format_version_2/cd.der and b/credentials/development/commissioner_dut/struct_cd_format_version_2/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_format_version_2/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_format_version_2/dac-Cert.der index 352fa4f3a1c545..70b05a01426b37 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_format_version_2/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_format_version_2/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_format_version_2/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_format_version_2/dac-Cert.pem index 60e9e40fee280c..0cf351e108101f 100644 --- a/credentials/development/commissioner_dut/struct_cd_format_version_2/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_format_version_2/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5DCCAYqgAwIBAgIIPnTcEahpN7IwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5TCCAYqgAwIBAgIIWaW6cAV6JEUwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -UEU5k/UGMCcZVR0LOqRdq2dsl79L6cZpfBB2nIq5gXmrQ+eliHwVMdGj64f9kjJh -WOLWGreCECHfgOV7yX1hH6NgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFNxp8XpNTozvQyNe9x7HQtiXArnsMB8GA1UdIwQYMBaAFBiL -cVUQ0sfAGt90tSc68MlKmc1JMAoGCCqGSM49BAMCA0gAMEUCIQCWGC0IHJbvRd7Q -9msfYGmsLVIlEZvmD/4bE8lnMeC6aQIgFv86KiwNc5+EoccqmZ1favteDxotD7/j -LqHKpyUw+m4= +rz83CT+pKgvbHr2/2KSS3bdMBElmK6prtuykfQR3Dyp2pK56dKjaUjpPX4i1t0n1 +aihtaefIPKu5EViHdiVh2aNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFNy/shMK1q9C6TaANF2QYFcpdvq3MB8GA1UdIwQYMBaAFGMK +IiqH4D8rSOJnLAr3embxEUjyMAoGCCqGSM49BAMCA0kAMEYCIQCOOc4BzReDdxdf +a0pL6pVz6clOIUHv2K1MUGzWeLfE2AIhALUg9CbXoEVAfNZZg8dK8M8Yb6aonevR +1ZFZkreS+HmP -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_format_version_2/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_format_version_2/dac-Key.der index 4bcd08f745d5b2..ccab1136260658 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_format_version_2/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_format_version_2/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_format_version_2/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_format_version_2/dac-Key.pem index 80c78d903c0a1f..07af1c8824fbc4 100644 --- a/credentials/development/commissioner_dut/struct_cd_format_version_2/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_format_version_2/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIMZHiSmsVUFQd45zcKYwskrLHwPLGHljxMbzNNLb06XsoAoGCCqGSM49 -AwEHoUQDQgAEUEU5k/UGMCcZVR0LOqRdq2dsl79L6cZpfBB2nIq5gXmrQ+eliHwV -MdGj64f9kjJhWOLWGreCECHfgOV7yX1hHw== +MHcCAQEEIAmEyyJUWWRNq9iXqwW5Jk7bywXlRkPMfal4oY+gWn7VoAoGCCqGSM49 +AwEHoUQDQgAErz83CT+pKgvbHr2/2KSS3bdMBElmK6prtuykfQR3Dyp2pK56dKja +UjpPX4i1t0n1aihtaefIPKu5EViHdiVh2Q== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_format_version_2/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_format_version_2/pai-Cert.der index 12652cdc24f73d..8060c68b7c9006 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_format_version_2/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_format_version_2/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_format_version_2/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_format_version_2/pai-Cert.pem index 6d8416d5436c77..8296d88cb44d34 100644 --- a/credentials/development/commissioner_dut/struct_cd_format_version_2/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_format_version_2/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1TCCAXqgAwIBAgIIZd3lZp4u2t8wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1TCCAXqgAwIBAgIIRpOShFeFnU8wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQIAFAKjSDsUx6aR+4xljr7XbnwXElF -5YYExfX5VfUE0t58a09ZF0SCm6EA6utWRjH+B01K3gLrPnoIf5zNoEQto2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUGItx -VRDSx8Aa33S1JzrwyUqZzUkwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSQAwRgIhALf5SLh++XXELnx5CWC/lZr5QreIrZmFUeiC -Hs+Ir7EwAiEAu8XplhptnfqsIap4b+/6VuKddq8vbaWEQynQ9R+vqQs= +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATAPAvmgrE+3NKB0qF5KhKtFmFBAIfp +0c7HQJdP5oaERVOPZ+UF9SQAnay0XmnXyN0JWIkjxP+ME37DjIuDu32oo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUYwoi +KofgPytI4mcsCvd6ZvERSPIwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSQAwRgIhAJkZhjRuM110p2QrL+yYBge0zG7HJWmgJ5Ji +YjBlFgaKAiEAij/fAUqAq1+GoOVJZrAm68VBvhp+PnsZdustnkXBySo= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_format_version_2/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_format_version_2/pai-Key.der index c1b11bb347d8a6..cdfc98444e10d0 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_format_version_2/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_format_version_2/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_format_version_2/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_format_version_2/pai-Key.pem index 529b199305ea64..c7605458a57829 100644 --- a/credentials/development/commissioner_dut/struct_cd_format_version_2/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_format_version_2/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIOs5luxmDrPMtKYfjo4aDuDb3aype036FImRc15cHAMzoAoGCCqGSM49 -AwEHoUQDQgAECABQCo0g7FMemkfuMZY6+1258FxJReWGBMX1+VX1BNLefGtPWRdE -gpuhAOrrVkYx/gdNSt4C6z56CH+czaBELQ== +MHcCAQEEIJBpsalT3sdmUhSirFc62qXzhBGPNq9KuWr/3cItiC/roAoGCCqGSM49 +AwEHoUQDQgAEwDwL5oKxPtzSgdKheSoSrRZhQQCH6dHOx0CXT+aGhEVTj2flBfUk +AJ2stF5p18jdCViJI8T/jBN+w4yLg7t9qA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_format_version_2/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_format_version_2/test_case_vector.json index ce9396ef325c19..db06a043552ef8 100644 --- a/credentials/development/commissioner_dut/struct_cd_format_version_2/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_format_version_2/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: Invalid format_version field set to 2.", "is_success_case": "false", - "dac_cert": "308201e43082018aa00302010202083e74dc11a86937b2300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000450453993f506302719551d0b3aa45dab676c97bf4be9c6697c10769c8ab98179ab43e7a5887c1531d1a3eb87fd92326158e2d61ab7821021df80e57bc97d611fa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414dc69f17a4d4e8cef43235ef71ec742d89702b9ec301f0603551d23041830168014188b715510d2c7c01adf74b5273af0c94a99cd49300a06082a8648ce3d040302034800304502210096182d081c96ef45ded0f66b1f6069ac2d5225119be60ffe1b13c96731e0ba69022016ff3a2a2c0d739f84a1c72a999d5f6afb5e0f1a2d0fbfe32ea1caa72530fa6e", - "pai_cert": "308201d53082017aa003020102020865dde5669e2edadf300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200040800500a8d20ec531e9a47ee31963afb5db9f05c4945e58604c5f5f955f504d2de7c6b4f591744829ba100eaeb564631fe074d4ade02eb3e7a087f9ccda0442da366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414188b715510d2c7c01adf74b5273af0c94a99cd49301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100b7f948b87ef975c42e7c790960bf959af942b788ad998551e8821ecf88afb130022100bbc5e9961a6d9dfaac21aa786feffa56e29d76af2f6da5844329d0f51fafa90b", - "certification_declaration": "3082010206092a864886f70d010702a081f43081f1020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000022501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022043a8ecc147bbf29a42d554ef8f1ebf461bfbeb336b2d5b8d5a3aacc6d26d57f40221009410e764889cfdbaec3276e6f6762747ffb50f1b93f6d6cefbb6ca40d64b4d46", - "dac_private_key": "c6478929ac554150778e7370a630b24acb1f03cb187963c4c6f334d2dbd3a5ec", - "dac_public_key": "0450453993f506302719551d0b3aa45dab676c97bf4be9c6697c10769c8ab98179ab43e7a5887c1531d1a3eb87fd92326158e2d61ab7821021df80e57bc97d611f" + "dac_cert": "308201e53082018aa003020102020859a5ba70057a2445300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004af3f37093fa92a0bdb1ebdbfd8a492ddb74c0449662baa6bb6eca47d04770f2a76a4ae7a74a8da523a4f5f88b5b749f56a286d69e7c83cabb9115887762561d9a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414dcbfb2130ad6af42e93680345d9060572976fab7301f0603551d23041830168014630a222a87e03f2b48e2672c0af77a66f11148f2300a06082a8648ce3d04030203490030460221008e39ce01cd178377175f6b4a4bea9573e9c94e2141efd8ad4c506cd678b7c4d8022100b520f426d7a045407cd65983c74af0cf186fa6a89debd1d5915992b792f8798f", + "pai_cert": "308201d53082017aa00302010202084693928457859d4f300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004c03c0be682b13edcd281d2a1792a12ad1661410087e9d1cec740974fe6868445538f67e505f524009dacb45e69d7c8dd09588923c4ff8c137ec38c8b83bb7da8a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414630a222a87e03f2b48e2672c0af77a66f11148f2301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100991986346e335d74a7642b2fec980607b4cc6ec72569a027926262306516068a0221008a3fdf014a80ab5f86a0e54966b026ebc541be1a7e3e7b1976eb2d9e45c1c92a", + "certification_declaration": "3082010306092a864886f70d010702a081f53081f2020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000022501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100fe6acbf07b710f74b15938e30d3a0bdd414283f18b87e161a55dd6f520c427dd022100ab1201522158ac046f37f81d45fbd3fea90cecfe64b724b21d21baf1e66c2000", + "dac_private_key": "0984cb225459644dabd897ab05b9264edbcb05e54643cc7da978a18fa05a7ed5", + "dac_public_key": "04af3f37093fa92a0bdb1ebdbfd8a492ddb74c0449662baa6bb6eca47d04770f2a76a4ae7a74a8da523a4f5f88b5b749f56a286d69e7c83cabb9115887762561d9" } diff --git a/credentials/development/commissioner_dut/struct_cd_format_version_missing/cd.der b/credentials/development/commissioner_dut/struct_cd_format_version_missing/cd.der index 5894de8439d1da..d4a45ec1930f55 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_format_version_missing/cd.der and b/credentials/development/commissioner_dut/struct_cd_format_version_missing/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_format_version_missing/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_format_version_missing/dac-Cert.der index 7bef10c4558cca..5d2a6458312f35 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_format_version_missing/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_format_version_missing/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_format_version_missing/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_format_version_missing/dac-Cert.pem index d0a8006f190727..8ead6fa8484ff0 100644 --- a/credentials/development/commissioner_dut/struct_cd_format_version_missing/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_format_version_missing/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB4zCCAYqgAwIBAgIIToCsthpcP34wCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5DCCAYqgAwIBAgIIOsdnx/zHpLwwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -UtkUUrwNO2au3CV1b1pm/IpkKAe0EDnEy+Ka6om7RbXIwyWWxui1CeESe9Ku1G/J -i6GyMlsSUDn3Cn30hEM0yKNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFBoEbSqIyqI5ZxzSjQWU7Nm+8WowMB8GA1UdIwQYMBaAFANz -AyMECIbEK4oUNBJk/smfPmyfMAoGCCqGSM49BAMCA0cAMEQCICYk7RSBrTM7uSMf -FZ6D3E7ht0wECCGVsq8Rot4NugM3AiAVo06xpdXcQeSkP0dsPduak0090PNZ97HQ -pt4Ofa0FhA== +iOMQgS8mTMLdCYIIsHkCOEIDk5OrS9Z/wAmQAXCb6oT8XNf4yzwMAh50+jd3OUEM +O6jqYd3AmWnLGPgOdBmU96NgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFCejZkkjHHKsPaYVh3v3s+ZodZOGMB8GA1UdIwQYMBaAFCZ+ ++0u3HrM0s2wOxXwnKsMDjXQkMAoGCCqGSM49BAMCA0gAMEUCIBbwRv8y/5FvXovM +47DyLA5w76DqAzMKH9GSJbiPB5TgAiEA1A/gCZTZyLQB1OqdDfMJnhicA3Z9LDPo +xU6wu/X846w= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_format_version_missing/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_format_version_missing/dac-Key.der index e97a8d0d45f579..54d6fa90102612 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_format_version_missing/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_format_version_missing/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_format_version_missing/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_format_version_missing/dac-Key.pem index db0e7bfe051076..5759d2bcf061c3 100644 --- a/credentials/development/commissioner_dut/struct_cd_format_version_missing/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_format_version_missing/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIGGBx55UI0Vai+eK4biawOwyrIXYFcEV18+nQbYzHzOroAoGCCqGSM49 -AwEHoUQDQgAEUtkUUrwNO2au3CV1b1pm/IpkKAe0EDnEy+Ka6om7RbXIwyWWxui1 -CeESe9Ku1G/Ji6GyMlsSUDn3Cn30hEM0yA== +MHcCAQEEIFhg7xJbwPPbecirbRNBRVjMc8Z9rRCOHT8tvLVpvFGVoAoGCCqGSM49 +AwEHoUQDQgAEiOMQgS8mTMLdCYIIsHkCOEIDk5OrS9Z/wAmQAXCb6oT8XNf4yzwM +Ah50+jd3OUEMO6jqYd3AmWnLGPgOdBmU9w== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_format_version_missing/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_format_version_missing/pai-Cert.der index bfa0e863e0b2dc..74ef53b0b2888b 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_format_version_missing/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_format_version_missing/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_format_version_missing/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_format_version_missing/pai-Cert.pem index 2cb40b8a33c110..a3f516b9574f71 100644 --- a/credentials/development/commissioner_dut/struct_cd_format_version_missing/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_format_version_missing/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIGxzOOTbpfu4wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB0zCCAXqgAwIBAgIIcsiBMWSiWUowCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQJ2a5UynmW5X37v1AJCRP9X+EZYwtv -7TWejpZDinBVrj5rip4HH8mt3CHwALa/xYDdxdJ6IJN0M31B2F7AZHk6o2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUA3MD -IwQIhsQrihQ0EmT+yZ8+bJ8wHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIhAJ+Fsm7kDvKClyhdUOnI/mrQJvJQjO1ePmlJ -GsdD217iAiB+0JCStOe5tTivbgqt9gqx9iZGSsIdy105uzj8kzFg1g== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARbnIPh06gENBt6n0NeNn3SDOueb0FA +SxlPKxrNuorykTU4956JPpZcM3cwEw3ZgNg5Y1nk+ECah8XGZ6YqGB3bo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUJn77 +S7ceszSzbA7FfCcqwwONdCQwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDRwAwRAIgHLCJ4V7RyKaB9YvP+NJkrzPCv/QR9DCf0/po +QFXfXR4CIE1g22SYMkunLW+hFMiFSIOM/ORBFU7bp6lvZ5R0hFtP -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_format_version_missing/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_format_version_missing/pai-Key.der index f3020428b330ca..77b78408dcc602 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_format_version_missing/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_format_version_missing/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_format_version_missing/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_format_version_missing/pai-Key.pem index c20d24d160d520..2f3b9cc873da54 100644 --- a/credentials/development/commissioner_dut/struct_cd_format_version_missing/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_format_version_missing/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIABJXJ0AxscuWrpgG5a6Dy+eHYIR+hhRIa/O3aXgq6GCoAoGCCqGSM49 -AwEHoUQDQgAECdmuVMp5luV9+79QCQkT/V/hGWMLb+01no6WQ4pwVa4+a4qeBx/J -rdwh8AC2v8WA3cXSeiCTdDN9QdhewGR5Og== +MHcCAQEEIM9BWs70e/jJziF1n3xo3RqjVQXeNVOFfe6fMx4q4r2RoAoGCCqGSM49 +AwEHoUQDQgAEW5yD4dOoBDQbep9DXjZ90gzrnm9BQEsZTysazbqK8pE1OPeeiT6W +XDN3MBMN2YDYOWNZ5PhAmofFxmemKhgd2w== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_format_version_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_format_version_missing/test_case_vector.json index e59bf34752f562..f66aada7998ee0 100644 --- a/credentials/development/commissioner_dut/struct_cd_format_version_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_format_version_missing/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The format_version field is missing.", "is_success_case": "false", - "dac_cert": "308201e33082018aa00302010202084e80acb61a5c3f7e300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000452d91452bc0d3b66aedc25756f5a66fc8a642807b41039c4cbe29aea89bb45b5c8c32596c6e8b509e1127bd2aed46fc98ba1b2325b125039f70a7df4844334c8a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604141a046d2a88caa239671cd28d0594ecd9bef16a30301f0603551d2304183016801403730323040886c42b8a14341264fec99f3e6c9f300a06082a8648ce3d040302034700304402202624ed1481ad333bb9231f159e83dc4ee1b74c04082195b2af11a2de0dba0337022015a34eb1a5d5dc41e4a43f476c3ddb9a934d3dd0f359f7b1d0a6de0e7dad0584", - "pai_cert": "308201d43082017aa00302010202081b1cce3936e97eee300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000409d9ae54ca7996e57dfbbf50090913fd5fe119630b6fed359e8e96438a7055ae3e6b8a9e071fc9addc21f000b6bfc580ddc5d27a209374337d41d85ec064793aa366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e0416041403730323040886c42b8a14341264fec99f3e6c9f301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203480030450221009f85b26ee40ef28297285d50e9c8fe6ad026f2508ced5e3e69491ac743db5ee202207ed09092b4e7b9b538af6e0aadf60ab1f626464ac21dcb5d39bb38fc933160d6", - "certification_declaration": "3081ff06092a864886f70d010702a081f13081ee020103310d300b0609608648016503040201305b06092a864886f70d010701a04e044c152501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100dc24f5310c61101cc8927e66a9a1dc5fd68128b1f5790b126a65d103fc3bc4560220702bf864c3de01cc8865e2ad3c540800549e85d91a65309ebbeca46238527104", - "dac_private_key": "6181c79e5423455a8be78ae1b89ac0ec32ac85d815c115d7cfa741b6331f33ab", - "dac_public_key": "0452d91452bc0d3b66aedc25756f5a66fc8a642807b41039c4cbe29aea89bb45b5c8c32596c6e8b509e1127bd2aed46fc98ba1b2325b125039f70a7df4844334c8" + "dac_cert": "308201e43082018aa00302010202083ac767c7fcc7a4bc300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000488e310812f264cc2dd098208b079023842039393ab4bd67fc0099001709bea84fc5cd7f8cb3c0c021e74fa377739410c3ba8ea61ddc09969cb18f80e741994f7a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041427a36649231c72ac3da615877bf7b3e668759386301f0603551d23041830168014267efb4bb71eb334b36c0ec57c272ac3038d7424300a06082a8648ce3d0403020348003045022016f046ff32ff916f5e8bcce3b0f22c0e70efa0ea03330a1fd19225b88f0794e0022100d40fe00994d9c8b401d4ea9d0df3099e189c03767d2c33e8c54eb0bbf5fce3ac", + "pai_cert": "308201d33082017aa003020102020872c8813164a2594a300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200045b9c83e1d3a804341b7a9f435e367dd20ceb9e6f41404b194f2b1acdba8af2913538f79e893e965c337730130dd980d8396359e4f8409a87c5c667a62a181ddba366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414267efb4bb71eb334b36c0ec57c272ac3038d7424301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402201cb089e15ed1c8a681f58bcff8d264af33c2bff411f4309fd3fa684055df5d1e02204d60db6498324ba72d6fa114c88548838cfce441154edba7a96f679474845b4f", + "certification_declaration": "3081ff06092a864886f70d010702a081f13081ee020103310d300b0609608648016503040201305b06092a864886f70d010701a04e044c152501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502201d8b681c92a71730f71b3322c28bc1d60374c9dbf2d0f678191b20eb0e05c912022100c616befc743659789384a66fffbab1c199885772b64e71b07872242178bb52a9", + "dac_private_key": "5860ef125bc0f3db79c8ab6d13414558cc73c67dad108e1d3f2dbcb569bc5195", + "dac_public_key": "0488e310812f264cc2dd098208b079023842039393ab4bd67fc0099001709bea84fc5cd7f8cb3c0c021e74fa377739410c3ba8ea61ddc09969cb18f80e741994f7" } diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count0/cd.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count0/cd.der index 8e03323c37dc6a..2779a752c98627 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count0/cd.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count0/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count0/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count0/dac-Cert.der index 1c678f06ba6e30..1beb92ef856e37 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count0/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count0/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count0/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_pid_array_count0/dac-Cert.pem index 67dd41fc1cc38b..7d338ec9cb6c23 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count0/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count0/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5DCCAYqgAwIBAgIIEnkoKr3mdwEwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB4zCCAYqgAwIBAgIIcIigy0osW94wCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -/oFFBcx9A6joZHTyxoTm2FDMOi2F0hNdd5cu25AkqPD4hV5TEru/K2wHV8FT6YHU -fchDD5axL1PJ+DMzCRfhKqNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFMmK1IGH9V4dBv7Vd+lpEpjuz6kGMB8GA1UdIwQYMBaAFM9w -0Ll++7gaB6IZtLYcMKbEeWSbMAoGCCqGSM49BAMCA0gAMEUCIQDqvyxUziE53drZ -i8zvMxKF/cVamw5mdanV8CTLaRpBCQIgJIu8cCMSw/hgEshYh4KWsZT8Dq+3dCd/ -E8vyB/IPubY= +j2vAC0d5WQP6l44oLeVy8/okevd5a2RTNpac3FNGG+YqVrVIHC4GJOuJ8zpWYUMT ++fMR6UXgaxBDrhbtjKEHtKNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFOrL///1euGaX7h8qijkS7IuZF05MB8GA1UdIwQYMBaAFNsS +P9ru6XunB4ZX4a64Ib2NkWQNMAoGCCqGSM49BAMCA0cAMEQCIFcjmwKQIamucjCM +LLrwLPR+UbCezN2CdMzTRg4ib/kkAiBT3HHxOD1/Jvjd++EwWogjjYevJ2Y7mioN +OCnOzMnABg== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count0/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count0/dac-Key.der index 0e85c495206809..9b95f9c829b1ff 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count0/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count0/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count0/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_pid_array_count0/dac-Key.pem index 856f79f565dd4d..30f3960a6b1f05 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count0/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count0/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIOst69kbD93rhgQ81cutVKMnIP4GqiugDJ1a304ictaUoAoGCCqGSM49 -AwEHoUQDQgAE/oFFBcx9A6joZHTyxoTm2FDMOi2F0hNdd5cu25AkqPD4hV5TEru/ -K2wHV8FT6YHUfchDD5axL1PJ+DMzCRfhKg== +MHcCAQEEILb5RiCdmip9fBngJ2IMw32N6E18N4hdJ9KneQgsifQsoAoGCCqGSM49 +AwEHoUQDQgAEj2vAC0d5WQP6l44oLeVy8/okevd5a2RTNpac3FNGG+YqVrVIHC4G +JOuJ8zpWYUMT+fMR6UXgaxBDrhbtjKEHtA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count0/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count0/pai-Cert.der index f4d2be822f2ffc..f9987e1fa6d109 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count0/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count0/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count0/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_pid_array_count0/pai-Cert.pem index 4b0fb1c93a6391..9d978e59e6e895 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count0/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count0/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIAbqQQe//E5IwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB0zCCAXqgAwIBAgIIcjK08xvD5XEwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQgp6BhS7aKChaBrAudOfTmlkN5DHik -LipmUhe4Z1fEoWLdAmAf87WfjdbpV93M7qEkvRcm/+aYDUdvRRXFEHYno2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUz3DQ -uX77uBoHohm0thwwpsR5ZJswHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIgReWlwiFsMLYcRzZsRmy+JWyJuqOjdYhmN5yG -SgIIzuICIQCzId3Mljc9mEwDkOdWgOv0SS5nAdKxdVB7XC+HYKzlZg== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATvQQMCYbXtlR/arMIGVz0NKMTxf2Wu +iYve9hodKfcyYjzt4HDKs1Mk7fmFEyvSCBhrg+zQeTQFJtd2uoJtCfifo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU2xI/ +2u7pe6cHhlfhrrghvY2RZA0wHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDRwAwRAIgD5yGQz6I8ceTkwzqU3hhXDiRvyQVVErqiNkm +Ek0G3ZYCIEE7uXZfK72cfMEcv/T4OU2T482StfdRji1TM86w0BDe -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count0/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count0/pai-Key.der index 20915277d9116a..caa2c64ab5168b 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count0/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count0/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count0/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_pid_array_count0/pai-Key.pem index 2e691ab7bf9d90..1a6f8862a07500 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count0/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count0/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIElHUg7wcEJI2L2iTGq6FwNGB35dIXwb2ND/D+HJM8vxoAoGCCqGSM49 -AwEHoUQDQgAEIKegYUu2igoWgawLnTn05pZDeQx4pC4qZlIXuGdXxKFi3QJgH/O1 -n43W6VfdzO6hJL0XJv/mmA1Hb0UVxRB2Jw== +MHcCAQEEIJTITPlmrg9Wz6iw8UnNdCfuJKURDJ42d75g/lz3KEovoAoGCCqGSM49 +AwEHoUQDQgAE70EDAmG17ZUf2qzCBlc9DSjE8X9lromL3vYaHSn3MmI87eBwyrNT +JO35hRMr0ggYa4Ps0Hk0BSbXdrqCbQn4nw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count0/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_pid_array_count0/test_case_vector.json index d5837e903122b1..56f10bada9959f 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count0/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count0/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The product_id_array field is empty TLV array.", "is_success_case": "false", - "dac_cert": "308201e43082018aa00302010202081279282abde67701300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004fe814505cc7d03a8e86474f2c684e6d850cc3a2d85d2135d77972edb9024a8f0f8855e5312bbbf2b6c0757c153e981d47dc8430f96b12f53c9f833330917e12aa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414c98ad48187f55e1d06fed577e9691298eecfa906301f0603551d23041830168014cf70d0b97efbb81a07a219b4b61c30a6c479649b300a06082a8648ce3d0403020348003045022100eabf2c54ce2139dddad98bccef331285fdc55a9b0e6675a9d5f024cb691a41090220248bbc702312c3f86012c858878296b194fc0eafb774277f13cbf207f20fb9b6", - "pai_cert": "308201d43082017aa003020102020801ba9041efff1392300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000420a7a0614bb68a0a1681ac0b9d39f4e69643790c78a42e2a665217b86757c4a162dd02601ff3b59f8dd6e957ddcceea124bd1726ffe6980d476f4515c5107627a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414cf70d0b97efbb81a07a219b4b61c30a6c479649b301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022045e5a5c2216c30b61c47366c466cbe256c89baa3a3758866379c864a0208cee2022100b321ddcc96373d984c0390e75680ebf4492e6701d2b175507b5c2f8760ace566", - "certification_declaration": "3082010006092a864886f70d010702a081f23081ef020103310d300b0609608648016503040201305b06092a864886f70d010701a04e044c152000012501f1ff360218250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100962ebc86d3c61c0c682fe3e7156b2d79118e06b319b9b76514485e81506df468022100ba58b55452208fad716d7da6b8f059a1cd1fc4335e13cfaba42dc33fb9e06aaf", - "dac_private_key": "eb2debd91b0fddeb86043cd5cbad54a32720fe06aa2ba00c9d5adf4e2272d694", - "dac_public_key": "04fe814505cc7d03a8e86474f2c684e6d850cc3a2d85d2135d77972edb9024a8f0f8855e5312bbbf2b6c0757c153e981d47dc8430f96b12f53c9f833330917e12a" + "dac_cert": "308201e33082018aa00302010202087088a0cb4a2c5bde300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200048f6bc00b47795903fa978e282de572f3fa247af7796b645336969cdc53461be62a56b5481c2e0624eb89f33a56614313f9f311e945e06b1043ae16ed8ca107b4a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414eacbfffff57ae19a5fb87caa28e44bb22e645d39301f0603551d23041830168014db123fdaeee97ba7078657e1aeb821bd8d91640d300a06082a8648ce3d0403020347003044022057239b029021a9ae72308c2cbaf02cf47e51b09eccdd8274ccd3460e226ff924022053dc71f1383d7f26f8ddfbe1305a88238d87af27663b9a2a0d3829ceccc9c006", + "pai_cert": "308201d33082017aa00302010202087232b4f31bc3e571300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004ef41030261b5ed951fdaacc206573d0d28c4f17f65ae898bdef61a1d29f732623cede070cab35324edf985132bd208186b83ecd079340526d776ba826d09f89fa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414db123fdaeee97ba7078657e1aeb821bd8d91640d301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402200f9c86433e88f1c793930cea5378615c3891bf2415544aea88d926124d06dd960220413bb9765f2bbd9c7cc11cbff4f8394d93e3cd92b5f7518e2d5333ceb0d010de", + "certification_declaration": "3081ff06092a864886f70d010702a081f13081ee020103310d300b0609608648016503040201305b06092a864886f70d010701a04e044c152000012501f1ff360218250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450220320a23c02088e89003c7e2a9abbd76a74ad2b85ed5024a4b920bf66a0f2df968022100c36325bd3b8515eba9f674cbd4855dd7c52c01ef6ab150c46291bc33ed71642d", + "dac_private_key": "b6f946209d9a2a7d7c19e027620cc37d8de84d7c37885d27d2a779082c89f42c", + "dac_public_key": "048f6bc00b47795903fa978e282de572f3fa247af7796b645336969cdc53461be62a56b5481c2e0624eb89f33a56614313f9f311e945e06b1043ae16ed8ca107b4" } diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/cd.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/cd.der index 97c4ae47112477..e14dd90196bf1e 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/cd.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/dac-Cert.der index 8961206aadf2c8..8ff8d0cd741e59 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/dac-Cert.pem index eb1cfa31129b4c..95664db7fe1137 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5TCCAYqgAwIBAgIIEy0H4/DB8WAwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5DCCAYqgAwIBAgIIXsR7xEXOdAUwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -cmXhpnuZPyGDDSuIjh8DFICbjFIfbrd50sPiI+nmjpcHOn20/ksHAvuq1i7/1ULT -M7yooJjaKX6NWKRAXT4PLqNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFPxHSF/623ozK7fpL4SwWGZQYefjMB8GA1UdIwQYMBaAFJrK -bB0YJWw1DnVY2Hlze2Zeq8ppMAoGCCqGSM49BAMCA0kAMEYCIQCS46d7YJ9F/tdU -GfJiCwrobzTbX8zBjvPAyy6HEbfSBAIhAO9AaVsC+IAbtBRcNNw1/Lnvc8YGNLFp -o1wIXC3EueBZ +PllOSwpOw2suaxdJ79DSJKI7jrQ9Sy7agBCKYmgsPo9LI2xbX138JVHX6j1uu5BZ +4cs2nsP93QkZgR8kM6qBW6NgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFDo+bHJ0csmY7id1DXh8yoOG2EbAMB8GA1UdIwQYMBaAFNe5 +p1wY6KwiPqkbpHUJTGTvmKaMMAoGCCqGSM49BAMCA0gAMEUCIHYKvoASQ3Mk2I6v +ugwiCQHUB1+Y6xdFa4BJH5WU59VhAiEA0o4pAUonTMiUvlSmSYTx4DwQaGjcMU5H +ObQECJWk7+c= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/dac-Key.der index d6de29726cdeef..e3881b84142f06 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/dac-Key.pem index 8977d16b531d0b..f8eee59003dd0f 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIIey8wJmRtgNs7Z8oNG74l2+Dnp4oyerTTB1FR2imj0JoAoGCCqGSM49 -AwEHoUQDQgAEcmXhpnuZPyGDDSuIjh8DFICbjFIfbrd50sPiI+nmjpcHOn20/ksH -Avuq1i7/1ULTM7yooJjaKX6NWKRAXT4PLg== +MHcCAQEEIBsvrLuyQHiY3ylmkxeF7FaAMGT7M/0hhXTybRxyJxTtoAoGCCqGSM49 +AwEHoUQDQgAEPllOSwpOw2suaxdJ79DSJKI7jrQ9Sy7agBCKYmgsPo9LI2xbX138 +JVHX6j1uu5BZ4cs2nsP93QkZgR8kM6qBWw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/pai-Cert.der index 14130b41db8ee9..eb90f3fc346469 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/pai-Cert.pem index b8ed522c35dbe8..393d051da56522 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIXby76pAcUPIwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1TCCAXqgAwIBAgIIDem4WoeaMOQwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQyTDVxWvsyJEvMiYCVDyaZTHyk0sAK -fzIGFLYBCBXXAjgI5KLdZeC5VCEO0vdyxAjHRwkQd+kuqWlj+IzUsyBZo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUmsps -HRglbDUOdVjYeXN7Zl6rymkwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIhAIBeRYzedz7oF15z4gjltHru0wTodfRcaDtY -d6g5x4ObAiBXrwDptq/LTFnCvaRiQV6Trh37pt073UHX4NWrfhCISQ== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASrR3cBBffvhK1DWU5rvjSmUWqhNYjb +uWzPCoyEfPnAvfoArPvziyi6flXS7yyxdZnQg2keXmFIbOMW5SFGr+Kfo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU17mn +XBjorCI+qRukdQlMZO+YpowwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSQAwRgIhAMbl0XLMQtlKvcLyaQJnGh7lICLZMeJ8SFtu +G24TUe8kAiEApBrfXMq1Q3QD2wtehdaVpCJIamK1xXacn5gY2SooE/c= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/pai-Key.der index 3d9164ce5ec69b..f4c273a0650f99 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/pai-Key.pem index dbf13b7ed2bd56..3485b62ebd9404 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIPIZD0DHgV1++GIOOS+uuuEiTiIltNPFnQH/4JMes9aeoAoGCCqGSM49 -AwEHoUQDQgAEMkw1cVr7MiRLzImAlQ8mmUx8pNLACn8yBhS2AQgV1wI4COSi3WXg -uVQhDtL3csQIx0cJEHfpLqlpY/iM1LMgWQ== +MHcCAQEEIB8NqKBo79vxuxqnWncST2CzN1aSruHxMh8MY8TYkNOnoAoGCCqGSM49 +AwEHoUQDQgAEq0d3AQX374StQ1lOa740plFqoTWI27lszwqMhHz5wL36AKz784so +un5V0u8ssXWZ0INpHl5hSGzjFuUhRq/inw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/test_case_vector.json index babc1d004d869c..31bbee9d96c82d 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_mismatch/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The product_id_array field has one PID value that doesn't match the PID value in DAC.", "is_success_case": "false", - "dac_cert": "308201e53082018aa0030201020208132d07e3f0c1f160300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200047265e1a67b993f21830d2b888e1f0314809b8c521f6eb779d2c3e223e9e68e97073a7db4fe4b0702fbaad62effd542d333bca8a098da297e8d58a4405d3e0f2ea360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414fc47485ffadb7a332bb7e92f84b058665061e7e3301f0603551d230418301680149aca6c1d18256c350e7558d879737b665eabca69300a06082a8648ce3d040302034900304602210092e3a77b609f45fed75419f2620b0ae86f34db5fccc18ef3c0cb2e8711b7d204022100ef40695b02f8801bb4145c34dc35fcb9ef73c60634b169a35c085c2dc4b9e059", - "pai_cert": "308201d43082017aa00302010202085dbcbbea901c50f2300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004324c35715afb32244bcc8980950f26994c7ca4d2c00a7f320614b6010815d7023808e4a2dd65e0b954210ed2f772c408c747091077e92ea96963f88cd4b32059a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604149aca6c1d18256c350e7558d879737b665eabca69301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100805e458cde773ee8175e73e208e5b47aeed304e875f45c683b5877a839c7839b022057af00e9b6afcb4c59c2bda462415e93ae1dfba6dd3bdd41d7e0d5ab7e108849", - "certification_declaration": "3082010206092a864886f70d010702a081f43081f1020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205018018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100fbff6aa7b2470386427ea342e5277a9158fc164679c610f98bcafee00e042c8002200f2c97259f841352b495f168ef01d4ed0b8345be208bd468fedc532a76c6b605", - "dac_private_key": "87b2f3026646d80db3b67ca0d1bbe25dbe0e7a78a327ab4d3075151da29a3d09", - "dac_public_key": "047265e1a67b993f21830d2b888e1f0314809b8c521f6eb779d2c3e223e9e68e97073a7db4fe4b0702fbaad62effd542d333bca8a098da297e8d58a4405d3e0f2e" + "dac_cert": "308201e43082018aa00302010202085ec47bc445ce7405300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200043e594e4b0a4ec36b2e6b1749efd0d224a23b8eb43d4b2eda80108a62682c3e8f4b236c5b5f5dfc2551d7ea3d6ebb9059e1cb369ec3fddd0919811f2433aa815ba360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604143a3e6c727472c998ee27750d787cca8386d846c0301f0603551d23041830168014d7b9a75c18e8ac223ea91ba475094c64ef98a68c300a06082a8648ce3d04030203480030450220760abe8012437324d88eafba0c220901d4075f98eb17456b80491f9594e7d561022100d28e29014a274cc894be54a64984f1e03c106868dc314e4739b4040895a4efe7", + "pai_cert": "308201d53082017aa00302010202080de9b85a879a30e4300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004ab47770105f7ef84ad43594e6bbe34a6516aa13588dbb96ccf0a8c847cf9c0bdfa00acfbf38b28ba7e55d2ef2cb17599d083691e5e61486ce316e52146afe29fa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414d7b9a75c18e8ac223ea91ba475094c64ef98a68c301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100c6e5d172cc42d94abdc2f26902671a1ee52022d931e27c485b6e1b6e1351ef24022100a41adf5ccab5437403db0b5e85d695a422486a62b5c5769c9f9818d92a2813f7", + "certification_declaration": "3082010306092a864886f70d010702a081f53081f2020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205018018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100859ae1b166131e60090f06446274867083cf2f62722dee3e8b3bf3803d7922f0022100fc4cd8a74a119b0e94c6ac6e7c060f71e3a97e07205f7e6c8f6471706dc43152", + "dac_private_key": "1b2facbbb2407898df2966931785ec56803064fb33fd218574f26d1c722714ed", + "dac_public_key": "043e594e4b0a4ec36b2e6b1749efd0d224a23b8eb43d4b2eda80108a62682c3e8f4b236c5b5f5dfc2551d7ea3d6ebb9059e1cb369ec3fddd0919811f2433aa815b" } diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/cd.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/cd.der index 92eae9318fa4ba..b807f647d52132 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/cd.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/dac-Cert.der index 75ce16714a7291..a2ccab8fb86577 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/dac-Cert.pem index a1527d4980d78e..628f8e433a4ad5 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB4zCCAYqgAwIBAgIIcX35BqO9ycswCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5DCCAYqgAwIBAgIIS6ptMIr1QTswCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -OKaLnMX5h58knjh8z38o84ONW3KaGYBX7m32snwKtT8XqHSaZQucn63IFmwO4uLn -Y+8QGBqogVv5kXOhdfZwXaNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFN2vTzT9pf8x+mHKhI3havdMn5cuMB8GA1UdIwQYMBaAFAwL -oW07oFyYfwxJKjWDUu8suA5NMAoGCCqGSM49BAMCA0cAMEQCIGb/+RGAQZsHge72 -35pPwQBRDh8XrnEuFMgsQOtfH4jqAiBT7vY99/QQPiTz++aIMZRWyEMi3dC2aWvr -jo+F9sRdzA== +X72ibI3f0MmwwPtACTwETDjtmAMbEJ2jIIhHHIZruIcnK2lsu/QLAOjMSVNqUz/u +29cAWHwjohh8PNHlweFQG6NgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFMLfEmNWH5OfkA+cowtG0rzC0pz4MB8GA1UdIwQYMBaAFGjW +jtrcEbNyMMJpKIdIEPWQtKN2MAoGCCqGSM49BAMCA0gAMEUCIQCPaLX+IL03D56C +JHrsgBUwd8PZycwMxBQLB9+jTn1+YQIgFc9XY+b4EasndpSQx0Znh6WzuULv1tHV +yqtMJtSxc+I= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/dac-Key.der index ae1e1a2a543900..444a817a7c7681 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/dac-Key.pem index 1f8e1319b3f332..78584e12ffd6de 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIIbChvJF23gHGdAvuAldnAveXLTSuIi0raOhGSLjFBM8oAoGCCqGSM49 -AwEHoUQDQgAEOKaLnMX5h58knjh8z38o84ONW3KaGYBX7m32snwKtT8XqHSaZQuc -n63IFmwO4uLnY+8QGBqogVv5kXOhdfZwXQ== +MHcCAQEEIDZz/Qwn4nYR/fIpHECgufjRreDaBrh8/2O9mfSTeO6goAoGCCqGSM49 +AwEHoUQDQgAEX72ibI3f0MmwwPtACTwETDjtmAMbEJ2jIIhHHIZruIcnK2lsu/QL +AOjMSVNqUz/u29cAWHwjohh8PNHlweFQGw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/pai-Cert.der index 8390d7f8651d05..9e60f75adc2aaa 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/pai-Cert.pem index 1ffae51f757bd0..9567e5daaa93e7 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB0zCCAXqgAwIBAgIIDnBH/N5oSyUwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB0zCCAXqgAwIBAgIIKw+WSD+kJtAwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAT7u4DXa7H1Qw6NHWxO/y1tWhnvqxvk -snDcgdiUs+s7KO82iEYXWDf16aCXAv9HoPQPsS6cEyMmLzQexSBihgyno2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUDAuh -bTugXJh/DEkqNYNS7yy4Dk0wHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDRwAwRAIgIb2ikjcLBHOrdjqfEyPBqWH+pPJxxI+sy3pj -JYW5AcwCICL2wKULyfX8HfKbsCDXCSKJ4SJnqAJcyAsIvg4c1Zgt +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASLUGuu7HZ52hOt3WS2m9dNVnJlmfow +mRdU0MyuMw4tpCKfP5zzzQg3iHGwJYZNVDBnTRrY6kRKQlWLoXHLbt/+o2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUaNaO +2twRs3Iwwmkoh0gQ9ZC0o3YwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDRwAwRAIgBwdHA7ielH5tZrl7Op5EBTSq8BygtvHBVOJb +tPIALFYCIC7UC+KXD/DHJ3YLzk19FQ3HkEsAHY+zse5LLElh6m8d -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/pai-Key.der index 121800556eb4c1..9012838fadff1f 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/pai-Key.pem index c091a39f0cbb15..29d160e796a3da 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIOT37LSWOYEY2y5siokTWqTScAE87EmEkfvPEx8lISGLoAoGCCqGSM49 -AwEHoUQDQgAE+7uA12ux9UMOjR1sTv8tbVoZ76sb5LJw3IHYlLPrOyjvNohGF1g3 -9emglwL/R6D0D7EunBMjJi80HsUgYoYMpw== +MHcCAQEEIHiOg4d4D91DpJervBqIxqNNrT/DJ3x+a63UngfRToKuoAoGCCqGSM49 +AwEHoUQDQgAEi1Brrux2edoTrd1ktpvXTVZyZZn6MJkXVNDMrjMOLaQinz+c880I +N4hxsCWGTVQwZ00a2OpESkJVi6Fxy27f/g== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/test_case_vector.json index 70a405141078e2..db24fe5b8ad831 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count01_valid/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The product_id_array field has one PID value which matches the PID value in DAC.", "is_success_case": "true", - "dac_cert": "308201e33082018aa0030201020208717df906a3bdc9cb300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000438a68b9cc5f9879f249e387ccf7f28f3838d5b729a198057ee6df6b27c0ab53f17a8749a650b9c9fadc8166c0ee2e2e763ef10181aa8815bf99173a175f6705da360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414ddaf4f34fda5ff31fa61ca848de16af74c9f972e301f0603551d230418301680140c0ba16d3ba05c987f0c492a358352ef2cb80e4d300a06082a8648ce3d0403020347003044022066fff91180419b0781eef6df9a4fc100510e1f17ae712e14c82c40eb5f1f88ea022053eef63df7f4103e24f3fbe688319456c84322ddd0b6696beb8e8f85f6c45dcc", - "pai_cert": "308201d33082017aa00302010202080e7047fcde684b25300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004fbbb80d76bb1f5430e8d1d6c4eff2d6d5a19efab1be4b270dc81d894b3eb3b28ef368846175837f5e9a09702ff47a0f40fb12e9c1323262f341ec52062860ca7a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604140c0ba16d3ba05c987f0c492a358352ef2cb80e4d301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020347003044022021bda292370b0473ab763a9f1323c1a961fea4f271c48faccb7a632585b901cc022022f6c0a50bc9f5fc1df29bb020d7092289e12267a8025cc80b08be0e1cd5982d", - "certification_declaration": "3082010206092a864886f70d010702a081f43081f1020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502200b6c6ed3b56ce57225f5192ea39ce426bd6fe878a52eccfffe23f2669fab16fd022100eb2f98aeaf881bcb57d73cf92cf7932e875435eb402915a0d46639b893c6c1f9", - "dac_private_key": "86c286f245db780719d02fb8095d9c0bde5cb4d2b888b4ada3a11922e314133c", - "dac_public_key": "0438a68b9cc5f9879f249e387ccf7f28f3838d5b729a198057ee6df6b27c0ab53f17a8749a650b9c9fadc8166c0ee2e2e763ef10181aa8815bf99173a175f6705d" + "dac_cert": "308201e43082018aa00302010202084baa6d308af5413b300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200045fbda26c8ddfd0c9b0c0fb40093c044c38ed98031b109da32088471c866bb887272b696cbbf40b00e8cc49536a533feedbd700587c23a2187c3cd1e5c1e1501ba360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414c2df1263561f939f900f9ca30b46d2bcc2d29cf8301f0603551d2304183016801468d68edadc11b37230c26928874810f590b4a376300a06082a8648ce3d04030203480030450221008f68b5fe20bd370f9e82247aec80153077c3d9c9cc0cc4140b07dfa34e7d7e61022015cf5763e6f811ab27769490c7466787a5b3b942efd6d1d5caab4c26d4b173e2", + "pai_cert": "308201d33082017aa00302010202082b0f96483fa426d0300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200048b506baeec7679da13addd64b69bd74d56726599fa30991754d0ccae330e2da4229f3f9cf3cd08378871b025864d5430674d1ad8ea444a42558ba171cb6edffea366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041468d68edadc11b37230c26928874810f590b4a376301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020347003044022007074703b89e947e6d66b97b3a9e440534aaf01ca0b6f1c154e25bb4f2002c5602202ed40be2970ff0c727760bce4d7d150dc7904b001d8fb3b1ee4b2c4961ea6f1d", + "certification_declaration": "3082010206092a864886f70d010702a081f43081f1020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022048bc632f9a578f6d226af805091a123c20327ab34d901d0a7d9210eb9cd9ba8802210088f535696b239773a872de44d0c05d96d53e4b0f3fb52dfc78c2abda088acff5", + "dac_private_key": "3673fd0c27e27611fdf2291c40a0b9f8d1ade0da06b87cff63bd99f49378eea0", + "dac_public_key": "045fbda26c8ddfd0c9b0c0fb40093c044c38ed98031b109da32088471c866bb887272b696cbbf40b00e8cc49536a533feedbd700587c23a2187c3cd1e5c1e1501b" } diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/cd.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/cd.der index ad9f29f8888479..f08687e041321b 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/cd.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/dac-Cert.der index e54fb7d6afe209..e1896b35d03689 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/dac-Cert.pem index b945b2d4131d68..2dc13c32f51568 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5DCCAYqgAwIBAgIIZW2Jb1mHNrowCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5DCCAYqgAwIBAgIILNCQSHDFlZUwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -z5dk8IbcW+00od8qHzOTDZwdDHC1c6DruXOWpmgfzyF+6LGP40u+4HOs3r/cyiq4 -6Egh/6xsHe5Zu2t/0czkFKNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFGmKE2aKZAk8qiEhkYL8o1HgTA/eMB8GA1UdIwQYMBaAFKgb -Kip9yynSEva5ZcDzuKrz3AZJMAoGCCqGSM49BAMCA0gAMEUCIQCIBJYEXlCUaYYK -XG0xuQAkV9rHAJuKCioOxBh9U9IQ0wIgUXRmG60KsfsfK3cKWRMq6NVGER6C/8jB -STiHH2ahK48= +vngr12OauR2VuobqFtCD/US4bZWZht4t4lEXx4/dEnPwrGIWg6LyEBVi07NVOSql +5dwuc9DonvEWZcowk6CVOKNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFKh3d0VFqiGiPD+y0QQKHf0qWkFAMB8GA1UdIwQYMBaAFM7/ +dhXBPrPcWAX/dvpHzptsky69MAoGCCqGSM49BAMCA0gAMEUCIQDVU8u5baGW4CDA +y6Ecy11WDl03UPGhUv1Meua/yQNmHgIgcOoE92PJkTwKvfAgqjyMsMj+Z3n/6H8g +2aoDjSLVaCM= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/dac-Key.der index 9b32801a136e6e..71466d22d55d4b 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/dac-Key.pem index 891711e86b02c9..91b5613ad6eb9c 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIBlG72iJvyOJfe52kdUBHHesuhosneaJpKyTEwhgjtk1oAoGCCqGSM49 -AwEHoUQDQgAEz5dk8IbcW+00od8qHzOTDZwdDHC1c6DruXOWpmgfzyF+6LGP40u+ -4HOs3r/cyiq46Egh/6xsHe5Zu2t/0czkFA== +MHcCAQEEIC3BH3L83WOnU65hhZcCcjeKEtfy/Fs5C1kQoSJqCdaeoAoGCCqGSM49 +AwEHoUQDQgAEvngr12OauR2VuobqFtCD/US4bZWZht4t4lEXx4/dEnPwrGIWg6Ly +EBVi07NVOSql5dwuc9DonvEWZcowk6CVOA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/pai-Cert.der index 0920718933afd7..bf82f9acdba643 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/pai-Cert.pem index a61f77e61e2f4d..4342ec26607b74 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1TCCAXqgAwIBAgIIZEKMVFiWD3UwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1TCCAXqgAwIBAgIIbCRgTmUFJTYwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARowtproGLrUnikKMqXXCaLZhvqxg+Z -VxoH8rpCg0dluZmrljXWCEgXlT7C4tvWdzE4FmvZ0BLqqRKqRW20KwgBo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUqBsq -Kn3LKdIS9rllwPO4qvPcBkkwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSQAwRgIhAI3aD6oT5T8Fb9S4K0evXl/XuHpudPN4JY57 -QocJoq/fAiEAq1dAoI3X+Wh/M/OREMyWCby1ZdgoryRR7dvCEGPV6Gk= +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQO6ctLLKARXeuw522OX519LMECgXCL +6NtkVoYwf/PgxTNSbWSnImPUwDSGC6epJ9KHrwalUOkEIc+sn8NaRlw1o2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUzv92 +FcE+s9xYBf92+kfOm2yTLr0wHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSQAwRgIhAIjptPauEwGXxL2WRl8lCcXG6R+dLnqWuIDA +nzfF84rdAiEAiJuXwvVGja5gOiBn93D7EhdZusAAAebhiiISxF9oNIk= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/pai-Key.der index 9fa128d9f9c2c2..c87063d401cfe1 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/pai-Key.pem index 555a3ece86dd58..ba4162ef6d8e8f 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIElS4MdcFHvqb4fdG4Um91GS/YeWN5hwrbynJGyfqRA5oAoGCCqGSM49 -AwEHoUQDQgAEaMLaa6Bi61J4pCjKl1wmi2Yb6sYPmVcaB/K6QoNHZbmZq5Y11ghI -F5U+wuLb1ncxOBZr2dAS6qkSqkVttCsIAQ== +MHcCAQEEIFDuOxN1iTFXg+0VzlHiheyGVfAhIIy2Ea6t9lJpVXe1oAoGCCqGSM49 +AwEHoUQDQgAEDunLSyygEV3rsOdtjl+dfSzBAoFwi+jbZFaGMH/z4MUzUm1kpyJj +1MA0hgunqSfSh68GpVDpBCHPrJ/DWkZcNQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/test_case_vector.json index 50c0d74ff13c83..b0500502369c02 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_mismatch/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The product_id_array field has 100 PID values none of which matches the PID value in DAC.", "is_success_case": "false", - "dac_cert": "308201e43082018aa0030201020208656d896f598736ba300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004cf9764f086dc5bed34a1df2a1f33930d9c1d0c70b573a0ebb97396a6681fcf217ee8b18fe34bbee073acdebfdcca2ab8e84821ffac6c1dee59bb6b7fd1cce414a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414698a13668a64093caa21219182fca351e04c0fde301f0603551d23041830168014a81b2a2a7dcb29d212f6b965c0f3b8aaf3dc0649300a06082a8648ce3d0403020348003045022100880496045e509469860a5c6d31b9002457dac7009b8a0a2a0ec4187d53d210d302205174661bad0ab1fb1f2b770a59132ae8d546111e82ffc8c14938871f66a12b8f", - "pai_cert": "308201d53082017aa003020102020864428c5458960f75300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000468c2da6ba062eb5278a428ca975c268b661beac60f99571a07f2ba42834765b999ab9635d6084817953ec2e2dbd6773138166bd9d012eaa912aa456db42b0801a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414a81b2a2a7dcb29d212f6b965c0f3b8aaf3dc0649301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203490030460221008dda0faa13e53f056fd4b82b47af5e5fd7b87a6e74f378258e7b428709a2afdf022100ab5740a08dd7f9687f33f39110cc9609bcb565d828af2451eddbc21063d5e869", - "certification_declaration": "3082023206092a864886f70d010702a08202233082021f020103310d300b06096086480165030402013082018b06092a864886f70d010701a082017c04820178152000012501f1ff3602050180050280050380050480050580050680050780050880050980050a80050b80050c80050d80050e80050f80051080051180051280051380051480051580051680051780051880051980051a80051b80051c80051d80051e80051f80052080052180052280052380052480052580052680052780052880052980052a80052b80052c80052d80052e80052f80053080053180053280053380053480053580053680053780053880053980053a80053b80053c80053d80053e80053f80054080054180054280054380054480054580054680054780054880054980054a80054b80054c80054d80054e80054f80055080055180055280055380055480055580055680055780055880055980055a80055b80055c80055d80055e80055f8005608005618005628005638005648018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204463044022008bc5bbca513f1b49d44d2171acc616acdf5e460a0b4f2eedd67bc89d43e045c02203592aac0c48cbfbb3efa5cfb735229d61882afc104a8ad3dc737de673b28c32a", - "dac_private_key": "1946ef6889bf23897dee7691d5011c77acba1a2c9de689a4ac931308608ed935", - "dac_public_key": "04cf9764f086dc5bed34a1df2a1f33930d9c1d0c70b573a0ebb97396a6681fcf217ee8b18fe34bbee073acdebfdcca2ab8e84821ffac6c1dee59bb6b7fd1cce414" + "dac_cert": "308201e43082018aa00302010202082cd0904870c59595300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004be782bd7639ab91d95ba86ea16d083fd44b86d959986de2de25117c78fdd1273f0ac621683a2f2101562d3b355392aa5e5dc2e73d0e89ef11665ca3093a09538a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414a877774545aa21a23c3fb2d1040a1dfd2a5a4140301f0603551d23041830168014ceff7615c13eb3dc5805ff76fa47ce9b6c932ebd300a06082a8648ce3d0403020348003045022100d553cbb96da196e020c0cba11ccb5d560e5d3750f1a152fd4c7ae6bfc903661e022070ea04f763c9913c0abdf020aa3c8cb0c8fe6779ffe87f20d9aa038d22d56823", + "pai_cert": "308201d53082017aa00302010202086c24604e65052536300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200040ee9cb4b2ca0115debb0e76d8e5f9d7d2cc10281708be8db645686307ff3e0c533526d64a72263d4c034860ba7a927d287af06a550e90421cfac9fc35a465c35a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414ceff7615c13eb3dc5805ff76fa47ce9b6c932ebd301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034900304602210088e9b4f6ae130197c4bd96465f2509c5c6e91f9d2e7a96b880c09f37c5f38add022100889b97c2f5468dae603a2067f770fb121759bac00001e6e18a2212c45f683489", + "certification_declaration": "3082023306092a864886f70d010702a082022430820220020103310d300b06096086480165030402013082018b06092a864886f70d010701a082017c04820178152000012501f1ff3602050180050280050380050480050580050680050780050880050980050a80050b80050c80050d80050e80050f80051080051180051280051380051480051580051680051780051880051980051a80051b80051c80051d80051e80051f80052080052180052280052380052480052580052680052780052880052980052a80052b80052c80052d80052e80052f80053080053180053280053380053480053580053680053780053880053980053a80053b80053c80053d80053e80053f80054080054180054280054380054480054580054680054780054880054980054a80054b80054c80054d80054e80054f80055080055180055280055380055480055580055680055780055880055980055a80055b80055c80055d80055e80055f8005608005618005628005638005648018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100c0608fcf5b35c5dec988339672ef27ef1eec78397d5b2b696a48cf843c7afd0e02204c84115dc79dae3a827bcbb737f905474dbc139ce728c5cb9aba294d32e058fe", + "dac_private_key": "2dc11f72fcdd63a753ae6185970272378a12d7f2fc5b390b5910a1226a09d69e", + "dac_public_key": "04be782bd7639ab91d95ba86ea16d083fd44b86d959986de2de25117c78fdd1273f0ac621683a2f2101562d3b355392aa5e5dc2e73d0e89ef11665ca3093a09538" } diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/cd.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/cd.der index 588b4bc8264558..5fdb2c8a7440c4 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/cd.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/dac-Cert.der index fe1e13eb4fa1cb..76a428365aa9cf 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/dac-Cert.pem index 855026530f36ce..ab52c5cf595840 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB4zCCAYqgAwIBAgIIBWC/Y9m5Rv8wCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5DCCAYqgAwIBAgIIKUC+rxcclS8wCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -L4LJQYlnTkwiD+9s2/M+j6sYLIzYh2SXmvFp+Cd8ulPCxT0eSGt4JHqtSwV6CtVU -aGRfTlI47/H4OFLH953QfaNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFPe/WyiCM6fQc5YDqhKnFaSmaA5rMB8GA1UdIwQYMBaAFFFv -O83LtD0dYvh0Rv/RhyzRj1KXMAoGCCqGSM49BAMCA0cAMEQCIG2weKCroxFbDIoU -F7aMX4WjA4aCLXSsZzaN99CbPvSKAiB17TqxjK3F40oaiEDVLTJofNVcsU56+LPf -+a5TAFVPKA== +EDRuSnlua3UNP1XQ7ZsNszmVeUyyQKWW2yRYR1aT0IB9P9aGCXGmhad3N+u9vSAz +snSJQzmtRiD74xtEJh/7Q6NgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFPWyUnmm854VY5QX6TifVyu3OVz3MB8GA1UdIwQYMBaAFKqT +NrPC7OpusMkH7RZ2hynGpPaBMAoGCCqGSM49BAMCA0gAMEUCIQDzOnutdQkd+DPD +dEk+fY4MWaeHjcCe9uM3SDm4WmBTqwIgQsj/F+hkdQCOHOpGAqgWC/YmNiHmn8HO +VJgOvBT7UnA= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/dac-Key.der index fc3ca6c0cfe041..0809d8d5d67d19 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/dac-Key.pem index f181729b285605..506ca66b7e970c 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIFXFYi5J6XOp5uht124ax9vfpMhsWAGtwQcwAc6fiX6goAoGCCqGSM49 -AwEHoUQDQgAEL4LJQYlnTkwiD+9s2/M+j6sYLIzYh2SXmvFp+Cd8ulPCxT0eSGt4 -JHqtSwV6CtVUaGRfTlI47/H4OFLH953QfQ== +MHcCAQEEILIh4VsbECSwrBT25xHOWuDuZT/aKPeI+kw+vNWEXXPSoAoGCCqGSM49 +AwEHoUQDQgAEEDRuSnlua3UNP1XQ7ZsNszmVeUyyQKWW2yRYR1aT0IB9P9aGCXGm +had3N+u9vSAzsnSJQzmtRiD74xtEJh/7Qw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/pai-Cert.der index 45458dd0d3d9f1..0d7e0517c1965e 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/pai-Cert.pem index efa76bb567ffa9..024694e49d132a 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1TCCAXqgAwIBAgIITiHl5RrZHxUwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1DCCAXqgAwIBAgIIOP420CaYZg8wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASkPC36RbTMPcPkGx1RbZj9JLhOH8Z1 -2w45JtOoe/a2ldVHx6JIM09pKY5oc/qLuxpBZqM24C986Xf4T5u0mkRBo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUUW87 -zcu0PR1i+HRG/9GHLNGPUpcwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSQAwRgIhAIgFMvVcEL6shzyYufXfuDqqj0uAm6mZLUhl -LREAW9pJAiEApcXhX9Vn7gHn1rRQqyYUhzCxV8YC4Lq1i/JKx9Nvai8= +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR3QjveKP276vGM9t+5AJJkrF15x4BY +gTorBzaJFGJpfx+KkrgiYRXEsddxUR+Z8he1Q16tuA0cXScXGECnAnVlo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUqpM2 +s8Ls6m6wyQftFnaHKcak9oEwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIgY+ghnAvt7FW0b0cUn4RHWrh+w7Cdu1PhRKAx +Zfg+aXoCIQDeKM217gKGYuL7OUHWYC2tJKFo4u6yIahh/dHM+IFTHg== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/pai-Key.der index 9fcc33697b8188..87d2af4680303d 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/pai-Key.pem index 0163193e497bf8..9e7624d9831bfc 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIP9VripXReOH8r3WBnSKcaOT0oO/gkMq4OaHQNQxDcH3oAoGCCqGSM49 -AwEHoUQDQgAEpDwt+kW0zD3D5BsdUW2Y/SS4Th/GddsOOSbTqHv2tpXVR8eiSDNP -aSmOaHP6i7saQWajNuAvfOl3+E+btJpEQQ== +MHcCAQEEIFc/SOW8St+7CaqM2FTvyqEu9HxQbNo80ER3k9Y1UC9aoAoGCCqGSM49 +AwEHoUQDQgAEd0I73ij9u+rxjPbfuQCSZKxdeceAWIE6Kwc2iRRiaX8fipK4ImEV +xLHXcVEfmfIXtUNerbgNHF0nFxhApwJ1ZQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/test_case_vector.json index ab606e6fe8bc9a..714a81ca932a2b 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count100_valid/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The product_id_array field has 100 PID values one of which matches the PID value in DAC.", "is_success_case": "true", - "dac_cert": "308201e33082018aa00302010202080560bf63d9b946ff300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200042f82c94189674e4c220fef6cdbf33e8fab182c8cd88764979af169f8277cba53c2c53d1e486b78247aad4b057a0ad55468645f4e5238eff1f83852c7f79dd07da360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414f7bf5b288233a7d0739603aa12a715a4a6680e6b301f0603551d23041830168014516f3bcdcbb43d1d62f87446ffd1872cd18f5297300a06082a8648ce3d040302034700304402206db078a0aba3115b0c8a1417b68c5f85a30386822d74ac67368df7d09b3ef48a022075ed3ab18cadc5e34a1a8840d52d32687cd55cb14e7af8b3dff9ae5300554f28", - "pai_cert": "308201d53082017aa00302010202084e21e5e51ad91f15300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004a43c2dfa45b4cc3dc3e41b1d516d98fd24b84e1fc675db0e3926d3a87bf6b695d547c7a248334f69298e6873fa8bbb1a4166a336e02f7ce977f84f9bb49a4441a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414516f3bcdcbb43d1d62f87446ffd1872cd18f5297301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100880532f55c10beac873c98b9f5dfb83aaa8f4b809ba9992d48652d11005bda49022100a5c5e15fd567ee01e7d6b450ab26148730b157c602e0bab58bf24ac7d36f6a2f", - "certification_declaration": "3082023206092a864886f70d010702a08202233082021f020103310d300b06096086480165030402013082018b06092a864886f70d010701a082017c04820178152000012501f1ff3602050080050180050280050380050480050580050680050780050880050980050a80050b80050c80050d80050e80050f80051080051180051280051380051480051580051680051780051880051980051a80051b80051c80051d80051e80051f80052080052180052280052380052480052580052680052780052880052980052a80052b80052c80052d80052e80052f80053080053180053280053380053480053580053680053780053880053980053a80053b80053c80053d80053e80053f80054080054180054280054380054480054580054680054780054880054980054a80054b80054c80054d80054e80054f80055080055180055280055380055480055580055680055780055880055980055a80055b80055c80055d80055e80055f8005608005618005628005638018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204463044022042034456051650bbbf94b1ec355b683de8cd706a10f4d8a43cc14b9956a1fc2802202387f753667ed12639d14849f32ad88585c135bffadae3dca623823b7098eaa5", - "dac_private_key": "55c5622e49e973a9e6e86dd76e1ac7dbdfa4c86c5801adc1073001ce9f897ea0", - "dac_public_key": "042f82c94189674e4c220fef6cdbf33e8fab182c8cd88764979af169f8277cba53c2c53d1e486b78247aad4b057a0ad55468645f4e5238eff1f83852c7f79dd07d" + "dac_cert": "308201e43082018aa00302010202082940beaf171c952f300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000410346e4a796e6b750d3f55d0ed9b0db33995794cb240a596db2458475693d0807d3fd6860971a685a77737ebbdbd2033b274894339ad4620fbe31b44261ffb43a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414f5b25279a6f39e15639417e9389f572bb7395cf7301f0603551d23041830168014aa9336b3c2ecea6eb0c907ed16768729c6a4f681300a06082a8648ce3d0403020348003045022100f33a7bad75091df833c374493e7d8e0c59a7878dc09ef6e3374839b85a6053ab022042c8ff17e86475008e1cea4602a8160bf6263621e69fc1ce54980ebc14fb5270", + "pai_cert": "308201d43082017aa003020102020838fe36d02698660f300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000477423bde28fdbbeaf18cf6dfb9009264ac5d79c78058813a2b0736891462697f1f8a92b8226115c4b1d771511f99f217b5435eadb80d1c5d27171840a7027565a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414aa9336b3c2ecea6eb0c907ed16768729c6a4f681301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022063e8219c0bedec55b46f47149f84475ab87ec3b09dbb53e144a03165f83e697a022100de28cdb5ee028662e2fb3941d6602dad24a168e2eeb221a861fdd1ccf881531e", + "certification_declaration": "3082023406092a864886f70d010702a082022530820221020103310d300b06096086480165030402013082018b06092a864886f70d010701a082017c04820178152000012501f1ff3602050080050180050280050380050480050580050680050780050880050980050a80050b80050c80050d80050e80050f80051080051180051280051380051480051580051680051780051880051980051a80051b80051c80051d80051e80051f80052080052180052280052380052480052580052680052780052880052980052a80052b80052c80052d80052e80052f80053080053180053280053380053480053580053680053780053880053980053a80053b80053c80053d80053e80053f80054080054180054280054380054480054580054680054780054880054980054a80054b80054c80054d80054e80054f80055080055180055280055380055480055580055680055780055880055980055a80055b80055c80055d80055e80055f8005608005618005628005638018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100bd4d1f301a93348a0ddbc3dd5e211094f895561c05786d9abe73c0d4761c8e24022100fa3ee82640b34776e7db89775cc8d4f84689406050a0479bae67d87903de625d", + "dac_private_key": "b221e15b1b1024b0ac14f6e711ce5ae0ee653fda28f788fa4c3ebcd5845d73d2", + "dac_public_key": "0410346e4a796e6b750d3f55d0ed9b0db33995794cb240a596db2458475693d0807d3fd6860971a685a77737ebbdbd2033b274894339ad4620fbe31b44261ffb43" } diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/cd.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/cd.der index fce4990937451a..968bc702c62748 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/cd.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/dac-Cert.der index 125f8500bd6438..942b24eb99e673 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/dac-Cert.pem index eaafdddd4b1419..6b00a6ab380735 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB4zCCAYqgAwIBAgIIDW/P6/tLfiEwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5DCCAYqgAwIBAgIIdd/hpoFGflEwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -MjTJB46gDccXixsRZJna9TUV5fZSuzzoNYFN+AR03s9pBkwibIOiCAAr73QX5TXY -wnnyNCj0BPJb1eq2/cAS9aNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFEbOUOLkv0f7+tHuqf7AWYlWGEkBMB8GA1UdIwQYMBaAFCMe -EwHbqPnXNbxu8/+fNfSV/wg6MAoGCCqGSM49BAMCA0cAMEQCIAS2B4EzLoxMClz6 -iTC7yoKFOjHCdkkDVSlMaaEhhUpZAiB+md0E/kNaY4flFQWZ7sIg1PAQHN3A2Exx -oHZr//wacQ== +VslFXMsXyx0oTj+80hh69FCfHDWtK9SmG+WX2+3LoZobmPW+NpLFZ5UomYVXVueb +x9sb7E/3PfoRjzJq+DuQn6NgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFFn2DzSMSDadeoMcA+lWEBdaAO2XMB8GA1UdIwQYMBaAFHOk +QSmm9sKNG4BjfDwxTJVKpwV4MAoGCCqGSM49BAMCA0gAMEUCIGeetvKl8lS9cGR/ +3nDjgH05MAz67b0TLi3Zz3vDTgwGAiEA3ceMpFFRGFyAiP4oQDiwAKShy7HTrdxg +Znnz6iTlD9c= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/dac-Key.der index 4a9f80b0446e97..1472db84152830 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/dac-Key.pem index ca57f553e48f4c..09ce7da1891973 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIBqsVMpqMpGbPNE+dHWHUW1ut7A6o5q2YOAQ1IVpWugkoAoGCCqGSM49 -AwEHoUQDQgAEMjTJB46gDccXixsRZJna9TUV5fZSuzzoNYFN+AR03s9pBkwibIOi -CAAr73QX5TXYwnnyNCj0BPJb1eq2/cAS9Q== +MHcCAQEEIMMmNtM/gsT0DGUM1ajcicF+lW1riZqQQjVr6tD9unUQoAoGCCqGSM49 +AwEHoUQDQgAEVslFXMsXyx0oTj+80hh69FCfHDWtK9SmG+WX2+3LoZobmPW+NpLF +Z5UomYVXVuebx9sb7E/3PfoRjzJq+DuQnw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/pai-Cert.der index 5a45454c40b781..95775b2aa7fa5f 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/pai-Cert.pem index 5380fa721de8b3..1cca97a238cf89 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB0zCCAXqgAwIBAgIIYDkn68zLjzMwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1TCCAXqgAwIBAgIIbOGPY+3gWYwwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQhMGd7bMeVrT02FRtcfsNMgwUtbp+v -59Np+ZpQ73T0tsVowHEPfrgMsY0tYHcCm2Ur627W0C33ZMlPNsYgPyl6o2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUIx4T -Aduo+dc1vG7z/5819JX/CDowHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDRwAwRAIgVUAxdY3CTM/IWhkIBtqL5HMka6VnGhskw0D3 -v7eP4qgCIGDnmOt8Sc+JiIeBJkQjLAkhk0sUOckUS2OERVVSClfX +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS1XNaIIOS/v7TMnAhxOSKiPFlnqJY6 +s22tUYKfyFBXUIK9TNeILZSzJFdtMLcc5mOmyrdOeXHD0bPmiyx5UIECo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUc6RB +Kab2wo0bgGN8PDFMlUqnBXgwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSQAwRgIhAIzKLF9RkPbpHOYTgbEYlMt10MrJG9t/Dj6L +ithQdOzBAiEA7bfTYVT/njOx/PFzjr7SV98bClphWWI5IuyQjy9s7WU= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/pai-Key.der index 73fcbfd757c923..a06acf30392709 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/pai-Key.pem index 1630347e56e918..39c4f68027a12a 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIO6EnMiiW56IaSw/RsoTfZxlClNnF6S0F++jE0xVLrTsoAoGCCqGSM49 -AwEHoUQDQgAEITBne2zHla09NhUbXH7DTIMFLW6fr+fTafmaUO909LbFaMBxD364 -DLGNLWB3AptlK+tu1tAt92TJTzbGID8peg== +MHcCAQEEIGyHHnffjmEkuASt83Pf4uDv9bBoUxuR34chfoIQ+g6LoAoGCCqGSM49 +AwEHoUQDQgAEtVzWiCDkv7+0zJwIcTkiojxZZ6iWOrNtrVGCn8hQV1CCvUzXiC2U +syRXbTC3HOZjpsq3Tnlxw9Gz5osseVCBAg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/test_case_vector.json index d63a05cd8ad98a..48c0a5790a3545 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_mismatch/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The product_id_array field has 10 PID values none of which matches the PID value in DAC.", "is_success_case": "false", - "dac_cert": "308201e33082018aa00302010202080d6fcfebfb4b7e21300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200043234c9078ea00dc7178b1b116499daf53515e5f652bb3ce835814df80474decf69064c226c83a208002bef7417e535d8c279f23428f404f25bd5eab6fdc012f5a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041446ce50e2e4bf47fbfad1eea9fec0598956184901301f0603551d23041830168014231e1301dba8f9d735bc6ef3ff9f35f495ff083a300a06082a8648ce3d0403020347003044022004b60781332e8c4c0a5cfa8930bbca82853a31c276490355294c69a121854a5902207e99dd04fe435a6387e5150599eec220d4f0101cddc0d84c71a0766bfffc1a71", - "pai_cert": "308201d33082017aa0030201020208603927ebcccb8f33300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200042130677b6cc795ad3d36151b5c7ec34c83052d6e9fafe7d369f99a50ef74f4b6c568c0710f7eb80cb18d2d6077029b652beb6ed6d02df764c94f36c6203f297aa366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414231e1301dba8f9d735bc6ef3ff9f35f495ff083a301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203470030440220554031758dc24ccfc85a190806da8be473246ba5671a1b24c340f7bfb78fe2a8022060e798eb7c49cf898887812644232c0921934b1439c9144b63844555520a57d7", - "certification_declaration": "3082011f06092a864886f70d010702a08201103082010c020103310d300b0609608648016503040201307906092a864886f70d010701a06c046a152000012501f1ff3602050180050280050380050480050580050680050780050880050980050a8018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502201a6b5eaa546d38d7cd8c066b685c5c7476573987fbe360980c4cd2b282d2a1a6022100fbc84274280ae6e2425aa6a5d89dc524fa3fbd33dd01ee4de1ae3e33863f323c", - "dac_private_key": "1aac54ca6a32919b3cd13e747587516d6eb7b03aa39ab660e010d485695ae824", - "dac_public_key": "043234c9078ea00dc7178b1b116499daf53515e5f652bb3ce835814df80474decf69064c226c83a208002bef7417e535d8c279f23428f404f25bd5eab6fdc012f5" + "dac_cert": "308201e43082018aa003020102020875dfe1a681467e51300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000456c9455ccb17cb1d284e3fbcd2187af4509f1c35ad2bd4a61be597dbedcba19a1b98f5be3692c567952899855756e79bc7db1bec4ff73dfa118f326af83b909fa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041459f60f348c48369d7a831c03e95610175a00ed97301f0603551d2304183016801473a44129a6f6c28d1b80637c3c314c954aa70578300a06082a8648ce3d04030203480030450220679eb6f2a5f254bd70647fde70e3807d39300cfaedbd132e2dd9cf7bc34e0c06022100ddc78ca45151185c8088fe284038b000a4a1cbb1d3addc606679f3ea24e50fd7", + "pai_cert": "308201d53082017aa00302010202086ce18f63ede0598c300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004b55cd68820e4bfbfb4cc9c08713922a23c5967a8963ab36dad51829fc850575082bd4cd7882d94b324576d30b71ce663a6cab74e7971c3d1b3e68b2c79508102a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041473a44129a6f6c28d1b80637c3c314c954aa70578301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203490030460221008cca2c5f5190f6e91ce61381b11894cb75d0cac91bdb7f0e3e8b8ad85074ecc1022100edb7d36154ff9e33b1fcf1738ebed257df1b0a5a6159623922ec908f2f6ced65", + "certification_declaration": "3082011e06092a864886f70d010702a082010f3082010b020103310d300b0609608648016503040201307906092a864886f70d010701a06c046a152000012501f1ff3602050180050280050380050480050580050680050780050880050980050a8018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402203d38b329272ff8c8fd77dfd4e72b69644883362f6d1b55b15b94e027bda056780220221c16d31dcde97337d7eab24f07a019ff2246328821fe5cecba563c0f69232b", + "dac_private_key": "c32636d33f82c4f40c650cd5a8dc89c17e956d6b899a9042356bead0fdba7510", + "dac_public_key": "0456c9455ccb17cb1d284e3fbcd2187af4509f1c35ad2bd4a61be597dbedcba19a1b98f5be3692c567952899855756e79bc7db1bec4ff73dfa118f326af83b909f" } diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/cd.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/cd.der index 0208f48230c9aa..66ea8e33913732 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/cd.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/dac-Cert.der index f95c3bf24e9f1e..e7bd19a6026722 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/dac-Cert.pem index 2fcccb7057c577..b2265d42f59d9a 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5DCCAYqgAwIBAgIIQs5TRtlQi6AwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB4zCCAYqgAwIBAgIID5rymQC724gwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -XDfAn1SgeE4/WB3Sl689uEbetdZ6ShERmihB1rqwXzjyMSWav4/zRgkBw08XRBSP -iJLYxcocqwf8VUOp407KnKNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFHoTIkuccC2JWtStO3mPPlcMeXMqMB8GA1UdIwQYMBaAFDcs -twTu8rJssObpsHiiqilLm8bYMAoGCCqGSM49BAMCA0gAMEUCIQCX9WysIDGWi0fD -PI0QQKnbsBTql9YWJonpKNQrs8U7ogIgdwNy9lqPIA+lHJ1EkwXFW1HHpSSYF8zD -rX+VYB/rnNM= +Kl9ZstKXeKmh8QwrzksjcXeEXmGvcOiMC2mWcpLjlg6EGPcLK/F/4plRI/U1JCyT +hU98UW+ygYQ4L9VhH6Z+ZaNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFNIQ188Ovm1Q0cQilHEpcg5psjWYMB8GA1UdIwQYMBaAFPdf +d6EMk8ji49JDNwk47EeXSufpMAoGCCqGSM49BAMCA0cAMEQCIASLZ3UqYirWQW0v +OvDc3akOvcwlFzsF0bbX560YuNgpAiBOS5qF5xuZyiT2VCokb8pznHLGsXUUYEs/ +UfJSCIjjfQ== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/dac-Key.der index eb059edc50f1b7..097f1352ed81f0 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/dac-Key.pem index a64613b58edcc5..fd84ef21be1be7 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIP3DpHfIe2QPIeaawRkVT19Rh8iVvuJsVDH982eir8PMoAoGCCqGSM49 -AwEHoUQDQgAEXDfAn1SgeE4/WB3Sl689uEbetdZ6ShERmihB1rqwXzjyMSWav4/z -RgkBw08XRBSPiJLYxcocqwf8VUOp407KnA== +MHcCAQEEIG2LPNOto98L63qpTGXkTcKC5xBfSuJPFkL8w+il6pz9oAoGCCqGSM49 +AwEHoUQDQgAEKl9ZstKXeKmh8QwrzksjcXeEXmGvcOiMC2mWcpLjlg6EGPcLK/F/ +4plRI/U1JCyThU98UW+ygYQ4L9VhH6Z+ZQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/pai-Cert.der index 3754751381f427..ae499fe1c6fbee 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/pai-Cert.pem index 74766ab1894dc8..f06ad86779baf3 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1TCCAXqgAwIBAgIIMAPYAZtS0rEwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB0zCCAXqgAwIBAgIISt9GFWbDYVowCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARjfyGLY+pMTQiI7KCSgSDvWJLmoy+z -bUC0f+IYlVKQwj1apqnaqAapc2+guiD8hhHsF+fix76YRUafuKysMQmko2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUNyy3 -BO7ysmyw5umweKKqKUubxtgwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSQAwRgIhALJ6/i1B4n+WZRczG/NsQpu/Qg7NZxSrRSZa -vOeR/X/qAiEApRgxy9fxXg4q2dT1blwazv4FD5f+vhxwmtZfMU+yjyA= +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAT7vWtMRQJo2r7s/xVP+nngU6JjBsmp +Z7FYzTW7SVwwVu+7MmJTRX+nOw2sQKkIXmn+n9NRcNUaKLAOOIokEkJHo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU9193 +oQyTyOLj0kM3CTjsR5dK5+kwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDRwAwRAIgN0dv8sWuRUnYnIc+pmG6HJRACYVwnamjWW+5 +LBFGKj8CIFCwY42gdkZQpSPRtIibPXpCOMzbMA7lCF1hsRzRcfBJ -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/pai-Key.der index 90f34dafff2bc9..70d2b3de5ef878 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/pai-Key.pem index 7acc7d3afa1c3f..8681158a6fea58 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIFCQM5qIPa5xAP0wZEQKuJEL38uVFU+PuWLWR97f3FrdoAoGCCqGSM49 -AwEHoUQDQgAEY38hi2PqTE0IiOygkoEg71iS5qMvs21AtH/iGJVSkMI9Wqap2qgG -qXNvoLog/IYR7Bfn4se+mEVGn7isrDEJpA== +MHcCAQEEIAJcPXOcjEDfD+Sad36LwkbhP7Wpf/0CTu9JeojV5KTsoAoGCCqGSM49 +AwEHoUQDQgAE+71rTEUCaNq+7P8VT/p54FOiYwbJqWexWM01u0lcMFbvuzJiU0V/ +pzsNrECpCF5p/p/TUXDVGiiwDjiKJBJCRw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/test_case_vector.json index d9cc7002419b65..be7843a18acfce 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_count10_valid/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The product_id_array field has 10 PID values one of which matches the PID value in DAC.", "is_success_case": "true", - "dac_cert": "308201e43082018aa003020102020842ce5346d9508ba0300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200045c37c09f54a0784e3f581dd297af3db846deb5d67a4a11119a2841d6bab05f38f231259abf8ff3460901c34f1744148f8892d8c5ca1cab07fc5543a9e34eca9ca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604147a13224b9c702d895ad4ad3b798f3e570c79732a301f0603551d23041830168014372cb704eef2b26cb0e6e9b078a2aa294b9bc6d8300a06082a8648ce3d040302034800304502210097f56cac2031968b47c33c8d1040a9dbb014ea97d6162689e928d42bb3c53ba20220770372f65a8f200fa51c9d449305c55b51c7a5249817ccc3ad7f95601feb9cd3", - "pai_cert": "308201d53082017aa00302010202083003d8019b52d2b1300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004637f218b63ea4c4d0888eca0928120ef5892e6a32fb36d40b47fe218955290c23d5aa6a9daa806a9736fa0ba20fc8611ec17e7e2c7be9845469fb8acac3109a4a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414372cb704eef2b26cb0e6e9b078a2aa294b9bc6d8301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100b27afe2d41e27f966517331bf36c429bbf420ecd6714ab45265abce791fd7fea022100a51831cbd7f15e0e2ad9d4f56e5c1acefe050f97febe1c709ad65f314fb28f20", - "certification_declaration": "3082011f06092a864886f70d010702a08201103082010c020103310d300b0609608648016503040201307906092a864886f70d010701a06c046a152000012501f1ff360205008005018005028005038005048005058005068005078005088005098018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022073e59b3306940cff0b285a783b2277d7ff2348fe24baba32132ba81bd1b65961022100b74ed8352a2da96a8767c49b8d7678515e31617808ae94f0b9a1ae55b929c0c7", - "dac_private_key": "fdc3a477c87b640f21e69ac119154f5f5187c895bee26c5431fdf367a2afc3cc", - "dac_public_key": "045c37c09f54a0784e3f581dd297af3db846deb5d67a4a11119a2841d6bab05f38f231259abf8ff3460901c34f1744148f8892d8c5ca1cab07fc5543a9e34eca9c" + "dac_cert": "308201e33082018aa00302010202080f9af29900bbdb88300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200042a5f59b2d29778a9a1f10c2bce4b237177845e61af70e88c0b69967292e3960e8418f70b2bf17fe2995123f535242c93854f7c516fb28184382fd5611fa67e65a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414d210d7cf0ebe6d50d1c422947129720e69b23598301f0603551d23041830168014f75f77a10c93c8e2e3d243370938ec47974ae7e9300a06082a8648ce3d04030203470030440220048b67752a622ad6416d2f3af0dcdda90ebdcc25173b05d1b6d7e7ad18b8d82902204e4b9a85e71b99ca24f6542a246fca739c72c6b17514604b3f51f2520888e37d", + "pai_cert": "308201d33082017aa00302010202084adf461566c3615a300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004fbbd6b4c450268dabeecff154ffa79e053a26306c9a967b158cd35bb495c3056efbb326253457fa73b0dac40a9085e69fe9fd35170d51a28b00e388a24124247a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414f75f77a10c93c8e2e3d243370938ec47974ae7e9301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020347003044022037476ff2c5ae4549d89c873ea661ba1c94400985709da9a3596fb92c11462a3f022050b0638da0764650a523d1b4889b3d7a4238ccdb300ee5085d61b11cd171f049", + "certification_declaration": "3082011f06092a864886f70d010702a08201103082010c020103310d300b0609608648016503040201307906092a864886f70d010701a06c046a152000012501f1ff360205008005018005028005038005048005058005068005078005088005098018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450220279ee772fed94f6b82b48f2dd16130a902d4ec2bb8d1b3d9712a48f91efed02e022100c9ba714ba1f2530e8ee49d4a8ce8cabe34c52fca7598f461f4764be0606fbd59", + "dac_private_key": "6d8b3cd3ada3df0beb7aa94c65e44dc282e7105f4ae24f1642fcc3e8a5ea9cfd", + "dac_public_key": "042a5f59b2d29778a9a1f10c2bce4b237177845e61af70e88c0b69967292e3960e8418f70b2bf17fe2995123f535242c93854f7c516fb28184382fd5611fa67e65" } diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_missing/cd.der b/credentials/development/commissioner_dut/struct_cd_pid_array_missing/cd.der index 119ee144c09dc6..cbe968c3033efc 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_missing/cd.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_missing/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_missing/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_pid_array_missing/dac-Cert.der index 5fedf783c8aa7b..025a61e9e55218 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_missing/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_missing/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_missing/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_pid_array_missing/dac-Cert.pem index fd2a6af632714d..5090e20f80a13e 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_missing/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_missing/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5DCCAYqgAwIBAgIIfBaRBm3gh5MwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5DCCAYqgAwIBAgIICMfC1tClixEwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -8NPOXi0IXMvWhagJLoqZAp5+dDsz19qITOXILNuFzlUnhrfbQv/50aIR64nqv7Mz -mppO8QfGuJ+AZKoX0IX/n6NgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFNYGOBZ8MpaTrD/Caz5k0Of14PeTMB8GA1UdIwQYMBaAFDFz -y6X6ycIiO+rlQm7Omy/lZWs+MAoGCCqGSM49BAMCA0gAMEUCIE098BPWqvGPBv5o -OfjbdrdJOyXD/avlXitY69HDOVIhAiEA3VYeVkGi2BV/HbegeYXe7GhIEWDegKOj -AjfPAz/tPbQ= +TYDm9E12N+b00xMBGW3mNh2w5fHM0Q0Cxf3lTBPBBqUY6rBZ7saTM8HRWe2bps+r +zZbESdTb03LsO77UdFsOhaNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFOhLlp4xBCd8CiXsL9LgFM9sq7xQMB8GA1UdIwQYMBaAFDB1 +gVp3d5YkrAZJtoIULEIUVk19MAoGCCqGSM49BAMCA0gAMEUCIF/mNcmOFTdcnAKH +2rqdCeiRDrkU6huWlShRsOQ6Na0lAiEAl6kEtE6QthZyYm+bsPq2DlSAQGHlulhz +FXmdlb4qKbg= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_missing/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_pid_array_missing/dac-Key.der index 2eb2b321ae75d2..7ac88a6882181d 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_missing/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_missing/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_missing/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_pid_array_missing/dac-Key.pem index 46a7a13a7e0e1e..1155c901cb7a46 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_missing/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_missing/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIDwsI9AuyproByYy/KQvNV62P2OzY7E49qtH6MxhBPLroAoGCCqGSM49 -AwEHoUQDQgAE8NPOXi0IXMvWhagJLoqZAp5+dDsz19qITOXILNuFzlUnhrfbQv/5 -0aIR64nqv7MzmppO8QfGuJ+AZKoX0IX/nw== +MHcCAQEEIEhh4VsccqiA3Zp27h5LDxhPtUxmlOmiIy+cwHxqcS60oAoGCCqGSM49 +AwEHoUQDQgAETYDm9E12N+b00xMBGW3mNh2w5fHM0Q0Cxf3lTBPBBqUY6rBZ7saT +M8HRWe2bps+rzZbESdTb03LsO77UdFsOhQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_missing/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_pid_array_missing/pai-Cert.der index 3de287053f2fcf..d441ee934f9721 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_missing/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_missing/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_missing/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_pid_array_missing/pai-Cert.pem index 9f3df97174caee..6ac58ee3b781b1 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_missing/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_missing/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIW6ea2CHad4IwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB0zCCAXqgAwIBAgIIMY5vvanUmVowCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQekHc7791XHA2L59J0TqNNG5fvBEIa -SPFM+bci5HtkuD/Uik4CCIsu4jlZ0Azw90m/0MNVcGLdefbMdd9Z0RC2o2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUMXPL -pfrJwiI76uVCbs6bL+Vlaz4wHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIhAKUshZwnLBAmGmelZL8sf+qXu65U6S1W1BZY -GaufCjvjAiBpWt7xSgMtRVqWEdUYYGMl3kCkXeHFsDenqo7e+FztkQ== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATN3SFe8aCtSSzLO35WRLw4nN2GkK5d +JMFb+PHDjxtZxSjgjqWCxy43Xwt0TsZVeUhsgp45PYDPVxZG6x8p1DXzo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUMHWB +Wnd3liSsBkm2ghQsQhRWTX0wHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDRwAwRAIgRY2QpWeE3fcUo2s1ICtUnh5WGO38IDXfMFuG +3pa1BGYCIDgJ0pcVWqnq2jSrs4M1T/dCVFMWnNSTUT9VJ4NHtJ01 -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_missing/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_pid_array_missing/pai-Key.der index 88fc9e6dab3d45..19b4581b7baccc 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_pid_array_missing/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_pid_array_missing/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_missing/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_pid_array_missing/pai-Key.pem index 46eb666770587e..b724bc64c7ea5c 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_missing/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_missing/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIJgDemzgsb39rnsPaIdNpuKZJ+nIwgJqyWpP0QS4++yZoAoGCCqGSM49 -AwEHoUQDQgAEHpB3O+/dVxwNi+fSdE6jTRuX7wRCGkjxTPm3IuR7ZLg/1IpOAgiL -LuI5WdAM8PdJv9DDVXBi3Xn2zHXfWdEQtg== +MHcCAQEEIAiRCMeYrn6/O4n2CVP4vvrc0s4Ec8SJhoBaXSyQmKtEoAoGCCqGSM49 +AwEHoUQDQgAEzd0hXvGgrUksyzt+VkS8OJzdhpCuXSTBW/jxw48bWcUo4I6lgscu +N18LdE7GVXlIbIKeOT2Az1cWRusfKdQ18w== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_pid_array_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_pid_array_missing/test_case_vector.json index 1c36b45178f581..e4c8f3d27ad77a 100644 --- a/credentials/development/commissioner_dut/struct_cd_pid_array_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_pid_array_missing/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The product_id_array field is missing.", "is_success_case": "false", - "dac_cert": "308201e43082018aa00302010202087c1691066de08793300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004f0d3ce5e2d085ccbd685a8092e8a99029e7e743b33d7da884ce5c82cdb85ce552786b7db42fff9d1a211eb89eabfb3339a9a4ef107c6b89f8064aa17d085ff9fa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414d60638167c329693ac3fc26b3e64d0e7f5e0f793301f0603551d230418301680143173cba5fac9c2223beae5426ece9b2fe5656b3e300a06082a8648ce3d040302034800304502204d3df013d6aaf18f06fe6839f8db76b7493b25c3fdabe55e2b58ebd1c3395221022100dd561e5641a2d8157f1db7a07985deec68481160de80a3a30237cf033fed3db4", - "pai_cert": "308201d43082017aa00302010202085ba79ad821da7782300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200041e90773befdd571c0d8be7d2744ea34d1b97ef04421a48f14cf9b722e47b64b83fd48a4e02088b2ee23959d00cf0f749bfd0c3557062dd79f6cc75df59d110b6a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604143173cba5fac9c2223beae5426ece9b2fe5656b3e301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100a52c859c272c10261a67a564bf2c7fea97bbae54e92d56d4165819ab9f0a3be30220695adef14a032d455a9611d518606325de40a45de1c5b037a7aa8edef85ced91", - "certification_declaration": "3081fc06092a864886f70d010702a081ee3081eb020103310d300b0609608648016503040201305806092a864886f70d010701a04b0449152000012501f1ff250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502205f14e817bb8227d694873778a858f9323dddc253dd57bc679c0e5e2d17dcf4770221009c45aadec12394c7a143c1b98ff7f0aa6e953a1cfd4fe5d8f945e8c8f1b14321", - "dac_private_key": "3c2c23d02eca9ae8072632fca42f355eb63f63b363b138f6ab47e8cc6104f2eb", - "dac_public_key": "04f0d3ce5e2d085ccbd685a8092e8a99029e7e743b33d7da884ce5c82cdb85ce552786b7db42fff9d1a211eb89eabfb3339a9a4ef107c6b89f8064aa17d085ff9f" + "dac_cert": "308201e43082018aa003020102020808c7c2d6d0a58b11300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200044d80e6f44d7637e6f4d31301196de6361db0e5f1ccd10d02c5fde54c13c106a518eab059eec69333c1d159ed9ba6cfabcd96c449d4dbd372ec3bbed4745b0e85a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414e84b969e3104277c0a25ec2fd2e014cf6cabbc50301f0603551d230418301680143075815a77779624ac0649b682142c4214564d7d300a06082a8648ce3d040302034800304502205fe635c98e15375c9c0287daba9d09e8910eb914ea1b96952851b0e43a35ad2502210097a904b44e90b61672626f9bb0fab60e54804061e5ba587315799d95be2a29b8", + "pai_cert": "308201d33082017aa0030201020208318e6fbda9d4995a300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004cddd215ef1a0ad492ccb3b7e5644bc389cdd8690ae5d24c15bf8f1c38f1b59c528e08ea582c72e375f0b744ec65579486c829e393d80cf571646eb1f29d435f3a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604143075815a77779624ac0649b682142c4214564d7d301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203470030440220458d90a56784ddf714a36b35202b549e1e5618edfc2035df305b86de96b5046602203809d297155aa9eada34abb383354ff7425453169cd493513f55278347b49d35", + "certification_declaration": "3081fc06092a864886f70d010702a081ee3081eb020103310d300b0609608648016503040201305806092a864886f70d010701a04b0449152000012501f1ff250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502207bc399d97e81bf2edd52b123e061510c2d8609382c0df0b105321fde35ad7886022100c0b3945714ea5a57afad9abef787345be01b3af75ed028b94ef5bcb510b8d2b7", + "dac_private_key": "4861e15b1c72a880dd9a76ee1e4b0f184fb54c6694e9a2232f9cc07c6a712eb4", + "dac_public_key": "044d80e6f44d7637e6f4d31301196de6361db0e5f1ccd10d02c5fde54c13c106a518eab059eec69333c1d159ed9ba6cfabcd96c449d4dbd372ec3bbed4745b0e85" } diff --git a/credentials/development/commissioner_dut/struct_cd_security_info_missing/cd.der b/credentials/development/commissioner_dut/struct_cd_security_info_missing/cd.der index 2284f23596e803..262f81196ca656 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_security_info_missing/cd.der and b/credentials/development/commissioner_dut/struct_cd_security_info_missing/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_security_info_missing/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_security_info_missing/dac-Cert.der index 0c8efbff7ebb79..5651de1347e3e3 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_security_info_missing/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_security_info_missing/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_security_info_missing/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_security_info_missing/dac-Cert.pem index 56dc334b58cf5d..c69896ae810ff3 100644 --- a/credentials/development/commissioner_dut/struct_cd_security_info_missing/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_security_info_missing/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5DCCAYqgAwIBAgIIe/FfAa+8L2swCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5TCCAYqgAwIBAgIINkgq+3kzXlEwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -MOtQ1FBsDIiIs2m5f/i44GLmyskM/Cr66uM5jkgyWmm4oprnFn6fL/rIj2dt8yN3 -Mh64T/eJrxdWcEr91T7NIKNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFGVde9k4V7SCSks/rf+lFAIAKL6aMB8GA1UdIwQYMBaAFLlg -t2bT8ytLvgqNgG8hRMnlbsoqMAoGCCqGSM49BAMCA0gAMEUCIQDMiDcAi6AgFS9Y -hauVpk5luOCi5sn57DUw12ls+J4anQIgDndbMOh8Ae4bick2PVUk0okh6eminiG8 -2aHxZHtk6eM= +PWQPXR4Aoi4zCl0HZuuZFI2lFyWJOdTV3fQsmc5zb0B879vXuS8h68+GVsUsguB0 +sD2NW7KwP9YON+XwyH6FCKNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFNYgvu2nrsdyuPzMnP5EggQSTgaDMB8GA1UdIwQYMBaAFGol +yH3xUpQZnfeOPTbHjpFmMUKsMAoGCCqGSM49BAMCA0kAMEYCIQCoc72c0vWxxmaH +Rk2DR2TR1ugyB8zCZ5oTHDD/EI3VSwIhAJCpBgeiRiN1wm9cM9giizUWme12dvrV +GfcCjj91lJYk -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_security_info_missing/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_security_info_missing/dac-Key.der index 2447cd5e9b2e6f..6c833a1623a51c 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_security_info_missing/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_security_info_missing/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_security_info_missing/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_security_info_missing/dac-Key.pem index 13e7f6eb83c7bb..c88a69fbe4945f 100644 --- a/credentials/development/commissioner_dut/struct_cd_security_info_missing/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_security_info_missing/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIMebWfnqOWtPiN9Xu9IsdxA/8wy5AXXekMYAfne0JQmhoAoGCCqGSM49 -AwEHoUQDQgAEMOtQ1FBsDIiIs2m5f/i44GLmyskM/Cr66uM5jkgyWmm4oprnFn6f -L/rIj2dt8yN3Mh64T/eJrxdWcEr91T7NIA== +MHcCAQEEILYOAwiQ90NNo3utsfK4CXDJXBaCDP0FtzhdetGpmEHYoAoGCCqGSM49 +AwEHoUQDQgAEPWQPXR4Aoi4zCl0HZuuZFI2lFyWJOdTV3fQsmc5zb0B879vXuS8h +68+GVsUsguB0sD2NW7KwP9YON+XwyH6FCA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_security_info_missing/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_security_info_missing/pai-Cert.der index 67569132f1ac54..aa4ad0463d4e6a 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_security_info_missing/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_security_info_missing/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_security_info_missing/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_security_info_missing/pai-Cert.pem index 2ebeacf8a5c91e..734657be29cc0f 100644 --- a/credentials/development/commissioner_dut/struct_cd_security_info_missing/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_security_info_missing/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIbjVFTleEe8wwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB0zCCAXqgAwIBAgIIcqi0cRy/dGswCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARYf0gAXoSbMDIbFWJ0+Ki6sf7DuNGV -4dO0lWht9CgzhJUm8MWxEqGfAsWPfJssf2TlUPuBWizMvh/B7PiD4BWco2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUuWC3 -ZtPzK0u+Co2AbyFEyeVuyiowHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIgBG6NY06TxuGvs+m4fnXixWlKgw5ZkhX97mCb -+cFjKLkCIQCtPK9xwOSI6nJyuB9P+NLylOr+MrUwr9O0p33HmB4hRg== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATY9Jk5ELR8Pz2EezIfe10choDhDy6M +1KFJgisorM7DMD0EcXiW5GdlD2b4iS7E1KWO6SKzIxoOD6Od7nH9ciioo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUaiXI +ffFSlBmd9449NseOkWYxQqwwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDRwAwRAIgR66WUV5/zgshaKrquy5lJ/I756xIyTG/k4AK +F5nv97UCIDaNxJCLJVpmZjSav4uDr8W5aMiJS0Xl8KXuTFd9FVon -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_security_info_missing/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_security_info_missing/pai-Key.der index 17bd2f340e9c33..53fc3b1d9a9984 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_security_info_missing/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_security_info_missing/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_security_info_missing/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_security_info_missing/pai-Key.pem index dbf024fbe7fb84..083104fbb519c3 100644 --- a/credentials/development/commissioner_dut/struct_cd_security_info_missing/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_security_info_missing/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIEJ0og2fJJ4O71BJMyXlrELO9A300IHSDg6qgEM+syfsoAoGCCqGSM49 -AwEHoUQDQgAEWH9IAF6EmzAyGxVidPiourH+w7jRleHTtJVobfQoM4SVJvDFsRKh -nwLFj3ybLH9k5VD7gVoszL4fwez4g+AVnA== +MHcCAQEEIO2SX/jJBTl3eehl5OnCq7O5IiljiCM0jvRM5Zo2FEVhoAoGCCqGSM49 +AwEHoUQDQgAE2PSZORC0fD89hHsyH3tdHIaA4Q8ujNShSYIrKKzOwzA9BHF4luRn +ZQ9m+IkuxNSljukisyMaDg+jne5x/XIoqA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_security_info_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_security_info_missing/test_case_vector.json index 339114c56dfc8e..db7c8949cacb95 100644 --- a/credentials/development/commissioner_dut/struct_cd_security_info_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_security_info_missing/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The security_information field is missing.", "is_success_case": "false", - "dac_cert": "308201e43082018aa00302010202087bf15f01afbc2f6b300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000430eb50d4506c0c8888b369b97ff8b8e062e6cac90cfc2afaeae3398e48325a69b8a29ae7167e9f2ffac88f676df32377321eb84ff789af1756704afdd53ecd20a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414655d7bd93857b4824a4b3fadffa514020028be9a301f0603551d23041830168014b960b766d3f32b4bbe0a8d806f2144c9e56eca2a300a06082a8648ce3d0403020348003045022100cc8837008ba020152f5885ab95a64e65b8e0a2e6c9f9ec3530d7696cf89e1a9d02200e775b30e87c01ee1b89c9363d5524d28921e9e9a29e21bcd9a1f1647b64e9e3", - "pai_cert": "308201d43082017aa00302010202086e35454e57847bcc300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004587f48005e849b30321b156274f8a8bab1fec3b8d195e1d3b495686df42833849526f0c5b112a19f02c58f7c9b2c7f64e550fb815a2cccbe1fc1ecf883e0159ca366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414b960b766d3f32b4bbe0a8d806f2144c9e56eca2a301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203480030450220046e8d634e93c6e1afb3e9b87e75e2c5694a830e599215fdee609bf9c16328b9022100ad3caf71c0e488ea7272b81f4ff8d2f294eafe32b530afd3b4a77dc7981e2146", - "certification_declaration": "3081ff06092a864886f70d010702a081f13081ee020103310d300b0609608648016503040201305b06092a864886f70d010701a04e044c152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100ef62ce9b1b401f6a535184b8f1c8092549ccf01e8653e58760ef2834d764c785022038afb77b661d2a7a9bc63e9e79137a4b19c5efad2f34a6bd78526573084248c0", - "dac_private_key": "c79b59f9ea396b4f88df57bbd22c77103ff30cb90175de90c6007e77b42509a1", - "dac_public_key": "0430eb50d4506c0c8888b369b97ff8b8e062e6cac90cfc2afaeae3398e48325a69b8a29ae7167e9f2ffac88f676df32377321eb84ff789af1756704afdd53ecd20" + "dac_cert": "308201e53082018aa003020102020836482afb79335e51300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200043d640f5d1e00a22e330a5d0766eb99148da517258939d4d5ddf42c99ce736f407cefdbd7b92f21ebcf8656c52c82e074b03d8d5bb2b03fd60e37e5f0c87e8508a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414d620beeda7aec772b8fccc9cfe448204124e0683301f0603551d230418301680146a25c87df15294199df78e3d36c78e91663142ac300a06082a8648ce3d0403020349003046022100a873bd9cd2f5b1c66687464d834764d1d6e83207ccc2679a131c30ff108dd54b02210090a90607a2462375c26f5c33d8228b351699ed7676fad519f7028e3f75949624", + "pai_cert": "308201d33082017aa003020102020872a8b4711cbf746b300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004d8f4993910b47c3f3d847b321f7b5d1c8680e10f2e8cd4a149822b28accec3303d04717896e467650f66f8892ec4d4a58ee922b3231a0e0fa39dee71fd7228a8a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604146a25c87df15294199df78e3d36c78e91663142ac301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020347003044022047ae96515e7fce0b2168aaeabb2e6527f23be7ac48c931bf93800a1799eff7b50220368dc4908b255a6666349abf8b83afc5b968c8894b45e5f0a5ee4c577d155a27", + "certification_declaration": "3081ff06092a864886f70d010702a081f13081ee020103310d300b0609608648016503040201305b06092a864886f70d010701a04e044c152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022037d8e948fc8bba52507f628a75038db9c50ff7f1f1d2d8c04f4e4b12c7dbaccb022100f2da2ba38820d85f1adde06b766d11e4fecb358c7cf4522a72a404279cf8290e", + "dac_private_key": "b60e030890f7434da37badb1f2b80970c95c16820cfd05b7385d7ad1a99841d8", + "dac_public_key": "043d640f5d1e00a22e330a5d0766eb99148da517258939d4d5ddf42c99ce736f407cefdbd7b92f21ebcf8656c52c82e074b03d8d5bb2b03fd60e37e5f0c87e8508" } diff --git a/credentials/development/commissioner_dut/struct_cd_security_info_wrong/cd.der b/credentials/development/commissioner_dut/struct_cd_security_info_wrong/cd.der index b2c9a93764cc47..e7c193f3f35766 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_security_info_wrong/cd.der and b/credentials/development/commissioner_dut/struct_cd_security_info_wrong/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_security_info_wrong/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_security_info_wrong/dac-Cert.der index da4ba19d673e6c..56525c6e436896 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_security_info_wrong/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_security_info_wrong/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_security_info_wrong/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_security_info_wrong/dac-Cert.pem index c59eb484dc749f..9379781737b56e 100644 --- a/credentials/development/commissioner_dut/struct_cd_security_info_wrong/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_security_info_wrong/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB4zCCAYqgAwIBAgIIXWF8uidLHHgwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5DCCAYqgAwIBAgIIZB50ywoitc8wCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -fVaINndxkCEFoq78yCBtRDjyh34K1VR6GJ98Oeb7jS2cNmT5KL/QiGWJxDXaBd09 -kkHFBoi+t5IDt+dYSFbyIqNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFBijnEQzWDIt6bZVX5CQcQcZsAVlMB8GA1UdIwQYMBaAFIko -6Hw1WCk3RLuT7OcMxg8VShWDMAoGCCqGSM49BAMCA0cAMEQCIDt4lbW6TSRjMs1q -2IXlWBroLGbcMtzgoj6NAH00IN8dAiBaVk5cgAWztz5hvH3nnUv6oZet9ag7I2IW -+IFgwCc3Yw== +9HwXYG4H8oKW1KWZJaHBnR4f8Z5EgPOW5Z+qvSs9JWOOWRvpKnG08YelO9neAqa0 +ABgi2OdoTQaAEATdYBSqTaNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFKXELYAygaUtUCTcxSExn98fM+ndMB8GA1UdIwQYMBaAFG7C +vbCZOGdvJLPuDtPG41FWU+YdMAoGCCqGSM49BAMCA0gAMEUCIBt0iroUPvZ3jjjq +OiVEQ4lssd92AkYYeYPKoAKXdL8iAiEA7VgOqYNsvlsSzzGmowYkYgcwKnfWFRq0 +d6I9mAWcyDM= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_security_info_wrong/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_security_info_wrong/dac-Key.der index ae9cb1eed03c2a..130f962702f969 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_security_info_wrong/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_security_info_wrong/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_security_info_wrong/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_security_info_wrong/dac-Key.pem index c1ecce33a3a4e6..9a6f269f1b9655 100644 --- a/credentials/development/commissioner_dut/struct_cd_security_info_wrong/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_security_info_wrong/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIGzK5Utqhn2xf7S49G84gS1ntecK0M7oCJ1nJh1x4IZyoAoGCCqGSM49 -AwEHoUQDQgAEfVaINndxkCEFoq78yCBtRDjyh34K1VR6GJ98Oeb7jS2cNmT5KL/Q -iGWJxDXaBd09kkHFBoi+t5IDt+dYSFbyIg== +MHcCAQEEIOPfxG36Irs4ginNkhObDyzVLc7vd2UA/f12TKz06oDXoAoGCCqGSM49 +AwEHoUQDQgAE9HwXYG4H8oKW1KWZJaHBnR4f8Z5EgPOW5Z+qvSs9JWOOWRvpKnG0 +8YelO9neAqa0ABgi2OdoTQaAEATdYBSqTQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_security_info_wrong/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_security_info_wrong/pai-Cert.der index 0544523e4f359d..d3599a8dbfe461 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_security_info_wrong/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_security_info_wrong/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_security_info_wrong/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_security_info_wrong/pai-Cert.pem index 52e794e4c15987..5ae97e84f5a34e 100644 --- a/credentials/development/commissioner_dut/struct_cd_security_info_wrong/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_security_info_wrong/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIEYWE6iUMvhMwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1DCCAXqgAwIBAgIIfrIeuBrz6rgwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARXQNNxugc+OMxaHVAwhnhHGdWBWUw5 -+2cu2zEwCgR9wqJix05G5fLrbXZzi0oqHuns1mzo33IuQ/wrBXprr3PQo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUiSjo -fDVYKTdEu5Ps5wzGDxVKFYMwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIhAKV6+TVpoC9Oz1Fjff1QQbHm6ew76vhjC3Xt -0YW296UxAiBbNPFWGZuwCcpqqECy1DctbPasnh3Cqv9NKr9BJl3CBQ== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQjV4YSa9pzPuQpruZiyodPax1mlbXF +xun1JX7SMQQDSvvO9waINqJ2vCXufAOkx8Bhfa5QDINRxvvldwcG9f1no2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUbsK9 +sJk4Z28ks+4O08bjUVZT5h0wHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIgByivYbeBkHu8MQ/Bn9JFaWDJiZQMJfZ25xHE +7VMKfPoCIQCrmaBG2GNsfyatvrU9XD0SEDfStltLzO++0X3R/CspJg== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_security_info_wrong/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_security_info_wrong/pai-Key.der index 1efa0f2842c893..2444b092f7baee 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_security_info_wrong/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_security_info_wrong/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_security_info_wrong/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_security_info_wrong/pai-Key.pem index a1501868787f7c..5acad2f155f187 100644 --- a/credentials/development/commissioner_dut/struct_cd_security_info_wrong/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_security_info_wrong/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIJ7b+BlFK4Vt7PLGpkQeG4eqyATmjbiaiFgqIqKYrSKroAoGCCqGSM49 -AwEHoUQDQgAEV0DTcboHPjjMWh1QMIZ4RxnVgVlMOftnLtsxMAoEfcKiYsdORuXy -6212c4tKKh7p7NZs6N9yLkP8KwV6a69z0A== +MHcCAQEEIHoVAnU8pQfZMQZrsFWbwvhVSaB0NpN4pShpiRFIz0nWoAoGCCqGSM49 +AwEHoUQDQgAEI1eGEmvacz7kKa7mYsqHT2sdZpW1xcbp9SV+0jEEA0r7zvcGiDai +drwl7nwDpMfAYX2uUAyDUcb75XcHBvX9Zw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_security_info_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_security_info_wrong/test_case_vector.json index 2d6070993cbcde..43c5eb7108cc8a 100644 --- a/credentials/development/commissioner_dut/struct_cd_security_info_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_security_info_wrong/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The security_information field is set to invalid value (different from 0).", "is_success_case": "false", - "dac_cert": "308201e33082018aa00302010202085d617cba274b1c78300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200047d5688367771902105a2aefcc8206d4438f2877e0ad5547a189f7c39e6fb8d2d9c3664f928bfd0886589c435da05dd3d9241c50688beb79203b7e7584856f222a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041418a39c443358322de9b6555f9090710719b00565301f0603551d230418301680148928e87c3558293744bb93ece70cc60f154a1583300a06082a8648ce3d040302034700304402203b7895b5ba4d246332cd6ad885e5581ae82c66dc32dce0a23e8d007d3420df1d02205a564e5c8005b3b73e61bc7de79d4bfaa197adf5a83b236216f88160c0273763", - "pai_cert": "308201d43082017aa0030201020208118584ea250cbe13300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200045740d371ba073e38cc5a1d503086784719d581594c39fb672edb31300a047dc2a262c74e46e5f2eb6d76738b4a2a1ee9ecd66ce8df722e43fc2b057a6baf73d0a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604148928e87c3558293744bb93ece70cc60f154a1583301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100a57af93569a02f4ecf51637dfd5041b1e6e9ec3beaf8630b75edd185b6f7a53102205b34f156199bb009ca6aa840b2d4372d6cf6ac9e1dc2aaff4d2abf41265dc205", - "certification_declaration": "3082010406092a864886f70d010702a081f63081f3020103310d300b0609608648016503040201305f06092a864886f70d010701a0520450152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002506ffff25077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100b4c6186ac89197f89081ccbf9a070f9d399e9b506a52af397181b27bc6ad4e4e022100a5f9d2fb3d6a6f7a7a4fc1e1d82281e1ce87f1b78eec1fe0ce35d223cc498434", - "dac_private_key": "6ccae54b6a867db17fb4b8f46f38812d67b5e70ad0cee8089d67261d71e08672", - "dac_public_key": "047d5688367771902105a2aefcc8206d4438f2877e0ad5547a189f7c39e6fb8d2d9c3664f928bfd0886589c435da05dd3d9241c50688beb79203b7e7584856f222" + "dac_cert": "308201e43082018aa0030201020208641e74cb0a22b5cf300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004f47c17606e07f28296d4a59925a1c19d1e1ff19e4480f396e59faabd2b3d25638e591be92a71b4f187a53bd9de02a6b4001822d8e7684d06801004dd6014aa4da360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414a5c42d803281a52d5024dcc521319fdf1f33e9dd301f0603551d230418301680146ec2bdb09938676f24b3ee0ed3c6e3515653e61d300a06082a8648ce3d040302034800304502201b748aba143ef6778e38ea3a254443896cb1df760246187983caa0029774bf22022100ed580ea9836cbe5b12cf31a6a306246207302a77d6151ab477a23d98059cc833", + "pai_cert": "308201d43082017aa00302010202087eb21eb81af3eab8300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004235786126bda733ee429aee662ca874f6b1d6695b5c5c6e9f5257ed23104034afbcef7068836a276bc25ee7c03a4c7c0617dae500c8351c6fbe5770706f5fd67a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604146ec2bdb09938676f24b3ee0ed3c6e3515653e61d301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502200728af61b781907bbc310fc19fd2456960c989940c25f676e711c4ed530a7cfa022100ab99a046d8636c7f26adbeb53d5c3d121037d2b65b4bccefbed17dd1fc2b2926", + "certification_declaration": "3082010206092a864886f70d010702a081f43081f1020103310d300b0609608648016503040201305f06092a864886f70d010701a0520450152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002506ffff25077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204463044022045fc06db9dbb804d9022c24d5def82b310f35ace521b235a1a6e52148a115dc7022052d30b75dc7f38862a393c552d5599a0728254799c373ea096e92c8ce7bd6c7b", + "dac_private_key": "e3dfc46dfa22bb388229cd92139b0f2cd52dceef776500fdfd764cacf4ea80d7", + "dac_public_key": "04f47c17606e07f28296d4a59925a1c19d1e1ff19e4480f396e59faabd2b3d25638e591be92a71b4f187a53bd9de02a6b4001822d8e7684d06801004dd6014aa4d" } diff --git a/credentials/development/commissioner_dut/struct_cd_security_level_missing/cd.der b/credentials/development/commissioner_dut/struct_cd_security_level_missing/cd.der index b7a7a4546af80b..e1a434536d7ae4 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_security_level_missing/cd.der and b/credentials/development/commissioner_dut/struct_cd_security_level_missing/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_security_level_missing/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_security_level_missing/dac-Cert.der index b8df4f23852da8..1aa19f316a16c6 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_security_level_missing/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_security_level_missing/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_security_level_missing/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_security_level_missing/dac-Cert.pem index 62a993f6f6ed96..653b8225a74e51 100644 --- a/credentials/development/commissioner_dut/struct_cd_security_level_missing/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_security_level_missing/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB4zCCAYqgAwIBAgIIE2lW9dSOCXEwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB4zCCAYqgAwIBAgIIXh5/Ha07pBAwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -t5w8YXkiv5/tiNjumN3Q2PY6dfst1MvY6XhFlB1omARO9HmjBAUWrTWxtzFT7OSw -96KpPz4yo2cBpA5B9UPi5qNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFIpcc3gGYiwljvCC4W68JVrE8QB4MB8GA1UdIwQYMBaAFEOF -v5XccWakz5c28Zzn5w8bgDDEMAoGCCqGSM49BAMCA0cAMEQCIF8t+V/oDRZfW9Mj -rWgFaD0G2Md1swAHtGG1/35bUcTsAiAnvb/PGzp/k92onwkSW8LiYhWDakKigMMo -+Oxd29vNUQ== +fF6w6DEECgHiIO9pWs+lNoHy7B1/SO0GMxb1mxbMCgCceDYJzK1cJqhlEW6AjsQN +Iirbw/+51tCo0cSOum+DJqNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFA4llNWmTNxndpKnVV3vfRhrJ+60MB8GA1UdIwQYMBaAFIl3 +tYgFLXkvMakUd+AcmeFaqgtTMAoGCCqGSM49BAMCA0cAMEQCIHjetx0CpYtZWuO3 +sWTHoxZ+klzxr8ivH6nqJ7QQYEOzAiBY1BaT/rhHBvzQHFkHjsL+3kE6ITTYlO7E +xDE1gjRJUg== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_security_level_missing/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_security_level_missing/dac-Key.der index 79001453f83ee5..136fd6dadbd5ee 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_security_level_missing/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_security_level_missing/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_security_level_missing/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_security_level_missing/dac-Key.pem index 60cc1af93d6dfa..273e24b8d7cc92 100644 --- a/credentials/development/commissioner_dut/struct_cd_security_level_missing/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_security_level_missing/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIDB/06T71jm3TIkm+Ens9myN7rHx284jQAYRSeYQKEm3oAoGCCqGSM49 -AwEHoUQDQgAEt5w8YXkiv5/tiNjumN3Q2PY6dfst1MvY6XhFlB1omARO9HmjBAUW -rTWxtzFT7OSw96KpPz4yo2cBpA5B9UPi5g== +MHcCAQEEILlxd46H+FOm9nf/SS06wx523Q5GIHCQVutRUbBXNsepoAoGCCqGSM49 +AwEHoUQDQgAEfF6w6DEECgHiIO9pWs+lNoHy7B1/SO0GMxb1mxbMCgCceDYJzK1c +JqhlEW6AjsQNIirbw/+51tCo0cSOum+DJg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_security_level_missing/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_security_level_missing/pai-Cert.der index a99a06f8655310..adb808991e31a6 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_security_level_missing/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_security_level_missing/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_security_level_missing/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_security_level_missing/pai-Cert.pem index e133bed25cd9e9..fc8c8348655839 100644 --- a/credentials/development/commissioner_dut/struct_cd_security_level_missing/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_security_level_missing/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1TCCAXqgAwIBAgIIZc+RSNNs1g0wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1DCCAXqgAwIBAgIITgos/G5jHqkwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ2PvNC80HpuxlqJR0iTxdB9ccsQlS1 -4sY+PYvM3pRZPl30BJdIgK1Eyet2kkcb3J2nkV+tbCzMLyR3uBEbaWKro2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUQ4W/ -ldxxZqTPlzbxnOfnDxuAMMQwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSQAwRgIhAOzPUazq0/KGaRcbM9ree1fSm5cysifxQlrh -jHVWmRkyAiEAkNim1tWp0OCJCQVBMHStRfytLvUiQEhmSUn3vQk9KuM= +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARywNeUxPbZOw5TL8LLiHqDdL+hrUQk +x/t+H9E6mtO7BTSDtcASBofhU5uVGzY1ptzeh1qw5GNGbAEeW8KA7qZdo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUiXe1 +iAUteS8xqRR34ByZ4VqqC1MwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIhAI6KfO44RhCQfcjvCJbg6PXZWqlfIQ92S5kf +dGD9+IbBAiA3G5TZdZG5GYbYkOm5vzXRMCGv/m9fLmOUgEwd9CjKkg== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_security_level_missing/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_security_level_missing/pai-Key.der index d6373a4dbdfbe7..6d16570f322bf6 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_security_level_missing/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_security_level_missing/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_security_level_missing/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_security_level_missing/pai-Key.pem index a94c627c37b487..922bec5b3b5fd8 100644 --- a/credentials/development/commissioner_dut/struct_cd_security_level_missing/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_security_level_missing/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIMczwDpRkOwfuVdXXo2KX1mI2Xi9b18kw6N3bjrVrrbeoAoGCCqGSM49 -AwEHoUQDQgAENj7zQvNB6bsZaiUdIk8XQfXHLEJUteLGPj2LzN6UWT5d9ASXSICt -RMnrdpJHG9ydp5FfrWwszC8kd7gRG2liqw== +MHcCAQEEICByQk2XLl9inolBn/G6Xmz8OD27M0USDe37Z9xKAczeoAoGCCqGSM49 +AwEHoUQDQgAEcsDXlMT22TsOUy/Cy4h6g3S/oa1EJMf7fh/ROprTuwU0g7XAEgaH +4VOblRs2Nabc3odasORjRmwBHlvCgO6mXQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_security_level_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_security_level_missing/test_case_vector.json index ea8fa08cc30ff5..7bddd7499b83e8 100644 --- a/credentials/development/commissioner_dut/struct_cd_security_level_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_security_level_missing/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The security_level field is missing.", "is_success_case": "false", - "dac_cert": "308201e33082018aa0030201020208136956f5d48e0971300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004b79c3c617922bf9fed88d8ee98ddd0d8f63a75fb2dd4cbd8e97845941d6898044ef479a3040516ad35b1b73153ece4b0f7a2a93f3e32a36701a40e41f543e2e6a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604148a5c737806622c258ef082e16ebc255ac4f10078301f0603551d230418301680144385bf95dc7166a4cf9736f19ce7e70f1b8030c4300a06082a8648ce3d040302034700304402205f2df95fe80d165f5bd323ad6805683d06d8c775b30007b461b5ff7e5b51c4ec022027bdbfcf1b3a7f93dda89f09125bc2e26215836a42a280c328f8ec5ddbdbcd51", - "pai_cert": "308201d53082017aa003020102020865cf9148d36cd60d300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004363ef342f341e9bb196a251d224f1741f5c72c4254b5e2c63e3d8bccde94593e5df404974880ad44c9eb7692471bdc9da7915fad6c2ccc2f2477b8111b6962aba366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604144385bf95dc7166a4cf9736f19ce7e70f1b8030c4301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100eccf51acead3f28669171b33dade7b57d29b9732b227f1425ae18c755699193202210090d8a6d6d5a9d0e0890905413074ad45fcad2ef5224048664949f7bd093d2ae3", - "certification_declaration": "3082010006092a864886f70d010702a081f23081ef020103310d300b0609608648016503040201305b06092a864886f70d010701a04e044c152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100c1a3698a2bccb567d756b54af0f401293edd651d68dc324d6a320f7e788a0a5c0221008e55e68f6444efbe96048ffb2da98bae39d039a9facdf7416aa9ab2c68f14422", - "dac_private_key": "307fd3a4fbd639b74c8926f849ecf66c8deeb1f1dbce2340061149e6102849b7", - "dac_public_key": "04b79c3c617922bf9fed88d8ee98ddd0d8f63a75fb2dd4cbd8e97845941d6898044ef479a3040516ad35b1b73153ece4b0f7a2a93f3e32a36701a40e41f543e2e6" + "dac_cert": "308201e33082018aa00302010202085e1e7f1dad3ba410300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200047c5eb0e831040a01e220ef695acfa53681f2ec1d7f48ed063316f59b16cc0a009c783609ccad5c26a865116e808ec40d222adbc3ffb9d6d0a8d1c48eba6f8326a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604140e2594d5a64cdc677692a7555def7d186b27eeb4301f0603551d230418301680148977b588052d792f31a91477e01c99e15aaa0b53300a06082a8648ce3d0403020347003044022078deb71d02a58b595ae3b7b164c7a3167e925cf1afc8af1fa9ea27b4106043b3022058d41693feb84706fcd01c59078ec2fede413a2134d894eec4c4313582344952", + "pai_cert": "308201d43082017aa00302010202084e0a2cfc6e631ea9300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000472c0d794c4f6d93b0e532fc2cb887a8374bfa1ad4424c7fb7e1fd13a9ad3bb053483b5c0120687e1539b951b3635a6dcde875ab0e463466c011e5bc280eea65da366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604148977b588052d792f31a91477e01c99e15aaa0b53301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203480030450221008e8a7cee384610907dc8ef0896e0e8f5d95aa95f210f764b991f7460fdf886c10220371b94d97591b91986d890e9b9bf35d13021affe6f5f2e6394804c1df428ca92", + "certification_declaration": "3082010006092a864886f70d010702a081f23081ef020103310d300b0609608648016503040201305b06092a864886f70d010701a04e044c152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044830460221008c0bedb70d449dc9020251a28c17476f88fe52b3c24d6db16fd4a2b8c930f07c022100d64f1a400b9f3cb96f0547088db46898a0db5dccb4c7af0a9331782ea7af2cd3", + "dac_private_key": "b971778e87f853a6f677ff492d3ac31e76dd0e4620709056eb5151b05736c7a9", + "dac_public_key": "047c5eb0e831040a01e220ef695acfa53681f2ec1d7f48ed063316f59b16cc0a009c783609ccad5c26a865116e808ec40d222adbc3ffb9d6d0a8d1c48eba6f8326" } diff --git a/credentials/development/commissioner_dut/struct_cd_security_level_wrong/cd.der b/credentials/development/commissioner_dut/struct_cd_security_level_wrong/cd.der index 16dcac106e58fe..c8098266d9f4ab 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_security_level_wrong/cd.der and b/credentials/development/commissioner_dut/struct_cd_security_level_wrong/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_security_level_wrong/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_security_level_wrong/dac-Cert.der index 063e85dfaf779e..42b32ba056c153 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_security_level_wrong/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_security_level_wrong/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_security_level_wrong/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_security_level_wrong/dac-Cert.pem index 07412a59670280..76ce3785750b53 100644 --- a/credentials/development/commissioner_dut/struct_cd_security_level_wrong/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_security_level_wrong/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5TCCAYqgAwIBAgIIXpGsBYhRlRIwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5DCCAYqgAwIBAgIIZ24FPbpUeMEwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -M2+LwXfS/qRQLlgwDp6hMMWWFlbk707SD83Dj6YTRqSRY9W4SYQlHzw46RrxIvAo -Xlk850xNrCXX4TD9bNbiRKNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFGW/gt2gUP012Wf2HsKN9iLkh6biMB8GA1UdIwQYMBaAFDis -zuJlf6dRtipVyaNoO2V3oAQkMAoGCCqGSM49BAMCA0kAMEYCIQCGglATO4sh3bZD -5BgSHGdDpk2JezKrYrNnQ62aZ/3H4QIhAJjQDFZGhTvz9e3YGRJZE0tlhXvL67zx -pWxs2c+MVYQn +8YyE9cQqUb4yb84U+2cA+OSJFvyd6QgBZi/mA9hny/mF9kUFzmSP1FqBkONftnkd +L7JPXzoU8+qwd+Uqg8xEo6NgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFKbuC6X1Xu1An5k/jcQB+SHjO2YMMB8GA1UdIwQYMBaAFLPh +L3BpwLNgOgGRfe7KP470zPaIMAoGCCqGSM49BAMCA0gAMEUCIC+Z32cnwC55OtCY +OldO4biwc6H9G04YPsAgnJsY5sb6AiEA3467VQSPNyfPDZCHdgtkFb3o++5gvNa/ +C7tXGYDRDDc= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_security_level_wrong/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_security_level_wrong/dac-Key.der index 01826defc75ae2..1dc5a46cbf43e8 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_security_level_wrong/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_security_level_wrong/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_security_level_wrong/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_security_level_wrong/dac-Key.pem index d7962e9e63325a..3ad3e05121ad31 100644 --- a/credentials/development/commissioner_dut/struct_cd_security_level_wrong/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_security_level_wrong/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIImKwcYDnjfA8gWHD54xkDplN9Z0SoIhL2UYEwEwFhUXoAoGCCqGSM49 -AwEHoUQDQgAEM2+LwXfS/qRQLlgwDp6hMMWWFlbk707SD83Dj6YTRqSRY9W4SYQl -Hzw46RrxIvAoXlk850xNrCXX4TD9bNbiRA== +MHcCAQEEIBIxubuP/iigEWEZYUwHz8y5eNkVs2SsY+Yqavo9+jgAoAoGCCqGSM49 +AwEHoUQDQgAE8YyE9cQqUb4yb84U+2cA+OSJFvyd6QgBZi/mA9hny/mF9kUFzmSP +1FqBkONftnkdL7JPXzoU8+qwd+Uqg8xEow== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_security_level_wrong/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_security_level_wrong/pai-Cert.der index 11d26fab2f4884..1cac5e14bec6f3 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_security_level_wrong/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_security_level_wrong/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_security_level_wrong/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_security_level_wrong/pai-Cert.pem index 5f8e149b8a0332..fa1b0f58494988 100644 --- a/credentials/development/commissioner_dut/struct_cd_security_level_wrong/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_security_level_wrong/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIXubQRWqDJCEwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1DCCAXqgAwIBAgIIBtpDnv9pi6UwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATygrvieiIpGJpJAeAIzWjT9LURbgAg -MUiSBERZDgtUYsElLb0J0HGr4dg/GGhu1gITLh2A2WgHsvW0vEqe+pkIo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUOKzO -4mV/p1G2KlXJo2g7ZXegBCQwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIgcPSj1QQ+FcEJP+0zvSlgx8m3NbYTUZseIH5G -m2v3pnACIQDgZzYwb43aVrE6ETod3qd0WkYMzaA51+YZ/gCodvYfpA== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ789mfPHBO2xjdeaeoBYdA/6PuHCnO +HQfKhZ88bDTOkUSvvsmk1qdtFz2gI44e/goNURpysqC2aB7ylbkr84IQo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUs+Ev +cGnAs2A6AZF97so/jvTM9ogwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIhAMrxeYrdDMbcoqxdklcEwphMsDaSq9zJkBHK +L7CRoGu1AiBqf+Trk1FrB+zkYSOV15qbDg+wCmDBlplim/UzTshRsA== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_security_level_wrong/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_security_level_wrong/pai-Key.der index f58e8bdc4bc4e8..45ed65ed14acd1 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_security_level_wrong/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_security_level_wrong/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_security_level_wrong/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_security_level_wrong/pai-Key.pem index 6ffea0c7371785..0793d135ed4fdc 100644 --- a/credentials/development/commissioner_dut/struct_cd_security_level_wrong/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_security_level_wrong/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIPLDDKhOf5fE/PiU3L4s4a2RJxeV/cF14AwI5NN1+lodoAoGCCqGSM49 -AwEHoUQDQgAE8oK74noiKRiaSQHgCM1o0/S1EW4AIDFIkgREWQ4LVGLBJS29CdBx -q+HYPxhobtYCEy4dgNloB7L1tLxKnvqZCA== +MHcCAQEEIL8MOabzx6xSgdIZh81N0whIEJbIWAjG7FEyX66MidBQoAoGCCqGSM49 +AwEHoUQDQgAEO/PZnzxwTtsY3XmnqAWHQP+j7hwpzh0HyoWfPGw0zpFEr77JpNan +bRc9oCOOHv4KDVEacrKgtmge8pW5K/OCEA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_security_level_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_security_level_wrong/test_case_vector.json index 9f8ce76179641d..5573a9a0641d58 100644 --- a/credentials/development/commissioner_dut/struct_cd_security_level_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_security_level_wrong/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The security_level field is set to invalid value (different from 0).", "is_success_case": "false", - "dac_cert": "308201e53082018aa00302010202085e91ac0588519512300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004336f8bc177d2fea4502e58300e9ea130c5961656e4ef4ed20fcdc38fa61346a49163d5b84984251f3c38e91af122f0285e593ce74c4dac25d7e130fd6cd6e244a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041465bf82dda050fd35d967f61ec28df622e487a6e2301f0603551d2304183016801438accee2657fa751b62a55c9a3683b6577a00424300a06082a8648ce3d0403020349003046022100868250133b8b21ddb643e418121c6743a64d897b32ab62b36743ad9a67fdc7e102210098d00c5646853bf3f5edd8191259134b65857bcbebbcf1a56c6cd9cf8c558427", - "pai_cert": "308201d43082017aa00302010202085ee6d0456a832421300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004f282bbe27a2229189a4901e008cd68d3f4b5116e00203148920444590e0b5462c1252dbd09d071abe1d83f18686ed602132e1d80d96807b2f5b4bc4a9efa9908a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e0416041438accee2657fa751b62a55c9a3683b6577a00424301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022070f4a3d5043e15c1093fed33bd2960c7c9b735b613519b1e207e469b6bf7a670022100e06736306f8dda56b13a113a1ddea7745a460ccda039d7e619fe00a876f61fa4", - "certification_declaration": "3082010106092a864886f70d010702a081f33081f0020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405ff24060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402201837df6f5bc4a9fe0595e5d34c9ead59b50796b49a745c341e37ed34e2a5e7df02204eef7fc464be4704766fa79c8641c18d6d7af905249c102328761d738aab69b5", - "dac_private_key": "898ac1c6039e37c0f205870f9e31903a6537d6744a82212f6518130130161517", - "dac_public_key": "04336f8bc177d2fea4502e58300e9ea130c5961656e4ef4ed20fcdc38fa61346a49163d5b84984251f3c38e91af122f0285e593ce74c4dac25d7e130fd6cd6e244" + "dac_cert": "308201e43082018aa0030201020208676e053dba5478c1300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004f18c84f5c42a51be326fce14fb6700f8e48916fc9de90801662fe603d867cbf985f64505ce648fd45a8190e35fb6791d2fb24f5f3a14f3eab077e52a83cc44a3a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414a6ee0ba5f55eed409f993f8dc401f921e33b660c301f0603551d23041830168014b3e12f7069c0b3603a01917deeca3f8ef4ccf688300a06082a8648ce3d040302034800304502202f99df6727c02e793ad0983a574ee1b8b073a1fd1b4e183ec0209c9b18e6c6fa022100df8ebb55048f3727cf0d9087760b6415bde8fbee60bcd6bf0bbb571980d10c37", + "pai_cert": "308201d43082017aa003020102020806da439eff698ba5300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200043bf3d99f3c704edb18dd79a7a8058740ffa3ee1c29ce1d07ca859f3c6c34ce9144afbec9a4d6a76d173da0238e1efe0a0d511a72b2a0b6681ef295b92bf38210a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414b3e12f7069c0b3603a01917deeca3f8ef4ccf688301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100caf1798add0cc6dca2ac5d925704c2984cb03692abdcc99011ca2fb091a06bb502206a7fe4eb93516b07ece4612395d79a9b0e0fb00a60c19699629bf5334ec851b0", + "certification_declaration": "3082010106092a864886f70d010702a081f33081f0020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405ff24060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402202198dc69a9adf8da52fb4e383eced228f2e610802e2e9d7ca3b93a5c476111db022053da64e484f0599a687cc2b6b0e9465582364fdd3a6bed0f235ba9326de51ff5", + "dac_private_key": "1231b9bb8ffe28a0116119614c07cfccb978d915b364ac63e62a6afa3dfa3800", + "dac_public_key": "04f18c84f5c42a51be326fce14fb6700f8e48916fc9de90801662fe603d867cbf985f64505ce648fd45a8190e35fb6791d2fb24f5f3a14f3eab077e52a83cc44a3" } diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/cd.der b/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/cd.der index ffa07ed6da852b..446ea70614a86b 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/cd.der and b/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/dac-Cert.der index 55ed55caec8eed..361075d46c0b02 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/dac-Cert.pem index ed56b8dc5d7997..74bd473234ce1e 100644 --- a/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5DCCAYqgAwIBAgIIeDEMP7L8V3wwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5DCCAYqgAwIBAgIIBR/npElaNEQwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -8mOCJde19TnLc/CdbGedVAdjfDYatZ6HZ6SZz5BlLN6itTG3RPj4n370NVkQAuyx -urVGwZPmWTeP8Gm00yvPbqNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFCzsBXRNkmll18XzgCsGLgcFe2yyMB8GA1UdIwQYMBaAFKXo -hxBq8enTVS/4qlnpfV8U2OWqMAoGCCqGSM49BAMCA0gAMEUCIQD5ADqrN9OmR4Ji -//RyhuUHeriddDw86oRMLngBpVhCSAIgbGIXYtnBsh0nZV8vdoOd7poWrLsIJ0P8 -1pQCbr9y6n8= +81Zbr93TQomtY58qdZXGM2gtQ89vvOQpGmJhTdjFdNEqLf8ZKhjzvrI9b+xIn25s +sH5l5bosFgiudaL9k0hp56NgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFGBOORUkhfK+QkZ1WMOIWcpch+uLMB8GA1UdIwQYMBaAFMX/ +3t5iIt4+NBl7cZbkEn5BW95uMAoGCCqGSM49BAMCA0gAMEUCIEtHeYidgkXK2jEK +tzYy0B7kZ+TcgzsxLc6NH/nXb7iQAiEAs6IRXlV3sh5ycxqBivEnfvnwCljEE4cB +JljsYK0VF0Y= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/dac-Key.der index 5ef13ddadd7eff..835e2211fd930f 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/dac-Key.pem index f6132e06b49b9d..c1a81a85b80519 100644 --- a/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIEGfjcZPnq7NdfbtbhYlc5nSfMMrSlhq+WslXBRCdJCUoAoGCCqGSM49 -AwEHoUQDQgAE8mOCJde19TnLc/CdbGedVAdjfDYatZ6HZ6SZz5BlLN6itTG3RPj4 -n370NVkQAuyxurVGwZPmWTeP8Gm00yvPbg== +MHcCAQEEIJcs1cvbliOwgKpEIS3yOUpG46hkt/eUdilryG9Ggm8IoAoGCCqGSM49 +AwEHoUQDQgAE81Zbr93TQomtY58qdZXGM2gtQ89vvOQpGmJhTdjFdNEqLf8ZKhjz +vrI9b+xIn25ssH5l5bosFgiudaL9k0hp5w== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/pai-Cert.der index 5f5323afc56005..952b7bd9914654 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/pai-Cert.pem index 55d5bb7f826b5f..9db798e216abd5 100644 --- a/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIC7/eSlesK/IwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1DCCAXqgAwIBAgIICI7p5uRKYVEwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARBGay/I2l3V3Mv7bnw86UAp7m8/jI7 -wYL3GXqedrhoMBw3vjJDISp6yj6vZmtdZ4Ic1nsSyjO6g5fptPItvglwo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUpeiH -EGrx6dNVL/iqWel9XxTY5aowHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIhAIdhK5PSB/+kh467OGMgEywocbejWQXBC+1C -zY/sXd7FAiAlZ98Is3VGGgHQ0svbhso2MhrnEvG9pjZMcGFfllfzOA== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ7op178AteCQMeMop/YuCMMMHEkidl +0qVH2ZIGHz2hT62dKkoyEzC9rSqC+qGWMgCT0kaULsC6IdnkV3FjlT30o2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUxf/e +3mIi3j40GXtxluQSfkFb3m4wHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIgW5d4m+OJU2TbJFFluALAKmCuBrtdkdc3MgHS +esVly3kCIQCebXjkg/iQYevj4xznoB9jzyjTBfuis0WMCYZE64kFCg== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/pai-Key.der index 6ffeba74d630cf..d28fe72fef62dd 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/pai-Key.pem index ceea5ca8adc5b1..64392acf53361a 100644 --- a/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIFq+dGAI2lydsuSvnmKFPOZ35WUscS8ziGC0pfvUtGaioAoGCCqGSM49 -AwEHoUQDQgAEQRmsvyNpd1dzL+258POlAKe5vP4yO8GC9xl6nna4aDAcN74yQyEq -eso+r2ZrXWeCHNZ7EsozuoOX6bTyLb4JcA== +MHcCAQEEIPivqfAJwD4RMwUKRgvQv/tuWLylD5tGEjp+ebp7gp51oAoGCCqGSM49 +AwEHoUQDQgAEO6Kde/ALXgkDHjKKf2LgjDDBxJInZdKlR9mSBh89oU+tnSpKMhMw +va0qgvqhljIAk9JGlC7AuiHZ5FdxY5U99A== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/test_case_vector.json index f833120d8fbf5f..e00695b6363838 100644 --- a/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_signer_info_digest_algo_sha1/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: Invalid Signer Info digest algorithm SHA1.", "is_success_case": "false", - "dac_cert": "308201e43082018aa003020102020878310c3fb2fc577c300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004f2638225d7b5f539cb73f09d6c679d5407637c361ab59e8767a499cf90652cdea2b531b744f8f89f7ef435591002ecb1bab546c193e659378ff069b4d32bcf6ea360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604142cec05744d926965d7c5f3802b062e07057b6cb2301f0603551d23041830168014a5e887106af1e9d3552ff8aa59e97d5f14d8e5aa300a06082a8648ce3d0403020348003045022100f9003aab37d3a6478262fff47286e5077ab89d743c3cea844c2e7801a558424802206c621762d9c1b21d27655f2f76839dee9a16acbb082743fcd694026ebf72ea7f", - "pai_cert": "308201d43082017aa00302010202080bbfde4a57ac2bf2300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200044119acbf23697757732fedb9f0f3a500a7b9bcfe323bc182f7197a9e76b868301c37be3243212a7aca3eaf666b5d67821cd67b12ca33ba8397e9b4f22dbe0970a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414a5e887106af1e9d3552ff8aa59e97d5f14d8e5aa301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502210087612b93d207ffa4878ebb386320132c2871b7a35905c10bed42cd8fec5ddec502202567df08b375461a01d0d2cbdb86ca36321ae712f1bda6364c70615f9657f338", - "certification_declaration": "3081fe06092a864886f70d010702a081f03081ed020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe6620181831793077020103801462fa823359acfaa9963e1cfa140addf504f37160300706052b0e03021a300a06082a8648ce3d040302044730450221008ac235ef439bb08e0574ddc4ce0b2dedb738ba389acffe08da8f5fb34ca40037022061bd3eff72b825427c15692e5995ed675380734711b19b4e2b86d2a9ec6684a6", - "dac_private_key": "419f8dc64f9eaecd75f6ed6e16257399d27cc32b4a586af96b255c1442749094", - "dac_public_key": "04f2638225d7b5f539cb73f09d6c679d5407637c361ab59e8767a499cf90652cdea2b531b744f8f89f7ef435591002ecb1bab546c193e659378ff069b4d32bcf6e" + "dac_cert": "308201e43082018aa0030201020208051fe7a4495a3444300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004f3565bafddd34289ad639f2a7595c633682d43cf6fbce4291a62614dd8c574d12a2dff192a18f3beb23d6fec489f6e6cb07e65e5ba2c1608ae75a2fd934869e7a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414604e39152485f2be42467558c38859ca5c87eb8b301f0603551d23041830168014c5ffdede6222de3e34197b7196e4127e415bde6e300a06082a8648ce3d040302034800304502204b4779889d8245cada310ab73632d01ee467e4dc833b312dce8d1ff9d76fb890022100b3a2115e5577b21e72731a818af1277ef9f00a58c41387012658ec60ad151746", + "pai_cert": "308201d43082017aa0030201020208088ee9e6e44a6151300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200043ba29d7bf00b5e09031e328a7f62e08c30c1c4922765d2a547d992061f3da14fad9d2a4a321330bdad2a82faa196320093d246942ec0ba21d9e4577163953df4a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414c5ffdede6222de3e34197b7196e4127e415bde6e301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502205b97789be3895364db245165b802c02a60ae06bb5d91d7373201d27ac565cb790221009e6d78e483f89061ebe3e31ce7a01f63cf28d305fba2b3458c098644eb89050a", + "certification_declaration": "3081fd06092a864886f70d010702a081ef3081ec020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe6620181831783076020103801462fa823359acfaa9963e1cfa140addf504f37160300706052b0e03021a300a06082a8648ce3d0403020446304402203fc5cf1930c4ab98ca300233f003094ad71e343ed91fd81bfb80a8a18ef06d36022070280140ed22bb2b2f309d07f836126e926af102833393b59abbdfbfc21a970d", + "dac_private_key": "972cd5cbdb9623b080aa44212df2394a46e3a864b7f79476296bc86f46826f08", + "dac_public_key": "04f3565bafddd34289ad639f2a7595c633682d43cf6fbce4291a62614dd8c574d12a2dff192a18f3beb23d6fec489f6e6cb07e65e5ba2c1608ae75a2fd934869e7" } diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/cd.der b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/cd.der index 1b9938727700c9..f0f2465d59f6ae 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/cd.der and b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/dac-Cert.der index 3464601669400c..5d86ee2c13e975 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/dac-Cert.pem index e0f37f26a60053..79a336e4f425fd 100644 --- a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB4jCCAYmgAwIBAgIHGh6W6IpxEzAKBggqhkjOPQQDAjBGMRgwFgYDVQQDDA9N -YXR0ZXIgVGVzdCBQQUkxFDASBgorBgEEAYKifAIBDARGRkYxMRQwEgYKKwYBBAGC -onwCAgwEODAwMDAgFw0yMjA1MTMwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEY -MBYGA1UEAwwPTWF0dGVyIFRlc3QgREFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEU -MBIGCisGAQQBgqJ8AgIMBDgwMDAwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9 -xixZwbBz4jINFh+YlZ41A8Md/U5ASgLgu2OSjdttYBEIhe2ZNzAyq5Z4nd33Hm2X -B4nBsff6z8MvXiy4IxEso2AwXjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIH -gDAdBgNVHQ4EFgQUIDavmSb5ow4jxtf68395zfA+EIowHwYDVR0jBBgwFoAUK9pU -8OWyvYNaGmDgfHev0vklNYswCgYIKoZIzj0EAwIDRwAwRAIgBeKZZHJayuUsj1Wd -rg49VFv3U/y6kPrtbTwpoAs0HMoCIBNHv8vJitP1e42nr7UB7Sc63C0oYt3t1TY/ -n8HGmN7H +MIIB5TCCAYqgAwIBAgIISGFsYHOz+DkwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx +FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE +yEMrM2JO/IeYYiIKYUae9pcwu9v1oeCOcyGCAksjK7eW2ONaA2YXxFYlz0eNwJgc +SdB2E02pMYXYsBo/6nPVhqNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFDEuaoBTadWUiTwYwCP8TKVElCkZMB8GA1UdIwQYMBaAFELV +jA9yDz0hVWcRtOJ7vSidcrvEMAoGCCqGSM49BAMCA0kAMEYCIQC//FtnRH4l3GXZ +XAY5HcAnptes5xHR0xLi+ejO0fJOqAIhANoiSjwVl2VTKiHS7M2IujWaQ4PlL0ff +rRyoEiUMxtfI -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/dac-Key.der index eb4e4c34393912..2d85a2a83bf1a2 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/dac-Key.pem index ebf5dad60ae7d9..1f470845d4baa7 100644 --- a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEINyML+UfOotQFZmODsNeOMSKYwD+0tYdtxDXdFfBXNrKoAoGCCqGSM49 -AwEHoUQDQgAEfcYsWcGwc+IyDRYfmJWeNQPDHf1OQEoC4Ltjko3bbWARCIXtmTcw -MquWeJ3d9x5tlweJwbH3+s/DL14suCMRLA== +MHcCAQEEIItLKbjkzvglUg+d184s986sS6z2r0+RWpGoKfLgveKMoAoGCCqGSM49 +AwEHoUQDQgAEyEMrM2JO/IeYYiIKYUae9pcwu9v1oeCOcyGCAksjK7eW2ONaA2YX +xFYlz0eNwJgcSdB2E02pMYXYsBo/6nPVhg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/pai-Cert.der index 92c2b331182b3d..0d73c4ae62f13a 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/pai-Cert.pem index 4056817679fa1d..1ef22cb10895de 100644 --- a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIOph5r4Q3ipYwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1DCCAXqgAwIBAgIIOMg6ossYXtowCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATIg1xYZ2xbdux7SATmMCp71vkBAZjB -IfeR+YlDS/Y4U9x0lG7xe2hiQi2wEIYjdhp0RYCyPJ0ZrFg2NmMQc/D8o2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUK9pU -8OWyvYNaGmDgfHev0vklNYswHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIhAMsQZluDNtHE9m4FGPtddKwzWQGO/nvtc4ba -DxFo1jTOAiBrC4blHCJHmxjmI/tRZUUWSH7CYsT/a7ZytAUIiKkPuw== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAT1uxd0MCXtrp5bZTQiNSr2XbhCiy27 +Q+Xbsbmj7JMWU1Vfyy+FMuGvdJOlePYNMJUQlZrcSYrGDaPbnrVhICkgo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUQtWM +D3IPPSFVZxG04nu9KJ1yu8QwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIhALRvlNtIp7R/yWGPVe/srqYIOYB/Y2RgY8Gi +o2UPWxVoAiAGS7/xLRaQBwjvRoUmJYKvchUiC2DusGIWBzDsHcVz5w== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/pai-Key.der index b26a4cdb19fcdf..d49239609b3243 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/pai-Key.pem index df838f6f594c4f..d39f4446f7e446 100644 --- a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIDYRVUeIKzAWR2+r4V4P8SWtDenJ96gzMBxa456OhFnfoAoGCCqGSM49 -AwEHoUQDQgAEyINcWGdsW3bse0gE5jAqe9b5AQGYwSH3kfmJQ0v2OFPcdJRu8Xto -YkItsBCGI3YadEWAsjydGaxYNjZjEHPw/A== +MHcCAQEEIBSr3obHmZNcm/i7mi18vepdHtbNvAwnaqaocdlua6q9oAoGCCqGSM49 +AwEHoUQDQgAE9bsXdDAl7a6eW2U0IjUq9l24Qostu0Pl27G5o+yTFlNVX8svhTLh +r3STpXj2DTCVEJWa3EmKxg2j2561YSApIA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/test_case_vector.json index a9778a2ffbc75f..a135a71cbba7f6 100644 --- a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_invalid/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The subjectKeyIdentifier contains invalid SKID of a certificate unknown by Zigbee Alliance.", "is_success_case": "false", - "dac_cert": "308201e230820189a00302010202071a1e96e88a7113300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200047dc62c59c1b073e2320d161f98959e3503c31dfd4e404a02e0bb63928ddb6d60110885ed99373032ab96789dddf71e6d970789c1b1f7facfc32f5e2cb823112ca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604142036af9926f9a30e23c6d7faf37f79cdf03e108a301f0603551d230418301680142bda54f0e5b2bd835a1a60e07c77afd2f925358b300a06082a8648ce3d0403020347003044022005e29964725acae52c8f559dae0e3d545bf753fcba90faed6d3c29a00b341cca02201347bfcbc98ad3f57b8da7afb501ed273adc2d2862ddedd5363f9fc1c698dec7", - "pai_cert": "308201d43082017aa00302010202083a9879af84378a96300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004c8835c58676c5b76ec7b4804e6302a7bd6f9010198c121f791f989434bf63853dc74946ef17b6862422db0108623761a744580b23c9d19ac583636631073f0fca366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604142bda54f0e5b2bd835a1a60e07c77afd2f925358b301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100cb10665b8336d1c4f66e0518fb5d74ac3359018efe7bed7386da0f1168d634ce02206b0b86e51c22479b18e623fb51654516487ec262c4ff6bb672b4050888a90fbb", - "certification_declaration": "3082010206092a864886f70d010702a081f43081f1020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfa56963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100d458770a629b4c0a529b92b9d745a4835da8d0cd04be098e5bf5457fd1ec625502207de56847b47c4b34b8baab77a08f581f8ceef28d63cd18d462602a636ee3a381", - "dac_private_key": "dc8c2fe51f3a8b5015998e0ec35e38c48a6300fed2d61db710d77457c15cdaca", - "dac_public_key": "047dc62c59c1b073e2320d161f98959e3503c31dfd4e404a02e0bb63928ddb6d60110885ed99373032ab96789dddf71e6d970789c1b1f7facfc32f5e2cb823112c" + "dac_cert": "308201e53082018aa003020102020848616c6073b3f839300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004c8432b33624efc879862220a61469ef69730bbdbf5a1e08e732182024b232bb796d8e35a036617c45625cf478dc0981c49d076134da93185d8b01a3fea73d586a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414312e6a805369d594893c18c023fc4ca544942919301f0603551d2304183016801442d58c0f720f3d21556711b4e27bbd289d72bbc4300a06082a8648ce3d0403020349003046022100bffc5b67447e25dc65d95c06391dc027a6d7ace711d1d312e2f9e8ced1f24ea8022100da224a3c159765532a21d2eccd88ba359a4383e52f47dfad1ca812250cc6d7c8", + "pai_cert": "308201d43082017aa003020102020838c83aa2cb185eda300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004f5bb17743025edae9e5b653422352af65db8428b2dbb43e5dbb1b9a3ec931653555fcb2f8532e1af7493a578f60d309510959adc498ac60da3db9eb561202920a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041442d58c0f720f3d21556711b4e27bbd289d72bbc4301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100b46f94db48a7b47fc9618f55efecaea60839807f63646063c1a2a3650f5b15680220064bbff12d16900708ef4685262582af7215220b60eeb062160730ec1dc573e7", + "certification_declaration": "3082010206092a864886f70d010702a081f43081f1020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfa56963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502202e972608bd5943d7858d9485321c2001926017de9152db56d8ad7c2ad7b05e2b022100f85818b2cbcfe9a619f0bd8fb3692606315596a2b9df593759e35a866ced9e6a", + "dac_private_key": "8b4b29b8e4cef825520f9dd7ce2cf7ceac4bacf6af4f915a91a829f2e0bde28c", + "dac_public_key": "04c8432b33624efc879862220a61469ef69730bbdbf5a1e08e732182024b232bb796d8e35a036617c45625cf478dc0981c49d076134da93185d8b01a3fea73d586" } diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/cd.der b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/cd.der index df7f6f3c004469..7cff080d409c3b 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/cd.der and b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/dac-Cert.der index 128c6bcdc250ea..48c6659a148865 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/dac-Cert.pem index f132ef1683d084..e6667a75cb5576 100644 --- a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5DCCAYqgAwIBAgIIFGblAAc74AkwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5DCCAYqgAwIBAgIIdwPo/X6KvXcwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -5xfYvWYadIG/coEHZqHst/XOmBfyrfBV3lO97047NCJ1bJAUg5lGUGQtE6m7E6e4 -Sd+h9duVDA+bHJvoCM1KPaNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFDy3R9sx4FuFjEMlTjAZ0ziDaNIuMB8GA1UdIwQYMBaAFLk1 -nArAV56kNUHkJsodyUp4oYuXMAoGCCqGSM49BAMCA0gAMEUCID2emJnsY516cRGG -gehafxzeA+OTTadpeCyUwC/wjKvqAiEA0jXEK6+/hwMOVMy/tyepJUUHRpaSWlJ6 -YIRcTAhlBNI= +okUmFX2FmWBOSSDPFWNC69GhPdB6q6a7gYB+t0/qtCOzG/8Ht4NwqIn9wPeHT/tv +Q7sWpM9Hntslda1EoUaxeaNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFLz9et949uyHAi/lSVWHfjzfGWMsMB8GA1UdIwQYMBaAFCPk +W1kSpdt4u14xV+R+Ia9Z5O4bMAoGCCqGSM49BAMCA0gAMEUCIEale7C0/XSYSiJN +ZiXSadJ9NFuALbihFlV1i7OvfSZhAiEAuXOTyYIbyzyzoBDTtdiIgJqufKB5vm0q +KFeHkSsLwB0= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/dac-Key.der index 601cf94f86f8bc..84c11b37e6279d 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/dac-Key.pem index 8d30ed5b41503d..a622ec2eceb4b2 100644 --- a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIKKjLbODZxcsZja79FJfd6qGBbGqJChcwOK+l6TPv8IAoAoGCCqGSM49 -AwEHoUQDQgAE5xfYvWYadIG/coEHZqHst/XOmBfyrfBV3lO97047NCJ1bJAUg5lG -UGQtE6m7E6e4Sd+h9duVDA+bHJvoCM1KPQ== +MHcCAQEEIOnN/RXrDxH6E8z8Syqh2Z0BH3XV5+xdIbDj+gadzf9aoAoGCCqGSM49 +AwEHoUQDQgAEokUmFX2FmWBOSSDPFWNC69GhPdB6q6a7gYB+t0/qtCOzG/8Ht4Nw +qIn9wPeHT/tvQ7sWpM9Hntslda1EoUaxeQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/pai-Cert.der index e9c0edf3f89832..8bb1da3282e00c 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/pai-Cert.pem index 29a18e6d0032de..0b3ebc1cb770ba 100644 --- a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1TCCAXqgAwIBAgIICpyXaSNFMBwwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1DCCAXqgAwIBAgIIa8o5gn4gCqcwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARxONb6QnkQNA8oBhwjEFGQcVw98eVx -WfEh+sPwubZnqWgB6uwl8R8stBqcGguA+OD37aakvmSCickjaWoYJLFeo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUuTWc -CsBXnqQ1QeQmyh3JSnihi5cwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSQAwRgIhAMOPdZ4niVI+t0hhIyuMUCTxUqA4qxKTlLg2 -3EGyyTjAAiEAzUaOKij49wXkOLEveg5Vj3lUnDHuuBoj4np9fI+dZJ0= +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS/4spH2lZiMFxZ8SYg3YPvNCR9MTrO +qtapZCR1+biobc7QD51sRTQDPqR2sjkYyXCM95rzluLvr57UkqVVyT1To2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUI+Rb +WRKl23i7XjFX5H4hr1nk7hswHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIgasZMl9Be7oGznvFWMtE3Ydz2XCJ6MNBUYYPC +nT+HhBkCIQDmEYgWbs25M1uwCix6bgEk36qU4jrseF2slgbsOUA2Wg== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/pai-Key.der index 8d78b2cb0fdde8..bb1d9b5dcf3cb7 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/pai-Key.pem index d92cef1dbb113e..41ff6fb57478a3 100644 --- a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIElM3ljTjpe3hdv///vwwWTNmqXnxmQi4eyk8qpw9YN5oAoGCCqGSM49 -AwEHoUQDQgAEcTjW+kJ5EDQPKAYcIxBRkHFcPfHlcVnxIfrD8Lm2Z6loAersJfEf -LLQanBoLgPjg9+2mpL5kgonJI2lqGCSxXg== +MHcCAQEEIFgNN/ldSePDHEU8oSPbVJsEk4oLHYJlGUioNpv4wfCHoAoGCCqGSM49 +AwEHoUQDQgAEv+LKR9pWYjBcWfEmIN2D7zQkfTE6zqrWqWQkdfm4qG3O0A+dbEU0 +Az6kdrI5GMlwjPea85bi76+e1JKlVck9Uw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/test_case_vector.json index 297050af9cb362..e46296a84bb3a3 100644 --- a/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_signer_info_skid_valid/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The subjectKeyIdentifier contains SKID of a well-known Zigbee Alliance certificate.", "is_success_case": "true", - "dac_cert": "308201e43082018aa00302010202081466e500073be009300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004e717d8bd661a7481bf72810766a1ecb7f5ce9817f2adf055de53bdef4e3b3422756c901483994650642d13a9bb13a7b849dfa1f5db950c0f9b1c9be808cd4a3da360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604143cb747db31e05b858c43254e3019d3388368d22e301f0603551d23041830168014b9359c0ac0579ea43541e426ca1dc94a78a18b97300a06082a8648ce3d040302034800304502203d9e9899ec639d7a71118681e85a7f1cde03e3934da769782c94c02ff08cabea022100d235c42bafbf87030e54ccbfb727a92545074696925a527a60845c4c086504d2", - "pai_cert": "308201d53082017aa00302010202080a9c97692345301c300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200047138d6fa427910340f28061c23105190715c3df1e57159f121fac3f0b9b667a96801eaec25f11f2cb41a9c1a0b80f8e0f7eda6a4be648289c923696a1824b15ea366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414b9359c0ac0579ea43541e426ca1dc94a78a18b97301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100c38f759e2789523eb74861232b8c5024f152a038ab129394b836dc41b2c938c0022100cd468e2a28f8f705e438b12f7a0e558f79549c31eeb81a23e27a7d7c8f9d649d", - "certification_declaration": "3082010206092a864886f70d010702a081f43081f1020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022038f750ffb83fe674f203f07035cca23d18bafafbf92b65d07fa0336579676aa00221008648107106f03e5054e9d0bee0df886aca52fc47734a3a935e8cff39afa05feb", - "dac_private_key": "a2a32db38367172c6636bbf4525f77aa8605b1aa24285cc0e2be97a4cfbfc200", - "dac_public_key": "04e717d8bd661a7481bf72810766a1ecb7f5ce9817f2adf055de53bdef4e3b3422756c901483994650642d13a9bb13a7b849dfa1f5db950c0f9b1c9be808cd4a3d" + "dac_cert": "308201e43082018aa00302010202087703e8fd7e8abd77300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004a24526157d8599604e4920cf156342ebd1a13dd07aaba6bb81807eb74feab423b31bff07b78370a889fdc0f7874ffb6f43bb16a4cf479edb2575ad44a146b179a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414bcfd7adf78f6ec87022fe54955877e3cdf19632c301f0603551d2304183016801423e45b5912a5db78bb5e3157e47e21af59e4ee1b300a06082a8648ce3d0403020348003045022046a57bb0b4fd74984a224d6625d269d27d345b802db8a11655758bb3af7d2661022100b97393c9821bcb3cb3a010d3b5d888809aae7ca079be6d2a285787912b0bc01d", + "pai_cert": "308201d43082017aa00302010202086bca39827e200aa7300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004bfe2ca47da5662305c59f12620dd83ef34247d313aceaad6a9642475f9b8a86dced00f9d6c4534033ea476b23918c9708cf79af396e2efaf9ed492a555c93d53a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041423e45b5912a5db78bb5e3157e47e21af59e4ee1b301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502206ac64c97d05eee81b39ef15632d13761dcf65c227a30d0546183c29d3f878419022100e61188166ecdb9335bb00a2c7a6e0124dfaa94e23aec785dac9606ec3940365a", + "certification_declaration": "3082010206092a864886f70d010702a081f43081f1020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100a8171660122beb90b233ac983b8352fa6cdeffd755d8857586f8e605e0e4f33602201bdc623eeba2c31dc61be31eafb536ad978404ae4fc0ef242f5d85afdd7c4dea", + "dac_private_key": "e9cdfd15eb0f11fa13ccfc4b2aa1d99d011f75d5e7ec5d21b0e3fa069dcdff5a", + "dac_public_key": "04a24526157d8599604e4920cf156342ebd1a13dd07aaba6bb81807eb74feab423b31bff07b78370a889fdc0f7874ffb6f43bb16a4cf479edb2575ad44a146b179" } diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_v2/cd.der b/credentials/development/commissioner_dut/struct_cd_signer_info_v2/cd.der index 38477c9fe48752..baa7581568cea7 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_signer_info_v2/cd.der and b/credentials/development/commissioner_dut/struct_cd_signer_info_v2/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_v2/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_signer_info_v2/dac-Cert.der index 97435bb597a202..ba17add48795b7 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_signer_info_v2/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_signer_info_v2/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_v2/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_signer_info_v2/dac-Cert.pem index fedca40db5afcd..48fcc03abd3076 100644 --- a/credentials/development/commissioner_dut/struct_cd_signer_info_v2/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_signer_info_v2/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5DCCAYqgAwIBAgIIbrChSIkV+D0wCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5TCCAYqgAwIBAgIIDJ/2BtnbH+AwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -NdPEwIMABSXkVCJY7ZhrxF4eh9ji9+BZnx7ddyx1WwbVv+zFG8Qb/R57GsYFKok4 -FfrvT6/n8Kyv2AF/UyHSKqNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFCeEuaH+uV0hHpg7icTsi3rZW8h1MB8GA1UdIwQYMBaAFLPb -67ewqiZw8eHkHXPVyUZXhBsoMAoGCCqGSM49BAMCA0gAMEUCIEGCBn7X3bJs1+ib -1fSVRqerJZHytLH3nQI2WUDuhNXaAiEAm5cQQpl8AzIjC9Zw80n0Xuf6zbmLevfE -beGGk9XQdMs= +AIPuPHv0OJP8yUuqFVuj6v+S1pCAAPFf66HOEx3kqnEybomyFAg5YV+e097TAFZM +NMLYvwzTsAojDYigG2tRWaNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFIvmFua2v2OokHxnLektdlJCv+X3MB8GA1UdIwQYMBaAFJl9 +xTnFyvXjNpUcU8XFunMoGN+TMAoGCCqGSM49BAMCA0kAMEYCIQCxTVGWjla6Z7oB +3Al4L5zF06Gqr1QNV5wE7JMFIuWGFQIhAMw+9UlNFTVUJOrJljv6Y4IH0hj0esQw +AJVX/vqaejlu -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_v2/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_signer_info_v2/dac-Key.der index 8fbd577bda3080..a2c2b9559b7641 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_signer_info_v2/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_signer_info_v2/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_v2/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_signer_info_v2/dac-Key.pem index 75013ff3705399..c02d4d8aab0714 100644 --- a/credentials/development/commissioner_dut/struct_cd_signer_info_v2/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_signer_info_v2/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIBq8TLeIHx4HC5hdSFdCDW9RD+d40QkZXm7yuNao1cQZoAoGCCqGSM49 -AwEHoUQDQgAENdPEwIMABSXkVCJY7ZhrxF4eh9ji9+BZnx7ddyx1WwbVv+zFG8Qb -/R57GsYFKok4FfrvT6/n8Kyv2AF/UyHSKg== +MHcCAQEEINGq7lqSAqZFmfov+8LmPFcnqhq0eJrv/iSxG2FCP97zoAoGCCqGSM49 +AwEHoUQDQgAEAIPuPHv0OJP8yUuqFVuj6v+S1pCAAPFf66HOEx3kqnEybomyFAg5 +YV+e097TAFZMNMLYvwzTsAojDYigG2tRWQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_v2/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_signer_info_v2/pai-Cert.der index 31249e91bdfb69..c8ae41caf4e7cc 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_signer_info_v2/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_signer_info_v2/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_v2/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_signer_info_v2/pai-Cert.pem index 41b19be77361f1..68deb4cfcabe1b 100644 --- a/credentials/development/commissioner_dut/struct_cd_signer_info_v2/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_signer_info_v2/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1TCCAXqgAwIBAgIIB/fSHXChpKMwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1DCCAXqgAwIBAgIISaU9qI94pY8wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ1edXi8Bn7KDp3K8zC7klkVlBKeNRc -gKmZRZzMN3yH/9ScfOVpaVqqv4/mknvo8/N3yNWgq/QBAbcSibcx8+2Po2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUs9vr -t7CqJnDx4eQdc9XJRleEGygwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSQAwRgIhAPE0uY/GwXm8B03oJmkb2QgfOFenbTG5OZ65 -YOb5pZ6LAiEA4D1h8PS2XDr427nekkF69Q5qvfSf3lleRTGOmOi9JaY= +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR9VnMdD77ab4BigMqWI67j/25tRwOg +GdF/SS1LoWSotnT1pODp1RqxwHPdZ+vR/hkw3tzWwRvXYedyRhYr9KpXo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUmX3F +OcXK9eM2lRxTxcW6cygY35MwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIgWCUhnuW0h+gn+KGP/FxukM78oJKXDtHAVWhQ +lnPtjhwCIQC1jAwYH0kgzSZo0qCr9rfIpkWzSiIyLrIjIdZQSWgoXw== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_v2/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_signer_info_v2/pai-Key.der index e1d24b48c82cb5..a43ca4ca3cf874 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_signer_info_v2/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_signer_info_v2/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_v2/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_signer_info_v2/pai-Key.pem index aabe62cfef2833..785403f16054d2 100644 --- a/credentials/development/commissioner_dut/struct_cd_signer_info_v2/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_signer_info_v2/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIClKU2LslDDBVadDjBcK7Z8GdvBvavXUpvy66AM1MsAQoAoGCCqGSM49 -AwEHoUQDQgAENXnV4vAZ+yg6dyvMwu5JZFZQSnjUXICpmUWczDd8h//UnHzlaWla -qr+P5pJ76PPzd8jVoKv0AQG3Eom3MfPtjw== +MHcCAQEEIFBFF8TKmgiTiwakAziNuyDvCVVBtN7akeZDAEDyhOlZoAoGCCqGSM49 +AwEHoUQDQgAEfVZzHQ++2m+AYoDKliOu4/9ubUcDoBnRf0ktS6FkqLZ09aTg6dUa +scBz3Wfr0f4ZMN7c1sEb12HnckYWK/SqVw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_signer_info_v2/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_signer_info_v2/test_case_vector.json index 623ad47f41aa12..84f74f5c03f38c 100644 --- a/credentials/development/commissioner_dut/struct_cd_signer_info_v2/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_signer_info_v2/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: Invalid Signer Info version set to v2.", "is_success_case": "false", - "dac_cert": "308201e43082018aa00302010202086eb0a1488915f83d300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000435d3c4c083000525e4542258ed986bc45e1e87d8e2f7e0599f1edd772c755b06d5bfecc51bc41bfd1e7b1ac6052a893815faef4fafe7f0acafd8017f5321d22aa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604142784b9a1feb95d211e983b89c4ec8b7ad95bc875301f0603551d23041830168014b3dbebb7b0aa2670f1e1e41d73d5c94657841b28300a06082a8648ce3d040302034800304502204182067ed7ddb26cd7e89bd5f49546a7ab2591f2b4b1f79d02365940ee84d5da0221009b971042997c0332230bd670f349f45ee7facdb98b7af7c46de18693d5d074cb", - "pai_cert": "308201d53082017aa003020102020807f7d21d70a1a4a3300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200043579d5e2f019fb283a772bccc2ee496456504a78d45c80a999459ccc377c87ffd49c7ce569695aaabf8fe6927be8f3f377c8d5a0abf40101b71289b731f3ed8fa366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414b3dbebb7b0aa2670f1e1e41d73d5c94657841b28301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100f134b98fc6c179bc074de826691bd9081f3857a76d31b9399eb960e6f9a59e8b022100e03d61f0f4b65c3af8dbb9de92417af50e6abdf49fde595e45318e98e8bd25a6", - "certification_declaration": "3082010206092a864886f70d010702a081f43081f1020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020102801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100b1cb0831edf7445f152b21cf0637c301fca39ad79d01982cb392e54622a18f4902205bc356688b1ce990991e9a98a8bb64a4c49139b4c54b19d3b9b2129b8fe38419", - "dac_private_key": "1abc4cb7881f1e070b985d4857420d6f510fe778d109195e6ef2b8d6a8d5c419", - "dac_public_key": "0435d3c4c083000525e4542258ed986bc45e1e87d8e2f7e0599f1edd772c755b06d5bfecc51bc41bfd1e7b1ac6052a893815faef4fafe7f0acafd8017f5321d22a" + "dac_cert": "308201e53082018aa00302010202080c9ff606d9db1fe0300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200040083ee3c7bf43893fcc94baa155ba3eaff92d6908000f15feba1ce131de4aa71326e89b2140839615f9ed3ded300564c34c2d8bf0cd3b00a230d88a01b6b5159a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604148be616e6b6bf63a8907c672de92d765242bfe5f7301f0603551d23041830168014997dc539c5caf5e336951c53c5c5ba732818df93300a06082a8648ce3d0403020349003046022100b14d51968e56ba67ba01dc09782f9cc5d3a1aaaf540d579c04ec930522e58615022100cc3ef5494d15355424eac9963bfa638207d218f47ac430009557fefa9a7a396e", + "pai_cert": "308201d43082017aa003020102020849a53da88f78a58f300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200047d56731d0fbeda6f806280ca9623aee3ff6e6d4703a019d17f492d4ba164a8b674f5a4e0e9d51ab1c073dd67ebd1fe1930dedcd6c11bd761e77246162bf4aa57a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414997dc539c5caf5e336951c53c5c5ba732818df93301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502205825219ee5b487e827f8a18ffc5c6e90cefca092970ed1c05568509673ed8e1c022100b58c0c181f4920cd2668d2a0abf6b7c8a645b34a22322eb22321d6504968285f", + "certification_declaration": "3082010306092a864886f70d010702a081f53081f2020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317e307c020102801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020448304602210096056729f26231d2d865c71393b0d705cb62d0cdd9133f5b48f4b801d4bc71730221008e9e3b9bcfe5fd2724bd6375228e3021470f441f882ff5ae28368b0e61817a53", + "dac_private_key": "d1aaee5a9202a64599fa2ffbc2e63c5727aa1ab4789aeffe24b11b61423fdef3", + "dac_public_key": "040083ee3c7bf43893fcc94baa155ba3eaff92d6908000f15feba1ce131de4aa71326e89b2140839615f9ed3ded300564c34c2d8bf0cd3b00a230d88a01b6b5159" } diff --git a/credentials/development/commissioner_dut/struct_cd_version_number_match/cd.der b/credentials/development/commissioner_dut/struct_cd_version_number_match/cd.der index cd51cf893789c8..1f3fbac0b82362 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_version_number_match/cd.der and b/credentials/development/commissioner_dut/struct_cd_version_number_match/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_version_number_match/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_version_number_match/dac-Cert.der index 439016ad7e8595..ada0124b6d4a64 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_version_number_match/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_version_number_match/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_version_number_match/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_version_number_match/dac-Cert.pem index c0d302b934c79e..71fd3c6b07b2cc 100644 --- a/credentials/development/commissioner_dut/struct_cd_version_number_match/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_version_number_match/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5DCCAYqgAwIBAgIIHm/yBwipzuEwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB4zCCAYqgAwIBAgIIfeNydAzYBlIwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -oIBVl+4vhxeO0sEEU987hKUgnkMdbtPrSAulg/uLQvlytKkV5C9Muzpk/buvn31s -Kgs+FdtV1Y+DzFGhu2N0/KNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFKevbuxU/sVdFh7ST9gkDCIVyAH1MB8GA1UdIwQYMBaAFDcg -LkdnJBuywytZaXyGEGaLVbF7MAoGCCqGSM49BAMCA0gAMEUCIAgHLSxNlH7Zz0/f -F2gpB2mh9tMPeW3peYZW4hCdZeCWAiEA/64IT3ckDUjiyoYf1+pnq6ixBIF9ho/4 -AtwR0xaHI3s= +7JbSzTO5VMyMN3Z4HsnHdyQ4m9SOK9yQQplfEPLQ7k0WuURB6myUK6Rmv7dBEdiJ +YDXGqvU9p7Vj83didnZNDKNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFBOsHE17Ty+/mVb6IOT45gSnnSihMB8GA1UdIwQYMBaAFM9S +lG2C/k4Jy+J73kVOnd/+L8u1MAoGCCqGSM49BAMCA0cAMEQCIEkhQxxfLyy7wg5d +HN7Pa/5iyCjyzSGjFpQHoBiy2EosAiBY3dccy9aV2nNVKaBLHgITaLuIN5IFSACQ +AOZnVp8WTA== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_version_number_match/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_version_number_match/dac-Key.der index 4a0a330093abc2..52af5762814825 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_version_number_match/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_version_number_match/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_version_number_match/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_version_number_match/dac-Key.pem index a4fba5e94022eb..1178096b3fc9e6 100644 --- a/credentials/development/commissioner_dut/struct_cd_version_number_match/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_version_number_match/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEILcwQTAWqhFvfLCHi8D6/1Y56CkUO+PcJvdKG+2jShhDoAoGCCqGSM49 -AwEHoUQDQgAEoIBVl+4vhxeO0sEEU987hKUgnkMdbtPrSAulg/uLQvlytKkV5C9M -uzpk/buvn31sKgs+FdtV1Y+DzFGhu2N0/A== +MHcCAQEEIBA/o+2TnsvVeqFMwW5jj5Mwm36XMIhnhx1y6WIfwfdOoAoGCCqGSM49 +AwEHoUQDQgAE7JbSzTO5VMyMN3Z4HsnHdyQ4m9SOK9yQQplfEPLQ7k0WuURB6myU +K6Rmv7dBEdiJYDXGqvU9p7Vj83didnZNDA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_version_number_match/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_version_number_match/pai-Cert.der index 5d3c0cd473acbe..8c10bfe257c97c 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_version_number_match/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_version_number_match/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_version_number_match/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_version_number_match/pai-Cert.pem index 0f9d7f569f0b11..e4fbacb804d02d 100644 --- a/credentials/development/commissioner_dut/struct_cd_version_number_match/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_version_number_match/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIbgBPmdYDFXUwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1DCCAXqgAwIBAgIIfaGEMbCpoq4wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAT44l3a/JRzaY9sGILSSfy+Xa1/S6vZ -n/JkdjrxwJl1PihglhqmMk5pdm1XGo0VZH4pCrzOs+1+GD4/TOIj6M5ro2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUNyAu -R2ckG7LDK1lpfIYQZotVsXswHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIhALdqhZyCujWCxx7r4PZUh9Y0qOjthuQTHHTC -+k4MEc1rAiAbF6NgjTlouO4m07r1fNdYJy9MRyFAJ0EnIajX9F1A2Q== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASSDXhqmmew/MBlHHUmnyuZcYux6AOj +9uDXfEgVS3oSN95ErMnMwBCLw5Wqx5G1D88t0+ps0iSeuP6QXeHFvzefo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUz1KU +bYL+TgnL4nveRU6d3/4vy7UwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIhAMndI9FQNs9wOcUwxp3wCeZJgG3yBJcV9bR1 +BBs6eUq0AiB7wIRRF1ZCzB/Uqur4TBV9FYRlTCpVTdzUn+IdSPEqfQ== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_version_number_match/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_version_number_match/pai-Key.der index ec5cce72b652ff..cc40c64a4e1eb9 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_version_number_match/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_version_number_match/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_version_number_match/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_version_number_match/pai-Key.pem index 8132a218dd30c0..e923c3043dd383 100644 --- a/credentials/development/commissioner_dut/struct_cd_version_number_match/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_version_number_match/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIFVRIHxYzSxG2gG/WX8FkdOJGNsEsSnOAcUZLvc4TwanoAoGCCqGSM49 -AwEHoUQDQgAE+OJd2vyUc2mPbBiC0kn8vl2tf0ur2Z/yZHY68cCZdT4oYJYapjJO -aXZtVxqNFWR+KQq8zrPtfhg+P0ziI+jOaw== +MHcCAQEEIKQtD5nMcGn9ebCoeK9ZsnykL3b60NNnwNOoVw2HPV5NoAoGCCqGSM49 +AwEHoUQDQgAEkg14appnsPzAZRx1Jp8rmXGLsegDo/bg13xIFUt6EjfeRKzJzMAQ +i8OVqseRtQ/PLdPqbNIknrj+kF3hxb83nw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_version_number_match/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_version_number_match/test_case_vector.json index f9d5fe8998c555..23c30d1e8a3faa 100644 --- a/credentials/development/commissioner_dut/struct_cd_version_number_match/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_version_number_match/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The version_number field matches the VID and PID used in a DeviceSoftwareVersionModel entry in the DCL matching the certification record associated with the product presenting this CD.", "is_success_case": "true", - "dac_cert": "308201e43082018aa00302010202081e6ff20708a9cee1300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004a0805597ee2f87178ed2c10453df3b84a5209e431d6ed3eb480ba583fb8b42f972b4a915e42f4cbb3a64fdbbaf9f7d6c2a0b3e15db55d58f83cc51a1bb6374fca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414a7af6eec54fec55d161ed24fd8240c2215c801f5301f0603551d2304183016801437202e4767241bb2c32b59697c8610668b55b17b300a06082a8648ce3d0403020348003045022008072d2c4d947ed9cf4fdf1768290769a1f6d30f796de9798656e2109d65e096022100ffae084f77240d48e2ca861fd7ea67aba8b104817d868ff802dc11d31687237b", - "pai_cert": "308201d43082017aa00302010202086e004f99d6031575300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004f8e25ddafc9473698f6c1882d249fcbe5dad7f4babd99ff264763af1c099753e2860961aa6324e69766d571a8d15647e290abcceb3ed7e183e3f4ce223e8ce6ba366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e0416041437202e4767241bb2c32b59697c8610668b55b17b301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100b76a859c82ba3582c71eebe0f65487d634a8e8ed86e4131c74c2fa4e0c11cd6b02201b17a3608d3968b8ee26d3baf57cd758272f4c47214027412721a8d7f45d40d9", - "certification_declaration": "3082010106092a864886f70d010702a081f33081f0020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402200f7e62d267c01cd3786adf4486609d66d5fe0a7241d800f415f64090a3bd429f0220279e9c286cb14c2d25e138e5e98da129315eca49680ff3eecc42afe7213729a8", - "dac_private_key": "b730413016aa116f7cb0878bc0faff5639e829143be3dc26f74a1beda34a1843", - "dac_public_key": "04a0805597ee2f87178ed2c10453df3b84a5209e431d6ed3eb480ba583fb8b42f972b4a915e42f4cbb3a64fdbbaf9f7d6c2a0b3e15db55d58f83cc51a1bb6374fc" + "dac_cert": "308201e33082018aa00302010202087de372740cd80652300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004ec96d2cd33b954cc8c3776781ec9c77724389bd48e2bdc9042995f10f2d0ee4d16b94441ea6c942ba466bfb74111d8896035c6aaf53da7b563f3776276764d0ca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041413ac1c4d7b4f2fbf9956fa20e4f8e604a79d28a1301f0603551d23041830168014cf52946d82fe4e09cbe27bde454e9ddffe2fcbb5300a06082a8648ce3d040302034700304402204921431c5f2f2cbbc20e5d1cdecf6bfe62c828f2cd21a3169407a018b2d84a2c022058ddd71ccbd695da735529a04b1e021368bb8837920548009000e667569f164c", + "pai_cert": "308201d43082017aa00302010202087da18431b0a9a2ae300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004920d786a9a67b0fcc0651c75269f2b99718bb1e803a3f6e0d77c48154b7a1237de44acc9ccc0108bc395aac791b50fcf2dd3ea6cd2249eb8fe905de1c5bf379fa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414cf52946d82fe4e09cbe27bde454e9ddffe2fcbb5301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100c9dd23d15036cf7039c530c69df009e649806df2049715f5b475041b3a794ab402207bc08451175642cc1fd4aaeaf84c157d1584654c2a554ddcd49fe21d48f12a7d", + "certification_declaration": "3082010106092a864886f70d010702a081f33081f0020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402201ad050638ab544e4f68e402486df11d985548b378fdfef37f9e9ab7c906058b7022040c8ec8ca53bdf6679c09e0b3fb1b648f6eca1c58de8c4a2752183a1818778d5", + "dac_private_key": "103fa3ed939ecbd57aa14cc16e638f93309b7e97308867871d72e9621fc1f74e", + "dac_public_key": "04ec96d2cd33b954cc8c3776781ec9c77724389bd48e2bdc9042995f10f2d0ee4d16b94441ea6c942ba466bfb74111d8896035c6aaf53da7b563f3776276764d0c" } diff --git a/credentials/development/commissioner_dut/struct_cd_version_number_missing/cd.der b/credentials/development/commissioner_dut/struct_cd_version_number_missing/cd.der index b07333da99ee25..9a0fdcaa79e260 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_version_number_missing/cd.der and b/credentials/development/commissioner_dut/struct_cd_version_number_missing/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_version_number_missing/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_version_number_missing/dac-Cert.der index 3e2f80644a09d2..66c4575631f41c 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_version_number_missing/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_version_number_missing/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_version_number_missing/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_version_number_missing/dac-Cert.pem index 49ed7185cb91d4..06639bf77b18c6 100644 --- a/credentials/development/commissioner_dut/struct_cd_version_number_missing/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_version_number_missing/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5TCCAYqgAwIBAgIIe5DzJ8lIqH0wCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB4zCCAYqgAwIBAgIIXxBoxL3QZUYwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -KbggDZQkcLFv861ejvBGR4yQw79EGRX9RcX1DGjvwK2IbNkP1RLQv8f9bXqds7Dn -p1bN2GPY7zdcKiTK5OxRp6NgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFOWR6Pmi8MmKAAAgjjUErPEEEqndMB8GA1UdIwQYMBaAFMV8 -lt+EwEF+BqJyHWV27aq0piJ1MAoGCCqGSM49BAMCA0kAMEYCIQDNZA4b+s+RlovF -QzOBiLq/N2sOQkV3IbOzrL9+dpj9yAIhALMNMBZmsfthinVhKq1Tpue98vmpyqaD -/eTd0Krbz11x +hb/nkDzg3jfeSTLN4zQD9RMz8selhZ15eDRpclvq2CFw2BtJqmduRG+i+sPnPMHB +qud3ZX9VR2U2ii06AH9/UaNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFAtoTWbqNkaNtB334DgABcNU2yu/MB8GA1UdIwQYMBaAFNHY +IeEWRpgCz6hcCgxUiYuxA/T2MAoGCCqGSM49BAMCA0cAMEQCIGGmkkqiaZvr6e8p +Z/tVV7uphJW1NtXI56OJbM3DqD+0AiAo7OJJg1sMom24CmRgCR+3RmftrWWkbIdJ +Q5uYoM4hmg== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_version_number_missing/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_version_number_missing/dac-Key.der index 9d81b18b0dedae..a2eea19a5b0d65 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_version_number_missing/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_version_number_missing/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_version_number_missing/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_version_number_missing/dac-Key.pem index 10e4a7d357996d..684d9f2ffa2f3a 100644 --- a/credentials/development/commissioner_dut/struct_cd_version_number_missing/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_version_number_missing/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEICZmr+9iLlSfMu/d44csNBxEVLm7uF6iND0j/7eo7a6poAoGCCqGSM49 -AwEHoUQDQgAEKbggDZQkcLFv861ejvBGR4yQw79EGRX9RcX1DGjvwK2IbNkP1RLQ -v8f9bXqds7Dnp1bN2GPY7zdcKiTK5OxRpw== +MHcCAQEEIMGY0QaOgvwjfzny0/JPTsMhHbw+3MSJpuyDPF0M2Q2FoAoGCCqGSM49 +AwEHoUQDQgAEhb/nkDzg3jfeSTLN4zQD9RMz8selhZ15eDRpclvq2CFw2BtJqmdu +RG+i+sPnPMHBqud3ZX9VR2U2ii06AH9/UQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_version_number_missing/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_version_number_missing/pai-Cert.der index a87ab0db1dd159..bdb4a90762757d 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_version_number_missing/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_version_number_missing/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_version_number_missing/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_version_number_missing/pai-Cert.pem index 2cc605be803067..af44246698186b 100644 --- a/credentials/development/commissioner_dut/struct_cd_version_number_missing/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_version_number_missing/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIBZ0FoZNceuswCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1DCCAXqgAwIBAgIIWwjFBlkcmr8wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQCxzF8oEN+uABEayi7Wei09akDWnS3 -p1tNbr4uG9oJitDE8Ib7EUisnxuSJtO5xYQCdQrHtwiyBo89JB3YZJQBo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUxXyW -34TAQX4GonIdZXbtqrSmInUwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIhAJ7qrm1XPejeyq0XOewn5LDjCj7QZ+irP9h6 -kgFrnLSPAiAYGDDkrQGkhRojbh2HHjB8lvrcCrPg4mlFZ3Qgq1N53Q== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQdunMkednzImnq30CKoIEwL3WMDR9Z ++HcqqU5gSAAea1FA7ipnIPfZgH19dgJgPC70zu/LlUbVZweiJsYAym5oo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU0dgh +4RZGmALPqFwKDFSJi7ED9PYwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIhALzXzchh1tWrKHkAfsqyU89v2+SoCcrkHVj5 +D6cfmOYsAiAo8NsBDf0jvxZOPxFK6m9cxPS2/JLkre2dpxU57EztXw== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_version_number_missing/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_version_number_missing/pai-Key.der index 0be81f55552497..caeccf4b0f67e4 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_version_number_missing/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_version_number_missing/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_version_number_missing/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_version_number_missing/pai-Key.pem index 18d1ae2637534a..7d067456162d2a 100644 --- a/credentials/development/commissioner_dut/struct_cd_version_number_missing/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_version_number_missing/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIJ1/KEXFhGGVeLvK0XJ22SO1mTcQowLwyKC9mXgcfCvpoAoGCCqGSM49 -AwEHoUQDQgAEAscxfKBDfrgARGsou1notPWpA1p0t6dbTW6+LhvaCYrQxPCG+xFI -rJ8bkibTucWEAnUKx7cIsgaPPSQd2GSUAQ== +MHcCAQEEIGjZOiHg2e18lJTglmcl2jhm6jGlygzlJ9xba312ilt9oAoGCCqGSM49 +AwEHoUQDQgAEHbpzJHnZ8yJp6t9AiqCBMC91jA0fWfh3KqlOYEgAHmtRQO4qZyD3 +2YB9fXYCYDwu9M7vy5VG1WcHoibGAMpuaA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_version_number_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_version_number_missing/test_case_vector.json index ccb5e2c06bbf0c..11d5271300088b 100644 --- a/credentials/development/commissioner_dut/struct_cd_version_number_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_version_number_missing/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The version_number field is missing.", "is_success_case": "true", - "dac_cert": "308201e53082018aa00302010202087b90f327c948a87d300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000429b8200d942470b16ff3ad5e8ef046478c90c3bf441915fd45c5f50c68efc0ad886cd90fd512d0bfc7fd6d7a9db3b0e7a756cdd863d8ef375c2a24cae4ec51a7a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414e591e8f9a2f0c98a0000208e3504acf10412a9dd301f0603551d23041830168014c57c96df84c0417e06a2721d6576edaab4a62275300a06082a8648ce3d0403020349003046022100cd640e1bfacf91968bc543338188babf376b0e42457721b3b3acbf7e7698fdc8022100b30d301666b1fb618a75612aad53a6e7bdf2f9a9caa683fde4ddd0aadbcf5d71", - "pai_cert": "308201d43082017aa0030201020208059d05a1935c7aeb300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000402c7317ca0437eb800446b28bb59e8b4f5a9035a74b7a75b4d6ebe2e1bda098ad0c4f086fb1148ac9f1b9226d3b9c58402750ac7b708b2068f3d241dd8649401a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414c57c96df84c0417e06a2721d6576edaab4a62275301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203480030450221009eeaae6d573de8decaad1739ec27e4b0e30a3ed067e8ab3fd87a92016b9cb48f0220181830e4ad01a4851a236e1d871e307c96fadc0ab3e0e26945677420ab5379dd", - "certification_declaration": "3081fe06092a864886f70d010702a081f03081ed020103310d300b0609608648016503040201305a06092a864886f70d010701a04d044b152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d3234240500240600240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502201157e55479d4bd66b470f3282cd7f02df657c485fff508a820ed75b6193c813c0221008214b655a27a6e7a4fdde6c6d3cd6d8dc5d3ad268c1cf6c5911608165d26d902", - "dac_private_key": "2666afef622e549f32efdde3872c341c4454b9bbb85ea2343d23ffb7a8edaea9", - "dac_public_key": "0429b8200d942470b16ff3ad5e8ef046478c90c3bf441915fd45c5f50c68efc0ad886cd90fd512d0bfc7fd6d7a9db3b0e7a756cdd863d8ef375c2a24cae4ec51a7" + "dac_cert": "308201e33082018aa00302010202085f1068c4bdd06546300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000485bfe7903ce0de37de4932cde33403f51333f2c7a5859d79783469725bead82170d81b49aa676e446fa2fac3e73cc1c1aae777657f554765368a2d3a007f7f51a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604140b684d66ea36468db41df7e0380005c354db2bbf301f0603551d23041830168014d1d821e116469802cfa85c0a0c54898bb103f4f6300a06082a8648ce3d0403020347003044022061a6924aa2699bebe9ef2967fb5557bba98495b536d5c8e7a3896ccdc3a83fb4022028ece249835b0ca26db80a6460091fb74667edad65a46c8749439b98a0ce219a", + "pai_cert": "308201d43082017aa00302010202085b08c506591c9abf300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200041dba732479d9f32269eadf408aa081302f758c0d1f59f8772aa94e6048001e6b5140ee2a6720f7d9807d7d7602603c2ef4ceefcb9546d56707a226c600ca6e68a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414d1d821e116469802cfa85c0a0c54898bb103f4f6301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100bcd7cdc861d6d5ab2879007ecab253cf6fdbe4a809cae41d58f90fa71f98e62c022028f0db010dfd23bf164e3f114aea6f5cc4f4b6fc92e4aded9da71539ec4ced5f", + "certification_declaration": "3081fd06092a864886f70d010702a081ef3081ec020103310d300b0609608648016503040201305a06092a864886f70d010701a04d044b152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d3234240500240600240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402203b7959d51993ded96026d187f75989d284d4249f8d3cc6f649bd397a35f36a59022061b6917d5bda6787087073164360471bcfd77d40ccdd162b72f5248c4e8bfd7c", + "dac_private_key": "c198d1068e82fc237f39f2d3f24f4ec3211dbc3edcc489a6ec833c5d0cd90d85", + "dac_public_key": "0485bfe7903ce0de37de4932cde33403f51333f2c7a5859d79783469725bead82170d81b49aa676e446fa2fac3e73cc1c1aae777657f554765368a2d3a007f7f51" } diff --git a/credentials/development/commissioner_dut/struct_cd_version_number_wrong/cd.der b/credentials/development/commissioner_dut/struct_cd_version_number_wrong/cd.der index 89990442431930..3c6ce8365c17e5 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_version_number_wrong/cd.der and b/credentials/development/commissioner_dut/struct_cd_version_number_wrong/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_version_number_wrong/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_version_number_wrong/dac-Cert.der index 95bab359a07b25..13c8d43f716a0f 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_version_number_wrong/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_version_number_wrong/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_version_number_wrong/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_version_number_wrong/dac-Cert.pem index ec689acdf10df8..098a0083f786e9 100644 --- a/credentials/development/commissioner_dut/struct_cd_version_number_wrong/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_version_number_wrong/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB4zCCAYqgAwIBAgIIRHWAI9XN7lgwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB4zCCAYqgAwIBAgIIO3glKaYArLwwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -TEKG7ImMe3GamPotw3oKJ0af2L/zRzgGGxpW66h0G4Q02v62pnxF3RyCY3/IvE+O -q7TW6QmK/mkw31Wlv3VgWqNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFOaSf9YFPe5L+x2bBtUkOO7GgaBCMB8GA1UdIwQYMBaAFGuP -DhpW3pJtP81lXMOgKqV2VvJIMAoGCCqGSM49BAMCA0cAMEQCIB9/8/OVy9fZRakV -XJkAxxrhFuhQjicP/oD3N+vhKoGuAiB45RK8Fhudrdj1UX/0LWazYhFxeeaUNBtJ -K6x7sLDZeA== +0Dpc83WB3/eyKxLk7yHRkTJt7mAg/TtJy3hFluN/jKlVEDVEJbHOba1/75Iq/QY7 +p5Wo4Lt5G1QgErxR/diXpqNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFDygFv36cZA/0HNtio+ZlxOQr9I7MB8GA1UdIwQYMBaAFNkj +IJMGXTeP+RRKx6CGeT45lCI2MAoGCCqGSM49BAMCA0cAMEQCIE7hQ8zXL2DuxHUc +PZ0kfXVsf7g0l1JWM4tOxYBQB8VVAiAxsTyMz3LBMYRtzUKp2cgIkqAKF6iuOHEb +aNd0iYjMEA== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_version_number_wrong/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_version_number_wrong/dac-Key.der index a9c6908894e349..1f5f0c377fcb6c 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_version_number_wrong/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_version_number_wrong/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_version_number_wrong/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_version_number_wrong/dac-Key.pem index ef270b7251690b..0b15ea25d96965 100644 --- a/credentials/development/commissioner_dut/struct_cd_version_number_wrong/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_version_number_wrong/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIOelSy6ySSXyClwV7p6e6TsIZjdJgYxnRUqD2h4s5f37oAoGCCqGSM49 -AwEHoUQDQgAETEKG7ImMe3GamPotw3oKJ0af2L/zRzgGGxpW66h0G4Q02v62pnxF -3RyCY3/IvE+Oq7TW6QmK/mkw31Wlv3VgWg== +MHcCAQEEIIwCFX+eY8IayvXDbcWy62FRMFgWzgCPBFEZdXRIPo7koAoGCCqGSM49 +AwEHoUQDQgAE0Dpc83WB3/eyKxLk7yHRkTJt7mAg/TtJy3hFluN/jKlVEDVEJbHO +ba1/75Iq/QY7p5Wo4Lt5G1QgErxR/diXpg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_version_number_wrong/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_version_number_wrong/pai-Cert.der index c0b15acd5f6023..0bbf7f4c982270 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_version_number_wrong/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_version_number_wrong/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_version_number_wrong/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_version_number_wrong/pai-Cert.pem index bf8448678ce99d..f37605abca2734 100644 --- a/credentials/development/commissioner_dut/struct_cd_version_number_wrong/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_version_number_wrong/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1TCCAXqgAwIBAgIIIR+EJtrV6TIwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB1DCCAXqgAwIBAgIIeJcidC1ih1wwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQMDbACvU2dnkDA+et2wqfJqlNnfMep -EuVXRoxEqYZKAjHioZNtmHNg8QVUFdo02d41U7htTEX0nxFJ+QPnQ8Pwo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUa48O -Glbekm0/zWVcw6AqpXZW8kgwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSQAwRgIhAOf/04IdZtDrX4lKiASX59AR0AuCAQdBJEYN -vq+CZNGwAiEAxnzihlwEvlwWxXG9hjc4KqT2SZQnzDOLnF8zKX91rj4= +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQp0+bklPcWoNSCiVlTCMrjW2A6fBy0 +PS/2wQwhA26+35W9xjZGKBloqp8P7/4pA5x+VJJ34LT3zr1ByDX6QQBto2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU2SMg +kwZdN4/5FErHoIZ5PjmUIjYwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIgZHbpRgX3YRoocptPf0jr7C25QuyWju9k9OcW +pLtmVe8CIQCRU16IozngIwGHZxX/06OVKu1sXRNObHOunUOgls54ug== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_version_number_wrong/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_version_number_wrong/pai-Key.der index 6b65288779f570..d36c298843cf83 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_version_number_wrong/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_version_number_wrong/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_version_number_wrong/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_version_number_wrong/pai-Key.pem index f18c8ec9763ce7..1e5d89a0799ca9 100644 --- a/credentials/development/commissioner_dut/struct_cd_version_number_wrong/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_version_number_wrong/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIEXrFkMrkPI1eRh2r/IsllRGGvlNPThy9Rklp2cAPtZnoAoGCCqGSM49 -AwEHoUQDQgAEDA2wAr1NnZ5AwPnrdsKnyapTZ3zHqRLlV0aMRKmGSgIx4qGTbZhz -YPEFVBXaNNneNVO4bUxF9J8RSfkD50PD8A== +MHcCAQEEIA0ZqEbY8baBBTfb13oimJADlTNFOMmhRxAIx9IdPwV/oAoGCCqGSM49 +AwEHoUQDQgAEKdPm5JT3FqDUgolZUwjK41tgOnwctD0v9sEMIQNuvt+VvcY2RigZ +aKqfD+/+KQOcflSSd+C09869Qcg1+kEAbQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_version_number_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_version_number_wrong/test_case_vector.json index 890a96f4f8edb1..ff75af9fc2740a 100644 --- a/credentials/development/commissioner_dut/struct_cd_version_number_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_version_number_wrong/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The version_number field doesn't match the VID and PID used in a DeviceSoftwareVersionModel entry in the DCL matching the certification record associated with the product presenting this CD.", "is_success_case": "false", - "dac_cert": "308201e33082018aa003020102020844758023d5cdee58300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200044c4286ec898c7b719a98fa2dc37a0a27469fd8bff34738061b1a56eba8741b8434dafeb6a67c45dd1c82637fc8bc4f8eabb4d6e9098afe6930df55a5bf75605aa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414e6927fd6053dee4bfb1d9b06d52438eec681a042301f0603551d230418301680146b8f0e1a56de926d3fcd655cc3a02aa57656f248300a06082a8648ce3d040302034700304402201f7ff3f395cbd7d945a9155c9900c71ae116e8508e270ffe80f737ebe12a81ae022078e512bc161b9dadd8f5517ff42d66b362117179e694341b492bac7bb0b0d978", - "pai_cert": "308201d53082017aa0030201020208211f8426dad5e932300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200040c0db002bd4d9d9e40c0f9eb76c2a7c9aa53677cc7a912e557468c44a9864a0231e2a1936d987360f1055415da34d9de3553b86d4c45f49f1149f903e743c3f0a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604146b8f0e1a56de926d3fcd655cc3a02aa57656f248301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100e7ffd3821d66d0eb5f894a880497e7d011d00b8201074124460dbeaf8264d1b0022100c67ce2865c04be5c16c571bd8637382aa4f6499427cc338b9c5f33297f75ae3e", - "certification_declaration": "3082010206092a864886f70d010702a081f43081f1020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025078967240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100da62840ebeb53d534757931ca061b78abe1285477bc4560f0db28870f41c882f02206da0181b931d025bcafed7ea045530a72be58c9743951ab98e112960a69531ee", - "dac_private_key": "e7a54b2eb24925f20a5c15ee9e9ee93b08663749818c67454a83da1e2ce5fdfb", - "dac_public_key": "044c4286ec898c7b719a98fa2dc37a0a27469fd8bff34738061b1a56eba8741b8434dafeb6a67c45dd1c82637fc8bc4f8eabb4d6e9098afe6930df55a5bf75605a" + "dac_cert": "308201e33082018aa00302010202083b782529a600acbc300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004d03a5cf37581dff7b22b12e4ef21d191326dee6020fd3b49cb784596e37f8ca95510354425b1ce6dad7fef922afd063ba795a8e0bb791b542012bc51fdd897a6a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604143ca016fdfa71903fd0736d8a8f99971390afd23b301f0603551d23041830168014d9232093065d378ff9144ac7a086793e39942236300a06082a8648ce3d040302034700304402204ee143ccd72f60eec4751c3d9d247d756c7fb834975256338b4ec5805007c555022031b13c8ccf72c131846dcd42a9d9c80892a00a17a8ae38711b68d7748988cc10", + "pai_cert": "308201d43082017aa0030201020208789722742d62875c300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000429d3e6e494f716a0d48289595308cae35b603a7c1cb43d2ff6c10c21036ebedf95bdc63646281968aa9f0feffe29039c7e549277e0b4f7cebd41c835fa41006da366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414d9232093065d378ff9144ac7a086793e39942236301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502206476e94605f7611a28729b4f7f48ebec2db942ec968eef64f4e716a4bb6655ef02210091535e88a339e02301876715ffd3a3952aed6c5d134e6c73ae9d43a096ce78ba", + "certification_declaration": "3082010206092a864886f70d010702a081f43081f1020103310d300b0609608648016503040201305e06092a864886f70d010701a051044f152000012501f1ff360205008018250334122c04135a494732303134315a423333303030312d323424050024060025078967240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502210087e62fd2258fcac1b152a4327e21596d6bd32fd0a619b609caf9eb410b14f58a02205be39c074c528bf3357f4913b99f84c760b8261a3001667c111d6fb4f21b873c", + "dac_private_key": "8c02157f9e63c21acaf5c36dc5b2eb6151305816ce008f0451197574483e8ee4", + "dac_public_key": "04d03a5cf37581dff7b22b12e4ef21d191326dee6020fd3b49cb784596e37f8ca95510354425b1ce6dad7fef922afd063ba795a8e0bb791b542012bc51fdd897a6" } diff --git a/credentials/development/commissioner_dut/struct_cd_vid_mismatch/cd.der b/credentials/development/commissioner_dut/struct_cd_vid_mismatch/cd.der index 20a4845d4c1bed..65f3a9e64c5ad3 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_vid_mismatch/cd.der and b/credentials/development/commissioner_dut/struct_cd_vid_mismatch/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_vid_mismatch/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_vid_mismatch/dac-Cert.der index cb5bffc9bb86dc..7f21397118402d 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_vid_mismatch/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_vid_mismatch/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_vid_mismatch/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_vid_mismatch/dac-Cert.pem index 9d2e32a59e957c..65b5bdbee507e7 100644 --- a/credentials/development/commissioner_dut/struct_cd_vid_mismatch/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_vid_mismatch/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5TCCAYqgAwIBAgIIOcveKos3EAEwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5DCCAYqgAwIBAgIIIuKx6XkmDfMwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -qBcgxPGSTuIQ2x/guluecckbm0yOlZwOzJRbZFR4YvzUcuFEw94jDR2a6AFm5POl -xsn0Ig5I13HpkIj4Tm+LhaNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFNCc2Ta4XjZtQRzjLgxTinokz66TMB8GA1UdIwQYMBaAFFIx -uWZtvLQagstrf5guwol+Lv8sMAoGCCqGSM49BAMCA0kAMEYCIQCaVz9lresSBbSv -mouQnFEl8Q9HXybeYDL/FIxdijAhIwIhAKXkkQ46opHQAFxEtbeAyMvAozZhDodz -zmbHFLLlGaxV +duJARDw0kFu1NVvKkuZtKHaqolG5A+ohJSLHeqMyhUfHo6MYrIPH6seIy2K+oyhh +qMtWEJWIkB0lTcVe/9bwDKNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFAs2xgEIbHIy2QW9ix6yznXZqo7uMB8GA1UdIwQYMBaAFHqJ +gEtheXpAWlgMIqri1zqsF8+mMAoGCCqGSM49BAMCA0gAMEUCIGOcbapxJlonyfMo +JB0WA5nAnRUH5k/706TOLvf+IjiIAiEAkClat+MDKOtzJSAfQezFsOUG0Vins86L +OYZTLWV2krg= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_vid_mismatch/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_vid_mismatch/dac-Key.der index 9452cc73438031..8c1638ed7d9f1b 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_vid_mismatch/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_vid_mismatch/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_vid_mismatch/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_vid_mismatch/dac-Key.pem index 90ba8af8a49668..c8c29ce5a63c8e 100644 --- a/credentials/development/commissioner_dut/struct_cd_vid_mismatch/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_vid_mismatch/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIPrOE+FinVLoBLe3SNFj+Bw7HUjlGghqXYuNOx984AiEoAoGCCqGSM49 -AwEHoUQDQgAEqBcgxPGSTuIQ2x/guluecckbm0yOlZwOzJRbZFR4YvzUcuFEw94j -DR2a6AFm5POlxsn0Ig5I13HpkIj4Tm+LhQ== +MHcCAQEEICvKu02wunEmOg4L/E1trjbbF5V6jmOsFS+UGfGhKwP5oAoGCCqGSM49 +AwEHoUQDQgAEduJARDw0kFu1NVvKkuZtKHaqolG5A+ohJSLHeqMyhUfHo6MYrIPH +6seIy2K+oyhhqMtWEJWIkB0lTcVe/9bwDA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_vid_mismatch/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_vid_mismatch/pai-Cert.der index 2e4e85de7213e7..567fe90f1d75ef 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_vid_mismatch/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_vid_mismatch/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_vid_mismatch/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_vid_mismatch/pai-Cert.pem index 4a8541a5817142..dd85a943af4929 100644 --- a/credentials/development/commissioner_dut/struct_cd_vid_mismatch/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_vid_mismatch/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIImMHXt/Sm7kwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB0zCCAXqgAwIBAgIIGSKgoX9NIEkwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ7VVk7W+vm0/R56RyGd9VVF2tyY71d -/ScRvFDZd1Plr1eRDS0jnWkK5LEbaLYwzXBNnxn05s1Th55xFJXeUwW+o2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUUjG5 -Zm28tBqCy2t/mC7CiX4u/ywwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIgDX4kD8hB7Xq8o5JHvrpV4MXxTeeojhxy04FJ -XDAD3+ECIQC5YrjY806+enx/ZuvnLiA11B06+6qaXih5Y8DPVEaXCA== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR/oJC2BUTw7P8XTi/v+2NL5Vh8bf+S +FoP4bAJYUomsB0kn8BG9GSdxKKelow/Aoq7AR9na+enMy6hAax586ZqAo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUeomA +S2F5ekBaWAwiquLXOqwXz6YwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDRwAwRAIgYnm5S7xk75obAOXsd5QugAJfgSnFqeSnICiH +dUCPItMCIDEv525ejFyF9uHEE2X6bkx3sjxnQN8PYjzPvLdEXsNs -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_vid_mismatch/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_vid_mismatch/pai-Key.der index 449857cad1fc89..07d594b7ecb209 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_vid_mismatch/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_vid_mismatch/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_vid_mismatch/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_vid_mismatch/pai-Key.pem index 829baf3b07a2c8..80b13b870101eb 100644 --- a/credentials/development/commissioner_dut/struct_cd_vid_mismatch/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_vid_mismatch/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIG9hXzdH3bCO6bVabRCZbj1Z1atyQCvieVoeqK8BllqioAoGCCqGSM49 -AwEHoUQDQgAEO1VZO1vr5tP0eekchnfVVRdrcmO9Xf0nEbxQ2XdT5a9XkQ0tI51p -CuSxG2i2MM1wTZ8Z9ObNU4eecRSV3lMFvg== +MHcCAQEEINEe6p4/hQFm73YvxKkjMwrzinsEOEeHq/8aQRNgW5tuoAoGCCqGSM49 +AwEHoUQDQgAEf6CQtgVE8Oz/F04v7/tjS+VYfG3/khaD+GwCWFKJrAdJJ/ARvRkn +cSinpaMPwKKuwEfZ2vnpzMuoQGsefOmagA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_vid_mismatch/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_vid_mismatch/test_case_vector.json index 171239421fe7a3..007631589f4cab 100644 --- a/credentials/development/commissioner_dut/struct_cd_vid_mismatch/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_vid_mismatch/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The vendor_id field doesn't match the VID in DAC.", "is_success_case": "false", - "dac_cert": "308201e53082018aa003020102020839cbde2a8b371001300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004a81720c4f1924ee210db1fe0ba5b9e71c91b9b4c8e959c0ecc945b64547862fcd472e144c3de230d1d9ae80166e4f3a5c6c9f4220e48d771e99088f84e6f8b85a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414d09cd936b85e366d411ce32e0c538a7a24cfae93301f0603551d230418301680145231b9666dbcb41a82cb6b7f982ec2897e2eff2c300a06082a8648ce3d04030203490030460221009a573f65adeb1205b4af9a8b909c5125f10f475f26de6032ff148c5d8a302123022100a5e4910e3aa291d0005c44b5b780c8cbc0a336610e8773ce66c714b2e519ac55", - "pai_cert": "308201d43082017aa00302010202082263075edfd29bb9300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200043b55593b5bebe6d3f479e91c8677d555176b7263bd5dfd2711bc50d97753e5af57910d2d239d690ae4b11b68b630cd704d9f19f4e6cd53879e711495de5305bea366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604145231b9666dbcb41a82cb6b7f982ec2897e2eff2c301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502200d7e240fc841ed7abca39247beba55e0c5f14de7a88e1c72d381495c3003dfe1022100b962b8d8f34ebe7a7c7f66ebe72e2035d41d3afbaa9a5e287963c0cf54469708", - "certification_declaration": "3082010206092a864886f70d010702a081f43081f1020103310d300b0609608648016503040201305d06092a864886f70d010701a050044e1520000124010e360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044830460221009cecb327c1f8141a190c77233f8ddc79bdd635580285dfee6abb9add2a0751bc022100ff6974085a48755d75e50a221106382d2bf622c6ed4624603e7c11f0cc20c579", - "dac_private_key": "face13e1629d52e804b7b748d163f81c3b1d48e51a086a5d8b8d3b1f7ce00884", - "dac_public_key": "04a81720c4f1924ee210db1fe0ba5b9e71c91b9b4c8e959c0ecc945b64547862fcd472e144c3de230d1d9ae80166e4f3a5c6c9f4220e48d771e99088f84e6f8b85" + "dac_cert": "308201e43082018aa003020102020822e2b1e979260df3300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000476e240443c34905bb5355bca92e66d2876aaa251b903ea212522c77aa3328547c7a3a318ac83c7eac788cb62bea32861a8cb56109588901d254dc55effd6f00ca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604140b36c601086c7232d905bd8b1eb2ce75d9aa8eee301f0603551d230418301680147a89804b61797a405a580c22aae2d73aac17cfa6300a06082a8648ce3d04030203480030450220639c6daa71265a27c9f328241d160399c09d1507e64ffbd3a4ce2ef7fe22388802210090295ab7e30328eb7325201f41ecc5b0e506d158a7b3ce8b3986532d657692b8", + "pai_cert": "308201d33082017aa00302010202081922a0a17f4d2049300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200047fa090b60544f0ecff174e2feffb634be5587c6dff921683f86c02585289ac074927f011bd19277128a7a5a30fc0a2aec047d9daf9e9cccba8406b1e7ce99a80a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604147a89804b61797a405a580c22aae2d73aac17cfa6301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402206279b94bbc64ef9a1b00e5ec77942e80025f8129c5a9e4a720288775408f22d30220312fe76e5e8c5c85f6e1c41365fa6e4c77b23c6740df0f623ccfbcb7445ec36c", + "certification_declaration": "3082010206092a864886f70d010702a081f43081f1020103310d300b0609608648016503040201305d06092a864886f70d010701a050044e1520000124010e360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100b88fedd6477eb447cfcaf0ee58b73c4b3f164246ff0f7c55929b90928204f712022100f14079ed90603b57784dc7742d672d48e223a98d579db1edb801f6e2deb4ed11", + "dac_private_key": "2bcabb4db0ba71263a0e0bfc4d6dae36db17957a8e63ac152f9419f1a12b03f9", + "dac_public_key": "0476e240443c34905bb5355bca92e66d2876aaa251b903ea212522c77aa3328547c7a3a318ac83c7eac788cb62bea32861a8cb56109588901d254dc55effd6f00c" } diff --git a/credentials/development/commissioner_dut/struct_cd_vid_missing/cd.der b/credentials/development/commissioner_dut/struct_cd_vid_missing/cd.der index b6452ee41ad238..4ab65e37335021 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_vid_missing/cd.der and b/credentials/development/commissioner_dut/struct_cd_vid_missing/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_vid_missing/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_vid_missing/dac-Cert.der index 5132070338072f..84f885ac23966d 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_vid_missing/dac-Cert.der and b/credentials/development/commissioner_dut/struct_cd_vid_missing/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_vid_missing/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_vid_missing/dac-Cert.pem index 0bb0f9dfcc9c66..c6d10050f80c12 100644 --- a/credentials/development/commissioner_dut/struct_cd_vid_missing/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_vid_missing/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB5TCCAYqgAwIBAgIIHbs1hdjFASgwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB5DCCAYqgAwIBAgIIJ7CM1NMr3qgwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDgwMDAwIBcNMjIwNTEzMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx +gqJ8AgIMBDgwMDAwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -LjFgARXP0wJXRAgfJfyWYvK4U9SiqWnxRzOeAQOl3jl40x/nlqPv3IlgVrzKaGsE -DMEEtfd4hhAWdtgJTwb8rKNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC -B4AwHQYDVR0OBBYEFHwcLKfGMWrIa2SG8Sc32dX0GscZMB8GA1UdIwQYMBaAFKIO -+2+8IEGWiSZ1zAr6iUUOydodMAoGCCqGSM49BAMCA0kAMEYCIQClecTPeX6U/DC4 -NDj0c9iwWdc6LXfhWRsyfsA2y1ZD5gIhAPcS16cJQibQktHuKwqxMvfTLVT7zHvm -gCBz26V+lGE5 +3NBPvwhnU9HJr8A59Xslvr7/ebz37hT0qw4jI9YgdrYAYajKVQaEH4Ywqrah/rHy +lcVdZTu/AKctEuCgB522dqNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC +B4AwHQYDVR0OBBYEFHtD4hksZmpfOKZDLHYEF1YjKn2/MB8GA1UdIwQYMBaAFEu1 +IKKN1Rlc0iecXxVrfoKxrLGFMAoGCCqGSM49BAMCA0gAMEUCIQDH1J1REn/eX3DN +zJK/Majq2KjCyUSAprI9mFxQXtIMygIgWejTMO7RLgu/qb6hk4TNElodgbmdivPq +NS78EZwQkdc= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_vid_missing/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_vid_missing/dac-Key.der index a00d6d544befea..148b240cf66810 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_vid_missing/dac-Key.der and b/credentials/development/commissioner_dut/struct_cd_vid_missing/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_vid_missing/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_vid_missing/dac-Key.pem index 06bf6d8b5c6c2e..32b7d99e88f4a9 100644 --- a/credentials/development/commissioner_dut/struct_cd_vid_missing/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_vid_missing/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIJ5eTIvmcjtQxy39ymUdqxu5KiqpIjQjC4fJr3PX2YO8oAoGCCqGSM49 -AwEHoUQDQgAELjFgARXP0wJXRAgfJfyWYvK4U9SiqWnxRzOeAQOl3jl40x/nlqPv -3IlgVrzKaGsEDMEEtfd4hhAWdtgJTwb8rA== +MHcCAQEEIO/kh8a2zmLLjp0jKrjyfULiqT4xUm9xVyHuQQprRpsAoAoGCCqGSM49 +AwEHoUQDQgAE3NBPvwhnU9HJr8A59Xslvr7/ebz37hT0qw4jI9YgdrYAYajKVQaE +H4Ywqrah/rHylcVdZTu/AKctEuCgB522dg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_vid_missing/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_vid_missing/pai-Cert.der index e25929dc44fbc1..99affa311f80e4 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_vid_missing/pai-Cert.der and b/credentials/development/commissioner_dut/struct_cd_vid_missing/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_vid_missing/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_vid_missing/pai-Cert.pem index 4d153408fbf70d..e15a71b9a531ea 100644 --- a/credentials/development/commissioner_dut/struct_cd_vid_missing/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_cd_vid_missing/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIXGvLy9D1Wl0wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1MTMw +MIIB0zCCAXqgAwIBAgIIVZ5GUukCNmUwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAT+ybj1bdHukJD1cABOikqqXqYomVjp -lVn+sUiigOJcXbNYKbJWbhO/9S8SR7GCNhCaH3GuEjYl8GOBaqkLocEXo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUog77 -b7wgQZaJJnXMCvqJRQ7J2h0wHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIhAKtFAWA4LM3z1FP2JG/TonZiCb/MU+1sYCCB -Lg7Jm872AiB+E51+Ks6uH3x1krVbkG4KhF41DgqKcClpTxfOHcUnCg== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATAXapYbncS/Z13S5jQPuqG2Zxm3gvQ +A2KQBGf0xEIu9n6NFHHPRnWr2r4iFHbuz6C4TjU+xulJcpm8F4Rn1rm8o2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUS7Ug +oo3VGVzSJ5xfFWt+grGssYUwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDRwAwRAIgXdnOLyLmm2Yu9YZex7BlXFlgVYJpUL7GOBPo +vlhVWTACIEEe6YgHz/34bd2/sCLDKjbUW/4ezaAxB/45+7OMcWJN -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_cd_vid_missing/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_vid_missing/pai-Key.der index 0b976abc509635..1d6784b11d1a23 100644 Binary files a/credentials/development/commissioner_dut/struct_cd_vid_missing/pai-Key.der and b/credentials/development/commissioner_dut/struct_cd_vid_missing/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_cd_vid_missing/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_vid_missing/pai-Key.pem index aab61d2626282a..0599afcb766e59 100644 --- a/credentials/development/commissioner_dut/struct_cd_vid_missing/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_cd_vid_missing/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEILmE3YnU63W5wwebUEknJI/cmF+ZrodL4DwzxWSa8xMioAoGCCqGSM49 -AwEHoUQDQgAE/sm49W3R7pCQ9XAATopKql6mKJlY6ZVZ/rFIooDiXF2zWCmyVm4T -v/UvEkexgjYQmh9xrhI2JfBjgWqpC6HBFw== +MHcCAQEEIIEwaTLZWHCOReorGO/2lAqrhfDrQA56tno2DjpNMyuJoAoGCCqGSM49 +AwEHoUQDQgAEwF2qWG53Ev2dd0uY0D7qhtmcZt4L0ANikARn9MRCLvZ+jRRxz0Z1 +q9q+IhR27s+guE41PsbpSXKZvBeEZ9a5vA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_cd_vid_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_vid_missing/test_case_vector.json index 478805ef0f0ab8..ad0f07fa333618 100644 --- a/credentials/development/commissioner_dut/struct_cd_vid_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_cd_vid_missing/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "CD Test Vector: The vendor_id field is missing.", "is_success_case": "false", - "dac_cert": "308201e53082018aa00302010202081dbb3585d8c50128300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200042e31600115cfd3025744081f25fc9662f2b853d4a2a969f147339e0103a5de3978d31fe796a3efdc896056bcca686b040cc104b5f77886101676d8094f06fcaca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604147c1c2ca7c6316ac86b6486f12737d9d5f41ac719301f0603551d23041830168014a20efb6fbc204196892675cc0afa89450ec9da1d300a06082a8648ce3d0403020349003046022100a579c4cf797e94fc30b83438f473d8b059d73a2d77e1591b327ec036cb5643e6022100f712d7a7094226d092d1ee2b0ab132f7d32d54fbcc7be6802073dba57e946139", - "pai_cert": "308201d43082017aa00302010202085c6bcbcbd0f55a5d300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303531333030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004fec9b8f56dd1ee9090f570004e8a4aaa5ea6289958e99559feb148a280e25c5db35829b2566e13bff52f1247b18236109a1f71ae123625f063816aa90ba1c117a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414a20efb6fbc204196892675cc0afa89450ec9da1d301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100ab450160382ccdf3d453f6246fd3a2766209bfcc53ed6c6020812e0ec99bcef602207e139d7e2aceae1f7c7592b55b906e0a845e350e0a8a7029694f17ce1dc5270a", - "certification_declaration": "3081fe06092a864886f70d010702a081f03081ed020103310d300b0609608648016503040201305a06092a864886f70d010701a04d044b15200001360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100a0bb8249ec19b7419523402f61f27098c7784af5905870db932ba9d2f5deddd102203e80686ac1ee9b0735d6784b2cf9338e21c8485374aff30b1a676c121f477c38", - "dac_private_key": "9e5e4c8be6723b50c72dfdca651dab1bb92a2aa92234230b87c9af73d7d983bc", - "dac_public_key": "042e31600115cfd3025744081f25fc9662f2b853d4a2a969f147339e0103a5de3978d31fe796a3efdc896056bcca686b040cc104b5f77886101676d8094f06fcac" + "dac_cert": "308201e43082018aa003020102020827b08cd4d32bdea8300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004dcd04fbf086753d1c9afc039f57b25bebeff79bcf7ee14f4ab0e2323d62076b60061a8ca5506841f8630aab6a1feb1f295c55d653bbf00a72d12e0a0079db676a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604147b43e2192c666a5f38a6432c76041756232a7dbf301f0603551d230418301680144bb520a28dd5195cd2279c5f156b7e82b1acb185300a06082a8648ce3d0403020348003045022100c7d49d51127fde5f70cdcc92bf31a8ead8a8c2c94480a6b23d985c505ed20cca022059e8d330eed12e0bbfa9bea19384cd125a1d81b99d8af3ea352efc119c1091d7", + "pai_cert": "308201d33082017aa0030201020208559e4652e9023665300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004c05daa586e7712fd9d774b98d03eea86d99c66de0bd00362900467f4c4422ef67e8d1471cf4675abdabe221476eecfa0b84e353ec6e9497299bc178467d6b9bca366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604144bb520a28dd5195cd2279c5f156b7e82b1acb185301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402205dd9ce2f22e69b662ef5865ec7b0655c596055826950bec63813e8be585559300220411ee98807cffdf86dddbfb022c32a36d45bfe1ecda03107fe39fbb38c71624d", + "certification_declaration": "3081fe06092a864886f70d010702a081f03081ed020103310d300b0609608648016503040201305a06092a864886f70d010701a04d044b15200001360205008018250334122c04135a494732303134315a423333303030312d323424050024060025077698240800360b10140b44cabbc5016577aa8b44ffb90fcca140fe66201818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502202728c6779f4343cfa4e7b612777559c3ef5d1434cb961be8d0a49881811df5c2022100ff158c6660016f799f5225393ae29cb966d6248eebe425ca46df2d104f6b25e4", + "dac_private_key": "efe487c6b6ce62cb8e9d232ab8f27d42e2a93e31526f715721ee410a6b469b00", + "dac_public_key": "04dcd04fbf086753d1c9afc039f57b25bebeff79bcf7ee14f4ab0e2323d62076b60061a8ca5506841f8630aab6a1feb1f295c55d653bbf00a72d12e0a0079db676" } diff --git a/credentials/development/commissioner_dut/struct_dac_cert_version_v2/cd.der b/credentials/development/commissioner_dut/struct_dac_cert_version_v2/cd.der index d42203deaa727c..a2fd5c2c03bd6b 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_cert_version_v2/cd.der and b/credentials/development/commissioner_dut/struct_dac_cert_version_v2/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_cert_version_v2/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_cert_version_v2/dac-Cert.der index 643c6b7386d789..1b155a926d463e 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_cert_version_v2/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_cert_version_v2/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_cert_version_v2/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_cert_version_v2/dac-Cert.pem index 3b2a00789768b6..76726fd05c799d 100644 --- a/credentials/development/commissioner_dut/struct_dac_cert_version_v2/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_cert_version_v2/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzjCCAXSgAwIBAQIII0N0uct+CD0wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzjCCAXSgAwIBAQIICVy5BCcv99kwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARYof+dIYjHUxUbgvnGJE555rJtBNB+ -or+pHRej0F8HVH8CNAz2xsaOgRFIdL1VF35ouigs0l+QxNsMRydzqfiDo2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUPhMhzb9IJo2+ -qUxFoLC4ZlPlLwIwHwYDVR0jBBgwFoAUFWO+/6gwpNvu5RrJt1Dd/jpurNcwCgYI -KoZIzj0EAwIDSAAwRQIhAMJdgD3ZZxcBXB7YyWdfeBWOMPvD74e6axfKTdV68LI+ -AiAu8uwuPj1cImdWForwa2uMy76kqvknHG8I34+K04gZ8w== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQZYjs3lvdF5a/MnwnGpGrhJyv6+yiq +QmiSnjqrozTmsfwS0WSLiDkB3FiPvlCA+wVrvFXS8TTe456DDOAYx+D8o2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUU9YqZWl7P0Ln +Ww1+6ZMIOOtirRkwHwYDVR0jBBgwFoAUca9IfOH5Y5O48h9yuCwkQvZOLtYwCgYI +KoZIzj0EAwIDSAAwRQIhAMWG6ay42sxcUEKycCuNFyCi880f9ararLXuP/v3aNyv +AiBkaANC761Xs9ZeQpW5cSMDgYAMhselPifw4hiW+RxJkw== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_cert_version_v2/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_cert_version_v2/dac-Key.der index 0712a431c139ea..f28baa5f60f2d6 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_cert_version_v2/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_cert_version_v2/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_cert_version_v2/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_cert_version_v2/dac-Key.pem index 880f194edfd333..b5822355258849 100644 --- a/credentials/development/commissioner_dut/struct_dac_cert_version_v2/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_cert_version_v2/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIB+GIrQ1pTfjir1z01K6EWx1pPG/L1oFYdb0B7v7gnCPoAoGCCqGSM49 -AwEHoUQDQgAEWKH/nSGIx1MVG4L5xiROeeaybQTQfqK/qR0Xo9BfB1R/AjQM9sbG -joERSHS9VRd+aLooLNJfkMTbDEcnc6n4gw== +MHcCAQEEIB7fnHdZ4HsLjCPxVyPY8ouSVT5PUD85jgaHUQ7QprvtoAoGCCqGSM49 +AwEHoUQDQgAEGWI7N5b3ReWvzJ8JxqRq4Scr+vsoqkJokp46q6M05rH8EtFki4g5 +AdxYj75QgPsFa7xV0vE03uOegwzgGMfg/A== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_cert_version_v2/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_cert_version_v2/pai-Cert.der index 0ca1741cdfc2e8..c29f52c807bf01 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_cert_version_v2/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_cert_version_v2/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_cert_version_v2/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_cert_version_v2/pai-Cert.pem index 566be79634b389..39e0d23eaa1226 100644 --- a/credentials/development/commissioner_dut/struct_dac_cert_version_v2/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_cert_version_v2/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvjCCAWSgAwIBAgIISjYJJhme3RUwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvjCCAWSgAwIBAgIISInkvhWzPA4wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABB4OjKHFWi/1u9+oaydHqWARK4QlQflYfoV6z5bgz6qsSffaH11Wr7Dg6fJF -R+H+mX3o+4ADAGW05CIWC+4M2UWjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQVY77/qDCk2+7lGsm3UN3+Om6s1zAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiAy -4ermeeYY/mOLtpj4syN0Llr3LxNiT6hGjIWh7zw6dQIhAK96fG0/Bzkkd3zJXkO3 -xHBIY4ltnTu6p4RRTx9gGa14 +A0IABBEUapC7hsteVsFRg1GgwZFXfL+9F+qcziRjbUs1zj4pl0TFBKQJFRkXPpvQ +4KGw9gTPPfqruw6ua8TUzoy2L/ujZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRxr0h84fljk7jyH3K4LCRC9k4u1jAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiEA +pqZm2cK+Q9OGvaAuMc30F8VFtg3HNwQ0lpoYH8j+H8cCIBwNjE6FpY/Pp1o+44a7 +xXnBjuwbgWsTmJKSINYEiJwJ -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_cert_version_v2/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_cert_version_v2/pai-Key.der index b4ba5f3f14f3c3..95eb03475b1daa 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_cert_version_v2/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_cert_version_v2/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_cert_version_v2/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_cert_version_v2/pai-Key.pem index 87e2380caed7cd..3775d46816114c 100644 --- a/credentials/development/commissioner_dut/struct_dac_cert_version_v2/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_cert_version_v2/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIMzKTBvwCy3yIO4yn3lWu96OBf68qn1dnVrGcAshRUDJoAoGCCqGSM49 -AwEHoUQDQgAEHg6MocVaL/W736hrJ0epYBErhCVB+Vh+hXrPluDPqqxJ99ofXVav -sODp8kVH4f6Zfej7gAMAZbTkIhYL7gzZRQ== +MHcCAQEEIATX/xcuFW8gQ10DHVqjnQLK3zBFYAWPT5PbIdQYeCbtoAoGCCqGSM49 +AwEHoUQDQgAEERRqkLuGy15WwVGDUaDBkVd8v70X6pzOJGNtSzXOPimXRMUEpAkV +GRc+m9DgobD2BM89+qu7Dq5rxNTOjLYv+w== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_cert_version_v2/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_cert_version_v2/test_case_vector.json index 126ee9e62aa368..d2889db76e6d5d 100644 --- a/credentials/development/commissioner_dut/struct_dac_cert_version_v2/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_cert_version_v2/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Invalid certificate version field set to v2(1)", "is_success_case": "false", - "dac_cert": "308201ce30820174a0030201010208234374b9cb7e083d300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000458a1ff9d2188c753151b82f9c6244e79e6b26d04d07ea2bfa91d17a3d05f07547f02340cf6c6c68e81114874bd55177e68ba282cd25f90c4db0c472773a9f883a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604143e1321cdbf48268dbea94c45a0b0b86653e52f02301f0603551d230418301680141563beffa830a4dbeee51ac9b750ddfe3a6eacd7300a06082a8648ce3d0403020348003045022100c25d803dd96717015c1ed8c9675f78158e30fbc3ef87ba6b17ca4dd57af0b23e02202ef2ec2e3e3d5c226756168af06b6b8ccbbea4aaf9271c6f08df8f8ad38819f3", - "pai_cert": "308201be30820164a00302010202084a360926199edd15300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200041e0e8ca1c55a2ff5bbdfa86b2747a960112b842541f9587e857acf96e0cfaaac49f7da1f5d56afb0e0e9f24547e1fe997de8fb80030065b4e422160bee0cd945a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604141563beffa830a4dbeee51ac9b750ddfe3a6eacd7301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022032e1eae679e618fe638bb698f8b323742e5af72f13624fa8468c85a1ef3c3a75022100af7a7c6d3f073924777cc95e43b7c4704863896d9d3bbaa784514f1f6019ad78", - "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100e27b21d80a1291797905d73fd88824780dfb0a2e2b88afa621e034e1f376d02b02204c1b8b28e3ab3a29028b24d2e55b7260eb538d1bb70a13306b46187d846acc62", - "dac_private_key": "1f8622b435a537e38abd73d352ba116c75a4f1bf2f5a0561d6f407bbfb82708f", - "dac_public_key": "0458a1ff9d2188c753151b82f9c6244e79e6b26d04d07ea2bfa91d17a3d05f07547f02340cf6c6c68e81114874bd55177e68ba282cd25f90c4db0c472773a9f883" + "dac_cert": "308201ce30820174a0030201010208095cb904272ff7d9300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000419623b3796f745e5afcc9f09c6a46ae1272bfafb28aa4268929e3aaba334e6b1fc12d1648b883901dc588fbe5080fb056bbc55d2f134dee39e830ce018c7e0fca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041453d62a65697b3f42e75b0d7ee9930838eb62ad19301f0603551d2304183016801471af487ce1f96393b8f21f72b82c2442f64e2ed6300a06082a8648ce3d0403020348003045022100c586e9acb8dacc5c5042b2702b8d1720a2f3cd1ff5aadaacb5ee3ffbf768dcaf022064680342efad57b3d65e4295b971230381800c86c7a53e27f0e21896f91c4993", + "pai_cert": "308201be30820164a00302010202084889e4be15b33c0e300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000411146a90bb86cb5e56c1518351a0c191577cbfbd17ea9cce24636d4b35ce3e299744c504a4091519173e9bd0e0a1b0f604cf3dfaabbb0eae6bc4d4ce8cb62ffba366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041471af487ce1f96393b8f21f72b82c2442f64e2ed6301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100a6a666d9c2be43d386bda02e31cdf417c545b60dc7370434969a181fc8fe1fc702201c0d8c4e85a58fcfa75a3ee386bbc579c18eec1b816b1398929220d604889c09", + "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020448304602210090e5c2b2074ebdd3c07a6d7252397018c0c8ed5a607b5b7d97a80f0df4e81b5f02210080106205a6678a2e4c80841d81d8b491f0c4d18e83648d515ca9b192f64509ad", + "dac_private_key": "1edf9c7759e07b0b8c23f15723d8f28b92553e4f503f398e0687510ed0a6bbed", + "dac_public_key": "0419623b3796f745e5afcc9f09c6a46ae1272bfafb28aa4268929e3aaba334e6b1fc12d1648b883901dc588fbe5080fb056bbc55d2f134dee39e830ce018c7e0fc" } diff --git a/credentials/development/commissioner_dut/struct_dac_cert_version_v3/cd.der b/credentials/development/commissioner_dut/struct_dac_cert_version_v3/cd.der index 3e383d9b991194..ce647632c36ec6 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_cert_version_v3/cd.der and b/credentials/development/commissioner_dut/struct_dac_cert_version_v3/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_cert_version_v3/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_cert_version_v3/dac-Cert.der index dda894f29bc607..f71ca132dda6a8 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_cert_version_v3/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_cert_version_v3/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_cert_version_v3/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_cert_version_v3/dac-Cert.pem index 9e408c505a5a13..0b2a67622635f2 100644 --- a/credentials/development/commissioner_dut/struct_dac_cert_version_v3/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_cert_version_v3/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzjCCAXSgAwIBAgIIDK5kwgUSAUEwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzzCCAXSgAwIBAgIICJAxPrP/fzowCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARr1Isyp3YsbMyvgXIfrgwbxaOFMiA1 -kZYTGF/pvly+kk+f7vSKOa25/22SPW9lzZPH8su+V/M+RWMB7e2MqOmHo2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUa172m9DhX5Ds -GrhPQPv73mW3UacwHwYDVR0jBBgwFoAU7KOyf6tcqBDXJDqueGsnmTrdz4cwCgYI -KoZIzj0EAwIDSAAwRQIga/gCMtfLkDGGAnFLsOvHur4i1IwdxKdQce0W/byyTNwC -IQDS0Rj+XjVpzndahAl3zZiGBwJNir/rc9ftM8PQZdy7Aw== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAT9W7duG5fJVhSXF6u2DwIUTU7gpTyN +GopDRhD67n/GC4aUKZ4xzr1xYfQt+rQRzVliEZFiPLaXPWvMG8i61wFSo2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUWms6AsADEUHi +pZzQDcQICluN+bwwHwYDVR0jBBgwFoAUeZhx076y1NAoy3o889DeiUSoBBgwCgYI +KoZIzj0EAwIDSQAwRgIhALwXqM0L/eB3DUb2ThEY5StC5E7eclNLv4GzxpgDrQrk +AiEA+mHNrZ7wd+5CGXRMV6RkKAYwsVIoJ3a2mOPpqMRv8bo= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_cert_version_v3/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_cert_version_v3/dac-Key.der index e37170bf571a41..2fb870cdb98c73 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_cert_version_v3/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_cert_version_v3/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_cert_version_v3/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_cert_version_v3/dac-Key.pem index 231079b9a024c7..25dea6737c5522 100644 --- a/credentials/development/commissioner_dut/struct_dac_cert_version_v3/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_cert_version_v3/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEICDGoDYvdbSYLkMxlEicMHsnGEwR0tj3lqdoMWPi6ySioAoGCCqGSM49 -AwEHoUQDQgAEa9SLMqd2LGzMr4FyH64MG8WjhTIgNZGWExhf6b5cvpJPn+70ijmt -uf9tkj1vZc2Tx/LLvlfzPkVjAe3tjKjphw== +MHcCAQEEIMrNNr5U06vpShkgvo238Rh1P/a+fZkItqVrl+mGfgZhoAoGCCqGSM49 +AwEHoUQDQgAE/Vu3bhuXyVYUlxertg8CFE1O4KU8jRqKQ0YQ+u5/xguGlCmeMc69 +cWH0Lfq0Ec1ZYhGRYjy2lz1rzBvIutcBUg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_cert_version_v3/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_cert_version_v3/pai-Cert.der index 96bc202c2aeda6..f19fb3d762657a 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_cert_version_v3/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_cert_version_v3/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_cert_version_v3/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_cert_version_v3/pai-Cert.pem index 2f02ea6d2a1032..8969d647085153 100644 --- a/credentials/development/commissioner_dut/struct_dac_cert_version_v3/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_cert_version_v3/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvjCCAWSgAwIBAgIIAaU+vbfHd4kwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvjCCAWSgAwIBAgIIeA5sd2rLpNgwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABFLIIJlh1rmfG8rXJd0qMq1WvyYewwaELo7ZsvXH0fBgaHGdufrjwh+4Q5rL -OA4vAn3ELGBbcOdndgd79zj5XlKjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTso7J/q1yoENckOq54ayeZOt3PhzAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiA4 -dMPhKKJYbzEwHBWEC4FBNua8P6m90CP32QcKhP/v7QIhALGbumhPxka0fmhte9MG -5zmG2J/z3UOLkOBLaXwyyqaE +A0IABBkNJHCvZ1I4e44JUjm/KuubWAR2KbIuO0wcz7FW5CFYiHS6VHXg7MhS0JaZ +F6/SQPURdfBbLkCY1QVi4d4y6nmjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR5mHHTvrLU0CjLejzz0N6JRKgEGDAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiBK +7AwliyMxaaOaJo5Ks2FuKNP6GuzkFO1w80rFm6YD5AIhALUe2mKzEYA0vucsd6ya +FTk7WQba529Vea7u5KmZM8WC -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_cert_version_v3/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_cert_version_v3/pai-Key.der index bfc8ebc71c8d66..9abe48c9c1ab07 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_cert_version_v3/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_cert_version_v3/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_cert_version_v3/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_cert_version_v3/pai-Key.pem index bab07c039ea260..ab0c5bbfd81931 100644 --- a/credentials/development/commissioner_dut/struct_dac_cert_version_v3/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_cert_version_v3/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIPby6KEXHgwmB+hUrnjDU2Kfvwrc4PCTeymHt9bVmJ5aoAoGCCqGSM49 -AwEHoUQDQgAEUsggmWHWuZ8bytcl3SoyrVa/Jh7DBoQujtmy9cfR8GBocZ25+uPC -H7hDmss4Di8CfcQsYFtw52d2B3v3OPleUg== +MHcCAQEEIHQ8b60fZ3mpERzSeX3HIGaL9XmEDh77UCSiP9pH60dxoAoGCCqGSM49 +AwEHoUQDQgAEGQ0kcK9nUjh7jglSOb8q65tYBHYpsi47TBzPsVbkIViIdLpUdeDs +yFLQlpkXr9JA9RF18FsuQJjVBWLh3jLqeQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_cert_version_v3/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_cert_version_v3/test_case_vector.json index ed86a0962e0895..cc89c4a49684a7 100644 --- a/credentials/development/commissioner_dut/struct_dac_cert_version_v3/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_cert_version_v3/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Valid certificate version field set to v3(2)", "is_success_case": "true", - "dac_cert": "308201ce30820174a00302010202080cae64c205120141300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200046bd48b32a7762c6cccaf81721fae0c1bc5a385322035919613185fe9be5cbe924f9feef48a39adb9ff6d923d6f65cd93c7f2cbbe57f33e456301eded8ca8e987a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604146b5ef69bd0e15f90ec1ab84f40fbfbde65b751a7301f0603551d23041830168014eca3b27fab5ca810d7243aae786b27993addcf87300a06082a8648ce3d040302034800304502206bf80232d7cb90318602714bb0ebc7babe22d48c1dc4a75071ed16fdbcb24cdc022100d2d118fe5e3569ce775a840977cd988607024d8abfeb73d7ed33c3d065dcbb03", - "pai_cert": "308201be30820164a003020102020801a53ebdb7c77789300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000452c8209961d6b99f1bcad725dd2a32ad56bf261ec306842e8ed9b2f5c7d1f06068719db9fae3c21fb8439acb380e2f027dc42c605b70e76776077bf738f95e52a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414eca3b27fab5ca810d7243aae786b27993addcf87301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502203874c3e128a2586f31301c15840b814136e6bc3fa9bdd023f7d9070a84ffefed022100b19bba684fc646b47e686d7bd306e73986d89ff3dd438b90e04b697c32caa684", - "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100beee93d0de9ca5e41a7484013d7050ce439b5e92ee2c47b74399c9ea866e62ff022100b112b86226ed90d8e9136ebd94247e279dbcc6e49494c89cc27f4a8ec86a9f03", - "dac_private_key": "20c6a0362f75b4982e433194489c307b27184c11d2d8f796a7683163e2eb24a2", - "dac_public_key": "046bd48b32a7762c6cccaf81721fae0c1bc5a385322035919613185fe9be5cbe924f9feef48a39adb9ff6d923d6f65cd93c7f2cbbe57f33e456301eded8ca8e987" + "dac_cert": "308201cf30820174a00302010202080890313eb3ff7f3a300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004fd5bb76e1b97c956149717abb60f02144d4ee0a53c8d1a8a434610faee7fc60b8694299e31cebd7161f42dfab411cd59621191623cb6973d6bcc1bc8bad70152a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604145a6b3a02c0031141e2a59cd00dc4080a5b8df9bc301f0603551d23041830168014799871d3beb2d4d028cb7a3cf3d0de8944a80418300a06082a8648ce3d0403020349003046022100bc17a8cd0bfde0770d46f64e1118e52b42e44ede72534bbf81b3c69803ad0ae4022100fa61cdad9ef077ee4219744c57a464280630b152282776b698e3e9a8c46ff1ba", + "pai_cert": "308201be30820164a0030201020208780e6c776acba4d8300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004190d2470af6752387b8e095239bf2aeb9b58047629b22e3b4c1ccfb156e421588874ba5475e0ecc852d0969917afd240f51175f05b2e4098d50562e1de32ea79a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414799871d3beb2d4d028cb7a3cf3d0de8944a80418301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502204aec0c258b233169a39a268e4ab3616e28d3fa1aece414ed70f34ac59ba603e4022100b51eda62b3118034bee72c77ac9a15393b5906dae76f5579aeeee4a99933c582", + "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044830460221008c99c06117c74a180d7be68abf26aa552bf853cb603d9e8969721317d4da209e02210086b9f84da153f87185fa7876d4d779f58009b8180eb03d0aaf3e677a2a879931", + "dac_private_key": "cacd36be54d3abe94a1920be8db7f118753ff6be7d9908b6a56b97e9867e0661", + "dac_public_key": "04fd5bb76e1b97c956149717abb60f02144d4ee0a53c8d1a8a434610faee7fc60b8694299e31cebd7161f42dfab411cd59621191623cb6973d6bcc1bc8bad70152" } diff --git a/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/cd.der b/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/cd.der index 918fb4d1b1675b..94924eb929da83 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/cd.der and b/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/dac-Cert.der index 2a6e760d8ed280..f45acf319085da 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/dac-Cert.pem index e3819352af3d61..3e18a0c09e06eb 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/dac-Cert.pem @@ -1,12 +1,11 @@ -----BEGIN CERTIFICATE----- -MIIBrTCCAVOgAwIBAgIIMtkLdHVP2bUwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBrDCCAVOgAwIBAgIIVYg89ltBhgIwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARW9M7gXh8q5SN1rEmB4uTs4ulidrVa -AVF1Fcz3k2RdHZDrXyePPPTkK05dBozXGjfb5bOeal2RwiZ0XjrbxHqRoz8wPTAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUpVLxDDvTkOli -pRjcmb5XFaTeXm8wCgYIKoZIzj0EAwIDSAAwRQIhAJYBm4Pay1B/56mq27F+oPcm -3yzfMb91SQjBsbcisE2CAiBBHPFhNjggpfCsEbN55RByqSZ086ECt5elNaj1a9xr -qQ== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARdCGRCnWhq6WD1hXzfTvR8Qp82Lw4v +SOlqnTYqgsURkcCgEsqxR3fJNQvPSJyRLQIHONsM8tIcSbr6HTJXEHDNoz8wPTAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUV9UK5wiT6TgF +BpMVZaR4XnDBwrYwCgYIKoZIzj0EAwIDRwAwRAIgefWv48b2Ju5d2vnbiMqNsRik +/WR2USVc+uA1fHnM9r0CIDH0wvVCiCAL68ajWdI3nNUUWhLZHT421ruLhYrZLDnw -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/dac-Key.der index c79fdbd9d9f325..e9f14f18337d11 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/dac-Key.pem index c8b96a9d87d227..8d7ec5c01dcf85 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIM+gM1gxCTeCPBBa+XNxRx+mhdr7fuXG9S9mbqVHtmbaoAoGCCqGSM49 -AwEHoUQDQgAEVvTO4F4fKuUjdaxJgeLk7OLpYna1WgFRdRXM95NkXR2Q618njzz0 -5CtOXQaM1xo32+WznmpdkcImdF4628R6kQ== +MHcCAQEEIOyB25CKBQyU/r3pvCVAYYRy417t2F1VCG8TbVWcmM4SoAoGCCqGSM49 +AwEHoUQDQgAEXQhkQp1oaulg9YV83070fEKfNi8OL0jpap02KoLFEZHAoBLKsUd3 +yTULz0ickS0CBzjbDPLSHEm6+h0yVxBwzQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/pai-Cert.der index 434631e77f9c8c..5b8388ba9326a9 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/pai-Cert.pem index 292df21eb5699f..dedeeb52cb4725 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvjCCAWSgAwIBAgIIGD6qjPnNUJMwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvTCCAWSgAwIBAgIIVWLE8NYmDWAwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABGFta88lFn2iFG6mS/uzElSZwqZ6xc3gXqiNiWS1KDXGEhmR+IaFkBgCNwwy -i27QZvQ6eV1kosBplvG9pYqKBxujZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSA7ooNTFQCkPatNhBCGK6Nf7GoQTAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiEA -xPy/zoPbwNRKp0Z6d5tUfgks6uXtBhoEUPxyJDW8RlACIDppTE+bZFNJZ7gJANpg -yqDbDIq3wr28rH6Bo8jviNA1 +A0IABG5LJPaqyvTKTUm9yTU72Nbx3jjPMuFSQ/86GjptioVvFmUBFNOiEiEERm67 +bKImsZr14zkRb6ZlGCdIOdt25majZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSPXdYtA2hsAY2XmCyIQZm7AKs7gjAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNHADBEAiB7 +YfTP6Tg+ZTK7Bm2l85/IuMv3G/Uxt3EPTs3XnATAIQIgGKW37sd6bPk11GLd8c3p +zmgRnoQC1Vmvn9wHB1jpYMk= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/pai-Key.der index 97ce4e98b33c20..94db86cf89752e 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/pai-Key.pem index ce1a7405b2656b..87750d1c80c95c 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIAyi5pJAF/hULeBKQGfOUDI5agImehl4e8NuWxHs4EP0oAoGCCqGSM49 -AwEHoUQDQgAEYW1rzyUWfaIUbqZL+7MSVJnCpnrFzeBeqI2JZLUoNcYSGZH4hoWQ -GAI3DDKLbtBm9Dp5XWSiwGmW8b2liooHGw== +MHcCAQEEIAiT5hbAK1x/sZe6byERRuNdqvmFyFihFdoK0SiJaZEjoAoGCCqGSM49 +AwEHoUQDQgAEbksk9qrK9MpNSb3JNTvY1vHeOM8y4VJD/zoaOm2KhW8WZQEU06IS +IQRGbrtsoiaxmvXjORFvpmUYJ0g523bmZg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/test_case_vector.json index 6c72e5e2341aa0..e7caa73e4c2087 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_akid_missing/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Certificate doesn't include Authority Key ID (AKID) extension", "is_success_case": "false", - "dac_cert": "308201ad30820153a003020102020832d90b74754fd9b5300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000456f4cee05e1f2ae52375ac4981e2e4ece2e96276b55a01517515ccf793645d1d90eb5f278f3cf4e42b4e5d068cd71a37dbe5b39e6a5d91c226745e3adbc47a91a33f303d300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414a552f10c3bd390e962a518dc99be5715a4de5e6f300a06082a8648ce3d040302034800304502210096019b83dacb507fe7a9aadbb17ea0f726df2cdf31bf754908c1b1b722b04d820220411cf161363820a5f0ac11b379e51072a92674f3a102b797a535a8f56bdc6ba9", - "pai_cert": "308201be30820164a0030201020208183eaa8cf9cd5093300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004616d6bcf25167da2146ea64bfbb3125499c2a67ac5cde05ea88d8964b52835c6121991f88685901802370c328b6ed066f43a795d64a2c06996f1bda58a8a071ba366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e0416041480ee8a0d4c540290f6ad36104218ae8d7fb1a841301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100c4fcbfce83dbc0d44aa7467a779b547e092ceae5ed061a0450fc722435bc465002203a694c4f9b64534967b80900da60caa0db0c8ab7c2bdbcac7e81a3c8ef88d035", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044630440220551fc76c663756b163123954662bfef562a097639c153183aaeb4c2672f3a8fb02203f2611d551c5ad5dadbde61b6ce9d54d73b1aaf9ffe68922d4ad8dae43fd79e7", - "dac_private_key": "cfa03358310937823c105af97371471fa685dafb7ee5c6f52f666ea547b666da", - "dac_public_key": "0456f4cee05e1f2ae52375ac4981e2e4ece2e96276b55a01517515ccf793645d1d90eb5f278f3cf4e42b4e5d068cd71a37dbe5b39e6a5d91c226745e3adbc47a91" + "dac_cert": "308201ac30820153a003020102020855883cf65b418602300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200045d0864429d686ae960f5857cdf4ef47c429f362f0e2f48e96a9d362a82c51191c0a012cab14777c9350bcf489c912d020738db0cf2d21c49bafa1d32571070cda33f303d300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041457d50ae70893e9380506931565a4785e70c1c2b6300a06082a8648ce3d0403020347003044022079f5afe3c6f626ee5ddaf9db88ca8db118a4fd647651255cfae0357c79ccf6bd022031f4c2f54288200bebc6a359d2379cd5145a12d91d3e36d6bb8b858ad92c39f0", + "pai_cert": "308201bd30820164a00302010202085562c4f0d6260d60300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200046e4b24f6aacaf4ca4d49bdc9353bd8d6f1de38cf32e15243ff3a1a3a6d8a856f16650114d3a2122104466ebb6ca226b19af5e339116fa66518274839db76e666a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604148f5dd62d03686c018d97982c884199bb00ab3b82301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402207b61f4cfe9383e6532bb066da5f39fc8b8cbf71bf531b7710f4ecdd79c04c021022018a5b7eec77a6cf935d462ddf1cde9ce68119e8402d559af9fdc070758e960c9", + "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100c16e6a810773e669ccd301ee9b8e37ff5dc94c7ed1f88e2ab7b47209a3fa4e8302210089c9c70829ca2a43907c9a461debecfcdd3cf2cc6a7e1a292d71014f1f20d5ac", + "dac_private_key": "ec81db908a050c94febde9bc2540618472e35eedd85d55086f136d559c98ce12", + "dac_public_key": "045d0864429d686ae960f5857cdf4ef47c429f362f0e2f48e96a9d362a82c51191c0a012cab14777c9350bcf489c912d020738db0cf2d21c49bafa1d32571070cd" } diff --git a/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/cd.der b/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/cd.der index 8fd0676c11b05e..c47125dcf981e5 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/cd.der and b/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/dac-Cert.der index dedb8e2a66cdad..781efc23a97355 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/dac-Cert.pem index af31cdf4136dfb..2dc4ee0bd259db 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIICBTCCAaygAwIBAgIIe5d63TeEWm8wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIICBzCCAaygAwIBAgIILwJUrVSiHwkwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASlm+EG331HTfOs+EgVxwuHX0MQ+DvR -fkajrFew2M4cGNlPQrnYP8ynbNLIdPdukR3zUxw2T55/Tqk/5fX/LsjWo4GXMIGU -MAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBSbDX3f3X2C -zO7kb2A7PRAjfmez7TAfBgNVHSMEGDAWgBQIX12MM637k7C9Yh2MP1T+JhAnFDA0 +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASUXPmld4Fl9lZgshv63Df/LmtjQNkz +hyIXy4v9JhSJ9Gc2IJhBu1d5XF8HjhVssVATTMHDnpyiACNE5GToJZp4o4GXMIGU +MAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBROQjz/cGho +B6HDHYwRzRmaZuiSzDAfBgNVHSMEGDAWgBSdt5KmEWBtitfLRQfYZ1gdR+OzjDA0 BggrBgEFBQcBAQQoMCYwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmV4YW1wbGUu -Y29tLzAKBggqhkjOPQQDAgNHADBEAiBUw9xBtgCDRzHIF4U3PCwoM+/iWU+Q5yBb -xL6koyl+qAIgM9NqI5VlI4Yd997p5nhukb8wyw/v3h9G0Il+Kaq+HhM= +Y29tLzAKBggqhkjOPQQDAgNJADBGAiEA3AECM2iYa+FUdqI0EIX31iOszjXPli+7 +1vd9/yUzMBcCIQCubK+Aci7wgu5jMbJPREvvWfKVW9NcXaaq1LS7cce9+w== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/dac-Key.der index 9eb30bc36bf88d..12c439dfb23176 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/dac-Key.pem index 522b58dc17973a..b09b89b0f8489b 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIMI2eBzlFfhuEc2i4bHmOSlYdePFXvhx9HE2KnIrc2R/oAoGCCqGSM49 -AwEHoUQDQgAEpZvhBt99R03zrPhIFccLh19DEPg70X5Go6xXsNjOHBjZT0K52D/M -p2zSyHT3bpEd81McNk+ef06pP+X1/y7I1g== +MHcCAQEEIBDEGxc4/J+Z2C0ORqr3YWv1l7F8zeFGf67ucqiuMU8MoAoGCCqGSM49 +AwEHoUQDQgAElFz5pXeBZfZWYLIb+tw3/y5rY0DZM4ciF8uL/SYUifRnNiCYQbtX +eVxfB44VbLFQE0zBw56cogAjRORk6CWaeA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/pai-Cert.der index cf6e6f712e9a5d..dd719edf35fd91 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/pai-Cert.pem index 71ad2c6c786870..ac03a419dac477 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvjCCAWSgAwIBAgIId+Ifj7WiBh4wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvjCCAWSgAwIBAgIIR+YomzkbdZcwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABNdf9CWhXgi2u8loLJu99vaKhkUOc+2s8J8ZOuE2iJwtO8hbNvhLsroBuHhq -2rEaqS6TlXx5tIkgdg0bxJDNr6ijZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQIX12MM637k7C9Yh2MP1T+JhAnFDAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiEA -mAy5vGKK1r03b4XD2f0KDatYtJxjy2DJTKtyHW8aTuICIGwSVHlkOdcyeoGbeJWk -tYcXmFYM7d7F7yW8ubTLuTgJ +A0IABPgdEwRy3308d7AqkJ/AuTmxuy3cLN/MIJ0YdIIFDsC2H7G2+QNM2VH9ho5m +9uBQ29kYr662BHKQ2k5QmXNIWYyjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSdt5KmEWBtitfLRQfYZ1gdR+OzjDAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiAF +mJLl80vk843e5EG0WPLbWbqrqbSla23NQKTrfc0R5QIhAKbfHxqywDjfHq3PnbbH +Zknb3lhgUzttWwABGZnd58jy -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/pai-Key.der index d2ed939a8f8e7c..c2d6e800aa19a9 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/pai-Key.pem index b2e00979c78cf1..78f73e79b35506 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIEl8Al+ljxpwoRpcLn/14UAoMdGsEHklyI/qTJf3rbQboAoGCCqGSM49 -AwEHoUQDQgAE11/0JaFeCLa7yWgsm7329oqGRQ5z7azwnxk64TaInC07yFs2+Euy -ugG4eGrasRqpLpOVfHm0iSB2DRvEkM2vqA== +MHcCAQEEIOzet/glGWaDi4EDee8lM8yE1cHgn8wh88dzkcBPMwx/oAoGCCqGSM49 +AwEHoUQDQgAE+B0TBHLffTx3sCqQn8C5ObG7Ldws38wgnRh0ggUOwLYfsbb5A0zZ +Uf2Gjmb24FDb2RivrrYEcpDaTlCZc0hZjA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/test_case_vector.json index a9506e24934740..314004bb37475f 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_authority_info_access_present/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Certificate includes optional Authority Information Access extension", "is_success_case": "true", - "dac_cert": "30820205308201aca00302010202087b977add37845a6f300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004a59be106df7d474df3acf84815c70b875f4310f83bd17e46a3ac57b0d8ce1c18d94f42b9d83fcca76cd2c874f76e911df3531c364f9e7f4ea93fe5f5ff2ec8d6a38197308194300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604149b0d7ddfdd7d82cceee46f603b3d10237e67b3ed301f0603551d23041830168014085f5d8c33adfb93b0bd621d8c3f54fe26102714303406082b0601050507010104283026302406082b060105050730018618687474703a2f2f6f6373702e6578616d706c652e636f6d2f300a06082a8648ce3d0403020347003044022054c3dc41b600834731c81785373c2c2833efe2594f90e7205bc4bea4a3297ea8022033d36a23956523861df7dee9e6786e91bf30cb0fefde1f46d0897e29aabe1e13", - "pai_cert": "308201be30820164a003020102020877e21f8fb5a2061e300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004d75ff425a15e08b6bbc9682c9bbdf6f68a86450e73edacf09f193ae136889c2d3bc85b36f84bb2ba01b8786adab11aa92e93957c79b48920760d1bc490cdafa8a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414085f5d8c33adfb93b0bd621d8c3f54fe26102714301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100980cb9bc628ad6bd376f85c3d9fd0a0dab58b49c63cb60c94cab721d6f1a4ee202206c1254796439d7327a819b7895a4b5871798560ceddec5ef25bcb9b4cbb93809", - "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100e2eddcc4a98c46fdc0940569a77cd5dc991ebe90aeb40bdc51b26df08f474d67022100a99953496e766d789df9f3fa4d2749aefd7d2bdc6a75773108bec4a11d08b031", - "dac_private_key": "c236781ce515f86e11cda2e1b1e639295875e3c55ef871f471362a722b73647f", - "dac_public_key": "04a59be106df7d474df3acf84815c70b875f4310f83bd17e46a3ac57b0d8ce1c18d94f42b9d83fcca76cd2c874f76e911df3531c364f9e7f4ea93fe5f5ff2ec8d6" + "dac_cert": "30820207308201aca00302010202082f0254ad54a21f09300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004945cf9a5778165f65660b21bfadc37ff2e6b6340d933872217cb8bfd261489f46736209841bb57795c5f078e156cb150134cc1c39e9ca2002344e464e8259a78a38197308194300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604144e423cff70686807a1c31d8c11cd199a66e892cc301f0603551d230418301680149db792a611606d8ad7cb4507d867581d47e3b38c303406082b0601050507010104283026302406082b060105050730018618687474703a2f2f6f6373702e6578616d706c652e636f6d2f300a06082a8648ce3d0403020349003046022100dc01023368986be15476a2341085f7d623acce35cf962fbbd6f77dff25333017022100ae6caf80722ef082ee6331b24f444bef59f2955bd35c5da6aad4b4bb71c7bdfb", + "pai_cert": "308201be30820164a003020102020847e6289b391b7597300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004f81d130472df7d3c77b02a909fc0b939b1bb2ddc2cdfcc209d187482050ec0b61fb1b6f9034cd951fd868e66f6e050dbd918afaeb6047290da4e50997348598ca366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604149db792a611606d8ad7cb4507d867581d47e3b38c301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203480030450220059892e5f34be4f38ddee441b458f2db59baaba9b4a56b6dcd40a4eb7dcd11e5022100a6df1f1ab2c038df1eadcf9db6c76649dbde5860533b6d5b00011999dde7c8f2", + "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100ae3b7824e980e6c00453ca1bb12b1cbe06e34afa33481586e34a7fd4b6d8be2a022020cb829d5c1942faca77c3bb3393b5b4f9ff6873659c6635124a4f7235b5b808", + "dac_private_key": "10c41b1738fc9f99d82d0e46aaf7616bf597b17ccde1467faeee72a8ae314f0c", + "dac_public_key": "04945cf9a5778165f65660b21bfadc37ff2e6b6340d933872217cb8bfd261489f46736209841bb57795c5f078e156cb150134cc1c39e9ca2002344e464e8259a78" } diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/cd.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/cd.der index 996142ec0b0ee0..4cd64789aca510 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/cd.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/dac-Cert.der index 282617dd4ad643..4d61c67154f81a 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/dac-Cert.pem index 7fdc9218f9fc8a..2f19ea8c95f5cd 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB0TCCAXegAwIBAgIIONUsUAcOxyAwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIB0jCCAXegAwIBAgIIHM+1x4oQaBEwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQlImVG/wtzEPrfNhttUMoUlaIafVrW -v80Q74/ttMuj/v+eNe2pLDUasLWszyhUGKq02DqNb6NAE18Au5a1mD1po2MwYTAP -BgNVHRMBAf8EBTADAgEAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUyBELTx0B -ED/Vu6/HprLzvGw+vMowHwYDVR0jBBgwFoAUOCm8REgwpwfEUFcz0n+D+1qru0gw -CgYIKoZIzj0EAwIDSAAwRQIgMGjvv0Jhxp45WD8VSwG4+/oGdmhwPv6aSGg1Iptw -/McCIQC3NSQF54zdeucodVS+6dVJeT6LUS9JdO2XbekwdPgenw== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARG3y/2jZ9ygg3ZDdWsypx+ImMT1bL+ +CbCLTsRAoPd9/6H24hgRdhoxbFLOCF00QHu6mmDvblBLMD8CjFwJdqpao2MwYTAP +BgNVHRMBAf8EBTADAgEAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUde/udeQe +vlI2Zlj3pzrKLwmgPTwwHwYDVR0jBBgwFoAUzFKQJHx/BAY3nw/zVCcDFoAot68w +CgYIKoZIzj0EAwIDSQAwRgIhAMeGa5cxsjtnA1BnZT89NWdtAStfJGTuSEotweXP +84PwAiEAoq2+yK45WKiWTNkLx0YSFF8YZV3Cyt4j18a4h5tz80g= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/dac-Key.der index 66c58c701df444..d68aa345744421 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/dac-Key.pem index 5c7c2cfc33dfe5..ea6ffcb711a443 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEINon4iaBLXpKixJa21lQvei2dvg8dOD1ZJFYBenvYvrFoAoGCCqGSM49 -AwEHoUQDQgAEJSJlRv8LcxD63zYbbVDKFJWiGn1a1r/NEO+P7bTLo/7/njXtqSw1 -GrC1rM8oVBiqtNg6jW+jQBNfALuWtZg9aQ== +MHcCAQEEIDA48/R2A3SsjXAO/+kPOuzgC9+gb8G4nij5qCDMp2OqoAoGCCqGSM49 +AwEHoUQDQgAERt8v9o2fcoIN2Q3VrMqcfiJjE9Wy/gmwi07EQKD3ff+h9uIYEXYa +MWxSzghdNEB7uppg725QSzA/AoxcCXaqWg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/pai-Cert.der index 670a3fba99d007..27dcfd8130d63d 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/pai-Cert.pem index ac10d8b7b18bd1..c9728d3e52f8c3 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvjCCAWSgAwIBAgIIAvlSNY8X3mYwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvzCCAWSgAwIBAgIIF2W5cF8wxR4wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABNb7bkNbMaApcAndin5Xbt3O1CjsQsAFYXXfxPUAo2lRuk3wxhb/RLRa+aus -Ypg0s79y2qoKlIiN+jijjnf8+1mjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQ4KbxESDCnB8RQVzPSf4P7Wqu7SDAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiEA -1A+OUuNPMnMsqoQjZ5DezGYpBF0rlhMqXCoT98NtoxgCIA01tH9Ggx2gFwwxWNSY -NVvKnxJkMxyJPF6EkYZ++yx0 +A0IABEMfCeWkqmW8aQ4CCMoVhi08kVxTsqdexG6yYYU5RV2e0lYxNnGFolJNn+GG +gbCuz14lWTe+rIcOgZu6LKZCQJujZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTMUpAkfH8EBjefD/NUJwMWgCi3rzAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNJADBGAiEA +4C5fZawiJyZT/NN+7VreIc4lAfJP3LidROkilu8eGZMCIQDUbjaVcUISEm6+Xdsb +efFlDIMNgECHyEEn1Z4uIWnmpw== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/pai-Key.der index 00aa7b80539d0c..14a16352ad5abb 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/pai-Key.pem index 50acc0f4b9d86d..6cc33b3cc3f74d 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIARIoSAaogl4iwiNbp+JNF9NBJ9v1S5+BA642YcxR3IUoAoGCCqGSM49 -AwEHoUQDQgAE1vtuQ1sxoClwCd2Kfldu3c7UKOxCwAVhdd/E9QCjaVG6TfDGFv9E -tFr5q6ximDSzv3LaqgqUiI36OKOOd/z7WQ== +MHcCAQEEII94hAL6ZY5SYpILGWu+tviBE8c/wVs+OT1oL4cznmN4oAoGCCqGSM49 +AwEHoUQDQgAEQx8J5aSqZbxpDgIIyhWGLTyRXFOyp17EbrJhhTlFXZ7SVjE2cYWi +Uk2f4YaBsK7PXiVZN76shw6Bm7ospkJAmw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/test_case_vector.json index d79752ad019002..5dd8d94b7fa5bc 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_missing/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Certificate Basic Constraint extension CA field is missing", "is_success_case": "false", - "dac_cert": "308201d130820177a003020102020838d52c50070ec720300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000425226546ff0b7310fadf361b6d50ca1495a21a7d5ad6bfcd10ef8fedb4cba3feff9e35eda92c351ab0b5accf285418aab4d83a8d6fa340135f00bb96b5983d69a3633061300f0603551d130101ff04053003020100300e0603551d0f0101ff040403020780301d0603551d0e04160414c8110b4f1d01103fd5bbafc7a6b2f3bc6c3ebcca301f0603551d230418301680143829bc444830a707c4505733d27f83fb5aabbb48300a06082a8648ce3d040302034800304502203068efbf4261c69e39583f154b01b8fbfa067668703efe9a486835229b70fcc7022100b7352405e78cdd7ae7287554bee9d549793e8b512f4974ed976de93074f81e9f", - "pai_cert": "308201be30820164a003020102020802f952358f17de66300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004d6fb6e435b31a0297009dd8a7e576eddced428ec42c0056175dfc4f500a36951ba4df0c616ff44b45af9abac629834b3bf72daaa0a94888dfa38a38e77fcfb59a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604143829bc444830a707c4505733d27f83fb5aabbb48301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100d40f8e52e34f32732caa84236790decc6629045d2b96132a5c2a13f7c36da31802200d35b47f46831da0170c3158d498355bca9f1264331c893c5e8491867efb2c74", - "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100a8c5f3b1a71919dd80ff1b4e04ceeb5adacb238fd7d85fb10bf0e356ddc99062022100b6f1886d95d93bb1fa06a96808d0dfedf26a8a77c4a86dddfa5df3275115f9ec", - "dac_private_key": "da27e226812d7a4a8b125adb5950bde8b676f83c74e0f564915805e9ef62fac5", - "dac_public_key": "0425226546ff0b7310fadf361b6d50ca1495a21a7d5ad6bfcd10ef8fedb4cba3feff9e35eda92c351ab0b5accf285418aab4d83a8d6fa340135f00bb96b5983d69" + "dac_cert": "308201d230820177a00302010202081ccfb5c78a106811300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000446df2ff68d9f72820dd90dd5acca9c7e226313d5b2fe09b08b4ec440a0f77dffa1f6e21811761a316c52ce085d34407bba9a60ef6e504b303f028c5c0976aa5aa3633061300f0603551d130101ff04053003020100300e0603551d0f0101ff040403020780301d0603551d0e0416041475efee75e41ebe52366658f7a73aca2f09a03d3c301f0603551d23041830168014cc5290247c7f0406379f0ff3542703168028b7af300a06082a8648ce3d0403020349003046022100c7866b9731b23b67035067653f3d35676d012b5f2464ee484a2dc1e5cff383f0022100a2adbec8ae3958a8964cd90bc74612145f18655dc2cade23d7c6b8879b73f348", + "pai_cert": "308201bf30820164a00302010202081765b9705f30c51e300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004431f09e5a4aa65bc690e0208ca15862d3c915c53b2a75ec46eb2618539455d9ed25631367185a2524d9fe18681b0aecf5e255937beac870e819bba2ca642409ba366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414cc5290247c7f0406379f0ff3542703168028b7af301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100e02e5f65ac22272653fcd37eed5ade21ce2501f24fdcb89d44e92296ef1e1993022100d46e3695714212126ebe5ddb1b79f1650c830d804087c84127d59e2e2169e6a7", + "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502201e3834e2e4fffbf3e1fd9056a76e64cc69e10471ab11c9ec20b6eed1bb765097022100ddddbce8c76cf6574c9c0f0734693a15a5c07b05a68b997ef673901c86a1d975", + "dac_private_key": "3038f3f4760374ac8d700effe90f3aece00bdfa06fc1b89e28f9a820cca763aa", + "dac_public_key": "0446df2ff68d9f72820dd90dd5acca9c7e226313d5b2fe09b08b4ec440a0f77dffa1f6e21811761a316c52ce085d34407bba9a60ef6e504b303f028c5c0976aa5a" } diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/cd.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/cd.der index 01ab18641b69f1..db82b28139c3d1 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/cd.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/dac-Cert.der index 07f213437d8eed..e039c377a9d417 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/dac-Cert.pem index 73ffcfead222f3..63b2d589d49984 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB0TCCAXegAwIBAgIID8qy5jChGlMwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIB0DCCAXegAwIBAgIIYDv0govTSL4wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARxWFwP0LvQwD6BJwLxeaFPNnCsJ81x -9q2fPAkXuU583Ghcdeaph21zonShWzKllx8n2cKC8ixkoy0OPBxupy8ho2MwYTAP -BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUz1YrlnhY -QXYgKH8zSgjrvJAJaeYwHwYDVR0jBBgwFoAUjkQrE6y+PaFnHDhJBVSKbukbewAw -CgYIKoZIzj0EAwIDSAAwRQIhAM8YXUS3/SAv+aerShwzJsImYXSH9NZVYBNNF2gY -mNegAiBKn3itO2+yF4y9LqS5la0LvwBjQ3Nod4RZWdKDUS3F4Q== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ68mLdQUPLgiTxhiGYWU88Tvck5PCp +XiOtAl3blSMLkWOTF02PaQaCo7mFnUPtJG7Pln07JuHrcyMw9zqLiGx2o2MwYTAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUJ/7vyorp +L55iy13xkTelvmt7acAwHwYDVR0jBBgwFoAUZR7kiMphwM7KNzyWEMyuq2jx6lUw +CgYIKoZIzj0EAwIDRwAwRAIgSuayLoaQvR/R+nPrIu3Sr1dpbbgKon85NstW4yWg +1YwCIFjJ9awIf8QHSbsVYWD64I8WtKqSuZw4bp3xu/VG2WHg -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/dac-Key.der index 9af1514d4cc89f..d2239e2cba4e40 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/dac-Key.pem index a455be20e35208..b053f024d055bf 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEILYvqMKsywltjHLh3GFbRTY/vNCyPzHCJYpU0BVsKgyfoAoGCCqGSM49 -AwEHoUQDQgAEcVhcD9C70MA+gScC8XmhTzZwrCfNcfatnzwJF7lOfNxoXHXmqYdt -c6J0oVsypZcfJ9nCgvIsZKMtDjwcbqcvIQ== +MHcCAQEEIAmocsUjI9+ewP/5DUMbd3CJiM8TNPP2p+BRj17o+cdBoAoGCCqGSM49 +AwEHoUQDQgAEOvJi3UFDy4Ik8YYhmFlPPE73JOTwqV4jrQJd25UjC5FjkxdNj2kG +gqO5hZ1D7SRuz5Z9Oybh63MjMPc6i4hsdg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/pai-Cert.der index de3b317c3c8dba..09b153a5030190 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/pai-Cert.pem index 663768080eaa20..200255027a4e33 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvTCCAWSgAwIBAgIIf+lSLm83eBwwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvzCCAWSgAwIBAgIIMf3KCOuLkoUwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABLRxS5fSTOxRPU3lcWSako3E+4OU+9w1F5zXNHKm3MTKmDYQ4plmdOzG8IN9 -o0QWA2PBEuziLma+9WmkJYqc1w6jZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSORCsTrL49oWccOEkFVIpu6Rt7ADAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNHADBEAiB/ -bGe7/0lL6m8yOWa6dslqbRb18zPDsQyOXXYixH05XgIgCXVfnyzKW4SHRRJUyhP+ -0ZCXEWFEyP+ZlhxvWWPW+g0= +A0IABO1zteIvYZQunR+a3zyrKJTlDtVWAsogrRXzhJLnQTqDDmo425/sxUQ3FvKu +ulx4NnWXKA2v2Gy2dpoBAuvmNsqjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlHuSIymHAzso3PJYQzK6raPHqVTAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNJADBGAiEA +gkrpA/ghgf5oVtgQ4TktcrDFAb/BDoeJlkELc0RLdW0CIQDV6PSD9cAVaAi01PEe +gdFk+LXsf+e6yiU4gqYqjY4i/A== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/pai-Key.der index e2b5a1bcdad1ce..8d5855b8df9899 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/pai-Key.pem index 6631c11a151e97..41ee7eab9f4cf5 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIBxopVB3yN5bV08yln8Gi+DFc3Tm9oZqee4IRcsxWiZvoAoGCCqGSM49 -AwEHoUQDQgAEtHFLl9JM7FE9TeVxZJqSjcT7g5T73DUXnNc0cqbcxMqYNhDimWZ0 -7Mbwg32jRBYDY8ES7OIuZr71aaQlipzXDg== +MHcCAQEEICwDKzfq/bE+PJ99AiHYhJiAe+AsDeFdiLnHp/1q6ZKSoAoGCCqGSM49 +AwEHoUQDQgAE7XO14i9hlC6dH5rfPKsolOUO1VYCyiCtFfOEkudBOoMOajjbn+zF +RDcW8q66XHg2dZcoDa/YbLZ2mgEC6+Y2yg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/test_case_vector.json index d6f00d1307723f..7258c25f029245 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_ca_wrong/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Certificate Basic Constraint extension CA field is wrong (TRUE for DAC and FALSE for PAI)", "is_success_case": "false", - "dac_cert": "308201d130820177a00302010202080fcab2e630a11a53300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000471585c0fd0bbd0c03e812702f179a14f3670ac27cd71f6ad9f3c0917b94e7cdc685c75e6a9876d73a274a15b32a5971f27d9c282f22c64a32d0e3c1c6ea72f21a3633061300f0603551d130101ff040530030101ff300e0603551d0f0101ff040403020780301d0603551d0e04160414cf562b967858417620287f334a08ebbc900969e6301f0603551d230418301680148e442b13acbe3da1671c384905548a6ee91b7b00300a06082a8648ce3d0403020348003045022100cf185d44b7fd202ff9a7ab4a1c3326c226617487f4d65560134d17681898d7a002204a9f78ad3b6fb2178cbd2ea4b995ad0bbf006343736877845959d283512dc5e1", - "pai_cert": "308201bd30820164a00302010202087fe9522e6f37781c300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004b4714b97d24cec513d4de571649a928dc4fb8394fbdc35179cd73472a6dcc4ca983610e2996674ecc6f0837da344160363c112ece22e66bef569a4258a9cd70ea366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604148e442b13acbe3da1671c384905548a6ee91b7b00301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402207f6c67bbff494bea6f323966ba76c96a6d16f5f333c3b10c8e5d7622c47d395e022009755f9f2cca5b8487451254ca13fed19097116144c8ff99961c6f5963d6fa0d", - "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502210093a5389f26086a12651d3bd2a96399666e1586f6178bf2617bc79a80c8dde3d302203700956415445211bffcb527218aef67ee2c8ac430f2b35a262eccf3450a21df", - "dac_private_key": "b62fa8c2accb096d8c72e1dc615b45363fbcd0b23f31c2258a54d0156c2a0c9f", - "dac_public_key": "0471585c0fd0bbd0c03e812702f179a14f3670ac27cd71f6ad9f3c0917b94e7cdc685c75e6a9876d73a274a15b32a5971f27d9c282f22c64a32d0e3c1c6ea72f21" + "dac_cert": "308201d030820177a0030201020208603bf4828bd348be300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200043af262dd4143cb8224f1862198594f3c4ef724e4f0a95e23ad025ddb95230b916393174d8f690682a3b9859d43ed246ecf967d3b26e1eb732330f73a8b886c76a3633061300f0603551d130101ff040530030101ff300e0603551d0f0101ff040403020780301d0603551d0e0416041427feefca8ae92f9e62cb5df19137a5be6b7b69c0301f0603551d23041830168014651ee488ca61c0ceca373c9610ccaeab68f1ea55300a06082a8648ce3d040302034700304402204ae6b22e8690bd1fd1fa73eb22edd2af57696db80aa27f3936cb56e325a0d58c022058c9f5ac087fc40749bb156160fae08f16b4aa92b99c386e9df1bbf546d961e0", + "pai_cert": "308201bf30820164a003020102020831fdca08eb8b9285300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004ed73b5e22f61942e9d1f9adf3cab2894e50ed55602ca20ad15f38492e7413a830e6a38db9fecc5443716f2aeba5c78367597280dafd86cb6769a0102ebe636caa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414651ee488ca61c0ceca373c9610ccaeab68f1ea55301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100824ae903f82181fe6856d810e1392d72b0c501bfc10e878996410b73444b756d022100d5e8f483f5c0156808b4d4f11e81d164f8b5ec7fe7baca253882a62a8d8e22fc", + "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502205b8a7e92c77a7c2a76aaa8797080eb2f44cfd9367ad29285325233fd79307ab3022100dc70ccffe0debdf2b82de33da69b66cbf62d04d801c3c4750ccbc168f8d21892", + "dac_private_key": "09a872c52323df9ec0fff90d431b77708988cf1334f3f6a7e0518f5ee8f9c741", + "dac_public_key": "043af262dd4143cb8224f1862198594f3c4ef724e4f0a95e23ad025ddb95230b916393174d8f690682a3b9859d43ed246ecf967d3b26e1eb732330f73a8b886c76" } diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/cd.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/cd.der index 12e2d6015024bd..c59aff0c1350cc 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/cd.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/dac-Cert.der index e215ca2a3098b3..57efdef8cf1370 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/dac-Cert.pem index f937cbb6f42bb6..373814c9a327ef 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIByjCCAXGgAwIBAgIITNoQlY/6u6IwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIByjCCAXGgAwIBAgIIYUVqBat3UlIwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATs9qhtbaOOAeK1bxAQNZuMbAwN1F3S -pDaJ1iCj3LDHPBqVdW54+XJn3L4oaMtCTH/6rmyV2p2x8QZxzcjr6rXSo10wWzAJ -BgNVHRMEAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUWySeBlIvflK2gPLf -DG8zYaLiAHIwHwYDVR0jBBgwFoAUpX/u1IuFzbLOjcrbCakr8V65E5YwCgYIKoZI -zj0EAwIDRwAwRAIgGHSL9o46RJOlBr8csLl6/CEXdRUb/RD3FQ24mRB/mGcCIHZk -SIz3BK/sk0/W8ShDu/cXCHiJC4TQB643RLKAQJcV +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR8didUZO1tRZKcTPCrwJdzUfj58tiO +o7XRWQyeQpt3iPsQWko+6u7sWKREsB4JPu1KHI1NZvwxlTFmIqgOWKl1o10wWzAJ +BgNVHRMEAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUz0YnuNfwk364m4gW +hLP/Y6HbgEgwHwYDVR0jBBgwFoAUrjChQeLZ/zXQGY9HKDyAftv45M4wCgYIKoZI +zj0EAwIDRwAwRAIgF8RIXiTe6pR1YSsVrGAV6i6YLFyM44GQ46gXBxpJENECIGgZ +/Db58vRH45/b42W17p9gQmLdcj42z0E7j9y0/GKm -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/dac-Key.der index 233f617598ab92..398d4aa2f85d31 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/dac-Key.pem index 1e0fa09c4ddb55..ea6395d9481439 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIE89QzLE/9xri06uolUY5jYpvVeQRT+yJHvgRgXGleF7oAoGCCqGSM49 -AwEHoUQDQgAE7PaobW2jjgHitW8QEDWbjGwMDdRd0qQ2idYgo9ywxzwalXVuePly -Z9y+KGjLQkx/+q5sldqdsfEGcc3I6+q10g== +MHcCAQEEIGeDi47VKYxUpw97cwmhYgiNDsgZ4SjMk96194vN+zEkoAoGCCqGSM49 +AwEHoUQDQgAEfHYnVGTtbUWSnEzwq8CXc1H4+fLYjqO10VkMnkKbd4j7EFpKPuru +7FikRLAeCT7tShyNTWb8MZUxZiKoDlipdQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/pai-Cert.der index f12a1147dda3e9..ebd1df89925686 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/pai-Cert.pem index f993fce37cd93c..d3fc04e37771aa 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvzCCAWSgAwIBAgIIRM0rXdRruAIwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvzCCAWSgAwIBAgIIekf5VYbSaokwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABPa9ho6uDOCP3SbfW5WZghBwwaMt6fQ3rzGhYrarxx2PavItd+FEznuYi/kl -mQ2Nm+e8Bv4E+ny4rJAMHlkH512jZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSlf+7Ui4XNss6NytsJqSvxXrkTljAfBgNV +A0IABOeN9kH5SAM0yFVQYHv5h4fH9VySytxKrnrGl8mVZWKDL0Vup2eg5BAU5j+j +HVrcDS50mgzqoA4odvM0VBQI+cSjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSuMKFB4tn/NdAZj0coPIB+2/jkzjAfBgNV HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNJADBGAiEA -hVoE3RXaZ+LyeWvHTfL9LLVeJEhVHjJNNipb9x6TZuoCIQDQ7fCUJBC2pfY6ljeH -TiuZCURVZgQwXkYAAHCDAMQJWA== +3pDq2EJc7E8UzoR/r03tYA9kJFiiPhxIox241dKZlsICIQCo9eJ7JDKTLlrCNSWB +P5OMrrXezPcLLZ5isSTd69YjOQ== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/pai-Key.der index 6a59795917d6db..fab553694693ba 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/pai-Key.pem index 8d57cc3bf512f1..ff5533f40ff024 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIBbJDakrXac0BXhggy5J6jpZzhILOib+Q4ZHgltPzjUuoAoGCCqGSM49 -AwEHoUQDQgAE9r2Gjq4M4I/dJt9blZmCEHDBoy3p9DevMaFitqvHHY9q8i134UTO -e5iL+SWZDY2b57wG/gT6fLiskAweWQfnXQ== +MHcCAQEEIHacyaSktwlxCJv92ckRgnsQM6RGa5VxXCtRLVVr8n5DoAoGCCqGSM49 +AwEHoUQDQgAE5432QflIAzTIVVBge/mHh8f1XJLK3EquesaXyZVlYoMvRW6nZ6Dk +EBTmP6MdWtwNLnSaDOqgDih28zRUFAj5xA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/test_case_vector.json index 964ef3fc524d16..2b3f53434d5f2d 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_missing/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Certificate Basic Constraint extension critical field is missing", "is_success_case": "false", - "dac_cert": "308201ca30820171a00302010202084cda10958ffabba2300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004ecf6a86d6da38e01e2b56f1010359b8c6c0c0dd45dd2a43689d620a3dcb0c73c1a95756e78f97267dcbe2868cb424c7ffaae6c95da9db1f10671cdc8ebeab5d2a35d305b30090603551d1304023000300e0603551d0f0101ff040403020780301d0603551d0e041604145b249e06522f7e52b680f2df0c6f3361a2e20072301f0603551d23041830168014a57feed48b85cdb2ce8dcadb09a92bf15eb91396300a06082a8648ce3d0403020347003044022018748bf68e3a4493a506bf1cb0b97afc211775151bfd10f7150db899107f986702207664488cf704afec934fd6f12843bbf7170878890b84d007ae3744b280409715", - "pai_cert": "308201bf30820164a003020102020844cd2b5dd46bb802300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004f6bd868eae0ce08fdd26df5b9599821070c1a32de9f437af31a162b6abc71d8f6af22d77e144ce7b988bf925990d8d9be7bc06fe04fa7cb8ac900c1e5907e75da366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414a57feed48b85cdb2ce8dcadb09a92bf15eb91396301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100855a04dd15da67e2f2796bc74df2fd2cb55e2448551e324d362a5bf71e9366ea022100d0edf0942410b6a5f63a9637874e2b990944556604305e460000708300c40958", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044630440220261e5642187ef1644369b4d0ed9921f005864feda1a899a7a3705fac5b50d15b02205ad7c145af31c4957cae83e7dcd27cb4b6ced9ba77e9a6fa348766059dc219eb", - "dac_private_key": "4f3d4332c4ffdc6b8b4eaea25518e63629bd5790453fb2247be04605c695e17b", - "dac_public_key": "04ecf6a86d6da38e01e2b56f1010359b8c6c0c0dd45dd2a43689d620a3dcb0c73c1a95756e78f97267dcbe2868cb424c7ffaae6c95da9db1f10671cdc8ebeab5d2" + "dac_cert": "308201ca30820171a003020102020861456a05ab775252300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200047c76275464ed6d45929c4cf0abc0977351f8f9f2d88ea3b5d1590c9e429b7788fb105a4a3eeaeeec58a444b01e093eed4a1c8d4d66fc3195316622a80e58a975a35d305b30090603551d1304023000300e0603551d0f0101ff040403020780301d0603551d0e04160414cf4627b8d7f0937eb89b881684b3ff63a1db8048301f0603551d23041830168014ae30a141e2d9ff35d0198f47283c807edbf8e4ce300a06082a8648ce3d0403020347003044022017c4485e24deea9475612b15ac6015ea2e982c5c8ce38190e3a817071a4910d102206819fc36f9f2f447e39fdbe365b5ee9f604262dd723e36cf413b8fdcb4fc62a6", + "pai_cert": "308201bf30820164a00302010202087a47f95586d26a89300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004e78df641f9480334c85550607bf98787c7f55c92cadc4aae7ac697c9956562832f456ea767a0e41014e63fa31d5adc0d2e749a0ceaa00e2876f334541408f9c4a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414ae30a141e2d9ff35d0198f47283c807edbf8e4ce301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100de90ead8425cec4f14ce847faf4ded600f642458a23e1c48a31db8d5d29996c2022100a8f5e27b2432932e5ac23525813f938caeb5deccf70b2d9e62b124ddebd62339", + "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100cd6f9b77b80ec9104183434625d7512e08438e45f76ff1f195a49a14e8ce9ce60220735f431410deaffbbaf82c09b7d94e66431889549a2c9ef1256e43e6fffec131", + "dac_private_key": "67838b8ed5298c54a70f7b7309a162088d0ec819e128cc93deb5f78bcdfb3124", + "dac_public_key": "047c76275464ed6d45929c4cf0abc0977351f8f9f2d88ea3b5d1590c9e429b7788fb105a4a3eeaeeec58a444b01e093eed4a1c8d4d66fc3195316622a80e58a975" } diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/cd.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/cd.der index 93a353b7c6687b..f47e6aa158939b 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/cd.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/dac-Cert.der index 34f9f5121bafa0..d34c1b0842f702 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/dac-Cert.pem index ff221030093956..41ab8e21b18953 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIByjCCAXGgAwIBAgIIYyGAPQKTUo4wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIByzCCAXGgAwIBAgIIeQ4VkymbXcIwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ5jHSkoMbgKAkH4/eBtWGTxhuz5LRe -sFsOjxBi6b5qzoScybTTB/J/g46RVS9I4zvTJVOIsSvDdGFb1LAnZfEMo10wWzAJ -BgNVHRMEAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUdMe1Xp5k3tQaiSOK -fx45RElO8o4wHwYDVR0jBBgwFoAUVWfihz+acYgdI1Q0KNmwUl53BXkwCgYIKoZI -zj0EAwIDRwAwRAIgd0UlgC54I0Tqy2URDBES4LrdHE3XSZMggggFF1CBGfQCIH7M -X5dNHksomhZ8HoYrd6Gdc2a0C/4tjTNuwREb6I2t +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATZzYl2shqWZeyK7/T17BHLaKE7jSjp +gUf6I/a/RmqI9hMLqOsj/IbvLfucdY6P+wOW6+8Vu8C0MUAM7ul5Vweso10wWzAJ +BgNVHRMEAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUL2cIlHYXJrQ4O+F+ +b4xMm96GUvgwHwYDVR0jBBgwFoAUFpHmCYvYwP+0PkmFcs2aHLG71ogwCgYIKoZI +zj0EAwIDSAAwRQIgLkXshsyfm0wy2GZwiiwZz7B/ru5JcvlJa8O0ftfSd/QCIQD1 +MsoKaZtNTruEmhEJ8Klib49rrvLFumCWvEPL+KicLA== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/dac-Key.der index be9954f4e4204e..9ce84ac91bad47 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/dac-Key.pem index 4adeec98a2d2e2..5e59d9645fac25 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIO0cp6OVRrul3j3hmvX0EFkR2Y1oh2ydjjnbCMI6BeQloAoGCCqGSM49 -AwEHoUQDQgAEOYx0pKDG4CgJB+P3gbVhk8Ybs+S0XrBbDo8QYum+as6EnMm00wfy -f4OOkVUvSOM70yVTiLErw3RhW9SwJ2XxDA== +MHcCAQEEIMzc7NIQPk751e9n2DuUA40y503ZYMqUQaxDVTV14fB3oAoGCCqGSM49 +AwEHoUQDQgAE2c2JdrIalmXsiu/09ewRy2ihO40o6YFH+iP2v0ZqiPYTC6jrI/yG +7y37nHWOj/sDluvvFbvAtDFADO7peVcHrA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/pai-Cert.der index e8ea720f0136d7..7e21afa5fe27ce 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/pai-Cert.pem index 5eb0bc26a2bc28..010576cf3fa474 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvzCCAWSgAwIBAgIID+GOMm3R0RwwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvjCCAWSgAwIBAgIIJSXTwP8CmrkwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABCBOXxqtwvxCLDvI+ZI5Lpa2VDgmpsA7/rD1VmHAbdFaeg9+lv7QiOuVQB+J -3aYkJXVmLRwUU5XVTPgkIr7rnMajZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRVZ+KHP5pxiB0jVDQo2bBSXncFeTAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNJADBGAiEA -hOqR9RBiP9iSegWwVk/f6qbEM9HovV58bCrv+mYoerUCIQC7+nKd49BL0dteYLG/ -0bkpN62YMpeBShz4ZcxSuCiG0g== +A0IABHGc9XLZuE66ShNp/uPCJe+xFIj7iU/nb7fd1uWUxJpw6bHRayTv6UZKXnW6 +pvKTGCXiyo8Q/IhQDL8JuGOU3xOjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQWkeYJi9jA/7Q+SYVyzZocsbvWiDAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiBC +7BwhCq8pc64zVD/V2BSdJNRNAOwOidDG6jhpNvtOXgIhAJjfeOIp0Zjn77tEAsXm +6+9qU+PUSjem9jPoeJfDZHhz -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/pai-Key.der index 37d0988b3712a6..3929cdd525a625 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/pai-Key.pem index 7469ac6ee80969..1b75ab5f5b72f3 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIGGGKqRljzDBSEMatjbC58lESpAzklvlDgwGM7R87JXioAoGCCqGSM49 -AwEHoUQDQgAEIE5fGq3C/EIsO8j5kjkulrZUOCamwDv+sPVWYcBt0Vp6D36W/tCI -65VAH4ndpiQldWYtHBRTldVM+CQivuucxg== +MHcCAQEEIMRNA5knfFa8Ear5IAn8nndPjAlp/mYhdl3TWZr1xEKxoAoGCCqGSM49 +AwEHoUQDQgAEcZz1ctm4TrpKE2n+48Il77EUiPuJT+dvt93W5ZTEmnDpsdFrJO/p +Rkpedbqm8pMYJeLKjxD8iFAMvwm4Y5TfEw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/test_case_vector.json index a5a5551617a223..1aa3dafd3c7577 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_critical_wrong/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Certificate Basic Constraint extension critical field is set as 'non-critical'", "is_success_case": "false", - "dac_cert": "308201ca30820171a00302010202086321803d0293528e300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004398c74a4a0c6e0280907e3f781b56193c61bb3e4b45eb05b0e8f1062e9be6ace849cc9b4d307f27f838e91552f48e33bd3255388b12bc374615bd4b02765f10ca35d305b30090603551d1304023000300e0603551d0f0101ff040403020780301d0603551d0e0416041474c7b55e9e64ded41a89238a7f1e3944494ef28e301f0603551d230418301680145567e2873f9a71881d23543428d9b0525e770579300a06082a8648ce3d04030203470030440220774525802e782344eacb65110c1112e0badd1c4dd749932082080517508119f402207ecc5f974d1e4b289a167c1e862b77a19d7366b40bfe2d8d336ec1111be88dad", - "pai_cert": "308201bf30820164a00302010202080fe18e326dd1d11c300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004204e5f1aadc2fc422c3bc8f992392e96b6543826a6c03bfeb0f55661c06dd15a7a0f7e96fed088eb95401f89dda6242575662d1c145395d54cf82422beeb9cc6a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604145567e2873f9a71881d23543428d9b0525e770579301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034900304602210084ea91f510623fd8927a05b0564fdfeaa6c433d1e8bd5e7c6c2aeffa66287ab5022100bbfa729de3d04bd1db5e60b1bfd1b92937ad983297814a1cf865cc52b82886d2", - "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100d2354c024503be200a34b9254b0f903bb2f7da1a9e661436df19077066f18c47022006c83c4f4b382744605c70322cad2e73021e36a3eb5b7d68afde5975d43d5318", - "dac_private_key": "ed1ca7a39546bba5de3de19af5f4105911d98d68876c9d8e39db08c23a05e425", - "dac_public_key": "04398c74a4a0c6e0280907e3f781b56193c61bb3e4b45eb05b0e8f1062e9be6ace849cc9b4d307f27f838e91552f48e33bd3255388b12bc374615bd4b02765f10c" + "dac_cert": "308201cb30820171a0030201020208790e1593299b5dc2300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004d9cd8976b21a9665ec8aeff4f5ec11cb68a13b8d28e98147fa23f6bf466a88f6130ba8eb23fc86ef2dfb9c758e8ffb0396ebef15bbc0b431400ceee9795707aca35d305b30090603551d1304023000300e0603551d0f0101ff040403020780301d0603551d0e041604142f670894761726b4383be17e6f8c4c9bde8652f8301f0603551d230418301680141691e6098bd8c0ffb43e498572cd9a1cb1bbd688300a06082a8648ce3d040302034800304502202e45ec86cc9f9b4c32d866708a2c19cfb07faeee4972f9496bc3b47ed7d277f4022100f532ca0a699b4d4ebb849a1109f0a9626f8f6baef2c5ba6096bc43cbf8a89c2c", + "pai_cert": "308201be30820164a00302010202082525d3c0ff029ab9300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004719cf572d9b84eba4a1369fee3c225efb11488fb894fe76fb7ddd6e594c49a70e9b1d16b24efe9464a5e75baa6f2931825e2ca8f10fc88500cbf09b86394df13a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604141691e6098bd8c0ffb43e498572cd9a1cb1bbd688301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022042ec1c210aaf2973ae33543fd5d8149d24d44d00ec0e89d0c6ea386936fb4e5e02210098df78e229d198e7efbb4402c5e6ebef6a53e3d44a37a6f633e87897c3647873", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402207bae9411164196fae2ad98ccabdac3dbc8284507d3012e553303bd958e02fcd6022037c1e5c24eeb4ecc2d74281e92c4a21ca66a40fe34c99758056d4b29cce5dcd5", + "dac_private_key": "ccdcecd2103e4ef9d5ef67d83b94038d32e74dd960ca9441ac43553575e1f077", + "dac_public_key": "04d9cd8976b21a9665ec8aeff4f5ec11cb68a13b8d28e98147fa23f6bf466a88f6130ba8eb23fc86ef2dfb9c758e8ffb0396ebef15bbc0b431400ceee9795707ac" } diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/cd.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/cd.der index 487e0379d69a6c..1b4c0f60ce6ba3 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/cd.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/dac-Cert.der index 9e6ca82fe28176..093e682d36a8d7 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/dac-Cert.pem index 3ae9e540f9e37d..175274f930411a 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvzCCAWagAwIBAgIIdWQZZ/hRmSMwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvzCCAWagAwIBAgIIfAk8Qci1coIwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARZAmOrADqnr1g52t+eEsy/4QsgPCxk -Dn5LclGUzj//aTx/3vK0emGhxcKuJucyASuT7Hdb/JPykSdO1/ErZqdSo1IwUDAO -BgNVHQ8BAf8EBAMCB4AwHQYDVR0OBBYEFF1CAVvJbWMv9WpRhPfzORmif6y0MB8G -A1UdIwQYMBaAFESUBKTSsI5oejdmvN3p3DEHtQblMAoGCCqGSM49BAMCA0cAMEQC -IE/Du5ZitPyojUXhCHPlF511CY9T0ZVO7lsXNBi4LzN9AiAxYJCXJS7vz7zB5k5U -mHUkXCXhd4abxumhnZHfdtpLFg== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATur9Bvnp5hXk8LxJFGEuJCSO2NpDQo +NTqlzpKVZWNzIaCMMzE19eH+v5CjkN6gKB0T7Xf+MGmnvc6Jg9fiuAiEo1IwUDAO +BgNVHQ8BAf8EBAMCB4AwHQYDVR0OBBYEFFgzzji8raFTMmA8ccTjRffph4XAMB8G +A1UdIwQYMBaAFGDO8h7A1JGRzS+o6FIGnmgs2HvOMAoGCCqGSM49BAMCA0cAMEQC +IBXq9QZSH9828eCOALqxhV3fFi+J/xcN8vxOH31fwKDsAiA7sJVcWzxUSK0/wh1n +5sjDBzWqLZDFM7cT3WIC4frCIA== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/dac-Key.der index e3a7661d6f24aa..4758555b46c650 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/dac-Key.pem index 89f1ec827fa359..dfbbfccea6b673 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIAC9QTFk0EAQvVSmHtoTouY+jReslTBAMZ3LW4F2RRbboAoGCCqGSM49 -AwEHoUQDQgAEWQJjqwA6p69YOdrfnhLMv+ELIDwsZA5+S3JRlM4//2k8f97ytHph -ocXCribnMgErk+x3W/yT8pEnTtfxK2anUg== +MHcCAQEEIEI5k5bNUiAAHt2imW0VFiHELalNfGU27bVzWGqFNLbKoAoGCCqGSM49 +AwEHoUQDQgAE7q/Qb56eYV5PC8SRRhLiQkjtjaQ0KDU6pc6SlWVjcyGgjDMxNfXh +/r+Qo5DeoCgdE+13/jBpp73OiYPX4rgIhA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/pai-Cert.der index 567410776cfc82..5ef92e1f09af17 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/pai-Cert.pem index 79052c615b6647..722c47283fc4b5 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvjCCAWSgAwIBAgIIB71uNqm8JxswCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvjCCAWSgAwIBAgIIF6TrjZMKUu0wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABCZnC3Y6F6Cd675zP5ifmv1RnfAVxsNxktni1ckSmUB0nKV5SV6mkuw/74BE -pz8s/RpsTcViTfzdztPnVHZMeB+jZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRElASk0rCOaHo3Zrzd6dwxB7UG5TAfBgNV +A0IABICNlJs3kQS0w4bliK8vfGzZ0+Nj6C1NsfrJsKOCEucfw0LeoujbKg4vOjYX +QpjJaMZIEoMubpbspXR+3RRn8/mjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRgzvIewNSRkc0vqOhSBp5oLNh7zjAfBgNV HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiEA -/6SEDq3rRGxtqS2nJcPhF2BHCiVICcLYZDFIMhgDfV0CIB+AVid9GGivS6GZIOnN -GmWZkz4yfrZZ8ocfXugeWQvD +hq+0zeW68ii/PkX1K9uZUXwxdrE7N5UumJs4eM0721UCIFcQoy3VjK9OlTumY2ZY +U7qsuFdUOlDJmaACGEiz8uZh -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/pai-Key.der index 5bd09a77b395d7..16bd26f8f145bf 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/pai-Key.pem index 19afd993f0eb9a..1077998e414a5f 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIF42Tg7lKrGd377KLg1yMiwIBwAqsApDRbXY5bzDfQ/noAoGCCqGSM49 -AwEHoUQDQgAEJmcLdjoXoJ3rvnM/mJ+a/VGd8BXGw3GS2eLVyRKZQHScpXlJXqaS -7D/vgESnPyz9GmxNxWJN/N3O0+dUdkx4Hw== +MHcCAQEEIH88UhgUEU17SkrYkfroPRvE2JtbqPuEhYb0nTgqL+nFoAoGCCqGSM49 +AwEHoUQDQgAEgI2UmzeRBLTDhuWIry98bNnT42PoLU2x+smwo4IS5x/DQt6i6Nsq +Di86NhdCmMloxkgSgy5uluyldH7dFGfz+Q== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/test_case_vector.json index bfbb3aa40cfb49..13d9670ed62f58 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_missing/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Certificate doesn't include Basic Constraint extension", "is_success_case": "false", - "dac_cert": "308201bf30820166a003020102020875641967f8519923300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004590263ab003aa7af5839dadf9e12ccbfe10b203c2c640e7e4b725194ce3fff693c7fdef2b47a61a1c5c2ae26e732012b93ec775bfc93f291274ed7f12b66a752a3523050300e0603551d0f0101ff040403020780301d0603551d0e041604145d42015bc96d632ff56a5184f7f33919a27facb4301f0603551d23041830168014449404a4d2b08e687a3766bcdde9dc3107b506e5300a06082a8648ce3d040302034700304402204fc3bb9662b4fca88d45e10873e5179d75098f53d1954eee5b173418b82f337d022031609097252eefcfbcc1e64e549875245c25e177869bc6e9a19d91df76da4b16", - "pai_cert": "308201be30820164a003020102020807bd6e36a9bc271b300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000426670b763a17a09debbe733f989f9afd519df015c6c37192d9e2d5c9129940749ca579495ea692ec3fef8044a73f2cfd1a6c4dc5624dfcddced3e754764c781fa366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414449404a4d2b08e687a3766bcdde9dc3107b506e5301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100ffa4840eadeb446c6da92da725c3e11760470a254809c2d86431483218037d5d02201f8056277d1868af4ba19920e9cd1a6599933e327eb659f2871f5ee81e590bc3", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402201e12b625045e8664af852fb665f928310cf31a97ec3c6c68b01b38e731a9134d0220532c5b98d98cb6c4a7765b41fac5a48096b715ace34144bdfcdd9b351c87098b", - "dac_private_key": "00bd413164d04010bd54a61eda13a2e63e8d17ac953040319dcb5b81764516db", - "dac_public_key": "04590263ab003aa7af5839dadf9e12ccbfe10b203c2c640e7e4b725194ce3fff693c7fdef2b47a61a1c5c2ae26e732012b93ec775bfc93f291274ed7f12b66a752" + "dac_cert": "308201bf30820166a00302010202087c093c41c8b57282300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004eeafd06f9e9e615e4f0bc4914612e24248ed8da43428353aa5ce929565637321a08c333135f5e1febf90a390dea0281d13ed77fe3069a7bdce8983d7e2b80884a3523050300e0603551d0f0101ff040403020780301d0603551d0e041604145833ce38bcada15332603c71c4e345f7e98785c0301f0603551d2304183016801460cef21ec0d49191cd2fa8e852069e682cd87bce300a06082a8648ce3d0403020347003044022015eaf506521fdf36f1e08e00bab1855ddf162f89ff170df2fc4e1f7d5fc0a0ec02203bb0955c5b3c5448ad3fc21d67e6c8c30735aa2d90c533b713dd6202e1fac220", + "pai_cert": "308201be30820164a003020102020817a4eb8d930a52ed300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004808d949b379104b4c386e588af2f7c6cd9d3e363e82d4db1fac9b0a38212e71fc342dea2e8db2a0e2f3a36174298c968c64812832e6e96eca5747edd1467f3f9a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041460cef21ec0d49191cd2fa8e852069e682cd87bce301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502210086afb4cde5baf228bf3e45f52bdb99517c3176b13b37952e989b3878cd3bdb5502205710a32dd58caf4e953ba663665853baacb857543a50c999a0021848b3f2e661", + "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100e7374f9f6e12792a65b2cb6c3f99a9507d046bbb675cafefa90ba8a1120a3a3602207d27c01bfe5d468b0f6ded348a3ee52464c3c4d3cd17fe2cc6a8b03250c08b09", + "dac_private_key": "42399396cd5220001edda2996d151621c42da94d7c6536edb573586a8534b6ca", + "dac_public_key": "04eeafd06f9e9e615e4f0bc4914612e24248ed8da43428353aa5ce929565637321a08c333135f5e1febf90a390dea0281d13ed77fe3069a7bdce8983d7e2b80884" } diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/cd.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/cd.der index 0f03039c82704c..6c9a2565f37529 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/cd.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/dac-Cert.der index eec9f7e9db8379..ead5da90d9a888 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/dac-Cert.pem index 51cc73913599fd..b12f9b807eb3fb 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzzCCAXSgAwIBAgIIHoVwFqORXV0wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzjCCAXSgAwIBAgIIaREobzqbP1UwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQHTooMbiJAnSmba3S33vV4c2f3XqG/ -gDDJ3DBQZxb6UpVQDkkvtyc+i2RTF/sm65S8OwGjNwHnYPQxgsZIISvso2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUMTJoQeu6sxg3 -yXMfm5uPm5bjK5gwHwYDVR0jBBgwFoAUVmPydcFCBdjLdQKBP0Asz1DFdAgwCgYI -KoZIzj0EAwIDSQAwRgIhAKJgbwu0VCADEeVF8ro72G/tGYKz4aE6cUPY+/h2CUjh -AiEA3DsSOT6WrEntlD8InPcrwDCsSihm8eEw1yalnaWEBdk= +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASlyFRzQ7Bep3QoNUNB9Pjve36JVkoc +UapOPW31jHVJZ/9AUhyDL8LBUlaqdbfEt6IQ4BylnKAmebPPhHQbe3sOo2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQU+QhnErgSgADD +gzh8QmxtEvuKyTIwHwYDVR0jBBgwFoAUYaIbv+zZ9MfI3MD9hBG7a1P+ZZEwCgYI +KoZIzj0EAwIDSAAwRQIge/fFk83ukvKAoBea3Vl7p9k2eU+2wpdDZXjWPmH+iQkC +IQCzoBUAcHW1BieeHKK05TQ2Cs84sszK3l1j2+gh9kPKdQ== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/dac-Key.der index 41ec05139f9c2e..5e258ae2f17057 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/dac-Key.pem index 80a9f8ad28df52..12f08726724b26 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIOAb8zXO/0RdOhwW6H2BheYuWMuUcVrGc2T8cF+mm/+noAoGCCqGSM49 -AwEHoUQDQgAEB06KDG4iQJ0pm2t0t971eHNn916hv4AwydwwUGcW+lKVUA5JL7cn -PotkUxf7JuuUvDsBozcB52D0MYLGSCEr7A== +MHcCAQEEIDdxyhZwDfeHPAbutmnUXItWWJH/djFApydiVnMMsQbJoAoGCCqGSM49 +AwEHoUQDQgAEpchUc0OwXqd0KDVDQfT473t+iVZKHFGqTj1t9Yx1SWf/QFIcgy/C +wVJWqnW3xLeiEOAcpZygJnmzz4R0G3t7Dg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/pai-Cert.der index a268d51a033f7f..47da29a8e5cf6f 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/pai-Cert.pem index fc5b7392117d38..18b15d82bad51f 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvzCCAWSgAwIBAgIIV5Mnr0rRnWswCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvTCCAWSgAwIBAgIIYH7YaArNPm4wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABB7+kI07mLslUF2Hit+kmK4UfkVb5X/F77Fx/lzsu6rn7IGcr9j3Fwr+oyhN -bBv1FaDzlz8oFWtkj8sud18x8jOjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRWY/J1wUIF2Mt1AoE/QCzPUMV0CDAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNJADBGAiEA -xcpHlJe3z5Roh51BOxy/d1AtbXA8vonadirzEsjpbiMCIQD0pD97ZxyIpiYyRfow -k9TeJ1fQHa7Fwpc4MXeqCRszsQ== +A0IABFkKTCTMFwY01qyBWbiZyxHhWedyvBWB7nElqB0IIZrj0IjFTWibUxSGT7N7 +FBR3JWkrhWOLSPV4A2nJ2OAXL7+jZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRhohu/7Nn0x8jcwP2EEbtrU/5lkTAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNHADBEAiAR +/Qu1fTlubnoRd/BB/rwjheEhemMH2zhFvj4laREBawIgZFpi07oNIgV9ve1KpN2j +ew/h2GOkQ7jsSjjzXM6wU3A= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/pai-Key.der index 9baffb174c981e..b5fee19b37904b 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/pai-Key.pem index 97d49675220882..41ef5a7439aa9b 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIJmyRx3KmKC2DQBtj6FVDibvc4mkmjRCthVlbFPh297VoAoGCCqGSM49 -AwEHoUQDQgAEHv6QjTuYuyVQXYeK36SYrhR+RVvlf8XvsXH+XOy7qufsgZyv2PcX -Cv6jKE1sG/UVoPOXPygVa2SPyy53XzHyMw== +MHcCAQEEIJ3Ln7ZNU9h9E8uYTKPxZ40/nhwNe+HwErGKu8AUjdKtoAoGCCqGSM49 +AwEHoUQDQgAEWQpMJMwXBjTWrIFZuJnLEeFZ53K8FYHucSWoHQghmuPQiMVNaJtT +FIZPs3sUFHclaSuFY4tI9XgDacnY4Bcvvw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/test_case_vector.json index 3f50c4352dc51f..5b3cdbd9aa4c3b 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen0/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Certificate Basic Constraint extension PathLen field set to 0", "is_success_case": "false", - "dac_cert": "308201cf30820174a00302010202081e857016a3915d5d300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004074e8a0c6e22409d299b6b74b7def5787367f75ea1bf8030c9dc30506716fa5295500e492fb7273e8b645317fb26eb94bc3b01a33701e760f43182c648212beca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041431326841ebbab31837c9731f9b9b8f9b96e32b98301f0603551d230418301680145663f275c14205d8cb7502813f402ccf50c57408300a06082a8648ce3d0403020349003046022100a2606f0bb454200311e545f2ba3bd86fed1982b3e1a13a7143d8fbf8760948e1022100dc3b12393e96ac49ed943f089cf72bc030ac4a2866f1e130d726a59da58405d9", - "pai_cert": "308201bf30820164a0030201020208579327af4ad19d6b300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200041efe908d3b98bb25505d878adfa498ae147e455be57fc5efb171fe5cecbbaae7ec819cafd8f7170afea3284d6c1bf515a0f3973f28156b648fcb2e775f31f233a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604145663f275c14205d8cb7502813f402ccf50c57408301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100c5ca479497b7cf9468879d413b1cbf77502d6d703cbe89da762af312c8e96e23022100f4a43f7b671c88a6263245fa3093d4de2757d01daec5c297383177aa091b33b1", - "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100adf3c31a4e27816c20544450934b8fc148be00c6b05c01c2f3179aad87a8c7d2022100beaeab2e4e4949f5cdcd65be126632c7bc3841b05d9f8b10d190eebd018a35ca", - "dac_private_key": "e01bf335ceff445d3a1c16e87d8185e62e58cb94715ac67364fc705fa69bffa7", - "dac_public_key": "04074e8a0c6e22409d299b6b74b7def5787367f75ea1bf8030c9dc30506716fa5295500e492fb7273e8b645317fb26eb94bc3b01a33701e760f43182c648212bec" + "dac_cert": "308201ce30820174a00302010202086911286f3a9b3f55300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004a5c8547343b05ea77428354341f4f8ef7b7e89564a1c51aa4e3d6df58c754967ff40521c832fc2c15256aa75b7c4b7a210e01ca59ca02679b3cf84741b7b7b0ea360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414f9086712b8128000c383387c426c6d12fb8ac932301f0603551d2304183016801461a21bbfecd9f4c7c8dcc0fd8411bb6b53fe6591300a06082a8648ce3d040302034800304502207bf7c593cdee92f280a0179add597ba7d936794fb6c297436578d63e61fe8909022100b3a015007075b506279e1ca2b4e534360acf38b2cccade5d63dbe821f643ca75", + "pai_cert": "308201bd30820164a0030201020208607ed8680acd3e6e300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004590a4c24cc170634d6ac8159b899cb11e159e772bc1581ee7125a81d08219ae3d088c54d689b5314864fb37b14147725692b85638b48f5780369c9d8e0172fbfa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041461a21bbfecd9f4c7c8dcc0fd8411bb6b53fe6591301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020347003044022011fd0bb57d396e6e7a1177f041febc2385e1217a6307db3845be3e256911016b0220645a62d3ba0d22057dbded4aa4dda37b0fe1d863a443b8ec4a38f35cceb05370", + "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100cf465aaf5e38fdbc317fbcd613243876c537c86f3807fceda88ca497b02b9bb4022005cc82dcfe4c77a7aed04b073fc8c9e1391ed25697fb646d6d402138051fff85", + "dac_private_key": "3771ca16700df7873c06eeb669d45c8b565891ff763140a7276256730cb106c9", + "dac_public_key": "04a5c8547343b05ea77428354341f4f8ef7b7e89564a1c51aa4e3d6df58c754967ff40521c832fc2c15256aa75b7c4b7a210e01ca59ca02679b3cf84741b7b7b0e" } diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/cd.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/cd.der index 4e1216e9fdb893..b2381a9775a37f 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/cd.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/dac-Cert.der index 4e6537b5a515c4..64fb51da8c7b43 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/dac-Cert.pem index 70886f91e3b5b2..6e8ec24ffd8e64 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzTCCAXSgAwIBAgIIBjENGdju/QEwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzjCCAXSgAwIBAgIIKfSKrtFa17MwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATHc6vga6WlkfZ6EOi8Ar0I0C47u8TB -IcZr3BamMBUDaNDm93rcStVWBqK0tG1nvVzySAiS4Ux2jQomxrMfkjh2o2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUtq+rBDpG7n63 -MpscYoaVb4fVlswwHwYDVR0jBBgwFoAU3TmCPCfm8TuKhcSqUzjV+0gs6h0wCgYI -KoZIzj0EAwIDRwAwRAIgP8njHGcJuXDSZ2H8H5cpJUw5cL0YLcNlIhb4wSoaa9YC -IGh5mbkFxW/ZhrChK98B6t56M+LQZvXoAswcoh2zNeZH +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASDoAdK8YBIYtFITTmhQFRBjeKqmt6A +VYDBw0wh987fth2jMcg+DVRDM2jh/FIRw5Ra5gWWlXjOlU8Nz4PSKNrYo2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUf0fFOhhIdz4x +3IFoGTlVimiKdP4wHwYDVR0jBBgwFoAUj8U/H4Gl3B5mx/94RVwUGFdtOogwCgYI +KoZIzj0EAwIDSAAwRQIgSrebPPsQdWxsPuJ3QRPVsG6tdXznpy+DJHBU18Z5d78C +IQCUDG2mkE0/lZjCl+qUV0nerruiJ2kQE6jLTf/mwpxJ2g== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/dac-Key.der index 2cc0a6283ac444..4e44c73ac51597 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/dac-Key.pem index 96d6c9258083ec..51742c87443489 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIHJbSL/6EzbHP6Vv59AZFoyfKxUwVi7s+Rc0UFcsWe8NoAoGCCqGSM49 -AwEHoUQDQgAEx3Or4GulpZH2ehDovAK9CNAuO7vEwSHGa9wWpjAVA2jQ5vd63ErV -VgaitLRtZ71c8kgIkuFMdo0KJsazH5I4dg== +MHcCAQEEIHfL+dEHbB0TsKZPgxwPHn7IhW7kpzD/lkKptBPukelqoAoGCCqGSM49 +AwEHoUQDQgAEg6AHSvGASGLRSE05oUBUQY3iqpregFWAwcNMIffO37YdozHIPg1U +QzNo4fxSEcOUWuYFlpV4zpVPDc+D0ija2A== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/pai-Cert.der index 4163a7a6d953e8..1b1f2eb6a9ec67 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/pai-Cert.pem index 939b18938fba74..ef35f565ddb428 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvjCCAWSgAwIBAgIIasBHdzcQYowwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvzCCAWSgAwIBAgIIcPcXoAaIgCMwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABIVGO9BxRwJsuDAW7fQ/C90qYfsyrI1pNeqA+9B002q99oLYPo+aTh82o4mX -dc9A/6+H6zkWsJKewYb0lpyIlMWjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTdOYI8J+bxO4qFxKpTONX7SCzqHTAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiEA -ze9WdCVUO2Berd0XA1epFncdS3QbblrhtFwDI+mekxECICrrWJuXZVXgjMzvqAxd -V72yqHnIOAthyy8luguZnySZ +A0IABC8U8VpD4Cs58yQb9l2Ir+pqBS6y1zJM78y4H5g6m5vETYwkTpsdpRnemPpD +UqgOnb1jR1ZadeFvUVi+9Tw896yjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSPxT8fgaXcHmbH/3hFXBQYV206iDAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNJADBGAiEA +j6+zOKNSibs0AigYlKtNpp0o87GNrikIN9l+vP+UfnYCIQC79W32m7hhlZZl/Ygq +P/H5ej5d9wKi6c1ZN5esxwMgyg== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/pai-Key.der index 645a79675660e7..a932c07ba8d801 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/pai-Key.pem index 939deae63e3a91..ac235c9a65124b 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIG/2+Hghi+nFtuGUMfhsYqXQ9sAMn7qVRLZ6P7fXKYhIoAoGCCqGSM49 -AwEHoUQDQgAEhUY70HFHAmy4MBbt9D8L3Sph+zKsjWk16oD70HTTar32gtg+j5pO -HzajiZd1z0D/r4frORawkp7BhvSWnIiUxQ== +MHcCAQEEIHNiBNQZfHeGHDCB9SoPfERyfwf4Jw84Px+yIh1tCiatoAoGCCqGSM49 +AwEHoUQDQgAELxTxWkPgKznzJBv2XYiv6moFLrLXMkzvzLgfmDqbm8RNjCROmx2l +Gd6Y+kNSqA6dvWNHVlp14W9RWL71PDz3rA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/test_case_vector.json index 44c179321fb758..025436fef66714 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen1/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Certificate Basic Constraint extension PathLen field set to 1", "is_success_case": "false", - "dac_cert": "308201cd30820174a003020102020806310d19d8eefd01300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004c773abe06ba5a591f67a10e8bc02bd08d02e3bbbc4c121c66bdc16a630150368d0e6f77adc4ad55606a2b4b46d67bd5cf2480892e14c768d0a26c6b31f923876a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414b6afab043a46ee7eb7329b1c6286956f87d596cc301f0603551d23041830168014dd39823c27e6f13b8a85c4aa5338d5fb482cea1d300a06082a8648ce3d040302034700304402203fc9e31c6709b970d26761fc1f9729254c3970bd182dc3652216f8c12a1a6bd60220687999b905c56fd986b0a12bdf01eade7a33e2d066f5e802cc1ca21db335e647", - "pai_cert": "308201be30820164a00302010202086ac047773710628c300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000485463bd07147026cb83016edf43f0bdd2a61fb32ac8d6935ea80fbd074d36abdf682d83e8f9a4e1f36a3899775cf40ffaf87eb3916b0929ec186f4969c8894c5a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414dd39823c27e6f13b8a85c4aa5338d5fb482cea1d301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100cdef567425543b605eaddd170357a916771d4b741b6e5ae1b45c0323e99e931102202aeb589b976555e08cccefa80c5d57bdb2a879c8380b61cb2f25ba0b999f2499", - "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100e9406fa9c1ccbf93fd0347d9adc57cc4b587212903c9349a89d260411e1d176e02200091e072ce3ea216d336330d1cbcb07a574d136d2031c616f576272b70face42", - "dac_private_key": "725b48bffa1336c73fa56fe7d019168c9f2b1530562eecf9173450572c59ef0d", - "dac_public_key": "04c773abe06ba5a591f67a10e8bc02bd08d02e3bbbc4c121c66bdc16a630150368d0e6f77adc4ad55606a2b4b46d67bd5cf2480892e14c768d0a26c6b31f923876" + "dac_cert": "308201ce30820174a003020102020829f48aaed15ad7b3300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000483a0074af1804862d1484d39a14054418de2aa9ade805580c1c34c21f7cedfb61da331c83e0d54433368e1fc5211c3945ae605969578ce954f0dcf83d228dad8a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604147f47c53a1848773e31dc81681939558a688a74fe301f0603551d230418301680148fc53f1f81a5dc1e66c7ff78455c1418576d3a88300a06082a8648ce3d040302034800304502204ab79b3cfb10756c6c3ee2774113d5b06ead757ce7a72f83247054d7c67977bf022100940c6da6904d3f9598c297ea945749deaebba227691013a8cb4dffe6c29c49da", + "pai_cert": "308201bf30820164a003020102020870f717a006888023300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200042f14f15a43e02b39f3241bf65d88afea6a052eb2d7324cefccb81f983a9b9bc44d8c244e9b1da519de98fa4352a80e9dbd6347565a75e16f5158bef53c3cf7aca366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604148fc53f1f81a5dc1e66c7ff78455c1418576d3a88301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203490030460221008fafb338a35289bb3402281894ab4da69d28f3b18dae290837d97ebcff947e76022100bbf56df69bb861959665fd882a3ff1f97a3e5df702a2e9cd593797acc70320ca", + "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450220424153f75255e6b2617f5056880aa41de2c274d56daed676ad0af4a60c6228300221008b576d2f67722b72556f2bd2a9478fb7cf8d7268b99831e035ed4784b126307d", + "dac_private_key": "77cbf9d1076c1d13b0a64f831c0f1e7ec8856ee4a730ff9642a9b413ee91e96a", + "dac_public_key": "0483a0074af1804862d1484d39a14054418de2aa9ade805580c1c34c21f7cedfb61da331c83e0d54433368e1fc5211c3945ae605969578ce954f0dcf83d228dad8" } diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/cd.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/cd.der index f1e2ea264f87e0..ed2a8849a92feb 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/cd.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/dac-Cert.der index 94e0d9b034d836..ece409bc80fff0 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/dac-Cert.pem index 2c1a0d787217a8..ac3935be963afc 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzTCCAXSgAwIBAgIIT02o8vSWed8wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzzCCAXSgAwIBAgIIEYZMjpEeEK4wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATsRQA/7Ff6+o4F4lZotstSZPf35jfi -ZCUb8mmIgM5wv2ngNUjM7mriQsWqxVSKzEBbPzI4VmqOCZq9b54jXNqmo2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUAiPZQgY/Wliy -iycCMySy/TbfMdswHwYDVR0jBBgwFoAUZ4FylUaTgMgQpxNPXcGo1XFqsjwwCgYI -KoZIzj0EAwIDRwAwRAIgU2muwp5prELkbKZ6RDTDMgqRgleAMG9MjuOxUNquuioC -IHRF8lecKDEratxQGOms4ynoCsN8VzamHcOnyuNzG8pa +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATxWMJAtxFB9AIllZlnvctMTvBU5qvS +E3jB0xhFhpEizDEhvTVJw7cZX0TcqCgc+mYsKC0aZMvr1IKGkjE821huo2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUzV49oOoB6+h0 +/V8cpljtli8xu8wwHwYDVR0jBBgwFoAUAayvo+3PJi8nKGsPUHbi0NgSKqQwCgYI +KoZIzj0EAwIDSQAwRgIhAIH3/DnFzOmfKkmCdTXR6dJuFcEQPdOmZWhiVopET87n +AiEAv8bUsd8mMn3WnFmpOfYxm4fpZE8rSv/AChmg4uo8Um4= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/dac-Key.der index e2ed387e30a79a..8b48400b4a87f3 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/dac-Key.pem index 6d5dcaf70c4e0d..a1a476559f093c 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIDhF7DzFGTiWyFI8wLHAcrnCa7nqdNvdJ9NBs7KqEsY3oAoGCCqGSM49 -AwEHoUQDQgAE7EUAP+xX+vqOBeJWaLbLUmT39+Y34mQlG/JpiIDOcL9p4DVIzO5q -4kLFqsVUisxAWz8yOFZqjgmavW+eI1zapg== +MHcCAQEEIPD5waj509NXPByjMsGcsJe5szdXK2MPiHtZyUTRy5vJoAoGCCqGSM49 +AwEHoUQDQgAE8VjCQLcRQfQCJZWZZ73LTE7wVOar0hN4wdMYRYaRIswxIb01ScO3 +GV9E3KgoHPpmLCgtGmTL69SChpIxPNtYbg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/pai-Cert.der index db7b89617734be..65c7a38223b54f 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/pai-Cert.pem index 5b1e5ebc5e5ddc..7df238c3a91fd7 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvzCCAWSgAwIBAgIIQsGTcLafZJQwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvzCCAWSgAwIBAgIIPSv6JCluFLEwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABERuQo4p2b1qv0bLMsPy03tp2bcpConGJJRD3xo6OtkZfFRLsvFS0SEB4Y1b -NwUYsXoFRUp4aYp+bYUyO0gvODejZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRngXKVRpOAyBCnE09dwajVcWqyPDAfBgNV +A0IABMkw4xwx7UXEayIghnfbTVu79zzkX27kmWWr6xgFz/uM9b6m1kgYAhN7/tRz +GftNB2V7lUkWs+au3oG1pg1cBYOjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQBrK+j7c8mLycoaw9QduLQ2BIqpDAfBgNV HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNJADBGAiEA -sxNKtmdram3jCP5JwaLCMYTvEhnFXX9yiLqNaY5euNYCIQC0yqWBVxUI7Fnq5GRP -matXib9xwMqm51TJfnSV3UdStw== +/dhUQQpCn7/7rj2qaT3hCLzXHTok58bQ38z55bsVr7UCIQDtwWzFJ9DqZoCfnf3V +dI24fzfI14iqazQT+H+A25LrfA== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/pai-Key.der index 3fed644bf28953..416827329999de 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/pai-Key.pem index 2f927fea7c324a..d5a9c3d3ffdc16 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEINUvCfFwivDIHiu0QnXn3wOrXtMqK1EJPisBwmXrC7tQoAoGCCqGSM49 -AwEHoUQDQgAERG5CjinZvWq/Rssyw/LTe2nZtykKicYklEPfGjo62Rl8VEuy8VLR -IQHhjVs3BRixegVFSnhpin5thTI7SC84Nw== +MHcCAQEEIMUgfpCkg0qIfg0ycuQ8LXoQJ8K9Apof074llp7N1KR0oAoGCCqGSM49 +AwEHoUQDQgAEyTDjHDHtRcRrIiCGd9tNW7v3PORfbuSZZavrGAXP+4z1vqbWSBgC +E3v+1HMZ+00HZXuVSRaz5q7egbWmDVwFgw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/test_case_vector.json index c6662ac7dc73b9..54d9af195d662a 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen2/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Certificate Basic Constraint extension PathLen field set to 2", "is_success_case": "false", - "dac_cert": "308201cd30820174a00302010202084f4da8f2f49679df300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004ec45003fec57fafa8e05e25668b6cb5264f7f7e637e264251bf2698880ce70bf69e03548ccee6ae242c5aac5548acc405b3f3238566a8e099abd6f9e235cdaa6a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604140223d942063f5a58b28b27023324b2fd36df31db301f0603551d2304183016801467817295469380c810a7134f5dc1a8d5716ab23c300a06082a8648ce3d040302034700304402205369aec29e69ac42e46ca67a4434c3320a91825780306f4c8ee3b150daaeba2a02207445f2579c28312b6adc5018e9ace329e80ac37c5736a61dc3a7cae3731bca5a", - "pai_cert": "308201bf30820164a003020102020842c19370b69f6494300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004446e428e29d9bd6abf46cb32c3f2d37b69d9b7290a89c6249443df1a3a3ad9197c544bb2f152d12101e18d5b370518b17a05454a78698a7e6d85323b482f3837a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e0416041467817295469380c810a7134f5dc1a8d5716ab23c301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100b3134ab6676b6a6de308fe49c1a2c23184ef1219c55d7f7288ba8d698e5eb8d6022100b4caa581571508ec59eae4644f99ab5789bf71c0caa6e754c97e7495dd4752b7", - "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100ac6765617a5c02188bc6bf6b44117e95757c39abd16d7a792cd56751d6bc72970220109f0698347f89a673a2a321f4f9aaba113ceb59ee46f055d2ddc45674e52827", - "dac_private_key": "3845ec3cc5193896c8523cc0b1c072b9c26bb9ea74dbdd27d341b3b2aa12c637", - "dac_public_key": "04ec45003fec57fafa8e05e25668b6cb5264f7f7e637e264251bf2698880ce70bf69e03548ccee6ae242c5aac5548acc405b3f3238566a8e099abd6f9e235cdaa6" + "dac_cert": "308201cf30820174a003020102020811864c8e911e10ae300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004f158c240b71141f40225959967bdcb4c4ef054e6abd21378c1d31845869122cc3121bd3549c3b7195f44dca8281cfa662c282d1a64cbebd4828692313cdb586ea360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414cd5e3da0ea01ebe874fd5f1ca658ed962f31bbcc301f0603551d2304183016801401acafa3edcf262f27286b0f5076e2d0d8122aa4300a06082a8648ce3d040302034900304602210081f7fc39c5cce99f2a49827535d1e9d26e15c1103dd3a6656862568a444fcee7022100bfc6d4b1df26327dd69c59a939f6319b87e9644f2b4affc00a19a0e2ea3c526e", + "pai_cert": "308201bf30820164a00302010202083d2bfa24296e14b1300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004c930e31c31ed45c46b22208677db4d5bbbf73ce45f6ee49965abeb1805cffb8cf5bea6d6481802137bfed47319fb4d07657b954916b3e6aede81b5a60d5c0583a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041401acafa3edcf262f27286b0f5076e2d0d8122aa4301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100fdd854410a429fbffbae3daa693de108bcd71d3a24e7c6d0dfccf9e5bb15afb5022100edc16cc527d0ea66809f9dfdd5748db87f37c8d788aa6b3413f87f80db92eb7c", + "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100ff43228d7af9ed2fd97e638f5a425b7a3df3f0a75c975a724094fc42437b22a0022100870b2e11ad9332e05f88f061c025648aa863544a618f157a6968c187e52c52a0", + "dac_private_key": "f0f9c1a8f9d3d3573c1ca332c19cb097b9b337572b630f887b59c944d1cb9bc9", + "dac_public_key": "04f158c240b71141f40225959967bdcb4c4ef054e6abd21378c1d31845869122cc3121bd3549c3b7195f44dca8281cfa662c282d1a64cbebd4828692313cdb586e" } diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/cd.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/cd.der index 2151772c8dbe23..1f432733da69a0 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/cd.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/dac-Cert.der index ccdd6e80c59b62..d7d0e7add720cc 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/dac-Cert.pem index 00145c1c7c91d3..f2597f35c87da7 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB0DCCAXegAwIBAgIIH0wmetRMPA8wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIB0jCCAXegAwIBAgIIdjiFm/WqJb8wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ19mhK+sMuyJLnXhdWztanBgouQ8EP -8mqMYV8MQbJ/KrUQr3W8p9rPx53e+0AUSBu/3/3kENWiJJg8WpSFh0VEo2MwYTAP -BgNVHRMBAf8EBTADAgEAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUvCDKcND4 -4uFZZpG5Oba7iOrGV1wwHwYDVR0jBBgwFoAUFpIgbP+hhXkolUUJAYtPY0GJ+U4w -CgYIKoZIzj0EAwIDRwAwRAIgMlbVCbFXZsP4W2EUWbeunGyE5xmVreyKYjI25gBc -eFQCIG8KU6IOYph4HWWb2t7E9pJP8NlCzTAU+hbb9Fh/SB/9 +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASpzVceAh96CllLNR+C27EbmK3bozsG +cDsvlGukwCeSntoW9CxA2/Tqh+twpj/pBjohuI1wD614QPScSIE0fcROo2MwYTAP +BgNVHRMBAf8EBTADAgEAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUjHdKkVJc +NdMyDfVcZexP0v+oodswHwYDVR0jBBgwFoAUxkyFMyLS3QcxxI+IdWKS6471yGIw +CgYIKoZIzj0EAwIDSQAwRgIhAJhvfWdxmrky2XWbrqjMK2EeK0vCMYH5O5T1rTuV +KEeUAiEAoWvsAs4ZBaU5KEjdMcp+gtt47ZmNdX5tVSFQRorOkNQ= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/dac-Key.der index 28c9fd3dce4c04..1ec7c9d29d46d8 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/dac-Key.pem index 6c6dbcf27f68a1..fd700740535063 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIJYfljzHccvqxKJiBEXd2J63PE/OnruijZenr7L/EPCxoAoGCCqGSM49 -AwEHoUQDQgAENfZoSvrDLsiS514XVs7WpwYKLkPBD/JqjGFfDEGyfyq1EK91vKfa -z8ed3vtAFEgbv9/95BDVoiSYPFqUhYdFRA== +MHcCAQEEILJs6rJofdBXSp+x7gsP2Zi5DSPh9SzcEmgA23/TNEB9oAoGCCqGSM49 +AwEHoUQDQgAEqc1XHgIfegpZSzUfgtuxG5it26M7BnA7L5RrpMAnkp7aFvQsQNv0 +6ofrcKY/6QY6IbiNcA+teED0nEiBNH3ETg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/pai-Cert.der index 1024b2f79a76ac..15c9a1571c4be3 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/pai-Cert.pem index 41db9014fdbc69..66401d0962fd9e 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvjCCAWSgAwIBAgIIB2Rlxt9fJ1swCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvTCCAWSgAwIBAgIIF54TRlmudiMwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABFVHPJBZoZN9bETBKZ+RLndRMoahQfkLDpJBXo3LaNn2Dq8RWMMPWJfppkJU -L5bR7akJp0YFWtJQglEthitLM3WjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQWkiBs/6GFeSiVRQkBi09jQYn5TjAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiAF -yEg4IkkuYibce6mHMQ3MTomC1C68CHAlaYT2Nk92zwIhAOyuSlLDxkOkWVyPM8LL -m9c9Zw9plo0RC8JlRN0ItaNp +A0IABEyXiZDS9DLKQVy5ssFI9DbcRI/pHSI39IqfDJuweCscvSfLdly1wdFLJLkd +p/rGQl+Ga0m+MATK4w0j4q8cv62jZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTGTIUzItLdBzHEj4h1YpLrjvXIYjAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNHADBEAiBR +EQOiuI+IR7yyL7PwyDnoZljT5f1b0kyayP1LvxHd7AIgGWgsVVoYTd3zU0fSCCFa +Doq3I9Qr1Pq7CdEbtoS74wY= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/pai-Key.der index 00414b0eab0c97..c5febcd2ec17db 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/pai-Key.pem index 857632dade5e9e..0131bdffc3f318 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIM529eRb7YVTK5EiMvbOeuSjRUQejMVkp6AGIA1KLtT/oAoGCCqGSM49 -AwEHoUQDQgAEVUc8kFmhk31sRMEpn5Eud1EyhqFB+QsOkkFejcto2fYOrxFYww9Y -l+mmQlQvltHtqQmnRgVa0lCCUS2GK0szdQ== +MHcCAQEEIOJDGsphSX82vj5n7HTM60F3JauHYZd7tredI81iicOEoAoGCCqGSM49 +AwEHoUQDQgAETJeJkNL0MspBXLmywUj0NtxEj+kdIjf0ip8Mm7B4Kxy9J8t2XLXB +0UskuR2n+sZCX4ZrSb4wBMrjDSPirxy/rQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/test_case_vector.json index 227f98ccba1451..0d54c07a309370 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_basic_pathlen_presence_wrong/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Certificate Basic Constraint extension PathLen field presence is wrong (present for DAC not present for PAI)", "is_success_case": "false", - "dac_cert": "308201d030820177a00302010202081f4c267ad44c3c0f300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000435f6684afac32ec892e75e1756ced6a7060a2e43c10ff26a8c615f0c41b27f2ab510af75bca7dacfc79ddefb4014481bbfdffde410d5a224983c5a9485874544a3633061300f0603551d130101ff04053003020100300e0603551d0f0101ff040403020780301d0603551d0e04160414bc20ca70d0f8e2e1596691b939b6bb88eac6575c301f0603551d230418301680141692206cffa1857928954509018b4f634189f94e300a06082a8648ce3d040302034700304402203256d509b15766c3f85b611459b7ae9c6c84e71995adec8a623236e6005c785402206f0a53a20e6298781d659bdadec4f6924ff0d942cd3014fa16dbf4587f481ffd", - "pai_cert": "308201be30820164a0030201020208076465c6df5f275b300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000455473c9059a1937d6c44c1299f912e77513286a141f90b0e92415e8dcb68d9f60eaf1158c30f5897e9a642542f96d1eda909a746055ad25082512d862b4b3375a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604141692206cffa1857928954509018b4f634189f94e301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022005c8483822492e6226dc7ba987310dcc4e8982d42ebc0870256984f6364f76cf022100ecae4a52c3c643a4595c8f33c2cb9bd73d670f69968d110bc26544dd08b5a369", - "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100992be60da945dca9ef5b485bdfdc23e86e5d2ec9b72f606a78a1b6a81d01d09602205636e879c3eaa6d3617d369a2ac2743535f94626bbbe4c66072ad13aff34178f", - "dac_private_key": "961f963cc771cbeac4a2620445ddd89eb73c4fce9ebba28d97a7afb2ff10f0b1", - "dac_public_key": "0435f6684afac32ec892e75e1756ced6a7060a2e43c10ff26a8c615f0c41b27f2ab510af75bca7dacfc79ddefb4014481bbfdffde410d5a224983c5a9485874544" + "dac_cert": "308201d230820177a00302010202087638859bf5aa25bf300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004a9cd571e021f7a0a594b351f82dbb11b98addba33b06703b2f946ba4c027929eda16f42c40dbf4ea87eb70a63fe9063a21b88d700fad7840f49c4881347dc44ea3633061300f0603551d130101ff04053003020100300e0603551d0f0101ff040403020780301d0603551d0e041604148c774a91525c35d3320df55c65ec4fd2ffa8a1db301f0603551d23041830168014c64c853322d2dd0731c48f88756292eb8ef5c862300a06082a8648ce3d0403020349003046022100986f7d67719ab932d9759baea8cc2b611e2b4bc23181f93b94f5ad3b95284794022100a16bec02ce1905a5392848dd31ca7e82db78ed998d757e6d552150468ace90d4", + "pai_cert": "308201bd30820164a0030201020208179e134659ae7623300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200044c978990d2f432ca415cb9b2c148f436dc448fe91d2237f48a9f0c9bb0782b1cbd27cb765cb5c1d14b24b91da7fac6425f866b49be3004cae30d23e2af1cbfada366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414c64c853322d2dd0731c48f88756292eb8ef5c862301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203470030440220511103a2b88f8847bcb22fb3f0c839e86658d3e5fd5bd24c9ac8fd4bbf11ddec022019682c555a184dddf35347d208215a0e8ab723d42bd4fabb09d11bb684bbe306", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402206effa86913725581332ff6f0bf85f3c9cccecb1ba488e3e81ffa85e78a90a4bb022040158dad8a550347d8412009f3767c25afd8dbfc7d5c2c6f051a687585d5f3ba", + "dac_private_key": "b26ceab2687dd0574a9fb1ee0b0fd998b90d23e1f52cdc126800db7fd334407d", + "dac_public_key": "04a9cd571e021f7a0a594b351f82dbb11b98addba33b06703b2f946ba4c027929eda16f42c40dbf4ea87eb70a63fe9063a21b88d700fad7840f49c4881347dc44e" } diff --git a/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/cd.der b/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/cd.der index 26ec086a15c6ba..544f3abd645590 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/cd.der and b/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/dac-Cert.der index 0e59c25541c8d7..4a981d9ddae278 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/dac-Cert.pem index 7c9fbd3669a477..a0efd66b366ae5 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB8TCCAZigAwIBAgIIY4D6+Tc+qmwwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIB8zCCAZigAwIBAgIIWDONXuj76jYwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATAjtXHtvZTb6bR24TjnDSsJkDr0lGo -CmrxfqHP43ntAZ4Mzy0PshrTxDbU7NXHuAg7QFMkTVTaJd7z8RFDsLTNo4GDMIGA -MAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBQnw5Z+K4VU -dv2r3jfOlUW8X8mYNzAfBgNVHSMEGDAWgBSTbxPUxXd/obPtwLEKdrUEaMYSDDAg -BgNVHSUBAf8EFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwCgYIKoZIzj0EAwIDRwAw -RAIgQuFJcMYaYCTzz2JjvOwT7wmnkp2PqePfy3bcUHC+8UECIF1As8Kpu3j138dy -SJCqFmm8ZYPKlnuFzQuODEt1UojV +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQnXDa46R3KZLG0hou5YyiukEs7mUIl +ohDdBBkuILcTGFi5Smn0iVgZjoGQE19eQt4ZVNv5vSIff7TeTnn8QJQ+o4GDMIGA +MAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBTPH5JIU+QL +77aKrEL6cPZ2MoNgATAfBgNVHSMEGDAWgBThzsCuybQQmaQCZKH2U2uD1JN7xjAg +BgNVHSUBAf8EFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwCgYIKoZIzj0EAwIDSQAw +RgIhAJU/0RsCiVdggEuH/hR+DmA5vmoQvv4s74fHM+C5n5zsAiEA3GafhI/7gXRj +b3JmEDPKgi2LOQ48YoYgH1hRVPlpM9A= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/dac-Key.der index 4a7e0676cdd8bb..c33a23380f616c 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/dac-Key.pem index fd7fc3227cf7e6..97e224c94830cb 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIHDAqrW4o479C8smnxjvfN1uaJhnoKFKLnTN7/x5/6l8oAoGCCqGSM49 -AwEHoUQDQgAEwI7Vx7b2U2+m0duE45w0rCZA69JRqApq8X6hz+N57QGeDM8tD7Ia -08Q21OzVx7gIO0BTJE1U2iXe8/ERQ7C0zQ== +MHcCAQEEIDY2v47hW6tdo/Hsni6u4zo4jMKt9s5cv8TNQ9Wa0fK4oAoGCCqGSM49 +AwEHoUQDQgAEJ1w2uOkdymSxtIaLuWMorpBLO5lCJaIQ3QQZLiC3ExhYuUpp9IlY +GY6BkBNfXkLeGVTb+b0iH3+03k55/ECUPg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/pai-Cert.der index 1bee03811f6d4c..72b1c82d0d47d2 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/pai-Cert.pem index d5fa1613b084f1..12e3bb9b5f915b 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvTCCAWSgAwIBAgIIfSojSm7W72gwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvzCCAWSgAwIBAgIIJDVEI6w5ioQwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABGzWa7RhW1E6GdKo4RNO1rvcwBcLRGSkhelSh3Qy5GtS58sBDWK2u9W0zz/C -aABhiBopyoGWfZ6GQ2yzba5vq3CjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSTbxPUxXd/obPtwLEKdrUEaMYSDDAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNHADBEAiBx -/S/zpLWYCIfnXBJ7euUqHNy0soJkUNBMFwTzcjADFAIgWjrxj0Pvy67eoDNR0RPF -vnOG0MOPW6Oe30bPp57yPIM= +A0IABBSJZHXRo/wsw+oBeyRN8NBuky+nn4YS78KoPSrwWcvTsPfb3F2E49m8qGdG +sz3eRA10ZF9ZfQS9/TWVwnh6ucSjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBThzsCuybQQmaQCZKH2U2uD1JN7xjAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNJADBGAiEA +xnB78VqJo3dhy4LQJgK7vHTNVCLIv9a+yRdJM+sfHD4CIQDkXSPikDnKK6NeJGlO +NOHTMSBSlw6vLrH5tyvnWIM4nQ== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/pai-Key.der index 25239e90ef3535..28b47018f60428 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/pai-Key.pem index b8d13298169471..625dfbc255af63 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIPteNtbQmMJX6GRMAtXhdxAPK4mp8Ox5kz9y+dx+SlLaoAoGCCqGSM49 -AwEHoUQDQgAEbNZrtGFbUToZ0qjhE07Wu9zAFwtEZKSF6VKHdDLka1LnywENYra7 -1bTPP8JoAGGIGinKgZZ9noZDbLNtrm+rcA== +MHcCAQEEIETezfeEOHrMWjdUXrqNgSpV+T4u5Gy9AECrWmDygoaUoAoGCCqGSM49 +AwEHoUQDQgAEFIlkddGj/CzD6gF7JE3w0G6TL6efhhLvwqg9KvBZy9Ow99vcXYTj +2byoZ0azPd5EDXRkX1l9BL39NZXCeHq5xA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/test_case_vector.json index 0ee5f9f7cfde21..cd49de1ce784e2 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_extended_key_usage_present/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Certificate includes optional Extended Key Usage extension", "is_success_case": "true", - "dac_cert": "308201f130820198a00302010202086380faf9373eaa6c300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004c08ed5c7b6f6536fa6d1db84e39c34ac2640ebd251a80a6af17ea1cfe379ed019e0ccf2d0fb21ad3c436d4ecd5c7b8083b4053244d54da25def3f11143b0b4cda38183308180300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041427c3967e2b855476fdabde37ce9545bc5fc99837301f0603551d23041830168014936f13d4c5777fa1b3edc0b10a76b50468c6120c30200603551d250101ff0416301406082b0601050507030206082b06010505070301300a06082a8648ce3d0403020347003044022042e14970c61a6024f3cf6263bcec13ef09a7929d8fa9e3dfcb76dc5070bef14102205d40b3c2a9bb78f5dfc7724890aa1669bc6583ca967b85cd0b8e0c4b755288d5", - "pai_cert": "308201bd30820164a00302010202087d2a234a6ed6ef68300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200046cd66bb4615b513a19d2a8e1134ed6bbdcc0170b4464a485e952877432e46b52e7cb010d62b6bbd5b4cf3fc2680061881a29ca81967d9e86436cb36dae6fab70a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414936f13d4c5777fa1b3edc0b10a76b50468c6120c301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020347003044022071fd2ff3a4b5980887e75c127b7ae52a1cdcb4b2826450d04c1704f37230031402205a3af18f43efcbaedea03351d113c5be7386d0c38f5ba39edf46cfa79ef23c83", - "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100e042680e0971ccf3d7b623cdcdf3a22809357816693fdf0ad937bacb2689855b022100828be304ddfb7146c7adf3367c8a96220616d251a28efbc28f9719380e66de6f", - "dac_private_key": "70c0aab5b8a38efd0bcb269f18ef7cdd6e689867a0a14a2e74cdeffc79ffa97c", - "dac_public_key": "04c08ed5c7b6f6536fa6d1db84e39c34ac2640ebd251a80a6af17ea1cfe379ed019e0ccf2d0fb21ad3c436d4ecd5c7b8083b4053244d54da25def3f11143b0b4cd" + "dac_cert": "308201f330820198a003020102020858338d5ee8fbea36300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004275c36b8e91dca64b1b4868bb96328ae904b3b994225a210dd04192e20b7131858b94a69f48958198e8190135f5e42de1954dbf9bd221f7fb4de4e79fc40943ea38183308180300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414cf1f924853e40befb68aac42fa70f67632836001301f0603551d23041830168014e1cec0aec9b41099a40264a1f6536b83d4937bc630200603551d250101ff0416301406082b0601050507030206082b06010505070301300a06082a8648ce3d0403020349003046022100953fd11b02895760804b87fe147e0e6039be6a10befe2cef87c733e0b99f9cec022100dc669f848ffb8174636f72661033ca822d8b390e3c6286201f585154f96933d0", + "pai_cert": "308201bf30820164a003020102020824354423ac398a84300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000414896475d1a3fc2cc3ea017b244df0d06e932fa79f8612efc2a83d2af059cbd3b0f7dbdc5d84e3d9bca86746b33dde440d74645f597d04bdfd3595c2787ab9c4a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414e1cec0aec9b41099a40264a1f6536b83d4937bc6301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100c6707bf15a89a37761cb82d02602bbbc74cd5422c8bfd6bec9174933eb1f1c3e022100e45d23e29039ca2ba35e24694e34e1d3312052970eaf2eb1f9b72be75883389d", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204463044022048b9a7103173404b47ffe6d07cba9338ea826a9f82c6a2266026dbeb8b5c6c2902203428dc3d61cac04e53430c6f00ee86d69f57866bbaa2c165f7a43d0835f3a606", + "dac_private_key": "3636bf8ee15bab5da3f1ec9e2eaee33a388cc2adf6ce5cbfc4cd43d59ad1f2b8", + "dac_public_key": "04275c36b8e91dca64b1b4868bb96328ae904b3b994225a210dd04192e20b7131858b94a69f48958198e8190135f5e42de1954dbf9bd221f7fb4de4e79fc40943e" } diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/cd.der b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/cd.der index 5528b5bb0f6d5b..20f406019d8bd2 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/cd.der and b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/dac-Cert.der index 78fbc0971d3a9e..a2f6f62ba0f483 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/dac-Cert.pem index 64528a19e0ae21..cc13a5163a4ec4 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzDCCAXGgAwIBAgIIXQj07staarQwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzDCCAXGgAwIBAgIICD29n0uEuaUwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAT71Z5WoW+7WHVS85gAU5shAlfA3EGQ -sVupa4iTJNi05+UWSQKU9Altv02Sd9juklaVxJ6j3mFLI4b0GPR39tfSo10wWzAM -BgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIHgDAdBgNVHQ4EFgQU37vHokB2Wrf7wBrt -+5m1jofn2qowHwYDVR0jBBgwFoAU40NKw7j6gBNRzuHjFNkG8Gk+0PEwCgYIKoZI -zj0EAwIDSQAwRgIhANbZQcv1oyYqhwkTcrkLvKK/iotGTymdTcaGlmpvMfr8AiEA -2KV+v752ugxTNPrQ6ieljZix8YKrUZZ3c4nXRIzQG0g= +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATIgKBf2vixVN8MknKU2dqJ4bgFUgJG +JHQwbrN8+7czOxl7n3TOwkjALx/qeI1CEVIxmrtTv/5PwkP3kP/jAFIro10wWzAM +BgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIHgDAdBgNVHQ4EFgQUaZih5aGpfxnxsuho +Z5fBoZP1jmswHwYDVR0jBBgwFoAUgb10r/Jx1uLpC+1J31cNAxHCHEEwCgYIKoZI +zj0EAwIDSQAwRgIhAJH8C7IVDtWZS/F0/QUFtq7Ov242AgwKQiiQ3Md/AUEuAiEA +nDZmbhO2YYeuy1tZdrhDwMKGfaKf1vRSqb+V3bkOLKw= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/dac-Key.der index 68b3191e519ac7..02be067f8660cd 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/dac-Key.pem index df3e17b4986257..708c194d78e9b6 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIM5yrjTYtYLByDvsL71FpgQdkdxobC3o18U632pebkrNoAoGCCqGSM49 -AwEHoUQDQgAE+9WeVqFvu1h1UvOYAFObIQJXwNxBkLFbqWuIkyTYtOflFkkClPQJ -bb9NknfY7pJWlcSeo95hSyOG9Bj0d/bX0g== +MHcCAQEEIOWHVTEaIgzM29oQ/a69kqtRGh3oxlaqaiFDU5ZnBpE2oAoGCCqGSM49 +AwEHoUQDQgAEyICgX9r4sVTfDJJylNnaieG4BVICRiR0MG6zfPu3MzsZe590zsJI +wC8f6niNQhFSMZq7U7/+T8JD95D/4wBSKw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/pai-Cert.der index e7572880af3e73..e462107e582bd0 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/pai-Cert.pem index 43a415eb460ce6..345e2baf47d1c8 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvTCCAWSgAwIBAgIIKI6IvzCCTBowCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvjCCAWSgAwIBAgIIF0ISKdLRvkMwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABGBP++HHmgW8bxeu1BBcY6qWKjtCiADeJDO/AN5pDqk9IchybaG5FYClsC6I -+6a7Qo1stOz9w12RxbH4TXylCaejZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTjQ0rDuPqAE1HO4eMU2QbwaT7Q8TAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNHADBEAiBn -JeBbdeohH/EoAWg6OGVs2w3VNhyd/HcPjQTzngnMvQIgf+LhA5kgfclwYGvSqNwM -+ce08THs9jKUazR5ey9EicM= +A0IABE5C1XdbjU9Otv8iQvz9jVoN8y5reIGA/BkOazsf/O7SwBYNlkG0Q/uWxF/i +kO7YuRZAHYxMAAACS+PoGCOUBu6jZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSBvXSv8nHW4ukL7UnfVw0DEcIcQTAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiEA +li6QUWEglbY3mg/fu+aTlaYdkAbGvips2KT4c3m6tcwCIEyOKuIqHmXOQok7o1aZ +JFhO4IFHpQnaXZ+sfRJWzopT -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/pai-Key.der index e1ed68bfafa0d3..129618e07b7090 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/pai-Key.pem index 08beb3ae399792..8adefd4cf6e640 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIKy3jEw9H1aUugdqYjytHH/EWzF4Y1u4qrrA57uI35swoAoGCCqGSM49 -AwEHoUQDQgAEYE/74ceaBbxvF67UEFxjqpYqO0KIAN4kM78A3mkOqT0hyHJtobkV -gKWwLoj7prtCjWy07P3DXZHFsfhNfKUJpw== +MHcCAQEEIFVAx1lhhAglufmTpF3NUFs4K09XbeThYReS5WuUoRlloAoGCCqGSM49 +AwEHoUQDQgAETkLVd1uNT062/yJC/P2NWg3zLmt4gYD8GQ5rOx/87tLAFg2WQbRD ++5bEX+KQ7ti5FkAdjEwAAAJL4+gYI5QG7g== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/test_case_vector.json index 123052d1ba83b0..3a16775c782edb 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_missing/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Certificate Key Usage extension critical field is missing", "is_success_case": "false", - "dac_cert": "308201cc30820171a00302010202085d08f4eecb5a6ab4300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004fbd59e56a16fbb587552f39800539b210257c0dc4190b15ba96b889324d8b4e7e516490294f4096dbf4d9277d8ee925695c49ea3de614b2386f418f477f6d7d2a35d305b300c0603551d130101ff04023000300b0603551d0f040403020780301d0603551d0e04160414dfbbc7a240765ab7fbc01aedfb99b58e87e7daaa301f0603551d23041830168014e3434ac3b8fa801351cee1e314d906f0693ed0f1300a06082a8648ce3d0403020349003046022100d6d941cbf5a3262a87091372b90bbca2bf8a8b464f299d4dc686966a6f31fafc022100d8a57ebfbe76ba0c5334fad0ea27a58d98b1f182ab5196777389d7448cd01b48", - "pai_cert": "308201bd30820164a0030201020208288e88bf30824c1a300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004604ffbe1c79a05bc6f17aed4105c63aa962a3b428800de2433bf00de690ea93d21c8726da1b91580a5b02e88fba6bb428d6cb4ecfdc35d91c5b1f84d7ca509a7a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414e3434ac3b8fa801351cee1e314d906f0693ed0f1301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402206725e05b75ea211ff12801683a38656cdb0dd5361c9dfc770f8d04f39e09ccbd02207fe2e10399207dc970606bd2a8dc0cf9c7b4f131ecf632946b34797b2f4489c3", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204463044022038c1d56482bc7fe79458357e2916a1d426cbd96b9a5fc6775e404545d6b931fc022003e6796cb5320ef83437b58893469152edc51f11da6fc99c3878fd643b8908b6", - "dac_private_key": "ce72ae34d8b582c1c83bec2fbd45a6041d91dc686c2de8d7c53adf6a5e6e4acd", - "dac_public_key": "04fbd59e56a16fbb587552f39800539b210257c0dc4190b15ba96b889324d8b4e7e516490294f4096dbf4d9277d8ee925695c49ea3de614b2386f418f477f6d7d2" + "dac_cert": "308201cc30820171a0030201020208083dbd9f4b84b9a5300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004c880a05fdaf8b154df0c927294d9da89e1b8055202462474306eb37cfbb7333b197b9f74cec248c02f1fea788d421152319abb53bffe4fc243f790ffe300522ba35d305b300c0603551d130101ff04023000300b0603551d0f040403020780301d0603551d0e041604146998a1e5a1a97f19f1b2e8686797c1a193f58e6b301f0603551d2304183016801481bd74aff271d6e2e90bed49df570d0311c21c41300a06082a8648ce3d040302034900304602210091fc0bb2150ed5994bf174fd0505b6aecebf6e36020c0a422890dcc77f01412e0221009c36666e13b66187aecb5b5976b843c0c2867da29fd6f452a9bf95ddb90e2cac", + "pai_cert": "308201be30820164a003020102020817421229d2d1be43300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200044e42d5775b8d4f4eb6ff2242fcfd8d5a0df32e6b788180fc190e6b3b1ffceed2c0160d9641b443fb96c45fe290eed8b916401d8c4c0000024be3e818239406eea366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041481bd74aff271d6e2e90bed49df570d0311c21c41301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100962e9051612095b6379a0fdfbbe69395a61d9006c6be2a6cd8a4f87379bab5cc02204c8e2ae22a1e65ce42893ba3569924584ee08147a509da5d9fac7d1256ce8a53", + "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020448304602210081ff40388849dde6a1e15c01e23b3017de4a262af8c150583956d0399405cde9022100fb9d7b29b86570de3d720c9da26ef05d97ef8b98bed27fd36c6de96942ee9c6e", + "dac_private_key": "e58755311a220cccdbda10fdaebd92ab511a1de8c656aa6a2143539667069136", + "dac_public_key": "04c880a05fdaf8b154df0c927294d9da89e1b8055202462474306eb37cfbb7333b197b9f74cec248c02f1fea788d421152319abb53bffe4fc243f790ffe300522b" } diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/cd.der b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/cd.der index a851109ca5aede..26ac4430a419fe 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/cd.der and b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/dac-Cert.der index c3db13a7ef2a59..808e5644882b38 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/dac-Cert.pem index 942c759ba04311..90e16dfc2c6f32 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIByzCCAXGgAwIBAgIIVvBAuqmg3yQwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzDCCAXGgAwIBAgIIHyc4fp/l248wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQmeF2XBqZR08+6LMiNFb35YapcW8uG -dDB3ComNm988sJaaPBE9rr8URWfCJNxDYffK73SnrXLSYsJoB5inpDXfo10wWzAM -BgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIHgDAdBgNVHQ4EFgQUfrxgrAFFKtLwgNsP -Wbeoe6hovQUwHwYDVR0jBBgwFoAU+xzVzKXcdtdMjsoQcPn/zys9JcowCgYIKoZI -zj0EAwIDSAAwRQIgdFqMNm2EnzAcDhVGagU8y/Y3eKudVncgt5hBJpTPxt0CIQD6 -GTFxb0sH/9EWMWRya0UfEah4GBMiNUObuqZQvcfM8Q== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ+JJlPhwbcOhtrKnHpTHkU50McaYJO +MMHmxw37EoXPrMaPxcSVP+16kVrjjDcVSizTRBGPsbyGBo+fa5/u67pyo10wWzAM +BgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIHgDAdBgNVHQ4EFgQUh5MQbaepE+pfJJ3z +kAD0lkKgkjwwHwYDVR0jBBgwFoAUEPHENTVRAuv5ZWOOPUy4z9Z4ZMkwCgYIKoZI +zj0EAwIDSQAwRgIhAMqiSkrgvN2YfF9xNBYYzT1AlNpPKZ5Jwd9UWK0D2dg8AiEA +jUq+ZkJzTZulGgPY8S1xfoAu6Fs2MKOEDIHiZFNlC+w= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/dac-Key.der index 873b4a7ac8d9d5..aa71db8affd587 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/dac-Key.pem index 9d3822405bb547..4cc6c6b462ad0c 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIBkiGjyHj6GZmY401cOMT4NmTpReo2zcR28up7tMekSRoAoGCCqGSM49 -AwEHoUQDQgAEJnhdlwamUdPPuizIjRW9+WGqXFvLhnQwdwqJjZvfPLCWmjwRPa6/ -FEVnwiTcQ2H3yu90p61y0mLCaAeYp6Q13w== +MHcCAQEEIPZ9KD83yq2KBKY4hHGsUw7OM9s7xEpwXRkyx5pB7ePUoAoGCCqGSM49 +AwEHoUQDQgAEPiSZT4cG3Dobaypx6Ux5FOdDHGmCTjDB5scN+xKFz6zGj8XElT/t +epFa44w3FUos00QRj7G8hgaPn2uf7uu6cg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/pai-Cert.der index ed392ad2cbfaad..69d052b584a051 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/pai-Cert.pem index d33e79f667ed28..1d01db923230e7 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvTCCAWSgAwIBAgIIAVzbVaABvRMwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvjCCAWSgAwIBAgIIPzuxCtiGqRwwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABDvWgy/XLnDQT7if+7BgrPIFA4etcMKNUpscEixalf8Xxq7cWpt2mFHXFG4n -RTQ7mQOsc4cIclN6KsV1vM0XgiGjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBT7HNXMpdx210yOyhBw+f/PKz0lyjAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNHADBEAiA3 -6CCh6t8aVuSup/dlQZT2qnxNLLrnt8TCDyWfbMa8uwIgehSq+kBBX7C4jwI1qb5o -SRqZMKHsGnRj3KFe+GDwA0w= +A0IABC5tmEEv4F7Dueh6yFoGrH+iprSb+bRe7mhAaHTHr/uuPyIAwqTViNtB02HF +PIs8eZXqjyHczCpumgoNKX3jqSOjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQQ8cQ1NVEC6/llY449TLjP1nhkyTAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiEA +2O3kAUHuRLl2yFZQEwChpswYzHhaiSt7Ie0rYEJ0f+wCIE1cteBlRIEM3TQa8h+u +poQkrqtluOOZKQaTcgTusCUB -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/pai-Key.der index a31f21c283a2cf..c0c3bc0f7deddf 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/pai-Key.pem index e34b4e5baf34f0..3a01ddd43dbc06 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIHDmjilk5Dn5BMzuOdm7/wbcMgs0M7QJVRAAzK0rZcOOoAoGCCqGSM49 -AwEHoUQDQgAEO9aDL9cucNBPuJ/7sGCs8gUDh61wwo1SmxwSLFqV/xfGrtxam3aY -UdcUbidFNDuZA6xzhwhyU3oqxXW8zReCIQ== +MHcCAQEEINDZDOz/vG0l0EMygJh7nrvmg2yO5snHRxWH3E3PbjL8oAoGCCqGSM49 +AwEHoUQDQgAELm2YQS/gXsO56HrIWgasf6KmtJv5tF7uaEBodMev+64/IgDCpNWI +20HTYcU8izx5leqPIdzMKm6aCg0pfeOpIw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/test_case_vector.json index 95bf0a84c95ff5..b49276fe7cefbc 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_critical_wrong/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Certificate Key Usage extension critical field is set as 'non-critical'", "is_success_case": "false", - "dac_cert": "308201cb30820171a003020102020856f040baa9a0df24300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000426785d9706a651d3cfba2cc88d15bdf961aa5c5bcb867430770a898d9bdf3cb0969a3c113daebf144567c224dc4361f7caef74a7ad72d262c2680798a7a435dfa35d305b300c0603551d130101ff04023000300b0603551d0f040403020780301d0603551d0e041604147ebc60ac01452ad2f080db0f59b7a87ba868bd05301f0603551d23041830168014fb1cd5cca5dc76d74c8eca1070f9ffcf2b3d25ca300a06082a8648ce3d04030203480030450220745a8c366d849f301c0e15466a053ccbf63778ab9d567720b798412694cfc6dd022100fa1931716f4b07ffd1163164726b451f11a87818132235439bbaa650bdc7ccf1", - "pai_cert": "308201bd30820164a0030201020208015cdb55a001bd13300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200043bd6832fd72e70d04fb89ffbb060acf2050387ad70c28d529b1c122c5a95ff17c6aedc5a9b769851d7146e2745343b9903ac73870872537a2ac575bccd178221a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414fb1cd5cca5dc76d74c8eca1070f9ffcf2b3d25ca301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020347003044022037e820a1eadf1a56e4aea7f7654194f6aa7c4d2cbae7b7c4c20f259f6cc6bcbb02207a14aafa40415fb0b88f0235a9be68491a9930a1ec1a7463dca15ef860f0034c", - "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022021f858a256c52c1b80ee1aa02b2be2c92a8b8623e62b004fe21d53a1ed1fbeb7022100f3eda9731aed19439eba82e5b4b1b9f98e29d88c6f6ae893e39117d1e4ac0a4f", - "dac_private_key": "19221a3c878fa199998e34d5c38c4f83664e945ea36cdc476f2ea7bb4c7a4491", - "dac_public_key": "0426785d9706a651d3cfba2cc88d15bdf961aa5c5bcb867430770a898d9bdf3cb0969a3c113daebf144567c224dc4361f7caef74a7ad72d262c2680798a7a435df" + "dac_cert": "308201cc30820171a00302010202081f27387e9fe5db8f300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200043e24994f8706dc3a1b6b2a71e94c7914e7431c69824e30c1e6c70dfb1285cfacc68fc5c4953fed7a915ae38c37154a2cd344118fb1bc86068f9f6b9feeebba72a35d305b300c0603551d130101ff04023000300b0603551d0f040403020780301d0603551d0e041604148793106da7a913ea5f249df39000f49642a0923c301f0603551d2304183016801410f1c435355102ebf965638e3d4cb8cfd67864c9300a06082a8648ce3d0403020349003046022100caa24a4ae0bcdd987c5f71341618cd3d4094da4f299e49c1df5458ad03d9d83c0221008d4abe6642734d9ba51a03d8f12d717e802ee85b3630a3840c81e26453650bec", + "pai_cert": "308201be30820164a00302010202083f3bb10ad886a91c300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200042e6d98412fe05ec3b9e87ac85a06ac7fa2a6b49bf9b45eee68406874c7affbae3f2200c2a4d588db41d361c53c8b3c7995ea8f21dccc2a6e9a0a0d297de3a923a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041410f1c435355102ebf965638e3d4cb8cfd67864c9301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100d8ede40141ee44b976c856501300a1a6cc18cc785a892b7b21ed2b6042747fec02204d5cb5e06544810cdd341af21faea68424aeab65b8e3992906937204eeb02501", + "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022063f24991658339818362b591093d81af99b0fc5f62b0b207d49a9fbd1c1dd7a00221008b04dc9c94a0d53e8a9b8c96645ed146f8c464b46498f9ff24cd31fabb2b09ca", + "dac_private_key": "f67d283f37caad8a04a6388471ac530ece33db3bc44a705d1932c79a41ede3d4", + "dac_public_key": "043e24994f8706dc3a1b6b2a71e94c7914e7431c69824e30c1e6c70dfb1285cfacc68fc5c4953fed7a915ae38c37154a2cd344118fb1bc86068f9f6b9feeebba72" } diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/cd.der b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/cd.der index d2652374f4c554..9166a85b28fd2e 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/cd.der and b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/dac-Cert.der index 7a7bf089eeb203..2e53ec30c5db79 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/dac-Cert.pem index 4e7af76892807c..b74a99658052b2 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzTCCAXSgAwIBAgIIEBLn2rXPMz4wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzjCCAXSgAwIBAgIINUZUEUcUPdEwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAThEAoGNBGf2BsyvmKEh9RpotpqFqGv -mCm10BoV33OsErf+bsxtoxMv87WLqsxHatmUFoJxIeCZ2GAW9looOBn0o2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIBgjAdBgNVHQ4EFgQUEU3eoEycwtgz -+hNmHZLDtA85fTQwHwYDVR0jBBgwFoAUBolid9OnoBcM9FmjSp91iqc2scowCgYI -KoZIzj0EAwIDRwAwRAIgBX0QamlGuJn88vNYdIZThqaqJn1fObO02vISWFmnoLAC -IGBI1Qi9zU4vXrZhZ12qSTfuuU/1aTjELj1djG2ioGGq +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATyB9zkYmG0infcmClC3M5FxUhHA6UX +LWzYMp6V3JuzUGivsugwbs1NAc3rVCDMDl3bqwnZFWIdpu41Q/AGVDs1o2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIBgjAdBgNVHQ4EFgQUhrjpulwxu4PY +LNnnMOUnOrmSwvswHwYDVR0jBBgwFoAUYrhZT57g3WGNSFQWQhpMZR8nYMIwCgYI +KoZIzj0EAwIDSAAwRQIhAN6nOB8+LHfJ8pvan4PSMmcCDQI+3ywp30wfkdLclvba +AiB0gZ/rXbwASJy6RyG0w7RavzJGNr9I7Jf9zSciZttEYQ== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/dac-Key.der index 5f7cff5a7c4402..35e4b6c5970e3c 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/dac-Key.pem index 50916dbeeddfc1..b7f6787f0ccf83 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIPDlC8qAyEZj2BOpqCnadk/aoSQHlRV4R6Gnl28+pt1ZoAoGCCqGSM49 -AwEHoUQDQgAE4RAKBjQRn9gbMr5ihIfUaaLaahahr5gptdAaFd9zrBK3/m7MbaMT -L/O1i6rMR2rZlBaCcSHgmdhgFvZaKDgZ9A== +MHcCAQEEIHBpgrjvSJKgTvtHczXdcUZdL+/BpXkwHQSCZ+WWXTq2oAoGCCqGSM49 +AwEHoUQDQgAE8gfc5GJhtIp33JgpQtzORcVIRwOlFy1s2DKeldybs1Bor7LoMG7N +TQHN61QgzA5d26sJ2RViHabuNUPwBlQ7NQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/pai-Cert.der index 6a0e5a13eea7e2..091719a13da44d 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/pai-Cert.pem index 69d907d8336e30..cc6bf7e94d2ef3 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvTCCAWSgAwIBAgIIKdQqq/FNjKAwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvzCCAWSgAwIBAgIIaR0KphHGlMYwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABCUhfHS8wEYvH9IZ/FU3w/VwJCt4QhFtXt/MON/pdEOH4UjBgg+Geo1eiVmb -1d5fSu3dCp1a9G4O3ehsFgyVkcujZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQGiWJ306egFwz0WaNKn3WKpzaxyjAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNHADBEAiA8 -3daLkKJI+A1ONOq+z2s0O9Gsh5tZa2rqlV2bEf/0sAIgBqpBZ53NGtemrN+gyESE -hKwAdjmMwO+wj5XRPyTUVsc= +A0IABOGay5ski9GjXnvF8ZZmFHWsM1e8H7lcqa/g0d8gd+AddLZ+jMSePM9QV97h +cokjE9GOqxIy+7I3euk87PK4uMujZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRiuFlPnuDdYY1IVBZCGkxlHydgwjAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNJADBGAiEA +xM/R5IWllfyd95IzkI19CvpalbE5LVToqiZiLv/SfLoCIQDmPUTZAn1bShuOG/wg +roHGq/XLfIEfWCbEkm6xi7DZVw== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/pai-Key.der index 580a86fd5b4cff..0e814212e8a755 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/pai-Key.pem index 79f4f41404d6e4..225863a86a930f 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIDpea8tinqQdleKJSpbxoM2ibm1m6GTDfCulEHbfD/PQoAoGCCqGSM49 -AwEHoUQDQgAEJSF8dLzARi8f0hn8VTfD9XAkK3hCEW1e38w43+l0Q4fhSMGCD4Z6 -jV6JWZvV3l9K7d0KnVr0bg7d6GwWDJWRyw== +MHcCAQEEIJJ+YptyZIQIgD3Itq0HxfggBkcAfPojFf9uMTp38C3xoAoGCCqGSM49 +AwEHoUQDQgAE4ZrLmySL0aNee8XxlmYUdawzV7wfuVypr+DR3yB34B10tn6MxJ48 +z1BX3uFyiSMT0Y6rEjL7sjd66Tzs8ri4yw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/test_case_vector.json index bc099f8f07a60b..ba62fe2d54cde3 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_crl_sign_wrong/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Certificate Key Usage extension cRLSign field is wrong (present for DAC and not present for PAI", "is_success_case": "false", - "dac_cert": "308201cd30820174a00302010202081012e7dab5cf333e300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004e1100a0634119fd81b32be628487d469a2da6a16a1af9829b5d01a15df73ac12b7fe6ecc6da3132ff3b58baacc476ad99416827121e099d86016f65a283819f4a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020182301d0603551d0e04160414114ddea04c9cc2d833fa13661d92c3b40f397d34301f0603551d2304183016801406896277d3a7a0170cf459a34a9f758aa736b1ca300a06082a8648ce3d04030203470030440220057d106a6946b899fcf2f35874865386a6aa267d5f39b3b4daf2125859a7a0b002206048d508bdcd4e2f5eb661675daa4937eeb94ff56938c42e3d5d8c6da2a061aa", - "pai_cert": "308201bd30820164a003020102020829d42aabf14d8ca0300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000425217c74bcc0462f1fd219fc5537c3f570242b7842116d5edfcc38dfe9744387e148c1820f867a8d5e89599bd5de5f4aeddd0a9d5af46e0edde86c160c9591cba366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e0416041406896277d3a7a0170cf459a34a9f758aa736b1ca301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402203cddd68b90a248f80d4e34eabecf6b343bd1ac879b596b6aea955d9b11fff4b0022006aa41679dcd1ad7a6acdfa0c8448484ac0076398cc0efb08f95d13f24d456c7", - "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100937523b1acc3cd829e4b13074b49a9a42ddcfe5f9b3829e4605e5b44e3344e85022023d74801d3bfe19a7824950a2d2e657933ba955636888c9dc112f2a8530f1cc9", - "dac_private_key": "f0e50bca80c84663d813a9a829da764fdaa1240795157847a1a7976f3ea6dd59", - "dac_public_key": "04e1100a0634119fd81b32be628487d469a2da6a16a1af9829b5d01a15df73ac12b7fe6ecc6da3132ff3b58baacc476ad99416827121e099d86016f65a283819f4" + "dac_cert": "308201ce30820174a00302010202083546541147143dd1300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004f207dce46261b48a77dc982942dcce45c5484703a5172d6cd8329e95dc9bb35068afb2e8306ecd4d01cdeb5420cc0e5ddbab09d915621da6ee3543f006543b35a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020182301d0603551d0e0416041486b8e9ba5c31bb83d82cd9e730e5273ab992c2fb301f0603551d2304183016801462b8594f9ee0dd618d485416421a4c651f2760c2300a06082a8648ce3d0403020348003045022100dea7381f3e2c77c9f29bda9f83d23267020d023edf2c29df4c1f91d2dc96f6da022074819feb5dbc00489cba4721b4c3b45abf324636bf48ec97fdcd272266db4461", + "pai_cert": "308201bf30820164a0030201020208691d0aa611c694c6300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004e19acb9b248bd1a35e7bc5f196661475ac3357bc1fb95ca9afe0d1df2077e01d74b67e8cc49e3ccf5057dee172892313d18eab1232fbb2377ae93cecf2b8b8cba366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041462b8594f9ee0dd618d485416421a4c651f2760c2301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100c4cfd1e485a595fc9df79233908d7d0afa5a95b1392d54e8aa26622effd27cba022100e63d44d9027d5b4a1b8e1bfc20ae81c6abf5cb7c811f5826c4926eb18bb0d957", + "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450220397729bafdf75b1e98119268fbb593c5b7dcb1642938c6de4151652c98c30a22022100bbef4ad93734d15b544269d34aee23a9775cf505a2b1e861db09d43e8c7a4d19", + "dac_private_key": "706982b8ef4892a04efb477335dd71465d2fefc1a579301d048267e5965d3ab6", + "dac_public_key": "04f207dce46261b48a77dc982942dcce45c5484703a5172d6cd8329e95dc9bb35068afb2e8306ecd4d01cdeb5420cc0e5ddbab09d915621da6ee3543f006543b35" } diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/cd.der b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/cd.der index d7f99324e18d22..3b66b6e1bc5727 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/cd.der and b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/dac-Cert.der index b86ac3e5f5024c..3caedbff1896db 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/dac-Cert.pem index 4853d6ccc238a5..dca90f1e3af890 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzTCCAXSgAwIBAgIIUTryfNzxw1gwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzzCCAXSgAwIBAgIIRTqr9WKWhnYwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARASYB2lpb5WVGsrSKqL5pRGZZoBk0k -3TPh/YkuSDfgKPA8WerUKQ5AfPuAhaL3zzZvjPf5Fn1SpDx1yAaTpc8fo2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIFIDAdBgNVHQ4EFgQUQdxNLLofxoQR -INYGIFIL5Hrw0B4wHwYDVR0jBBgwFoAUChS1t5Bl8DFo4e/jblKgXdxpiWUwCgYI -KoZIzj0EAwIDRwAwRAIgZG3RtkZCR4JehqY3v4eukfw2fTQBffwOoA8eog7JcaUC -IFwZL+Dwv3KwPOnhtLOm9AKWztP6Z2k9TFoSzsyYXM42 +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ/m//oa4u9Tye7qP4tLi6hPDz4uu/k +RRINQPJ0MlLvBanrT1N9w+O6uOERdnmOkXWH+AzCjiFl/1ZRfg73Vlzro2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIFIDAdBgNVHQ4EFgQUVBeUJrjYUr9k +PNGp33vSouHdOdUwHwYDVR0jBBgwFoAUoT/Sm2NcC+tI/Aflzw/dT/7MuBkwCgYI +KoZIzj0EAwIDSQAwRgIhANdkSzkqIHYBvIRdA3+85PpbokXnfqsRfmweyCsE77QY +AiEA9gAc80Ie5BX1a7nVtdwoKRXq6Gi9/Y341B6Kv8M8niY= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/dac-Key.der index 15bdfae7802399..a81b19fcd2b69a 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/dac-Key.pem index 5e0281d6d46c8f..f9ccd29b8732fa 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIPZjRK3jx2EvkG82y0WAxvPv4epwVf66oWQ9HhjwbEK1oAoGCCqGSM49 -AwEHoUQDQgAEQEmAdpaW+VlRrK0iqi+aURmWaAZNJN0z4f2JLkg34CjwPFnq1CkO -QHz7gIWi9882b4z3+RZ9UqQ8dcgGk6XPHw== +MHcCAQEEIGEvh5IQprakp2GiM2Vmxui80SMZ4lpTXi7IgA/Z83C0oAoGCCqGSM49 +AwEHoUQDQgAEP5v/6GuLvU8nu6j+LS4uoTw8+Lrv5EUSDUDydDJS7wWp609TfcPj +urjhEXZ5jpF1h/gMwo4hZf9WUX4O91Zc6w== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/pai-Cert.der index 9e1369e35703de..98bbe8cb73c9ec 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/pai-Cert.pem index 72964b22579e66..3139e9d3e6db0b 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvTCCAWSgAwIBAgIIOObD72boW7MwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvjCCAWSgAwIBAgIIYlEnLuWcCfYwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABIky0mhFHlheA/t9M32/9zyvVyPv6tdYnFnPhCJKwAv2qaq2qNTXM63Ly7y0 -+lXeyvQtyxr8RRq/vc3VXr1bND6jZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQKFLW3kGXwMWjh7+NuUqBd3GmJZTAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNHADBEAiBG -Ek0Yo5ejV2tvmnZtfofdLMRVTf/ZXdRYzf8yBQkY0AIgMwpXrSPlwT0TbjBPCjDU -zI45pxLGPswoCEbOS4vdmTQ= +A0IABCW4iOdLy/PArgHgDG5c5IW9EvgH7XnQU/h4XJjdFd3jFwdKMbtZB77WqB0O +1LMAEO3lWgiIrXH6STb4ymmpZUOjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBShP9KbY1wL60j8B+XPD91P/sy4GTAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiB0 +65Ir9/A/YHu1OF+D9M1QFkSbPlCuMvc+RhBhcbwVVgIhALdeU2hIWYI5MiHZHIj1 +8lNkZWYeoiTi5sk8yUZsxYYM -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/pai-Key.der index acf2ec77968d2b..d0dc237eee6682 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/pai-Key.pem index 1d8b58390affef..549b7993188c86 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIOEgvo4uae/RUnOWFuPlK6lJLJLKORr6FPVacfvT1jo5oAoGCCqGSM49 -AwEHoUQDQgAEiTLSaEUeWF4D+30zfb/3PK9XI+/q11icWc+EIkrAC/apqrao1Ncz -rcvLvLT6Vd7K9C3LGvxFGr+9zdVevVs0Pg== +MHcCAQEEIHKtUlc8WckhPrC/mV5rAmHAYkn1LwzAOB//x/QQMaWvoAoGCCqGSM49 +AwEHoUQDQgAEJbiI50vL88CuAeAMblzkhb0S+AftedBT+HhcmN0V3eMXB0oxu1kH +vtaoHQ7UswAQ7eVaCIitcfpJNvjKaallQw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/test_case_vector.json index dae7c1dceeb80b..818500fe2f8170 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_dig_sig_wrong/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Certificate Key Usage extension diginalSignature field is wrong (not present for DAC and present for PAI", "is_success_case": "false", - "dac_cert": "308201cd30820174a0030201020208513af27cdcf1c358300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004404980769696f95951acad22aa2f9a51199668064d24dd33e1fd892e4837e028f03c59ead4290e407cfb8085a2f7cf366f8cf7f9167d52a43c75c80693a5cf1fa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020520301d0603551d0e0416041441dc4d2cba1fc6841120d60620520be47af0d01e301f0603551d230418301680140a14b5b79065f03168e1efe36e52a05ddc698965300a06082a8648ce3d04030203470030440220646dd1b6464247825e86a637bf87ae91fc367d34017dfc0ea00f1ea20ec971a502205c192fe0f0bf72b03ce9e1b4b3a6f40296ced3fa67693d4c5a12cecc985cce36", - "pai_cert": "308201bd30820164a003020102020838e6c3ef66e85bb3300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200048932d268451e585e03fb7d337dbff73caf5723efead7589c59cf84224ac00bf6a9aab6a8d4d733adcbcbbcb4fa55decaf42dcb1afc451abfbdcdd55ebd5b343ea366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604140a14b5b79065f03168e1efe36e52a05ddc698965301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020347003044022046124d18a397a3576b6f9a766d7e87dd2cc4554dffd95dd458cdff32050918d00220330a57ad23e5c13d136e304f0a30d4cc8e39a712c63ecc280846ce4b8bdd9934", - "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100b1d85dfdff236be1dbd390eb8731977dcb0c83abfee9aad4da806ee67cc14d8c022019e4f0621388c03bb0c82b86e98e019b9f348c6743ff8e2e6bb9a1308111d427", - "dac_private_key": "f66344ade3c7612f906f36cb4580c6f3efe1ea7055febaa1643d1e18f06c42b5", - "dac_public_key": "04404980769696f95951acad22aa2f9a51199668064d24dd33e1fd892e4837e028f03c59ead4290e407cfb8085a2f7cf366f8cf7f9167d52a43c75c80693a5cf1f" + "dac_cert": "308201cf30820174a0030201020208453aabf562968676300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200043f9bffe86b8bbd4f27bba8fe2d2e2ea13c3cf8baefe445120d40f2743252ef05a9eb4f537dc3e3bab8e11176798e917587f80cc28e2165ff56517e0ef7565ceba360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020520301d0603551d0e0416041454179426b8d852bf643cd1a9df7bd2a2e1dd39d5301f0603551d23041830168014a13fd29b635c0beb48fc07e5cf0fdd4ffeccb819300a06082a8648ce3d0403020349003046022100d7644b392a207601bc845d037fbce4fa5ba245e77eab117e6c1ec82b04efb418022100f6001cf3421ee415f56bb9d5b5dc282915eae868bdfd8df8d41e8abfc33c9e26", + "pai_cert": "308201be30820164a00302010202086251272ee59c09f6300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000425b888e74bcbf3c0ae01e00c6e5ce485bd12f807ed79d053f8785c98dd15dde317074a31bb5907bed6a81d0ed4b30010ede55a0888ad71fa4936f8ca69a96543a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414a13fd29b635c0beb48fc07e5cf0fdd4ffeccb819301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022074eb922bf7f03f607bb5385f83f4cd5016449b3e50ae32f73e46106171bc1556022100b75e5368485982393221d91c88f5f2536465661ea224e2e6c93cc9466cc5860c", + "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100f654e93ec3088c86d9bfb5bf43a83e39b4a0444d266eb0d2ac4f365b29795b6902207de15c476f0060ada890f16d4aa59d73b12195eb654b8e49987c78fbf2e4a3a9", + "dac_private_key": "612f879210a6b6a4a761a2336566c6e8bcd12319e25a535e2ec8800fd9f370b4", + "dac_public_key": "043f9bffe86b8bbd4f27bba8fe2d2e2ea13c3cf8baefe445120d40f2743252ef05a9eb4f537dc3e3bab8e11176798e917587f80cc28e2165ff56517e0ef7565ceb" } diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/cd.der b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/cd.der index 8e1382796469f3..179a413ef03e93 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/cd.der and b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/dac-Cert.der index 5fbd5c10efa5fd..170aac2570d864 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/dac-Cert.pem index bc8fc2d2f2706c..cb1aae4d2e049c 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzjCCAXSgAwIBAgIIAS5WQnv3DVYwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzjCCAXSgAwIBAgIIEFzJpffHmzgwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQixov5rafkf+ZYBOhentHcmjH5mcVE -Fy9vC9gnGWRtwuqjNDREVs2wUbTPFKeGAIVacbthRQFM6dR4kfKLq7FRo2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIChDAdBgNVHQ4EFgQUDFUJB2px7z8u -Q90FkCiX5iX2xRcwHwYDVR0jBBgwFoAUyHbdYrxgP9kEYhJ49LOJVG7QRkkwCgYI -KoZIzj0EAwIDSAAwRQIhAK58rVCo2fWl3ZYkTpzloazK9IbexeSURa/+gKDkhYr/ -AiAQnEld/fs4iAKLpwVegypNV5okDU9/KZCi8ZvkfrVQOw== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATElkJfuv068x1zIFHtXphRjWLztIAp +FDFUSoEIplTxRWJbmJPfXHnZKg+Rt8cLHt+TuMB8yC1ITcO2kQX41Lcvo2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIChDAdBgNVHQ4EFgQUEgbY7QCPx4UZ +1nyLihEPdor+eyowHwYDVR0jBBgwFoAUoF8R/mi8GkUgKLc9LbYshaTGjiYwCgYI +KoZIzj0EAwIDSAAwRQIgdZbk3r6RJU6dmMixTJprhWut7OZoRJn6NPL1Pn33hBkC +IQDaIMbIrVnDJufmV55E34yXGNXipkYHAknrRD2YP7e5Qg== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/dac-Key.der index dce8f06847695d..fecc6ebc8d4721 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/dac-Key.pem index 6d4a751d7e3244..b83d900c37ae5c 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIPSORMEWfjBnpST1D5SxCGAXPcAVTzQUKW8d/TJDAr0poAoGCCqGSM49 -AwEHoUQDQgAEIsaL+a2n5H/mWAToXp7R3Jox+ZnFRBcvbwvYJxlkbcLqozQ0RFbN -sFG0zxSnhgCFWnG7YUUBTOnUeJHyi6uxUQ== +MHcCAQEEIG3J9DoGDFKEi1zN2Hary9sENsGapb1z27J/itHl/T+GoAoGCCqGSM49 +AwEHoUQDQgAExJZCX7r9OvMdcyBR7V6YUY1i87SAKRQxVEqBCKZU8UViW5iT31x5 +2SoPkbfHCx7fk7jAfMgtSE3DtpEF+NS3Lw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/pai-Cert.der index 2f6fd46323a320..96769eccacb8f5 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/pai-Cert.pem index a3d73ddca2a8f9..917d03d73c7a1f 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvjCCAWSgAwIBAgIINH0+W+8pxyUwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvTCCAWSgAwIBAgIIS62vBYyR3KowCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABMGLdypkDy1LhsyUWHA6bH4NyZlsuOp7yPAxNzt+0ewj1gLymSJ6dwIIDoTc -4pE91utncSg+UMIDxQUb58rtzEOjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTIdt1ivGA/2QRiEnj0s4lUbtBGSTAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiBu -PXz5tgejOTrd1vS/5AsPfh5OcXB38N1F+GCo+QnSBgIhAIRp841RnRKd2y3DlRQr -60WSf+frZDyfBRaW9lSAIuWJ +A0IABC74mTKv+McrY2USE6hPfvLkME1Mq6PvFlM/nRoMA92U2PH0jmp1OacubX0Y +5JLSWCByvHykQhaO+qABuXEqnU2jZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSgXxH+aLwaRSAotz0ttiyFpMaOJjAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNHADBEAiB0 +KIzSf+DRUL3NsWaSJ7OTKFIyIYYb/DmGm6UbfOstXAIga9Piwn8L8EUlDZsMOd9Z +NoA6j7rB2vFLJ0TF4dWRWvg= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/pai-Key.der index 50168a6fa1d89b..eef244af59e08d 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/pai-Key.pem index fc18452c49e097..237b69f733c483 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEID1/Hl9vwslfio4i3E8mehG2MnBSUZL52e0gqZcHNN0joAoGCCqGSM49 -AwEHoUQDQgAEwYt3KmQPLUuGzJRYcDpsfg3JmWy46nvI8DE3O37R7CPWAvKZInp3 -AggOhNzikT3W62dxKD5QwgPFBRvnyu3MQw== +MHcCAQEEIJiE5akYkkk/sTLIDSkL/8P8Vk4zYminGJqddBCehLFtoAoGCCqGSM49 +AwEHoUQDQgAELviZMq/4xytjZRITqE9+8uQwTUyro+8WUz+dGgwD3ZTY8fSOanU5 +py5tfRjkktJYIHK8fKRCFo76oAG5cSqdTQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/test_case_vector.json index 4412d5ec9b68c0..20ddc1f2cb6a3a 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_key_cert_sign_wrong/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Certificate Key Usage extension keyCertSign field is wrong (present for DAC and not present for PAI", "is_success_case": "false", - "dac_cert": "308201ce30820174a0030201020208012e56427bf70d56300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000422c68bf9ada7e47fe65804e85e9ed1dc9a31f999c544172f6f0bd82719646dc2eaa334344456cdb051b4cf14a78600855a71bb6145014ce9d47891f28babb151a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020284301d0603551d0e041604140c5509076a71ef3f2e43dd05902897e625f6c517301f0603551d23041830168014c876dd62bc603fd904621278f4b389546ed04649300a06082a8648ce3d0403020348003045022100ae7cad50a8d9f5a5dd96244e9ce5a1accaf486dec5e49445affe80a0e4858aff0220109c495dfdfb3888028ba7055e832a4d579a240d4f7f2990a2f19be47eb5503b", - "pai_cert": "308201be30820164a0030201020208347d3e5bef29c725300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004c18b772a640f2d4b86cc9458703a6c7e0dc9996cb8ea7bc8f031373b7ed1ec23d602f299227a7702080e84dce2913dd6eb6771283e50c203c5051be7caedcc43a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414c876dd62bc603fd904621278f4b389546ed04649301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502206e3d7cf9b607a3393addd6f4bfe40b0f7e1e4e717077f0dd45f860a8f909d2060221008469f38d519d129ddb2dc395142beb45927fe7eb643c9f051696f6548022e589", - "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044830460221009bfed41235cb42557a06dd76efc6c743d45ca05817693b06996e72d7787005e8022100a0c5b2d25ff54b9982d4de9e8f6339e5831260e0fa2fa144841a7732435443e5", - "dac_private_key": "f48e44c1167e3067a524f50f94b10860173dc0154f3414296f1dfd324302bd29", - "dac_public_key": "0422c68bf9ada7e47fe65804e85e9ed1dc9a31f999c544172f6f0bd82719646dc2eaa334344456cdb051b4cf14a78600855a71bb6145014ce9d47891f28babb151" + "dac_cert": "308201ce30820174a0030201020208105cc9a5f7c79b38300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004c496425fbafd3af31d732051ed5e98518d62f3b480291431544a8108a654f145625b9893df5c79d92a0f91b7c70b1edf93b8c07cc82d484dc3b69105f8d4b72fa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020284301d0603551d0e041604141206d8ed008fc78519d67c8b8a110f768afe7b2a301f0603551d23041830168014a05f11fe68bc1a452028b73d2db62c85a4c68e26300a06082a8648ce3d040302034800304502207596e4debe91254e9d98c8b14c9a6b856badece6684499fa34f2f53e7df78419022100da20c6c8ad59c326e7e6579e44df8c9718d5e2a646070249eb443d983fb7b942", + "pai_cert": "308201bd30820164a00302010202084badaf058c91dcaa300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200042ef89932aff8c72b63651213a84f7ef2e4304d4caba3ef16533f9d1a0c03dd94d8f1f48e6a7539a72e6d7d18e492d2582072bc7ca442168efaa001b9712a9d4da366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414a05f11fe68bc1a452028b73d2db62c85a4c68e26301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020347003044022074288cd27fe0d150bdcdb1669227b39328523221861bfc39869ba51b7ceb2d5c02206bd3e2c27f0bf045250d9b0c39df5936803a8fbac1daf14b2744c5e1d5915af8", + "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100f27491ed3abbac4375ee77fc53583a8efa8a899ec514c49a3a2e320cfafd8dd8022100faf829ef4b02257e2b22ab8e0b94faec89d10e9c64e16508e407477404ce67a4", + "dac_private_key": "6dc9f43a060c52848b5ccdd876abcbdb0436c19aa5bd73dbb27f8ad1e5fd3f86", + "dac_public_key": "04c496425fbafd3af31d732051ed5e98518d62f3b480291431544a8108a654f145625b9893df5c79d92a0f91b7c70b1edf93b8c07cc82d484dc3b69105f8d4b72f" } diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/cd.der b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/cd.der index 1a961872ed43ed..59c7bbab3d6ac9 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/cd.der and b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/dac-Cert.der index 0638f4e4a87d5f..2dae056e6c04fc 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/dac-Cert.pem index f648919ac04a3b..7feab06342f937 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvjCCAWSgAwIBAgIIA3y0+bi2ag0wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvjCCAWSgAwIBAgIILLkbpYQ7XZ0wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATyEO2ReEjvRsmmPsNoaVgDYZ+XT15p -j68NF3jqQ0hpnJzWpy4rkZNKZTUzhE1Y2L+ZqhLxrT+YhZkW0FDvet1po1AwTjAM -BgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRxzff2wNg+dXKEwB9vVOBboOKplDAfBgNV -HSMEGDAWgBTIFcN+HLILhztGKVYUmrUVLlsb6TAKBggqhkjOPQQDAgNIADBFAiBq -c3MaLSkeqpKQbLs0MnIIFFmz8RW8vsXwHOA/y0UIIwIhANZi+6X62n6LxaUNlf0d -/p/QtrAn5RxLQ162EYklYqpz +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS6f1g29eaOXxXJt8iKFYfuTN5sPFEL +5T/8BqUUowmCmuGzq2c/TCk5Jz6iX6daTrGwafJRSeGijrvJM4KvJ5a1o1AwTjAM +BgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQVIWqdUt3bmeDdq1W1g9jlTopb/DAfBgNV +HSMEGDAWgBRIFeSyHHp7Ykk3ee7gRUF7Mab04zAKBggqhkjOPQQDAgNIADBFAiBm +nJBxL05ZjI4+5hdbIT+VcbmgkyDPfqQHetFX+I5sJQIhAPm468gvg8Hu5DR5g3KI +dFonIfhop+Ph2AeKDLAd/ohO -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/dac-Key.der index f0cf119e2fefc6..09c0ba47ad4112 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/dac-Key.pem index 30ac1b879ba158..ec116633045957 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEICKJxV25Dgh9+t9qyyoBi7/jy+645R/B0mYaOZiMXKxnoAoGCCqGSM49 -AwEHoUQDQgAE8hDtkXhI70bJpj7DaGlYA2Gfl09eaY+vDRd46kNIaZyc1qcuK5GT -SmU1M4RNWNi/maoS8a0/mIWZFtBQ73rdaQ== +MHcCAQEEIGt1612Qt6fa16B3nrv7M9chALlRXWxnWT6flgVddtM1oAoGCCqGSM49 +AwEHoUQDQgAEun9YNvXmjl8VybfIihWH7kzebDxRC+U//AalFKMJgprhs6tnP0wp +OSc+ol+nWk6xsGnyUUnhoo67yTOCryeWtQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/pai-Cert.der index 7751df99b85a5c..414d4d00f8d37f 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/pai-Cert.pem index eb9d02337f819e..224c13beea5be4 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvjCCAWSgAwIBAgIIIwR9hccTZ10wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvjCCAWSgAwIBAgIIZkLTNfx+qXwwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABPGankJUUXijN8RUWmy7+zD+cl8HfMInU1EPpx3LnVgM+etX/S176Eldfzsf -JkGFTBTILuSZEKbk11T6Z8bO8P+jZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTIFcN+HLILhztGKVYUmrUVLlsb6TAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiAU -1M5KVLF6tw483Rn25CwDxGZnhVZhcVafmjOmUk60eQIhAN6De1B1R3wsWkOmyroD -rL8B5aNHxkDvi/fiKU2Fnnyv +A0IABJr6Hsmx2I4Cl4+H4JRTEKek9L4IK0XI2DzCnPOlrp+uzdg2XgbR4Rsx6z6S +/RYwzdfPhWbaZZ6E/AQDrUxiOXajZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRIFeSyHHp7Ykk3ee7gRUF7Mab04zAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiEA +5QRyuuGFODrsrt8Na8XleLK5vwtFsagWx57fnXP8kooCIBH9kEEW0OguDhxmt4+k +hHLcZQR5s08c/e2xKBcP3k9b -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/pai-Key.der index 691341f8c42577..f49c7f572671b0 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/pai-Key.pem index 33918539950f3c..defc1df07c5957 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIIrW2aATVgQW3OnbGY9pyRD8S5LFo4qUNeNkakiLz+94oAoGCCqGSM49 -AwEHoUQDQgAE8ZqeQlRReKM3xFRabLv7MP5yXwd8widTUQ+nHcudWAz561f9LXvo -SV1/Ox8mQYVMFMgu5JkQpuTXVPpnxs7w/w== +MHcCAQEEIPmKKIgXtkj3f+ZW1o+UgcSEeO4T3Lm+hAcp/puWF6mmoAoGCCqGSM49 +AwEHoUQDQgAEmvoeybHYjgKXj4fglFMQp6T0vggrRcjYPMKc86Wun67N2DZeBtHh +GzHrPpL9FjDN18+FZtplnoT8BAOtTGI5dg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/test_case_vector.json index b36b2d76874a01..16b8cb406bb7eb 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_key_usage_missing/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Certificate doesn't include Key Usage extension", "is_success_case": "false", - "dac_cert": "308201be30820164a0030201020208037cb4f9b8b66a0d300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004f210ed917848ef46c9a63ec368695803619f974f5e698faf0d1778ea4348699c9cd6a72e2b91934a653533844d58d8bf99aa12f1ad3f98859916d050ef7add69a350304e300c0603551d130101ff04023000301d0603551d0e0416041471cdf7f6c0d83e757284c01f6f54e05ba0e2a994301f0603551d23041830168014c815c37e1cb20b873b462956149ab5152e5b1be9300a06082a8648ce3d040302034800304502206a73731a2d291eaa92906cbb343272081459b3f115bcbec5f01ce03fcb450823022100d662fba5fada7e8bc5a50d95fd1dfe9fd0b6b027e51c4b435eb611892562aa73", - "pai_cert": "308201be30820164a003020102020823047d85c713675d300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004f19a9e42545178a337c4545a6cbbfb30fe725f077cc22753510fa71dcb9d580cf9eb57fd2d7be8495d7f3b1f2641854c14c82ee49910a6e4d754fa67c6cef0ffa366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414c815c37e1cb20b873b462956149ab5152e5b1be9301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022014d4ce4a54b17ab70e3cdd19f6e42c03c4666785566171569f9a33a6524eb479022100de837b5075477c2c5a43a6caba03acbf01e5a347c640ef8bf7e2294d859e7caf", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044630440220552725d4e72b4d2952a9582b574080a827b79e29583fd349f8176e370712feaf02201625862eda92b65098e24d104cf9f8b57fad3b7e631abd7ef622591f2906a9ca", - "dac_private_key": "2289c55db90e087dfadf6acb2a018bbfe3cbeeb8e51fc1d2661a39988c5cac67", - "dac_public_key": "04f210ed917848ef46c9a63ec368695803619f974f5e698faf0d1778ea4348699c9cd6a72e2b91934a653533844d58d8bf99aa12f1ad3f98859916d050ef7add69" + "dac_cert": "308201be30820164a00302010202082cb91ba5843b5d9d300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004ba7f5836f5e68e5f15c9b7c88a1587ee4cde6c3c510be53ffc06a514a309829ae1b3ab673f4c2939273ea25fa75a4eb1b069f25149e1a28ebbc93382af2796b5a350304e300c0603551d130101ff04023000301d0603551d0e0416041415216a9d52dddb99e0ddab55b583d8e54e8a5bfc301f0603551d230418301680144815e4b21c7a7b62493779eee045417b31a6f4e3300a06082a8648ce3d04030203480030450220669c90712f4e598c8e3ee6175b213f9571b9a09320cf7ea4077ad157f88e6c25022100f9b8ebc82f83c1eee43479837288745a2721f868a7e3e1d8078a0cb01dfe884e", + "pai_cert": "308201be30820164a00302010202086642d335fc7ea97c300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200049afa1ec9b1d88e02978f87e0945310a7a4f4be082b45c8d83cc29cf3a5ae9faecdd8365e06d1e11b31eb3e92fd1630cdd7cf8566da659e84fc0403ad4c623976a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604144815e4b21c7a7b62493779eee045417b31a6f4e3301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100e50472bae185383aecaedf0d6bc5e578b2b9bf0b45b1a816c79edf9d73fc928a022011fd904116d0e82e0e1c66b78fa48472dc650479b34f1cfdedb128170fde4f5b", + "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100e7e2133661819f1fda524215132e8cef6ae8eafaeb086e0cdfadc71f84a94d35022100894acf7d1e121dd659f1798ffd532d8267996437fb2be132699ea8bca2386acf", + "dac_private_key": "6b75eb5d90b7a7dad7a0779ebbfb33d72100b9515d6c67593e9f96055d76d335", + "dac_public_key": "04ba7f5836f5e68e5f15c9b7c88a1587ee4cde6c3c510be53ffc06a514a309829ae1b3ab673f4c2939273ea25fa75a4eb1b069f25149e1a28ebbc93382af2796b5" } diff --git a/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/cd.der b/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/cd.der index 47440f53691bff..0f75249fcfc9f6 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/cd.der and b/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/dac-Cert.der index 151a1d3bbdf0fb..b18f607eedb6d3 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/dac-Cert.pem index 1dc2e6c9836d0b..c8a285ae92ab7a 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBrjCCAVWgAwIBAgIIeZ66Jfr6yckwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBrjCCAVWgAwIBAgIIGlc9slQjp0gwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARaMF99616kDAuvr63HogWoSsnNimM5 -m2oDBotMkCL5fo0JYcwp1MoK5FA2Nw7KEVGYrJnACqlBDr3BeSC7A75go0EwPzAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAfBgNVHSMEGDAWgBT8LwenSXt/ -UaDF7Mpz0NbhJXCY8jAKBggqhkjOPQQDAgNHADBEAiBMNVxqPTm7Vs1BLrTmm0NH -60Z4mVKBAaxK6Yi2eVFqtgIgeJi5mfl92dVfBd+gtu1hUbqzv3MrdXLSWHifB8OL -X3I= +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQHlbKCWxGqTA6BgUw1hnMptlyEmEw6 +ntu2Us8Pa9FKC2sK+RRVYQqNy+2RVE9B0U8KjQkxF/7C2yGiHpqjIjwHo0EwPzAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAfBgNVHSMEGDAWgBQ5CIys5asK +uUW4Fe4KhIQzdzP6XjAKBggqhkjOPQQDAgNHADBEAiA6+wVv41VQKm+oJRoHF7F3 +Q3tYuUKCCIGo9KreceA/bgIgYlGOAuTf1iWyTyC1p3sq+oKEJ+YXBhZcKaNuyjrn +aMA= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/dac-Key.der index a161af1e8c5d89..bfeb09651ed853 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/dac-Key.pem index 983b9d4150b51a..15386d4d57358f 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIDBQp1qiOaEF0Tl9Wdq+amD9ODvEzPckVOnrTBE8SR2ToAoGCCqGSM49 -AwEHoUQDQgAEWjBffetepAwLr6+tx6IFqErJzYpjOZtqAwaLTJAi+X6NCWHMKdTK -CuRQNjcOyhFRmKyZwAqpQQ69wXkguwO+YA== +MHcCAQEEIMXFNJsIIpOdeWsJSh/YXjUggHJUqE0EYUUU3WZsT9SsoAoGCCqGSM49 +AwEHoUQDQgAEB5WyglsRqkwOgYFMNYZzKbZchJhMOp7btlLPD2vRSgtrCvkUVWEK +jcvtkVRPQdFPCo0JMRf+wtshoh6aoyI8Bw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/pai-Cert.der index 8215f09fa7b197..55050d57802d87 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/pai-Cert.pem index 8cc31bfffcba6e..60986d6c054633 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvTCCAWSgAwIBAgIIBQOz0+usZc4wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvzCCAWSgAwIBAgIICBfIudGa3bYwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABBe4t64HPxkkB1J2b1trX2038cv6MBv/DBqWuTnrz6zWlFNpdJYdD69KrSdU -0dv5aphFfYLyhMbK4j+7SDTVHUajZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBT8LwenSXt/UaDF7Mpz0NbhJXCY8jAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNHADBEAiB7 -w7OoZRT7QZbW/IjFAerzGgZnMr8CwnpdyTTe7oCSQwIgf6/HMslDzdXLd8YXzPNZ -Vl1WLxLYu1pNms5qpQXixJ4= +A0IABGsLnAET681H1jjmO8ZKp6D/QCt/22ezzUgNphtkwnN1TMc9QAJKFmgAgooU +9Ak1NGJengqV0vgT+aY5dYJC/mSjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQ5CIys5asKuUW4Fe4KhIQzdzP6XjAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNJADBGAiEA +pw4Ao5XDw1ryYrCsQDDWsqyaJlUf2CS5zKTql+CptHMCIQCSqxRjutpEUIYnK0Iz +WmzQ5Fbcuhp5dFebGRlywOjFKw== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/pai-Key.der index b3b3eb1036aa06..34dba0b872ff61 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/pai-Key.pem index b1d417b4d41f94..c277ece82908f1 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEII4wA4W5EbBT5ukkUj/z4g3LrR5h9NTZ0CbtVvU65TDooAoGCCqGSM49 -AwEHoUQDQgAEF7i3rgc/GSQHUnZvW2tfbTfxy/owG/8MGpa5OevPrNaUU2l0lh0P -r0qtJ1TR2/lqmEV9gvKExsriP7tINNUdRg== +MHcCAQEEIEf+cUcFqaCdxib5MzieWphhOturjsNeoHdadtTJMU8zoAoGCCqGSM49 +AwEHoUQDQgAEawucARPrzUfWOOY7xkqnoP9AK3/bZ7PNSA2mG2TCc3VMxz1AAkoW +aACCihT0CTU0Yl6eCpXS+BP5pjl1gkL+ZA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/test_case_vector.json index 103085cbbd4a11..ef18ed644bb330 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_skid_missing/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Certificate doesn't include Subject Key ID (SKID) extension", "is_success_case": "false", - "dac_cert": "308201ae30820155a0030201020208799eba25fafac9c9300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200045a305f7deb5ea40c0bafafadc7a205a84ac9cd8a63399b6a03068b4c9022f97e8d0961cc29d4ca0ae45036370eca115198ac99c00aa9410ebdc17920bb03be60a341303f300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301f0603551d23041830168014fc2f07a7497b7f51a0c5ecca73d0d6e1257098f2300a06082a8648ce3d040302034700304402204c355c6a3d39bb56cd412eb4e69b4347eb467899528101ac4ae988b679516ab602207898b999f97dd9d55f05dfa0b6ed6151bab3bf732b7572d258789f07c38b5f72", - "pai_cert": "308201bd30820164a00302010202080503b3d3ebac65ce300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000417b8b7ae073f19240752766f5b6b5f6d37f1cbfa301bff0c1a96b939ebcfacd694536974961d0faf4aad2754d1dbf96a98457d82f284c6cae23fbb4834d51d46a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414fc2f07a7497b7f51a0c5ecca73d0d6e1257098f2301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402207bc3b3a86514fb4196d6fc88c501eaf31a066732bf02c27a5dc934deee80924302207fafc732c943cdd5cb77c617ccf359565d562f12d8bb5a4d9ace6aa505e2c49e", - "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022041f14cbf2ec70d10970853d9017663d79f14f7470cb4d133238032f1cf3dd48102210080f2f24b889f0d9cdcdcf70950ad25fa7339fd5ec436fbb8e16b925723edbf9c", - "dac_private_key": "3050a75aa239a105d1397d59dabe6a60fd383bc4ccf72454e9eb4c113c491d93", - "dac_public_key": "045a305f7deb5ea40c0bafafadc7a205a84ac9cd8a63399b6a03068b4c9022f97e8d0961cc29d4ca0ae45036370eca115198ac99c00aa9410ebdc17920bb03be60" + "dac_cert": "308201ae30820155a00302010202081a573db25423a748300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200040795b2825b11aa4c0e81814c35867329b65c84984c3a9edbb652cf0f6bd14a0b6b0af91455610a8dcbed91544f41d14f0a8d093117fec2db21a21e9aa3223c07a341303f300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301f0603551d2304183016801439088cace5ab0ab945b815ee0a8484337733fa5e300a06082a8648ce3d040302034700304402203afb056fe355502a6fa8251a0717b177437b58b942820881a8f4aade71e03f6e022062518e02e4dfd625b24f20b5a77b2afa828427e61706165c29a36eca3ae768c0", + "pai_cert": "308201bf30820164a00302010202080817c8b9d19addb6300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200046b0b9c0113ebcd47d638e63bc64aa7a0ff402b7fdb67b3cd480da61b64c273754cc73d40024a166800828a14f4093534625e9e0a95d2f813f9a639758242fe64a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041439088cace5ab0ab945b815ee0a8484337733fa5e301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100a70e00a395c3c35af262b0ac4030d6b2ac9a26551fd824b9cca4ea97e0a9b47302210092ab1463bada445086272b42335a6cd0e456dcba1a7974579b191972c0e8c52b", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402204ffce6c7e7a792ed9ddad787378d6d9248d720650f62bb3ddb5ff521743fac56022063ce1f4a2408dffbb08b5eccd6a4f57c7269ae09c77bee48377d31918c4de4b1", + "dac_private_key": "c5c5349b0822939d796b094a1fd85e3520807254a84d04614514dd666c4fd4ac", + "dac_public_key": "040795b2825b11aa4c0e81814c35867329b65c84984c3a9edbb652cf0f6bd14a0b6b0af91455610a8dcbed91544f41d14f0a8d093117fec2db21a21e9aa3223c07" } diff --git a/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/cd.der b/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/cd.der index d9293cb64030e4..0e8ac94af047c4 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/cd.der and b/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/dac-Cert.der index 4c946ca849269c..5e5e2b67e6a511 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/dac-Cert.pem index 81a67ce9250fed..8f4f7d8250761e 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB4zCCAYmgAwIBAgIIM+xsoXG2qn8wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIB5DCCAYmgAwIBAgIIRfaSIY6J8V8wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAT9oXXzJADguKDVz2YrAyzfI6SCuUIt -TODUcZLIiWHWfYTFlDQpR4WFFBTSawazGjHZOUDYWtPdYwr87xrxkrXdo3UwczAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUPUu04WEWmnQP -7qNLyp+A+v50f08wHwYDVR0jBBgwFoAUplhcvJ3tRa9Vocsf/XJ2LLUbigEwEwYD -VR0RBAwwCoIIdGVzdC5jb20wCgYIKoZIzj0EAwIDSAAwRQIgO4MnzG1/+oeBxqS1 -2ScbBlzj6Bf2c7nPhL7EVp+gQ0ECIQCbZR575IrCRwVwD0DmB8k9c/JadQ0u6Kfo -gnlFS/cwJA== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQsZfk1vx9JVGg4yqRKUiF1NC2EVz/X +lXYzDN6nhL8vmngKLUHyWdJZ47ik0eHaFqxGzLyZwi0K5z0unVWX9vv+o3UwczAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUyPtKUTm+9d0f +w/NPJWS3V7pYWMEwHwYDVR0jBBgwFoAUfp4Qg3A+Rf68BJv0srQyNJumFI0wEwYD +VR0RBAwwCoIIdGVzdC5jb20wCgYIKoZIzj0EAwIDSQAwRgIhAPKtbSlS/CUqoALM +ViBzRB6jWpgVs5SljrwyL5Y3KOV6AiEA7wcll3tpdHVf4FOjTrk/ijyJN9w5Akcw +HrMrOk6ZjeA= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/dac-Key.der index e23808824f9b32..1d652ffc244544 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/dac-Key.pem index 0afa574e7aa441..d7e2fe55358dab 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIJMK22LlKR8AyIoNidQPw2wdmC3cWOBcyTjK5M6uuABhoAoGCCqGSM49 -AwEHoUQDQgAE/aF18yQA4Lig1c9mKwMs3yOkgrlCLUzg1HGSyIlh1n2ExZQ0KUeF -hRQU0msGsxox2TlA2FrT3WMK/O8a8ZK13Q== +MHcCAQEEIMAhzEh3vaeiQZKyZD+cFylGQ4W9gz2ChO0cZbioyLOPoAoGCCqGSM49 +AwEHoUQDQgAELGX5Nb8fSVRoOMqkSlIhdTQthFc/15V2Mwzep4S/L5p4Ci1B8lnS +WeO4pNHh2hasRsy8mcItCuc9Lp1Vl/b7/g== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/pai-Cert.der index 6a8d643eb0c682..ef48333b6c8686 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/pai-Cert.pem index 768032784b9271..e2e8fabf093dc7 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvjCCAWSgAwIBAgIIAR/N/IEcfv4wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvzCCAWSgAwIBAgIILsk2KTIGzpEwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABG1YQSfoc7dgdOkYarcSXaCUD38W2tuv15dHbghachcQfCWUx/kTvBmFyp7D -ByydwDH0Jp/Wqw0TZxWHbeTAyRijZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSmWFy8ne1Fr1Whyx/9cnYstRuKATAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiBc -Sp5CYvSPh03a5QfIbKVog7tFa9zXOg/63KUa7+gzlgIhALV1+k/Amxl5Qg0CAWYl -vyXXAar11+j0clgKxRtoBk0D +A0IABKBmpj+u8FCGFVqSO1AY7jg7oNpbToNo724jBSt6chqMmjQ7MaLTbmGrxelB +984rTi2cqdUk9+mu1Faluep0X1SjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR+nhCDcD5F/rwEm/SytDI0m6YUjTAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNJADBGAiEA +6t4xireComCYqzF9hyAwtJWxut3ECR+5wux5EFhr1cECIQCq+1cY0e3c+Eck84fL +fKdtCFguzM/LOhMDZODctyYxJA== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/pai-Key.der index 7dae7039a45c4d..6e22c0b39292ff 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/pai-Key.pem index 4d72da125a70f4..9596ab1ea364ad 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIIZO4FSjKL6SCESftBNKGp2BmmxJ4Erxuckar4EFtMeioAoGCCqGSM49 -AwEHoUQDQgAEbVhBJ+hzt2B06RhqtxJdoJQPfxba26/Xl0duCFpyFxB8JZTH+RO8 -GYXKnsMHLJ3AMfQmn9arDRNnFYdt5MDJGA== +MHcCAQEEIFuH8xIrG5j3/FFrsuVC/VrqEBPhXg0XR/w0+zmdIIJ3oAoGCCqGSM49 +AwEHoUQDQgAEoGamP67wUIYVWpI7UBjuODug2ltOg2jvbiMFK3pyGoyaNDsxotNu +YavF6UH3zitOLZyp1ST36a7UVqW56nRfVA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/test_case_vector.json index f8802300beaac3..7d6a14beb80a14 100644 --- a/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_ext_subject_alt_name_present/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Certificate includes optional Subject Alternative Name extension", "is_success_case": "true", - "dac_cert": "308201e330820189a003020102020833ec6ca171b6aa7f300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004fda175f32400e0b8a0d5cf662b032cdf23a482b9422d4ce0d47192c88961d67d84c59434294785851414d26b06b31a31d93940d85ad3dd630afcef1af192b5dda3753073300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604143d4bb4e161169a740feea34bca9f80fafe747f4f301f0603551d23041830168014a6585cbc9ded45af55a1cb1ffd72762cb51b8a0130130603551d11040c300a8208746573742e636f6d300a06082a8648ce3d040302034800304502203b8327cc6d7ffa8781c6a4b5d9271b065ce3e817f673b9cf84bec4569fa043410221009b651e7be48ac24705700f40e607c93d73f25a750d2ee8a7e88279454bf73024", - "pai_cert": "308201be30820164a0030201020208011fcdfc811c7efe300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200046d584127e873b76074e9186ab7125da0940f7f16dadbafd797476e085a7217107c2594c7f913bc1985ca9ec3072c9dc031f4269fd6ab0d136715876de4c0c918a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414a6585cbc9ded45af55a1cb1ffd72762cb51b8a01301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502205c4a9e4262f48f874ddae507c86ca56883bb456bdcd73a0ffadca51aefe83396022100b575fa4fc09b1979420d02016625bf25d701aaf5d7e8f472580ac51b68064d03", - "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502207b94ccea0557ed0fca6863ee9699286b349012ec5586112a23008883306df068022100ab8599eaf96edf5430bf1edc4eddae349c4682de58c3e0bab73a416c1a809551", - "dac_private_key": "930adb62e5291f00c88a0d89d40fc36c1d982ddc58e05cc938cae4ceaeb80061", - "dac_public_key": "04fda175f32400e0b8a0d5cf662b032cdf23a482b9422d4ce0d47192c88961d67d84c59434294785851414d26b06b31a31d93940d85ad3dd630afcef1af192b5dd" + "dac_cert": "308201e430820189a003020102020845f692218e89f15f300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200042c65f935bf1f49546838caa44a522175342d84573fd79576330cdea784bf2f9a780a2d41f259d259e3b8a4d1e1da16ac46ccbc99c22d0ae73d2e9d5597f6fbfea3753073300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414c8fb4a5139bef5dd1fc3f34f2564b757ba5858c1301f0603551d230418301680147e9e1083703e45febc049bf4b2b432349ba6148d30130603551d11040c300a8208746573742e636f6d300a06082a8648ce3d0403020349003046022100f2ad6d2952fc252aa002cc562073441ea35a9815b394a58ebc322f963728e57a022100ef0725977b6974755fe053a34eb93f8a3c8937dc390247301eb32b3a4e998de0", + "pai_cert": "308201bf30820164a00302010202082ec936293206ce91300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004a066a63faef05086155a923b5018ee383ba0da5b4e8368ef6e23052b7a721a8c9a343b31a2d36e61abc5e941f7ce2b4e2d9ca9d524f7e9aed456a5b9ea745f54a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604147e9e1083703e45febc049bf4b2b432349ba6148d301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100eade318ab782a26098ab317d872030b495b1baddc4091fb9c2ec7910586bd5c1022100aafb5718d1eddcf84724f387cb7ca76d08582ecccfcb3a130364e0dcb7263124", + "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100c3756e4dbb639c1e83d81345ed34031786203befc59e233c611cab89e8111da1022100df2d1359b26745dab9ca98c09c50c8efa2e1c489519ea8fe5fc9d0f02e364ef2", + "dac_private_key": "c021cc4877bda7a24192b2643f9c1729464385bd833d8284ed1c65b8a8c8b38f", + "dac_public_key": "042c65f935bf1f49546838caa44a522175342d84573fd79576330cdea784bf2f9a780a2d41f259d259e3b8a4d1e1da16ac46ccbc99c22d0ae73d2e9d5597f6fbfe" } diff --git a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/cd.der b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/cd.der index d48259c268ed37..61ff3b2cb30548 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/cd.der and b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/dac-Cert.der index 35e87e196e1439..c7318442efc012 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/dac-Cert.pem index eb2bd5ef87ae0a..cbbb2b26e2757a 100644 --- a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIByzCCAXOgAwIBAgIIM5gk1idb9GAwCQYHKoZIzj0EATAwMRgwFgYDVQQDDA9N -YXR0ZXIgVGVzdCBQQUkxFDASBgorBgEEAYKifAIBDARGRkYxMCAXDTIyMDQyMDAw +MIIBzTCCAXOgAwIBAgIIZOkhOS6cNu8wCQYHKoZIzj0EATAwMRgwFgYDVQQDDA9N +YXR0ZXIgVGVzdCBQQUkxFDASBgorBgEEAYKifAIBDARGRkYxMCAXDTIyMDUyNzAw MDAwMFoYDzk5OTkxMjMxMjM1OTU5WjBGMRgwFgYDVQQDDA9NYXR0ZXIgVGVzdCBE QUMxFDASBgorBgEEAYKifAIBDARGRkYxMRQwEgYKKwYBBAGConwCAgwEODAwMDBZ -MBMGByqGSM49AgEGCCqGSM49AwEHA0IABJqpN9xIz/t2V0aVOzvjBGlTcEKhKVGN -Ro222SoB91tGOm6fe5Vty1FtcAokUzc9xmF1LYtIGSY+25Rek5irn7WjYDBeMAwG -A1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBTEG8rXyBGxKw2p -oiD3Uof4IBmb8TAfBgNVHSMEGDAWgBQEmm6avssC9OIFC2TUBE54rpoHcjAJBgcq -hkjOPQQBA0cAMEQCIGolajtuVVBqeqBCCj0Pp6v+pmCmcskonGS4XJzc4ZmnAiAv -3KgZRYl0033QpAtg+4hZHOtNcElWarZXH9n8eDnbrA== +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABPa/jDt5YdRXzkFr00w0R/eYVOgJV7n7 +OfsZcgVfKUl6Bv7gxuxtCD1eDpVdrqwr2h0imGiRQdpk4Tdx3FDw7eejYDBeMAwG +A1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBRvSyB3xwOj2X4s +fQ98MJydsSq7szAfBgNVHSMEGDAWgBQkMl4urCjCKtvIQr7zl4o9DmcycTAJBgcq +hkjOPQQBA0kAMEYCIQC3G4X7yLj2kzDKA1djCEeq5G7VUSXhD+wwupBAcKMtcQIh +AL2qBylyXP+xcHmu5bxpF69Ukcpk9F3cL3GGBtcPHDet -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/dac-Key.der index 1db8e9eac5d2fb..224a554b879964 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/dac-Key.pem index 8c98517038cb7b..99735db9e1a741 100644 --- a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIMfRhXpvxLKIKeAbNide/e918zaymPb/2A7ADUZ7x2mGoAoGCCqGSM49 -AwEHoUQDQgAEmqk33EjP+3ZXRpU7O+MEaVNwQqEpUY1GjbbZKgH3W0Y6bp97lW3L -UW1wCiRTNz3GYXUti0gZJj7blF6TmKuftQ== +MHcCAQEEIOeLKTSt/scQx8V+xT+a9TFgVtOfsEXBkUpkr5RVyIz9oAoGCCqGSM49 +AwEHoUQDQgAE9r+MO3lh1FfOQWvTTDRH95hU6AlXufs5+xlyBV8pSXoG/uDG7G0I +PV4OlV2urCvaHSKYaJFB2mThN3HcUPDt5w== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/pai-Cert.der index edfe4ca3e1ca2f..c083bcff33fe9b 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/pai-Cert.pem index a5de7f2fe50825..d337c05e0b2ca5 100644 --- a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvjCCAWSgAwIBAgIIJKpVuBhNEYUwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvTCCAWSgAwIBAgIISA2vSOhUggAwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABO07jgmIurHX8isdVn/eXijejRGIrhbY2zWwNSTI3itqZxmxtz4ToFAkT3pJ -bAqymLk40/hR/GX87IwnM1H51K6jZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQEmm6avssC9OIFC2TUBE54rpoHcjAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiEA -vBOJV9xWVZf6vLD1XXNeY5GbPhR15ohgy3/nYldq1MICIE2q4TSV3rBLLOKivD4z -AgjsKZiLnr9m6jv4paMpjZTw +A0IABKJjppI89wiEAunU0VMDT8RwCHQSf74fgLqcIO+nK4lXOYR1p1iV+p4mMQEO +Ov3alGGMvgwGNhcFSKgF7k5iFoyjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQkMl4urCjCKtvIQr7zl4o9DmcycTAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNHADBEAiBl ++YVo5zU9Cbx+eI91MF6IE4U73odyUbIQC72mdlit8AIgWfNXPbPFQJIZ+XEpVgt5 +9oN9vdxBvb0BQJhLbQsBpF8= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/pai-Key.der index 8a313c4aecdfc4..5bd2dba47df920 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/pai-Key.pem index 515ccf6836c222..ee9fb2e3549805 100644 --- a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIDWwtcylG53VioB5wZcE2M/sra17QenGQYkRkhGrC9k2oAoGCCqGSM49 -AwEHoUQDQgAE7TuOCYi6sdfyKx1Wf95eKN6NEYiuFtjbNbA1JMjeK2pnGbG3PhOg -UCRPeklsCrKYuTjT+FH8ZfzsjCczUfnUrg== +MHcCAQEEIMFatehvoLd72z4eDWMZZRMKVd0h/1XiV/jytZ8B1FXEoAoGCCqGSM49 +AwEHoUQDQgAEomOmkjz3CIQC6dTRUwNPxHAIdBJ/vh+Aupwg76criVc5hHWnWJX6 +niYxAQ46/dqUYYy+DAY2FwVIqAXuTmIWjA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/test_case_vector.json index 844b4a2ee4b82d..7222caa29cab5a 100644 --- a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha1/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Invalid certificate signature algorithm ECDSA_WITH_SHA1", "is_success_case": "false", - "dac_cert": "308201cb30820173a0030201020208339824d6275bf460300906072a8648ce3d040130303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200049aa937dc48cffb765746953b3be30469537042a129518d468db6d92a01f75b463a6e9f7b956dcb516d700a2453373dc661752d8b4819263edb945e9398ab9fb5a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414c41bcad7c811b12b0da9a220f75287f820199bf1301f0603551d23041830168014049a6e9abecb02f4e2050b64d4044e78ae9a0772300906072a8648ce3d0401034700304402206a256a3b6e55506a7aa0420a3d0fa7abfea660a672c9289c64b85c9cdce199a702202fdca819458974d37dd0a40b60fb88591ceb4d7049566ab6571fd9fc7839dbac", - "pai_cert": "308201be30820164a003020102020824aa55b8184d1185300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004ed3b8e0988bab1d7f22b1d567fde5e28de8d1188ae16d8db35b03524c8de2b6a6719b1b73e13a050244f7a496c0ab298b938d3f851fc65fcec8c273351f9d4aea366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414049a6e9abecb02f4e2050b64d4044e78ae9a0772301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100bc138957dc565597fabcb0f55d735e63919b3e1475e68860cb7fe762576ad4c202204daae13495deb04b2ce2a2bc3e330208ec29988b9ebf66ea3bf8a5a3298d94f0", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402202af1c292f16ed2e108bebf15144b3e87737f6f6f7684945ad33b6d532511038c022052f961fcc7ce146e7d6efbb5a26618c6e3b32a4e615660fb47c02468553494dc", - "dac_private_key": "c7d1857a6fc4b28829e01b36275efdef75f336b298f6ffd80ec00d467bc76986", - "dac_public_key": "049aa937dc48cffb765746953b3be30469537042a129518d468db6d92a01f75b463a6e9f7b956dcb516d700a2453373dc661752d8b4819263edb945e9398ab9fb5" + "dac_cert": "308201cd30820173a003020102020864e921392e9c36ef300906072a8648ce3d040130303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004f6bf8c3b7961d457ce416bd34c3447f79854e80957b9fb39fb1972055f29497a06fee0c6ec6d083d5e0e955daeac2bda1d2298689141da64e13771dc50f0ede7a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604146f4b2077c703a3d97e2c7d0f7c309c9db12abbb3301f0603551d2304183016801424325e2eac28c22adbc842bef3978a3d0e673271300906072a8648ce3d04010349003046022100b71b85fbc8b8f69330ca0357630847aae46ed55125e10fec30ba904070a32d71022100bdaa0729725cffb17079aee5bc6917af5491ca64f45ddc2f718606d70f1c37ad", + "pai_cert": "308201bd30820164a0030201020208480daf48e8548200300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004a263a6923cf7088402e9d4d153034fc4700874127fbe1f80ba9c20efa72b8957398475a75895fa9e2631010e3afdda94618cbe0c0636170548a805ee4e62168ca366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041424325e2eac28c22adbc842bef3978a3d0e673271301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020347003044022065f98568e7353d09bc7e788f75305e8813853bde877251b2100bbda67658adf0022059f3573db3c5409219f97129560b79f6837dbddc41bdbd0140984b6d0b01a45f", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402207db8196bf7bfa3fc9db3cc81e3f7f2003cde0585785d170aae33aaba2662ee1f0220289383c5abb56e1feaaad03ba788408138412b32f471efa0aee59342e593ad86", + "dac_private_key": "e78b2934adfec710c7c57ec53f9af5316056d39fb045c1914a64af9455c88cfd", + "dac_public_key": "04f6bf8c3b7961d457ce416bd34c3447f79854e80957b9fb39fb1972055f29497a06fee0c6ec6d083d5e0e955daeac2bda1d2298689141da64e13771dc50f0ede7" } diff --git a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/cd.der b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/cd.der index 6616985fcfa31d..a0885e61cb31b5 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/cd.der and b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/dac-Cert.der index b18ae808e19cf7..4c86fdf241335d 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/dac-Cert.pem index fc5cc45fb3e9eb..93006e265965b1 100644 --- a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzTCCAXSgAwIBAgIIPWAiOWrKUWIwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzTCCAXSgAwIBAgIIDtn0ZNFj3d4wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQFZ+vEXJHU0iQ4vq9InW77s1a6ONcz -9SBF07RLN5aY4RNmGQWT+EXnR6Kuebb+tgbFV12sjoXUyOwWncJhcUHao2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUU8rdAIeJm5X8 -20UYVuwV7pM/V4AwHwYDVR0jBBgwFoAUhm+oOJERBAmS6NXRIoNt7niIygcwCgYI -KoZIzj0EAwIDRwAwRAIgJupJPWj9lzPejtI4LEzwBIw7ryJ4+lIRNKmpCxM7Z9kC -IGOKAaLlJbQARBkMu8m63ZQfocmfa1bgspgfv+PKl8um +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQHg/DNkZfGO3K5LBB0OdvVQW3Hs//6 +XOvsuoozDFAD56PVeBvw7GRlkY2ugHaRzplU33Ouj2wrh5gXjUMYNvoNo2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQU1ThDaSHHTVqW +HksAReX+wfTbpU8wHwYDVR0jBBgwFoAURjh3OZIs0mEGtN4nboM1uIy0ETcwCgYI +KoZIzj0EAwIDRwAwRAIgYER1KIA2ZckgXRia0VaGsUQlzGaauwVGUd0CnF6Qkr4C +IAr0dfIWe/jesFVVB/mMInnKd4TJEN825RGt1Ie7qY0I -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/dac-Key.der index dff6da6b07749e..43a0694663a6fc 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/dac-Key.pem index df5f005244d266..a37e26b7e8e3c1 100644 --- a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIJNwzPjJD0JDQ6Kq+OzaeBzorQ2u2iJQOWYMuwEMYd/5oAoGCCqGSM49 -AwEHoUQDQgAEBWfrxFyR1NIkOL6vSJ1u+7NWujjXM/UgRdO0SzeWmOETZhkFk/hF -50eirnm2/rYGxVddrI6F1MjsFp3CYXFB2g== +MHcCAQEEII4WzvHK9FreCqhXlsdhEQxJLkBOpWIh2ZEAqcm0Wqw/oAoGCCqGSM49 +AwEHoUQDQgAEB4PwzZGXxjtyuSwQdDnb1UFtx7P/+lzr7LqKMwxQA+ej1Xgb8Oxk +ZZGNroB2kc6ZVN9zro9sK4eYF41DGDb6DQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/pai-Cert.der index 4ac04099c28a7b..484ae5e928aab2 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/pai-Cert.pem index 6cb86f62cd72a7..a4c7cef03367b4 100644 --- a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvTCCAWSgAwIBAgIIajoXVzMNr84wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvjCCAWSgAwIBAgIIEck8NSOx/fgwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABCvmYW41PLNi0N7TvI+ws4BxQj5XptmSmKkzM7yjg7q4bcBFW6riN1whNonE -KK2fvKDY9vg1yPrNZLAHJwt61XqjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSGb6g4kREECZLo1dEig23ueIjKBzAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNHADBEAiBy -gj7E+oGHZSAR09hl5Vw11hKEwb/RMh6n2XJNikotugIgfoJcXS9X1x/QPMliIoSn -uN4StVhXpDtyifSTeY51lOs= +A0IABAa9cWzC6CDxPUrVLJ5xzu6Yho/Q8+hP0dfIpFmpvNPSNAQXTKNZhOd1d5IA +IwW3wgT1AqKfwSAKpwZDdr3rwLSjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRGOHc5kizSYQa03idugzW4jLQRNzAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiA9 +x0uVw4MZl7AN9ODcD8r+zCERKGIsVvEsU2PH6Qd2sgIhANz7ahBkuTOuuvkjqJsU +VAQ4jaaiY1C3AjkylJu5BBKo -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/pai-Key.der index 17451d2168625f..3e45eb11e28b25 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/pai-Key.pem index 113e8db14e5532..92c50431ae0006 100644 --- a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEILJJ/KqisrZwdxtAqPbz1G+qH7g1YMwZUQIGGQiNjKbIoAoGCCqGSM49 -AwEHoUQDQgAEK+ZhbjU8s2LQ3tO8j7CzgHFCPlem2ZKYqTMzvKODurhtwEVbquI3 -XCE2icQorZ+8oNj2+DXI+s1ksAcnC3rVeg== +MHcCAQEEIOa4LBuTaiKtIoTiGBf/H6oG7feGoQqDZ3Mg5r62huHvoAoGCCqGSM49 +AwEHoUQDQgAEBr1xbMLoIPE9StUsnnHO7piGj9Dz6E/R18ikWam809I0BBdMo1mE +53V3kgAjBbfCBPUCop/BIAqnBkN2vevAtA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/test_case_vector.json index 8d3c02ef261864..47f9e9b3f3362c 100644 --- a/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_sig_algo_ecdsa_with_sha256/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Valid certificate signature algorithm ECDSA_WITH_SHA256", "is_success_case": "true", - "dac_cert": "308201cd30820174a00302010202083d6022396aca5162300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200040567ebc45c91d4d22438beaf489d6efbb356ba38d733f52045d3b44b379698e11366190593f845e747a2ae79b6feb606c5575dac8e85d4c8ec169dc2617141daa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041453cadd0087899b95fcdb451856ec15ee933f5780301f0603551d23041830168014866fa8389111040992e8d5d122836dee7888ca07300a06082a8648ce3d0403020347003044022026ea493d68fd9733de8ed2382c4cf0048c3baf2278fa521134a9a90b133b67d90220638a01a2e525b40044190cbbc9badd941fa1c99f6b56e0b2981fbfe3ca97cba6", - "pai_cert": "308201bd30820164a00302010202086a3a1757330dafce300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200042be6616e353cb362d0ded3bc8fb0b38071423e57a6d99298a93333bca383bab86dc0455baae2375c213689c428ad9fbca0d8f6f835c8facd64b007270b7ad57aa366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414866fa8389111040992e8d5d122836dee7888ca07301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020347003044022072823ec4fa8187652011d3d865e55c35d61284c1bfd1321ea7d9724d8a4a2dba02207e825c5d2f57d71fd03cc9622284a7b8de12b55857a43b7289f493798e7594eb", - "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502210099ee26f82318624ae22f5e05a744ace27c846023c9df5c6125305f8aaa35d98f02202665265acfca111fdf50ec6291c7cf9482b0a6c6bf47b303ec5478d146e2a5e0", - "dac_private_key": "9370ccf8c90f424343a2aaf8ecda781ce8ad0daeda225039660cbb010c61dff9", - "dac_public_key": "040567ebc45c91d4d22438beaf489d6efbb356ba38d733f52045d3b44b379698e11366190593f845e747a2ae79b6feb606c5575dac8e85d4c8ec169dc2617141da" + "dac_cert": "308201cd30820174a00302010202080ed9f464d163ddde300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200040783f0cd9197c63b72b92c107439dbd5416dc7b3fffa5cebecba8a330c5003e7a3d5781bf0ec6465918dae807691ce9954df73ae8f6c2b8798178d431836fa0da360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414d538436921c74d5a961e4b0045e5fec1f4dba54f301f0603551d2304183016801446387739922cd26106b4de276e8335b88cb41137300a06082a8648ce3d0403020347003044022060447528803665c9205d189ad15686b14425cc669abb054651dd029c5e9092be02200af475f2167bf8deb0555507f98c2279ca7784c910df36e511add487bba98d08", + "pai_cert": "308201be30820164a003020102020811c93c3523b1fdf8300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000406bd716cc2e820f13d4ad52c9e71ceee98868fd0f3e84fd1d7c8a459a9bcd3d23404174ca35984e7757792002305b7c204f502a29fc1200aa7064376bdebc0b4a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041446387739922cd26106b4de276e8335b88cb41137301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502203dc74b95c3831997b00df4e0dc0fcafecc211128622c56f12c5363c7e90776b2022100dcfb6a1064b933aebaf923a89b145404388da6a26350b7023932949bb90412a8", + "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100dbbb297a5a63cfad7096975f0ff303c6562434417d4de107729c4ae18b4d6dc4022030ea2a4ce5ebdd42161c603b94e6716b1bc2ee8ec85eeb184002397509fae962", + "dac_private_key": "8e16cef1caf45ade0aa85796c761110c492e404ea56221d99100a9c9b45aac3f", + "dac_public_key": "040783f0cd9197c63b72b92c107439dbd5416dc7b3fffa5cebecba8a330c5003e7a3d5781bf0ec6465918dae807691ce9954df73ae8f6c2b8798178d431836fa0d" } diff --git a/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/cd.der b/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/cd.der index dc1210d75a9754..751822f5f5e73d 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/cd.der and b/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/dac-Cert.der index 5deb3a6b8ba09b..81eb1524223b4a 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/dac-Cert.pem index 5a115999dd5045..16f08840ea5104 100644 --- a/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzzCCAXSgAwIBAgIIf1kHgC1llrQwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzTCCAXSgAwIBAgIIDXizk4CDa9swCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARZ+1AQWFSk303kO2+c9OA0OYR2NfqH -hWLOWf3ReNAb1szDTgQ2/70mkNeqPvUDpvlmRPgmgt1eIM908bgXrZ04o2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUreClz1+4usl3 -bBMEb8+oxb5aRwUwHwYDVR0jBBgwFoAUMfnptlpML8tOY/G26Nt3URYqXFUwCgYI -KoZIzj0EAwIDSQAwRgIhAI9BXqn9YL+Cmh5aw/bm9vDQ9oWZQKYTWQLAK4hfH9Hu -AiEA+w5UzYcVuX4cA10XbkabKEMYWTgCL2krM1sE86v6vqE= +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAT7XtRG3IYicRIzpESt4qrelqpkW0xz +Gs0VRvgNuRH4Ro9qVnhwu3sWuffrcrX0+KO/VTT0WvcllNu00I0MfQzlo2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUv8S8nWZ4S1// +RQILBlkoG/vRdmEwHwYDVR0jBBgwFoAUMTS9unVw33ouG3yaZH6sQU/tgAkwCgYI +KoZIzj0EAwIDRwAwRAIgdO86K7Kx/3JTpev2K7a1FFQi4PhgIhLXfLFfhI3kC60C +IF01OKb8CKi6yJGhJfmP1MEDGpgXa7ItHh8IX8j2I8K6 -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/dac-Key.der index c2114651bdd7f0..748e6d7cd11fd9 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/dac-Key.pem index db204b7a493390..a83c7c74efa1ba 100644 --- a/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIE3Zw8ruiD4uxKXDtjuD23L1+w14m6Bx+Q2ERGVTJ4nkoAoGCCqGSM49 -AwEHoUQDQgAEWftQEFhUpN9N5DtvnPTgNDmEdjX6h4Vizln90XjQG9bMw04ENv+9 -JpDXqj71A6b5ZkT4JoLdXiDPdPG4F62dOA== +MHcCAQEEIItTowbrYQGu0kCscPb7X/FbPmM/czNcSwY8bWLDEDtToAoGCCqGSM49 +AwEHoUQDQgAE+17URtyGInESM6REreKq3paqZFtMcxrNFUb4DbkR+EaPalZ4cLt7 +Frn363K19Pijv1U09Fr3JZTbtNCNDH0M5Q== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/pai-Cert.der index 21e309df17205c..d16140a721be80 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/pai-Cert.pem index 18415e99ce8b12..66016e9365c9cc 100644 --- a/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvzCCAWSgAwIBAgIINu3nG2Jn6v0wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvjCCAWSgAwIBAgIIQLZQ6ndDbqwwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABMpK60A6epP2SNO7Nn8gPbLKrXgWVpJcTZkHPaj+IlekE+qJKvt001GjeM7U -CQnOToKrud9NfYN2R4IHfd8IoxejZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQx+em2Wkwvy05j8bbo23dRFipcVTAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNJADBGAiEA -nZncRQVCvzWDgIgVAyx1utqviy8uJtWgFCyH91Gi7Q4CIQDRq28M9VcXfkLGfK+9 -J95QTsNs1QglxzZb7djtISQiHw== +A0IABFP/xgputmC2/TsD62OQL+MBFHNVTFNKNH9KG16NXDcTnxdCE+edX1EVfnFD +OZ4DIgkI8qBzeH/TALpuDzHbxE6jZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQxNL26dXDfei4bfJpkfqxBT+2ACTAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiA9 +udSLoVEGOS7RxkuYBwoDEYLUJy2ES5ToXAVkgNchJgIhAMzUBpYaLRSGQpCo/KU9 +/8dogymJOGFb/H8yYW8kOlTs -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/pai-Key.der index 302a6b124c01d6..093f9709399ef0 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/pai-Key.pem index 59f544240edabb..87ff07d03d624d 100644 --- a/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIJGqc/UXkzusx2hT+AjOjMnMz7y2U7GHD/dZcBs9zb8NoAoGCCqGSM49 -AwEHoUQDQgAEykrrQDp6k/ZI07s2fyA9ssqteBZWklxNmQc9qP4iV6QT6okq+3TT -UaN4ztQJCc5Ogqu53019g3ZHggd93wijFw== +MHcCAQEEIN/DgFEGkNEVHkhMK+tW145q56Dsd14AwBNRdrAr+4YqoAoGCCqGSM49 +AwEHoUQDQgAEU//GCm62YLb9OwPrY5Av4wEUc1VMU0o0f0obXo1cNxOfF0IT551f +URV+cUM5ngMiCQjyoHN4f9MAum4PMdvETg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/test_case_vector.json index 98b305cbaddb8d..46fc5462769acb 100644 --- a/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_sig_curve_prime256v1/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Valid certificate public key curve prime256v1", "is_success_case": "true", - "dac_cert": "308201cf30820174a00302010202087f5907802d6596b4300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000459fb50105854a4df4de43b6f9cf4e03439847635fa878562ce59fdd178d01bd6ccc34e0436ffbd2690d7aa3ef503a6f96644f82682dd5e20cf74f1b817ad9d38a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414ade0a5cf5fb8bac9776c13046fcfa8c5be5a4705301f0603551d2304183016801431f9e9b65a4c2fcb4e63f1b6e8db7751162a5c55300a06082a8648ce3d04030203490030460221008f415ea9fd60bf829a1e5ac3f6e6f6f0d0f6859940a6135902c02b885f1fd1ee022100fb0e54cd8715b97e1c035d176e469b2843185938022f692b335b04f3abfabea1", - "pai_cert": "308201bf30820164a003020102020836ede71b6267eafd300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004ca4aeb403a7a93f648d3bb367f203db2caad781656925c4d99073da8fe2257a413ea892afb74d351a378ced40909ce4e82abb9df4d7d83764782077ddf08a317a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e0416041431f9e9b65a4c2fcb4e63f1b6e8db7751162a5c55301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203490030460221009d99dc450542bf3583808815032c75badaaf8b2f2e26d5a0142c87f751a2ed0e022100d1ab6f0cf557177e42c67cafbd27de504ec36cd50825c7365bedd8ed2124221f", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044630440220620a83eed8a527c0972862bc9c784a02c114280e4573ec370f9ccf1a56d92dfb02206e8bdb0790366e11ec9f184d5a52c44efb6c575b17a09dc5889012434ab7327d", - "dac_private_key": "4dd9c3caee883e2ec4a5c3b63b83db72f5fb0d789ba071f90d844465532789e4", - "dac_public_key": "0459fb50105854a4df4de43b6f9cf4e03439847635fa878562ce59fdd178d01bd6ccc34e0436ffbd2690d7aa3ef503a6f96644f82682dd5e20cf74f1b817ad9d38" + "dac_cert": "308201cd30820174a00302010202080d78b39380836bdb300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004fb5ed446dc8622711233a444ade2aade96aa645b4c731acd1546f80db911f8468f6a567870bb7b16b9f7eb72b5f4f8a3bf5534f45af72594dbb4d08d0c7d0ce5a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414bfc4bc9d66784b5fff45020b0659281bfbd17661301f0603551d230418301680143134bdba7570df7a2e1b7c9a647eac414fed8009300a06082a8648ce3d0403020347003044022074ef3a2bb2b1ff7253a5ebf62bb6b5145422e0f8602212d77cb15f848de40bad02205d3538a6fc08a8bac891a125f98fd4c1031a98176bb22d1e1f085fc8f623c2ba", + "pai_cert": "308201be30820164a003020102020840b650ea77436eac300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000453ffc60a6eb660b6fd3b03eb63902fe3011473554c534a347f4a1b5e8d5c37139f174213e79d5f51157e7143399e03220908f2a073787fd300ba6e0f31dbc44ea366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604143134bdba7570df7a2e1b7c9a647eac414fed8009301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502203db9d48ba15106392ed1c64b98070a031182d4272d844b94e85c056480d72126022100ccd406961a2d14864290a8fca53dffc76883298938615bfc7f32616f243a54ec", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402202bcc6df0b9ec31d1c463b0d6ea9cf1c4243157feb495625e25c6049502394b5f0220035d0cfaa91d11074240bd97cde33da056ca009e2e4ec6cfc747e7987f497c97", + "dac_private_key": "8b53a306eb6101aed240ac70f6fb5ff15b3e633f73335c4b063c6d62c3103b53", + "dac_public_key": "04fb5ed446dc8622711233a444ade2aade96aa645b4c731acd1546f80db911f8468f6a567870bb7b16b9f7eb72b5f4f8a3bf5534f45af72594dbb4d08d0c7d0ce5" } diff --git a/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/cd.der b/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/cd.der index d8dd4154cd8c57..3bc3077cb953d3 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/cd.der and b/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/dac-Cert.der index 4323272bd4c69f..30904e5fa7c6d3 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/dac-Cert.pem index b59b5c1f89ae9e..2ee899e45b5b0e 100644 --- a/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzDCCAXGgAwIBAgIII3geiE8t5cswCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIByzCCAXGgAwIBAgIIflYuzc4KMvwwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -VjAQBgcqhkjOPQIBBgUrgQQACgNCAARXIp4LBQSxjeYThHY/KZBhQ/NlYI+v7DJQ -EzVnQOcO6btTlEF+MljvRy7xJY/464b6idbK4UL4iFs5kEpiw/kOo2AwXjAMBgNV -HRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUQeVN5bp/JpqmytZQ -1q/BOp30q9wwHwYDVR0jBBgwFoAUMq3Sj+eICOBjVatB8oGXmLLyW5AwCgYIKoZI -zj0EAwIDSQAwRgIhAKQg+R0I2c+y5ndt5mBMAz17hgUrA/px992h3OfUDGPTAiEA -0JGdTgankwNv9uUYi1FnIyMn7uzn5O89QngaRDEzndA= +VjAQBgcqhkjOPQIBBgUrgQQACgNCAARf+oHRBQL4LgPqVXwo6guF4UMPwbxVcZza +rpzEg2Za52lGvtkAOfjX2VMaQlmOiCfnRkLZ8/RF+WGRAEZQXoxNo2AwXjAMBgNV +HRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUVC6zcAlZ6ZRf1bKX +wudQRCMfIhMwHwYDVR0jBBgwFoAUIblFLAxTbqGDeISHV1IX2gxP/50wCgYIKoZI +zj0EAwIDSAAwRQIgfvWg92191WmQqsYKCGGg9u6KnFnVXOVBrtdgiN0gkSQCIQCc +w99w8BQCWXXVI4bG94zss0B+atfRz+ocZLwmdk5+Pg== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/dac-Key.der index 005705cdcafb03..fd20bce88a5f83 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/dac-Key.pem index 060c6d43c38616..23788907d34d3c 100644 --- a/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHQCAQEEIIZMPYRSoAMI24+YjyVKYQ9iePF1Ey2EUXe5OrE7WxXmoAcGBSuBBAAK -oUQDQgAEVyKeCwUEsY3mE4R2PymQYUPzZWCPr+wyUBM1Z0DnDum7U5RBfjJY70cu -8SWP+OuG+onWyuFC+IhbOZBKYsP5Dg== +MHQCAQEEICixSL4JIIPWjU0ATTZx0KwfffznXzwRTaRmApPDZGJeoAcGBSuBBAAK +oUQDQgAEX/qB0QUC+C4D6lV8KOoLheFDD8G8VXGc2q6cxINmWudpRr7ZADn419lT +GkJZjogn50ZC2fP0RflhkQBGUF6MTQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/pai-Cert.der index f79a2182e84fa2..7640771e8b0d63 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/pai-Cert.pem index 03125aff2c1265..9d047a7f5281fe 100644 --- a/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvTCCAWSgAwIBAgIIaxIHLuVbdaAwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvjCCAWSgAwIBAgIILRm42syzGWowCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABC8Wom5xQ0QdPhxGaPA4ARnm+c2NKt/bD9vG71KBUCvRWDuJctqOBQDWJkiq -pz7ftO7EVoP+yvuZzyJPXf44cqmjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQyrdKP54gI4GNVq0HygZeYsvJbkDAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNHADBEAiAr -NMvv4qqBwZdQGqfDMyt4uIoYjSrvK/Oj8lwkPFPTaAIgLISw1LhqVOyMq1QF5oDE -bIzOycuVWMZdR0mv4ocglzI= +A0IABOx8JzQO9NJoG8QlQkrUhGGzvM+Uim2AMOgNb8dw1nCE7Tqd+lLmx7M3H03S +kGwhUOdC4b7A0M4Z55YAqLkGgVejZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQhuUUsDFNuoYN4hIdXUhfaDE//nTAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiEA +/6OiavnzJvivMpEIKOe7Ro4E6CHSvC23L5bX1HGCjmECIAaya7LEUIt5QgZ2sp+u +bvuplFQX5piGzE4ZTHYdjJzC -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/pai-Key.der index 91b21aa1d218b5..0622a6a5844880 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/pai-Key.pem index 776e2c07d4ee34..15b40c262348d3 100644 --- a/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEICn4XEOXSuBmTq1rghDfZGDNhn8aPTyfSTDWNkB0XjasoAoGCCqGSM49 -AwEHoUQDQgAELxaibnFDRB0+HEZo8DgBGeb5zY0q39sP28bvUoFQK9FYO4ly2o4F -ANYmSKqnPt+07sRWg/7K+5nPIk9d/jhyqQ== +MHcCAQEEILX1421lzSmj9w41uK3LmHN/JSVuunwlWwir+mUUZoeooAoGCCqGSM49 +AwEHoUQDQgAE7HwnNA700mgbxCVCStSEYbO8z5SKbYAw6A1vx3DWcITtOp36UubH +szcfTdKQbCFQ50LhvsDQzhnnlgCouQaBVw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/test_case_vector.json index c458dac01e50f3..5ce2f6649b7580 100644 --- a/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_sig_curve_secp256k1/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Invalid certificate public key curve secp256k1", "is_success_case": "false", - "dac_cert": "308201cc30820171a003020102020823781e884f2de5cb300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303056301006072a8648ce3d020106052b8104000a0342000457229e0b0504b18de61384763f29906143f365608fafec325013356740e70ee9bb5394417e3258ef472ef1258ff8eb86fa89d6cae142f8885b39904a62c3f90ea360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041441e54de5ba7f269aa6cad650d6afc13a9df4abdc301f0603551d2304183016801432add28fe78808e06355ab41f2819798b2f25b90300a06082a8648ce3d0403020349003046022100a420f91d08d9cfb2e6776de6604c033d7b86052b03fa71f7dda1dce7d40c63d3022100d0919d4e06a793036ff6e5188b5167232327eeece7e4ef3d42781a4431339dd0", - "pai_cert": "308201bd30820164a00302010202086b12072ee55b75a0300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200042f16a26e7143441d3e1c4668f0380119e6f9cd8d2adfdb0fdbc6ef5281502bd1583b8972da8e0500d62648aaa73edfb4eec45683fecafb99cf224f5dfe3872a9a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e0416041432add28fe78808e06355ab41f2819798b2f25b90301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402202b34cbefe2aa81c197501aa7c3332b78b88a188d2aef2bf3a3f25c243c53d36802202c84b0d4b86a54ec8cab5405e680c46c8ccec9cb9558c65d4749afe287209732", - "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502207e3b4477a2e4e088d2f8eadf2d4c3242249a12adf9a96e7a153ddfcbb50514bb022100c3f3b4c2f2825e0a45da13a94dac4cdfc882e04eab6866fb7e9b5d5d9c98ecc6", - "dac_private_key": "864c3d8452a00308db8f988f254a610f6278f175132d845177b93ab13b5b15e6", - "dac_public_key": "0457229e0b0504b18de61384763f29906143f365608fafec325013356740e70ee9bb5394417e3258ef472ef1258ff8eb86fa89d6cae142f8885b39904a62c3f90e" + "dac_cert": "308201cb30820171a00302010202087e562ecdce0a32fc300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303056301006072a8648ce3d020106052b8104000a034200045ffa81d10502f82e03ea557c28ea0b85e1430fc1bc55719cdaae9cc483665ae76946bed90039f8d7d9531a42598e8827e74642d9f3f445f961910046505e8c4da360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414542eb3700959e9945fd5b297c2e75044231f2213301f0603551d2304183016801421b9452c0c536ea183788487575217da0c4fff9d300a06082a8648ce3d040302034800304502207ef5a0f76d7dd56990aac60a0861a0f6ee8a9c59d55ce541aed76088dd2091240221009cc3df70f014025975d52386c6f78cecb3407e6ad7d1cfea1c64bc26764e7e3e", + "pai_cert": "308201be30820164a00302010202082d19b8daccb3196a300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004ec7c27340ef4d2681bc425424ad48461b3bccf948a6d8030e80d6fc770d67084ed3a9dfa52e6c7b3371f4dd2906c2150e742e1bec0d0ce19e79600a8b9068157a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041421b9452c0c536ea183788487575217da0c4fff9d301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100ffa3a26af9f326f8af32910828e7bb468e04e821d2bc2db72f96d7d471828e61022006b26bb2c4508b79420676b29fae6efba9945417e69886cc4e194c761d8c9cc2", + "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022057c24bea52d3e5a48d790ed4ba398793d45f95e1c67bf6acf0921e203d3d5b94022100c538389898f52518ffe3af36458c33ae6eb31c48ed0ab95973520c2bc8ac22da", + "dac_private_key": "28b148be092083d68d4d004d3671d0ac1f7dfce75f3c114da4660293c364625e", + "dac_public_key": "045ffa81d10502f82e03ea557c28ea0b85e1430fc1bc55719cdaae9cc483665ae76946bed90039f8d7d9531a42598e8827e74642d9f3f445f961910046505e8c4d" } diff --git a/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/cd.der b/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/cd.der index d62a4c29240228..58a8e6823d8089 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/cd.der and b/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/dac-Cert.der index 778edb359d072f..fedaa283efb44f 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/dac-Cert.pem index 16f7c7c0f8a1f3..4bce0cc1f7188f 100644 --- a/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzjCCAXSgAwIBAgIIYyVhuvc8FpYwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzTCCAXSgAwIBAgIIWkZypi/XGn8wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDEw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATE/Jp73Sso9MmjzlVPSwJ+spf9i8Yf -DlY40c6wktb5jyoYiB4F3yY4S5XNKZY+tQEDVLMZ5nmiMalfXqcqktNXo2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUksnOi9WJgFbl -8g/ZS8gyAPIJvc4wHwYDVR0jBBgwFoAUm22QUoH3psfFktXtl0LBy7odfdowCgYI -KoZIzj0EAwIDSAAwRQIhAJ3NKty+dRXX2clrR0ozjfXnkQHBq2blSWRLm4ZeOvl/ -AiASOjPUNJL9QJo8DY0HZK6mUDLtsyF3ReRrI8eX/rCVjA== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASYGVJrsxXU2Utw8anUE1l1pVzIZOj/ +/Bk9DYlmXa1CeqPOuPcbpy3dk4YayFS1y/VGz8IS8iJidoyYZCQYnT77o2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUAQQbYzaiooQE +iq6U6oG5+BQRo0EwHwYDVR0jBBgwFoAUMOHnSoAYkykrfdvm86LimEDYVhkwCgYI +KoZIzj0EAwIDRwAwRAIgC1QXN4/LFXo1OziJjHzY11E5n7xkk+qoWL4fB8xY7gQC +IBx6gxEy5j4O/lzBN/4mifk+DCsMCd1yNt91nRgvBdpC -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/dac-Key.der index f7cec17297de12..533542393d926c 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/dac-Key.pem index 155a704febdc35..83162b195b9f95 100644 --- a/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIM2swOQYQ/2jsNUhg1U0tTdNQ+2BMQclGD7yTEBxPjNooAoGCCqGSM49 -AwEHoUQDQgAExPyae90rKPTJo85VT0sCfrKX/YvGHw5WONHOsJLW+Y8qGIgeBd8m -OEuVzSmWPrUBA1SzGeZ5ojGpX16nKpLTVw== +MHcCAQEEIJ8NOAM1WUosNj7DJPbHwaNw7ftJxSukrvpGpis+UBh0oAoGCCqGSM49 +AwEHoUQDQgAEmBlSa7MV1NlLcPGp1BNZdaVcyGTo//wZPQ2JZl2tQnqjzrj3G6ct +3ZOGGshUtcv1Rs/CEvIiYnaMmGQkGJ0++w== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/pai-Cert.der index b17c34934ce4a9..88bb8ccc9686ab 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/pai-Cert.pem index 041b310ec86919..e58c0a4d2800d7 100644 --- a/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvzCCAWSgAwIBAgIIBXDiJyo/giAwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvjCCAWSgAwIBAgIIJg+j7f9ntx4wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABJCqv94asvygcarBF9frw1M6jXLbI/ZVbPDZVv/Y5vvdBF0DwPDpW8LTdu1C -deV8mSB5jrDflJ2H4KfLfvqlx06jZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSbbZBSgfemx8WS1e2XQsHLuh192jAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNJADBGAiEA -gvuIFdn28gcUOMw0xfLLP4NXi7l14REISNxCtJQ38SwCIQCJNSC6Do5ztzsGAfL7 -6OMM5M6RgKQf1ym1qlNXovGJdg== +A0IABDIUxgEy6DAZ8omjn9yesSXqTbfjXpCbxJjWbo1QHLNNMagCE5EYsziTJJRf +n5DtGssSOgwWbn/HvTOGIsxmjf+jZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQw4edKgBiTKSt92+bzouKYQNhWGTAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiA/ +XTZRpAH5BFvLbaD3EQOJXK2t4Ry77zICE/9SScNXBwIhAKu5uXZs4pEQq68PrwV7 +06c2ixSnV2RSiKIn1pVX3Ah/ -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/pai-Key.der index 57d1e35108f0aa..b27725de16dd8b 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/pai-Key.pem index 5ee1f9608fe222..b29281407225d4 100644 --- a/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIKA47yH/1TTnheLOT/AM6fZgMC6in8HlLdm5cmZMFcOloAoGCCqGSM49 -AwEHoUQDQgAEkKq/3hqy/KBxqsEX1+vDUzqNctsj9lVs8NlW/9jm+90EXQPA8Olb -wtN27UJ15XyZIHmOsN+UnYfgp8t++qXHTg== +MHcCAQEEIJfQ97ew+uenC74tXnpWaZuLHU0/eRV9LQue41ARCeeeoAoGCCqGSM49 +AwEHoUQDQgAEMhTGATLoMBnyiaOf3J6xJepNt+NekJvEmNZujVAcs00xqAITkRiz +OJMklF+fkO0ayxI6DBZuf8e9M4YizGaN/w== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/test_case_vector.json index 809193398371cf..610642ab308b0d 100644 --- a/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_subject_pid_mismatch/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: PID in Subject field doesn't match PID in Issuer field", "is_success_case": "false", - "dac_cert": "308201ce30820174a0030201020208632561baf73c1696300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030313059301306072a8648ce3d020106082a8648ce3d03010703420004c4fc9a7bdd2b28f4c9a3ce554f4b027eb297fd8bc61f0e5638d1ceb092d6f98f2a18881e05df26384b95cd29963eb5010354b319e679a231a95f5ea72a92d357a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041492c9ce8bd5898056e5f20fd94bc83200f209bdce301f0603551d230418301680149b6d905281f7a6c7c592d5ed9742c1cbba1d7dda300a06082a8648ce3d04030203480030450221009dcd2adcbe7515d7d9c96b474a338df5e79101c1ab66e549644b9b865e3af97f0220123a33d43492fd409a3c0d8d0764aea65032edb3217745e46b23c797feb0958c", - "pai_cert": "308201bf30820164a00302010202080570e2272a3f8220300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000490aabfde1ab2fca071aac117d7ebc3533a8d72db23f6556cf0d956ffd8e6fbdd045d03c0f0e95bc2d376ed4275e57c9920798eb0df949d87e0a7cb7efaa5c74ea366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604149b6d905281f7a6c7c592d5ed9742c1cbba1d7dda301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034900304602210082fb8815d9f6f2071438cc34c5f2cb3f83578bb975e1110848dc42b49437f12c022100893520ba0e8e73b73b0601f2fbe8e30ce4ce9180a41fd729b5aa5357a2f18976", - "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020448304602210091d00b7a0a27f30bdb3b4ff6b6ffbb7c27c5ffce8775ed1c020da03dd1c867ca022100f5fdd61f0c101ba481a05fed174ab76c03c9e31b33e210ebfab1a3c1bfb9a1e5", - "dac_private_key": "cdacc0e41843fda3b0d521835534b5374d43ed81310725183ef24c40713e3368", - "dac_public_key": "04c4fc9a7bdd2b28f4c9a3ce554f4b027eb297fd8bc61f0e5638d1ceb092d6f98f2a18881e05df26384b95cd29963eb5010354b319e679a231a95f5ea72a92d357" + "dac_cert": "308201cd30820174a00302010202085a4672a62fd71a7f300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030313059301306072a8648ce3d020106082a8648ce3d030107034200049819526bb315d4d94b70f1a9d4135975a55cc864e8fffc193d0d89665dad427aa3ceb8f71ba72ddd93861ac854b5cbf546cfc212f22262768c986424189d3efba360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041401041b6336a2a284048aae94ea81b9f81411a341301f0603551d2304183016801430e1e74a801893292b7ddbe6f3a2e29840d85619300a06082a8648ce3d040302034700304402200b5417378fcb157a353b38898c7cd8d751399fbc6493eaa858be1f07cc58ee0402201c7a831132e63e0efe5cc137fe2689f93e0c2b0c09dd7236df759d182f05da42", + "pai_cert": "308201be30820164a0030201020208260fa3edff67b71e300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200043214c60132e83019f289a39fdc9eb125ea4db7e35e909bc498d66e8d501cb34d31a802139118b3389324945f9f90ed1acb123a0c166e7fc7bd338622cc668dffa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041430e1e74a801893292b7ddbe6f3a2e29840d85619301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502203f5d3651a401f9045bcb6da0f71103895cadade11cbbef320213ff5249c35707022100abb9b9766ce29110abaf0faf057bd3a7368b14a757645288a227d69557dc087f", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402200456c0174ef9951b0801baec58a580ca88116f675a5fa2b963fdba7d090407a5022017e3ce50926813a7af33d2d08fdc854533d9e0c8ad2fdadc3f563bf3ff563235", + "dac_private_key": "9f0d380335594a2c363ec324f6c7c1a370edfb49c52ba4aefa46a62b3e501874", + "dac_public_key": "049819526bb315d4d94b70f1a9d4135975a55cc864e8fffc193d0d89665dad427aa3ceb8f71ba72ddd93861ac854b5cbf546cfc212f22262768c986424189d3efb" } diff --git a/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/cd.der b/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/cd.der index 98aeace7f48cd3..def5e26b045c57 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/cd.der and b/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/dac-Cert.der index 06be896a78464f..755af44b4330a9 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/dac-Cert.pem index db23faf1e61a05..6889620cd5c74e 100644 --- a/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzjCCAXSgAwIBAgIIGC0sZXdJdd0wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzjCCAXSgAwIBAgIIWdvEqqR+R9UwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMjEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATV4LyDUYxmE+mUrwx8wNvPo32VufUj -6VLXyuvG6aQiJlaogwJN7SRBMng3ekkWhjv6K/Fk8wSfGZN+vv6cC5Pho2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUWP4y9aAsNCMn -gslWYYHIH2p8UtQwHwYDVR0jBBgwFoAUQwpuurKnWy4kLDtmO7INTT6YKoswCgYI -KoZIzj0EAwIDSAAwRQIgGAup276bZJ2IBUhYui7FOnGO3+BQcHW4i32URKm8jS8C -IQDmzhOmBVJrJBt3MfFw+MuAITa2iPYfVEzvGrMN4XPHow== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARpAc1oxHgvZVIJ1WxBygzw7Xp7nJ4S +BJB9fzNbRNmheRqR9xSjMzJfyjFk5djxEjeCaLzKTJfpsePbPy77gKCMo2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQU4Uuuaocx1UVV +Sowgab8AZN0ONsgwHwYDVR0jBBgwFoAUl6B6Dz4s1oSMRl+WgfZWWx30vEkwCgYI +KoZIzj0EAwIDSAAwRQIhANzontg8dR8V8DN+gPjfzsYUbxwu3rpGPM9oz66UljLR +AiBu9JXDTLJDe9KFUeROR+dpSq4L6dHj6551dJjVuK4jJw== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/dac-Key.der index 459e8c91f14c87..c210abf0d5c5ad 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/dac-Key.pem index 8702b4b9be0655..5d8895b3c93c71 100644 --- a/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIE66URioAdxoJOA/vqwvhFbS3tahhYHkfDGU++vlBegIoAoGCCqGSM49 -AwEHoUQDQgAE1eC8g1GMZhPplK8MfMDbz6N9lbn1I+lS18rrxumkIiZWqIMCTe0k -QTJ4N3pJFoY7+ivxZPMEnxmTfr7+nAuT4Q== +MHcCAQEEIH26q2rScwKMLlosUUa0mir5BIaki/c4WNBMcmQleAmYoAoGCCqGSM49 +AwEHoUQDQgAEaQHNaMR4L2VSCdVsQcoM8O16e5yeEgSQfX8zW0TZoXkakfcUozMy +X8oxZOXY8RI3gmi8ykyX6bHj2z8u+4CgjA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/pai-Cert.der index 28b123b7f94b58..e417804aba641f 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/pai-Cert.pem index 0e16d878598610..b322db846b7915 100644 --- a/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvjCCAWSgAwIBAgIIN8zDVh9U4BAwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvjCCAWSgAwIBAgIIU0FIQ61g6MQwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABOIPk4fAJuHA1+0dKwe68qNt0SLeDHCgod/6M19UV+BSmFjdssS2vYYpVvXo -lxL7wxFT0ExKIuei7HCB45poG3ajZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRDCm66sqdbLiQsO2Y7sg1NPpgqizAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiAn -cXtpieO4TOJnUxgYC4bRcRrskWEThYEy8It0P1MeiQIhAKDDdKuuzb9v3qVIhNsO -InzYUuVuw8XxZ1KVyNh7i5IX +A0IABK54we/72782khci6L7HX2MK6GfZi5Ylm5QAhNKSauMje3uD4TH3evW2XqHk +gU4l7OpJveNFc2CUHRPQ1giJbfujZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSXoHoPPizWhIxGX5aB9lZbHfS8STAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiAg +97fzEF8JXxZiERDG5mx2ofBR5wusPfCwg/dySHTyZAIhAO6x1Dv5Cd0NuEts99o9 +ZzMSpm6YmGzPQtPPrfAvhiET -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/pai-Key.der index 209bd28cb525ee..b2f36f6d8473f1 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/pai-Key.pem index 90e7351d48c60b..a03879cff43f6d 100644 --- a/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIBQAB35TnCEGYtXvF+hnNN59qK62yxG95HLOZCt7sccfoAoGCCqGSM49 -AwEHoUQDQgAE4g+Th8Am4cDX7R0rB7ryo23RIt4McKCh3/ozX1RX4FKYWN2yxLa9 -hilW9eiXEvvDEVPQTEoi56LscIHjmmgbdg== +MHcCAQEEILaVz+tv6TmiME+in8nVE2zv+qykERsueTmSkNZ4afQjoAoGCCqGSM49 +AwEHoUQDQgAErnjB7/vbvzaSFyLovsdfYwroZ9mLliWblACE0pJq4yN7e4PhMfd6 +9bZeoeSBTiXs6km940VzYJQdE9DWCIlt+w== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/test_case_vector.json index ec920a4e0b5146..3aad888b99a581 100644 --- a/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_subject_vid_mismatch/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: VID in Subject field doesn't match VID in Issuer field", "is_success_case": "false", - "dac_cert": "308201ce30820174a0030201020208182d2c65774975dd300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463231143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004d5e0bc83518c6613e994af0c7cc0dbcfa37d95b9f523e952d7caebc6e9a4222656a883024ded24413278377a4916863bfa2bf164f3049f19937ebefe9c0b93e1a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041458fe32f5a02c34232782c9566181c81f6a7c52d4301f0603551d23041830168014430a6ebab2a75b2e242c3b663bb20d4d3e982a8b300a06082a8648ce3d04030203480030450220180ba9dbbe9b649d88054858ba2ec53a718edfe0507075b88b7d9444a9bc8d2f022100e6ce13a605526b241b7731f170f8cb802136b688f61f544cef1ab30de173c7a3", - "pai_cert": "308201be30820164a003020102020837ccc3561f54e010300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004e20f9387c026e1c0d7ed1d2b07baf2a36dd122de0c70a0a1dffa335f5457e0529858ddb2c4b6bd862956f5e89712fbc31153d04c4a22e7a2ec7081e39a681b76a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414430a6ebab2a75b2e242c3b663bb20d4d3e982a8b301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022027717b6989e3b84ce2675318180b86d1711aec916113858132f08b743f531e89022100a0c374abaecdbf6fdea54884db0e227cd852e56ec3c5f1675295c8d87b8b9217", - "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022050e897792b88f626d2d23f766eacef2fae220fa7b869376d93a716b652293a7e022100a194a5f47c6a5e700c7398f5df07dbfdcff2aec25e70c488796b6bd4b813763b", - "dac_private_key": "4eba5118a801dc6824e03fbeac2f8456d2ded6a18581e47c3194fbebe505e808", - "dac_public_key": "04d5e0bc83518c6613e994af0c7cc0dbcfa37d95b9f523e952d7caebc6e9a4222656a883024ded24413278377a4916863bfa2bf164f3049f19937ebefe9c0b93e1" + "dac_cert": "308201ce30820174a003020102020859dbc4aaa47e47d5300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463231143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200046901cd68c4782f655209d56c41ca0cf0ed7a7b9c9e1204907d7f335b44d9a1791a91f714a333325fca3164e5d8f112378268bcca4c97e9b1e3db3f2efb80a08ca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414e14bae6a8731d545554a8c2069bf0064dd0e36c8301f0603551d2304183016801497a07a0f3e2cd6848c465f9681f6565b1df4bc49300a06082a8648ce3d0403020348003045022100dce89ed83c751f15f0337e80f8dfcec6146f1c2edeba463ccf68cfae949632d102206ef495c34cb2437bd28551e44e47e7694aae0be9d1e3eb9e757498d5b8ae2327", + "pai_cert": "308201be30820164a003020102020853414843ad60e8c4300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004ae78c1effbdbbf36921722e8bec75f630ae867d98b96259b940084d2926ae3237b7b83e131f77af5b65ea1e4814e25ecea49bde3457360941d13d0d608896dfba366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041497a07a0f3e2cd6848c465f9681f6565b1df4bc49301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022020f7b7f3105f095f16621110c6e66c76a1f051e70bac3df0b083f7724874f264022100eeb1d43bf909dd0db84b6cf7da3d673312a66e98986ccf42d3cfadf02f862113", + "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100e0e11ce895e44f0c37543c86489b48923b51aea6994d48ce2ec426a883c23531022100f9e5cd84abf0a323919fe968bad3423ec24e2b83018768f6553b0913baa33837", + "dac_private_key": "7dbaab6ad273028c2e5a2c5146b49a2af90486a48bf73858d04c726425780998", + "dac_public_key": "046901cd68c4782f655209d56c41ca0cf0ed7a7b9c9e1204907d7f335b44d9a1791a91f714a333325fca3164e5d8f112378268bcca4c97e9b1e3db3f2efb80a08c" } diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/cd.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/cd.der index 8712acdd3d56be..ccaa15edacb435 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/cd.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/dac-Cert.der index d0d6c812cf484a..f660298761207d 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/dac-Cert.pem index c6cf301aee7e01..db06015626a293 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB2zCCAYGgAwIBAgIIdPS0Rry9ddswCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB2zCCAYGgAwIBAgIIOzVJbZMAnVgwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDAwQjEwIBcNMjIwNDI2MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMD0x +gqJ8AgIMBDAwQjEwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMD0x OzA5BgNVBAMMMkFDTUUgTWF0dGVyIERldmVsIERBQyA1Q0RBOTg5OSBNdmlkOkZG -RjEgTXBpZDowMEIxMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEz6yTm/3VzzhP -RWlPINrL/jB871vqTEwIqz+OYdTL2ooD63jfPEVAygfRHAmrXH7rRPCvNfysZR9u -fQ3qq3cwUaNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0O -BBYEFLwuBooXut+fsp4K0MyphSCJToF/MB8GA1UdIwQYMBaAFHvphboKFu4Zbaob -Axwjc2WrfPXyMAoGCCqGSM49BAMCA0gAMEUCIQCArZaLxQ6DSosIDYSAmcIQtGL7 -zQvLfGtphlF2ECu33QIgI5enn/l7sthJhzCRs2MVsj9S5zJ+Qljr/iHcjyNzb7o= +RjEgTXBpZDowMEIxMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEQH2ucRm/hqeR +1nt1bo5bzvi2DIn+wzNdLJv1HAKA5Vjpee+EKgncP8AeGcJKxslaNa7WiWaAkHTD +6B8Ted3F3qNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0O +BBYEFOQufAT9m/rdPG92JLYQibNoKky2MB8GA1UdIwQYMBaAFBKCzUsr600bgmw2 +QAx8Sb/CwWhzMAoGCCqGSM49BAMCA0gAMEUCIBkXbxAMHddR/YBDutOBrEty6MYS +i8roiqoY5ebk5vanAiEA3iKD85I5wgUWapUVb18CSUTdS3U3MgtDmVzczzYZOn8= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/dac-Key.der index 0a62948ead46ed..12ff5b5958725c 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/dac-Key.pem index 02f8e781c18b2f..5d09e6ef60df0b 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIFCtNcGAyI7EYRMnheNNLlQi3FmLSawTR/2NB/kHU0oToAoGCCqGSM49 -AwEHoUQDQgAEz6yTm/3VzzhPRWlPINrL/jB871vqTEwIqz+OYdTL2ooD63jfPEVA -ygfRHAmrXH7rRPCvNfysZR9ufQ3qq3cwUQ== +MHcCAQEEIHEwJ71+uWZJwuc/L5oxm+3JYknUreDQItqDC4j7Pz1qoAoGCCqGSM49 +AwEHoUQDQgAEQH2ucRm/hqeR1nt1bo5bzvi2DIn+wzNdLJv1HAKA5Vjpee+EKgnc +P8AeGcJKxslaNa7WiWaAkHTD6B8Ted3F3g== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/pai-Cert.der index 873f9ac73279c5..60f0ee7a62b607 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/pai-Cert.pem index b790110b9be32d..1b27d13ad0ca2c 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB0zCCAXqgAwIBAgIIWFA9L+I3H8IwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIB1DCCAXqgAwIBAgIIETiV7r4NUBkwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDAwQjEw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATml2V56K3F9tcyE5qim22p/JoHVN3m -yprbSKBM4flsZflC38DNkw0QcUaJHGq7TKXyBq/Zm/fM67Z9WOfMDF6uo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUe+mF -ugoW7hltqhsDHCNzZat89fIwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDRwAwRAIgeUArz/4QljTj6t5P6gENjs7RLMB7SNehG0vq -HHeSmCQCIE+Sl7CggWu/WmtzTx72zB14e0oUqL59IxN1TqDtjn43 +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS3ktACjTInvBol50aM2dGhaeL5zPIG +K3rv2AswajhT6gHIbdgrhjOiK/fNC5z1F0XDv4qDUgCulIOB1GzL4Pa7o2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUEoLN +SyvrTRuCbDZADHxJv8LBaHMwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIgBP8pBh6cJJGNyzsT9DHXN3gDHfgbUtoa7nMQ +hNz3A0oCIQCN0tI8MNY0AWi7C0faH7fmpAzzAgfry2eKDQzKFG3eQA== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/pai-Key.der index 9c55caed8c844c..fe53a3409caa4d 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/pai-Key.pem index 5cd22cfad65c9e..f47bc37d3e8a12 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIBG2VwT0hHszwy3xi8EXAmF28ch3/ZHT1u7ZCz7f31mmoAoGCCqGSM49 -AwEHoUQDQgAE5pdleeitxfbXMhOaopttqfyaB1Td5sqa20igTOH5bGX5Qt/AzZMN -EHFGiRxqu0yl8gav2Zv3zOu2fVjnzAxerg== +MHcCAQEEILwf5fOkdfLDl2gMDLIbKIFt1MyLLqcyCj6Kz6Ym+d0koAoGCCqGSM49 +AwEHoUQDQgAEt5LQAo0yJ7waJedGjNnRoWni+czyBit679gLMGo4U+oByG3YK4Yz +oiv3zQuc9RdFw7+Kg1IArpSDgdRsy+D2uw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/test_case_vector.json index 38b2eee93921dc..83efc4e8be7ecf 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_01/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Fallback VID and PID encoding example from spec: valid and recommended since easily human-readable", "is_success_case": "true", - "dac_cert": "308201db30820181a003020102020874f4b446bcbd75db300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303432363030303030305a180f39393939313233313233353935395a303d313b303906035504030c3241434d45204d617474657220446576656c20444143203543444139383939204d7669643a46464631204d7069643a303042313059301306072a8648ce3d020106082a8648ce3d03010703420004cfac939bfdd5cf384f45694f20dacbfe307cef5bea4c4c08ab3f8e61d4cbda8a03eb78df3c4540ca07d11c09ab5c7eeb44f0af35fcac651f6e7d0deaab773051a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414bc2e068a17badf9fb29e0ad0cca98520894e817f301f0603551d230418301680147be985ba0a16ee196daa1b031c237365ab7cf5f2300a06082a8648ce3d040302034800304502210080ad968bc50e834a8b080d848099c210b462fbcd0bcb7c6b69865176102bb7dd02202397a79ff97bb2d849873091b36315b23f52e7327e4258ebfe21dc8f23736fba", - "pai_cert": "308201d33082017aa003020102020858503d2fe2371fc2300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004e6976579e8adc5f6d732139aa29b6da9fc9a0754dde6ca9adb48a04ce1f96c65f942dfc0cd930d107146891c6abb4ca5f206afd99bf7ccebb67d58e7cc0c5eaea366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604147be985ba0a16ee196daa1b031c237365ab7cf5f2301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020347003044022079402bcffe109634e3eade4fea010d8eced12cc07b48d7a11b4bea1c7792982402204f9297b0a0816bbf5a6b734f1ef6cc1d787b4a14a8be7d2313754ea0ed8e7e37", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450220054b0fce684c80b8b6b2d03019c907c446b13542d6c90dbf6252ce7887e63145022100a1d0d38f357e6be72a6a90704d60be111b64438f4bab0f6de385a9650f4ca3d0", - "dac_private_key": "50ad35c180c88ec461132785e34d2e5422dc598b49ac1347fd8d07f907534a13", - "dac_public_key": "04cfac939bfdd5cf384f45694f20dacbfe307cef5bea4c4c08ab3f8e61d4cbda8a03eb78df3c4540ca07d11c09ab5c7eeb44f0af35fcac651f6e7d0deaab773051" + "dac_cert": "308201db30820181a00302010202083b35496d93009d58300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303532373030303030305a180f39393939313233313233353935395a303d313b303906035504030c3241434d45204d617474657220446576656c20444143203543444139383939204d7669643a46464631204d7069643a303042313059301306072a8648ce3d020106082a8648ce3d03010703420004407dae7119bf86a791d67b756e8e5bcef8b60c89fec3335d2c9bf51c0280e558e979ef842a09dc3fc01e19c24ac6c95a35aed68966809074c3e81f1379ddc5dea360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414e42e7c04fd9bfadd3c6f7624b61089b3682a4cb6301f0603551d230418301680141282cd4b2beb4d1b826c36400c7c49bfc2c16873300a06082a8648ce3d0403020348003045022019176f100c1dd751fd8043bad381ac4b72e8c6128bcae88aaa18e5e6e4e6f6a7022100de2283f39239c205166a95156f5f024944dd4b7537320b43995cdccf36193a7f", + "pai_cert": "308201d43082017aa0030201020208113895eebe0d5019300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004b792d0028d3227bc1a25e7468cd9d1a169e2f9ccf2062b7aefd80b306a3853ea01c86dd82b8633a22bf7cd0b9cf51745c3bf8a835200ae948381d46ccbe0f6bba366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604141282cd4b2beb4d1b826c36400c7c49bfc2c16873301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022004ff29061e9c24918dcb3b13f431d73778031df81b52da1aee731084dcf7034a0221008dd2d23c30d6340168bb0b47da1fb7e6a40cf30207ebcb678a0d0cca146dde40", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502206f15931bddc87a10ea25079567a08c72ee0c1f1b5479165a30f1142a40729307022100e4451639b4b1b61458f1a0f875a45c76ca468c7fff805b4fb1af6389cd52d866", + "dac_private_key": "713027bd7eb96649c2e73f2f9a319bedc96249d4ade0d022da830b88fb3f3d6a", + "dac_public_key": "04407dae7119bf86a791d67b756e8e5bcef8b60c89fec3335d2c9bf51c0280e558e979ef842a09dc3fc01e19c24ac6c95a35aed68966809074c3e81f1379ddc5de" } diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/cd.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/cd.der index b8a4a36688658d..bb2c403d257d70 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/cd.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/dac-Cert.der index f606ba35e187b2..46dac31321789f 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/dac-Cert.pem index 2c495ce8ed52c1..820d1e76bd78ab 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB2zCCAYGgAwIBAgIIcWt046B6dY8wCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB3DCCAYGgAwIBAgIIIdYeWvg+mJMwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDAwQjEwIBcNMjIwNDI2MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMD0x +gqJ8AgIMBDAwQjEwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMD0x OzA5BgNVBAMMMkFDTUUgTWF0dGVyIERldmVsIERBQyA1Q0RBOTg5OSBNcGlkOjAw -QjEgTXZpZDpGRkYxMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEup96tuztjhpo -GEZ0F7hZArwPHcKpRs5vEVWu0V6MtHUZjIqBaXFu4KVg8dvvwuQC8okw/u2ebs/z -/Idi3rdCLKNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0O -BBYEFEmQRNJEn9rv2u+XcqJ6ttVmo/PMMB8GA1UdIwQYMBaAFBKIIIWMqIRSnfMZ -RZTWvrO1bMsYMAoGCCqGSM49BAMCA0gAMEUCIQCZ91y2O+l3L6gVG1Saeky4Ioie -Q+R6SaABPvLZvlKPYQIgFyiFACrFRAfqY5jNEI+1wYN2HlBrutQNR9ymQfrFYrY= +QjEgTXZpZDpGRkYxMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEPkw/CJjJvnsS +KjB9pdZ3MVOpQtQkTPc8y+nmLoqZ3OttDMyb9QaQuf6D7n4W2LmXjtwO3hrnfivx +ByLWX3qhsKNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0O +BBYEFNDVnv+6jA8GFpkuLdw5lw6y7S5nMB8GA1UdIwQYMBaAFJI64dxkATrx/V3x +6Ni35dD1J3SSMAoGCCqGSM49BAMCA0kAMEYCIQCiPutDrAvH5u7bUEiqfnuQl8Bw +F8/pKctRO33gWIjgKwIhAOcuDbX387UoPstD0nbSAaeWnAZaeLrQk2gPOdpSvGHM -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/dac-Key.der index 8c305c44f62d69..cc345177bf4a23 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/dac-Key.pem index aa569c8eb89f4e..ed5fc1519c2728 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIPzYraIXm6aylamQGo9lDORz+kaq6/WwKDlzgI9Fw1xioAoGCCqGSM49 -AwEHoUQDQgAEup96tuztjhpoGEZ0F7hZArwPHcKpRs5vEVWu0V6MtHUZjIqBaXFu -4KVg8dvvwuQC8okw/u2ebs/z/Idi3rdCLA== +MHcCAQEEIGqO6QNrIlVbv2PCsuCPOhBoEgVPMADqzq+gFK8RVOieoAoGCCqGSM49 +AwEHoUQDQgAEPkw/CJjJvnsSKjB9pdZ3MVOpQtQkTPc8y+nmLoqZ3OttDMyb9QaQ +uf6D7n4W2LmXjtwO3hrnfivxByLWX3qhsA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/pai-Cert.der index 8ab81ac300ff01..f7e4d08a8650e1 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/pai-Cert.pem index 58406552a4b030..aa4c736c6db6f1 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIBmpOBBg+jfswCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIB1DCCAXqgAwIBAgIIImiUPDZfeAEwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDAwQjEw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATFgsU94K3KJPEYznPeK3ywYrb+W+Hv -DKwZ6MHq230EtLtkumY013cQRyLQ17+POWiysdgfAFV4r/Bpbbf6tKqFo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUEogg -hYyohFKd8xlFlNa+s7VsyxgwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIgEg7OkS1JuwsGBCCbCaPuDGltuxNmKq7xJfGk -y/iOeW0CIQDpvrUl3eGmbx3vaNU6Zo9bXj4vxhGERw7p6WXhHe2UKQ== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQo5RbvNKPYZ17cbRjzthEm9ry1qgcc +2qdMLt+OJnNFJX4gPvmR4yFZqBm2ofD/hvtoQ05joIEu5dsqvOQjn1Ono2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUkjrh +3GQBOvH9XfHo2Lfl0PUndJIwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIhAOoz97ze7ryqVfqbcNtftLOsxRxp7bzydPra +xJoM9h3UAiAK/zWYMvno4OCwgL1Pr+i7jE784Xv+dLbG+uhhfoAfBA== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/pai-Key.der index a131dd9a3763da..b711afd3910cab 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/pai-Key.pem index ce0b584fc2d556..2536d1af962820 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIK+LtT8cDUNT7JTngN+b0RMpaX/8WnJw3MrtgGsg0hFfoAoGCCqGSM49 -AwEHoUQDQgAExYLFPeCtyiTxGM5z3it8sGK2/lvh7wysGejB6tt9BLS7ZLpmNNd3 -EEci0Ne/jzlosrHYHwBVeK/waW23+rSqhQ== +MHcCAQEEINob/Eh108VY2xbqe/ucQbh9bXOWoL8WGJ99E2p6c3ODoAoGCCqGSM49 +AwEHoUQDQgAEKOUW7zSj2Gde3G0Y87YRJva8taoHHNqnTC7fjiZzRSV+ID75keMh +WagZtqHw/4b7aENOY6CBLuXbKrzkI59Tpw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/test_case_vector.json index 51f4b4bd48aa55..3db487ecb0dd47 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_02/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Fallback VID and PID encoding example from spec: valid and recommended since easily human-readable", "is_success_case": "true", - "dac_cert": "308201db30820181a0030201020208716b74e3a07a758f300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303432363030303030305a180f39393939313233313233353935395a303d313b303906035504030c3241434d45204d617474657220446576656c20444143203543444139383939204d7069643a30304231204d7669643a464646313059301306072a8648ce3d020106082a8648ce3d03010703420004ba9f7ab6eced8e1a6818467417b85902bc0f1dc2a946ce6f1155aed15e8cb475198c8a8169716ee0a560f1dbefc2e402f28930feed9e6ecff3fc8762deb7422ca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414499044d2449fdaefdaef9772a27ab6d566a3f3cc301f0603551d23041830168014128820858ca884529df3194594d6beb3b56ccb18300a06082a8648ce3d040302034800304502210099f75cb63be9772fa8151b549a7a4cb822889e43e47a49a0013ef2d9be528f610220172885002ac54407ea6398cd108fb5c183761e506bbad40d47dca641fac562b6", - "pai_cert": "308201d43082017aa0030201020208066a4e04183e8dfb300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004c582c53de0adca24f118ce73de2b7cb062b6fe5be1ef0cac19e8c1eadb7d04b4bb64ba6634d777104722d0d7bf8f3968b2b1d81f005578aff0696db7fab4aa85a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414128820858ca884529df3194594d6beb3b56ccb18301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203480030450220120ece912d49bb0b0604209b09a3ee0c696dbb13662aaef125f1a4cbf88e796d022100e9beb525dde1a66f1def68d53a668f5b5e3e2fc61184470ee9e965e11ded9429", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450220345c3dbbc19406a12c002abe2f9fe71a252b415deb8455ec96a2eb5147844321022100c6b6b777baf06eae6fe8def417d179ab41e954b4ada9bc2e934ebef79afb937d", - "dac_private_key": "fcd8ada2179ba6b295a9901a8f650ce473fa46aaebf5b0283973808f45c35c62", - "dac_public_key": "04ba9f7ab6eced8e1a6818467417b85902bc0f1dc2a946ce6f1155aed15e8cb475198c8a8169716ee0a560f1dbefc2e402f28930feed9e6ecff3fc8762deb7422c" + "dac_cert": "308201dc30820181a003020102020821d61e5af83e9893300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303532373030303030305a180f39393939313233313233353935395a303d313b303906035504030c3241434d45204d617474657220446576656c20444143203543444139383939204d7069643a30304231204d7669643a464646313059301306072a8648ce3d020106082a8648ce3d030107034200043e4c3f0898c9be7b122a307da5d6773153a942d4244cf73ccbe9e62e8a99dceb6d0ccc9bf50690b9fe83ee7e16d8b9978edc0ede1ae77e2bf10722d65f7aa1b0a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414d0d59effba8c0f0616992e2ddc39970eb2ed2e67301f0603551d23041830168014923ae1dc64013af1fd5df1e8d8b7e5d0f5277492300a06082a8648ce3d0403020349003046022100a23eeb43ac0bc7e6eedb5048aa7e7b9097c07017cfe929cb513b7de05888e02b022100e72e0db5f7f3b5283ecb43d276d201a7969c065a78bad093680f39da52bc61cc", + "pai_cert": "308201d43082017aa00302010202082268943c365f7801300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d0301070342000428e516ef34a3d8675edc6d18f3b61126f6bcb5aa071cdaa74c2edf8e267345257e203ef991e32159a819b6a1f0ff86fb68434e63a0812ee5db2abce4239f53a7a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414923ae1dc64013af1fd5df1e8d8b7e5d0f5277492301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100ea33f7bcdeeebcaa55fa9b70db5fb4b3acc51c69edbcf274fadac49a0cf61dd402200aff359832f9e8e0e0b080bd4fafe8bb8c4efce17bfe74b6c6fae8617e801f04", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022074247aba404142c26d843f28e7ec34ab2326f49c492f87e14640ec452d79ac420221009173791a1a716c12e2a324ee323410f191dbce5c46b4f0a7868da1294a318e6a", + "dac_private_key": "6a8ee9036b22555bbf63c2b2e08f3a106812054f3000eaceafa014af1154e89e", + "dac_public_key": "043e4c3f0898c9be7b122a307da5d6773153a942d4244cf73ccbe9e62e8a99dceb6d0ccc9bf50690b9fe83ee7e16d8b9978edc0ede1ae77e2bf10722d65f7aa1b0" } diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/cd.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/cd.der index 0ac685735a70bf..366eac18105acd 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/cd.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/dac-Cert.der index 0560f3369f7534..50fb8acc27ca41 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/dac-Cert.pem index aeed1ce6fb1f0c..43ee1e16f37065 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB2zCCAYGgAwIBAgIIfcV7AozYTBYwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB2zCCAYGgAwIBAgIISnTFXxoHKbYwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDAwQjEwIBcNMjIwNDI2MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMD0x +gqJ8AgIMBDAwQjEwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMD0x OzA5BgNVBAMMMk1waWQ6MDBCMSxBQ01FIE1hdHRlciBEZXZlbCBEQUMgNUNEQTk4 -OTksTXZpZDpGRkYxMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEJsjqG9/yIwut -avjqeNag7EUxyO43pmIMhsXMD61uyldNZb37OcjQ7SA5jJlHRN9Ze4ECG2UFH8/x -Tl0AMvSo56NgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0O -BBYEFD8SIzP2fkVDnNLrU/30pfp2S8qHMB8GA1UdIwQYMBaAFG7NV6Qms1ks4tFO -xv5FdMoGeXBmMAoGCCqGSM49BAMCA0gAMEUCIB9KVJzOufN5z2Lxpnwkzug6egMJ -iIYDUfHPWtD/uZaZAiEA+BTBBn48xeZtoFHcVItXZzU+3ncXJ1g8GBKjjhNrL+E= +OTksTXZpZDpGRkYxMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEhp5Afo7BOZyq +XqJ0ig21e/R+54P6C07jpkVuQLRmC79Fr7P/Sta96oNlbzLxQ55MNXeLMSrijSon +YbgD6GXUhqNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0O +BBYEFMI/6wxB0lU62JlN6Egkl/xHNlpPMB8GA1UdIwQYMBaAFNT6CJryYs886wkP ++L2JN3g6T5qTMAoGCCqGSM49BAMCA0gAMEUCIChh10VzgVm9DMtvB+YkrjoTsEor +XJrDj3sxzB1Qr9QcAiEAz+wJaSgWYpJRQfbvyI9pHmsV0L3mDx5Mt1Vyv2W/tNA= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/dac-Key.der index 773a58fcd13e8b..21ccba5c0f291a 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/dac-Key.pem index cf2d56b99e1786..2ab4d67b2614cd 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIBV6oZYC8xxNB84Uek1QPJLrNQkOg4sDwuj7B4529+5VoAoGCCqGSM49 -AwEHoUQDQgAEJsjqG9/yIwutavjqeNag7EUxyO43pmIMhsXMD61uyldNZb37OcjQ -7SA5jJlHRN9Ze4ECG2UFH8/xTl0AMvSo5w== +MHcCAQEEIAa6Tdng9kkpJmALZH/AXAws0DOJ4pNk8F8l0qNbGQBYoAoGCCqGSM49 +AwEHoUQDQgAEhp5Afo7BOZyqXqJ0ig21e/R+54P6C07jpkVuQLRmC79Fr7P/Sta9 +6oNlbzLxQ55MNXeLMSrijSonYbgD6GXUhg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/pai-Cert.der index 40a583fb36602d..c4fac21c003e6c 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/pai-Cert.pem index 450f945f039fd6..f58d67b290cc63 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB0zCCAXqgAwIBAgIIZULK9IyylrUwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIB1DCCAXqgAwIBAgIILS44DtS4gGgwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDAwQjEw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASAm3ZhwNAAWynq7HpnzgYtFLmJT1DY -IwaCmSubyiBspIi93BWjrQmxfkeiS1upQdey2hLv1URJdpnrgegVxwkqo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUbs1X -pCazWSzi0U7G/kV0ygZ5cGYwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDRwAwRAIgZbQGTVd6WXviQgj18nRj1T1L1vqnMr1+FO1e -IPBpiDUCIBO5yx56NK7MehVvpw3LDz440VKT9NNqMoJNb74EyLlX +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARi9TiJFbZMdfcmZ7VxlJqvx2hKiB+O +La+PQcwK9FvMmNjOX5aZNfC10NabzWnV+vOBODYKQ1JI8b48GL+6xYn6o2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU1PoI +mvJizzzrCQ/4vYk3eDpPmpMwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIhAPlnesVz0tMsHdp6AIDDRMtbgKOw9MEFRko0 +CKMsX9PQAiBCOEpJ5SSPhaMlIgCsou2uc93tO3R2eWcmAgfguidVxA== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/pai-Key.der index 7598b35eac1ada..f609a0a1afb131 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/pai-Key.pem index 92f435619496dc..cdf10607503138 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIAwg9f0a2C3e8smUSzeZGn/C+UWbbM4516qpg00VoTHRoAoGCCqGSM49 -AwEHoUQDQgAEgJt2YcDQAFsp6ux6Z84GLRS5iU9Q2CMGgpkrm8ogbKSIvdwVo60J -sX5HoktbqUHXstoS79VESXaZ64HoFccJKg== +MHcCAQEEICiZpurfQKiLPWCv3MsUHdZxTTWPwPKasHHY+xUGNRSXoAoGCCqGSM49 +AwEHoUQDQgAEYvU4iRW2THX3Jme1cZSar8doSogfji2vj0HMCvRbzJjYzl+WmTXw +tdDWm81p1frzgTg2CkNSSPG+PBi/usWJ+g== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/test_case_vector.json index add65da71a01bd..84a15ad8645e32 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_03/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Fallback VID and PID encoding example from spec: valid example showing that order or separators are not considered at all for the overall validity of the embedded fields", "is_success_case": "true", - "dac_cert": "308201db30820181a00302010202087dc57b028cd84c16300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303432363030303030305a180f39393939313233313233353935395a303d313b303906035504030c324d7069643a303042312c41434d45204d617474657220446576656c204441432035434441393839392c4d7669643a464646313059301306072a8648ce3d020106082a8648ce3d0301070342000426c8ea1bdff2230bad6af8ea78d6a0ec4531c8ee37a6620c86c5cc0fad6eca574d65bdfb39c8d0ed20398c994744df597b81021b65051fcff14e5d0032f4a8e7a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604143f122333f67e45439cd2eb53fdf4a5fa764bca87301f0603551d230418301680146ecd57a426b3592ce2d14ec6fe4574ca06797066300a06082a8648ce3d040302034800304502201f4a549cceb9f379cf62f1a67c24cee83a7a030988860351f1cf5ad0ffb99699022100f814c1067e3cc5e66da051dc548b5767353ede771727583c1812a38e136b2fe1", - "pai_cert": "308201d33082017aa00302010202086542caf48cb296b5300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004809b7661c0d0005b29eaec7a67ce062d14b9894f50d8230682992b9bca206ca488bddc15a3ad09b17e47a24b5ba941d7b2da12efd544497699eb81e815c7092aa366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604146ecd57a426b3592ce2d14ec6fe4574ca06797066301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020347003044022065b4064d577a597be24208f5f27463d53d4bd6faa732bd7e14ed5e20f0698835022013b9cb1e7a34aecc7a156fa70dcb0f3e38d15293f4d36a32824d6fbe04c8b957", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502204a1fcc80841ccbf2e99abaffdded774cd4aa1f6c368bfdc62c9634512925d4cd0221008ab5fc105d34d62034ef824bc91c6f0a45aa56ddbc374eb736c39efd54620828", - "dac_private_key": "157aa19602f31c4d07ce147a4d503c92eb35090e838b03c2e8fb078e76f7ee55", - "dac_public_key": "0426c8ea1bdff2230bad6af8ea78d6a0ec4531c8ee37a6620c86c5cc0fad6eca574d65bdfb39c8d0ed20398c994744df597b81021b65051fcff14e5d0032f4a8e7" + "dac_cert": "308201db30820181a00302010202084a74c55f1a0729b6300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303532373030303030305a180f39393939313233313233353935395a303d313b303906035504030c324d7069643a303042312c41434d45204d617474657220446576656c204441432035434441393839392c4d7669643a464646313059301306072a8648ce3d020106082a8648ce3d03010703420004869e407e8ec1399caa5ea2748a0db57bf47ee783fa0b4ee3a6456e40b4660bbf45afb3ff4ad6bdea83656f32f1439e4c35778b312ae28d2a2761b803e865d486a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414c23feb0c41d2553ad8994de8482497fc47365a4f301f0603551d23041830168014d4fa089af262cf3ceb090ff8bd8937783a4f9a93300a06082a8648ce3d040302034800304502202861d745738159bd0ccb6f07e624ae3a13b04a2b5c9ac38f7b31cc1d50afd41c022100cfec0969281662925141f6efc88f691e6b15d0bde60f1e4cb75572bf65bfb4d0", + "pai_cert": "308201d43082017aa00302010202082d2e380ed4b88068300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d0301070342000462f5388915b64c75f72667b571949aafc7684a881f8e2daf8f41cc0af45bcc98d8ce5f969935f0b5d0d69bcd69d5faf38138360a435248f1be3c18bfbac589faa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414d4fa089af262cf3ceb090ff8bd8937783a4f9a93301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100f9677ac573d2d32c1dda7a0080c344cb5b80a3b0f4c105464a3408a32c5fd3d0022042384a49e5248f85a3252200aca2edae73dded3b74767967260207e0ba2755c4", + "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100f4343cabd2f0ffb022ebdc949f33e87e844d1b1fd32de0756780d98bc6bfb5bf022100ff2d27474c247a17d5d5d5a435d3e241141c07b6763b88967840faeb3a7907a5", + "dac_private_key": "06ba4dd9e0f6492926600b647fc05c0c2cd03389e29364f05f25d2a35b190058", + "dac_public_key": "04869e407e8ec1399caa5ea2748a0db57bf47ee783fa0b4ee3a6456e40b4660bbf45afb3ff4ad6bdea83656f32f1439e4c35778b312ae28d2a2761b803e865d486" } diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/cd.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/cd.der index 50fbc2ac83ef65..3610377f70b60d 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/cd.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/dac-Cert.der index 0a65c36c0424d6..d011fd3ff16598 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/dac-Cert.pem index 955985e8e72c8f..1b47b8c523e180 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB2jCCAYCgAwIBAgIILGRv43DkAPgwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB2TCCAYCgAwIBAgIITvz6jceslHEwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDAwQjEwIBcNMjIwNDI2MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMDwx +gqJ8AgIMBDAwQjEwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMDwx OjA4BgNVBAMMMUFDTUUgTWF0dGVyIERldmVsIERBQyA1Q0RBOTg5OSBNdmlkOkZG -RjFNcGlkOjAwQjEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAT3EUjjQVzIn90W -IOgMQ4L1HRXz/Q7UOvdPMpNVD4VVnM/fZ5UYcV3eB/WdxHDAsqqtpCUPWcXIJukN -UjEM74D4o2AwXjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4E -FgQUrD/c7h/OEJt7Vv1HNKvjHwU4ppYwHwYDVR0jBBgwFoAUs1a7Y+bn1itUd2SG -13WuY0g6ai0wCgYIKoZIzj0EAwIDSAAwRQIhANolC84D8JVbW/Bg9PiBv09kWZEw -OZyQ/kqPHJBwYgjQAiBjj6ZhY0mw6qB/HjMf7+r+9/ykY8hDrKevtlEsaJ5Vag== +RjFNcGlkOjAwQjEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATHDMZOed/fGhvY +/t66sTqFXVbDglH/284RsE3FJeJmFW/OnmSWJk/vb1bxDpbiTix6KgIBD74/hwD7 +7vmOe5sAo2AwXjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4E +FgQU2G6LH0KUbVgozLzpEQqCRXhSXxowHwYDVR0jBBgwFoAU8RhZ10/cIL0IUOlE +/VEygE2wBbkwCgYIKoZIzj0EAwIDRwAwRAIgJVG3qdlBCEACquifCmpaWI6omEPz +xtd6kjvlFvydaQoCIBxswamJurkfd3iXO3IjQFcA9S3nUEPU5Wn8uFcAmCM8 -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/dac-Key.der index 36433b18ada060..ea3b4ede9b15ab 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/dac-Key.pem index f9adab139ab057..2aa349841e009e 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIHmDfKISyMjZxDlI3PAjI080gYNzA4QH6mgVZZu3hJBpoAoGCCqGSM49 -AwEHoUQDQgAE9xFI40FcyJ/dFiDoDEOC9R0V8/0O1Dr3TzKTVQ+FVZzP32eVGHFd -3gf1ncRwwLKqraQlD1nFyCbpDVIxDO+A+A== +MHcCAQEEIPBx0kZE8x+O9ORy9Idjf2WWmf0nmLeG4VycslqXK9AGoAoGCCqGSM49 +AwEHoUQDQgAExwzGTnnf3xob2P7eurE6hV1Ww4JR/9vOEbBNxSXiZhVvzp5kliZP +729W8Q6W4k4seioCAQ++P4cA++75jnubAA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/pai-Cert.der index 249f1ed8d18d5e..741fb9ef732ec3 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/pai-Cert.pem index 3523d12c9859ee..a05e66764809eb 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB0zCCAXqgAwIBAgIICvhYxwPnvU8wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIB0zCCAXqgAwIBAgIICG7BbhEy8dswCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDAwQjEw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARAYgXQT+b7PWJjOXjpbTn3ZFeOk9Q2 -5izemc0LtRAv/uVfVcsxcVivfQe8aZqJcZ6MZZuqcuMsnUQoeOJCGYl4o2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUs1a7 -Y+bn1itUd2SG13WuY0g6ai0wHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDRwAwRAIgQXThQ+Eu8MTcXGw79QVIhFmKrUXc2n4b+qlK -KnTGuAoCICX1nbV/EDksYO4MWodRGBZB9iFHHsEcsFkJ+RQDDC8l +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQLrJ7s02JpoUuRg0FN8y2q1WMpPbjU +AOaLyAIdMd8H8+LmzV7jPxQLCziekm/Kach6gUGq6DaminUelFphK/V1o2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU8RhZ +10/cIL0IUOlE/VEygE2wBbkwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDRwAwRAIgchKxZf5uNC8O5nt3rH9SNnaetgBVe5X8hq78 +ohKxG18CIFh6cJORlnBLHheAe0CdsL0ECU6wZ/mSTym7uL8KmdS/ -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/pai-Key.der index 628a2b135c68be..80cfe836b82bc8 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/pai-Key.pem index 0dd64c6139f364..7c5a257187ff98 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEII5rLrfhXwY/NJE9iosn9Qj1dTUCUoyIoHSvKhCTegiwoAoGCCqGSM49 -AwEHoUQDQgAEQGIF0E/m+z1iYzl46W0592RXjpPUNuYs3pnNC7UQL/7lX1XLMXFY -r30HvGmaiXGejGWbqnLjLJ1EKHjiQhmJeA== +MHcCAQEEILFzNpOOtmNIGVuiqW8vAafgWPvZ9eIjMvuq7xMv1IXEoAoGCCqGSM49 +AwEHoUQDQgAEC6ye7NNiaaFLkYNBTfMtqtVjKT241ADmi8gCHTHfB/Pi5s1e4z8U +Cws4npJvymnIeoFBqug2pop1HpRaYSv1dQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/test_case_vector.json index 5a8ec99f4f377f..937d17f4c5986a 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_04/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Fallback VID and PID encoding example from spec: valid, but less readable", "is_success_case": "true", - "dac_cert": "308201da30820180a00302010202082c646fe370e400f8300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303432363030303030305a180f39393939313233313233353935395a303c313a303806035504030c3141434d45204d617474657220446576656c20444143203543444139383939204d7669643a464646314d7069643a303042313059301306072a8648ce3d020106082a8648ce3d03010703420004f71148e3415cc89fdd1620e80c4382f51d15f3fd0ed43af74f3293550f85559ccfdf679518715dde07f59dc470c0b2aaada4250f59c5c826e90d52310cef80f8a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414ac3fdcee1fce109b7b56fd4734abe31f0538a696301f0603551d23041830168014b356bb63e6e7d62b54776486d775ae63483a6a2d300a06082a8648ce3d0403020348003045022100da250bce03f0955b5bf060f4f881bf4f64599130399c90fe4a8f1c90706208d00220638fa6616349b0eaa07f1e331fefeafef7fca463c843aca7afb6512c689e556a", - "pai_cert": "308201d33082017aa00302010202080af858c703e7bd4f300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004406205d04fe6fb3d62633978e96d39f764578e93d436e62cde99cd0bb5102ffee55f55cb317158af7d07bc699a89719e8c659baa72e32c9d442878e242198978a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414b356bb63e6e7d62b54776486d775ae63483a6a2d301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402204174e143e12ef0c4dc5c6c3bf5054884598aad45dcda7e1bfaa94a2a74c6b80a022025f59db57f10392c60ee0c5a8751181641f621471ec11cb05909f914030c2f25", - "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100ff607ab0a0b125084b4144a2f0d7cb660337199c08dc5e34690d485a8264612b022100edf4453a9facc3f72df48c3cbdcbc8d57d24e2a208936b34ec26f973507ada00", - "dac_private_key": "79837ca212c8c8d9c43948dcf023234f34818373038407ea6815659bb7849069", - "dac_public_key": "04f71148e3415cc89fdd1620e80c4382f51d15f3fd0ed43af74f3293550f85559ccfdf679518715dde07f59dc470c0b2aaada4250f59c5c826e90d52310cef80f8" + "dac_cert": "308201d930820180a00302010202084efcfa8dc7ac9471300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303532373030303030305a180f39393939313233313233353935395a303c313a303806035504030c3141434d45204d617474657220446576656c20444143203543444139383939204d7669643a464646314d7069643a303042313059301306072a8648ce3d020106082a8648ce3d03010703420004c70cc64e79dfdf1a1bd8fedebab13a855d56c38251ffdbce11b04dc525e266156fce9e6496264fef6f56f10e96e24e2c7a2a02010fbe3f8700fbeef98e7b9b00a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414d86e8b1f42946d5828ccbce9110a824578525f1a301f0603551d23041830168014f11859d74fdc20bd0850e944fd5132804db005b9300a06082a8648ce3d040302034700304402202551b7a9d941084002aae89f0a6a5a588ea89843f3c6d77a923be516fc9d690a02201c6cc1a989bab91f7778973b7223405700f52de75043d4e569fcb8570098233c", + "pai_cert": "308201d33082017aa0030201020208086ec16e1132f1db300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200040bac9eecd36269a14b9183414df32daad563293db8d400e68bc8021d31df07f3e2e6cd5ee33f140b0b389e926fca69c87a8141aae836a68a751e945a612bf575a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414f11859d74fdc20bd0850e944fd5132804db005b9301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402207212b165fe6e342f0ee67b77ac7f5236769eb600557b95fc86aefca212b11b5f0220587a70939196704b1e17807b409db0bd04094eb067f9924f29bbb8bf0a99d4bf", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100ba8e07b0e614a601a72249b8e9d487d9100cf102dd0e6b19ef5f702c3ac7d67d02203d4bc4f3cf156b9db430bec8de0a72f0c59c944dbe131fdd99d744d6be05c239", + "dac_private_key": "f071d24644f31f8ef4e472f487637f659699fd2798b786e15c9cb25a972bd006", + "dac_public_key": "04c70cc64e79dfdf1a1bd8fedebab13a855d56c38251ffdbce11b04dc525e266156fce9e6496264fef6f56f10e96e24e2c7a2a02010fbe3f8700fbeef98e7b9b00" } diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/cd.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/cd.der index 1c186a5ad246d0..834525bc68c47f 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/cd.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/dac-Cert.der index 076fb8b06c6325..bf7c8e304c99dc 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/dac-Cert.pem index 5610a18b2667ec..fcb4aa34d24d61 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB2TCCAX+gAwIBAgIIVZFOc7JrR6QwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB2jCCAX+gAwIBAgIIA9BCyJyshakwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDAwQjEwIBcNMjIwNDI2MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMDsx +gqJ8AgIMBDAwQjEwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMDsx OTA3BgNVBAMMME12aWQ6RkZGMUFDTUUgTWF0dGVyIERldmVsIERBQyA1Q0RBTXBp -ZDowMEIxOTg5OTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABPKBeMj6MMGPyO29 -ogwDZjOhfDK+huko7QwLSA1KpRWJ/I0nd7s0PL8VPcSvDswKE419XrH384MfJWHf -WLSvrM2jYDBeMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQW -BBSi/Xi0b2latNw7baVaF4OgYBeLezAfBgNVHSMEGDAWgBRBX4e27qhQ2YbUmgxQ -mQ4v3u5TBDAKBggqhkjOPQQDAgNIADBFAiB2QipNmX8epK3OPz25lfqFJiA+IDp1 -k0XntCOqfi5giAIhAJWzCOwYIDr03yrXWiHV33cN4T6jNjrQPPtmM1mf110e +ZDowMEIxOTg5OTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABKhvvYvWA82S94Uq +9G6SPA/+g7/s+QAWMsuNa62twYG50tPGlhw03cX3t2Ul3H5GiBw23sk21AyIQOdX +yyiTZ1OjYDBeMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQW +BBQ2ka3t6XlUDtI8A9HMCAEroQt8izAfBgNVHSMEGDAWgBSlW3Kw/bokMjDBoNUz +Lct614OORzAKBggqhkjOPQQDAgNJADBGAiEA0VFeohE8WcAk245XDAZ+eViZs3k5 +AlTqqg6HG3Fa1KYCIQDqdhBAxtpiR5L/6T6oxNHwYDYutn5OrmusULulM/uegQ== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/dac-Key.der index b4237e480a195a..a79774ee317739 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/dac-Key.pem index 7c2a7fb571b0ee..4490bd1e4a0f80 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEICZaOfefCb5B0X2aSGGyJxkwmao6NiegMnD+MEY+2ahpoAoGCCqGSM49 -AwEHoUQDQgAE8oF4yPowwY/I7b2iDANmM6F8Mr6G6SjtDAtIDUqlFYn8jSd3uzQ8 -vxU9xK8OzAoTjX1esffzgx8lYd9YtK+szQ== +MHcCAQEEIF6cxiruqoKBbd4S71Hciw4vZ4KnxgDYSW5c6P2VuA6+oAoGCCqGSM49 +AwEHoUQDQgAEqG+9i9YDzZL3hSr0bpI8D/6Dv+z5ABYyy41rra3BgbnS08aWHDTd +xfe3ZSXcfkaIHDbeyTbUDIhA51fLKJNnUw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/pai-Cert.der index a9687822dc3300..9fa40347022562 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/pai-Cert.pem index 7e2eea662a0a4f..4732604832294e 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIEwkQCswFNUcwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIB1DCCAXqgAwIBAgIIZdBPUl3ZSVcwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDAwQjEw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATx0QQlW0OSYHFhqamUexBnehkBR+i/ -cNGtcA1pQxn+LVHsS+sSDEmZQUiarSL760bHl2KeZKwDt3Xd2AfoOmsso2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUQV+H -tu6oUNmG1JoMUJkOL97uUwQwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIhANoMyLaX/8tXyWnTKxViJ7nCvesjhp/mnnD9 -6Dgj02qGAiBJZSup7jg7LEkSmkQ0RYWaN/bfLKLqFb4d+W2/u0ad+A== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASwrfOiwhX13VM+9Fib4ToYj1tK/+aN +5a5W54aqluA0fHJuSlBSB0qjf20WYtjA+q5R58alnI9Y7uW6s2eUdb5To2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUpVty +sP26JDIwwaDVMy3LeteDjkcwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIhAKcv+dy0H5f8w9BlE625vml5vPokUcd8Sj7G +E+SRQdviAiBn7wDgMDGEGCxWm3rfjpMl3M3oUoDA0mpqku/El54jsA== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/pai-Key.der index ca5f9643896cb8..d5cf113499e5dc 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/pai-Key.pem index 966dc8fdb27ee5..45b9b9699df6e9 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIDqT4MJIUunzunmul/3EXHgyWdvGZGrp08jR6RqCR6huoAoGCCqGSM49 -AwEHoUQDQgAE8dEEJVtDkmBxYamplHsQZ3oZAUfov3DRrXANaUMZ/i1R7EvrEgxJ -mUFImq0i++tGx5dinmSsA7d13dgH6DprLA== +MHcCAQEEIJA8ljo6Z9c6UMq9cVQeMr1ji607Wj1V3F6JKtcV8U94oAoGCCqGSM49 +AwEHoUQDQgAEsK3zosIV9d1TPvRYm+E6GI9bSv/mjeWuVueGqpbgNHxybkpQUgdK +o39tFmLYwPquUefGpZyPWO7lurNnlHW+Uw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/test_case_vector.json index c92d0a9f1ed78a..dabdf090c2ee0f 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_05/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Fallback VID and PID encoding example from spec: valid, but highly discouraged, since embedding of substrings within other substrings may be confusing to human readers", "is_success_case": "true", - "dac_cert": "308201d93082017fa003020102020855914e73b26b47a4300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303432363030303030305a180f39393939313233313233353935395a303b3139303706035504030c304d7669643a4646463141434d45204d617474657220446576656c2044414320354344414d7069643a30304231393839393059301306072a8648ce3d020106082a8648ce3d03010703420004f28178c8fa30c18fc8edbda20c036633a17c32be86e928ed0c0b480d4aa51589fc8d2777bb343cbf153dc4af0ecc0a138d7d5eb1f7f3831f2561df58b4afaccda360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414a2fd78b46f695ab4dc3b6da55a1783a060178b7b301f0603551d23041830168014415f87b6eea850d986d49a0c50990e2fdeee5304300a06082a8648ce3d0403020348003045022076422a4d997f1ea4adce3f3db995fa8526203e203a759345e7b423aa7e2e608802210095b308ec18203af4df2ad75a21d5df770de13ea3363ad03cfb6633599fd75d1e", - "pai_cert": "308201d43082017aa00302010202081309100acc053547300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004f1d104255b4392607161a9a9947b10677a190147e8bf70d1ad700d694319fe2d51ec4beb120c499941489aad22fbeb46c797629e64ac03b775ddd807e83a6b2ca366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414415f87b6eea850d986d49a0c50990e2fdeee5304301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100da0cc8b697ffcb57c969d32b156227b9c2bdeb23869fe69e70fde83823d36a86022049652ba9ee383b2c49129a443445859a37f6df2ca2ea15be1df96dbfbb469df8", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022059ae2ad41ed6d56f56b6a8a90a2a56402fa1ac28f203a05fb74a185976b76dc002210098e46fee9ec5665b370cb0396aa236dd1c7eb3237b0a39e00b64e39d0b4aea77", - "dac_private_key": "265a39f79f09be41d17d9a4861b227193099aa3a3627a03270fe30463ed9a869", - "dac_public_key": "04f28178c8fa30c18fc8edbda20c036633a17c32be86e928ed0c0b480d4aa51589fc8d2777bb343cbf153dc4af0ecc0a138d7d5eb1f7f3831f2561df58b4afaccd" + "dac_cert": "308201da3082017fa003020102020803d042c89cac85a9300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303532373030303030305a180f39393939313233313233353935395a303b3139303706035504030c304d7669643a4646463141434d45204d617474657220446576656c2044414320354344414d7069643a30304231393839393059301306072a8648ce3d020106082a8648ce3d03010703420004a86fbd8bd603cd92f7852af46e923c0ffe83bfecf9001632cb8d6badadc181b9d2d3c6961c34ddc5f7b76525dc7e46881c36dec936d40c8840e757cb28936753a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604143691adede979540ed23c03d1cc08012ba10b7c8b301f0603551d23041830168014a55b72b0fdba243230c1a0d5332dcb7ad7838e47300a06082a8648ce3d0403020349003046022100d1515ea2113c59c024db8e570c067e795899b379390254eaaa0e871b715ad4a6022100ea761040c6da624792ffe93ea8c4d1f060362eb67e4eae6bac50bba533fb9e81", + "pai_cert": "308201d43082017aa003020102020865d04f525dd94957300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004b0adf3a2c215f5dd533ef4589be13a188f5b4affe68de5ae56e786aa96e0347c726e4a5052074aa37f6d1662d8c0faae51e7c6a59c8f58eee5bab3679475be53a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414a55b72b0fdba243230c1a0d5332dcb7ad7838e47301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100a72ff9dcb41f97fcc3d06513adb9be6979bcfa2451c77c4a3ec613e49141dbe2022067ef00e0303184182c569b7adf8e9325dccde85280c0d26a6a92efc4979e23b0", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502203a47bc6efa133d0abb42dbbfc9a92586a4a2da3f1a9a99d7c3fe3a021ea6a6270221009587f37f2b2d32a9131b4baf89291eb5dee0448b5fe019c07e278c9298383d22", + "dac_private_key": "5e9cc62aeeaa82816dde12ef51dc8b0e2f6782a7c600d8496e5ce8fd95b80ebe", + "dac_public_key": "04a86fbd8bd603cd92f7852af46e923c0ffe83bfecf9001632cb8d6badadc181b9d2d3c6961c34ddc5f7b76525dc7e46881c36dec936d40c8840e757cb28936753" } diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/cd.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/cd.der index 408f1eb013d317..18628b3e3f73da 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/cd.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/dac-Cert.der index 72b2ab18b0c2f8..1386269047ba3c 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/dac-Cert.pem index b2f520841d075a..abe94213619c88 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB2zCCAYCgAwIBAgIISqOfCGlGrhMwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB2zCCAYCgAwIBAgIIHqEGKCZEjt8wCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDAwQjEwIBcNMjIwNDI2MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMDwx +gqJ8AgIMBDAwQjEwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMDwx OjA4BgNVBAMMMUFDTUUgTWF0dGVyIERldmVsIERBQyA1Q0RBOTg5OSBNdmlkOkZG -MSBNcGlkOjAwQjEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASRiWMk9Xt/66Ti -U6uCRE0rlw8M4edvSOkcqt+uAdQC/stSBF1BkjeJnNcMgJOYDmHQ4/OHnr7Cik57 -doF2nq6Eo2AwXjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4E -FgQU0LO6FfuUI6294hHNNK+2WkZO6RUwHwYDVR0jBBgwFoAU+d1AfzG/FUROmmhd -3VlyUPxc98UwCgYIKoZIzj0EAwIDSQAwRgIhAPn1YaRQyJk5tRmHMNtY/lPdciT2 -v2n6pMIrEZhakDXuAiEAvTrq88dP1vd+5Oaabw2fiYBPatdTLFk4oPH97QUqSFQ= +MSBNcGlkOjAwQjEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASWiXXUBEogF1jb +vdT5RqaFF3JKCBTX+GN59RsvquU7TkuY6Mc8LdFCdwu5Os5NMXy4txWd6fTwfkC2 +rtmjSL4po2AwXjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4E +FgQU6JqrRSSPlUKyaC7VnHHxRZY8FIYwHwYDVR0jBBgwFoAUIB7X+3FHJbpVQg5/ +TZPkRM2MzhswCgYIKoZIzj0EAwIDSQAwRgIhAN1tFsNbeBM0DmifDVBsj1kqfPwE +JLZTln42kDNC/bGoAiEA7oX4VS9affx1aRi7w/eScjyOdPJOeerSQx7cKDYUxe0= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/dac-Key.der index 43bdf9d05d8dee..fc8158672ff67e 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/dac-Key.pem index 03f208c84fcb55..c14f53ab01525b 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIDvEj+T2k5mkCZL0sgBMcDhRillT9Gq9atBTnZUY2JMhoAoGCCqGSM49 -AwEHoUQDQgAEkYljJPV7f+uk4lOrgkRNK5cPDOHnb0jpHKrfrgHUAv7LUgRdQZI3 -iZzXDICTmA5h0OPzh56+wopOe3aBdp6uhA== +MHcCAQEEIA+3xFeX8pcPw319z/8jlqmBW3SPsQy+KOYoT3akOC2HoAoGCCqGSM49 +AwEHoUQDQgAElol11ARKIBdY273U+UamhRdySggU1/hjefUbL6rlO05LmOjHPC3R +QncLuTrOTTF8uLcVnen08H5Atq7Zo0i+KQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/pai-Cert.der index 96c8e919cca07d..10c2746615b5d0 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/pai-Cert.pem index 917fcb1ee94a9d..42f4e8aeb8e230 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIcvnNHlK0IuUwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIB1TCCAXqgAwIBAgIIFqLPvZmMAgYwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDAwQjEw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAT9uPJsWxYwrcpS0mtcc7s3DwRDEZfR -MUOIg6lqulLJ2bzQeI4BtZX6JYvhAjlT0imucW9dBiDIWi/SN4bxzy5go2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU+d1A -fzG/FUROmmhd3VlyUPxc98UwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIhAJJoOjIa3djpK+12L0yQYATFgM2KLF4sFDkM -7WkYocMcAiBStcF5EaYWA7SrQLcsT+swA4e8OOl5BFQSu7JZWbkoxw== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS3bpAKmbunzCXVnGqYWNqb5eScKJRR +jst2qwltCs0l3/NN3nrvwZjQ2Fo9cIunkirze0/wtFKbLgHlUgxafmg9o2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUIB7X ++3FHJbpVQg5/TZPkRM2MzhswHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSQAwRgIhAI/ZEDpADHnTpayOYZR22ZlhRFTPwgU5HwOg +YG38mbErAiEA2kIM3CJPsXL8fJHRXTUC12Mdvvq7rUQ7hN2HUOX1AWc= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/pai-Key.der index 2ac2530392f257..0d515fbdc4e064 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/pai-Key.pem index c39df828b4ccfd..f8ca08cd407fbd 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEILKvUy9sTzpZox/SNY6a2HuB4LlRqQGB6ulfP0EQnJbPoAoGCCqGSM49 -AwEHoUQDQgAE/bjybFsWMK3KUtJrXHO7Nw8EQxGX0TFDiIOparpSydm80HiOAbWV -+iWL4QI5U9IprnFvXQYgyFov0jeG8c8uYA== +MHcCAQEEIABeLLAql3Dhr9j5SbfUlotxyR7VVM/us1+1BqGK6CRjoAoGCCqGSM49 +AwEHoUQDQgAEt26QCpm7p8wl1ZxqmFjam+XknCiUUY7LdqsJbQrNJd/zTd5678GY +0NhaPXCLp5Iq83tP8LRSmy4B5VIMWn5oPQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/test_case_vector.json index c4ae675a7367ca..402970a14e5b5a 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_06/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Fallback VID and PID encoding example from spec: invalid, since substring following Mvid: is not exactly 4 uppercase hexadecimal digits", "is_success_case": "false", - "dac_cert": "308201db30820180a00302010202084aa39f086946ae13300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303432363030303030305a180f39393939313233313233353935395a303c313a303806035504030c3141434d45204d617474657220446576656c20444143203543444139383939204d7669643a464631204d7069643a303042313059301306072a8648ce3d020106082a8648ce3d0301070342000491896324f57b7feba4e253ab82444d2b970f0ce1e76f48e91caadfae01d402fecb52045d419237899cd70c8093980e61d0e3f3879ebec28a4e7b7681769eae84a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414d0b3ba15fb9423adbde211cd34afb65a464ee915301f0603551d23041830168014f9dd407f31bf15444e9a685ddd597250fc5cf7c5300a06082a8648ce3d0403020349003046022100f9f561a450c89939b5198730db58fe53dd7224f6bf69faa4c22b11985a9035ee022100bd3aeaf3c74fd6f77ee4e69a6f0d9f89804f6ad7532c5938a0f1fded052a4854", - "pai_cert": "308201d43082017aa003020102020872f9cd1e52b422e5300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004fdb8f26c5b1630adca52d26b5c73bb370f04431197d131438883a96aba52c9d9bcd0788e01b595fa258be1023953d229ae716f5d0620c85a2fd23786f1cf2e60a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414f9dd407f31bf15444e9a685ddd597250fc5cf7c5301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502210092683a321addd8e92bed762f4c906004c580cd8a2c5e2c14390ced6918a1c31c022052b5c17911a61603b4ab40b72c4feb300387bc38e979045412bbb25959b928c7", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450220516fb9c4ca69b1c6ce66887997b13c642c98e665a14461ff574df98d5c1c97ed022100ae1891a958893e44ae286511b311f7581d6d747769b0d77e28e65a02a6d7fc35", - "dac_private_key": "3bc48fe4f69399a40992f4b2004c7038518a5953f46abd6ad0539d9518d89321", - "dac_public_key": "0491896324f57b7feba4e253ab82444d2b970f0ce1e76f48e91caadfae01d402fecb52045d419237899cd70c8093980e61d0e3f3879ebec28a4e7b7681769eae84" + "dac_cert": "308201db30820180a00302010202081ea1062826448edf300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303532373030303030305a180f39393939313233313233353935395a303c313a303806035504030c3141434d45204d617474657220446576656c20444143203543444139383939204d7669643a464631204d7069643a303042313059301306072a8648ce3d020106082a8648ce3d03010703420004968975d4044a201758dbbdd4f946a68517724a0814d7f86379f51b2faae53b4e4b98e8c73c2dd142770bb93ace4d317cb8b7159de9f4f07e40b6aed9a348be29a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414e89aab45248f9542b2682ed59c71f145963c1486301f0603551d23041830168014201ed7fb714725ba55420e7f4d93e444cd8cce1b300a06082a8648ce3d0403020349003046022100dd6d16c35b7813340e689f0d506c8f592a7cfc0424b653967e36903342fdb1a8022100ee85f8552f5a7dfc756918bbc3f792723c8e74f24e79ead2431edc283614c5ed", + "pai_cert": "308201d53082017aa003020102020816a2cfbd998c0206300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004b76e900a99bba7cc25d59c6a9858da9be5e49c2894518ecb76ab096d0acd25dff34dde7aefc198d0d85a3d708ba7922af37b4ff0b4529b2e01e5520c5a7e683da366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414201ed7fb714725ba55420e7f4d93e444cd8cce1b301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203490030460221008fd9103a400c79d3a5ac8e619476d999614454cfc205391f03a0606dfc99b12b022100da420cdc224fb172fc7c91d15d3502d7631dbefabbad443b84dd8750e5f50167", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100db81169174ad456c5ccd40466029a3f5411daf37c2de57bf8f070fb9c4dab63002207a74ec81ce64ef0b352099a9193ac44127d84ef35abc70f7d75b90f209a25c60", + "dac_private_key": "0fb7c45797f2970fc37d7dcfff2396a9815b748fb10cbe28e6284f76a4382d87", + "dac_public_key": "04968975d4044a201758dbbdd4f946a68517724a0814d7f86379f51b2faae53b4e4b98e8c73c2dd142770bb93ace4d317cb8b7159de9f4f07e40b6aed9a348be29" } diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/cd.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/cd.der index 35ce3c8f73e381..a5b3385fca173d 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/cd.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/dac-Cert.der index 58ba42cae142cc..b995e6231ab8e7 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/dac-Cert.pem index ac2bca3b8a9c30..343f06cf2cac15 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB2jCCAYGgAwIBAgIIbKeuaKF08lgwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB2zCCAYGgAwIBAgIIZRjzUKjNt3QwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDAwQjEwIBcNMjIwNDI2MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMD0x +gqJ8AgIMBDAwQjEwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMD0x OzA5BgNVBAMMMkFDTUUgTWF0dGVyIERldmVsIERBQyA1Q0RBOTg5OSBNdmlkOmZm -ZjEgTXBpZDowMEIxMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEBHO25Gq3qa3q -H5+aIp+SESBHQT5wpicG2+ZrIMcKAYO5hOLZnemEbFAXykCiBViJvNqxW1tPmmgB -Lb0yQvGjcKNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0O -BBYEFLbU8+V+zAYGKxNOf/nQXX4ST9S9MB8GA1UdIwQYMBaAFN5Kdl6IZ0NyJmnU -J9wQczq6XdskMAoGCCqGSM49BAMCA0cAMEQCID9dJ+t0DiL5JaWNWPPqm+GI4lCI -6LMV89Bo08s6xhxtAiBHHmDCPN8GBuWH7BMM7G3SzZhIzG6yp/zLs6nUCL/NjA== +ZjEgTXBpZDowMEIxMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuUZ7Q438KZ/C +2E4fWIGh3w8O3aqWVMty+R2UPRFMyUHS42lWpittbAZaaMb03zow5dnQENJTd0li ++9FYudzsm6NgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0O +BBYEFIH9ScqDp/ev0Nr/L8rVNK0QtideMB8GA1UdIwQYMBaAFPjY6V5krLORbvmb +NG+xDx6OfdWTMAoGCCqGSM49BAMCA0gAMEUCIH6JjKKXnzGeuiYKXGjqQ+EGYIef +px0VDcGoTPKCKdaOAiEAwvzJKOf9oukeO6WfmmUq9otZVUnwPndEGMv85aCL6aw= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/dac-Key.der index af27a14d4725f3..873ce95e792dbb 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/dac-Key.pem index 4e61e9b1cce7e2..275bd3a58049c6 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIN2vTMOSqJjSUKMP7+rGIMv+a9+5yIJuH/2FnSxB+Xw+oAoGCCqGSM49 -AwEHoUQDQgAEBHO25Gq3qa3qH5+aIp+SESBHQT5wpicG2+ZrIMcKAYO5hOLZnemE -bFAXykCiBViJvNqxW1tPmmgBLb0yQvGjcA== +MHcCAQEEICEztKZV/C362cadqo6Gynxj7BrsQN8NNPGndr/jHa28oAoGCCqGSM49 +AwEHoUQDQgAEuUZ7Q438KZ/C2E4fWIGh3w8O3aqWVMty+R2UPRFMyUHS42lWpitt +bAZaaMb03zow5dnQENJTd0li+9FYudzsmw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/pai-Cert.der index 2381513b3e6073..5794663bdbd444 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/pai-Cert.pem index 46bc037ccd9f61..125e6cb289bece 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB0zCCAXqgAwIBAgIIWDwphVBcTAQwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIB1DCCAXqgAwIBAgIIWuvpr16xspIwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDAwQjEw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARBR2fwSoVH9HrVAauutRCld4OkLC/I -NZ9jGsLArEJQXdVWlbLEsCKcD0xcdw9w0ozLi46UaMpJ+NAJuXUFPXofo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU3kp2 -XohnQ3ImadQn3BBzOrpd2yQwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDRwAwRAIgAUsC7NiWCz1xgIgRV4mg4DR2ko5gUFDUqQg9 -pU8gAGkCIEokyYhwIEK08Ix63IlJnRBzixitXdItDglflFNnGuUS +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ98w8m87NKiwMMmMpVmhHv1Tkj2fDo +WdNhDmF8WTjsQroxXRx5HvEx/GqnDLJt1DI5XezR8edV6Ky6/bB7zFuvo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU+Njp +XmSss5Fu+Zs0b7EPHo591ZMwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIgBsrbbL/SVqyHr8IX8YN2F1hiTx+6A1TJMUXm +tlchRvkCIQCrWjv1F+RwNjDM2/Q4LJw7BDpyX/t1vNNtY8aqssTH1w== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/pai-Key.der index d8bc1162ca4e03..98e95be1f1fc33 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/pai-Key.pem index d62339af47b39b..4c0cdd71856f3a 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIDKN2q+K9GdoDXuPd99IrBL6FdaD8zgWiOxtPbWPALK4oAoGCCqGSM49 -AwEHoUQDQgAEQUdn8EqFR/R61QGrrrUQpXeDpCwvyDWfYxrCwKxCUF3VVpWyxLAi -nA9MXHcPcNKMy4uOlGjKSfjQCbl1BT16Hw== +MHcCAQEEIDRlyjgCT6FCtfpb7skRwkaptv6JykCnAgPaQxTbWPLEoAoGCCqGSM49 +AwEHoUQDQgAEPfMPJvOzSosDDJjKVZoR79U5I9nw6FnTYQ5hfFk47EK6MV0ceR7x +MfxqpwyybdQyOV3s0fHnVeisuv2we8xbrw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/test_case_vector.json index d96f20176be9b2..fbd4f875bd7a5a 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_07/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Fallback VID and PID encoding example from spec: invalid, since substring following Mvid: is not exactly 4 uppercase hexadecimal digits", "is_success_case": "false", - "dac_cert": "308201da30820181a00302010202086ca7ae68a174f258300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303432363030303030305a180f39393939313233313233353935395a303d313b303906035504030c3241434d45204d617474657220446576656c20444143203543444139383939204d7669643a66666631204d7069643a303042313059301306072a8648ce3d020106082a8648ce3d030107034200040473b6e46ab7a9adea1f9f9a229f92112047413e70a62706dbe66b20c70a0183b984e2d99de9846c5017ca40a2055889bcdab15b5b4f9a68012dbd3242f1a370a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414b6d4f3e57ecc06062b134e7ff9d05d7e124fd4bd301f0603551d23041830168014de4a765e886743722669d427dc10733aba5ddb24300a06082a8648ce3d040302034700304402203f5d27eb740e22f925a58d58f3ea9be188e25088e8b315f3d068d3cb3ac61c6d0220471e60c23cdf0606e587ec130cec6dd2cd9848cc6eb2a7fccbb3a9d408bfcd8c", - "pai_cert": "308201d33082017aa0030201020208583c2985505c4c04300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004414767f04a8547f47ad501abaeb510a57783a42c2fc8359f631ac2c0ac42505dd55695b2c4b0229c0f4c5c770f70d28ccb8b8e9468ca49f8d009b975053d7a1fa366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414de4a765e886743722669d427dc10733aba5ddb24301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203470030440220014b02ecd8960b3d718088115789a0e03476928e605050d4a9083da54f20006902204a24c988702042b4f08c7adc89499d10738b18ad5dd22d0e095f9453671ae512", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100c2c28f728a012835fe49a96cbcc7794538b5d3d4f5807f23770dd87dcd94022902207c1a32e7bc13812950142f0849ee137c9233e115985a0c6f74ac102174889a21", - "dac_private_key": "ddaf4cc392a898d250a30fefeac620cbfe6bdfb9c8826e1ffd859d2c41f97c3e", - "dac_public_key": "040473b6e46ab7a9adea1f9f9a229f92112047413e70a62706dbe66b20c70a0183b984e2d99de9846c5017ca40a2055889bcdab15b5b4f9a68012dbd3242f1a370" + "dac_cert": "308201db30820181a00302010202086518f350a8cdb774300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303532373030303030305a180f39393939313233313233353935395a303d313b303906035504030c3241434d45204d617474657220446576656c20444143203543444139383939204d7669643a66666631204d7069643a303042313059301306072a8648ce3d020106082a8648ce3d03010703420004b9467b438dfc299fc2d84e1f5881a1df0f0eddaa9654cb72f91d943d114cc941d2e36956a62b6d6c065a68c6f4df3a30e5d9d010d253774962fbd158b9dcec9ba360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041481fd49ca83a7f7afd0daff2fcad534ad10b6275e301f0603551d23041830168014f8d8e95e64acb3916ef99b346fb10f1e8e7dd593300a06082a8648ce3d040302034800304502207e898ca2979f319eba260a5c68ea43e10660879fa71d150dc1a84cf28229d68e022100c2fcc928e7fda2e91e3ba59f9a652af68b595549f03e774418cbfce5a08be9ac", + "pai_cert": "308201d43082017aa00302010202085aebe9af5eb1b292300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200043df30f26f3b34a8b030c98ca559a11efd53923d9f0e859d3610e617c5938ec42ba315d1c791ef131fc6aa70cb26dd432395decd1f1e755e8acbafdb07bcc5bafa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414f8d8e95e64acb3916ef99b346fb10f1e8e7dd593301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022006cadb6cbfd256ac87afc217f183761758624f1fba0354c93145e6b6572146f9022100ab5a3bf517e4703630ccdbf4382c9c3b043a725ffb75bcd36d63c6aab2c4c7d7", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100eb2e7339e5fa623b2ac178dc56a043619450d70dd708b8891eff7fa15e68ebcf02206128bcb23417e9f8c67add6f4bf49cf3dbd547be249a48d253fa5b64490103b7", + "dac_private_key": "2133b4a655fc2dfad9c69daa8e86ca7c63ec1aec40df0d34f1a776bfe31dadbc", + "dac_public_key": "04b9467b438dfc299fc2d84e1f5881a1df0f0eddaa9654cb72f91d943d114cc941d2e36956a62b6d6c065a68c6f4df3a30e5d9d010d253774962fbd158b9dcec9b" } diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/cd.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/cd.der index c15f8b2aefba41..e95bf172cd1e0a 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/cd.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/dac-Cert.der index c0d52b9e219bc8..cfa7bfb3d90f58 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/dac-Cert.pem index 6947252fe4808a..706b0e245697b1 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB2DCCAX+gAwIBAgIIYgS2i2TzvpQwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB2jCCAX+gAwIBAgIIRdc2agcgiA8wCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDAwQjEwIBcNMjIwNDI2MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMDsx +gqJ8AgIMBDAwQjEwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMDsx OTA3BgNVBAMMMEFDTUUgTWF0dGVyIERldmVsIERBQyA1Q0RBOTg5OSBNdmlkOkZG -RjEgTXBpZDpCMTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABD4TQymMOP7bs/cE -zLgOO0gWghCTsUX3yn9NsFQ1sbZckg6myFPa1eirDb3QdMlnJbjWPBZVfJebHADm -+c+kHQCjYDBeMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQW -BBRoI7vtSSFFv8ASAQFP2wbuS4/7bjAfBgNVHSMEGDAWgBSjADSPmqg4M/TBnBMc -lDcq6iYhBTAKBggqhkjOPQQDAgNHADBEAiATWijDknkkazIKD/5xmcVJPlE2jk4G -Jya99sVnOFSB7gIgZaDB6PSrRTVuUOuVqIKsx2/gMiyaxwCbY7uH9yykW/I= +RjEgTXBpZDpCMTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABHgrcjeVyMXlwBt2 +ensnbD6nSsUc4Gsgb2vpqmi1zbetmaKVsF1snUKmcG9MCRZeiH1jTBsgA89Ett6U +aNr9zNqjYDBeMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQW +BBTNzgkdBqaRv/23PGLSttJUWoxojTAfBgNVHSMEGDAWgBSMmj0ENolvSSvBxX5S +xO442+xZNTAKBggqhkjOPQQDAgNJADBGAiEAt04LXs/yjyyfRhYzIB876i0f6GYL +7VD0vsfaNaQG2IwCIQC7uj1JiBhCKR6CKIcEKE9ok9AJFDSuF6drpZkNowZXug== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/dac-Key.der index fd2d508c5b871d..6cf3cb1c2bbd30 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/dac-Key.pem index b823e662025389..cf28ff35f88193 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIPlsiyhfLSz2EEba7Yc4rmpyVOtNS8Iro2084HdfrgvkoAoGCCqGSM49 -AwEHoUQDQgAEPhNDKYw4/tuz9wTMuA47SBaCEJOxRffKf02wVDWxtlySDqbIU9rV -6KsNvdB0yWcluNY8FlV8l5scAOb5z6QdAA== +MHcCAQEEIIEIrk8squUoma4D0iE4TDIr2W7eer0SThfV7G5M1LV9oAoGCCqGSM49 +AwEHoUQDQgAEeCtyN5XIxeXAG3Z6eydsPqdKxRzgayBva+mqaLXNt62ZopWwXWyd +QqZwb0wJFl6IfWNMGyADz0S23pRo2v3M2g== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/pai-Cert.der index 79410716bdfb5b..cf335504861898 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/pai-Cert.pem index 21cd7271464a39..e82b99056d7fa6 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB0zCCAXqgAwIBAgIIBr5QU3nb9aIwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIB1TCCAXqgAwIBAgIIVoWsSomdvwIwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDAwQjEw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASZ05hIjkmREDE31YzhHAqXH8taOt8W -IXQdeNgNyZntae2QYHz54pC/dBL04gWa/t7Fh8Rfiiq5T6G4unTXNqWho2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUowA0 -j5qoODP0wZwTHJQ3KuomIQUwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDRwAwRAIgDZsw1OIeM6VImRk7oGs4Bb0H/yxccXHs7JFX -gSqSNegCIGJ6FHbqw+G51jc8ND5vU9kyh+zwK/iSwJqq1wcy+a8n +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAT3UF1TBtvSByHCglTYGFnBOYELyImA ++x96RDWC8cE1CLYPfgibpWJ7/Nu+K1tY0ObBxa6iM2uOGMp41Y7pzjoeo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUjJo9 +BDaJb0krwcV+UsTuONvsWTUwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSQAwRgIhAImoSTzlsp75m7Y8hvxeV6CCIhI8QE5UhWhP +O+sNdCjSAiEA9F5nJ7Jh2Rau2mhVdMz6pUqbLQWtqyFHhxxcT/LUpEU= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/pai-Key.der index e21a8f788ae27c..203f4759eb1d90 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/pai-Key.pem index 43ce504a082dd9..32e1c5d75da702 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIFdgHrg84ltLDGQPvR3CMmDH6YhnebHHSIIaxMx1ctpEoAoGCCqGSM49 -AwEHoUQDQgAEmdOYSI5JkRAxN9WM4RwKlx/LWjrfFiF0HXjYDcmZ7WntkGB8+eKQ -v3QS9OIFmv7exYfEX4oquU+huLp01zaloQ== +MHcCAQEEIOL7u+tUjos2ym0OyG4edywyRbhcSwgmKFTlW9rXFSmboAoGCCqGSM49 +AwEHoUQDQgAE91BdUwbb0gchwoJU2BhZwTmBC8iJgPsfekQ1gvHBNQi2D34Im6Vi +e/zbvitbWNDmwcWuojNrjhjKeNWO6c46Hg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/test_case_vector.json index a686423cbc2100..c8ae5216111419 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_08/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Fallback VID and PID encoding example from spec: invalid, since substring following Mpid: is not exactly 4 uppercase hexadecimal digits", "is_success_case": "true", - "dac_cert": "308201d83082017fa00302010202086204b68b64f3be94300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303432363030303030305a180f39393939313233313233353935395a303b3139303706035504030c3041434d45204d617474657220446576656c20444143203543444139383939204d7669643a46464631204d7069643a42313059301306072a8648ce3d020106082a8648ce3d030107034200043e1343298c38fedbb3f704ccb80e3b4816821093b145f7ca7f4db05435b1b65c920ea6c853dad5e8ab0dbdd074c96725b8d63c16557c979b1c00e6f9cfa41d00a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604146823bbed492145bfc01201014fdb06ee4b8ffb6e301f0603551d23041830168014a300348f9aa83833f4c19c131c94372aea262105300a06082a8648ce3d04030203470030440220135a28c39279246b320a0ffe7199c5493e51368e4e062726bdf6c567385481ee022065a0c1e8f4ab45356e50eb95a882acc76fe0322c9ac7009b63bb87f72ca45bf2", - "pai_cert": "308201d33082017aa003020102020806be505379dbf5a2300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d0301070342000499d398488e4991103137d58ce11c0a971fcb5a3adf1621741d78d80dc999ed69ed90607cf9e290bf7412f4e2059afedec587c45f8a2ab94fa1b8ba74d736a5a1a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414a300348f9aa83833f4c19c131c94372aea262105301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402200d9b30d4e21e33a54899193ba06b3805bd07ff2c5c7171ecec9157812a9235e80220627a1476eac3e1b9d6373c343e6f53d93287ecf02bf892c09aaad70732f9af27", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100aad7460a58995e9ce586a4e55e33527e5c648ebdbf302f286755db27c3b923c602202cff9b9f050f4aeaa7468cf1b6af091c9c53f8389324cef10299d7ea9d363f96", - "dac_private_key": "f96c8b285f2d2cf61046daed8738ae6a7254eb4d4bc22ba36d3ce0775fae0be4", - "dac_public_key": "043e1343298c38fedbb3f704ccb80e3b4816821093b145f7ca7f4db05435b1b65c920ea6c853dad5e8ab0dbdd074c96725b8d63c16557c979b1c00e6f9cfa41d00" + "dac_cert": "308201da3082017fa003020102020845d7366a0720880f300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303532373030303030305a180f39393939313233313233353935395a303b3139303706035504030c3041434d45204d617474657220446576656c20444143203543444139383939204d7669643a46464631204d7069643a42313059301306072a8648ce3d020106082a8648ce3d03010703420004782b723795c8c5e5c01b767a7b276c3ea74ac51ce06b206f6be9aa68b5cdb7ad99a295b05d6c9d42a6706f4c09165e887d634c1b2003cf44b6de9468dafdccdaa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414cdce091d06a691bffdb73c62d2b6d2545a8c688d301f0603551d230418301680148c9a3d0436896f492bc1c57e52c4ee38dbec5935300a06082a8648ce3d0403020349003046022100b74e0b5ecff28f2c9f461633201f3bea2d1fe8660bed50f4bec7da35a406d88c022100bbba3d49881842291e82288704284f6893d0091434ae17a76ba5990da30657ba", + "pai_cert": "308201d53082017aa00302010202085685ac4a899dbf02300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004f7505d5306dbd20721c28254d81859c139810bc88980fb1f7a443582f1c13508b60f7e089ba5627bfcdbbe2b5b58d0e6c1c5aea2336b8e18ca78d58ee9ce3a1ea366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604148c9a3d0436896f492bc1c57e52c4ee38dbec5935301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034900304602210089a8493ce5b29ef99bb63c86fc5e57a08222123c404e5485684f3beb0d7428d2022100f45e6727b261d916aeda685574ccfaa54a9b2d05adab2147871c5c4ff2d4a445", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022029d94c00ec2edbd96f902ee085f93e5d1ead042a70b6e67d38cc1cf77339ac7b022100f0bf06e5ad0c8f0dcb9daa138b12d7a9b8fb57759dd194c76107e17280e7a9e9", + "dac_private_key": "8108ae4f2caae52899ae03d221384c322bd96ede7abd124e17d5ec6e4cd4b57d", + "dac_public_key": "04782b723795c8c5e5c01b767a7b276c3ea74ac51ce06b206f6be9aa68b5cdb7ad99a295b05d6c9d42a6706f4c09165e887d634c1b2003cf44b6de9468dafdccda" } diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/cd.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/cd.der index 949464f60af0aa..25a2de099307c9 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/cd.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/dac-Cert.der index 59056056d7972f..af15b5b5669256 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/dac-Cert.pem index c3edcecff7adc1..c68f3b3d0dd655 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1zCCAX2gAwIBAgIIKJVPdN3JUvowCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIB1jCCAX2gAwIBAgIIAuVIyDZ3jtUwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDAwQjEwIBcNMjIwNDI2MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMDkx +gqJ8AgIMBDAwQjEwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMDkx NzA1BgNVBAMMLkFDTUUgTWF0dGVyIERldmVsIERBQyA1Q0RBOTg5OSBNcGlkOiBN -dmlkOkZGRjEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQDJ9iFaO5SpXSY/wIT -LNCaxcOaGCl7F52pQkzj6n1OJpSfBXm+3kRjCyJvFLDzRh+gJF8amTGto3r58UMf -IkCio2AwXjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQU -fOkueohbDhcZJJoV5Di7K7+Vt60wHwYDVR0jBBgwFoAUCsd3nkBJAezBEyJ8o2ds -XXeMnOAwCgYIKoZIzj0EAwIDSAAwRQIhAOyBwISjUdtGxBhrXm2gvmUwGVYOw9dt -XFDFjC9ZNPPmAiAMuESHjH9mtNZwSmyvJn+CMemGywECQJKSsXIzQYdnGw== +dmlkOkZGRjEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ4sfxio+ExbKidjmeh +berpXn+MV5k85E5MBW8C2xU3tfgCiuIAr81KlWjeMTcXaQ5M7Bu7UPqLWOGxHJdq +ODxwo2AwXjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQU +qPmgH+chVnKDvod/a7yVegJmH9MwHwYDVR0jBBgwFoAUJxMKHN4s/bYpexAh1sVe +GFu16jkwCgYIKoZIzj0EAwIDRwAwRAIgRbm1w0EpFFlCBVh17DkpJ1iwu0d5fXgv +LvIwV3eUDX4CIDEwdffps9dllp9ucdz4/bdFxUNRgy286EZiVyLyXxhV -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/dac-Key.der index ed4ee9ba63722d..a917f8d2b438f6 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/dac-Key.pem index 8e1907324a3eab..0dcc6efe62531f 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIJCbQF9lQ/jioY/LNXorKpa7lamitNGRpVnkB6rmg9EFoAoGCCqGSM49 -AwEHoUQDQgAEAyfYhWjuUqV0mP8CEyzQmsXDmhgpexedqUJM4+p9TiaUnwV5vt5E -YwsibxSw80YfoCRfGpkxraN6+fFDHyJAog== +MHcCAQEEIH4xly84rf6wbvLlREh4+Ynk7fLenCzUhscN/4/JAg2/oAoGCCqGSM49 +AwEHoUQDQgAEOLH8YqPhMWyonY5noW3q6V5/jFeZPOROTAVvAtsVN7X4AoriAK/N +SpVo3jE3F2kOTOwbu1D6i1jhsRyXajg8cA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/pai-Cert.der index f904f36d436ccf..95d79cc3e41422 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/pai-Cert.pem index 48106a72432ad6..1add203b43cbff 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIZAFfKTmaTRowCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIB0zCCAXqgAwIBAgIIUf03pXlOWRkwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDAwQjEw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR/JHr1EkSXXob2EjYbaidr4bLL7NZv -9WYsXfwU+NkqkbZBU8+WCVV1jPO0iIx2dR6Ks6cwwhHRmAtILuCcyrUpo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUCsd3 -nkBJAezBEyJ8o2dsXXeMnOAwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIhAKRHvnq99hOz2MSx2Mf2VaWnFbMkaSvFiyzj -jCLFLqSvAiAucRqgQ6X7vDYe8fG531dsGWgXAB5U7+dsOWekQnU6BA== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQjh5unjBZBybfwK9Ewq8BqY0wE/VDm +9CrZ0/sJqP8aar5GdgpensXyPNEzlE3pLezGda/t6k9HXpFx6ZWvSySHo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUJxMK +HN4s/bYpexAh1sVeGFu16jkwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDRwAwRAIgRwRQpzqkUKTPpqOef3DXfsTcL3P+bAx9Xr+k +JJohhKwCIBCu7FpDCnsPPnu6bz4uXRfF6p+2mOzKroIZJktIaDCZ -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/pai-Key.der index ece31cc341ec9b..b5fd3d63637aca 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/pai-Key.pem index 9708b5852c27fd..228c7638eb4735 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIJvuhtmGa61fCXrwlKd4TSJvdsr9F0z6RaZ6DK8qZIp/oAoGCCqGSM49 -AwEHoUQDQgAEfyR69RJEl16G9hI2G2ona+Gyy+zWb/VmLF38FPjZKpG2QVPPlglV -dYzztIiMdnUeirOnMMIR0ZgLSC7gnMq1KQ== +MHcCAQEEIDfh4g5FMJSr2VZRpkgkDxmOomBBN8CjnECo1zPtnH0CoAoGCCqGSM49 +AwEHoUQDQgAEI4ebp4wWQcm38CvRMKvAamNMBP1Q5vQq2dP7Caj/Gmq+RnYKXp7F +8jzRM5RN6S3sxnWv7epPR16RcemVr0skhw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/test_case_vector.json index 5e8aca85c2f1a4..9e39983387604b 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_09/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Fallback VID and PID encoding example from spec: invalid, since substring following Mpid: is not exactly 4 uppercase hexadecimal digits", "is_success_case": "true", - "dac_cert": "308201d73082017da003020102020828954f74ddc952fa300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303432363030303030305a180f39393939313233313233353935395a30393137303506035504030c2e41434d45204d617474657220446576656c20444143203543444139383939204d7069643a204d7669643a464646313059301306072a8648ce3d020106082a8648ce3d030107034200040327d88568ee52a57498ff02132cd09ac5c39a18297b179da9424ce3ea7d4e26949f0579bede44630b226f14b0f3461fa0245f1a9931ada37af9f1431f2240a2a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604147ce92e7a885b0e1719249a15e438bb2bbf95b7ad301f0603551d230418301680140ac7779e404901ecc113227ca3676c5d778c9ce0300a06082a8648ce3d0403020348003045022100ec81c084a351db46c4186b5e6da0be653019560ec3d76d5c50c58c2f5934f3e602200cb844878c7f66b4d6704a6caf267f8231e986cb0102409292b172334187671b", - "pai_cert": "308201d43082017aa003020102020864015f29399a4d1a300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200047f247af51244975e86f612361b6a276be1b2cbecd66ff5662c5dfc14f8d92a91b64153cf960955758cf3b4888c76751e8ab3a730c211d1980b482ee09ccab529a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604140ac7779e404901ecc113227ca3676c5d778c9ce0301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100a447be7abdf613b3d8c4b1d8c7f655a5a715b324692bc58b2ce38c22c52ea4af02202e711aa043a5fbbc361ef1f1b9df576c196817001e54efe76c3967a442753a04", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450220198a36be3313adae2c88cecdef13a2d2dca812208e5edfe93fc1726e40035c56022100a7ddeb481a0d1d308761fd1e8aeaef5373b5d35dfd47c0cc1acb6a0a19a192c1", - "dac_private_key": "909b405f6543f8e2a18fcb357a2b2a96bb95a9a2b4d191a559e407aae683d105", - "dac_public_key": "040327d88568ee52a57498ff02132cd09ac5c39a18297b179da9424ce3ea7d4e26949f0579bede44630b226f14b0f3461fa0245f1a9931ada37af9f1431f2240a2" + "dac_cert": "308201d63082017da003020102020802e548c836778ed5300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303532373030303030305a180f39393939313233313233353935395a30393137303506035504030c2e41434d45204d617474657220446576656c20444143203543444139383939204d7069643a204d7669643a464646313059301306072a8648ce3d020106082a8648ce3d0301070342000438b1fc62a3e1316ca89d8e67a16deae95e7f8c57993ce44e4c056f02db1537b5f8028ae200afcd4a9568de313717690e4cec1bbb50fa8b58e1b11c976a383c70a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414a8f9a01fe721567283be877f6bbc957a02661fd3301f0603551d2304183016801427130a1cde2cfdb6297b1021d6c55e185bb5ea39300a06082a8648ce3d0403020347003044022045b9b5c34129145942055875ec39292758b0bb47797d782f2ef2305777940d7e0220313075f7e9b3d765969f6e71dcf8fdb745c54351832dbce846625722f25f1855", + "pai_cert": "308201d33082017aa003020102020851fd37a5794e5919300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d0301070342000423879ba78c1641c9b7f02bd130abc06a634c04fd50e6f42ad9d3fb09a8ff1a6abe46760a5e9ec5f23cd133944de92decc675afedea4f475e9171e995af4b2487a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041427130a1cde2cfdb6297b1021d6c55e185bb5ea39301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203470030440220470450a73aa450a4cfa6a39e7f70d77ec4dc2f73fe6c0c7d5ebfa4249a2184ac022010aeec5a430a7b0f3e7bba6f3e2e5d17c5ea9fb698eccaae8219264b48683099", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502205bd2d16fefa65655f9a705fb428bd5ee01773de2e05b723af4148f54d14cffb2022100ed04766f4af742c816bfe1d72c2f269f18e6cd7768569bef21305f5e875bc0b5", + "dac_private_key": "7e31972f38adfeb06ef2e5444878f989e4edf2de9c2cd486c70dff8fc9020dbf", + "dac_public_key": "0438b1fc62a3e1316ca89d8e67a16deae95e7f8c57993ce44e4c056f02db1537b5f8028ae200afcd4a9568de313717690e4cec1bbb50fa8b58e1b11c976a383c70" } diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/cd.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/cd.der index 642ea6d873035a..c5b130d25d7f18 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/cd.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/dac-Cert.der index ffe8421d85c547..8d04f315802148 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/dac-Cert.pem index 2ed4d9923ea762..63aaa6f64bd634 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvTCCAWOgAwIBAgIIZP9G9qO4OqAwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIBvTCCAWOgAwIBAgIIFwm21D5leEYwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDAwQjEwIBcNMjIwNDI2MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMB8x +gqJ8AgIMBDAwQjEwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMB8x HTAbBgNVBAMMFE12aWQ6RkZGIE1waWQ6MDBCMTB4MFkwEwYHKoZIzj0CAQYIKoZI -zj0DAQcDQgAE6dA7CLr2kD66givdQSxZpLKUnVoYEJtEdp+2xkUxfDZDD0SI2ldk -PMShDdok/mpjNJpeZ5I7L1so4rUCNCvwP6NgMF4wDAYDVR0TAQH/BAIwADAOBgNV -HQ8BAf8EBAMCB4AwHQYDVR0OBBYEFIXOYBMVg94Dd4WFg97if6ntGZu0MB8GA1Ud -IwQYMBaAFMx09ih0zGCPWoJAFjVCtn8N/THRMAoGCCqGSM49BAMCA0gAMEUCICAa -+iUQdc/y2kMdyJWa3UtzTJcgXUc43e8HgKOG/eqIAiEAhIUdCyo6p//THRBCgsoK -PAPDm8mhA6APkgGuEujWPNk= +zj0DAQcDQgAEImiJ1h4mbvuSAm4myIrF0TOgDZwUutwRlRqP0P8YHGoInS/M328V +Rr8hCUxC8rvVzFJGxoobu7dLEzDJOjhkDqNgMF4wDAYDVR0TAQH/BAIwADAOBgNV +HQ8BAf8EBAMCB4AwHQYDVR0OBBYEFJFiGLywnrJYdKzqVtqGYoFNkV29MB8GA1Ud +IwQYMBaAFJkfmcpeVVE7cpf0Icn7SD/uaJ74MAoGCCqGSM49BAMCA0gAMEUCIBUC +JEHKhV0qIyh5Xl8dpcrhAj4A+L5u1wXNYHkmZpGiAiEAqKz0RN3GuQJ1cUIxEwUX +XaAcLuyIfgAyTRuxHfmxZ78= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/dac-Key.der index 26247c900fbf5b..5822f4e879e87e 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/dac-Key.pem index 020a32e4f45efc..619032165f13c5 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIIS/1es6Y+H6vLCHYletNO0BjZQNz+RgKgIA0q+/MHcKoAoGCCqGSM49 -AwEHoUQDQgAE6dA7CLr2kD66givdQSxZpLKUnVoYEJtEdp+2xkUxfDZDD0SI2ldk -PMShDdok/mpjNJpeZ5I7L1so4rUCNCvwPw== +MHcCAQEEIDKEMqqGdIXf2w9CYwWCrP8eV8YHz6KOnSXxsZUGHwaQoAoGCCqGSM49 +AwEHoUQDQgAEImiJ1h4mbvuSAm4myIrF0TOgDZwUutwRlRqP0P8YHGoInS/M328V +Rr8hCUxC8rvVzFJGxoobu7dLEzDJOjhkDg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/pai-Cert.der index b4be77100fad6a..414329a0386664 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/pai-Cert.pem index c5fbba8666a646..a61e2f79d78ea9 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1TCCAXqgAwIBAgIIIgvLeyGt7cwwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIB1DCCAXqgAwIBAgIIMVvjwSHDcEEwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDAwQjEw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATXUUeBs+1u7Hf4ejvujV1LQtNGRosD -tOxCYsOFa56kLQUVBwPafW8cUE0ApxYL0Am4w5B05j5hViYgV86LoDQ2o2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUzHT2 -KHTMYI9agkAWNUK2fw39MdEwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSQAwRgIhAL5dR0BIJ/ukPyA8IlIYzEJXjz/z/0iAGSh5 -rwfpcEMGAiEA0agt1KTpCpNy3uk9M1IxaTv7AHwNoNV+yKyRa+TGMm8= +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQmCuOhyAmJArwvY9shyDRMh3pO6sft +4uKZYgLml0JNYZiRkSxFX/Dz3+wPHMjVkHAWevn5GiFzL7/BbFPGUeHJo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUmR+Z +yl5VUTtyl/QhyftIP+5onvgwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIhAMshV2U/mhdpLpzjLlMHmB59+yVppRYbaG2/ +gdDU/6W+AiBRgfq9jfcV2t3Ol+TM3iVy3Bx7hSxCbw583MGg0We2aQ== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/pai-Key.der index c15d0ac15dc208..420d1e4d6f2e68 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/pai-Key.pem index f0282f4f766307..bd8aaced94886b 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIBU8C6va07UFqLgVkCtBFaNws+UYZZCz/D0j9mSsnOddoAoGCCqGSM49 -AwEHoUQDQgAE11FHgbPtbux3+Ho77o1dS0LTRkaLA7TsQmLDhWuepC0FFQcD2n1v -HFBNAKcWC9AJuMOQdOY+YVYmIFfOi6A0Ng== +MHcCAQEEIITY6T7+FZFqQsXYUylUcog4SG9GA8lZSs7sqhV/vXjZoAoGCCqGSM49 +AwEHoUQDQgAEJgrjocgJiQK8L2PbIcg0TId6TurH7eLimWIC5pdCTWGYkZEsRV/w +89/sDxzI1ZBwFnr5+Rohcy+/wWxTxlHhyQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/test_case_vector.json index 8ad8d83f1f4588..6f3c33f0f09a88 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_10/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Fallback VID and PID encoding example: invalid VID encoding", "is_success_case": "false", - "dac_cert": "308201bd30820163a003020102020864ff46f6a3b83aa0300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303432363030303030305a180f39393939313233313233353935395a301f311d301b06035504030c144d7669643a464646204d7069643a3030423130783059301306072a8648ce3d020106082a8648ce3d03010703420004e9d03b08baf6903eba822bdd412c59a4b2949d5a18109b44769fb6c645317c36430f4488da57643cc4a10dda24fe6a63349a5e67923b2f5b28e2b502342bf03fa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041485ce60131583de0377858583dee27fa9ed199bb4301f0603551d23041830168014cc74f62874cc608f5a8240163542b67f0dfd31d1300a06082a8648ce3d04030203480030450220201afa251075cff2da431dc8959add4b734c97205d4738ddef0780a386fdea8802210084851d0b2a3aa7ffd31d104282ca0a3c03c39bc9a103a00f9201ae12e8d63cd9", - "pai_cert": "308201d53082017aa0030201020208220bcb7b21adedcc300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004d7514781b3ed6eec77f87a3bee8d5d4b42d346468b03b4ec4262c3856b9ea42d05150703da7d6f1c504d00a7160bd009b8c39074e63e6156262057ce8ba03436a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414cc74f62874cc608f5a8240163542b67f0dfd31d1301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100be5d47404827fba43f203c225218cc42578f3ff3ff4880192879af07e9704306022100d1a82dd4a4e90a9372dee93d335231693bfb007c0da0d57ec8ac916be4c6326f", - "certification_declaration": "3081e706092a864886f70d010702a081d93081d6020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204463044022040c568f8ceb019c28a367be658c810b141d157b5a5f230efa87b44b18f585a8202205c926d1c740560d711162805ebf6cdf2748b06ab6ed7b06df3fc8a9b74d3cbe3", - "dac_private_key": "84bfd5eb3a63e1fabcb0876257ad34ed018d940dcfe4602a0200d2afbf30770a", - "dac_public_key": "04e9d03b08baf6903eba822bdd412c59a4b2949d5a18109b44769fb6c645317c36430f4488da57643cc4a10dda24fe6a63349a5e67923b2f5b28e2b502342bf03f" + "dac_cert": "308201bd30820163a00302010202081709b6d43e657846300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303532373030303030305a180f39393939313233313233353935395a301f311d301b06035504030c144d7669643a464646204d7069643a3030423130783059301306072a8648ce3d020106082a8648ce3d03010703420004226889d61e266efb92026e26c88ac5d133a00d9c14badc11951a8fd0ff181c6a089d2fccdf6f1546bf21094c42f2bbd5cc5246c68a1bbbb74b1330c93a38640ea360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414916218bcb09eb25874acea56da8662814d915dbd301f0603551d23041830168014991f99ca5e55513b7297f421c9fb483fee689ef8300a06082a8648ce3d0403020348003045022015022441ca855d2a2328795e5f1da5cae1023e00f8be6ed705cd6079266691a2022100a8acf444ddc6b902757142311305175da01c2eec887e00324d1bb11df9b167bf", + "pai_cert": "308201d43082017aa0030201020208315be3c121c37041300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004260ae3a1c8098902bc2f63db21c8344c877a4eeac7ede2e2996202e697424d619891912c455ff0f3dfec0f1cc8d59070167af9f91a21732fbfc16c53c651e1c9a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414991f99ca5e55513b7297f421c9fb483fee689ef8301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100cb2157653f9a17692e9ce32e5307981e7dfb2569a5161b686dbf81d0d4ffa5be02205181fabd8df715daddce97e4ccde2572dc1c7b852c426f0e7cdcc1a0d167b669", + "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100ec5a3ea09ab47803ffc961536ecc11c23d1d2c51eb48a0d6992e6c319d0dc8e9022100a2a463706f470c04c82037c98d3af0e628f88968089faf1bc28fce0708c31f52", + "dac_private_key": "328432aa867485dfdb0f42630582acff1e57c607cfa28e9d25f1b195061f0690", + "dac_public_key": "04226889d61e266efb92026e26c88ac5d133a00d9c14badc11951a8fd0ff181c6a089d2fccdf6f1546bf21094c42f2bbd5cc5246c68a1bbbb74b1330c93a38640e" } diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/cd.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/cd.der index cf8fe1212bf401..ed5b7738646861 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/cd.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/dac-Cert.der index 62c61d3f88d928..f8eb7053caac1f 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/dac-Cert.pem index 7c01661796576a..a70210942b2ead 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzDCCAXOgAwIBAgIISkLC9P+6Q+owCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIBzDCCAXOgAwIBAgIIIitx1aHRPOkwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDAwQjEwIBcNMjIwNDI2MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMC8x +gqJ8AgIMBDAwQjEwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMC8x LTArBgNVBAMMJE1waWRNdmlkOkZGRjEwIE1hdHRlciBUZXN0IE1waWQ6MDBCMTBZ -MBMGByqGSM49AgEGCCqGSM49AwEHA0IABIc5gnNpaWniW04145ipOmak7qNi8ZbI -y45jlFSnOOh8MBouSVjjVHmNbrzArvTUP3lU0fye1k2i32GbMg7z1PSjYDBeMAwG -A1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBTEOWH6WMNJ4/DF -/b6WhHp0ZldbSDAfBgNVHSMEGDAWgBQQ9ol7OcdtyE9RLopRRzCaMI0XbjAKBggq -hkjOPQQDAgNHADBEAiBg//cuhQzXwoyBHtoActTOW0HPUtjlecheCpI+VagKBAIg -FTaQ7nEaJsurfPR/vO5YFcrBjGZjFvENt3X7QCYhvpI= +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABJzBPJvaW0RnMp/CguFAK2ytCJIVL1vU +sBns5qUIs/cXWeOQJclm/vkmJOYlPYizz9qgLQYVD49J6AhFej8MGfCjYDBeMAwG +A1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBSdaCX5qs6KEHKV +2kd5QMMhpMRRoTAfBgNVHSMEGDAWgBRevkyXFL+sWJUbv5NQytu/Etao9zAKBggq +hkjOPQQDAgNHADBEAiATgexv++hnJux/eOyvzCrN1gmVBAMs8vqO7JJQdELrMgIg +PgTKlUIpS2PZmS+L33Owe8LWL4yqOkuCkfHBSQKY8PQ= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/dac-Key.der index 1e71cd4873961f..54410c40b446f2 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/dac-Key.pem index 2181a7af14217a..9afe13a81d555e 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIDMP1h+oCu23qA2kzaSBCw9KwTZhEdC/zOZfjPHyug87oAoGCCqGSM49 -AwEHoUQDQgAEhzmCc2lpaeJbTjXjmKk6ZqTuo2LxlsjLjmOUVKc46HwwGi5JWONU -eY1uvMCu9NQ/eVTR/J7WTaLfYZsyDvPU9A== +MHcCAQEEIAS+c1CQ1+Eal+JgF38f7Kyb06e//VDRcL4t9maV9JdqoAoGCCqGSM49 +AwEHoUQDQgAEnME8m9pbRGcyn8KC4UArbK0IkhUvW9SwGezmpQiz9xdZ45AlyWb+ ++SYk5iU9iLPP2qAtBhUPj0noCEV6PwwZ8A== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/pai-Cert.der index 64fce72dda703d..0c9042a88b0000 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/pai-Cert.pem index 0430b6eac0b67b..b571ed2a8b948f 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1TCCAXqgAwIBAgIIFZB9AJHyl9gwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIB1DCCAXqgAwIBAgIIGsfIcrFlzaswCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDAwQjEw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAROSsNc/c7iau7pIvFMIt03Yl52ohzl -XK/7w27B0hlB3z1b2nB21+0DsJmNTMIZTh2w7loD+ZjMgAOop/3u1ApQo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUEPaJ -eznHbchPUS6KUUcwmjCNF24wHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSQAwRgIhAJS0HhHT0TJ8kIYyy2IEMoCpHKg1vsBQcLMh -HnoLPsvlAiEA7pfIQwvQIBwajsUSSlpeWpiegCnAe3GwJAHmMfDuio0= +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQIfJSWhVUS7UUuvl1o46X527OhLcn4 +XFbgbatxH6rfbLmRnaplXkP9OpoLS1tsxKfOAwjeZWSIcyU3uJJUGMHUo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUXr5M +lxS/rFiVG7+TUMrbvxLWqPcwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIgSHnzU8k12434iTZyHt0OVonP/D+Pd+l87t1d +TXq4cggCIQC9aljd6cyB016IY3vd4Odi6ylVrnN/4BIjhXKipTOg0A== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/pai-Key.der index caad95486b6737..6a040f6550a9b3 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/pai-Key.pem index 4455631c1f963d..58cf647d313db0 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIGcvW3ex+/f4PcvaNLgnmhUGsGsitmdmx8PStgo8RQZUoAoGCCqGSM49 -AwEHoUQDQgAETkrDXP3O4mru6SLxTCLdN2JedqIc5Vyv+8NuwdIZQd89W9pwdtft -A7CZjUzCGU4dsO5aA/mYzIADqKf97tQKUA== +MHcCAQEEIJTpdibSWKPfpLF/dhEFRL4L88WPXLYXPFsAc4Y/So4zoAoGCCqGSM49 +AwEHoUQDQgAECHyUloVVEu1FLr5daOOl+duzoS3J+FxW4G2rcR+q32y5kZ2qZV5D +/TqaC0tbbMSnzgMI3mVkiHMlN7iSVBjB1A== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/test_case_vector.json index 4ccbe21446666b..9b385b105c160b 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_11/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Fallback VID and PID encoding example: valid, but less human-readable", "is_success_case": "true", - "dac_cert": "308201cc30820173a00302010202084a42c2f4ffba43ea300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303432363030303030305a180f39393939313233313233353935395a302f312d302b06035504030c244d7069644d7669643a4646463130204d61747465722054657374204d7069643a303042313059301306072a8648ce3d020106082a8648ce3d0301070342000487398273696969e25b4e35e398a93a66a4eea362f196c8cb8e639454a738e87c301a2e4958e354798d6ebcc0aef4d43f7954d1fc9ed64da2df619b320ef3d4f4a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414c43961fa58c349e3f0c5fdbe96847a7466575b48301f0603551d2304183016801410f6897b39c76dc84f512e8a5147309a308d176e300a06082a8648ce3d0403020347003044022060fff72e850cd7c28c811eda0072d4ce5b41cf52d8e579c85e0a923e55a80a040220153690ee711a26cbab7cf47fbcee5815cac18c666316f10db775fb402621be92", - "pai_cert": "308201d53082017aa003020102020815907d0091f297d8300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200044e4ac35cfdcee26aeee922f14c22dd37625e76a21ce55caffbc36ec1d21941df3d5bda7076d7ed03b0998d4cc2194e1db0ee5a03f998cc8003a8a7fdeed40a50a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e0416041410f6897b39c76dc84f512e8a5147309a308d176e301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034900304602210094b41e11d3d1327c908632cb62043280a91ca835bec05070b3211e7a0b3ecbe5022100ee97c8430bd0201c1a8ec5124a5a5e5a989e8029c07b71b02401e631f0ee8a8d", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450220730959456261f2e70b55384204c77675d000e1e320b79d097af898b424afa507022100ddbbcc817de33a3197e059f1af924d8ef1d046d185010567b7be49af29e213bd", - "dac_private_key": "330fd61fa80aedb7a80da4cda4810b0f4ac1366111d0bfcce65f8cf1f2ba0f3b", - "dac_public_key": "0487398273696969e25b4e35e398a93a66a4eea362f196c8cb8e639454a738e87c301a2e4958e354798d6ebcc0aef4d43f7954d1fc9ed64da2df619b320ef3d4f4" + "dac_cert": "308201cc30820173a0030201020208222b71d5a1d13ce9300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303532373030303030305a180f39393939313233313233353935395a302f312d302b06035504030c244d7069644d7669643a4646463130204d61747465722054657374204d7069643a303042313059301306072a8648ce3d020106082a8648ce3d030107034200049cc13c9bda5b4467329fc282e1402b6cad0892152f5bd4b019ece6a508b3f71759e39025c966fef92624e6253d88b3cfdaa02d06150f8f49e808457a3f0c19f0a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604149d6825f9aace8a107295da477940c321a4c451a1301f0603551d230418301680145ebe4c9714bfac58951bbf9350cadbbf12d6a8f7300a06082a8648ce3d040302034700304402201381ec6ffbe86726ec7f78ecafcc2acdd6099504032cf2fa8eec92507442eb3202203e04ca9542294b63d9992f8bdf73b07bc2d62f8caa3a4b8291f1c1490298f0f4", + "pai_cert": "308201d43082017aa00302010202081ac7c872b165cdab300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004087c9496855512ed452ebe5d68e3a5f9dbb3a12dc9f85c56e06dab711faadf6cb9919daa655e43fd3a9a0b4b5b6cc4a7ce0308de656488732537b8925418c1d4a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604145ebe4c9714bfac58951bbf9350cadbbf12d6a8f7301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502204879f353c935db8df88936721edd0e5689cffc3f8f77e97ceedd5d4d7ab87208022100bd6a58dde9cc81d35e88637bdde0e762eb2955ae737fe012238572a2a533a0d0", + "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100e77fd18b36a4d3211fb7ee5c3042961df807093662e210d9917e25510eb16f5902210087a9c532d3bf9442c3fc8abe3c1416fb237f721b09184dbfe8880ed82c6d1343", + "dac_private_key": "04be735090d7e11a97e260177f1fecac9bd3a7bffd50d170be2df66695f4976a", + "dac_public_key": "049cc13c9bda5b4467329fc282e1402b6cad0892152f5bd4b019ece6a508b3f71759e39025c966fef92624e6253d88b3cfdaa02d06150f8f49e808457a3f0c19f0" } diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/cd.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/cd.der index 1d1d4f9dfebb11..9eafdeca2c5be5 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/cd.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/dac-Cert.der index 2bad5b91f5c1de..5e058f15ff72a4 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/dac-Cert.pem index e593ced99edc2f..2b6bbd9792f488 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIByTCCAW6gAwIBAgIIAglJTHEE31swCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIByTCCAW6gAwIBAgIIJ45b3h2TMZwwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDAwQjEwIBcNMjIwNDI2MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCox +gqJ8AgIMBDAwQjEwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCox KDAmBgNVBAMMH01hdHRlciBEZXZlbCBEQUMgTXBpZDpNdmlkOkZmZjEwWTATBgcq -hkjOPQIBBggqhkjOPQMBBwNCAAQhY+w2hGrr3N2TrWxvMxnNq05O5yOZJtrOhd0p -d65t+xOAMY9ECXQjygljzmseAgUyIxFTOHQfnwTnEYeQiz/3o2AwXjAMBgNVHRMB -Af8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUxzMlsu45Jd9w3JvzMiOt -8mYZ1ZkwHwYDVR0jBBgwFoAUA62TF1Iu3Y7THSD9vtPskE7DUU4wCgYIKoZIzj0E -AwIDSQAwRgIhAOJCp3hosz041ly23xvcn08tCysjaT2giTVkUW2KdK1lAiEAwyEA -l3WKyVk2qLWshrRp1GxviZR/LGSUZ3QPr/OCUf4= +hkjOPQIBBggqhkjOPQMBBwNCAAQPTyr25kU+9k7JwRuOPoyadkTZJ/+9v0f/1bzS +NoAydNBx/u9jeYMXZkYoUOlHxHJy/aVOS5Rg2LoIjRAduYSPo2AwXjAMBgNVHRMB +Af8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUemfzsm3Y6nidqX7t9Lgo +XKudFNswHwYDVR0jBBgwFoAUsreMFKQanWi+c5wJov0/7Z8PIfQwCgYIKoZIzj0E +AwIDSQAwRgIhAIWu/SiZtGSK9+40SOmzotFAAqQl+3OFPLNPKcGNDcJ7AiEA7Aut +yvi3ihKeFhivBsRbQgjCIXQekB7hrhdguSXj9+k= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/dac-Key.der index d957248d4aa4c5..149072b7380e1d 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/dac-Key.pem index 2131b962d71a20..ab3117fb003835 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIGP1wZOcoMOnhYj4mHxravXji+YARuNdais53nVboSafoAoGCCqGSM49 -AwEHoUQDQgAEIWPsNoRq69zdk61sbzMZzatOTucjmSbazoXdKXeubfsTgDGPRAl0 -I8oJY85rHgIFMiMRUzh0H58E5xGHkIs/9w== +MHcCAQEEIP6VgKXIgWBBs72lii01PW2fVYgB3dz7IQs0dYloeAemoAoGCCqGSM49 +AwEHoUQDQgAED08q9uZFPvZOycEbjj6MmnZE2Sf/vb9H/9W80jaAMnTQcf7vY3mD +F2ZGKFDpR8Rycv2lTkuUYNi6CI0QHbmEjw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/pai-Cert.der index 3357445da9e552..20312dbf708520 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/pai-Cert.pem index 43e1047877e345..c6e223a8b0c9f1 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIRmx3stYqJ8kwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIB0zCCAXqgAwIBAgIIZxPTDGemVVUwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDAwQjEw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASBiFafy8nP5UBxvT4jtet7k7dLNPdb -0yHhmdMB7BcycwYuKPtvIlQMf+Aldyv/7BCidzdyn9098Z5tAtxMwd1Io2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUA62T -F1Iu3Y7THSD9vtPskE7DUU4wHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIhAJHxbLJl1C/zlGc9puR06WR2yC6rLS5HwsZ7 -N9RfnHGkAiBxC7hPtYEDEl22wpXqqXUt3XzIqT9M2k4NxSDT3++atg== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQXZ0wtop3KWFSCGWwsGKmtsRJUyGMU +62xBosc7j6ZJAX5zcv9/yOfHJHC3zgV+nNu8XzoHmJ/VFpEvCUx5we7go2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUsreM +FKQanWi+c5wJov0/7Z8PIfQwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDRwAwRAIgA98b5eYDTxuHIYZ8kFrpp+mE8p3W7UBV0MsM +DzumKbECIAn+vDEbKT9bT+cUbrjrCsNvvqtM95+Vw54m/BBFaQ7h -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/pai-Key.der index 7e1375ea15b783..d3af2abcd8149e 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/pai-Key.pem index 1e9b241887e6b3..e67ec7f7f94a1a 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIH5YfhOlhdZB1j6HzI0D4od1djFFzaUMN2PwdAt0I1CzoAoGCCqGSM49 -AwEHoUQDQgAEgYhWn8vJz+VAcb0+I7Xre5O3SzT3W9Mh4ZnTAewXMnMGLij7byJU -DH/gJXcr/+wQonc3cp/dPfGebQLcTMHdSA== +MHcCAQEEIA8UbQqTAVI+/u8Nt6NifiUus3hh6RXgmRQ2/Plmwff9oAoGCCqGSM49 +AwEHoUQDQgAEF2dMLaKdylhUghlsLBiprbESVMhjFOtsQaLHO4+mSQF+c3L/f8jn +xyRwt84FfpzbvF86B5if1RaRLwlMecHu4A== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/test_case_vector.json index 6fb7a4d8d12b3f..7c8dc423526f89 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_12/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Fallback VID and PID encoding example: invalid, PID not present and VID not upper case", "is_success_case": "false", - "dac_cert": "308201c93082016ea00302010202080209494c7104df5b300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303432363030303030305a180f39393939313233313233353935395a302a3128302606035504030c1f4d617474657220446576656c20444143204d7069643a4d7669643a466666313059301306072a8648ce3d020106082a8648ce3d030107034200042163ec36846aebdcdd93ad6c6f3319cdab4e4ee7239926dace85dd2977ae6dfb1380318f44097423ca0963ce6b1e02053223115338741f9f04e71187908b3ff7a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414c73325b2ee3925df70dc9bf33223adf26619d599301f0603551d2304183016801403ad9317522edd8ed31d20fdbed3ec904ec3514e300a06082a8648ce3d0403020349003046022100e242a77868b33d38d65cb6df1bdc9f4f2d0b2b23693da0893564516d8a74ad65022100c3210097758ac95936a8b5ac86b469d46c6f89947f2c649467740faff38251fe", - "pai_cert": "308201d43082017aa0030201020208466c77b2d62a27c9300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200048188569fcbc9cfe54071bd3e23b5eb7b93b74b34f75bd321e199d301ec173273062e28fb6f22540c7fe025772bffec10a27737729fdd3df19e6d02dc4cc1dd48a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e0416041403ad9317522edd8ed31d20fdbed3ec904ec3514e301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502210091f16cb265d42ff394673da6e474e96476c82eab2d2e47c2c67b37d45f9c71a40220710bb84fb58103125db6c295eaa9752ddd7cc8a93f4cda4e0dc520d3dfef9ab6", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502201136b40647485b84f8c9a1b014b3dcb7143f0a1ce435595dd4904ccbdaea4e30022100b4c0f22e485f9014e75fea971b56fff5801eb2ea4971206614d7b4ab5954379c", - "dac_private_key": "63f5c1939ca0c3a78588f8987c6b6af5e38be60046e35d6a2b39de755ba1269f", - "dac_public_key": "042163ec36846aebdcdd93ad6c6f3319cdab4e4ee7239926dace85dd2977ae6dfb1380318f44097423ca0963ce6b1e02053223115338741f9f04e71187908b3ff7" + "dac_cert": "308201c93082016ea0030201020208278e5bde1d93319c300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303532373030303030305a180f39393939313233313233353935395a302a3128302606035504030c1f4d617474657220446576656c20444143204d7069643a4d7669643a466666313059301306072a8648ce3d020106082a8648ce3d030107034200040f4f2af6e6453ef64ec9c11b8e3e8c9a7644d927ffbdbf47ffd5bcd236803274d071feef6379831766462850e947c47272fda54e4b9460d8ba088d101db9848fa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604147a67f3b26dd8ea789da97eedf4b8285cab9d14db301f0603551d23041830168014b2b78c14a41a9d68be739c09a2fd3fed9f0f21f4300a06082a8648ce3d040302034900304602210085aefd2899b4648af7ee3448e9b3a2d14002a425fb73853cb34f29c18d0dc27b022100ec0badcaf8b78a129e1618af06c45b4208c221741e901ee1ae1760b925e3f7e9", + "pai_cert": "308201d33082017aa00302010202086713d30c67a65555300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d0301070342000417674c2da29dca585482196c2c18a9adb11254c86314eb6c41a2c73b8fa649017e7372ff7fc8e7c72470b7ce057e9cdbbc5f3a07989fd516912f094c79c1eee0a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414b2b78c14a41a9d68be739c09a2fd3fed9f0f21f4301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020347003044022003df1be5e6034f1b8721867c905ae9a7e984f29dd6ed4055d0cb0c0f3ba629b1022009febc311b293f5b4fe7146eb8eb0ac36fbeab4cf79f95c39e26fc1045690ee1", + "certification_declaration": "3081e706092a864886f70d010702a081d93081d6020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204463044022059ed1566d873ec02ed3a966dca830403b2a6a285af230e09f06c29627da62ca1022005f431992215f1fc38be50d86be77007498b52fcdc4a458715145604c2ff3da4", + "dac_private_key": "fe9580a5c8816041b3bda58a2d353d6d9f558801dddcfb210b347589687807a6", + "dac_public_key": "040f4f2af6e6453ef64ec9c11b8e3e8c9a7644d927ffbdbf47ffd5bcd236803274d071feef6379831766462850e947c47272fda54e4b9460d8ba088d101db9848f" } diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/cd.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/cd.der index a658123b4a2dc7..4bca7171a623e5 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/cd.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/dac-Cert.der index 012341086e522f..2601c6266d2a4b 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/dac-Cert.pem index b5ef594e1daddd..d4f21847a8b975 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzTCCAXOgAwIBAgIIAwSbdenlXoowCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIBzDCCAXOgAwIBAgIIJoawc3KzJl8wCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDAwQjEwIBcNMjIwNDI2MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMC8x +gqJ8AgIMBDAwQjEwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMC8x LTArBgNVBAMMJE1hdHRlciBEZXZlbCBEQUMgTXBpZDowMEIxIE1WSUQ6RkZGMTBZ -MBMGByqGSM49AgEGCCqGSM49AwEHA0IABLERGMh2+VIec4ff3jXX/y+2K4B0xCng -bTi3AWuSZ54876kOaJtUgqyj49ExaPlFMAP52vxv9adtYObLRL/DN5ejYDBeMAwG -A1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBTHLGFQADuhhYAC -M9bAHTvQtfqt/DAfBgNVHSMEGDAWgBT8VbWSU75QgMHBhgz30F8SBEBh+DAKBggq -hkjOPQQDAgNIADBFAiAQCbDmDCyTy+kZNj0oFX+0ffMhS49MwyXHVUwsh/4VtQIh -AMyAxN6rNheGfIenXawbspz3Znm57QFIAguouchkbYTo +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABD2YE7Dh/stS3xRYC1y57dWtzrSxQrkn +9yh7+eFnAp8rsZ/HPiEhjDUQuRlZv+TJsFMOTaMIGpPQmB9/6ii7O3KjYDBeMAwG +A1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBSnp8GK8BOOaw8n +mIc0YP62llHsvDAfBgNVHSMEGDAWgBTxmCYaRU/vsZLnUJqoVj2CIzPc6jAKBggq +hkjOPQQDAgNHADBEAiAGS75l2yaxBRTrxgmCApKHlIoavPSlcZw/9ojF/Ug9GAIg +Jk77kqyrTSt54EqN5Febbq6sRzTNnAdbeZXliuncgdA= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/dac-Key.der index 1339956d09fdba..85f22fd08ee3a8 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/dac-Key.pem index 1651b0ba2bbf2b..e72a4a5a35a485 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIOAkdz0MpRFbwd+AtPNMhhV2ueY9pV0s4AM/dN+kbMRRoAoGCCqGSM49 -AwEHoUQDQgAEsREYyHb5Uh5zh9/eNdf/L7YrgHTEKeBtOLcBa5JnnjzvqQ5om1SC -rKPj0TFo+UUwA/na/G/1p21g5stEv8M3lw== +MHcCAQEEIOt817JNX/cGRmcDkd8lmfGVCyGeqp7KXq5Xnc2+eSdHoAoGCCqGSM49 +AwEHoUQDQgAEPZgTsOH+y1LfFFgLXLnt1a3OtLFCuSf3KHv54WcCnyuxn8c+ISGM +NRC5GVm/5MmwUw5Nowgak9CYH3/qKLs7cg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/pai-Cert.der index 4a129db6e99256..1d412b898d5641 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/pai-Cert.pem index 90d84795955556..3c9496345a8098 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB0zCCAXqgAwIBAgIIewrFANQKBlIwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIB1DCCAXqgAwIBAgIIKwCw0pZt1n0wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDAwQjEw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARbkhHNEwr5Brl5QwxWqZzFnLQEg1KQ -hI14uPFUpfbyMOyf5v2CSQiZOLohzQIxllJa7DcyzFpYQMN5XjMbXaMFo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU/FW1 -klO+UIDBwYYM99BfEgRAYfgwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDRwAwRAIgWHYqJem/PjwZnQG1BCJb+xwIfWSqkVfBoZE5 -X1MpQaoCIEKGmKEwVUmiAakXJdtwshVntjIkiRkDOS7PqxmmLyuy +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASjOBi50XxkvFyanADuEtQ6qd1655Lo +VV1BwRknO2I8MdhlH5zGHqqEe00A8nn7ztW0Jql2jBAJDNWrt4TdxQW3o2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU8Zgm +GkVP77GS51CaqFY9giMz3OowHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSAAwRQIgIFviMFKoJty0ZEFS+ILKp8+8/YontJyttcBs +7PFyRcICIQDLhyKSPuEfr+kRErVzelLJiUhyj0XgBA9EYWjvijFT2Q== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/pai-Key.der index 68110a9595883e..03d764ac430fc4 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/pai-Key.pem index 8ada7674462ccd..b0cb3b31f73645 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIBq6xSBmvj8kIMUp0/VmXgURaSmP1Ce3aVLgaYcZTISSoAoGCCqGSM49 -AwEHoUQDQgAEW5IRzRMK+Qa5eUMMVqmcxZy0BINSkISNeLjxVKX28jDsn+b9gkkI -mTi6Ic0CMZZSWuw3MsxaWEDDeV4zG12jBQ== +MHcCAQEEIMT4q16XArgG4XNJHKQq8gjcF01i+ItBV0oAUldjjF2OoAoGCCqGSM49 +AwEHoUQDQgAEozgYudF8ZLxcmpwA7hLUOqndeueS6FVdQcEZJztiPDHYZR+cxh6q +hHtNAPJ5+87VtCapdowQCQzVq7eE3cUFtw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/test_case_vector.json index 05f2ece6d3c99d..e780b85c0d4f47 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_13/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Fallback VID and PID encoding example: invalid VID prefix", "is_success_case": "false", - "dac_cert": "308201cd30820173a003020102020803049b75e9e55e8a300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303432363030303030305a180f39393939313233313233353935395a302f312d302b06035504030c244d617474657220446576656c20444143204d7069643a30304231204d5649443a464646313059301306072a8648ce3d020106082a8648ce3d03010703420004b11118c876f9521e7387dfde35d7ff2fb62b8074c429e06d38b7016b92679e3cefa90e689b5482aca3e3d13168f9453003f9dafc6ff5a76d60e6cb44bfc33797a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414c72c6150003ba185800233d6c01d3bd0b5faadfc301f0603551d23041830168014fc55b59253be5080c1c1860cf7d05f12044061f8300a06082a8648ce3d040302034800304502201009b0e60c2c93cbe919363d28157fb47df3214b8f4cc325c7554c2c87fe15b5022100cc80c4deab3617867c87a75dac1bb29cf76679b9ed0148020ba8b9c8646d84e8", - "pai_cert": "308201d33082017aa00302010202087b0ac500d40a0652300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200045b9211cd130af906b979430c56a99cc59cb404835290848d78b8f154a5f6f230ec9fe6fd8249089938ba21cd023196525aec3732cc5a5840c3795e331b5da305a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414fc55b59253be5080c1c1860cf7d05f12044061f8301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020347003044022058762a25e9bf3e3c199d01b504225bfb1c087d64aa9157c1a191395f532941aa0220428698a1305549a201a91725db70b21567b63224891903392ecfab19a62f2bb2", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100d1ca7efb52e07bdeb3e3a050c5757339fa4975b939509071a10f58e09871a9e502201c8dc0b248afe230c69fc5bb178eac9d3946884064a47ac7a8f70a7a5fce561c", - "dac_private_key": "e024773d0ca5115bc1df80b4f34c861576b9e63da55d2ce0033f74dfa46cc451", - "dac_public_key": "04b11118c876f9521e7387dfde35d7ff2fb62b8074c429e06d38b7016b92679e3cefa90e689b5482aca3e3d13168f9453003f9dafc6ff5a76d60e6cb44bfc33797" + "dac_cert": "308201cc30820173a00302010202082686b07372b3265f300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303532373030303030305a180f39393939313233313233353935395a302f312d302b06035504030c244d617474657220446576656c20444143204d7069643a30304231204d5649443a464646313059301306072a8648ce3d020106082a8648ce3d030107034200043d9813b0e1fecb52df14580b5cb9edd5adceb4b142b927f7287bf9e167029f2bb19fc73e21218c3510b91959bfe4c9b0530e4da3081a93d0981f7fea28bb3b72a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414a7a7c18af0138e6b0f2798873460feb69651ecbc301f0603551d23041830168014f198261a454fefb192e7509aa8563d822333dcea300a06082a8648ce3d04030203470030440220064bbe65db26b10514ebc60982029287948a1abcf4a5719c3ff688c5fd483d180220264efb92acab4d2b79e04a8de4579b6eaeac4734cd9c075b7995e58ae9dc81d0", + "pai_cert": "308201d43082017aa00302010202082b00b0d2966dd67d300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004a33818b9d17c64bc5c9a9c00ee12d43aa9dd7ae792e8555d41c119273b623c31d8651f9cc61eaa847b4d00f279fbced5b426a9768c10090cd5abb784ddc505b7a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414f198261a454fefb192e7509aa8563d822333dcea301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203480030450220205be23052a826dcb4644152f882caa7cfbcfd8a27b49cadb5c06cecf17245c2022100cb8722923ee11fafe91112b5737a52c98948728f45e0040f446168ef8a3153d9", + "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100a333d5d1b07fd518f4aa0aca7f864d94a31fe5330d0095402e0d035236608e17022100884ac815147940d2f6fce3de826a50562242300c10cb6a93167d9cac8c89bab7", + "dac_private_key": "eb7cd7b24d5ff70646670391df2599f1950b219eaa9eca5eae579dcdbe792747", + "dac_public_key": "043d9813b0e1fecb52df14580b5cb9edd5adceb4b142b927f7287bf9e167029f2bb19fc73e21218c3510b91959bfe4c9b0530e4da3081a93d0981f7fea28bb3b72" } diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/cd.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/cd.der index 4a6134d504a923..d00b9434da8a46 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/cd.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/dac-Cert.der index 94f1f236421e65..f1d76ce7610ca1 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/dac-Cert.pem index 11570b92365ed8..f1f5c8971f48cf 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzDCCAXOgAwIBAgIIeUpZBB9o7VMwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIBzDCCAXOgAwIBAgIIVg2NMaqRvN8wCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDAwQjEwIBcNMjIwNDI2MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMC8x +gqJ8AgIMBDAwQjEwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMC8x LTArBgNVBAMMJE1hdHRlciBEZXZlbCBEQUMgTXBpZF8wMEIxIE12aWRfRkZGMTBZ -MBMGByqGSM49AgEGCCqGSM49AwEHA0IABJUPeKyFf7tQDod2AsD0Id03WTm8sQ5P -KowETH0rTL/MUQXhYLfIm70v7bQGNPJzt0OgtGALMuV8Qb4DNYY3qISjYDBeMAwG -A1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBT4cA4LwxTHokHM -yFdMN93HXDfTBTAfBgNVHSMEGDAWgBQnCLl4sQ5OPiOcrw2Ud+CWGwSPqzAKBggq -hkjOPQQDAgNHADBEAiA2+ixT5wJc0ygfmhIL+94ortWkEisDppqHn763DEWEwQIg -JRE6jAeHmJVk1sYmeF/vPlfSZHE98z4Gj5bmh/x/IVQ= +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABIWMkD+Ug4B9PPc81FW4ujTVTquLawM3 +szXXFJXdEPaWFmuKwK3GWtSjXDQTJgZbIT98JI9M/AwxUv+QdWAdnVCjYDBeMAwG +A1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBSQaOIG9fJcSFTN +7kfhGfSKJLgVQzAfBgNVHSMEGDAWgBTbxw0HeyeB+qFGZxBhgYmZiMVtazAKBggq +hkjOPQQDAgNHADBEAiBt5V0DGrN+dKLdBag8dKSI8a9ln9ecu25Y0bB7f/GbnQIg +KrOBUG8Ly96pY3swE1LT68sShbiJKF5RD5XctgNCEnc= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/dac-Key.der index 9af57982c7e956..473d49b613f743 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/dac-Key.pem index 68490b693e41fb..bf67dd00fc2212 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIDzgnsKU5+31EKGlbMTI/K+6MkXtdBct9K+6OJqtGiItoAoGCCqGSM49 -AwEHoUQDQgAElQ94rIV/u1AOh3YCwPQh3TdZObyxDk8qjARMfStMv8xRBeFgt8ib -vS/ttAY08nO3Q6C0YAsy5XxBvgM1hjeohA== +MHcCAQEEIEUlSfHnDFz4hjpW5nFk4rW71TfAENYDkZt3WmUSFXBhoAoGCCqGSM49 +AwEHoUQDQgAEhYyQP5SDgH089zzUVbi6NNVOq4trAzezNdcUld0Q9pYWa4rArcZa +1KNcNBMmBlshP3wkj0z8DDFS/5B1YB2dUA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/pai-Cert.der index 981e9c8ed772f4..df78e8d5f0cba9 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/pai-Cert.pem index 7ab49654cb6156..323e22afc8d7b2 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIZxAvvLVv4dAwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIB0zCCAXqgAwIBAgIIY0hkFn57Ob0wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDAwQjEw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATq3AEM9Uyw89EUy5pPmK7741N0t1Aa -MInOnCjXTGn/Dy9dDDBFB6AazqzCD/tcXwAjCxF0YHTIelaPippagmC4o2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUJwi5 -eLEOTj4jnK8NlHfglhsEj6swHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIgMRC6Nx5N1EEcRYC5D8t1oid/Ln6jCW/Ok5Ld -KEnLQIUCIQCv04dnG5Z9SpkMXQQOg0Qvwep1rO/5erCd5j3xilOPxg== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQs49kjA/uYDD/G86Stcnf2Bd68L3t1 +/xZrmm8JMwbuf+SKVDXYqRjEtV8BoLXm/nu2W2tS5BZzE7uWl6nbXRTOo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU28cN +B3sngfqhRmcQYYGJmYjFbWswHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDRwAwRAIgTE1uIA/veJz/c7bkpeAxFybHmIFb8aVElxOp +VmZlFTICICeApLnNJAgz1YFnbQ2+QgU046TUNko6+MM/RDRaQPIi -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/pai-Key.der index 78b6a10d8a70e5..1bec7a000dd95c 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/pai-Key.pem index a78f411d039915..291a5c8971f237 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIMywPXTBNUAMKAyii/HEVEfiAxZxJs3/R8wbgt1mqCs4oAoGCCqGSM49 -AwEHoUQDQgAE6twBDPVMsPPRFMuaT5iu++NTdLdQGjCJzpwo10xp/w8vXQwwRQeg -Gs6swg/7XF8AIwsRdGB0yHpWj4qaWoJguA== +MHcCAQEEIG3E4ILZmuH5CpP6izCl+ksJ8jsggl9IES7HsNTQkUGRoAoGCCqGSM49 +AwEHoUQDQgAELOPZIwP7mAw/xvOkrXJ39gXevC97df8Wa5pvCTMG7n/kilQ12KkY +xLVfAaC15v57tltrUuQWcxO7lpep210Uzg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/test_case_vector.json index d620ab73a7729d..b68a1dd44c12de 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_14/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Fallback VID and PID encoding example: invalid PID and VID prefixes", "is_success_case": "false", - "dac_cert": "308201cc30820173a0030201020208794a59041f68ed53300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303432363030303030305a180f39393939313233313233353935395a302f312d302b06035504030c244d617474657220446576656c20444143204d7069645f30304231204d7669645f464646313059301306072a8648ce3d020106082a8648ce3d03010703420004950f78ac857fbb500e877602c0f421dd375939bcb10e4f2a8c044c7d2b4cbfcc5105e160b7c89bbd2fedb40634f273b743a0b4600b32e57c41be03358637a884a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414f8700e0bc314c7a241ccc8574c37ddc75c37d305301f0603551d230418301680142708b978b10e4e3e239caf0d9477e0961b048fab300a06082a8648ce3d0403020347003044022036fa2c53e7025cd3281f9a120bfbde28aed5a4122b03a69a879fbeb70c4584c1022025113a8c0787989564d6c626785fef3e57d264713df33e068f96e687fc7f2154", - "pai_cert": "308201d43082017aa003020102020867102fbcb56fe1d0300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004eadc010cf54cb0f3d114cb9a4f98aefbe35374b7501a3089ce9c28d74c69ff0f2f5d0c304507a01aceacc20ffb5c5f00230b11746074c87a568f8a9a5a8260b8a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604142708b978b10e4e3e239caf0d9477e0961b048fab301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502203110ba371e4dd4411c4580b90fcb75a2277f2e7ea3096fce9392dd2849cb4085022100afd387671b967d4a990c5d040e83442fc1ea75aceff97ab09de63df18a538fc6", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100831b9b9b9c6d589cdd0ec80ba19c5984a4cb81b6491d0000d8f589eeb3adf10e02201c040145b7d4979cb5e5927f80e9896ca1a2f4472ac719c401d57ee670acafae", - "dac_private_key": "3ce09ec294e7edf510a1a56cc4c8fcafba3245ed74172df4afba389aad1a222d", - "dac_public_key": "04950f78ac857fbb500e877602c0f421dd375939bcb10e4f2a8c044c7d2b4cbfcc5105e160b7c89bbd2fedb40634f273b743a0b4600b32e57c41be03358637a884" + "dac_cert": "308201cc30820173a0030201020208560d8d31aa91bcdf300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303532373030303030305a180f39393939313233313233353935395a302f312d302b06035504030c244d617474657220446576656c20444143204d7069645f30304231204d7669645f464646313059301306072a8648ce3d020106082a8648ce3d03010703420004858c903f9483807d3cf73cd455b8ba34d54eab8b6b0337b335d71495dd10f696166b8ac0adc65ad4a35c341326065b213f7c248f4cfc0c3152ff9075601d9d50a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604149068e206f5f25c4854cdee47e119f48a24b81543301f0603551d23041830168014dbc70d077b2781faa14667106181899988c56d6b300a06082a8648ce3d040302034700304402206de55d031ab37e74a2dd05a83c74a488f1af659fd79cbb6e58d1b07b7ff19b9d02202ab381506f0bcbdea9637b301352d3ebcb1285b889285e510f95dcb603421277", + "pai_cert": "308201d33082017aa0030201020208634864167e7b39bd300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200042ce3d92303fb980c3fc6f3a4ad7277f605debc2f7b75ff166b9a6f093306ee7fe48a5435d8a918c4b55f01a0b5e6fe7bb65b6b52e4167313bb9697a9db5d14cea366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414dbc70d077b2781faa14667106181899988c56d6b301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402204c4d6e200fef789cff73b6e4a5e0311726c798815bf1a5449713a9566665153202202780a4b9cd240833d581676d0dbe420534e3a4d4364a3af8c33f44345a40f222", + "certification_declaration": "3081e706092a864886f70d010702a081d93081d6020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402207d0bae88c626436b800173b592788d95ef3537cb221243de2721101e99bbc11802201d9bc69783677291529edd5afa4c3df3d5ed5f8c4514e7b3149b78b6ec29ffda", + "dac_private_key": "452549f1e70c5cf8863a56e67164e2b5bbd537c010d603919b775a6512157061", + "dac_public_key": "04858c903f9483807d3cf73cd455b8ba34d54eab8b6b0337b335d71495dd10f696166b8ac0adc65ad4a35c341326065b213f7c248f4cfc0c3152ff9075601d9d50" } diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/cd.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/cd.der index 5c361a1e4f80d3..9a993fb7995708 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/cd.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/dac-Cert.der index 3c702f3f89104c..00c423477ed9f7 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/dac-Cert.pem index dfaa5701772e1e..fc76279671c0ac 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIICBjCCAa2gAwIBAgIIXOBk8tjorLgwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIICBzCCAa2gAwIBAgIIbwEkPkVQQiEwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDAwQjEwIBcNMjIwNDI2MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMGkx +gqJ8AgIMBDAwQjEwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMGkx OzA5BgNVBAMMMkFDTUUgTWF0dGVyIERldmVsIERBQyA1Q0RBOTg5OSBNdmlkOkZG RjIgTXBpZDowMEIyMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8 -AgIMBDAwQjEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQgikx7krvdtSEwdPi4 -n7UtOqb4mL5VqNTsSKsmQ8wlkncxk9Ooo4r5xjqL7LowIOm3ccr9pjiAf6GHeZ6b -NU+1o2AwXjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQU -YiIUdqU9XdAcJWekJ5REHhoa8zAwHwYDVR0jBBgwFoAUNy+xQBmn4BRgXsWV8KCk -qDGXUOUwCgYIKoZIzj0EAwIDRwAwRAIgGJhA7y8O0PIUHbBROtjPiyD2t+4XeE4T -L9gVJmfLzwACIFa8SOpbfM0nghumx4j5MgulI57DQIbG51wVi5zJAWbH +AgIMBDAwQjEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASj5jHAGTvFGqBIyQwH +DExq9BfeBnBwcSI8IDU7a8rim3feUfR3wBn6J+0h6hgCqh2XDuYzG+6mtpQWErNH +4c/so2AwXjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQU +Z5szM3RMZw4kR5wDfYlxXdXfg4MwHwYDVR0jBBgwFoAUx+i3HGjb7lsGb3zJ5e9p +nbOA/wIwCgYIKoZIzj0EAwIDSAAwRQIhAIUs4cHLSglk+4N9UvsggxBnRC/Jkvck +ooCzq4QXa8sHAiAMXqtSq/Q+wcV10MpVm6S7WfU4M5zxhHyvdkDqTTxVpg== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/dac-Key.der index 3c59f4b2737d9f..b3d69672f2ae84 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/dac-Key.pem index a2247638c089aa..8617d66f7fd1d2 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIGPbdbiSSx/vROE6fxto6bmJX7jSrHkFdSeT6H6x2ZqEoAoGCCqGSM49 -AwEHoUQDQgAEIIpMe5K73bUhMHT4uJ+1LTqm+Ji+VajU7EirJkPMJZJ3MZPTqKOK -+cY6i+y6MCDpt3HK/aY4gH+hh3memzVPtQ== +MHcCAQEEIOjL+zFefFiuS4a1HjcEv+6gICmj3M0RFGKfO+dgP4bzoAoGCCqGSM49 +AwEHoUQDQgAEo+YxwBk7xRqgSMkMBwxMavQX3gZwcHEiPCA1O2vK4pt33lH0d8AZ ++iftIeoYAqodlw7mMxvupraUFhKzR+HP7A== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/pai-Cert.der index 095bc05771f6da..ba98f583cf0bf5 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/pai-Cert.pem index 9c16d6d630d4b3..1402f85e104a23 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1TCCAXqgAwIBAgIINVF/vWchoNkwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIB0zCCAXqgAwIBAgIICCXx5ufFkiQwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDAwQjEw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATP50OEIQVguxPWTavLBUzB+6crthjI -LwzgB6pHcP6kczcJw1Za4NSe/9qtyzTya/g+OZszQ45MNrQcwYSQrOkgo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUNy+x -QBmn4BRgXsWV8KCkqDGXUOUwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSQAwRgIhAMAXQNTtb5XAHQRgsuGvsmUkVIE0BvWMgdY+ -Gn1nZqZsAiEAuj4SrJnXdJAY6824t64nXjO/garMmjRgiJQCmQoPlrA= +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQVUfBZTQDbGqJIRgsQTK4McynQG0M/ +PjtMw/zfXjgDgHpB+QEOW+M+CcwdlbtFbPCe4oOkypsbLeIeq13f6LBXo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUx+i3 +HGjb7lsGb3zJ5e9pnbOA/wIwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDRwAwRAIgZq2VL1JhgY86boYVdxGDguQe5RQ0TKTgXgiC +K+a/YdYCIBFM13EVYK4MU+gY63zLhCKH5IqH6WmM5u/3Dbvdp3jK -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/pai-Key.der index f0aace17a2b462..ff4399994476c5 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/pai-Key.pem index be28bcbd23feda..070fdc24e92b7f 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIPCWnpyZnQ5NB97gK7YenfteJeYV3msaywO5JzUm0jo9oAoGCCqGSM49 -AwEHoUQDQgAEz+dDhCEFYLsT1k2rywVMwfunK7YYyC8M4AeqR3D+pHM3CcNWWuDU -nv/arcs08mv4PjmbM0OOTDa0HMGEkKzpIA== +MHcCAQEEIKGn/U/yv44VIdJtg8WCRSLpG+nnqbLotA/9W+/zs2sUoAoGCCqGSM49 +AwEHoUQDQgAEFVHwWU0A2xqiSEYLEEyuDHMp0BtDPz47TMP83144A4B6QfkBDlvj +PgnMHZW7RWzwnuKDpMqbGy3iHqtd3+iwVw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/test_case_vector.json index d45b0f7f232403..112dc298490cbe 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_15/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Mix of Fallback and Matter OID encoding for VID and PID: valid, Matter OIDs are used and wrong values in the common-name are ignored", "is_success_case": "true", - "dac_cert": "30820206308201ada00302010202085ce064f2d8e8acb8300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303432363030303030305a180f39393939313233313233353935395a3069313b303906035504030c3241434d45204d617474657220446576656c20444143203543444139383939204d7669643a46464632204d7069643a3030423231143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004208a4c7b92bbddb5213074f8b89fb52d3aa6f898be55a8d4ec48ab2643cc2592773193d3a8a38af9c63a8becba3020e9b771cafda638807fa187799e9b354fb5a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041462221476a53d5dd01c2567a42794441e1a1af330301f0603551d23041830168014372fb14019a7e014605ec595f0a0a4a8319750e5300a06082a8648ce3d04030203470030440220189840ef2f0ed0f2141db0513ad8cf8b20f6b7ee17784e132fd8152667cbcf00022056bc48ea5b7ccd27821ba6c788f9320ba5239ec34086c6e75c158b9cc90166c7", - "pai_cert": "308201d53082017aa003020102020835517fbd6721a0d9300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004cfe74384210560bb13d64dabcb054cc1fba72bb618c82f0ce007aa4770fea4733709c3565ae0d49effdaadcb34f26bf83e399b33438e4c36b41cc18490ace920a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414372fb14019a7e014605ec595f0a0a4a8319750e5301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100c01740d4ed6f95c01d0460b2e1afb2652454813406f58c81d63e1a7d6766a66c022100ba3e12ac99d7749018ebcdb8b7ae275e33bf81aacc9a3460889402990a0f96b0", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100c85114f6f5bac678c8b5ff3b150623fab2b07962d8d92d73bdad561f5b90595f02200283d0b54387d1159584ea27058def8ad90d03b54215a5a410b3d6c8d44e81ba", - "dac_private_key": "63db75b8924b1fef44e13a7f1b68e9b9895fb8d2ac7905752793e87eb1d99a84", - "dac_public_key": "04208a4c7b92bbddb5213074f8b89fb52d3aa6f898be55a8d4ec48ab2643cc2592773193d3a8a38af9c63a8becba3020e9b771cafda638807fa187799e9b354fb5" + "dac_cert": "30820207308201ada00302010202086f01243e45504221300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303532373030303030305a180f39393939313233313233353935395a3069313b303906035504030c3241434d45204d617474657220446576656c20444143203543444139383939204d7669643a46464632204d7069643a3030423231143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004a3e631c0193bc51aa048c90c070c4c6af417de06707071223c20353b6bcae29b77de51f477c019fa27ed21ea1802aa1d970ee6331beea6b6941612b347e1cfeca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414679b3333744c670e24479c037d89715dd5df8383301f0603551d23041830168014c7e8b71c68dbee5b066f7cc9e5ef699db380ff02300a06082a8648ce3d0403020348003045022100852ce1c1cb4a0964fb837d52fb20831067442fc992f724a280b3ab84176bcb0702200c5eab52abf43ec1c575d0ca559ba4bb59f538339cf1847caf7640ea4d3c55a6", + "pai_cert": "308201d33082017aa00302010202080825f1e6e7c59224300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200041551f0594d00db1aa248460b104cae0c7329d01b433f3e3b4cc3fcdf5e3803807a41f9010e5be33e09cc1d95bb456cf09ee283a4ca9b1b2de21eab5ddfe8b057a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414c7e8b71c68dbee5b066f7cc9e5ef699db380ff02301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020347003044022066ad952f5261818f3a6e861577118382e41ee514344ca4e05e08822be6bf61d60220114cd7711560ae0c53e818eb7ccb842287e48a87e9698ce6eff70dbbdda778ca", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450221009570dcfc63b8d0852959152c71929d5ef87ac156695b9e3bb23e480fc0ae93da0220166eaf33b177d4f8bb9527445698e16e0dd69228ecca0e8a9189a59cda068b55", + "dac_private_key": "e8cbfb315e7c58ae4b86b51e3704bfeea02029a3dccd1114629f3be7603f86f3", + "dac_public_key": "04a3e631c0193bc51aa048c90c070c4c6af417de06707071223c20353b6bcae29b77de51f477c019fa27ed21ea1802aa1d970ee6331beea6b6941612b347e1cfec" } diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/cd.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/cd.der index f62cfd3a0cf303..4cd994296c8261 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/cd.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/dac-Cert.der index f952cd10ae841b..8dde8cf9cb896a 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/dac-Cert.pem index 36a8ac156322db..5a10e8b92844ae 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIICBjCCAa2gAwIBAgIIfJsNKbSLL4gwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIICBjCCAa2gAwIBAgIILqhMbuW7NRAwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDAwQjEwIBcNMjIwNDI2MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMGkx +gqJ8AgIMBDAwQjEwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMGkx OzA5BgNVBAMMMkFDTUUgTWF0dGVyIERldmVsIERBQyA1Q0RBOTg5OSBNdmlkOkZG RjEgTXBpZDowMEIxMRQwEgYKKwYBBAGConwCAQwERkZGMjEUMBIGCisGAQQBgqJ8 -AgIMBDAwQjIwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQU67sqfpnukPi6K+y6 -yZ+kKtk3TtZ15N4RWgdutyCipyYfhmUOZeoSpFr2NSomM1Qp94/E0LkUU4wHrU4b -ZDNIo2AwXjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQU -b9p2D5OWgSFrKcmGzrpRTwi1gxswHwYDVR0jBBgwFoAUxJz+iNYtb8mQZfOAj9bU -boODNXowCgYIKoZIzj0EAwIDRwAwRAIfRuhtyH1xvBiWb1BFQbduKnID6+P+fXCj -zRKCsc+0BAIhAL8DvN/k/pl918K/lPcJOqvtoea+3COrGtZVH80oYtnN +AgIMBDAwQjIwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATXNHkP/pBT20mNbvdH +5d+FHIKSJyKbWyVNF2RlipV3oIfU3sMkjtEjn7efUB3rCf3d4/mAv/PCsSZEPTQi +U9rso2AwXjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQU +xn/TcEdBoTvDgJmIcoHFHxjciScwHwYDVR0jBBgwFoAUli12C+xZHaE8a3F+joC+ +MwKf1n4wCgYIKoZIzj0EAwIDRwAwRAIgPmv9jBeEVU31n3oMEu67aWozHN2BADr8 +lnBGQ/VbCVsCIEhtbu2xsvWYeUjh7Zb4u2xcBtjeT7kE0UC8IqzGAiC3 -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/dac-Key.der index 7e153e59f71d27..b3fc140b87f1e9 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/dac-Key.pem index 2fc5c4ddb3977f..3a54c78facf802 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIJYTRDd36VhGuLqgOtJcCH27ONwP6KhGPBcSoQQDuevBoAoGCCqGSM49 -AwEHoUQDQgAEFOu7Kn6Z7pD4uivsusmfpCrZN07WdeTeEVoHbrcgoqcmH4ZlDmXq -EqRa9jUqJjNUKfePxNC5FFOMB61OG2QzSA== +MHcCAQEEIHBo7nxxyWg9iCUortSMe+ZG2Kux2wmGdhOot2pYL7b2oAoGCCqGSM49 +AwEHoUQDQgAE1zR5D/6QU9tJjW73R+XfhRyCkicim1slTRdkZYqVd6CH1N7DJI7R +I5+3n1Ad6wn93eP5gL/zwrEmRD00IlPa7A== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/pai-Cert.der index d1eb3294ece5fd..2fc1f805324815 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/pai-Cert.pem index aa0694250038b5..6eea855ad059c1 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1DCCAXqgAwIBAgIIDyU+ifcHv/4wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIB1TCCAXqgAwIBAgIIUn994QSoiMQwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDAwQjEw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARE+E0LUeBEQ02ysB0ZhSSHzlVBWR/K -lo7GY6h9sAtcn+ojskC5BOffjI5v87MTqQJ82C7ebRN/2pRACHqBDIiTo2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUxJz+ -iNYtb8mQZfOAj9bUboODNXowHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSAAwRQIhALW+yUHOg5xQSBDYUT+w9GiuSKc/eO2MfNwT -OFRlK0RvAiBEprksKitIzAtdw1X5QF8Xr1eOfsrReV9vAi8J9CRWJQ== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARKR3he3lKGJxN2BqFip+WapWK1X5xP +fkIvYVUTfBWdXbjGc4xe1AC8qxUGHs1mCvDVAqShFiPnd7k2RVtAVgkqo2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUli12 +C+xZHaE8a3F+joC+MwKf1n4wHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSQAwRgIhANXFvE/hT8zTF7thlNPyKNrEfe/Vv5Gun4/A +rT8HNX5ZAiEAmsitBpHyUoQKGV61/gH3d2hBlF/zkFghYcCjdPw2FHs= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/pai-Key.der index d8f71fc5013113..e6e03966cba452 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/pai-Key.pem index ed06b7031256c8..6e40def81c40f7 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIJj/fN2bymJaAeuHXmXo69HAZxW4oMChvE0oPGMlU9f0oAoGCCqGSM49 -AwEHoUQDQgAERPhNC1HgRENNsrAdGYUkh85VQVkfypaOxmOofbALXJ/qI7JAuQTn -34yOb/OzE6kCfNgu3m0Tf9qUQAh6gQyIkw== +MHcCAQEEICzV2iUncZw5z5x9KYUkruZzVINW6gQMHND6QhjCFL5SoAoGCCqGSM49 +AwEHoUQDQgAESkd4Xt5ShicTdgahYqflmqVitV+cT35CL2FVE3wVnV24xnOMXtQA +vKsVBh7NZgrw1QKkoRYj53e5NkVbQFYJKg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/test_case_vector.json index 91b2dada402562..13b4cdc9afbd2f 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_16/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Mix of Fallback and Matter OID encoding for VID and PID: wrong, Correct values encoded in the common-name are ignored", "is_success_case": "false", - "dac_cert": "30820206308201ada00302010202087c9b0d29b48b2f88300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303432363030303030305a180f39393939313233313233353935395a3069313b303906035504030c3241434d45204d617474657220446576656c20444143203543444139383939204d7669643a46464631204d7069643a3030423131143012060a2b0601040182a27c02010c044646463231143012060a2b0601040182a27c02020c04303042323059301306072a8648ce3d020106082a8648ce3d0301070342000414ebbb2a7e99ee90f8ba2becbac99fa42ad9374ed675e4de115a076eb720a2a7261f86650e65ea12a45af6352a26335429f78fc4d0b914538c07ad4e1b643348a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604146fda760f939681216b29c986ceba514f08b5831b301f0603551d23041830168014c49cfe88d62d6fc99065f3808fd6d46e8383357a300a06082a8648ce3d0403020347003044021f46e86dc87d71bc18966f504541b76e2a7203ebe3fe7d70a3cd1282b1cfb404022100bf03bcdfe4fe997dd7c2bf94f7093aabeda1e6bedc23ab1ad6551fcd2862d9cd", - "pai_cert": "308201d43082017aa00302010202080f253e89f707bffe300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d0301070342000444f84d0b51e044434db2b01d19852487ce5541591fca968ec663a87db00b5c9fea23b240b904e7df8c8e6ff3b313a9027cd82ede6d137fda9440087a810c8893a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414c49cfe88d62d6fc99065f3808fd6d46e8383357a301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100b5bec941ce839c504810d8513fb0f468ae48a73f78ed8c7cdc133854652b446f022044a6b92c2a2b48cc0b5dc355f9405f17af578e7ecad1795f6f022f09f4245625", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450220317baf225761234a94320298ee01c255742e3ee44f8000593c3972a4b076fedd022100c2e1e3e5332e12306c9b7106921fbb66bab28fb4f14da1135ed0e1b885a683f4", - "dac_private_key": "9613443777e95846b8baa03ad25c087dbb38dc0fe8a8463c1712a10403b9ebc1", - "dac_public_key": "0414ebbb2a7e99ee90f8ba2becbac99fa42ad9374ed675e4de115a076eb720a2a7261f86650e65ea12a45af6352a26335429f78fc4d0b914538c07ad4e1b643348" + "dac_cert": "30820206308201ada00302010202082ea84c6ee5bb3510300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303532373030303030305a180f39393939313233313233353935395a3069313b303906035504030c3241434d45204d617474657220446576656c20444143203543444139383939204d7669643a46464631204d7069643a3030423131143012060a2b0601040182a27c02010c044646463231143012060a2b0601040182a27c02020c04303042323059301306072a8648ce3d020106082a8648ce3d03010703420004d734790ffe9053db498d6ef747e5df851c829227229b5b254d1764658a9577a087d4dec3248ed1239fb79f501deb09fddde3f980bff3c2b126443d342253daeca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414c67fd3704741a13bc38099887281c51f18dc8927301f0603551d23041830168014962d760bec591da13c6b717e8e80be33029fd67e300a06082a8648ce3d040302034700304402203e6bfd8c1784554df59f7a0c12eebb696a331cdd81003afc96704643f55b095b0220486d6eedb1b2f5987948e1ed96f8bb6c5c06d8de4fb904d140bc22acc60220b7", + "pai_cert": "308201d53082017aa0030201020208527f7de104a888c4300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200044a47785ede528627137606a162a7e59aa562b55f9c4f7e422f6155137c159d5db8c6738c5ed400bcab15061ecd660af0d502a4a11623e777b936455b4056092aa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414962d760bec591da13c6b717e8e80be33029fd67e301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100d5c5bc4fe14fccd317bb6194d3f228dac47defd5bf91ae9f8fc0ad3f07357e590221009ac8ad0691f252840a195eb5fe01f7776841945ff390582161c0a374fc36147b", + "certification_declaration": "3081e706092a864886f70d010702a081d93081d6020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204463044022054d4f8eb89bc45c49a46e5a1ec8fe2158f2f2f0576aa81502badc79126b278fb02206c1d4ac2a3f5c0ef5494b61e2ee73ddd7db92b5eb36c06d71d07867eb255091f", + "dac_private_key": "7068ee7c71c9683d882528aed48c7be646d8abb1db09867613a8b76a582fb6f6", + "dac_public_key": "04d734790ffe9053db498d6ef747e5df851c829227229b5b254d1764658a9577a087d4dec3248ed1239fb79f501deb09fddde3f980bff3c2b126443d342253daec" } diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/cd.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/cd.der index 7a1ba7907db3f7..f0a1ed6f790226 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/cd.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/dac-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/dac-Cert.der index 0e431fb8371fc3..1bbbd2bd4bf5da 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/dac-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/dac-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/dac-Cert.pem index f4462bff80da84..b99938cdf22f88 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIByDCCAW6gAwIBAgIIXdG00VUDD6IwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP +MIIBxzCCAW6gAwIBAgIIWJdI46o6regwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDAwQjEwIBcNMjIwNDI2MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCox +gqJ8AgIMBDAwQjEwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCox EjAQBgNVBAMMCU12aWQ6RkZGMTEUMBIGCisGAQQBgqJ8AgIMBDAwQjEwWTATBgcq -hkjOPQIBBggqhkjOPQMBBwNCAAS73wKHoikvW0tlwSlYPoMbJle5eXjPCsRaMGvP -2BmjwjBEWWTrskTtZXrdyS94KUnNhRZ4w/bmppMj0NRSQkg8o2AwXjAMBgNVHRMB -Af8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUiRfYHNvrM9JHBvoCgTFk -MbqYiJ4wHwYDVR0jBBgwFoAU7qywzSqs/erUx9kxt9sZ2fjX9YswCgYIKoZIzj0E -AwIDSAAwRQIgP9HXg5huHtYD2HLRnW42tbK/HSXuS5TVuI8dw9hH9SMCIQCuG8VS -7sEf1leaOpV5qCoYXowCHqrDKgafbrgUvialXQ== +hkjOPQIBBggqhkjOPQMBBwNCAARun5LEBJtF1wRawWwfl5LbAgz8DAmLhF5CdB/Q +toBUV+BZUkbEhOzu33SDDh3Av6A3aHp4YtGsjq66mjXD6ULso2AwXjAMBgNVHRMB +Af8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUP6OaAF+6k5RmBxCbYsZL +RabFrkAwHwYDVR0jBBgwFoAUBXJp7MeSkoMdBZ2XEj4CyZaCDzEwCgYIKoZIzj0E +AwIDRwAwRAIgavjZDZL1OtS2kOhwHvbNmytoUndniIARtDUulohB6AgCIFg9jmEG +vMEoW0OJKVpmR2g1LjebJZBMzbPorFWgYZkJ -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/dac-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/dac-Key.der index e613ac65347ea8..27e69e2364f438 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/dac-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/dac-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/dac-Key.pem index 567cfdf9572fbc..e20753c97fe17a 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIACoFPEU5VFGtqn7mUUXXEy084aLzmvde5WsNF6Ua9inoAoGCCqGSM49 -AwEHoUQDQgAEu98Ch6IpL1tLZcEpWD6DGyZXuXl4zwrEWjBrz9gZo8IwRFlk67JE -7WV63ckveClJzYUWeMP25qaTI9DUUkJIPA== +MHcCAQEEIOcY+vKVDJQhnkQpPvm45uMWZ5uZtKuWnsSW+r6eReWeoAoGCCqGSM49 +AwEHoUQDQgAEbp+SxASbRdcEWsFsH5eS2wIM/AwJi4ReQnQf0LaAVFfgWVJGxITs +7t90gw4dwL+gN2h6eGLRrI6uupo1w+lC7A== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/pai-Cert.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/pai-Cert.der index ecdf398b3f75a1..fc926827bedb51 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/pai-Cert.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/pai-Cert.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/pai-Cert.pem index 1ec11f3f0a6dc3..9a5029e1967932 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB1TCCAXqgAwIBAgIIAsAW2xzYp+QwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIB1TCCAXqgAwIBAgIIJ65pOPwh5j4wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDAwQjEw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQK06E3EaPnABJxv99fv6fIn9J7obIN -0/8gHTT+X0cLQszc3RWrtFqBXla62TwjM/+T8KKdSHsEKM7bKrVZOBV6o2YwZDAS -BgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU7qyw -zSqs/erUx9kxt9sZ2fjX9YswHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh -cX4wCgYIKoZIzj0EAwIDSQAwRgIhAP3kuG+TMl8STCkXwCw01bhfqX8LsTW+zP9s -QKSgzl8AAiEAhpFT9cxaJQ7Paxr6r5jQfPwXlADsaMZGkHw7cH94JmM= +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS+3YFhrcIC42Od4N8eNddzcux3c8ag +KZuZHfDFPFGlrIfkMZK1cC4+Pj0UdUBld/RnP9oh23vx8fOW1fPe71k6o2YwZDAS +BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUBXJp +7MeSkoMdBZ2XEj4CyZaCDzEwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh +cX4wCgYIKoZIzj0EAwIDSQAwRgIhAImacmfJUf9w4ARfKwI0Rfa/7Wo2TD736w04 +fFedhBMgAiEA76BhBcj0oI0iSpVK5vdoGrwXvWwUyAaZHIK4uPnpVGo= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/pai-Key.der b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/pai-Key.der index bc92a6f500746a..a5965d49ede14e 100644 Binary files a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/pai-Key.der and b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/pai-Key.pem b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/pai-Key.pem index 0180add7908744..8987613ea9ef49 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEICf17u9PCqqaR3ID40KIUtjJcf6jf8ipyle/SU3csaJpoAoGCCqGSM49 -AwEHoUQDQgAECtOhNxGj5wAScb/fX7+nyJ/Se6GyDdP/IB00/l9HC0LM3N0Vq7Ra -gV5Wutk8IzP/k/CinUh7BCjO2yq1WTgVeg== +MHcCAQEEIPN3fpsZ/yNsdiy+AcUyuNWcwkF9k/yQnSGkBvKYTFBKoAoGCCqGSM49 +AwEHoUQDQgAEvt2BYa3CAuNjneDfHjXXc3Lsd3PGoCmbmR3wxTxRpayH5DGStXAu +Pj49FHVAZXf0Zz/aIdt78fHzltXz3u9ZOg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/test_case_vector.json b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/test_case_vector.json index 03b5471905d8d5..ebdd7328468015 100644 --- a/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_dac_vidpid_fallback_encoding_17/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "DAC Test Vector: Mix of Fallback and Matter OID encoding for VID and PID: invalid, PID is using Matter OID then VID must also use Matter OID", "is_success_case": "false", - "dac_cert": "308201c83082016ea00302010202085dd1b4d155030fa2300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303432363030303030305a180f39393939313233313233353935395a302a3112301006035504030c094d7669643a4646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004bbdf0287a2292f5b4b65c129583e831b2657b97978cf0ac45a306bcfd819a3c230445964ebb244ed657addc92f782949cd851678c3f6e6a69323d0d45242483ca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604148917d81cdbeb33d24706fa0281316431ba98889e301f0603551d23041830168014eeacb0cd2aacfdead4c7d931b7db19d9f8d7f58b300a06082a8648ce3d040302034800304502203fd1d783986e1ed603d872d19d6e36b5b2bf1d25ee4b94d5b88f1dc3d847f523022100ae1bc552eec11fd6579a3a9579a82a185e8c021eaac32a069f6eb814be26a55d", - "pai_cert": "308201d53082017aa003020102020802c016db1cd8a7e4300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200040ad3a13711a3e7001271bfdf5fbfa7c89fd27ba1b20dd3ff201d34fe5f470b42ccdcdd15abb45a815e56bad93c2333ff93f0a29d487b0428cedb2ab55938157aa366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414eeacb0cd2aacfdead4c7d931b7db19d9f8d7f58b301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100fde4b86f93325f124c2917c02c34d5b85fa97f0bb135beccff6c40a4a0ce5f00022100869153f5cc5a250ecf6b1afaaf98d07cfc179400ec68c646907c3b707f782663", - "certification_declaration": "3081e706092a864886f70d010702a081d93081d6020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204463044022060bf2a921c8883fa2cb925882511878b90b17b4fe38f5734cb94f66162a50fd8022014a54c3bdf86bddecb42efb620d88c7dfff9ad7ac863ea5442fc784b45b65032", - "dac_private_key": "00a814f114e55146b6a9fb9945175c4cb4f3868bce6bdd7b95ac345e946bd8a7", - "dac_public_key": "04bbdf0287a2292f5b4b65c129583e831b2657b97978cf0ac45a306bcfd819a3c230445964ebb244ed657addc92f782949cd851678c3f6e6a69323d0d45242483c" + "dac_cert": "308201c73082016ea0030201020208589748e3aa3aade8300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303532373030303030305a180f39393939313233313233353935395a302a3112301006035504030c094d7669643a4646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200046e9f92c4049b45d7045ac16c1f9792db020cfc0c098b845e42741fd0b6805457e0595246c484eceedf74830e1dc0bfa037687a7862d1ac8eaeba9a35c3e942eca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604143fa39a005fba93946607109b62c64b45a6c5ae40301f0603551d23041830168014057269ecc79292831d059d97123e02c996820f31300a06082a8648ce3d040302034700304402206af8d90d92f53ad4b690e8701ef6cd9b2b68527767888011b4352e968841e8080220583d8e6106bcc1285b4389295a664768352e379b25904ccdb3e8ac55a0619909", + "pai_cert": "308201d53082017aa003020102020827ae6938fc21e63e300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004bedd8161adc202e3639de0df1e35d77372ec7773c6a0299b991df0c53c51a5ac87e43192b5702e3e3e3d1475406577f4673fda21db7bf1f1f396d5f3deef593aa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414057269ecc79292831d059d97123e02c996820f31301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100899a7267c951ff70e0045f2b023445f6bfed6a364c3ef7eb0d387c579d841320022100efa06105c8f4a08d224a954ae6f7681abc17bd6c14c806991c82b8b8f9e9546a", + "certification_declaration": "3081e706092a864886f70d010702a081d93081d6020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204463044022077056b7ebcad73f44ed82b436b0b0b61417a4a2ec7e4529ba7536b9a144229cd022000f2b776c7c311e04bf41162046c1bd48ecc28253e750aba0c323ef4951b96cf", + "dac_private_key": "e718faf2950c94219e44293ef9b8e6e316679b99b4ab969ec496fabe9e45e59e", + "dac_public_key": "046e9f92c4049b45d7045ac16c1f9792db020cfc0c098b845e42741fd0b6805457e0595246c484eceedf74830e1dc0bfa037687a7862d1ac8eaeba9a35c3e942ec" } diff --git a/credentials/development/commissioner_dut/struct_pai_cert_version_v2/cd.der b/credentials/development/commissioner_dut/struct_pai_cert_version_v2/cd.der index d778884e3d3005..de49cc02f16eae 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_cert_version_v2/cd.der and b/credentials/development/commissioner_dut/struct_pai_cert_version_v2/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_cert_version_v2/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_cert_version_v2/dac-Cert.der index 0a687c9d4373a9..657e741c914e17 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_cert_version_v2/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_cert_version_v2/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_cert_version_v2/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_cert_version_v2/dac-Cert.pem index d19bbbc85d7586..d4b32595c2ad82 100644 --- a/credentials/development/commissioner_dut/struct_pai_cert_version_v2/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_cert_version_v2/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzjCCAXSgAwIBAgIICAlLtkhCW7AwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzjCCAXSgAwIBAgIIIQQosaiMfqUwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARXl/kIR2vV1FBWK0KigaCUf3kW2c3Y -orRR4i4BpqEyedhgegtOwGy+P+MU14rR+UYsBIShAM5GPWAaQqsw2krwo2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUg63TjfAbkMiV -dobJKDIpb49cTPAwHwYDVR0jBBgwFoAUKJbJZKBWst3K0Wz0RToQ3eZiQi4wCgYI -KoZIzj0EAwIDSAAwRQIgYsK5UWoMV1nmOyR83HwG6eZ9e4HcN93JsZe0FmEP5BEC -IQC3XGWcX6506LHcuzOjA50UoAh9gU1WL+lvvzUr6Lhllw== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASTzbtW5xWVMe8ENwY9+P/Ix7h9Fssl +UVfa3z4Z7yr0YMtPdk0JQz/oHu8j4ByukxrTWuDZ/kjveS+bCvxRLzxLo2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUUqlr9P+3zI6e +x/RNxkfkszSkvoQwHwYDVR0jBBgwFoAUKWjZp2GFytRjh8q+GNBKO8Xp1YcwCgYI +KoZIzj0EAwIDSAAwRQIhAPVLrITl7ZpQW1IsJXIeHFugXpNw/tN4VO0MRjdYyhG9 +AiAu6GBIexM7uiMMuhNU09HYjKtcC8RpNgaHcDqVB93VbQ== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_cert_version_v2/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_cert_version_v2/dac-Key.der index b1d69f662c4032..fe2eaa133b056c 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_cert_version_v2/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_cert_version_v2/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_cert_version_v2/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_cert_version_v2/dac-Key.pem index 5c0db1110e15b2..d7d7995712c4c4 100644 --- a/credentials/development/commissioner_dut/struct_pai_cert_version_v2/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_cert_version_v2/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIFzdIcrGZ0c5gSYp0hIPxZO65ulrsPEfGjf66eweEgyKoAoGCCqGSM49 -AwEHoUQDQgAEV5f5CEdr1dRQVitCooGglH95FtnN2KK0UeIuAaahMnnYYHoLTsBs -vj/jFNeK0flGLASEoQDORj1gGkKrMNpK8A== +MHcCAQEEIHiFi9M4HFU+qBFvIPbEQ/bKoAMWmdJX+7Nt5ReTvAXtoAoGCCqGSM49 +AwEHoUQDQgAEk827VucVlTHvBDcGPfj/yMe4fRbLJVFX2t8+Ge8q9GDLT3ZNCUM/ +6B7vI+AcrpMa01rg2f5I73kvmwr8US88Sw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_cert_version_v2/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_cert_version_v2/pai-Cert.der index a65a6aa75202dc..47e33bfbcd43b7 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_cert_version_v2/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_cert_version_v2/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_cert_version_v2/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_cert_version_v2/pai-Cert.pem index 972d760ce2045b..559552f4d657be 100644 --- a/credentials/development/commissioner_dut/struct_pai_cert_version_v2/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_cert_version_v2/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvTCCAWSgAwIBAQIIYKz7I56qQ18wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvzCCAWSgAwIBAQIIHGApekU9qSQwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABEraEsG33MgSHeIiqvdtmQSG5O6eCUJaa9NyPqFdJD0F/NkHkjAY+fB7s0mu -I0n0Fh8hHvTaTmJw2Xc6Q69I6LCjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQolslkoFay3crRbPRFOhDd5mJCLjAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNHADBEAiB8 -GxGn+EHkNbz9apnCYFXNo/pF72jRES92r5BGCY9vjAIgD2i233tU5jUWxXCcmvEJ -K0tlAUY+DZ0N8zmTrRZhtQE= +A0IABI6jR8dpr47vQIoStJTPtvtvPfUNWUhSwkulQWotrHPWCP3DAwqkqttIKCx9 +/Ku8CWSfthSfAvf4Q2KNVZnQNTOjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQpaNmnYYXK1GOHyr4Y0Eo7xenVhzAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNJADBGAiEA +xJIFHJqWy0OQI+k9Vuup5dFkXWvy5HzjjQjs21NCticCIQCh7dpI/vZB1QFOK0dp +kMy8Oa5yvHUFzaCHLD3LjphGdA== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_cert_version_v2/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_cert_version_v2/pai-Key.der index fd1cfd8385346d..c50ea97018a7e9 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_cert_version_v2/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_cert_version_v2/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_cert_version_v2/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_cert_version_v2/pai-Key.pem index 492f422a4c5fcf..76137245ab7047 100644 --- a/credentials/development/commissioner_dut/struct_pai_cert_version_v2/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_cert_version_v2/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIFlS3ftu/h3XnZV3IdOtaL3vCK1g438DNxART9CDvm45oAoGCCqGSM49 -AwEHoUQDQgAEStoSwbfcyBId4iKq922ZBIbk7p4JQlpr03I+oV0kPQX82QeSMBj5 -8HuzSa4jSfQWHyEe9NpOYnDZdzpDr0josA== +MHcCAQEEIIu0g+ZguvJ0S6tXETpRRlE2JmHxGqHAaYvN8HxuuFL8oAoGCCqGSM49 +AwEHoUQDQgAEjqNHx2mvju9AihK0lM+2+2899Q1ZSFLCS6VBai2sc9YI/cMDCqSq +20goLH38q7wJZJ+2FJ8C9/hDYo1VmdA1Mw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_cert_version_v2/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_cert_version_v2/test_case_vector.json index 4bf9fa0697b35b..866f5931944842 100644 --- a/credentials/development/commissioner_dut/struct_pai_cert_version_v2/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_cert_version_v2/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Invalid certificate version field set to v2(1)", "is_success_case": "false", - "dac_cert": "308201ce30820174a003020102020808094bb648425bb0300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200045797f908476bd5d450562b42a281a0947f7916d9cdd8a2b451e22e01a6a13279d8607a0b4ec06cbe3fe314d78ad1f9462c0484a100ce463d601a42ab30da4af0a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041483add38df01b90c8957686c92832296f8f5c4cf0301f0603551d230418301680142896c964a056b2ddcad16cf4453a10dde662422e300a06082a8648ce3d0403020348003045022062c2b9516a0c5759e63b247cdc7c06e9e67d7b81dc37ddc9b197b416610fe411022100b75c659c5fae74e8b1dcbb33a3039d14a0087d814d562fe96fbf352be8b86597", - "pai_cert": "308201bd30820164a003020101020860acfb239eaa435f300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200044ada12c1b7dcc8121de222aaf76d990486e4ee9e09425a6bd3723ea15d243d05fcd907923018f9f07bb349ae2349f4161f211ef4da4e6270d9773a43af48e8b0a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604142896c964a056b2ddcad16cf4453a10dde662422e301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402207c1b11a7f841e435bcfd6a99c26055cda3fa45ef68d1112f76af9046098f6f8c02200f68b6df7b54e63516c5709c9af1092b4b6501463e0d9d0df33993ad1661b501", - "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100c30e031e12d3d890b9619084f2085b6e1d90116536e5f76738d41fa51fb53619022042738ca2e1e4418427417e49b1eb716db6eff97bd2d9a800f5404e33ba365387", - "dac_private_key": "5cdd21cac6674739812629d2120fc593bae6e96bb0f11f1a37fae9ec1e120c8a", - "dac_public_key": "045797f908476bd5d450562b42a281a0947f7916d9cdd8a2b451e22e01a6a13279d8607a0b4ec06cbe3fe314d78ad1f9462c0484a100ce463d601a42ab30da4af0" + "dac_cert": "308201ce30820174a0030201020208210428b1a88c7ea5300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000493cdbb56e7159531ef0437063df8ffc8c7b87d16cb255157dadf3e19ef2af460cb4f764d09433fe81eef23e01cae931ad35ae0d9fe48ef792f9b0afc512f3c4ba360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041452a96bf4ffb7cc8e9ec7f44dc647e4b334a4be84301f0603551d230418301680142968d9a76185cad46387cabe18d04a3bc5e9d587300a06082a8648ce3d0403020348003045022100f54bac84e5ed9a505b522c25721e1c5ba05e9370fed37854ed0c463758ca11bd02202ee860487b133bba230cba1354d3d1d88cab5c0bc469360687703a9507ddd56d", + "pai_cert": "308201bf30820164a00302010102081c60297a453da924300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200048ea347c769af8eef408a12b494cfb6fb6f3df50d594852c24ba5416a2dac73d608fdc3030aa4aadb48282c7dfcabbc09649fb6149f02f7f843628d5599d03533a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604142968d9a76185cad46387cabe18d04a3bc5e9d587301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100c492051c9a96cb439023e93d56eba9e5d1645d6bf2e47ce38d08ecdb5342b627022100a1edda48fef641d5014e2b476990ccbc39ae72bc7505cda0872c3dcb8e984674", + "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100f920383fe42cbee0e7c30cf3ef1c30b0aa0ff7db82a8be6e3b1f3f45471c8525022100f1c8d07ae266390db2af0376ed7723636f8afb596360c6307a8bc1e1fd448082", + "dac_private_key": "78858bd3381c553ea8116f20f6c443f6caa0031699d257fbb36de51793bc05ed", + "dac_public_key": "0493cdbb56e7159531ef0437063df8ffc8c7b87d16cb255157dadf3e19ef2af460cb4f764d09433fe81eef23e01cae931ad35ae0d9fe48ef792f9b0afc512f3c4b" } diff --git a/credentials/development/commissioner_dut/struct_pai_cert_version_v3/cd.der b/credentials/development/commissioner_dut/struct_pai_cert_version_v3/cd.der index 6510d758d6e1a2..9557dceea446ef 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_cert_version_v3/cd.der and b/credentials/development/commissioner_dut/struct_pai_cert_version_v3/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_cert_version_v3/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_cert_version_v3/dac-Cert.der index a0161d0cfacff5..d956a202ad8218 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_cert_version_v3/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_cert_version_v3/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_cert_version_v3/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_cert_version_v3/dac-Cert.pem index ac2b0964ce8867..f9ca7f0f303e15 100644 --- a/credentials/development/commissioner_dut/struct_pai_cert_version_v3/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_cert_version_v3/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzjCCAXSgAwIBAgIISFfX5j7PwncwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzjCCAXSgAwIBAgIIEthVub1tYWgwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARbNnpFUTHckMcYjmq6c141zxJEXUmm -F85z/zCz130MbY0NWEPiezYu+otEbo5tUphHtQQEGX8AZCpNAV0vzfA+o2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUbeZRd1Y2cVBd -E8/Ruu4vt7vcNXMwHwYDVR0jBBgwFoAUA0sAyFm9N3M/oUacaxjXJjxVaaYwCgYI -KoZIzj0EAwIDSAAwRQIhAPam/7tDrclf5q36GaEsGmRkIYxdj/BazbvGtyWdiNGW -AiAdKrWG8hKOy5ycnOlcvW83FJnZg538/iQRgHyLinLmiw== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQeoEYlRQofZo3k39AZjQ0jDMkIOrqf +kDvXyixrZmCu8Cu6WFLVoUOlHyKxQ7V92Rob1i8gyG2GtxB+QLDfVvmRo2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUU2AiZ5uqESqU +g9s5lz6RNz8PGJkwHwYDVR0jBBgwFoAUvdwOk95U4BkPNT7vV7cFYTSDPCQwCgYI +KoZIzj0EAwIDSAAwRQIgI3EscIACjq9SX/siigIpIK0Png072WfPBch/0Cp2su0C +IQDhkdRqyBYQq3ryio3tft4hVnyV3OpYI+A8mmhOqFckqg== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_cert_version_v3/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_cert_version_v3/dac-Key.der index 0e6ed225129327..605f0034a02e59 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_cert_version_v3/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_cert_version_v3/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_cert_version_v3/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_cert_version_v3/dac-Key.pem index 1a735ef3057ea8..5c7fdff0dff151 100644 --- a/credentials/development/commissioner_dut/struct_pai_cert_version_v3/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_cert_version_v3/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEID5ng+wku5QaeUhwRacgMe52t/qQizZ7mlC4qNVY8z3loAoGCCqGSM49 -AwEHoUQDQgAEWzZ6RVEx3JDHGI5qunNeNc8SRF1JphfOc/8ws9d9DG2NDVhD4ns2 -LvqLRG6ObVKYR7UEBBl/AGQqTQFdL83wPg== +MHcCAQEEIGmEIh0P4BYUBihLw/e6BKZ3QXmNzwlTUOOi9ULgzlezoAoGCCqGSM49 +AwEHoUQDQgAEHqBGJUUKH2aN5N/QGY0NIwzJCDq6n5A718osa2ZgrvArulhS1aFD +pR8isUO1fdkaG9YvIMhthrcQfkCw31b5kQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_cert_version_v3/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_cert_version_v3/pai-Cert.der index 808a8252ca7eee..e739cf1d4db27c 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_cert_version_v3/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_cert_version_v3/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_cert_version_v3/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_cert_version_v3/pai-Cert.pem index d1b515e7cbbade..ad3109b4dd59a5 100644 --- a/credentials/development/commissioner_dut/struct_pai_cert_version_v3/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_cert_version_v3/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvjCCAWSgAwIBAgIIW/tsGvPlBoAwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvjCCAWSgAwIBAgIIObLsKM1rYZEwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABGpV+P9dLdTYR48gUgPMhDU2jVZ3ehRefgCpOUMn7H2UfXCeNT0ttuKKlpCe -8MTcfYTrj3TLriqRC5nGcpi6prWjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQDSwDIWb03cz+hRpxrGNcmPFVppjAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiBf -XYsBVHU1zLV29zM4mr4wgV2JpHt5MDf5Rddp21ddMQIhAN9Lss1rcWT+8yAABvG9 -/fXiyx+XTOX4iHpYvaPubnHn +A0IABJ0oDQdcA5FC+pv0Y7DSUQJyjLF2WjhB0PUwis1pvzj9NE96u4PKKqxfTDsX +w1uZckn0XRgpaeW17Kb/0//OJSijZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS93A6T3lTgGQ81Pu9XtwVhNIM8JDAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiAC +7HC5PSYWgnWHq90YMje7FkMkhMqsg/ebSYjNsa/XCAIhANt++GWqNhWfGWbIj5xh +68/4chpK2XclEYK+KrmI3QZ2 -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_cert_version_v3/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_cert_version_v3/pai-Key.der index 8304a0243bd8b9..3ba50131683186 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_cert_version_v3/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_cert_version_v3/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_cert_version_v3/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_cert_version_v3/pai-Key.pem index cdc875e01ee636..c7139050b37e6d 100644 --- a/credentials/development/commissioner_dut/struct_pai_cert_version_v3/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_cert_version_v3/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIEDLNJaNo9dW0MJG11dW1dQo9bMTOqV2V9ERchH50vFjoAoGCCqGSM49 -AwEHoUQDQgAEalX4/10t1NhHjyBSA8yENTaNVnd6FF5+AKk5QyfsfZR9cJ41PS22 -4oqWkJ7wxNx9hOuPdMuuKpELmcZymLqmtQ== +MHcCAQEEICMppPWV/ek9fNr8GcAKG+30oTeBrYzQ/iK40SntxxYioAoGCCqGSM49 +AwEHoUQDQgAEnSgNB1wDkUL6m/RjsNJRAnKMsXZaOEHQ9TCKzWm/OP00T3q7g8oq +rF9MOxfDW5lySfRdGClp5bXspv/T/84lKA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_cert_version_v3/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_cert_version_v3/test_case_vector.json index fdd5b864b600be..d70ec1d9ce29dc 100644 --- a/credentials/development/commissioner_dut/struct_pai_cert_version_v3/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_cert_version_v3/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Valid certificate version field set to v3(2)", "is_success_case": "true", - "dac_cert": "308201ce30820174a00302010202084857d7e63ecfc277300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200045b367a455131dc90c7188e6aba735e35cf12445d49a617ce73ff30b3d77d0c6d8d0d5843e27b362efa8b446e8e6d529847b50404197f00642a4d015d2fcdf03ea360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604146de65177563671505d13cfd1baee2fb7bbdc3573301f0603551d23041830168014034b00c859bd37733fa1469c6b18d7263c5569a6300a06082a8648ce3d0403020348003045022100f6a6ffbb43adc95fe6adfa19a12c1a6464218c5d8ff05acdbbc6b7259d88d19602201d2ab586f2128ecb9c9c9ce95cbd6f371499d9839dfcfe2411807c8b8a72e68b", - "pai_cert": "308201be30820164a00302010202085bfb6c1af3e50680300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200046a55f8ff5d2dd4d8478f205203cc8435368d56777a145e7e00a9394327ec7d947d709e353d2db6e28a96909ef0c4dc7d84eb8f74cbae2a910b99c67298baa6b5a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414034b00c859bd37733fa1469c6b18d7263c5569a6301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502205f5d8b01547535ccb576f733389abe30815d89a47b793037f945d769db575d31022100df4bb2cd6b7164fef3200006f1bdfdf5e2cb1f974ce5f8887a58bda3ee6e71e7", - "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502201811db54cf70015fcf78bc15282cf7cce1a4f6199e863024df03f6395179b6e5022100a0142250bab406a532be1664b47bdf42c7a65c022abc9e445e97e0284b338167", - "dac_private_key": "3e6783ec24bb941a79487045a72031ee76b7fa908b367b9a50b8a8d558f33de5", - "dac_public_key": "045b367a455131dc90c7188e6aba735e35cf12445d49a617ce73ff30b3d77d0c6d8d0d5843e27b362efa8b446e8e6d529847b50404197f00642a4d015d2fcdf03e" + "dac_cert": "308201ce30820174a003020102020812d855b9bd6d6168300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200041ea04625450a1f668de4dfd0198d0d230cc9083aba9f903bd7ca2c6b6660aef02bba5852d5a143a51f22b143b57dd91a1bd62f20c86d86b7107e40b0df56f991a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414536022679baa112a9483db39973e91373f0f1899301f0603551d23041830168014bddc0e93de54e0190f353eef57b7056134833c24300a06082a8648ce3d0403020348003045022023712c7080028eaf525ffb228a022920ad0f9e0d3bd967cf05c87fd02a76b2ed022100e191d46ac81610ab7af28a8ded7ede21567c95dcea5823e03c9a684ea85724aa", + "pai_cert": "308201be30820164a003020102020839b2ec28cd6b6191300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200049d280d075c039142fa9bf463b0d25102728cb1765a3841d0f5308acd69bf38fd344f7abb83ca2aac5f4c3b17c35b997249f45d182969e5b5eca6ffd3ffce2528a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414bddc0e93de54e0190f353eef57b7056134833c24301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022002ec70b93d2616827587abdd183237bb16432484caac83f79b4988cdb1afd708022100db7ef865aa36159f1966c88f9c61ebcff8721a4ad977251182be2ab988dd0676", + "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100bd7611b8c95ea21de5ed69e3564174766ada86fc80b72e0faaa7f2cc44d3a8f70221008a74964531575fc1285818cca8dca8150776fb7f398c211d910e161e4e456ea4", + "dac_private_key": "6984221d0fe0161406284bc3f7ba04a67741798dcf095350e3a2f542e0ce57b3", + "dac_public_key": "041ea04625450a1f668de4dfd0198d0d230cc9083aba9f903bd7ca2c6b6660aef02bba5852d5a143a51f22b143b57dd91a1bd62f20c86d86b7107e40b0df56f991" } diff --git a/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/cd.der b/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/cd.der index 41bc7731ca1f36..3eae714755b35e 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/cd.der and b/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/dac-Cert.der index 651eba7f8f629b..67fe89c0aa09ad 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/dac-Cert.pem index c5fb322462e6c0..6a66e14a45b82c 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzzCCAXSgAwIBAgIIdkwxeuEn4yswCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzjCCAXSgAwIBAgIIaixjNNHVtTkwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASZ93tkufChe++twKRnLAcIZjoGcy8A -FgAxV7kozMTAg044txYSnAW22jSHiagXdkzN12OtRdG6E4clbicSVulko2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUdArEY1wm76eR -ARrgtyyP2PAUdbYwHwYDVR0jBBgwFoAUlAbl+qpwf0kmrUb1ZBdgGa9KfrYwCgYI -KoZIzj0EAwIDSQAwRgIhAMaffE54k6NM/zFfDTPJLzuB1V2xPXatqgQNfyUIIHzI -AiEAmHUzJq6cUo38Kqrke22tBwt2eKk8PE/GTScN0n3Pa+A= +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQig7TJSz/wlFSfxdyxJ07VZuk324me +6MyrL6Anm5ALFhxbtndrSp025q+Qa+qp+zamS1uTUYoEUC+PvLS/yAfJo2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUrNe2GcpHe9TY +z2w0MxQdWChFM8cwHwYDVR0jBBgwFoAUYGv9LsCn6k9C3y6YFLAQ1ct7qE0wCgYI +KoZIzj0EAwIDSAAwRQIhALd8I+ZJB8bUCW0RkwT8hhxghKesLVW9p1hcTvEKqL+b +AiBplE+0Yu3BPuRxXgZLHLaEUrV41seu9gPMRByImVGDxA== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/dac-Key.der index 1316331b2a7456..2037b58515db48 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/dac-Key.pem index abb4b97eb4625b..6bec7796639089 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIA37ksBIiBDsbFGIznM2scc+VCqzdeKnQoKuRAJY/SDXoAoGCCqGSM49 -AwEHoUQDQgAEmfd7ZLnwoXvvrcCkZywHCGY6BnMvABYAMVe5KMzEwINOOLcWEpwF -tto0h4moF3ZMzddjrUXRuhOHJW4nElbpZA== +MHcCAQEEIMT3ChKXFfTjTbQFzRxe2JY7f1Cj0O6yKPdCnbRkUrbloAoGCCqGSM49 +AwEHoUQDQgAEIoO0yUs/8JRUn8XcsSdO1WbpN9uJnujMqy+gJ5uQCxYcW7Z3a0qd +NuavkGvqqfs2pktbk1GKBFAvj7y0v8gHyQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/pai-Cert.der index 183962a3a79d1f..413aeddf9cd240 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/pai-Cert.pem index 1fd8f39749ef05..12df491da16f22 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/pai-Cert.pem @@ -1,11 +1,11 @@ -----BEGIN CERTIFICATE----- -MIIBnjCCAUOgAwIBAgIIAozSuBetLHAwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBnjCCAUOgAwIBAgIIAmVHq66pnQkwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABM422KNrgBYMBq6oQNFPfeBo3WviENigfid8ChwUa4FFGah9cB2eZHzn2LT/ -LMJHZW3wXR9GUCUg9ERjhPpZRg2jRTBDMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSUBuX6qnB/SSatRvVkF2AZr0p+tjAKBggq -hkjOPQQDAgNJADBGAiEAr1MK9NUcnBWlvGt/k+yD01XH1abKwpox9PTx1QUtpSMC -IQCLyIKrzerisR11pM1svP8fTh2OmVXWBBamzg/FpwecrQ== +A0IABNSwp3emKsVJFN09xeT2eRNRu73zVTa4CwLV9BpMG2QcSugS7HvTgfg2Z10j +/IaP9N3P3kDV9RIwBXpRMzFxx3CjRTBDMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRga/0uwKfqT0LfLpgUsBDVy3uoTTAKBggq +hkjOPQQDAgNJADBGAiEA1RSDlCgmnb6yT71zCQfCfz59IU/m05LIFrV9GXIhM34C +IQDNw7l0b87763FdDlI+UQOIy0cVn6logXuXPq0qjGcVKg== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/pai-Key.der index 448aa9ef838c80..6ecfd4dc9d363b 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/pai-Key.pem index 04d143ad195197..f2ddec536c1927 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIAJUm08dkStgPdDaC9G3cwXo8xN8UpYf22i5Tm6Dx18ooAoGCCqGSM49 -AwEHoUQDQgAEzjbYo2uAFgwGrqhA0U994Gjda+IQ2KB+J3wKHBRrgUUZqH1wHZ5k -fOfYtP8swkdlbfBdH0ZQJSD0RGOE+llGDQ== +MHcCAQEEIIdfKtbL9pBxjJzt5kde1zGJopmgR6BFc0qEWIGNJ5N/oAoGCCqGSM49 +AwEHoUQDQgAE1LCnd6YqxUkU3T3F5PZ5E1G7vfNVNrgLAtX0GkwbZBxK6BLse9OB ++DZnXSP8ho/03c/eQNX1EjAFelEzMXHHcA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/test_case_vector.json index 2f8e249136f52b..2cc997c985f2b7 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_akid_missing/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Certificate doesn't include Authority Key ID (AKID) extension", "is_success_case": "false", - "dac_cert": "308201cf30820174a0030201020208764c317ae127e32b300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000499f77b64b9f0a17befadc0a4672c0708663a06732f0016003157b928ccc4c0834e38b716129c05b6da348789a817764ccdd763ad45d1ba1387256e271256e964a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414740ac4635c26efa791011ae0b72c8fd8f01475b6301f0603551d230418301680149406e5faaa707f4926ad46f564176019af4a7eb6300a06082a8648ce3d0403020349003046022100c69f7c4e7893a34cff315f0d33c92f3b81d55db13d76adaa040d7f2508207cc802210098753326ae9c528dfc2aaae47b6dad070b7678a93c3c4fc64d270dd27dcf6be0", - "pai_cert": "3082019e30820143a0030201020208028cd2b817ad2c70300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004ce36d8a36b80160c06aea840d14f7de068dd6be210d8a07e277c0a1c146b814519a87d701d9e647ce7d8b4ff2cc247656df05d1f46502520f4446384fa59460da345304330120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604149406e5faaa707f4926ad46f564176019af4a7eb6300a06082a8648ce3d0403020349003046022100af530af4d51c9c15a5bc6b7f93ec83d355c7d5a6cac29a31f4f4f1d5052da5230221008bc882abcdeae2b11d75a4cd6cbcff1f4e1d8e9955d60416a6ce0fc5a7079cad", - "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100b57e12767312397c8207dcd64a626ae6568fc3892f6a9a33b1e86aa2bdf5ef5b02202db9402884475683387596f55c087a3c390d10b878ec2799bcdd92cc83a13e00", - "dac_private_key": "0dfb92c0488810ec6c5188ce7336b1c73e542ab375e2a74282ae440258fd20d7", - "dac_public_key": "0499f77b64b9f0a17befadc0a4672c0708663a06732f0016003157b928ccc4c0834e38b716129c05b6da348789a817764ccdd763ad45d1ba1387256e271256e964" + "dac_cert": "308201ce30820174a00302010202086a2c6334d1d5b539300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200042283b4c94b3ff094549fc5dcb1274ed566e937db899ee8ccab2fa0279b900b161c5bb6776b4a9d36e6af906beaa9fb36a64b5b93518a04502f8fbcb4bfc807c9a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414acd7b619ca477bd4d8cf6c3433141d58284533c7301f0603551d23041830168014606bfd2ec0a7ea4f42df2e9814b010d5cb7ba84d300a06082a8648ce3d0403020348003045022100b77c23e64907c6d4096d119304fc861c6084a7ac2d55bda7585c4ef10aa8bf9b022069944fb462edc13ee4715e064b1cb68452b578d6c7aef603cc441c88995183c4", + "pai_cert": "3082019e30820143a0030201020208026547abaea99d09300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004d4b0a777a62ac54914dd3dc5e4f6791351bbbdf35536b80b02d5f41a4c1b641c4ae812ec7bd381f836675d23fc868ff4ddcfde40d5f51230057a51333171c770a345304330120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414606bfd2ec0a7ea4f42df2e9814b010d5cb7ba84d300a06082a8648ce3d0403020349003046022100d514839428269dbeb24fbd730907c27f3e7d214fe6d392c816b57d197221337e022100cdc3b9746fcefbeb715d0e523e510388cb47159fa968817b973ead2a8c67152a", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044630440220627897ec6ff502d8883d68b2241c9df68f5939fbf12cd4e9c47092172b28862d0220587b5b1de37a6cedc9eae779b610676a54685230ae28cc667786d76d1a872ff7", + "dac_private_key": "c4f70a129715f4e34db405cd1c5ed8963b7f50a3d0eeb228f7429db46452b6e5", + "dac_public_key": "042283b4c94b3ff094549fc5dcb1274ed566e937db899ee8ccab2fa0279b900b161c5bb6776b4a9d36e6af906beaa9fb36a64b5b93518a04502f8fbcb4bfc807c9" } diff --git a/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/cd.der b/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/cd.der index 0480d913456df1..ec5bee369e4e50 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/cd.der and b/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/dac-Cert.der index 53bbc4f9e4a28b..a7983b9e5f8a95 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/dac-Cert.pem index 22f61c4ff8f2de..7e0be81bca6f00 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzjCCAXSgAwIBAgIIdoiBXJZMeZwwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzTCCAXSgAwIBAgIIWItL4EAVFVwwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQeGzy5wO5Z6OzwSJkAzo+a0vRStx5e -2vDb9IA3OCRjB64wYUfzw/sPJRGcN4Qm0Kw1nBgtbQ69+brkre1z8YkNo2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUDJnqCNuwREpY -P3jQn6nbsP6YOzwwHwYDVR0jBBgwFoAUh6pW/4U+apckvO3m85LRl445w8YwCgYI -KoZIzj0EAwIDSAAwRQIhAKxPXg+v0fFA+rqciPtgmAao1Dc2MsoUWMaQAmR+fPH/ -AiB04ohDxSJt7SdtwY4mv/fTfvCEgjImj95AxzE38XU4YA== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQbW7NUhTZtA1PY1TdVDqRwRRff45w0 +gQzb9U+lrsvCLmx+ig9Xn9jJh31Xvsfhj77o5fgsa/cxBNZDYYwH0xjWo2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUZEZwl+tsAESA +FL/iDUg9HKrpW9MwHwYDVR0jBBgwFoAUumYhYkpNV6u9mbsTa5vh3Xeik+kwCgYI +KoZIzj0EAwIDRwAwRAIgVqDowlgAR7wwtpwPXw/y+Vq9jC/PLpd7oAnfWpNVddAC +IDRGw9LKYiK5Cn4tR+jiyXbFd1n7RqlnINJXOEHvinBs -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/dac-Key.der index 97244c4785c141..ab2d6df36cb267 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/dac-Key.pem index 17e323eb162810..70eaf76e747fa8 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIIMqZcLjlzn/T2nnkBwH89U1NAcol3E0RMOXFyP+LMQBoAoGCCqGSM49 -AwEHoUQDQgAEHhs8ucDuWejs8EiZAM6PmtL0UrceXtrw2/SANzgkYweuMGFH88P7 -DyURnDeEJtCsNZwYLW0Ovfm65K3tc/GJDQ== +MHcCAQEEIKZjaT2+i+mmoj52WOm1j3DVcAPrEB+h1nyEZAdBQ7wroAoGCCqGSM49 +AwEHoUQDQgAEG1uzVIU2bQNT2NU3VQ6kcEUX3+OcNIEM2/VPpa7Lwi5sfooPV5/Y +yYd9V77H4Y++6OX4LGv3MQTWQ2GMB9MY1g== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/pai-Cert.der index 005fae73ac37ea..0c75933caa1a2d 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/pai-Cert.pem index 055063109423c6..f3523952f82fe4 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/pai-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB9TCCAZygAwIBAgIIS2oyEPrYgscwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIB9TCCAZygAwIBAgIIBOjHNmKsTIEwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABGOVzTTGRrL7cFqpKCcflQ/wgHijtukOrZKvLNc2eMBhIXt7oRLN0m+MMtRr -cwesKdXyY1yqeZdT6O3duHDBmTijgZ0wgZowEgYDVR0TAQH/BAgwBgEB/wIBATAO -BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFIeqVv+FPmqXJLzt5vOS0ZeOOcPGMB8G +A0IABLD55NOV5Uiiebwn7j/oX54cG8zor2boSjGIdqNZ8mTkeMNxEfmnQ97Wyrz2 +mbB52ekct55msQCtOOcvZefFjO+jgZ0wgZowEgYDVR0TAQH/BAgwBgEB/wIBADAO +BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFLpmIWJKTVervZm7E2ub4d13opPpMB8G A1UdIwQYMBaAFGr9IncfUR/svxZBl2cQ3NwxoXF+MDQGCCsGAQUFBwEBBCgwJjAk BggrBgEFBQcwAYYYaHR0cDovL29jc3AuZXhhbXBsZS5jb20vMAoGCCqGSM49BAMC -A0cAMEQCIArtyjaBTTgUa63GObbw4jF+FfD+IHK4LRYdtuHSf2u+AiBSHI+bnrZ+ -QKusIlALndXSqGKfnLmqaMENLLv6JNoo1w== +A0cAMEQCIBOUPTnkYx+CReKRHBN2j2/uAUUjhXuU0cGix030oSQkAiB7oPW6nlcF +BmI97C4xqokqQ4rWSPvay04Lzaf7fZjiDg== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/pai-Key.der index d8706df3b27bce..a1dc2b2d7b4d43 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/pai-Key.pem index 9c5de9f2ca1f61..db053a7dc7c44e 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIIhWVT91P7nlNxMNHG2Gfm+E8k8+Szr1e3qRdz5jwP7noAoGCCqGSM49 -AwEHoUQDQgAEY5XNNMZGsvtwWqkoJx+VD/CAeKO26Q6tkq8s1zZ4wGEhe3uhEs3S -b4wy1GtzB6wp1fJjXKp5l1Po7d24cMGZOA== +MHcCAQEEIMyclcLHRjuKyMKvpWpHc7NRkGeICLkUM3DKiDYcqMJLoAoGCCqGSM49 +AwEHoUQDQgAEsPnk05XlSKJ5vCfuP+hfnhwbzOivZuhKMYh2o1nyZOR4w3ER+adD +3tbKvPaZsHnZ6Ry3nmaxAK045y9l58WM7w== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/test_case_vector.json index 55679174a8891c..1131a079b1cb33 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_authority_info_access_present/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Certificate includes optional Authority Information Access extension", "is_success_case": "true", - "dac_cert": "308201ce30820174a00302010202087688815c964c799c300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200041e1b3cb9c0ee59e8ecf0489900ce8f9ad2f452b71e5edaf0dbf4803738246307ae306147f3c3fb0f25119c378426d0ac359c182d6d0ebdf9bae4aded73f1890da360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604140c99ea08dbb0444a583f78d09fa9dbb0fe983b3c301f0603551d2304183016801487aa56ff853e6a9724bcede6f392d1978e39c3c6300a06082a8648ce3d0403020348003045022100ac4f5e0fafd1f140faba9c88fb609806a8d4373632ca1458c69002647e7cf1ff022074e28843c5226ded276dc18e26bff7d37ef0848232268fde40c73137f1753860", - "pai_cert": "308201f53082019ca00302010202084b6a3210fad882c7300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200046395cd34c646b2fb705aa928271f950ff08078a3b6e90ead92af2cd73678c061217b7ba112cdd26f8c32d46b7307ac29d5f2635caa799753e8edddb870c19938a3819d30819a30120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e0416041487aa56ff853e6a9724bcede6f392d1978e39c3c6301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e303406082b0601050507010104283026302406082b060105050730018618687474703a2f2f6f6373702e6578616d706c652e636f6d2f300a06082a8648ce3d040302034700304402200aedca36814d38146badc639b6f0e2317e15f0fe2072b82d161db6e1d27f6bbe0220521c8f9b9eb67e40abac22500b9dd5d2a8629f9cb9aa68c10d2cbbfa24da28d7", - "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100b7104d907fb69f2d8ccc9b56ef4698c84a027198645458a1f165d76e4beaeb8a022100e8810b9fd8e11128c10223e8919b7176e13829f5178da70adc308e936da47e22", - "dac_private_key": "832a65c2e39739ff4f69e7901c07f3d53534072897713444c3971723fe2cc401", - "dac_public_key": "041e1b3cb9c0ee59e8ecf0489900ce8f9ad2f452b71e5edaf0dbf4803738246307ae306147f3c3fb0f25119c378426d0ac359c182d6d0ebdf9bae4aded73f1890d" + "dac_cert": "308201cd30820174a0030201020208588b4be04015155c300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200041b5bb35485366d0353d8d537550ea4704517dfe39c34810cdbf54fa5aecbc22e6c7e8a0f579fd8c9877d57bec7e18fbee8e5f82c6bf73104d643618c07d318d6a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041464467097eb6c00448014bfe20d483d1caae95bd3301f0603551d23041830168014ba6621624a4d57abbd99bb136b9be1dd77a293e9300a06082a8648ce3d0403020347003044022056a0e8c2580047bc30b69c0f5f0ff2f95abd8c2fcf2e977ba009df5a935575d002203446c3d2ca6222b90a7e2d47e8e2c976c57759fb46a96720d2573841ef8a706c", + "pai_cert": "308201f53082019ca003020102020804e8c73662ac4c81300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004b0f9e4d395e548a279bc27ee3fe85f9e1c1bcce8af66e84a318876a359f264e478c37111f9a743ded6cabcf699b079d9e91cb79e66b100ad38e72f65e7c58cefa3819d30819a30120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414ba6621624a4d57abbd99bb136b9be1dd77a293e9301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e303406082b0601050507010104283026302406082b060105050730018618687474703a2f2f6f6373702e6578616d706c652e636f6d2f300a06082a8648ce3d0403020347003044022013943d39e4631f8245e2911c13768f6fee014523857b94d1c1a2c74df4a1242402207ba0f5ba9e570506623dec2e31aa892a438ad648fbdacb4e0bcda7fb7d98e20e", + "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100ceaf8369dda146f1daf60316286ffe2b45ce0215cde0a73832986460afba69e502200c61f02551e1dcd4882e7d05369dde0b213a05668eed8f5c73444d6442ca57de", + "dac_private_key": "a663693dbe8be9a6a23e7658e9b58f70d57003eb101fa1d67c8464074143bc2b", + "dac_public_key": "041b5bb35485366d0353d8d537550ea4704517dfe39c34810cdbf54fa5aecbc22e6c7e8a0f579fd8c9877d57bec7e18fbee8e5f82c6bf73104d643618c07d318d6" } diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/cd.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/cd.der index ce2e56fa640b4a..fec2d68e67a592 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/cd.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/dac-Cert.der index 51277d4d186a06..2a7c32967e6958 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/dac-Cert.pem index 0e3015b7ee40e5..65e64058b6ddf0 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzjCCAXSgAwIBAgIIeuP4/0mGcIMwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzjCCAXSgAwIBAgIIcbsMeoJjhVgwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQNMrEtPRNE5KY5/6vzVx7Jvd6wxRHk -HVCUBDvFqc0SfXSdgaCxv6/GnS32U+bqTznE1a8XB136pC8SLqIEhKpGo2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUPEtG3f9/Acuf -DsRpKwUKvIPjJQUwHwYDVR0jBBgwFoAUYzLq4CioSr3Okh6Bls6B+QzzYZcwCgYI -KoZIzj0EAwIDSAAwRQIhAPo0rLAOZ/r2C+CAr0bE37P42UdsF0a1Brn++5JCQUdt -AiAb4arlr3B8rfBwbe7pvRjLJQjiLFXduDt9cXT5EE+wlg== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQB6OrI4rYnu6Y9hywvEsxGFHrppfuq +qaVKH9zuwqQipBSEaHhXpWpOQmPpAS8R5XO84JUX4LQBHGkOzVfhzJbso2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUqzLFYPU7H4kG +tr5s7nR95Ox0X/4wHwYDVR0jBBgwFoAU++S8uISgK2HT0Vz3gcmPpSryfB4wCgYI +KoZIzj0EAwIDSAAwRQIgabc3ioSKwGks5OAA2JHVK7iAV8TsciWk3huEzKoEeY8C +IQCsDKIP7UHhvLZrKNMLSdywttEngGq/t7WlE4oUdrRoQg== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/dac-Key.der index 2c327e265e0f38..66547c3d067ee1 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/dac-Key.pem index de0777015f9cae..c80e35d844ec40 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIM+P+LWYaea9uPBbwlkiPD3vQzuLmXty2m48atL5yG2FoAoGCCqGSM49 -AwEHoUQDQgAEDTKxLT0TROSmOf+r81ceyb3esMUR5B1QlAQ7xanNEn10nYGgsb+v -xp0t9lPm6k85xNWvFwdd+qQvEi6iBISqRg== +MHcCAQEEIBRo4a6HIddBzf233NQIAMk7jHjjdcA2+mEPBM/cx8QxoAoGCCqGSM49 +AwEHoUQDQgAEAejqyOK2J7umPYcsLxLMRhR66aX7qqmlSh/c7sKkIqQUhGh4V6Vq +TkJj6QEvEeVzvOCVF+C0ARxpDs1X4cyW7A== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/pai-Cert.der index 6f2180832bdc2e..76fdab9fcac554 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/pai-Cert.pem index 6ea1d58e279ba6..88a6bd617f1bb6 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBujCCAWGgAwIBAgIIJjWZn20LdhAwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBuzCCAWGgAwIBAgIIJbLujEzNDwQwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABNri63Z1xJp+2BuODdbAudulOldJS3eTyUFNc0fgACVUbYr3lh+PrfW14CNf -3ljCeDkjBBiMhBY0CUoHsHDmEvujYzBhMA8GA1UdEwEB/wQFMAMCAQEwDgYDVR0P -AQH/BAQDAgEGMB0GA1UdDgQWBBRjMurgKKhKvc6SHoGWzoH5DPNhlzAfBgNVHSME -GDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNHADBEAiAYOzI8 -CTBIFmuYwr2nbNkULJvpiMOkWnNq43O9TYjbNgIge5n7CtHZ0adwbCjMoqeQ4yAY -kMzjtGW/DysJtd2RUy8= +A0IABDGPaIW1n8NWzUkq4a8F8Q6uzdnHMtX7uHk6HR8wFsh1wj3QmO9m0f9qluDS +6bok7u7E/n8i4CJfeK9Q+7vwAuijYzBhMA8GA1UdEwEB/wQFMAMCAQAwDgYDVR0P +AQH/BAQDAgEGMB0GA1UdDgQWBBT75Ly4hKArYdPRXPeByY+lKvJ8HjAfBgNVHSME +GDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiBzrZdB +Jx2W1Qo31fPV7J93V0MZcOA8855eC0hsHGU0TgIhAMGQGVWfEfSYJpJ5bt2cHnCF +aP2hvUWBIPNTx/jVfYtY -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/pai-Key.der index b069345373d563..338bbae687d27f 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/pai-Key.pem index 4b454d1337c22c..92444d7b1456db 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIFNww1w6sTGHo/4GUFgqc94KUBCoDE9THo3uTAVIUvY2oAoGCCqGSM49 -AwEHoUQDQgAE2uLrdnXEmn7YG44N1sC526U6V0lLd5PJQU1zR+AAJVRtiveWH4+t -9bXgI1/eWMJ4OSMEGIyEFjQJSgewcOYS+w== +MHcCAQEEIMmYm/h1vPlRDkZbMdDzDY+5xJaeJNSZ4jfyN9SO7vleoAoGCCqGSM49 +AwEHoUQDQgAEMY9ohbWfw1bNSSrhrwXxDq7N2ccy1fu4eTodHzAWyHXCPdCY72bR +/2qW4NLpuiTu7sT+fyLgIl94r1D7u/AC6A== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/test_case_vector.json index 23b0f7f6fa56d2..f7d9ede1b6d398 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_missing/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Certificate Basic Constraint extension CA field is missing", "is_success_case": "false", - "dac_cert": "308201ce30820174a00302010202087ae3f8ff49867083300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200040d32b12d3d1344e4a639ffabf3571ec9bddeb0c511e41d5094043bc5a9cd127d749d81a0b1bfafc69d2df653e6ea4f39c4d5af17075dfaa42f122ea20484aa46a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604143c4b46ddff7f01cb9f0ec4692b050abc83e32505301f0603551d230418301680146332eae028a84abdce921e8196ce81f90cf36197300a06082a8648ce3d0403020348003045022100fa34acb00e67faf60be080af46c4dfb3f8d9476c1746b506b9fefb924241476d02201be1aae5af707cadf0706deee9bd18cb2508e22c55ddb83b7d7174f9104fb096", - "pai_cert": "308201ba30820161a00302010202082635999f6d0b7610300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004dae2eb7675c49a7ed81b8e0dd6c0b9dba53a57494b7793c9414d7347e00025546d8af7961f8fadf5b5e0235fde58c278392304188c841634094a07b070e612fba3633061300f0603551d130101ff04053003020101300e0603551d0f0101ff040403020106301d0603551d0e041604146332eae028a84abdce921e8196ce81f90cf36197301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203470030440220183b323c093048166b98c2bda76cd9142c9be988c3a45a736ae373bd4d88db3602207b99fb0ad1d9d1a7706c28cca2a790e3201890cce3b465bf0f2b09b5dd91532f", - "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100dd55f47d0c3c1ff2ad4a1c4b4c34af6bcef03655bc53c12b3d1154f32967d56902207045c35c93b08ed29707fa9b9a7cd3bf3cea6351a7fed139fd4ab2bcbe514887", - "dac_private_key": "cf8ff8b59869e6bdb8f05bc259223c3def433b8b997b72da6e3c6ad2f9c86d85", - "dac_public_key": "040d32b12d3d1344e4a639ffabf3571ec9bddeb0c511e41d5094043bc5a9cd127d749d81a0b1bfafc69d2df653e6ea4f39c4d5af17075dfaa42f122ea20484aa46" + "dac_cert": "308201ce30820174a003020102020871bb0c7a82638558300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000401e8eac8e2b627bba63d872c2f12cc46147ae9a5fbaaa9a54a1fdceec2a422a41484687857a56a4e4263e9012f11e573bce09517e0b4011c690ecd57e1cc96eca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414ab32c560f53b1f8906b6be6cee747de4ec745ffe301f0603551d23041830168014fbe4bcb884a02b61d3d15cf781c98fa52af27c1e300a06082a8648ce3d0403020348003045022069b7378a848ac0692ce4e000d891d52bb88057c4ec7225a4de1b84ccaa04798f022100ac0ca20fed41e1bcb66b28d30b49dcb0b6d127806abfb7b5a5138a1476b46842", + "pai_cert": "308201bb30820161a003020102020825b2ee8c4ccd0f04300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004318f6885b59fc356cd492ae1af05f10eaecdd9c732d5fbb8793a1d1f3016c875c23dd098ef66d1ff6a96e0d2e9ba24eeeec4fe7f22e0225f78af50fbbbf002e8a3633061300f0603551d130101ff04053003020100300e0603551d0f0101ff040403020106301d0603551d0e04160414fbe4bcb884a02b61d3d15cf781c98fa52af27c1e301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022073ad9741271d96d50a37d5f3d5ec9f7757431970e03cf39e5e0b486c1c65344e022100c19019559f11f4982692796edd9c1e708568fda1bd458120f353c7f8d57d8b58", + "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100ff9a7e62129e4f44f202898ab632beb427ba3171abbff4ceed6a671c2628caa50221008b9fee1eb0faa4047751d12c768ac186605625dffeb6896973406559b32bf941", + "dac_private_key": "1468e1ae8721d741cdfdb7dcd40800c93b8c78e375c036fa610f04cfdcc7c431", + "dac_public_key": "0401e8eac8e2b627bba63d872c2f12cc46147ae9a5fbaaa9a54a1fdceec2a422a41484687857a56a4e4263e9012f11e573bce09517e0b4011c690ecd57e1cc96ec" } diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/cd.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/cd.der index ff16691d151673..ecb09dac258bf0 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/cd.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/dac-Cert.der index 47a2d77ccdebda..51989b110805c3 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/dac-Cert.pem index 6859a04d799f40..36eec166d5f06c 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzTCCAXSgAwIBAgIIV9X0y0qgVJUwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzjCCAXSgAwIBAgIIS4jxz81t364wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASVbtnqNqXT5P6Zik5LeYJiBq72Jj/Y -p2Y3w0cbFsMaDkUijBTaJPZlW6te+h64K1yUJKX1y8q33O/8WfI4U3KGo2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUW+NY7sX74HT0 -WzPXZyzXpeSLQgQwHwYDVR0jBBgwFoAUtblO2L9w0YgpvAqSXLnCvvBl9a8wCgYI -KoZIzj0EAwIDRwAwRAIgEsL5I3vVcfLg31a7S1zNnULGztmvnQmhpBfSwsFM0SUC -IC2pf/GVsl1WkluGasPWBDzisVM8OZmcFgIxctZpb7fC +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATiWCpujmMWMXKieY+oZunzOx4XTRjS +/OVNjyrJ31hTitAjdf7lytLoNRSforqGlrViIXUG/tCrmjjST8LnLL2co2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUCsANtjvjndIv +xROCWXFRgHRTkZswHwYDVR0jBBgwFoAUIRnmT86ATWnQG345djOEe7VBAhkwCgYI +KoZIzj0EAwIDSAAwRQIhAKCvl33BBNVf6eY2asYPySLlzPYaTC/EHyMBO4OdBqnb +AiAxvcNuF5zGd+MP5AZlOnfmIylrYE1uNKj6TXbZVwYh3g== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/dac-Key.der index 171f2e6ae229be..81100c6eef05e3 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/dac-Key.pem index 92c6f5d6eed8da..64a6c04a81aaa9 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIPmj5KSi6XrhgotTSanCuCk2BS0wI/Ah1YfIQzq5xVW4oAoGCCqGSM49 -AwEHoUQDQgAElW7Z6jal0+T+mYpOS3mCYgau9iY/2KdmN8NHGxbDGg5FIowU2iT2 -ZVurXvoeuCtclCSl9cvKt9zv/FnyOFNyhg== +MHcCAQEEIDUffoXTyV8tRml3kbGKZPf6btOha+cVJLb0ZIdbzOxQoAoGCCqGSM49 +AwEHoUQDQgAE4lgqbo5jFjFyonmPqGbp8zseF00Y0vzlTY8qyd9YU4rQI3X+5crS +6DUUn6K6hpa1YiF1Bv7Qq5o40k/C5yy9nA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/pai-Cert.der index d949efa84e6686..9ef446121fef77 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/pai-Cert.pem index 3d638bdb191982..5f18921ad6a589 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBujCCAWGgAwIBAgIIEIYYGqPzqXMwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBuzCCAWGgAwIBAgIIdERKOCOViG8wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABCt+w74XxlaAMCsQz2GOJIUMNyYwM/dHCFzduUpfaaaH1XbGglOt5LzB5evP -sH8qiX+H8zKPdUudV9268FkI2jSjYzBhMA8GA1UdEwEB/wQFMAMCAQEwDgYDVR0P -AQH/BAQDAgEGMB0GA1UdDgQWBBS1uU7Yv3DRiCm8CpJcucK+8GX1rzAfBgNVHSME -GDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNHADBEAiBgL0k1 -fwtPISX6ppip3N4uFibcWjB3bA8BoHRC2j+AjQIgDNX34QFByF4sl0WEdrncPrRY -sWxf384sLH8jEf0oaW0= +A0IABElBxFevacK5AG9hIKzNSD9xQGX/GcNyLsbqvjMf4beHzUxEysb8h3Fwfejl +5bjYMbpOLkXRNjhexjD+C/yXcRyjYzBhMA8GA1UdEwEB/wQFMAMCAQAwDgYDVR0P +AQH/BAQDAgEGMB0GA1UdDgQWBBQhGeZPzoBNadAbfjl2M4R7tUECGTAfBgNVHSME +GDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiAPLgpa +4uKmrtNlLXDXyISoW+tRr7pydOuJCb6ecwOQMgIhAMiS7fKoW/tT//ABwqWzfCG9 +eUYMtMnbHTy/gqWdEJod -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/pai-Key.der index 4ec31d810e5e6a..72c38594ca8721 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/pai-Key.pem index 63493664f0af7a..6daec99a9f276a 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIPRv7Wy/TE+jFCBMvHzczx082XwfErbWQ19mA3KbsW1ooAoGCCqGSM49 -AwEHoUQDQgAEK37DvhfGVoAwKxDPYY4khQw3JjAz90cIXN25Sl9ppofVdsaCU63k -vMHl68+wfyqJf4fzMo91S51X3brwWQjaNA== +MHcCAQEEIMDhjGDHXErMrnUyU7F9KC+EBvvRzefyEH6TGWxwIPJpoAoGCCqGSM49 +AwEHoUQDQgAESUHEV69pwrkAb2EgrM1IP3FAZf8Zw3Iuxuq+Mx/ht4fNTETKxvyH +cXB96OXluNgxuk4uRdE2OF7GMP4L/JdxHA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/test_case_vector.json index 8af076712029d7..365fab302748c6 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_ca_wrong/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Certificate Basic Constraint extension CA field is wrong (TRUE for DAC and FALSE for PAI)", "is_success_case": "false", - "dac_cert": "308201cd30820174a003020102020857d5f4cb4aa05495300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004956ed9ea36a5d3e4fe998a4e4b79826206aef6263fd8a76637c3471b16c31a0e45228c14da24f6655bab5efa1eb82b5c9424a5f5cbcab7dceffc59f238537286a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604145be358eec5fbe074f45b33d7672cd7a5e48b4204301f0603551d23041830168014b5b94ed8bf70d18829bc0a925cb9c2bef065f5af300a06082a8648ce3d0403020347003044022012c2f9237bd571f2e0df56bb4b5ccd9d42c6ced9af9d09a1a417d2c2c14cd12502202da97ff195b25d56925b866ac3d6043ce2b1533c39999c16023172d6696fb7c2", - "pai_cert": "308201ba30820161a00302010202081086181aa3f3a973300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200042b7ec3be17c65680302b10cf618e24850c37263033f747085cddb94a5f69a687d576c68253ade4bcc1e5ebcfb07f2a897f87f3328f754b9d57ddbaf05908da34a3633061300f0603551d130101ff04053003020101300e0603551d0f0101ff040403020106301d0603551d0e04160414b5b94ed8bf70d18829bc0a925cb9c2bef065f5af301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203470030440220602f49357f0b4f2125faa698a9dcde2e1626dc5a30776c0f01a07442da3f808d02200cd5f7e10141c85e2c97458476b9dc3eb458b16c5fdfce2c2c7f2311fd28696d", - "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502206584921c371dbbe4bc60bb87aaa25c1ad6059675b593b6d00dabdbf709fc58780221008e9f1646ca903749c70682ded90dff436d369299118d90bcfadda73333b0cd17", - "dac_private_key": "f9a3e4a4a2e97ae1828b5349a9c2b82936052d3023f021d587c8433ab9c555b8", - "dac_public_key": "04956ed9ea36a5d3e4fe998a4e4b79826206aef6263fd8a76637c3471b16c31a0e45228c14da24f6655bab5efa1eb82b5c9424a5f5cbcab7dceffc59f238537286" + "dac_cert": "308201ce30820174a00302010202084b88f1cfcd6ddfae300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004e2582a6e8e63163172a2798fa866e9f33b1e174d18d2fce54d8f2ac9df58538ad02375fee5cad2e835149fa2ba8696b562217506fed0ab9a38d24fc2e72cbd9ca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604140ac00db63be39dd22fc51382597151807453919b301f0603551d230418301680142119e64fce804d69d01b7e397633847bb5410219300a06082a8648ce3d0403020348003045022100a0af977dc104d55fe9e6366ac60fc922e5ccf61a4c2fc41f23013b839d06a9db022031bdc36e179cc677e30fe406653a77e623296b604d6e34a8fa4d76d9570621de", + "pai_cert": "308201bb30820161a003020102020874444a382395886f300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200044941c457af69c2b9006f6120accd483f714065ff19c3722ec6eabe331fe1b787cd4c44cac6fc8771707de8e5e5b8d831ba4e2e45d136385ec630fe0bfc97711ca3633061300f0603551d130101ff04053003020100300e0603551d0f0101ff040403020106301d0603551d0e041604142119e64fce804d69d01b7e397633847bb5410219301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502200f2e0a5ae2e2a6aed3652d70d7c884a85beb51afba7274eb8909be9e73039032022100c892edf2a85bfb53fff001c2a5b37c21bd79460cb4c9db1d3cbf82a59d109a1d", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204463044022036d204f608c677e18e9208ec774c10d34153f4c1788716f031075d791b6ecb190220576198ba705ddbd8d2a083db1f5c84212859041e70cb6fec0ff61525054fb546", + "dac_private_key": "351f7e85d3c95f2d46697791b18a64f7fa6ed3a16be71524b6f464875bccec50", + "dac_public_key": "04e2582a6e8e63163172a2798fa866e9f33b1e174d18d2fce54d8f2ac9df58538ad02375fee5cad2e835149fa2ba8696b562217506fed0ab9a38d24fc2e72cbd9c" } diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/cd.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/cd.der index 06e7bdb3c5e0ee..64a98d58987369 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/cd.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/dac-Cert.der index c1fc2223f1f89f..61c91fd3559eb9 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/dac-Cert.pem index 01b9a53663ca2e..8ffcc4d1f7f1cb 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzjCCAXSgAwIBAgIIaDUSqQx3/W0wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzTCCAXSgAwIBAgIIMQ/civCtW7YwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQyBjM/zY0zbkbqWMw9+4Pd1cIBqS9r -M++ExJ5z1szvU73Gh/l/xhRPvT+jYaH52rsJPZepBpa674nuBcNuxLsWo2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUzeII3IyhXAeL -+vcTlAAdiU3In2MwHwYDVR0jBBgwFoAUdmj5Usd4vvcdUm2ulJWEvnSQhQswCgYI -KoZIzj0EAwIDSAAwRQIhAKETrJx4goxGkhFiGpDZ98MmGXGuhcrgeuw2AmpPqi8T -AiBJSysAjn7v4glo1lrOSTtxHDmZUN/muxELT6OGZG7ZbA== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS1zJgIlCuuTRwhQduQQFdkHbw5UlAZ +MejDtYg9lMSt31CIB18sc/bWVcIBiCC1DW3IGoQe8mBuKig+yESVnQ2uo2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUKyZkxDM6yrsQ +ITIu4svJOceffl0wHwYDVR0jBBgwFoAUR1F3/qv6Q5ZrCccDU7KmmrGeAw0wCgYI +KoZIzj0EAwIDRwAwRAIgLDnrRn0UbPn0v3gbpwqPwPXIN2sVc+pdHV1km/DdnSIC +IGudo/2NrAM5HzpJ+UXQRSF5KWMIQCMFQEIr97u9zCbp -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/dac-Key.der index 5a9a44b86ce737..bff67330dde089 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/dac-Key.pem index 8b7c572174fa82..3d32a0a6002a35 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIDTVAw1c2BWxq5IuK3NGyefYe2ZZPn9EBheotHpwDF67oAoGCCqGSM49 -AwEHoUQDQgAEMgYzP82NM25G6ljMPfuD3dXCAakvazPvhMSec9bM71O9xof5f8YU -T70/o2Gh+dq7CT2XqQaWuu+J7gXDbsS7Fg== +MHcCAQEEIFqUYgb8iAuwGCTAQK57hlakBjLFR4n44DvL08NvDn0IoAoGCCqGSM49 +AwEHoUQDQgAEtcyYCJQrrk0cIUHbkEBXZB28OVJQGTHow7WIPZTErd9QiAdfLHP2 +1lXCAYggtQ1tyBqEHvJgbiooPshElZ0Nrg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/pai-Cert.der index 9c0ecbda27fd22..863f8c6548eae9 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/pai-Cert.pem index f291ba4cbb36a0..59845375d24c24 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBuzCCAWGgAwIBAgIIbaWCEsxobHIwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvDCCAWGgAwIBAgIIcGGOo7HhXB0wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABN6XMMRByk7gARUuUW5Nqei+x2hYKs2FQ40ZVEjw+sp6jVDLSAwCnoxGthn8 -CWp7h15mC1mQZa47GHySLrHA11yjYzBhMA8GA1UdEwQIMAYBAf8CAQEwDgYDVR0P -AQH/BAQDAgEGMB0GA1UdDgQWBBR2aPlSx3i+9x1Sba6UlYS+dJCFCzAfBgNVHSME -GDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiB7cF8i -OxPjMUyxlNXzhE39Avi+feQGVTPa1w378vuLVgIhAPPcjZBkslymvDnXARfH/HDH -kNsdXkpU3JROwyVcuZ1w +A0IABCcgeTMSC5ulBJWeb8gl+VMdDeHFr1xkwyYsRDJc3INsGs39qTqarFjfwLYZ +x8jkn7iy7msSKQXs1yHC67dwSLejYzBhMA8GA1UdEwQIMAYBAf8CAQAwDgYDVR0P +AQH/BAQDAgEGMB0GA1UdDgQWBBRHUXf+q/pDlmsJxwNTsqaasZ4DDTAfBgNVHSME +GDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNJADBGAiEApvXD ++2vsByWK8VgF7Ao632MFwD2s6riB7uPlknbhxicCIQCVFvM54vOG4rO1aYeH6BUX +JcLIDdi4/w4X7MXn8BXXgQ== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/pai-Key.der index 13d2d7a9458749..ff09d27cf77f6e 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/pai-Key.pem index 3e787ad49985c2..3ba0560adaf85c 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIB+EXpLkDA/2d2xvJ0iVpkRIOIkrIzxxDUG5BB4E5Di9oAoGCCqGSM49 -AwEHoUQDQgAE3pcwxEHKTuABFS5Rbk2p6L7HaFgqzYVDjRlUSPD6ynqNUMtIDAKe -jEa2GfwJanuHXmYLWZBlrjsYfJIuscDXXA== +MHcCAQEEIOi6T39oHEjXexFDqV8ojaFUo28kOgMcgkcWMj2vwnv8oAoGCCqGSM49 +AwEHoUQDQgAEJyB5MxILm6UElZ5vyCX5Ux0N4cWvXGTDJixEMlzcg2wazf2pOpqs +WN/AthnHyOSfuLLuaxIpBezXIcLrt3BItw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/test_case_vector.json index c5427fb5517e45..b037f082989c9d 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_missing/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Certificate Basic Constraint extension critical field is missing", "is_success_case": "false", - "dac_cert": "308201ce30820174a0030201020208683512a90c77fd6d300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200043206333fcd8d336e46ea58cc3dfb83ddd5c201a92f6b33ef84c49e73d6ccef53bdc687f97fc6144fbd3fa361a1f9dabb093d97a90696baef89ee05c36ec4bb16a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414cde208dc8ca15c078bfaf71394001d894dc89f63301f0603551d230418301680147668f952c778bef71d526dae949584be7490850b300a06082a8648ce3d0403020348003045022100a113ac9c78828c469211621a90d9f7c3261971ae85cae07aec36026a4faa2f130220494b2b008e7eefe20968d65ace493b711c399950dfe6bb110b4fa386646ed96c", - "pai_cert": "308201bb30820161a00302010202086da58212cc686c72300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004de9730c441ca4ee001152e516e4da9e8bec768582acd85438d195448f0faca7a8d50cb480c029e8c46b619fc096a7b875e660b599065ae3b187c922eb1c0d75ca3633061300f0603551d13040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604147668f952c778bef71d526dae949584be7490850b301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502207b705f223b13e3314cb194d5f3844dfd02f8be7de4065533dad70dfbf2fb8b56022100f3dc8d9064b25ca6bc39d70117c7fc70c790db1d5e4a54dc944ec3255cb99d70", - "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502206e8bde60fe2ecf52a55898cd43945e9903f48af1a6ca3e9202ca624573e51db2022100c5b7fd3a460b3ee9a7a2b400e260421b58bd4c5782e2b5afa7dc2bc908b66631", - "dac_private_key": "34d5030d5cd815b1ab922e2b7346c9e7d87b66593e7f440617a8b47a700c5ebb", - "dac_public_key": "043206333fcd8d336e46ea58cc3dfb83ddd5c201a92f6b33ef84c49e73d6ccef53bdc687f97fc6144fbd3fa361a1f9dabb093d97a90696baef89ee05c36ec4bb16" + "dac_cert": "308201cd30820174a0030201020208310fdc8af0ad5bb6300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004b5cc9808942bae4d1c2141db904057641dbc3952501931e8c3b5883d94c4addf5088075f2c73f6d655c2018820b50d6dc81a841ef2606e2a283ec844959d0daea360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604142b2664c4333acabb1021322ee2cbc939c79f7e5d301f0603551d23041830168014475177feabfa43966b09c70353b2a69ab19e030d300a06082a8648ce3d040302034700304402202c39eb467d146cf9f4bf781ba70a8fc0f5c8376b1573ea5d1d5d649bf0dd9d2202206b9da3fd8dac03391f3a49f945d045217929630840230540422bf7bbbdcc26e9", + "pai_cert": "308201bc30820161a003020102020870618ea3b1e15c1d300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000427207933120b9ba504959e6fc825f9531d0de1c5af5c64c3262c44325cdc836c1acdfda93a9aac58dfc0b619c7c8e49fb8b2ee6b122905ecd721c2ebb77048b7a3633061300f0603551d13040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414475177feabfa43966b09c70353b2a69ab19e030d301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100a6f5c3fb6bec07258af15805ec0a3adf6305c03daceab881eee3e59276e1c6270221009516f339e2f386e2b3b5698787e8151725c2c80dd8b8ff0e17ecc5e7f015d781", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402200a1a03af66ab1977de0f5b4c46ea1df8ead3badf11abd413bfbc0e24d69688aa022017849bd80c1495d9669415db572faa0d11be10b004f228fa549630feebeae710", + "dac_private_key": "5a946206fc880bb01824c040ae7b8656a40632c54789f8e03bcbd3c36f0e7d08", + "dac_public_key": "04b5cc9808942bae4d1c2141db904057641dbc3952501931e8c3b5883d94c4addf5088075f2c73f6d655c2018820b50d6dc81a841ef2606e2a283ec844959d0dae" } diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/cd.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/cd.der index 16580e7d2d6d10..8d7fe9690b3d89 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/cd.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/dac-Cert.der index 605e7ac8cc8ca4..fee4ec2e57a9c7 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/dac-Cert.pem index 81cc3d9d18344f..9a2708d92eccab 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzjCCAXSgAwIBAgIIIvIMo+2z3JcwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzjCCAXSgAwIBAgIIdb3Nlp5blpswCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATIpG7SO3kXR63xxZca4fQqFqYo2F3O -FfG8Xvl/QQODseEUXPxniewCwLCIK3VR4MtSlo/Rh+mx5jpKXhGv05u2o2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUWjra3/hdKFJ0 -e4iZUp77iADxHYMwHwYDVR0jBBgwFoAUrKN+yHlA9c/+Btcivigzkx83JGswCgYI -KoZIzj0EAwIDSAAwRQIhAM9G54Z/jQ3PqrD/HqMTpii14uvDe1xKZNc8f9fTQr3n -AiBIoOpP7vJmb55qRUZ3PAOYQWQZMxDGOElmvMJmoaokZg== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAT+HHBpV+Xgs8TXk2QwyNIrE49hs33T +dBsmjGxkFtvkC63F9yZ3/ETgel6PC90gaSSKS3kbASlS1r1wouXZCGIuo2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUlUm6FFY5w3+P +QoRRaS5Cn0hwdUwwHwYDVR0jBBgwFoAU9V8WUhHCne1IBikMKbyKDYxNLWMwCgYI +KoZIzj0EAwIDSAAwRQIhALKGIRutW3nqvvNYsC//YYXbvwuUqwKNrvG7xZqNZi9t +AiAGcHMmY47S9HzYQ5Lba0219tXwqnCeBGxQy3mYss9GnQ== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/dac-Key.der index f65192bd07f575..cc39e9ff8b773f 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/dac-Key.pem index b51d973b4b98ac..0f311485fec959 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIK49G26Z1TOjf49ZrpMO6AOxmrYRQ7+fPrslxszr+Hi6oAoGCCqGSM49 -AwEHoUQDQgAEyKRu0jt5F0et8cWXGuH0KhamKNhdzhXxvF75f0EDg7HhFFz8Z4ns -AsCwiCt1UeDLUpaP0YfpseY6Sl4Rr9Obtg== +MHcCAQEEIHIPnpRdewmid4BTuNpqP/TOUz/NDmv55vbVfgdPLROBoAoGCCqGSM49 +AwEHoUQDQgAE/hxwaVfl4LPE15NkMMjSKxOPYbN903QbJoxsZBbb5Autxfcmd/xE +4HpejwvdIGkkikt5GwEpUta9cKLl2QhiLg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/pai-Cert.der index 82090d766f191b..7ccc1420cfaeae 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/pai-Cert.pem index 51c78615025cea..acd5faef5a81e9 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBujCCAWGgAwIBAgIIIqgF5EvxUZQwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBujCCAWGgAwIBAgIIVMm6Jv+mxPcwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABHZs39yeMo/FXFzmiygnjQkzowtIyulsjjC+VgbRF996WbkyyLtfEtyZOwSk -dw86utwzYLWqCvVmZRNzRgwsILqjYzBhMA8GA1UdEwQIMAYBAf8CAQEwDgYDVR0P -AQH/BAQDAgEGMB0GA1UdDgQWBBSso37IeUD1z/4G1yK+KDOTHzckazAfBgNVHSME -GDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNHADBEAiBthVYQ -AtmywWGoKCUpzF6hIvAtDc3PqNazIaluRDCvAwIgfyYuTq4rhD4QczKUdHwl0SaN -Ilm4LQxhQwwHnDWckbA= +A0IABJ2Wl9l6l+gs9rqbfbTsbzCtvEUUwAUrk7KCuAk5T9jZ8BLiM7tZt35zflmK +kb8z3kjs4ixR5yRDlhHE/xY0zMqjYzBhMA8GA1UdEwQIMAYBAf8CAQAwDgYDVR0P +AQH/BAQDAgEGMB0GA1UdDgQWBBT1XxZSEcKd7UgGKQwpvIoNjE0tYzAfBgNVHSME +GDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNHADBEAiAr+rce +p33wOyktgrS9GyGihoGPW2QYe/VwKdJlKhQ38gIgHc9B3Am9Dzh7g5GrPWMGN3rU +l+7ep/ftYp2J0zavcjM= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/pai-Key.der index 4bf2a358f2e46a..68f5fb0b51710a 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/pai-Key.pem index f1707313b3d9d7..ee9bc684a7cdd0 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEILEy5NfchV4cNpY6M9xnIYV/KiJP4Db61L0nHJ+B+kEKoAoGCCqGSM49 -AwEHoUQDQgAEdmzf3J4yj8VcXOaLKCeNCTOjC0jK6WyOML5WBtEX33pZuTLIu18S -3Jk7BKR3Dzq63DNgtaoK9WZlE3NGDCwgug== +MHcCAQEEIM8HlMqytGy/LgAdt+U5DQZcRU2WkFCd3c6sAngjD3e3oAoGCCqGSM49 +AwEHoUQDQgAEnZaX2XqX6Cz2upt9tOxvMK28RRTABSuTsoK4CTlP2NnwEuIzu1m3 +fnN+WYqRvzPeSOziLFHnJEOWEcT/FjTMyg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/test_case_vector.json index 36164cd4a77db9..f2571061790254 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_critical_wrong/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Certificate Basic Constraint extension critical field is set as 'non-critical'", "is_success_case": "false", - "dac_cert": "308201ce30820174a003020102020822f20ca3edb3dc97300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004c8a46ed23b791747adf1c5971ae1f42a16a628d85dce15f1bc5ef97f410383b1e1145cfc6789ec02c0b0882b7551e0cb52968fd187e9b1e63a4a5e11afd39bb6a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604145a3adadff85d2852747b8899529efb8800f11d83301f0603551d23041830168014aca37ec87940f5cffe06d722be2833931f37246b300a06082a8648ce3d0403020348003045022100cf46e7867f8d0dcfaab0ff1ea313a628b5e2ebc37b5c4a64d73c7fd7d342bde7022048a0ea4feef2666f9e6a4546773c03984164193310c6384966bcc266a1aa2466", - "pai_cert": "308201ba30820161a003020102020822a805e44bf15194300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004766cdfdc9e328fc55c5ce68b28278d0933a30b48cae96c8e30be5606d117df7a59b932c8bb5f12dc993b04a4770f3abadc3360b5aa0af566651373460c2c20baa3633061300f0603551d13040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414aca37ec87940f5cffe06d722be2833931f37246b301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402206d85561002d9b2c161a8282529cc5ea122f02d0dcdcfa8d6b321a96e4430af0302207f262e4eae2b843e10733294747c25d1268d2259b82d0c61430c079c359c91b0", - "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100c46e78d1ec5865c15f7eda4143e16ffc38679d6d81626e1560c068f40da503640220197db5d90fd9b2251c38476158cb69e0b1cd1ab38a481e32d179e3f53255b554", - "dac_private_key": "ae3d1b6e99d533a37f8f59ae930ee803b19ab61143bf9f3ebb25c6ccebf878ba", - "dac_public_key": "04c8a46ed23b791747adf1c5971ae1f42a16a628d85dce15f1bc5ef97f410383b1e1145cfc6789ec02c0b0882b7551e0cb52968fd187e9b1e63a4a5e11afd39bb6" + "dac_cert": "308201ce30820174a003020102020875bdcd969e5b969b300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004fe1c706957e5e0b3c4d7936430c8d22b138f61b37dd3741b268c6c6416dbe40badc5f72677fc44e07a5e8f0bdd2069248a4b791b012952d6bd70a2e5d908622ea360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604149549ba145639c37f8f428451692e429f4870754c301f0603551d23041830168014f55f165211c29ded4806290c29bc8a0d8c4d2d63300a06082a8648ce3d0403020348003045022100b286211bad5b79eabef358b02fff6185dbbf0b94ab028daef1bbc59a8d662f6d022006707326638ed2f47cd84392db6b4db5f6d5f0aa709e046c50cb7998b2cf469d", + "pai_cert": "308201ba30820161a003020102020854c9ba26ffa6c4f7300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200049d9697d97a97e82cf6ba9b7db4ec6f30adbc4514c0052b93b282b809394fd8d9f012e233bb59b77e737e598a91bf33de48ece22c51e724439611c4ff1634cccaa3633061300f0603551d13040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414f55f165211c29ded4806290c29bc8a0d8c4d2d63301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402202bfab71ea77df03b292d82b4bd1b21a286818f5b64187bf57029d2652a1437f202201dcf41dc09bd0f387b8391ab3d6306377ad497eedea7f7ed629d89d336af7233", + "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100815f5318a677166a66950bdf02be6212ef4f1a99e1a0fc81ab80f68c3fa2fc880221008410e82ea0095fdd328b4571d21045da47880c0f0399d3a2801a5f6543a17f02", + "dac_private_key": "720f9e945d7b09a2778053b8da6a3ff4ce533fcd0e6bf9e6f6d57e074f2d1381", + "dac_public_key": "04fe1c706957e5e0b3c4d7936430c8d22b138f61b37dd3741b268c6c6416dbe40badc5f72677fc44e07a5e8f0bdd2069248a4b791b012952d6bd70a2e5d908622e" } diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/cd.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/cd.der index 55013e0ec24f80..ce8f850e77da00 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/cd.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/dac-Cert.der index b6c6d449831623..32cedf18c2d3bc 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/dac-Cert.pem index 79748652d112d3..c7b1258d5f0989 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzjCCAXSgAwIBAgIIcqj4HIFV+OQwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzjCCAXSgAwIBAgIIW8xZsDy+utUwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAREQXdjPxxEABV3bOC69UIcKjGInp3z -wRZWAeZU1v+S6xZcgoHFJOv2rzaWh/JeYylVBAIuVZV1r/qvuYfOE/Tio2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQU1quN3qlqBRhA -ultbfWV/Jm49FPswHwYDVR0jBBgwFoAUqi3oUmbUxHiaSCMmFpAyzjkexDswCgYI -KoZIzj0EAwIDSAAwRQIhAPr2yjEcMgiveEW0I6lKfZFReXZ3hnCi6vKMnEO2+Owp -AiBvKdELQarCsoQb/n6VTNhjOpPpAjm+iF6bOSDLQkjrUg== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARdAdeOpU8zzB58Pc6CJHRoAX4OG9nO +VOJrp56gH6igILibAMEGpBuHgAg8yP90uONyaaV8bqv1M3pyjaDkpR4No2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQU98kIxRrO4iSq +jJDvrNSQQUxbirUwHwYDVR0jBBgwFoAUlHQI+M208hYbyi6p4Lap2pXp5IQwCgYI +KoZIzj0EAwIDSAAwRQIhAOovv+N8V3k4SDQXzGNv/XPU4pL4yx9d9mxOcJR6BQvi +AiANwIAb9a312zgGMHPBqlk/jd6OF2jwGurjSjx741BJ6g== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/dac-Key.der index 8d28d2664fde1f..af169affecf2cb 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/dac-Key.pem index b08dc2fa20cba7..121bb77756a400 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIO9S0jqLcyxp6SbUTMOuvUWO1bJa2BZKg57UOuWFp6k/oAoGCCqGSM49 -AwEHoUQDQgAEREF3Yz8cRAAVd2zguvVCHCoxiJ6d88EWVgHmVNb/kusWXIKBxSTr -9q82lofyXmMpVQQCLlWVda/6r7mHzhP04g== +MHcCAQEEIDuxLZXbl2lK1CIbNoRdSk2mn03DbyHzR7CdTjD0dnmjoAoGCCqGSM49 +AwEHoUQDQgAEXQHXjqVPM8wefD3OgiR0aAF+DhvZzlTia6eeoB+ooCC4mwDBBqQb +h4AIPMj/dLjjcmmlfG6r9TN6co2g5KUeDQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/pai-Cert.der index 0d7f2f91119ce7..219f330f5b27d9 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/pai-Cert.pem index dd5ba181ae4f8e..25694d8d330941 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/pai-Cert.pem @@ -1,11 +1,11 @@ -----BEGIN CERTIFICATE----- -MIIBqjCCAVCgAwIBAgIIQY6WgUoNjqEwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBqjCCAVCgAwIBAgIID878EHeYm7cwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABN+lpYIumC6+V5LX2R3BGscTGfKBH3ejl8yKxWBAFnAjraCWENcPIE3VffHk -f8vmeaoSb7NHyBpHAyQfWa7JOy2jUjBQMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4E -FgQUqi3oUmbUxHiaSCMmFpAyzjkexDswHwYDVR0jBBgwFoAUav0idx9RH+y/FkGX -ZxDc3DGhcX4wCgYIKoZIzj0EAwIDSAAwRQIgERugrMoPqgWeVWPA4RioIpep2WmY -rJB2/bMhOdUmUmwCIQD6ZXHiLsVkzvqZDqpn/ZGp4xXt/YRPkYMAMPbKrzGpzQ== +A0IABEH0GBS7xtXgBDl/sLWn0aRdIDX2QSbboPdW37A8V7wjBxOQXRoir9iQmPXX +sAVTH1zWS8svwm+kls9vCKwBiAejUjBQMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4E +FgQUlHQI+M208hYbyi6p4Lap2pXp5IQwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGX +ZxDc3DGhcX4wCgYIKoZIzj0EAwIDSAAwRQIhAJG7tQaKXSVo7RArM2/RwwU4y9UV +bY8LiO807Fun7OKjAiAVjKxUjnhEsp3tzBLXopv2AL3qoz7rlvPmRWyxcC4kcA== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/pai-Key.der index 64350cad328d47..fade1e59b6e855 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/pai-Key.pem index 96ab9815621701..1b59cd60eaaac5 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIEGpilBeZ6WoFpnB9BVo+ZfyDexR5hh2f7niNd66RhceoAoGCCqGSM49 -AwEHoUQDQgAE36Wlgi6YLr5XktfZHcEaxxMZ8oEfd6OXzIrFYEAWcCOtoJYQ1w8g -TdV98eR/y+Z5qhJvs0fIGkcDJB9Zrsk7LQ== +MHcCAQEEIBYD5L9Q/WcmGpnsWW9DI2NgK+RXFVxUZPAS2cW+Mb0YoAoGCCqGSM49 +AwEHoUQDQgAEQfQYFLvG1eAEOX+wtafRpF0gNfZBJtug91bfsDxXvCMHE5BdGiKv +2JCY9dewBVMfXNZLyy/Cb6SWz28IrAGIBw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/test_case_vector.json index cda45e7bb3288d..d31f029ea996f7 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_missing/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Certificate doesn't include Basic Constraint extension", "is_success_case": "false", - "dac_cert": "308201ce30820174a003020102020872a8f81c8155f8e4300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004444177633f1c440015776ce0baf5421c2a31889e9df3c1165601e654d6ff92eb165c8281c524ebf6af369687f25e63295504022e559575affaafb987ce13f4e2a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414d6ab8ddea96a051840ba5b5b7d657f266e3d14fb301f0603551d23041830168014aa2de85266d4c4789a482326169032ce391ec43b300a06082a8648ce3d0403020348003045022100faf6ca311c3208af7845b423a94a7d91517976778670a2eaf28c9c43b6f8ec2902206f29d10b41aac2b2841bfe7e954cd8633a93e90239be885e9b3920cb4248eb52", - "pai_cert": "308201aa30820150a0030201020208418e96814a0d8ea1300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004dfa5a5822e982ebe5792d7d91dc11ac71319f2811f77a397cc8ac56040167023ada09610d70f204dd57df1e47fcbe679aa126fb347c81a4703241f59aec93b2da3523050300e0603551d0f0101ff040403020106301d0603551d0e04160414aa2de85266d4c4789a482326169032ce391ec43b301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203480030450220111ba0acca0faa059e5563c0e118a82297a9d96998ac9076fdb32139d526526c022100fa6571e22ec564cefa990eaa67fd91a9e315edfd844f91830030f6caaf31a9cd", - "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100cbad358c3a059cfa829489d73bf821769d2f4e7c413b7f96a28c75b0922d3301022100c7c0ad2429dc0fbaaa1359e2e50ca87b7132cd6dbdf7d565e255d616be1db958", - "dac_private_key": "ef52d23a8b732c69e926d44cc3aebd458ed5b25ad8164a839ed43ae585a7a93f", - "dac_public_key": "04444177633f1c440015776ce0baf5421c2a31889e9df3c1165601e654d6ff92eb165c8281c524ebf6af369687f25e63295504022e559575affaafb987ce13f4e2" + "dac_cert": "308201ce30820174a00302010202085bcc59b03cbebad5300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200045d01d78ea54f33cc1e7c3dce82247468017e0e1bd9ce54e26ba79ea01fa8a020b89b00c106a41b8780083cc8ff74b8e37269a57c6eabf5337a728da0e4a51e0da360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414f7c908c51acee224aa8c90efacd490414c5b8ab5301f0603551d23041830168014947408f8cdb4f2161bca2ea9e0b6a9da95e9e484300a06082a8648ce3d0403020348003045022100ea2fbfe37c577938483417cc636ffd73d4e292f8cb1f5df66c4e70947a050be202200dc0801bf5adf5db38063073c1aa593f8dde8e1768f01aeae34a3c7be35049ea", + "pai_cert": "308201aa30820150a00302010202080fcefc1077989bb7300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000441f41814bbc6d5e004397fb0b5a7d1a45d2035f64126dba0f756dfb03c57bc230713905d1a22afd89098f5d7b005531f5cd64bcb2fc26fa496cf6f08ac018807a3523050300e0603551d0f0101ff040403020106301d0603551d0e04160414947408f8cdb4f2161bca2ea9e0b6a9da95e9e484301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502210091bbb5068a5d2568ed102b336fd1c30538cbd5156d8f0b88ef34ec5ba7ece2a30220158cac548e7844b29dedcc12d7a29bf600bdeaa33eeb96f3e6456cb1702e2470", + "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100b527f4d1698836f14ef8ecae20a643375b642197bf8a6ff2651149e0ebfd9b66022100b9f1e4ab4a3d59f17fc3947eaa70e1dc4acf29cca4715ff5f6504342a522ad02", + "dac_private_key": "3bb12d95db97694ad4221b36845d4a4da69f4dc36f21f347b09d4e30f47679a3", + "dac_public_key": "045d01d78ea54f33cc1e7c3dce82247468017e0e1bd9ce54e26ba79ea01fa8a020b89b00c106a41b8780083cc8ff74b8e37269a57c6eabf5337a728da0e4a51e0d" } diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/cd.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/cd.der index 3ce3dbf7659f24..8016cfb7bd7512 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/cd.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/dac-Cert.der index bd5405e34f3638..884b8c03214507 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/dac-Cert.pem index 6495c4586383fb..5e0936280de507 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzTCCAXSgAwIBAgIIVyne/Lcit5QwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzzCCAXSgAwIBAgIIE87T7r1Bhp0wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR1V/sIJpj1ZZnENW8Z7QXaRNDgInW+ -9Rq7NNhx23s2VQoxMJbEeCgXfs/MoUcZirP8rhwmEYkZ4BVCWUE1MJjNo2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUcpqEo2m5WIMK -FxThMMc4FlytIOswHwYDVR0jBBgwFoAUZvfmmvLuK0sPoZXvps0ZPIf5+JQwCgYI -KoZIzj0EAwIDRwAwRAIgeW6fAwuKnaCPi7yePzjRpLo/npYbjYL9P6Ca7j/0WSwC -IBDzuElaXxDybmJMWwzVjU6lFzBtbKOJ67dT22petRyb +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAT7o6rYmlkehsGURjgyN+4h6eCNDW+D +N9vdFYPtszQBXKEfuimlcvxWC/HJMnXPK/Ccf4wZUjWcqVMMuI1880JDo2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUeWBrOG/Fzmox +3mqvlCqKDO+6HeUwHwYDVR0jBBgwFoAUo1n1g1fHzDc7aKU/iiq7m8QviUEwCgYI +KoZIzj0EAwIDSQAwRgIhAJITH7q0spz0PtDmj+ZNd5VrKp4NpdvwMGPGjJ8LGrDO +AiEAmV9qYMsA8i/jNesvzrM9iBl3LLQiBNT7st+8OtBROTY= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/dac-Key.der index fdc5d437c9583f..83ba60871de70b 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/dac-Key.pem index 6bd7c2cb908869..80a5143f784a92 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIKNv91OZ8xnf7lKe7NjEz4qxfKEPqI/H6tNn42JltNRNoAoGCCqGSM49 -AwEHoUQDQgAEdVf7CCaY9WWZxDVvGe0F2kTQ4CJ1vvUauzTYcdt7NlUKMTCWxHgo -F37PzKFHGYqz/K4cJhGJGeAVQllBNTCYzQ== +MHcCAQEEIN0NjQ+lqAT4i/SzFYhpMPkfRYt3olg4X3/khROQi1Y1oAoGCCqGSM49 +AwEHoUQDQgAE+6Oq2JpZHobBlEY4MjfuIengjQ1vgzfb3RWD7bM0AVyhH7oppXL8 +VgvxyTJ1zyvwnH+MGVI1nKlTDLiNfPNCQw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/pai-Cert.der index 3861ffb0a97b72..95bf7811ec38ba 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/pai-Cert.pem index 4d22147506ba5b..79935fd9a6638b 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvjCCAWSgAwIBAgIIKRp9Cuiy3eMwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvjCCAWSgAwIBAgIID5v84wYVAMMwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABMox6Cjpeqv49ccPoHp4gQ/dFrL5mBmVB2c6V8VVZfbH9QS7QTSJd2VX/BlZ -/eQI/NFwzKYEcewlCiLjis74PpujZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRm9+aa8u4rSw+hle+mzRk8h/n4lDAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiEA -hXmUNnf796Bkj1z182GojM8zq7SeWfFtAKn9qu2XIbECIDkvn4YZb1rnsLKll0VR -xdoBu31q4TrBFUCyw9ChUyFe +A0IABFLwkBRiGLl56zj7bjkVNTLKADMtouNS5kIKli3ZV8UyUxyY1bMYhSAjYX+3 +rxkfj0knRp3y8xzKMUNfkLR9krGjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSjWfWDV8fMNztopT+KKrubxC+JQTAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiBn +l65zTZ72EseoQ5Xm9+FlVapbbSEBkvys8TMnivKYXAIhAI8+8OgRulGG1Qp7qQMK +3VGQ/iY3wH4pCjdh5QnXe2gL -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/pai-Key.der index bbfdcdb2dfaaf3..f770a9420b027b 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/pai-Key.pem index f1397d17baeafc..c1e48c613972c3 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIMegMqXX2sBV/RVLZA+zNIEOjA7DX6hC0e4Qjzq2yooWoAoGCCqGSM49 -AwEHoUQDQgAEyjHoKOl6q/j1xw+geniBD90WsvmYGZUHZzpXxVVl9sf1BLtBNIl3 -ZVf8GVn95Aj80XDMpgRx7CUKIuOKzvg+mw== +MHcCAQEEIBP4UxtzAtK7s/yKzpOESJxMzX21INk9IzfJH9uc0YatoAoGCCqGSM49 +AwEHoUQDQgAEUvCQFGIYuXnrOPtuORU1MsoAMy2i41LmQgqWLdlXxTJTHJjVsxiF +ICNhf7evGR+PSSdGnfLzHMoxQ1+QtH2SsQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/test_case_vector.json index 1801e9330904f3..d34fe3a7dbda3c 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen0/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Certificate Basic Constraint extension PathLen field set to 0", "is_success_case": "false", - "dac_cert": "308201cd30820174a00302010202085729defcb722b794300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200047557fb082698f56599c4356f19ed05da44d0e02275bef51abb34d871db7b36550a313096c47828177ecfcca147198ab3fcae1c26118919e015425941353098cda360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414729a84a369b958830a1714e130c738165cad20eb301f0603551d2304183016801466f7e69af2ee2b4b0fa195efa6cd193c87f9f894300a06082a8648ce3d04030203470030440220796e9f030b8a9da08f8bbc9e3f38d1a4ba3f9e961b8d82fd3fa09aee3ff4592c022010f3b8495a5f10f26e624c5b0cd58d4ea517306d6ca389ebb753db6a5eb51c9b", - "pai_cert": "308201be30820164a0030201020208291a7d0ae8b2dde3300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004ca31e828e97aabf8f5c70fa07a78810fdd16b2f998199507673a57c55565f6c7f504bb413489776557fc1959fde408fcd170cca60471ec250a22e38acef83e9ba366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041466f7e69af2ee2b4b0fa195efa6cd193c87f9f894301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203480030450221008579943677fbf7a0648f5cf5f361a88ccf33abb49e59f16d00a9fdaaed9721b10220392f9f86196f5ae7b0b2a5974551c5da01bb7d6ae13ac11540b2c3d0a153215e", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044630440220482ad9a336283c8a0f90bb78e27c930df1e1ff6fdfa0d96dd440d07ac0a8e64f0220527d13c193762175ecd5a0e37b0337bc5c8956d3a88de750628798a2d6d38084", - "dac_private_key": "a36ff75399f319dfee529eecd8c4cf8ab17ca10fa88fc7ead367e36265b4d44d", - "dac_public_key": "047557fb082698f56599c4356f19ed05da44d0e02275bef51abb34d871db7b36550a313096c47828177ecfcca147198ab3fcae1c26118919e015425941353098cd" + "dac_cert": "308201cf30820174a003020102020813ced3eebd41869d300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004fba3aad89a591e86c19446383237ee21e9e08d0d6f8337dbdd1583edb334015ca11fba29a572fc560bf1c93275cf2bf09c7f8c1952359ca9530cb88d7cf34243a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041479606b386fc5ce6a31de6aaf942a8a0cefba1de5301f0603551d23041830168014a359f58357c7cc373b68a53f8a2abb9bc42f8941300a06082a8648ce3d040302034900304602210092131fbab4b29cf43ed0e68fe64d77956b2a9e0da5dbf03063c68c9f0b1ab0ce022100995f6a60cb00f22fe335eb2fceb33d8819772cb42204d4fbb2dfbc3ad0513936", + "pai_cert": "308201be30820164a00302010202080f9bfce3061500c3300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000452f090146218b979eb38fb6e39153532ca00332da2e352e6420a962dd957c532531c98d5b318852023617fb7af191f8f4927469df2f31cca31435f90b47d92b1a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414a359f58357c7cc373b68a53f8a2abb9bc42f8941301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502206797ae734d9ef612c7a84395e6f7e16555aa5b6d210192fcacf133278af2985c0221008f3ef0e811ba5186d50a7ba9030add5190fe2637c07e290a3761e509d77b680b", + "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022021196a35d5eb76cb150bb3f70663ded9bad9bcdd5848d20ee3b73d5031a4d9b3022100edfc04bfbfc9308e76339abe7736e1989b2402681a38d7d2801a721ac5156629", + "dac_private_key": "dd0d8d0fa5a804f88bf4b315886930f91f458b77a258385f7fe48513908b5635", + "dac_public_key": "04fba3aad89a591e86c19446383237ee21e9e08d0d6f8337dbdd1583edb334015ca11fba29a572fc560bf1c93275cf2bf09c7f8c1952359ca9530cb88d7cf34243" } diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/cd.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/cd.der index eaa2200a14548b..c2d19e05abadb5 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/cd.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/dac-Cert.der index fa8f5926ac5a4b..6cc32e5bf84b5f 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/dac-Cert.pem index db24844a85647a..5d012c88f80d05 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzjCCAXSgAwIBAgIIV53Lt7q6dbcwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzTCCAXSgAwIBAgIIQ94ezKBuz7owCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAT9WGk1rie1bYL7SehWXXGOwQgPXtGx -WfL6ry1esBopbj2Z3HeiSUsnfNrESxwRlhPbkWTLlghsdAj1SJ1CSib5o2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUzWOTsbiGYkXX -sOX7e2YXFlwbtwIwHwYDVR0jBBgwFoAU4ybl4hTxNw6tPAyPgow9kR3f9ZMwCgYI -KoZIzj0EAwIDSAAwRQIgP2/GmzW6oXYlBAdDVCnbOt2tNdyvtyQJ3fWNQw4DfK8C -IQCcmh0NqOw6WkcsG056VsS8WK3gGPETMj2YrofdDgJYzw== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATOeerGnSKKK9gKaFTwwWb9oTlXENpk +8zckRPmGf8uDQA34e2h4ko+pkjyuYGgTUbjKNmO1zrMQUKrpSEjshTYQo2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUdcRCF3OJpCGI +sJ3ESiRxddQc+IIwHwYDVR0jBBgwFoAU0bj1sSC1TYQMeRMB9qezc8mgnAswCgYI +KoZIzj0EAwIDRwAwRAIgKJnHTBXQHqC/TR941xO40h7RM12VR3mFy/aBGd3iWMIC +IDbIaRJuLPIhFtQ8ubmQHSOrrzx5EDQfimi3HiZmtqqy -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/dac-Key.der index 5fd046f5d00876..fd60d60addca87 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/dac-Key.pem index a72b155b242e8e..7cb0ef0f3e13bf 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIHAOr/SVijKkeETRjIECLJXQE6iztcWfGfVo70qioO+MoAoGCCqGSM49 -AwEHoUQDQgAE/VhpNa4ntW2C+0noVl1xjsEID17RsVny+q8tXrAaKW49mdx3oklL -J3zaxEscEZYT25Fky5YIbHQI9UidQkom+Q== +MHcCAQEEIF19URBX3zQIrBdZrhxnTC5oKdP5E8Iz/hBvpwcoTOs1oAoGCCqGSM49 +AwEHoUQDQgAEznnqxp0iiivYCmhU8MFm/aE5VxDaZPM3JET5hn/Lg0AN+HtoeJKP +qZI8rmBoE1G4yjZjtc6zEFCq6UhI7IU2EA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/pai-Cert.der index 89c14de17c5c83..9a7716ecd52973 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/pai-Cert.pem index e8417114821ca8..0a80b6d9a65a18 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvjCCAWSgAwIBAgIIO6AbDsnA+7owCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvTCCAWSgAwIBAgIIJngdx/fnGaEwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABB2/smboO4ptf7nYCnsDarQ3bUQ8FXP8JLGlM6ra6Ds29KBeasbj4MlmD8iR -qut3WBFomka9ZYii6e6lUzfT012jZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTjJuXiFPE3Dq08DI+CjD2RHd/1kzAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiEA -nc3fDteM1KuRL16+eCvSWNjl+SF0ic+pXUg7+ZVrI6MCIDvCK4bkBiTr15MHKbvP -rVDiMOlyW15OWB7/dj/61vIf +A0IABD0Xv6bFdvRzHD1WE9gybQ/WvaE5+N3oWCUEFCscmNW1bLeJqR5l/3c9cUPu +OfbV7xQul6KLwJJAcyRQZBs8K0qjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTRuPWxILVNhAx5EwH2p7NzyaCcCzAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNHADBEAiBc +tRMOIZlyWi5YjdE/keJDNl4qpouwFABhWTJ0jiZZ0wIgXG4UadFkPFNiKCGayZlw +1eDX6nQnnpQUJcbCLrBEzvQ= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/pai-Key.der index aa971c0319cde8..b8201abac38649 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/pai-Key.pem index d9c99ad6627a72..c06f22a23a68f1 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIFvO4uX+VmTQF1syrvK6v2sP0in4RHcx759qGCa5mYg5oAoGCCqGSM49 -AwEHoUQDQgAEHb+yZug7im1/udgKewNqtDdtRDwVc/wksaUzqtroOzb0oF5qxuPg -yWYPyJGq63dYEWiaRr1liKLp7qVTN9PTXQ== +MHcCAQEEICzkD+kLllNSUQYc+iRa+zWw2DrpqW0ISFXIctbwqOcooAoGCCqGSM49 +AwEHoUQDQgAEPRe/psV29HMcPVYT2DJtD9a9oTn43ehYJQQUKxyY1bVst4mpHmX/ +dz1xQ+459tXvFC6XoovAkkBzJFBkGzwrSg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/test_case_vector.json index 1d31c361df1080..fd73e026aac2a7 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen1/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Certificate Basic Constraint extension PathLen field set to 1", "is_success_case": "false", - "dac_cert": "308201ce30820174a0030201020208579dcbb7baba75b7300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004fd586935ae27b56d82fb49e8565d718ec1080f5ed1b159f2faaf2d5eb01a296e3d99dc77a2494b277cdac44b1c119613db9164cb96086c7408f5489d424a26f9a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414cd6393b1b8866245d7b0e5fb7b6617165c1bb702301f0603551d23041830168014e326e5e214f1370ead3c0c8f828c3d911ddff593300a06082a8648ce3d040302034800304502203f6fc69b35baa176250407435429db3addad35dcafb72409ddf58d430e037caf0221009c9a1d0da8ec3a5a472c1b4e7a56c4bc58ade018f113323d98ae87dd0e0258cf", - "pai_cert": "308201be30820164a00302010202083ba01b0ec9c0fbba300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200041dbfb266e83b8a6d7fb9d80a7b036ab4376d443c1573fc24b1a533aadae83b36f4a05e6ac6e3e0c9660fc891aaeb775811689a46bd6588a2e9eea55337d3d35da366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414e326e5e214f1370ead3c0c8f828c3d911ddff593301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203480030450221009dcddf0ed78cd4ab912f5ebe782bd258d8e5f9217489cfa95d483bf9956b23a302203bc22b86e40624ebd7930729bbcfad50e230e9725b5e4e581eff763ffad6f21f", - "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502206fa26f3807f0d97c57652a38fc299564f543465c9ed9cadd793a290790aa11de022100fa8550d0b761a3c63a6b5b4e5e4309f7b11c23d83deef774a605e23a28d8c5e1", - "dac_private_key": "700eaff4958a32a47844d18c81022c95d013a8b3b5c59f19f568ef4aa2a0ef8c", - "dac_public_key": "04fd586935ae27b56d82fb49e8565d718ec1080f5ed1b159f2faaf2d5eb01a296e3d99dc77a2494b277cdac44b1c119613db9164cb96086c7408f5489d424a26f9" + "dac_cert": "308201cd30820174a003020102020843de1ecca06ecfba300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004ce79eac69d228a2bd80a6854f0c166fda1395710da64f3372444f9867fcb83400df87b6878928fa9923cae60681351b8ca3663b5ceb31050aae94848ec853610a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041475c442177389a42188b09dc44a247175d41cf882301f0603551d23041830168014d1b8f5b120b54d840c791301f6a7b373c9a09c0b300a06082a8648ce3d040302034700304402202899c74c15d01ea0bf4d1f78d713b8d21ed1335d95477985cbf68119dde258c2022036c869126e2cf22116d43cb9b9901d23abaf3c7910341f8a68b71e2666b6aab2", + "pai_cert": "308201bd30820164a003020102020826781dc7f7e719a1300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200043d17bfa6c576f4731c3d5613d8326d0fd6bda139f8dde8582504142b1c98d5b56cb789a91e65ff773d7143ee39f6d5ef142e97a28bc09240732450641b3c2b4aa366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414d1b8f5b120b54d840c791301f6a7b373c9a09c0b301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402205cb5130e2199725a2e588dd13f91e243365e2aa68bb01400615932748e2659d302205c6e1469d1643c536228219ac99970d5e0d7ea74279e941425c6c22eb044cef4", + "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100cec5eed2434fd86ca1fb9c30815b79af49c6740a9e76a5f26268f83c73f816a40221008d3eb5d6c27153b0d1c9393e336088628e79a3bdf188c0314ab4165c024f8f90", + "dac_private_key": "5d7d511057df3408ac1759ae1c674c2e6829d3f913c233fe106fa707284ceb35", + "dac_public_key": "04ce79eac69d228a2bd80a6854f0c166fda1395710da64f3372444f9867fcb83400df87b6878928fa9923cae60681351b8ca3663b5ceb31050aae94848ec853610" } diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/cd.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/cd.der index 9cd34316368ab8..faa14b0514f108 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/cd.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/dac-Cert.der index e53358698459b4..c6c613f770a8f3 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/dac-Cert.pem index 5827c64dcae4a4..03730369ca6826 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzjCCAXSgAwIBAgIIBnC8E0BZ4vwwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzzCCAXSgAwIBAgIIfG3PSXrUp5AwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQBlO280rkIlQXnRGWNDRE0ZI3QfbQt -x6eo++Jn5Q1lFDjEZ9LJh44emhGKC2xvr71p0fMUnEm3na8KuFOraCFKo2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUyjutKVH7/9EH -CeLfKMNg5eqf4BAwHwYDVR0jBBgwFoAUIKWwXLaQflD4B6osdspANiGRnH8wCgYI -KoZIzj0EAwIDSAAwRQIgBJVSv/tgXr9FA+HdO0l7TpVRidpqLBx9pi98N43ar8sC -IQCwUYY3S0gIeLTQeNWomc6HIWOqpdTyJub3t2D9upKdUw== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAScQK+vNk3a9vS/l6oBY0Nv2oZ29PVI +lvjkkz5Aa6fjhBFN3Due1hvHcLdT85kFve/Gf8t0CBSO4dEfGSEcLv+Lo2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUWPUbc0CF8ugL +8o0YXpvZWaIdIXowHwYDVR0jBBgwFoAUh6gjsu6cuZwBiMjEuuiJG/b1UUwwCgYI +KoZIzj0EAwIDSQAwRgIhAISt06Ew8fbEh8OR1Z8zkt9bzMAN0qlFbNKKbMF/XJXX +AiEAzdvw5Dc+ExGtyRrpZcujUAQKJM/QO+m2d9Sa0RIhAMg= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/dac-Key.der index ea3ad83a9c84c9..2af72dfaa4b664 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/dac-Key.pem index 87309f31bc10b1..f19ad8a151cd9a 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIBPWuv1HhPAWitV3kRlwVPHYqYYPTh94In5qTq6sP3r2oAoGCCqGSM49 -AwEHoUQDQgAEAZTtvNK5CJUF50RljQ0RNGSN0H20LcenqPviZ+UNZRQ4xGfSyYeO -HpoRigtsb6+9adHzFJxJt52vCrhTq2ghSg== +MHcCAQEEIH/V9RrJGKo2o2j7NPYRphXAMbyXs+I2xPAwZh0DobTkoAoGCCqGSM49 +AwEHoUQDQgAEnECvrzZN2vb0v5eqAWNDb9qGdvT1SJb45JM+QGun44QRTdw7ntYb +x3C3U/OZBb3vxn/LdAgUjuHRHxkhHC7/iw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/pai-Cert.der index bf079b4c3ae3c2..c17b97ee0b9cd1 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/pai-Cert.pem index 0c0502bd7ac8f6..9faa5dd17e2d81 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvjCCAWSgAwIBAgIIMkwgriE3ipUwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvjCCAWSgAwIBAgIIdsMoPtX/9w4wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABI4l7ftfMp404OBuOzw7VIkHX6DNj/xBA/e1fAcDF1Kszrt1o7zn+K+SU/Gz -LBPzoMLF0OF3h4HFby9LFLUISRyjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQIwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQgpbBctpB+UPgHqix2ykA2IZGcfzAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiEA -9kI+OonwzGzwf3QZPjfxNsCPfoZJthWotKgIWktfRJkCIHdCSaSA1vfhvKm4+5Np -rcn9kgRrWYo3agH28y64Igxt +A0IABPaemmcL9+U8mlSVPbnpsBbkRVyo6dGvMmaUfjSlXnD1ulkwxQGQVFMfSp6X +LuUnMr4mWo80i1K2xjCJzpeM1i+jZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQIwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSHqCOy7py5nAGIyMS66Ikb9vVRTDAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiAb +766EKsI2khkRRrpx7UC0PUWDOKqtglm9TpXsyFnTIAIhANOiKDcbSCzDsi4jxVuP +UVdT4IBAkL6vy3bcHKNeklvY -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/pai-Key.der index d8b1ef63a1b806..212c6b80732011 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/pai-Key.pem index aa84e1f1601783..03fb33662a7383 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIET3CAWtCuSC8d5tgz2+KeQyueMFIl1gWy9Z3o8YPyLXoAoGCCqGSM49 -AwEHoUQDQgAEjiXt+18ynjTg4G47PDtUiQdfoM2P/EED97V8BwMXUqzOu3WjvOf4 -r5JT8bMsE/OgwsXQ4XeHgcVvL0sUtQhJHA== +MHcCAQEEIL6s5SgeRMtiOY3MqwBe1e1j2M1u0I2m3IYxWftH/MbWoAoGCCqGSM49 +AwEHoUQDQgAE9p6aZwv35TyaVJU9uemwFuRFXKjp0a8yZpR+NKVecPW6WTDFAZBU +Ux9Knpcu5ScyviZajzSLUrbGMInOl4zWLw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/test_case_vector.json index 804349fca1ea1c..99e2be6a85b650 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen2/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Certificate Basic Constraint extension PathLen field set to 2", "is_success_case": "false", - "dac_cert": "308201ce30820174a00302010202080670bc134059e2fc300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200040194edbcd2b9089505e744658d0d1134648dd07db42dc7a7a8fbe267e50d651438c467d2c9878e1e9a118a0b6c6fafbd69d1f3149c49b79daf0ab853ab68214aa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414ca3bad2951fbffd10709e2df28c360e5ea9fe010301f0603551d2304183016801420a5b05cb6907e50f807aa2c76ca403621919c7f300a06082a8648ce3d04030203480030450220049552bffb605ebf4503e1dd3b497b4e955189da6a2c1c7da62f7c378ddaafcb022100b05186374b480878b4d078d5a899ce872163aaa5d4f226e6f7b760fdba929d53", - "pai_cert": "308201be30820164a0030201020208324c20ae21378a95300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200048e25edfb5f329e34e0e06e3b3c3b5489075fa0cd8ffc4103f7b57c07031752accebb75a3bce7f8af9253f1b32c13f3a0c2c5d0e1778781c56f2f4b14b508491ca366306430120603551d130101ff040830060101ff020102300e0603551d0f0101ff040403020106301d0603551d0e0416041420a5b05cb6907e50f807aa2c76ca403621919c7f301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100f6423e3a89f0cc6cf07f74193e37f136c08f7e8649b615a8b4a8085a4b5f44990220774249a480d6f7e1bca9b8fb9369adc9fd92046b598a376a01f6f32eb8220c6d", - "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502210081ae0531590c4006e2fc60f826643c66943e393524deecc95c3444d7799ab03502206cfc197e1cbe19dba52f37d891fc5a3266a27fc1df515f2fad27ff5455eff68c", - "dac_private_key": "13d6bafd4784f0168ad57791197054f1d8a9860f4e1f78227e6a4eaeac3f7af6", - "dac_public_key": "040194edbcd2b9089505e744658d0d1134648dd07db42dc7a7a8fbe267e50d651438c467d2c9878e1e9a118a0b6c6fafbd69d1f3149c49b79daf0ab853ab68214a" + "dac_cert": "308201cf30820174a00302010202087c6dcf497ad4a790300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200049c40afaf364ddaf6f4bf97aa0163436fda8676f4f54896f8e4933e406ba7e384114ddc3b9ed61bc770b753f39905bdefc67fcb7408148ee1d11f19211c2eff8ba360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041458f51b734085f2e80bf28d185e9bd959a21d217a301f0603551d2304183016801487a823b2ee9cb99c0188c8c4bae8891bf6f5514c300a06082a8648ce3d040302034900304602210084add3a130f1f6c487c391d59f3392df5bccc00dd2a9456cd28a6cc17f5c95d7022100cddbf0e4373e1311adc91ae965cba350040a24cfd03be9b677d49ad1122100c8", + "pai_cert": "308201be30820164a003020102020876c3283ed5fff70e300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004f69e9a670bf7e53c9a54953db9e9b016e4455ca8e9d1af3266947e34a55e70f5ba5930c5019054531f4a9e972ee52732be265a8f348b52b6c63089ce978cd62fa366306430120603551d130101ff040830060101ff020102300e0603551d0f0101ff040403020106301d0603551d0e0416041487a823b2ee9cb99c0188c8c4bae8891bf6f5514c301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502201befae842ac23692191146ba71ed40b43d458338aaad8259bd4e95ecc859d320022100d3a228371b482cc3b22e23c55b8f515753e0804090beafcb76dc1ca35e925bd8", + "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100df7cfa66bc487dd71b6fffc5c2276e564a90a9d93d90efbf9bbf1875efabb85c022100849c622af3f68637631448f93cf2621e83701357c98588b746c7f48677a6a8d6", + "dac_private_key": "7fd5f51ac918aa36a368fb34f611a615c031bc97b3e236c4f030661d03a1b4e4", + "dac_public_key": "049c40afaf364ddaf6f4bf97aa0163436fda8676f4f54896f8e4933e406ba7e384114ddc3b9ed61bc770b753f39905bdefc67fcb7408148ee1d11f19211c2eff8b" } diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/cd.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/cd.der index d86d14e56c66f7..ca98bdc52c0abd 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/cd.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/dac-Cert.der index 62ef67e4768ef1..6933bdd5c0073c 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/dac-Cert.pem index d30c9c11492931..ab1889ceb41edd 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzjCCAXSgAwIBAgIIUiZjEXYyY+cwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzzCCAXSgAwIBAgIIF3ABhg0fzoEwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAT2f7TbU6uSALYXSc3g7OFWtabY74Ls -4VCfer1gM5YYkBT1Okh5Qqjop3RZbwIxOl4L7pGopLp3SQHcA6D53VQco2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQU33XnCHqpyhps -xEFO5sOiAgD8pXQwHwYDVR0jBBgwFoAUCeSrwbocI57KNAMFfCFJhTmHuGMwCgYI -KoZIzj0EAwIDSAAwRQIhAJ15xefc+NqqMN8hknM9Iyg4poh5kdDIRF9rqRqnjxFS -AiBzyPcwhfIwk3U9DYbtsra24sgD4MAPRk6H9M0WmkS/Tg== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS5VjiaYP9O3r3V367zxG5h+EniXf4A +ckAd0y7Xkt/qu5w9MQ8PubK7DfYmKw18XlIRlcGI+XeLJQ7l2Oa4mepYo2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQU0Qp/+39UWh3l +beR2hK1L+WOGEFUwHwYDVR0jBBgwFoAUSka0yngGRYcCrZfYGsuRd/pHtm0wCgYI +KoZIzj0EAwIDSQAwRgIhAMbVrF29QysBg8woejHZAyLvud4cmCP4S0PGBwl6A60l +AiEAlfhYy9DHuZtdX0gu4TYeA91+Is64HyHBs2Ro7cf57DU= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/dac-Key.der index 5092408cb41a9f..25f4d7a1c6d455 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/dac-Key.pem index d6723c139c507f..f38c28a5128561 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIA8agZWiW0H43XTewOMe5DYvH7FbNV09G7AdnwA5V415oAoGCCqGSM49 -AwEHoUQDQgAE9n+021OrkgC2F0nN4OzhVrWm2O+C7OFQn3q9YDOWGJAU9TpIeUKo -6Kd0WW8CMTpeC+6RqKS6d0kB3AOg+d1UHA== +MHcCAQEEINnhowhk5o+71z5nmKIV05BiR/+QYr7Q1ddK5vqAUIHAoAoGCCqGSM49 +AwEHoUQDQgAEuVY4mmD/Tt691d+u88RuYfhJ4l3+AHJAHdMu15Lf6rucPTEPD7my +uw32JisNfF5SEZXBiPl3iyUO5djmuJnqWA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/pai-Cert.der index 91e9c7a1b556e6..859ad54d51b2d9 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/pai-Cert.pem index 0b9d4114c3e920..34781615fe3cb5 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvDCCAWGgAwIBAgIICMu5+QjfTP4wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBuzCCAWGgAwIBAgIIYRWM8m/zuXcwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABFLjQZk8bvb/tJ8OkkIRT5MjCU8NfpUvoltvf3NXP2G+YHccyB5P0FPGJCVo -htmJ315fnYmd6u+T16LWUJMGGeKjYzBhMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P -AQH/BAQDAgEGMB0GA1UdDgQWBBQJ5KvBuhwjnso0AwV8IUmFOYe4YzAfBgNVHSME -GDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNJADBGAiEAl+k4 -lqiN8T3DPxYHoJPxDo09hKeFjA+k0PyLGiuBOg8CIQC/YlP/zTTdzQK48xPakgxa -fTemFGZdyy0hXwa1tTCRKw== +A0IABPf6Xom3hXDktwJUvPX3MmiyLc053QnW/toY7L1JHO3rckSs5/q5E1T/YT8r +JevpTL8947OebSST9swbY8QORXKjYzBhMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P +AQH/BAQDAgEGMB0GA1UdDgQWBBRKRrTKeAZFhwKtl9gay5F3+ke2bTAfBgNVHSME +GDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiBNNCgk +WIHebvPAYrAeG7AEmDzMhnJblHhwPlcBaiy0OQIhAN+0TK/OCFT43KG1oshZ8KvL +F97Fprn9yLB//iKSHb5+ -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/pai-Key.der index 43dc5e8b6984b1..4f2c2e1b23a5c7 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/pai-Key.pem index cf5980b5571c72..98e86610292599 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIJTUqb40S+8fhlBdyhF0HzWuLXz6B4W1dQVzx2Wtyn7qoAoGCCqGSM49 -AwEHoUQDQgAEUuNBmTxu9v+0nw6SQhFPkyMJTw1+lS+iW29/c1c/Yb5gdxzIHk/Q -U8YkJWiG2YnfXl+diZ3q75PXotZQkwYZ4g== +MHcCAQEEIPgrDi5y9QR1SEpLiGAzJGhObBa+E8rwhSRLAllPe4mDoAoGCCqGSM49 +AwEHoUQDQgAE9/peibeFcOS3AlS89fcyaLItzTndCdb+2hjsvUkc7etyRKzn+rkT +VP9hPysl6+lMvz3js55tJJP2zBtjxA5Fcg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/test_case_vector.json index bab0fd7906274e..eca1b09f6d8744 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_basic_pathlen_presence_wrong/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Certificate Basic Constraint extension PathLen field presence is wrong (present for DAC not present for PAI)", "is_success_case": "false", - "dac_cert": "308201ce30820174a003020102020852266311763263e7300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004f67fb4db53ab9200b61749cde0ece156b5a6d8ef82ece1509f7abd603396189014f53a487942a8e8a774596f02313a5e0bee91a8a4ba774901dc03a0f9dd541ca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414df75e7087aa9ca1a6cc4414ee6c3a20200fca574301f0603551d2304183016801409e4abc1ba1c239eca3403057c2149853987b863300a06082a8648ce3d04030203480030450221009d79c5e7dcf8daaa30df2192733d232838a6887991d0c8445f6ba91aa78f1152022073c8f73085f23093753d0d86edb2b6b6e2c803e0c00f464e87f4cd169a44bf4e", - "pai_cert": "308201bc30820161a003020102020808cbb9f908df4cfe300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000452e341993c6ef6ffb49f0e9242114f9323094f0d7e952fa25b6f7f73573f61be60771cc81e4fd053c624256886d989df5e5f9d899deaef93d7a2d650930619e2a3633061300f0603551d130101ff040530030101ff300e0603551d0f0101ff040403020106301d0603551d0e0416041409e4abc1ba1c239eca3403057c2149853987b863301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034900304602210097e93896a88df13dc33f1607a093f10e8d3d84a7858c0fa4d0fc8b1a2b813a0f022100bf6253ffcd34ddcd02b8f313da920c5a7d37a614665dcb2d215f06b5b530912b", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402207763a2c5dc7e83cc338192d4e0cd878a625396cf8c41cccfcede8ab6ee24638c0220605bba03643b55e86743dd8822e36b0933978a353a10fd6d860b9066f29c8de8", - "dac_private_key": "0f1a8195a25b41f8dd74dec0e31ee4362f1fb15b355d3d1bb01d9f0039578d79", - "dac_public_key": "04f67fb4db53ab9200b61749cde0ece156b5a6d8ef82ece1509f7abd603396189014f53a487942a8e8a774596f02313a5e0bee91a8a4ba774901dc03a0f9dd541c" + "dac_cert": "308201cf30820174a0030201020208177001860d1fce81300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004b956389a60ff4edebdd5dfaef3c46e61f849e25dfe0072401dd32ed792dfeabb9c3d310f0fb9b2bb0df6262b0d7c5e521195c188f9778b250ee5d8e6b899ea58a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414d10a7ffb7f545a1de56de47684ad4bf963861055301f0603551d230418301680144a46b4ca7806458702ad97d81acb9177fa47b66d300a06082a8648ce3d0403020349003046022100c6d5ac5dbd432b0183cc287a31d90322efb9de1c9823f84b43c607097a03ad2502210095f858cbd0c7b99b5d5f482ee1361e03dd7e22ceb81f21c1b36468edc7f9ec35", + "pai_cert": "308201bb30820161a003020102020861158cf26ff3b977300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004f7fa5e89b78570e4b70254bcf5f73268b22dcd39dd09d6feda18ecbd491cedeb7244ace7fab91354ff613f2b25ebe94cbf3de3b39e6d2493f6cc1b63c40e4572a3633061300f0603551d130101ff040530030101ff300e0603551d0f0101ff040403020106301d0603551d0e041604144a46b4ca7806458702ad97d81acb9177fa47b66d301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502204d3428245881de6ef3c062b01e1bb004983ccc86725b9478703e57016a2cb439022100dfb44cafce0854f8dca1b5a2c859f0abcb17dec5a6b9fdc8b07ffe22921dbe7e", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204463044022062eeefc0052eaac009c76378e120731b3850f71c581c4b20ffdb5005975df9bb022050f1c6b7796e54b43897f3319e0a68cab1465d2f7d39f416717605ca0b746b98", + "dac_private_key": "d9e1a30864e68fbbd73e6798a215d3906247ff9062bed0d5d74ae6fa805081c0", + "dac_public_key": "04b956389a60ff4edebdd5dfaef3c46e61f849e25dfe0072401dd32ed792dfeabb9c3d310f0fb9b2bb0df6262b0d7c5e521195c188f9778b250ee5d8e6b899ea58" } diff --git a/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/cd.der b/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/cd.der index 3b7fe9c4f78b00..6b8cb835bd3017 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/cd.der and b/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/dac-Cert.der index a454952fea9c88..2e599b966a00ec 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/dac-Cert.pem index 35647681415c40..bce9eff3a6758b 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzjCCAXSgAwIBAgIIbRvkKSR4HZowCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzjCCAXSgAwIBAgIIMbVSMboXncAwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASdAJBhjtXBKGlN90I6HGZbhehkkCs/ -Ttjf6xumrc+/ilThoSVZ5xiHrjQqynTNxsKDBGnxTg85F6cFtdRHzSvao2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUscQC3p3d3eH2 -NmjNoTC15bdJvJ0wHwYDVR0jBBgwFoAUU51g/ciOjNaYymqI2JzFNIAY8DUwCgYI -KoZIzj0EAwIDSAAwRQIgRM3YEgb8BRlLLrbbzT0Sok/a5QNd6zQbd6Oa0jENGcYC -IQD3urqAR46THNhJMQjOmQjGo4SZkM022WJv1ic7jeSdng== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQP3x1Dx7VILdzr/kC1KL5JsVo0xULn +syUNOLs4mi5rmrz5dtufQYx17c9pnDuHh5mfSAArAdzsWtB5Htx60pSvo2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUcLuEVPQItmaR +xGXKqUTpnbGBw4cwHwYDVR0jBBgwFoAUi/2TGAFILKPn9HM8wrKN6kW57kUwCgYI +KoZIzj0EAwIDSAAwRQIgSBU2+ut78lVUDSlE1o9L5Pc9aO3AbYU34qKYuoMn5nkC +IQDhnB6QSK8sMnhckTV9bkp7fuO0RSB6ivHLbVo/TxFIYA== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/dac-Key.der index ebe7f3a9214556..e4e77ad711151f 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/dac-Key.pem index 5bad512a41e216..bd05fb47fdb8ae 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIJZKurGYnqBTshrLhHymXM8Q3jO0sXQbrByIb609KQZ8oAoGCCqGSM49 -AwEHoUQDQgAEnQCQYY7VwShpTfdCOhxmW4XoZJArP07Y3+sbpq3Pv4pU4aElWecY -h640Ksp0zcbCgwRp8U4PORenBbXUR80r2g== +MHcCAQEEIEhaDO3eM7QNJni9H3ve6ZEKhP29OHOG1oe/tjbwcw+soAoGCCqGSM49 +AwEHoUQDQgAED98dQ8e1SC3c6/5AtSi+SbFaNMVC57MlDTi7OJoua5q8+Xbbn0GM +de3PaZw7h4eZn0gAKwHc7FrQeR7cetKUrw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/pai-Cert.der index df261c4c9e2dae..903f20699e4c7c 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/pai-Cert.pem index 35fccbeda844be..dce4328d720324 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/pai-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB4jCCAYigAwIBAgIIR84x4kpq6RwwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIB4jCCAYigAwIBAgIIWoFtVcSoPnkwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABCTQFwdj+PWpd0YBWnMCNKDwYuiOUEhQJ8tdM/UeebXHOnsXD8nhi2zHNO2E -m3+iKBQWpbDmz1lvLzaeEYvrUuWjgYkwgYYwEgYDVR0TAQH/BAgwBgEB/wIBATAO -BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFFOdYP3IjozWmMpqiNicxTSAGPA1MB8G +A0IABP/9vIDATCtUjHG53A3h5bvr9aYue3JTkm8styENHEWjK267BKPYH8N5bASI +5Zt/GYTdjbBEjlv6dxDZNLalKzmjgYkwgYYwEgYDVR0TAQH/BAgwBgEB/wIBADAO +BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFIv9kxgBSCyj5/RzPMKyjepFue5FMB8G A1UdIwQYMBaAFGr9IncfUR/svxZBl2cQ3NwxoXF+MCAGA1UdJQEB/wQWMBQGCCsG -AQUFBwMCBggrBgEFBQcDATAKBggqhkjOPQQDAgNIADBFAiBMyPzR3e3PI/pTFGtf -dqnl6au/OzJ+jCLdhsfq9xfp4QIhAMK2Bijyi9CESCdMuc2wv+ShEK0ecdQam1z+ -zo9TmKuu +AQUFBwMCBggrBgEFBQcDATAKBggqhkjOPQQDAgNIADBFAiAn1jGiiSF0uXrMgdmU +GjeLZeYBQuScvNA79GY2peKl+gIhAPeP/0kbKyj0Ku+Fxfmh7QWebvc+QDc6aD2P +/cBueyev -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/pai-Key.der index 1866ab96bd434d..a18fae40a91f4e 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/pai-Key.pem index 419e55b38c70af..7921a9db06903e 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIN2ZM/2MI4zaAAkF+1m4p+f9O1pAkwDR8XIQoHsLsi/woAoGCCqGSM49 -AwEHoUQDQgAEJNAXB2P49al3RgFacwI0oPBi6I5QSFAny10z9R55tcc6excPyeGL -bMc07YSbf6IoFBalsObPWW8vNp4Ri+tS5Q== +MHcCAQEEIBSM2NxokMzXNud9AFI2gi8KcghiMdoJl20VaICExazCoAoGCCqGSM49 +AwEHoUQDQgAE//28gMBMK1SMcbncDeHlu+v1pi57clOSbyy3IQ0cRaMrbrsEo9gf +w3lsBIjlm38ZhN2NsESOW/p3ENk0tqUrOQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/test_case_vector.json index 1cf21e133a58e1..58d0480b98b097 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_extended_key_usage_present/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Certificate includes optional Extended Key Usage extension", "is_success_case": "true", - "dac_cert": "308201ce30820174a00302010202086d1be42924781d9a300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200049d0090618ed5c128694df7423a1c665b85e864902b3f4ed8dfeb1ba6adcfbf8a54e1a12559e71887ae342aca74cdc6c2830469f14e0f3917a705b5d447cd2bdaa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414b1c402de9ddddde1f63668cda130b5e5b749bc9d301f0603551d23041830168014539d60fdc88e8cd698ca6a88d89cc5348018f035300a06082a8648ce3d0403020348003045022044cdd81206fc05194b2eb6dbcd3d12a24fdae5035deb341b77a39ad2310d19c6022100f7baba80478e931cd8493108ce9908c6a3849990cd36d9626fd6273b8de49d9e", - "pai_cert": "308201e230820188a003020102020847ce31e24a6ae91c300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000424d0170763f8f5a97746015a730234a0f062e88e50485027cb5d33f51e79b5c73a7b170fc9e18b6cc734ed849b7fa2281416a5b0e6cf596f2f369e118beb52e5a3818930818630120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414539d60fdc88e8cd698ca6a88d89cc5348018f035301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e30200603551d250101ff0416301406082b0601050507030206082b06010505070301300a06082a8648ce3d040302034800304502204cc8fcd1ddedcf23fa53146b5f76a9e5e9abbf3b327e8c22dd86c7eaf717e9e1022100c2b60628f28bd08448274cb9cdb0bfe4a110ad1e71d41a9b5cfece8f5398abae", - "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450221009e517b74b38b852f7a859a0619d04ae6063c4b5bc3957182fd068d23756605b6022038bd7461bedd8ab4357589620a4f96c7468c0a697d7212bf78f3c32b178f96d7", - "dac_private_key": "964abab1989ea053b21acb847ca65ccf10de33b4b1741bac1c886fad3d29067c", - "dac_public_key": "049d0090618ed5c128694df7423a1c665b85e864902b3f4ed8dfeb1ba6adcfbf8a54e1a12559e71887ae342aca74cdc6c2830469f14e0f3917a705b5d447cd2bda" + "dac_cert": "308201ce30820174a003020102020831b55231ba179dc0300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200040fdf1d43c7b5482ddcebfe40b528be49b15a34c542e7b3250d38bb389a2e6b9abcf976db9f418c75edcf699c3b8787999f48002b01dcec5ad0791edc7ad294afa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041470bb8454f408b66691c465caa944e99db181c387301f0603551d230418301680148bfd931801482ca3e7f4733cc2b28dea45b9ee45300a06082a8648ce3d04030203480030450220481536faeb7bf255540d2944d68f4be4f73d68edc06d8537e2a298ba8327e679022100e19c1e9048af2c32785c91357d6e4a7b7ee3b445207a8af1cb6d5a3f4f114860", + "pai_cert": "308201e230820188a00302010202085a816d55c4a83e79300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004fffdbc80c04c2b548c71b9dc0de1e5bbebf5a62e7b7253926f2cb7210d1c45a32b6ebb04a3d81fc3796c0488e59b7f1984dd8db0448e5bfa7710d934b6a52b39a3818930818630120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604148bfd931801482ca3e7f4733cc2b28dea45b9ee45301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e30200603551d250101ff0416301406082b0601050507030206082b06010505070301300a06082a8648ce3d0403020348003045022027d631a2892174b97acc81d9941a378b65e60142e49cbcd03bf46636a5e2a5fa022100f78fff491b2b28f42aef85c5f9a1ed059e6ef73e40373a683d8ffdc06e7b27af", + "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020448304602210082b01366977ca3b9019828b79d85eb6e36bc99083458a047f8cc3b32adfaef1502210097606a7a45c9a1e730d5105b3f22f452298222bcc7ba9451fa0616df55d8b440", + "dac_private_key": "485a0cedde33b40d2678bd1f7bdee9910a84fdbd387386d687bfb636f0730fac", + "dac_public_key": "040fdf1d43c7b5482ddcebfe40b528be49b15a34c542e7b3250d38bb389a2e6b9abcf976db9f418c75edcf699c3b8787999f48002b01dcec5ad0791edc7ad294af" } diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/cd.der b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/cd.der index 773ed44abf832e..e613ac8f41a798 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/cd.der and b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/dac-Cert.der index a59b4865e1500a..93418d01b37ae3 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/dac-Cert.pem index 7109505fe34bab..f3fc2c85818fd5 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzzCCAXSgAwIBAgIIUyoTJY+pcrgwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzjCCAXSgAwIBAgIIJRanq/81IK4wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQK03ew9/4zbrriAA747z67C9jfVzPG -VgIdfboFLrgtyz36DkxRllJe4oFIFm5TXeNTx+py6VVmUPgxnsUu9Q3Mo2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUcW+FHVH2bTPN -5QYBe0LuTWKQjPkwHwYDVR0jBBgwFoAUIakMnQRve+LS42iaMszRe0CoroUwCgYI -KoZIzj0EAwIDSQAwRgIhAOKnZnSsFr4Xb+cpCAY11ap5iizzpGNkil07xCdAjUNA -AiEAhtZbl3RlwneGkcYi6cBZI1EY0PiPj7snha6I8zQtS+g= +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATF/A84wuV0s+uhDJrYFFt6rflC8uYS +mHi7hW3mF5ZO7VTsnnEuFnn4JZAKB/oQ/eJWpZJ/dHw7uR+IGQsG0Gt8o2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUgZcNFPr+Z8MQ +0PyeqDtgN2KQN4UwHwYDVR0jBBgwFoAUVS7kAiwtI2cAjydYzc6DZ+18BmAwCgYI +KoZIzj0EAwIDSAAwRQIgLczjuOk5W3+opVhv72nHhawxPAnTfx3x9wk49oe5rf0C +IQCiY0bUEO+SjkwL8ED1ZkNCcBhNwYnXssHNSL+5Xho7JA== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/dac-Key.der index 1ad6b68646477d..f62f9d1d139b43 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/dac-Key.pem index a0f98ee1892c2d..9e8391df915b7e 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEILHzN0kIsRjRVDBN23w4s1xdFmyr1f277aDxSS+245YQoAoGCCqGSM49 -AwEHoUQDQgAECtN3sPf+M2664gAO+O8+uwvY31czxlYCHX26BS64Lcs9+g5MUZZS -XuKBSBZuU13jU8fqculVZlD4MZ7FLvUNzA== +MHcCAQEEIIHn5AQP0brhHHGG8IIhpvq4xUTVsfjD+VDb5Rvis3lwoAoGCCqGSM49 +AwEHoUQDQgAExfwPOMLldLProQya2BRbeq35QvLmEph4u4Vt5heWTu1U7J5xLhZ5 ++CWQCgf6EP3iVqWSf3R8O7kfiBkLBtBrfA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/pai-Cert.der index 20db1e7ea764ac..a97bcabe0f4ff7 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/pai-Cert.pem index b1b512abe21fab..14730fbff610c2 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBujCCAWGgAwIBAgIIZqGwcjW/W+cwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvDCCAWGgAwIBAgIIdpYE/j0z6eYwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABOFwoZMtHeWni43yZGlxMvJKgKpihS6IFGtjzvC1aorJdIciSgWewP6Jd1hw -qKjHuOg94YluhFxq1Jkd94p26pSjYzBhMBIGA1UdEwEB/wQIMAYBAf8CAQEwCwYD -VR0PBAQDAgEGMB0GA1UdDgQWBBQhqQydBG974tLjaJoyzNF7QKiuhTAfBgNVHSME -GDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNHADBEAiBN8SSN -00arGVkpjfLhIDWTr9BHtqnXY7OFPtbYm7krMwIgTCzHn3wpbFfVukH7+1UHFxom -w1V01FlgT8n2/raDOmA= +A0IABBPs9YSyLgOJwZsp2kdE1def55ImSPp2oEZirXCezbFAvChkZQuRrAUNVVTP +7ZQz4LrXKThBXKTXvDrnGpqUjSijYzBhMBIGA1UdEwEB/wQIMAYBAf8CAQAwCwYD +VR0PBAQDAgEGMB0GA1UdDgQWBBRVLuQCLC0jZwCPJ1jNzoNn7XwGYDAfBgNVHSME +GDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNJADBGAiEAxz0q +y34oXe/Q/e0k9J5QBHqeAx5CLIWxJQEKKeHTR6ICIQCW8H/thBChUWvsljkC6WKY +nSCj0HarGkXPXdr6uJcBlQ== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/pai-Key.der index dbb0b4e435fde2..2705e6ca36b2e3 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/pai-Key.pem index ed0fb76b1159cd..01a0a60c558b90 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIGvoKTqhAuw+VhAh7guFJtsZJgNiB0tXieamB/M3hQiVoAoGCCqGSM49 -AwEHoUQDQgAE4XChky0d5aeLjfJkaXEy8kqAqmKFLogUa2PO8LVqisl0hyJKBZ7A -/ol3WHCoqMe46D3hiW6EXGrUmR33inbqlA== +MHcCAQEEIFI0IvMeH2Gaf0N4Iz2wki2LPyJAwKGpL5H40JVmJ4/EoAoGCCqGSM49 +AwEHoUQDQgAEE+z1hLIuA4nBmynaR0TV15/nkiZI+nagRmKtcJ7NsUC8KGRlC5Gs +BQ1VVM/tlDPgutcpOEFcpNe8OucampSNKA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/test_case_vector.json index 4d8e1a7c2c6480..782fd9125c3bed 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_missing/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Certificate Key Usage extension critical field is missing", "is_success_case": "false", - "dac_cert": "308201cf30820174a0030201020208532a13258fa972b8300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200040ad377b0f7fe336ebae2000ef8ef3ebb0bd8df5733c656021d7dba052eb82dcb3dfa0e4c5196525ee28148166e535de353c7ea72e9556650f8319ec52ef50dcca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414716f851d51f66d33cde506017b42ee4d62908cf9301f0603551d2304183016801421a90c9d046f7be2d2e3689a32ccd17b40a8ae85300a06082a8648ce3d0403020349003046022100e2a76674ac16be176fe729080635d5aa798a2cf3a463648a5d3bc427408d434002210086d65b977465c2778691c622e9c059235118d0f88f8fbb2785ae88f3342d4be8", - "pai_cert": "308201ba30820161a003020102020866a1b07235bf5be7300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004e170a1932d1de5a78b8df264697132f24a80aa62852e88146b63cef0b56a8ac97487224a059ec0fe89775870a8a8c7b8e83de1896e845c6ad4991df78a76ea94a363306130120603551d130101ff040830060101ff020101300b0603551d0f040403020106301d0603551d0e0416041421a90c9d046f7be2d2e3689a32ccd17b40a8ae85301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402204df1248dd346ab1959298df2e1203593afd047b6a9d763b3853ed6d89bb92b3302204c2cc79f7c296c57d5ba41fbfb5507171a26c35574d459604fc9f6feb6833a60", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204463044022016a10fbb091c9f1dfcea447a6c650472c16ce8b1f9efdfce8a2dd69a87633950022026ed8b4a9435f794496465c90115dad57e19c98cc2cd661f09044eb8f99c830e", - "dac_private_key": "b1f3374908b118d154304ddb7c38b35c5d166cabd5fdbbeda0f1492fb6e39610", - "dac_public_key": "040ad377b0f7fe336ebae2000ef8ef3ebb0bd8df5733c656021d7dba052eb82dcb3dfa0e4c5196525ee28148166e535de353c7ea72e9556650f8319ec52ef50dcc" + "dac_cert": "308201ce30820174a00302010202082516a7abff3520ae300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004c5fc0f38c2e574b3eba10c9ad8145b7aadf942f2e6129878bb856de617964eed54ec9e712e1679f825900a07fa10fde256a5927f747c3bb91f88190b06d06b7ca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041481970d14fafe67c310d0fc9ea83b603762903785301f0603551d23041830168014552ee4022c2d2367008f2758cdce8367ed7c0660300a06082a8648ce3d040302034800304502202dcce3b8e9395b7fa8a5586fef69c785ac313c09d37f1df1f70938f687b9adfd022100a26346d410ef928e4c0bf040f566434270184dc189d7b2c1cd48bfb95e1a3b24", + "pai_cert": "308201bc30820161a0030201020208769604fe3d33e9e6300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000413ecf584b22e0389c19b29da4744d5d79fe7922648fa76a04662ad709ecdb140bc2864650b91ac050d5554cfed9433e0bad72938415ca4d7bc3ae71a9a948d28a363306130120603551d130101ff040830060101ff020100300b0603551d0f040403020106301d0603551d0e04160414552ee4022c2d2367008f2758cdce8367ed7c0660301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100c73d2acb7e285defd0fded24f49e50047a9e031e422c85b125010a29e1d347a202210096f07fed8410a1516bec963902e962989d20a3d076ab1a45cf5ddafab8970195", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204463044022061a20875d0800395dc9db0d170ab76698e81442b9759cb0096d43c87a2245c6702207c92c7e4dd0613e7322e9fb93a30e122a7c0e661387c27b22a9dfa348b1184eb", + "dac_private_key": "81e7e4040fd1bae11c7186f08221a6fab8c544d5b1f8c3f950dbe51be2b37970", + "dac_public_key": "04c5fc0f38c2e574b3eba10c9ad8145b7aadf942f2e6129878bb856de617964eed54ec9e712e1679f825900a07fa10fde256a5927f747c3bb91f88190b06d06b7c" } diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/cd.der b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/cd.der index 8c0dddaa5d19fc..60f17930e8fb9a 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/cd.der and b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/dac-Cert.der index 5994db23ee89dc..4405bc6d16e291 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/dac-Cert.pem index a14279d72bfe3c..effe30eade0034 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzjCCAXSgAwIBAgIIQC25J17423QwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzjCCAXSgAwIBAgIIQodxwIjU78swCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS+OEzLV5THH0NSEUrJ6kexZGt7BpQF -MJ5ezzHHRE/RSLur9Q3FBbu2RMseJnQ19LAONS0Q052SPP7HS+4m9oMwo2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUknsUK88z1D4J -zuDvAwSI9OdE4gMwHwYDVR0jBBgwFoAUdAQgCo/hyQm8M3FG6hRzOgRz85swCgYI -KoZIzj0EAwIDSAAwRQIhAPbqpfyYYB0jePOto3NsRe9R5PV7tta4BSPUZfeS9Ed4 -AiB4L9vE/Brht8jx/xjoYbM29yCI4EURABDgqhNKn2kp1A== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS5UDxho3GJ39TboJnlDOu4eK14lXjg +HTE7FdVJVwAHYFA7xOO3w/Sh4rutevPQKh4v1eQ+hSHO+bEzoxmH3BEYo2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUR7GFM7PuSW1o +dc8dlXSOcczqt4swHwYDVR0jBBgwFoAU0TmfUOrl4XT1k2zzxbukISubAygwCgYI +KoZIzj0EAwIDSAAwRQIgAv+muzRN+UBm6TBaXgyW5YiDkIfxeL9L7lmidh8JZg8C +IQDWXNLvNonl8kw5w89XkOwMnhSXPHro+AxulAl7aM98JQ== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/dac-Key.der index 366846d92a81a4..8260334bef68a8 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/dac-Key.pem index af6abfec73d6f1..bde1daa8b4e010 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIP4QnKbZIkAwC0Km3XAD3lYcB1IZgvUpGHHqjKhI2oyPoAoGCCqGSM49 -AwEHoUQDQgAEvjhMy1eUxx9DUhFKyepHsWRrewaUBTCeXs8xx0RP0Ui7q/UNxQW7 -tkTLHiZ0NfSwDjUtENOdkjz+x0vuJvaDMA== +MHcCAQEEICn0c5U0ttBu2buMJlPmAU2VcW12rDzvHLsxqOF/yBE/oAoGCCqGSM49 +AwEHoUQDQgAEuVA8YaNxid/U26CZ5QzruHiteJV44B0xOxXVSVcAB2BQO8Tjt8P0 +oeK7rXrz0CoeL9XkPoUhzvmxM6MZh9wRGA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/pai-Cert.der index 46129ac8016a9b..ba48cb838bb2af 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/pai-Cert.pem index 91a11b068ba889..da65b6c83d7c01 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBuzCCAWGgAwIBAgIIcYs6+XqkxDwwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBuzCCAWGgAwIBAgIIag4yIElCgWowCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABPZYhoTMg+Lc/4DrM08h7vQ3N39pT7PlRh5/Lf4DpzBmGGFA/VcWzJnfm8+1 -wfZfn5ZLqPTFBxRX5i/ckZTvFyejYzBhMBIGA1UdEwEB/wQIMAYBAf8CAQEwCwYD -VR0PBAQDAgEGMB0GA1UdDgQWBBR0BCAKj+HJCbwzcUbqFHM6BHPzmzAfBgNVHSME -GDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiBNWCY0 -f9ucU+ABI5zmBS1pBANrfvGmvGT6P1cZk37M3gIhAIn5xcg7q6SoOhMXSEixgsMf -AFyovLhkYVBusl3HrHZy +A0IABEdJKK+5WgO9btr0ArJeu/aFyrz9hJQ1VH9XqIs3AxaYN/C8di2/yPAhXwOI +HKapDMGDOIYe1kY74PRIyTx7XnKjYzBhMBIGA1UdEwEB/wQIMAYBAf8CAQAwCwYD +VR0PBAQDAgEGMB0GA1UdDgQWBBTROZ9Q6uXhdPWTbPPFu6QhK5sDKDAfBgNVHSME +GDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiBGPZnX +L4LBHiGf1VUEWFOCuycl/CoWGQjPoEhLOFojeQIhAIaSkeyLbbT2i4KwHsEoxIT9 +WBPRUKLkfqVpnl+WhUvG -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/pai-Key.der index 9ffde342a0bf90..bf66c327096a10 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/pai-Key.pem index 608dca61f9b36e..4e38fe8e4626e8 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIIJ86hUqT1dgzamV3cPntLlClhODiuH6bC90DcJvroY2oAoGCCqGSM49 -AwEHoUQDQgAE9liGhMyD4tz/gOszTyHu9Dc3f2lPs+VGHn8t/gOnMGYYYUD9VxbM -md+bz7XB9l+flkuo9MUHFFfmL9yRlO8XJw== +MHcCAQEEIJsGMcLP6x8CM/KCwo7iDvFxnr24i0fvS93CnJ1yTjkHoAoGCCqGSM49 +AwEHoUQDQgAER0kor7laA71u2vQCsl679oXKvP2ElDVUf1eoizcDFpg38Lx2Lb/I +8CFfA4gcpqkMwYM4hh7WRjvg9EjJPHtecg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/test_case_vector.json index a1c2e731a0eef3..f60c4a851d1a99 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_critical_wrong/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Certificate Key Usage extension critical field is set as 'non-critical'", "is_success_case": "false", - "dac_cert": "308201ce30820174a0030201020208402db9275ef8db74300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004be384ccb5794c71f4352114ac9ea47b1646b7b069405309e5ecf31c7444fd148bbabf50dc505bbb644cb1e267435f4b00e352d10d39d923cfec74bee26f68330a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414927b142bcf33d43e09cee0ef030488f4e744e203301f0603551d230418301680147404200a8fe1c909bc337146ea14733a0473f39b300a06082a8648ce3d0403020348003045022100f6eaa5fc98601d2378f3ada3736c45ef51e4f57bb6d6b80523d465f792f447780220782fdbc4fc1ae1b7c8f1ff18e861b336f72088e045110010e0aa134a9f6929d4", - "pai_cert": "308201bb30820161a0030201020208718b3af97aa4c43c300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004f6588684cc83e2dcff80eb334f21eef437377f694fb3e5461e7f2dfe03a73066186140fd5716cc99df9bcfb5c1f65f9f964ba8f4c5071457e62fdc9194ef1727a363306130120603551d130101ff040830060101ff020101300b0603551d0f040403020106301d0603551d0e041604147404200a8fe1c909bc337146ea14733a0473f39b301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502204d5826347fdb9c53e001239ce6052d6904036b7ef1a6bc64fa3f5719937eccde02210089f9c5c83baba4a83a13174848b182c31f005ca8bcb86461506eb25dc7ac7672", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044630440220148a951b7a7a0ef8554c449f1932624f25cd1e6fa0a9cc27c644e8ee786fd0c802203220068def122abc0b6bb575d1f5d0050a31a047d730c1109d77553081c40fc9", - "dac_private_key": "fe109ca6d92240300b42a6dd7003de561c07521982f5291871ea8ca848da8c8f", - "dac_public_key": "04be384ccb5794c71f4352114ac9ea47b1646b7b069405309e5ecf31c7444fd148bbabf50dc505bbb644cb1e267435f4b00e352d10d39d923cfec74bee26f68330" + "dac_cert": "308201ce30820174a0030201020208428771c088d4efcb300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004b9503c61a37189dfd4dba099e50cebb878ad789578e01d313b15d54957000760503bc4e3b7c3f4a1e2bbad7af3d02a1e2fd5e43e8521cef9b133a31987dc1118a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041447b18533b3ee496d6875cf1d95748e71cceab78b301f0603551d23041830168014d1399f50eae5e174f5936cf3c5bba4212b9b0328300a06082a8648ce3d0403020348003045022002ffa6bb344df94066e9305a5e0c96e588839087f178bf4bee59a2761f09660f022100d65cd2ef3689e5f24c39c3cf5790ec0c9e14973c7ae8f80c6e94097b68cf7c25", + "pai_cert": "308201bb30820161a00302010202086a0e32204942816a300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004474928afb95a03bd6edaf402b25ebbf685cabcfd849435547f57a88b3703169837f0bc762dbfc8f0215f03881ca6a90cc18338861ed6463be0f448c93c7b5e72a363306130120603551d130101ff040830060101ff020100300b0603551d0f040403020106301d0603551d0e04160414d1399f50eae5e174f5936cf3c5bba4212b9b0328301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203480030450220463d99d72f82c11e219fd55504585382bb2725fc2a161908cfa0484b385a2379022100869291ec8b6db4f68b82b01ec128c484fd5813d150a2e47ea5699e5f96854bc6", + "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100c60bfacb7c97ba58798e9411c3a1d88042a1d928bfb8472fdedbae32d426bd5a02206fe135521bdf12ae42e5d4b30d8612dfd4f418a90cbc7893c57dfb978e2d4726", + "dac_private_key": "29f4739534b6d06ed9bb8c2653e6014d95716d76ac3cef1cbb31a8e17fc8113f", + "dac_public_key": "04b9503c61a37189dfd4dba099e50cebb878ad789578e01d313b15d54957000760503bc4e3b7c3f4a1e2bbad7af3d02a1e2fd5e43e8521cef9b133a31987dc1118" } diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/cd.der b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/cd.der index 3355cfa042bd95..f9c98dd9bcb54e 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/cd.der and b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/dac-Cert.der index 9e3ae97471e915..134a348de77d6d 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/dac-Cert.pem index 8509fa14bbd1a7..3fb0c233885eb8 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzzCCAXSgAwIBAgIILCrBbdnsh4wwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzjCCAXSgAwIBAgIILsfAHcT0zdUwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ7fMsgmYybNMrWaMUIPukOWY992sSW -IGcG7bwdVmrv1ISN1uJBSjUz5cwqyrmWehdWHQTSKo32iJSwhpBnwiRbo2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUQZ63HZWRpYbd -xDN338D5viAb9cMwHwYDVR0jBBgwFoAUyFgBxV8aLAqSd+CesJVMVaiGjY0wCgYI -KoZIzj0EAwIDSQAwRgIhAJX514J7eXDjFPJxHMB19jzYTosOOSAY1WYYs38ZS2U7 -AiEAk5qu/idiFKA43H1ysP/Q7x1dbI5oSAtDrN8Wkj31ctY= +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQZIIc8ug4Vd+tCsxoJihH38bi6fqd7 +kyvH3R5EuMRYgK1QjZeuGSx/XOvU4HQIeIb2CWvW0uWXg2U/1fFULJmTo2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUzGO9UvAveANs +o7U5mvoylXnOlZwwHwYDVR0jBBgwFoAUpXlRiR3+Wgz+A45ciA3DStc87hUwCgYI +KoZIzj0EAwIDSAAwRQIgSoljclNvGbJ39U8swL096Vl6zMrXaZmhtsq3dhLN6cMC +IQC8t1JaOC+jYfFTF3OTiQdtZUS2noX1TsKYtzuQoV6DIw== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/dac-Key.der index 53af0454bf5bd5..b39b355cc1d320 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/dac-Key.pem index 9cfe93724fbc34..82de311f3d1a34 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIGKPadpk7tqNhVf0keF6b7AUXXEjrPECh+kADIVrpYlCoAoGCCqGSM49 -AwEHoUQDQgAEO3zLIJmMmzTK1mjFCD7pDlmPfdrEliBnBu28HVZq79SEjdbiQUo1 -M+XMKsq5lnoXVh0E0iqN9oiUsIaQZ8IkWw== +MHcCAQEEII09H28212MbWS0k+8Bkkq2eNX4V7JKqGiotnLLauuTqoAoGCCqGSM49 +AwEHoUQDQgAEGSCHPLoOFXfrQrMaCYoR9/G4un6ne5Mrx90eRLjEWICtUI2Xrhks +f1zr1OB0CHiG9glr1tLll4NlP9XxVCyZkw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/pai-Cert.der index 111744fe59df96..71b63f83e3a11b 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/pai-Cert.pem index 0905e9c3765eea..3606d3fac3d72f 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvjCCAWSgAwIBAgIIJ0JdjMbYjWIwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvTCCAWSgAwIBAgIIfzLYjYezNC4wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABCwwIH8HIUXGq9W9cjzAn+jLA2SyNoE0gWkRTynjJV0vqcgrZ4S+L5gYL57F -I00QbKbCsqKTJGpKAb7ffEJtNbSjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgIEMB0GA1UdDgQWBBTIWAHFXxosCpJ34J6wlUxVqIaNjTAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiEA -4yPzbU6ktryX0gTzkhFodmJc6rnpLgUn6BWSne6a8V4CIAS6rQi9EimrLw2ZIUVk -XgrsdZlACxw7pGAxM7Hf4Seq +A0IABIVC97+b0l02fdXHSSZDr9hyHMNVrEvPtgeSmR9AsNh0kvjy4W0USm3SUraA +G0Rs6u3qz9B+wObtKB8/Mm9vSnyjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgIEMB0GA1UdDgQWBBSleVGJHf5aDP4DjlyIDcNK1zzuFTAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNHADBEAiBN +6Px3AgxeEopG3hD7SnsxhO2jwEK5upBCBzB3DBPAswIgH9J0RXFpW8bD7NScPr3c +2zRz8KaPlGRV53+JuZAD6j4= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/pai-Key.der index 7118a2cace2638..9228a7fe4144c4 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/pai-Key.pem index a7f670f90c2e79..9dce1f7eb18091 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEINwHgaaGRVITwRaY3VQMmvS5lVGZOGkaOST7MtpEIv+xoAoGCCqGSM49 -AwEHoUQDQgAELDAgfwchRcar1b1yPMCf6MsDZLI2gTSBaRFPKeMlXS+pyCtnhL4v -mBgvnsUjTRBspsKyopMkakoBvt98Qm01tA== +MHcCAQEEIPSNsUL+pnUKVhxFqapC1xnfQuCD5bRCuyxOQR92kGRKoAoGCCqGSM49 +AwEHoUQDQgAEhUL3v5vSXTZ91cdJJkOv2HIcw1WsS8+2B5KZH0Cw2HSS+PLhbRRK +bdJStoAbRGzq7erP0H7A5u0oHz8yb29KfA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/test_case_vector.json index 7c71851bfcb7e5..30eabc2678df81 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_crl_sign_wrong/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Certificate Key Usage extension cRLSign field is wrong (present for DAC and not present for PAI", "is_success_case": "false", - "dac_cert": "308201cf30820174a00302010202082c2ac16dd9ec878c300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200043b7ccb20998c9b34cad668c5083ee90e598f7ddac496206706edbc1d566aefd4848dd6e2414a3533e5cc2acab9967a17561d04d22a8df68894b0869067c2245ba360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414419eb71d9591a586ddc43377dfc0f9be201bf5c3301f0603551d23041830168014c85801c55f1a2c0a9277e09eb0954c55a8868d8d300a06082a8648ce3d040302034900304602210095f9d7827b7970e314f2711cc075f63cd84e8b0e392018d56618b37f194b653b022100939aaefe276214a038dc7d72b0ffd0ef1d5d6c8e68480b43acdf16923df572d6", - "pai_cert": "308201be30820164a003020102020827425d8cc6d88d62300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200042c30207f072145c6abd5bd723cc09fe8cb0364b23681348169114f29e3255d2fa9c82b6784be2f98182f9ec5234d106ca6c2b2a293246a4a01bedf7c426d35b4a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020204301d0603551d0e04160414c85801c55f1a2c0a9277e09eb0954c55a8868d8d301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100e323f36d4ea4b6bc97d204f392116876625ceab9e92e0527e815929dee9af15e022004baad08bd1229ab2f0d992145645e0aec7599400b1c3ba4603133b1dfe127aa", - "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100d4bac49329ee0571f73eba4472240f6807ab6832ccd19c22c7f794ed7f6fbf66022100b5decf57454821e4ef0b45b21b4f9362cbc8e1ecd6d580594866616e5c8d4fb9", - "dac_private_key": "628f69da64eeda8d8557f491e17a6fb0145d7123acf10287e9000c856ba58942", - "dac_public_key": "043b7ccb20998c9b34cad668c5083ee90e598f7ddac496206706edbc1d566aefd4848dd6e2414a3533e5cc2acab9967a17561d04d22a8df68894b0869067c2245b" + "dac_cert": "308201ce30820174a00302010202082ec7c01dc4f4cdd5300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200041920873cba0e1577eb42b31a098a11f7f1b8ba7ea77b932bc7dd1e44b8c45880ad508d97ae192c7f5cebd4e074087886f6096bd6d2e59783653fd5f1542c9993a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414cc63bd52f02f78036ca3b5399afa329579ce959c301f0603551d23041830168014a57951891dfe5a0cfe038e5c880dc34ad73cee15300a06082a8648ce3d040302034800304502204a896372536f19b277f54f2cc0bd3de9597acccad76999a1b6cab77612cde9c3022100bcb7525a382fa361f15317739389076d6544b69e85f54ec298b73b90a15e8323", + "pai_cert": "308201bd30820164a00302010202087f32d88d87b3342e300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200048542f7bf9bd25d367dd5c7492643afd8721cc355ac4bcfb60792991f40b0d87492f8f2e16d144a6dd252b6801b446ceaedeacfd07ec0e6ed281f3f326f6f4a7ca366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020204301d0603551d0e04160414a57951891dfe5a0cfe038e5c880dc34ad73cee15301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402204de8fc77020c5e128a46de10fb4a7b3184eda3c042b9ba90420730770c13c0b302201fd2744571695bc6c3ecd49c3ebddcdb3473f0a68f946455e77f89b99003ea3e", + "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100b984babf7270c09fd8d23545e2fdf68b5382603c8c83384b8a19c00a3d9602d50220398268186ec2d37d710fe2cbc5494129824eba95cb42660cbac3c43cd61ff249", + "dac_private_key": "8d3d1f6f36d7631b592d24fbc06492ad9e357e15ec92aa1a2a2d9cb2dabae4ea", + "dac_public_key": "041920873cba0e1577eb42b31a098a11f7f1b8ba7ea77b932bc7dd1e44b8c45880ad508d97ae192c7f5cebd4e074087886f6096bd6d2e59783653fd5f1542c9993" } diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/cd.der b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/cd.der index 1bc404b04b8aab..bdb7693ef88637 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/cd.der and b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/dac-Cert.der index 37c7aa8bd2a7cb..e136af68e92afb 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/dac-Cert.pem index 940220a7b0fe86..d2d50938607c1f 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzjCCAXSgAwIBAgIIC4u07HoxDRkwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzzCCAXSgAwIBAgIIcxRM4XT7h+swCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQp4DY0JO05DvnrdHHf1Ga1boc4t3YS -Of8kZOAggBEgO6Acww737nZiBkPJ8YvtGZMtbjDx0NUcWigRLl6AKdD5o2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUVZCfbVFSeaBG -GNhOz9j9qo/6XNUwHwYDVR0jBBgwFoAUuetPx/mKxu/s4mt6++GsPFIMFq4wCgYI -KoZIzj0EAwIDSAAwRQIgdG0VuluARAva10j0jMsDqDMekN6dn93YqUeDPQGOqvgC -IQDFE2LEMb5tIhxFrGDG+V6X6mR0yWlegrseURdi0hzoog== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASLaySlE82rpCe6x0WfCzKzk9hqX+JB +WN9mMpVjXioOc13S4AS6rQQPZUjl7u3PiOdFnMRd5HT8O9q8OjU7yzpvo2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUF48CUt8XX+Ro +b9ySnutvIZtqygAwHwYDVR0jBBgwFoAUJUK9Et6QaSQiSGFeyAFXVhNVpUkwCgYI +KoZIzj0EAwIDSQAwRgIhAL9jBmhOkJocROwq/sjZ+KyhSpDqUbFUmy2PPsTeo49b +AiEAt9BaILFCtMNPS9bwF+t7kARs34dKp6+U/UGEMuoCJgI= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/dac-Key.der index e227ae6300b54d..3b1042d6d9ec54 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/dac-Key.pem index 513ea6206714f9..3a139e3a906e4b 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIFuz6gHH1rzZDnahTKi7d+5CfZkiZ3R+yLiadrJb3DIyoAoGCCqGSM49 -AwEHoUQDQgAEKeA2NCTtOQ7563Rx39RmtW6HOLd2Ejn/JGTgIIARIDugHMMO9+52 -YgZDyfGL7RmTLW4w8dDVHFooES5egCnQ+Q== +MHcCAQEEIJr05hcHfbCjpAwLnJWgg5d04AC2jEz/c2/uoQld7h8RoAoGCCqGSM49 +AwEHoUQDQgAEi2skpRPNq6QnusdFnwsys5PYal/iQVjfZjKVY14qDnNd0uAEuq0E +D2VI5e7tz4jnRZzEXeR0/DvavDo1O8s6bw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/pai-Cert.der index 0438f55187b8dd..4e17a61f4eb79a 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/pai-Cert.pem index 683ca7aa063795..66e4add5539d8e 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvTCCAWSgAwIBAgIIVvqoncpgP2YwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvzCCAWSgAwIBAgIIPuy5Qg96KyswCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABDCJ5EEsKSRDAHgKSOVuv+eAeMax3W4z86G/JXBcaY33YPQwMbv+jv7S4aTQ -tMzPJ2cgS+1NPeUQW8zQZx5OLZyjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgGGMB0GA1UdDgQWBBS560/H+YrG7+zia3r74aw8UgwWrjAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNHADBEAiA+ -6ycfMRqvxEAoUU4Yhj/W9e25IpyFQrIpCfp29KgBIwIgLG10wHQiz092EqvyTGAi -vSn4I1A13IR+3Y81iViowZg= +A0IABE9s5W13BR4Jh2MAfQAvlj29pK6btfNbH/90sJMyypMJLt9pv72Q3SMmPE9i +En22krmBZZUO6YgH/eworRn3NxyjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgGGMB0GA1UdDgQWBBQlQr0S3pBpJCJIYV7IAVdWE1WlSTAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNJADBGAiEA +1jQTLJnT87QF90meAcRyuts5N5BdHKmwxos3dDzaULACIQD6ii3j+olbfKnfsOG2 +wQE0KsnHh9d4zV2Sm/VlFP5Jag== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/pai-Key.der index efe4d116d6fdbc..e962c261d6869a 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/pai-Key.pem index 8e8fc0cf720ac8..bb12bcf2899dbf 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIN3Wg87XP3SZGees/FsjU3pmRknvBAigRGNckms/mmcooAoGCCqGSM49 -AwEHoUQDQgAEMInkQSwpJEMAeApI5W6/54B4xrHdbjPzob8lcFxpjfdg9DAxu/6O -/tLhpNC0zM8nZyBL7U095RBbzNBnHk4tnA== +MHcCAQEEIAjHj0gBLMfaXun745thNpmdpVBFk+hC3iuZfm6EVC66oAoGCCqGSM49 +AwEHoUQDQgAET2zlbXcFHgmHYwB9AC+WPb2krpu181sf/3SwkzLKkwku32m/vZDd +IyY8T2ISfbaSuYFllQ7piAf97CitGfc3HA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/test_case_vector.json index ca148003a218cd..9fbcf3d68bd6ff 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_dig_sig_wrong/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Certificate Key Usage extension diginalSignature field is wrong (not present for DAC and present for PAI", "is_success_case": "false", - "dac_cert": "308201ce30820174a00302010202080b8bb4ec7a310d19300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000429e0363424ed390ef9eb7471dfd466b56e8738b7761239ff2464e0208011203ba01cc30ef7ee76620643c9f18bed19932d6e30f1d0d51c5a28112e5e8029d0f9a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041455909f6d515279a04618d84ecfd8fdaa8ffa5cd5301f0603551d23041830168014b9eb4fc7f98ac6efece26b7afbe1ac3c520c16ae300a06082a8648ce3d04030203480030450220746d15ba5b80440bdad748f48ccb03a8331e90de9d9fddd8a947833d018eaaf8022100c51362c431be6d221c45ac60c6f95e97ea6474c9695e82bb1e511762d21ce8a2", - "pai_cert": "308201bd30820164a003020102020856faa89dca603f66300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200043089e4412c29244300780a48e56ebfe78078c6b1dd6e33f3a1bf25705c698df760f43031bbfe8efed2e1a4d0b4cccf2767204bed4d3de5105bccd0671e4e2d9ca366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020186301d0603551d0e04160414b9eb4fc7f98ac6efece26b7afbe1ac3c520c16ae301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402203eeb271f311aafc44028514e18863fd6f5edb9229c8542b22909fa76f4a8012302202c6d74c07422cf4f7612abf24c6022bd29f8235035dc847edd8f358958a8c198", - "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100d8a4e31e6270ba0e9dc5d019eb91dcdf2b7a55a51b78d47941c756c6fb5ea8fb0221008ef9bf84a762e459ed3f1a54861bc1c8a5767afd1d463f4fa3e7d72c280850d3", - "dac_private_key": "5bb3ea01c7d6bcd90e76a14ca8bb77ee427d992267747ec8b89a76b25bdc3232", - "dac_public_key": "0429e0363424ed390ef9eb7471dfd466b56e8738b7761239ff2464e0208011203ba01cc30ef7ee76620643c9f18bed19932d6e30f1d0d51c5a28112e5e8029d0f9" + "dac_cert": "308201cf30820174a003020102020873144ce174fb87eb300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200048b6b24a513cdaba427bac7459f0b32b393d86a5fe24158df663295635e2a0e735dd2e004baad040f6548e5eeedcf88e7459cc45de474fc3bdabc3a353bcb3a6fa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414178f0252df175fe4686fdc929eeb6f219b6aca00301f0603551d230418301680142542bd12de9069242248615ec80157561355a549300a06082a8648ce3d0403020349003046022100bf6306684e909a1c44ec2afec8d9f8aca14a90ea51b1549b2d8f3ec4dea38f5b022100b7d05a20b142b4c34f4bd6f017eb7b90046cdf874aa7af94fd418432ea022602", + "pai_cert": "308201bf30820164a00302010202083eecb9420f7a2b2b300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200044f6ce56d77051e098763007d002f963dbda4ae9bb5f35b1fff74b09332ca93092edf69bfbd90dd23263c4f62127db692b98165950ee98807fdec28ad19f7371ca366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020186301d0603551d0e041604142542bd12de9069242248615ec80157561355a549301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100d634132c99d3f3b405f7499e01c472badb3937905d1ca9b0c68b37743cda50b0022100fa8a2de3fa895b7ca9dfb0e1b6c101342ac9c787d778cd5d929bf56514fe496a", + "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502201e4b40da42e15f1d09444591062655fbfc5cfdc6a6a7194ccf186adfde694139022100d541425c3055fc945dc854c0bbd0a8a5f35658388061e6ebccfb85c2caad9d77", + "dac_private_key": "9af4e617077db0a3a40c0b9c95a0839774e000b68c4cff736feea1095dee1f11", + "dac_public_key": "048b6b24a513cdaba427bac7459f0b32b393d86a5fe24158df663295635e2a0e735dd2e004baad040f6548e5eeedcf88e7459cc45de474fc3bdabc3a353bcb3a6f" } diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/cd.der b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/cd.der index 235ec98e227e88..2d95d4cbcd21f1 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/cd.der and b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/dac-Cert.der index 6a600f95707418..fcf4d03e5839dd 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/dac-Cert.pem index dffd80a6f42f1e..ee171d12923d95 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzjCCAXSgAwIBAgIIdJyc14RnKCUwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzzCCAXSgAwIBAgIIesO/rvsuOL8wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASZ5c/rnh8ypvhLaMfLKnP2sCgUGBWw -eRkLHTSzPHE7U1o1cqE95LVwuyViW75gCuiv6tGMFE2ibjdxUYRUgK35o2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUA08J8gSZW78J -6RV5CSHtyYl8kgMwHwYDVR0jBBgwFoAUgM9bWsr51wb/CychBWKauo6HgP8wCgYI -KoZIzj0EAwIDSAAwRQIhAPXWVfYd+rtzRfm4gqcpSLaexy2YfjbWYcJRqcSGqcLC -AiBY2NTsfGX+x3qD3SeEMwO2qCPP50vtb87ZOPgA0ygBZw== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARhoRCaH4tGBbFsg54tJ6EkgrWb+HHi +Wdyq0TEsGCB1IiZJpIMevBQjovWiINJMfrSlutw7AKdT9bcTnSMm+jaUo2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUT0oJ2LLw1ocQ +fFjq0lFt7EBMHJkwHwYDVR0jBBgwFoAU20xQ51WsGDQUxULB/YuA9PqzeOwwCgYI +KoZIzj0EAwIDSQAwRgIhAKW1walDyJ1IJybX4OmP/GxjuR75VicilaKjucK+aqa/ +AiEA0oPdmVqHYsLtKFIEuoWAWWdv1EuQGdyCNapsx1C3CZg= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/dac-Key.der index e7f79054c6674d..a238ec0bd4977d 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/dac-Key.pem index a1e5d6ce80ae6e..ca6bd802a9cd7c 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEING6qaPVHFye7GME4CSMRJcfh0pYuU2GBL+XCRvIs9QroAoGCCqGSM49 -AwEHoUQDQgAEmeXP654fMqb4S2jHyypz9rAoFBgVsHkZCx00szxxO1NaNXKhPeS1 -cLslYlu+YAror+rRjBRNom43cVGEVICt+Q== +MHcCAQEEIIytWdF2N7GteQbNBJSIqFt120VdSjmcPJc1ebwupQjCoAoGCCqGSM49 +AwEHoUQDQgAEYaEQmh+LRgWxbIOeLSehJIK1m/hx4lncqtExLBggdSImSaSDHrwU +I6L1oiDSTH60pbrcOwCnU/W3E50jJvo2lA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/pai-Cert.der index 2898d7dbdbb989..1e7913677ad007 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/pai-Cert.pem index 890d48f5611b9b..66aae1e847dba0 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvjCCAWSgAwIBAgIIA1TCahYiJUowCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvjCCAWSgAwIBAgIIDO7Z4KdOQxowCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABP/iM5sBv20fMQcZAFl9OyUI57XbcSJRh/2Kamm/KrqJzrU/Z36pYfwX8FBk -Wocsc1W+81NFOrnoCRYe3HBA38CjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgECMB0GA1UdDgQWBBSAz1tayvnXBv8LJyEFYpq6joeA/zAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiBP -ckG/8Mfr8iq0GU1DlTbRQ5NpCdn76f/JLxdjomvHMgIhAM3PyJVGexuVVtigoHSw -p3pVZGjFvIdqKG1z9RfQ3qP7 +A0IABCvont5u9hJT+iAF9TQ2Lz+XOmr33kp9ILkH/jTajxABUzutK8xD/e9Hbbgn +1qhZXNwR8mHJyq55l57imQ8xb9ujZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgECMB0GA1UdDgQWBBTbTFDnVawYNBTFQsH9i4D0+rN47DAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiB3 +D7sLR0uSAXYU9nJRCWFKGPomejhdJgp4dE/Z3Sy/tQIhAIFmbQ425BOGV63gICr9 +ywoYC8z9hs+LkM0l0b2/FXCO -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/pai-Key.der index 297dee549c2a30..d0d3fe126b8d6e 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/pai-Key.pem index 98ea0315cdee34..5985b2076fc88c 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIG34m0iTZy8L7ZHr0cdnZ0s1zJlmAbO3Iw+e+1vhseO4oAoGCCqGSM49 -AwEHoUQDQgAE/+IzmwG/bR8xBxkAWX07JQjntdtxIlGH/Ypqab8quonOtT9nfqlh -/BfwUGRahyxzVb7zU0U6uegJFh7ccEDfwA== +MHcCAQEEIN2I6PZtl9CC0hiFBaGY31Nu8Ds1UO5fnQL9BGlZMn7BoAoGCCqGSM49 +AwEHoUQDQgAEK+ie3m72ElP6IAX1NDYvP5c6avfeSn0guQf+NNqPEAFTO60rzEP9 +70dtuCfWqFlc3BHyYcnKrnmXnuKZDzFv2w== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/test_case_vector.json index df7bfe36f829af..3b3b18d1dc95a0 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_key_cert_sign_wrong/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Certificate Key Usage extension keyCertSign field is wrong (present for DAC and not present for PAI", "is_success_case": "false", - "dac_cert": "308201ce30820174a0030201020208749c9cd784672825300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000499e5cfeb9e1f32a6f84b68c7cb2a73f6b028141815b079190b1d34b33c713b535a3572a13de4b570bb25625bbe600ae8afead18c144da26e377151845480adf9a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414034f09f204995bbf09e915790921edc9897c9203301f0603551d2304183016801480cf5b5acaf9d706ff0b272105629aba8e8780ff300a06082a8648ce3d0403020348003045022100f5d655f61dfabb7345f9b882a72948b69ec72d987e36d661c251a9c486a9c2c2022058d8d4ec7c65fec77a83dd27843303b6a823cfe74bed6fced938f800d3280167", - "pai_cert": "308201be30820164a00302010202080354c26a1622254a300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004ffe2339b01bf6d1f31071900597d3b2508e7b5db71225187fd8a6a69bf2aba89ceb53f677ea961fc17f050645a872c7355bef353453ab9e809161edc7040dfc0a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020102301d0603551d0e0416041480cf5b5acaf9d706ff0b272105629aba8e8780ff301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502204f7241bff0c7ebf22ab4194d439536d143936909d9fbe9ffc92f1763a26bc732022100cdcfc895467b1b9556d8a0a074b0a77a556468c5bc876a286d73f517d0dea3fb", - "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450221008cded09a324293cf55c69c256716640cceae2434bb41bffcb9086270b4f40ce902204aae4537c0c21358d27584f17d401e297713bc9665801ab7416499447d6c87fd", - "dac_private_key": "d1baa9a3d51c5c9eec6304e0248c44971f874a58b94d8604bf97091bc8b3d42b", - "dac_public_key": "0499e5cfeb9e1f32a6f84b68c7cb2a73f6b028141815b079190b1d34b33c713b535a3572a13de4b570bb25625bbe600ae8afead18c144da26e377151845480adf9" + "dac_cert": "308201cf30820174a00302010202087ac3bfaefb2e38bf300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000461a1109a1f8b4605b16c839e2d27a12482b59bf871e259dcaad1312c182075222649a4831ebc1423a2f5a220d24c7eb4a5badc3b00a753f5b7139d2326fa3694a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604144f4a09d8b2f0d687107c58ead2516dec404c1c99301f0603551d23041830168014db4c50e755ac183414c542c1fd8b80f4fab378ec300a06082a8648ce3d0403020349003046022100a5b5c1a943c89d482726d7e0e98ffc6c63b91ef956272295a2a3b9c2be6aa6bf022100d283dd995a8762c2ed285204ba858059676fd44b9019dc8235aa6cc750b70998", + "pai_cert": "308201be30820164a00302010202080ceed9e0a74e431a300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200042be89ede6ef61253fa2005f534362f3f973a6af7de4a7d20b907fe34da8f1001533bad2bcc43fdef476db827d6a8595cdc11f261c9caae79979ee2990f316fdba366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020102301d0603551d0e04160414db4c50e755ac183414c542c1fd8b80f4fab378ec301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203480030450220770fbb0b474b92017614f6725109614a18fa267a385d260a78744fd9dd2cbfb502210081666d0e36e4138657ade0202afdcb0a180bccfd86cf8b90cd25d1bdbf15708e", + "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502203ac695f6e79c03428b7006d9991a98c63741e7891f49793d4c614003716726d50221009588c8e361ccad48b0b7e109c9ae098b7ab0ed78f2c154276251471d5ced4ec9", + "dac_private_key": "8cad59d17637b1ad7906cd049488a85b75db455d4a399c3c973579bc2ea508c2", + "dac_public_key": "0461a1109a1f8b4605b16c839e2d27a12482b59bf871e259dcaad1312c182075222649a4831ebc1423a2f5a220d24c7eb4a5badc3b00a753f5b7139d2326fa3694" } diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/cd.der b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/cd.der index 52390d3d1341e7..1ede1f869d05dd 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/cd.der and b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/dac-Cert.der index c940c7e89a38d4..df0a9ffcb19f53 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/dac-Cert.pem index 37440248eda50d..936d507341eab4 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzjCCAXSgAwIBAgIIWbGRvnjHikowCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzjCCAXSgAwIBAgIIVNXeJ1oJQnMwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARJdWuVIXEKAKNTpjUJ4Pn5wjgnKMP1 -D82d70uOne9iH33mTmzbl4TUSiEmQNzA1oGudMvmKDY99gvZhBPrL4MPo2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUs440MkLIsN2B -0P9Kvj5jedQ2Cu8wHwYDVR0jBBgwFoAU52xB1U0rpNCw9+lWVQ1ncAmSriYwCgYI -KoZIzj0EAwIDSAAwRQIgFQNsp2NUynSef9YlYgBiDsdI3mW0OmBDMWNxgDvDpssC -IQDsu8AZmSITPZSFXgvBR6nBbpg7p7BPetHkfMDqihEMwg== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASKSV0IoEwQtx95n9uY5nWSJ7okthvC +ejphsLXTRr/kruqNsCrbMUE+zhx877AIwvc5BxrIIouJl8qYag8I5Pnoo2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUKchxsloZaUm1 +FvkZNnQbyS0jlKgwHwYDVR0jBBgwFoAUpi2icRcYZVnyWOD0+HR9ooINktIwCgYI +KoZIzj0EAwIDSAAwRQIgYsoYQJ1XpcCITmc0sfulr8bfqYYkth4LbV9ofbkhd34C +IQDJJXblGLVU9xwErwIBydLk0neUflpp0QsyFNY/D6MNZQ== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/dac-Key.der index 69b403ecff3565..4ae0a6045101a4 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/dac-Key.pem index 89856d7711d3f2..ac34d834656025 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEINZvmrSIj2gCExDcCsrrTOIWXNPR9x4/pPmvkJTOFjH7oAoGCCqGSM49 -AwEHoUQDQgAESXVrlSFxCgCjU6Y1CeD5+cI4JyjD9Q/Nne9Ljp3vYh995k5s25eE -1EohJkDcwNaBrnTL5ig2PfYL2YQT6y+DDw== +MHcCAQEEIBxX5qf0+s6KoLeHWeqRQaM6G/xMS40UEfxbSPutNgBzoAoGCCqGSM49 +AwEHoUQDQgAEikldCKBMELcfeZ/bmOZ1kie6JLYbwno6YbC100a/5K7qjbAq2zFB +Ps4cfO+wCML3OQcayCKLiZfKmGoPCOT56A== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/pai-Cert.der index 6fab237acd76e7..cfb40c092122dd 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/pai-Cert.pem index ec40ed24cbd213..36bed85a774f29 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBrTCCAVSgAwIBAgIIf/YxpJL0g5YwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBrTCCAVSgAwIBAgIIBcj1ZjgeCG8wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABJm6Yd1KeN1eMWyELMXfeAdpF9V2OWrMvQme5sacUimWgp3/2aL2xygZP7Vq -WguiLkGi5bbcdznuvPa7UB6qzOKjVjBUMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYD -VR0OBBYEFOdsQdVNK6TQsPfpVlUNZ3AJkq4mMB8GA1UdIwQYMBaAFGr9IncfUR/s -vxZBl2cQ3NwxoXF+MAoGCCqGSM49BAMCA0cAMEQCICmWIOeEFynWwr/pcVZZ5b3W -3TDXg01OtEOj2+qzPAe6AiAl4QWk0Dl4KbMFLCS/cQ3VKCP0CHiE9WM43YWybK5O -cw== +A0IABIflRitRj30XX7YwIBU8+WFguPQx6TPygf+288erRtyRSg/yp/DVlBAn3Fuz +hUYhchxkwH/DBVkNThAkci9u7y2jVjBUMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYD +VR0OBBYEFKYtonEXGGVZ8ljg9Ph0faKCDZLSMB8GA1UdIwQYMBaAFGr9IncfUR/s +vxZBl2cQ3NwxoXF+MAoGCCqGSM49BAMCA0cAMEQCIBzI6r8dv8cXs5rjfcPjwcto +eX1wTm8GNsMlSt2cEZH8AiBJbZTFphZ/Gy2H6iH+IIbtDLO5Kw/hgVz1LXYMBQpY +mA== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/pai-Key.der index 4641385277723f..43ac08ba69f90b 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/pai-Key.pem index a0bd25606d5950..3df1a4952de9bb 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIDHTz7w6MQ31yjqVenti84HbswatuvBjBrIZXPf5RUUyoAoGCCqGSM49 -AwEHoUQDQgAEmbph3Up43V4xbIQsxd94B2kX1XY5asy9CZ7mxpxSKZaCnf/ZovbH -KBk/tWpaC6IuQaLlttx3Oe689rtQHqrM4g== +MHcCAQEEIBb6tM2MZvk2PM8pvwE2HYM53oKQ/va/aIdlZJ3B6BkhoAoGCCqGSM49 +AwEHoUQDQgAEh+VGK1GPfRdftjAgFTz5YWC49DHpM/KB/7bzx6tG3JFKD/Kn8NWU +ECfcW7OFRiFyHGTAf8MFWQ1OECRyL27vLQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/test_case_vector.json index a03ddb6e10304c..8a420d12209a51 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_key_usage_missing/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Certificate doesn't include Key Usage extension", "is_success_case": "false", - "dac_cert": "308201ce30820174a003020102020859b191be78c78a4a300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000449756b9521710a00a353a63509e0f9f9c2382728c3f50fcd9def4b8e9def621f7de64e6cdb9784d44a212640dcc0d681ae74cbe628363df60bd98413eb2f830fa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414b38e343242c8b0dd81d0ff4abe3e6379d4360aef301f0603551d23041830168014e76c41d54d2ba4d0b0f7e956550d67700992ae26300a06082a8648ce3d0403020348003045022015036ca76354ca749e7fd6256200620ec748de65b43a6043316371803bc3a6cb022100ecbbc0199922133d94855e0bc147a9c16e983ba7b04f7ad1e47cc0ea8a110cc2", - "pai_cert": "308201ad30820154a00302010202087ff631a492f48396300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000499ba61dd4a78dd5e316c842cc5df78076917d576396accbd099ee6c69c522996829dffd9a2f6c728193fb56a5a0ba22e41a2e5b6dc7739eebcf6bb501eaacce2a356305430120603551d130101ff040830060101ff020101301d0603551d0e04160414e76c41d54d2ba4d0b0f7e956550d67700992ae26301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203470030440220299620e7841729d6c2bfe9715659e5bdd6dd30d7834d4eb443a3dbeab33c07ba022025e105a4d0397829b3052c24bf710dd52823f4087884f56338dd85b26cae4e73", - "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502202423dec1aa29a65d8442a21d87179e23ff184d1949a8171e97bb0d2a40464072022100aee1555f303eb506ae2315548e2244d03fa3d5a1231b4648d8139938c01dc6d4", - "dac_private_key": "d66f9ab4888f68021310dc0acaeb4ce2165cd3d1f71e3fa4f9af9094ce1631fb", - "dac_public_key": "0449756b9521710a00a353a63509e0f9f9c2382728c3f50fcd9def4b8e9def621f7de64e6cdb9784d44a212640dcc0d681ae74cbe628363df60bd98413eb2f830f" + "dac_cert": "308201ce30820174a003020102020854d5de275a094273300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200048a495d08a04c10b71f799fdb98e6759227ba24b61bc27a3a61b0b5d346bfe4aeea8db02adb31413ece1c7cefb008c2f739071ac8228b8997ca986a0f08e4f9e8a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041429c871b25a196949b516f91936741bc92d2394a8301f0603551d23041830168014a62da27117186559f258e0f4f8747da2820d92d2300a06082a8648ce3d0403020348003045022062ca18409d57a5c0884e6734b1fba5afc6dfa98624b61e0b6d5f687db921777e022100c92576e518b554f71c04af0201c9d2e4d277947e5a69d10b3214d63f0fa30d65", + "pai_cert": "308201ad30820154a003020102020805c8f566381e086f300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000487e5462b518f7d175fb63020153cf96160b8f431e933f281ffb6f3c7ab46dc914a0ff2a7f0d5941027dc5bb3854621721c64c07fc305590d4e1024722f6eef2da356305430120603551d130101ff040830060101ff020100301d0603551d0e04160414a62da27117186559f258e0f4f8747da2820d92d2301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402201cc8eabf1dbfc717b39ae37dc3e3c1cb68797d704e6f0636c3254add9c1191fc0220496d94c5a6167f1b2d87ea21fe2086ed0cb3b92b0fe1815cf52d760c050a5898", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204463044022034e1e755ddff74b05c99451842d30c26e9b61b362f615de1d9a130d6f01b1f86022015963234a7768203edced2cc154ccce4303d9d67165352359df164d7e6c647dc", + "dac_private_key": "1c57e6a7f4face8aa0b78759ea9141a33a1bfc4c4b8d1411fc5b48fbad360073", + "dac_public_key": "048a495d08a04c10b71f799fdb98e6759227ba24b61bc27a3a61b0b5d346bfe4aeea8db02adb31413ece1c7cefb008c2f739071ac8228b8997ca986a0f08e4f9e8" } diff --git a/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/cd.der b/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/cd.der index a921332e0d67d9..862c8072354413 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/cd.der and b/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/dac-Cert.der index 84524b5f60efa0..5caa622ca8c6d8 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/dac-Cert.pem index 44f6d331096daa..8f8319f5e14d57 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/dac-Cert.pem @@ -1,11 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBrDCCAVOgAwIBAgIIdJS65d0syWUwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBrTCCAVOgAwIBAgIIemK9hapxDvswCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASIGdeuJxLr1SNsSTzzUjCBvyKLNlkv -k/vUs4ln1Edc9rkXLvPcndbeGhPO/BA7N42ZgxSJx0lHKUBPCfuQQ9MCoz8wPTAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUR9C9CtE8h+zx -tcmp5HW9zNQvKmQwCgYIKoZIzj0EAwIDRwAwRAIgbO9jW7/Jq6Id+ud38PRpyfWJ -xfDrlRibH2BfnVuefqoCIFYAvZzYkP4RfPIM3YvCCHSbWx3huoRMVgNdYWfQnjUo +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR3gy+6YVGOeTMAkQQ55jwav664rKon +m8/Nq0FK91QSj3Isqow29NflltfEl8hPW1VTeUyIAfD2Dl8T8v3XXQiwoz8wPTAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQU9qi5ttuhQa44 +slMQlj6JYKcPNvwwCgYIKoZIzj0EAwIDSAAwRQIhAIAYlQ0mGWCfPjQTkbOVr9v7 +vsOJXajC9fwQgznEMv4tAiAzdFUHPbYyKv0TQqPQ8Vypp3FHOiQBE8ZaMLogsZBo +NQ== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/dac-Key.der index 3743f10be217f1..33c8e6a7f873f2 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/dac-Key.pem index 46a764789db441..eb6a39849cb55e 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEILNq9lfDawglycgUcMNLMgSwmuB8s86qxR7rZgN3tqo1oAoGCCqGSM49 -AwEHoUQDQgAEiBnXricS69UjbEk881Iwgb8iizZZL5P71LOJZ9RHXPa5Fy7z3J3W -3hoTzvwQOzeNmYMUicdJRylATwn7kEPTAg== +MHcCAQEEIBh7DtjDRHTS2BojeqHta+l0Fkg2BJfww9tDWHr3FZAXoAoGCCqGSM49 +AwEHoUQDQgAEd4MvumFRjnkzAJEEOeY8Gr+uuKyqJ5vPzatBSvdUEo9yLKqMNvTX +5ZbXxJfIT1tVU3lMiAHw9g5fE/L9110IsA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/pai-Cert.der index 51724719b5d63c..059e944deb660f 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/pai-Cert.pem index d745c97305edc7..7c00f01766daab 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/pai-Cert.pem @@ -1,11 +1,11 @@ -----BEGIN CERTIFICATE----- -MIIBnjCCAUWgAwIBAgIIANSNX8sZpmMwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBnjCCAUWgAwIBAgIIdyNZPBFgYvwwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABEUrsIIMGq5ecveW7InljKznWMydqXnfOb9gMA5ofJ3QxNpk7GEQWGkHo3Hh -jHkOsGHhNRB7lAfCd1+b1ZHaacOjRzBFMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD +A0IABJg9LckAIrF09o1vJn1aMvy8wakXlCsVbEyUqeMvZb/ARtaH8YlO0mYlq37u +sfWkXXPD/QxO5PzcXiIp3v7hqXqjRzBFMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD VR0PAQH/BAQDAgEGMB8GA1UdIwQYMBaAFGr9IncfUR/svxZBl2cQ3NwxoXF+MAoG -CCqGSM49BAMCA0cAMEQCIAtR+AZ0H4GQh7j1GPyZveRi1jPC3ZvxlsdZESd9QFiX -AiAbicyO/05bDrd2p3J36hwsG7JBUTpi8HI6iVzytCCRXg== +CCqGSM49BAMCA0cAMEQCIDokg0BR+yBWK8fG/86cQEm4dCnxDHq0OL/XmFtYSHHv +AiAW/XLJ2ytze3+20SFcnmbv1RBHkNYY8wY9UQAmPXijhw== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/pai-Key.der index 2aaf9d05cad17b..d4ae1d7f7ea56b 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/pai-Key.pem index 63aea807da2ea4..8faca9833080b6 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIOop+Er8Q+A/0l48vC5MEzIiiu4ffBKh9lyOcGSHRLiIoAoGCCqGSM49 -AwEHoUQDQgAERSuwggwarl5y95bsieWMrOdYzJ2ped85v2AwDmh8ndDE2mTsYRBY -aQejceGMeQ6wYeE1EHuUB8J3X5vVkdppww== +MHcCAQEEIGmPk0w5eBDvAXN68xB/XQvay0hutmxXg06mW8ISyi5roAoGCCqGSM49 +AwEHoUQDQgAEmD0tyQAisXT2jW8mfVoy/LzBqReUKxVsTJSp4y9lv8BG1ofxiU7S +ZiWrfu6x9aRdc8P9DE7k/NxeIine/uGpeg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/test_case_vector.json index 8404c0d21be131..afe003c2878f44 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_skid_missing/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Certificate doesn't include Subject Key ID (SKID) extension", "is_success_case": "false", - "dac_cert": "308201ac30820153a00302010202087494bae5dd2cc965300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200048819d7ae2712ebd5236c493cf3523081bf228b36592f93fbd4b38967d4475cf6b9172ef3dc9dd6de1a13cefc103b378d99831489c7494729404f09fb9043d302a33f303d300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041447d0bd0ad13c87ecf1b5c9a9e475bdccd42f2a64300a06082a8648ce3d040302034700304402206cef635bbfc9aba21dfae777f0f469c9f589c5f0eb95189b1f605f9d5b9e7eaa02205600bd9cd890fe117cf20cdd8bc208749b5b1de1ba844c56035d6167d09e3528", - "pai_cert": "3082019e30820145a003020102020800d48d5fcb19a663300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004452bb0820c1aae5e72f796ec89e58cace758cc9da979df39bf60300e687c9dd0c4da64ec6110586907a371e18c790eb061e135107b9407c2775f9bd591da69c3a347304530120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402200b51f806741f819087b8f518fc99bde462d633c2dd9bf196c75911277d40589702201b89cc8eff4e5b0eb776a77277ea1c2c1bb241513a62f0723a895cf2b420915e", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204463044022061ecf1cf3b1b58fe4cfd9d864b08d3b30e44c58a7fde88ffe01afbd04fc956e602203118949266eea3c953167e875c9131a06ef5c21c2526f903aa87017d4571c06e", - "dac_private_key": "b36af657c36b0825c9c81470c34b3204b09ae07cb3ceaac51eeb660377b6aa35", - "dac_public_key": "048819d7ae2712ebd5236c493cf3523081bf228b36592f93fbd4b38967d4475cf6b9172ef3dc9dd6de1a13cefc103b378d99831489c7494729404f09fb9043d302" + "dac_cert": "308201ad30820153a00302010202087a62bd85aa710efb300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000477832fba61518e793300910439e63c1abfaeb8acaa279bcfcdab414af754128f722caa8c36f4d7e596d7c497c84f5b5553794c8801f0f60e5f13f2fdd75d08b0a33f303d300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414f6a8b9b6dba141ae38b25310963e8960a70f36fc300a06082a8648ce3d04030203480030450221008018950d2619609f3e341391b395afdbfbbec3895da8c2f5fc108339c432fe2d0220337455073db6322afd1342a3d0f15ca9a771473a240113c65a30ba20b1906835", + "pai_cert": "3082019e30820145a00302010202087723593c116062fc300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004983d2dc90022b174f68d6f267d5a32fcbcc1a917942b156c4c94a9e32f65bfc046d687f1894ed26625ab7eeeb1f5a45d73c3fd0c4ee4fcdc5e2229defee1a97aa347304530120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402203a24834051fb20562bc7c6ffce9c4049b87429f10c7ab438bfd7985b584871ef022016fd72c9db2b737b7fb6d1215c9e66efd5104790d618f3063d5100263d78a387", + "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100e71d7a8b9b1a5de233fe53c7b9bb5237688d1a32ab63aff7feb729365e4afb2d02206253b7ba7201eae286ffa3f22916ca30dafc49cef543d8d8c3076c63b0800345", + "dac_private_key": "187b0ed8c34474d2d81a237aa1ed6be9741648360497f0c3db43587af7159017", + "dac_public_key": "0477832fba61518e793300910439e63c1abfaeb8acaa279bcfcdab414af754128f722caa8c36f4d7e596d7c497c84f5b5553794c8801f0f60e5f13f2fdd75d08b0" } diff --git a/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/cd.der b/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/cd.der index cdd2eab340f659..52b40214bf5672 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/cd.der and b/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/dac-Cert.der index 630e2b126ddd48..e72a26cd87e807 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/dac-Cert.pem index 34331a23dd8e1c..a696efe07c942c 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzTCCAXSgAwIBAgIIKR+H/wMSsXgwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzjCCAXSgAwIBAgIIYtLJT6Q+sVYwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQs7meysjxZmnIto45SP955WZf2cTzq -8mu/sgwGYb/onq80LxdRV/tpEbONvnVPDs5LXBMmd608C4pJNFumSWVlo2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUS+IXzyATlsmU -iSh6hLKYrKO1XrAwHwYDVR0jBBgwFoAUggAnUeP+qqRS9IIBI/P4TsuD41wwCgYI -KoZIzj0EAwIDRwAwRAIgXWZ6yI3k/5qY/m/DyN500fpNR+4CA3YMN6WrlQCrXpAC -IEu78cWaJHxGQk3uNVEWCyhCMfb4miLHWGb27sClz0Ao +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATAsr9oJ9tnPabv5S72iGUcZQNpZJij +YbylnABzeDBhqYfpIpxqmeZr43cTQf0m6+ypypTF7zn44X/dS1lsPaado2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUeRD0jzss8F6j +FSHMJOaO/uzEa9gwHwYDVR0jBBgwFoAUSqLL5qz3qlujuE7LhqqtQT+kw7gwCgYI +KoZIzj0EAwIDSAAwRQIhAKHojqc1mRb2zKqOyF/Q+ZLAM/DvCaefbF7sHFyOZKEX +AiAHSxkQnXs+XO4j/Qs2aE4hgKopAQ6Gt93pTv+EdtyYMg== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/dac-Key.der index 94089a298f4006..e8465b1f7af54c 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/dac-Key.pem index 79d94b274342de..4a7525cd26e6e6 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIMPBiiJpljNnkZztb027u+w8yqIR/tLmxl0wJ8omphbNoAoGCCqGSM49 -AwEHoUQDQgAELO5nsrI8WZpyLaOOUj/eeVmX9nE86vJrv7IMBmG/6J6vNC8XUVf7 -aRGzjb51Tw7OS1wTJnetPAuKSTRbpkllZQ== +MHcCAQEEIN3aMYc9isrXogXysgnD/hzUikMKzmYPdt2r70tnKGZwoAoGCCqGSM49 +AwEHoUQDQgAEwLK/aCfbZz2m7+Uu9ohlHGUDaWSYo2G8pZwAc3gwYamH6SKcapnm +a+N3E0H9JuvsqcqUxe85+OF/3UtZbD2mnQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/pai-Cert.der index 6e7201c45cc1cd..0a052a81754f06 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/pai-Cert.pem index 3ac44c52f1642d..9f83a8e8a02ef0 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB0jCCAXmgAwIBAgIIdwEBV4tzNpswCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIB0jCCAXmgAwIBAgIIVkA6ibDt19MwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABCTeXBUfG5Q5PgRnisIePC1Fw4wPsrFmBhPVLNZXM/05phoBloDu+Mdugn9M -GHf+NlIVpLDeQ0Yy7He9Rv5ay0ejezB5MBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSCACdR4/6qpFL0ggEj8/hOy4PjXDAfBgNV +A0IABDQyduF8jDElSpscWK9szQE/6lsQTIaRmA3J6ZWogMcC1dkS64MuThNW9xyj +CDPQDDoj8Q4Xb5HArjgbjaCQFp+jezB5MBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRKosvmrPeqW6O4TsuGqq1BP6TDuDAfBgNV HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjATBgNVHREEDDAKggh0ZXN0LmNv -bTAKBggqhkjOPQQDAgNHADBEAiAdy2Mt/W1D80nsOL8Lj11JJH1HxjcaVy8n1E8V -+gI5TgIgfBsunkYNSr1n+OM+VOLjibWm+OHnSQ0xYgzx4TenN0w= +bTAKBggqhkjOPQQDAgNHADBEAiAI+SIE93zvH2IDH8srA83Y3ftGw4w5S8jtKvjx +QZIUnwIgXGQXAI3EuswlJT76alqlnIGqlJzsppEr4Wa6sm9UJGc= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/pai-Key.der index c967601a552c0f..c92fa73b18272a 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/pai-Key.pem index 03f526acaae225..b7ede90d22bd5a 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEINHsqy5MaHYZCxMtl8dlAPJokMYb33kXbOsJTCEGevm2oAoGCCqGSM49 -AwEHoUQDQgAEJN5cFR8blDk+BGeKwh48LUXDjA+ysWYGE9Us1lcz/TmmGgGWgO74 -x26Cf0wYd/42UhWksN5DRjLsd71G/lrLRw== +MHcCAQEEICQqmZnfZrA2Ef88yCP+0soBfn0PIL7HpcxDZ8T3tEjmoAoGCCqGSM49 +AwEHoUQDQgAENDJ24XyMMSVKmxxYr2zNAT/qWxBMhpGYDcnplaiAxwLV2RLrgy5O +E1b3HKMIM9AMOiPxDhdvkcCuOBuNoJAWnw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/test_case_vector.json index c131de9443191d..8ab17ba30ea3d6 100644 --- a/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_ext_subject_alt_name_present/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Certificate includes optional Subject Alternative Name extension", "is_success_case": "true", - "dac_cert": "308201cd30820174a0030201020208291f87ff0312b178300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200042cee67b2b23c599a722da38e523fde795997f6713ceaf26bbfb20c0661bfe89eaf342f175157fb6911b38dbe754f0ece4b5c132677ad3c0b8a49345ba6496565a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604144be217cf201396c99489287a84b298aca3b55eb0301f0603551d2304183016801482002751e3feaaa452f4820123f3f84ecb83e35c300a06082a8648ce3d040302034700304402205d667ac88de4ff9a98fe6fc3c8de74d1fa4d47ee0203760c37a5ab9500ab5e9002204bbbf1c59a247c46424dee3551160b284231f6f89a22c75866f6eec0a5cf4028", - "pai_cert": "308201d230820179a0030201020208770101578b73369b300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000424de5c151f1b94393e04678ac21e3c2d45c38c0fb2b1660613d52cd65733fd39a61a019680eef8c76e827f4c1877fe365215a4b0de434632ec77bd46fe5acb47a37b307930120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e0416041482002751e3feaaa452f4820123f3f84ecb83e35c301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e30130603551d11040c300a8208746573742e636f6d300a06082a8648ce3d040302034700304402201dcb632dfd6d43f349ec38bf0b8f5d49247d47c6371a572f27d44f15fa02394e02207c1b2e9e460d4abd67f8e33e54e2e389b5a6f8e1e7490d31620cf1e137a7374c", - "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100b181223f6618758a90645410bc26d1774c9bb7fb3cf2e4335bc1815966c484f6022003c0e6d692970ea45b50c8a1c781981a20b191d2ee9df3577f2af78d8171972e", - "dac_private_key": "c3c18a2269963367919ced6f4dbbbbec3ccaa211fed2e6c65d3027ca26a616cd", - "dac_public_key": "042cee67b2b23c599a722da38e523fde795997f6713ceaf26bbfb20c0661bfe89eaf342f175157fb6911b38dbe754f0ece4b5c132677ad3c0b8a49345ba6496565" + "dac_cert": "308201ce30820174a003020102020862d2c94fa43eb156300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004c0b2bf6827db673da6efe52ef688651c6503696498a361bca59c0073783061a987e9229c6a99e66be3771341fd26ebeca9ca94c5ef39f8e17fdd4b596c3da69da360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604147910f48f3b2cf05ea31521cc24e68efeecc46bd8301f0603551d230418301680144aa2cbe6acf7aa5ba3b84ecb86aaad413fa4c3b8300a06082a8648ce3d0403020348003045022100a1e88ea7359916f6ccaa8ec85fd0f992c033f0ef09a79f6c5eec1c5c8e64a1170220074b19109d7b3e5cee23fd0b36684e2180aa29010e86b7dde94eff8476dc9832", + "pai_cert": "308201d230820179a003020102020856403a89b0edd7d3300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004343276e17c8c31254a9b1c58af6ccd013fea5b104c8691980dc9e995a880c702d5d912eb832e4e1356f71ca30833d00c3a23f10e176f91c0ae381b8da090169fa37b307930120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604144aa2cbe6acf7aa5ba3b84ecb86aaad413fa4c3b8301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e30130603551d11040c300a8208746573742e636f6d300a06082a8648ce3d0403020347003044022008f92204f77cef1f62031fcb2b03cdd8ddfb46c38c394bc8ed2af8f14192149f02205c6417008dc4bacc25253efa6a5aa59c81aa949ceca6912be166bab26f542467", + "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450221009c8535617a42f7b9d6fa3a6d6900a8f54c6e4b2cff3210c2b83ca9442c923a2a022025aec84ea1a17cb7e26eaaaef0eeed22c91219101fd82c87e5fbef816a9537d0", + "dac_private_key": "ddda31873d8acad7a205f2b209c3fe1cd48a430ace660f76ddabef4b67286670", + "dac_public_key": "04c0b2bf6827db673da6efe52ef688651c6503696498a361bca59c0073783061a987e9229c6a99e66be3771341fd26ebeca9ca94c5ef39f8e17fdd4b596c3da69d" } diff --git a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/cd.der b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/cd.der index b8a6a322823b31..54eeef1f0f461f 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/cd.der and b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/dac-Cert.der index dd7061ebfb1e7a..81e73225f0ab34 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/dac-Cert.pem index 7c9f73f75fb6c9..707c964245fd75 100644 --- a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzjCCAXSgAwIBAgIIRpWZsmN09+4wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzjCCAXSgAwIBAgIIFrUXDTIXeoowCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFtgXITTVbSPen1njw0A48CzY3lOss -0wqz4gTB/3+zjR77fObjgb0bBcHNZhzsMbywmZezepUshqerCMSri49Jo2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUZcZ1JQTG5k0D -PkD4q4+Cp353OzEwHwYDVR0jBBgwFoAUFI//WmN5pjlPp1jU2zS9EZZiHOAwCgYI -KoZIzj0EAwIDSAAwRQIhAPwj4HF4abQL4gI1Foj9jEjcls6BnjThkDayB/TnVCU4 -AiAmKz8RsoFHPGrazvTdlqe1mRwRXMFNJPyviZgdatvxyw== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATnJnm9mq6e77XNs5PCYSp7CID7nt1g +UpOZNbIRNulaE8gQjspO1xjAxUg58B5c6teu+pibLeH27spx9galkc0Ro2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUu1hNuRQS4YF2 +Xi71fC9u2hYLXQ8wHwYDVR0jBBgwFoAUEvuhpoab8mPgGModZUwvjCm2G2gwCgYI +KoZIzj0EAwIDSAAwRQIgUWqyDgRr6uet+0p+MYj6BYp+kK72H6u1AdccEPUcS2MC +IQD8Ut4M33+F0axom7J7yhS5BYk4a046f3iAgZd7h2p+NQ== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/dac-Key.der index 8507d351c0fadc..99e74d8c2cd2bd 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/dac-Key.pem index 329b2400de9fb6..62c3af6fef9e78 100644 --- a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEINRxNA/NdXNhK4aysfIKvKTmGCEOkQm/Nuwr3mnUJ9rUoAoGCCqGSM49 -AwEHoUQDQgAERbYFyE01W0j3p9Z48NAOPAs2N5TrLNMKs+IEwf9/s40e+3zm44G9 -GwXBzWYc7DG8sJmXs3qVLIanqwjEq4uPSQ== +MHcCAQEEIKDIoXd3ERD1HnDt+RpBOsWTApOHoLqcAilwqKlkltfpoAoGCCqGSM49 +AwEHoUQDQgAE5yZ5vZqunu+1zbOTwmEqewiA+57dYFKTmTWyETbpWhPIEI7KTtcY +wMVIOfAeXOrXrvqYmy3h9u7KcfYGpZHNEQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/pai-Cert.der index 6bfd84ae0f54de..5a6f473f8600c0 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/pai-Cert.pem index 881683cb88d2b3..e4fd995e3ec3cf 100644 --- a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBuzCCAWOgAwIBAgIIb737s5U6eOwwCQYHKoZIzj0EATAwMRgwFgYDVQQDDA9N -YXR0ZXIgVGVzdCBQQUExFDASBgorBgEEAYKifAIBDARGRkYxMCAXDTIyMDQyMDAw +MIIBvDCCAWOgAwIBAgIIBEzFO7MsMz8wCQYHKoZIzj0EATAwMRgwFgYDVQQDDA9N +YXR0ZXIgVGVzdCBQQUExFDASBgorBgEEAYKifAIBDARGRkYxMCAXDTIyMDUyNzAw MDAwMFoYDzk5OTkxMjMxMjM1OTU5WjAwMRgwFgYDVQQDDA9NYXR0ZXIgVGVzdCBQ QUkxFDASBgorBgEEAYKifAIBDARGRkYxMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcD -QgAEgk7r1zQNvNd3ILGegp9F2A6bSIYXee3+XP4TgCKA/8a8iQY+WfBmh3BBc5RB -6wmqJfWRsBnWcxsZkzhz0FqykaNmMGQwEgYDVR0TAQH/BAgwBgEB/wIBATAOBgNV -HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBSP/1pjeaY5T6dY1Ns0vRGWYhzgMB8GA1Ud -IwQYMBaAFGr9IncfUR/svxZBl2cQ3NwxoXF+MAkGByqGSM49BAEDRwAwRAIgKnfZ -ygJmumHmgEN4YiOVWJF5ftkFyTKjAmKBeriZrgUCIA7+UtL1AMSmcv5mnXYuWQNB -Fn39EKFkx2uc3X99bKkw +QgAEqK/4VQ9ONGr8m1F406+gmvN+3gBXODASW8QS/0Y9nhf8R14OvCqnlZI80jMV +v/xyDkmER9YB/4b4fmPwvpwqnqNmMGQwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNV +HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBL7oaaGm/Jj4BjKHWVML4wpthtoMB8GA1Ud +IwQYMBaAFGr9IncfUR/svxZBl2cQ3NwxoXF+MAkGByqGSM49BAEDSAAwRQIgZn8x +rGZB/p8S4ZY/JSgNvc+23qnM0U4dcb4zE9OjHFgCIQDN0kITc5FAQuFg3KLHiSE5 +YW2qRPjZq3d5UIm4ONQ//A== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/pai-Key.der index e04c8442d902c1..3d26fdb09293a3 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/pai-Key.pem index 6829aa710cd997..27b11fb0277b63 100644 --- a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIPabvrJ6dnuldMhN0/htkZvVEcdxiXRgWweIvW0fjgRxoAoGCCqGSM49 -AwEHoUQDQgAEgk7r1zQNvNd3ILGegp9F2A6bSIYXee3+XP4TgCKA/8a8iQY+WfBm -h3BBc5RB6wmqJfWRsBnWcxsZkzhz0FqykQ== +MHcCAQEEIIelzojq1QhnnRqcrvpNxu6A+aMSG9sVkk3TyGlcma+yoAoGCCqGSM49 +AwEHoUQDQgAEqK/4VQ9ONGr8m1F406+gmvN+3gBXODASW8QS/0Y9nhf8R14OvCqn +lZI80jMVv/xyDkmER9YB/4b4fmPwvpwqng== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/test_case_vector.json index fb9934d3ce23bf..b7b24d3dedf832 100644 --- a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha1/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Invalid certificate signature algorithm ECDSA_WITH_SHA1", "is_success_case": "false", - "dac_cert": "308201ce30820174a0030201020208469599b26374f7ee300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000445b605c84d355b48f7a7d678f0d00e3c0b363794eb2cd30ab3e204c1ff7fb38d1efb7ce6e381bd1b05c1cd661cec31bcb09997b37a952c86a7ab08c4ab8b8f49a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041465c6752504c6e64d033e40f8ab8f82a77e773b31301f0603551d23041830168014148fff5a6379a6394fa758d4db34bd1196621ce0300a06082a8648ce3d0403020348003045022100fc23e0717869b40be202351688fd8c48dc96ce819e34e19036b207f4e75425380220262b3f11b281473c6adacef4dd96a7b5991c115cc14d24fcaf89981d6adbf1cb", - "pai_cert": "308201bb30820163a00302010202086fbdfbb3953a78ec300906072a8648ce3d040130303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004824eebd7340dbcd77720b19e829f45d80e9b48861779edfe5cfe13802280ffc6bc89063e59f066877041739441eb09aa25f591b019d6731b19933873d05ab291a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414148fff5a6379a6394fa758d4db34bd1196621ce0301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300906072a8648ce3d0401034700304402202a77d9ca0266ba61e68043786223955891797ed905c932a30262817ab899ae0502200efe52d2f500c4a672fe669d762e590341167dfd10a164c76b9cdd7f7d6ca930", - "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100cf434b9d9a84c72038dfc44729c6a4cada8beaa1482ff1267a57e8b26e95b0c6022100e019f5be8e9a4984348442753c94ee385afb0b0995af502ee9e38a29e997075d", - "dac_private_key": "d471340fcd7573612b86b2b1f20abca4e618210e9109bf36ec2bde69d427dad4", - "dac_public_key": "0445b605c84d355b48f7a7d678f0d00e3c0b363794eb2cd30ab3e204c1ff7fb38d1efb7ce6e381bd1b05c1cd661cec31bcb09997b37a952c86a7ab08c4ab8b8f49" + "dac_cert": "308201ce30820174a003020102020816b5170d32177a8a300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004e72679bd9aae9eefb5cdb393c2612a7b0880fb9edd6052939935b21136e95a13c8108eca4ed718c0c54839f01e5cead7aefa989b2de1f6eeca71f606a591cd11a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414bb584db91412e181765e2ef57c2f6eda160b5d0f301f0603551d2304183016801412fba1a6869bf263e018ca1d654c2f8c29b61b68300a06082a8648ce3d04030203480030450220516ab20e046beae7adfb4a7e3188fa058a7e90aef61fabb501d71c10f51c4b63022100fc52de0cdf7f85d1ac689bb27bca14b90589386b4e3a7f788081977b876a7e35", + "pai_cert": "308201bc30820163a0030201020208044cc53bb32c333f300906072a8648ce3d040130303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004a8aff8550f4e346afc9b5178d3afa09af37ede00573830125bc412ff463d9e17fc475e0ebc2aa795923cd23315bffc720e498447d601ff86f87e63f0be9c2a9ea366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041412fba1a6869bf263e018ca1d654c2f8c29b61b68301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300906072a8648ce3d040103480030450220667f31ac6641fe9f12e1963f25280dbdcfb6dea9ccd14e1d71be3313d3a31c58022100cdd2421373914042e160dca2c7892139616daa44f8d9ab77795089b838d43ffc", + "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022064bcaa37c863d891771a394f65707de931e82b74035c56299a3c706384bcfa4b022100caa722a322f7a0ce0edfd9f9dc8e50a9b9caf6e60ed5fc05ad9260dda01d55b6", + "dac_private_key": "a0c8a177771110f51e70edf91a413ac593029387a0ba9c022970a8a96496d7e9", + "dac_public_key": "04e72679bd9aae9eefb5cdb393c2612a7b0880fb9edd6052939935b21136e95a13c8108eca4ed718c0c54839f01e5cead7aefa989b2de1f6eeca71f606a591cd11" } diff --git a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/cd.der b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/cd.der index f09c63f325f3d4..a3c072626ac636 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/cd.der and b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/dac-Cert.der index 8aab46e8a26207..626b27bc25cf91 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/dac-Cert.pem index 87c2c274a8ee9d..b99592118baf24 100644 --- a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzTCCAXSgAwIBAgIIXxWbrEpShi0wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzTCCAXSgAwIBAgIIIFR+fp68E8kwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARgUxK6QRveTs6JFjAnFF3CTUsiUFQb -4nj3+V875J+CtbQ5Uls+CLQwqLfQDTnnY6WEv3WbQ8c0kqCMC7jCczaEo2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUNTQkF7W1zHiY -nRTCZg1RIVFQicMwHwYDVR0jBBgwFoAUXViCDgDy7NnurHUCBwdPiCl64ocwCgYI -KoZIzj0EAwIDRwAwRAIgSde644Xtd7GRWFgfpolow4MAB0P0TLXCmztmioCIF8wC -IE+ktjNM7KyxGK41xdrT1GcfcJMyvkjF7F3NB9Oa/h8t +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATk67sQiOzcg5GiALLS77qXGigO+rSx +bbKVi3L/HiAvGWNuYFkjDNwC9UHBSs5Z1m8wi7G+hkhP7F+mS2JhvNBRo2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUwDWKmLbCscXF +8CMybhPTeBPr6LQwHwYDVR0jBBgwFoAUyPech3T5SKsR4iQbsGcjALj/QM4wCgYI +KoZIzj0EAwIDRwAwRAIgREtTmVzodj3Hexcf4psjM+V8fUd2Vy3rEMsWgUtFBjIC +ICwAPfXyyEpigqmQt+/HjqYQHI4+MF4VJ7ZuQ4whTISi -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/dac-Key.der index 3ebceb5b92c5fc..fc5f3e2399748d 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/dac-Key.pem index 0c6f406cce9eb7..aa4b8545b36a73 100644 --- a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIAdm/ieRr1rS42XXXbia6Wr5xESqU7ugArMnBQtGeqC1oAoGCCqGSM49 -AwEHoUQDQgAEYFMSukEb3k7OiRYwJxRdwk1LIlBUG+J49/lfO+SfgrW0OVJbPgi0 -MKi30A0552OlhL91m0PHNJKgjAu4wnM2hA== +MHcCAQEEILjI0eX7lDi6/7cWyZdexhNS3TBgVfbQ4tlnw3htTCOMoAoGCCqGSM49 +AwEHoUQDQgAE5Ou7EIjs3IORogCy0u+6lxooDvq0sW2ylYty/x4gLxljbmBZIwzc +AvVBwUrOWdZvMIuxvoZIT+xfpktiYbzQUQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/pai-Cert.der index b75d8cb30b5ffe..e14c1cab97d85f 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/pai-Cert.pem index 7140ad7bbbc639..a0598b892eec8b 100644 --- a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvjCCAWSgAwIBAgIIOzNnLbPqbVwwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvjCCAWSgAwIBAgIIdg0wW1tTQkQwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABFnxPKodFUFd2VdY/sja070AOjExo1lLfDpDvHUXD1NlGHH0xue2ZqfE26N+ -qUNzrwpgPKMMHoY1pL5ckFXNgNyjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRdWIIOAPLs2e6sdQIHB0+IKXrihzAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiB1 -eM+tCImySKs1NE4irCYHJjCgG0pvgNBBO5y9+5VGcAIhALEMrYFK1XbXB2dPLdJO -GBij2cvVULt9pD2ckAPwz6xX +A0IABDTiP+O3k97ocvUjvfuOdCO8eULpwEFy0HSGUZo33Xfbzrr0aRHhqPDOpO0L +Ny9/uvGPtc/R/36srMysL7FE4+GjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTI95yHdPlIqxHiJBuwZyMAuP9AzjAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiEA +3dr8a7kDi+VF0W8d7qBmwBewZfOOMQiQYYGo1H+qaOwCIFy7+6hhMSUqGWmuRpNq +MK/amQO7xm+N9HvoY192zmsg -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/pai-Key.der index 7e801f752cc552..ab02c6ee1848c7 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/pai-Key.pem index 3edec1c8941c58..193b1fd1842ec2 100644 --- a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIGzVHc2MmjAhaAob63ROuJIY9ZOENXupevS27dYMwAvJoAoGCCqGSM49 -AwEHoUQDQgAEWfE8qh0VQV3ZV1j+yNrTvQA6MTGjWUt8OkO8dRcPU2UYcfTG57Zm -p8Tbo36pQ3OvCmA8owwehjWkvlyQVc2A3A== +MHcCAQEEIJiv6+GEkTuUbMc7jQVbQSO9M9L9BZ+CEkoNrXEwr1aGoAoGCCqGSM49 +AwEHoUQDQgAENOI/47eT3uhy9SO9+450I7x5QunAQXLQdIZRmjfdd9vOuvRpEeGo +8M6k7Qs3L3+68Y+1z9H/fqyszKwvsUTj4Q== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/test_case_vector.json index aadd5c964fc07e..3b48f71977ba74 100644 --- a/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_sig_algo_ecdsa_with_sha256/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Valid certificate signature algorithm ECDSA_WITH_SHA256", "is_success_case": "true", - "dac_cert": "308201cd30820174a00302010202085f159bac4a52862d300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004605312ba411bde4ece89163027145dc24d4b2250541be278f7f95f3be49f82b5b439525b3e08b430a8b7d00d39e763a584bf759b43c73492a08c0bb8c2733684a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041435342417b5b5cc78989d14c2660d5121515089c3301f0603551d230418301680145d58820e00f2ecd9eeac750207074f88297ae287300a06082a8648ce3d0403020347003044022049d7bae385ed77b19158581fa68968c383000743f44cb5c29b3b668a808817cc02204fa4b6334cecacb118ae35c5dad3d4671f709332be48c5ec5dcd07d39afe1f2d", - "pai_cert": "308201be30820164a00302010202083b33672db3ea6d5c300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000459f13caa1d15415dd95758fec8dad3bd003a3131a3594b7c3a43bc75170f53651871f4c6e7b666a7c4dba37ea94373af0a603ca30c1e8635a4be5c9055cd80dca366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604145d58820e00f2ecd9eeac750207074f88297ae287301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502207578cfad0889b248ab35344e22ac26072630a01b4a6f80d0413b9cbdfb954670022100b10cad814ad576d707674f2dd24e1818a3d9cbd550bb7da43d9c9003f0cfac57", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204463044022004c86dbcd730665a39ba1cf4ec80b1981a09ee51bb97f309d4ac9199b13b6998022040a500361ce33f370287a36f19828fc9190d226b1439aa8f407be620608581aa", - "dac_private_key": "0766fe2791af5ad2e365d75db89ae96af9c444aa53bba002b327050b467aa0b5", - "dac_public_key": "04605312ba411bde4ece89163027145dc24d4b2250541be278f7f95f3be49f82b5b439525b3e08b430a8b7d00d39e763a584bf759b43c73492a08c0bb8c2733684" + "dac_cert": "308201cd30820174a003020102020820547e7e9ebc13c9300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004e4ebbb1088ecdc8391a200b2d2efba971a280efab4b16db2958b72ff1e202f19636e6059230cdc02f541c14ace59d66f308bb1be86484fec5fa64b6261bcd051a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414c0358a98b6c2b1c5c5f023326e13d37813ebe8b4301f0603551d23041830168014c8f79c8774f948ab11e2241bb0672300b8ff40ce300a06082a8648ce3d04030203470030440220444b53995ce8763dc77b171fe29b2333e57c7d4776572deb10cb16814b45063202202c003df5f2c84a6282a990b7efc78ea6101c8e3e305e1527b66e438c214c84a2", + "pai_cert": "308201be30820164a0030201020208760d305b5b534244300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000434e23fe3b793dee872f523bdfb8e7423bc7942e9c04172d07486519a37dd77dbcebaf46911e1a8f0cea4ed0b372f7fbaf18fb5cfd1ff7eacacccac2fb144e3e1a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414c8f79c8774f948ab11e2241bb0672300b8ff40ce301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100dddafc6bb9038be545d16f1deea066c017b065f38e3108906181a8d47faa68ec02205cbbfba86131252a1969ae46936a30afda9903bbc66f8df47be8635f76ce6b20", + "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100b5d72a81c7b64ff66a5f5c66fe5a88a54936340ef2bf60ef0a862bac645fe58d022100a2c20dcf768d23603bf51e615b3cd695f3137ce3755161b24ed3ff17d27cacb9", + "dac_private_key": "b8c8d1e5fb9438baffb716c9975ec61352dd306055f6d0e2d967c3786d4c238c", + "dac_public_key": "04e4ebbb1088ecdc8391a200b2d2efba971a280efab4b16db2958b72ff1e202f19636e6059230cdc02f541c14ace59d66f308bb1be86484fec5fa64b6261bcd051" } diff --git a/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/cd.der b/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/cd.der index f686a6e160c1f8..2437e6c1be1945 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/cd.der and b/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/dac-Cert.der index ac6d07ba6c3fbc..f13caf64964d01 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/dac-Cert.pem index 95eca771d417bd..b1eb3a56299a2f 100644 --- a/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzjCCAXSgAwIBAgIIOf04BW6vV8IwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzTCCAXSgAwIBAgIIJe0jhZLYIqEwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS4p31037SjtqAf93IgcYaY4ijUvffU -iSf4IIOHzvRArwTTH6NjMbN7kqVXe+ThNNK9L+ewvinyEiIxRTo7s8YNo2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUGzhAS81hT38G -SnCC9JhWftEdooYwHwYDVR0jBBgwFoAUgHJCndhbTxnc41Mv73ON+paho9kwCgYI -KoZIzj0EAwIDSAAwRQIgKy+8+WbDI+M4EFHjM9/kiuV+ABWxkXzkCimuInuznoUC -IQCt6aBMt/KENPJrRRauBKy5MdDh3FM2OsYWO/RUamqiRQ== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARBZiRuLBiIB+k2AiehS+W/OO8fgux2 +DfcUmSRx4BzUW0aPlEVoo4k2pOZckZKN6uGTD7gfV+YXbsIZJa3K8S9uo2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUOifcZmv6HcmT +s6lDEEiPlolSJ6gwHwYDVR0jBBgwFoAU1G3q3KyWExehVpvtobDBm+Wec4wwCgYI +KoZIzj0EAwIDRwAwRAIgXGO48tVqNKwvHeyAwv5c8BD0z5sdFNW+VTokowQFvrgC +ID1SOhARDq5n/88rZ70GgPKZTqedyqVSXEp/UkhUFSPw -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/dac-Key.der index e1bf6daa4ea393..96236e0faab515 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/dac-Key.pem index f562b29997c3fd..6bb2e895fa69a4 100644 --- a/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIFSwLHyK+SWfuHghGI8VXUs8PB8o5tyPyAYcqkb7Zy5OoAoGCCqGSM49 -AwEHoUQDQgAEuKd9dN+0o7agH/dyIHGGmOIo1L331Ikn+CCDh870QK8E0x+jYzGz -e5KlV3vk4TTSvS/nsL4p8hIiMUU6O7PGDQ== +MHcCAQEEICXl56yNKrutVJYMpgiZo/rcl5PJ1LEZAKRAVW8RoowjoAoGCCqGSM49 +AwEHoUQDQgAEQWYkbiwYiAfpNgInoUvlvzjvH4Lsdg33FJkkceAc1FtGj5RFaKOJ +NqTmXJGSjerhkw+4H1fmF27CGSWtyvEvbg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/pai-Cert.der index ad001bd3436d1f..dd09459b95318a 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/pai-Cert.pem index caf52f3512a4d6..e279a51ef351c4 100644 --- a/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvTCCAWSgAwIBAgIISNrAqnBxw40wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvzCCAWSgAwIBAgIIXoqbrYxCfoQwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABPjf/JjfuN802RaimiTPqMKEZ+ogC82bfu8S9PACkWrbhII2IevaPgEgFKOj -oHubOqA3nzMY+n9uxdg1T4o5W0WjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSAckKd2FtPGdzjUy/vc436lqGj2TAfBgNV -HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNHADBEAiBj -1Djf0YmukM/n1m/18yGgP8WxdE+hZ8/ElykJaQL6AAIgMALC1TKmtApS5xPEfle8 -KtnWMd7//LlYV6LfXH6R37M= +A0IABAm/W/vQmOTGOpYqOqLBnPz+Jcmak3qXMg2Q6Tm7szbt/r7Rgqifje/PDoyu +i/p0Bzug0HuhVzdawux0KazrvTujZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTUbercrJYTF6FWm+2hsMGb5Z5zjDAfBgNV +HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNJADBGAiEA +w71ShXgEnF/aVsymB9RCFbx63+qb2Aqekcjz1qr1ME8CIQCtk3+6/xOnMAGkCi2i +PCoUdwMPLYNQ4FdTFJDX6qqPkA== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/pai-Key.der index 3597daf2bc418d..4ab406e80d4b3a 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/pai-Key.pem index 6b6b7a5bc42c4a..8f90d2a7ac2e41 100644 --- a/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEICym1Iup++x1b0CCnI0MazVOoFTq9c9jTlqNsJmGeWgioAoGCCqGSM49 -AwEHoUQDQgAE+N/8mN+43zTZFqKaJM+owoRn6iALzZt+7xL08AKRatuEgjYh69o+ -ASAUo6Oge5s6oDefMxj6f27F2DVPijlbRQ== +MHcCAQEEIPFB/K9XgPgVxRUoLl8BdYCBP8d/VhzNtI8jqXEe6lq4oAoGCCqGSM49 +AwEHoUQDQgAECb9b+9CY5MY6lio6osGc/P4lyZqTepcyDZDpObuzNu3+vtGCqJ+N +788OjK6L+nQHO6DQe6FXN1rC7HQprOu9Ow== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/test_case_vector.json index 2000ce4259092b..c76a4a88331a4e 100644 --- a/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_sig_curve_prime256v1/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Valid certificate public key curve prime256v1", "is_success_case": "true", - "dac_cert": "308201ce30820174a003020102020839fd38056eaf57c2300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004b8a77d74dfb4a3b6a01ff77220718698e228d4bdf7d48927f8208387cef440af04d31fa36331b37b92a5577be4e134d2bd2fe7b0be29f2122231453a3bb3c60da360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604141b38404bcd614f7f064a7082f498567ed11da286301f0603551d230418301680148072429dd85b4f19dce3532fef738dfa96a1a3d9300a06082a8648ce3d040302034800304502202b2fbcf966c323e3381051e333dfe48ae57e0015b1917ce40a29ae227bb39e85022100ade9a04cb7f28434f26b4516ae04acb931d0e1dc53363ac6163bf4546a6aa245", - "pai_cert": "308201bd30820164a003020102020848dac0aa7071c38d300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004f8dffc98dfb8df34d916a29a24cfa8c28467ea200bcd9b7eef12f4f002916adb84823621ebda3e012014a3a3a07b9b3aa0379f3318fa7f6ec5d8354f8a395b45a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604148072429dd85b4f19dce3532fef738dfa96a1a3d9301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020347003044022063d438dfd189ae90cfe7d66ff5f321a03fc5b1744fa167cfc49729096902fa0002203002c2d532a6b40a52e713c47e57bc2ad9d631defffcb95857a2df5c7e91dfb3", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402207776d33f3372fb13042d87bbe4f79c205f74a7835af133164a625834afeefd3f02203e0f8104061262e51e690afd67a0029e74b5b4ba05b661ee907d12afdbc9f85f", - "dac_private_key": "54b02c7c8af9259fb87821188f155d4b3c3c1f28e6dc8fc8061caa46fb672e4e", - "dac_public_key": "04b8a77d74dfb4a3b6a01ff77220718698e228d4bdf7d48927f8208387cef440af04d31fa36331b37b92a5577be4e134d2bd2fe7b0be29f2122231453a3bb3c60d" + "dac_cert": "308201cd30820174a003020102020825ed238592d822a1300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200044166246e2c188807e9360227a14be5bf38ef1f82ec760df714992471e01cd45b468f944568a38936a4e65c91928deae1930fb81f57e6176ec21925adcaf12f6ea360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604143a27dc666bfa1dc993b3a94310488f96895227a8301f0603551d23041830168014d46deadcac961317a1569beda1b0c19be59e738c300a06082a8648ce3d040302034700304402205c63b8f2d56a34ac2f1dec80c2fe5cf010f4cf9b1d14d5be553a24a30405beb802203d523a10110eae67ffcf2b67bd0680f2994ea79dcaa5525c4a7f5248541523f0", + "pai_cert": "308201bf30820164a00302010202085e8a9bad8c427e84300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d0301070342000409bf5bfbd098e4c63a962a3aa2c19cfcfe25c99a937a97320d90e939bbb336edfebed182a89f8defcf0e8cae8bfa74073ba0d07ba157375ac2ec7429acebbd3ba366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414d46deadcac961317a1569beda1b0c19be59e738c301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100c3bd528578049c5fda56cca607d44215bc7adfea9bd80a9e91c8f3d6aaf5304f022100ad937fbaff13a73001a40a2da23c2a1477030f2d8350e057531490d7eaaa8f90", + "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100d854c8b6a4c14cab504a6d038a4e1854e1f264fd6184a006ee3580d80225ff3e022100fcd80a6d4b462faf0f56f2048dbaf0c726f31bf21eeb6d4e7ad8b8a81afb3941", + "dac_private_key": "25e5e7ac8d2abbad54960ca60899a3fadc9793c9d4b11900a440556f11a28c23", + "dac_public_key": "044166246e2c188807e9360227a14be5bf38ef1f82ec760df714992471e01cd45b468f944568a38936a4e65c91928deae1930fb81f57e6176ec21925adcaf12f6e" } diff --git a/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/cd.der b/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/cd.der index 1a2a029375eb2f..b4be37aef572ce 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/cd.der and b/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/dac-Cert.der index d7032b1c6964db..f4b3f5219f3024 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/dac-Cert.pem index 79dad1dc151d7a..e8ff456c5961b1 100644 --- a/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzjCCAXSgAwIBAgIIMJOqpF6y40wwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzjCCAXSgAwIBAgIIIx3qxdEWprowCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS2KNUGvJzCvjxykINceU9NL/djGAL6 -7QoiRPoY3Lw0JgbQpnVxbH6Ae6tNHZF+6RBYJM8ZNhXZI9/Bu6PIRmsso2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQURt3damtx7JKB -BXjB086Asfy8IYswHwYDVR0jBBgwFoAUucrWpSOd9iHDUQZwwWoVA3JWKT4wCgYI -KoZIzj0EAwIDSAAwRQIgD7D/Txg0RSaTVUjTcQstlhmzIM55dxlRpJiv8qT5+rMC -IQCHHxppRDRqL+QqM6eexcE1lWxewnIGC6ljveOQcXYoQA== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARSzN6e2noEa+z5UbjFJNvCSKSyTNx/ +B0aC+2wbKLc9e9bFz4V6RFd0B+2K9CpZp4o7OEsZS60nj46TDdZaWx3po2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUPSD8QLwGwFQi +USDSs0oh60v9nLIwHwYDVR0jBBgwFoAUkD7pKnucef2zVEHTSw4PsrjsRLIwCgYI +KoZIzj0EAwIDSAAwRQIhAO2StFhjFCddYNUQvzhMiHsJypYiYUBKO8h7wyODh8KL +AiAdahk+OKXVxOTXkd1reZc4CK2v2RXH+tI8xNDlmeCMQA== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/dac-Key.der index 1193c098aaadb0..a2da7d21f7ab28 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/dac-Key.pem index 73afe22c8b0da3..803b4f3391c525 100644 --- a/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEICdnJAw9Rp9pNw9GlvHDQZnvJkMu6qM021syoI+NYjAdoAoGCCqGSM49 -AwEHoUQDQgAEtijVBrycwr48cpCDXHlPTS/3YxgC+u0KIkT6GNy8NCYG0KZ1cWx+ -gHurTR2RfukQWCTPGTYV2SPfwbujyEZrLA== +MHcCAQEEIB0W1S8T5fjhpkkAaIKnG3vFdwxMcqYBa6mOHwBBrLn8oAoGCCqGSM49 +AwEHoUQDQgAEUszentp6BGvs+VG4xSTbwkikskzcfwdGgvtsGyi3PXvWxc+FekRX +dAftivQqWaeKOzhLGUutJ4+Okw3WWlsd6Q== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/pai-Cert.der index 8cd27f45a8d810..df4d907b851ccd 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/pai-Cert.pem index b404977eebf7d7..109d79355af5ff 100644 --- a/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBujCCAWGgAwIBAgIIQw/MBT645L8wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBuzCCAWGgAwIBAgIIfAJDX8UChuwwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBWMBAGByqGSM49AgEGBSuBBAAKA0IA -BEnQeNyjKLu5quBZ7GGJ5q/XPxjj7jXlGJmsISKhKPvScOrtv3zRyj9wZ3/Wq3LB -o6Sti1TlILO0g+Wi18Lhn/mjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYDVR0P -AQH/BAQDAgEGMB0GA1UdDgQWBBS5ytalI532IcNRBnDBahUDclYpPjAfBgNVHSME -GDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNHADBEAiB/d5Ys -vz80gK38377hZJAA/P8XbQOT/vuEO6l9/+gIAQIgGaJzTjdG7KBtEUxX0IwsthL2 -WiItYGNudMAmdjqzT5k= +BI5DQBVJOS27cySx3Y6AEAkScuMtT6JX431PpsWEiF4x8v3uf2F36r36XOwAk6FP +M54hJ1s4Dvsnp7kvHc5fOPujZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0P +AQH/BAQDAgEGMB0GA1UdDgQWBBSQPukqe5x5/bNUQdNLDg+yuOxEsjAfBgNVHSME +GDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiEA7Em3 +CtprvA68ajeJGVYWOYSsTCsgnIkIKAdO3kmxhYICIGet+Nh8wr1RFzm/12PhqrF/ +1mjg8d341KnYlLPNA3qw -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/pai-Key.der index be539e7decddaf..b394fec4a1e21d 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/pai-Key.pem index e51039f408eaed..0483e9ee367d17 100644 --- a/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHQCAQEEIKslfNmHqlLMobAa2IwmiCnC39fDlfRaUCmBs8LhsIOBoAcGBSuBBAAK -oUQDQgAESdB43KMou7mq4FnsYYnmr9c/GOPuNeUYmawhIqEo+9Jw6u2/fNHKP3Bn -f9arcsGjpK2LVOUgs7SD5aLXwuGf+Q== +MHQCAQEEIKW+Fw3wJ8iBr6l7cJiq042uPH3hhDD5nyqk8/6eFlKkoAcGBSuBBAAK +oUQDQgAEjkNAFUk5LbtzJLHdjoAQCRJy4y1PolfjfU+mxYSIXjHy/e5/YXfqvfpc +7ACToU8zniEnWzgO+yenuS8dzl84+w== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/test_case_vector.json index 451d759b9db567..0d4c197d3eab33 100644 --- a/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_sig_curve_secp256k1/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Invalid certificate public key curve secp256k1", "is_success_case": "false", - "dac_cert": "308201ce30820174a00302010202083093aaa45eb2e34c300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004b628d506bc9cc2be3c7290835c794f4d2ff7631802faed0a2244fa18dcbc342606d0a675716c7e807bab4d1d917ee9105824cf193615d923dfc1bba3c8466b2ca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041446dddd6a6b71ec92810578c1d3ce80b1fcbc218b301f0603551d23041830168014b9cad6a5239df621c3510670c16a15037256293e300a06082a8648ce3d040302034800304502200fb0ff4f18344526935548d3710b2d9619b320ce79771951a498aff2a4f9fab3022100871f1a6944346a2fe42a33a79ec5c135956c5ec272060ba963bde39071762840", - "pai_cert": "308201ba30820161a0030201020208430fcc053eb8e4bf300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313056301006072a8648ce3d020106052b8104000a0342000449d078dca328bbb9aae059ec6189e6afd73f18e3ee35e51899ac2122a128fbd270eaedbf7cd1ca3f70677fd6ab72c1a3a4ad8b54e520b3b483e5a2d7c2e19ff9a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414b9cad6a5239df621c3510670c16a15037256293e301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402207f77962cbf3f3480adfcdfbee1649000fcff176d0393fefb843ba97dffe80801022019a2734e3746eca06d114c57d08c2cb612f65a222d60636e74c026763ab34f99", - "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022067c907ca4d5344d2288c15fa8589c7c8bda3080649bf9f7e34c28f236699d4af022100e7755f4a20e7ed726c23637ad273d24b207c20fb94d74344a368e0877b40a4a8", - "dac_private_key": "2767240c3d469f69370f4696f1c34199ef26432eeaa334db5b32a08f8d62301d", - "dac_public_key": "04b628d506bc9cc2be3c7290835c794f4d2ff7631802faed0a2244fa18dcbc342606d0a675716c7e807bab4d1d917ee9105824cf193615d923dfc1bba3c8466b2c" + "dac_cert": "308201ce30820174a0030201020208231deac5d116a6ba300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000452ccde9eda7a046becf951b8c524dbc248a4b24cdc7f074682fb6c1b28b73d7bd6c5cf857a44577407ed8af42a59a78a3b384b194bad278f8e930dd65a5b1de9a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604143d20fc40bc06c054225120d2b34a21eb4bfd9cb2301f0603551d23041830168014903ee92a7b9c79fdb35441d34b0e0fb2b8ec44b2300a06082a8648ce3d0403020348003045022100ed92b4586314275d60d510bf384c887b09ca962261404a3bc87bc3238387c28b02201d6a193e38a5d5c4e4d791dd6b79973808adafd915c7fad23cc4d0e599e08c40", + "pai_cert": "308201bb30820161a00302010202087c02435fc50286ec300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313056301006072a8648ce3d020106052b8104000a034200048e43401549392dbb7324b1dd8e8010091272e32d4fa257e37d4fa6c584885e31f2fdee7f6177eabdfa5cec0093a14f339e21275b380efb27a7b92f1dce5f38fba366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414903ee92a7b9c79fdb35441d34b0e0fb2b8ec44b2301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100ec49b70ada6bbc0ebc6a37891956163984ac4c2b209c890828074ede49b18582022067adf8d87cc2bd511739bfd763e1aab17fd668e0f1ddf8d4a9d894b3cd037ab0", + "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100997d93cafbe9dc75bbd437842e91b433ce8d8b1d7018b6d2999beb50286d28240221009962b260124f74263e49ed4bdf240947d1796c089987b5079e3a8dbf763c0196", + "dac_private_key": "1d16d52f13e5f8e1a649006882a71b7bc5770c4c72a6016ba98e1f0041acb9fc", + "dac_public_key": "0452ccde9eda7a046becf951b8c524dbc248a4b24cdc7f074682fb6c1b28b73d7bd6c5cf857a44577407ed8af42a59a78a3b384b194bad278f8e930dd65a5b1de9" } diff --git a/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/cd.der b/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/cd.der index 27f1da15567edb..89385ffa520882 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/cd.der and b/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/dac-Cert.der index 016ebe730c2aae..a0b9a35183bb05 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/dac-Cert.pem index 4846c1ff63cd06..c94fa70d240504 100644 --- a/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzjCCAXSgAwIBAgIIAamK7x1cTdIwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBzjCCAXSgAwIBAgIIZb0oEtn+N7swCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDEw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASsbpZbC99s0cVg7Wpsisa0ZTjgqL+u -1HcpY3+nqQaggtbB9P6wiF2SKZPSUrcxCNWWIVt4jkBzi7M+1aBBOJWEo2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQU8uE3iC3hc/uF -lf1OiQJo0+k9DpswHwYDVR0jBBgwFoAU8e4rwqoEwPlrrEKVZyGTY6aAFEkwCgYI -KoZIzj0EAwIDSAAwRQIhAIio3nLqXxVUnJJpoxFla3ED3ivCe09iJI5SsOuALYXA -AiA8mw/vD7IDe/38vmwwzwEFAysv+8/oyXIVR8xfgV2QAw== +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQaFYdy6J+BtDnhaimTC3g61er4e+cm +QLkotGKhwyf5J8SGhTjhwl45WrJlRfdmbmis4bm8wPkYMQUG57OeMDPFo2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUlS18tFJZrRMg +6tN69fZN+OLI8y4wHwYDVR0jBBgwFoAU2jtauoMmpbKAU9He6sosyRmlXNYwCgYI +KoZIzj0EAwIDSAAwRQIhALYDFofaHZisfDM3ZLo8+UIOOCnEYW4rLNOgLARYreN9 +AiAA07OZrILAzhZgShH2R24Zun1PKC72v9YcUIip+g048A== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/dac-Key.der index cd26526f364503..349c67721973cd 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/dac-Key.pem index a35cf8ef8a2290..52b7da2faed178 100644 --- a/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIJuS1bh4olkrp3dOFmmK2NJ9ZRvusqujTpXbw/F+bY2loAoGCCqGSM49 -AwEHoUQDQgAErG6WWwvfbNHFYO1qbIrGtGU44Ki/rtR3KWN/p6kGoILWwfT+sIhd -kimT0lK3MQjVliFbeI5Ac4uzPtWgQTiVhA== +MHcCAQEEIJgufXgcb3fs3BpKAut0juCxVgskCI5TCdjmHyBY+4TWoAoGCCqGSM49 +AwEHoUQDQgAEGhWHcuifgbQ54Wopkwt4OtXq+HvnJkC5KLRiocMn+SfEhoU44cJe +OVqyZUX3Zm5orOG5vMD5GDEFBueznjAzxQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/pai-Cert.der index 95e60363a7ea3b..59716bc684dc9f 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/pai-Cert.pem index 74a7442e0245df..06cb8eaa0bacb3 100644 --- a/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvzCCAWSgAwIBAgIIIrNMi7TgqxowCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvzCCAWSgAwIBAgIIJINcet8PS9swCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABKV+lGcPVClXcp55e78Sn6LUFB1VwRKtG+NM+BdxZ3yLz6cSq4uIbhhcyNN3 -KM81OPbSqtM8+icDco2gWOkZzcajZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTx7ivCqgTA+WusQpVnIZNjpoAUSTAfBgNV +A0IABOpb9gzWlLidNhrGmuxHZRfhK5w+B/7u6jSU7spauSwnu/3vXBSYPYAPBldW +KdKnQvkfw8S2zJ0R0vzkpsOtAjyjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTaO1q6gyalsoBT0d7qyizJGaVc1jAfBgNV HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNJADBGAiEA -/10+2Rr8I6nCDGF8a7GP4YOstk9yy740F8K7zgjKJgYCIQDSgzxM/YTyjCC3BVw+ -K8DX9XepnB3Msl5iuMoU6LLAUQ== +41N2IBiehgZDv3M1/h6tw4gk22srGrsIIW6vlYrle28CIQCcTkRF43QvZ0vEVXeJ +KR6DKPuho9oP8pJfgh5cEJAy0A== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/pai-Key.der index 2e7c073427b3f8..cb9c0b42fc0f01 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/pai-Key.pem index e32128c0000ae8..2654608da86662 100644 --- a/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIDos1yoVM69iCZH1cjdT/e5yWGE16UE5JaZXkus5c2QloAoGCCqGSM49 -AwEHoUQDQgAEpX6UZw9UKVdynnl7vxKfotQUHVXBEq0b40z4F3FnfIvPpxKri4hu -GFzI03cozzU49tKq0zz6JwNyjaBY6RnNxg== +MHcCAQEEIChHNbFjpDcHssfz+zaQVGuVJ5qoGvHYJTsKsl/JYXQeoAoGCCqGSM49 +AwEHoUQDQgAE6lv2DNaUuJ02Gsaa7EdlF+ErnD4H/u7qNJTuylq5LCe7/e9cFJg9 +gA8GV1Yp0qdC+R/DxLbMnRHS/OSmw60CPA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/test_case_vector.json index 409a99f9980ff1..37dea3454a72b5 100644 --- a/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_subject_pid_mismatch/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: PID in Subject field doesn't match PID in Issuer field", "is_success_case": "false", - "dac_cert": "308201ce30820174a003020102020801a98aef1d5c4dd2300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030313059301306072a8648ce3d020106082a8648ce3d03010703420004ac6e965b0bdf6cd1c560ed6a6c8ac6b46538e0a8bfaed47729637fa7a906a082d6c1f4feb0885d922993d252b73108d596215b788e40738bb33ed5a041389584a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414f2e137882de173fb8595fd4e890268d3e93d0e9b301f0603551d23041830168014f1ee2bc2aa04c0f96bac429567219363a6801449300a06082a8648ce3d040302034800304502210088a8de72ea5f15549c9269a311656b7103de2bc27b4f62248e52b0eb802d85c002203c9b0fef0fb2037bfdfcbe6c30cf0105032b2ffbcfe8c9721547cc5f815d9003", - "pai_cert": "308201bf30820164a003020102020822b34c8bb4e0ab1a300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004a57e94670f542957729e797bbf129fa2d4141d55c112ad1be34cf81771677c8bcfa712ab8b886e185cc8d37728cf3538f6d2aad33cfa2703728da058e919cdc6a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414f1ee2bc2aa04c0f96bac429567219363a6801449301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100ff5d3ed91afc23a9c20c617c6bb18fe183acb64f72cbbe3417c2bbce08ca2606022100d2833c4cfd84f28c20b7055c3e2bc0d7f577a99c1dccb25e62b8ca14e8b2c051", - "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205018018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100889a248339a7f6c6d1956598ff270dfaef114f5d048eda82dd6ffcbea51b5a3502210080266c4d51feeac0338df36719e143f33cc96b91991c9dc86dad0db255886303", - "dac_private_key": "9b92d5b878a2592ba7774e16698ad8d27d651beeb2aba34e95dbc3f17e6d8da5", - "dac_public_key": "04ac6e965b0bdf6cd1c560ed6a6c8ac6b46538e0a8bfaed47729637fa7a906a082d6c1f4feb0885d922993d252b73108d596215b788e40738bb33ed5a041389584" + "dac_cert": "308201ce30820174a003020102020865bd2812d9fe37bb300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030313059301306072a8648ce3d020106082a8648ce3d030107034200041a158772e89f81b439e16a29930b783ad5eaf87be72640b928b462a1c327f927c4868538e1c25e395ab26545f7666e68ace1b9bcc0f918310506e7b39e3033c5a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414952d7cb45259ad1320ead37af5f64df8e2c8f32e301f0603551d23041830168014da3b5aba8326a5b28053d1deeaca2cc919a55cd6300a06082a8648ce3d0403020348003045022100b6031687da1d98ac7c333764ba3cf9420e3829c4616e2b2cd3a02c0458ade37d022000d3b399ac82c0ce16604a11f6476e19ba7d4f282ef6bfd61c5088a9fa0d38f0", + "pai_cert": "308201bf30820164a003020102020824835c7adf0f4bdb300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d03010703420004ea5bf60cd694b89d361ac69aec476517e12b9c3e07feeeea3494eeca5ab92c27bbfdef5c14983d800f06575629d2a742f91fc3c4b6cc9d11d2fce4a6c3ad023ca366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414da3b5aba8326a5b28053d1deeaca2cc919a55cd6301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100e3537620189e860643bf7335fe1eadc38824db6b2b1abb08216eaf958ae57b6f0221009c4e4445e3742f674bc4557789291e8328fba1a3da0ff2925f821e5c109032d0", + "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205018018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022064e084a8343b1917a7cad97e381a530e76fc9718d4733ddc6bec5dc5ae3f0e17022100ae5865c585fda20d61ce979ccf913daa0eae335ecdd1ceffbcd2a213a95efde5", + "dac_private_key": "982e7d781c6f77ecdc1a4a02eb748ee0b1560b24088e5309d8e61f2058fb84d6", + "dac_public_key": "041a158772e89f81b439e16a29930b783ad5eaf87be72640b928b462a1c327f927c4868538e1c25e395ab26545f7666e68ace1b9bcc0f918310506e7b39e3033c5" } diff --git a/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/cd.der b/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/cd.der index 955eaaa4411922..1a35916f0e1e15 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/cd.der and b/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/dac-Cert.der index 586e0f07bc28d3..d17f881e239827 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/dac-Cert.pem index 12f624dcd22a30..5d2ffab81c57ed 100644 --- a/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzTCCAXSgAwIBAgIIEHeVG6XB7dowCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMjAgFw0yMjA0MjAw +MIIBzjCCAXSgAwIBAgIIf8ziuI8CBNwwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMjAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg REFDMRQwEgYKKwYBBAGConwCAQwERkZGMjEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw -WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASQq3l+BkwNALllfMIPih5HNElzGeb7 -rCF8HuasmvzkcxMTkgj6ddFl159DjrqQmY1GTqFkPtdAWY6EPSoksX1Co2AwXjAM -BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUsSmLZfAw7L2m -5ahK4LNG8YW8sgAwHwYDVR0jBBgwFoAUBU657ArGoG8nagEDRiqfaBW/omwwCgYI -KoZIzj0EAwIDRwAwRAIgH0W/6lDKIYit4IBzA36Vwvwm43EhxiemI/GWbqBt9H0C -IB60LgXIZXX1JF+j5RjeOa+Gqbpivff9eVb4kSjX0eYq +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASL6mZHIyJkidTMs+tm6AgVQru+1vjx +cc7lFCeVW7k2Xd/bjqjZfzmIQGIyr63yXNTKZNKPN33UPh6QB9rCh/L8o2AwXjAM +BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQU7z/3NGrixu5J +AUnKzGYqDl8DbHswHwYDVR0jBBgwFoAUmdXLe5AREtNwFOsnMmB1mnkOn2UwCgYI +KoZIzj0EAwIDSAAwRQIgP4rJXdNl2UJQnAvDm+kgWIlO9UcWBnCaKugqPRyYjmoC +IQCpZRtuB87eQkQlapxJMFoj4BIvq5u/Xcf4vc/y04lGrw== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/dac-Key.der index 6dbd611d1f14d3..9cee875e7774b9 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/dac-Key.pem index 2e2e4f639d17fc..e2a9ed8351a063 100644 --- a/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIGoY7JZm4DMvo3JC+xIFQAn26yLOIJ2ZdGd8VQRt/Bw9oAoGCCqGSM49 -AwEHoUQDQgAEkKt5fgZMDQC5ZXzCD4oeRzRJcxnm+6whfB7mrJr85HMTE5II+nXR -ZdefQ466kJmNRk6hZD7XQFmOhD0qJLF9Qg== +MHcCAQEEIPXTFWjFqpEgb2l4hK8eDt/evQ/2laHrlSKVVSRhkQdgoAoGCCqGSM49 +AwEHoUQDQgAEi+pmRyMiZInUzLPrZugIFUK7vtb48XHO5RQnlVu5Nl3f246o2X85 +iEBiMq+t8lzUymTSjzd91D4ekAfawofy/A== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/pai-Cert.der index 0b4941fec8ae3f..14ebb5c3d2252d 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/pai-Cert.pem index b4035dd99d5923..e6f59453b0a18e 100644 --- a/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvzCCAWSgAwIBAgIIJqhw65Q60iowCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjAw +MIIBvzCCAWSgAwIBAgIIGEjQ/SahnjswCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMjBZMBMGByqGSM49AgEGCCqGSM49AwEH -A0IABFrYCZiYQ/rDOk1cpTmYQmS/Py+SFHy/OkMANEdzHLFkKic+AAsYz0rOxm+l -mmfW/e9Ws3V9K3lzInt0iX+q6U6jZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQFTrnsCsagbydqAQNGKp9oFb+ibDAfBgNV +A0IABBq6lN5/b1eL2Q2rY1SYaC8W4nbFb7lVJ2vbQBIwt+S0rSfuopJIPispHaJ8 +6qXzAhc1FY7UVRs9/A6FJGu7QZ2jZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSZ1ct7kBES03AU6ycyYHWaeQ6fZTAfBgNV HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNJADBGAiEA -hZhZzVaF7sn2kePWeY12JDF1YhyHJY62SZfQHNrStO0CIQDIBPokVZnKqqjCFjI8 -7XtS8OsfrGQ6mN5Cqa5FwIziDw== +jdfDjCnlGWwtKgD4GgeyS4/UmgFsVGzog4BPycTnNZICIQDTa7n22auhlg1IPknV +toniOEOKQ/PtqXwURXpP8mHf/g== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/pai-Key.der index 0b61acbcaee36f..2592543e33a6ce 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/pai-Key.pem index 289d458d1c645d..9a9504d3904509 100644 --- a/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIMvP12jYFcyGgPUSdW+pZ+UD8xHHHXQVxC85tOKSASz1oAoGCCqGSM49 -AwEHoUQDQgAEWtgJmJhD+sM6TVylOZhCZL8/L5IUfL86QwA0R3McsWQqJz4ACxjP -Ss7Gb6WaZ9b971azdX0reXMie3SJf6rpTg== +MHcCAQEEIGn3yFbaUA+mZol8df2PoY7/Ah7zIFvbnm8yiOpMBvgwoAoGCCqGSM49 +AwEHoUQDQgAEGrqU3n9vV4vZDatjVJhoLxbidsVvuVUna9tAEjC35LStJ+6ikkg+ +KykdonzqpfMCFzUVjtRVGz38DoUka7tBnQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/test_case_vector.json index f513af1e28bd83..8f044d5626642a 100644 --- a/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_subject_vid_mismatch/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: VID in Subject field doesn't match VID in Issuer field", "is_success_case": "false", - "dac_cert": "308201cd30820174a00302010202081077951ba5c1edda300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646323020170d3232303432303030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463231143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000490ab797e064c0d00b9657cc20f8a1e4734497319e6fbac217c1ee6ac9afce47313139208fa75d165d79f438eba90998d464ea1643ed740598e843d2a24b17d42a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414b1298b65f030ecbda6e5a84ae0b346f185bcb200301f0603551d23041830168014054eb9ec0ac6a06f276a0103462a9f6815bfa26c300a06082a8648ce3d040302034700304402201f45bfea50ca2188ade08073037e95c2fc26e37121c627a623f1966ea06df47d02201eb42e05c86575f5245fa3e518de39af86a9ba62bdf7fd7956f89128d7d1e62a", - "pai_cert": "308201bf30820164a003020102020826a870eb943ad22a300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432303030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646323059301306072a8648ce3d020106082a8648ce3d030107034200045ad809989843fac33a4d5ca539984264bf3f2f92147cbf3a43003447731cb1642a273e000b18cf4acec66fa59a67d6fdef56b3757d2b7973227b74897faae94ea366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414054eb9ec0ac6a06f276a0103462a9f6815bfa26c301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100859859cd5685eec9f691e3d6798d76243175621c87258eb64997d01cdad2b4ed022100c804fa245599caaaa8c216323ced7b52f0eb1fac643a98de42a9ae45c08ce20f", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f2ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204463044022062c35173cf1e5de1cc0d1628638a6328d51d3515fc9a864307b31cce4b154c550220782b47e6aef81ad40acd0c3baa9cc0684a5a65098e085d080992ac1f90e92a10", - "dac_private_key": "6a18ec9666e0332fa37242fb12054009f6eb22ce209d9974677c55046dfc1c3d", - "dac_public_key": "0490ab797e064c0d00b9657cc20f8a1e4734497319e6fbac217c1ee6ac9afce47313139208fa75d165d79f438eba90998d464ea1643ed740598e843d2a24b17d42" + "dac_cert": "308201ce30820174a00302010202087fcce2b88f0204dc300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646323020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463231143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200048bea664723226489d4ccb3eb66e8081542bbbed6f8f171cee51427955bb9365ddfdb8ea8d97f3988406232afadf25cd4ca64d28f377dd43e1e9007dac287f2fca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414ef3ff7346ae2c6ee490149cacc662a0e5f036c7b301f0603551d2304183016801499d5cb7b901112d37014eb273260759a790e9f65300a06082a8648ce3d040302034800304502203f8ac95dd365d942509c0bc39be92058894ef5471606709a2ae82a3d1c988e6a022100a9651b6e07cede4244256a9c49305a23e0122fab9bbf5dc7f8bdcff2d38946af", + "pai_cert": "308201bf30820164a00302010202081848d0fd26a19e3b300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30303118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c04464646323059301306072a8648ce3d020106082a8648ce3d030107034200041aba94de7f6f578bd90dab635498682f16e276c56fb955276bdb401230b7e4b4ad27eea292483e2b291da27ceaa5f3021735158ed4551b3dfc0e85246bbb419da366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041499d5cb7b901112d37014eb273260759a790e9f65301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203490030460221008dd7c38c29e5196c2d2a00f81a07b24b8fd49a016c546ce883804fc9c4e73592022100d36bb9f6d9aba1960d483e49d5b689e238438a43f3eda97c14457a4ff261dffe", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f2ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044630440220308494c2d41f21fa850b137ae8d3b18c818e3f77cd46552799808ad7e7d791ab022024315c8f6f78530b380fab3f432f77e2723239046a03e6ac4dadbf86ceea8924", + "dac_private_key": "f5d31568c5aa91206f697884af1e0edfdebd0ff695a1eb952295552461910760", + "dac_public_key": "048bea664723226489d4ccb3eb66e8081542bbbed6f8f171cee51427955bb9365ddfdb8ea8d97f3988406232afadf25cd4ca64d28f377dd43e1e9007dac287f2fc" } diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/cd.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/cd.der index ac7f6b4b0c5bfe..ba3dbf3bf442ca 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/cd.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/dac-Cert.der index 9951eedcd29de1..256cafb67e1afa 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/dac-Cert.pem index c38b326ae18b4f..4318e84fe9665b 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB2zCCAYGgAwIBAgIIJWSTHFoTGyIwCgYIKoZIzj0EAwIwPTE7MDkGA1UEAwwy +MIIB2jCCAYGgAwIBAgIIJQ8BuhJNXv0wCgYIKoZIzj0EAwIwPTE7MDkGA1UEAwwy QUNNRSBNYXR0ZXIgRGV2ZWwgUEFJIDVDREE5ODk5IE12aWQ6RkZGMSBNcGlkOjAw -QjEwIBcNMjIwNDI2MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYxGDAWBgNVBAMM +QjEwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYxGDAWBgNVBAMM D01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjExFDASBgorBgEE -AYKifAICDAQwMEIxMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzOyyidrRoEZv -msDnjCDyijl4ep/cBb7Hby1xEiQkCve+cFyqM6e55KG0caqvDlBPrYnVo9Hben+m -FcqOW9q216NgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0O -BBYEFJglK6ltMcHphTlBRaOO5m9PwxU/MB8GA1UdIwQYMBaAFPJ6ElYXhG+6sk7/ -04xJjIrqOJbxMAoGCCqGSM49BAMCA0gAMEUCIE0e+bYs0PZEfw9osBSRq09pX0W6 -rPIhBZ8KoUCAw2j/AiEAhH8YNVEn/JMf+zSDy+WdA4QGRVIJNt2tBDW6/BUY8FY= +AYKifAICDAQwMEIxMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE4waCV1BAhAWt +78SKb433Iy/dOgW1N9cbxW+9CWwH40aec9UhWOwurYe66HEtQHGWbrZrd4KGsuz0 +LvG9XVlJnKNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0O +BBYEFBK9OL690jRmiY8lfdFr7z7u/yZnMB8GA1UdIwQYMBaAFHGDWvcgqiLCZy1t +wbrDqNbGK/N9MAoGCCqGSM49BAMCA0cAMEQCIEFIJriLRnf2vk1xFUAuzq0axPyV +eEc+PGze+XNG9fmcAiAWfymI1uEVpcQcNHE3HFw4abrDkM64VIUeJcnOg09ODg== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/dac-Key.der index 1e5f5e9e716688..59caf986bb91a9 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/dac-Key.pem index 25691ede042346..e1ee5656eea04b 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIKbPXvFnV3sAPKbkLDIOP2iEsCu0HZzuiDubnUJC7UgBoAoGCCqGSM49 -AwEHoUQDQgAEzOyyidrRoEZvmsDnjCDyijl4ep/cBb7Hby1xEiQkCve+cFyqM6e5 -5KG0caqvDlBPrYnVo9Hben+mFcqOW9q21w== +MHcCAQEEIIhKu1RghFNS/kNj172YmDqGy3IicI14x4uL2gVhr0YkoAoGCCqGSM49 +AwEHoUQDQgAE4waCV1BAhAWt78SKb433Iy/dOgW1N9cbxW+9CWwH40aec9UhWOwu +rYe66HEtQHGWbrZrd4KGsuz0LvG9XVlJnA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/pai-Cert.der index c615d491a5b1bc..edbad1c3da59c3 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/pai-Cert.pem index a186767fa4925b..bf2544a68ecde5 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzDCCAXGgAwIBAgIIA5WLXoxgP1owCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIBzDCCAXGgAwIBAgIIBSo15jCWP34wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowPTE7MDkGA1UEAwwyQUNNRSBNYXR0ZXIg RGV2ZWwgUEFJIDVDREE5ODk5IE12aWQ6RkZGMSBNcGlkOjAwQjEwWTATBgcqhkjO -PQIBBggqhkjOPQMBBwNCAAQG22pQ7NQmEZdX2kiEcyIrekzSyjzCoceu1YSn3Fir -mqhOdrwvm8sGV8rMF3b7VpIThocYZwhCabTN8lfu/Ggfo2YwZDASBgNVHRMBAf8E -CDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU8noSVheEb7qyTv/T -jEmMiuo4lvEwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGhcX4wCgYIKoZI -zj0EAwIDSQAwRgIhAOjNEYPFrLNGPEol9t+bKbqnOasaeUWbLE8QzizKfLKcAiEA -mktpm0BoQA3fy4YHLdpN3iM++MHK22OSilKPPa/Px80= +PQIBBggqhkjOPQMBBwNCAAQDBQDpz5rsUCpFh6DtSYS3XrcznmjheBhsVYJHa6W0 +KLDeK7US8kzhTJXybqrAtXVEsJevlaXkgdbk+LTdjYfso2YwZDASBgNVHRMBAf8E +CDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUcYNa9yCqIsJnLW3B +usOo1sYr830wHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGhcX4wCgYIKoZI +zj0EAwIDSQAwRgIhAJ2tpEnJkDNNHvOZvOITJBjqBxpJfXU8SbFiQFH9MchEAiEA +pHjjzDDoPiwBkwfLYtibXAIP/cD2fhFrdPHLwnr+c+U= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/pai-Key.der index 24589775e07298..bcb5ec9f34fb4f 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/pai-Key.pem index c2348fd8baa76a..ab2b9545360216 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIAutAseWnSeHbh/IxsJpRarnRXVUGJ82+lt57ohNWHP1oAoGCCqGSM49 -AwEHoUQDQgAEBttqUOzUJhGXV9pIhHMiK3pM0so8wqHHrtWEp9xYq5qoTna8L5vL -BlfKzBd2+1aSE4aHGGcIQmm0zfJX7vxoHw== +MHcCAQEEINCvNYfpxhh3c3YaxdcTr9yGJ0NeeM5hOXUlbBL6AgkfoAoGCCqGSM49 +AwEHoUQDQgAEAwUA6c+a7FAqRYeg7UmEt163M55o4XgYbFWCR2ultCiw3iu1EvJM +4UyV8m6qwLV1RLCXr5Wl5IHW5Pi03Y2H7A== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/test_case_vector.json index fec0c5e72522d4..2f6f675516c753 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_01/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Fallback VID and PID encoding example from spec: valid and recommended since easily human-readable", "is_success_case": "true", - "dac_cert": "308201db30820181a00302010202082564931c5a131b22300a06082a8648ce3d040302303d313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7669643a46464631204d7069643a303042313020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004ccecb289dad1a0466f9ac0e78c20f28a39787a9fdc05bec76f2d711224240af7be705caa33a7b9e4a1b471aaaf0e504fad89d5a3d1db7a7fa615ca8e5bdab6d7a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041498252ba96d31c1e985394145a38ee66f4fc3153f301f0603551d23041830168014f27a125617846fbab24effd38c498c8aea3896f1300a06082a8648ce3d040302034800304502204d1ef9b62cd0f6447f0f68b01491ab4f695f45baacf221059f0aa14080c368ff022100847f18355127fc931ffb3483cbe59d03840645520936ddad0435bafc1518f056", - "pai_cert": "308201cc30820171a003020102020803958b5e8c603f5a300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a303d313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7669643a46464631204d7069643a303042313059301306072a8648ce3d020106082a8648ce3d0301070342000406db6a50ecd426119757da488473222b7a4cd2ca3cc2a1c7aed584a7dc58ab9aa84e76bc2f9bcb0657cacc1776fb56921386871867084269b4cdf257eefc681fa366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414f27a125617846fbab24effd38c498c8aea3896f1301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100e8cd1183c5acb3463c4a25f6df9b29baa739ab1a79459b2c4f10ce2cca7cb29c0221009a4b699b4068400ddfcb86072dda4dde233ef8c1cadb63928a528f3dafcfc7cd", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100cf6cf48426e5ea170e6ab8d6d480e09f79371d53b988faaf6e33e0319336beb10220315948c43018d4c5ea4390911a90b4b669623fdad630a8269c79071f08f26497", - "dac_private_key": "a6cf5ef167577b003ca6e42c320e3f6884b02bb41d9cee883b9b9d4242ed4801", - "dac_public_key": "04ccecb289dad1a0466f9ac0e78c20f28a39787a9fdc05bec76f2d711224240af7be705caa33a7b9e4a1b471aaaf0e504fad89d5a3d1db7a7fa615ca8e5bdab6d7" + "dac_cert": "308201da30820181a0030201020208250f01ba124d5efd300a06082a8648ce3d040302303d313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7669643a46464631204d7069643a303042313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004e306825750408405adefc48a6f8df7232fdd3a05b537d71bc56fbd096c07e3469e73d52158ec2ead87bae8712d4071966eb66b778286b2ecf42ef1bd5d59499ca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041412bd38bebdd23466898f257dd16bef3eeeff2667301f0603551d2304183016801471835af720aa22c2672d6dc1bac3a8d6c62bf37d300a06082a8648ce3d04030203470030440220414826b88b4677f6be4d7115402ecead1ac4fc9578473e3c6cdef97346f5f99c0220167f2988d6e115a5c41c3471371c5c3869bac390ceb854851e25c9ce834f4e0e", + "pai_cert": "308201cc30820171a0030201020208052a35e630963f7e300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a303d313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7669643a46464631204d7069643a303042313059301306072a8648ce3d020106082a8648ce3d03010703420004030500e9cf9aec502a4587a0ed4984b75eb7339e68e178186c5582476ba5b428b0de2bb512f24ce14c95f26eaac0b57544b097af95a5e481d6e4f8b4dd8d87eca366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041471835af720aa22c2672d6dc1bac3a8d6c62bf37d301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203490030460221009dada449c990334d1ef399bce2132418ea071a497d753c49b1624051fd31c844022100a478e3cc30e83e2c019307cb62d89b5c020ffdc0f67e116b74f1cbc27afe73e5", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502203641ad984edbc0bdf36b2143c947598a8e3b820e7bf58bf929d3f5e28757bb2a02210097c0a454560f582feb510f583b2702abb03c549fb8ae3d8aefdf3d9b35f37628", + "dac_private_key": "884abb5460845352fe4363d7bd98983a86cb7222708d78c78b8bda0561af4624", + "dac_public_key": "04e306825750408405adefc48a6f8df7232fdd3a05b537d71bc56fbd096c07e3469e73d52158ec2ead87bae8712d4071966eb66b778286b2ecf42ef1bd5d59499c" } diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/cd.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/cd.der index 065d2501c4b43c..3b3d2b30f0f64e 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/cd.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/dac-Cert.der index f3537cdc6f2ddc..ef9a48dccc52aa 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/dac-Cert.pem index 538c17533a78a7..7e500f9f72b0bb 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB2jCCAYGgAwIBAgIIRMPXZ3PmGeYwCgYIKoZIzj0EAwIwPTE7MDkGA1UEAwwy +MIIB3DCCAYGgAwIBAgIIRSr32TMsfK4wCgYIKoZIzj0EAwIwPTE7MDkGA1UEAwwy QUNNRSBNYXR0ZXIgRGV2ZWwgUEFJIDVDREE5ODk5IE1waWQ6MDBCMSBNdmlkOkZG -RjEwIBcNMjIwNDI2MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYxGDAWBgNVBAMM +RjEwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYxGDAWBgNVBAMM D01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjExFDASBgorBgEE -AYKifAICDAQwMEIxMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEDjJBlKbsn0Zy -E76fMVrcDL/7Bt4BH/dfwxD51ruARr6nJgyQM1KTTiBa/qfUsmBeiGau3El0T2Qx -/GDg8h0vd6NgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0O -BBYEFOsEP9dm5Pcz0f24dY1LAINWw+hRMB8GA1UdIwQYMBaAFLAKSO4ly46iX5Vn -6yrKMS+sMKZQMAoGCCqGSM49BAMCA0cAMEQCIDlqS0tY/nZ73BTw7HiwABHAJZmX -oxkiSvvglBdRWYA1AiA3xfwqOCN8vy2MVpLdxal6Q8whAcpXlCa1sxcy/D7EeQ== +AYKifAICDAQwMEIxMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEjTyZCFWvDPDc +iPHH2E9kUVUp0mv/OFnUqA/xtpOngOAQLUzszB8BGoD7zhvB0mIbgA6sL1fqz3y2 +H/cQRwQdLKNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0O +BBYEFIpaTyaLLTgVyg6MTN9PjilFsH9PMB8GA1UdIwQYMBaAFNIp6YRrCiX6XLQM +/auOI7y02UAvMAoGCCqGSM49BAMCA0kAMEYCIQDVDtvd6eHSye6MYsfrvJwbusNs +62b44pltj24nz/ZxaAIhAJEIL5AfbF8DnIqqXO6Z5EraBcLI9d+6qhzBuE0/4zjV -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/dac-Key.der index 605662e7d86f5a..3a0e00a7731926 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/dac-Key.pem index 6a9d99bdbd09af..30574de7c23f88 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIC5W9Q79UVpUu0Hs+bOwDxiFyK4PqgvYYrE5eT6y6U5koAoGCCqGSM49 -AwEHoUQDQgAEDjJBlKbsn0ZyE76fMVrcDL/7Bt4BH/dfwxD51ruARr6nJgyQM1KT -TiBa/qfUsmBeiGau3El0T2Qx/GDg8h0vdw== +MHcCAQEEIFSg7brMRus0m10zqYtzel9jf5wcDcT0tzzYJ4GfP4LfoAoGCCqGSM49 +AwEHoUQDQgAEjTyZCFWvDPDciPHH2E9kUVUp0mv/OFnUqA/xtpOngOAQLUzszB8B +GoD7zhvB0mIbgA6sL1fqz3y2H/cQRwQdLA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/pai-Cert.der index e3ef2c59806e7e..875966b6e473ad 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/pai-Cert.pem index f991b111a24358..5b1172dc2ffcdd 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIByzCCAXGgAwIBAgIIaA2BrelEAHQwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIByjCCAXGgAwIBAgIIcRGsn3kMJNMwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowPTE7MDkGA1UEAwwyQUNNRSBNYXR0ZXIg RGV2ZWwgUEFJIDVDREE5ODk5IE1waWQ6MDBCMSBNdmlkOkZGRjEwWTATBgcqhkjO -PQIBBggqhkjOPQMBBwNCAARFYW4gYKDnKFbkSOfIFmM3MnEptgOh1xk9Gt4MxLwR -mJ4W5IvEdbx6VSK7aB72QTeBrXtASPGbKVUqXX6k0y4zo2YwZDASBgNVHRMBAf8E -CDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUsApI7iXLjqJflWfr -KsoxL6wwplAwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGhcX4wCgYIKoZI -zj0EAwIDSAAwRQIgP4xhZR9SMTgihef6DXpjxCL7B9iWtRu+wOHS3X/wPrgCIQCH -MHjxq4XL0pRlfDS2WHID0ObJhyvetJ2aoXZFcKlamA== +PQIBBggqhkjOPQMBBwNCAAQEW8fuxTDaFRIaGXuClhlDrJE7eekrRD6sxMoSWcOv +vBCxG/7HWvJb9/J8jleBmOzaupkSddyKdmgATxlWfBOoo2YwZDASBgNVHRMBAf8E +CDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU0inphGsKJfpctAz9 +q44jvLTZQC8wHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGhcX4wCgYIKoZI +zj0EAwIDRwAwRAIgF2lB0p7YK9sDrCF4n82DaWVO5InosE7aN24c0ABhkkcCIAI3 +/i/w4TUDlsuxgpJajEKM0R1FmCdANUsgzSWALxL7 -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/pai-Key.der index 8a6011fadfdc07..ef8797c003990f 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/pai-Key.pem index 0f4a052627fb5e..f3bc7e97a14829 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIMwXelSwd1QCXyTg9c6Qu1lZxeUMJcvCnQ2laZMOQGF4oAoGCCqGSM49 -AwEHoUQDQgAERWFuIGCg5yhW5EjnyBZjNzJxKbYDodcZPRreDMS8EZieFuSLxHW8 -elUiu2ge9kE3ga17QEjxmylVKl1+pNMuMw== +MHcCAQEEIOS2J5rx6Y6X27GgiuTcd5WVPgt/SIqLqHaEwPlYbyi0oAoGCCqGSM49 +AwEHoUQDQgAEBFvH7sUw2hUSGhl7gpYZQ6yRO3npK0Q+rMTKElnDr7wQsRv+x1ry +W/fyfI5XgZjs2rqZEnXcinZoAE8ZVnwTqA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/test_case_vector.json index ecea932cea0169..ab5edb61f2e233 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_02/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Fallback VID and PID encoding example from spec: valid and recommended since easily human-readable", "is_success_case": "true", - "dac_cert": "308201da30820181a003020102020844c3d76773e619e6300a06082a8648ce3d040302303d313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7069643a30304231204d7669643a464646313020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200040e324194a6ec9f467213be9f315adc0cbffb06de011ff75fc310f9d6bb8046bea7260c903352934e205afea7d4b2605e8866aedc49744f6431fc60e0f21d2f77a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414eb043fd766e4f733d1fdb8758d4b008356c3e851301f0603551d23041830168014b00a48ee25cb8ea25f9567eb2aca312fac30a650300a06082a8648ce3d04030203470030440220396a4b4b58fe767bdc14f0ec78b00011c0259997a319224afbe0941751598035022037c5fc2a38237cbf2d8c5692ddc5a97a43cc2101ca579426b5b31732fc3ec479", - "pai_cert": "308201cb30820171a0030201020208680d81ade9440074300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a303d313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7069643a30304231204d7669643a464646313059301306072a8648ce3d020106082a8648ce3d0301070342000445616e2060a0e72856e448e7c8166337327129b603a1d7193d1ade0cc4bc11989e16e48bc475bc7a5522bb681ef6413781ad7b4048f19b29552a5d7ea4d32e33a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414b00a48ee25cb8ea25f9567eb2aca312fac30a650301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502203f8c61651f5231382285e7fa0d7a63c422fb07d896b51bbec0e1d2dd7ff03eb8022100873078f1ab85cbd294657c34b6587203d0e6c9872bdeb49d9aa1764570a95a98", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022029431f456f6300daa80ee3ed50efeeae7859c60e359a5747e3382581bc2e6975022100a880db22d4ab21c0ce31d1151fcabc94dcc84c7b0559c141628eaa8795254b93", - "dac_private_key": "2e56f50efd515a54bb41ecf9b3b00f1885c8ae0faa0bd862b139793eb2e94e64", - "dac_public_key": "040e324194a6ec9f467213be9f315adc0cbffb06de011ff75fc310f9d6bb8046bea7260c903352934e205afea7d4b2605e8866aedc49744f6431fc60e0f21d2f77" + "dac_cert": "308201dc30820181a0030201020208452af7d9332c7cae300a06082a8648ce3d040302303d313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7069643a30304231204d7669643a464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200048d3c990855af0cf0dc88f1c7d84f64515529d26bff3859d4a80ff1b693a780e0102d4ceccc1f011a80fbce1bc1d2621b800eac2f57eacf7cb61ff71047041d2ca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604148a5a4f268b2d3815ca0e8c4cdf4f8e2945b07f4f301f0603551d23041830168014d229e9846b0a25fa5cb40cfdab8e23bcb4d9402f300a06082a8648ce3d0403020349003046022100d50edbdde9e1d2c9ee8c62c7ebbc9c1bbac36ceb66f8e2996d8f6e27cff6716802210091082f901f6c5f039c8aaa5cee99e44ada05c2c8f5dfbaaa1cc1b84d3fe338d5", + "pai_cert": "308201ca30820171a00302010202087111ac9f790c24d3300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a303d313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7069643a30304231204d7669643a464646313059301306072a8648ce3d020106082a8648ce3d03010703420004045bc7eec530da15121a197b82961943ac913b79e92b443eacc4ca1259c3afbc10b11bfec75af25bf7f27c8e578198ecdaba991275dc8a7668004f19567c13a8a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414d229e9846b0a25fa5cb40cfdab8e23bcb4d9402f301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203470030440220176941d29ed82bdb03ac21789fcd8369654ee489e8b04eda376e1cd00061924702200237fe2ff0e1350396cbb182925a8c428cd11d45982740354b20cd25802f12fb", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502206b74df493b9ca0a065479875a6683fddbcdcd970a49993c077d86e382f01fafb022100e53d990f06e9e5346af91282e79127a66888fb917b008c5f356d753d2da514af", + "dac_private_key": "54a0edbacc46eb349b5d33a98b737a5f637f9c1c0dc4f4b73cd827819f3f82df", + "dac_public_key": "048d3c990855af0cf0dc88f1c7d84f64515529d26bff3859d4a80ff1b693a780e0102d4ceccc1f011a80fbce1bc1d2621b800eac2f57eacf7cb61ff71047041d2c" } diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/cd.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/cd.der index 5b676aa358cc7f..a71e397cbfe623 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/cd.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/dac-Cert.der index 0a7182f9b4a47a..a9a061b9fb7dfa 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/dac-Cert.pem index 65d5cc54515508..fc8d197df5f048 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB2jCCAYGgAwIBAgIIdhrM0vpKbn4wCgYIKoZIzj0EAwIwPTE7MDkGA1UEAwwy +MIIB2zCCAYGgAwIBAgIIbDoRHJptM2owCgYIKoZIzj0EAwIwPTE7MDkGA1UEAwwy TXBpZDowMEIxLEFDTUUgTWF0dGVyIERldmVsIFBBSSA1Q0RBOTg5OSxNdmlkOkZG -RjEwIBcNMjIwNDI2MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYxGDAWBgNVBAMM +RjEwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYxGDAWBgNVBAMM D01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjExFDASBgorBgEE -AYKifAICDAQwMEIxMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEY+o/ejueqTD3 -OlD9FbhWiS2td/6GzvnyS1paOqxYb1EOBgvEih75iIveqScrbumVRPL5Y8FSShms -dSPhauQ2GqNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0O -BBYEFABv5OT3JDNw26+XIvMRT0x0NUnAMB8GA1UdIwQYMBaAFGfHAhJMp+BHhrbb -5dgW4v3TrAI9MAoGCCqGSM49BAMCA0cAMEQCIEF4S2EQ7r3chtxfD/nmvrOFHDZL -FKWKk4eViSTUt6O9AiB2w0NXSmp2ODVJ8LZcZ2KX124l1OwWhCsa2mx7UFMI6w== +AYKifAICDAQwMEIxMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE5kNRKFkgTVQm +lUUEFFlT6h4qpmRpy5FlOMyuMLxZThDuXaWWj/E09ynFU+hFi7KUHdpG/UFWrSLP +n/b/jvtJ/qNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0O +BBYEFOuM5KrFBj5dJiV+CSpzNatWObLKMB8GA1UdIwQYMBaAFLX14b8OX7PZoJhn +u1VQn9EATW9PMAoGCCqGSM49BAMCA0gAMEUCIQChMDDz6QHZpNj66XGAHmyRHv2M +z63+FY0r8sX3xmr9IQIgfQexyUtDCUJsDe7hHyx8wtzU5Bdn8KMGzbc+f1s/fr4= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/dac-Key.der index 33787ace308dcf..a2b5af1a133871 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/dac-Key.pem index ecabcc51aa1634..e4c07e96784a9c 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIJk13nv5gcRvSc8DoKdKGSW3bEWQtOCcsQVaa4neYrVsoAoGCCqGSM49 -AwEHoUQDQgAEY+o/ejueqTD3OlD9FbhWiS2td/6GzvnyS1paOqxYb1EOBgvEih75 -iIveqScrbumVRPL5Y8FSShmsdSPhauQ2Gg== +MHcCAQEEILoI1YGd8tA5tymjFpeE+8CF4jlV/M4cKbCDxxhfGUrnoAoGCCqGSM49 +AwEHoUQDQgAE5kNRKFkgTVQmlUUEFFlT6h4qpmRpy5FlOMyuMLxZThDuXaWWj/E0 +9ynFU+hFi7KUHdpG/UFWrSLPn/b/jvtJ/g== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/pai-Cert.der index 67f8b2700e3ffa..dbc422480bac19 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/pai-Cert.pem index fd49f7170fd0e7..e5127c6c9a1fc2 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzDCCAXGgAwIBAgIIbtFAKVfeaS0wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIBzDCCAXGgAwIBAgIIUrZHsnmd2zMwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowPTE7MDkGA1UEAwwyTXBpZDowMEIxLEFD TUUgTWF0dGVyIERldmVsIFBBSSA1Q0RBOTg5OSxNdmlkOkZGRjEwWTATBgcqhkjO -PQIBBggqhkjOPQMBBwNCAATgYZeGkDKGF/WkNylbIDtlDeePCsRWgcy1ajH+1s9h -4rPu3G1F8X9agzpwbwQucmikZ4MFESoP/xcqaXf/cVVgo2YwZDASBgNVHRMBAf8E -CDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUZ8cCEkyn4EeGttvl -2Bbi/dOsAj0wHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGhcX4wCgYIKoZI -zj0EAwIDSQAwRgIhALZ2x5tTVUge/r17tB8h6MYvvYwNwFNor1h96pU9la4MAiEA -/dp4DAz182k5O/0mMRxE+ph142zz6YqeKYTi44BAAG8= +PQIBBggqhkjOPQMBBwNCAARkuAa9PJkZo620a8oOmVu1pansHve4FJCi3umwiHZG +VA8zSsiq0N3hqkEL/v1BI6Dg4s4jGgQCnmeMZY7IKMgyo2YwZDASBgNVHRMBAf8E +CDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtfXhvw5fs9mgmGe7 +VVCf0QBNb08wHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGhcX4wCgYIKoZI +zj0EAwIDSQAwRgIhAJnk/HPwTyTuphvB5DN8i0uBtNLLDw8rQDAsEsYIuqvAAiEA +7aNv6ZQmjGd1X7KknM1CrszJ9PgAG5vdpc1Vdl7cMac= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/pai-Key.der index fed6e7d37092ad..58b48f76f0ed23 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/pai-Key.pem index 80fc4e7291dd3e..dcca4efe6089b8 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIFVYA7mysZJF6hirtCnAsGw1xkTv+OdQudwmHzy9o9WhoAoGCCqGSM49 -AwEHoUQDQgAE4GGXhpAyhhf1pDcpWyA7ZQ3njwrEVoHMtWox/tbPYeKz7txtRfF/ -WoM6cG8ELnJopGeDBREqD/8XKml3/3FVYA== +MHcCAQEEILTt50iAKSuvk860mMsWk89YIDh6UtGbR8AXH121Cez6oAoGCCqGSM49 +AwEHoUQDQgAEZLgGvTyZGaOttGvKDplbtaWp7B73uBSQot7psIh2RlQPM0rIqtDd +4apBC/79QSOg4OLOIxoEAp5njGWOyCjIMg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/test_case_vector.json index cf61bfb1b5b094..9ef2e60ee03f5b 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_03/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Fallback VID and PID encoding example from spec: valid example showing that order or separators are not considered at all for the overall validity of the embedded fields", "is_success_case": "true", - "dac_cert": "308201da30820181a0030201020208761accd2fa4a6e7e300a06082a8648ce3d040302303d313b303906035504030c324d7069643a303042312c41434d45204d617474657220446576656c205041492035434441393839392c4d7669643a464646313020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d0301070342000463ea3f7a3b9ea930f73a50fd15b856892dad77fe86cef9f24b5a5a3aac586f510e060bc48a1ef9888bdea9272b6ee99544f2f963c1524a19ac7523e16ae4361aa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414006fe4e4f7243370dbaf9722f3114f4c743549c0301f0603551d2304183016801467c702124ca7e04786b6dbe5d816e2fdd3ac023d300a06082a8648ce3d0403020347003044022041784b6110eebddc86dc5f0ff9e6beb3851c364b14a58a9387958924d4b7a3bd022076c343574a6a76383549f0b65c676297d76e25d4ec16842b1ada6c7b505308eb", - "pai_cert": "308201cc30820171a00302010202086ed1402957de692d300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a303d313b303906035504030c324d7069643a303042312c41434d45204d617474657220446576656c205041492035434441393839392c4d7669643a464646313059301306072a8648ce3d020106082a8648ce3d03010703420004e061978690328617f5a437295b203b650de78f0ac45681ccb56a31fed6cf61e2b3eedc6d45f17f5a833a706f042e7268a4678305112a0fff172a6977ff715560a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e0416041467c702124ca7e04786b6dbe5d816e2fdd3ac023d301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100b676c79b5355481efebd7bb41f21e8c62fbd8c0dc05368af587dea953d95ae0c022100fdda780c0cf5f369393bfd26311c44fa9875e36cf3e98a9e2984e2e38040006f", - "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044830460221009c5b3aaf0d6b791fc2e6a0bff4d2a89a1a4cc6a26dc2e0170251770abedeed15022100a6eb35c80095141e1313aaa533af268fd85e33d7a9622fa609447a34ce1cb166", - "dac_private_key": "9935de7bf981c46f49cf03a0a74a1925b76c4590b4e09cb1055a6b89de62b56c", - "dac_public_key": "0463ea3f7a3b9ea930f73a50fd15b856892dad77fe86cef9f24b5a5a3aac586f510e060bc48a1ef9888bdea9272b6ee99544f2f963c1524a19ac7523e16ae4361a" + "dac_cert": "308201db30820181a00302010202086c3a111c9a6d336a300a06082a8648ce3d040302303d313b303906035504030c324d7069643a303042312c41434d45204d617474657220446576656c205041492035434441393839392c4d7669643a464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004e643512859204d5426954504145953ea1e2aa66469cb916538ccae30bc594e10ee5da5968ff134f729c553e8458bb2941dda46fd4156ad22cf9ff6ff8efb49fea360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414eb8ce4aac5063e5d26257e092a7335ab5639b2ca301f0603551d23041830168014b5f5e1bf0e5fb3d9a09867bb55509fd1004d6f4f300a06082a8648ce3d0403020348003045022100a13030f3e901d9a4d8fae971801e6c911efd8ccfadfe158d2bf2c5f7c66afd2102207d07b1c94b4309426c0deee11f2c7cc2dcd4e41767f0a306cdb73e7f5b3f7ebe", + "pai_cert": "308201cc30820171a003020102020852b647b2799ddb33300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a303d313b303906035504030c324d7069643a303042312c41434d45204d617474657220446576656c205041492035434441393839392c4d7669643a464646313059301306072a8648ce3d020106082a8648ce3d0301070342000464b806bd3c9919a3adb46bca0e995bb5a5a9ec1ef7b81490a2dee9b0887646540f334ac8aad0dde1aa410bfefd4123a0e0e2ce231a04029e678c658ec828c832a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414b5f5e1bf0e5fb3d9a09867bb55509fd1004d6f4f301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034900304602210099e4fc73f04f24eea61bc1e4337c8b4b81b4d2cb0f0f2b40302c12c608baabc0022100eda36fe994268c67755fb2a49ccd42aeccc9f4f8001b9bdda5cd55765edc31a7", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502204d6e869077f79342614d874ef913fce673120a24f025318379d62a42910d8e1e022100ff315391ac8bd063c2c7ce0d998fd2e9d5a3aa25b88709e978a4620cbe7ca19e", + "dac_private_key": "ba08d5819df2d039b729a3169784fbc085e23955fcce1c29b083c7185f194ae7", + "dac_public_key": "04e643512859204d5426954504145953ea1e2aa66469cb916538ccae30bc594e10ee5da5968ff134f729c553e8458bb2941dda46fd4156ad22cf9ff6ff8efb49fe" } diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/cd.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/cd.der index d9a64470e1f146..3cb845a2758347 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/cd.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/dac-Cert.der index 0fc1b56b0e9bea..12639edaf79e2a 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/dac-Cert.pem index 375b53b19ae085..ce4ffc10dab7d7 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB2TCCAYCgAwIBAgIISz4jQKYEhbQwCgYIKoZIzj0EAwIwPDE6MDgGA1UEAwwx +MIIB2jCCAYCgAwIBAgIIHTvu4E8T1MwwCgYIKoZIzj0EAwIwPDE6MDgGA1UEAwwx QUNNRSBNYXR0ZXIgRGV2ZWwgUEFJIDVDREE5ODk5IE12aWQ6RkZGMU1waWQ6MDBC -MTAgFw0yMjA0MjYwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwP +MTAgFw0yMjA1MjcwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgREFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDAwQjEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARCAbHwhHx7NO8a -9G4t5iOaZO1eUk0rCp6JqN7cg5aDt9zP7SZ2WFrEv2K0xbGcgYFFMQDj08e6fjKN -PNGySW/Mo2AwXjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4E -FgQU907/Shbf8N6a20JgWZm6Z7BYdqYwHwYDVR0jBBgwFoAUUeeFcbyYiKv+h14B -93huj1U9Ns4wCgYIKoZIzj0EAwIDRwAwRAIgK02xc0Jn2M/SzQ4AqfZNPyVGN3D0 -9NFOp3yeyCaAnQcCIA9D+lyVsl8PIAPjo84WtJgbl6i4cYHN5NsadEDOnxUD +gqJ8AgIMBDAwQjEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQC4PoBPFEAD61c +FSCV7xdu8EFql3lY05+t+Ae/ZPPNIsy1A0SlboBFkqW1QKuTFSrkxvzeT3PZAzEl +0udUDXCBo2AwXjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4E +FgQUoU/d6L2t24YSYJHk4dMqmF3vdocwHwYDVR0jBBgwFoAUbE46IDCwBpmp2bc3 +Kzd5A0NTKT4wCgYIKoZIzj0EAwIDSAAwRQIgBgJ4fRZfj2saAxFbxubxONRT0/BO +hbrc2j4C68/dN7QCIQDwGpJrnFvgAPi7dx1LMt8/bt/2humvZxwGEQkYUTytyA== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/dac-Key.der index b07ed544a57b5e..83a6caba98a9c5 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/dac-Key.pem index 80e11d941da0b1..9d6b8a062aa6c8 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIOlvBBNBR3y0HvqHT8HxORxc1vmLKyZXUh20aAUqt3aqoAoGCCqGSM49 -AwEHoUQDQgAEQgGx8IR8ezTvGvRuLeYjmmTtXlJNKwqeiaje3IOWg7fcz+0mdlha -xL9itMWxnIGBRTEA49PHun4yjTzRsklvzA== +MHcCAQEEIBSUU08XVU3a47XNtiMpJKEvYggzg+8sH+8HgGx35jnloAoGCCqGSM49 +AwEHoUQDQgAEAuD6ATxRAA+tXBUgle8XbvBBapd5WNOfrfgHv2TzzSLMtQNEpW6A +RZKltUCrkxUq5Mb83k9z2QMxJdLnVA1wgQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/pai-Cert.der index 05dac3e5c03328..d0f69e485315aa 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/pai-Cert.pem index fc684df5c03c8a..c7512914151fac 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIByjCCAXCgAwIBAgIICYnn4yHkPDIwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIByjCCAXCgAwIBAgIIFOLcZBy+5tYwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowPDE6MDgGA1UEAwwxQUNNRSBNYXR0ZXIg RGV2ZWwgUEFJIDVDREE5ODk5IE12aWQ6RkZGMU1waWQ6MDBCMTBZMBMGByqGSM49 -AgEGCCqGSM49AwEHA0IABHsdr5vAG9ATHJW5aFmVP3DXJerjmyIda2XomjZBa0bK -8KV1jaoneQDW6vRVMbiu4wy0HOYTK5K4zFCAXCv/6VmjZjBkMBIGA1UdEwEB/wQI -MAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRR54VxvJiIq/6HXgH3 -eG6PVT02zjAfBgNVHSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjO -PQQDAgNIADBFAiEAwWiVk5YtfnnU6IlZ2EdAznVf7HfkEqFdL4o1Xuk4GNQCIGps -DQ2ATk1yWPOy0rpE/hOwm+B2I4MTlM8dPK48lQLm +AgEGCCqGSM49AwEHA0IABBpwCLkuV61oc43ZyTvNEfZaM1QSp4tPs0NQkYyEIXY5 +oQYkkxFl+fx/QB7/uoxVCXzoY9/jVvVxdVfoFCQzq4GjZjBkMBIGA1UdEwEB/wQI +MAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRsTjogMLAGmanZtzcr +N3kDQ1MpPjAfBgNVHSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjO +PQQDAgNIADBFAiBfhmPZdDcVaxj1ZT5idjUa3upFaIAePFEEfWQXddC8rwIhAKAI +/Jm2gDTPaEElgffXpGi46kGpuLcwPUsPD45GDez4 -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/pai-Key.der index a1fdb37a2ddd4a..8265546c7e85d5 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/pai-Key.pem index 551c68e53d42af..c45b0b536a15dd 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEICShO6KDwKb7mREJnZFruaMQ1PSTwhe+Q+SHvcQKtWrkoAoGCCqGSM49 -AwEHoUQDQgAEex2vm8Ab0BMclbloWZU/cNcl6uObIh1rZeiaNkFrRsrwpXWNqid5 -ANbq9FUxuK7jDLQc5hMrkrjMUIBcK//pWQ== +MHcCAQEEIPnf8aTRS4hrKdMGL7VOPPx2emNjUAynRwomOpEstu2hoAoGCCqGSM49 +AwEHoUQDQgAEGnAIuS5XrWhzjdnJO80R9lozVBKni0+zQ1CRjIQhdjmhBiSTEWX5 +/H9AHv+6jFUJfOhj3+NW9XF1V+gUJDOrgQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/test_case_vector.json index 63a61008e06485..5bc5d706bdb173 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_04/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Fallback VID and PID encoding example from spec: valid, but less readable", "is_success_case": "true", - "dac_cert": "308201d930820180a00302010202084b3e2340a60485b4300a06082a8648ce3d040302303c313a303806035504030c3141434d45204d617474657220446576656c20504149203543444139383939204d7669643a464646314d7069643a303042313020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200044201b1f0847c7b34ef1af46e2de6239a64ed5e524d2b0a9e89a8dedc839683b7dccfed2676585ac4bf62b4c5b19c8181453100e3d3c7ba7e328d3cd1b2496fcca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414f74eff4a16dff0de9adb42605999ba67b05876a6301f0603551d2304183016801451e78571bc9888abfe875e01f7786e8f553d36ce300a06082a8648ce3d040302034700304402202b4db1734267d8cfd2cd0e00a9f64d3f25463770f4f4d14ea77c9ec826809d0702200f43fa5c95b25f0f2003e3a3ce16b4981b97a8b87181cde4db1a7440ce9f1503", - "pai_cert": "308201ca30820170a00302010202080989e7e321e43c32300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a303c313a303806035504030c3141434d45204d617474657220446576656c20504149203543444139383939204d7669643a464646314d7069643a303042313059301306072a8648ce3d020106082a8648ce3d030107034200047b1daf9bc01bd0131c95b96859953f70d725eae39b221d6b65e89a36416b46caf0a5758daa277900d6eaf45531b8aee30cb41ce6132b92b8cc50805c2bffe959a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e0416041451e78571bc9888abfe875e01f7786e8f553d36ce301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100c1689593962d7e79d4e88959d84740ce755fec77e412a15d2f8a355ee93818d402206a6c0d0d804e4d7258f3b2d2ba44fe13b09be07623831394cf1d3cae3c9502e6", - "certification_declaration": "3081e706092a864886f70d010702a081d93081d6020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204463044022051705b5e1cafae17429cab045bd72ddeb367c42fb0885db889f31f4173f7c7ff02205588e0de8417d085581ad20b8356f8eee2be0b43915e5754676585332d25d244", - "dac_private_key": "e96f041341477cb41efa874fc1f1391c5cd6f98b2b2657521db468052ab776aa", - "dac_public_key": "044201b1f0847c7b34ef1af46e2de6239a64ed5e524d2b0a9e89a8dedc839683b7dccfed2676585ac4bf62b4c5b19c8181453100e3d3c7ba7e328d3cd1b2496fcc" + "dac_cert": "308201da30820180a00302010202081d3beee04f13d4cc300a06082a8648ce3d040302303c313a303806035504030c3141434d45204d617474657220446576656c20504149203543444139383939204d7669643a464646314d7069643a303042313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d0301070342000402e0fa013c51000fad5c152095ef176ef0416a977958d39fadf807bf64f3cd22ccb50344a56e804592a5b540ab93152ae4c6fcde4f73d9033125d2e7540d7081a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414a14fdde8bdaddb86126091e4e1d32a985def7687301f0603551d230418301680146c4e3a2030b00699a9d9b7372b3779034353293e300a06082a8648ce3d040302034800304502200602787d165f8f6b1a03115bc6e6f138d453d3f04e85badcda3e02ebcfdd37b4022100f01a926b9c5be000f8bb771d4b32df3f6edff686e9af671c06110918513cadc8", + "pai_cert": "308201ca30820170a003020102020814e2dc641cbee6d6300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a303c313a303806035504030c3141434d45204d617474657220446576656c20504149203543444139383939204d7669643a464646314d7069643a303042313059301306072a8648ce3d020106082a8648ce3d030107034200041a7008b92e57ad68738dd9c93bcd11f65a335412a78b4fb34350918c84217639a10624931165f9fc7f401effba8c55097ce863dfe356f5717557e8142433ab81a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604146c4e3a2030b00699a9d9b7372b3779034353293e301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502205f8663d97437156b18f5653e6276351adeea4568801e3c51047d641775d0bcaf022100a008fc99b68034cf68412581f7d7a468b8ea41a9b8b7303d4b0f0f8e460decf8", + "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100b8c4643d9fce2dd67e314ec2f941716e5c7ba57a2d29d001f49626bc89e63eff02210085890e9a0b49f6c43ee73b84cd32d7e753ed2660ac6363f8d16857186b48c524", + "dac_private_key": "1494534f17554ddae3b5cdb6232924a12f62083383ef2c1fef07806c77e639e5", + "dac_public_key": "0402e0fa013c51000fad5c152095ef176ef0416a977958d39fadf807bf64f3cd22ccb50344a56e804592a5b540ab93152ae4c6fcde4f73d9033125d2e7540d7081" } diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/cd.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/cd.der index 56471dc1fe00ad..0da9fe3f6fda79 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/cd.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/dac-Cert.der index 95a09623105aed..307702f3cd8086 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/dac-Cert.pem index 5b75f40191d7b6..c649e70e5276c3 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB2TCCAX+gAwIBAgIIEfL1+DrVPVQwCgYIKoZIzj0EAwIwOzE5MDcGA1UEAwww +MIIB2jCCAX+gAwIBAgIIMTHLnqc7KtwwCgYIKoZIzj0EAwIwOzE5MDcGA1UEAwww TXZpZDpGRkYxQUNNRSBNYXR0ZXIgRGV2ZWwgUEFJIDVDREFNcGlkOjAwQjE5ODk5 -MCAXDTIyMDQyNjAwMDAwMFoYDzk5OTkxMjMxMjM1OTU5WjBGMRgwFgYDVQQDDA9N +MCAXDTIyMDUyNzAwMDAwMFoYDzk5OTkxMjMxMjM1OTU5WjBGMRgwFgYDVQQDDA9N YXR0ZXIgVGVzdCBEQUMxFDASBgorBgEEAYKifAIBDARGRkYxMRQwEgYKKwYBBAGC -onwCAgwEMDBCMTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABDeVSKUQ2yaplw8e -vf9z+TEOE+c25KtzyJaucM2DG4uyGcAOq2cHt7Tz9qPkJ03AYgNYcQvCxUL6pJnw -JOoqsbWjYDBeMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQW -BBTUmfe6+pbulJkh/Y0okYw8Kv3uzTAfBgNVHSMEGDAWgBSWPHCs3Kw9sqkA2vwY -9X+TH6bV5TAKBggqhkjOPQQDAgNIADBFAiEAvO868ML1Qewl5ZK6lFdMU73P8znD -7JfXJzQmHepasAkCIHehY+G4puEqWSXe69P17d4SvuRjo+UoYicIWHoBAqjF +onwCAgwEMDBCMTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABKYYBnH5BzT+PZ0c +GeybkppHaxMDdGXuKmV0DNdXeQG6hCs+/VA9KQ78ckLFpB8Qjbydh2+yi3nDg8GO +zQTOHgejYDBeMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQW +BBQDRaPFCi7wYpbbgOzstWXbzwItbzAfBgNVHSMEGDAWgBRtslzJ0jVUrEx6xCd1 +XteDf1RsxjAKBggqhkjOPQQDAgNJADBGAiEAn1ADcoOQ+ptfyZzZCVd37OZaGIH+ +kesu056Axpmg/jsCIQDzvDD3uggyPyWxT2yFXDdEMreR7BKow8+6ZMIukKQoKA== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/dac-Key.der index 49fcc40d7a69f8..b5a1d070b2ce25 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/dac-Key.pem index c1f5192be5a7ac..b53874b648ec73 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIBwpRFRQYqwOjz4b1m1YzF1vkZ5TAgBl5Hf1QmuvCbTXoAoGCCqGSM49 -AwEHoUQDQgAEN5VIpRDbJqmXDx69/3P5MQ4T5zbkq3PIlq5wzYMbi7IZwA6rZwe3 -tPP2o+QnTcBiA1hxC8LFQvqkmfAk6iqxtQ== +MHcCAQEEII+TfDePW4dqeNJDbjnPe3OKW95WU16SRbI16rDGCtrtoAoGCCqGSM49 +AwEHoUQDQgAEphgGcfkHNP49nRwZ7JuSmkdrEwN0Ze4qZXQM11d5AbqEKz79UD0p +DvxyQsWkHxCNvJ2Hb7KLecODwY7NBM4eBw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/pai-Cert.der index 93f3039c7540f3..cc20356b470f20 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/pai-Cert.pem index bfc3e26709415c..d902ce0eb2bef6 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIByTCCAW+gAwIBAgIIdiAuwg211FAwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIByTCCAW+gAwIBAgIIPIl8dQhlBTcwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowOzE5MDcGA1UEAwwwTXZpZDpGRkYxQUNN RSBNYXR0ZXIgRGV2ZWwgUEFJIDVDREFNcGlkOjAwQjE5ODk5MFkwEwYHKoZIzj0C -AQYIKoZIzj0DAQcDQgAErqaQ/uwmeO9WtSa3g6YEqaCctdijwIpzo4VU1+DCWtzh -RfkkmhGLYigiSPXJQ9K3kDGCidRL7uN8HaHq88h0AaNmMGQwEgYDVR0TAQH/BAgw -BgEB/wIBATAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJY8cKzcrD2yqQDa/Bj1 -f5MfptXlMB8GA1UdIwQYMBaAFGr9IncfUR/svxZBl2cQ3NwxoXF+MAoGCCqGSM49 -BAMCA0gAMEUCIQCivuV+LZzohupspr6cF06bxLnKzXr6Avkq4S/G4ZA92AIgUXDx -E5fjIZRlFudPyi1K1UHqDlUU2ARAnB3x+KK1wMs= +AQYIKoZIzj0DAQcDQgAEF2boa2yrvHNUYZrtJG5RTkk/v5pT7IpESKLCPzE4T9AY +ij7cFG0ttCoy6jqvD2BdnVhFJIuplueHZrOKQcENjaNmMGQwEgYDVR0TAQH/BAgw +BgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFG2yXMnSNVSsTHrEJ3Ve +14N/VGzGMB8GA1UdIwQYMBaAFGr9IncfUR/svxZBl2cQ3NwxoXF+MAoGCCqGSM49 +BAMCA0gAMEUCIQCpSX/8rRS4RoAURl/lY4LAnBZa3kPka1fl0R/gBKEEZAIgcjsj +DUGHTXJgW5P/J8ZCBDCF43ZPFNO2IKtMD/88AZc= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/pai-Key.der index ded399851d776a..5e2bcf4522cf1c 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/pai-Key.pem index c0053bd9f7291a..10e24c97236984 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIPPx1XNMIlV3hJC6GMLwyPIh4c8xMIgnBUnbThesSOE5oAoGCCqGSM49 -AwEHoUQDQgAErqaQ/uwmeO9WtSa3g6YEqaCctdijwIpzo4VU1+DCWtzhRfkkmhGL -YigiSPXJQ9K3kDGCidRL7uN8HaHq88h0AQ== +MHcCAQEEIA2XQ+zhAFaCqVeYrHvGgcFAmJDj4NFW+nASQQ8Kv6eyoAoGCCqGSM49 +AwEHoUQDQgAEF2boa2yrvHNUYZrtJG5RTkk/v5pT7IpESKLCPzE4T9AYij7cFG0t +tCoy6jqvD2BdnVhFJIuplueHZrOKQcENjQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/test_case_vector.json index 8be57ef22b8665..2ebbfae63188cd 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_05/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Fallback VID and PID encoding example from spec: valid, but highly discouraged, since embedding of substrings within other substrings may be confusing to human readers", "is_success_case": "true", - "dac_cert": "308201d93082017fa003020102020811f2f5f83ad53d54300a06082a8648ce3d040302303b3139303706035504030c304d7669643a4646463141434d45204d617474657220446576656c2050414920354344414d7069643a30304231393839393020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004379548a510db26a9970f1ebdff73f9310e13e736e4ab73c896ae70cd831b8bb219c00eab6707b7b4f3f6a3e4274dc0620358710bc2c542faa499f024ea2ab1b5a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414d499f7bafa96ee949921fd8d28918c3c2afdeecd301f0603551d23041830168014963c70acdcac3db2a900dafc18f57f931fa6d5e5300a06082a8648ce3d0403020348003045022100bcef3af0c2f541ec25e592ba94574c53bdcff339c3ec97d72734261dea5ab009022077a163e1b8a6e12a5925deebd3f5edde12bee463a3e528622708587a0102a8c5", - "pai_cert": "308201c93082016fa003020102020876202ec20db5d450300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a303b3139303706035504030c304d7669643a4646463141434d45204d617474657220446576656c2050414920354344414d7069643a30304231393839393059301306072a8648ce3d020106082a8648ce3d03010703420004aea690feec2678ef56b526b783a604a9a09cb5d8a3c08a73a38554d7e0c25adce145f9249a118b62282248f5c943d2b790318289d44beee37c1da1eaf3c87401a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414963c70acdcac3db2a900dafc18f57f931fa6d5e5301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100a2bee57e2d9ce886ea6ca6be9c174e9bc4b9cacd7afa02f92ae12fc6e1903dd802205170f11397e321946516e74fca2d4ad541ea0e5514d804409c1df1f8a2b5c0cb", - "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100987cc5f60c64e2e2f7293d7a86c67b4e8adc169364eb20ccb99412fe80624562022100d0a5f78a6088a5f829637e9e21dc3c7ed81a2b4056264e7105a9b7136410126a", - "dac_private_key": "1c2944545062ac0e8f3e1bd66d58cc5d6f919e53020065e477f5426baf09b4d7", - "dac_public_key": "04379548a510db26a9970f1ebdff73f9310e13e736e4ab73c896ae70cd831b8bb219c00eab6707b7b4f3f6a3e4274dc0620358710bc2c542faa499f024ea2ab1b5" + "dac_cert": "308201da3082017fa00302010202083131cb9ea73b2adc300a06082a8648ce3d040302303b3139303706035504030c304d7669643a4646463141434d45204d617474657220446576656c2050414920354344414d7069643a30304231393839393020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004a6180671f90734fe3d9d1c19ec9b929a476b13037465ee2a65740cd7577901ba842b3efd503d290efc7242c5a41f108dbc9d876fb28b79c383c18ecd04ce1e07a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604140345a3c50a2ef06296db80ececb565dbcf022d6f301f0603551d230418301680146db25cc9d23554ac4c7ac427755ed7837f546cc6300a06082a8648ce3d04030203490030460221009f5003728390fa9b5fc99cd9095777ece65a1881fe91eb2ed39e80c699a0fe3b022100f3bc30f7ba08323f25b14f6c855c374432b791ec12a8c3cfba64c22e90a42828", + "pai_cert": "308201c93082016fa00302010202083c897c7508650537300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a303b3139303706035504030c304d7669643a4646463141434d45204d617474657220446576656c2050414920354344414d7069643a30304231393839393059301306072a8648ce3d020106082a8648ce3d030107034200041766e86b6cabbc7354619aed246e514e493fbf9a53ec8a4448a2c23f31384fd0188a3edc146d2db42a32ea3aaf0f605d9d5845248ba996e78766b38a41c10d8da366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604146db25cc9d23554ac4c7ac427755ed7837f546cc6301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100a9497ffcad14b8468014465fe56382c09c165ade43e46b57e5d11fe004a104640220723b230d41874d72605b93ff27c642043085e3764f14d3b620ab4c0fff3c0197", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d040302044730450220330309fb1ee5265b6dc996c28e9468a38d3bc6c3ea4b38d20d60f4c71dcf8f1b022100ba156574d72cfdbda2707924b2f9d87bfbefaf057a815f7c2e98bd51431f6867", + "dac_private_key": "8f937c378f5b876a78d2436e39cf7b738a5bde56535e9245b235eab0c60adaed", + "dac_public_key": "04a6180671f90734fe3d9d1c19ec9b929a476b13037465ee2a65740cd7577901ba842b3efd503d290efc7242c5a41f108dbc9d876fb28b79c383c18ecd04ce1e07" } diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/cd.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/cd.der index 65288d6a4d76fb..aa20b0c055c7ca 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/cd.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/dac-Cert.der index eca523ad250d82..6fca82e831d7b6 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/dac-Cert.pem index bad92cdbd9a7c3..9b8e8d5e0c9880 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB2jCCAYCgAwIBAgIIcYHgrw7hftkwCgYIKoZIzj0EAwIwPDE6MDgGA1UEAwwx +MIIB2jCCAYCgAwIBAgIIaFuSg1fO06AwCgYIKoZIzj0EAwIwPDE6MDgGA1UEAwwx QUNNRSBNYXR0ZXIgRGV2ZWwgUEFJIDVDREE5ODk5IE12aWQ6RkYxIE1waWQ6MDBC -MTAgFw0yMjA0MjYwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwP +MTAgFw0yMjA1MjcwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwP TWF0dGVyIFRlc3QgREFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB -gqJ8AgIMBDAwQjEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR1M7GiDZMLlhlV -iOcEanv7449W0ctaVgD1F9JVrYnMtTc8LrZuyE+y1PKFhI0Lx77abCWzz8+O0N0A -62BxLXl/o2AwXjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4E -FgQUJ/LmVKg2NWVJBaVLHi42RmjIgZQwHwYDVR0jBBgwFoAU8SHC3MWnwIBI7xmU -qc1P154sxbwwCgYIKoZIzj0EAwIDSAAwRQIgL7Sj3ALYitpNlgjoaJA0jAxm5+bd -pw3Acu+Mx3w0Q24CIQDf/SsDDsrUPBSZhNUGzHqynXLATY5k1qXZ0w+hQtdzxA== +gqJ8AgIMBDAwQjEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAT034FzT1uclSfO +1WYg/J9/O/6ESv145iyjFnjQvkW/z44j4WtDomTCIxRkDPy77HhGvmcHFO3uiPiu +7POLsRkno2AwXjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4E +FgQU84Jm/S0HXWT5OQMt83RM1M4pr8QwHwYDVR0jBBgwFoAUAgipGQX+IUwbCMy1 +6DcBUAoictAwCgYIKoZIzj0EAwIDSAAwRQIhAPH9orGAY+qIxDerxF1EujTjyACo +0/WLvYq2snqSi1/kAiB5q/rVmuktZBDv01j6+MoyZrASeRFVXQ6KqExUuiJfZw== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/dac-Key.der index 3bdd66b3b8ee7f..c534e76f15c174 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/dac-Key.pem index e9ea8da085cf04..bd610b4f4179ee 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIAahUwfljT3bbI/XdZ1s6vw1szHffWyUDfy/yKgCcgmwoAoGCCqGSM49 -AwEHoUQDQgAEdTOxog2TC5YZVYjnBGp7++OPVtHLWlYA9RfSVa2JzLU3PC62bshP -stTyhYSNC8e+2mwls8/PjtDdAOtgcS15fw== +MHcCAQEEIK1mGhnH0baf2XmfhnReXrq1SG9ceZafw7OiWgBkUEkjoAoGCCqGSM49 +AwEHoUQDQgAE9N+Bc09bnJUnztVmIPyffzv+hEr9eOYsoxZ40L5Fv8+OI+FrQ6Jk +wiMUZAz8u+x4Rr5nBxTt7oj4ruzzi7EZJw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/pai-Cert.der index a64e91ec491f68..3ba8996c7ede40 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/pai-Cert.pem index e16e8dbef0a380..3c71a69db7a6bf 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIByjCCAXCgAwIBAgIINiU96XmJW7QwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIByjCCAXCgAwIBAgIIF0SrhL1RN50wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowPDE6MDgGA1UEAwwxQUNNRSBNYXR0ZXIg RGV2ZWwgUEFJIDVDREE5ODk5IE12aWQ6RkYxIE1waWQ6MDBCMTBZMBMGByqGSM49 -AgEGCCqGSM49AwEHA0IABGf2xRU3gddyoPyR/4Ra6LXnKUw4ij+XJRHe56T5Gta3 -Nk5bGeh+8ZxUQ31MCzmQ1GhRcTBqmMUdNxBb7RAiYY2jZjBkMBIGA1UdEwEB/wQI -MAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTxIcLcxafAgEjvGZSp -zU/XnizFvDAfBgNVHSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjO -PQQDAgNIADBFAiEAnXQdYiaWxxGjX3jU/mOmAHMmnpkRV/G6H5ztvts5OTMCIDGX -d57TgtPJTOfDD59QPKFfzIBXqroZ1htsZmcXth9m +AgEGCCqGSM49AwEHA0IABAYr1zfNJO25edT155EUYSHKTGpG3Ecd5fZcVJi7cqX0 +98hOOKnfSo8S3ULE5HhgHEA+CWB3gQjfkYGS/LW+ZwWjZjBkMBIGA1UdEwEB/wQI +MAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQCCKkZBf4hTBsIzLXo +NwFQCiJy0DAfBgNVHSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjO +PQQDAgNIADBFAiEAq0HrnLO1VX2N4RkyJZIRWJRaV8dOPpQJLkMZGWs9MaUCICF5 +3OkLBLNSiPfYj+PyB/Xqg+JcL5WuaxqwVBsEja/H -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/pai-Key.der index 86bc1e3b1cd551..f0160b8b705495 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/pai-Key.pem index 4f976401bf05d1..a5177518fcf704 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIJXex4pXG7Q5oXUEyZwLpRZ7euSmXC8yDv0TN7q0666roAoGCCqGSM49 -AwEHoUQDQgAEZ/bFFTeB13Kg/JH/hFrotecpTDiKP5clEd7npPka1rc2TlsZ6H7x -nFRDfUwLOZDUaFFxMGqYxR03EFvtECJhjQ== +MHcCAQEEIOxnSjizstuYGMm40HYwF7MxvyCa/jkKldClUgRwiES+oAoGCCqGSM49 +AwEHoUQDQgAEBivXN80k7bl51PXnkRRhIcpMakbcRx3l9lxUmLtypfT3yE44qd9K +jxLdQsTkeGAcQD4JYHeBCN+RgZL8tb5nBQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/test_case_vector.json index 7e67b313f80969..215bb5735b9177 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_06/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Fallback VID and PID encoding example from spec: invalid, since substring following Mvid: is not exactly 4 uppercase hexadecimal digits", "is_success_case": "false", - "dac_cert": "308201da30820180a00302010202087181e0af0ee17ed9300a06082a8648ce3d040302303c313a303806035504030c3141434d45204d617474657220446576656c20504149203543444139383939204d7669643a464631204d7069643a303042313020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200047533b1a20d930b96195588e7046a7bfbe38f56d1cb5a5600f517d255ad89ccb5373c2eb66ec84fb2d4f285848d0bc7beda6c25b3cfcf8ed0dd00eb60712d797fa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041427f2e654a83635654905a54b1e2e364668c88194301f0603551d23041830168014f121c2dcc5a7c08048ef1994a9cd4fd79e2cc5bc300a06082a8648ce3d040302034800304502202fb4a3dc02d88ada4d9608e86890348c0c66e7e6dda70dc072ef8cc77c34436e022100dffd2b030ecad43c149984d506cc7ab29d72c04d8e64d6a5d9d30fa142d773c4", - "pai_cert": "308201ca30820170a003020102020836253de979895bb4300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a303c313a303806035504030c3141434d45204d617474657220446576656c20504149203543444139383939204d7669643a464631204d7069643a303042313059301306072a8648ce3d020106082a8648ce3d0301070342000467f6c5153781d772a0fc91ff845ae8b5e7294c388a3f972511dee7a4f91ad6b7364e5b19e87ef19c54437d4c0b3990d4685171306a98c51d37105bed1022618da366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414f121c2dcc5a7c08048ef1994a9cd4fd79e2cc5bc301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203480030450221009d741d622696c711a35f78d4fe63a60073269e991157f1ba1f9cedbedb39393302203197779ed382d3c94ce7c30f9f503ca15fcc8057aaba19d61b6c666717b61f66", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502207459a61ef788f81f603ad09c636ee5bc08104337bd7232ff18a67de790fc9162022100c2edf2f726d8bbff61aa1ee51ab612196f219411ce13960eb12d693eca99ae74", - "dac_private_key": "06a15307e58d3ddb6c8fd7759d6ceafc35b331df7d6c940dfcbfc8a8027209b0", - "dac_public_key": "047533b1a20d930b96195588e7046a7bfbe38f56d1cb5a5600f517d255ad89ccb5373c2eb66ec84fb2d4f285848d0bc7beda6c25b3cfcf8ed0dd00eb60712d797f" + "dac_cert": "308201da30820180a0030201020208685b928357ced3a0300a06082a8648ce3d040302303c313a303806035504030c3141434d45204d617474657220446576656c20504149203543444139383939204d7669643a464631204d7069643a303042313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004f4df81734f5b9c9527ced56620fc9f7f3bfe844afd78e62ca31678d0be45bfcf8e23e16b43a264c22314640cfcbbec7846be670714edee88f8aeecf38bb11927a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414f38266fd2d075d64f939032df3744cd4ce29afc4301f0603551d230418301680140208a91905fe214c1b08ccb5e83701500a2272d0300a06082a8648ce3d0403020348003045022100f1fda2b18063ea88c437abc45d44ba34e3c800a8d3f58bbd8ab6b27a928b5fe4022079abfad59ae92d6410efd358faf8ca3266b0127911555d0e8aa84c54ba225f67", + "pai_cert": "308201ca30820170a00302010202081744ab84bd51379d300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a303c313a303806035504030c3141434d45204d617474657220446576656c20504149203543444139383939204d7669643a464631204d7069643a303042313059301306072a8648ce3d020106082a8648ce3d03010703420004062bd737cd24edb979d4f5e791146121ca4c6a46dc471de5f65c5498bb72a5f4f7c84e38a9df4a8f12dd42c4e478601c403e0960778108df918192fcb5be6705a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604140208a91905fe214c1b08ccb5e83701500a2272d0301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100ab41eb9cb3b5557d8de1193225921158945a57c74e3e94092e4319196b3d31a502202179dce90b04b35288f7d88fe3f207f5ea83e25c2f95ae6b1ab0541b048dafc7", + "certification_declaration": "3081e706092a864886f70d010702a081d93081d6020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402203c9a4a5b55935b44f8b87d79613492134bcbe7592e9fbadc001ac3b99145a2c70220173330c6bb8c3487d644e4ad5e7aaea9ae10c443413debcdf7e33041c0d10497", + "dac_private_key": "ad661a19c7d1b69fd9799f86745e5ebab5486f5c79969fc3b3a25a0064504923", + "dac_public_key": "04f4df81734f5b9c9527ced56620fc9f7f3bfe844afd78e62ca31678d0be45bfcf8e23e16b43a264c22314640cfcbbec7846be670714edee88f8aeecf38bb11927" } diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/cd.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/cd.der index a00f657fc2ace2..22c2dbc9a94c68 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/cd.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/dac-Cert.der index 09a520d100ef71..2cd36841d4cb73 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/dac-Cert.pem index 53efde115e9d29..8b9163b17d5b2b 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB2zCCAYGgAwIBAgIIUv4C66MtyOAwCgYIKoZIzj0EAwIwPTE7MDkGA1UEAwwy +MIIB2jCCAYGgAwIBAgIIAjg0q9T18ZowCgYIKoZIzj0EAwIwPTE7MDkGA1UEAwwy QUNNRSBNYXR0ZXIgRGV2ZWwgUEFJIDVDREE5ODk5IE12aWQ6ZmZmMSBNcGlkOjAw -QjEwIBcNMjIwNDI2MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYxGDAWBgNVBAMM +QjEwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYxGDAWBgNVBAMM D01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjExFDASBgorBgEE -AYKifAICDAQwMEIxMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEgNc1wT2D4Asg -/Q9Ro+HI/YqwrsJxYlFQYekoEvJel31H8VpankXZlE4xB/u3J9FXdzFDbuNvYWzP -UXmWygrC36NgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0O -BBYEFFnU6HIX3tvbrJJD8KPrQ81nJToHMB8GA1UdIwQYMBaAFILAErgm9J3dVYDt -05NGu/QeRdqxMAoGCCqGSM49BAMCA0gAMEUCIHq4W7Lr8wrppxyhtVWp3EZ+WAqI -XXMFWXAFyRVm1ks/AiEA92sL8koVDDvsKubF+0UXg/znLxX5xWxUZxUjd3Z6ua8= +AYKifAICDAQwMEIxMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEs0X1uuXUrqkY +n0pxdJo3hE92/IUsntEP0EaX1WdyI2aTcjkNvhavHOSUGQKU8f6WTZyy3tAXjS8d +FNnCa+HFC6NgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0O +BBYEFLMfPWXaC+KseyHsr3c2SmrlEoPZMB8GA1UdIwQYMBaAFKPkrgdDl6WvJc4Q +6LFaxEbbpr9+MAoGCCqGSM49BAMCA0cAMEQCIDUk43AHJtU5Trnu6T5iHUrJ8SMb +0Z8MFQm4tT5wW6DiAiAljIWWgqLWc/UxdvwCy43qBVPbRLrbxrGrAozytyB5eg== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/dac-Key.der index 64d944489bb3db..13db58a476bf02 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/dac-Key.pem index c266c35a73bfc2..ef03c942139269 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIDHVQmw8OLBHHnF0RM85zbvStw2/Safz9z2BX1bCrh4WoAoGCCqGSM49 -AwEHoUQDQgAEgNc1wT2D4Asg/Q9Ro+HI/YqwrsJxYlFQYekoEvJel31H8VpankXZ -lE4xB/u3J9FXdzFDbuNvYWzPUXmWygrC3w== +MHcCAQEEIEypTYwqPME41wxkJgKEF9D2mjoUZ2rO2bXGTVUmyLYSoAoGCCqGSM49 +AwEHoUQDQgAEs0X1uuXUrqkYn0pxdJo3hE92/IUsntEP0EaX1WdyI2aTcjkNvhav +HOSUGQKU8f6WTZyy3tAXjS8dFNnCa+HFCw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/pai-Cert.der index 2509b59478ed23..50273966bd1f0f 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/pai-Cert.pem index e2ab5d4dcc07df..ad37cd5fe05cc7 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzDCCAXGgAwIBAgIIJdqBy8pYfVswCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIBzDCCAXGgAwIBAgIIDdAtFVKhYGYwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowPTE7MDkGA1UEAwwyQUNNRSBNYXR0ZXIg RGV2ZWwgUEFJIDVDREE5ODk5IE12aWQ6ZmZmMSBNcGlkOjAwQjEwWTATBgcqhkjO -PQIBBggqhkjOPQMBBwNCAAR9pkt01FEQ793SPm2CkZ9qzYmoLPbBcUpovS31Zj2r -fsEZqTk1D8UNj0xdbWPmTTbQGHaJ4OIQ++HfCzQJyUDFo2YwZDASBgNVHRMBAf8E -CDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUgsASuCb0nd1VgO3T -k0a79B5F2rEwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGhcX4wCgYIKoZI -zj0EAwIDSQAwRgIhAPZOfTDhie8bTB8XFfAgZfJcldpDS/7Uw34JZGPrBzAFAiEA -6raQso+szvdCxmFzBX0VzqL+4AtSq+F7fuZxkHhrL3M= +PQIBBggqhkjOPQMBBwNCAATj8vxn4mlQm1b1mN/kQq3/3P0lILXw4vuKZE8aNs9z +hBvpAFO+VI/NwYfjG50H4cPpwQEGvCE1VYnOi/ypYjQxo2YwZDASBgNVHRMBAf8E +CDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUo+SuB0OXpa8lzhDo +sVrERtumv34wHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGhcX4wCgYIKoZI +zj0EAwIDSQAwRgIhAKOYMyLqVPU+LiJfWo6KrUJTGdGg83ECvIZ3Q6eQsIZDAiEA +hIhv4MVTH+sxKFHc3HRnHh2W8bnbzzVNpTA/e1ObKaw= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/pai-Key.der index 168d5fc233e22d..2c9427a88c5d0a 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/pai-Key.pem index f8cb918dbaf37c..592ede36cc9b0f 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIH8g/3Xng1EcUJ84fxKDUdk1IW34cXhGK4e/bvC+TZWloAoGCCqGSM49 -AwEHoUQDQgAEfaZLdNRREO/d0j5tgpGfas2JqCz2wXFKaL0t9WY9q37BGak5NQ/F -DY9MXW1j5k020Bh2ieDiEPvh3ws0CclAxQ== +MHcCAQEEIOn7aNNguyUmtHNFJdP7T7jteMAmvJYln5FKw9BE8hdsoAoGCCqGSM49 +AwEHoUQDQgAE4/L8Z+JpUJtW9Zjf5EKt/9z9JSC18OL7imRPGjbPc4Qb6QBTvlSP +zcGH4xudB+HD6cEBBrwhNVWJzov8qWI0MQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/test_case_vector.json index 6749e289bef619..43d4a681683ed3 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_07/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Fallback VID and PID encoding example from spec: invalid, since substring following Mvid: is not exactly 4 uppercase hexadecimal digits", "is_success_case": "false", - "dac_cert": "308201db30820181a003020102020852fe02eba32dc8e0300a06082a8648ce3d040302303d313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7669643a66666631204d7069643a303042313020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d0301070342000480d735c13d83e00b20fd0f51a3e1c8fd8ab0aec27162515061e92812f25e977d47f15a5a9e45d9944e3107fbb727d1577731436ee36f616ccf517996ca0ac2dfa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041459d4e87217dedbdbac9243f0a3eb43cd67253a07301f0603551d2304183016801482c012b826f49ddd5580edd39346bbf41e45dab1300a06082a8648ce3d040302034800304502207ab85bb2ebf30ae9a71ca1b555a9dc467e580a885d7305597005c91566d64b3f022100f76b0bf24a150c3bec2ae6c5fb451783fce72f15f9c56c5467152377767ab9af", - "pai_cert": "308201cc30820171a003020102020825da81cbca587d5b300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a303d313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7669643a66666631204d7069643a303042313059301306072a8648ce3d020106082a8648ce3d030107034200047da64b74d45110efddd23e6d82919f6acd89a82cf6c1714a68bd2df5663dab7ec119a939350fc50d8f4c5d6d63e64d36d0187689e0e210fbe1df0b3409c940c5a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e0416041482c012b826f49ddd5580edd39346bbf41e45dab1301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100f64e7d30e189ef1b4c1f1715f02065f25c95da434bfed4c37e096463eb073005022100eab690b28faccef742c66173057d15cea2fee00b52abe17b7ee67190786b2f73", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502206a29cd43a2ef5ddd4888871ad80780bc68beb131dfda05164dc7fd020f42ba9702210094176364681750bf624a6f4f4b6a446b2411c3ef2f8774d240ddd6d2b288fd01", - "dac_private_key": "31d5426c3c38b0471e717444cf39cdbbd2b70dbf49a7f3f73d815f56c2ae1e16", - "dac_public_key": "0480d735c13d83e00b20fd0f51a3e1c8fd8ab0aec27162515061e92812f25e977d47f15a5a9e45d9944e3107fbb727d1577731436ee36f616ccf517996ca0ac2df" + "dac_cert": "308201da30820181a0030201020208023834abd4f5f19a300a06082a8648ce3d040302303d313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7669643a66666631204d7069643a303042313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004b345f5bae5d4aea9189f4a71749a37844f76fc852c9ed10fd04697d5677223669372390dbe16af1ce494190294f1fe964d9cb2ded0178d2f1d14d9c26be1c50ba360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414b31f3d65da0be2ac7b21ecaf77364a6ae51283d9301f0603551d23041830168014a3e4ae074397a5af25ce10e8b15ac446dba6bf7e300a06082a8648ce3d040302034700304402203524e3700726d5394eb9eee93e621d4ac9f1231bd19f0c1509b8b53e705ba0e20220258c859682a2d673f53176fc02cb8dea0553db44badbc6b1ab028cf2b720797a", + "pai_cert": "308201cc30820171a00302010202080dd02d1552a16066300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a303d313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7669643a66666631204d7069643a303042313059301306072a8648ce3d020106082a8648ce3d03010703420004e3f2fc67e269509b56f598dfe442adffdcfd2520b5f0e2fb8a644f1a36cf73841be90053be548fcdc187e31b9d07e1c3e9c10106bc21355589ce8bfca9623431a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414a3e4ae074397a5af25ce10e8b15ac446dba6bf7e301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100a3983322ea54f53e2e225f5a8e8aad425319d1a0f37102bc867743a790b0864302210084886fe0c5531feb312851dcdc74671e1d96f1b9dbcf354da5303f7b539b29ac", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502200dcf99449b2ec378c99d4635178736cf3c0988a5e32f61c604434539f26469af022100e85e0252d373fea140d7f4ef5caec379e393821c1da47017fc30b1eecb222066", + "dac_private_key": "4ca94d8c2a3cc138d70c6426028417d0f69a3a14676aced9b5c64d5526c8b612", + "dac_public_key": "04b345f5bae5d4aea9189f4a71749a37844f76fc852c9ed10fd04697d5677223669372390dbe16af1ce494190294f1fe964d9cb2ded0178d2f1d14d9c26be1c50b" } diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/cd.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/cd.der index 420ffdea253a36..9a64e79a056afd 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/cd.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/dac-Cert.der index b952325b34a490..25ad54644d5035 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/dac-Cert.pem index d621e7fd6a1c83..b5e536eabc5a52 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB2TCCAX+gAwIBAgIIaFZ8/Qjzb0UwCgYIKoZIzj0EAwIwOzE5MDcGA1UEAwww +MIIB2TCCAX+gAwIBAgIIKzOsbhbHWCcwCgYIKoZIzj0EAwIwOzE5MDcGA1UEAwww QUNNRSBNYXR0ZXIgRGV2ZWwgUEFJIDVDREE5ODk5IE12aWQ6RkZGMSBNcGlkOkIx -MCAXDTIyMDQyNjAwMDAwMFoYDzk5OTkxMjMxMjM1OTU5WjBGMRgwFgYDVQQDDA9N +MCAXDTIyMDUyNzAwMDAwMFoYDzk5OTkxMjMxMjM1OTU5WjBGMRgwFgYDVQQDDA9N YXR0ZXIgVGVzdCBEQUMxFDASBgorBgEEAYKifAIBDARGRkYxMRQwEgYKKwYBBAGC -onwCAgwEMDBCMTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOEvJ6qnb2wx3dUQ -W77+RxOmgMVWIYIgEGhminNLTTRjWPfsN8qwjbZWeBRwLsAjHPLZNSzTzXjfV4W4 -G/O2aFyjYDBeMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQW -BBTB3dc8DLX7geVsanqZ8adaihVh5jAfBgNVHSMEGDAWgBTW+r87bYPEIkYHDlti -YwZsEQlm3zAKBggqhkjOPQQDAgNIADBFAiEAlqXgqJK9CUSX8qYlTYJ8b0r/S/Ok -nNHkgZ+1p2/iWzkCICcOKAojmHWrJodtXI+/y+MNmcBLpt7nVmXTiJtGy9ng +onwCAgwEMDBCMTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABEEMoM8hQ+uSX/j4 +mkRxpzkEsDMPPlIVTu6qrxjApUz7AhKUg7Itao2g2wne/uRJkO3GnT+7Us8zq0Vd +sbWlrH+jYDBeMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQW +BBSlk0YpTGU3PHYwOb3Q1/XLfe0PrjAfBgNVHSMEGDAWgBRuMc10cYzZEF6YcQI3 +0Z6y/kgNhjAKBggqhkjOPQQDAgNIADBFAiA8Y+UfRWE375WbtRSHqiVhbYq28Su8 +U093hCGJvUlangIhAP0/feXccje5fzvM9CVafdVQEXnIz0gONICc/dix3FPX -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/dac-Key.der index 7100fe99b50d28..8f4f090876ad1f 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/dac-Key.pem index 3902757ef517e0..025ea70304e17d 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIMLwDcMRKFgspl1l8FXI4ZOztmlLEnNdvkon4AKii5JwoAoGCCqGSM49 -AwEHoUQDQgAE4S8nqqdvbDHd1RBbvv5HE6aAxVYhgiAQaGaKc0tNNGNY9+w3yrCN -tlZ4FHAuwCMc8tk1LNPNeN9Xhbgb87ZoXA== +MHcCAQEEINpQPky8BdPz5QVNqPQvjFI6N/k9LMwMimLkgw9mKTGCoAoGCCqGSM49 +AwEHoUQDQgAEQQygzyFD65Jf+PiaRHGnOQSwMw8+UhVO7qqvGMClTPsCEpSDsi1q +jaDbCd7+5EmQ7cadP7tSzzOrRV2xtaWsfw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/pai-Cert.der index c63b2b1e47a9c1..d2ad805ab8382c 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/pai-Cert.pem index a1ef421fcb43ed..97453033c1ec97 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIByTCCAW+gAwIBAgIII8uf1L9fw3UwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIByjCCAW+gAwIBAgIIZSqzwIXu0DcwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowOzE5MDcGA1UEAwwwQUNNRSBNYXR0ZXIg RGV2ZWwgUEFJIDVDREE5ODk5IE12aWQ6RkZGMSBNcGlkOkIxMFkwEwYHKoZIzj0C -AQYIKoZIzj0DAQcDQgAETXFqZpoYt5fCqNaoJH9Lkju67NOTwDlkEzKrVX9nMyFf -dlU6jvPSqEBXUq+g4w7xmrSGt685HpGMHcNPHNTH4KNmMGQwEgYDVR0TAQH/BAgw -BgEB/wIBATAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFNb6vzttg8QiRgcOW2Jj -BmwRCWbfMB8GA1UdIwQYMBaAFGr9IncfUR/svxZBl2cQ3NwxoXF+MAoGCCqGSM49 -BAMCA0gAMEUCIAFWH3uC8eEawZ0sjXYUqC1RRUxgkjKFUQYiEXHzwahvAiEAhz8t -bFPtUaXXWClIsQ8jLsZgbKKl5FkzEGM6ngc0muc= +AQYIKoZIzj0DAQcDQgAEMTGfMCT1PovNRKy3ekqKHU32GWbwtKBv+4+lr1uimI+j +4sZ3R/tZ6U6dNW6VCdvJXZNFygxeeAeMiTYP50nKLaNmMGQwEgYDVR0TAQH/BAgw +BgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFG4xzXRxjNkQXphxAjfR +nrL+SA2GMB8GA1UdIwQYMBaAFGr9IncfUR/svxZBl2cQ3NwxoXF+MAoGCCqGSM49 +BAMCA0kAMEYCIQCTCRxWEPkh2dfjr+aOd/6f3yhXugnivNLlAxlhh+eQMgIhAM6P +iOHpRpBE71g/wG7X3iJ3eXVyBvN3nnUXZj2CbfYS -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/pai-Key.der index c5c940fb3f2285..8d60101685d385 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/pai-Key.pem index 94729f11cd3563..eca9f56636d881 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIOM1fyMxOpTEzyuv/0F/kSsnnYls0LfprjZ2sUg3fV2UoAoGCCqGSM49 -AwEHoUQDQgAETXFqZpoYt5fCqNaoJH9Lkju67NOTwDlkEzKrVX9nMyFfdlU6jvPS -qEBXUq+g4w7xmrSGt685HpGMHcNPHNTH4A== +MHcCAQEEIPWzamTiFoWR2jAlmYiJJDdEUf9HK3axqPx1KWKPIBn0oAoGCCqGSM49 +AwEHoUQDQgAEMTGfMCT1PovNRKy3ekqKHU32GWbwtKBv+4+lr1uimI+j4sZ3R/tZ +6U6dNW6VCdvJXZNFygxeeAeMiTYP50nKLQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/test_case_vector.json index 528876589b8ecd..0753d4ec94cf62 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_08/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Fallback VID and PID encoding example from spec: invalid, since substring following Mpid: is not exactly 4 uppercase hexadecimal digits", "is_success_case": "true", - "dac_cert": "308201d93082017fa003020102020868567cfd08f36f45300a06082a8648ce3d040302303b3139303706035504030c3041434d45204d617474657220446576656c20504149203543444139383939204d7669643a46464631204d7069643a42313020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004e12f27aaa76f6c31ddd5105bbefe4713a680c5562182201068668a734b4d346358f7ec37cab08db6567814702ec0231cf2d9352cd3cd78df5785b81bf3b6685ca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414c1ddd73c0cb5fb81e56c6a7a99f1a75a8a1561e6301f0603551d23041830168014d6fabf3b6d83c42246070e5b6263066c110966df300a06082a8648ce3d040302034800304502210096a5e0a892bd094497f2a6254d827c6f4aff4bf3a49cd1e4819fb5a76fe25b390220270e280a239875ab26876d5c8fbfcbe30d99c04ba6dee75665d3889b46cbd9e0", - "pai_cert": "308201c93082016fa003020102020823cb9fd4bf5fc375300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a303b3139303706035504030c3041434d45204d617474657220446576656c20504149203543444139383939204d7669643a46464631204d7069643a42313059301306072a8648ce3d020106082a8648ce3d030107034200044d716a669a18b797c2a8d6a8247f4b923bbaecd393c039641332ab557f6733215f76553a8ef3d2a8405752afa0e30ef19ab486b7af391e918c1dc34f1cd4c7e0a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414d6fabf3b6d83c42246070e5b6263066c110966df301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022001561f7b82f1e11ac19d2c8d7614a82d51454c609232855106221171f3c1a86f022100873f2d6c53ed51a5d7582948b10f232ec6606ca2a5e4593310633a9e07349ae7", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502206e33fb7643aeac6e3d3ff6dc0a26ef8d2cd065fdda15d8d37bbee58b046393a2022100e036e291ff58e0eb52e710af572628925990f8c52ef02cbb5482f4a284ccb0d2", - "dac_private_key": "c2f00dc31128582ca65d65f055c8e193b3b6694b12735dbe4a27e002a28b9270", - "dac_public_key": "04e12f27aaa76f6c31ddd5105bbefe4713a680c5562182201068668a734b4d346358f7ec37cab08db6567814702ec0231cf2d9352cd3cd78df5785b81bf3b6685c" + "dac_cert": "308201d93082017fa00302010202082b33ac6e16c75827300a06082a8648ce3d040302303b3139303706035504030c3041434d45204d617474657220446576656c20504149203543444139383939204d7669643a46464631204d7069643a42313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004410ca0cf2143eb925ff8f89a4471a73904b0330f3e52154eeeaaaf18c0a54cfb02129483b22d6a8da0db09defee44990edc69d3fbb52cf33ab455db1b5a5ac7fa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414a59346294c65373c763039bdd0d7f5cb7ded0fae301f0603551d230418301680146e31cd74718cd9105e98710237d19eb2fe480d86300a06082a8648ce3d040302034800304502203c63e51f456137ef959bb51487aa25616d8ab6f12bbc534f77842189bd495a9e022100fd3f7de5dc7237b97f3bccf4255a7dd5501179c8cf480e34809cfdd8b1dc53d7", + "pai_cert": "308201ca3082016fa0030201020208652ab3c085eed037300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a303b3139303706035504030c3041434d45204d617474657220446576656c20504149203543444139383939204d7669643a46464631204d7069643a42313059301306072a8648ce3d020106082a8648ce3d0301070342000431319f3024f53e8bcd44acb77a4a8a1d4df61966f0b4a06ffb8fa5af5ba2988fa3e2c67747fb59e94e9d356e9509dbc95d9345ca0c5e78078c89360fe749ca2da366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604146e31cd74718cd9105e98710237d19eb2fe480d86301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034900304602210093091c5610f921d9d7e3afe68e77fe9fdf2857ba09e2bcd2e503196187e79032022100ce8f88e1e9469044ef583fc06ed7de227779757206f3779e7517663d826df612", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100ffe39b9f479f0f6c98a02a3a97c0a8c7c1754d3c87e7b70f6c676bc12ed83dc302203c6f75ed2d90c9c75a28836c6cdf4191f4c9ad9d940d5108217ac597c2f16980", + "dac_private_key": "da503e4cbc05d3f3e5054da8f42f8c523a37f93d2ccc0c8a62e4830f66293182", + "dac_public_key": "04410ca0cf2143eb925ff8f89a4471a73904b0330f3e52154eeeaaaf18c0a54cfb02129483b22d6a8da0db09defee44990edc69d3fbb52cf33ab455db1b5a5ac7f" } diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/cd.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/cd.der index c93c21e10ad505..e3c7d0b4870ff2 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/cd.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/dac-Cert.der index 1d09cf28ef0215..8871297d37ca0a 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/dac-Cert.pem index 67da084326b855..7d2f9f22acc6cb 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIB2DCCAX2gAwIBAgIIFiE5DwA71aYwCgYIKoZIzj0EAwIwOTE3MDUGA1UEAwwu +MIIB2DCCAX2gAwIBAgIITntKURGuIa8wCgYIKoZIzj0EAwIwOTE3MDUGA1UEAwwu QUNNRSBNYXR0ZXIgRGV2ZWwgUEFJIDVDREE5ODk5IE1waWQ6IE12aWQ6RkZGMTAg -Fw0yMjA0MjYwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0 +Fw0yMjA1MjcwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0 dGVyIFRlc3QgREFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8 -AgIMBDAwQjEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASAsYU0qUArFmL6XuLn -JAcgdDWSwz8LGycxc8dp6nx0gZ3J/HbrIOjQURFHYE1KW+zxBTN37F7kHJMv8bp2 -XPlmo2AwXjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQU -ySwQTGeeZsDBb4slgX0klbD71zgwHwYDVR0jBBgwFoAUTepRMjDxiPkeP8znBmbS -ya34Fd0wCgYIKoZIzj0EAwIDSQAwRgIhAKvMRGF7+m4FxeiiGKOg8t/etNQjdTMF -0/0LkT3LJbIDAiEAseZNma0SBYCIBVfWTeOmw+dZDYlZIMDW9zvldWaWq+M= +AgIMBDAwQjEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR2DDIOfC1WUILu/euh +1m81fvULh6mMkMO7SzFKecQqPkAUKWoasL8Wbc7+86hsMOMzT4XeuwklC2R1L5Rd +RAifo2AwXjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQU +1+B6S4ROW6D+m+9AR26eisnopb8wHwYDVR0jBBgwFoAUVRQK9QaXbZJhHFHOw8ID +d5DdR8AwCgYIKoZIzj0EAwIDSQAwRgIhANxBzygTuSLw+chPtVBZtdLj9oSSOh2D +9tmquu5gy/vUAiEAoklbCKSmqnu07J9wAKQQsEu2n0jEVX9b3Ehk/LqqeH0= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/dac-Key.der index 9a1c5a4b638c14..b5ae1a4cbc96a5 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/dac-Key.pem index 4c8ac71d015903..625c9a354d7d74 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIEMd3bZMGCwblq7Uy3t1uSjMRPnWkj4tTF1mcOugTQSjoAoGCCqGSM49 -AwEHoUQDQgAEgLGFNKlAKxZi+l7i5yQHIHQ1ksM/CxsnMXPHaep8dIGdyfx26yDo -0FERR2BNSlvs8QUzd+xe5ByTL/G6dlz5Zg== +MHcCAQEEIPRs2bn77Sgnu1BgZ8GYl/I8jd9orP8R8ZHlgzs3fO4toAoGCCqGSM49 +AwEHoUQDQgAEdgwyDnwtVlCC7v3rodZvNX71C4epjJDDu0sxSnnEKj5AFClqGrC/ +Fm3O/vOobDDjM0+F3rsJJQtkdS+UXUQInw== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/pai-Cert.der index da0ab7826a58ac..ee746d4bf00032 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/pai-Cert.pem index 89c9a54c96adba..e20e77cc869887 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBxzCCAW2gAwIBAgIISirY6F5qrpQwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIBxjCCAW2gAwIBAgIIPZVSLqZoKkwwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowOTE3MDUGA1UEAwwuQUNNRSBNYXR0ZXIg RGV2ZWwgUEFJIDVDREE5ODk5IE1waWQ6IE12aWQ6RkZGMTBZMBMGByqGSM49AgEG -CCqGSM49AwEHA0IABFlILyUeePP5A8UcsTV5puByLXQNhjbLQKi3ck8AhFXrmjet -LiwG6l6UBbYqqe6qQCCcf9tobpFvj85QR6iM6NOjZjBkMBIGA1UdEwEB/wQIMAYB -Af8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRN6lEyMPGI+R4/zOcGZtLJ -rfgV3TAfBgNVHSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQD -AgNIADBFAiANtyxFkdwy05Txb8i9IwLXaxT8tED3vpREuayOFXnAlgIhANPlrfJ8 -eXYG9BgrrZVRfUTXYA1YCOVmW4XvxCETNFie +CCqGSM49AwEHA0IABP3qi83ECOWohcvGIXaVdYOgQh5ORHEaCA/xVyJi56/vxNa1 +aniNTTtXGsJdZ4r5ZOiiNbBf4RL5nu479X1xfNijZjBkMBIGA1UdEwEB/wQIMAYB +Af8CAQAwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRVFAr1BpdtkmEcUc7DwgN3 +kN1HwDAfBgNVHSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQD +AgNHADBEAiAUPf5G+P+qEyGigcHFz9DDvkl27QWC0mpSmpPqGHg2NwIgRaX9kDAd +EVb7PsLf4nP5ymY7AbQYhXkLgRgpN+0bn2w= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/pai-Key.der index 4c042fdda07e1c..ae6c118f1306ea 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/pai-Key.pem index 6c017590474bda..236053914b1b5a 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIKwxwp4smfEXSn9mTzd6ZFBYn0Xs3KZ68sjvgxty1vtSoAoGCCqGSM49 -AwEHoUQDQgAEWUgvJR548/kDxRyxNXmm4HItdA2GNstAqLdyTwCEVeuaN60uLAbq -XpQFtiqp7qpAIJx/22hukW+PzlBHqIzo0w== +MHcCAQEEIMnOpWwbesfaUBE10ikq7Ed8hcvNuhypIh/EdZOgiq7YoAoGCCqGSM49 +AwEHoUQDQgAE/eqLzcQI5aiFy8YhdpV1g6BCHk5EcRoID/FXImLnr+/E1rVqeI1N +O1cawl1nivlk6KI1sF/hEvme7jv1fXF82A== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/test_case_vector.json index f71ac861706587..58f67d5a51c7ee 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_09/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Fallback VID and PID encoding example from spec: invalid, since substring following Mpid: is not exactly 4 uppercase hexadecimal digits", "is_success_case": "true", - "dac_cert": "308201d83082017da00302010202081621390f003bd5a6300a06082a8648ce3d04030230393137303506035504030c2e41434d45204d617474657220446576656c20504149203543444139383939204d7069643a204d7669643a464646313020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d0301070342000480b18534a9402b1662fa5ee2e7240720743592c33f0b1b273173c769ea7c74819dc9fc76eb20e8d0511147604d4a5becf1053377ec5ee41c932ff1ba765cf966a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414c92c104c679e66c0c16f8b25817d2495b0fbd738301f0603551d230418301680144dea513230f188f91e3fcce70666d2c9adf815dd300a06082a8648ce3d0403020349003046022100abcc44617bfa6e05c5e8a218a3a0f2dfdeb4d423753305d3fd0b913dcb25b203022100b1e64d99ad120580880557d64de3a6c3e7590d895920c0d6f73be5756696abe3", - "pai_cert": "308201c73082016da00302010202084a2ad8e85e6aae94300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a30393137303506035504030c2e41434d45204d617474657220446576656c20504149203543444139383939204d7069643a204d7669643a464646313059301306072a8648ce3d020106082a8648ce3d0301070342000459482f251e78f3f903c51cb13579a6e0722d740d8636cb40a8b7724f008455eb9a37ad2e2c06ea5e9405b62aa9eeaa40209c7fdb686e916f8fce5047a88ce8d3a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604144dea513230f188f91e3fcce70666d2c9adf815dd301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502200db72c4591dc32d394f16fc8bd2302d76b14fcb440f7be9444b9ac8e1579c096022100d3e5adf27c797606f4182bad95517d44d7600d5808e5665b85efc4211334589e", - "certification_declaration": "3081e706092a864886f70d010702a081d93081d6020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402206d8806cbd7b0d97504689e462af1cca52a562731311dc432103ce96eb4e05731022070b8559869e8fa233584039f89d3606eea228a331bc76f78c458354648435f46", - "dac_private_key": "431dddb64c182c1b96aed4cb7b75b928cc44f9d6923e2d4c5d6670eba04d04a3", - "dac_public_key": "0480b18534a9402b1662fa5ee2e7240720743592c33f0b1b273173c769ea7c74819dc9fc76eb20e8d0511147604d4a5becf1053377ec5ee41c932ff1ba765cf966" + "dac_cert": "308201d83082017da00302010202084e7b4a5111ae21af300a06082a8648ce3d04030230393137303506035504030c2e41434d45204d617474657220446576656c20504149203543444139383939204d7069643a204d7669643a464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004760c320e7c2d565082eefdeba1d66f357ef50b87a98c90c3bb4b314a79c42a3e4014296a1ab0bf166dcefef3a86c30e3334f85debb09250b64752f945d44089fa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414d7e07a4b844e5ba0fe9bef40476e9e8ac9e8a5bf301f0603551d2304183016801455140af506976d92611c51cec3c2037790dd47c0300a06082a8648ce3d0403020349003046022100dc41cf2813b922f0f9c84fb55059b5d2e3f684923a1d83f6d9aabaee60cbfbd4022100a2495b08a4a6aa7bb4ec9f7000a410b04bb69f48c4557f5bdc4864fcbaaa787d", + "pai_cert": "308201c63082016da00302010202083d95522ea6682a4c300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30393137303506035504030c2e41434d45204d617474657220446576656c20504149203543444139383939204d7069643a204d7669643a464646313059301306072a8648ce3d020106082a8648ce3d03010703420004fdea8bcdc408e5a885cbc62176957583a0421e4e44711a080ff1572262e7afefc4d6b56a788d4d3b571ac25d678af964e8a235b05fe112f99eee3bf57d717cd8a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041455140af506976d92611c51cec3c2037790dd47c0301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203470030440220143dfe46f8ffaa1321a281c1c5cfd0c3be4976ed0582d26a529a93ea18783637022045a5fd90301d1156fb3ec2dfe273f9ca663b01b41885790b81182937ed1b9f6c", + "certification_declaration": "3081e706092a864886f70d010702a081d93081d6020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402206d1701c37ff7fffb8dada85e67146289458cc617ac0efc3c115f076ff75d0b280220725e63658d8715bc8dbe2459c499a8456254eec0a518e0205ec52ec80649af4e", + "dac_private_key": "f46cd9b9fbed2827bb506067c19897f23c8ddf68acff11f191e5833b377cee2d", + "dac_public_key": "04760c320e7c2d565082eefdeba1d66f357ef50b87a98c90c3bb4b314a79c42a3e4014296a1ab0bf166dcefef3a86c30e3334f85debb09250b64752f945d44089f" } diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/cd.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/cd.der index de76cea0d34229..0f930a5febd4bc 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/cd.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/dac-Cert.der index 69cabfe9a963fd..f96087eea09412 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/dac-Cert.pem index 74b1e7a54ec926..dde91ceee99475 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvTCCAWOgAwIBAgIIAohmcBfsChYwCgYIKoZIzj0EAwIwHzEdMBsGA1UEAwwU -TXZpZDpGRkYgTXBpZDowMEIxMHgwIBcNMjIwNDI2MDAwMDAwWhgPOTk5OTEyMzEy +MIIBvTCCAWOgAwIBAgIIfRsYe5ExaTEwCgYIKoZIzj0EAwIwHzEdMBsGA1UEAwwU +TXZpZDpGRkYgTXBpZDowMEIxMHgwIBcNMjIwNTI3MDAwMDAwWhgPOTk5OTEyMzEy MzU5NTlaMEYxGDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8 AgEMBEZGRjExFDASBgorBgEEAYKifAICDAQwMEIxMFkwEwYHKoZIzj0CAQYIKoZI -zj0DAQcDQgAElYDTDK6SWtp6VmxGhs/zmLVrjGxEmL0NT5JbKnA9IlbaEoUSrrpU -oeIWJigVqPTU/YhXnmWy965TEFGPAUoNZaNgMF4wDAYDVR0TAQH/BAIwADAOBgNV -HQ8BAf8EBAMCB4AwHQYDVR0OBBYEFP8zRPosB0aexbO7dlAedlNQ0BG9MB8GA1Ud -IwQYMBaAFPm85870XJhwaFBtAUFiUs6CWssgMAoGCCqGSM49BAMCA0gAMEUCIFP+ -PMfhrsTNZgoNJX1xvr7zk1xYY7dS/DShHapf9izNAiEAlOYZmVrKX0AGqhv+9CNA -QUwYoDrJ0XvnxONRP5fWN4w= +zj0DAQcDQgAEiQt3dg6LdUyoEjS2Dg1raQgAJJxN+S1xfK/ywGNVQO0nppRsynUT +zy7cpozaADsUuK2IRXobAb2ryAPC3ciFCaNgMF4wDAYDVR0TAQH/BAIwADAOBgNV +HQ8BAf8EBAMCB4AwHQYDVR0OBBYEFEUf3Nxx4uqY+EXukMLgZXN4WulsMB8GA1Ud +IwQYMBaAFIS5DclmFWUt8hazhCen0szPTzbpMAoGCCqGSM49BAMCA0gAMEUCIFA2 +SdpO2lmgs8g1zjNVxVuQE5fiu3jqUqrbuV0RdscnAiEAju0pkLdmXPtOeA8xwHRI +uC784Gd3qdHnR1yQ8tZcmdo= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/dac-Key.der index d172c5c34fd3b2..522cdb5a3c2c81 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/dac-Key.pem index 5d1c3166d22afb..0bdf646cd2d3a4 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIKtLJo0BWNvTENpCVr6/d5ftinOoPZvzuyvM+tjPMSNuoAoGCCqGSM49 -AwEHoUQDQgAElYDTDK6SWtp6VmxGhs/zmLVrjGxEmL0NT5JbKnA9IlbaEoUSrrpU -oeIWJigVqPTU/YhXnmWy965TEFGPAUoNZQ== +MHcCAQEEIO38/cI1g1CafreX/ydhBt0YAIPMf0Bydyjod0RC0sZPoAoGCCqGSM49 +AwEHoUQDQgAEiQt3dg6LdUyoEjS2Dg1raQgAJJxN+S1xfK/ywGNVQO0nppRsynUT +zy7cpozaADsUuK2IRXobAb2ryAPC3ciFCQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/pai-Cert.der index 0588d260033214..77db0fbabb84f1 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/pai-Cert.pem index 49a028d71e5ab0..0609b99b715db2 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBrTCCAVOgAwIBAgIITTZvoDp/BYUwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIBrjCCAVOgAwIBAgIIZdvrGtcfwNEwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowHzEdMBsGA1UEAwwUTXZpZDpGRkYgTXBp -ZDowMEIxMHgwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARUvJifrmSUAv01R/hV -jZ8OFZQnDPjpvCzyiXJ/7O4p4JSf8R2QcWkmCF92iPzP4Lqw2+3N2lJ8yCJm59lK -IL56o2YwZDASBgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNV -HQ4EFgQU+bznzvRcmHBoUG0BQWJSzoJayyAwHwYDVR0jBBgwFoAUav0idx9RH+y/ -FkGXZxDc3DGhcX4wCgYIKoZIzj0EAwIDSAAwRQIhANScF7FYXB15j6Dy+1pqLlkT -soxanlngYPcActSiXQcVAiBPzBkTELU8lVRBiTKuMIAp21SnJ6bk9fKmGaD5gnFT -pQ== +ZDowMEIxMHgwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARTBMHhSTAOE/9+OodG +EkmYhAL+OTqWi1H/mDWO069Hq/DBEMJtUN48tnbBmhtVkWFv5/KrYpReIMf7qqu2 +2yfao2YwZDASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNV +HQ4EFgQUhLkNyWYVZS3yFrOEJ6fSzM9PNukwHwYDVR0jBBgwFoAUav0idx9RH+y/ +FkGXZxDc3DGhcX4wCgYIKoZIzj0EAwIDSQAwRgIhAM2aDn88FIGF+1pj85XA6SGN +qJDsgpl0LyY3QUupfw5aAiEAiBJMPfFy0q1DbG7G1/CkBjvUx/uoexk3LhvTeLRQ +BJ4= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/pai-Key.der index 78387a94b17b50..55218b9581503f 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/pai-Key.pem index c326467a523e51..a5eaee65598ede 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIJaqGi8EUJl4IvTalyIKQL+bQbDKIETi3eWPMeERmt5zoAoGCCqGSM49 -AwEHoUQDQgAEVLyYn65klAL9NUf4VY2fDhWUJwz46bws8olyf+zuKeCUn/EdkHFp -Jghfdoj8z+C6sNvtzdpSfMgiZufZSiC+eg== +MHcCAQEEIEH0DqFaJ0OudBYts5oLpwYPiN0xNikExsSdXIiIFDhqoAoGCCqGSM49 +AwEHoUQDQgAEUwTB4UkwDhP/fjqHRhJJmIQC/jk6lotR/5g1jtOvR6vwwRDCbVDe +PLZ2wZobVZFhb+fyq2KUXiDH+6qrttsn2g== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/test_case_vector.json index dc039efb45ffa9..8b4798194a4ca4 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_10/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Fallback VID and PID encoding example: invalid VID encoding", "is_success_case": "false", - "dac_cert": "308201bd30820163a00302010202080288667017ec0a16300a06082a8648ce3d040302301f311d301b06035504030c144d7669643a464646204d7069643a3030423130783020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200049580d30cae925ada7a566c4686cff398b56b8c6c4498bd0d4f925b2a703d2256da128512aeba54a1e216262815a8f4d4fd88579e65b2f7ae5310518f014a0d65a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414ff3344fa2c07469ec5b3bb76501e765350d011bd301f0603551d23041830168014f9bce7cef45c987068506d01416252ce825acb20300a06082a8648ce3d0403020348003045022053fe3cc7e1aec4cd660a0d257d71bebef3935c5863b752fc34a11daa5ff62ccd02210094e619995aca5f4006aa1bfef42340414c18a03ac9d17be7c4e3513f97d6378c", - "pai_cert": "308201ad30820153a00302010202084d366fa03a7f0585300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a301f311d301b06035504030c144d7669643a464646204d7069643a3030423130783059301306072a8648ce3d020106082a8648ce3d0301070342000454bc989fae649402fd3547f8558d9f0e1594270cf8e9bc2cf289727fecee29e0949ff11d90716926085f7688fccfe0bab0dbedcdda527cc82266e7d94a20be7aa366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414f9bce7cef45c987068506d01416252ce825acb20301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100d49c17b1585c1d798fa0f2fb5a6a2e5913b28c5a9e59e060f70072d4a25d071502204fcc191310b53c9554418932ae308029db54a727a6e4f5f2a619a0f9827153a5", - "certification_declaration": "3081e706092a864886f70d010702a081d93081d6020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204463044022064dae669b1ef497ae474fdb619341e6fd101eea88981a8d9738b734581d7bee802206e56129ccdde62d326657513b8df72d68f03abbe4a8a1804133152bb9f4fa4e7", - "dac_private_key": "ab4b268d0158dbd310da4256bebf7797ed8a73a83d9bf3bb2bccfad8cf31236e", - "dac_public_key": "049580d30cae925ada7a566c4686cff398b56b8c6c4498bd0d4f925b2a703d2256da128512aeba54a1e216262815a8f4d4fd88579e65b2f7ae5310518f014a0d65" + "dac_cert": "308201bd30820163a00302010202087d1b187b91316931300a06082a8648ce3d040302301f311d301b06035504030c144d7669643a464646204d7069643a3030423130783020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004890b77760e8b754ca81234b60e0d6b690800249c4df92d717caff2c0635540ed27a6946cca7513cf2edca68cda003b14b8ad88457a1b01bdabc803c2ddc88509a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414451fdcdc71e2ea98f845ee90c2e06573785ae96c301f0603551d2304183016801484b90dc96615652df216b38427a7d2cccf4f36e9300a06082a8648ce3d04030203480030450220503649da4eda59a0b3c835ce3355c55b901397e2bb78ea52aadbb95d1176c7270221008eed2990b7665cfb4e780f31c07448b82efce06777a9d1e7475c90f2d65c99da", + "pai_cert": "308201ae30820153a003020102020865dbeb1ad71fc0d1300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a301f311d301b06035504030c144d7669643a464646204d7069643a3030423130783059301306072a8648ce3d020106082a8648ce3d030107034200045304c1e149300e13ff7e3a87461249988402fe393a968b51ff98358ed3af47abf0c110c26d50de3cb676c19a1b5591616fe7f2ab62945e20c7fbaaabb6db27daa366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041484b90dc96615652df216b38427a7d2cccf4f36e9301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100cd9a0e7f3c148185fb5a63f395c0e9218da890ec8299742f2637414ba97f0e5a02210088124c3df172d2ad436c6ec6d7f0a4063bd4c7fba87b19372e1bd378b450049e", + "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020448304602210088441ac08531b456749ceaf2450e0122cac19e6e96917b37492a2c9476781605022100a70dacbf57c2fe733383feed0983740dff653f802481ef02108cfeba130a55fb", + "dac_private_key": "edfcfdc23583509a7eb797ff276106dd180083cc7f40727728e8774442d2c64f", + "dac_public_key": "04890b77760e8b754ca81234b60e0d6b690800249c4df92d717caff2c0635540ed27a6946cca7513cf2edca68cda003b14b8ad88457a1b01bdabc803c2ddc88509" } diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/cd.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/cd.der index 05b85250fda0c3..ac29a73d3e9f0b 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/cd.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/dac-Cert.der index 4f0f7e2fff0741..33b961c1af6c94 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/dac-Cert.pem index d50fb43ae471cc..9d8b04c8165d6a 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzTCCAXOgAwIBAgIIApaNWRtV+w8wCgYIKoZIzj0EAwIwLzEtMCsGA1UEAwwk -TXBpZE12aWQ6RkZGMTAgTWF0dGVyIFRlc3QgTXBpZDowMEIxMCAXDTIyMDQyNjAw +MIIBzDCCAXOgAwIBAgIIKAMQGorzkWswCgYIKoZIzj0EAwIwLzEtMCsGA1UEAwwk +TXBpZE12aWQ6RkZGMTAgTWF0dGVyIFRlc3QgTXBpZDowMEIxMCAXDTIyMDUyNzAw MDAwMFoYDzk5OTkxMjMxMjM1OTU5WjBGMRgwFgYDVQQDDA9NYXR0ZXIgVGVzdCBE QUMxFDASBgorBgEEAYKifAIBDARGRkYxMRQwEgYKKwYBBAGConwCAgwEMDBCMTBZ -MBMGByqGSM49AgEGCCqGSM49AwEHA0IABBLCMqMecDtCJ1fqu+otkUFs51FRs1JZ -L/WTM1YhUrzGhtlhOmgxCcqqI4SkzAnqaKMc7vrIvrRNICn2a66H6yKjYDBeMAwG -A1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBTl0GyJmpgxUnYQ -QPwVr+bcEIl4+zAfBgNVHSMEGDAWgBTOumiwuvvPhGpFyqpcVsQO6AMQSzAKBggq -hkjOPQQDAgNIADBFAiAgL4brJQ+ktob3h0QWzRqNXNkdUeC3XUrHqO6447gNNgIh -AMbE0NRiSFahl/FfndsndSYD068TWTvKHgtYRQI+mpfQ +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABO2tGs1AhPsq0RQtA/7PJhvBN/lLdc1P +YpCBrtsI+3ilv2gRkNFGK4qgBl/7ixYhGcKx5oMcz7nxS0/zGUHSVO6jYDBeMAwG +A1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBSTeamhtjAKlcWT +G0IuOwzDJTUE7jAfBgNVHSMEGDAWgBSEOYNr4u6qNznaIR0skx2uNEnN/zAKBggq +hkjOPQQDAgNHADBEAiB5VB0qfQEkKQliAUYsrbSngvxYY2Y3Voc1SuGE9uMCUgIg +WuYEXGNsXw4DmSx6FgsYxF205b/0d0Z2R29z3ZB176w= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/dac-Key.der index 402a47cabd846a..f78c07242bb4cb 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/dac-Key.pem index a81ed1242ae512..d505adc11cbd5d 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIFCTHbDb4bQYSCg5iqNd7TRr8hbrEHJ5Es6fxYuSq6BRoAoGCCqGSM49 -AwEHoUQDQgAEEsIyox5wO0InV+q76i2RQWznUVGzUlkv9ZMzViFSvMaG2WE6aDEJ -yqojhKTMCepooxzu+si+tE0gKfZrrofrIg== +MHcCAQEEIJc8x/jAp5hoEbsY5xeKCbAhOwZPInv7j5YRKoKjXZrUoAoGCCqGSM49 +AwEHoUQDQgAE7a0azUCE+yrRFC0D/s8mG8E3+Ut1zU9ikIGu2wj7eKW/aBGQ0UYr +iqAGX/uLFiEZwrHmgxzPufFLT/MZQdJU7g== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/pai-Cert.der index b0244b514c2696..3bf9b3f4cd5c39 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/pai-Cert.pem index d87dd23f7b205c..b1039c8fdf2784 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvTCCAWOgAwIBAgIIAiEhQzrd4ygwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIBvjCCAWOgAwIBAgIICYrXInrw9rYwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLzEtMCsGA1UEAwwkTXBpZE12aWQ6RkZG MTAgTWF0dGVyIFRlc3QgTXBpZDowMEIxMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcD -QgAEtCVifrAkpZst153MTGwMR7AaVoob6S4GoDjDPDp7n85e90y3b2otAt+A79bL -rAGL+aCJJrPsyBpFRjQqaQgDNqNmMGQwEgYDVR0TAQH/BAgwBgEB/wIBATAOBgNV -HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFM66aLC6+8+EakXKqlxWxA7oAxBLMB8GA1Ud -IwQYMBaAFGr9IncfUR/svxZBl2cQ3NwxoXF+MAoGCCqGSM49BAMCA0gAMEUCIQDG -rauFUt0KTEIFj2EJL+LlvT4cm8HnZ1z4yHvrxcJCZwIgPu2ptKkRl0KByP55PUC8 -pvUQA5z8sji4APhLWSpgLPg= +QgAEvJ3EHcsCaFigfbjkoZQ/Nx7/H+wFbuUAxutyd1k6nvZjfHTIlV/uPEsnPRvC +okdRXR5NpON3/EgiOckTAa5s5qNmMGQwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNV +HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFIQ5g2vi7qo3OdohHSyTHa40Sc3/MB8GA1Ud +IwQYMBaAFGr9IncfUR/svxZBl2cQ3NwxoXF+MAoGCCqGSM49BAMCA0kAMEYCIQDI +Fgj0JUEhSIB8avz74RqTfpcBo4T6Vx0uvlJ3Ahv8AQIhAM8IplVr3XPUS61U2UzX +HKYFBxjY7SNSol1M8MM4j145 -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/pai-Key.der index 69f207f4b8f9cd..1780a70983b7bc 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/pai-Key.pem index f4f06d388c6c20..a95b12569bd08d 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIDI8lzHsONOcoX8XxQLyobfK1pr+ctG1lv9v/oHWiReYoAoGCCqGSM49 -AwEHoUQDQgAEtCVifrAkpZst153MTGwMR7AaVoob6S4GoDjDPDp7n85e90y3b2ot -At+A79bLrAGL+aCJJrPsyBpFRjQqaQgDNg== +MHcCAQEEIBod1xsLrej5RRswRs8pXCA2JqMSETJFBVEplW8YO6SvoAoGCCqGSM49 +AwEHoUQDQgAEvJ3EHcsCaFigfbjkoZQ/Nx7/H+wFbuUAxutyd1k6nvZjfHTIlV/u +PEsnPRvCokdRXR5NpON3/EgiOckTAa5s5g== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/test_case_vector.json index b61f2aef1d6f84..a85f4fc37932c3 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_11/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Fallback VID and PID encoding example: valid, but less human-readable", "is_success_case": "true", - "dac_cert": "308201cd30820173a003020102020802968d591b55fb0f300a06082a8648ce3d040302302f312d302b06035504030c244d7069644d7669643a4646463130204d61747465722054657374204d7069643a303042313020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d0301070342000412c232a31e703b422757eabbea2d91416ce75151b352592ff59333562152bcc686d9613a683109caaa2384a4cc09ea68a31ceefac8beb44d2029f66bae87eb22a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414e5d06c899a983152761040fc15afe6dc108978fb301f0603551d23041830168014ceba68b0bafbcf846a45caaa5c56c40ee803104b300a06082a8648ce3d04030203480030450220202f86eb250fa4b686f7874416cd1a8d5cd91d51e0b75d4ac7a8eeb8e3b80d36022100c6c4d0d4624856a197f15f9ddb27752603d3af13593bca1e0b5845023e9a97d0", - "pai_cert": "308201bd30820163a0030201020208022121433adde328300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a302f312d302b06035504030c244d7069644d7669643a4646463130204d61747465722054657374204d7069643a303042313059301306072a8648ce3d020106082a8648ce3d03010703420004b425627eb024a59b2dd79dcc4c6c0c47b01a568a1be92e06a038c33c3a7b9fce5ef74cb76f6a2d02df80efd6cbac018bf9a08926b3ecc81a4546342a69080336a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414ceba68b0bafbcf846a45caaa5c56c40ee803104b301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100c6adab8552dd0a4c42058f61092fe2e5bd3e1c9bc1e7675cf8c87bebc5c2426702203eeda9b4a911974281c8fe793d40bca6f510039cfcb238b800f84b592a602cf8", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502207123dec390756ed1a255d63ec6b5f3c4a2411f8bcc3b8cf9d8cc4533685a59dd02210092faf12630b030dc3f79fcc6540df0ac2b5802c8c853ba78e50c6d6548644f4e", - "dac_private_key": "50931db0dbe1b4184828398aa35ded346bf216eb10727912ce9fc58b92aba051", - "dac_public_key": "0412c232a31e703b422757eabbea2d91416ce75151b352592ff59333562152bcc686d9613a683109caaa2384a4cc09ea68a31ceefac8beb44d2029f66bae87eb22" + "dac_cert": "308201cc30820173a00302010202082803101a8af3916b300a06082a8648ce3d040302302f312d302b06035504030c244d7069644d7669643a4646463130204d61747465722054657374204d7069643a303042313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004edad1acd4084fb2ad1142d03fecf261bc137f94b75cd4f629081aedb08fb78a5bf681190d1462b8aa0065ffb8b162119c2b1e6831ccfb9f14b4ff31941d254eea360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604149379a9a1b6300a95c5931b422e3b0cc3253504ee301f0603551d230418301680148439836be2eeaa3739da211d2c931dae3449cdff300a06082a8648ce3d0403020347003044022079541d2a7d012429096201462cadb4a782fc586366375687354ae184f6e3025202205ae6045c636c5f0e03992c7a160b18c45db4e5bff4774676476f73dd9075efac", + "pai_cert": "308201be30820163a0030201020208098ad7227af0f6b6300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a302f312d302b06035504030c244d7069644d7669643a4646463130204d61747465722054657374204d7069643a303042313059301306072a8648ce3d020106082a8648ce3d03010703420004bc9dc41dcb026858a07db8e4a1943f371eff1fec056ee500c6eb7277593a9ef6637c74c8955fee3c4b273d1bc2a247515d1e4da4e377fc482239c91301ae6ce6a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604148439836be2eeaa3739da211d2c931dae3449cdff301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100c81608f425412148807c6afcfbe11a937e9701a384fa571d2ebe5277021bfc01022100cf08a6556bdd73d44bad54d94cd71ca6050718d8ed2352a25d4cf0c3388f5e39", + "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100fd5791cb0cb78285cb2c02b7dd7a27a1140105b6405097f017d5eee29f81b5bf022100adb2c7dd511b475a5ca2f39ccc4497161d27dee9692f3241425258da64fdf7f3", + "dac_private_key": "973cc7f8c0a7986811bb18e7178a09b0213b064f227bfb8f96112a82a35d9ad4", + "dac_public_key": "04edad1acd4084fb2ad1142d03fecf261bc137f94b75cd4f629081aedb08fb78a5bf681190d1462b8aa0065ffb8b162119c2b1e6831ccfb9f14b4ff31941d254ee" } diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/cd.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/cd.der index f9759cba671ea6..fa03a54d9b1109 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/cd.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/dac-Cert.der index 4b9a81421ba95f..f49b1a66b7993e 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/dac-Cert.pem index 1fac79129522c3..80bf607ce1dedd 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIByDCCAW6gAwIBAgIIItdoXf2ZHBIwCgYIKoZIzj0EAwIwKjEoMCYGA1UEAwwf -TWF0dGVyIERldmVsIFBBSSBNcGlkOk12aWQ6RmZmMTAgFw0yMjA0MjYwMDAwMDBa +MIIByDCCAW6gAwIBAgIIH6b/VhJpj7kwCgYIKoZIzj0EAwIwKjEoMCYGA1UEAwwf +TWF0dGVyIERldmVsIFBBSSBNcGlkOk12aWQ6RmZmMTAgFw0yMjA1MjcwMDAwMDBa GA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3QgREFDMRQw EgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDAwQjEwWTATBgcq -hkjOPQIBBggqhkjOPQMBBwNCAAS94h/X1LfkQhnk32xOr0Z4qXw0FoxjqTjP99tl -ajo0jhZsBz1ev19HQJ0a6hTqbUU60AdArV+p6xMr04lse2PZo2AwXjAMBgNVHRMB -Af8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUEdkf9vaR/KlrGFPBR+Et -Nc0nPBwwHwYDVR0jBBgwFoAUlSwFcRiKTKwk2UVPIOdyWdvb8nQwCgYIKoZIzj0E -AwIDSAAwRQIgOWcp59ShsB+duaNt4p+LzuUkMsAjOXYvdlgsTwjGjx0CIQCnoJdt -F5weKLDE6UqcgU2QEmJLtNzZIMkkly98wHCfIg== +hkjOPQIBBggqhkjOPQMBBwNCAATUOpHOly4FCae9exS3U3P3ueGEmXU2CjNwaeUA +M6htWiUiD0kHKldpqMvLAnBqOFq9jNn2H+NcIMhx6ZiaCH4Eo2AwXjAMBgNVHRMB +Af8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUdxhmlWi7OW8Gzaa29LUh +qT8q3nswHwYDVR0jBBgwFoAUpHaD4doIA7oVUVomzpSgSbr+G6owCgYIKoZIzj0E +AwIDSAAwRQIhAKcsHetDqnUCPVPZOht+gaWNxtt5celfULK2DWoa4wZAAiBONMyh +pB59mtu3+3ydUV5GyH+dNcHcGLzlJzgB8VGsAA== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/dac-Key.der index bc43da8611fa00..30090c6a08512f 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/dac-Key.pem index 5a24aec0546a9d..9cfe766c69af87 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIDEbJ5etJtQuRxRAVYKyxcYUR3uHeRn0czgIK4Rn28+noAoGCCqGSM49 -AwEHoUQDQgAEveIf19S35EIZ5N9sTq9GeKl8NBaMY6k4z/fbZWo6NI4WbAc9Xr9f -R0CdGuoU6m1FOtAHQK1fqesTK9OJbHtj2Q== +MHcCAQEEIOpb7sOQ9geYs8oNyAYXTLB6b8YvwZjaJcDjXnSZDHLroAoGCCqGSM49 +AwEHoUQDQgAE1DqRzpcuBQmnvXsUt1Nz97nhhJl1NgozcGnlADOobVolIg9JBypX +aajLywJwajhavYzZ9h/jXCDIcemYmgh+BA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/pai-Cert.der index 47c6393bbcf10c..fa12675b4e25c5 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/pai-Cert.pem index 21d4d315c3b64a..a5aa18a43c62e0 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBuTCCAV6gAwIBAgIIMoYaEdEBWvowCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIBuDCCAV6gAwIBAgIIGn6kVMLr+UswCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowKjEoMCYGA1UEAwwfTWF0dGVyIERldmVs -IFBBSSBNcGlkOk12aWQ6RmZmMTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABL+Z -yFyaL2YFF589DfXPyP/3i7ukC6NteJXnfGLZnKAVftdCB+KVfzEJTuIE6C0gLwgo -62CVvhft66z+mSU8ItOjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/ -BAQDAgEGMB0GA1UdDgQWBBSVLAVxGIpMrCTZRU8g53JZ29vydDAfBgNVHSMEGDAW -gBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNJADBGAiEApme/dUTd -1UuDBiXaaOEHs4Mz5Ky5VzFvATgrweAX2CICIQCN+qJHJszIKD6cu8CvPZ0kxZI2 -Dgn9y7gZg2g9x7WG3g== +IFBBSSBNcGlkOk12aWQ6RmZmMTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOX/ +qKLBVv+pOMj+sl07tag2jQrdA/SwbG9aGFNvc7U2dXdq2ivrFGQNUq+gH4t9OW2w +hpUJdXuWV92lyXpipKSjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/ +BAQDAgEGMB0GA1UdDgQWBBSkdoPh2ggDuhVRWibOlKBJuv4bqjAfBgNVHSMEGDAW +gBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNIADBFAiEA22qX+MvH +GC1fZ5JZPHKIYpCEpRMYGzshB5XowRvkcEcCIFs89iX31dv2VC3lgVuvl6SloxOJ +tJjK51uOPcZdWl76 -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/pai-Key.der index 4511c58ade52e2..2bbf5c52d04c11 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/pai-Key.pem index 87c65ac4aa87fa..026ca1a2511282 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIMNr5OClGS3Mj2TGrST024dh+roG6eDVYCYtOi2upe2IoAoGCCqGSM49 -AwEHoUQDQgAEv5nIXJovZgUXnz0N9c/I//eLu6QLo214led8YtmcoBV+10IH4pV/ -MQlO4gToLSAvCCjrYJW+F+3rrP6ZJTwi0w== +MHcCAQEEILdX48WX3v1juDxF5Z2RSHBghXd9ky9/QsUGTxbk/bMooAoGCCqGSM49 +AwEHoUQDQgAE5f+oosFW/6k4yP6yXTu1qDaNCt0D9LBsb1oYU29ztTZ1d2raK+sU +ZA1Sr6Afi305bbCGlQl1e5ZX3aXJemKkpA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/test_case_vector.json index 99fd3b3477f6d4..dd48a966f34745 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_12/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Fallback VID and PID encoding example: invalid, PID not present and VID not upper case", "is_success_case": "false", - "dac_cert": "308201c83082016ea003020102020822d7685dfd991c12300a06082a8648ce3d040302302a3128302606035504030c1f4d617474657220446576656c20504149204d7069643a4d7669643a466666313020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004bde21fd7d4b7e44219e4df6c4eaf4678a97c34168c63a938cff7db656a3a348e166c073d5ebf5f47409d1aea14ea6d453ad00740ad5fa9eb132bd3896c7b63d9a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041411d91ff6f691fca96b1853c147e12d35cd273c1c301f0603551d23041830168014952c0571188a4cac24d9454f20e77259dbdbf274300a06082a8648ce3d04030203480030450220396729e7d4a1b01f9db9a36de29f8bcee52432c02339762f76582c4f08c68f1d022100a7a0976d179c1e28b0c4e94a9c814d9012624bb4dcd920c924972f7cc0709f22", - "pai_cert": "308201b93082015ea003020102020832861a11d1015afa300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a302a3128302606035504030c1f4d617474657220446576656c20504149204d7069643a4d7669643a466666313059301306072a8648ce3d020106082a8648ce3d03010703420004bf99c85c9a2f6605179f3d0df5cfc8fff78bbba40ba36d7895e77c62d99ca0157ed74207e2957f31094ee204e82d202f0828eb6095be17edebacfe99253c22d3a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414952c0571188a4cac24d9454f20e77259dbdbf274301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100a667bf7544ddd54b830625da68e107b38333e4acb957316f01382bc1e017d8220221008dfaa24726ccc8283e9cbbc0af3d9d24c592360e09fdcbb81983683dc7b586de", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022006a4bc3650f895fb97909e557a37cf612d8dc4586d17207ce56ef875f6ac6869022100d511c007746a94f1d888a4fe177312b03dc63a5a6fda02a6129818e9c2d2f055", - "dac_private_key": "311b2797ad26d42e4714405582b2c5c614477b877919f47338082b8467dbcfa7", - "dac_public_key": "04bde21fd7d4b7e44219e4df6c4eaf4678a97c34168c63a938cff7db656a3a348e166c073d5ebf5f47409d1aea14ea6d453ad00740ad5fa9eb132bd3896c7b63d9" + "dac_cert": "308201c83082016ea00302010202081fa6ff5612698fb9300a06082a8648ce3d040302302a3128302606035504030c1f4d617474657220446576656c20504149204d7069643a4d7669643a466666313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004d43a91ce972e0509a7bd7b14b75373f7b9e1849975360a337069e50033a86d5a25220f49072a5769a8cbcb02706a385abd8cd9f61fe35c20c871e9989a087e04a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604147718669568bb396f06cda6b6f4b521a93f2ade7b301f0603551d23041830168014a47683e1da0803ba15515a26ce94a049bafe1baa300a06082a8648ce3d0403020348003045022100a72c1deb43aa75023d53d93a1b7e81a58dc6db7971e95f50b2b60d6a1ae3064002204e34cca1a41e7d9adbb7fb7c9d515e46c87f9d35c1dc18bce5273801f151ac00", + "pai_cert": "308201b83082015ea00302010202081a7ea454c2ebf94b300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a302a3128302606035504030c1f4d617474657220446576656c20504149204d7069643a4d7669643a466666313059301306072a8648ce3d020106082a8648ce3d03010703420004e5ffa8a2c156ffa938c8feb25d3bb5a8368d0add03f4b06c6f5a18536f73b53675776ada2beb14640d52afa01f8b7d396db0869509757b9657dda5c97a62a4a4a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414a47683e1da0803ba15515a26ce94a049bafe1baa301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100db6a97f8cbc7182d5f6792593c7288629084a513181b3b210795e8c11be4704702205b3cf625f7d5dbf6542de5815baf97a4a5a31389b498cae75b8e3dc65d5a5efa", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022029432f34e1c2fb1ad66b0b8d4e51a8cc2476d4e0888d8db0ceb9423cdcf128760221008448d5cf1ac4229d4198679ae531a4c4ac360ddc7582e7ac775fdc0eccfb2a92", + "dac_private_key": "ea5beec390f60798b3ca0dc806174cb07a6fc62fc198da25c0e35e74990c72eb", + "dac_public_key": "04d43a91ce972e0509a7bd7b14b75373f7b9e1849975360a337069e50033a86d5a25220f49072a5769a8cbcb02706a385abd8cd9f61fe35c20c871e9989a087e04" } diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/cd.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/cd.der index 28e8d922f36fa2..e51951dbf01463 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/cd.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/dac-Cert.der index 0827de6153dcf5..9ed6754e6f4a4f 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/dac-Cert.pem index a8f9a9f92e9bed..09b739d572deae 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzTCCAXOgAwIBAgIIaCAOuhemK8cwCgYIKoZIzj0EAwIwLzEtMCsGA1UEAwwk -TWF0dGVyIERldmVsIFBBSSBNcGlkOjAwQjEgTVZJRDpGRkYxMCAXDTIyMDQyNjAw +MIIBzTCCAXOgAwIBAgIIe+L+O0PdcgswCgYIKoZIzj0EAwIwLzEtMCsGA1UEAwwk +TWF0dGVyIERldmVsIFBBSSBNcGlkOjAwQjEgTVZJRDpGRkYxMCAXDTIyMDUyNzAw MDAwMFoYDzk5OTkxMjMxMjM1OTU5WjBGMRgwFgYDVQQDDA9NYXR0ZXIgVGVzdCBE QUMxFDASBgorBgEEAYKifAIBDARGRkYxMRQwEgYKKwYBBAGConwCAgwEMDBCMTBZ -MBMGByqGSM49AgEGCCqGSM49AwEHA0IABA/ws/JsRwLcWnIvttkuni75rVSnnrUE -h1q9eI5Eew6hKsTkmVJL2HP8XqZqdjll5BPFYOiIwSWNlLdDrb95xTejYDBeMAwG -A1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBS5xDcjtwAeJ2BI -5bJbLxwTXGT94DAfBgNVHSMEGDAWgBR+XvN0Teomu/pOwfzfD9oYR6YtjzAKBggq -hkjOPQQDAgNIADBFAiEAzqmIPTlJ2CTMg92jrNEuB3lMGZgZWc9gYZ2mDy/KjKEC -IAly1dEownebdTBR/BnWjplMfKjC9QEnieP6byaXrdY4 +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABEsTDUHT3j5Mzi4pwuda4UdU2bMPhmtL +KZCckFxnAupLHUOAN+tczfWV8Yw1ZVZEiyB1XyquasQeWxHcC0NElZ6jYDBeMAwG +A1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBRhUu49MvpIN76x +w6QWXEASsRdBlDAfBgNVHSMEGDAWgBQitr32lazIUKxpEOyF+FNhBFJsEDAKBggq +hkjOPQQDAgNIADBFAiEAuKGJA1OBTdiONW0Tjg+Idw2gPebJJvl6roMXa1j4neQC +IGQMzuwwDVuqKc/HwyRHkBwTIsLxTngYIcgIQJjyKuAj -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/dac-Key.der index 00d07e88618c6a..a0d99e1887230f 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/dac-Key.pem index a7a13622895dc1..eceab67eb78067 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIFqxNPqW+MqE4RmtESiePv1k//L8IfqhmF7DTS/yiiXPoAoGCCqGSM49 -AwEHoUQDQgAED/Cz8mxHAtxaci+22S6eLvmtVKeetQSHWr14jkR7DqEqxOSZUkvY -c/xepmp2OWXkE8Vg6IjBJY2Ut0Otv3nFNw== +MHcCAQEEIBjZAPNHfSlg4UGEXogj5QGFaWR7sqOoIcD/LzmNBIjioAoGCCqGSM49 +AwEHoUQDQgAESxMNQdPePkzOLinC51rhR1TZsw+Ga0spkJyQXGcC6ksdQ4A361zN +9ZXxjDVlVkSLIHVfKq5qxB5bEdwLQ0SVng== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/pai-Cert.der index 49a72f16d2eeb3..aafdf75228a5a6 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/pai-Cert.pem index 6ffd82ea11a649..91ec3c4007bce0 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvjCCAWOgAwIBAgIIfHa4eKuGKbMwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIBvTCCAWOgAwIBAgIIfNRf4aNqu4IwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLzEtMCsGA1UEAwwkTWF0dGVyIERldmVs IFBBSSBNcGlkOjAwQjEgTVZJRDpGRkYxMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcD -QgAEA+3u4Ke8fVEH77YLnBciTZMw/duZhg8/g16AyBfvCqV5LYeTpGzfUhk0lKvz -NLmP/5z8ctoCiFOlhiF/GcA/s6NmMGQwEgYDVR0TAQH/BAgwBgEB/wIBATAOBgNV -HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFH5e83RN6ia7+k7B/N8P2hhHpi2PMB8GA1Ud -IwQYMBaAFGr9IncfUR/svxZBl2cQ3NwxoXF+MAoGCCqGSM49BAMCA0kAMEYCIQCK -xygXR994Iy7HY2etnh/TAoizyMOZZNpEfWWS7HSvWQIhAMKGL2rXlTXkC/0rv588 -ob+Te5F+TIEs1YJFjiufWc4y +QgAELKSd+HKczfr499tVROtorl6uvBsIGp+pMK+79qmOMu0gR+rUbWKWdJf7yw81 +1pcccGbiyhqvhrl1Spx0E6kb6aNmMGQwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNV +HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFCK2vfaVrMhQrGkQ7IX4U2EEUmwQMB8GA1Ud +IwQYMBaAFGr9IncfUR/svxZBl2cQ3NwxoXF+MAoGCCqGSM49BAMCA0gAMEUCIFop +jsvlLLk9W18oOeibaXqAQf8impjurEAAIvnpTH4EAiEAw5TPEzkv1KTxR80sek0Z +13oOf/OCAgYM1qLetlVZjkc= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/pai-Key.der index 26767357ed87fb..adaee899c4517e 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/pai-Key.pem index 29a735e2dc5db7..833303a2626440 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIABTniS5MQbSle4mmyn1g2MWguoDPiPW57Z8p93veFyloAoGCCqGSM49 -AwEHoUQDQgAEA+3u4Ke8fVEH77YLnBciTZMw/duZhg8/g16AyBfvCqV5LYeTpGzf -Uhk0lKvzNLmP/5z8ctoCiFOlhiF/GcA/sw== +MHcCAQEEIDbjTyzKeuFSj/Ofy7Mw0B9mZNBrLaZenwMco/KuEcbuoAoGCCqGSM49 +AwEHoUQDQgAELKSd+HKczfr499tVROtorl6uvBsIGp+pMK+79qmOMu0gR+rUbWKW +dJf7yw811pcccGbiyhqvhrl1Spx0E6kb6Q== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/test_case_vector.json index ead78ca3c62027..5d7576fcea967f 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_13/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Fallback VID and PID encoding example: invalid VID prefix", "is_success_case": "false", - "dac_cert": "308201cd30820173a003020102020868200eba17a62bc7300a06082a8648ce3d040302302f312d302b06035504030c244d617474657220446576656c20504149204d7069643a30304231204d5649443a464646313020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200040ff0b3f26c4702dc5a722fb6d92e9e2ef9ad54a79eb504875abd788e447b0ea12ac4e499524bd873fc5ea66a763965e413c560e888c1258d94b743adbf79c537a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414b9c43723b7001e276048e5b25b2f1c135c64fde0301f0603551d230418301680147e5ef3744dea26bbfa4ec1fcdf0fda1847a62d8f300a06082a8648ce3d0403020348003045022100cea9883d3949d824cc83dda3acd12e07794c19981959cf60619da60f2fca8ca102200972d5d128c2779b753051fc19d68e994c7ca8c2f5012789e3fa6f2697add638", - "pai_cert": "308201be30820163a00302010202087c76b878ab8629b3300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a302f312d302b06035504030c244d617474657220446576656c20504149204d7069643a30304231204d5649443a464646313059301306072a8648ce3d020106082a8648ce3d0301070342000403edeee0a7bc7d5107efb60b9c17224d9330fddb99860f3f835e80c817ef0aa5792d8793a46cdf52193494abf334b98fff9cfc72da028853a586217f19c03fb3a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604147e5ef3744dea26bbfa4ec1fcdf0fda1847a62d8f301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203490030460221008ac7281747df78232ec76367ad9e1fd30288b3c8c39964da447d6592ec74af59022100c2862f6ad79535e40bfd2bbf9f3ca1bf937b917e4c812cd582458e2b9f59ce32", - "certification_declaration": "3081e706092a864886f70d010702a081d93081d6020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402201de2c1eedc8e4f7116da63d49f9a2d234af051e37cbe32aa4c540e3eb6295b3502201676f8a689e946d9877d170db0ffe3106b8910f1d8e0bbc5a6fdda46bbe116e6", - "dac_private_key": "5ab134fa96f8ca84e119ad11289e3efd64fff2fc21faa1985ec34d2ff28a25cf", - "dac_public_key": "040ff0b3f26c4702dc5a722fb6d92e9e2ef9ad54a79eb504875abd788e447b0ea12ac4e499524bd873fc5ea66a763965e413c560e888c1258d94b743adbf79c537" + "dac_cert": "308201cd30820173a00302010202087be2fe3b43dd720b300a06082a8648ce3d040302302f312d302b06035504030c244d617474657220446576656c20504149204d7069643a30304231204d5649443a464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200044b130d41d3de3e4cce2e29c2e75ae14754d9b30f866b4b29909c905c6702ea4b1d438037eb5ccdf595f18c356556448b20755f2aae6ac41e5b11dc0b4344959ea360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604146152ee3d32fa4837beb1c3a4165c4012b1174194301f0603551d2304183016801422b6bdf695acc850ac6910ec85f8536104526c10300a06082a8648ce3d0403020348003045022100b8a1890353814dd88e356d138e0f88770da03de6c926f97aae83176b58f89de40220640cceec300d5baa29cfc7c32447901c1322c2f14e781821c8084098f22ae023", + "pai_cert": "308201bd30820163a00302010202087cd45fe1a36abb82300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a302f312d302b06035504030c244d617474657220446576656c20504149204d7069643a30304231204d5649443a464646313059301306072a8648ce3d020106082a8648ce3d030107034200042ca49df8729ccdfaf8f7db5544eb68ae5eaebc1b081a9fa930afbbf6a98e32ed2047ead46d62967497fbcb0f35d6971c7066e2ca1aaf86b9754a9c7413a91be9a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041422b6bdf695acc850ac6910ec85f8536104526c10301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502205a298ecbe52cb93d5b5f2839e89b697a8041ff229a98eeac400022f9e94c7e04022100c394cf13392fd4a4f147cd2c7a4d19d77a0e7ff38202060cd6a2deb655598e47", + "certification_declaration": "3081e706092a864886f70d010702a081d93081d6020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020446304402201cedfcfa80ad8b0750c43c58d0a63457011ed9000522b96b41e962f8a95a9cf802200eb04c59657acf103ea2f34a394aa138fff7bab104e274733b93ff28b9f688b4", + "dac_private_key": "18d900f3477d2960e141845e8823e5018569647bb2a3a821c0ff2f398d0488e2", + "dac_public_key": "044b130d41d3de3e4cce2e29c2e75ae14754d9b30f866b4b29909c905c6702ea4b1d438037eb5ccdf595f18c356556448b20755f2aae6ac41e5b11dc0b4344959e" } diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/cd.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/cd.der index d15e2a3e751e98..94a9ecfc9952d0 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/cd.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/dac-Cert.der index 0ac96c50bdf26c..0174d8ad9acf73 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/dac-Cert.pem index f7a633e625c8ad..f7a0599f34e661 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBzjCCAXOgAwIBAgIIP/JlM2SwXdAwCgYIKoZIzj0EAwIwLzEtMCsGA1UEAwwk -TWF0dGVyIERldmVsIFBBSSBNcGlkXzAwQjEgTXZpZF9GRkYxMCAXDTIyMDQyNjAw +MIIBzTCCAXOgAwIBAgIIW2m2ChzvYfQwCgYIKoZIzj0EAwIwLzEtMCsGA1UEAwwk +TWF0dGVyIERldmVsIFBBSSBNcGlkXzAwQjEgTXZpZF9GRkYxMCAXDTIyMDUyNzAw MDAwMFoYDzk5OTkxMjMxMjM1OTU5WjBGMRgwFgYDVQQDDA9NYXR0ZXIgVGVzdCBE QUMxFDASBgorBgEEAYKifAIBDARGRkYxMRQwEgYKKwYBBAGConwCAgwEMDBCMTBZ -MBMGByqGSM49AgEGCCqGSM49AwEHA0IABJ1MrsIndENIbkjCx2xMT10mk0+9xzd4 -ANcbNjnKOLajHNIs9C0I/id0iTgGT+ImwolGIW9KFgYkYzRJnr4QB0+jYDBeMAwG -A1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBSMk0e1bI59f/8z -v1uAjpy4VemStjAfBgNVHSMEGDAWgBR9E3W8jxCtZ0MeEQ02PTG7P4waxjAKBggq -hkjOPQQDAgNJADBGAiEAxkGicBORYb2BIBKdRkW8+UaVkQErsxwQtTwTJ0HlBwwC -IQCPqm0IsqGeHwLSTpNzR59jq8+BfblhhuCfAKnYXjfJfw== +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABI9AAvyGDYgTkGitbpJkAtb58bmCXWG6 +h3Jm/zI5JMrzIKIM204UtkQp6lOYeamOO2dVb57zS8NyfLHJxrxO8IajYDBeMAwG +A1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBTF9uELvG0u4sCT +P76CaAOywdkPaTAfBgNVHSMEGDAWgBRX7YEr/a00TchHPKNUlO302mrtMjAKBggq +hkjOPQQDAgNIADBFAiEAgQWtuKPCZGFEWNqQkKIgHEKMdCcqBGbbKbTye8l6oX4C +IDr77eAhqkTx2NVFbZtTC06d7bFIOhdRuGTyjK+wHwjZ -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/dac-Key.der index af1beeec21269b..7f1d3663c561a4 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/dac-Key.pem index dc327a12001af1..899ca84135333a 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIAxh+JYV81CsxE8dKdH5Vxh5Z39nbW8rYnIZ3+YSFMg6oAoGCCqGSM49 -AwEHoUQDQgAEnUyuwid0Q0huSMLHbExPXSaTT73HN3gA1xs2Oco4tqMc0iz0LQj+ -J3SJOAZP4ibCiUYhb0oWBiRjNEmevhAHTw== +MHcCAQEEILtZJs4hDUZDroHF5YI0+MtpieC5FgJzAT29HYj5A+wkoAoGCCqGSM49 +AwEHoUQDQgAEj0AC/IYNiBOQaK1ukmQC1vnxuYJdYbqHcmb/MjkkyvMgogzbThS2 +RCnqU5h5qY47Z1VvnvNLw3J8scnGvE7whg== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/pai-Cert.der index 9c13101ed01ad7..3dc89017a35aa6 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/pai-Cert.pem index 82f557bb4f8164..d7b4fe80b62a4b 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBvjCCAWOgAwIBAgIIe62L+k82JCUwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIBvDCCAWOgAwIBAgIIWiPK0Mr6ol0wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLzEtMCsGA1UEAwwkTWF0dGVyIERldmVs IFBBSSBNcGlkXzAwQjEgTXZpZF9GRkYxMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcD -QgAE/lq8M9Vgw3CNVzRHkpGfhA3wg6iEdXUVsghUBROPMHWQfcD2A2b/Vs/gW34D -fHrEo6J5LN8C+jD69LoWu1o7WqNmMGQwEgYDVR0TAQH/BAgwBgEB/wIBATAOBgNV -HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFH0TdbyPEK1nQx4RDTY9Mbs/jBrGMB8GA1Ud -IwQYMBaAFGr9IncfUR/svxZBl2cQ3NwxoXF+MAoGCCqGSM49BAMCA0kAMEYCIQDD -0SjjodPDuOxmdmOf/8oFrpHi9lOO0B5BOhFBHcy4MQIhAK5cMcDcZAzLgtL3MyyU -7lvFINA2fh9pAjkYGQemFuOw +QgAEkvnZ+9YUNhaUDWRxWWc6IqZwwEB4k3/LTYm3UQQsA6BD0/5wL51TmzWZ70y1 +rZJs0i2t6dVhJcg4+FMTYCxAbaNmMGQwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNV +HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFFftgSv9rTRNyEc8o1SU7fTaau0yMB8GA1Ud +IwQYMBaAFGr9IncfUR/svxZBl2cQ3NwxoXF+MAoGCCqGSM49BAMCA0cAMEQCIArN +AXhL7kEy98hLicvqjdFnPsjv9cWgIQDTY/CV2kzVAiAtUjLsi1YJLyiPTtZ/jOf3 +jKxromzfMMa4zJ0Vy1lFFw== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/pai-Key.der index a769b2be1547de..6e4264b6b87f5e 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/pai-Key.pem index 2fd5d28bfd7bc6..26aca7a05d65e2 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIFpvUCzTjrIDO9wXfeSlVsBuR3hIUsPSTCVhAWfUCtuMoAoGCCqGSM49 -AwEHoUQDQgAE/lq8M9Vgw3CNVzRHkpGfhA3wg6iEdXUVsghUBROPMHWQfcD2A2b/ -Vs/gW34DfHrEo6J5LN8C+jD69LoWu1o7Wg== +MHcCAQEEIDxBtLCnx0PhwtqGB38h75RuzohOiGodPk6xOYO1TZ9uoAoGCCqGSM49 +AwEHoUQDQgAEkvnZ+9YUNhaUDWRxWWc6IqZwwEB4k3/LTYm3UQQsA6BD0/5wL51T +mzWZ70y1rZJs0i2t6dVhJcg4+FMTYCxAbQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/test_case_vector.json index ac005b11e2aa27..353b5c41f91f37 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_14/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Fallback VID and PID encoding example: invalid PID and VID prefixes", "is_success_case": "false", - "dac_cert": "308201ce30820173a00302010202083ff2653364b05dd0300a06082a8648ce3d040302302f312d302b06035504030c244d617474657220446576656c20504149204d7069645f30304231204d7669645f464646313020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200049d4caec2277443486e48c2c76c4c4f5d26934fbdc7377800d71b3639ca38b6a31cd22cf42d08fe27748938064fe226c28946216f4a1606246334499ebe10074fa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604148c9347b56c8e7d7fff33bf5b808e9cb855e992b6301f0603551d230418301680147d1375bc8f10ad67431e110d363d31bb3f8c1ac6300a06082a8648ce3d0403020349003046022100c641a270139161bd8120129d4645bcf9469591012bb31c10b53c132741e5070c0221008faa6d08b2a19e1f02d24e9373479f63abcf817db96186e09f00a9d85e37c97f", - "pai_cert": "308201be30820163a00302010202087bad8bfa4f362425300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a302f312d302b06035504030c244d617474657220446576656c20504149204d7069645f30304231204d7669645f464646313059301306072a8648ce3d020106082a8648ce3d03010703420004fe5abc33d560c3708d57344792919f840df083a884757515b2085405138f3075907dc0f60366ff56cfe05b7e037c7ac4a3a2792cdf02fa30faf4ba16bb5a3b5aa366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604147d1375bc8f10ad67431e110d363d31bb3f8c1ac6301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020349003046022100c3d128e3a1d3c3b8ec6676639fffca05ae91e2f6538ed01e413a11411dccb831022100ae5c31c0dc640ccb82d2f7332c94ee5bc520d0367e1f690239181907a616e3b0", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100866e52aacfc33af9fa4f1e482a005350cefdd7d5213fcf7710dc5fdcb63feb0e022004e41d872bb8ef89c2aa41226ddc92389d4beaa9efd6fd98c022aaea0f202c75", - "dac_private_key": "0c61f89615f350acc44f1d29d1f9571879677f676d6f2b627219dfe61214c83a", - "dac_public_key": "049d4caec2277443486e48c2c76c4c4f5d26934fbdc7377800d71b3639ca38b6a31cd22cf42d08fe27748938064fe226c28946216f4a1606246334499ebe10074f" + "dac_cert": "308201cd30820173a00302010202085b69b60a1cef61f4300a06082a8648ce3d040302302f312d302b06035504030c244d617474657220446576656c20504149204d7069645f30304231204d7669645f464646313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200048f4002fc860d88139068ad6e926402d6f9f1b9825d61ba877266ff323924caf320a20cdb4e14b64429ea539879a98e3b67556f9ef34bc3727cb1c9c6bc4ef086a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414c5f6e10bbc6d2ee2c0933fbe826803b2c1d90f69301f0603551d2304183016801457ed812bfdad344dc8473ca35494edf4da6aed32300a06082a8648ce3d04030203480030450221008105adb8a3c264614458da9090a2201c428c74272a0466db29b4f27bc97aa17e02203afbede021aa44f1d8d5456d9b530b4e9dedb1483a1751b864f28cafb01f08d9", + "pai_cert": "308201bc30820163a00302010202085a23cad0cafaa25d300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a302f312d302b06035504030c244d617474657220446576656c20504149204d7069645f30304231204d7669645f464646313059301306072a8648ce3d020106082a8648ce3d0301070342000492f9d9fbd6143616940d647159673a22a670c04078937fcb4d89b751042c03a043d3fe702f9d539b3599ef4cb5ad926cd22dade9d56125c838f85313602c406da366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e0416041457ed812bfdad344dc8473ca35494edf4da6aed32301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402200acd01784bee4132f7c84b89cbea8dd1673ec8eff5c5a02100d363f095da4cd502202d5232ec8b56092f288f4ed67f8ce7f78cac6ba26cdf30c6b8cc9d15cb594517", + "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100e6bc44890d97d68833fec44ab5c713f160ab19618c605b5d74934ab659c25cb3022100c1aed58eebc4b02b0aa27df267815817e08a41a0724e790f90ca2690db854b8c", + "dac_private_key": "bb5926ce210d4643ae81c5e58234f8cb6989e0b9160273013dbd1d88f903ec24", + "dac_public_key": "048f4002fc860d88139068ad6e926402d6f9f1b9825d61ba877266ff323924caf320a20cdb4e14b64429ea539879a98e3b67556f9ef34bc3727cb1c9c6bc4ef086" } diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/cd.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/cd.der index 412a2aa399d170..068f1d681df562 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/cd.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/dac-Cert.der index 06bc6f5da35dbc..7c2b9095b89b10 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/dac-Cert.pem index eedc82bebe4ba0..54c1e939117c4c 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIICBjCCAa2gAwIBAgIILsXaBxBEioMwCgYIKoZIzj0EAwIwaTE7MDkGA1UEAwwy +MIICBzCCAa2gAwIBAgIIa0U5jnEM1mUwCgYIKoZIzj0EAwIwaTE7MDkGA1UEAwwy QUNNRSBNYXR0ZXIgRGV2ZWwgUEFJIDVDREE5ODk5IE12aWQ6RkZGMiBNcGlkOjAw QjIxFDASBgorBgEEAYKifAIBDARGRkYxMRQwEgYKKwYBBAGConwCAgwEMDBCMTAg -Fw0yMjA0MjYwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0 +Fw0yMjA1MjcwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0 dGVyIFRlc3QgREFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8 -AgIMBDAwQjEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQvQ3tkebVZ/SI/Zuea -PSLZeCtemL8oiQ6bnZAjrGnrDONrzFjDC8HcIJ8SEbK9IbYcsgSvuyYV2uqIa9K4 -d0dio2AwXjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQU -jCSMuEfsdG7tox6gCeqK0GEXsk0wHwYDVR0jBBgwFoAUZv4kfFxg+Nnf7K9Fnpeu -0euIqx0wCgYIKoZIzj0EAwIDRwAwRAIgfpO1sGKsm9euiUFXPieBGdLykPG0gcIw -cxIF4lCNuD4CIBygq1ckDzI2lXssLV0TGJBvfRFaWVhLnL19INKoMWUx +AgIMBDAwQjEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR52a7SEW1qE34IxG09 +u/lSMPTh5IUlM0nwb3kpxZeiWYz/gnjWn2+6ZOJY6UhlCQ/D/SsqHb8TxgDhZJH5 +LJM9o2AwXjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQU +qbQ15k+ogiolsNcmnr/qmnnjV9MwHwYDVR0jBBgwFoAUL6ojeUeqBISQmvEIjcKs +oOoD/gAwCgYIKoZIzj0EAwIDSAAwRQIgV2c79GRiwDuun2qiWJCqnhhU8wit8URe +4snaj364e4sCIQDPHAMfExb1zLrBtDUZjntu7oD0i8ViO6ed9r31DqSbRA== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/dac-Key.der index cce09210806453..857f559270a5c8 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/dac-Key.pem index 78efa252cd77e2..dfcfb27e4be19d 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIGsHiGb5z+52p/hULzex2ttM+Jx5trDQLVRH/ab+NNsJoAoGCCqGSM49 -AwEHoUQDQgAEL0N7ZHm1Wf0iP2bnmj0i2XgrXpi/KIkOm52QI6xp6wzja8xYwwvB -3CCfEhGyvSG2HLIEr7smFdrqiGvSuHdHYg== +MHcCAQEEIBcI/GzcHFSX9DKOEyIUPfSYa7FA5E2W4T3VsNCxCR8toAoGCCqGSM49 +AwEHoUQDQgAEedmu0hFtahN+CMRtPbv5UjD04eSFJTNJ8G95KcWXolmM/4J41p9v +umTiWOlIZQkPw/0rKh2/E8YA4WSR+SyTPQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/pai-Cert.der index 0426beabf3700a..2ef2be7bcf2426 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/pai-Cert.pem index caf128f4dfbca1..0171244582b333 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/pai-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB+DCCAZ2gAwIBAgIIU7UO1LGKayEwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIB9jCCAZ2gAwIBAgIIOZoWnKwI7IcwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowaTE7MDkGA1UEAwwyQUNNRSBNYXR0ZXIg RGV2ZWwgUEFJIDVDREE5ODk5IE12aWQ6RkZGMiBNcGlkOjAwQjIxFDASBgorBgEE AYKifAIBDARGRkYxMRQwEgYKKwYBBAGConwCAgwEMDBCMTBZMBMGByqGSM49AgEG -CCqGSM49AwEHA0IABJowGZbl6ZLqL57pSSOOSnpW7p7jfsVViHiC21vxjywf5bq/ -yEH/t72pccl9BsEjlwa+W+zdWtqj0pLh60mSEHCjZjBkMBIGA1UdEwEB/wQIMAYB -Af8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRm/iR8XGD42d/sr0Wel67R -64irHTAfBgNVHSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQD -AgNJADBGAiEAk6KjC43pD+vI95k/gtIavcVCsGivQugc/QG6fnY8oj0CIQC8/lHN -NdSoKUSGGbKOBX0KGIIeqnkhj5OA9g17iRdBSw== +CCqGSM49AwEHA0IABFKrrQwQAaVbYGjfvUd5IhKzfqSMhiDIznV5BvrNpKrrmQGD +wE6GzaNQGL90WHP+1IUd3CSmjd9ubKcnI7YCf6OjZjBkMBIGA1UdEwEB/wQIMAYB +Af8CAQAwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQvqiN5R6oEhJCa8QiNwqyg +6gP+ADAfBgNVHSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQD +AgNHADBEAiARPq7CgerZjgYNersLqt2xq2qu+UgL4n8D0mSoolfY/AIgc3wrEsQS +jirJNQ9XonuXphxrCy9S5E6FUFHdIpT5UDg= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/pai-Key.der index 6a880329e6e2d1..5157f2539be235 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/pai-Key.pem index 89d4493eb388df..d761678b0fb2a6 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIGCGabgXvJ8UtWx5My99aui8xH6ZiNxwKQDtGPh7qen+oAoGCCqGSM49 -AwEHoUQDQgAEmjAZluXpkuovnulJI45KelbunuN+xVWIeILbW/GPLB/lur/IQf+3 -valxyX0GwSOXBr5b7N1a2qPSkuHrSZIQcA== +MHcCAQEEIC3N3xFMOWyuPFkC9mF0E1ecIUKfTFa4hxbOYNZIm/ocoAoGCCqGSM49 +AwEHoUQDQgAEUqutDBABpVtgaN+9R3kiErN+pIyGIMjOdXkG+s2kquuZAYPATobN +o1AYv3RYc/7UhR3cJKaN325spycjtgJ/ow== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/test_case_vector.json index 4a52fac7a614ae..19b2f292fa44bf 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_15/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Mix of Fallback and Matter OID encoding for VID and PID: valid, Matter OIDs are used and wrong values in the common-name are ignored", "is_success_case": "true", - "dac_cert": "30820206308201ada00302010202082ec5da0710448a83300a06082a8648ce3d0403023069313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7669643a46464632204d7069643a3030423231143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200042f437b6479b559fd223f66e79a3d22d9782b5e98bf28890e9b9d9023ac69eb0ce36bcc58c30bc1dc209f1211b2bd21b61cb204afbb2615daea886bd2b8774762a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e041604148c248cb847ec746eeda31ea009ea8ad06117b24d301f0603551d2304183016801466fe247c5c60f8d9dfecaf459e97aed1eb88ab1d300a06082a8648ce3d040302034700304402207e93b5b062ac9bd7ae8941573e278119d2f290f1b481c230731205e2508db83e02201ca0ab57240f3236957b2c2d5d1318906f7d115a59584b9cbd7d20d2a8316531", - "pai_cert": "308201f83082019da003020102020853b50ed4b18a6b21300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a3069313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7669643a46464632204d7069643a3030423231143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200049a301996e5e992ea2f9ee949238e4a7a56ee9ee37ec555887882db5bf18f2c1fe5babfc841ffb7bda971c97d06c1239706be5becdd5adaa3d292e1eb49921070a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e0416041466fe247c5c60f8d9dfecaf459e97aed1eb88ab1d301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034900304602210093a2a30b8de90febc8f7993f82d21abdc542b068af42e81cfd01ba7e763ca23d022100bcfe51cd35d4a829448619b28e057d0a18821eaa79218f9380f60d7b8917414b", - "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100dd0c93fbafd3f8813c819c8101765a565c4bd7286790d708ad74ed7d45acf0e60221008e798c1bc09334d26a85f77ede890e590998f8bd56295615e2034136bbecc2de", - "dac_private_key": "6b078866f9cfee76a7f8542f37b1dadb4cf89c79b6b0d02d5447fda6fe34db09", - "dac_public_key": "042f437b6479b559fd223f66e79a3d22d9782b5e98bf28890e9b9d9023ac69eb0ce36bcc58c30bc1dc209f1211b2bd21b61cb204afbb2615daea886bd2b8774762" + "dac_cert": "30820207308201ada00302010202086b45398e710cd665300a06082a8648ce3d0403023069313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7669643a46464632204d7069643a3030423231143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d0301070342000479d9aed2116d6a137e08c46d3dbbf95230f4e1e485253349f06f7929c597a2598cff8278d69f6fba64e258e94865090fc3fd2b2a1dbf13c600e16491f92c933da360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414a9b435e64fa8822a25b0d7269ebfea9a79e357d3301f0603551d230418301680142faa237947aa0484909af1088dc2aca0ea03fe00300a06082a8648ce3d0403020348003045022057673bf46462c03bae9f6aa25890aa9e1854f308adf1445ee2c9da8f7eb87b8b022100cf1c031f1316f5ccbac1b435198e7b6eee80f48bc5623ba79df6bdf50ea49b44", + "pai_cert": "308201f63082019da0030201020208399a169cac08ec87300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a3069313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7669643a46464632204d7069643a3030423231143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d0301070342000452abad0c1001a55b6068dfbd47792212b37ea48c8620c8ce757906facda4aaeb990183c04e86cda35018bf745873fed4851ddc24a68ddf6e6ca72723b6027fa3a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604142faa237947aa0484909af1088dc2aca0ea03fe00301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d04030203470030440220113eaec281ead98e060d7abb0baaddb1ab6aaef9480be27f03d264a8a257d8fc0220737c2b12c4128e2ac9350f57a27b97a61c6b0b2f52e44e855051dd2294f95038", + "certification_declaration": "3081e706092a864886f70d010702a081d93081d6020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317c307a020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204463044022002efd031c9693288dd9c29d278f663b977c11c1f51cacfbb4165b1baeb092af10220779a8fdc147f2f706eda7e251d89e9e2324f7b00014d79d590df69205982d70c", + "dac_private_key": "1708fc6cdc1c5497f4328e1322143df4986bb140e44d96e13dd5b0d0b1091f2d", + "dac_public_key": "0479d9aed2116d6a137e08c46d3dbbf95230f4e1e485253349f06f7929c597a2598cff8278d69f6fba64e258e94865090fc3fd2b2a1dbf13c600e16491f92c933d" } diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/cd.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/cd.der index 9dd836f2b70f8c..9e82f935cedf95 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/cd.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/dac-Cert.der index 9e5f03b65c1d77..676993d0ee4c4f 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/dac-Cert.pem index ccdce33b61e588..ad74c4985ae28e 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/dac-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIICBjCCAa2gAwIBAgIINjaikl6utsowCgYIKoZIzj0EAwIwaTE7MDkGA1UEAwwy +MIICBjCCAa2gAwIBAgIIPxC8j5vOi0YwCgYIKoZIzj0EAwIwaTE7MDkGA1UEAwwy QUNNRSBNYXR0ZXIgRGV2ZWwgUEFJIDVDREE5ODk5IE12aWQ6RkZGMSBNcGlkOjAw QjExFDASBgorBgEEAYKifAIBDARGRkYyMRQwEgYKKwYBBAGConwCAgwEMDBCMjAg -Fw0yMjA0MjYwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0 +Fw0yMjA1MjcwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0 dGVyIFRlc3QgREFDMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8 -AgIMBDAwQjEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATeHQ8QmLgYBgIdhwkp -/w3H5GUHYzStdaienUh2Wr6OTO94SD4lVHjjcn4RESJ+ngrixDNGbEh3FCoiaaaE -9WuFo2AwXjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQU -kUAXwbSmhvp9wZP5YUPmaXP78nIwHwYDVR0jBBgwFoAU3MrsF3b8JdXWtby8F7jX -AYmKW+kwCgYIKoZIzj0EAwIDRwAwRAIgJE4iLT2CDZ1G0Ad6Qjo0mhh88UD7Zwkk -uCAfoe3lma8CIFtUKbA0BpTqsaJLisdD7wV0Az5FKeIis5WG9MrkmeCs +AgIMBDAwQjEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATFOQi1X2UAz5KAiZNr +iyRjNlm5Yz9J3NdMarcToKj169Xpu3fx3AphP2109x1wuGanoqsL9uUuJb4Mn4nc +xmQAo2AwXjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQU +EK8tjzDPzrF0dHazFIjGzBWYwdYwHwYDVR0jBBgwFoAUKUoWwtP/Kuuav6jyLUig +FTgFuAQwCgYIKoZIzj0EAwIDRwAwRAIgXFWgmKWD/AmvHrpl6xAa+9++YLE+V85q +hjpHpiX/MzACIE5xudZ934ph98c8cd456nmsC7mmqWokctwkSeB5tTFO -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/dac-Key.der index 4a0b6824688860..15cb9312da2586 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/dac-Key.pem index ca3fbdfe79a816..fa5e4599b0a762 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIKPyuGWkdHixqy8cXQBTIvjhJyZTM4MZDZJ6HHLYnWRioAoGCCqGSM49 -AwEHoUQDQgAE3h0PEJi4GAYCHYcJKf8Nx+RlB2M0rXWonp1Idlq+jkzveEg+JVR4 -43J+EREifp4K4sQzRmxIdxQqImmmhPVrhQ== +MHcCAQEEIEiiDKOv4TTbeTjPMdF0cHesg7vBLNlGSy0huJUnkAOroAoGCCqGSM49 +AwEHoUQDQgAExTkItV9lAM+SgImTa4skYzZZuWM/SdzXTGq3E6Co9evV6bt38dwK +YT9tdPcdcLhmp6KrC/blLiW+DJ+J3MZkAA== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/pai-Cert.der index 44f83f7f47216e..f9c9afbf4ecbb9 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/pai-Cert.pem index 5d4c359ace3e5a..97ec1f65d3091d 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/pai-Cert.pem @@ -1,13 +1,13 @@ -----BEGIN CERTIFICATE----- -MIIB9zCCAZ2gAwIBAgIIdGAndxnb2YUwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIB9jCCAZ2gAwIBAgIIQSEubpdenBYwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowaTE7MDkGA1UEAwwyQUNNRSBNYXR0ZXIg RGV2ZWwgUEFJIDVDREE5ODk5IE12aWQ6RkZGMSBNcGlkOjAwQjExFDASBgorBgEE AYKifAIBDARGRkYyMRQwEgYKKwYBBAGConwCAgwEMDBCMjBZMBMGByqGSM49AgEG -CCqGSM49AwEHA0IABAh7Y6SkNgnCOoYzYHx+cYD8opD1hS52ePYau+Gbrz+uX7Or -zEeYCrNPgkaf+R/6OTnMR8H6l4V4b0JWu46BwjGjZjBkMBIGA1UdEwEB/wQIMAYB -Af8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTcyuwXdvwl1da1vLwXuNcB -iYpb6TAfBgNVHSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQD -AgNIADBFAiEAtNbuCr+9ZOfkCmvKVfW1cF2XJfmgRV+0e8tkinnl/SoCICMY8QQ8 -vND3TzkKHWP0lkU7rFeVcMM8R0HVaWSbQhM7 +CCqGSM49AwEHA0IABCjFIo2u9LOZF6o/oWpIzWGoAVJON4SEYm4epTA2hy8rcV/0 +xGzPpVv1enzzgOi+7KlGX6YJDoaXWUSBkJr3+XGjZjBkMBIGA1UdEwEB/wQIMAYB +Af8CAQAwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQpShbC0/8q65q/qPItSKAV +OAW4BDAfBgNVHSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQD +AgNHADBEAiAZYHFaet973iZLkHafZSaka0K2qALVzXYmN15yN7Xx6gIgGY4qyGhD +EMoK69UiPPu3S8yQwj0IbDv1soUJMS0k8yI= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/pai-Key.der index 4fbb73a3d0b09c..05dfaefd132953 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/pai-Key.pem index 3beb7f644e7dda..ed75b5d234788c 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIL361TpOyUphrFDGATk+gQmnhy91ZPfP2ovb9x32PMHhoAoGCCqGSM49 -AwEHoUQDQgAECHtjpKQ2CcI6hjNgfH5xgPyikPWFLnZ49hq74ZuvP65fs6vMR5gK -s0+CRp/5H/o5OcxHwfqXhXhvQla7joHCMQ== +MHcCAQEEIO7qG6xutH6fpVw3FXOxohA16AXkr5rzWvaXL+4PxXj1oAoGCCqGSM49 +AwEHoUQDQgAEKMUija70s5kXqj+hakjNYagBUk43hIRibh6lMDaHLytxX/TEbM+l +W/V6fPOA6L7sqUZfpgkOhpdZRIGQmvf5cQ== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/test_case_vector.json index 50f0f0919ebea9..7a84dbf163100f 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_16/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Mix of Fallback and Matter OID encoding for VID and PID: wrong, Correct values encoded in the common-name are ignored", "is_success_case": "false", - "dac_cert": "30820206308201ada00302010202083636a2925eaeb6ca300a06082a8648ce3d0403023069313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7669643a46464631204d7069643a3030423131143012060a2b0601040182a27c02010c044646463231143012060a2b0601040182a27c02020c04303042323020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004de1d0f1098b81806021d870929ff0dc7e465076334ad75a89e9d48765abe8e4cef78483e255478e3727e1111227e9e0ae2c433466c4877142a2269a684f56b85a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414914017c1b4a686fa7dc193f96143e66973fbf272301f0603551d23041830168014dccaec1776fc25d5d6b5bcbc17b8d701898a5be9300a06082a8648ce3d04030203470030440220244e222d3d820d9d46d0077a423a349a187cf140fb670924b8201fa1ede599af02205b5429b0340694eab1a24b8ac743ef0574033e4529e222b39586f4cae499e0ac", - "pai_cert": "308201f73082019da00302010202087460277719dbd985300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a3069313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7669643a46464631204d7069643a3030423131143012060a2b0601040182a27c02010c044646463231143012060a2b0601040182a27c02020c04303042323059301306072a8648ce3d020106082a8648ce3d03010703420004087b63a4a43609c23a8633607c7e7180fca290f5852e7678f61abbe19baf3fae5fb3abcc47980ab34f82469ff91ffa3939cc47c1fa9785786f4256bb8e81c231a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e04160414dccaec1776fc25d5d6b5bcbc17b8d701898a5be9301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020348003045022100b4d6ee0abfbd64e7e40a6bca55f5b5705d9725f9a0455fb47bcb648a79e5fd2a02202318f1043cbcd0f74f390a1d63f496453bac579570c33c4741d569649b42133b", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100bccdb1e0d981ea6ab96d081c148b792bf27d7a3247dab9c0a625405721468de1022072c250a3f69b2211a8e580f3d3d27f54b646cbb5c88a9486be07cc5651ee8904", - "dac_private_key": "a3f2b865a47478b1ab2f1c5d005322f8e12726533383190d927a1c72d89d6462", - "dac_public_key": "04de1d0f1098b81806021d870929ff0dc7e465076334ad75a89e9d48765abe8e4cef78483e255478e3727e1111227e9e0ae2c433466c4877142a2269a684f56b85" + "dac_cert": "30820206308201ada00302010202083f10bc8f9bce8b46300a06082a8648ce3d0403023069313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7669643a46464631204d7069643a3030423131143012060a2b0601040182a27c02010c044646463231143012060a2b0601040182a27c02020c04303042323020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004c53908b55f6500cf928089936b8b24633659b9633f49dcd74c6ab713a0a8f5ebd5e9bb77f1dc0a613f6d74f71d70b866a7a2ab0bf6e52e25be0c9f89dcc66400a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041410af2d8f30cfceb1747476b31488c6cc1598c1d6301f0603551d23041830168014294a16c2d3ff2aeb9abfa8f22d48a0153805b804300a06082a8648ce3d040302034700304402205c55a098a583fc09af1eba65eb101afbdfbe60b13e57ce6a863a47a625ff333002204e71b9d67ddf8a61f7c73c71de39ea79ac0bb9a6a96a2472dc2449e079b5314e", + "pai_cert": "308201f63082019da003020102020841212e6e975e9c16300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a3069313b303906035504030c3241434d45204d617474657220446576656c20504149203543444139383939204d7669643a46464631204d7069643a3030423131143012060a2b0601040182a27c02010c044646463231143012060a2b0601040182a27c02020c04303042323059301306072a8648ce3d020106082a8648ce3d0301070342000428c5228daef4b39917aa3fa16a48cd61a801524e378484626e1ea53036872f2b715ff4c46ccfa55bf57a7cf380e8beeca9465fa6090e8697594481909af7f971a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414294a16c2d3ff2aeb9abfa8f22d48a0153805b804301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402201960715a7adf7bde264b90769f6526a46b42b6a802d5cd7626375e7237b5f1ea0220198e2ac8684310ca0aebd5223cfbb74bcc90c23d086c3bf5b28509312d24f322", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022062c95d1760f1dbe26412f2564c762b114918c9e70ccd1095507104d6c7fadd28022100c486570025adea4a23ad3ce3c3e146b38a3ed33d13faaab4ed2e397219544f44", + "dac_private_key": "48a20ca3afe134db7938cf31d1747077ac83bbc12cd9464b2d21b895279003ab", + "dac_public_key": "04c53908b55f6500cf928089936b8b24633659b9633f49dcd74c6ab713a0a8f5ebd5e9bb77f1dc0a613f6d74f71d70b866a7a2ab0bf6e52e25be0c9f89dcc66400" } diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/cd.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/cd.der index dbd1ce1c0b539d..16604780029563 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/cd.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/cd.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/dac-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/dac-Cert.der index 10780ec5dd26a8..fe0d2d5aabc4b5 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/dac-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/dac-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/dac-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/dac-Cert.pem index c7d16cce6c68ea..84bf499280ac1d 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/dac-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/dac-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIByTCCAW6gAwIBAgIIaWRWJl7M4oQwCgYIKoZIzj0EAwIwKjESMBAGA1UEAwwJ -TXZpZDpGRkYxMRQwEgYKKwYBBAGConwCAgwEMDBCMTAgFw0yMjA0MjYwMDAwMDBa +MIIByDCCAW6gAwIBAgIILzCLs682ZcQwCgYIKoZIzj0EAwIwKjESMBAGA1UEAwwJ +TXZpZDpGRkYxMRQwEgYKKwYBBAGConwCAgwEMDBCMTAgFw0yMjA1MjcwMDAwMDBa GA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3QgREFDMRQw EgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDAwQjEwWTATBgcq -hkjOPQIBBggqhkjOPQMBBwNCAARLkvF7+FxWjNxOTTEGTp2wXwnZQjrWYfaS817o -X/0jgZb6+0rFiCrFnK99r99TorOuOBbNqXZXbKDp/+J/4C2Mo2AwXjAMBgNVHRMB -Af8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUoJdo8ecGaTL8kvT79KfD -rLZJGCUwHwYDVR0jBBgwFoAUDdb4OWpTLIeli/ovEsM6++RG+2kwCgYIKoZIzj0E -AwIDSQAwRgIhAJ3mAbmIL676/fJ8Oh35uJ4ptlGtEUxmK/MBdjfHq6j+AiEAhAht -TPKkThK5JaNiHTcLK2gyl9CC73HXhNr5xKJfKbA= +hkjOPQIBBggqhkjOPQMBBwNCAAQ/2ZZJulDtjKzlHVy0IiuSX3fkf+uq/Go+uWrf +R8eyL2nAYznZYUw3qqNuEdrVsapQbcj0rComaLIyMcrV7HXxo2AwXjAMBgNVHRMB +Af8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUv12HZ/IUBDKNDWJf+HK3 +42ks7H4wHwYDVR0jBBgwFoAUpi3f4yBe2vmeUif5KfDbtc0fcWIwCgYIKoZIzj0E +AwIDSAAwRQIhAIM5lg2NMCO4Xltu/l3S06bLGh3+QQi7ungjFblQbtkYAiA4fGeG +m8LrIKV783ojxrVUx8BGjZyFEEDwcOeW8QznbA== -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/dac-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/dac-Key.der index c3bbbe10e7afc7..15944b79356ecd 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/dac-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/dac-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/dac-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/dac-Key.pem index 1dcb62c3a25769..36074ac3018c2e 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/dac-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/dac-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEILWCfY3cjxpS8POyTOojrTPXJKt6W76MhnpFRhg7w01KoAoGCCqGSM49 -AwEHoUQDQgAES5Lxe/hcVozcTk0xBk6dsF8J2UI61mH2kvNe6F/9I4GW+vtKxYgq -xZyvfa/fU6KzrjgWzal2V2yg6f/if+AtjA== +MHcCAQEEIIrL52clUzCDPlJ1ec4ArlsF3kyLDCx0WoAKpDjug4h1oAoGCCqGSM49 +AwEHoUQDQgAEP9mWSbpQ7Yys5R1ctCIrkl935H/rqvxqPrlq30fHsi9pwGM52WFM +N6qjbhHa1bGqUG3I9KwqJmiyMjHK1ex18Q== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/pai-Cert.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/pai-Cert.der index 748e8d64b3e262..48f5fc9bf91e14 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/pai-Cert.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/pai-Cert.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/pai-Cert.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/pai-Cert.pem index a36fc3e4df3520..173b6354523c1b 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/pai-Cert.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/pai-Cert.pem @@ -1,12 +1,12 @@ -----BEGIN CERTIFICATE----- -MIIBtzCCAV6gAwIBAgIIBmfvGkKEKAswCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP -TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA0MjYw +MIIBtzCCAV6gAwIBAgIIevMNDRv28ocwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP +TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMjA1Mjcw MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowKjESMBAGA1UEAwwJTXZpZDpGRkYxMRQw -EgYKKwYBBAGConwCAgwEMDBCMTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABBvQ -clzbzGk3Er+VbXdcSq/3DhnX28M5d9rg14/ldxIwLGUUAGPMwAMdtr6l9dbxO8bZ -EShbsS4RZNvP4cvImmejZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/ -BAQDAgEGMB0GA1UdDgQWBBQN1vg5alMsh6WL+i8Swzr75Eb7aTAfBgNVHSMEGDAW -gBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNHADBEAiBuLs2UXYzE -q8WUfaUEogUv1w7oXQti62az6vOQyHZeLAIgcRdtrn3B7vHZr4TWoGlykHjbxeyd -ORfyxwt9W6Ri+hw= +EgYKKwYBBAGConwCAgwEMDBCMTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABO0Y +q5AwEFZLuPSs/+WprAIUxQSpDJfmhNw9kloEIyjwwUeCC/QozPRLNrE3HoHvVrvr +76rRXnBmfr5hhLjmcuijZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/ +BAQDAgEGMB0GA1UdDgQWBBSmLd/jIF7a+Z5SJ/kp8Nu1zR9xYjAfBgNVHSMEGDAW +gBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNHADBEAiBJqarfgp5Y +xWk+JRf1Vn3bEBhB3mV+YABfrbMhT1OjQAIgUdIqaiFIjWV74ksHfmG91L/WFGlE +7WMQ+47CuKSlwAQ= -----END CERTIFICATE----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/pai-Key.der b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/pai-Key.der index 0a2ff5c6f40462..856e91133dd483 100644 Binary files a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/pai-Key.der and b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/pai-Key.der differ diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/pai-Key.pem b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/pai-Key.pem index 6ecb67b51062d2..f7241662a1ce8a 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/pai-Key.pem +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/pai-Key.pem @@ -1,5 +1,5 @@ -----BEGIN EC PRIVATE KEY----- -MHcCAQEEIOsLfErihojvByHetHApvIeb4jDnrrOgyf03bUznemw5oAoGCCqGSM49 -AwEHoUQDQgAEG9ByXNvMaTcSv5Vtd1xKr/cOGdfbwzl32uDXj+V3EjAsZRQAY8zA -Ax22vqX11vE7xtkRKFuxLhFk28/hy8iaZw== +MHcCAQEEILRP8HmxxmxfHSff7kAt86OuYECwsw3ti5yy9PvIe6eQoAoGCCqGSM49 +AwEHoUQDQgAE7RirkDAQVku49Kz/5amsAhTFBKkMl+aE3D2SWgQjKPDBR4IL9CjM +9Es2sTcege9Wu+vvqtFecGZ+vmGEuOZy6A== -----END EC PRIVATE KEY----- diff --git a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/test_case_vector.json b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/test_case_vector.json index 3fb21bd1b51b1e..3b14324bdc5840 100644 --- a/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/test_case_vector.json +++ b/credentials/development/commissioner_dut/struct_pai_vidpid_fallback_encoding_17/test_case_vector.json @@ -1,9 +1,9 @@ { "description": "PAI Test Vector: Mix of Fallback and Matter OID encoding for VID and PID: invalid, PID is using Matter OID then VID must also use Matter OID", "is_success_case": "false", - "dac_cert": "308201c93082016ea0030201020208696456265ecce284300a06082a8648ce3d040302302a3112301006035504030c094d7669643a4646463131143012060a2b0601040182a27c02020c04303042313020170d3232303432363030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200044b92f17bf85c568cdc4e4d31064e9db05f09d9423ad661f692f35ee85ffd238196fafb4ac5882ac59caf7dafdf53a2b3ae3816cda976576ca0e9ffe27fe02d8ca360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414a09768f1e7066932fc92f4fbf4a7c3acb6491825301f0603551d230418301680140dd6f8396a532c87a58bfa2f12c33afbe446fb69300a06082a8648ce3d04030203490030460221009de601b9882faefafdf27c3a1df9b89e29b651ad114c662bf3017637c7aba8fe02210084086d4cf2a44e12b925a3621d370b2b683297d082ef71d784daf9c4a25f29b0", - "pai_cert": "308201b73082015ea00302010202080667ef1a4284280b300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303432363030303030305a180f39393939313233313233353935395a302a3112301006035504030c094d7669643a4646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200041bd0725cdbcc693712bf956d775c4aaff70e19d7dbc33977dae0d78fe57712302c65140063ccc0031db6bea5f5d6f13bc6d911285bb12e1164dbcfe1cbc89a67a366306430120603551d130101ff040830060101ff020101300e0603551d0f0101ff040403020106301d0603551d0e041604140dd6f8396a532c87a58bfa2f12c33afbe446fb69301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402206e2ecd945d8cc4abc5947da504a2052fd70ee85d0b62eb66b3eaf390c8765e2c022071176dae7dc1eef1d9af84d6a069729078dbc5ec9d3917f2c70b7d5ba462fa1c", - "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502206f09b8e0c3b8fb4490ccdeadd3895e809cba70319cdb75ccf5fc66b51072b5ae0221009f3db6aefce25aa3f7f36e596ffbff48e9475248841be737cffe62eada8f6813", - "dac_private_key": "b5827d8ddc8f1a52f0f3b24cea23ad33d724ab7a5bbe8c867a4546183bc34d4a", - "dac_public_key": "044b92f17bf85c568cdc4e4d31064e9db05f09d9423ad661f692f35ee85ffd238196fafb4ac5882ac59caf7dafdf53a2b3ae3816cda976576ca0e9ffe27fe02d8c" + "dac_cert": "308201c83082016ea00302010202082f308bb3af3665c4300a06082a8648ce3d040302302a3112301006035504030c094d7669643a4646463131143012060a2b0601040182a27c02020c04303042313020170d3232303532373030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d030107034200043fd99649ba50ed8cace51d5cb4222b925f77e47febaafc6a3eb96adf47c7b22f69c06339d9614c37aaa36e11dad5b1aa506dc8f4ac2a2668b23231cad5ec75f1a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414bf5d8767f21404328d0d625ff872b7e3692cec7e301f0603551d23041830168014a62ddfe3205edaf99e5227f929f0dbb5cd1f7162300a06082a8648ce3d04030203480030450221008339960d8d3023b85e5b6efe5dd2d3a6cb1a1dfe4108bbba782315b9506ed9180220387c67869bc2eb20a57bf37a23c6b554c7c0468d9c851040f070e796f10ce76c", + "pai_cert": "308201b73082015ea00302010202087af30d0d1bf6f287300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3232303532373030303030305a180f39393939313233313233353935395a302a3112301006035504030c094d7669643a4646463131143012060a2b0601040182a27c02020c04303042313059301306072a8648ce3d020106082a8648ce3d03010703420004ed18ab903010564bb8f4acffe5a9ac0214c504a90c97e684dc3d925a042328f0c147820bf428ccf44b36b1371e81ef56bbebefaad15e70667ebe6184b8e672e8a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414a62ddfe3205edaf99e5227f929f0dbb5cd1f7162301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d0403020347003044022049a9aadf829e58c5693e2517f5567ddb101841de657e60005fadb3214f53a340022051d22a6a21488d657be24b077e61bdd4bfd6146944ed6310fb8ec2b8a4a5c004", + "certification_declaration": "3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501f1ff360204b118250334122c04135a494732303134315a423333303030312d32342405002406002507769824080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502204d2a66e481c87ed809de40a15bfe7d9d1367a6bcb03ea6c3ef32d33d519d0b16022100f70d4962fe3e432da5cb021217514dca155ffd4dbdabcd05d7f940aa3a3d714e", + "dac_private_key": "8acbe767255330833e527579ce00ae5b05de4c8b0c2c745a800aa438ee838875", + "dac_public_key": "043fd99649ba50ed8cace51d5cb4222b925f77e47febaafc6a3eb96adf47c7b22f69c06339d9614c37aaa36e11dad5b1aa506dc8f4ac2a2668b23231cad5ec75f1" } diff --git a/docs/BUG_REPORT.md b/docs/BUG_REPORT.md index 1620aa154f9d79..20b61efc789e7b 100644 --- a/docs/BUG_REPORT.md +++ b/docs/BUG_REPORT.md @@ -88,8 +88,8 @@ build) to get started. Beyond that, you can refine if more items seem relevant: * `Tested with avahi-build and it passes/fails` helps the developer with information of non-default builds that pass/fail to narrow down the problem -* `Passes with chip-tool-darwin and repl but fails with chip-tool` helps the - developer in narrowing down the problem +* `Passes with darwin-framework-tool and repl but fails with chip-tool` helps + the developer in narrowing down the problem ### Additional information diff --git a/docs/guides/BUILDING.md b/docs/guides/BUILDING.md index 782322c7a73467..5bcd865ca5db1b 100644 --- a/docs/guides/BUILDING.md +++ b/docs/guides/BUILDING.md @@ -43,7 +43,7 @@ On Debian-based Linux distributions such as Ubuntu, these dependencies can be satisfied with the following: ``` -sudo apt-get install git gcc g++ python pkg-config libssl-dev libdbus-1-dev \ +sudo apt-get install git gcc g++ pkg-config libssl-dev libdbus-1-dev \ libglib2.0-dev libavahi-client-dev ninja-build python3-venv python3-dev \ python3-pip unzip libgirepository1.0-dev libcairo2-dev libreadline-dev ``` @@ -86,7 +86,8 @@ architectures on a micro SD card. This release will have bluez 5.55 or newer which is required for BLE functionality. Boot the SD card, login with the default user account "ubuntu" and password -"ubuntu", then proceed with "How to install prerequisites on Linux". +"ubuntu", then proceed with +[Installing prerequisites on Linux](#installing-prerequisites-on-linux). Finally, install some Raspberry Pi specific dependencies: diff --git a/docs/guides/chip_tool_guide.md b/docs/guides/chip_tool_guide.md index a516faef4a79ec..5dbeb5f3b1b678 100644 --- a/docs/guides/chip_tool_guide.md +++ b/docs/guides/chip_tool_guide.md @@ -286,22 +286,23 @@ In this command: - __ and __ are device specific keys determined in the step 4. -##### Commissioning with QR code payload +##### Commissioning with QR code payload or manual pairing code -Matter devices log the QR code and its payload when they boot. +Matter devices log the QR code payload and manual pairing code when they boot. Use the following command pattern to discover devices based on the given QR code -payload and try to pair with the first discovered one: +payload or manual pairing code and try to pair with the first discovered one: ``` -$ ./chip-tool qrcode +$ ./chip-tool pairing code ``` In this command: - __ is the user-defined ID of the node being commissioned. -- __ is the QR code payload ID, for example - `MT:Y.K9042C00KA0648G00`. +- __ is the QR code payload ID, for example + `MT:Y.K9042C00KA0648G00`, or a manual pairing code like + `749701123365521327694`. #### Forgetting the already-commissioned device diff --git a/docs/guides/infineon_p6_software_update.md b/docs/guides/infineon_p6_software_update.md new file mode 100644 index 00000000000000..ae88abc5701260 --- /dev/null +++ b/docs/guides/infineon_p6_software_update.md @@ -0,0 +1,76 @@ +# Matter Software Update with Infineon P6 example applications + +The Over The Air (OTA) Software Update functionality can be added to any of the +Infineon P6 example applications by passing the `chip_enable_ota_requestor=true` +option to the build script. + +## Running the OTA Download scenario + +- An OTA Provider is a node that can respond to the OTA Requestors' queries + about available software updates and share the update packages with them. An + OTA Requestor is any node that needs to be updated and can communicate with + the OTA Provider to fetch applicable software updates. In the procedure + described below, the OTA Provider will be a Linux application and the + example running on the Infineon P6 board will work as the OTA Requestor. + +- On a Linux or Darwin platform build the chip-tool and the ota-provider-app + as follows: + + ``` + scripts/examples/gn_build_example.sh examples/chip-tool out/ + scripts/examples/gn_build_example.sh examples/ota-provider-app/linux out/debug chip_config_network_layer_ble=false + ``` + +- Build the P6 OTA Requestor application from the chip root dir: + + $ ./examples//p6/ota_base_build.sh + +- Build the P6 OTA Update application from the chip root dir: + + $ ./examples//p6/ota_update_build.sh + +* Additionally a pre-compiled bootloader must be flashed to the board using + [Cypress Programmer](https://softwaretools.infineon.com/tools/com.ifx.tb.tool.cypressprogrammer). + This image can be found at: + + $ ./third_party/p6/p6_sdk/ota/matter-psoc6-mcuboot-bootloader.hex + +* In a terminal start the Provider app passing to it the path to the Matter + OTA file created in the previous step:(output of ota_update_build step) + + ``` + rm -r /tmp/chip_* + ./out/debug/chip-ota-provider-app -f chip-p6-lighting-example.ota + ``` + +* In a separate terminal run the chip-tool commands to provision the Provider: + + ``` + ./out/chip-tool pairing onnetwork 1 20202021 + ./out/chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, {"fabricIndex": 1, "privilege": 3, "authMode": 2, "subjects": null, "targets": null}]' 1 0 + ``` + +* If the application device had been previously commissioned press USER Button + 2 to factory-reset the device. + +* In the chip-tool terminal enter: + + ``` + ./out/chip-tool pairing ble-wifi 2 20202021 3840 + ``` + +* Once the commissioning process completes enter: + + ``` + ./out/chip-tool otasoftwareupdaterequestor announce-ota-provider 1 0 0 0 2 0 + ``` + +* The application device will connect to the Provider and start the image + download. Status of the transfer can be monitored in the OTA Provider + terminal. Once the image is downloaded the device will reboot into the + downloaded image. + +In order for the Provider to successfully serve the image to a device during the +OTA Software Update process the softwareVersion parameter in the Provider config +file must be greater than the CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION +parameter set in the application's CHIPProjectConfig.h file. diff --git a/docs/guides/openthread_border_router_pi.md b/docs/guides/openthread_border_router_pi.md index 3e0ebfeea90f83..91c4b77eef3b0e 100644 --- a/docs/guides/openthread_border_router_pi.md +++ b/docs/guides/openthread_border_router_pi.md @@ -18,18 +18,16 @@ functions: [OpenThread Border Router](https://openthread.io/guides/border-router) (OTBR) released by Google is an open-source implementation of the Thread Border Router. -## Setup +## Tutorials -**Follow [this CodeLab](https://openthread.io/codelabs/openthread-border-router) -to set up your OpenThread Border Router on a Raspberry Pi 3/4 device!** +Follow the +[CodeLab tutorial on openthread.io](https://openthread.io/codelabs/openthread-border-router) +to set up your OpenThread Border Router on a Raspberry Pi 3 or Raspberry Pi 4 +device. Ubuntu and debian hosts are also supported. The CodeLab uses Nordic +Semiconductor's nRF52840 DK as the Border Router RCP device. -> Ubuntu and debian hosts are also supported! - -The CodeLab uses Nordic Semiconductor's nRF52840 DK as the Border Router RCP -device. - -- See this [guide](./openthread_rcp_nrf_dongle.md) for configuring the +- See [this guide](./openthread_rcp_nrf_dongle.md) for configuring the nRF52840 Dongle as an RCP device. -- See this - [guide](https://www.silabs.com/documents/public/application-notes/an1256-using-sl-rcp-with-openthread-border-router.pdf) +- See + [this guide](https://www.silabs.com/documents/public/application-notes/an1256-using-sl-rcp-with-openthread-border-router.pdf) for creating Silicon Labs RCP devices. diff --git a/docs/guides/openthread_rcp_nrf_dongle.md b/docs/guides/openthread_rcp_nrf_dongle.md index 4f682f139897ef..57bb716a3ff0d0 100644 --- a/docs/guides/openthread_rcp_nrf_dongle.md +++ b/docs/guides/openthread_rcp_nrf_dongle.md @@ -10,66 +10,17 @@ You can build and program Once programmed, the dongle can be used for [configuring Thread network on a Linux machine](./openthread_border_router_pi.md). -## Building and programming the RCP firmware onto an nRF52840 Dongle - -Run the following commands to build and program the RCP firmware onto an -nRF52840 Dongle: - -1. Clone the OpenThread nRF528xx platform repository into the current - directory: - - ``` - git clone --recursive https://github.com/openthread/ot-nrf528xx.git - ``` - -2. Enter the _ot-nrf528xx_ directory: - - ``` - cd ot-nrf528xx - ``` - -3. Install OpenThread dependencies: - - ``` - ./script/bootstrap - ``` - -4. Build OpenThread for the nRF52840 Dongle: - - $ script/build nrf52840 USB_trans -DOT_BOOTLOADER=USB -DOT_THREAD_VERSION=1.2 +## Requirements - This creates an RCP image at `build/bin/ot-rcp`. +You need to set up the +[nRF Connect SDK](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/index.html) +to build and program the OpenThread Radio Co-Processor to the nRF52840 Dongle. +Read the +[nRF Connect SDK Getting started](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/getting_started.html) +documentation for more information. -5. Convert the RCP image to the `.hex` format: - - ``` - arm-none-eabi-objcopy -O ihex build/bin/ot-rcp build/bin/ot-rcp.hex - ``` - -6. Install - [nRF Util](https://www.nordicsemi.com/Software-and-tools/Development-Tools/nRF-Util): - - ``` - python3 -m pip install -U nrfutil - ``` - -7. Generate the RCP firmware package: - - ``` - nrfutil pkg generate --hw-version 52 --sd-req=0x00 \ - --application build/bin/ot-rcp.hex \ - --application-version 1 build/bin/ot-rcp.zip - ``` - -8. Connect the nRF52840 Dongle to the USB port. - -9. Press the **Reset** button on the dongle to put it into the DFU mode. Red - LED on the dongle starts blinking. - -10. To install the RCP firmware package onto the dongle, run the following - command, with `/dev/ttyACM0` replaced with the device node name of your - nRF52840 Dongle: +## Building and programming the RCP firmware onto an nRF52840 Dongle - ``` - nrfutil dfu usb-serial -pkg build/bin/ot-rcp.zip -p /dev/ttyACM0 - ``` +After you set up the nRF Connect SDK, follow the steps in the +[Configuring a radio co-processor](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/ug_thread_tools.html#configuring-a-radio-co-processor) +section for the nRF52840 Dongle (USB transport). diff --git a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter index fb6f5cb382b0c1..0bf6a45aeaefcb 100644 --- a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter +++ b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter @@ -989,16 +989,6 @@ server cluster DoorLock = 257 { kNotSupported = 255; } - bitmap DlAlarmMask : BITMAP16 { - kLockingMechanismJammed = 0x1; - kLockResetToFactoryDefaults = 0x2; - kReserved = 0x4; - kRFModulePowerCycled = 0x8; - kWrongCodeEntryLimit = 0x10; - kFrontEscutcheonRemovedFromMain = 0x20; - kForcedDoorOpenUnderDoorLockedCondition = 0x40; - } - bitmap DlCredentialRuleMask : BITMAP8 { kSingle = 0x1; kDual = 0x2; @@ -1600,11 +1590,19 @@ server cluster GeneralDiagnostics = 51 { readonly attribute ENUM8 activeHardwareFaults[] = 5; readonly attribute ENUM8 activeRadioFaults[] = 6; readonly attribute ENUM8 activeNetworkFaults[] = 7; + readonly attribute boolean testEventTriggersEnabled = 8; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + + request struct TestEventTriggerRequest { + OCTET_STRING enableKey = 0; + INT64U eventTrigger = 1; + } + + command TestEventTrigger(TestEventTriggerRequest): DefaultSuccess = 0; } server cluster GroupKeyManagement = 63 { @@ -1730,74 +1728,6 @@ server cluster Groups = 4 { command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5; } -server cluster IasZone = 1280 { - enum IasEnrollResponseCode : ENUM8 { - kSuccess = 0; - kNotSupported = 1; - kNoEnrollPermit = 2; - kTooManyZones = 3; - } - - enum IasZoneType : ENUM16 { - kStandardCie = 0; - kMotionSensor = 13; - kContactSwitch = 21; - kFireSensor = 40; - kWaterSensor = 42; - kGasSensor = 43; - kPersonalEmergencyDevice = 44; - kVibrationMovementSensor = 45; - kRemoteControl = 271; - kKeyFob = 277; - kKeypad = 541; - kStandardWarningDevice = 549; - kGlassBreakSensor = 550; - kCarbonMonoxideSensor = 551; - kSecurityRepeater = 553; - kInvalidZoneType = 65535; - } - - bitmap IasZoneStatus : BITMAP16 { - kAlarm1 = 0x1; - kAlarm2 = 0x2; - kTamper = 0x4; - kBattery = 0x8; - kSupervisionReports = 0x10; - kRestoreReports = 0x20; - kTrouble = 0x40; - kAc = 0x80; - kTest = 0x100; - kBatteryDefect = 0x200; - } - - readonly attribute enum8 zoneState = 0; - readonly attribute enum16 zoneType = 1; - readonly attribute bitmap16 zoneStatus = 2; - attribute node_id iasCieAddress = 16; - readonly attribute int8u zoneId = 17; - readonly attribute bitmap32 featureMap = 65532; - readonly attribute int16u clusterRevision = 65533; - - request struct ZoneEnrollResponseRequest { - IasEnrollResponseCode enrollResponseCode = 0; - INT8U zoneId = 1; - } - - response struct ZoneStatusChangeNotification = 0 { - IasZoneStatus zoneStatus = 0; - BITMAP8 extendedStatus = 1; - INT8U zoneId = 2; - INT16U delay = 3; - } - - response struct ZoneEnrollRequest = 1 { - IasZoneType zoneType = 0; - INT16U manufacturerCode = 1; - } - - command ZoneEnrollResponse(ZoneEnrollResponseRequest): DefaultSuccess = 0; -} - server cluster Identify = 3 { enum IdentifyEffectIdentifier : ENUM8 { kBlink = 0; @@ -1958,6 +1888,16 @@ server cluster KeypadInput = 1289 { readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + + request struct SendKeyRequest { + CecKeyCode keyCode = 0; + } + + response struct SendKeyResponse = 1 { + KeypadInputStatusEnum status = 0; + } + + command SendKey(SendKeyRequest): SendKeyResponse = 0; } server cluster LevelControl = 8 { @@ -2092,6 +2032,20 @@ server cluster MediaInput = 1287 { readonly attribute int8u currentInput = 1; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + + request struct SelectInputRequest { + INT8U index = 0; + } + + request struct RenameInputRequest { + INT8U index = 0; + CHAR_STRING name = 1; + } + + command SelectInput(SelectInputRequest): DefaultSuccess = 0; + command ShowInputStatus(): DefaultSuccess = 1; + command HideInputStatus(): DefaultSuccess = 2; + command RenameInput(RenameInputRequest): DefaultSuccess = 3; } server cluster MediaPlayback = 1286 { @@ -2148,6 +2102,7 @@ server cluster ModeSelect = 80 { readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + readonly attribute int8u manufacturerExtension = 4293984257; request struct ChangeToModeRequest { INT8U newMode = 0; @@ -2498,6 +2453,7 @@ server cluster OperationalCredentials = 62 { kInvalidNOC = 3; kMissingCsr = 4; kTableFull = 5; + kInvalidAdminSubject = 6; kInsufficientPrivilege = 8; kFabricConflict = 9; kLabelConflict = 10; @@ -2538,13 +2494,14 @@ server cluster OperationalCredentials = 62 { request struct CSRRequestRequest { OCTET_STRING CSRNonce = 0; + optional boolean isForUpdateNOC = 1; } request struct AddNOCRequest { OCTET_STRING NOCValue = 0; optional OCTET_STRING ICACValue = 1; OCTET_STRING IPKValue = 2; - NODE_ID caseAdminNode = 3; + Int64u caseAdminSubject = 3; VENDOR_ID adminVendorId = 4; } @@ -2565,10 +2522,6 @@ server cluster OperationalCredentials = 62 { OCTET_STRING rootCertificate = 0; } - request struct RemoveTrustedRootCertificateRequest { - OCTET_STRING trustedRootIdentifier = 0; - } - response struct AttestationResponse = 1 { OCTET_STRING attestationElements = 0; OCTET_STRING signature = 1; @@ -2597,7 +2550,6 @@ server cluster OperationalCredentials = 62 { command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } server cluster PowerSource = 47 { @@ -2919,12 +2871,16 @@ server cluster Scenes = 5 { } server cluster SoftwareDiagnostics = 52 { + bitmap SoftwareDiagnosticsFeature : BITMAP32 { + kWaterMarks = 0x1; + } + struct ThreadMetrics { int64u id = 0; - char_string<8> name = 1; - int32u stackFreeCurrent = 2; - int32u stackFreeMinimum = 3; - int32u stackSize = 4; + optional char_string<8> name = 1; + optional int32u stackFreeCurrent = 2; + optional int32u stackFreeMinimum = 3; + optional int32u stackSize = 4; } info event SoftwareFault = 0 { @@ -2995,6 +2951,18 @@ server cluster TargetNavigator = 1285 { readonly attribute int8u currentTarget = 1; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + + request struct NavigateTargetRequest { + INT8U target = 0; + optional CHAR_STRING data = 1; + } + + response struct NavigateTargetResponse = 1 { + TargetNavigatorStatusEnum status = 0; + optional CHAR_STRING data = 1; + } + + command NavigateTarget(NavigateTargetRequest): NavigateTargetResponse = 0; } server cluster TemperatureMeasurement = 1026 { @@ -3006,7 +2974,7 @@ server cluster TemperatureMeasurement = 1026 { readonly attribute int16u clusterRevision = 65533; } -server cluster TestCluster = 1295 { +server cluster TestCluster = 4294048773 { enum SimpleEnum : ENUM8 { kUnspecified = 0; kValueA = 1; @@ -3049,8 +3017,8 @@ server cluster TestCluster = 1295 { } struct TestListStructOctet { - int64u fabricIndex = 0; - octet_string<32> operationalCert = 1; + int64u member1 = 0; + octet_string<32> member2 = 1; } struct NullablesAndOptionalsStruct { @@ -3395,11 +3363,16 @@ server cluster Thermostat = 513 { attribute access(write: manage) int8s minSetpointDeadBand = 25; attribute access(write: manage) ThermostatControlSequence controlSequenceOfOperation = 27; attribute access(write: manage) enum8 systemMode = 28; - readonly attribute enum8 startOfWeek = 32; - readonly attribute int8u numberOfWeeklyTransitions = 33; - readonly attribute int8u numberOfDailyTransitions = 34; + readonly attribute enum8 thermostatRunningMode = 30; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + + request struct SetpointRaiseLowerRequest { + SetpointAdjustMode mode = 0; + INT8S amount = 1; + } + + command SetpointRaiseLower(SetpointRaiseLowerRequest): DefaultSuccess = 0; } server cluster ThermostatUserInterfaceConfiguration = 516 { @@ -3495,7 +3468,7 @@ server cluster ThreadNetworkDiagnostics = 53 { } readonly attribute nullable int16u channel = 0; - readonly attribute nullable enum8 routingRole = 1; + readonly attribute nullable RoutingRole routingRole = 1; readonly attribute nullable char_string<16> networkName = 2; readonly attribute nullable int16u panId = 3; readonly attribute nullable int64u extendedPanId = 4; @@ -3503,11 +3476,11 @@ server cluster ThreadNetworkDiagnostics = 53 { readonly attribute int64u overrunCount = 6; readonly attribute NeighborTable neighborTableList[] = 7; readonly attribute RouteTable routeTableList[] = 8; - readonly attribute int32u partitionId = 9; - readonly attribute int8u weighting = 10; - readonly attribute int8u dataVersion = 11; - readonly attribute int8u stableDataVersion = 12; - readonly attribute int8u leaderRouterId = 13; + readonly attribute nullable int32u partitionId = 9; + readonly attribute nullable int8u weighting = 10; + readonly attribute nullable int8u dataVersion = 11; + readonly attribute nullable int8u stableDataVersion = 12; + readonly attribute nullable int8u leaderRouterId = 13; readonly attribute int16u detachedRoleCount = 14; readonly attribute int16u childRoleCount = 15; readonly attribute int16u routerRoleCount = 16; @@ -3550,12 +3523,12 @@ server cluster ThreadNetworkDiagnostics = 53 { readonly attribute int32u rxErrSecCount = 53; readonly attribute int32u rxErrFcsCount = 54; readonly attribute int32u rxErrOtherCount = 55; - readonly attribute int64u activeTimestamp = 56; - readonly attribute int64u pendingTimestamp = 57; - readonly attribute int32u delay = 58; - readonly attribute SecurityPolicy securityPolicy[] = 59; - readonly attribute octet_string<4> channelMask = 60; - readonly attribute OperationalDatasetComponents operationalDatasetComponents[] = 61; + readonly attribute nullable int64u activeTimestamp = 56; + readonly attribute nullable int64u pendingTimestamp = 57; + readonly attribute nullable int32u delay = 58; + readonly attribute nullable SecurityPolicy securityPolicy = 59; + readonly attribute nullable octet_string<4> channelMask = 60; + readonly attribute nullable OperationalDatasetComponents operationalDatasetComponents = 61; readonly attribute NetworkFault activeNetworkFaultsList[] = 62; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -3775,8 +3748,12 @@ server cluster WindowCovering = 258 { } readonly attribute Type type = 0; + readonly attribute int16u physicalClosedLimitLift = 1; + readonly attribute int16u physicalClosedLimitTilt = 2; readonly attribute nullable int16u currentPositionLift = 3; readonly attribute nullable int16u currentPositionTilt = 4; + readonly attribute int16u numberOfActuationsLift = 5; + readonly attribute int16u numberOfActuationsTilt = 6; readonly attribute ConfigStatus configStatus = 7; readonly attribute nullable Percent currentPositionLiftPercentage = 8; readonly attribute nullable Percent currentPositionTiltPercentage = 9; @@ -3792,6 +3769,9 @@ server cluster WindowCovering = 258 { readonly attribute int16u installedClosedLimitTilt = 19; attribute access(write: manage) Mode mode = 23; readonly attribute bitmap16 safetyStatus = 26; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -3820,8 +3800,8 @@ server cluster WindowCovering = 258 { command GoToTiltPercentage(GoToTiltPercentageRequest): DefaultSuccess = 8; } - endpoint 0 { + device type rootdevice = 22; binding cluster OtaSoftwareUpdateProvider; server cluster Identify { @@ -3974,6 +3954,7 @@ endpoint 0 { callback attribute activeHardwareFaults; callback attribute activeRadioFaults; callback attribute activeNetworkFaults; + callback attribute testEventTriggersEnabled; callback attribute generatedCommandList; callback attribute acceptedCommandList; callback attribute attributeList; @@ -3991,67 +3972,67 @@ endpoint 0 { } server cluster ThreadNetworkDiagnostics { - ram attribute channel; - ram attribute routingRole; - ram attribute networkName; - ram attribute panId; - ram attribute extendedPanId; - ram attribute meshLocalPrefix; - ram attribute overrunCount; + callback attribute channel; + callback attribute routingRole; + callback attribute networkName; + callback attribute panId; + callback attribute extendedPanId; + callback attribute meshLocalPrefix; + callback attribute overrunCount; callback attribute neighborTableList; callback attribute routeTableList; - ram attribute partitionId; - ram attribute weighting; - ram attribute dataVersion; - ram attribute stableDataVersion; - ram attribute leaderRouterId; - ram attribute detachedRoleCount; - ram attribute childRoleCount; - ram attribute routerRoleCount; - ram attribute leaderRoleCount; - ram attribute attachAttemptCount; - ram attribute partitionIdChangeCount; - ram attribute betterPartitionAttachAttemptCount; - ram attribute parentChangeCount; - ram attribute txTotalCount; - ram attribute txUnicastCount; - ram attribute txBroadcastCount; - ram attribute txAckRequestedCount; - ram attribute txAckedCount; - ram attribute txNoAckRequestedCount; - ram attribute txDataCount; - ram attribute txDataPollCount; - ram attribute txBeaconCount; - ram attribute txBeaconRequestCount; - ram attribute txOtherCount; - ram attribute txRetryCount; - ram attribute txDirectMaxRetryExpiryCount; - ram attribute txIndirectMaxRetryExpiryCount; - ram attribute txErrCcaCount; - ram attribute txErrAbortCount; - ram attribute txErrBusyChannelCount; - ram attribute rxTotalCount; - ram attribute rxUnicastCount; - ram attribute rxBroadcastCount; - ram attribute rxDataCount; - ram attribute rxDataPollCount; - ram attribute rxBeaconCount; - ram attribute rxBeaconRequestCount; - ram attribute rxOtherCount; - ram attribute rxAddressFilteredCount; - ram attribute rxDestAddrFilteredCount; - ram attribute rxDuplicatedCount; - ram attribute rxErrNoFrameCount; - ram attribute rxErrUnknownNeighborCount; - ram attribute rxErrInvalidSrcAddrCount; - ram attribute rxErrSecCount; - ram attribute rxErrFcsCount; - ram attribute rxErrOtherCount; - ram attribute activeTimestamp; - ram attribute pendingTimestamp; - ram attribute delay; + callback attribute partitionId; + callback attribute weighting; + callback attribute dataVersion; + callback attribute stableDataVersion; + callback attribute leaderRouterId; + callback attribute detachedRoleCount; + callback attribute childRoleCount; + callback attribute routerRoleCount; + callback attribute leaderRoleCount; + callback attribute attachAttemptCount; + callback attribute partitionIdChangeCount; + callback attribute betterPartitionAttachAttemptCount; + callback attribute parentChangeCount; + callback attribute txTotalCount; + callback attribute txUnicastCount; + callback attribute txBroadcastCount; + callback attribute txAckRequestedCount; + callback attribute txAckedCount; + callback attribute txNoAckRequestedCount; + callback attribute txDataCount; + callback attribute txDataPollCount; + callback attribute txBeaconCount; + callback attribute txBeaconRequestCount; + callback attribute txOtherCount; + callback attribute txRetryCount; + callback attribute txDirectMaxRetryExpiryCount; + callback attribute txIndirectMaxRetryExpiryCount; + callback attribute txErrCcaCount; + callback attribute txErrAbortCount; + callback attribute txErrBusyChannelCount; + callback attribute rxTotalCount; + callback attribute rxUnicastCount; + callback attribute rxBroadcastCount; + callback attribute rxDataCount; + callback attribute rxDataPollCount; + callback attribute rxBeaconCount; + callback attribute rxBeaconRequestCount; + callback attribute rxOtherCount; + callback attribute rxAddressFilteredCount; + callback attribute rxDestAddrFilteredCount; + callback attribute rxDuplicatedCount; + callback attribute rxErrNoFrameCount; + callback attribute rxErrUnknownNeighborCount; + callback attribute rxErrInvalidSrcAddrCount; + callback attribute rxErrSecCount; + callback attribute rxErrFcsCount; + callback attribute rxErrOtherCount; + callback attribute activeTimestamp; + callback attribute pendingTimestamp; + callback attribute delay; callback attribute securityPolicy; - ram attribute channelMask; + callback attribute channelMask; callback attribute operationalDatasetComponents; callback attribute activeNetworkFaultsList; ram attribute featureMap default = 0x000F; @@ -4138,8 +4119,8 @@ endpoint 0 { ram attribute clusterRevision default = 3; } } - endpoint 1 { + device type onofflight = 256; server cluster Identify { ram attribute identifyTime; @@ -4184,7 +4165,7 @@ endpoint 1 { server cluster LevelControl { persist attribute currentLevel default = 0xFE; ram attribute remainingTime; - ram attribute minLevel; + ram attribute minLevel default = 0x01; ram attribute maxLevel default = 0xFE; ram attribute currentFrequency; ram attribute minFrequency; @@ -4246,7 +4227,7 @@ endpoint 1 { ram attribute numberOfPositions default = 2; ram attribute currentPosition; ram attribute multiPressMax default = 2; - ram attribute featureMap; + ram attribute featureMap default = 1; ram attribute clusterRevision default = 1; } @@ -4280,6 +4261,7 @@ endpoint 1 { callback attribute attributeList; ram attribute featureMap default = 1; ram attribute clusterRevision default = 1; + ram attribute manufacturerExtension default = 255; } server cluster DoorLock { @@ -4319,24 +4301,31 @@ endpoint 1 { } server cluster WindowCovering { - ram attribute type; + ram attribute type default = 0x08; + ram attribute physicalClosedLimitLift default = 0xFFFF; + ram attribute physicalClosedLimitTilt default = 0xFFFF; persist attribute currentPositionLift default = 0x7FFF; persist attribute currentPositionTilt default = 0x7FFF; + persist attribute numberOfActuationsLift; + persist attribute numberOfActuationsTilt; persist attribute configStatus default = 0x03; persist attribute currentPositionLiftPercentage default = 50; persist attribute currentPositionTiltPercentage default = 50; ram attribute operationalStatus; - ram attribute targetPositionLiftPercent100ths default = 500; - ram attribute targetPositionTiltPercent100ths default = 500; + ram attribute targetPositionLiftPercent100ths default = 5000; + ram attribute targetPositionTiltPercent100ths default = 5000; ram attribute endProductType; - persist attribute currentPositionLiftPercent100ths default = 500; - persist attribute currentPositionTiltPercent100ths default = 500; + persist attribute currentPositionLiftPercent100ths default = 5000; + persist attribute currentPositionTiltPercent100ths default = 5000; persist attribute installedOpenLimitLift; persist attribute installedClosedLimitLift default = 0xFFFF; persist attribute installedOpenLimitTilt; persist attribute installedClosedLimitTilt default = 0xFFFF; persist attribute mode; ram attribute safetyStatus; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; ram attribute featureMap default = 0x17; ram attribute clusterRevision default = 5; } @@ -4393,10 +4382,8 @@ endpoint 1 { ram attribute minSetpointDeadBand default = 0x19; ram attribute controlSequenceOfOperation default = 0x04; ram attribute systemMode default = 0x01; - ram attribute startOfWeek; - ram attribute numberOfWeeklyTransitions default = 7; - ram attribute numberOfDailyTransitions default = 4; - ram attribute featureMap default = 0x000b; + ram attribute thermostatRunningMode; + ram attribute featureMap default = 0x0023; ram attribute clusterRevision default = 5; } @@ -4534,16 +4521,6 @@ endpoint 1 { ram attribute clusterRevision default = 3; } - server cluster IasZone { - ram attribute zoneState; - ram attribute zoneType; - ram attribute zoneStatus; - ram attribute iasCieAddress; - ram attribute zoneId default = 0xff; - ram attribute featureMap; - ram attribute clusterRevision default = 2; - } - server cluster WakeOnLan { ram attribute MACAddress; ram attribute featureMap; @@ -4628,6 +4605,22 @@ endpoint 1 { ram attribute clusterRevision default = 1; } + server cluster ElectricalMeasurement { + ram attribute measurementType; + ram attribute totalActivePower; + ram attribute rmsVoltage default = 0xffff; + ram attribute rmsVoltageMin default = 0x8000; + ram attribute rmsVoltageMax default = 0x8000; + ram attribute rmsCurrent default = 0xffff; + ram attribute rmsCurrentMin default = 0xffff; + ram attribute rmsCurrentMax default = 0xffff; + ram attribute activePower default = 0xffff; + ram attribute activePowerMin default = 0xffff; + ram attribute activePowerMax default = 0xffff; + ram attribute featureMap; + ram attribute clusterRevision default = 3; + } + server cluster TestCluster { ram attribute boolean; ram attribute bitmap8; @@ -4712,25 +4705,9 @@ endpoint 1 { ram attribute featureMap; ram attribute clusterRevision default = 1; } - - server cluster ElectricalMeasurement { - ram attribute measurementType; - ram attribute totalActivePower; - ram attribute rmsVoltage default = 0xffff; - ram attribute rmsVoltageMin default = 0x8000; - ram attribute rmsVoltageMax default = 0x8000; - ram attribute rmsCurrent default = 0xffff; - ram attribute rmsCurrentMin default = 0xffff; - ram attribute rmsCurrentMax default = 0xffff; - ram attribute activePower default = 0xffff; - ram attribute activePowerMin default = 0xffff; - ram attribute activePowerMax default = 0xffff; - ram attribute featureMap; - ram attribute clusterRevision default = 3; - } } - endpoint 2 { + device type onofflight = 256; server cluster Groups { ram attribute nameSupport; @@ -4776,8 +4753,8 @@ endpoint 2 { ram attribute clusterRevision default = 3; } } - endpoint 65534 { + device type anonymousEndpointType = 61442; server cluster NetworkCommissioning { callback attribute maxNetworks; diff --git a/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap b/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap index 4c34a523c26579..933f095975a3c4 100644 --- a/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap +++ b/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap @@ -18,7 +18,7 @@ "package": [ { "pathRelativity": "relativeToZap", - "path": "../../../src/app/zap-templates/zcl/zcl.json", + "path": "../../../src/app/zap-templates/zcl/zcl-with-test-extensions.json", "version": "ZCL Test Data", "type": "zcl-properties" }, @@ -3366,7 +3366,16 @@ "define": "GENERAL_DIAGNOSTICS_CLUSTER", "side": "server", "enabled": 1, - "commands": [], + "commands": [ + { + "name": "TestEventTrigger", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], "attributes": [ { "name": "NetworkInterfaces", @@ -3496,6 +3505,22 @@ "maxInterval": 65534, "reportableChange": 0 }, + { + "name": "TestEventTriggersEnabled", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "GeneratedCommandList", "code": 65528, @@ -3756,7 +3781,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3770,9 +3795,9 @@ "code": 1, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "RoutingRole", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3788,7 +3813,7 @@ "side": "server", "type": "char_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", @@ -3804,7 +3829,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3820,7 +3845,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -3836,7 +3861,7 @@ "side": "server", "type": "octet_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3852,7 +3877,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -3900,7 +3925,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3916,7 +3941,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3932,7 +3957,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3948,7 +3973,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3964,7 +3989,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3980,7 +4005,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3996,7 +4021,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4012,7 +4037,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4028,7 +4053,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4044,7 +4069,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4060,7 +4085,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4076,7 +4101,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4092,7 +4117,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4108,7 +4133,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4124,7 +4149,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4140,7 +4165,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4156,7 +4181,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4172,7 +4197,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4188,7 +4213,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4204,7 +4229,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4220,7 +4245,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4236,7 +4261,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4252,7 +4277,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4268,7 +4293,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4284,7 +4309,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4300,7 +4325,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4316,7 +4341,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4332,7 +4357,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4348,7 +4373,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4364,7 +4389,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4380,7 +4405,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4396,7 +4421,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4412,7 +4437,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4428,7 +4453,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4444,7 +4469,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4460,7 +4485,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4476,7 +4501,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4492,7 +4517,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4508,7 +4533,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4524,7 +4549,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4540,7 +4565,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4556,7 +4581,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4572,7 +4597,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4588,7 +4613,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4604,7 +4629,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4620,7 +4645,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4636,7 +4661,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4652,7 +4677,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -4668,7 +4693,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -4684,7 +4709,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4698,7 +4723,7 @@ "code": 59, "mfgCode": null, "side": "server", - "type": "array", + "type": "SecurityPolicy", "included": 1, "storageOption": "External", "singleton": 0, @@ -4716,7 +4741,7 @@ "side": "server", "type": "octet_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4730,7 +4755,7 @@ "code": 61, "mfgCode": null, "side": "server", - "type": "array", + "type": "OperationalDatasetComponents", "included": 1, "storageOption": "External", "singleton": 0, @@ -5617,14 +5642,6 @@ "source": "client", "incoming": 1, "outgoing": 1 - }, - { - "name": "RemoveTrustedRootCertificate", - "code": 12, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 } ], "attributes": [ @@ -6257,22 +6274,6 @@ "maxInterval": 65344, "reportableChange": 0 }, - { - "name": "EnableLogging", - "code": 32, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x00", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, { "name": "Language", "code": 33, @@ -6497,134 +6498,6 @@ "maxInterval": 65344, "reportableChange": 0 }, - { - "name": "AlarmMask", - "code": 64, - "mfgCode": null, - "side": "server", - "type": "DlAlarmMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "KeypadOperationEventMask", - "code": 65, - "mfgCode": null, - "side": "server", - "type": "DlKeypadOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RemoteOperationEventMask", - "code": 66, - "mfgCode": null, - "side": "server", - "type": "DlRemoteOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "ManualOperationEventMask", - "code": 67, - "mfgCode": null, - "side": "server", - "type": "DlManualOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RFIDOperationEventMask", - "code": 68, - "mfgCode": null, - "side": "server", - "type": "DlRFIDOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "KeypadProgrammingEventMask", - "code": 69, - "mfgCode": null, - "side": "server", - "type": "DlKeypadOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RemoteProgrammingEventMask", - "code": 70, - "mfgCode": null, - "side": "server", - "type": "DlRemoteProgrammingEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RFIDProgrammingEventMask", - "code": 71, - "mfgCode": null, - "side": "server", - "type": "DlRFIDProgrammingEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, { "name": "ClusterRevision", "code": 65533, @@ -8395,7 +8268,7 @@ }, { "name": "Test Cluster", - "code": 1295, + "code": 4294048773, "mfgCode": null, "define": "TEST_CLUSTER", "side": "client", @@ -8447,7 +8320,7 @@ }, { "name": "Test Cluster", - "code": 1295, + "code": 4294048773, "mfgCode": null, "define": "TEST_CLUSTER", "side": "server", @@ -9828,7 +9701,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0x01", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -12220,7 +12093,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "1", "reportable": 1, "minInterval": 0, "maxInterval": 65344, @@ -12791,6 +12664,22 @@ "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 + }, + { + "name": "ManufacturerExtension", + "code": 4293984257, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "255", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 } ] }, @@ -13080,22 +12969,6 @@ "maxInterval": 65534, "reportableChange": 0 }, - { - "name": "NumberOfLogRecordsSupported", - "code": 16, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, { "name": "NumberOfTotalUsersSupported", "code": 17, @@ -13288,22 +13161,6 @@ "maxInterval": 65534, "reportableChange": 0 }, - { - "name": "EnableLogging", - "code": 32, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 0, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, { "name": "Language", "code": 33, @@ -13576,134 +13433,6 @@ "maxInterval": 65534, "reportableChange": 0 }, - { - "name": "AlarmMask", - "code": 64, - "mfgCode": null, - "side": "server", - "type": "DlAlarmMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0xFFFF", - "reportable": 0, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "KeypadOperationEventMask", - "code": 65, - "mfgCode": null, - "side": "server", - "type": "DlKeypadOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0xFFFF", - "reportable": 0, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "RemoteOperationEventMask", - "code": 66, - "mfgCode": null, - "side": "server", - "type": "DlRemoteOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0xFFFF", - "reportable": 0, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "ManualOperationEventMask", - "code": 67, - "mfgCode": null, - "side": "server", - "type": "DlManualOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0xFFFF", - "reportable": 0, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "RFIDOperationEventMask", - "code": 68, - "mfgCode": null, - "side": "server", - "type": "DlRFIDOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0xFFFF", - "reportable": 0, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "KeypadProgrammingEventMask", - "code": 69, - "mfgCode": null, - "side": "server", - "type": "DlKeypadOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0xFFFF", - "reportable": 0, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "RemoteProgrammingEventMask", - "code": 70, - "mfgCode": null, - "side": "server", - "type": "DlRemoteProgrammingEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0xFFFF", - "reportable": 0, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "RFIDProgrammingEventMask", - "code": 71, - "mfgCode": null, - "side": "server", - "type": "DlRFIDProgrammingEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0xFFFF", - "reportable": 0, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, { "name": "GeneratedCommandList", "code": 65528, @@ -13889,15 +13618,79 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0x08", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PhysicalClosedLimitLift", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFFFF", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65545, + "reportableChange": 0 + }, + { + "name": "PhysicalClosedLimitTilt", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFFFF", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65545, + "reportableChange": 0 + }, + { + "name": "CurrentPositionLift", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x7FFF", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentPositionTilt", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x7FFF", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "CurrentPositionLift", - "code": 3, + "name": "NumberOfActuationsLift", + "code": 5, "mfgCode": null, "side": "server", "type": "int16u", @@ -13905,15 +13698,15 @@ "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "0x7FFF", + "defaultValue": "0x0000", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65545, "reportableChange": 0 }, { - "name": "CurrentPositionTilt", - "code": 4, + "name": "NumberOfActuationsTilt", + "code": 6, "mfgCode": null, "side": "server", "type": "int16u", @@ -13921,10 +13714,10 @@ "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "0x7FFF", + "defaultValue": "0x0000", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65545, "reportableChange": 0 }, { @@ -14001,7 +13794,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "500", + "defaultValue": "5000", "reportable": 1, "minInterval": 0, "maxInterval": 10000, @@ -14017,7 +13810,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "500", + "defaultValue": "5000", "reportable": 1, "minInterval": 0, "maxInterval": 10000, @@ -14049,7 +13842,7 @@ "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "500", + "defaultValue": "5000", "reportable": 1, "minInterval": 0, "maxInterval": 10000, @@ -14065,7 +13858,7 @@ "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "500", + "defaultValue": "5000", "reportable": 1, "minInterval": 0, "maxInterval": 10000, @@ -14167,6 +13960,54 @@ "maxInterval": 65344, "reportableChange": 0 }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "FeatureMap", "code": 65532, @@ -14803,7 +14644,7 @@ "code": 0, "mfgCode": null, "source": "client", - "incoming": 0, + "incoming": 1, "outgoing": 1 }, { @@ -14829,14 +14670,6 @@ "source": "client", "incoming": 0, "outgoing": 1 - }, - { - "name": "GetRelayStatusLog", - "code": 4, - "mfgCode": null, - "source": "client", - "incoming": 0, - "outgoing": 1 } ], "attributes": [ @@ -14873,14 +14706,6 @@ "source": "server", "incoming": 1, "outgoing": 0 - }, - { - "name": "GetRelayStatusLogResponse", - "code": 1, - "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 0 } ], "attributes": [ @@ -15140,13 +14965,29 @@ "maxInterval": 65344, "reportableChange": 0 }, + { + "name": "ThermostatRunningMode", + "code": 30, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "StartOfWeek", "code": 32, "mfgCode": null, "side": "server", "type": "enum8", - "included": 1, + "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, @@ -15162,7 +15003,7 @@ "mfgCode": null, "side": "server", "type": "int8u", - "included": 1, + "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, @@ -15178,7 +15019,7 @@ "mfgCode": null, "side": "server", "type": "int8u", - "included": 1, + "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, @@ -15214,7 +15055,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x000b", + "defaultValue": "0x0023", "reportable": 1, "minInterval": 0, "maxInterval": 65344, @@ -17998,7 +17839,7 @@ "code": 0, "mfgCode": null, "source": "client", - "incoming": 0, + "incoming": 1, "outgoing": 1 } ], @@ -18028,7 +17869,16 @@ "define": "TARGET_NAVIGATOR_CLUSTER", "side": "server", "enabled": 1, - "commands": [], + "commands": [ + { + "name": "NavigateTargetResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], "attributes": [ { "name": "TargetList", @@ -18404,7 +18254,7 @@ "code": 0, "mfgCode": null, "source": "client", - "incoming": 0, + "incoming": 1, "outgoing": 1 }, { @@ -18412,7 +18262,7 @@ "code": 1, "mfgCode": null, "source": "client", - "incoming": 0, + "incoming": 1, "outgoing": 1 }, { @@ -18420,7 +18270,7 @@ "code": 2, "mfgCode": null, "source": "client", - "incoming": 0, + "incoming": 1, "outgoing": 1 }, { @@ -18428,7 +18278,7 @@ "code": 3, "mfgCode": null, "source": "client", - "incoming": 0, + "incoming": 1, "outgoing": 1 } ], @@ -18634,7 +18484,7 @@ "code": 0, "mfgCode": null, "source": "client", - "incoming": 0, + "incoming": 1, "outgoing": 1 } ], @@ -18664,7 +18514,16 @@ "define": "KEYPAD_INPUT_CLUSTER", "side": "server", "enabled": 1, - "commands": [], + "commands": [ + { + "name": "SendKeyResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], "attributes": [ { "name": "FeatureMap", @@ -19312,7 +19171,7 @@ }, { "name": "Test Cluster", - "code": 1295, + "code": 4294048773, "mfgCode": null, "define": "TEST_CLUSTER", "side": "client", @@ -19484,7 +19343,7 @@ }, { "name": "Test Cluster", - "code": 1295, + "code": 4294048773, "mfgCode": null, "define": "TEST_CLUSTER", "side": "server", @@ -23175,22 +23034,6 @@ "maxInterval": 65344, "reportableChange": 0 }, - { - "name": "EnableLogging", - "code": 32, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x00", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, { "name": "Language", "code": 33, @@ -23415,134 +23258,6 @@ "maxInterval": 65344, "reportableChange": 0 }, - { - "name": "AlarmMask", - "code": 64, - "mfgCode": null, - "side": "server", - "type": "DlAlarmMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "KeypadOperationEventMask", - "code": 65, - "mfgCode": null, - "side": "server", - "type": "DlKeypadOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RemoteOperationEventMask", - "code": 66, - "mfgCode": null, - "side": "server", - "type": "DlRemoteOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "ManualOperationEventMask", - "code": 67, - "mfgCode": null, - "side": "server", - "type": "DlManualOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RFIDOperationEventMask", - "code": 68, - "mfgCode": null, - "side": "server", - "type": "DlRFIDOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "KeypadProgrammingEventMask", - "code": 69, - "mfgCode": null, - "side": "server", - "type": "DlKeypadOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RemoteProgrammingEventMask", - "code": 70, - "mfgCode": null, - "side": "server", - "type": "DlRemoteProgrammingEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RFIDProgrammingEventMask", - "code": 71, - "mfgCode": null, - "side": "server", - "type": "DlRFIDProgrammingEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, { "name": "ClusterRevision", "code": 65533, @@ -25443,5 +25158,6 @@ "endpointVersion": 1, "deviceIdentifier": 61442 } - ] -} \ No newline at end of file + ], + "log": [] +} diff --git a/examples/all-clusters-app/ameba/chip_main.cmake b/examples/all-clusters-app/ameba/chip_main.cmake index 52a77e443857f3..709434c6017f2e 100755 --- a/examples/all-clusters-app/ameba/chip_main.cmake +++ b/examples/all-clusters-app/ameba/chip_main.cmake @@ -16,6 +16,7 @@ include(${pigweed_dir}/pw_protobuf_compiler/proto.cmake) set(dir_pw_third_party_nanopb "${chip_dir}/third_party/nanopb/repo" CACHE STRING "" FORCE) +pw_set_module_config(pw_rpc_CONFIG pw_rpc.disable_global_mutex_config) pw_set_backend(pw_log pw_log_basic) pw_set_backend(pw_assert pw_assert_log) pw_set_backend(pw_sys_io pw_sys_io.ameba) @@ -121,6 +122,7 @@ list( ${chip_dir}/src/app/clusters/ota-requestor/DefaultOTARequestorDriver.cpp ${chip_dir}/src/app/clusters/ota-requestor/DefaultOTARequestorStorage.cpp ${chip_dir}/src/app/clusters/ota-requestor/ota-requestor-server.cpp + ${chip_dir}/examples/platform/ameba/ota/OTAInitializer.cpp ) endif (matter_enable_ota_requestor) @@ -139,6 +141,8 @@ list( ${chip_dir}/examples/all-clusters-app/ameba/main/Globals.cpp ${chip_dir}/examples/all-clusters-app/ameba/main/LEDWidget.cpp ${chip_dir}/examples/all-clusters-app/ameba/main/DsoHack.cpp + + ${chip_dir}/examples/providers/DeviceInfoProviderImpl.cpp ) add_library( @@ -178,6 +182,8 @@ target_include_directories( ${chip_dir}/examples/all-clusters-app/all-clusters-common ${chip_dir}/examples/all-clusters-app/all-clusters-common/include ${chip_dir}/examples/all-clusters-app/ameba/main/include + ${chip_dir}/examples/platform/ameba + ${chip_dir}/examples/providers ${chip_dir_output}/gen/include ${chip_dir}/src/include/ ${chip_dir}/src/lib/ @@ -240,14 +246,6 @@ list( ) endif (matter_enable_rpc) -if (matter_enable_ota_requestor) -list( - APPEND chip_main_flags - - -DCONFIG_ENABLE_OTA_REQUESTOR=1 -) -endif (matter_enable_ota_requestor) - list( APPEND chip_main_cpp_flags diff --git a/examples/all-clusters-app/ameba/main/DeviceCallbacks.cpp b/examples/all-clusters-app/ameba/main/DeviceCallbacks.cpp index 8f18f730999cde..2db5f21cee2c85 100644 --- a/examples/all-clusters-app/ameba/main/DeviceCallbacks.cpp +++ b/examples/all-clusters-app/ameba/main/DeviceCallbacks.cpp @@ -36,6 +36,9 @@ #include #include #include +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR +#include +#endif #include "Globals.h" #include "LEDWidget.h" @@ -50,7 +53,15 @@ using namespace ::chip::DeviceManager; using namespace ::chip::Logging; uint32_t identifyTimerCount; -constexpr uint32_t kIdentifyTimerDelayMS = 250; +constexpr uint32_t kIdentifyTimerDelayMS = 250; +constexpr uint32_t kInitOTARequestorDelaySec = 3; + +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR +void InitOTARequestorHandler(System::Layer * systemLayer, void * appState) +{ + OTAInitializer::Instance().InitOTARequestor(); +} +#endif void DeviceCallbacks::DeviceEventCallback(const ChipDeviceEvent * event, intptr_t arg) { @@ -97,6 +108,9 @@ void DeviceCallbacks::PostAttributeChangeCallback(EndpointId endpointId, Cluster void DeviceCallbacks::OnInternetConnectivityChange(const ChipDeviceEvent * event) { +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR + static bool isOTAInitialized = false; +#endif if (event->InternetConnectivityChange.IPv4 == kConnectivity_Established) { ChipLogProgress(DeviceLayer, "IPv4 Server ready..."); @@ -110,6 +124,15 @@ void DeviceCallbacks::OnInternetConnectivityChange(const ChipDeviceEvent * event { ChipLogProgress(DeviceLayer, "IPv6 Server ready..."); chip::app::DnssdServer::Instance().StartServer(); +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR + // Init OTA requestor only when we have gotten IPv6 address + if (!isOTAInitialized) + { + chip::DeviceLayer::SystemLayer().StartTimer(chip::System::Clock::Seconds32(kInitOTARequestorDelaySec), + InitOTARequestorHandler, nullptr); + isOTAInitialized = true; + } +#endif } else if (event->InternetConnectivityChange.IPv6 == kConnectivity_Lost) { diff --git a/examples/all-clusters-app/ameba/main/chipinterface.cpp b/examples/all-clusters-app/ameba/main/chipinterface.cpp index 306d9c36717e00..673f4d5238ee23 100644 --- a/examples/all-clusters-app/ameba/main/chipinterface.cpp +++ b/examples/all-clusters-app/ameba/main/chipinterface.cpp @@ -22,6 +22,7 @@ #include "Globals.h" #include "LEDWidget.h" #include "chip_porting.h" +#include #include #include @@ -39,16 +40,6 @@ #include #include -#if CONFIG_ENABLE_OTA_REQUESTOR -#include "app/clusters/ota-requestor/DefaultOTARequestorStorage.h" -#include -#include -#include -#include -#include -#include -#endif - #if CONFIG_ENABLE_PW_RPC #include "Rpc.h" #endif @@ -99,55 +90,7 @@ Identify gIdentify1 = { #endif static DeviceCallbacks EchoCallbacks; - -#if CONFIG_ENABLE_OTA_REQUESTOR -DefaultOTARequestor gRequestorCore; -DefaultOTARequestorStorage gRequestorStorage; -ExtendedOTARequestorDriver gRequestorUser; -BDXDownloader gDownloader; -AmebaOTAImageProcessor gImageProcessor; -chip::ota::DefaultOTARequestorUserConsent gUserConsentProvider; -static chip::ota::UserConsentState gUserConsentState = chip::ota::UserConsentState::kGranted; -#endif - -#if CONFIG_ENABLE_OTA_REQUESTOR -extern "C" void amebaQueryImageCmdHandler() -{ - ChipLogProgress(DeviceLayer, "Calling amebaQueryImageCmdHandler"); - PlatformMgr().ScheduleWork([](intptr_t) { GetRequestorInstance()->TriggerImmediateQuery(); }); -} - -extern "C" void amebaApplyUpdateCmdHandler() -{ - ChipLogProgress(DeviceLayer, "Calling amebaApplyUpdateCmdHandler"); - PlatformMgr().ScheduleWork([](intptr_t) { GetRequestorInstance()->ApplyUpdate(); }); -} - -static void InitOTARequestor(void) -{ - // Initialize and interconnect the Requestor and Image Processor objects -- START - SetRequestorInstance(&gRequestorCore); - - gRequestorStorage.Init(chip::Server::GetInstance().GetPersistentStorage()); - - // Set server instance used for session establishment - gRequestorCore.Init(chip::Server::GetInstance(), gRequestorStorage, gRequestorUser, gDownloader); - - gImageProcessor.SetOTADownloader(&gDownloader); - - // Connect the Downloader and Image Processor objects - gDownloader.SetImageProcessorDelegate(&gImageProcessor); - gRequestorUser.Init(&gRequestorCore, &gImageProcessor); - - if (gUserConsentState != chip::ota::UserConsentState::kUnknown) - { - gUserConsentProvider.SetUserConsentState(gUserConsentState); - gRequestorUser.SetUserConsentDelegate(&gUserConsentProvider); - } - - // Initialize and interconnect the Requestor and Image Processor objects -- END -} -#endif // CONFIG_ENABLE_OTA_REQUESTOR +chip::DeviceLayer::DeviceInfoProviderImpl gExampleDeviceInfoProvider; static void InitServer(intptr_t context) { @@ -155,15 +98,13 @@ static void InitServer(intptr_t context) static chip::CommonCaseDeviceServerInitParams initParams; initParams.InitializeStaticResourcesBeforeServerInit(); chip::Server::GetInstance().Init(initParams); + gExampleDeviceInfoProvider.SetStorageDelegate(&Server::GetInstance().GetPersistentStorage()); + chip::DeviceLayer::SetDeviceInfoProvider(&gExampleDeviceInfoProvider); // Initialize device attestation config SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider()); NetWorkCommissioningInstInit(); -#if CONFIG_ENABLE_OTA_REQUESTOR - InitOTARequestor(); -#endif - if (RTW_SUCCESS != wifi_is_connected_to_ap()) { // QR code will be used with CHIP Tool diff --git a/examples/all-clusters-app/cc13x2x7_26x2x7/BUILD.gn b/examples/all-clusters-app/cc13x2x7_26x2x7/BUILD.gn index 33383bb4484128..48f3ef5b7583f9 100644 --- a/examples/all-clusters-app/cc13x2x7_26x2x7/BUILD.gn +++ b/examples/all-clusters-app/cc13x2x7_26x2x7/BUILD.gn @@ -37,6 +37,7 @@ ti_sysconfig("sysconfig") { sources = [ "${project_dir}/chip.syscfg" ] outputs = [ + "ti_devices_config.c", "ti_radio_config.c", "ti_radio_config.h", "ti_drivers_config.c", diff --git a/examples/all-clusters-app/cc13x2x7_26x2x7/args.gni b/examples/all-clusters-app/cc13x2x7_26x2x7/args.gni index 18a8ca6d91747c..bd6e49f7871b4f 100644 --- a/examples/all-clusters-app/cc13x2x7_26x2x7/args.gni +++ b/examples/all-clusters-app/cc13x2x7_26x2x7/args.gni @@ -26,7 +26,6 @@ ti_simplelink_board = "LP_CC2652R7" optimize_debug_level = "s" lwip_debug = false -#optimize_for_size=true chip_enable_ota_requestor = false # Disable FTD Build for all-clusters app to save Flash diff --git a/examples/all-clusters-app/cc13x2x7_26x2x7/chip.syscfg b/examples/all-clusters-app/cc13x2x7_26x2x7/chip.syscfg index c1419eaf6d22bb..4bfc7e52cbd5c5 100644 --- a/examples/all-clusters-app/cc13x2x7_26x2x7/chip.syscfg +++ b/examples/all-clusters-app/cc13x2x7_26x2x7/chip.syscfg @@ -89,8 +89,7 @@ for(var setting in ccfgSettings) CCFG[setting] = ccfgSettings[setting]; } -// Disable CCFG generation, this is added by the BIM project -CCFG.enableCodeGeneration = false; +CCFG.enableCodeGeneration = true; /* NVS */ NVS1.$name = "CONFIG_NVSINTERNAL"; diff --git a/examples/all-clusters-app/cc13x2x7_26x2x7/main/ClusterManager.cpp b/examples/all-clusters-app/cc13x2x7_26x2x7/main/ClusterManager.cpp index 7fd0d0cc6f748b..40661af8cd7c7d 100644 --- a/examples/all-clusters-app/cc13x2x7_26x2x7/main/ClusterManager.cpp +++ b/examples/all-clusters-app/cc13x2x7_26x2x7/main/ClusterManager.cpp @@ -34,7 +34,6 @@ using namespace ::chip; using namespace ::chip::Inet; using namespace ::chip::System; using namespace ::chip::DeviceLayer; -using namespace ::chip::app::Clusters; constexpr uint32_t kIdentifyTimerDelayMS = 250; constexpr uint32_t kIdentifyTimerDelayPerSec = 4; @@ -44,6 +43,45 @@ ClusterManager ClusterManager::sCluster; #define ENDPOINT_ID_1 (1) #define ENDPOINT_ID_2 (2) +void OnIdentifyTriggerEffect(Identify * identify) +{ + switch (identify->mCurrentEffectIdentifier) + { + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BLINK: + PLAT_LOG("EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BLINK"); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BREATHE: + PLAT_LOG("EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BREATHE"); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_OKAY: + PLAT_LOG("EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_OKAY"); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_CHANNEL_CHANGE: + PLAT_LOG("EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_CHANNEL_CHANGE"); + break; + default: + PLAT_LOG("No identifier effect"); + break; + } + return; +} + +Identify gIdentify0 = { + chip::EndpointId{ 0 }, + [](Identify *) { PLAT_LOG("onIdentifyStart"); }, + [](Identify *) { PLAT_LOG("onIdentifyStop"); }, + EMBER_ZCL_IDENTIFY_IDENTIFY_TYPE_VISIBLE_LED, + OnIdentifyTriggerEffect, +}; + +Identify gIdentify1 = { + chip::EndpointId{ 1 }, + [](Identify *) { PLAT_LOG("onIdentifyStart"); }, + [](Identify *) { PLAT_LOG("onIdentifyStop"); }, + EMBER_ZCL_IDENTIFY_IDENTIFY_TYPE_VISIBLE_LED, + OnIdentifyTriggerEffect, +}; + void ClusterManager::OnOnOffPostAttributeChangeCallback(EndpointId endpointId, AttributeId attributeId, uint8_t * value) { VerifyOrExit(attributeId == ZCL_ON_OFF_ATTRIBUTE_ID, PLAT_LOG("Unhandled Attribute ID: '0x%04x", attributeId)); @@ -94,13 +132,13 @@ void ClusterManager::OnColorControlAttributeChangeCallback(EndpointId endpointId { hue = *value; /* Read Current Saturation value when Attribute change callback for HUE Attribute */ - ColorControl::Attributes::CurrentSaturation::Get(endpointId, &saturation); + app::Clusters::ColorControl::Attributes::CurrentSaturation::Get(endpointId, &saturation); } else { saturation = *value; /* Read Current Hue value when Attribute change callback for SATURATION Attribute */ - ColorControl::Attributes::CurrentHue::Get(endpointId, &hue); + app::Clusters::ColorControl::Attributes::CurrentHue::Get(endpointId, &hue); } PLAT_LOG("Color Control triggered: Hue: %d Saturation: %d", hue, saturation); } @@ -111,7 +149,7 @@ void ClusterManager::OnColorControlAttributeChangeCallback(EndpointId endpointId void ClusterManager::OnIdentifyPostAttributeChangeCallback(EndpointId endpointId, AttributeId attributeId, uint16_t size, uint8_t * value) { - if (attributeId == Identify::Attributes::IdentifyTime::Id && size == 2) + if (attributeId == app::Clusters::Identify::Attributes::IdentifyTime::Id && size == 2) { uint16_t identifyTime; memcpy(&identifyTime, value, size); diff --git a/examples/all-clusters-app/esp32/CMakeLists.txt b/examples/all-clusters-app/esp32/CMakeLists.txt index afef0aec0d4ab9..d7907d6ba7762f 100644 --- a/examples/all-clusters-app/esp32/CMakeLists.txt +++ b/examples/all-clusters-app/esp32/CMakeLists.txt @@ -49,6 +49,9 @@ flashing_script() if (CONFIG_ENABLE_PW_RPC) get_filename_component(CHIP_ROOT ./third_party/connectedhomeip REALPATH) include(third_party/connectedhomeip/third_party/pigweed/repo/pw_build/pigweed.cmake) + +pw_set_module_config(pw_rpc_CONFIG pw_rpc.disable_global_mutex_config) + pw_set_backend(pw_log pw_log_basic) pw_set_backend(pw_assert pw_assert_log) pw_set_backend(pw_sys_io pw_sys_io.esp32) diff --git a/examples/all-clusters-app/esp32/main/CMakeLists.txt b/examples/all-clusters-app/esp32/main/CMakeLists.txt index df3431cd088b9d..cfeb4965d92efd 100644 --- a/examples/all-clusters-app/esp32/main/CMakeLists.txt +++ b/examples/all-clusters-app/esp32/main/CMakeLists.txt @@ -78,7 +78,6 @@ set(SRC_DIRS_LIST "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/diagnostic-logs-server" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/door-lock-server" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/occupancy-sensor-server" - "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/ias-zone-server" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/ethernet-network-diagnostics-server" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/localization-configuration-server" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/time-format-localization-server" @@ -88,7 +87,6 @@ set(SRC_DIRS_LIST "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/power-source-configuration-server" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/power-source-server" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/all-clusters-app/all-clusters-common/src" - #${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/ias-zone-client ) if (CONFIG_ENABLE_PW_RPC) diff --git a/examples/all-clusters-app/esp32/main/DeviceWithDisplay.cpp b/examples/all-clusters-app/esp32/main/DeviceWithDisplay.cpp index 987a095134b16d..ef87982f8eb5eb 100644 --- a/examples/all-clusters-app/esp32/main/DeviceWithDisplay.cpp +++ b/examples/all-clusters-app/esp32/main/DeviceWithDisplay.cpp @@ -17,6 +17,7 @@ */ #include "DeviceWithDisplay.h" +#include #include #if CONFIG_HAVE_DISPLAY @@ -134,6 +135,39 @@ class EditAttributeListModel : public TouchesMatterStackModel return i == 0 ? "+" : "-"; } + // We support system modes - Off, Auto, Heat and Cool currently. This API returns true for all these modes, + // false otherwise. + bool isValidThermostatSystemMode(uint8_t systemMode) + { + chip::app::Clusters::Thermostat::ThermostatSystemMode mode = + static_cast(systemMode); + switch (mode) + { + case chip::app::Clusters::Thermostat::ThermostatSystemMode::kOff: + case chip::app::Clusters::Thermostat::ThermostatSystemMode::kAuto: + case chip::app::Clusters::Thermostat::ThermostatSystemMode::kCool: + case chip::app::Clusters::Thermostat::ThermostatSystemMode::kHeat: + return true; + default: + return false; + } + } + + bool isValidThermostatRunningMode(uint8_t runningMode) + { + chip::app::Clusters::Thermostat::ThermostatRunningMode mode = + static_cast(runningMode); + switch (mode) + { + case chip::app::Clusters::Thermostat::ThermostatRunningMode::kOff: + case chip::app::Clusters::Thermostat::ThermostatRunningMode::kCool: + case chip::app::Clusters::Thermostat::ThermostatRunningMode::kHeat: + return true; + default: + return false; + } + } + void DoAction(int i) override { auto & attribute = this->attribute(); @@ -182,20 +216,74 @@ class EditAttributeListModel : public TouchesMatterStackModel ESP_LOGI(TAG, "Humidity changed to : %d", n); app::Clusters::RelativeHumidityMeasurement::Attributes::MeasuredValue::Set(1, static_cast(n * 100)); } - else if (name == "OccupiedCoolingSetpoint") + else if (name == "CoolSetpoint") { - ESP_LOGI(TAG, "OccupiedCoolingSetpoint changed to : %d", n); + // update the occupied cooling setpoint for hardcoded endpoint 1 + ESP_LOGI(TAG, "Occupied Cooling Setpoint changed to : %d", n); app::Clusters::Thermostat::Attributes::OccupiedCoolingSetpoint::Set(1, static_cast(n * 100)); } - else if (name == "OccupiedHeatingSetpoint") + else if (name == "HeatSetpoint") { - ESP_LOGI(TAG, "OccupiedHeatingSetpoint changed to : %d", n); + // update the occupied heating setpoint for hardcoded endpoint 1 + ESP_LOGI(TAG, "Occupied Heating Setpoint changed to : %d", n); app::Clusters::Thermostat::Attributes::OccupiedHeatingSetpoint::Set(1, static_cast(n * 100)); } else if (name == "SystemMode") { - ESP_LOGI(TAG, "SystemMode changed to : %d", n); - app::Clusters::Thermostat::Attributes::OccupiedHeatingSetpoint::Set(1, n); + // System modes - Off, Auto, Cool and Heat are currently supported. + uint8_t mode = n; + // Update the system mode here for hardcoded endpoint 1 + if (isValidThermostatSystemMode(mode)) + { + ESP_LOGI(TAG, "System Mode changed to : %d", mode); + app::Clusters::Thermostat::Attributes::SystemMode::Set(1, static_cast(mode)); + // If system mode is auto set running mode to off otherwise set it to what the system mode is set to + if (mode == static_cast(chip::app::Clusters::Thermostat::ThermostatSystemMode::kAuto)) + { + app::Clusters::Thermostat::Attributes::ThermostatRunningMode::Set( + 1, static_cast(chip::app::Clusters::Thermostat::ThermostatRunningMode::kOff)); + } + else + { + if (isValidThermostatRunningMode(mode)) + { + ESP_LOGI(TAG, "Running Mode changed to : %d", mode); + app::Clusters::Thermostat::Attributes::ThermostatRunningMode::Set(1, static_cast(mode)); + } + else + { + ESP_LOGI(TAG, "Running Mode %d is not valid", mode); + } + } + } + else + { + ESP_LOGI(TAG, "System Mode %d is not valid", mode); + } + } + else if (name == "RunningMode") + { + // Get the system mode + uint8_t systemMode = static_cast(chip::app::Clusters::Thermostat::ThermostatRunningMode::kOff); + app::Clusters::Thermostat::Attributes::SystemMode::Get(1, static_cast(&systemMode)); + if (systemMode != static_cast(chip::app::Clusters::Thermostat::ThermostatSystemMode::kAuto)) + { + ESP_LOGI(TAG, "Running mode can be changed only for system mode auto. Current system mode %d", systemMode); + } + else + { + uint8_t mode = n; + // update the running mode here for hardcoded endpoint 1 + if (isValidThermostatRunningMode(mode)) + { + ESP_LOGI(TAG, "Running Mode changed to : %d", mode); + app::Clusters::Thermostat::Attributes::ThermostatRunningMode::Set(1, static_cast(mode)); + } + else + { + ESP_LOGI(TAG, "Running Mode %d is not valid", mode); + } + } } else if (name == "Current Lift") { @@ -543,11 +631,15 @@ void SetupPretendDevices() app::Clusters::TemperatureMeasurement::Attributes::MeasuredValue::Set(1, static_cast(21 * 100)); app::Clusters::Thermostat::Attributes::LocalTemperature::Set(1, static_cast(21 * 100)); AddAttribute("SystemMode", "4"); - app::Clusters::Thermostat::Attributes::SystemMode::Set(1, 4); - AddAttribute("OccupiedCoolingSetpoint", "19"); + app::Clusters::Thermostat::Attributes::SystemMode::Set( + 1, static_cast(chip::app::Clusters::Thermostat::ThermostatSystemMode::kHeat)); + AddAttribute("CoolSetpoint", "19"); app::Clusters::Thermostat::Attributes::OccupiedCoolingSetpoint::Set(1, static_cast(19 * 100)); - AddAttribute("OccupiedHeatingSetpoint", "25"); + AddAttribute("HeatSetpoint", "25"); app::Clusters::Thermostat::Attributes::OccupiedHeatingSetpoint::Set(1, static_cast(25 * 100)); + AddAttribute("RunningMode", "4"); + app::Clusters::Thermostat::Attributes::ThermostatRunningMode::Set( + 1, static_cast(chip::app::Clusters::Thermostat::ThermostatRunningMode::kHeat)); AddDevice("Humidity Sensor"); AddEndpoint("External"); diff --git a/examples/all-clusters-app/linux/AppOptions.cpp b/examples/all-clusters-app/linux/AppOptions.cpp index c3f80a2302a484..ef42660972f8d9 100644 --- a/examples/all-clusters-app/linux/AppOptions.cpp +++ b/examples/all-clusters-app/linux/AppOptions.cpp @@ -21,6 +21,8 @@ #include #include +using namespace chip::ArgParser; + using chip::ArgParser::OptionDef; using chip::ArgParser::OptionSet; using chip::ArgParser::PrintArgError; @@ -55,8 +57,8 @@ bool AppOptions::HandleOptions(const char * program, OptionSet * options, int id OptionSet * AppOptions::GetOptions() { static OptionDef optionsDef[] = { - { "dac_provider", chip::ArgParser::kArgumentRequired, kOptionDacProviderFilePath }, - { "min_commissioning_timeout", chip::ArgParser::kArgumentRequired, kOptionMinCommissioningTimeout }, + { "dac_provider", kArgumentRequired, kOptionDacProviderFilePath }, + { "min_commissioning_timeout", kArgumentRequired, kOptionMinCommissioningTimeout }, {}, }; diff --git a/examples/all-clusters-app/linux/entitlements/codesign.py b/examples/all-clusters-app/linux/entitlements/codesign.py index f14ed2e7d68d79..2cf51a1cfa5b9e 100644 --- a/examples/all-clusters-app/linux/entitlements/codesign.py +++ b/examples/all-clusters-app/linux/entitlements/codesign.py @@ -34,7 +34,8 @@ def get_identity(): "No valid identity has been found. Application will run without entitlements.") exit(0) - identity = re.search(r'\b[0-9a-fA-F]{40}\b', command_result) + command_result = command_result.replace("\\n", "\n") + identity = re.search(r'\b[0-9a-fA-F]{40}\b(?![^\n]*\(CSSMERR_TP_CERT_EXPIRED\))', command_result) if identity is None: print( "No valid identity has been found. Application will run without entitlements.") diff --git a/examples/all-clusters-app/linux/main-common.cpp b/examples/all-clusters-app/linux/main-common.cpp index 7829f3a6c1894a..d4d12553df70e7 100644 --- a/examples/all-clusters-app/linux/main-common.cpp +++ b/examples/all-clusters-app/linux/main-common.cpp @@ -21,12 +21,16 @@ #include #include #include +#include #include #include +#include +#include #include #include #include #include +#include #include #include #include @@ -41,6 +45,292 @@ using namespace chip::DeviceLayer; namespace { static LowPowerManager lowPowerManager; + +bool IsClusterPresentOnAnyEndpoint(ClusterId clusterId) +{ + bool retval = false; + + for (auto endpointId : EnabledEndpointsWithServerCluster(clusterId)) + { + IgnoreUnusedVariable(endpointId); + retval = true; + } + + return retval; +} + +/** + * Should be called when a software fault takes place on the Node. + */ +void HandleSoftwareFaultEvent(intptr_t arg) +{ + if (!IsClusterPresentOnAnyEndpoint(Clusters::SoftwareDiagnostics::Id)) + return; + + Clusters::SoftwareDiagnostics::Structs::SoftwareFaultStruct::Type softwareFault; + char threadName[kMaxThreadNameLength + 1]; + + softwareFault.id = static_cast(getpid()); + Platform::CopyString(threadName, std::to_string(softwareFault.id).c_str()); + + softwareFault.name = CharSpan::fromCharString(threadName); + + std::time_t result = std::time(nullptr); + char * asctime = std::asctime(std::localtime(&result)); + softwareFault.faultRecording = ByteSpan(Uint8::from_const_char(asctime), strlen(asctime)); + + Clusters::SoftwareDiagnosticsServer::Instance().OnSoftwareFaultDetect(softwareFault); +} + +/** + * Should be called when a general fault takes place on the Node. + */ +void HandleGeneralFaultEvent(intptr_t arg) +{ + uint32_t eventId = static_cast(arg); + + if (!IsClusterPresentOnAnyEndpoint(Clusters::GeneralDiagnostics::Id)) + return; + + if (eventId == Clusters::GeneralDiagnostics::Events::HardwareFaultChange::Id) + { + GeneralFaults previous; + GeneralFaults current; + +#if CHIP_CONFIG_TEST + // On Linux Simulation, set following hardware faults statically. + ReturnOnFailure(previous.add(EMBER_ZCL_HARDWARE_FAULT_TYPE_RADIO)); + ReturnOnFailure(previous.add(EMBER_ZCL_HARDWARE_FAULT_TYPE_POWER_SOURCE)); + + ReturnOnFailure(current.add(EMBER_ZCL_HARDWARE_FAULT_TYPE_RADIO)); + ReturnOnFailure(current.add(EMBER_ZCL_HARDWARE_FAULT_TYPE_SENSOR)); + ReturnOnFailure(current.add(EMBER_ZCL_HARDWARE_FAULT_TYPE_POWER_SOURCE)); + ReturnOnFailure(current.add(EMBER_ZCL_HARDWARE_FAULT_TYPE_USER_INTERFACE_FAULT)); +#endif + Clusters::GeneralDiagnosticsServer::Instance().OnHardwareFaultsDetect(previous, current); + } + else if (eventId == Clusters::GeneralDiagnostics::Events::RadioFaultChange::Id) + { + GeneralFaults previous; + GeneralFaults current; + +#if CHIP_CONFIG_TEST + // On Linux Simulation, set following radio faults statically. + ReturnOnFailure(previous.add(EMBER_ZCL_RADIO_FAULT_TYPE_WI_FI_FAULT)); + ReturnOnFailure(previous.add(EMBER_ZCL_RADIO_FAULT_TYPE_THREAD_FAULT)); + + ReturnOnFailure(current.add(EMBER_ZCL_RADIO_FAULT_TYPE_WI_FI_FAULT)); + ReturnOnFailure(current.add(EMBER_ZCL_RADIO_FAULT_TYPE_CELLULAR_FAULT)); + ReturnOnFailure(current.add(EMBER_ZCL_RADIO_FAULT_TYPE_THREAD_FAULT)); + ReturnOnFailure(current.add(EMBER_ZCL_RADIO_FAULT_TYPE_NFC_FAULT)); +#endif + Clusters::GeneralDiagnosticsServer::Instance().OnRadioFaultsDetect(previous, current); + } + else if (eventId == Clusters::GeneralDiagnostics::Events::NetworkFaultChange::Id) + { + GeneralFaults previous; + GeneralFaults current; + +#if CHIP_CONFIG_TEST + // On Linux Simulation, set following radio faults statically. + ReturnOnFailure(previous.add(EMBER_ZCL_NETWORK_FAULT_TYPE_HARDWARE_FAILURE)); + ReturnOnFailure(previous.add(EMBER_ZCL_NETWORK_FAULT_TYPE_NETWORK_JAMMED)); + + ReturnOnFailure(current.add(EMBER_ZCL_NETWORK_FAULT_TYPE_HARDWARE_FAILURE)); + ReturnOnFailure(current.add(EMBER_ZCL_NETWORK_FAULT_TYPE_NETWORK_JAMMED)); + ReturnOnFailure(current.add(EMBER_ZCL_NETWORK_FAULT_TYPE_CONNECTION_FAILED)); +#endif + Clusters::GeneralDiagnosticsServer::Instance().OnNetworkFaultsDetect(previous, current); + } + else + { + ChipLogError(DeviceLayer, "Unknow event ID:%d", eventId); + } +} + +/** + * Should be called when a switch operation takes place on the Node. + */ +void HandleSwitchEvent(intptr_t arg) +{ + uint32_t eventId = static_cast(arg); + + EndpointId endpoint = 1; + uint8_t newPosition = 20; + uint8_t previousPosition = 10; + uint8_t count = 3; + + if (eventId == Clusters::Switch::Events::SwitchLatched::Id) + { + Clusters::SwitchServer::Instance().OnSwitchLatch(endpoint, newPosition); + } + else if (eventId == Clusters::Switch::Events::InitialPress::Id) + { + Clusters::SwitchServer::Instance().OnInitialPress(endpoint, newPosition); + } + else if (eventId == Clusters::Switch::Events::LongPress::Id) + { + Clusters::SwitchServer::Instance().OnLongPress(endpoint, newPosition); + } + else if (eventId == Clusters::Switch::Events::ShortRelease::Id) + { + Clusters::SwitchServer::Instance().OnShortRelease(endpoint, previousPosition); + } + else if (eventId == Clusters::Switch::Events::LongRelease::Id) + { + Clusters::SwitchServer::Instance().OnLongRelease(endpoint, previousPosition); + } + else if (eventId == Clusters::Switch::Events::MultiPressOngoing::Id) + { + Clusters::SwitchServer::Instance().OnMultiPressOngoing(endpoint, newPosition, count); + } + else if (eventId == Clusters::Switch::Events::MultiPressComplete::Id) + { + Clusters::SwitchServer::Instance().OnMultiPressComplete(endpoint, newPosition, count); + } + else + { + ChipLogError(DeviceLayer, "Unknow event ID:%d", eventId); + } +} + +// when the shell is enabled, don't intercept signals since it prevents the user from +// using expected commands like CTRL-C to quit the application. (see issue #17845) +// We should stop using signals for those faults, and move to a different notification +// means, like a pipe. (see issue #19114) +#if !defined(ENABLE_CHIP_SHELL) +void OnRebootSignalHandler(int signum) +{ + ChipLogDetail(DeviceLayer, "Caught signal %d", signum); + + // The BootReason attribute SHALL indicate the reason for the Node’s most recent boot, the real usecase + // for this attribute is embedded system. In Linux simulation, we use different signals to tell the current + // running process to terminate with different reasons. + BootReasonType bootReason = BootReasonType::kUnspecified; + switch (signum) + { + case SIGVTALRM: + bootReason = BootReasonType::kPowerOnReboot; + break; + case SIGALRM: + bootReason = BootReasonType::kBrownOutReset; + break; + case SIGILL: + bootReason = BootReasonType::kSoftwareWatchdogReset; + break; + case SIGTRAP: + bootReason = BootReasonType::kHardwareWatchdogReset; + break; + case SIGIO: + bootReason = BootReasonType::kSoftwareUpdateCompleted; + break; + case SIGINT: + bootReason = BootReasonType::kSoftwareReset; + break; + default: + IgnoreUnusedVariable(bootReason); + ChipLogError(NotSpecified, "Unhandled signal: Should never happens"); + chipDie(); + break; + } + + Server::GetInstance().DispatchShutDownAndStopEventLoop(); +} + +void OnSoftwareFaultSignalHandler(int signum) +{ + ChipLogDetail(DeviceLayer, "Caught signal %d", signum); + + VerifyOrDie(signum == SIGUSR1); + PlatformMgr().ScheduleWork(HandleSoftwareFaultEvent); +} + +void OnGeneralFaultSignalHandler(int signum) +{ + ChipLogDetail(DeviceLayer, "Caught signal %d", signum); + + uint32_t eventId; + switch (signum) + { + case SIGUSR2: + eventId = Clusters::GeneralDiagnostics::Events::HardwareFaultChange::Id; + break; + case SIGHUP: + eventId = Clusters::GeneralDiagnostics::Events::RadioFaultChange::Id; + break; + case SIGTTIN: + eventId = Clusters::GeneralDiagnostics::Events::NetworkFaultChange::Id; + break; + default: + ChipLogError(NotSpecified, "Unhandled signal: Should never happens"); + chipDie(); + break; + } + + PlatformMgr().ScheduleWork(HandleGeneralFaultEvent, static_cast(eventId)); +} + +void OnSwitchSignalHandler(int signum) +{ + ChipLogDetail(DeviceLayer, "Caught signal %d", signum); + + uint32_t eventId; + switch (signum) + { + case SIGTSTP: + eventId = Clusters::Switch::Events::SwitchLatched::Id; + break; + case SIGSTOP: + eventId = Clusters::Switch::Events::InitialPress::Id; + break; + case SIGTTOU: + eventId = Clusters::Switch::Events::LongPress::Id; + break; + case SIGWINCH: + eventId = Clusters::Switch::Events::ShortRelease::Id; + break; + case SIGQUIT: + eventId = Clusters::Switch::Events::LongRelease::Id; + break; + case SIGFPE: + eventId = Clusters::Switch::Events::MultiPressOngoing::Id; + break; + case SIGPIPE: + eventId = Clusters::Switch::Events::MultiPressComplete::Id; + break; + default: + ChipLogError(NotSpecified, "Unhandled signal: Should never happens"); + chipDie(); + break; + } + + PlatformMgr().ScheduleWork(HandleSwitchEvent, static_cast(eventId)); +} +void SetupSignalHandlers() +{ + // sigaction is not used here because Tsan interceptors seems to + // never dispatch the signals on darwin. + signal(SIGALRM, OnRebootSignalHandler); + signal(SIGVTALRM, OnRebootSignalHandler); + signal(SIGILL, OnRebootSignalHandler); + signal(SIGTRAP, OnRebootSignalHandler); + signal(SIGTERM, OnRebootSignalHandler); + signal(SIGIO, OnRebootSignalHandler); + signal(SIGINT, OnRebootSignalHandler); + signal(SIGUSR1, OnSoftwareFaultSignalHandler); + signal(SIGUSR2, OnGeneralFaultSignalHandler); + signal(SIGHUP, OnGeneralFaultSignalHandler); + signal(SIGTTIN, OnGeneralFaultSignalHandler); + signal(SIGTSTP, OnSwitchSignalHandler); + signal(SIGSTOP, OnSwitchSignalHandler); + signal(SIGTTOU, OnSwitchSignalHandler); + signal(SIGWINCH, OnSwitchSignalHandler); + signal(SIGQUIT, OnSwitchSignalHandler); + signal(SIGFPE, OnSwitchSignalHandler); + signal(SIGPIPE, OnSwitchSignalHandler); +} +#endif // !defined(ENABLE_CHIP_SHELL) + } // namespace bool emberAfBasicClusterMfgSpecificPingCallback(chip::app::CommandHandler * commandObj) @@ -118,6 +408,10 @@ Clusters::NetworkCommissioning::Instance sNullNetworkCommissioningInstance(kNetw void ApplicationInit() { +#if !defined(ENABLE_CHIP_SHELL) + SetupSignalHandlers(); +#endif // !defined(ENABLE_CHIP_SHELL) + (void) kNetworkCommissioningEndpointMain; // Enable secondary endpoint only when we need it, this should be applied to all platforms. emberAfEndpointEnableDisable(kNetworkCommissioningEndpointSecondary, false); diff --git a/examples/all-clusters-app/nrfconnect/main/AppTask.cpp b/examples/all-clusters-app/nrfconnect/main/AppTask.cpp index 8f7c646bd8471d..106c3957f4c5af 100644 --- a/examples/all-clusters-app/nrfconnect/main/AppTask.cpp +++ b/examples/all-clusters-app/nrfconnect/main/AppTask.cpp @@ -21,12 +21,15 @@ #include "LEDUtil.h" #include "binding-handler.h" +#include + #include #include #include #include #include +#include #include #include @@ -37,8 +40,8 @@ #endif #include -#include -#include +#include +#include using namespace ::chip; using namespace ::chip::Credentials; @@ -53,9 +56,49 @@ using namespace ::chip::DeviceLayer; LOG_MODULE_DECLARE(app, CONFIG_MATTER_LOG_LEVEL); K_MSGQ_DEFINE(sAppEventQueue, sizeof(AppEvent), APP_EVENT_QUEUE_SIZE, alignof(AppEvent)); -static LEDWidget sStatusLED; -static UnusedLedsWrapper<3> sUnusedLeds{ { DK_LED2, DK_LED3, DK_LED4 } }; -static k_timer sFunctionTimer; +namespace { + +LEDWidget sStatusLED; +UnusedLedsWrapper<3> sUnusedLeds{ { DK_LED2, DK_LED3, DK_LED4 } }; +k_timer sFunctionTimer; + +chip::DeviceLayer::DeviceInfoProviderImpl gExampleDeviceInfoProvider; + +constexpr EndpointId kIdentifyEndpointId = 1; + +void OnIdentifyTriggerEffect(Identify * identify) +{ + ChipLogProgress(Zcl, "OnIdentifyTriggerEffect"); + switch (identify->mCurrentEffectIdentifier) + { + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BLINK: + ChipLogProgress(Zcl, "Effect: EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BLINK"); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BREATHE: + ChipLogProgress(Zcl, "Effect: EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BREATHE"); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_OKAY: + ChipLogProgress(Zcl, "Effect: EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_OKAY"); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_CHANNEL_CHANGE: + ChipLogProgress(Zcl, "Effect: EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_CHANNEL_CHANGE"); + break; + default: + ChipLogProgress(Zcl, "Effect: No identifier effect"); + break; + } + return; +} + +Identify sIdentify = { + chip::EndpointId{ kIdentifyEndpointId }, + [](Identify *) { ChipLogProgress(Zcl, "OnIdentifyStart"); }, + [](Identify *) { ChipLogProgress(Zcl, "OnIdentifyStop"); }, + EMBER_ZCL_IDENTIFY_IDENTIFY_TYPE_NONE, + OnIdentifyTriggerEffect, +}; + +} // namespace constexpr EndpointId kNetworkCommissioningEndpointSecondary = 0xFFFE; @@ -141,10 +184,12 @@ CHIP_ERROR AppTask::Init() static chip::CommonCaseDeviceServerInitParams initParams; (void) initParams.InitializeStaticResourcesBeforeServerInit(); + ReturnErrorOnFailure(chip::Server::GetInstance().Init(initParams)); -#if CONFIG_CHIP_OTA_REQUESTOR - InitBasicOTARequestor(); -#endif + + gExampleDeviceInfoProvider.SetStorageDelegate(&Server::GetInstance().GetPersistentStorage()); + chip::DeviceLayer::SetDeviceInfoProvider(&gExampleDeviceInfoProvider); + // We only have network commissioning on endpoint 0. emberAfEndpointEnableDisable(kNetworkCommissioningEndpointSecondary, false); ConfigurationMgr().LogDeviceConfig(); @@ -365,6 +410,14 @@ void AppTask::ChipEventHandler(const ChipDeviceEvent * aEvent, intptr_t /* aArg Instance().mIsThreadEnabled = ConnectivityMgr().IsThreadEnabled(); UpdateStatusLED(); break; + case DeviceEventType::kThreadConnectivityChange: +#if CONFIG_CHIP_OTA_REQUESTOR + if (aEvent->ThreadConnectivityChange.Result == kConnectivity_Established) + { + InitBasicOTARequestor(); + } +#endif + break; default: break; } diff --git a/examples/all-clusters-app/nrfconnect/main/main.cpp b/examples/all-clusters-app/nrfconnect/main/main.cpp index 8f71ca55e41070..8563856d1cffd6 100644 --- a/examples/all-clusters-app/nrfconnect/main/main.cpp +++ b/examples/all-clusters-app/nrfconnect/main/main.cpp @@ -17,11 +17,11 @@ #include "AppTask.h" -#include +#include #if DT_NODE_HAS_COMPAT(DT_CHOSEN(zephyr_console), zephyr_cdc_acm_uart) -#include -#include +#include +#include #endif LOG_MODULE_REGISTER(app, CONFIG_MATTER_LOG_LEVEL); diff --git a/examples/all-clusters-app/p6/BUILD.gn b/examples/all-clusters-app/p6/BUILD.gn index 5b99c3f3b3b6f6..59ae7f12293bac 100644 --- a/examples/all-clusters-app/p6/BUILD.gn +++ b/examples/all-clusters-app/p6/BUILD.gn @@ -17,6 +17,7 @@ import("//build_overrides/chip.gni") import("//build_overrides/p6.gni") import("${build_root}/config/defaults.gni") +import("${chip_root}/src/platform/device.gni") import("${p6_sdk_build_root}/p6_executable.gni") import("${p6_sdk_build_root}/p6_sdk.gni") @@ -34,6 +35,50 @@ declare_args() { # Monitor & log memory usage at runtime. enable_heap_monitoring = false + + # Build update app + build_update_image = false +} + +config("p6_ota_config") { + ldflags = [ "-T/" + rebase_path( + "${chip_root}/third_party/p6/p6_sdk/ota/cy8c6xxa_cm4_dual_ota_int.ld", + "/", + "${p6_project_dir}") ] + + ldflags += [ "-Wl,--defsym,MCUBOOT_HEADER_SIZE=0x400,--defsym,MCUBOOT_BOOTLOADER_SIZE=0x18000,--defsym,CY_BOOT_PRIMARY_1_SIZE=0x1C0000" ] + + defines = [ + "P6_OTA", + "OTA_SUPPORT ", + "OTA_USE_EXTERNAL_FLASH", + "CY_BOOT_USE_EXTERNAL_FLASH", + "MCUBOOT_HEADER_SIZE=0x400", + "MCUBOOT_MAX_IMG_SECTORS=3584", + "CY_BOOT_SCRATCH_SIZE=0x00004000", + "MCUBOOT_BOOTLOADER_SIZE=0x00018000", + "CY_BOOT_BOOTLOADER_SIZE=0x00018000", + "CY_BOOT_PRIMARY_1_START=0x00018000", + "CY_BOOT_PRIMARY_1_SIZE=0x1C0000", + "CY_BOOT_SECONDARY_1_START=0x00000000", + "CY_BOOT_SECONDARY_1_SIZE=0x001C0000", + "CY_FLASH_ERASE_VALUE=0xFF", + "MCUBOOT_IMAGE_NUMBER=1", + "MCUBOOT_SLOT_SIZE=0x1C0000", + "MCUBOOT_SCRATCH_SIZE=0x4000", + "MCUBOOT_SECTOR_SIZE = 512", + "APP_VERSION_MAJOR=1", + "APP_VERSION_MINOR=0", + "APP_VERSION_BUILD=0", + "MCUBOOT_OVERWRITE_ONLY", + "CY_ENABLE_XIP_PROGRAM", + ] + + if (build_update_image) { + defines += [ "CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION=2" ] + } else { + defines += [ "CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION=1" ] + } } p6_sdk_sources("all_clusters_app_sdk_sources") { @@ -52,6 +97,27 @@ p6_sdk_sources("all_clusters_app_sdk_sources") { sources = [ "${p6_project_dir}/include/CHIPProjectConfig.h" ] public_configs = [ "${chip_root}/third_party/p6:p6_sdk_config" ] + + if (chip_enable_ota_requestor) { + sources += [ + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/bootutil/src/bootutil_misc.c", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/cy_flash_map.c", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/cy_flash_psoc6.c", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/cy_smif_psoc6.c", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/mem_config/mem_config_sfdp.c", + ] + include_dirs += [ + "${chip_root}/third_party/p6/p6_sdk/ota/config", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/mem_config/", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/include/", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/include/flash_map_backend/", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/sysflash/", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/bootutil/include", + ] + public_configs += [ ":p6_ota_config" ] + } } p6_executable("clusters_app") { diff --git a/examples/all-clusters-app/p6/README.md b/examples/all-clusters-app/p6/README.md index 25b8e53b04d697..1a859b7944dd79 100644 --- a/examples/all-clusters-app/p6/README.md +++ b/examples/all-clusters-app/p6/README.md @@ -12,6 +12,7 @@ An example showing the use of Matter on the Infineon CY8CKIT-062S2-43012 board. - [Setting up chip-tool](#setting-up-chip-tool) - [Commissioning over BLE](#commissioning-over-ble) - [Notes](#notes) + - [OTA Software Update](#ota-software-update)
@@ -134,3 +135,9 @@ commands. These power cycle the BlueTooth hardware and disable BR/EDR mode. sudo btmgmt -i hci0 bredr off sudo btmgmt -i hci0 power on ``` + +## OTA Software Update + +For the description of Software Update process with infineon P6 example +applications see +[Infineon P6 OTA Software Update](../../../docs/guides/infineon_p6_software_update.md) diff --git a/examples/all-clusters-app/p6/include/AppTask.h b/examples/all-clusters-app/p6/include/AppTask.h index a5f606cc451b85..5bb9a9163225bf 100644 --- a/examples/all-clusters-app/p6/include/AppTask.h +++ b/examples/all-clusters-app/p6/include/AppTask.h @@ -46,6 +46,7 @@ class AppTask static void LightActionEventHandler(AppEvent * aEvent); void ButtonEventHandler(uint8_t btnIdx, uint8_t btnAction); void PostEvent(const AppEvent * event); + void InitOTARequestor(); private: friend AppTask & GetAppTask(void); diff --git a/examples/all-clusters-app/p6/ota_base_build.sh b/examples/all-clusters-app/p6/ota_base_build.sh new file mode 100755 index 00000000000000..61bb808e3c1412 --- /dev/null +++ b/examples/all-clusters-app/p6/ota_base_build.sh @@ -0,0 +1,8 @@ +OUT_DIR=out/all-clusters-app/ +ANYCLOUD_DIR=third_party/p6/p6_sdk/libs/anycloud-ota/ + +scripts/examples/gn_p6_example.sh examples/all-clusters-app/p6 "$OUT_DIR" chip_enable_ota_requestor=true + +mv "$OUT_DIR"/chip-p6-clusters-example.hex "$OUT_DIR"/chip-p6-clusters-example.unsigned.hex + +./"$ANYCLOUD_DIR"/scripts/sign_script.bash "$OUT_DIR"/ chip-p6-clusters-example python3 arm-none-eabi-objcopy "-O ihex" "" "$ANYCLOUD_DIR"/source/mcuboot/scripts/ imgtool_v1.7.0/imgtool.py create 0xFF 0x400 3584 1.0.0 0x00018000 0x001C0000 arm-none-eabi-objcopy "" diff --git a/examples/all-clusters-app/p6/ota_update_build.sh b/examples/all-clusters-app/p6/ota_update_build.sh new file mode 100755 index 00000000000000..58f870977fd97b --- /dev/null +++ b/examples/all-clusters-app/p6/ota_update_build.sh @@ -0,0 +1,14 @@ +OUT_DIR=out/all-clusters-app-ota +ANYCLOUD_DIR=third_party/p6/p6_sdk/libs/anycloud-ota/ + +./scripts/examples/gn_p6_example.sh examples/all-clusters-app/p6 "$OUT_DIR" chip_enable_ota_requestor=true build_update_image=true + +mv "$OUT_DIR"/chip-p6-clusters-example.hex "$OUT_DIR"/chip-p6-clusters-example.unsigned.hex + +./"$ANYCLOUD_DIR"/scripts/sign_script.bash "$OUT_DIR"/ chip-p6-clusters-example python3 arm-none-eabi-objcopy "-O ihex" "" "$ANYCLOUD_DIR"/source/mcuboot/scripts/ imgtool_v1.7.0/imgtool.py sign 0xFF 0x400 3584 1.0.0 0x00018000 0x001C0000 arm-none-eabi-objcopy "-k $ANYCLOUD_DIR/source/mcuboot/keys/cypress-test-ec-p256.pem" + +if [ -f "$OUT_DIR"/chip-p6-clusters-example.ota ]; then + rm "$OUT_DIR"/chip-p6-clusters-example.ota +fi + +src/app/ota_image_tool.py create -v 0xFFF1 -p 0x8000 -vn 2 -vs "2.0" -da sha256 "$OUT_DIR"/chip-p6-clusters-example.bin "$OUT_DIR"/chip-p6-clusters-example.ota diff --git a/examples/all-clusters-app/p6/src/AppTask.cpp b/examples/all-clusters-app/p6/src/AppTask.cpp index 5ec2cf50dbdcbc..c8717c30740357 100644 --- a/examples/all-clusters-app/p6/src/AppTask.cpp +++ b/examples/all-clusters-app/p6/src/AppTask.cpp @@ -43,6 +43,33 @@ #include #include +/* OTA related includes */ +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR +#include +#include +#include +#include +#include +extern "C" { +#include "cy_smif_psoc6.h" +} +using chip::BDXDownloader; +using chip::CharSpan; +using chip::DefaultOTARequestor; +using chip::FabricIndex; +using chip::GetRequestorInstance; +using chip::NodeId; +using chip::OTADownloader; +using chip::OTAImageProcessorImpl; +using chip::System::Layer; + +using namespace ::chip; +using namespace chip::TLV; +using namespace ::chip::Credentials; +using namespace ::chip::DeviceLayer; +using namespace ::chip::System; + +#endif #define APP_EVENT_QUEUE_SIZE 10 #define APP_TASK_STACK_SIZE (4096) #define APP_WAIT_LOOP 1000 @@ -61,6 +88,15 @@ StaticQueue_t sAppEventQueueStruct; StackType_t appStack[APP_TASK_STACK_SIZE / sizeof(StackType_t)]; StaticTask_t appTaskStruct; + +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR +DefaultOTARequestor gRequestorCore; +DefaultOTARequestorStorage gRequestorStorage; +DefaultOTARequestorDriver gRequestorUser; +BDXDownloader gDownloader; +OTAImageProcessorImpl gImageProcessor; +#endif + } // namespace using namespace ::chip; @@ -74,6 +110,9 @@ AppTask AppTask::sAppTask; namespace { app::Clusters::NetworkCommissioning::Instance sWiFiNetworkCommissioningInstance(0 /* Endpoint Id */, &(NetworkCommissioning::P6WiFiDriver::GetInstance())); + +constexpr EndpointId kNetworkCommissioningEndpointSecondary = 0xFFFE; + } // namespace void NetWorkCommissioningInstInit() @@ -88,8 +127,14 @@ static void InitServer(intptr_t context) (void) initParams.InitializeStaticResourcesBeforeServerInit(); chip::Server::GetInstance().Init(initParams); + // We only have network commissioning on endpoint 0. + emberAfEndpointEnableDisable(kNetworkCommissioningEndpointSecondary, false); + // Initialize device attestation config SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider()); +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR + GetAppTask().InitOTARequestor(); +#endif } CHIP_ERROR AppTask::StartAppTask() @@ -108,7 +153,14 @@ CHIP_ERROR AppTask::StartAppTask() CHIP_ERROR AppTask::Init() { CHIP_ERROR err = CHIP_NO_ERROR; - +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR + int rc = boot_set_confirmed(); + if (rc != 0) + { + P6_LOG("boot_set_confirmed failed"); + appError(CHIP_ERROR_WELL_UNINITIALIZED); + } +#endif // Register the callback to init the MDNS server when connectivity is available PlatformMgr().AddEventHandler( [](const ChipDeviceEvent * event, intptr_t arg) { @@ -258,3 +310,39 @@ bool lowPowerClusterSleep() { return true; } + +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR +void AppTask::InitOTARequestor() +{ + CHIP_ERROR err = CHIP_NO_ERROR; + SetRequestorInstance(&gRequestorCore); + gRequestorStorage.Init(chip::Server::GetInstance().GetPersistentStorage()); + gRequestorCore.Init(chip::Server::GetInstance(), gRequestorStorage, gRequestorUser, gDownloader); + gImageProcessor.SetOTADownloader(&gDownloader); + gDownloader.SetImageProcessorDelegate(&gImageProcessor); + gRequestorUser.Init(&gRequestorCore, &gImageProcessor); + + uint32_t savedSoftwareVersion; + err = ConfigurationMgr().GetSoftwareVersion(savedSoftwareVersion); + if (err != CHIP_NO_ERROR) + { + P6_LOG("Can't get saved software version"); + appError(err); + } + + if (savedSoftwareVersion != CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION) + { + ConfigurationMgr().StoreSoftwareVersion(CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION); + + P6_LOG("Confirming update to version: %u", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION); + chip::OTARequestorInterface * requestor = chip::GetRequestorInstance(); + if (requestor != nullptr) + { + requestor->NotifyUpdateApplied(); + } + } + + P6_LOG("Current Software Version: %u", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION); + P6_LOG("Current Firmware Version String: %s", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING); +} +#endif diff --git a/examples/all-clusters-app/p6/src/main.cpp b/examples/all-clusters-app/p6/src/main.cpp index a8f415ffa3744d..d365f9ff8220d4 100644 --- a/examples/all-clusters-app/p6/src/main.cpp +++ b/examples/all-clusters-app/p6/src/main.cpp @@ -35,6 +35,7 @@ #include #include "AppConfig.h" +#include "cyhal_wdt.h" #include "init_p6Platform.h" #include @@ -131,7 +132,12 @@ static void main_task(void * pvParameters) int main(void) { init_p6Platform(); - +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR + // Clear watchdog timer (started by bootloader) so that it doesn't trigger a reset + cyhal_wdt_t wdt_obj; + cyhal_wdt_init(&wdt_obj, cyhal_wdt_get_max_timeout_ms()); + cyhal_wdt_free(&wdt_obj); +#endif #ifdef HEAP_MONITORING MemMonitoring::startHeapMonitoring(); #endif diff --git a/examples/all-clusters-minimal-app/all-clusters-common/BUILD.gn b/examples/all-clusters-minimal-app/all-clusters-common/BUILD.gn new file mode 100644 index 00000000000000..9991df1e8274ea --- /dev/null +++ b/examples/all-clusters-minimal-app/all-clusters-common/BUILD.gn @@ -0,0 +1,25 @@ +# Copyright (c) 2020 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. + +import("//build_overrides/chip.gni") + +import("${chip_root}/src/app/chip_data_model.gni") + +chip_data_model("all-clusters-common") { + zap_file = "all-clusters-minimal-app.zap" + + zap_pregenerated_dir = + "${chip_root}/zzz_generated/all-clusters-minimal-app/zap-generated" + is_server = true +} diff --git a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter new file mode 100644 index 00000000000000..de169f34582b4d --- /dev/null +++ b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter @@ -0,0 +1,3902 @@ +// This IDL was generated automatically by ZAP. +// It is for view/code review purposes only. + +struct LabelStruct { + char_string<16> label = 0; + char_string<16> value = 1; +} + +server cluster AccessControl = 31 { + enum AuthMode : ENUM8 { + kPase = 1; + kCase = 2; + kGroup = 3; + } + + enum ChangeTypeEnum : ENUM8 { + kChanged = 0; + kAdded = 1; + kRemoved = 2; + } + + enum Privilege : ENUM8 { + kView = 1; + kProxyView = 2; + kOperate = 3; + kManage = 4; + kAdminister = 5; + } + + struct AccessControlEntry { + Privilege privilege = 1; + AuthMode authMode = 2; + nullable int64u subjects[] = 3; + nullable Target targets[] = 4; + fabric_idx fabricIndex = 254; + } + + struct Target { + nullable cluster_id cluster = 0; + nullable endpoint_no endpoint = 1; + nullable devtype_id deviceType = 2; + } + + info event access(read: administer) AccessControlEntryChanged = 0 { + nullable node_id adminNodeID = 1; + nullable INT16U adminPasscodeID = 2; + ChangeTypeEnum changeType = 3; + nullable AccessControlEntry latestValue = 4; + fabric_idx adminFabricIndex = 254; + } + + info event access(read: administer) AccessControlExtensionChanged = 1 { + nullable node_id adminNodeID = 1; + nullable INT16U adminPasscodeID = 2; + ChangeTypeEnum changeType = 3; + nullable ExtensionEntry latestValue = 4; + fabric_idx adminFabricIndex = 254; + } + + attribute access(read: administer, write: administer) AccessControlEntry acl[] = 0; + readonly attribute int16u subjectsPerAccessControlEntry = 2; + readonly attribute int16u targetsPerAccessControlEntry = 3; + readonly attribute int16u accessControlEntriesPerFabric = 4; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster AccountLogin = 1294 { + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct GetSetupPINRequest { + CHAR_STRING tempAccountIdentifier = 0; + } + + request struct LoginRequest { + CHAR_STRING tempAccountIdentifier = 0; + CHAR_STRING setupPIN = 1; + } + + response struct GetSetupPINResponse = 1 { + CHAR_STRING setupPIN = 0; + } + + timed command GetSetupPIN(GetSetupPINRequest): GetSetupPINResponse = 0; + timed command Login(LoginRequest): DefaultSuccess = 2; + timed command Logout(): DefaultSuccess = 3; +} + +server cluster AdministratorCommissioning = 60 { + enum CommissioningWindowStatus : ENUM8 { + kWindowNotOpen = 0; + kEnhancedWindowOpen = 1; + kBasicWindowOpen = 2; + } + + enum StatusCode : ENUM8 { + kBusy = 1; + kPAKEParameterError = 2; + kWindowNotOpen = 3; + } + + readonly attribute int8u windowStatus = 0; + readonly attribute fabric_idx adminFabricIndex = 1; + readonly attribute int16u adminVendorId = 2; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct OpenCommissioningWindowRequest { + INT16U commissioningTimeout = 0; + OCTET_STRING PAKEVerifier = 1; + INT16U discriminator = 2; + INT32U iterations = 3; + OCTET_STRING salt = 4; + } + + timed command access(invoke: administer) OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; + timed command access(invoke: administer) RevokeCommissioning(): DefaultSuccess = 2; +} + +server cluster ApplicationBasic = 1293 { + enum ApplicationStatusEnum : ENUM8 { + kStopped = 0; + kActiveVisibleFocus = 1; + kActiveHidden = 2; + kActiveVisibleNotFocus = 3; + } + + struct ApplicationBasicApplication { + int16u catalogVendorId = 0; + char_string applicationId = 1; + } + + readonly attribute char_string<32> applicationName = 2; + readonly attribute ApplicationBasicApplication application = 4; + readonly attribute ApplicationStatusEnum status = 5; + readonly attribute char_string<32> applicationVersion = 6; + readonly attribute vendor_id allowedVendorList[] = 7; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster ApplicationLauncher = 1292 { + enum ApplicationLauncherStatusEnum : ENUM8 { + kSuccess = 0; + kAppNotAvailable = 1; + kSystemBusy = 2; + } + + bitmap ApplicationLauncherFeature : BITMAP32 { + kApplicationPlatform = 0x1; + } + + struct Application { + int16u catalogVendorId = 0; + char_string applicationId = 1; + } + + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct LaunchAppRequest { + Application application = 0; + optional OCTET_STRING data = 1; + } + + request struct StopAppRequest { + Application application = 0; + } + + request struct HideAppRequest { + Application application = 0; + } + + response struct LauncherResponse = 3 { + ApplicationLauncherStatusEnum status = 0; + OCTET_STRING data = 1; + } + + command LaunchApp(LaunchAppRequest): LauncherResponse = 0; + command StopApp(StopAppRequest): LauncherResponse = 1; + command HideApp(HideAppRequest): LauncherResponse = 2; +} + +server cluster AudioOutput = 1291 { + enum OutputTypeEnum : ENUM8 { + kHdmi = 0; + kBt = 1; + kOptical = 2; + kHeadphone = 3; + kInternal = 4; + kOther = 5; + } + + bitmap AudioOutputFeature : BITMAP32 { + kNameUpdates = 0x1; + } + + struct OutputInfo { + int8u index = 0; + OutputTypeEnum outputType = 1; + char_string<32> name = 2; + } + + readonly attribute OutputInfo outputList[] = 0; + readonly attribute int8u currentOutput = 1; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct SelectOutputRequest { + INT8U index = 0; + } + + command SelectOutput(SelectOutputRequest): DefaultSuccess = 0; +} + +server cluster Basic = 40 { + struct CapabilityMinimaStruct { + int16u caseSessionsPerFabric = 0; + int16u subscriptionsPerFabric = 1; + } + + critical event StartUp = 0 { + INT32U softwareVersion = 0; + } + + critical event ShutDown = 1 { + } + + info event Leave = 2 { + } + + info event ReachableChanged = 3 { + boolean reachableNewValue = 0; + } + + readonly attribute int16u dataModelRevision = 0; + readonly attribute char_string<32> vendorName = 1; + readonly attribute vendor_id vendorID = 2; + readonly attribute char_string<32> productName = 3; + readonly attribute int16u productID = 4; + attribute access(write: manage) char_string<32> nodeLabel = 5; + attribute access(write: administer) char_string<2> location = 6; + readonly attribute int16u hardwareVersion = 7; + readonly attribute char_string<64> hardwareVersionString = 8; + readonly attribute int32u softwareVersion = 9; + readonly attribute char_string<64> softwareVersionString = 10; + readonly attribute CapabilityMinimaStruct capabilityMinima = 19; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster Binding = 30 { + struct TargetStruct { + optional node_id node = 1; + optional group_id group = 2; + optional endpoint_no endpoint = 3; + optional cluster_id cluster = 4; + fabric_idx fabricIndex = 254; + } + + attribute TargetStruct binding[] = 0; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster BooleanState = 69 { + info event StateChange = 0 { + boolean stateValue = 0; + } + + readonly attribute boolean stateValue = 0; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster BridgedActions = 37 { + enum ActionErrorEnum : ENUM8 { + kUnknown = 0; + kInterrupted = 1; + } + + enum ActionStateEnum : ENUM8 { + kInactive = 0; + kActive = 1; + kPaused = 2; + kDisabled = 3; + } + + enum ActionTypeEnum : ENUM8 { + kOther = 0; + kScene = 1; + kSequence = 2; + kAutomation = 3; + kException = 4; + kNotification = 5; + kAlarm = 6; + } + + enum EndpointListTypeEnum : ENUM8 { + kOther = 0; + kRoom = 1; + kZone = 2; + } + + bitmap CommandBits : BITMAP16 { + kInstantAction = 0x1; + kInstantActionWithTransition = 0x2; + kStartAction = 0x4; + kStartActionWithDuration = 0x8; + kStopAction = 0x10; + kPauseAction = 0x20; + kPauseActionWithDuration = 0x40; + kResumeAction = 0x80; + kEnableAction = 0x100; + kEnableActionWithDuration = 0x200; + kDisableAction = 0x400; + kDisableActionWithDuration = 0x800; + } + + struct ActionStruct { + int16u actionID = 0; + char_string<32> name = 1; + ActionTypeEnum type = 2; + int16u endpointListID = 3; + int16u supportedCommands = 4; + ActionStateEnum status = 5; + } + + struct EndpointListStruct { + int16u endpointListID = 0; + char_string<32> name = 1; + EndpointListTypeEnum type = 2; + endpoint_no endpoints[] = 3; + } + + info event StateChanged = 0 { + INT16U actionID = 0; + INT32U invokeID = 1; + ActionStateEnum newState = 2; + } + + info event ActionFailed = 1 { + INT16U actionID = 0; + INT32U invokeID = 1; + ActionStateEnum newState = 2; + ActionErrorEnum error = 3; + } + + readonly attribute ActionStruct actionList[] = 0; + readonly attribute EndpointListStruct endpointList[] = 1; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster Channel = 1284 { + enum ChannelStatusEnum : ENUM8 { + kSuccess = 0; + kMultipleMatches = 1; + kNoMatches = 2; + } + + enum LineupInfoTypeEnum : ENUM8 { + kMso = 0; + } + + bitmap ChannelFeature : BITMAP32 { + kChannelList = 0x1; + kLineupInfo = 0x2; + } + + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct ChangeChannelByNumberRequest { + INT16U majorNumber = 0; + INT16U minorNumber = 1; + } + + request struct SkipChannelRequest { + INT16U count = 0; + } + + command ChangeChannelByNumber(ChangeChannelByNumberRequest): DefaultSuccess = 2; + command SkipChannel(SkipChannelRequest): DefaultSuccess = 3; +} + +server cluster ColorControl = 768 { + enum ColorLoopAction : ENUM8 { + kDeactivate = 0; + kActivateFromColorLoopStartEnhancedHue = 1; + kActivateFromEnhancedCurrentHue = 2; + } + + enum ColorLoopDirection : ENUM8 { + kDecrementHue = 0; + kIncrementHue = 1; + } + + enum ColorMode : ENUM8 { + kCurrentHueAndCurrentSaturation = 0; + kCurrentXAndCurrentY = 1; + kColorTemperature = 2; + } + + enum HueDirection : ENUM8 { + kShortestDistance = 0; + kLongestDistance = 1; + kUp = 2; + kDown = 3; + } + + enum HueMoveMode : ENUM8 { + kStop = 0; + kUp = 1; + kDown = 3; + } + + enum HueStepMode : ENUM8 { + kUp = 1; + kDown = 3; + } + + enum SaturationMoveMode : ENUM8 { + kStop = 0; + kUp = 1; + kDown = 3; + } + + enum SaturationStepMode : ENUM8 { + kUp = 1; + kDown = 3; + } + + bitmap ColorCapabilities : BITMAP16 { + kHueSaturationSupported = 0x1; + kEnhancedHueSupported = 0x2; + kColorLoopSupported = 0x4; + kXYAttributesSupported = 0x8; + kColorTemperatureSupported = 0x10; + } + + bitmap ColorControlFeature : BITMAP32 { + kHueAndSaturation = 0x1; + kEnhancedHue = 0x2; + kColorLoop = 0x4; + kXy = 0x8; + kColorTemperature = 0x10; + } + + bitmap ColorLoopUpdateFlags : BITMAP8 { + kUpdateAction = 0x1; + kUpdateDirection = 0x2; + kUpdateTime = 0x4; + kUpdateStartHue = 0x8; + } + + readonly attribute enum8 colorMode = 8; + attribute bitmap8 options = 15; + readonly attribute nullable int8u numberOfPrimaries = 16; + readonly attribute enum8 enhancedColorMode = 16385; + readonly attribute bitmap16 colorCapabilities = 16394; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster ContentLauncher = 1290 { + enum ContentLaunchStatusEnum : ENUM8 { + kSuccess = 0; + kUrlNotAvailable = 1; + kAuthFailed = 2; + } + + enum MetricTypeEnum : ENUM8 { + kPixels = 0; + kPercentage = 1; + } + + enum ParameterEnum : ENUM8 { + kActor = 0; + kChannel = 1; + kCharacter = 2; + kDirector = 3; + kEvent = 4; + kFranchise = 5; + kGenre = 6; + kLeague = 7; + kPopularity = 8; + kProvider = 9; + kSport = 10; + kSportsTeam = 11; + kType = 12; + } + + bitmap ContentLauncherFeature : BITMAP32 { + kContentSearch = 0x1; + kURLPlayback = 0x2; + } + + bitmap SupportedStreamingProtocol : BITMAP32 { + kDash = 0x1; + kHls = 0x2; + } + + struct ContentSearch { + Parameter parameterList[] = 0; + } + + struct Parameter { + ParameterEnum type = 0; + char_string value = 1; + optional AdditionalInfo externalIDList[] = 2; + } + + struct AdditionalInfo { + char_string name = 0; + char_string value = 1; + } + + struct BrandingInformation { + char_string providerName = 0; + optional StyleInformation background = 1; + optional StyleInformation logo = 2; + optional StyleInformation progressBar = 3; + optional StyleInformation splash = 4; + optional StyleInformation waterMark = 5; + } + + struct StyleInformation { + optional char_string imageUrl = 0; + optional char_string color = 1; + optional Dimension size = 2; + } + + struct Dimension { + double width = 0; + double height = 1; + MetricTypeEnum metric = 2; + } + + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster Descriptor = 29 { + struct DeviceType { + devtype_id type = 0; + int16u revision = 1; + } + + readonly attribute DeviceType deviceList[] = 0; + readonly attribute CLUSTER_ID serverList[] = 1; + readonly attribute CLUSTER_ID clientList[] = 2; + readonly attribute ENDPOINT_NO partsList[] = 3; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster DiagnosticLogs = 50 { + enum LogsIntent : ENUM8 { + kEndUserSupport = 0; + kNetworkDiag = 1; + kCrashLogs = 2; + } + + enum LogsStatus : ENUM8 { + kSuccess = 0; + kExhausted = 1; + kNoLogs = 2; + kBusy = 3; + kDenied = 4; + } + + enum LogsTransferProtocol : ENUM8 { + kResponsePayload = 0; + kBdx = 1; + } + + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct RetrieveLogsRequestRequest { + LogsIntent intent = 0; + LogsTransferProtocol requestedProtocol = 1; + OCTET_STRING transferFileDesignator = 2; + } + + command RetrieveLogsRequest(RetrieveLogsRequestRequest): RetrieveLogsResponse = 0; +} + +server cluster DoorLock = 257 { + enum DlAlarmCode : ENUM8 { + kLockJammed = 0; + kLockFactoryReset = 1; + kLockRadioPowerCycled = 3; + kWrongCodeEntryLimit = 4; + kFrontEsceutcheonRemoved = 5; + kDoorForcedOpen = 6; + kDoorAjar = 7; + kForcedUser = 8; + } + + enum DlCredentialRule : ENUM8 { + kSingle = 0; + kDouble = 1; + kTri = 2; + } + + enum DlCredentialType : ENUM8 { + kProgrammingPIN = 0; + kPin = 1; + kRfid = 2; + kFingerprint = 3; + kFingerVein = 4; + kFace = 5; + } + + enum DlDataOperationType : ENUM8 { + kAdd = 0; + kClear = 1; + kModify = 2; + } + + enum DlDoorState : ENUM8 { + kDoorOpen = 0; + kDoorClosed = 1; + kDoorJammed = 2; + kDoorForcedOpen = 3; + kDoorUnspecifiedError = 4; + kDoorAjar = 5; + } + + enum DlLockDataType : ENUM8 { + kUnspecified = 0; + kProgrammingCode = 1; + kUserIndex = 2; + kWeekDaySchedule = 3; + kYearDaySchedule = 4; + kHolidaySchedule = 5; + kPin = 6; + kRfid = 7; + kFingerprint = 8; + } + + enum DlLockOperationType : ENUM8 { + kLock = 0; + kUnlock = 1; + kNonAccessUserEvent = 2; + kForcedUserEvent = 3; + } + + enum DlLockState : ENUM8 { + kNotFullyLocked = 0; + kLocked = 1; + kUnlocked = 2; + } + + enum DlLockType : ENUM8 { + kDeadBolt = 0; + kMagnetic = 1; + kOther = 2; + kMortise = 3; + kRim = 4; + kLatchBolt = 5; + kCylindricalLock = 6; + kTubularLock = 7; + kInterconnectedLock = 8; + kDeadLatch = 9; + kDoorFurniture = 10; + } + + enum DlOperatingMode : ENUM8 { + kNormal = 0; + kVacation = 1; + kPrivacy = 2; + kNoRemoteLockUnlock = 3; + kPassage = 4; + } + + enum DlOperationError : ENUM8 { + kUnspecified = 0; + kInvalidCredential = 1; + kDisabledUserDenied = 2; + kRestricted = 3; + kInsufficientBattery = 4; + } + + enum DlOperationSource : ENUM8 { + kUnspecified = 0; + kManual = 1; + kProprietaryRemote = 2; + kKeypad = 3; + kAuto = 4; + kButton = 5; + kSchedule = 6; + kRemote = 7; + kRfid = 8; + kBiometric = 9; + } + + enum DlStatus : ENUM8 { + kSuccess = 0; + kFailure = 1; + kDuplicate = 2; + kOccupied = 3; + kInvalidField = 133; + kResourceExhausted = 137; + kNotFound = 139; + } + + enum DlUserStatus : ENUM8 { + kAvailable = 0; + kOccupiedEnabled = 1; + kOccupiedDisabled = 3; + } + + enum DlUserType : ENUM8 { + kUnrestrictedUser = 0; + kYearDayScheduleUser = 1; + kWeekDayScheduleUser = 2; + kProgrammingUser = 3; + kNonAccessUser = 4; + kForcedUser = 5; + kDisposableUser = 6; + kExpiringUser = 7; + kScheduleRestrictedUser = 8; + kRemoteOnlyUser = 9; + } + + enum DoorLockOperationEventCode : ENUM8 { + kUnknownOrMfgSpecific = 0; + kLock = 1; + kUnlock = 2; + kLockInvalidPinOrId = 3; + kLockInvalidSchedule = 4; + kUnlockInvalidPinOrId = 5; + kUnlockInvalidSchedule = 6; + kOneTouchLock = 7; + kKeyLock = 8; + kKeyUnlock = 9; + kAutoLock = 10; + kScheduleLock = 11; + kScheduleUnlock = 12; + kManualLock = 13; + kManualUnlock = 14; + } + + enum DoorLockProgrammingEventCode : ENUM8 { + kUnknownOrMfgSpecific = 0; + kMasterCodeChanged = 1; + kPinAdded = 2; + kPinDeleted = 3; + kPinChanged = 4; + kIdAdded = 5; + kIdDeleted = 6; + } + + enum DoorLockSetPinOrIdStatus : ENUM8 { + kSuccess = 0; + kGeneralFailure = 1; + kMemoryFull = 2; + kDuplicateCodeError = 3; + } + + enum DoorLockUserStatus : ENUM8 { + kAvailable = 0; + kOccupiedEnabled = 1; + kOccupiedDisabled = 3; + kNotSupported = 255; + } + + enum DoorLockUserType : ENUM8 { + kUnrestricted = 0; + kYearDayScheduleUser = 1; + kWeekDayScheduleUser = 2; + kMasterUser = 3; + kNonAccessUser = 4; + kNotSupported = 255; + } + + bitmap DlCredentialRuleMask : BITMAP8 { + kSingle = 0x1; + kDual = 0x2; + kTri = 0x4; + } + + bitmap DlCredentialRulesSupport : BITMAP8 { + kSingle = 0x1; + kDual = 0x2; + kTri = 0x4; + } + + bitmap DlDaysMaskMap : BITMAP8 { + kSunday = 0x1; + kMonday = 0x2; + kTuesday = 0x4; + kWednesday = 0x8; + kThursday = 0x10; + kFriday = 0x20; + kSaturday = 0x40; + } + + bitmap DlDefaultConfigurationRegister : BITMAP16 { + kEnableLocalProgrammingEnabled = 0x1; + kKeypadInterfaceDefaultAccessEnabled = 0x2; + kRemoteInterfaceDefaultAccessIsEnabled = 0x4; + kSoundEnabled = 0x20; + kAutoRelockTimeSet = 0x40; + kLEDSettingsSet = 0x80; + } + + bitmap DlKeypadOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kLock = 0x2; + kUnlock = 0x4; + kLockInvalidPIN = 0x8; + kLockInvalidSchedule = 0x10; + kUnlockInvalidCode = 0x20; + kUnlockInvalidSchedule = 0x40; + kNonAccessUserOpEvent = 0x80; + } + + bitmap DlKeypadProgrammingEventMask : BITMAP16 { + kUnknown = 0x1; + kProgrammingPINChanged = 0x2; + kPINAdded = 0x4; + kPINCleared = 0x8; + kPINChanged = 0x10; + } + + bitmap DlLocalProgrammingFeatures : BITMAP8 { + kAddUsersCredentialsSchedulesLocally = 0x1; + kModifyUsersCredentialsSchedulesLocally = 0x2; + kClearUsersCredentialsSchedulesLocally = 0x4; + kAdjustLockSettingsLocally = 0x8; + } + + bitmap DlManualOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kThumbturnLock = 0x2; + kThumbturnUnlock = 0x4; + kOneTouchLock = 0x8; + kKeyLock = 0x10; + kKeyUnlock = 0x20; + kAutoLock = 0x40; + kScheduleLock = 0x80; + kScheduleUnlock = 0x100; + kManualLock = 0x200; + kManualUnlock = 0x400; + } + + bitmap DlRFIDOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kLock = 0x2; + kUnlock = 0x4; + kLockInvalidRFID = 0x8; + kLockInvalidSchedule = 0x10; + kUnlockInvalidRFID = 0x20; + kUnlockInvalidSchedule = 0x40; + } + + bitmap DlRFIDProgrammingEventMask : BITMAP16 { + kUnknown = 0x1; + kRFIDCodeAdded = 0x20; + kRFIDCodeCleared = 0x40; + } + + bitmap DlRemoteOperationEventMask : BITMAP16 { + kUnknown = 0x1; + kLock = 0x2; + kUnlock = 0x4; + kLockInvalidCode = 0x8; + kLockInvalidSchedule = 0x10; + kUnlockInvalidCode = 0x20; + kUnlockInvalidSchedule = 0x40; + } + + bitmap DlRemoteProgrammingEventMask : BITMAP16 { + kUnknown = 0x1; + kProgrammingPINChanged = 0x2; + kPINAdded = 0x4; + kPINCleared = 0x8; + kPINChanged = 0x10; + kRFIDCodeAdded = 0x20; + kRFIDCodeCleared = 0x40; + } + + bitmap DlSupportedOperatingModes : BITMAP16 { + kNormal = 0x1; + kVacation = 0x2; + kPrivacy = 0x4; + kNoRemoteLockUnlock = 0x8; + kPassage = 0x10; + } + + bitmap DoorLockDayOfWeek : BITMAP8 { + kSunday = 0x1; + kMonday = 0x2; + kTuesday = 0x4; + kWednesday = 0x8; + kThursday = 0x10; + kFriday = 0x20; + kSaturday = 0x40; + } + + bitmap DoorLockFeature : BITMAP32 { + kPINCredentials = 0x1; + kRFIDCredentials = 0x2; + kFingerCredentials = 0x4; + kLogging = 0x8; + kAccessSchedules = 0x10; + kDoorPositionSensor = 0x20; + kFaceCredentials = 0x40; + kCredentialsOTA = 0x80; + kUsersManagement = 0x100; + kNotifications = 0x200; + } + + struct DlCredential { + DlCredentialType credentialType = 0; + int16u credentialIndex = 1; + } + + critical event DoorLockAlarm = 0 { + DlAlarmCode alarmCode = 0; + } + + critical event DoorStateChange = 1 { + DlDoorState doorState = 0; + } + + critical event LockOperation = 2 { + DlLockOperationType lockOperationType = 0; + DlOperationSource operationSource = 1; + nullable INT16U userIndex = 2; + nullable fabric_idx fabricIndex = 3; + nullable NODE_ID sourceNode = 4; + optional nullable DlCredential credentials[] = 5; + } + + critical event LockOperationError = 3 { + DlLockOperationType lockOperationType = 0; + DlOperationSource operationSource = 1; + DlOperationError operationError = 2; + nullable INT16U userIndex = 3; + nullable fabric_idx fabricIndex = 4; + nullable NODE_ID sourceNode = 5; + optional nullable DlCredential credentials[] = 6; + } + + info event LockUserChange = 4 { + DlLockDataType lockDataType = 0; + DlDataOperationType dataOperationType = 1; + DlOperationSource operationSource = 2; + nullable INT16U userIndex = 3; + nullable fabric_idx fabricIndex = 4; + nullable NODE_ID sourceNode = 5; + nullable INT16U dataIndex = 6; + } + + readonly attribute nullable DlLockState lockState = 0; + readonly attribute DlLockType lockType = 1; + readonly attribute boolean actuatorEnabled = 2; + attribute access(write: manage) int32u autoRelockTime = 35; + attribute access(write: manage) DlOperatingMode operatingMode = 37; + readonly attribute DlSupportedOperatingModes supportedOperatingModes = 38; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct LockDoorRequest { + optional OCTET_STRING pinCode = 0; + } + + request struct UnlockDoorRequest { + optional OCTET_STRING pinCode = 0; + } + + timed command LockDoor(LockDoorRequest): DefaultSuccess = 0; + timed command UnlockDoor(UnlockDoorRequest): DefaultSuccess = 1; +} + +server cluster EthernetNetworkDiagnostics = 55 { + enum PHYRateType : ENUM8 { + k10m = 0; + k100m = 1; + k1000m = 2; + k25g = 3; + k5g = 4; + k10g = 5; + k40g = 6; + k100g = 7; + k200g = 8; + k400g = 9; + } + + readonly attribute nullable PHYRateType PHYRate = 0; + readonly attribute nullable boolean fullDuplex = 1; + readonly attribute int64u packetRxCount = 2; + readonly attribute int64u packetTxCount = 3; + readonly attribute int64u txErrCount = 4; + readonly attribute int64u collisionCount = 5; + readonly attribute int64u overrunCount = 6; + readonly attribute nullable boolean carrierDetect = 7; + readonly attribute int64u timeSinceReset = 8; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + command ResetCounts(): DefaultSuccess = 0; +} + +server cluster FanControl = 514 { + enum FanModeSequenceType : ENUM8 { + kOffLowMedHigh = 0; + kOffLowHigh = 1; + kOffLowMedHighAuto = 2; + kOffLowHighAuto = 3; + kOffOnAuto = 4; + kOffOn = 5; + } + + enum FanModeType : ENUM8 { + kOff = 0; + kLow = 1; + kMedium = 2; + kHigh = 3; + kOn = 4; + kAuto = 5; + kSmart = 6; + } + + bitmap FanControlFeature : BITMAP32 { + kMultiSpeed = 0x1; + kAuto = 0x2; + kRocking = 0x4; + kWind = 0x8; + } + + bitmap RockSupportMask : BITMAP8 { + kRockLeftRight = 0x1; + kRockUpDown = 0x2; + kRockRound = 0x4; + } + + bitmap WindSettingMask : BITMAP8 { + kSleepWind = 0x1; + kNaturalWind = 0x2; + } + + bitmap WindSupportMask : BITMAP8 { + kSleepWind = 0x1; + kNaturalWind = 0x2; + } + + attribute FanModeType fanMode = 0; + attribute FanModeSequenceType fanModeSequence = 1; + attribute nullable int8u percentSetting = 2; + readonly attribute int8u percentCurrent = 3; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster FixedLabel = 64 { + readonly attribute LabelStruct labelList[] = 0; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster FlowMeasurement = 1028 { + readonly attribute nullable int16u measuredValue = 0; + readonly attribute nullable int16u minMeasuredValue = 1; + readonly attribute nullable int16u maxMeasuredValue = 2; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster GeneralCommissioning = 48 { + enum CommissioningError : ENUM8 { + kOk = 0; + kValueOutsideRange = 1; + kInvalidAuthentication = 2; + kNoFailSafe = 3; + kBusyWithOtherAdmin = 4; + } + + enum RegulatoryLocationType : ENUM8 { + kIndoor = 0; + kOutdoor = 1; + kIndoorOutdoor = 2; + } + + struct BasicCommissioningInfo { + int16u failSafeExpiryLengthSeconds = 0; + } + + attribute access(write: administer) int64u breadcrumb = 0; + readonly attribute BasicCommissioningInfo basicCommissioningInfo = 1; + readonly attribute RegulatoryLocationType regulatoryConfig = 2; + readonly attribute RegulatoryLocationType locationCapability = 3; + readonly attribute boolean supportsConcurrentConnection = 4; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct ArmFailSafeRequest { + INT16U expiryLengthSeconds = 0; + INT64U breadcrumb = 1; + } + + request struct SetRegulatoryConfigRequest { + RegulatoryLocationType newRegulatoryConfig = 0; + CHAR_STRING countryCode = 1; + INT64U breadcrumb = 2; + } + + response struct ArmFailSafeResponse = 1 { + CommissioningError errorCode = 0; + CHAR_STRING debugText = 1; + } + + response struct SetRegulatoryConfigResponse = 3 { + CommissioningError errorCode = 0; + CHAR_STRING debugText = 1; + } + + response struct CommissioningCompleteResponse = 5 { + CommissioningError errorCode = 0; + CHAR_STRING debugText = 1; + } + + command access(invoke: administer) ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; + command access(invoke: administer) SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; + command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4; +} + +server cluster GeneralDiagnostics = 51 { + enum BootReasonType : ENUM8 { + kUnspecified = 0; + kPowerOnReboot = 1; + kBrownOutReset = 2; + kSoftwareWatchdogReset = 3; + kHardwareWatchdogReset = 4; + kSoftwareUpdateCompleted = 5; + kSoftwareReset = 6; + } + + enum HardwareFaultType : ENUM8 { + kUnspecified = 0; + kRadio = 1; + kSensor = 2; + kResettableOverTemp = 3; + kNonResettableOverTemp = 4; + kPowerSource = 5; + kVisualDisplayFault = 6; + kAudioOutputFault = 7; + kUserInterfaceFault = 8; + kNonVolatileMemoryError = 9; + kTamperDetected = 10; + } + + enum InterfaceType : ENUM8 { + kUnspecified = 0; + kWiFi = 1; + kEthernet = 2; + kCellular = 3; + kThread = 4; + } + + enum NetworkFaultType : ENUM8 { + kUnspecified = 0; + kHardwareFailure = 1; + kNetworkJammed = 2; + kConnectionFailed = 3; + } + + enum RadioFaultType : ENUM8 { + kUnspecified = 0; + kWiFiFault = 1; + kCellularFault = 2; + kThreadFault = 3; + kNFCFault = 4; + kBLEFault = 5; + kEthernetFault = 6; + } + + struct NetworkInterfaceType { + char_string<32> name = 0; + boolean isOperational = 1; + nullable boolean offPremiseServicesReachableIPv4 = 2; + nullable boolean offPremiseServicesReachableIPv6 = 3; + octet_string<8> hardwareAddress = 4; + octet_string IPv4Addresses[] = 5; + octet_string IPv6Addresses[] = 6; + InterfaceType type = 7; + } + + critical event HardwareFaultChange = 0 { + HardwareFaultType current[] = 0; + HardwareFaultType previous[] = 1; + } + + critical event RadioFaultChange = 1 { + RadioFaultType current[] = 0; + RadioFaultType previous[] = 1; + } + + critical event NetworkFaultChange = 2 { + NetworkFaultType current[] = 0; + NetworkFaultType previous[] = 1; + } + + critical event BootReason = 3 { + BootReasonType bootReason = 0; + } + + readonly attribute NetworkInterfaceType networkInterfaces[] = 0; + readonly attribute int16u rebootCount = 1; + readonly attribute boolean testEventTriggersEnabled = 8; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct TestEventTriggerRequest { + OCTET_STRING enableKey = 0; + INT64U eventTrigger = 1; + } + + command TestEventTrigger(TestEventTriggerRequest): DefaultSuccess = 0; +} + +server cluster GroupKeyManagement = 63 { + enum GroupKeySecurityPolicy : ENUM8 { + kTrustFirst = 0; + kCacheAndSync = 1; + } + + struct GroupKeyMapStruct { + group_id groupId = 1; + int16u groupKeySetID = 2; + fabric_idx fabricIndex = 254; + } + + struct GroupInfoMapStruct { + group_id groupId = 1; + endpoint_no endpoints[] = 2; + optional char_string<16> groupName = 3; + fabric_idx fabricIndex = 254; + } + + struct GroupKeySetStruct { + int16u groupKeySetID = 0; + GroupKeySecurityPolicy groupKeySecurityPolicy = 1; + nullable octet_string<16> epochKey0 = 2; + nullable epoch_us epochStartTime0 = 3; + nullable octet_string<16> epochKey1 = 4; + nullable epoch_us epochStartTime1 = 5; + nullable octet_string<16> epochKey2 = 6; + nullable epoch_us epochStartTime2 = 7; + } + + attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; + readonly attribute GroupInfoMapStruct groupTable[] = 1; + readonly attribute int16u maxGroupsPerFabric = 2; + readonly attribute int16u maxGroupKeysPerFabric = 3; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct KeySetWriteRequest { + GroupKeySetStruct groupKeySet = 0; + } + + request struct KeySetReadRequest { + INT16U groupKeySetID = 0; + } + + request struct KeySetRemoveRequest { + INT16U groupKeySetID = 0; + } + + request struct KeySetReadAllIndicesRequest { + INT16U groupKeySetIDs[] = 0; + } + + response struct KeySetReadResponse = 2 { + GroupKeySetStruct groupKeySet = 0; + } + + response struct KeySetReadAllIndicesResponse = 5 { + INT16U groupKeySetIDs[] = 0; + } + + command access(invoke: administer) KeySetWrite(KeySetWriteRequest): DefaultSuccess = 0; + command access(invoke: administer) KeySetRead(KeySetReadRequest): KeySetReadResponse = 1; + command access(invoke: administer) KeySetRemove(KeySetRemoveRequest): DefaultSuccess = 3; + command access(invoke: administer) KeySetReadAllIndices(KeySetReadAllIndicesRequest): KeySetReadAllIndicesResponse = 4; +} + +server cluster Groups = 4 { + readonly attribute bitmap8 nameSupport = 0; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct AddGroupRequest { + group_id groupId = 0; + CHAR_STRING groupName = 1; + } + + request struct ViewGroupRequest { + group_id groupId = 0; + } + + request struct GetGroupMembershipRequest { + group_id groupList[] = 0; + } + + request struct RemoveGroupRequest { + group_id groupId = 0; + } + + request struct AddGroupIfIdentifyingRequest { + group_id groupId = 0; + CHAR_STRING groupName = 1; + } + + response struct AddGroupResponse = 0 { + ENUM8 status = 0; + group_id groupId = 1; + } + + response struct ViewGroupResponse = 1 { + ENUM8 status = 0; + group_id groupId = 1; + CHAR_STRING groupName = 2; + } + + response struct GetGroupMembershipResponse = 2 { + nullable INT8U capacity = 0; + group_id groupList[] = 1; + } + + response struct RemoveGroupResponse = 3 { + ENUM8 status = 0; + group_id groupId = 1; + } + + command access(invoke: manage) AddGroup(AddGroupRequest): AddGroupResponse = 0; + command ViewGroup(ViewGroupRequest): ViewGroupResponse = 1; + command GetGroupMembership(GetGroupMembershipRequest): GetGroupMembershipResponse = 2; + command access(invoke: manage) RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3; + command access(invoke: manage) RemoveAllGroups(): DefaultSuccess = 4; + command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5; +} + +server cluster Identify = 3 { + enum IdentifyEffectIdentifier : ENUM8 { + kBlink = 0; + kBreathe = 1; + kOkay = 2; + kChannelChange = 11; + kFinishEffect = 254; + kStopEffect = 255; + } + + enum IdentifyEffectVariant : ENUM8 { + kDefault = 0; + } + + enum IdentifyIdentifyType : ENUM8 { + kNone = 0; + kVisibleLight = 1; + kVisibleLED = 2; + kAudibleBeep = 3; + kDisplay = 4; + kActuator = 5; + } + + attribute int16u identifyTime = 0; + readonly attribute enum8 identifyType = 1; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct IdentifyRequest { + INT16U identifyTime = 0; + } + + command access(invoke: manage) Identify(IdentifyRequest): DefaultSuccess = 0; +} + +server cluster IlluminanceMeasurement = 1024 { + enum LightSensorType : ENUM8 { + kPhotodiode = 0; + kCmos = 1; + } + + readonly attribute nullable int16u measuredValue = 0; + readonly attribute nullable int16u minMeasuredValue = 1; + readonly attribute nullable int16u maxMeasuredValue = 2; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster KeypadInput = 1289 { + enum CecKeyCode : ENUM8 { + kSelect = 0; + kUp = 1; + kDown = 2; + kLeft = 3; + kRight = 4; + kRightUp = 5; + kRightDown = 6; + kLeftUp = 7; + kLeftDown = 8; + kRootMenu = 9; + kSetupMenu = 10; + kContentsMenu = 11; + kFavoriteMenu = 12; + kExit = 13; + kMediaTopMenu = 16; + kMediaContextSensitiveMenu = 17; + kNumberEntryMode = 29; + kNumber11 = 30; + kNumber12 = 31; + kNumber0OrNumber10 = 32; + kNumbers1 = 33; + kNumbers2 = 34; + kNumbers3 = 35; + kNumbers4 = 36; + kNumbers5 = 37; + kNumbers6 = 38; + kNumbers7 = 39; + kNumbers8 = 40; + kNumbers9 = 41; + kDot = 42; + kEnter = 43; + kClear = 44; + kNextFavorite = 47; + kChannelUp = 48; + kChannelDown = 49; + kPreviousChannel = 50; + kSoundSelect = 51; + kInputSelect = 52; + kDisplayInformation = 53; + kHelp = 54; + kPageUp = 55; + kPageDown = 56; + kPower = 64; + kVolumeUp = 65; + kVolumeDown = 66; + kMute = 67; + kPlay = 68; + kStop = 69; + kPause = 70; + kRecord = 71; + kRewind = 72; + kFastForward = 73; + kEject = 74; + kForward = 75; + kBackward = 76; + kStopRecord = 77; + kPauseRecord = 78; + kReserved = 79; + kAngle = 80; + kSubPicture = 81; + kVideoOnDemand = 82; + kElectronicProgramGuide = 83; + kTimerProgramming = 84; + kInitialConfiguration = 85; + kSelectBroadcastType = 86; + kSelectSoundPresentation = 87; + kPlayFunction = 96; + kPausePlayFunction = 97; + kRecordFunction = 98; + kPauseRecordFunction = 99; + kStopFunction = 100; + kMuteFunction = 101; + kRestoreVolumeFunction = 102; + kTuneFunction = 103; + kSelectMediaFunction = 104; + kSelectAvInputFunction = 105; + kSelectAudioInputFunction = 106; + kPowerToggleFunction = 107; + kPowerOffFunction = 108; + kPowerOnFunction = 109; + kF1Blue = 113; + kF2Red = 114; + kF3Green = 115; + kF4Yellow = 116; + kF5 = 117; + kData = 118; + } + + enum KeypadInputStatusEnum : ENUM8 { + kSuccess = 0; + kUnsupportedKey = 1; + kInvalidKeyInCurrentState = 2; + } + + bitmap KeypadInputFeature : BITMAP32 { + kNavigationKeyCodes = 0x1; + kLocationKeys = 0x2; + kNumberKeys = 0x4; + } + + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct SendKeyRequest { + CecKeyCode keyCode = 0; + } + + response struct SendKeyResponse = 1 { + KeypadInputStatusEnum status = 0; + } + + command SendKey(SendKeyRequest): SendKeyResponse = 0; +} + +server cluster LevelControl = 8 { + enum MoveMode : ENUM8 { + kUp = 0; + kDown = 1; + } + + enum StepMode : ENUM8 { + kUp = 0; + kDown = 1; + } + + bitmap LevelControlFeature : BITMAP32 { + kOnOff = 0x1; + kLighting = 0x2; + kFrequency = 0x4; + } + + readonly attribute int8u currentLevel = 0; + attribute bitmap8 options = 15; + attribute nullable int8u onLevel = 17; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct MoveToLevelRequest { + INT8U level = 0; + INT16U transitionTime = 1; + BITMAP8 optionMask = 2; + BITMAP8 optionOverride = 3; + } + + request struct MoveRequest { + MoveMode moveMode = 0; + INT8U rate = 1; + BITMAP8 optionMask = 2; + BITMAP8 optionOverride = 3; + } + + request struct StepRequest { + StepMode stepMode = 0; + INT8U stepSize = 1; + INT16U transitionTime = 2; + BITMAP8 optionMask = 3; + BITMAP8 optionOverride = 4; + } + + request struct StopRequest { + BITMAP8 optionMask = 0; + BITMAP8 optionOverride = 1; + } + + request struct MoveToLevelWithOnOffRequest { + INT8U level = 0; + INT16U transitionTime = 1; + } + + request struct MoveWithOnOffRequest { + MoveMode moveMode = 0; + INT8U rate = 1; + } + + request struct StepWithOnOffRequest { + StepMode stepMode = 0; + INT8U stepSize = 1; + INT16U transitionTime = 2; + } + + command MoveToLevel(MoveToLevelRequest): DefaultSuccess = 0; + command Move(MoveRequest): DefaultSuccess = 1; + command Step(StepRequest): DefaultSuccess = 2; + command Stop(StopRequest): DefaultSuccess = 3; + command MoveToLevelWithOnOff(MoveToLevelWithOnOffRequest): DefaultSuccess = 4; + command MoveWithOnOff(MoveWithOnOffRequest): DefaultSuccess = 5; + command StepWithOnOff(StepWithOnOffRequest): DefaultSuccess = 6; + command StopWithOnOff(): DefaultSuccess = 7; +} + +server cluster LocalizationConfiguration = 43 { + attribute char_string<35> activeLocale = 0; + readonly attribute CHAR_STRING supportedLocales[] = 1; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster LowPower = 1288 { + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + command Sleep(): DefaultSuccess = 0; +} + +server cluster MediaInput = 1287 { + enum InputTypeEnum : ENUM8 { + kInternal = 0; + kAux = 1; + kCoax = 2; + kComposite = 3; + kHdmi = 4; + kInput = 5; + kLine = 6; + kOptical = 7; + kVideo = 8; + kScart = 9; + kUsb = 10; + kOther = 11; + } + + bitmap MediaInputFeature : BITMAP32 { + kNameUpdates = 0x1; + } + + struct InputInfo { + int8u index = 0; + InputTypeEnum inputType = 1; + char_string<32> name = 2; + char_string<32> description = 3; + } + + readonly attribute InputInfo inputList[] = 0; + readonly attribute int8u currentInput = 1; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct SelectInputRequest { + INT8U index = 0; + } + + command SelectInput(SelectInputRequest): DefaultSuccess = 0; + command ShowInputStatus(): DefaultSuccess = 1; + command HideInputStatus(): DefaultSuccess = 2; +} + +server cluster MediaPlayback = 1286 { + enum MediaPlaybackStatusEnum : ENUM8 { + kSuccess = 0; + kInvalidStateForCommand = 1; + kNotAllowed = 2; + kNotActive = 3; + kSpeedOutOfRange = 4; + kSeekOutOfRange = 5; + } + + enum PlaybackStateEnum : ENUM8 { + kPlaying = 0; + kPaused = 1; + kNotPlaying = 2; + kBuffering = 3; + } + + readonly attribute PlaybackStateEnum currentState = 0; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + response struct PlaybackResponse = 10 { + MediaPlaybackStatusEnum status = 0; + optional CHAR_STRING data = 1; + } + + command Play(): PlaybackResponse = 0; + command Pause(): PlaybackResponse = 1; + command StopPlayback(): PlaybackResponse = 2; +} + +server cluster ModeSelect = 80 { + bitmap ModeSelectFeature : BITMAP32 { + kDeponoff = 0x1; + } + + struct ModeOptionStruct { + char_string<32> label = 0; + int8u mode = 1; + SemanticTag semanticTags[] = 2; + } + + struct SemanticTag { + enum16 mfgCode = 0; + enum16 value = 1; + } + + readonly attribute char_string<32> description = 0; + readonly attribute nullable enum16 standardNamespace = 1; + readonly attribute ModeOptionStruct supportedModes[] = 2; + readonly attribute int8u currentMode = 3; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct ChangeToModeRequest { + INT8U newMode = 0; + } + + command ChangeToMode(ChangeToModeRequest): DefaultSuccess = 0; +} + +server cluster NetworkCommissioning = 49 { + enum NetworkCommissioningStatus : ENUM8 { + kSuccess = 0; + kOutOfRange = 1; + kBoundsExceeded = 2; + kNetworkIDNotFound = 3; + kDuplicateNetworkID = 4; + kNetworkNotFound = 5; + kRegulatoryError = 6; + kAuthFailure = 7; + kUnsupportedSecurity = 8; + kOtherConnectionFailure = 9; + kIPV6Failed = 10; + kIPBindFailed = 11; + kUnknownError = 12; + } + + enum WiFiBand : ENUM8 { + k2g4 = 0; + k3g65 = 1; + k5g = 2; + k6g = 3; + k60g = 4; + } + + bitmap NetworkCommissioningFeature : BITMAP32 { + kWiFiNetworkInterface = 0x1; + kThreadNetworkInterface = 0x2; + kEthernetNetworkInterface = 0x4; + } + + bitmap WiFiSecurity : BITMAP8 { + kUnencrypted = 0x1; + kWepPersonal = 0x2; + kWpaPersonal = 0x4; + kWpa2Personal = 0x8; + kWpa3Personal = 0x10; + } + + struct NetworkInfo { + octet_string<32> networkID = 0; + boolean connected = 1; + } + + struct WiFiInterfaceScanResult { + WiFiSecurity security = 0; + octet_string<32> ssid = 1; + octet_string<6> bssid = 2; + int16u channel = 3; + WiFiBand wiFiBand = 4; + int8s rssi = 5; + } + + struct ThreadInterfaceScanResult { + int16u panId = 0; + int64u extendedPanId = 1; + char_string<16> networkName = 2; + int16u channel = 3; + int8u version = 4; + octet_string<8> extendedAddress = 5; + int8s rssi = 6; + int8u lqi = 7; + } + + readonly attribute access(read: administer) int8u maxNetworks = 0; + readonly attribute access(read: administer) NetworkInfo networks[] = 1; + readonly attribute int8u scanMaxTimeSeconds = 2; + readonly attribute int8u connectMaxTimeSeconds = 3; + attribute access(write: administer) boolean interfaceEnabled = 4; + readonly attribute access(read: administer) nullable NetworkCommissioningStatus lastNetworkingStatus = 5; + readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6; + readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct ScanNetworksRequest { + optional nullable OCTET_STRING ssid = 0; + optional INT64U breadcrumb = 1; + } + + request struct AddOrUpdateWiFiNetworkRequest { + OCTET_STRING ssid = 0; + OCTET_STRING credentials = 1; + optional INT64U breadcrumb = 2; + } + + request struct AddOrUpdateThreadNetworkRequest { + OCTET_STRING operationalDataset = 0; + optional INT64U breadcrumb = 1; + } + + request struct RemoveNetworkRequest { + OCTET_STRING networkID = 0; + optional INT64U breadcrumb = 1; + } + + request struct ConnectNetworkRequest { + OCTET_STRING networkID = 0; + optional INT64U breadcrumb = 1; + } + + request struct ReorderNetworkRequest { + OCTET_STRING networkID = 0; + INT8U networkIndex = 1; + optional INT64U breadcrumb = 2; + } + + response struct ScanNetworksResponse = 1 { + NetworkCommissioningStatus networkingStatus = 0; + optional CHAR_STRING debugText = 1; + optional WiFiInterfaceScanResult wiFiScanResults[] = 2; + optional ThreadInterfaceScanResult threadScanResults[] = 3; + } + + response struct NetworkConfigResponse = 5 { + NetworkCommissioningStatus networkingStatus = 0; + optional CHAR_STRING debugText = 1; + optional INT8U networkIndex = 2; + } + + response struct ConnectNetworkResponse = 7 { + NetworkCommissioningStatus networkingStatus = 0; + optional CHAR_STRING debugText = 1; + nullable INT32S errorValue = 2; + } + + command access(invoke: administer) ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; + command access(invoke: administer) AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; + command access(invoke: administer) AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; + command access(invoke: administer) RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; + command access(invoke: administer) ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; + command access(invoke: administer) ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; +} + +client cluster OtaSoftwareUpdateProvider = 41 { + enum OTAApplyUpdateAction : ENUM8 { + kProceed = 0; + kAwaitNextAction = 1; + kDiscontinue = 2; + } + + enum OTADownloadProtocol : ENUM8 { + kBDXSynchronous = 0; + kBDXAsynchronous = 1; + kHttps = 2; + kVendorSpecific = 3; + } + + enum OTAQueryStatus : ENUM8 { + kUpdateAvailable = 0; + kBusy = 1; + kNotAvailable = 2; + kDownloadProtocolNotSupported = 3; + } + + readonly attribute int16u clusterRevision = 65533; + + request struct QueryImageRequest { + vendor_id vendorId = 0; + INT16U productId = 1; + INT32U softwareVersion = 2; + OTADownloadProtocol protocolsSupported[] = 3; + optional INT16U hardwareVersion = 4; + optional CHAR_STRING location = 5; + optional BOOLEAN requestorCanConsent = 6; + optional OCTET_STRING metadataForProvider = 7; + } + + request struct ApplyUpdateRequestRequest { + OCTET_STRING updateToken = 0; + INT32U newVersion = 1; + } + + request struct NotifyUpdateAppliedRequest { + OCTET_STRING updateToken = 0; + INT32U softwareVersion = 1; + } + + response struct ApplyUpdateResponse = 3 { + OTAApplyUpdateAction action = 0; + INT32U delayedActionTime = 1; + } + + command QueryImage(QueryImageRequest): QueryImageResponse = 0; + command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; + command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; +} + +server cluster OtaSoftwareUpdateRequestor = 42 { + enum OTAAnnouncementReason : ENUM8 { + kSimpleAnnouncement = 0; + kUpdateAvailable = 1; + kUrgentUpdateAvailable = 2; + } + + enum OTAChangeReasonEnum : ENUM8 { + kUnknown = 0; + kSuccess = 1; + kFailure = 2; + kTimeOut = 3; + kDelayByProvider = 4; + } + + enum OTAUpdateStateEnum : ENUM8 { + kUnknown = 0; + kIdle = 1; + kQuerying = 2; + kDelayedOnQuery = 3; + kDownloading = 4; + kApplying = 5; + kDelayedOnApply = 6; + kRollingBack = 7; + kDelayedOnUserConsent = 8; + } + + struct ProviderLocation { + node_id providerNodeID = 1; + endpoint_no endpoint = 2; + fabric_idx fabricIndex = 254; + } + + info event StateTransition = 0 { + OTAUpdateStateEnum previousState = 0; + OTAUpdateStateEnum newState = 1; + OTAChangeReasonEnum reason = 2; + nullable INT32U targetSoftwareVersion = 3; + } + + critical event VersionApplied = 1 { + INT32U softwareVersion = 0; + INT16U productID = 1; + } + + info event DownloadError = 2 { + INT32U softwareVersion = 0; + INT64U bytesDownloaded = 1; + nullable INT8U progressPercent = 2; + nullable INT64S platformCode = 3; + } + + attribute ProviderLocation defaultOtaProviders[] = 0; + readonly attribute boolean updatePossible = 1; + readonly attribute OTAUpdateStateEnum updateState = 2; + readonly attribute nullable int8u updateStateProgress = 3; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct AnnounceOtaProviderRequest { + node_id providerNodeId = 0; + vendor_id vendorId = 1; + OTAAnnouncementReason announcementReason = 2; + optional OCTET_STRING metadataForNode = 3; + endpoint_no endpoint = 4; + } + + command AnnounceOtaProvider(AnnounceOtaProviderRequest): DefaultSuccess = 0; +} + +server cluster OccupancySensing = 1030 { + readonly attribute bitmap8 occupancy = 0; + readonly attribute enum8 occupancySensorType = 1; + readonly attribute bitmap8 occupancySensorTypeBitmap = 2; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster OnOff = 6 { + enum OnOffDelayedAllOffEffectVariant : ENUM8 { + kFadeToOffIn0p8Seconds = 0; + kNoFade = 1; + k50PercentDimDownIn0p8SecondsThenFadeToOffIn12Seconds = 2; + } + + enum OnOffDyingLightEffectVariant : ENUM8 { + k20PercenterDimUpIn0p5SecondsThenFadeToOffIn1Second = 0; + } + + enum OnOffEffectIdentifier : ENUM8 { + kDelayedAllOff = 0; + kDyingLight = 1; + } + + enum OnOffStartUpOnOff : ENUM8 { + kOff = 0; + kOn = 1; + kTogglePreviousOnOff = 2; + } + + bitmap OnOffControl : BITMAP8 { + kAcceptOnlyWhenOn = 0x1; + } + + bitmap OnOffFeature : BITMAP32 { + kLighting = 0x1; + } + + bitmap SceneFeatures : BITMAP32 { + kSceneNames = 0x1; + } + + readonly attribute boolean onOff = 0; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + command Off(): DefaultSuccess = 0; + command On(): DefaultSuccess = 1; + command Toggle(): DefaultSuccess = 2; +} + +server cluster OperationalCredentials = 62 { + enum OperationalCertStatus : ENUM8 { + kSuccess = 0; + kInvalidPublicKey = 1; + kInvalidNodeOpId = 2; + kInvalidNOC = 3; + kMissingCsr = 4; + kTableFull = 5; + kInvalidAdminSubject = 6; + kInsufficientPrivilege = 8; + kFabricConflict = 9; + kLabelConflict = 10; + kInvalidFabricIndex = 11; + } + + struct NOCStruct { + octet_string noc = 1; + nullable octet_string icac = 2; + fabric_idx fabricIndex = 254; + } + + struct FabricDescriptor { + octet_string<65> rootPublicKey = 1; + vendor_id vendorId = 2; + fabric_id fabricId = 3; + node_id nodeId = 4; + char_string<32> label = 5; + fabric_idx fabricIndex = 254; + } + + readonly attribute access(read: administer) NOCStruct NOCs[] = 0; + readonly attribute FabricDescriptor fabrics[] = 1; + readonly attribute int8u supportedFabrics = 2; + readonly attribute int8u commissionedFabrics = 3; + readonly attribute OCTET_STRING trustedRootCertificates[] = 4; + readonly attribute fabric_idx currentFabricIndex = 5; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct AttestationRequestRequest { + OCTET_STRING attestationNonce = 0; + } + + request struct CertificateChainRequestRequest { + INT8U certificateType = 0; + } + + request struct CSRRequestRequest { + OCTET_STRING CSRNonce = 0; + optional boolean isForUpdateNOC = 1; + } + + request struct AddNOCRequest { + OCTET_STRING NOCValue = 0; + optional OCTET_STRING ICACValue = 1; + OCTET_STRING IPKValue = 2; + Int64u caseAdminSubject = 3; + VENDOR_ID adminVendorId = 4; + } + + request struct UpdateNOCRequest { + OCTET_STRING NOCValue = 0; + optional OCTET_STRING ICACValue = 1; + } + + request struct UpdateFabricLabelRequest { + CHAR_STRING label = 0; + } + + request struct RemoveFabricRequest { + fabric_idx fabricIndex = 0; + } + + request struct AddTrustedRootCertificateRequest { + OCTET_STRING rootCertificate = 0; + } + + response struct AttestationResponse = 1 { + OCTET_STRING attestationElements = 0; + OCTET_STRING signature = 1; + } + + response struct CertificateChainResponse = 3 { + OCTET_STRING certificate = 0; + } + + response struct CSRResponse = 5 { + OCTET_STRING NOCSRElements = 0; + OCTET_STRING attestationSignature = 1; + } + + response struct NOCResponse = 8 { + OperationalCertStatus statusCode = 0; + optional fabric_idx fabricIndex = 1; + optional CHAR_STRING debugText = 2; + } + + command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; + command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; + command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4; + command access(invoke: administer) AddNOC(AddNOCRequest): NOCResponse = 6; + command access(invoke: administer) UpdateNOC(UpdateNOCRequest): NOCResponse = 7; + command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; + command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; + command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; +} + +server cluster PowerSource = 47 { + enum BatChargeFaultType : ENUM8 { + kUnspecfied = 0; + kAmbientTooHot = 1; + kAmbientTooCold = 2; + kBatteryTooHot = 3; + kBatteryTooCold = 4; + kBatteryAbsent = 5; + kBatteryOverVoltage = 6; + kBatteryUnderVoltage = 7; + kChargerOverVoltage = 8; + kChargerUnderVoltage = 9; + kSafetyTimeout = 10; + } + + enum BatChargeLevel : ENUM8 { + kOk = 0; + kWarning = 1; + kCritical = 2; + } + + enum BatChargeState : ENUM8 { + kUnknown = 0; + kIsCharging = 1; + kIsAtFullCharge = 2; + kIsNotCharging = 3; + } + + enum BatFaultType : ENUM8 { + kUnspecfied = 0; + kOverTemp = 1; + kUnderTemp = 2; + } + + enum BatReplaceability : ENUM8 { + kUnspecified = 0; + kNotReplaceable = 1; + kUserReplaceable = 2; + kFactoryReplaceable = 3; + } + + enum PowerSourceStatus : ENUM8 { + kUnspecfied = 0; + kActive = 1; + kStandby = 2; + kUnavailable = 3; + } + + enum WiredCurrentType : ENUM8 { + kAc = 0; + kDc = 1; + } + + enum WiredFaultType : ENUM8 { + kUnspecfied = 0; + kOverVoltage = 1; + kUnderVoltage = 2; + } + + bitmap PowerSourceFeature : BITMAP32 { + kWired = 0x1; + kBattery = 0x2; + kRechargeable = 0x4; + kReplaceable = 0x8; + } + + readonly attribute enum8 status = 0; + readonly attribute int8u order = 1; + readonly attribute char_string<60> description = 2; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster PowerSourceConfiguration = 46 { + readonly attribute INT8U sources[] = 0; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster PressureMeasurement = 1027 { + bitmap PressureFeature : BITMAP32 { + kExt = 0x1; + } + + readonly attribute nullable int16s measuredValue = 0; + readonly attribute nullable int16s minMeasuredValue = 1; + readonly attribute nullable int16s maxMeasuredValue = 2; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster PumpConfigurationAndControl = 512 { + enum PumpControlMode : ENUM8 { + kConstantSpeed = 0; + kConstantPressure = 1; + kProportionalPressure = 2; + kConstantFlow = 3; + kConstantTemperature = 5; + kAutomatic = 7; + } + + enum PumpOperationMode : ENUM8 { + kNormal = 0; + kMinimum = 1; + kMaximum = 2; + kLocal = 3; + } + + bitmap PumpStatus : BITMAP16 { + kDeviceFault = 0x1; + kSupplyfault = 0x2; + kSpeedLow = 0x4; + kSpeedHigh = 0x8; + kLocalOverride = 0x10; + kRunning = 0x20; + kRemotePressure = 0x40; + kRemoteFlow = 0x80; + kRemoteTemperature = 0x100; + } + + info event SupplyVoltageLow = 0 { + } + + info event SupplyVoltageHigh = 1 { + } + + info event PowerMissingPhase = 2 { + } + + info event SystemPressureLow = 3 { + } + + info event SystemPressureHigh = 4 { + } + + critical event DryRunning = 5 { + } + + info event MotorTemperatureHigh = 6 { + } + + critical event PumpMotorFatalFailure = 7 { + } + + info event ElectronicTemperatureHigh = 8 { + } + + critical event PumpBlocked = 9 { + } + + info event SensorFailure = 10 { + } + + info event ElectronicNonFatalFailure = 11 { + } + + critical event ElectronicFatalFailure = 12 { + } + + info event GeneralFault = 13 { + } + + info event Leakage = 14 { + } + + info event AirDetection = 15 { + } + + info event TurbineOperation = 16 { + } + + readonly attribute nullable int16s maxPressure = 0; + readonly attribute nullable int16u maxSpeed = 1; + readonly attribute nullable int16u maxFlow = 2; + readonly attribute PumpOperationMode effectiveOperationMode = 17; + readonly attribute PumpControlMode effectiveControlMode = 18; + readonly attribute nullable int16s capacity = 19; + attribute access(write: manage) PumpOperationMode operationMode = 32; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster RelativeHumidityMeasurement = 1029 { + readonly attribute nullable int16u measuredValue = 0; + readonly attribute nullable int16u minMeasuredValue = 1; + readonly attribute nullable int16u maxMeasuredValue = 2; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster Scenes = 5 { + bitmap ScenesCopyMode : BITMAP8 { + kCopyAllScenes = 0x1; + } + + struct ExtensionFieldSet { + cluster_id clusterId = 0; + AttributeValuePair attributeValueList[] = 1; + } + + struct AttributeValuePair { + optional attrib_id attributeId = 0; + int8u attributeValue[] = 1; + } + + readonly attribute int8u sceneCount = 0; + readonly attribute int8u currentScene = 1; + readonly attribute group_id currentGroup = 2; + readonly attribute boolean sceneValid = 3; + readonly attribute bitmap8 nameSupport = 4; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct AddSceneRequest { + group_id groupId = 0; + INT8U sceneId = 1; + INT16U transitionTime = 2; + CHAR_STRING sceneName = 3; + ExtensionFieldSet extensionFieldSets[] = 4; + } + + request struct ViewSceneRequest { + group_id groupId = 0; + INT8U sceneId = 1; + } + + request struct RemoveSceneRequest { + group_id groupId = 0; + INT8U sceneId = 1; + } + + request struct RemoveAllScenesRequest { + group_id groupId = 0; + } + + request struct StoreSceneRequest { + group_id groupId = 0; + INT8U sceneId = 1; + } + + request struct RecallSceneRequest { + group_id groupId = 0; + INT8U sceneId = 1; + optional nullable INT16U transitionTime = 2; + } + + request struct GetSceneMembershipRequest { + group_id groupId = 0; + } + + response struct AddSceneResponse = 0 { + ENUM8 status = 0; + group_id groupId = 1; + INT8U sceneId = 2; + } + + response struct ViewSceneResponse = 1 { + ENUM8 status = 0; + group_id groupId = 1; + INT8U sceneId = 2; + optional INT16U transitionTime = 3; + optional CHAR_STRING sceneName = 4; + optional ExtensionFieldSet extensionFieldSets[] = 5; + } + + response struct RemoveSceneResponse = 2 { + ENUM8 status = 0; + group_id groupId = 1; + INT8U sceneId = 2; + } + + response struct RemoveAllScenesResponse = 3 { + ENUM8 status = 0; + group_id groupId = 1; + } + + response struct StoreSceneResponse = 4 { + ENUM8 status = 0; + group_id groupId = 1; + INT8U sceneId = 2; + } + + response struct GetSceneMembershipResponse = 6 { + ENUM8 status = 0; + nullable INT8U capacity = 1; + group_id groupId = 2; + optional INT8U sceneList[] = 3; + } + + command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0; + command ViewScene(ViewSceneRequest): ViewSceneResponse = 1; + command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2; + command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3; + command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4; + command RecallScene(RecallSceneRequest): DefaultSuccess = 5; + command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6; +} + +server cluster SoftwareDiagnostics = 52 { + bitmap SoftwareDiagnosticsFeature : BITMAP32 { + kWaterMarks = 0x1; + } + + info event SoftwareFault = 0 { + SoftwareFaultStruct softwareFault = 0; + } + + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster Switch = 59 { + info event SwitchLatched = 0 { + INT8U newPosition = 0; + } + + info event InitialPress = 1 { + INT8U newPosition = 0; + } + + info event LongPress = 2 { + INT8U newPosition = 0; + } + + info event ShortRelease = 3 { + INT8U previousPosition = 0; + } + + info event LongRelease = 4 { + INT8U previousPosition = 0; + } + + info event MultiPressOngoing = 5 { + INT8U newPosition = 0; + INT8U currentNumberOfPressesCounted = 1; + } + + info event MultiPressComplete = 6 { + INT8U newPosition = 0; + INT8U totalNumberOfPressesCounted = 1; + } + + readonly attribute int8u numberOfPositions = 0; + readonly attribute int8u currentPosition = 1; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster TargetNavigator = 1285 { + enum TargetNavigatorStatusEnum : ENUM8 { + kSuccess = 0; + kTargetNotFound = 1; + kNotAllowed = 2; + } + + struct TargetInfo { + int8u identifier = 0; + char_string<32> name = 1; + } + + readonly attribute TargetInfo targetList[] = 0; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct NavigateTargetRequest { + INT8U target = 0; + optional CHAR_STRING data = 1; + } + + response struct NavigateTargetResponse = 1 { + TargetNavigatorStatusEnum status = 0; + optional CHAR_STRING data = 1; + } + + command NavigateTarget(NavigateTargetRequest): NavigateTargetResponse = 0; +} + +server cluster TemperatureMeasurement = 1026 { + readonly attribute nullable int16s measuredValue = 0; + readonly attribute nullable int16s minMeasuredValue = 1; + readonly attribute nullable int16s maxMeasuredValue = 2; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster TestCluster = 4294048773 { + enum SimpleEnum : ENUM8 { + kUnspecified = 0; + kValueA = 1; + kValueB = 2; + kValueC = 3; + } + + bitmap Bitmap16MaskMap : BITMAP16 { + kMaskVal1 = 0x1; + kMaskVal2 = 0x2; + kMaskVal3 = 0x4; + kMaskVal4 = 0x4000; + } + + bitmap Bitmap32MaskMap : BITMAP32 { + kMaskVal1 = 0x1; + kMaskVal2 = 0x2; + kMaskVal3 = 0x4; + kMaskVal4 = 0x40000000; + } + + bitmap Bitmap64MaskMap : BITMAP64 { + kMaskVal1 = 0x1; + kMaskVal2 = 0x2; + kMaskVal3 = 0x4; + kMaskVal4 = 0x4000000000000000; + } + + bitmap Bitmap8MaskMap : BITMAP8 { + kMaskVal1 = 0x1; + kMaskVal2 = 0x2; + kMaskVal3 = 0x4; + kMaskVal4 = 0x40; + } + + bitmap SimpleBitmap : BITMAP8 { + kValueA = 0x1; + kValueB = 0x2; + kValueC = 0x4; + } + + struct TestListStructOctet { + int64u member1 = 0; + octet_string<32> member2 = 1; + } + + struct NullablesAndOptionalsStruct { + nullable int16u nullableInt = 0; + optional int16u optionalInt = 1; + optional nullable int16u nullableOptionalInt = 2; + nullable char_string nullableString = 3; + optional char_string optionalString = 4; + optional nullable char_string nullableOptionalString = 5; + nullable SimpleStruct nullableStruct = 6; + optional SimpleStruct optionalStruct = 7; + optional nullable SimpleStruct nullableOptionalStruct = 8; + nullable SimpleEnum nullableList[] = 9; + optional SimpleEnum optionalList[] = 10; + optional nullable SimpleEnum nullableOptionalList[] = 11; + } + + struct SimpleStruct { + int8u a = 0; + boolean b = 1; + SimpleEnum c = 2; + octet_string d = 3; + char_string e = 4; + SimpleBitmap f = 5; + single g = 6; + double h = 7; + } + + struct TestFabricScoped { + int8u fabricSensitiveInt8u = 1; + optional int8u optionalFabricSensitiveInt8u = 2; + nullable int8u nullableFabricSensitiveInt8u = 3; + optional nullable int8u nullableOptionalFabricSensitiveInt8u = 4; + char_string fabricSensitiveCharString = 5; + SimpleStruct fabricSensitiveStruct = 6; + int8u fabricSensitiveInt8uList[] = 7; + fabric_idx fabricIndex = 254; + } + + struct NestedStructList { + int8u a = 0; + boolean b = 1; + SimpleStruct c = 2; + SimpleStruct d[] = 3; + int32u e[] = 4; + octet_string f[] = 5; + int8u g[] = 6; + } + + struct NestedStruct { + int8u a = 0; + boolean b = 1; + SimpleStruct c = 2; + } + + info event TestEvent = 1 { + INT8U arg1 = 1; + SimpleEnum arg2 = 2; + BOOLEAN arg3 = 3; + SimpleStruct arg4 = 4; + SimpleStruct arg5[] = 5; + SimpleEnum arg6[] = 6; + } + + info event TestFabricScopedEvent = 2 { + fabric_idx arg1 = 254; + } + + attribute boolean boolean = 0; + attribute Bitmap8MaskMap bitmap8 = 1; + attribute Bitmap16MaskMap bitmap16 = 2; + attribute Bitmap32MaskMap bitmap32 = 3; + attribute Bitmap64MaskMap bitmap64 = 4; + attribute int8u int8u = 5; + attribute int16u int16u = 6; + attribute int24u int24u = 7; + attribute int32u int32u = 8; + attribute int40u int40u = 9; + attribute int48u int48u = 10; + attribute int56u int56u = 11; + attribute int64u int64u = 12; + attribute int8s int8s = 13; + attribute int16s int16s = 14; + attribute int24s int24s = 15; + attribute int32s int32s = 16; + attribute int40s int40s = 17; + attribute int48s int48s = 18; + attribute int56s int56s = 19; + attribute int64s int64s = 20; + attribute enum8 enum8 = 21; + attribute enum16 enum16 = 22; + attribute single floatSingle = 23; + attribute double floatDouble = 24; + attribute octet_string<10> octetString = 25; + attribute INT8U listInt8u[] = 26; + attribute OCTET_STRING listOctetString[] = 27; + attribute TestListStructOctet listStructOctetString[] = 28; + attribute long_octet_string<1000> longOctetString = 29; + attribute char_string<10> charString = 30; + attribute long_char_string<1000> longCharString = 31; + attribute epoch_us epochUs = 32; + attribute epoch_s epochS = 33; + attribute vendor_id vendorId = 34; + attribute NullablesAndOptionalsStruct listNullablesAndOptionalsStruct[] = 35; + attribute SimpleEnum enumAttr = 36; + attribute SimpleStruct structAttr = 37; + attribute int8u rangeRestrictedInt8u = 38; + attribute int8s rangeRestrictedInt8s = 39; + attribute int16u rangeRestrictedInt16u = 40; + attribute int16s rangeRestrictedInt16s = 41; + attribute LONG_OCTET_STRING listLongOctetString[] = 42; + attribute TestFabricScoped listFabricScoped[] = 43; + attribute boolean timedWriteBoolean = 48; + attribute boolean generalErrorBoolean = 49; + attribute boolean clusterErrorBoolean = 50; + attribute nullable boolean nullableBoolean = 16384; + attribute nullable Bitmap8MaskMap nullableBitmap8 = 16385; + attribute nullable Bitmap16MaskMap nullableBitmap16 = 16386; + attribute nullable Bitmap32MaskMap nullableBitmap32 = 16387; + attribute nullable Bitmap64MaskMap nullableBitmap64 = 16388; + attribute nullable int8u nullableInt8u = 16389; + attribute nullable int16u nullableInt16u = 16390; + attribute nullable int24u nullableInt24u = 16391; + attribute nullable int32u nullableInt32u = 16392; + attribute nullable int40u nullableInt40u = 16393; + attribute nullable int48u nullableInt48u = 16394; + attribute nullable int56u nullableInt56u = 16395; + attribute nullable int64u nullableInt64u = 16396; + attribute nullable int8s nullableInt8s = 16397; + attribute nullable int16s nullableInt16s = 16398; + attribute nullable int24s nullableInt24s = 16399; + attribute nullable int32s nullableInt32s = 16400; + attribute nullable int40s nullableInt40s = 16401; + attribute nullable int48s nullableInt48s = 16402; + attribute nullable int56s nullableInt56s = 16403; + attribute nullable int64s nullableInt64s = 16404; + attribute nullable enum8 nullableEnum8 = 16405; + attribute nullable enum16 nullableEnum16 = 16406; + attribute nullable single nullableFloatSingle = 16407; + attribute nullable double nullableFloatDouble = 16408; + attribute nullable octet_string<10> nullableOctetString = 16409; + attribute nullable char_string<10> nullableCharString = 16414; + attribute nullable SimpleEnum nullableEnumAttr = 16420; + attribute nullable SimpleStruct nullableStruct = 16421; + attribute nullable int8u nullableRangeRestrictedInt8u = 16422; + attribute nullable int8s nullableRangeRestrictedInt8s = 16423; + attribute nullable int16u nullableRangeRestrictedInt16u = 16424; + attribute nullable int16s nullableRangeRestrictedInt16s = 16425; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct TestAddArgumentsRequest { + INT8U arg1 = 0; + INT8U arg2 = 1; + } + + request struct TestStructArgumentRequestRequest { + SimpleStruct arg1 = 0; + } + + request struct TestNestedStructArgumentRequestRequest { + NestedStruct arg1 = 0; + } + + request struct TestListStructArgumentRequestRequest { + SimpleStruct arg1[] = 0; + } + + request struct TestListInt8UArgumentRequestRequest { + INT8U arg1[] = 0; + } + + request struct TestNestedStructListArgumentRequestRequest { + NestedStructList arg1 = 0; + } + + request struct TestListNestedStructListArgumentRequestRequest { + NestedStructList arg1[] = 0; + } + + request struct TestListInt8UReverseRequestRequest { + INT8U arg1[] = 0; + } + + request struct TestEnumsRequestRequest { + vendor_id arg1 = 0; + SimpleEnum arg2 = 1; + } + + request struct TestNullableOptionalRequestRequest { + optional nullable INT8U arg1 = 0; + } + + request struct SimpleStructEchoRequestRequest { + SimpleStruct arg1 = 0; + } + + request struct TestSimpleOptionalArgumentRequestRequest { + optional BOOLEAN arg1 = 0; + } + + request struct TestEmitTestEventRequestRequest { + INT8U arg1 = 0; + SimpleEnum arg2 = 1; + BOOLEAN arg3 = 2; + } + + request struct TestEmitTestFabricScopedEventRequestRequest { + INT8U arg1 = 0; + } + + response struct TestSpecificResponse = 0 { + INT8U returnValue = 0; + } + + response struct TestAddArgumentsResponse = 1 { + INT8U returnValue = 0; + } + + response struct TestListInt8UReverseResponse = 4 { + INT8U arg1[] = 0; + } + + response struct TestEnumsResponse = 5 { + vendor_id arg1 = 0; + SimpleEnum arg2 = 1; + } + + response struct TestNullableOptionalResponse = 6 { + BOOLEAN wasPresent = 0; + optional BOOLEAN wasNull = 1; + optional INT8U value = 2; + optional nullable INT8U originalValue = 3; + } + + response struct SimpleStructResponse = 9 { + SimpleStruct arg1 = 0; + } + + response struct TestEmitTestEventResponse = 10 { + INT64U value = 0; + } + + response struct TestEmitTestFabricScopedEventResponse = 11 { + INT64U value = 0; + } + + command Test(): DefaultSuccess = 0; + command TestNotHandled(): DefaultSuccess = 1; + command TestSpecific(): TestSpecificResponse = 2; + command TestAddArguments(TestAddArgumentsRequest): TestAddArgumentsResponse = 4; + command TestStructArgumentRequest(TestStructArgumentRequestRequest): BooleanResponse = 7; + command TestNestedStructArgumentRequest(TestNestedStructArgumentRequestRequest): BooleanResponse = 8; + command TestListStructArgumentRequest(TestListStructArgumentRequestRequest): BooleanResponse = 9; + command TestListInt8UArgumentRequest(TestListInt8UArgumentRequestRequest): BooleanResponse = 10; + command TestNestedStructListArgumentRequest(TestNestedStructListArgumentRequestRequest): BooleanResponse = 11; + command TestListNestedStructListArgumentRequest(TestListNestedStructListArgumentRequestRequest): BooleanResponse = 12; + command TestListInt8UReverseRequest(TestListInt8UReverseRequestRequest): TestListInt8UReverseResponse = 13; + command TestEnumsRequest(TestEnumsRequestRequest): TestEnumsResponse = 14; + command TestNullableOptionalRequest(TestNullableOptionalRequestRequest): TestNullableOptionalResponse = 15; + command SimpleStructEchoRequest(SimpleStructEchoRequestRequest): SimpleStructResponse = 17; + timed command TimedInvokeRequest(): DefaultSuccess = 18; + command TestSimpleOptionalArgumentRequest(TestSimpleOptionalArgumentRequestRequest): DefaultSuccess = 19; + command TestEmitTestEventRequest(TestEmitTestEventRequestRequest): TestEmitTestEventResponse = 20; + command TestEmitTestFabricScopedEventRequest(TestEmitTestFabricScopedEventRequestRequest): TestEmitTestFabricScopedEventResponse = 21; +} + +server cluster Thermostat = 513 { + enum SetpointAdjustMode : ENUM8 { + kHeatSetpoint = 0; + kCoolSetpoint = 1; + kHeatAndCoolSetpoints = 2; + } + + enum ThermostatControlSequence : ENUM8 { + kCoolingOnly = 0; + kCoolingWithReheat = 1; + kHeatingOnly = 2; + kHeatingWithReheat = 3; + kCoolingAndHeating = 4; + kCoolingAndHeatingWithReheat = 5; + } + + enum ThermostatRunningMode : ENUM8 { + kOff = 0; + kCool = 3; + kHeat = 4; + } + + enum ThermostatSystemMode : ENUM8 { + kOff = 0; + kAuto = 1; + kCool = 3; + kHeat = 4; + kEmergencyHeating = 5; + kPrecooling = 6; + kFanOnly = 7; + } + + bitmap DayOfWeek : BITMAP8 { + kSunday = 0x1; + kMonday = 0x2; + kTuesday = 0x4; + kWednesday = 0x8; + kThursday = 0x10; + kFriday = 0x20; + kSaturday = 0x40; + kAwayOrVacation = 0x80; + } + + bitmap ModeForSequence : BITMAP8 { + kHeatSetpointFieldPresent = 0x1; + kCoolSetpointFieldPresent = 0x2; + } + + bitmap ThermostatFeature : BITMAP32 { + kHeating = 0x1; + kCooling = 0x2; + kOccupancy = 0x4; + kSchedule = 0x8; + kSetback = 0x10; + kAutomode = 0x20; + } + + struct ThermostatScheduleTransition { + int16u transitionTime = 0; + nullable int16s heatSetpoint = 1; + nullable int16s coolSetpoint = 2; + } + + readonly attribute nullable int16s localTemperature = 0; + attribute int16s occupiedHeatingSetpoint = 18; + attribute access(write: manage) ThermostatControlSequence controlSequenceOfOperation = 27; + attribute access(write: manage) enum8 systemMode = 28; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct SetpointRaiseLowerRequest { + SetpointAdjustMode mode = 0; + INT8S amount = 1; + } + + command SetpointRaiseLower(SetpointRaiseLowerRequest): DefaultSuccess = 0; +} + +server cluster ThermostatUserInterfaceConfiguration = 516 { + attribute enum8 temperatureDisplayMode = 0; + attribute access(write: manage) enum8 keypadLockout = 1; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster ThreadNetworkDiagnostics = 53 { + enum NetworkFault : ENUM8 { + kUnspecified = 0; + kLinkDown = 1; + kHardwareFailure = 2; + kNetworkJammed = 3; + } + + enum RoutingRole : ENUM8 { + kUnspecified = 0; + kUnassigned = 1; + kSleepyEndDevice = 2; + kEndDevice = 3; + kReed = 4; + kRouter = 5; + kLeader = 6; + } + + enum ThreadConnectionStatus : ENUM8 { + kConnected = 0; + kNotConnected = 1; + } + + bitmap ThreadNetworkDiagnosticsFeature : BITMAP32 { + kPacketCounts = 0x1; + kErrorCounts = 0x2; + kMLECounts = 0x4; + kMACCounts = 0x8; + } + + struct NeighborTable { + int64u extAddress = 0; + int32u age = 1; + int16u rloc16 = 2; + int32u linkFrameCounter = 3; + int32u mleFrameCounter = 4; + int8u lqi = 5; + nullable int8s averageRssi = 6; + nullable int8s lastRssi = 7; + int8u frameErrorRate = 8; + int8u messageErrorRate = 9; + boolean rxOnWhenIdle = 10; + boolean fullThreadDevice = 11; + boolean fullNetworkData = 12; + boolean isChild = 13; + } + + struct RouteTable { + int64u extAddress = 0; + int16u rloc16 = 1; + int8u routerId = 2; + int8u nextHop = 3; + int8u pathCost = 4; + int8u LQIIn = 5; + int8u LQIOut = 6; + int8u age = 7; + boolean allocated = 8; + boolean linkEstablished = 9; + } + + struct SecurityPolicy { + int16u rotationTime = 0; + bitmap16 flags = 1; + } + + struct OperationalDatasetComponents { + boolean activeTimestampPresent = 0; + boolean pendingTimestampPresent = 1; + boolean masterKeyPresent = 2; + boolean networkNamePresent = 3; + boolean extendedPanIdPresent = 4; + boolean meshLocalPrefixPresent = 5; + boolean delayPresent = 6; + boolean panIdPresent = 7; + boolean channelPresent = 8; + boolean pskcPresent = 9; + boolean securityPolicyPresent = 10; + boolean channelMaskPresent = 11; + } + + info event ConnectionStatus = 0 { + ThreadConnectionStatus connectionStatus = 0; + } + + readonly attribute nullable int16u channel = 0; + readonly attribute nullable RoutingRole routingRole = 1; + readonly attribute nullable char_string<16> networkName = 2; + readonly attribute nullable int16u panId = 3; + readonly attribute nullable int64u extendedPanId = 4; + readonly attribute nullable octet_string<17> meshLocalPrefix = 5; + readonly attribute NeighborTable neighborTableList[] = 7; + readonly attribute RouteTable routeTableList[] = 8; + readonly attribute nullable int32u partitionId = 9; + readonly attribute nullable int8u weighting = 10; + readonly attribute nullable int8u dataVersion = 11; + readonly attribute nullable int8u stableDataVersion = 12; + readonly attribute nullable int8u leaderRouterId = 13; + readonly attribute nullable SecurityPolicy securityPolicy = 59; + readonly attribute nullable octet_string<4> channelMask = 60; + readonly attribute nullable OperationalDatasetComponents operationalDatasetComponents = 61; + readonly attribute NetworkFault activeNetworkFaultsList[] = 62; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster TimeFormatLocalization = 44 { + enum CalendarType : ENUM8 { + kBuddhist = 0; + kChinese = 1; + kCoptic = 2; + kEthiopian = 3; + kGregorian = 4; + kHebrew = 5; + kIndian = 6; + kIslamic = 7; + kJapanese = 8; + kKorean = 9; + kPersian = 10; + kTaiwanese = 11; + } + + enum HourFormat : ENUM8 { + k12hr = 0; + k24hr = 1; + } + + attribute HourFormat hourFormat = 0; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster UnitLocalization = 45 { + enum TempUnit : ENUM8 { + kFahrenheit = 0; + kCelsius = 1; + kKelvin = 2; + } + + bitmap UnitLocalizationFeature : BITMAP32 { + kTemperatureUnit = 0x1; + } + + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster UserLabel = 65 { + attribute access(write: manage) LabelStruct labelList[] = 0; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster WakeOnLan = 1283 { + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster WiFiNetworkDiagnostics = 54 { + enum AssociationFailureCause : ENUM8 { + kUnknown = 0; + kAssociationFailed = 1; + kAuthenticationFailed = 2; + kSsidNotFound = 3; + } + + enum SecurityType : ENUM8 { + kUnspecified = 0; + kNone = 1; + kWep = 2; + kWpa = 3; + kWpa2 = 4; + kWpa3 = 5; + } + + enum WiFiConnectionStatus : ENUM8 { + kConnected = 0; + kNotConnected = 1; + } + + enum WiFiVersionType : ENUM8 { + k80211a = 0; + k80211b = 1; + k80211g = 2; + k80211n = 3; + k80211ac = 4; + k80211ax = 5; + } + + info event Disconnection = 0 { + INT16U reasonCode = 0; + } + + info event AssociationFailure = 1 { + AssociationFailureCause associationFailure = 0; + INT16U status = 1; + } + + info event ConnectionStatus = 2 { + WiFiConnectionStatus connectionStatus = 0; + } + + readonly attribute nullable octet_string<6> bssid = 0; + readonly attribute nullable SecurityType securityType = 1; + readonly attribute nullable WiFiVersionType wiFiVersion = 2; + readonly attribute nullable int16u channelNumber = 3; + readonly attribute nullable int8s rssi = 4; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster WindowCovering = 258 { + enum EndProductType : ENUM8 { + kRollerShade = 0; + kRomanShade = 1; + kBalloonShade = 2; + kWovenWood = 3; + kPleatedShade = 4; + kCellularShade = 5; + kLayeredShade = 6; + kLayeredShade2D = 7; + kSheerShade = 8; + kTiltOnlyInteriorBlind = 9; + kInteriorBlind = 10; + kVerticalBlindStripCurtain = 11; + kInteriorVenetianBlind = 12; + kExteriorVenetianBlind = 13; + kLateralLeftCurtain = 14; + kLateralRightCurtain = 15; + kCentralCurtain = 16; + kRollerShutter = 17; + kExteriorVerticalScreen = 18; + kAwningTerracePatio = 19; + kAwningVerticalScreen = 20; + kTiltOnlyPergola = 21; + kSwingingShutter = 22; + kSlidingShutter = 23; + kUnknown = 255; + } + + enum Type : ENUM8 { + kRollerShade = 0; + kRollerShade2Motor = 1; + kRollerShadeExterior = 2; + kRollerShadeExterior2Motor = 3; + kDrapery = 4; + kAwning = 5; + kShutter = 6; + kTiltBlindTiltOnly = 7; + kTiltBlindLiftAndTilt = 8; + kProjectorScreen = 9; + kUnknown = 255; + } + + bitmap ConfigStatus : BITMAP8 { + kOperational = 0x1; + kOnlineReserved = 0x2; + kLiftMovementReversed = 0x4; + kLiftPositionAware = 0x8; + kTiltPositionAware = 0x10; + kLiftEncoderControlled = 0x20; + kTiltEncoderControlled = 0x40; + } + + bitmap Mode : BITMAP8 { + kMotorDirectionReversed = 0x1; + kCalibrationMode = 0x2; + kMaintenanceMode = 0x4; + kLedFeedback = 0x8; + } + + bitmap WcFeature : BITMAP32 { + kLift = 0x1; + kTilt = 0x2; + kPositionAwareLift = 0x4; + kAbsolutePosition = 0x8; + kPositionAwareTilt = 0x10; + } + + bitmap WcOperationalStatus : BITMAP8 { + kGlobal = 0x3; + kLift = 0xC; + kTilt = 0x30; + } + + bitmap WcSafetyStatus : BITMAP16 { + kRemoteLockout = 0x1; + kTamperDetection = 0x2; + kFailedCommunication = 0x4; + kPositionFailure = 0x8; + kThermalProtection = 0x10; + kObstacleDetected = 0x20; + kPower = 0x40; + kStopInput = 0x80; + kMotorJammed = 0x100; + kHardwareFailure = 0x200; + kManualOperation = 0x400; + kProtection = 0x800; + } + + readonly attribute Type type = 0; + readonly attribute ConfigStatus configStatus = 7; + readonly attribute bitmap8 operationalStatus = 10; + readonly attribute EndProductType endProductType = 13; + attribute access(write: manage) Mode mode = 23; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + command UpOrOpen(): DefaultSuccess = 0; + command DownOrClose(): DefaultSuccess = 1; + command StopMotion(): DefaultSuccess = 2; +} + +endpoint 0 { + device type rootdevice = 22; + binding cluster OtaSoftwareUpdateProvider; + + server cluster Identify { + ram attribute identifyTime; + ram attribute identifyType; + ram attribute featureMap; + ram attribute clusterRevision default = 4; + } + + server cluster Groups { + ram attribute nameSupport; + ram attribute featureMap; + ram attribute clusterRevision default = 4; + } + + server cluster Descriptor { + callback attribute deviceList; + callback attribute serverList; + callback attribute clientList; + callback attribute partsList; + ram attribute featureMap; + callback attribute clusterRevision default = 1; + } + + server cluster Binding { + callback attribute binding; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster AccessControl { + callback attribute acl; + callback attribute subjectsPerAccessControlEntry default = 4; + callback attribute targetsPerAccessControlEntry default = 3; + callback attribute accessControlEntriesPerFabric default = 3; + ram attribute featureMap; + callback attribute clusterRevision default = 1; + } + + server cluster Basic { + callback attribute dataModelRevision default = 10; + callback attribute vendorName; + callback attribute vendorID; + callback attribute productName; + callback attribute productID; + persist attribute nodeLabel; + callback attribute location default = "XX"; + callback attribute hardwareVersion; + callback attribute hardwareVersionString; + callback attribute softwareVersion; + callback attribute softwareVersionString; + callback attribute capabilityMinima; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster OtaSoftwareUpdateRequestor { + callback attribute defaultOtaProviders; + ram attribute updatePossible default = 1; + ram attribute updateState; + ram attribute updateStateProgress; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster LocalizationConfiguration { + persist attribute activeLocale default = "en-US"; + callback attribute supportedLocales; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster TimeFormatLocalization { + persist attribute hourFormat; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster UnitLocalization { + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster PowerSourceConfiguration { + callback attribute sources; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster PowerSource { + ram attribute status; + ram attribute order default = 3; + ram attribute description default = "B1"; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster GeneralCommissioning { + ram attribute breadcrumb; + callback attribute basicCommissioningInfo; + callback attribute regulatoryConfig; + callback attribute locationCapability; + callback attribute supportsConcurrentConnection default = 1; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster NetworkCommissioning { + ram attribute maxNetworks; + callback attribute networks; + ram attribute scanMaxTimeSeconds; + ram attribute connectMaxTimeSeconds; + ram attribute interfaceEnabled; + ram attribute lastNetworkingStatus; + ram attribute lastNetworkID; + ram attribute lastConnectErrorValue; + ram attribute featureMap default = 2; + ram attribute clusterRevision default = 1; + } + + server cluster DiagnosticLogs { + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster GeneralDiagnostics { + callback attribute networkInterfaces; + callback attribute rebootCount; + callback attribute testEventTriggersEnabled; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster SoftwareDiagnostics { + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster ThreadNetworkDiagnostics { + callback attribute channel; + callback attribute routingRole; + callback attribute networkName; + callback attribute panId; + callback attribute extendedPanId; + callback attribute meshLocalPrefix; + callback attribute neighborTableList; + callback attribute routeTableList; + callback attribute partitionId; + callback attribute weighting; + callback attribute dataVersion; + callback attribute stableDataVersion; + callback attribute leaderRouterId; + callback attribute securityPolicy; + callback attribute channelMask; + callback attribute operationalDatasetComponents; + callback attribute activeNetworkFaultsList; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster WiFiNetworkDiagnostics { + callback attribute bssid; + callback attribute securityType; + callback attribute wiFiVersion; + callback attribute channelNumber; + callback attribute rssi; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster EthernetNetworkDiagnostics { + callback attribute PHYRate; + callback attribute fullDuplex; + callback attribute packetRxCount; + callback attribute packetTxCount; + callback attribute txErrCount; + callback attribute collisionCount; + callback attribute overrunCount; + callback attribute carrierDetect; + callback attribute timeSinceReset; + ram attribute featureMap default = 3; + ram attribute clusterRevision default = 1; + } + + server cluster AdministratorCommissioning { + callback attribute windowStatus; + callback attribute adminFabricIndex default = 1; + callback attribute adminVendorId; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster OperationalCredentials { + callback attribute NOCs; + callback attribute fabrics; + callback attribute supportedFabrics; + callback attribute commissionedFabrics; + callback attribute trustedRootCertificates; + callback attribute currentFabricIndex; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster GroupKeyManagement { + callback attribute groupKeyMap; + callback attribute groupTable; + callback attribute maxGroupsPerFabric; + callback attribute maxGroupKeysPerFabric; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster FixedLabel { + callback attribute labelList; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster UserLabel { + callback attribute labelList; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster RelativeHumidityMeasurement { + ram attribute measuredValue; + ram attribute minMeasuredValue; + ram attribute maxMeasuredValue default = 0x2710; + ram attribute featureMap; + ram attribute clusterRevision default = 3; + } +} +endpoint 1 { + device type onofflight = 256; + + server cluster Identify { + ram attribute identifyTime; + ram attribute identifyType; + ram attribute featureMap; + ram attribute clusterRevision default = 4; + } + + server cluster Groups { + ram attribute nameSupport; + ram attribute featureMap; + ram attribute clusterRevision default = 4; + } + + server cluster Scenes { + ram attribute sceneCount; + ram attribute currentScene; + ram attribute currentGroup; + ram attribute sceneValid; + ram attribute nameSupport; + ram attribute featureMap; + ram attribute clusterRevision default = 4; + } + + server cluster OnOff { + persist attribute onOff; + ram attribute featureMap; + ram attribute clusterRevision default = 4; + } + + server cluster LevelControl { + persist attribute currentLevel default = 0xFE; + ram attribute options; + ram attribute onLevel default = 0xFF; + ram attribute featureMap; + ram attribute clusterRevision default = 5; + } + + server cluster Descriptor { + callback attribute deviceList; + callback attribute serverList; + callback attribute clientList; + callback attribute partsList; + ram attribute featureMap; + callback attribute clusterRevision default = 1; + } + + server cluster Binding { + callback attribute binding; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster BridgedActions { + callback attribute actionList; + callback attribute endpointList; + ram attribute featureMap; + callback attribute clusterRevision default = 1; + } + + server cluster PowerSource { + ram attribute status; + ram attribute order default = 2; + ram attribute description default = "B2"; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster Switch { + ram attribute numberOfPositions default = 2; + ram attribute currentPosition; + ram attribute featureMap default = 1; + ram attribute clusterRevision default = 1; + } + + server cluster FixedLabel { + callback attribute labelList; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster UserLabel { + callback attribute labelList; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster BooleanState { + ram attribute stateValue; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster ModeSelect { + ram attribute description default = "Coffee"; + ram attribute standardNamespace; + callback attribute supportedModes; + persist attribute currentMode; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster DoorLock { + ram attribute lockState default = 2; + ram attribute lockType; + ram attribute actuatorEnabled; + ram attribute autoRelockTime default = 60; + ram attribute operatingMode; + ram attribute supportedOperatingModes default = 0xFFF6; + ram attribute featureMap; + ram attribute clusterRevision default = 6; + } + + server cluster WindowCovering { + ram attribute type; + persist attribute configStatus default = 0x03; + ram attribute operationalStatus; + ram attribute endProductType; + persist attribute mode; + ram attribute featureMap default = 1; + ram attribute clusterRevision default = 5; + } + + server cluster PumpConfigurationAndControl { + ram attribute maxPressure; + ram attribute maxSpeed; + ram attribute maxFlow; + ram attribute effectiveOperationMode; + ram attribute effectiveControlMode; + ram attribute capacity; + ram attribute operationMode; + ram attribute featureMap; + ram attribute clusterRevision default = 3; + } + + server cluster Thermostat { + ram attribute localTemperature; + ram attribute occupiedHeatingSetpoint default = 0x07D0; + ram attribute controlSequenceOfOperation default = 0x04; + ram attribute systemMode default = 0x01; + ram attribute featureMap default = 1; + ram attribute clusterRevision default = 5; + } + + server cluster FanControl { + ram attribute fanMode; + ram attribute fanModeSequence default = 0x02; + ram attribute percentSetting; + ram attribute percentCurrent; + ram attribute featureMap; + ram attribute clusterRevision default = 2; + } + + server cluster ThermostatUserInterfaceConfiguration { + ram attribute temperatureDisplayMode; + ram attribute keypadLockout; + ram attribute featureMap; + ram attribute clusterRevision default = 2; + } + + server cluster ColorControl { + ram attribute colorMode default = 0x01; + ram attribute options; + ram attribute numberOfPrimaries; + ram attribute enhancedColorMode default = 0x01; + ram attribute colorCapabilities; + ram attribute featureMap; + ram attribute clusterRevision default = 5; + } + + server cluster IlluminanceMeasurement { + ram attribute measuredValue; + ram attribute minMeasuredValue default = 0x01; + ram attribute maxMeasuredValue default = 0xFFFE; + ram attribute featureMap; + ram attribute clusterRevision default = 3; + } + + server cluster TemperatureMeasurement { + ram attribute measuredValue default = 0x8000; + ram attribute minMeasuredValue default = 0x8000; + ram attribute maxMeasuredValue default = 0x8000; + ram attribute featureMap; + ram attribute clusterRevision default = 4; + } + + server cluster PressureMeasurement { + ram attribute measuredValue; + ram attribute minMeasuredValue; + ram attribute maxMeasuredValue; + ram attribute featureMap; + ram attribute clusterRevision default = 3; + } + + server cluster FlowMeasurement { + ram attribute measuredValue; + ram attribute minMeasuredValue; + ram attribute maxMeasuredValue; + ram attribute featureMap; + ram attribute clusterRevision default = 3; + } + + server cluster RelativeHumidityMeasurement { + ram attribute measuredValue; + ram attribute minMeasuredValue; + ram attribute maxMeasuredValue default = 0x2710; + ram attribute featureMap; + ram attribute clusterRevision default = 3; + } + + server cluster OccupancySensing { + ram attribute occupancy; + ram attribute occupancySensorType; + ram attribute occupancySensorTypeBitmap; + ram attribute featureMap; + ram attribute clusterRevision default = 3; + } + + server cluster WakeOnLan { + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster Channel { + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster TargetNavigator { + callback attribute targetList; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster MediaPlayback { + ram attribute currentState; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster MediaInput { + callback attribute inputList; + ram attribute currentInput; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster LowPower { + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster KeypadInput { + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster ContentLauncher { + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster AudioOutput { + callback attribute outputList; + ram attribute currentOutput; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster ApplicationLauncher { + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster ApplicationBasic { + ram attribute applicationName; + callback attribute application; + ram attribute status; + ram attribute applicationVersion; + callback attribute allowedVendorList; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster AccountLogin { + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster TestCluster { + ram attribute boolean; + ram attribute bitmap8; + ram attribute bitmap16; + ram attribute bitmap32; + ram attribute bitmap64; + ram attribute int8u; + ram attribute int16u; + ram attribute int24u; + ram attribute int32u; + ram attribute int40u; + ram attribute int48u; + ram attribute int56u; + ram attribute int64u; + ram attribute int8s; + ram attribute int16s; + ram attribute int24s; + ram attribute int32s; + ram attribute int40s; + ram attribute int48s; + ram attribute int56s; + ram attribute int64s; + ram attribute enum8; + ram attribute enum16; + ram attribute floatSingle; + ram attribute floatDouble; + ram attribute octetString; + callback attribute listInt8u; + callback attribute listOctetString; + callback attribute listStructOctetString; + ram attribute longOctetString; + ram attribute charString; + ram attribute longCharString; + ram attribute epochUs; + ram attribute epochS; + ram attribute vendorId; + callback attribute listNullablesAndOptionalsStruct; + ram attribute enumAttr; + callback attribute structAttr; + ram attribute rangeRestrictedInt8u default = 70; + ram attribute rangeRestrictedInt8s default = -20; + ram attribute rangeRestrictedInt16u default = 200; + ram attribute rangeRestrictedInt16s default = -100; + callback attribute listLongOctetString; + callback attribute listFabricScoped; + ram attribute timedWriteBoolean; + callback attribute generalErrorBoolean; + callback attribute clusterErrorBoolean; + ram attribute nullableBoolean; + ram attribute nullableBitmap8; + ram attribute nullableBitmap16; + ram attribute nullableBitmap32; + ram attribute nullableBitmap64; + ram attribute nullableInt8u; + ram attribute nullableInt16u; + ram attribute nullableInt24u; + ram attribute nullableInt32u; + ram attribute nullableInt40u; + ram attribute nullableInt48u; + ram attribute nullableInt56u; + ram attribute nullableInt64u; + ram attribute nullableInt8s; + ram attribute nullableInt16s; + ram attribute nullableInt24s; + ram attribute nullableInt32s; + ram attribute nullableInt40s; + ram attribute nullableInt48s; + ram attribute nullableInt56s; + ram attribute nullableInt64s; + ram attribute nullableEnum8; + ram attribute nullableEnum16; + ram attribute nullableFloatSingle; + ram attribute nullableFloatDouble; + ram attribute nullableOctetString; + ram attribute nullableCharString; + ram attribute nullableEnumAttr; + callback attribute nullableStruct; + ram attribute nullableRangeRestrictedInt8u default = 70; + ram attribute nullableRangeRestrictedInt8s default = -20; + ram attribute nullableRangeRestrictedInt16u default = 200; + ram attribute nullableRangeRestrictedInt16s default = -100; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } +} +endpoint 2 { + device type onofflight = 256; + + server cluster Groups { + ram attribute nameSupport; + ram attribute featureMap; + ram attribute clusterRevision default = 4; + } + + server cluster OnOff { + ram attribute onOff; + ram attribute featureMap; + ram attribute clusterRevision default = 4; + } + + server cluster Descriptor { + callback attribute deviceList; + callback attribute serverList; + callback attribute clientList; + callback attribute partsList; + ram attribute featureMap; + callback attribute clusterRevision default = 1; + } + + server cluster PowerSource { + ram attribute status; + ram attribute order default = 1; + ram attribute description default = "B3"; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster OccupancySensing { + ram attribute occupancy; + ram attribute occupancySensorType; + ram attribute occupancySensorTypeBitmap; + ram attribute featureMap; + ram attribute clusterRevision default = 3; + } +} +endpoint 65534 { + device type anonymousEndpointType = 61442; + + server cluster NetworkCommissioning { + callback attribute maxNetworks; + callback attribute networks; + callback attribute scanMaxTimeSeconds; + callback attribute connectMaxTimeSeconds; + callback attribute interfaceEnabled; + callback attribute lastNetworkingStatus; + callback attribute lastNetworkID; + callback attribute lastConnectErrorValue; + callback attribute featureMap; + callback attribute clusterRevision default = 1; + } +} + + diff --git a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.zap b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.zap new file mode 100644 index 00000000000000..3681c0960de78d --- /dev/null +++ b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.zap @@ -0,0 +1,25101 @@ +{ + "featureLevel": 71, + "creator": "zap", + "keyValuePairs": [ + { + "key": "commandDiscovery", + "value": "1" + }, + { + "key": "defaultResponsePolicy", + "value": "always" + }, + { + "key": "manufacturerCodes", + "value": "0x1002" + } + ], + "package": [ + { + "pathRelativity": "relativeToZap", + "path": "../../../src/app/zap-templates/zcl/zcl.json", + "version": "ZCL Test Data", + "type": "zcl-properties" + }, + { + "pathRelativity": "relativeToZap", + "path": "../../../src/app/zap-templates/app-templates.json", + "version": "chip-v1", + "type": "gen-templates-json" + } + ], + "endpointTypes": [ + { + "name": "MA-rootdevice", + "deviceTypeName": "MA-rootdevice", + "deviceTypeCode": 22, + "deviceTypeProfileId": 259, + "clusters": [ + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "Identify", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "TriggerEffect", + "code": 64, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "identify time", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "identify type", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Groups", + "code": 4, + "mfgCode": null, + "define": "GROUPS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AddGroup", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "ViewGroup", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "GetGroupMembership", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveGroup", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveAllGroups", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "AddGroupIfIdentifying", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Groups", + "code": 4, + "mfgCode": null, + "define": "GROUPS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "AddGroupResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "ViewGroupResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "GetGroupMembershipResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveGroupResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "name support", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Scenes", + "code": 5, + "mfgCode": null, + "define": "SCENES_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AddScene", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "ViewScene", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveScene", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveAllScenes", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StoreScene", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RecallScene", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "GetSceneMembership", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Scenes", + "code": 5, + "mfgCode": null, + "define": "SCENES_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [ + { + "name": "AddSceneResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "ViewSceneResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveSceneResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveAllScenesResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StoreSceneResponse", + "code": 4, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "GetSceneMembershipResponse", + "code": 6, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "SceneCount", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentScene", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentGroup", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "group_id", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SceneValid", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NameSupport", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "On/Off", + "code": 6, + "mfgCode": null, + "define": "ON_OFF_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "Off", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "On", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Toggle", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "On/Off", + "code": 6, + "mfgCode": null, + "define": "ON_OFF_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "OnOff", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Level Control", + "code": 8, + "mfgCode": null, + "define": "LEVEL_CONTROL_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "MoveToLevel", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Move", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Step", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Stop", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToLevelWithOnOff", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveWithOnOff", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepWithOnOff", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StopWithOnOff", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Level Control", + "code": 8, + "mfgCode": null, + "define": "LEVEL_CONTROL_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "current level", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Descriptor", + "code": 29, + "mfgCode": null, + "define": "DESCRIPTOR_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Descriptor", + "code": 29, + "mfgCode": null, + "define": "DESCRIPTOR_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "device list", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "server list", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "client list", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "parts list", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Binding", + "code": 30, + "mfgCode": null, + "define": "BINDING_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Binding", + "code": 30, + "mfgCode": null, + "define": "BINDING_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "Binding", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Access Control", + "code": 31, + "mfgCode": null, + "define": "ACCESS_CONTROL_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [] + }, + { + "name": "Access Control", + "code": 31, + "mfgCode": null, + "define": "ACCESS_CONTROL_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "ACL", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Extension", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SubjectsPerAccessControlEntry", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "TargetsPerAccessControlEntry", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AccessControlEntriesPerFabric", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Basic", + "code": 40, + "mfgCode": null, + "define": "BASIC_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Basic", + "code": 40, + "mfgCode": null, + "define": "BASIC_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "DataModelRevision", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "10", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "VendorName", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "VendorID", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "vendor_id", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductName", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductID", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NodeLabel", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "NVM", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Location", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "XX", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "HardwareVersion", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "HardwareVersionString", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SoftwareVersion", + "code": 9, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SoftwareVersionString", + "code": 10, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ManufacturingDate", + "code": 11, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 0, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "20210614123456ZZ", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PartNumber", + "code": 12, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 0, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductURL", + "code": 13, + "mfgCode": null, + "side": "server", + "type": "long_char_string", + "included": 0, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductLabel", + "code": 14, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 0, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SerialNumber", + "code": 15, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 0, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "LocalConfigDisabled", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "NVM", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Reachable", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "UniqueID", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 0, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CapabilityMinima", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "CapabilityMinimaStruct", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "OTA Software Update Provider", + "code": 41, + "mfgCode": null, + "define": "OTA_PROVIDER_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "QueryImage", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ApplyUpdateRequest", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "NotifyUpdateApplied", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "OTA Software Update Provider", + "code": 41, + "mfgCode": null, + "define": "OTA_PROVIDER_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [ + { + "name": "QueryImageResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ApplyUpdateResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "OTA Software Update Requestor", + "code": 42, + "mfgCode": null, + "define": "OTA_REQUESTOR_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AnnounceOtaProvider", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "OTA Software Update Requestor", + "code": 42, + "mfgCode": null, + "define": "OTA_REQUESTOR_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "DefaultOtaProviders", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "UpdatePossible", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "UpdateState", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "OTAUpdateStateEnum", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "UpdateStateProgress", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Localization Configuration", + "code": 43, + "mfgCode": null, + "define": "LOCALIZATION_CONFIGURATION_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [] + }, + { + "name": "Localization Configuration", + "code": 43, + "mfgCode": null, + "define": "LOCALIZATION_CONFIGURATION_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "ActiveLocale", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "en-US", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SupportedLocales", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Time Format Localization", + "code": 44, + "mfgCode": null, + "define": "TIME_FORMAT_LOCALIZATION_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [] + }, + { + "name": "Time Format Localization", + "code": 44, + "mfgCode": null, + "define": "TIME_FORMAT_LOCALIZATION_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "HourFormat", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "HourFormat", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ActiveCalendarType", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "CalendarType", + "included": 0, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SupportedCalendarTypes", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Unit Localization", + "code": 45, + "mfgCode": null, + "define": "UNIT_LOCALIZATION_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [] + }, + { + "name": "Unit Localization", + "code": 45, + "mfgCode": null, + "define": "UNIT_LOCALIZATION_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "TemperatureUnit", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "TempUnit", + "included": 0, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Power Source Configuration", + "code": 46, + "mfgCode": null, + "define": "POWER_SOURCE_CONFIGURATION_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [] + }, + { + "name": "Power Source Configuration", + "code": 46, + "mfgCode": null, + "define": "POWER_SOURCE_CONFIGURATION_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "Sources", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Power Source", + "code": 47, + "mfgCode": null, + "define": "POWER_SOURCE_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [] + }, + { + "name": "Power Source", + "code": 47, + "mfgCode": null, + "define": "POWER_SOURCE_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "Status", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Order", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Description", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "B1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "WiredAssessedInputVoltage", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "WiredAssessedInputFrequency", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "WiredCurrentType", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "WiredAssessedCurrent", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "WiredNominalVoltage", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "WiredMaximumCurrent", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "WiredPresent", + "code": 9, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ActiveWiredFaults", + "code": 10, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryVoltage", + "code": 11, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryPercentRemaining", + "code": 12, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryTimeRemaining", + "code": 13, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryChargeLevel", + "code": 14, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryReplacementNeeded", + "code": 15, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryReplaceability", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryPresent", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ActiveBatteryFaults", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryReplacementDescription", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryCommonDesignation", + "code": 20, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryANSIDesignation", + "code": 21, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryIECDesignation", + "code": 22, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryApprovedChemistry", + "code": 23, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryCapacity", + "code": 24, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryQuantity", + "code": 25, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryChargeState", + "code": 26, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryTimeToFullCharge", + "code": 27, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryFunctionalWhileCharging", + "code": 28, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryChargingCurrent", + "code": 29, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ActiveBatteryChargeFaults", + "code": 30, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "General Commissioning", + "code": 48, + "mfgCode": null, + "define": "GENERAL_COMMISSIONING_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ArmFailSafe", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "SetRegulatoryConfig", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "CommissioningComplete", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "General Commissioning", + "code": 48, + "mfgCode": null, + "define": "GENERAL_COMMISSIONING_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "ArmFailSafeResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "SetRegulatoryConfigResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "CommissioningCompleteResponse", + "code": 5, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "Breadcrumb", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "BasicCommissioningInfo", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "BasicCommissioningInfo", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RegulatoryConfig", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "RegulatoryLocationType", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LocationCapability", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "RegulatoryLocationType", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SupportsConcurrentConnection", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Network Commissioning", + "code": 49, + "mfgCode": null, + "define": "NETWORK_COMMISSIONING_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ScanNetworks", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "AddOrUpdateWiFiNetwork", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "AddOrUpdateThreadNetwork", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveNetwork", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "ConnectNetwork", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "ReorderNetwork", + "code": 8, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Network Commissioning", + "code": 49, + "mfgCode": null, + "define": "NETWORK_COMMISSIONING_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "ScanNetworksResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "NetworkConfigResponse", + "code": 5, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "ConnectNetworkResponse", + "code": 7, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "MaxNetworks", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Networks", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ScanMaxTimeSeconds", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ConnectMaxTimeSeconds", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "InterfaceEnabled", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LastNetworkingStatus", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "NetworkCommissioningStatus", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LastNetworkID", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "octet_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LastConnectErrorValue", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int32s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Diagnostic Logs", + "code": 50, + "mfgCode": null, + "define": "DIAGNOSTIC_LOGS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "RetrieveLogsRequest", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "General Diagnostics", + "code": 51, + "mfgCode": null, + "define": "GENERAL_DIAGNOSTICS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "General Diagnostics", + "code": 51, + "mfgCode": null, + "define": "GENERAL_DIAGNOSTICS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "TestEventTrigger", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "NetworkInterfaces", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RebootCount", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "UpTime", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "TotalOperationalHours", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BootReasons", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ActiveHardwareFaults", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ActiveRadioFaults", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ActiveNetworkFaults", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "TestEventTriggersEnabled", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Software Diagnostics", + "code": 52, + "mfgCode": null, + "define": "SOFTWARE_DIAGNOSTICS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ResetWatermarks", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Software Diagnostics", + "code": 52, + "mfgCode": null, + "define": "SOFTWARE_DIAGNOSTICS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "ThreadMetrics", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentHeapFree", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentHeapUsed", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentHeapHighWatermark", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Thread Network Diagnostics", + "code": 53, + "mfgCode": null, + "define": "THREAD_NETWORK_DIAGNOSTICS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ResetCounts", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 0 + } + ], + "attributes": [] + }, + { + "name": "Thread Network Diagnostics", + "code": 53, + "mfgCode": null, + "define": "THREAD_NETWORK_DIAGNOSTICS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "channel", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RoutingRole", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "RoutingRole", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NetworkName", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PanId", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ExtendedPanId", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MeshLocalPrefix", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "octet_string", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OverrunCount", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NeighborTableList", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RouteTableList", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PartitionId", + "code": 9, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "weighting", + "code": 10, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "DataVersion", + "code": 11, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "StableDataVersion", + "code": 12, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "LeaderRouterId", + "code": 13, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "DetachedRoleCount", + "code": 14, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ChildRoleCount", + "code": 15, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RouterRoleCount", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "LeaderRoleCount", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "AttachAttemptCount", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PartitionIdChangeCount", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "BetterPartitionAttachAttemptCount", + "code": 20, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ParentChangeCount", + "code": 21, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxTotalCount", + "code": 22, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxUnicastCount", + "code": 23, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxBroadcastCount", + "code": 24, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxAckRequestedCount", + "code": 25, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxAckedCount", + "code": 26, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxNoAckRequestedCount", + "code": 27, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxDataCount", + "code": 28, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxDataPollCount", + "code": 29, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxBeaconCount", + "code": 30, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxBeaconRequestCount", + "code": 31, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxOtherCount", + "code": 32, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxRetryCount", + "code": 33, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxDirectMaxRetryExpiryCount", + "code": 34, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxIndirectMaxRetryExpiryCount", + "code": 35, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxErrCcaCount", + "code": 36, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxErrAbortCount", + "code": 37, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxErrBusyChannelCount", + "code": 38, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxTotalCount", + "code": 39, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxUnicastCount", + "code": 40, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxBroadcastCount", + "code": 41, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxDataCount", + "code": 42, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxDataPollCount", + "code": 43, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxBeaconCount", + "code": 44, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxBeaconRequestCount", + "code": 45, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxOtherCount", + "code": 46, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxAddressFilteredCount", + "code": 47, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxDestAddrFilteredCount", + "code": 48, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxDuplicatedCount", + "code": 49, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxErrNoFrameCount", + "code": 50, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxErrUnknownNeighborCount", + "code": 51, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxErrInvalidSrcAddrCount", + "code": 52, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxErrSecCount", + "code": 53, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxErrFcsCount", + "code": 54, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxErrOtherCount", + "code": 55, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ActiveTimestamp", + "code": 56, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PendingTimestamp", + "code": 57, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "delay", + "code": 58, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SecurityPolicy", + "code": 59, + "mfgCode": null, + "side": "server", + "type": "SecurityPolicy", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ChannelMask", + "code": 60, + "mfgCode": null, + "side": "server", + "type": "octet_string", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OperationalDatasetComponents", + "code": 61, + "mfgCode": null, + "side": "server", + "type": "OperationalDatasetComponents", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ActiveNetworkFaultsList", + "code": 62, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "WiFi Network Diagnostics", + "code": 54, + "mfgCode": null, + "define": "WIFI_NETWORK_DIAGNOSTICS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ResetCounts", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "WiFi Network Diagnostics", + "code": 54, + "mfgCode": null, + "define": "WIFI_NETWORK_DIAGNOSTICS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "bssid", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "octet_string", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SecurityType", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "SecurityType", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "WiFiVersion", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "WiFiVersionType", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ChannelNumber", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Rssi", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int8s", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "BeaconLostCount", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "BeaconRxCount", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PacketMulticastRxCount", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PacketMulticastTxCount", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PacketUnicastRxCount", + "code": 9, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PacketUnicastTxCount", + "code": 10, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentMaxRate", + "code": 11, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OverrunCount", + "code": 12, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Ethernet Network Diagnostics", + "code": 55, + "mfgCode": null, + "define": "ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ResetCounts", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Ethernet Network Diagnostics", + "code": 55, + "mfgCode": null, + "define": "ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "PHYRate", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "PHYRateType", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FullDuplex", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PacketRxCount", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PacketTxCount", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxErrCount", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CollisionCount", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OverrunCount", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CarrierDetect", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "TimeSinceReset", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Switch", + "code": 59, + "mfgCode": null, + "define": "SWITCH_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Switch", + "code": 59, + "mfgCode": null, + "define": "SWITCH_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "number of positions", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "current position", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "multi press max", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "AdministratorCommissioning", + "code": 60, + "mfgCode": null, + "define": "ADMINISTRATOR_COMMISSIONING_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "OpenCommissioningWindow", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "OpenBasicCommissioningWindow", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RevokeCommissioning", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "AdministratorCommissioning", + "code": 60, + "mfgCode": null, + "define": "ADMINISTRATOR_COMMISSIONING_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "WindowStatus", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AdminFabricIndex", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "fabric_idx", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AdminVendorId", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Operational Credentials", + "code": 62, + "mfgCode": null, + "define": "OPERATIONAL_CREDENTIALS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AttestationRequest", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "CertificateChainRequest", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "CSRRequest", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "AddNOC", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "UpdateNOC", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "UpdateFabricLabel", + "code": 9, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveFabric", + "code": 10, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "AddTrustedRootCertificate", + "code": 11, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Operational Credentials", + "code": 62, + "mfgCode": null, + "define": "OPERATIONAL_CREDENTIALS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "AttestationResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "CertificateChainResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "CSRResponse", + "code": 5, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "NOCResponse", + "code": 8, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "NOCs", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Fabrics", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SupportedFabrics", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CommissionedFabrics", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TrustedRootCertificates", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentFabricIndex", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "fabric_idx", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Group Key Management", + "code": 63, + "mfgCode": null, + "define": "GROUP_KEY_MANAGEMENT_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "KeySetWrite", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "KeySetRead", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "KeySetRemove", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "KeySetReadAllIndices", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Group Key Management", + "code": 63, + "mfgCode": null, + "define": "GROUP_KEY_MANAGEMENT_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "KeySetReadResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "KeySetReadAllIndicesResponse", + "code": 5, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "GroupKeyMap", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "GroupTable", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MaxGroupsPerFabric", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxGroupKeysPerFabric", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Fixed Label", + "code": 64, + "mfgCode": null, + "define": "FIXED_LABEL_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [] + }, + { + "name": "Fixed Label", + "code": 64, + "mfgCode": null, + "define": "FIXED_LABEL_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "label list", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "User Label", + "code": 65, + "mfgCode": null, + "define": "USER_LABEL_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [] + }, + { + "name": "User Label", + "code": 65, + "mfgCode": null, + "define": "USER_LABEL_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "label list", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Door Lock", + "code": 257, + "mfgCode": null, + "define": "DOOR_LOCK_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "LockDoor", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "UnlockDoor", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "6", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Door Lock", + "code": 257, + "mfgCode": null, + "define": "DOOR_LOCK_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "LockState", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "DlLockState", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "LockType", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "DlLockType", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ActuatorEnabled", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "DoorState", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "DlDoorState", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Language", + "code": 33, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "LEDSettings", + "code": 34, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "AutoRelockTime", + "code": 35, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SoundVolume", + "code": 36, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OperatingMode", + "code": 37, + "mfgCode": null, + "side": "server", + "type": "DlOperatingMode", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "DefaultConfigurationRegister", + "code": 39, + "mfgCode": null, + "side": "server", + "type": "DlDefaultConfigurationRegister", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "EnableLocalProgramming", + "code": 40, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "EnableOneTouchLocking", + "code": 41, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "EnableInsideStatusLED", + "code": 42, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "EnablePrivacyModeButton", + "code": 43, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "WrongCodeEntryLimit", + "code": 48, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "UserCodeTemporaryDisableTime", + "code": 49, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SendPINOverTheAir", + "code": 50, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RequirePINforRemoteOperation", + "code": 51, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "6", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Barrier Control", + "code": 259, + "mfgCode": null, + "define": "BARRIER_CONTROL_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "BarrierControlGoToPercent", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "BarrierControlStop", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Barrier Control", + "code": 259, + "mfgCode": null, + "define": "BARRIER_CONTROL_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "barrier moving state", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "barrier safety status", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "bitmap16", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "barrier capabilities", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "barrier position", + "code": 10, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Color Control", + "code": 768, + "mfgCode": null, + "define": "COLOR_CONTROL_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "MoveToHue", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveHue", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepHue", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToSaturation", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveSaturation", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepSaturation", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToHueAndSaturation", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToColor", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveColor", + "code": 8, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepColor", + "code": 9, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToColorTemperature", + "code": 10, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StopMoveStep", + "code": 71, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveColorTemperature", + "code": 75, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepColorTemperature", + "code": 76, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Color Control", + "code": 768, + "mfgCode": null, + "define": "COLOR_CONTROL_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "CurrentHue", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentSaturation", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RemainingTime", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentX", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x616B", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentY", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x607D", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "DriftCompensation", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CompensationText", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorTemperature", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00FA", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorMode", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Options", + "code": 15, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NumberOfPrimaries", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary1X", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary1Y", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary1Intensity", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary2X", + "code": 21, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary2Y", + "code": 22, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary2Intensity", + "code": 23, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary3X", + "code": 25, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary3Y", + "code": 26, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary3Intensity", + "code": 27, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary4X", + "code": 32, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary4Y", + "code": 33, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary4Intensity", + "code": 34, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary5X", + "code": 36, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary5Y", + "code": 37, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary5Intensity", + "code": 38, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary6X", + "code": 40, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary6Y", + "code": 41, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary6Intensity", + "code": 42, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "WhitePointX", + "code": 48, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "WhitePointY", + "code": 49, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorPointRX", + "code": 50, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorPointRY", + "code": 51, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorPointRIntensity", + "code": 52, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorPointGX", + "code": 54, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorPointGY", + "code": 55, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorPointGIntensity", + "code": 56, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorPointBX", + "code": 58, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorPointBY", + "code": 59, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorPointBIntensity", + "code": 60, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "EnhancedCurrentHue", + "code": 16384, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "EnhancedColorMode", + "code": 16385, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorLoopActive", + "code": 16386, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorLoopDirection", + "code": 16387, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorLoopTime", + "code": 16388, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0019", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorCapabilities", + "code": 16394, + "mfgCode": null, + "side": "server", + "type": "bitmap16", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorTempPhysicalMinMireds", + "code": 16395, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorTempPhysicalMaxMireds", + "code": 16396, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFEFF", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CoupleColorTempToLevelMinMireds", + "code": 16397, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "StartUpColorTemperatureMireds", + "code": 16400, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Illuminance Measurement", + "code": 1024, + "mfgCode": null, + "define": "ILLUMINANCE_MEASUREMENT_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Illuminance Measurement", + "code": 1024, + "mfgCode": null, + "define": "ILLUMINANCE_MEASUREMENT_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "MeasuredValue", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MinMeasuredValue", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxMeasuredValue", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Tolerance", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LightSensorType", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFF", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Temperature Measurement", + "code": 1026, + "mfgCode": null, + "define": "TEMP_MEASUREMENT_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Temperature Measurement", + "code": 1026, + "mfgCode": null, + "define": "TEMP_MEASUREMENT_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "MeasuredValue", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x8000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MinMeasuredValue", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x8000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MaxMeasuredValue", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x8000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Tolerance", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Relative Humidity Measurement", + "code": 1029, + "mfgCode": null, + "define": "RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Relative Humidity Measurement", + "code": 1029, + "mfgCode": null, + "define": "RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "measured value", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "min measured value", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "max measured value", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x2710", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "tolerance", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Occupancy Sensing", + "code": 1030, + "mfgCode": null, + "define": "OCCUPANCY_SENSING_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Occupancy Sensing", + "code": 1030, + "mfgCode": null, + "define": "OCCUPANCY_SENSING_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "occupancy", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "occupancy sensor type", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "occupancy sensor type bitmap", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "IAS Zone", + "code": 1280, + "mfgCode": null, + "define": "IAS_ZONE_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ZoneEnrollResponse", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "IAS Zone", + "code": 1280, + "mfgCode": null, + "define": "IAS_ZONE_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [ + { + "name": "ZoneStatusChangeNotification", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ZoneEnrollRequest", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "zone state", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "zone type", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "enum16", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "zone status", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "bitmap16", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "IAS CIE address", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "node_id", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Zone ID", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xff", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Test Cluster", + "code": 4294048773, + "mfgCode": null, + "define": "TEST_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "Test", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "TestNotHandled", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "TestSpecific", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Test Cluster", + "code": 4294048773, + "mfgCode": null, + "define": "TEST_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [ + { + "name": "TestSpecificResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "boolean", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "false", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "bitmap8", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "Bitmap8MaskMap", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "bitmap16", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "Bitmap16MaskMap", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "bitmap32", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "Bitmap32MaskMap", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "bitmap64", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "Bitmap64MaskMap", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "int8u", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "int16u", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "int32u", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "int64u", + "code": 12, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "int8s", + "code": 13, + "mfgCode": null, + "side": "server", + "type": "int8s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "int16s", + "code": 14, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "int32s", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "int32s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "int64s", + "code": 20, + "mfgCode": null, + "side": "server", + "type": "int64s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "enum8", + "code": 21, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "enum16", + "code": 22, + "mfgCode": null, + "side": "server", + "type": "enum16", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "octet_string", + "code": 25, + "mfgCode": null, + "side": "server", + "type": "octet_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "list_int8u", + "code": 26, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "list_octet_string", + "code": 27, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "list_struct_octet_string", + "code": 28, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + } + ] + }, + { + "name": "MA-onofflight", + "deviceTypeName": "MA-onofflight", + "deviceTypeCode": 256, + "deviceTypeProfileId": 259, + "clusters": [ + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "Identify", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "TriggerEffect", + "code": 64, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "identify time", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "identify type", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Groups", + "code": 4, + "mfgCode": null, + "define": "GROUPS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AddGroup", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "ViewGroup", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "GetGroupMembership", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveGroup", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveAllGroups", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "AddGroupIfIdentifying", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Groups", + "code": 4, + "mfgCode": null, + "define": "GROUPS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "AddGroupResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "ViewGroupResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "GetGroupMembershipResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveGroupResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "name support", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Scenes", + "code": 5, + "mfgCode": null, + "define": "SCENES_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AddScene", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "ViewScene", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveScene", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveAllScenes", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StoreScene", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RecallScene", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "GetSceneMembership", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Scenes", + "code": 5, + "mfgCode": null, + "define": "SCENES_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "AddSceneResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "ViewSceneResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveSceneResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveAllScenesResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StoreSceneResponse", + "code": 4, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "GetSceneMembershipResponse", + "code": 6, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "SceneCount", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentScene", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentGroup", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "group_id", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SceneValid", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NameSupport", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "On/Off", + "code": 6, + "mfgCode": null, + "define": "ON_OFF_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "Off", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "On", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Toggle", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "OffWithEffect", + "code": 64, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 0 + }, + { + "name": "OnWithRecallGlobalScene", + "code": 65, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 0 + }, + { + "name": "OnWithTimedOff", + "code": 66, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "On/Off", + "code": 6, + "mfgCode": null, + "define": "ON_OFF_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "OnOff", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "GlobalSceneControl", + "code": 16384, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OnTime", + "code": 16385, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OffWaitTime", + "code": 16386, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "StartUpOnOff", + "code": 16387, + "mfgCode": null, + "side": "server", + "type": "OnOffStartUpOnOff", + "included": 0, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFF", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "On/off Switch Configuration", + "code": 7, + "mfgCode": null, + "define": "ON_OFF_SWITCH_CONFIG_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "On/off Switch Configuration", + "code": 7, + "mfgCode": null, + "define": "ON_OFF_SWITCH_CONFIG_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "switch type", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "switch actions", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Level Control", + "code": 8, + "mfgCode": null, + "define": "LEVEL_CONTROL_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "MoveToLevel", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Move", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Step", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Stop", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToLevelWithOnOff", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveWithOnOff", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepWithOnOff", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StopWithOnOff", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Level Control", + "code": 8, + "mfgCode": null, + "define": "LEVEL_CONTROL_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "current level", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFE", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "remaining time", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "min level", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "max level", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFE", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "current frequency", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "min frequency", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "max frequency", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "options", + "code": 15, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "on off transition time", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "on level", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFF", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "on transition time", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "off transition time", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "default move rate", + "code": 20, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "50", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "start up current level", + "code": 16384, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "255", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Binary Input (Basic)", + "code": 15, + "mfgCode": null, + "define": "BINARY_INPUT_BASIC_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Binary Input (Basic)", + "code": 15, + "mfgCode": null, + "define": "BINARY_INPUT_BASIC_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "out of service", + "code": 81, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "present value", + "code": 85, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "status flags", + "code": 111, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Descriptor", + "code": 29, + "mfgCode": null, + "define": "DESCRIPTOR_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Descriptor", + "code": 29, + "mfgCode": null, + "define": "DESCRIPTOR_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "device list", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "server list", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "client list", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "parts list", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Binding", + "code": 30, + "mfgCode": null, + "define": "BINDING_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Binding", + "code": 30, + "mfgCode": null, + "define": "BINDING_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "Binding", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Bridged Actions", + "code": 37, + "mfgCode": null, + "define": "BRIDGED_ACTIONS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Bridged Actions", + "code": 37, + "mfgCode": null, + "define": "BRIDGED_ACTIONS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "action list", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "endpoint list", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "setup url", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "long_char_string", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Basic", + "code": 40, + "mfgCode": null, + "define": "BASIC_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Basic", + "code": 40, + "mfgCode": null, + "define": "BASIC_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "DataModelRevision", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "10", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "VendorName", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "VendorID", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "vendor_id", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductName", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductID", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NodeLabel", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "NVM", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Location", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "XX", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "HardwareVersion", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "HardwareVersionString", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SoftwareVersion", + "code": 9, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SoftwareVersionString", + "code": 10, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ManufacturingDate", + "code": 11, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "20210614123456ZZ", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PartNumber", + "code": 12, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductURL", + "code": 13, + "mfgCode": null, + "side": "server", + "type": "long_char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductLabel", + "code": 14, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SerialNumber", + "code": 15, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "LocalConfigDisabled", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "NVM", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Reachable", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "UniqueID", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CapabilityMinima", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "CapabilityMinimaStruct", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "OTA Software Update Provider", + "code": 41, + "mfgCode": null, + "define": "OTA_PROVIDER_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "QueryImage", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "ApplyUpdateRequest", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "OTA Software Update Provider", + "code": 41, + "mfgCode": null, + "define": "OTA_PROVIDER_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [ + { + "name": "ApplyUpdateResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "OTA Software Update Requestor", + "code": 42, + "mfgCode": null, + "define": "OTA_REQUESTOR_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "OTA Software Update Requestor", + "code": 42, + "mfgCode": null, + "define": "OTA_REQUESTOR_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Power Source", + "code": 47, + "mfgCode": null, + "define": "POWER_SOURCE_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Power Source", + "code": 47, + "mfgCode": null, + "define": "POWER_SOURCE_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "Status", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Order", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Description", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "B2", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "WiredAssessedInputVoltage", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "WiredAssessedInputFrequency", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "WiredCurrentType", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "WiredAssessedCurrent", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "WiredNominalVoltage", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "WiredMaximumCurrent", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "WiredPresent", + "code": 9, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ActiveWiredFaults", + "code": 10, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryVoltage", + "code": 11, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "BatteryPercentRemaining", + "code": 12, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "BatteryTimeRemaining", + "code": 13, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "BatteryChargeLevel", + "code": 14, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "BatteryReplacementNeeded", + "code": 15, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryReplaceability", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryPresent", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ActiveBatteryFaults", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "BatteryReplacementDescription", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryCommonDesignation", + "code": 20, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryANSIDesignation", + "code": 21, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryIECDesignation", + "code": 22, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryApprovedChemistry", + "code": 23, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryCapacity", + "code": 24, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryQuantity", + "code": 25, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryChargeState", + "code": 26, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "BatteryTimeToFullCharge", + "code": 27, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryFunctionalWhileCharging", + "code": 28, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryChargingCurrent", + "code": 29, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ActiveBatteryChargeFaults", + "code": 30, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "General Commissioning", + "code": 48, + "mfgCode": null, + "define": "GENERAL_COMMISSIONING_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ArmFailSafe", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "SetRegulatoryConfig", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "General Commissioning", + "code": 48, + "mfgCode": null, + "define": "GENERAL_COMMISSIONING_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [ + { + "name": "ArmFailSafeResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "SetRegulatoryConfigResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "Breadcrumb", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "o", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "BasicCommissioningInfo", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "BasicCommissioningInfo", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SupportsConcurrentConnection", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Network Commissioning", + "code": 49, + "mfgCode": null, + "define": "NETWORK_COMMISSIONING_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ScanNetworks", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "AddOrUpdateWiFiNetwork", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "AddOrUpdateThreadNetwork", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveNetwork", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ConnectNetwork", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ReorderNetwork", + "code": 8, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Network Commissioning", + "code": 49, + "mfgCode": null, + "define": "NETWORK_COMMISSIONING_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [ + { + "name": "ScanNetworksResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "NetworkConfigResponse", + "code": 5, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ConnectNetworkResponse", + "code": 7, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "MaxNetworks", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Networks", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ScanMaxTimeSeconds", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ConnectMaxTimeSeconds", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "InterfaceEnabled", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LastNetworkingStatus", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "NetworkCommissioningStatus", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LastNetworkID", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "octet_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LastConnectErrorValue", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int32s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Switch", + "code": 59, + "mfgCode": null, + "define": "SWITCH_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Switch", + "code": 59, + "mfgCode": null, + "define": "SWITCH_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "number of positions", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "current position", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "multi press max", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Group Key Management", + "code": 63, + "mfgCode": null, + "define": "GROUP_KEY_MANAGEMENT_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Group Key Management", + "code": 63, + "mfgCode": null, + "define": "GROUP_KEY_MANAGEMENT_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "GroupKeyMap", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "GroupTable", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Fixed Label", + "code": 64, + "mfgCode": null, + "define": "FIXED_LABEL_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Fixed Label", + "code": 64, + "mfgCode": null, + "define": "FIXED_LABEL_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "label list", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "User Label", + "code": 65, + "mfgCode": null, + "define": "USER_LABEL_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [] + }, + { + "name": "User Label", + "code": 65, + "mfgCode": null, + "define": "USER_LABEL_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "label list", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Boolean State", + "code": 69, + "mfgCode": null, + "define": "BOOLEAN_STATE_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Boolean State", + "code": 69, + "mfgCode": null, + "define": "BOOLEAN_STATE_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "StateValue", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Mode Select", + "code": 80, + "mfgCode": null, + "define": "MODE_SELECT_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ChangeToMode", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Mode Select", + "code": 80, + "mfgCode": null, + "define": "MODE_SELECT_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "Description", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "Coffee", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "StandardNamespace", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "enum16", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SupportedModes", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentMode", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "StartUpMode", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OnMode", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "255", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Door Lock", + "code": 257, + "mfgCode": null, + "define": "DOOR_LOCK_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "LockDoor", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "UnlockDoor", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "UnlockWithTimeout", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "SetWeekDaySchedule", + "code": 11, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 0 + }, + { + "name": "GetWeekDaySchedule", + "code": 12, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 0 + }, + { + "name": "ClearWeekDaySchedule", + "code": 13, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 0 + }, + { + "name": "SetYearDaySchedule", + "code": 14, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 0 + }, + { + "name": "GetYearDaySchedule", + "code": 15, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 0 + }, + { + "name": "SetUser", + "code": 26, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 0 + }, + { + "name": "GetUser", + "code": 27, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 0 + }, + { + "name": "ClearUser", + "code": 29, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 0 + }, + { + "name": "SetCredential", + "code": 34, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 0 + }, + { + "name": "GetCredentialStatus", + "code": 36, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 0 + }, + { + "name": "ClearCredential", + "code": 38, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "6", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Door Lock", + "code": 257, + "mfgCode": null, + "define": "DOOR_LOCK_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "GetUserResponse", + "code": 28, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 0 + }, + { + "name": "SetCredentialResponse", + "code": 35, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 0 + }, + { + "name": "GetCredentialStatusResponse", + "code": 37, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "LockState", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "DlLockState", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "LockType", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "DlLockType", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ActuatorEnabled", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "DoorState", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "DlDoorState", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "DoorOpenEvents", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "DoorClosedEvents", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OpenPeriod", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "NumberOfTotalUsersSupported", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "10", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "NumberOfPINUsersSupported", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "10", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "NumberOfRFIDUsersSupported", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "10", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "NumberOfWeekDaySchedulesSupportedPerUser", + "code": 20, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "10", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "NumberOfYearDaySchedulesSupportedPerUser", + "code": 21, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "10", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "NumberOfHolidaySchedulesSupported", + "code": 22, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxPINCodeLength", + "code": 23, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "6", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MinPINCodeLength", + "code": 24, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "6", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxRFIDCodeLength", + "code": 25, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "20", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MinRFIDCodeLength", + "code": 26, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "10", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CredentialRulesSupport", + "code": 27, + "mfgCode": null, + "side": "server", + "type": "DlCredentialRuleMask", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "NumberOfCredentialsSupportedPerUser", + "code": 28, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Language", + "code": 33, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "en", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "LEDSettings", + "code": 34, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 0, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AutoRelockTime", + "code": 35, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "60", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SoundVolume", + "code": 36, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OperatingMode", + "code": 37, + "mfgCode": null, + "side": "server", + "type": "DlOperatingMode", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SupportedOperatingModes", + "code": 38, + "mfgCode": null, + "side": "server", + "type": "DlSupportedOperatingModes", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFFF6", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "DefaultConfigurationRegister", + "code": 39, + "mfgCode": null, + "side": "server", + "type": "DlDefaultConfigurationRegister", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EnableLocalProgramming", + "code": 40, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 0, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EnableOneTouchLocking", + "code": 41, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "EnableInsideStatusLED", + "code": 42, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EnablePrivacyModeButton", + "code": 43, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "LocalProgrammingFeatures", + "code": 44, + "mfgCode": null, + "side": "server", + "type": "DlLocalProgrammingFeatures", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 0, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "WrongCodeEntryLimit", + "code": 48, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "UserCodeTemporaryDisableTime", + "code": 49, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "10", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SendPINOverTheAir", + "code": 50, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 0, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "RequirePINforRemoteOperation", + "code": 51, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ExpiringUserTimeout", + "code": 53, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "6", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Window Covering", + "code": 258, + "mfgCode": null, + "define": "WINDOW_COVERING_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "UpOrOpen", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "DownOrClose", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StopMotion", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GoToLiftValue", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 0 + }, + { + "name": "GoToLiftPercentage", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 0 + }, + { + "name": "GoToTiltValue", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 0 + }, + { + "name": "GoToTiltPercentage", + "code": 8, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Window Covering", + "code": 258, + "mfgCode": null, + "define": "WINDOW_COVERING_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "Type", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "Type", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentPositionLift", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x7FFF", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentPositionTilt", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x7FFF", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ConfigStatus", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "ConfigStatus", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x03", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentPositionLiftPercentage", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "Percent", + "included": 0, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "50", + "reportable": 1, + "minInterval": 0, + "maxInterval": 100, + "reportableChange": 0 + }, + { + "name": "CurrentPositionTiltPercentage", + "code": 9, + "mfgCode": null, + "side": "server", + "type": "Percent", + "included": 0, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "50", + "reportable": 1, + "minInterval": 0, + "maxInterval": 100, + "reportableChange": 0 + }, + { + "name": "OperationalStatus", + "code": 10, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 127, + "reportableChange": 0 + }, + { + "name": "TargetPositionLiftPercent100ths", + "code": 11, + "mfgCode": null, + "side": "server", + "type": "Percent100ths", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "500", + "reportable": 1, + "minInterval": 0, + "maxInterval": 10000, + "reportableChange": 0 + }, + { + "name": "TargetPositionTiltPercent100ths", + "code": 12, + "mfgCode": null, + "side": "server", + "type": "Percent100ths", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "500", + "reportable": 1, + "minInterval": 0, + "maxInterval": 10000, + "reportableChange": 0 + }, + { + "name": "EndProductType", + "code": 13, + "mfgCode": null, + "side": "server", + "type": "EndProductType", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentPositionLiftPercent100ths", + "code": 14, + "mfgCode": null, + "side": "server", + "type": "Percent100ths", + "included": 0, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "500", + "reportable": 1, + "minInterval": 0, + "maxInterval": 10000, + "reportableChange": 0 + }, + { + "name": "CurrentPositionTiltPercent100ths", + "code": 15, + "mfgCode": null, + "side": "server", + "type": "Percent100ths", + "included": 0, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "500", + "reportable": 1, + "minInterval": 0, + "maxInterval": 10000, + "reportableChange": 0 + }, + { + "name": "InstalledOpenLimitLift", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "InstalledClosedLimitLift", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFFFF", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "InstalledOpenLimitTilt", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "InstalledClosedLimitTilt", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFFFF", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Mode", + "code": 23, + "mfgCode": null, + "side": "server", + "type": "Mode", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 15, + "reportableChange": 0 + }, + { + "name": "SafetyStatus", + "code": 26, + "mfgCode": null, + "side": "server", + "type": "bitmap16", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Barrier Control", + "code": 259, + "mfgCode": null, + "define": "BARRIER_CONTROL_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "BarrierControlGoToPercent", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "BarrierControlStop", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Barrier Control", + "code": 259, + "mfgCode": null, + "define": "BARRIER_CONTROL_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "barrier moving state", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "barrier safety status", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "bitmap16", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "barrier capabilities", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "barrier position", + "code": 10, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Pump Configuration and Control", + "code": 512, + "mfgCode": null, + "define": "PUMP_CONFIG_CONTROL_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Pump Configuration and Control", + "code": 512, + "mfgCode": null, + "define": "PUMP_CONFIG_CONTROL_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "MaxPressure", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MaxSpeed", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MaxFlow", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MinConstPressure", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxConstPressure", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MinCompPressure", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxCompPressure", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MinConstSpeed", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxConstSpeed", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MinConstFlow", + "code": 9, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxConstFlow", + "code": 10, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MinConstTemp", + "code": 11, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxConstTemp", + "code": 12, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PumpStatus", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "PumpStatus", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "EffectiveOperationMode", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "PumpOperationMode", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "EffectiveControlMode", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "PumpControlMode", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Capacity", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Speed", + "code": 20, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LifetimeRunningHours", + "code": 21, + "mfgCode": null, + "side": "server", + "type": "int24u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Power", + "code": 22, + "mfgCode": null, + "side": "server", + "type": "int24u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LifetimeEnergyConsumed", + "code": 23, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OperationMode", + "code": 32, + "mfgCode": null, + "side": "server", + "type": "PumpOperationMode", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ControlMode", + "code": 33, + "mfgCode": null, + "side": "server", + "type": "PumpControlMode", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Thermostat", + "code": 513, + "mfgCode": null, + "define": "THERMOSTAT_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "SetpointRaiseLower", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "SetWeeklySchedule", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "GetWeeklySchedule", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ClearWeeklySchedule", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Thermostat", + "code": 513, + "mfgCode": null, + "define": "THERMOSTAT_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "GetWeeklyScheduleResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "LocalTemperature", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "AbsMinHeatSetpointLimit", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x02BC", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "AbsMaxHeatSetpointLimit", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0BB8", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "AbsMinCoolSetpointLimit", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0640", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "AbsMaxCoolSetpointLimit", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0C80", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PICoolingDemand", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PIHeatingDemand", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OccupiedCoolingSetpoint", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0A28", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OccupiedHeatingSetpoint", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x07D0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MinHeatSetpointLimit", + "code": 21, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x02BC", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MaxHeatSetpointLimit", + "code": 22, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0BB8", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MinCoolSetpointLimit", + "code": 23, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0640", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MaxCoolSetpointLimit", + "code": 24, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0C80", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MinSetpointDeadBand", + "code": 25, + "mfgCode": null, + "side": "server", + "type": "int8s", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x19", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ControlSequenceOfOperation", + "code": 27, + "mfgCode": null, + "side": "server", + "type": "ThermostatControlSequence", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x04", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SystemMode", + "code": 28, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "StartOfWeek", + "code": 32, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NumberOfWeeklyTransitions", + "code": 33, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "7", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NumberOfDailyTransitions", + "code": 34, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TemperatureSetpointHold", + "code": 35, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Fan Control", + "code": 514, + "mfgCode": null, + "define": "FAN_CONTROL_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [] + }, + { + "name": "Fan Control", + "code": 514, + "mfgCode": null, + "define": "FAN_CONTROL_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "fan mode", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "FanModeType", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "fan mode sequence", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "FanModeSequenceType", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x02", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "percent setting", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "percent current", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "speed max", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "100", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "speed setting", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "speed current", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "rock support", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "rock setting", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "wind support", + "code": 9, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "wind setting", + "code": 10, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Thermostat User Interface Configuration", + "code": 516, + "mfgCode": null, + "define": "THERMOSTAT_UI_CONFIG_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Thermostat User Interface Configuration", + "code": 516, + "mfgCode": null, + "define": "THERMOSTAT_UI_CONFIG_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "temperature display mode", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "keypad lockout", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "schedule programming visibility", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Color Control", + "code": 768, + "mfgCode": null, + "define": "COLOR_CONTROL_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "MoveToHue", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "MoveHue", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "StepHue", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "MoveToSaturation", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "MoveSaturation", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "StepSaturation", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "MoveToHueAndSaturation", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "MoveToColor", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "MoveColor", + "code": 8, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "StepColor", + "code": 9, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "MoveToColorTemperature", + "code": 10, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "EnhancedMoveToHue", + "code": 64, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 0 + }, + { + "name": "EnhancedMoveHue", + "code": 65, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 0 + }, + { + "name": "EnhancedStepHue", + "code": 66, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 0 + }, + { + "name": "EnhancedMoveToHueAndSaturation", + "code": 67, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 0 + }, + { + "name": "ColorLoopSet", + "code": 68, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 0 + }, + { + "name": "StopMoveStep", + "code": 71, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "MoveColorTemperature", + "code": 75, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "StepColorTemperature", + "code": 76, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Color Control", + "code": 768, + "mfgCode": null, + "define": "COLOR_CONTROL_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "CurrentHue", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentSaturation", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RemainingTime", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentX", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x616B", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentY", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x607D", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "DriftCompensation", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CompensationText", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorTemperature", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00FA", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorMode", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Options", + "code": 15, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NumberOfPrimaries", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary1X", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary1Y", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary1Intensity", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary2X", + "code": 21, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary2Y", + "code": 22, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary2Intensity", + "code": 23, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary3X", + "code": 25, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary3Y", + "code": 26, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary3Intensity", + "code": 27, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary4X", + "code": 32, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary4Y", + "code": 33, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary4Intensity", + "code": 34, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary5X", + "code": 36, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary5Y", + "code": 37, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary5Intensity", + "code": 38, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary6X", + "code": 40, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary6Y", + "code": 41, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary6Intensity", + "code": 42, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "WhitePointX", + "code": 48, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "WhitePointY", + "code": 49, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorPointRX", + "code": 50, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorPointRY", + "code": 51, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorPointRIntensity", + "code": 52, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorPointGX", + "code": 54, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorPointGY", + "code": 55, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorPointGIntensity", + "code": 56, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorPointBX", + "code": 58, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorPointBY", + "code": 59, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorPointBIntensity", + "code": 60, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "EnhancedCurrentHue", + "code": 16384, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "EnhancedColorMode", + "code": 16385, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorLoopActive", + "code": 16386, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorLoopDirection", + "code": 16387, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorLoopTime", + "code": 16388, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0019", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorLoopStartEnhancedHue", + "code": 16389, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x2300", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorLoopStoredEnhancedHue", + "code": 16390, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorCapabilities", + "code": 16394, + "mfgCode": null, + "side": "server", + "type": "bitmap16", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorTempPhysicalMinMireds", + "code": 16395, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorTempPhysicalMaxMireds", + "code": 16396, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFEFF", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CoupleColorTempToLevelMinMireds", + "code": 16397, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "StartUpColorTemperatureMireds", + "code": 16400, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Illuminance Measurement", + "code": 1024, + "mfgCode": null, + "define": "ILLUMINANCE_MEASUREMENT_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Illuminance Measurement", + "code": 1024, + "mfgCode": null, + "define": "ILLUMINANCE_MEASUREMENT_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "MeasuredValue", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MinMeasuredValue", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxMeasuredValue", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFFFE", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Tolerance", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LightSensorType", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFF", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Temperature Measurement", + "code": 1026, + "mfgCode": null, + "define": "TEMP_MEASUREMENT_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Temperature Measurement", + "code": 1026, + "mfgCode": null, + "define": "TEMP_MEASUREMENT_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "MeasuredValue", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x8000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MinMeasuredValue", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x8000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MaxMeasuredValue", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x8000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Tolerance", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Pressure Measurement", + "code": 1027, + "mfgCode": null, + "define": "PRESSURE_MEASUREMENT_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Pressure Measurement", + "code": 1027, + "mfgCode": null, + "define": "PRESSURE_MEASUREMENT_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "MeasuredValue", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MinMeasuredValue", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MaxMeasuredValue", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Tolerance", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ScaledValue", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ScaledTolerance", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Flow Measurement", + "code": 1028, + "mfgCode": null, + "define": "FLOW_MEASUREMENT_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Flow Measurement", + "code": 1028, + "mfgCode": null, + "define": "FLOW_MEASUREMENT_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "MeasuredValue", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MinMeasuredValue", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MaxMeasuredValue", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Tolerance", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Relative Humidity Measurement", + "code": 1029, + "mfgCode": null, + "define": "RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Relative Humidity Measurement", + "code": 1029, + "mfgCode": null, + "define": "RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "measured value", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "min measured value", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "max measured value", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x2710", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "tolerance", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Occupancy Sensing", + "code": 1030, + "mfgCode": null, + "define": "OCCUPANCY_SENSING_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Occupancy Sensing", + "code": 1030, + "mfgCode": null, + "define": "OCCUPANCY_SENSING_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "occupancy", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "occupancy sensor type", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "occupancy sensor type bitmap", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "IAS Zone", + "code": 1280, + "mfgCode": null, + "define": "IAS_ZONE_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ZoneEnrollResponse", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "IAS Zone", + "code": 1280, + "mfgCode": null, + "define": "IAS_ZONE_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [ + { + "name": "ZoneStatusChangeNotification", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "ZoneEnrollRequest", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "zone state", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "zone type", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "enum16", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "zone status", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "bitmap16", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "IAS CIE address", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "node_id", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Zone ID", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xff", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Wake on LAN", + "code": 1283, + "mfgCode": null, + "define": "WAKE_ON_LAN_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Wake on LAN", + "code": 1283, + "mfgCode": null, + "define": "WAKE_ON_LAN_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "MACAddress", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Channel", + "code": 1284, + "mfgCode": null, + "define": "CHANNEL_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ChangeChannel", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ChangeChannelByNumber", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "SkipChannel", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Channel", + "code": 1284, + "mfgCode": null, + "define": "CHANNEL_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "ChannelList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Lineup", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "LineupInfo", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentChannel", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "ChannelInfo", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Target Navigator", + "code": 1285, + "mfgCode": null, + "define": "TARGET_NAVIGATOR_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "NavigateTarget", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Target Navigator", + "code": 1285, + "mfgCode": null, + "define": "TARGET_NAVIGATOR_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "NavigateTargetResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "TargetList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentTarget", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Media Playback", + "code": 1286, + "mfgCode": null, + "define": "MEDIA_PLAYBACK_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "Play", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Pause", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StopPlayback", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StartOver", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "Previous", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "Next", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "Rewind", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "FastForward", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "SkipForward", + "code": 8, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "SkipBackward", + "code": 9, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Media Playback", + "code": 1286, + "mfgCode": null, + "define": "MEDIA_PLAYBACK_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "PlaybackResponse", + "code": 10, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "CurrentState", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "PlaybackStateEnum", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "StartTime", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "epoch_us", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFF", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Duration", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SampledPosition", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "PlaybackPosition", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PlaybackSpeed", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "single", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SeekRangeEnd", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SeekRangeStart", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Media Input", + "code": 1287, + "mfgCode": null, + "define": "MEDIA_INPUT_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "SelectInput", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "ShowInputStatus", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "HideInputStatus", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RenameInput", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Media Input", + "code": 1287, + "mfgCode": null, + "define": "MEDIA_INPUT_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "InputList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentInput", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Low Power", + "code": 1288, + "mfgCode": null, + "define": "LOW_POWER_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "Sleep", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Low Power", + "code": 1288, + "mfgCode": null, + "define": "LOW_POWER_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Keypad Input", + "code": 1289, + "mfgCode": null, + "define": "KEYPAD_INPUT_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "SendKey", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Keypad Input", + "code": 1289, + "mfgCode": null, + "define": "KEYPAD_INPUT_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "SendKeyResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Content Launcher", + "code": 1290, + "mfgCode": null, + "define": "CONTENT_LAUNCH_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "LaunchContent", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "LaunchURL", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Content Launcher", + "code": 1290, + "mfgCode": null, + "define": "CONTENT_LAUNCH_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "AcceptHeader", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SupportedStreamingProtocols", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Audio Output", + "code": 1291, + "mfgCode": null, + "define": "AUDIO_OUTPUT_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "SelectOutput", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RenameOutput", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Audio Output", + "code": 1291, + "mfgCode": null, + "define": "AUDIO_OUTPUT_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "OutputList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentOutput", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Application Launcher", + "code": 1292, + "mfgCode": null, + "define": "APPLICATION_LAUNCHER_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "LaunchApp", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StopApp", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "HideApp", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Application Launcher", + "code": 1292, + "mfgCode": null, + "define": "APPLICATION_LAUNCHER_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "LauncherResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "CatalogList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentApp", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "ApplicationEP", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Application Basic", + "code": 1293, + "mfgCode": null, + "define": "APPLICATION_BASIC_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Application Basic", + "code": 1293, + "mfgCode": null, + "define": "APPLICATION_BASIC_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "VendorName", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "VendorID", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ApplicationName", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductID", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Application", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "ApplicationBasicApplication", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Status", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "ApplicationStatusEnum", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ApplicationVersion", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "AllowedVendorList", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Account Login", + "code": 1294, + "mfgCode": null, + "define": "ACCOUNT_LOGIN_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "GetSetupPIN", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Login", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Logout", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Account Login", + "code": 1294, + "mfgCode": null, + "define": "ACCOUNT_LOGIN_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "GetSetupPINResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Test Cluster", + "code": 4294048773, + "mfgCode": null, + "define": "TEST_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "Test", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "TestNotHandled", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "TestSpecific", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "TestAddArguments", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "TestStructArgumentRequest", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "TestNestedStructArgumentRequest", + "code": 8, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "TestListStructArgumentRequest", + "code": 9, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "TestListInt8UArgumentRequest", + "code": 10, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "TestNestedStructListArgumentRequest", + "code": 11, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "TestListNestedStructListArgumentRequest", + "code": 12, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "TestListInt8UReverseRequest", + "code": 13, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "TestEnumsRequest", + "code": 14, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "TestNullableOptionalRequest", + "code": 15, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "SimpleStructEchoRequest", + "code": 17, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "TimedInvokeRequest", + "code": 18, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "TestSimpleOptionalArgumentRequest", + "code": 19, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "TestEmitTestEventRequest", + "code": 20, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "TestEmitTestFabricScopedEventRequest", + "code": 21, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Test Cluster", + "code": 4294048773, + "mfgCode": null, + "define": "TEST_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "TestSpecificResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "TestAddArgumentsResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "TestListInt8UReverseResponse", + "code": 4, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "TestEnumsResponse", + "code": 5, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "TestNullableOptionalResponse", + "code": 6, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "SimpleStructResponse", + "code": 9, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "TestEmitTestEventResponse", + "code": 10, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "TestEmitTestFabricScopedEventResponse", + "code": 11, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "boolean", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "false", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "bitmap8", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "Bitmap8MaskMap", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "bitmap16", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "Bitmap16MaskMap", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "bitmap32", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "Bitmap32MaskMap", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "bitmap64", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "Bitmap64MaskMap", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "int8u", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "int16u", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "int24u", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int24u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "int32u", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "int40u", + "code": 9, + "mfgCode": null, + "side": "server", + "type": "int40u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "int48u", + "code": 10, + "mfgCode": null, + "side": "server", + "type": "int48u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "int56u", + "code": 11, + "mfgCode": null, + "side": "server", + "type": "int56u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "int64u", + "code": 12, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "int8s", + "code": 13, + "mfgCode": null, + "side": "server", + "type": "int8s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "int16s", + "code": 14, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "int24s", + "code": 15, + "mfgCode": null, + "side": "server", + "type": "int24s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "int32s", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "int32s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "int40s", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "int40s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "int48s", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "int48s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "int56s", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "int56s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "int64s", + "code": 20, + "mfgCode": null, + "side": "server", + "type": "int64s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "enum8", + "code": 21, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "enum16", + "code": 22, + "mfgCode": null, + "side": "server", + "type": "enum16", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "float_single", + "code": 23, + "mfgCode": null, + "side": "server", + "type": "single", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "float_double", + "code": 24, + "mfgCode": null, + "side": "server", + "type": "double", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "octet_string", + "code": 25, + "mfgCode": null, + "side": "server", + "type": "octet_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "list_int8u", + "code": 26, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "list_octet_string", + "code": 27, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "list_struct_octet_string", + "code": 28, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "long_octet_string", + "code": 29, + "mfgCode": null, + "side": "server", + "type": "long_octet_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "char_string", + "code": 30, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "long_char_string", + "code": 31, + "mfgCode": null, + "side": "server", + "type": "long_char_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "epoch_us", + "code": 32, + "mfgCode": null, + "side": "server", + "type": "epoch_us", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "epoch_s", + "code": 33, + "mfgCode": null, + "side": "server", + "type": "epoch_s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "vendor_id", + "code": 34, + "mfgCode": null, + "side": "server", + "type": "vendor_id", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "list_nullables_and_optionals_struct", + "code": 35, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "enum_attr", + "code": 36, + "mfgCode": null, + "side": "server", + "type": "SimpleEnum", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "struct_attr", + "code": 37, + "mfgCode": null, + "side": "server", + "type": "SimpleStruct", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "range_restricted_int8u", + "code": 38, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "70", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "range_restricted_int8s", + "code": 39, + "mfgCode": null, + "side": "server", + "type": "int8s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "-20", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "range_restricted_int16u", + "code": 40, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "200", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "range_restricted_int16s", + "code": 41, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "-100", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "list_long_octet_string", + "code": 42, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "list_fabric_scoped", + "code": 43, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "timed_write_boolean", + "code": 48, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "general_error_boolean", + "code": 49, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "cluster_error_boolean", + "code": 50, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "unsupported", + "code": 255, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_boolean", + "code": 16384, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "false", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_bitmap8", + "code": 16385, + "mfgCode": null, + "side": "server", + "type": "Bitmap8MaskMap", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_bitmap16", + "code": 16386, + "mfgCode": null, + "side": "server", + "type": "Bitmap16MaskMap", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_bitmap32", + "code": 16387, + "mfgCode": null, + "side": "server", + "type": "Bitmap32MaskMap", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_bitmap64", + "code": 16388, + "mfgCode": null, + "side": "server", + "type": "Bitmap64MaskMap", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_int8u", + "code": 16389, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_int16u", + "code": 16390, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_int24u", + "code": 16391, + "mfgCode": null, + "side": "server", + "type": "int24u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_int32u", + "code": 16392, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_int40u", + "code": 16393, + "mfgCode": null, + "side": "server", + "type": "int40u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_int48u", + "code": 16394, + "mfgCode": null, + "side": "server", + "type": "int48u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_int56u", + "code": 16395, + "mfgCode": null, + "side": "server", + "type": "int56u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_int64u", + "code": 16396, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_int8s", + "code": 16397, + "mfgCode": null, + "side": "server", + "type": "int8s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_int16s", + "code": 16398, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_int24s", + "code": 16399, + "mfgCode": null, + "side": "server", + "type": "int24s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_int32s", + "code": 16400, + "mfgCode": null, + "side": "server", + "type": "int32s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_int40s", + "code": 16401, + "mfgCode": null, + "side": "server", + "type": "int40s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_int48s", + "code": 16402, + "mfgCode": null, + "side": "server", + "type": "int48s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_int56s", + "code": 16403, + "mfgCode": null, + "side": "server", + "type": "int56s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_int64s", + "code": 16404, + "mfgCode": null, + "side": "server", + "type": "int64s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_enum8", + "code": 16405, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_enum16", + "code": 16406, + "mfgCode": null, + "side": "server", + "type": "enum16", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_float_single", + "code": 16407, + "mfgCode": null, + "side": "server", + "type": "single", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_float_double", + "code": 16408, + "mfgCode": null, + "side": "server", + "type": "double", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_octet_string", + "code": 16409, + "mfgCode": null, + "side": "server", + "type": "octet_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_char_string", + "code": 16414, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_enum_attr", + "code": 16420, + "mfgCode": null, + "side": "server", + "type": "SimpleEnum", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_struct", + "code": 16421, + "mfgCode": null, + "side": "server", + "type": "SimpleStruct", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_range_restricted_int8u", + "code": 16422, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "70", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_range_restricted_int8s", + "code": 16423, + "mfgCode": null, + "side": "server", + "type": "int8s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "-20", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_range_restricted_int16u", + "code": 16424, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "200", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_range_restricted_int16s", + "code": 16425, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "-100", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Electrical Measurement", + "code": 2820, + "mfgCode": null, + "define": "ELECTRICAL_MEASUREMENT_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Electrical Measurement", + "code": 2820, + "mfgCode": null, + "define": "ELECTRICAL_MEASUREMENT_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "measurement type", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "total active power", + "code": 772, + "mfgCode": null, + "side": "server", + "type": "int32s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "rms voltage", + "code": 1285, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xffff", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "rms voltage min", + "code": 1286, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x8000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "rms voltage max", + "code": 1287, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x8000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "rms current", + "code": 1288, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xffff", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "rms current min", + "code": 1289, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xffff", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "rms current max", + "code": 1290, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xffff", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "active power", + "code": 1291, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xffff", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "active power min", + "code": 1292, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xffff", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "active power max", + "code": 1293, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xffff", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + } + ] + }, + { + "name": "MA-onofflight", + "deviceTypeName": "MA-onofflight", + "deviceTypeCode": 256, + "deviceTypeProfileId": 259, + "clusters": [ + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "Identify", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "identify time", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Groups", + "code": 4, + "mfgCode": null, + "define": "GROUPS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AddGroup", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "ViewGroup", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "GetGroupMembership", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveGroup", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveAllGroups", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "AddGroupIfIdentifying", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Groups", + "code": 4, + "mfgCode": null, + "define": "GROUPS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "AddGroupResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "ViewGroupResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "GetGroupMembershipResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveGroupResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "name support", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Scenes", + "code": 5, + "mfgCode": null, + "define": "SCENES_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AddScene", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "ViewScene", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveScene", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveAllScenes", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StoreScene", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RecallScene", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "GetSceneMembership", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Scenes", + "code": 5, + "mfgCode": null, + "define": "SCENES_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [ + { + "name": "AddSceneResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "ViewSceneResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveSceneResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveAllScenesResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StoreSceneResponse", + "code": 4, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "GetSceneMembershipResponse", + "code": 6, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "SceneCount", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentScene", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentGroup", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "group_id", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SceneValid", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NameSupport", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "On/Off", + "code": 6, + "mfgCode": null, + "define": "ON_OFF_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "Off", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "On", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Toggle", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "On/Off", + "code": 6, + "mfgCode": null, + "define": "ON_OFF_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "OnOff", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "GlobalSceneControl", + "code": 16384, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OnTime", + "code": 16385, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OffWaitTime", + "code": 16386, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "StartUpOnOff", + "code": 16387, + "mfgCode": null, + "side": "server", + "type": "OnOffStartUpOnOff", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Level Control", + "code": 8, + "mfgCode": null, + "define": "LEVEL_CONTROL_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "MoveToLevel", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Move", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Step", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "Stop", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToLevelWithOnOff", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveWithOnOff", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepWithOnOff", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StopWithOnOff", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Level Control", + "code": 8, + "mfgCode": null, + "define": "LEVEL_CONTROL_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "current level", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Descriptor", + "code": 29, + "mfgCode": null, + "define": "DESCRIPTOR_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Descriptor", + "code": 29, + "mfgCode": null, + "define": "DESCRIPTOR_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "device list", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "server list", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "client list", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "parts list", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Basic", + "code": 40, + "mfgCode": null, + "define": "BASIC_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Basic", + "code": 40, + "mfgCode": null, + "define": "BASIC_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "DataModelRevision", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "10", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "VendorName", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "VendorID", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "vendor_id", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductName", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductID", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NodeLabel", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "NVM", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Location", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "XX", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "HardwareVersion", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "HardwareVersionString", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SoftwareVersion", + "code": 9, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SoftwareVersionString", + "code": 10, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ManufacturingDate", + "code": 11, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "20210614123456ZZ", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PartNumber", + "code": 12, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductURL", + "code": 13, + "mfgCode": null, + "side": "server", + "type": "long_char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductLabel", + "code": 14, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SerialNumber", + "code": 15, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "LocalConfigDisabled", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "NVM", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Reachable", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "UniqueID", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CapabilityMinima", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "CapabilityMinimaStruct", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Power Source", + "code": 47, + "mfgCode": null, + "define": "POWER_SOURCE_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [] + }, + { + "name": "Power Source", + "code": 47, + "mfgCode": null, + "define": "POWER_SOURCE_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "Status", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Order", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Description", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "B3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "WiredAssessedInputVoltage", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "WiredAssessedInputFrequency", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "WiredCurrentType", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "WiredAssessedCurrent", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "WiredNominalVoltage", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "WiredMaximumCurrent", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "WiredPresent", + "code": 9, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ActiveWiredFaults", + "code": 10, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryVoltage", + "code": 11, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryPercentRemaining", + "code": 12, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryTimeRemaining", + "code": 13, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryChargeLevel", + "code": 14, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryReplacementNeeded", + "code": 15, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryReplaceability", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryPresent", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ActiveBatteryFaults", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryReplacementDescription", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryCommonDesignation", + "code": 20, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryANSIDesignation", + "code": 21, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryIECDesignation", + "code": 22, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryApprovedChemistry", + "code": 23, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryCapacity", + "code": 24, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryQuantity", + "code": 25, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryChargeState", + "code": 26, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryTimeToFullCharge", + "code": 27, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryFunctionalWhileCharging", + "code": 28, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BatteryChargingCurrent", + "code": 29, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ActiveBatteryChargeFaults", + "code": 30, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Door Lock", + "code": 257, + "mfgCode": null, + "define": "DOOR_LOCK_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "LockDoor", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "UnlockDoor", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "6", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Door Lock", + "code": 257, + "mfgCode": null, + "define": "DOOR_LOCK_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "LockState", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "DlLockState", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "LockType", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "DlLockType", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ActuatorEnabled", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "DoorState", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "DlDoorState", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Language", + "code": 33, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "LEDSettings", + "code": 34, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "AutoRelockTime", + "code": 35, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SoundVolume", + "code": 36, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OperatingMode", + "code": 37, + "mfgCode": null, + "side": "server", + "type": "DlOperatingMode", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "DefaultConfigurationRegister", + "code": 39, + "mfgCode": null, + "side": "server", + "type": "DlDefaultConfigurationRegister", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "EnableLocalProgramming", + "code": 40, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "EnableOneTouchLocking", + "code": 41, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "EnableInsideStatusLED", + "code": 42, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "EnablePrivacyModeButton", + "code": 43, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "WrongCodeEntryLimit", + "code": 48, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "UserCodeTemporaryDisableTime", + "code": 49, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SendPINOverTheAir", + "code": 50, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RequirePINforRemoteOperation", + "code": 51, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "6", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Barrier Control", + "code": 259, + "mfgCode": null, + "define": "BARRIER_CONTROL_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "BarrierControlGoToPercent", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "BarrierControlStop", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Barrier Control", + "code": 259, + "mfgCode": null, + "define": "BARRIER_CONTROL_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "barrier moving state", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "barrier safety status", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "bitmap16", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "barrier capabilities", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "barrier position", + "code": 10, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Color Control", + "code": 768, + "mfgCode": null, + "define": "COLOR_CONTROL_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "MoveToHue", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveHue", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepHue", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToSaturation", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveSaturation", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepSaturation", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToHueAndSaturation", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToColor", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveColor", + "code": 8, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepColor", + "code": 9, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToColorTemperature", + "code": 10, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StopMoveStep", + "code": 71, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveColorTemperature", + "code": 75, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepColorTemperature", + "code": 76, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Color Control", + "code": 768, + "mfgCode": null, + "define": "COLOR_CONTROL_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "CurrentHue", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentSaturation", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RemainingTime", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentX", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x616B", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentY", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x607D", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "DriftCompensation", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CompensationText", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorTemperature", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00FA", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorMode", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Options", + "code": 15, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NumberOfPrimaries", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary1X", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary1Y", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary1Intensity", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary2X", + "code": 21, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary2Y", + "code": 22, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary2Intensity", + "code": 23, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary3X", + "code": 25, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary3Y", + "code": 26, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary3Intensity", + "code": 27, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary4X", + "code": 32, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary4Y", + "code": 33, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary4Intensity", + "code": 34, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary5X", + "code": 36, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary5Y", + "code": 37, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary5Intensity", + "code": 38, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary6X", + "code": 40, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary6Y", + "code": 41, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary6Intensity", + "code": 42, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "WhitePointX", + "code": 48, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "WhitePointY", + "code": 49, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorPointRX", + "code": 50, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorPointRY", + "code": 51, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorPointRIntensity", + "code": 52, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorPointGX", + "code": 54, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorPointGY", + "code": 55, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorPointGIntensity", + "code": 56, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorPointBX", + "code": 58, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorPointBY", + "code": 59, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorPointBIntensity", + "code": 60, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "EnhancedCurrentHue", + "code": 16384, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "EnhancedColorMode", + "code": 16385, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorLoopActive", + "code": 16386, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorLoopDirection", + "code": 16387, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorLoopTime", + "code": 16388, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0019", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorCapabilities", + "code": 16394, + "mfgCode": null, + "side": "server", + "type": "bitmap16", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorTempPhysicalMinMireds", + "code": 16395, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorTempPhysicalMaxMireds", + "code": 16396, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFEFF", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CoupleColorTempToLevelMinMireds", + "code": 16397, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "StartUpColorTemperatureMireds", + "code": 16400, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Temperature Measurement", + "code": 1026, + "mfgCode": null, + "define": "TEMP_MEASUREMENT_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Temperature Measurement", + "code": 1026, + "mfgCode": null, + "define": "TEMP_MEASUREMENT_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "MeasuredValue", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x8000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MinMeasuredValue", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x8000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MaxMeasuredValue", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x8000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Tolerance", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Occupancy Sensing", + "code": 1030, + "mfgCode": null, + "define": "OCCUPANCY_SENSING_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Occupancy Sensing", + "code": 1030, + "mfgCode": null, + "define": "OCCUPANCY_SENSING_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "occupancy", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "occupancy sensor type", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "occupancy sensor type bitmap", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "IAS Zone", + "code": 1280, + "mfgCode": null, + "define": "IAS_ZONE_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ZoneEnrollResponse", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "IAS Zone", + "code": 1280, + "mfgCode": null, + "define": "IAS_ZONE_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [ + { + "name": "ZoneStatusChangeNotification", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "ZoneEnrollRequest", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "zone state", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "zone type", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "enum16", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "zone status", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "bitmap16", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "IAS CIE address", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "node_id", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Zone ID", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xff", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + } + ] + }, + { + "name": "Anonymous Endpoint Type", + "deviceTypeName": "MA-secondary-network-commissioning", + "deviceTypeCode": 61442, + "deviceTypeProfileId": 259, + "clusters": [ + { + "name": "Network Commissioning", + "code": 49, + "mfgCode": null, + "define": "NETWORK_COMMISSIONING_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ScanNetworks", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "AddOrUpdateWiFiNetwork", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "AddOrUpdateThreadNetwork", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveNetwork", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ConnectNetwork", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ReorderNetwork", + "code": 8, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Network Commissioning", + "code": 49, + "mfgCode": null, + "define": "NETWORK_COMMISSIONING_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "ScanNetworksResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "NetworkConfigResponse", + "code": 5, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ConnectNetworkResponse", + "code": 7, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "MaxNetworks", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Networks", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ScanMaxTimeSeconds", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ConnectMaxTimeSeconds", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "InterfaceEnabled", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LastNetworkingStatus", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "NetworkCommissioningStatus", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LastNetworkID", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "octet_string", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LastConnectErrorValue", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int32s", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + } + ] + } + ], + "endpoints": [ + { + "endpointTypeName": "MA-rootdevice", + "endpointTypeIndex": 0, + "profileId": 259, + "endpointId": 0, + "networkId": 0, + "endpointVersion": 1, + "deviceIdentifier": 22 + }, + { + "endpointTypeName": "MA-onofflight", + "endpointTypeIndex": 1, + "profileId": 259, + "endpointId": 1, + "networkId": 0, + "endpointVersion": 1, + "deviceIdentifier": 256 + }, + { + "endpointTypeName": "MA-onofflight", + "endpointTypeIndex": 2, + "profileId": 259, + "endpointId": 2, + "networkId": 0, + "endpointVersion": 1, + "deviceIdentifier": 256 + }, + { + "endpointTypeName": "Anonymous Endpoint Type", + "endpointTypeIndex": 3, + "profileId": 259, + "endpointId": 65534, + "networkId": 0, + "endpointVersion": 1, + "deviceIdentifier": 61442 + } + ] +} diff --git a/examples/ipv6only-app/esp32/.gitignore b/examples/all-clusters-minimal-app/ameba/.gitignore old mode 100644 new mode 100755 similarity index 100% rename from examples/ipv6only-app/esp32/.gitignore rename to examples/all-clusters-minimal-app/ameba/.gitignore diff --git a/examples/all-clusters-minimal-app/ameba/README.md b/examples/all-clusters-minimal-app/ameba/README.md new file mode 100644 index 00000000000000..3c51bc43cabda9 --- /dev/null +++ b/examples/all-clusters-minimal-app/ameba/README.md @@ -0,0 +1,153 @@ +# CHIP Ameba All Clusters Example + +A prototype application that demonstrates device commissioning and cluster +control. + +--- + +- [CHIP Ameba All Clusters Example](#chip-ameba-all-clusters-example) + - [Supported Device](#supported-device) + - [Building the Example Application](#building-the-example-application) + - [Commissioning and cluster control](#commissioning-and-cluster-control) + - [Commissioning](#commissioning) + - [BLE mode](#ble-mode) + - [IP mode](#ip-mode) + - [Cluster control](#cluster-control) + - [Running RPC Console](#running-rpc-console) + +--- + +## Supported Device + +The CHIP demo application is supported on +[Ameba RTL8722DM Board](https://www.amebaiot.com/en/amebad). + +## Building the Example Application + +- Pull docker image: + + ``` + $ docker pull connectedhomeip/chip-build-ameba:latest + ``` + +- Run docker container: + + ``` + $ docker run -it -v ${CHIP_DIR}:/root/chip connectedhomeip/chip-build-ameba:latest + ``` + +- Setup build environment: + + ``` + $ source ./scripts/bootstrap.sh + ``` + +- To build the demo application: + + ``` + $ ./scripts/build/build_examples.py --target ameba-amebad-all-clusters build + ``` + + The output image files are stored in + `out/ameba-amebad-all-clusters/asdk/image` folder. + + The bootloader image files are stored in + `out/ameba-amebad-all-clusters/asdk/bootloader` folder. + +- After building the application, **Ameba Image Tool** is used to flash it to + Ameba board. + +1. Connect your device via USB and open Ameba Image Tool. +2. Select correct serial port and set baudrate as **115200**. +3. Browse and add the corresponding image files in the Flash Download list to + the correct locations +4. Click **Download** button. + +## Commissioning and Cluster Control + +## Commissioning + +There are two commissioning modes supported by Ameba platform: + +### BLE mode + +1. In "connectedhomeip/config/ameba/args.gni" + + - Set `chip_config_network_layer_ble = true` + +2. In `connectedhomeip/src/platform/Ameba/CHIPDevicePlatformConfig.h` + + - Set `#define CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE 1` + +3. Build and Flash +4. The all-clusters example will run automatically after booting the Ameba + board. +5. Test with + [Chip-Tool](https://github.com/project-chip/connectedhomeip/tree/master/examples/chip-tool) + +### IP mode + +1. In `connectedhomeip/config/ameba/args.gni` + + - Set `chip_config_network_layer_ble = false` + +2. In `connectedhomeip/src/platform/Ameba/CHIPDevicePlatformConfig.h` + + - Set `#define CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE 0` + +3. Build and Flash +4. The all-clusters example will run automatically after booting the Ameba + board. +5. Connect to AP using `ATW0, ATW1, ATWC` commands +6. Test with + [Chip-Tool](https://github.com/project-chip/connectedhomeip/tree/master/examples/chip-tool) + +## Cluster Control + +After successful commissioning, use the OnOff cluster command to control the +OnOff attribute. This allows you to toggle a parameter implemented by the device +to be On or Off. + +- Via + [Chip-Tool](https://github.com/project-chip/connectedhomeip/tree/master/examples/chip-tool#using-the-client-to-send-matter-commands) + + ``` + $ ./chip-tool onoff on ${NODE_ID_TO_ASSIGN} 1 + $ ./chip-tool onoff off ${NODE_ID_TO_ASSIGN} 1 + ``` + +## Running RPC Console + +- Connect a USB-TTL Adapter as shown below + + ``` + Ameba USB-TTL + A19 TX + A18 RX + GND GND + ``` + +- Build the + [chip-rpc console](https://github.com/project-chip/connectedhomeip/tree/master/examples/common/pigweed/rpc_console) + +- As part of building the example with RPCs enabled the chip_rpc python + interactive console is installed into your venv. The python wheel files are + also created in the output folder: out/debug/chip_rpc_console_wheels. To + install the wheel files without rebuilding: + + ``` + $ pip3 install out/debug/chip_rpc_console_wheels/*.whl + ``` + +- Launch the chip-rpc console after resetting Ameba board + + ``` + $ chip-console --device /dev/tty -b 115200 + ``` + +- Get and Set lighting directly using the RPC console + + ```python + rpcs.chip.rpc.Lighting.Get() + rpcs.chip.rpc.Lighting.Set(on=True, level=128, color=protos.chip.rpc.LightingColor(hue=5, saturation=5)) + ``` diff --git a/examples/all-clusters-minimal-app/ameba/chip_main.cmake b/examples/all-clusters-minimal-app/ameba/chip_main.cmake new file mode 100755 index 00000000000000..6d40ce5fe09e7c --- /dev/null +++ b/examples/all-clusters-minimal-app/ameba/chip_main.cmake @@ -0,0 +1,267 @@ +cmake_minimum_required(VERSION 3.6) + +project(chip_main) + +set(chip_dir "${ameba_matter_root}") +set(chip_dir_output "${matter_output_path}/chip") +set(dir "${sdk_root}/component/common/api") +set(chip_main chip_main) +set(list_chip_main_sources chip_main_sources) + +if (matter_enable_rpc) +set(pigweed_dir "${chip_dir}/third_party/pigweed/repo") + +include(${pigweed_dir}/pw_build/pigweed.cmake) +include(${pigweed_dir}/pw_protobuf_compiler/proto.cmake) + +set(dir_pw_third_party_nanopb "${chip_dir}/third_party/nanopb/repo" CACHE STRING "" FORCE) + +pw_set_backend(pw_log pw_log_basic) +pw_set_backend(pw_assert pw_assert_log) +pw_set_backend(pw_sys_io pw_sys_io.ameba) +pw_set_backend(pw_trace pw_trace_tokenized) + +add_subdirectory(${chip_dir}/third_party/pigweed/repo ${chip_dir}/examples/all-clusters-minimal-app/ameba/out/pigweed) +add_subdirectory(${chip_dir}/third_party/nanopb/repo ${chip_dir}/examples/all-clusters-minimal-app/ameba/out/nanopb) +add_subdirectory(${chip_dir}/examples/platform/ameba/pw_sys_io ${chip_dir}/examples/all-clusters-minimal-app/ameba/out/pw_sys_io) + +pw_proto_library(attributes_service + SOURCES + ${chip_dir}/examples/common/pigweed/protos/attributes_service.proto + INPUTS + ${chip_dir}/examples/common/pigweed/protos/attributes_service.options + PREFIX + attributes_service + STRIP_PREFIX + ${chip_dir}/examples/common/pigweed/protos + DEPS + pw_protobuf.common_protos +) + +pw_proto_library(button_service + SOURCES + ${chip_dir}/examples/common/pigweed/protos/button_service.proto + PREFIX + button_service + STRIP_PREFIX + ${chip_dir}/examples/common/pigweed/protos + DEPS + pw_protobuf.common_protos +) + +pw_proto_library(device_service + SOURCES + ${chip_dir}/examples/common/pigweed/protos/device_service.proto + INPUTS + ${chip_dir}/examples/common/pigweed/protos/device_service.options + PREFIX + device_service + STRIP_PREFIX + ${chip_dir}/examples/common/pigweed/protos + DEPS + pw_protobuf.common_protos +) + +pw_proto_library(lighting_service + SOURCES + ${chip_dir}/examples/common/pigweed/protos/lighting_service.proto + PREFIX + lighting_service + STRIP_PREFIX + ${chip_dir}/examples/common/pigweed/protos + DEPS + pw_protobuf.common_protos +) + +pw_proto_library(locking_service + SOURCES + ${chip_dir}/examples/common/pigweed/protos/locking_service.proto + PREFIX + locking_service + STRIP_PREFIX + ${chip_dir}/examples/common/pigweed/protos + DEPS + pw_protobuf.common_protos +) + +pw_proto_library(wifi_service + SOURCES + ${chip_dir}/examples/common/pigweed/protos/wifi_service.proto + INPUTS + ${chip_dir}/examples/common/pigweed/protos/wifi_service.options + PREFIX + wifi_service + DEPS + pw_protobuf.common_protos + STRIP_PREFIX + ${chip_dir}/examples/common/pigweed/protos +) + +endif(matter_enable_rpc) + +include(${prj_root}/GCC-RELEASE/project_hp/asdk/includepath.cmake) + +if (matter_enable_rpc) +list( + APPEND ${list_chip_main_sources} + #rpc + ${chip_dir}/examples/platform/ameba/PigweedLogger.cpp + ${chip_dir}/examples/platform/ameba/Rpc.cpp + ${chip_dir}/examples/common/pigweed/RpcService.cpp + ${chip_dir}/examples/common/pigweed/ameba/PigweedLoggerMutex.cpp +) +endif (matter_enable_rpc) + +if (matter_enable_ota_requestor) +list( + APPEND ${list_chip_main_sources} + #OTARequestor + ${chip_dir}/src/app/clusters/ota-requestor/BDXDownloader.cpp + ${chip_dir}/src/app/clusters/ota-requestor/DefaultOTARequestor.cpp + ${chip_dir}/src/app/clusters/ota-requestor/DefaultOTARequestorDriver.cpp + ${chip_dir}/src/app/clusters/ota-requestor/DefaultOTARequestorStorage.cpp + ${chip_dir}/src/app/clusters/ota-requestor/ota-requestor-server.cpp +) +endif (matter_enable_ota_requestor) + +list( + APPEND ${list_chip_main_sources} + + ${chip_dir}/zzz_generated/all-clusters-minimal-app/zap-generated/callback-stub.cpp + ${chip_dir}/zzz_generated/all-clusters-minimal-app/zap-generated/IMClusterCommandHandler.cpp + + ${chip_dir}/examples/all-clusters-minimal-app/all-clusters-common/src/bridged-actions-stub.cpp + ${chip_dir}/examples/all-clusters-minimal-app/all-clusters-common/src/static-supported-modes-manager.cpp + + ${chip_dir}/examples/all-clusters-minimal-app/ameba/main/chipinterface.cpp + ${chip_dir}/examples/all-clusters-minimal-app/ameba/main/DeviceCallbacks.cpp + ${chip_dir}/examples/all-clusters-minimal-app/ameba/main/CHIPDeviceManager.cpp + ${chip_dir}/examples/all-clusters-minimal-app/ameba/main/Globals.cpp + ${chip_dir}/examples/all-clusters-minimal-app/ameba/main/LEDWidget.cpp + ${chip_dir}/examples/all-clusters-minimal-app/ameba/main/DsoHack.cpp +) + +add_library( + ${chip_main} + STATIC + ${chip_main_sources} +) + +chip_configure_data_model(chip_main + INCLUDE_SERVER + ZAP_FILE ${matter_example_path}/../all-clusters-common/all-clusters-minimal-app.zap +) + +if (matter_enable_rpc) +target_include_directories( + ${chip_main} + PUBLIC + #rpc + ${chip_dir}/examples/platform/ameba + ${chip_dir}/examples/platform/ameba/pw_sys_io/public + ${chip_dir}/examples/common + ${chip_dir}/examples/common/pigweed + ${chip_dir}/examples/common/pigweed/ameba + ${chip_dir}/src + ${chip_dir}/src/lib/support + ${pigweed_dir}/pw_rpc/nanopb/public +) +endif (matter_enable_rpc) + +target_include_directories( + ${chip_main} + PUBLIC + ${inc_path} + ${chip_dir}/zzz_generated/all-clusters-minimal-app + ${chip_dir}/zzz_generated/all-clusters-minimal-app/zap-generated + ${chip_dir}/zzz_generated/app-common + ${chip_dir}/examples/all-clusters-app/all-clusters-common + ${chip_dir}/examples/all-clusters-app/all-clusters-common/include + ${chip_dir}/examples/all-clusters-minimal-app/ameba/main/include + ${chip_dir_output}/gen/include + ${chip_dir}/src/include/ + ${chip_dir}/src/lib/ + ${chip_dir}/src/ + ${chip_dir}/third_party/nlassert/repo/include/ + ${chip_dir}/src/app/ + ${chip_dir}/src/app/util/ + ${chip_dir}/src/app/server/ + ${chip_dir}/src/controller/data_model + ${chip_dir}/third_party/nlio/repo/include/ + ${chip_dir}/third_party/nlunit-test/repo/src +) + +if (matter_enable_rpc) +target_link_libraries(${chip_main} PUBLIC + attributes_service.nanopb_rpc + button_service.nanopb_rpc + device_service.nanopb_rpc + lighting_service.nanopb_rpc + locking_service.nanopb_rpc + wifi_service.nanopb_rpc + pw_checksum + pw_hdlc + pw_log + pw_rpc.server + pw_trace_tokenized + pw_trace_tokenized.trace_buffer + pw_trace_tokenized.rpc_service + pw_trace_tokenized.protos.nanopb_rpc + PwRpc +) + +link_directories( + ${chip_dir_output}/lib +) +endif (matter_enable_rpc) + +list( + APPEND chip_main_flags + + -DINET_CONFIG_ENABLE_IPV4=0 + -DCHIP_PROJECT=1 + -DCHIP_DEVICE_LAYER_TARGET=Ameba + -DUSE_ZAP_CONFIG + -DCHIP_HAVE_CONFIG_H + -DMBEDTLS_CONFIG_FILE= + -DMATTER_ALL_CLUSTERS_APP=1 +) + +if (matter_enable_rpc) +list( + APPEND chip_main_flags + + -DPW_RPC_ATTRIBUTE_SERVICE=1 + -DPW_RPC_BUTTON_SERVICE=1 + -DPW_RPC_DEVICE_SERVICE=1 + -DPW_RPC_LIGHTING_SERVICE=1 + -DPW_RPC_LOCKING_SERVICE=1 + -DCONFIG_ENABLE_PW_RPC=1 +) +endif (matter_enable_rpc) + +if (matter_enable_ota_requestor) +list( + APPEND chip_main_flags + + -DCONFIG_ENABLE_OTA_REQUESTOR=1 +) +endif (matter_enable_ota_requestor) + +list( + APPEND chip_main_cpp_flags + + -Wno-unused-parameter + -std=gnu++11 + -std=c++14 + -fno-rtti +) +target_compile_definitions(${chip_main} PRIVATE ${chip_main_flags} ) +target_compile_options(${chip_main} PRIVATE ${chip_main_cpp_flags}) + +# move static library post build command +add_custom_command( + TARGET ${chip_main} + POST_BUILD + COMMAND cp lib${chip_main}.a ${CMAKE_CURRENT_SOURCE_DIR}/lib/application +) diff --git a/examples/all-clusters-minimal-app/ameba/main/CHIPDeviceManager.cpp b/examples/all-clusters-minimal-app/ameba/main/CHIPDeviceManager.cpp new file mode 100644 index 00000000000000..4c1b55fbddb9fc --- /dev/null +++ b/examples/all-clusters-minimal-app/ameba/main/CHIPDeviceManager.cpp @@ -0,0 +1,91 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +/** + * @file + * This file implements the CHIP Device Interface that is used by + * applications to interact with the CHIP stack + * + */ + +#include + +#include "CHIPDeviceManager.h" +#include +#include +#include +#include +#include + +using namespace ::chip; + +namespace chip { + +namespace DeviceManager { + +using namespace ::chip::DeviceLayer; + +void CHIPDeviceManager::CommonDeviceEventHandler(const ChipDeviceEvent * event, intptr_t arg) +{ + CHIPDeviceManagerCallbacks * cb = reinterpret_cast(arg); + if (cb != nullptr) + { + cb->DeviceEventCallback(event, reinterpret_cast(cb)); + } +} + +CHIP_ERROR CHIPDeviceManager::Init(CHIPDeviceManagerCallbacks * cb) +{ + CHIP_ERROR err; + mCB = cb; + + err = Platform::MemoryInit(); + SuccessOrExit(err); + + // Initialize the CHIP stack. + err = PlatformMgr().InitChipStack(); + SuccessOrExit(err); + + if (CONFIG_NETWORK_LAYER_BLE) + { + ConnectivityMgr().SetBLEAdvertisingEnabled(true); + } + + // Register a function to receive events from the CHIP device layer. Note that calls to + // this function will happen on the CHIP event loop thread, not the app_main thread. + PlatformMgr().AddEventHandler(CHIPDeviceManager::CommonDeviceEventHandler, reinterpret_cast(cb)); + + // Start a task to run the CHIP Device event loop. + err = PlatformMgr().StartEventLoopTask(); + SuccessOrExit(err); + +exit: + return err; +} +} // namespace DeviceManager +} // namespace chip + +void MatterPostAttributeChangeCallback(const chip::app::ConcreteAttributePath & path, uint8_t type, uint16_t size, uint8_t * value) +{ + chip::DeviceManager::CHIPDeviceManagerCallbacks * cb = + chip::DeviceManager::CHIPDeviceManager::GetInstance().GetCHIPDeviceManagerCallbacks(); + if (cb != nullptr) + { + cb->PostAttributeChangeCallback(path.mEndpointId, path.mClusterId, path.mAttributeId, type, size, value); + } +} diff --git a/examples/all-clusters-minimal-app/ameba/main/DeviceCallbacks.cpp b/examples/all-clusters-minimal-app/ameba/main/DeviceCallbacks.cpp new file mode 100644 index 00000000000000..8f18f730999cde --- /dev/null +++ b/examples/all-clusters-minimal-app/ameba/main/DeviceCallbacks.cpp @@ -0,0 +1,168 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +/** + * @file DeviceCallbacks.cpp + * + * Implements all the callbacks to the application from the CHIP Stack + * + **/ +#include "DeviceCallbacks.h" + +#include "CHIPDeviceManager.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "Globals.h" +#include "LEDWidget.h" + +static const char * TAG = "app-devicecallbacks"; + +using namespace ::chip; +using namespace ::chip::Inet; +using namespace ::chip::System; +using namespace ::chip::DeviceLayer; +using namespace ::chip::DeviceManager; +using namespace ::chip::Logging; + +uint32_t identifyTimerCount; +constexpr uint32_t kIdentifyTimerDelayMS = 250; + +void DeviceCallbacks::DeviceEventCallback(const ChipDeviceEvent * event, intptr_t arg) +{ + switch (event->Type) + { + case DeviceEventType::kInternetConnectivityChange: + OnInternetConnectivityChange(event); + break; + + case DeviceEventType::kSessionEstablished: + OnSessionEstablished(event); + break; + case DeviceEventType::kInterfaceIpAddressChanged: + if ((event->InterfaceIpAddressChanged.Type == InterfaceIpChangeType::kIpV4_Assigned) || + (event->InterfaceIpAddressChanged.Type == InterfaceIpChangeType::kIpV6_Assigned)) + { + // MDNS server restart on any ip assignment: if link local ipv6 is configured, that + // will not trigger a 'internet connectivity change' as there is no internet + // connectivity. MDNS still wants to refresh its listening interfaces to include the + // newly selected address. + chip::app::DnssdServer::Instance().StartServer(); + } + break; + } +} + +void DeviceCallbacks::PostAttributeChangeCallback(EndpointId endpointId, ClusterId clusterId, AttributeId attributeId, uint8_t type, + uint16_t size, uint8_t * value) +{ + switch (clusterId) + { + case ZCL_ON_OFF_CLUSTER_ID: + OnOnOffPostAttributeChangeCallback(endpointId, attributeId, value); + break; + + case ZCL_IDENTIFY_CLUSTER_ID: + OnIdentifyPostAttributeChangeCallback(endpointId, attributeId, value); + break; + + default: + break; + } +} + +void DeviceCallbacks::OnInternetConnectivityChange(const ChipDeviceEvent * event) +{ + if (event->InternetConnectivityChange.IPv4 == kConnectivity_Established) + { + ChipLogProgress(DeviceLayer, "IPv4 Server ready..."); + chip::app::DnssdServer::Instance().StartServer(); + } + else if (event->InternetConnectivityChange.IPv4 == kConnectivity_Lost) + { + ChipLogProgress(DeviceLayer, "Lost IPv4 connectivity..."); + } + if (event->InternetConnectivityChange.IPv6 == kConnectivity_Established) + { + ChipLogProgress(DeviceLayer, "IPv6 Server ready..."); + chip::app::DnssdServer::Instance().StartServer(); + } + else if (event->InternetConnectivityChange.IPv6 == kConnectivity_Lost) + { + ChipLogProgress(DeviceLayer, "Lost IPv6 connectivity..."); + } +} + +void DeviceCallbacks::OnSessionEstablished(const ChipDeviceEvent * event) +{ + if (event->SessionEstablished.IsCommissioner) + { + ChipLogProgress(DeviceLayer, "Commissioner detected!"); + } +} + +void DeviceCallbacks::OnOnOffPostAttributeChangeCallback(EndpointId endpointId, AttributeId attributeId, uint8_t * value) +{ + VerifyOrExit(attributeId == ZCL_ON_OFF_ATTRIBUTE_ID, + ChipLogError(DeviceLayer, TAG, "Unhandled Attribute ID: '0x%04x", attributeId)); + VerifyOrExit(endpointId == 1 || endpointId == 2, + ChipLogError(DeviceLayer, TAG, "Unexpected EndPoint ID: `0x%02x'", endpointId)); + + // At this point we can assume that value points to a bool value. + statusLED1.Set(*value); + +exit: + return; +} + +void IdentifyTimerHandler(Layer * systemLayer, void * appState, CHIP_ERROR error) +{ + if (identifyTimerCount) + { + identifyTimerCount--; + } +} + +void DeviceCallbacks::OnIdentifyPostAttributeChangeCallback(EndpointId endpointId, AttributeId attributeId, uint8_t * value) +{ + VerifyOrExit(attributeId == ZCL_IDENTIFY_TIME_ATTRIBUTE_ID, + ChipLogError(DeviceLayer, "[%s] Unhandled Attribute ID: '0x%04x", TAG, attributeId)); + VerifyOrExit(endpointId == 1, ChipLogError(DeviceLayer, "[%s] Unexpected EndPoint ID: `0x%02x'", TAG, endpointId)); + + // timerCount represents the number of callback executions before we stop the timer. + // value is expressed in seconds and the timer is fired every 250ms, so just multiply value by 4. + // Also, we want timerCount to be odd number, so the ligth state ends in the same state it starts. + identifyTimerCount = (*value) * 4; +exit: + return; +} + +bool emberAfBasicClusterMfgSpecificPingCallback(chip::app::CommandHandler * commandObj) +{ + emberAfSendDefaultResponse(emberAfCurrentCommand(), EMBER_ZCL_STATUS_SUCCESS); + return true; +} diff --git a/examples/all-clusters-minimal-app/ameba/main/DsoHack.cpp b/examples/all-clusters-minimal-app/ameba/main/DsoHack.cpp new file mode 100644 index 00000000000000..6fc5d7a63307c5 --- /dev/null +++ b/examples/all-clusters-minimal-app/ameba/main/DsoHack.cpp @@ -0,0 +1,20 @@ +/* + * 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. + */ + +// This hack is needed because Ameba SDK is not linking against libstdc++ correctly. +extern "C" { +void * __dso_handle = 0; +} diff --git a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/AppDelegate.h b/examples/all-clusters-minimal-app/ameba/main/Globals.cpp old mode 100644 new mode 100755 similarity index 80% rename from examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/AppDelegate.h rename to examples/all-clusters-minimal-app/ameba/main/Globals.cpp index 841d43e0dbe390..71d9b6c9f0b940 --- a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/AppDelegate.h +++ b/examples/all-clusters-minimal-app/ameba/main/Globals.cpp @@ -1,6 +1,7 @@ -/** +/* * - * Copyright (c) 2020-2022 Project CHIP Authors + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,8 +16,6 @@ * limitations under the License. */ -#import +#include "Globals.h" -@interface AppDelegate : UIResponder - -@end +LEDWidget statusLED1; diff --git a/examples/all-clusters-minimal-app/ameba/main/LEDWidget.cpp b/examples/all-clusters-minimal-app/ameba/main/LEDWidget.cpp new file mode 100755 index 00000000000000..a050f4a4d4f0f0 --- /dev/null +++ b/examples/all-clusters-minimal-app/ameba/main/LEDWidget.cpp @@ -0,0 +1,60 @@ +/* + * + * Copyright (c) 2018 Nest Labs, Inc. + * All rights reserved. + * + * 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. + */ + +/** + * @file LEDWidget.cpp + * + * Implements an LED Widget controller that is usually tied to a GPIO + * It also updates the display widget if it's enabled + */ + +#include "LEDWidget.h" + +gpio_t gpio_led; + +void LEDWidget::Init(PinName gpioNum) +{ + + mGPIONum = gpioNum; + mState = false; + + if (gpioNum != (PinName) NC) + { + // Init LED control pin + gpio_init(&gpio_led, gpioNum); + gpio_dir(&gpio_led, PIN_OUTPUT); // Direction: Output + gpio_mode(&gpio_led, PullNone); // No pull + gpio_write(&gpio_led, mState); + } +} + +void LEDWidget::Set(bool state) +{ + DoSet(state); +} + +void LEDWidget::DoSet(bool state) +{ + bool stateChange = (mState != state); + mState = state; + + if (stateChange) + { + gpio_write(&gpio_led, state); + } +} diff --git a/examples/all-clusters-minimal-app/ameba/main/chipinterface.cpp b/examples/all-clusters-minimal-app/ameba/main/chipinterface.cpp new file mode 100644 index 00000000000000..306d9c36717e00 --- /dev/null +++ b/examples/all-clusters-minimal-app/ameba/main/chipinterface.cpp @@ -0,0 +1,205 @@ +/* + * + * Copyright (c) 2020 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. + */ + +#include + +#include "CHIPDeviceManager.h" +#include "DeviceCallbacks.h" +#include "Globals.h" +#include "LEDWidget.h" +#include "chip_porting.h" +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if CONFIG_ENABLE_OTA_REQUESTOR +#include "app/clusters/ota-requestor/DefaultOTARequestorStorage.h" +#include +#include +#include +#include +#include +#include +#endif + +#if CONFIG_ENABLE_PW_RPC +#include "Rpc.h" +#endif + +using namespace ::chip; +using namespace ::chip::Credentials; +using namespace ::chip::DeviceManager; +using namespace ::chip::DeviceLayer; +using namespace ::chip::System; + +namespace { // Network Commissioning +constexpr EndpointId kNetworkCommissioningEndpointMain = 0; +constexpr EndpointId kNetworkCommissioningEndpointSecondary = 0xFFFE; + +app::Clusters::NetworkCommissioning::Instance + sWiFiNetworkCommissioningInstance(kNetworkCommissioningEndpointMain /* Endpoint Id */, + &(NetworkCommissioning::AmebaWiFiDriver::GetInstance())); +} // namespace + +void NetWorkCommissioningInstInit() +{ + sWiFiNetworkCommissioningInstance.Init(); + + // We only have network commissioning on endpoint 0. + emberAfEndpointEnableDisable(kNetworkCommissioningEndpointSecondary, false); +} + +Identify gIdentify0 = { + chip::EndpointId{ 0 }, + [](Identify *) { ChipLogProgress(Zcl, "onIdentifyStart"); }, + [](Identify *) { ChipLogProgress(Zcl, "onIdentifyStop"); }, + EMBER_ZCL_IDENTIFY_IDENTIFY_TYPE_VISIBLE_LED, +}; + +Identify gIdentify1 = { + chip::EndpointId{ 1 }, + [](Identify *) { ChipLogProgress(Zcl, "onIdentifyStart"); }, + [](Identify *) { ChipLogProgress(Zcl, "onIdentifyStop"); }, + EMBER_ZCL_IDENTIFY_IDENTIFY_TYPE_VISIBLE_LED, +}; + +#ifdef CONFIG_PLATFORM_8721D +#define STATUS_LED_GPIO_NUM PB_5 +#elif defined(CONFIG_PLATFORM_8710C) +#define STATUS_LED_GPIO_NUM PA_20 +#else +#define STATUS_LED_GPIO_NUM NC +#endif + +static DeviceCallbacks EchoCallbacks; + +#if CONFIG_ENABLE_OTA_REQUESTOR +DefaultOTARequestor gRequestorCore; +DefaultOTARequestorStorage gRequestorStorage; +ExtendedOTARequestorDriver gRequestorUser; +BDXDownloader gDownloader; +AmebaOTAImageProcessor gImageProcessor; +chip::ota::DefaultOTARequestorUserConsent gUserConsentProvider; +static chip::ota::UserConsentState gUserConsentState = chip::ota::UserConsentState::kGranted; +#endif + +#if CONFIG_ENABLE_OTA_REQUESTOR +extern "C" void amebaQueryImageCmdHandler() +{ + ChipLogProgress(DeviceLayer, "Calling amebaQueryImageCmdHandler"); + PlatformMgr().ScheduleWork([](intptr_t) { GetRequestorInstance()->TriggerImmediateQuery(); }); +} + +extern "C" void amebaApplyUpdateCmdHandler() +{ + ChipLogProgress(DeviceLayer, "Calling amebaApplyUpdateCmdHandler"); + PlatformMgr().ScheduleWork([](intptr_t) { GetRequestorInstance()->ApplyUpdate(); }); +} + +static void InitOTARequestor(void) +{ + // Initialize and interconnect the Requestor and Image Processor objects -- START + SetRequestorInstance(&gRequestorCore); + + gRequestorStorage.Init(chip::Server::GetInstance().GetPersistentStorage()); + + // Set server instance used for session establishment + gRequestorCore.Init(chip::Server::GetInstance(), gRequestorStorage, gRequestorUser, gDownloader); + + gImageProcessor.SetOTADownloader(&gDownloader); + + // Connect the Downloader and Image Processor objects + gDownloader.SetImageProcessorDelegate(&gImageProcessor); + gRequestorUser.Init(&gRequestorCore, &gImageProcessor); + + if (gUserConsentState != chip::ota::UserConsentState::kUnknown) + { + gUserConsentProvider.SetUserConsentState(gUserConsentState); + gRequestorUser.SetUserConsentDelegate(&gUserConsentProvider); + } + + // Initialize and interconnect the Requestor and Image Processor objects -- END +} +#endif // CONFIG_ENABLE_OTA_REQUESTOR + +static void InitServer(intptr_t context) +{ + // Init ZCL Data Model and CHIP App Server + static chip::CommonCaseDeviceServerInitParams initParams; + initParams.InitializeStaticResourcesBeforeServerInit(); + chip::Server::GetInstance().Init(initParams); + + // Initialize device attestation config + SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider()); + NetWorkCommissioningInstInit(); + +#if CONFIG_ENABLE_OTA_REQUESTOR + InitOTARequestor(); +#endif + + if (RTW_SUCCESS != wifi_is_connected_to_ap()) + { + // QR code will be used with CHIP Tool + PrintOnboardingCodes(chip::RendezvousInformationFlags(chip::RendezvousInformationFlag::kBLE)); + } +} + +extern "C" void ChipTest(void) +{ + ChipLogProgress(DeviceLayer, "All Clusters Demo!"); + CHIP_ERROR err = CHIP_NO_ERROR; + +#if CONFIG_ENABLE_PW_RPC + chip::rpc::Init(); +#endif + + initPref(); + + CHIPDeviceManager & deviceMgr = CHIPDeviceManager::GetInstance(); + + err = deviceMgr.Init(&EchoCallbacks); + if (err != CHIP_NO_ERROR) + { + ChipLogError(DeviceLayer, "DeviceManagerInit() - ERROR!\r\n"); + } + else + { + ChipLogProgress(DeviceLayer, "DeviceManagerInit() - OK\r\n"); + } + + chip::DeviceLayer::PlatformMgr().ScheduleWork(InitServer, 0); + + statusLED1.Init(STATUS_LED_GPIO_NUM); +} + +bool lowPowerClusterSleep() +{ + return true; +} diff --git a/examples/all-clusters-minimal-app/ameba/main/include/CHIPDeviceManager.h b/examples/all-clusters-minimal-app/ameba/main/include/CHIPDeviceManager.h new file mode 100644 index 00000000000000..4a4efd1d4d39dd --- /dev/null +++ b/examples/all-clusters-minimal-app/ameba/main/include/CHIPDeviceManager.h @@ -0,0 +1,124 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +/** + * @file + * This file contains definitions for the CHIP DeviceManager Interface + * + * This object will co-ordinate multiple activities such as + * initialisation, rendezvous, session mgmt and other such + * activities within the CHIP stack. This is a singleton object. + */ + +#pragma once + +#include +#include +#include + +#include + +#include +#include + +#include "af-types.h" + +namespace chip { +namespace DeviceManager { + +/** + * @brief + * This class provides a skeleton for all the callback functions. The functions will be + * called by other objects within the CHIP stack for specific events. + * Applications interested in receiving specific callbacks can specialize this class and handle + * these events in their implementation of this class. + */ +class CHIPDeviceManagerCallbacks +{ +public: + /** + * @brief + * Called when CHIP Device events (PublicEventTypes) are triggered. + * + * @param event ChipDeviceEvent that occurred + * @param arg arguments specific to the event, if any + */ + virtual void DeviceEventCallback(const chip::DeviceLayer::ChipDeviceEvent * event, intptr_t arg) {} + + /** + * @brief + * Called after an attribute has been changed + * + * @param endpoint endpoint id + * @param clusterID cluster id + * @param attributeId attribute id that was changed + * @param manufacturerCode manufacturer code + * @param type attribute type + * @param size size of the attribute + * @param value pointer to the new value + */ + virtual void PostAttributeChangeCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, chip::AttributeId attributeId, + uint8_t type, uint16_t size, uint8_t * value) + {} + virtual ~CHIPDeviceManagerCallbacks() {} +}; + +/** + * @brief + * A common class that drives other components of the CHIP stack + */ +class DLL_EXPORT CHIPDeviceManager +{ +public: + CHIPDeviceManager(const CHIPDeviceManager &) = delete; + CHIPDeviceManager(const CHIPDeviceManager &&) = delete; + CHIPDeviceManager & operator=(const CHIPDeviceManager &) = delete; + + static CHIPDeviceManager & GetInstance() + { + static CHIPDeviceManager instance; + return instance; + } + + /** + * @brief + * Initialise CHIPDeviceManager + * + * @param cb Application's instance of the CHIPDeviceManagerCallbacks for consuming events + */ + CHIP_ERROR Init(CHIPDeviceManagerCallbacks * cb); + + /** + * @brief + * Fetch a pointer to the registered CHIPDeviceManagerCallbacks object. + * + */ + CHIPDeviceManagerCallbacks * GetCHIPDeviceManagerCallbacks() { return mCB; } + + /** + * Use internally for registration of the ChipDeviceEvents + */ + static void CommonDeviceEventHandler(const chip::DeviceLayer::ChipDeviceEvent * event, intptr_t arg); + +private: + CHIPDeviceManagerCallbacks * mCB = nullptr; + CHIPDeviceManager() {} +}; + +} // namespace DeviceManager +} // namespace chip diff --git a/examples/all-clusters-minimal-app/ameba/main/include/DeviceCallbacks.h b/examples/all-clusters-minimal-app/ameba/main/include/DeviceCallbacks.h new file mode 100644 index 00000000000000..003b6e700db0eb --- /dev/null +++ b/examples/all-clusters-minimal-app/ameba/main/include/DeviceCallbacks.h @@ -0,0 +1,45 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +/** + * @file DeviceCallbacks.h + * + * Implementations for the DeviceManager callbacks for this application + * + **/ + +#pragma once + +#include "CHIPDeviceManager.h" +#include +#include +#include + +class DeviceCallbacks : public chip::DeviceManager::CHIPDeviceManagerCallbacks +{ +public: + void DeviceEventCallback(const chip::DeviceLayer::ChipDeviceEvent * event, intptr_t arg) override; + void PostAttributeChangeCallback(chip::EndpointId endpointId, chip::ClusterId clusterId, chip::AttributeId attributeId, + uint8_t type, uint16_t size, uint8_t * value) override; + +private: + void OnInternetConnectivityChange(const chip::DeviceLayer::ChipDeviceEvent * event); + void OnSessionEstablished(const chip::DeviceLayer::ChipDeviceEvent * event); + void OnOnOffPostAttributeChangeCallback(chip::EndpointId endpointId, chip::AttributeId attributeId, uint8_t * value); + void OnIdentifyPostAttributeChangeCallback(chip::EndpointId endpointId, chip::AttributeId attributeId, uint8_t * value); +}; diff --git a/examples/tv-casting-app/darwin/darwin/AppDelegate.h b/examples/all-clusters-minimal-app/ameba/main/include/Globals.h old mode 100644 new mode 100755 similarity index 80% rename from examples/tv-casting-app/darwin/darwin/AppDelegate.h rename to examples/all-clusters-minimal-app/ameba/main/include/Globals.h index 841d43e0dbe390..4033f2d0a996ee --- a/examples/tv-casting-app/darwin/darwin/AppDelegate.h +++ b/examples/all-clusters-minimal-app/ameba/main/include/Globals.h @@ -1,6 +1,7 @@ -/** +/* * - * Copyright (c) 2020-2022 Project CHIP Authors + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,8 +16,8 @@ * limitations under the License. */ -#import +#pragma once -@interface AppDelegate : UIResponder +#include "LEDWidget.h" -@end +extern LEDWidget statusLED1; diff --git a/examples/all-clusters-minimal-app/ameba/main/include/LEDWidget.h b/examples/all-clusters-minimal-app/ameba/main/include/LEDWidget.h new file mode 100755 index 00000000000000..9f1456daa7492d --- /dev/null +++ b/examples/all-clusters-minimal-app/ameba/main/include/LEDWidget.h @@ -0,0 +1,158 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#pragma once + +#include + +#ifdef CONFIG_PLATFORM_8710C +#include "gpio_api.h" +#include "rtl8710c_pin_name.h" + +#else + +typedef enum +{ + PORT_A = 0, + PORT_B = 1, +} GPIO_PORT; + +typedef enum +{ + PIN_INPUT = 0, + PIN_OUTPUT +} PinDirection; + +typedef enum +{ + PullNone = 0, // IN HIGHZ + PullUp = 1, + PullDown = 2, + PullDefault = PullNone +} PinMode; + +/* (((port)<<5)|(pin)) */ +typedef enum +{ + PA_0 = (PORT_A << 5 | 0), + PA_1 = (PORT_A << 5 | 1), + PA_2 = (PORT_A << 5 | 2), + PA_3 = (PORT_A << 5 | 3), + PA_4 = (PORT_A << 5 | 4), + PA_5 = (PORT_A << 5 | 5), + PA_6 = (PORT_A << 5 | 6), + PA_7 = (PORT_A << 5 | 7), + PA_8 = (PORT_A << 5 | 8), + PA_9 = (PORT_A << 5 | 9), + PA_10 = (PORT_A << 5 | 10), + PA_11 = (PORT_A << 5 | 11), + PA_12 = (PORT_A << 5 | 12), + PA_13 = (PORT_A << 5 | 13), + PA_14 = (PORT_A << 5 | 14), + PA_15 = (PORT_A << 5 | 15), + PA_16 = (PORT_A << 5 | 16), + PA_17 = (PORT_A << 5 | 17), + PA_18 = (PORT_A << 5 | 18), + PA_19 = (PORT_A << 5 | 19), + PA_20 = (PORT_A << 5 | 20), + PA_21 = (PORT_A << 5 | 21), + PA_22 = (PORT_A << 5 | 22), + PA_23 = (PORT_A << 5 | 23), + PA_24 = (PORT_A << 5 | 24), + PA_25 = (PORT_A << 5 | 25), + PA_26 = (PORT_A << 5 | 26), + PA_27 = (PORT_A << 5 | 27), + PA_28 = (PORT_A << 5 | 28), + PA_29 = (PORT_A << 5 | 29), + PA_30 = (PORT_A << 5 | 30), + PA_31 = (PORT_A << 5 | 31), + + PB_0 = (PORT_B << 5 | 0), + PB_1 = (PORT_B << 5 | 1), + PB_2 = (PORT_B << 5 | 2), + PB_3 = (PORT_B << 5 | 3), + PB_4 = (PORT_B << 5 | 4), + PB_5 = (PORT_B << 5 | 5), + PB_6 = (PORT_B << 5 | 6), + PB_7 = (PORT_B << 5 | 7), + PB_8 = (PORT_B << 5 | 8), + PB_9 = (PORT_B << 5 | 9), + PB_10 = (PORT_B << 5 | 10), + PB_11 = (PORT_B << 5 | 11), + PB_12 = (PORT_B << 5 | 12), + PB_13 = (PORT_B << 5 | 13), + PB_14 = (PORT_B << 5 | 14), + PB_15 = (PORT_B << 5 | 15), + PB_16 = (PORT_B << 5 | 16), + PB_17 = (PORT_B << 5 | 17), + PB_18 = (PORT_B << 5 | 18), + PB_19 = (PORT_B << 5 | 19), + PB_20 = (PORT_B << 5 | 20), + PB_21 = (PORT_B << 5 | 21), + PB_22 = (PORT_B << 5 | 22), + PB_23 = (PORT_B << 5 | 23), + PB_24 = (PORT_B << 5 | 24), + PB_25 = (PORT_B << 5 | 25), + PB_26 = (PORT_B << 5 | 26), + PB_27 = (PORT_B << 5 | 27), + PB_28 = (PORT_B << 5 | 28), + PB_29 = (PORT_B << 5 | 29), + PB_30 = (PORT_B << 5 | 30), + PB_31 = (PORT_B << 5 | 31), + + VBAT_MEAS = (0x7 << 5 | 2), + AD_0 = PB_4, // CH0 + AD_1 = PB_5, // CH1 + AD_2 = PB_6, // CH2 + AD_3 = PB_7, // CH3 + AD_4 = PB_1, // CH4 + AD_5 = PB_2, // CH5 + AD_6 = PB_3, // CH6 + AD_7 = VBAT_MEAS, // CH7 + + // Not connected + NC = (uint32_t) 0xFFFFFFFF +} PinName; + +typedef struct gpio_s +{ + PinName pin; +} gpio_t; + +#endif + +typedef struct gpio_s gpio_t; + +extern "C" void gpio_init(gpio_t * obj, PinName pin); +extern "C" uint32_t gpio_set(PinName pin); +extern "C" void gpio_mode(gpio_t * obj, PinMode mode); +extern "C" void gpio_dir(gpio_t * obj, PinDirection direction); +extern "C" void gpio_write(gpio_t * obj, int value); +extern "C" int gpio_read(gpio_t * obj); + +class LEDWidget +{ +public: + void Init(PinName gpioNum); + void Set(bool state); + +private: + PinName mGPIONum; + bool mState; + void DoSet(bool state); +}; diff --git a/examples/ipv6only-app/esp32/third_party/connectedhomeip b/examples/all-clusters-minimal-app/ameba/third_party/connectedhomeip similarity index 100% rename from examples/ipv6only-app/esp32/third_party/connectedhomeip rename to examples/all-clusters-minimal-app/ameba/third_party/connectedhomeip diff --git a/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/.gn b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/.gn new file mode 100644 index 00000000000000..3d48789e30ab3d --- /dev/null +++ b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/.gn @@ -0,0 +1,28 @@ +# Copyright (c) 2020 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. + +import("//build_overrides/build.gni") + +# The location of the build configuration file. +buildconfig = "${build_root}/config/BUILDCONFIG.gn" + +# CHIP uses angle bracket includes. +check_system_includes = true + +default_args = { + target_cpu = "arm" + target_os = "freertos" + + import("//args.gni") +} diff --git a/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/BUILD.gn b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/BUILD.gn new file mode 100644 index 00000000000000..9c870ec32fa84e --- /dev/null +++ b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/BUILD.gn @@ -0,0 +1,122 @@ +# Copyright (c) 2020 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. + +import("//build_overrides/build.gni") +import("//build_overrides/chip.gni") +import("//build_overrides/openthread.gni") +import("//build_overrides/ti_simplelink_sdk.gni") + +import("${build_root}/config/defaults.gni") + +import("${chip_root}/src/platform/device.gni") + +import("${ti_simplelink_sdk_build_root}/ti_simplelink_executable.gni") +import("${ti_simplelink_sdk_build_root}/ti_simplelink_sdk.gni") + +assert(current_os == "freertos") + +project_dir = "${chip_root}/examples/all-clusters-minimal-app/cc13x2x7_26x2x7" + +ti_simplelink_sdk("sdk") { + include_dirs = [ "${project_dir}/main/include" ] + public_configs = [ ":all-clusters-minimal-app_config" ] +} + +ti_sysconfig("sysconfig") { + sources = [ "${project_dir}/chip.syscfg" ] + + outputs = [ + "ti_devices_config.c", + "ti_radio_config.c", + "ti_radio_config.h", + "ti_drivers_config.c", + "ti_drivers_config.h", + "ti_ble_config.c", + "ti_ble_config.h", + "ti_dmm_application_policy.c", + "ti_dmm_application_policy.h", + + # disabled until upstream generation is aligned + #"tiop_config.h", + #"tiop_config.c", + + # not traditional source files + #"ti_utils_build_linker.cmd.genlibs", + #"syscfg_c.rov.xs", + #"ti_utils_runtime_model.gv", + #"ti_utils_runtime_Makefile", + #"ti_ble_app_config.opt", + #"ti_build_config.opt", + ] + + public_configs = [ ":sdk_dmm_config" ] + + cflags = [ + "-Wno-comment", + "@" + rebase_path("${target_gen_dir}/sysconfig/ti_ble_app_config.opt", + root_build_dir), + "@" + rebase_path("${target_gen_dir}/sysconfig/ti_build_config.opt", + root_build_dir), + ] +} + +ti_simplelink_executable("all-clusters-minimal-app") { + output_name = "chip-${ti_simplelink_board}-all-clusters-minimal-example.out" + + sources = [ + "${chip_root}/examples/all-clusters-app/all-clusters-common/src/binding-handler.cpp", + "${chip_root}/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp", + "${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-modes-manager.cpp", + "${project_dir}/main/AppTask.cpp", + "${project_dir}/main/ClusterManager.cpp", + "${project_dir}/main/Globals.cpp", + "${project_dir}/main/ZclCallbacks.cpp", + "${project_dir}/main/main.cpp", + ] + + deps = [ + ":sdk", + ":sysconfig", + "${chip_root}/examples/all-clusters-minimal-app/all-clusters-common", + "${chip_root}/src/lib", + ] + + if (chip_openthread_ftd) { + deps += [ "${chip_root}/third_party/openthread/repo:libopenthread-ftd" ] + } else { + deps += [ "${chip_root}/third_party/openthread/repo:libopenthread-mtd" ] + } + + include_dirs = [ + "${project_dir}", + "${project_dir}/main", + "${chip_root}/examples/all-clusters-app/all-clusters-common/include", + ] + + cflags = [ + "-Wno-implicit-fallthrough", + "-Wno-sign-compare", + "-Wconversion", + ] + + output_dir = root_out_dir +} + +group("cc13x2x7_26x2x7") { + deps = [ ":all-clusters-minimal-app" ] +} + +group("default") { + deps = [ ":cc13x2x7_26x2x7" ] +} diff --git a/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/README.md b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/README.md new file mode 100644 index 00000000000000..c23cf324afe8af --- /dev/null +++ b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/README.md @@ -0,0 +1,245 @@ +# Matter CC1352 CC2652 All-clusters Example Application + +An example application showing the use of [Matter][matter] on the Texas +Instruments CC13XX_26XX family of Wireless MCUs. + +--- + +- [Matter CC1352 CC2652 All Clusters Example Application](#matter-cc1352-cc2652-all-clusters-example-application) + - [Introduction](#introduction) + - [Device UI](#device-ui) + - [Building](#building) + - [Preparation](#preparation) + - [Compilation](#compilation) + - [Programming](#programming) + - [Code Composer Studio](#code-composer-studio) + - [UniFlash](#uniflash) + - [Viewing Logging Output](#viewing-logging-output) + - [Running the Example](#running-the-example) + - [Provisioning](#provisioning) + - [Bluetooth LE Advertising](#bluetooth-le-advertising) + - [Bluetooth LE Rendezvous](#bluetooth-le-rendezvous) + - [Matter Remote Commands](#matter-remote-commands) + - [TI Support](#ti-support) + +--- + +## Introduction + +![CC1352R1_LAUNCHXL](doc/images/cc1352r1_launchxl.jpg) + +The CC13XX_26XX all clusters example application provides the basis to query and +run commands for all currently implemented Matter clusters. This uses the +open-source Matter implementation and the Texas Instruments SimpleLink™ CC13XX +and CC26XX software development kit. + +This example is enabled to build for CC2652R7 devices. + +The all-clusters example is intended to serve both as a means to explore the +workings of Matter, as well as a template for creating real products based on +the Texas Instruments devices. + +## Device UI + +This example application has a simple User Interface to depict the state of the +various Matter clusters and the attribute changes associated with them. The user +LEDs on the LaunchPad are used for the onoff, levelcontrol and identify clusters +to provide a working demonstration of the cluster attribute changes. The Green +LED is used to represent attribute changes to endpoint 1 while the Red LED is +used to represent changes to endpoint 2. + +Short presses (less than 1000ms) of the user buttons are used currently unused +in the all-clusters application, but stubs are provided. + +Long presses (greater than 1000ms) of the user buttons are used for controlling +BLE advertisements. The left button (`BTN-1`) is used to disable advertisements +if they are enabled. The Right button (`BTN-2`) is used to enable +advertisements. + +## Building + +### Preparation + +Some initial setup is necessary for preparing the build environment. This +section will need to be done when migrating to new versions of the SDK. This +guide assumes that the environment is linux based, and recommends Ubuntu 20.04. + +- Download and install [SysConfig][sysconfig] ([recommended + version][sysconfig_recommended]). This can be done simply with the following + commands. + + ``` + $ cd ~ + $ wget https://software-dl.ti.com/ccs/esd/sysconfig/sysconfig-1.11.0_2225-setup.run + $ chmod +x sysconfig-1.11.0_2225-setup.run + $ ./sysconfig-1.11.0_2225-setup.run + ``` + +- Run the bootstrap script to setup the build environment. + + ``` + $ cd ~/connectedhomeip + $ source ./scripts/bootstrap.sh + + ``` + +### Compilation + +It is necessary to activate the environment in every new shell. Then run GN and +Ninja to build the executable. + +- Activate the build environment with the repository activate script. + + ``` + $ cd ~/connectedhomeip + $ source ./scripts/activate.sh + + ``` + +- Run the build to produce a default executable. By default on Linux both the + TI SimpleLink SDK and Sysconfig are located in a `ti` folder in the user's + home directory, and you must provide the absolute path to them. For example + `/home/username/ti/sysconfig_1.11.0`. On Windows the default directory is + `C:\ti`. Take note of this install path, as it will be used in the next + step. + + ``` + $ cd ~/connectedhomeip/examples/all-clusters-minimal-app/cc13x2x7_26x2x7 + $ gn gen out/debug --args="ti_sysconfig_root=\"$HOME/ti/sysconfig_1.11.0\"" + $ ninja -C out/debug + + ``` + +## Programming + +Loading the built image onto a LaunchPad is supported through two methods; +Uniflash and Code Composer Studio (CCS). UniFlash can be used to load the image. +Code Composer Studio can be used to load the image and debug the source code. + +### Code Composer Studio + +Programming with CCS will allow for a full debug environment within the IDE. +This is accomplished by creating a target connection to the XDS110 debugger and +starting a project-less debug session. The CCS IDE will attempt to find the +source files on the local machine based on the debug information embedded within +the ELF. CCS may prompt you to find the source code if the image was built on +another machine or the source code is located in a different location than is +recorded within the ELF. + +Download and install [Code Composer Studio][ccs]. + +First open CCS and create a new workspace. + +Create a target connection (sometimes called the CCXML) for your target SoC and +debugger as described in the [Manual Method][ccs_manual_method] section of the +CCS User's Guide. + +Next initiate a project-less debug session as described in the [Manual +Launch][ccs_manual_launch] section of the CCS User's Guide. + +CCS should switch to the debug view described in the [After +Launch][ccs_after_launch] section of the User's Guide. The SoC core will likely +be disconnected and symbols will not be loaded. Connect to the core as described +in the [Debug View][ccs_debug_view] section of the User's Guide. Once the core +is connected, use the `Load` button on the toolbar to load the ELF image. + +Note that the default configuration of the CCXML uses 2-wire cJTAG instead of +the full 4-wire JTAG connection to match the default jumper configuration of the +LaunchPad. + +### UniFlash + +Uniflash is Texas Instrument's uniform programming tool for embedded processors. +This will allow you to erase, flash, and inspect the SoC without setting up a +debugging environment. + +Download and install [UniFlash][uniflash]. + +First open UniFlash. Debug probes connected to the computer will usually be +displayed under the Detected Devices due to the automatic device detection +feature. If your device does not show up in this view it my be disconnected, or +you may have to create a New Configuration. If you already have a CCXML for your +SoC and debug connection you can use that in the section at the bottom. Once +your device is selected, click the `Start` button within the section to launch +the session. + +Select the ELF image to load on the device with the `Browse` button. This file +is placed in the `out/debug` folder by this guide and ends with the `*.out` file +extension. + +Finally click the `Load Image` button to load the executable image onto the +device. You should be able to see the log output over the XDS110 User UART. + +Note that programming the device through JTAG sets the Halt-in-Boot flag and may +cause issues when performing a software reset. This flag can be reset by +power-cycling the LaunchPad. + +## Viewing Logging Output + +By default the log output will be sent to the Application/User UART. Open a +terminal emulator to that port to see the output with the following options: + +| Parameter | Value | +| ------------ | -------- | +| Speed (baud) | `115200` | +| Data bits | `8` | +| Stop bits | `1` | +| Parity | `None` | +| Flow control | `None` | + +## Running the Example + +Once a device has been flashed with this example, it can now join and operate in +an existing Thread network. The following sections assume that a Thread network +is already active, and has at least one [OpenThread Border +Router][ot_border_router_setup]. + +For insight into what other components are needed to run this example, please +refer to our [Matter Getting Started Guide][matter-e2e-faq]. + +### Provisioning + +Interacting with the application begins by enabling BLE advertisements and then +pairing the device into a Thread network. + +#### Bluetooth LE Advertising + +To provision this example onto a Thread network, the device must be discoverable +over Bluetooth LE. BLE advertising is started by long pressing the right button +(greater than 1000ms), labeled `BTN-2` on the silkscreen. Once the device is +fully provisioned, BLE advertising will stop. + +#### Bluetooth LE Rendezvous + +Pairing this application with `ble-thread` can be done with any of the enabled +[CHIP Controller](../../../src/controller/README.md) applications. Use the +information printed on the console to aide in pairing the device. The controller +application can also be used to control the example app with the cluster +commands. + +## TI Support + +For technical support, please consider creating a post on TI's [E2E forum][e2e]. +Additionally, we welcome any feedback. + +[matter]: https://github.com/project-chip/connectedhomeip +[ccs]: https://www.ti.com/tool/CCSTUDIO +[ccs_after_launch]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#after-launch +[ccs_debug_view]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#debug-view +[ccs_manual_launch]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#manual-launch +[ccs_manual_method]: + https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html?configuration#manual-method +[cc1352r1_launchxl]: https://www.ti.com/tool/LAUNCHXL-CC1352R1 +[e2e]: https://e2e.ti.com/support/wireless-connectivity/zigbee-and-thread +[matter-e2e-faq]: + https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1082428/faq-cc2652r7-matter----getting-started-guide +[sysconfig]: https://www.ti.com/tool/SYSCONFIG +[sysconfig_recommended]: + https://software-dl.ti.com/ccs/esd/sysconfig/sysconfig-1.11.0_2225-setup.run +[ti_thread_dnd]: + https://www.ti.com/wireless-connectivity/thread/design-development.html +[ot_border_router_setup]: https://openthread.io/guides/border-router/build +[uniflash]: https://www.ti.com/tool/download/UNIFLASH diff --git a/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/args.gni b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/args.gni new file mode 100644 index 00000000000000..e7438af247a9c2 --- /dev/null +++ b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/args.gni @@ -0,0 +1,49 @@ +# Copyright (c) 2020 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. + +import("//build_overrides/chip.gni") +import("${chip_root}/examples/platform/cc13x2_26x2/args.gni") + +ti_simplelink_sdk_target = get_label_info(":sdk", "label_no_toolchain") +ti_simplelink_sysconfig_target = + get_label_info(":sysconfig", "label_no_toolchain") + +ti_simplelink_board = "LP_CC2652R7" + +# Size Optimizations +# use -Os instead of -Og, LWIP release build +optimize_debug_level = "s" +lwip_debug = false + +chip_enable_ota_requestor = false + +# Disable FTD Build for all-clusters app to save Flash +chip_openthread_ftd = false + +# Disable CHIP Logging +#chip_progress_logging = false +chip_detail_logging = false +chip_automation_logging = false + +# BLE options +chip_config_network_layer_ble = true + +# Disable lock tracking, since our FreeRTOS configuration does not set +# INCLUDE_xSemaphoreGetMutexHolder +chip_stack_lock_tracking = "none" + +matter_device_vid = "0xFFF1" +matter_device_pid = "0x8006" +matter_software_ver = "0x0001" +matter_software_ver_str = "1.0d1" diff --git a/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/build_overrides b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/build_overrides new file mode 120000 index 00000000000000..e578e73312ebd1 --- /dev/null +++ b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/build_overrides @@ -0,0 +1 @@ +../../build_overrides \ No newline at end of file diff --git a/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/chip.syscfg b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/chip.syscfg new file mode 100644 index 00000000000000..4bfc7e52cbd5c5 --- /dev/null +++ b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/chip.syscfg @@ -0,0 +1,194 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2020 Texas Instruments Incorporated + * All rights reserved. + * + * 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. + */ + + +/* Modules */ +var AESCCM = scripting.addModule("/ti/drivers/AESCCM"); +var AESECB = scripting.addModule("/ti/drivers/AESECB"); +var Button = scripting.addModule("/ti/drivers/apps/Button"); +var LED = scripting.addModule("/ti/drivers/apps/LED"); +var NVS = scripting.addModule("/ti/drivers/NVS"); +var RF = scripting.addModule("/ti/drivers/RF"); +var RFDesign = scripting.addModule("ti/devices/radioconfig/rfdesign"); +var RTOS = scripting.addModule("/ti/drivers/RTOS"); +var TRNG = scripting.addModule("/ti/drivers/TRNG"); +var Thread = scripting.addModule("/ti/thread/thread"); +var SHA2 = scripting.addModule("/ti/drivers/SHA2"); +var UART = scripting.addModule("/ti/drivers/UART"); +var ble = scripting.addModule("/ti/ble5stack/ble"); +var dmm = scripting.addModule("/ti/dmm/dmm"); +var AESCTRDRBG = scripting.addModule("/ti/drivers/AESCTRDRBG"); +var ECDH = scripting.addModule("/ti/drivers/ECDH"); + +/* Instances */ +var AESCCM1 = AESCCM.addInstance(); +var AESECB1 = AESECB.addInstance(); +var AESECB2 = AESECB.addInstance(); +var Button1 = Button.addInstance(); +var Button2 = Button.addInstance(); +var NVS1 = NVS.addInstance(); +var NVS2 = NVS.addInstance(); +var SHA21 = SHA2.addInstance(); +var LED1 = LED.addInstance(); +var LED2 = LED.addInstance(); +var TRNG1 = TRNG.addInstance(); +var TRNG2 = TRNG.addInstance(); +var TRNG3 = TRNG.addInstance(); +var UART1 = UART.addInstance(); +var AESCTRDRBG1 = AESCTRDRBG.addInstance(); +var ECDH1 = ECDH.addInstance(); + +AESCTRDRBG1.$name = "CONFIG_AESCTRDRBG_0"; +AESCTRDRBG1.aesctrObject.$name = "CONFIG_AESCTR_0"; + +AESCCM1.$name = "CONFIG_AESCCM0"; + +AESECB1.$name = "CONFIG_AESECB0"; +AESECB2.$name = "CONFIG_AESECB_1"; + +ECDH1.$name = "CONFIG_ECDH0"; + +/* RTOS */ +RTOS.name = "FreeRTOS"; + +/* Left Button */ +Button1.$name = "CONFIG_BTN_LEFT"; +Button1.$hardware = system.deviceData.board.components["BTN-1"]; +Button1.gpioPin.$name = "CONFIG_GPIO_BTN1"; +Button1.gpioPin.pull = "Pull Up"; +Button1.gpioPin.interruptTrigger = "Falling Edge"; + +/* Left Button */ +Button2.$name = "CONFIG_BTN_RIGHT"; +Button2.$hardware = system.deviceData.board.components["BTN-2"]; +Button2.gpioPin.$name = "CONFIG_GPIO_BTN2"; +Button2.gpioPin.pull = "Pull Up"; +Button2.gpioPin.interruptTrigger = "Falling Edge"; + +/* ======== CCFG ======== */ +var CCFG = scripting.addModule("/ti/devices/CCFG"); +const ccfgSettings = system.getScript("/ti/common/lprf_ccfg_settings.js").ccfgSettings; +for(var setting in ccfgSettings) +{ + CCFG[setting] = ccfgSettings[setting]; +} + +CCFG.enableCodeGeneration = true; + +/* NVS */ +NVS1.$name = "CONFIG_NVSINTERNAL"; + +NVS1.internalFlash.regionBase = 0xAA000; +NVS1.internalFlash.regionSize = 0x4000; + +NVS2.$name = "CONFIG_NVSEXTERNAL"; +NVS2.nvsType = "External"; // NVS Region Type +NVS2.$hardware = system.deviceData.board.components.MX25R8035F; + +/* RF */ +/* if an antenna component exists, assign it to the rf instance */ +if (system.deviceData.board && system.deviceData.board.components.RF) { + RF.$hardware = system.deviceData.board.components.RF; +} + +const rfDesignSettings = system.getScript("/ti/common/lprf_rf_design_settings.js").rfDesignSettings; +for(var setting in rfDesignSettings) +{ + RFDesign[setting] = rfDesignSettings[setting]; +} + +/* Red LED */ +LED1.$name = "CONFIG_LED_RED"; +LED1.$hardware = system.deviceData.board.components.LED_RED; +LED1.gpioPin.$name = "CONFIG_GPIO_RLED"; +LED1.gpioPin.mode = "Output"; +LED1.gpioPin.callbackFunction = ""; + +/* Green LED */ +LED2.$name = "CONFIG_LED_GREEN"; +LED2.$hardware = system.deviceData.board.components.LED_GREEN; +LED2.gpioPin.$name = "CONFIG_GPIO_GLED"; +LED2.gpioPin.mode = "Output"; +LED2.gpioPin.callbackFunction = ""; + +/* Debug UART */ +UART1.$hardware = system.deviceData.board.components.XDS110UART; +UART1.$name = "CONFIG_UART_DEBUG"; + +/* TRNG */ +TRNG1.$name = "CONFIG_TRNG_0"; +TRNG2.$name = "CONFIG_TRNG_1"; +TRNG3.$name = "CONFIG_TRNG_APP"; + +RTOS.name = "FreeRTOS"; + +/* BLE */ +ble.addressMode = "ADDRMODE_RP_WITH_PUBLIC_ID"; +ble.maxConnNum = 1; +ble.numOfAdvSets = 1; +ble.lockProject = true; +ble.oneLibSizeOpt = true; +ble.maxPDUSize = 255; +ble.radioConfig.codeExportConfig.$name = "ti_devices_radioconfig_code_export_param1"; +ble.connUpdateParamsPeripheral.$name = "ti_ble5stack_general_ble_conn_update_params0"; +ble.connUpdateParamsPeripheral.reqMinConnInt = 30; +ble.connUpdateParamsPeripheral.reqMaxConnInt = 50; + +ble.advSet1.$name = "ti_ble5stack_broadcaster_advertisement_set0"; +ble.advSet1.advParam1.$name = "ti_ble5stack_broadcaster_advertisement_params0"; +ble.advSet1.advParam1.primIntMin = 100; +ble.advSet1.advParam1.primIntMax = 200; + +/* DMM */ +dmm.project = "ti_thread_thermostat_remote_display"; +dmm.stackRoles = ["blePeripheral","threadFTD"]; +dmm.lockStackRoles = true; +dmm.numApplicationStates = 10; +dmm.applicationState0 = "ANY"; +dmm.applicationState1 = "DMMPOLICY_BLE_IDLE"; +dmm.applicationState2 = "DMMPOLICY_BLE_ADV"; +dmm.applicationState3 = "DMMPOLICY_BLE_CONNECTING"; +dmm.applicationState4 = "DMMPOLICY_BLE_HIGH_BANDWIDTH"; +dmm.applicationState5 = "DMMPOLICY_BLE_CONNECTED"; +dmm.applicationState6 = "DMMPOLICY_BLE_OAD"; +dmm.applicationState7 = "DMMPOLICY_THREAD_IDLE"; +dmm.applicationState8 = "DMMPOLICY_THREAD_LINK_EST"; +dmm.applicationState9 = "DMMPOLICY_THREAD_DATA"; +dmm.policyArray.create(4); +dmm.policyArray[0].$name = "ti_dmm_policy_dmm_policy0"; +dmm.policyArray[0].blePeripheral.$name = "ti_dmm_policy_stack_dmm_stack_ble0"; +dmm.policyArray[0].blePeripheral.applicationStates = ["applicationState6"]; +dmm.policyArray[0].threadFTD.$name = "ti_dmm_policy_stack_dmm_stack_thread0"; +dmm.policyArray[0].threadFTD.pause = "DMMPOLICY_PAUSED"; +dmm.policyArray[1].$name = "ti_dmm_policy_dmm_policy1"; +dmm.policyArray[1].blePeripheral.$name = "ti_dmm_policy_stack_dmm_stack_ble1"; +dmm.policyArray[1].blePeripheral.applicationStates = ["applicationState3","applicationState4"]; +dmm.policyArray[1].blePeripheral.weight = 25; +dmm.policyArray[1].blePeripheral.appliedActivity = ["DMMPOLICY_APPLIED_ACTIVITY_BLE_CONNECTION"]; +dmm.policyArray[1].threadFTD.$name = "ti_dmm_policy_stack_dmm_stack_thread1"; +dmm.policyArray[2].$name = "ti_dmm_policy_dmm_policy2"; +dmm.policyArray[2].blePeripheral.$name = "ti_dmm_policy_stack_dmm_stack_ble2"; +dmm.policyArray[2].threadFTD.$name = "ti_dmm_policy_stack_dmm_stack_thread2"; +dmm.policyArray[2].threadFTD.weight = 30; +dmm.policyArray[2].threadFTD.applicationStates = ["applicationState8"]; +dmm.policyArray[2].threadFTD.appliedActivity = ["DMMPOLICY_APPLIED_ACTIVITY_ALL"]; +dmm.policyArray[3].$name = "ti_dmm_policy_dmm_policy3"; +dmm.policyArray[3].blePeripheral.$name = "ti_dmm_policy_stack_dmm_stack_ble3"; +dmm.policyArray[3].threadFTD.$name = "ti_dmm_policy_stack_dmm_stack_thread3"; +dmm.policyArray[3].threadFTD.weight = 1; diff --git a/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/AppTask.cpp b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/AppTask.cpp new file mode 100644 index 00000000000000..f99dd873e2fd60 --- /dev/null +++ b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/AppTask.cpp @@ -0,0 +1,362 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2020 Texas Instruments Incorporated + * All rights reserved. + * + * 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. + */ + +#include "AppTask.h" +#include "AppConfig.h" +#include "AppEvent.h" +#include +#include + +#include "FreeRTOS.h" +#include "Globals.h" +#include +#include + +#include + +#include +#include + +#ifdef AUTO_PRINT_METRICS +#include +#endif +#include + +#include +#include + +/* syscfg */ +#include + +#define APP_TASK_STACK_SIZE (5000) +#define APP_TASK_PRIORITY 4 +#define APP_EVENT_QUEUE_SIZE 10 + +using namespace ::chip; +using namespace ::chip::Credentials; +using namespace ::chip::DeviceLayer; + +static TaskHandle_t sAppTaskHandle; +static QueueHandle_t sAppEventQueue; + +static Button_Handle sAppLeftHandle; +static Button_Handle sAppRightHandle; + +AppTask AppTask::sAppTask; + +constexpr EndpointId kNetworkCommissioningEndpointSecondary = 0xFFFE; + +#ifdef AUTO_PRINT_METRICS +static void printMetrics(void) +{ + chip::DeviceLayer::ThreadMetrics *threadMetricsOut, *currThread; + uint64_t heapFree, heapUsed; + + DiagnosticDataProviderImpl::GetDefaultInstance().GetCurrentHeapUsed(heapUsed); + DiagnosticDataProviderImpl::GetDefaultInstance().GetCurrentHeapFree(heapFree); + DiagnosticDataProviderImpl::GetDefaultInstance().GetThreadMetrics(&threadMetricsOut); + + PLAT_LOG("Heap Metrics\n Heap Free: %d Heap Used: %d", (uint32_t) heapFree, (uint32_t) heapUsed); + + PLAT_LOG("Thread Metrics\n"); + + currThread = threadMetricsOut; + while (currThread) + { + PLAT_LOG("Task Name: %s ID: %d Stack Free Min: %d", currThread->name, (uint32_t) currThread->id, + (uint32_t) currThread->stackFreeMinimum); + + currThread = currThread->Next; + } + + DiagnosticDataProviderImpl::GetDefaultInstance().ReleaseThreadMetrics(threadMetricsOut); +} +#endif + +void DeviceEventCallback(const ChipDeviceEvent * event, intptr_t arg) +{ + switch (event->Type) + { + case DeviceEventType::kSessionEstablished: { + if (event->SessionEstablished.IsCommissioner) + { + PLAT_LOG("Commissioning session established"); + } + } + break; + + case DeviceEventType::kCHIPoBLEConnectionEstablished: + PLAT_LOG("CHIPoBLE connection established"); + break; + + case DeviceEventType::kCHIPoBLEConnectionClosed: + PLAT_LOG("CHIPoBLE disconnected"); + break; + + case DeviceEventType::kCommissioningComplete: + PLAT_LOG("Commissioning complete"); + break; + } + +#ifdef AUTO_PRINT_METRICS + printMetrics(); +#endif +} + +int AppTask::StartAppTask() +{ + int ret = 0; + + sAppEventQueue = xQueueCreate(APP_EVENT_QUEUE_SIZE, sizeof(AppEvent)); + if (sAppEventQueue == NULL) + { + PLAT_LOG("Failed to allocate app event queue"); + while (1) + ; + } + + // Start App task. + if (xTaskCreate(AppTaskMain, "APP", APP_TASK_STACK_SIZE / sizeof(StackType_t), NULL, APP_TASK_PRIORITY, &sAppTaskHandle) != + pdPASS) + { + PLAT_LOG("Failed to create app task"); + while (1) + ; + } + return ret; +} + +int AppTask::Init() +{ + LED_Params ledParams; + Button_Params buttonParams; + + cc13x2_26x2LogInit(); + + // Initialize LEDs + PLAT_LOG("Initialize LEDs"); + LED_init(); + + LED_Params_init(&ledParams); // default PWM LED + sAppRedHandle = LED_open(CONFIG_LED_RED, &ledParams); + LED_setOff(sAppRedHandle); + + LED_Params_init(&ledParams); // default PWM LED + sAppGreenHandle = LED_open(CONFIG_LED_GREEN, &ledParams); + LED_setOff(sAppGreenHandle); + + // Initialize buttons + PLAT_LOG("Initialize buttons"); + Button_init(); + + Button_Params_init(&buttonParams); + buttonParams.buttonEventMask = Button_EV_CLICKED | Button_EV_LONGCLICKED; + buttonParams.longPressDuration = 1000U; // ms + sAppLeftHandle = Button_open(CONFIG_BTN_LEFT, &buttonParams); + Button_setCallback(sAppLeftHandle, ButtonLeftEventHandler); + + Button_Params_init(&buttonParams); + buttonParams.buttonEventMask = Button_EV_CLICKED | Button_EV_LONGCLICKED; + buttonParams.longPressDuration = 1000U; // ms + sAppRightHandle = Button_open(CONFIG_BTN_RIGHT, &buttonParams); + Button_setCallback(sAppRightHandle, ButtonRightEventHandler); + + // Init Chip memory management before the stack + Platform::MemoryInit(); + + CHIP_ERROR ret = PlatformMgr().InitChipStack(); + if (ret != CHIP_NO_ERROR) + { + PLAT_LOG("PlatformMgr().InitChipStack() failed"); + while (1) + ; + } + + ret = ThreadStackMgr().InitThreadStack(); + if (ret != CHIP_NO_ERROR) + { + PLAT_LOG("ThreadStackMgr().InitThreadStack() failed"); + while (1) + ; + } + + ret = ConnectivityMgr().SetThreadDeviceType(ConnectivityManager::kThreadDeviceType_MinimalEndDevice); + if (ret != CHIP_NO_ERROR) + { + PLAT_LOG("ConnectivityMgr().SetThreadDeviceType() failed"); + while (1) + ; + } + + ret = PlatformMgr().StartEventLoopTask(); + if (ret != CHIP_NO_ERROR) + { + PLAT_LOG("PlatformMgr().StartEventLoopTask() failed"); + while (1) + ; + } + + ret = ThreadStackMgrImpl().StartThreadTask(); + if (ret != CHIP_NO_ERROR) + { + PLAT_LOG("ThreadStackMgr().StartThreadTask() failed"); + while (1) + ; + } + + // Init ZCL Data Model and start server + PLAT_LOG("Initialize Server"); + static chip::CommonCaseDeviceServerInitParams initParams; + (void) initParams.InitializeStaticResourcesBeforeServerInit(); + chip::Server::GetInstance().Init(initParams); + + ConfigurationMgr().LogDeviceConfig(); + + // Initialize device attestation config + SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider()); + + // We only have network commissioning on endpoint 0. + emberAfEndpointEnableDisable(kNetworkCommissioningEndpointSecondary, false); + + // Register a function to receive events from the CHIP device layer. Note that calls to + // this function will happen on the CHIP event loop thread, not the app_main thread. + PlatformMgr().AddEventHandler(DeviceEventCallback, reinterpret_cast(nullptr)); + + // QR code will be used with CHIP Tool + PrintOnboardingCodes(RendezvousInformationFlags(RendezvousInformationFlag::kBLE)); + + return 0; +} + +void AppTask::AppTaskMain(void * pvParameter) +{ + AppEvent event; + + sAppTask.Init(); + + while (1) + { + /* Task pend until we have stuff to do */ + if (xQueueReceive(sAppEventQueue, &event, portMAX_DELAY) == pdTRUE) + { + sAppTask.DispatchEvent(&event); + } + } +} + +void AppTask::PostEvent(const AppEvent * aEvent) +{ + if (xQueueSend(sAppEventQueue, aEvent, 0) != pdPASS) + { + /* Failed to post the message */ + } +} + +void AppTask::ButtonLeftEventHandler(Button_Handle handle, Button_EventMask events) +{ + AppEvent event; + event.Type = AppEvent::kEventType_ButtonLeft; + + if (events & Button_EV_CLICKED) + { + event.ButtonEvent.Type = AppEvent::kAppEventButtonType_Clicked; + } + else if (events & Button_EV_LONGCLICKED) + { + event.ButtonEvent.Type = AppEvent::kAppEventButtonType_LongClicked; + } + // button callbacks are in ISR context + if (xQueueSendFromISR(sAppEventQueue, &event, NULL) != pdPASS) + { + /* Failed to post the message */ + } +} + +void AppTask::ButtonRightEventHandler(Button_Handle handle, Button_EventMask events) +{ + AppEvent event; + event.Type = AppEvent::kEventType_ButtonRight; + + if (events & Button_EV_CLICKED) + { + event.ButtonEvent.Type = AppEvent::kAppEventButtonType_Clicked; + } + else if (events & Button_EV_LONGCLICKED) + { + event.ButtonEvent.Type = AppEvent::kAppEventButtonType_LongClicked; + } + // button callbacks are in ISR context + if (xQueueSendFromISR(sAppEventQueue, &event, NULL) != pdPASS) + { + /* Failed to post the message */ + } +} + +void AppTask::DispatchEvent(AppEvent * aEvent) +{ + switch (aEvent->Type) + { + case AppEvent::kEventType_ButtonLeft: + if (AppEvent::kAppEventButtonType_Clicked == aEvent->ButtonEvent.Type) + { + } + else if (AppEvent::kAppEventButtonType_LongClicked == aEvent->ButtonEvent.Type) + { + // Disable BLE advertisements + if (ConnectivityMgr().IsBLEAdvertisingEnabled()) + { + ConnectivityMgr().SetBLEAdvertisingEnabled(false); + PLAT_LOG("Disabled BLE Advertisements"); + } + } + break; + + case AppEvent::kEventType_ButtonRight: + if (AppEvent::kAppEventButtonType_Clicked == aEvent->ButtonEvent.Type) + { + } + else if (AppEvent::kAppEventButtonType_LongClicked == aEvent->ButtonEvent.Type) + { + // Enable BLE advertisements + if (!ConnectivityMgr().IsBLEAdvertisingEnabled()) + { + if (Server::GetInstance().GetCommissioningWindowManager().OpenBasicCommissioningWindow() == CHIP_NO_ERROR) + { + PLAT_LOG("Enabled BLE Advertisement"); + } + else + { + PLAT_LOG("OpenBasicCommissioningWindow() failed"); + } + } + } + break; + + case AppEvent::kEventType_AppEvent: + if (NULL != aEvent->Handler) + { + aEvent->Handler(aEvent); + } + break; + + case AppEvent::kEventType_None: + default: + break; + } +} diff --git a/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/ClusterManager.cpp b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/ClusterManager.cpp new file mode 100644 index 00000000000000..40661af8cd7c7d --- /dev/null +++ b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/ClusterManager.cpp @@ -0,0 +1,176 @@ + +/* + * + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + */ +#include "ClusterManager.h" +#include "Globals.h" +#include +#include +#include +#include +#include +#include +#include + +#ifdef AUTO_PRINT_METRICS +#include +#endif + +using namespace ::chip; +using namespace ::chip::Inet; +using namespace ::chip::System; +using namespace ::chip::DeviceLayer; + +constexpr uint32_t kIdentifyTimerDelayMS = 250; +constexpr uint32_t kIdentifyTimerDelayPerSec = 4; +ClusterManager ClusterManager::sCluster; + +#define ENDPOINT_ID_0 (0) +#define ENDPOINT_ID_1 (1) +#define ENDPOINT_ID_2 (2) + +void OnIdentifyTriggerEffect(Identify * identify) +{ + switch (identify->mCurrentEffectIdentifier) + { + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BLINK: + PLAT_LOG("EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BLINK"); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BREATHE: + PLAT_LOG("EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BREATHE"); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_OKAY: + PLAT_LOG("EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_OKAY"); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_CHANNEL_CHANGE: + PLAT_LOG("EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_CHANNEL_CHANGE"); + break; + default: + PLAT_LOG("No identifier effect"); + break; + } + return; +} + +Identify gIdentify0 = { + chip::EndpointId{ 0 }, + [](Identify *) { PLAT_LOG("onIdentifyStart"); }, + [](Identify *) { PLAT_LOG("onIdentifyStop"); }, + EMBER_ZCL_IDENTIFY_IDENTIFY_TYPE_VISIBLE_LED, + OnIdentifyTriggerEffect, +}; + +Identify gIdentify1 = { + chip::EndpointId{ 1 }, + [](Identify *) { PLAT_LOG("onIdentifyStart"); }, + [](Identify *) { PLAT_LOG("onIdentifyStop"); }, + EMBER_ZCL_IDENTIFY_IDENTIFY_TYPE_VISIBLE_LED, + OnIdentifyTriggerEffect, +}; + +void ClusterManager::OnOnOffPostAttributeChangeCallback(EndpointId endpointId, AttributeId attributeId, uint8_t * value) +{ + VerifyOrExit(attributeId == ZCL_ON_OFF_ATTRIBUTE_ID, PLAT_LOG("Unhandled Attribute ID: '0x%04x", attributeId)); + VerifyOrExit(endpointId == ENDPOINT_ID_1 || endpointId == ENDPOINT_ID_2, + PLAT_LOG("Unexpected EndPoint ID: `0x%02x'", endpointId)); + + // At this point we can assume that value points to a bool value. + mEndpointOnOffState[endpointId - 1] = *value; + endpointId == ENDPOINT_ID_1 ? LED_write(sAppGreenHandle, *value) : LED_write(sAppRedHandle, *value); + +exit: + return; +} + +void ClusterManager::OnLevelControlAttributeChangeCallback(EndpointId endpointId, AttributeId attributeId, uint8_t * value) +{ + bool onOffState = mEndpointOnOffState[endpointId - 1]; + uint8_t brightness = onOffState ? *value : 0; + + VerifyOrExit(brightness > 0, PLAT_LOG("Brightness set to 0, ignoring")); + VerifyOrExit(attributeId == ZCL_CURRENT_LEVEL_ATTRIBUTE_ID, PLAT_LOG("Unhandled Attribute ID: '0x%04x", attributeId)); + VerifyOrExit(endpointId == ENDPOINT_ID_1 || endpointId == ENDPOINT_ID_2, + PLAT_LOG("Unexpected EndPoint ID: `0x%02x'", endpointId)); + + if (brightness > LED_BRIGHTNESS_MAX) + { + brightness = LED_BRIGHTNESS_MAX; + } + + endpointId == ENDPOINT_ID_1 ? LED_setOn(sAppGreenHandle, brightness) : LED_setOn(sAppRedHandle, brightness); + +exit: + return; +} + +void ClusterManager::OnColorControlAttributeChangeCallback(EndpointId endpointId, AttributeId attributeId, uint8_t * value) +{ + VerifyOrExit(attributeId == ZCL_COLOR_CONTROL_CURRENT_HUE_ATTRIBUTE_ID || + attributeId == ZCL_COLOR_CONTROL_CURRENT_SATURATION_ATTRIBUTE_ID, + PLAT_LOG("Unhandled AttributeId ID: '0x%04x", attributeId)); + VerifyOrExit(endpointId == ENDPOINT_ID_1 || endpointId == ENDPOINT_ID_2, + PLAT_LOG("Unexpected EndPoint ID: `0x%02x'", endpointId)); + + if (endpointId == ENDPOINT_ID_1) + { + uint8_t hue, saturation; + if (attributeId == ZCL_COLOR_CONTROL_CURRENT_HUE_ATTRIBUTE_ID) + { + hue = *value; + /* Read Current Saturation value when Attribute change callback for HUE Attribute */ + app::Clusters::ColorControl::Attributes::CurrentSaturation::Get(endpointId, &saturation); + } + else + { + saturation = *value; + /* Read Current Hue value when Attribute change callback for SATURATION Attribute */ + app::Clusters::ColorControl::Attributes::CurrentHue::Get(endpointId, &hue); + } + PLAT_LOG("Color Control triggered: Hue: %d Saturation: %d", hue, saturation); + } +exit: + return; +} + +void ClusterManager::OnIdentifyPostAttributeChangeCallback(EndpointId endpointId, AttributeId attributeId, uint16_t size, + uint8_t * value) +{ + if (attributeId == app::Clusters::Identify::Attributes::IdentifyTime::Id && size == 2) + { + uint16_t identifyTime; + memcpy(&identifyTime, value, size); + if (identifyTime) + { + // Currently we have no separate indicator LEDs on each endpoints. + // We are using LED1 for endpoint 0,1 and LED2 for endpoint 2 + if (endpointId == ENDPOINT_ID_2) + { + LED_startBlinking(sAppGreenHandle, kIdentifyTimerDelayMS, identifyTime * kIdentifyTimerDelayPerSec); + } + else + { + LED_startBlinking(sAppRedHandle, kIdentifyTimerDelayMS, identifyTime * kIdentifyTimerDelayPerSec); + } + } + else + { + bool onOffState; + endpointId == ENDPOINT_ID_0 ? onOffState = mEndpointOnOffState[0] : onOffState = mEndpointOnOffState[endpointId - 1]; + endpointId == ENDPOINT_ID_2 ? LED_write(sAppRedHandle, onOffState) : LED_write(sAppGreenHandle, onOffState); + } + } +} diff --git a/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/Globals.cpp b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/Globals.cpp new file mode 100644 index 00000000000000..01a945e1a33d12 --- /dev/null +++ b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/Globals.cpp @@ -0,0 +1,22 @@ +/* + * + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#include "Globals.h" + +LED_Handle sAppRedHandle; +LED_Handle sAppGreenHandle; diff --git a/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/ZclCallbacks.cpp b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/ZclCallbacks.cpp new file mode 100644 index 00000000000000..0524dc7578fd23 --- /dev/null +++ b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/ZclCallbacks.cpp @@ -0,0 +1,91 @@ +/* + * + * Copyright (c) 2021 Project CHIP Authors + * Copyright 2021, Cypress Semiconductor Corporation (an Infineon company) + * + * 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. + */ + +/** + * @file + * This file implements the handler for data model messages. + */ + +#include "AppConfig.h" +#include "Globals.h" +#include + +#include "ClusterManager.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace ::chip; +using namespace ::chip::app::Clusters; + +void MatterPostAttributeChangeCallback(const chip::app::ConcreteAttributePath & attributePath, uint8_t type, uint16_t size, + uint8_t * value) +{ + EndpointId endpoint = attributePath.mEndpointId; + ClusterId clusterId = attributePath.mClusterId; + AttributeId attributeId = attributePath.mAttributeId; + PLAT_LOG("MatterPostAttributeChangeCallback - Cluster ID: " ChipLogFormatMEI + ", EndPoint ID: '0x%02x', Attribute ID: " ChipLogFormatMEI, + ChipLogValueMEI(clusterId), endpoint, ChipLogValueMEI(attributeId)); + + switch (clusterId) + { + case OnOff::Id: + ClusterMgr().OnOnOffPostAttributeChangeCallback(endpoint, attributeId, value); + break; + + case Identify::Id: + ClusterMgr().OnIdentifyPostAttributeChangeCallback(endpoint, attributeId, size, value); + break; + + case LevelControl::Id: + ClusterMgr().OnLevelControlAttributeChangeCallback(endpoint, attributeId, value); + break; + + case ColorControl::Id: + ClusterMgr().OnColorControlAttributeChangeCallback(endpoint, attributeId, value); + break; + default: + PLAT_LOG("Unhandled cluster ID: " ChipLogFormatMEI, ChipLogValueMEI(clusterId)); + break; + } +} +/** @brief OnOff Cluster Init + * + * This function is called when a specific cluster is initialized. It gives the + * application an opportunity to take care of cluster initialization procedures. + * It is called exactly once for each endpoint where cluster is present. + * + * @param endpoint Ver.: always + */ +void emberAfOnOffClusterInitCallback(EndpointId endpoint) +{ + // TODO: implement any additional Cluster Server init actions +} + +bool emberAfBasicClusterMfgSpecificPingCallback(chip::app::CommandHandler * commandObj) +{ + emberAfSendDefaultResponse(emberAfCurrentCommand(), EMBER_ZCL_STATUS_SUCCESS); + return true; +} diff --git a/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/include/AppConfig.h b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/include/AppConfig.h new file mode 100644 index 00000000000000..f7302b6efd10cd --- /dev/null +++ b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/include/AppConfig.h @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2019 Google LLC. + * All rights reserved. + * + * 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. + */ + +#ifndef APP_CONFIG_H +#define APP_CONFIG_H + +#endif // APP_CONFIG_H diff --git a/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/include/AppEvent.h b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/include/AppEvent.h new file mode 100644 index 00000000000000..ad9e93ee3ad1a5 --- /dev/null +++ b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/include/AppEvent.h @@ -0,0 +1,60 @@ +/* + * + * Copyright (c) 2018 Nest Labs, Inc. + * All rights reserved. + * + * 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. + */ + +#ifndef APP_EVENT_H +#define APP_EVENT_H + +struct AppEvent; +typedef void (*EventHandler)(AppEvent *); + +struct AppEvent +{ + enum AppEventType + { + kEventType_None = 0, + kEventType_ButtonLeft, + kEventType_ButtonRight, + kEventType_AppEvent, + }; + + enum AppEventButtonType + { + kAppEventButtonType_None = 0, + kAppEventButtonType_Clicked, + kAppEventButtonType_LongClicked, + }; + + enum AppEventType Type; + + union + { + struct + { + enum AppEventButtonType Type; + } ButtonEvent; + + struct + { + void * Context; + } BoltLockEvent; + }; + + EventHandler Handler; +}; + +#endif // APP_EVENT_H diff --git a/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/include/AppTask.h b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/include/AppTask.h new file mode 100644 index 00000000000000..002e1b3f70557c --- /dev/null +++ b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/include/AppTask.h @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2019 Google LLC. + * All rights reserved. + * + * 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. + */ + +#ifndef APP_TASK_H +#define APP_TASK_H + +#include +#include + +#include "FreeRTOS.h" +#include "semphr.h" +#include "task.h" + +#include "AppEvent.h" + +#include + +class AppTask +{ +public: + int StartAppTask(); + static void AppTaskMain(void * pvParameter); + + void PostEvent(const AppEvent * event); + +private: + friend AppTask & GetAppTask(void); + + int Init(); + + void DispatchEvent(AppEvent * event); + + static void ButtonLeftEventHandler(Button_Handle handle, Button_EventMask events); + static void ButtonRightEventHandler(Button_Handle handle, Button_EventMask events); + static void TimerEventHandler(void * p_context); + + enum Function_t + { + kFunction_NoneSelected = 0, + kFunction_SoftwareUpdate = 0, + kFunction_FactoryReset, + + kFunction_Invalid + } Function; + + Function_t mFunction; + bool mFunctionTimerActive; + + static AppTask sAppTask; +}; + +inline AppTask & GetAppTask(void) +{ + return AppTask::sAppTask; +} + +#endif // APP_TASK_H diff --git a/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/include/CHIPProjectConfig.h b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/include/CHIPProjectConfig.h new file mode 100644 index 00000000000000..a7d7e9beb24e73 --- /dev/null +++ b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/include/CHIPProjectConfig.h @@ -0,0 +1,128 @@ +/* + * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2019 Google LLC. + * All rights reserved. + * + * 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. + */ + +/** + * @file + * Example project configuration file for CHIP. + * + * This is a place to put application or project-specific overrides + * to the default configuration values for general CHIP features. + * + */ + +#ifndef CHIP_PROJECT_CONFIG_H +#define CHIP_PROJECT_CONFIG_H + +#if BUILD_RELEASE // release build +// Note: Default Pairing/PIN/Serial Numbers being used. These should not be enabled for production builds +#endif // BUILD_RELEASE + +// Use a default pairing code if one hasn't been provisioned in flash. +#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE 20202021 +#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR 0xF00 + +// Use a default pairing code if one hasn't been provisioned in flash. +#define CHIP_DEVICE_CONFIG_USE_TEST_PAIRING_CODE "CHIPUS" + +/** + * CHIP_DEVICE_CONFIG_TEST_SERIAL_NUMBER + * + * Enables the use of a hard-coded default serial number if none + * is found in CHIP NV storage. + */ +#define CHIP_DEVICE_CONFIG_TEST_SERIAL_NUMBER "TEST_SN" + +/** + * CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION + * + * The hardware version number assigned to device or product by the device vendor. This + * number is scoped to the device product id, and typically corresponds to a revision of the + * physical device, a change to its packaging, and/or a change to its marketing presentation. + * This value is generally *not* incremented for device software versions. + */ +#define CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION 1 + +/** + * Values set by args.gni: + * CHIP_DEVICE_CONFIG_DEVICE_VENDOR_ID + * CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID + * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING + * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION + */ + +/** + * CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE + * + * Enable support for CHIP-over-BLE (CHIPOBLE). + */ +#define CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE 1 + +/** + * CHIP_DEVICE_CONFIG_ENABLE_CHIP_TIME_SERVICE_TIME_SYNC + * + * Enables synchronizing the device's real time clock with a remote CHIP Time service + * using the CHIP Time Sync protocol. + */ +// #define CHIP_DEVICE_CONFIG_ENABLE_CHIP_TIME_SERVICE_TIME_SYNC 1 + +/** + * CHIP_DEVICE_CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE + * + * A size, in bytes, of the individual debug event logging buffer. + */ +#define CHIP_DEVICE_CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE (512) + +#define MATTER_CC13X2_26X2_PLATFORM_LOG_ENABLED 1 + +/** + * CHIP_DEVICE_CONFIG_ENABLE_THREAD_SRP_CLIENT + * + * Enable the OpenThread SRP client to allow for CHIP device discovery. + */ +#define CHIP_DEVICE_CONFIG_ENABLE_THREAD_SRP_CLIENT 1 + +/** + * CHIP_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE + * + * For a development build, set the default importance of events to be logged as Debug. + * Since debug is the lowest importance level, this means all standard, critical, info and + * debug importance level vi events get logged. + */ +#if BUILD_RELEASE +#define CHIP_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE chip::Profiles::DataManagement::Production +#else +#define CHIP_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE chip::Profiles::DataManagement::Debug +#endif // BUILD_RELEASE + +#define CHIP_DEVICE_CONFIG_ENABLE_EXTENDED_DISCOVERY 1 + +/** + * @def CHIP_IM_MAX_NUM_COMMAND_HANDLER + * + * @brief Defines the maximum number of CommandHandler, limits the number of active commands transactions on server. + */ +#define CHIP_IM_MAX_NUM_COMMAND_HANDLER 1 + +/** + * @def CHIP_IM_MAX_NUM_WRITE_HANDLER + * + * @brief Defines the maximum number of WriteHandler, limits the number of active write transactions on server. + */ +#define CHIP_IM_MAX_NUM_WRITE_HANDLER 1 + +#endif // CHIP_PROJECT_CONFIG_H diff --git a/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/include/ClusterManager.h b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/include/ClusterManager.h new file mode 100644 index 00000000000000..1599ef1ef19264 --- /dev/null +++ b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/include/ClusterManager.h @@ -0,0 +1,51 @@ +/* + * + * Copyright (c) 2021 Project CHIP Authors + * Copyright 2021, Cypress Semiconductor Corporation (an Infineon company) + * All rights reserved. + * + * 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. + */ + +/** + * @file ClusterManager.h + * + * Declarations for the ClusterManager callbacks for this application + * + **/ + +#pragma once + +#include +#include +#include + +class ClusterManager +{ +public: + void OnOnOffPostAttributeChangeCallback(chip::EndpointId endpointId, chip::AttributeId attributeId, uint8_t * value); + void OnLevelControlAttributeChangeCallback(chip::EndpointId endpointId, chip::AttributeId attributeId, uint8_t * value); + void OnColorControlAttributeChangeCallback(chip::EndpointId endpointId, chip::AttributeId attributeId, uint8_t * value); + void OnIdentifyPostAttributeChangeCallback(chip::EndpointId endpointId, chip::AttributeId attributeId, uint16_t size, + uint8_t * value); + +private: + friend ClusterManager & ClusterMgr(void); + bool mEndpointOnOffState[2]; + static ClusterManager sCluster; +}; + +inline ClusterManager & ClusterMgr(void) +{ + return ClusterManager::sCluster; +} diff --git a/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/include/Globals.h b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/include/Globals.h new file mode 100644 index 00000000000000..43f9362e0341b9 --- /dev/null +++ b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/include/Globals.h @@ -0,0 +1,35 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#pragma once + +#include +// Logging +#ifdef __cplusplus +extern "C" { +#endif + +int cc13x2_26x2LogInit(void); +void cc13x2_26x2Log(const char * aFormat, ...); +#define PLAT_LOG(...) cc13x2_26x2Log(__VA_ARGS__); + +#ifdef __cplusplus +} +#endif +extern LED_Handle sAppRedHandle; +extern LED_Handle sAppGreenHandle; diff --git a/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/include/OpenThreadConfig.h b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/include/OpenThreadConfig.h new file mode 100644 index 00000000000000..30f5633cc3bc7f --- /dev/null +++ b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/include/OpenThreadConfig.h @@ -0,0 +1,29 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2019 Google LLC. + * All rights reserved. + * + * 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. + */ + +/** + * @file + * Overrides to default OpenThread configuration. + * + */ + +#pragma once + +// Use the TI-supplied default platform configuration for remainder +#include "openthread-core-cc13x2_26x2-config.h" diff --git a/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/main.cpp b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/main.cpp new file mode 100644 index 00000000000000..b432b8da888b34 --- /dev/null +++ b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/main/main.cpp @@ -0,0 +1,97 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2020 Texas Instruments Incorporated + * + * 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. + */ + +#include +#include + +#include + +#include +#include + +#include + +/* Driver Header files */ +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#define TOTAL_ICALL_HEAP_SIZE (58000) + +using namespace ::chip; +using namespace ::chip::Inet; +using namespace ::chip::DeviceLayer; + +__attribute__((section(".heap"))) uint8_t GlobalHeapZoneBuffer[TOTAL_ICALL_HEAP_SIZE]; +uint32_t heapSize = TOTAL_ICALL_HEAP_SIZE; + +// ================================================================================ +// FreeRTOS Callbacks +// ================================================================================ +extern "C" void vApplicationStackOverflowHook(void) +{ + while (1) + { + ; + } +} + +// ================================================================================ +// Main Code +// ================================================================================ +int main(void) +{ + Board_init(); + bpool((void *) GlobalHeapZoneBuffer, TOTAL_ICALL_HEAP_SIZE); + + GPIO_init(); + + NVS_init(); + + UART_init(); + + ECDH_init(); + + ECDSA_init(); + + AESECB_init(); + + SHA2_init(); + + int ret = GetAppTask().StartAppTask(); + if (ret != 0) + { + // can't log until the kernel is started + // PLAT_LOG("GetAppTask().StartAppTask() failed"); + while (1) + ; + } + + vTaskStartScheduler(); + + // Should never get here. + while (1) + ; +} diff --git a/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/third_party/connectedhomeip b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/third_party/connectedhomeip new file mode 120000 index 00000000000000..c866b86874994d --- /dev/null +++ b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/third_party/connectedhomeip @@ -0,0 +1 @@ +../../../.. \ No newline at end of file diff --git a/examples/all-clusters-minimal-app/esp32/.gitignore b/examples/all-clusters-minimal-app/esp32/.gitignore new file mode 100644 index 00000000000000..234526a082ad26 --- /dev/null +++ b/examples/all-clusters-minimal-app/esp32/.gitignore @@ -0,0 +1,5 @@ +*.vscode + +/build/ +/sdkconfig +/sdkconfig.old diff --git a/examples/ipv6only-app/esp32/CMakeLists.txt b/examples/all-clusters-minimal-app/esp32/CMakeLists.txt similarity index 72% rename from examples/ipv6only-app/esp32/CMakeLists.txt rename to examples/all-clusters-minimal-app/esp32/CMakeLists.txt index 3ec8fe381d6d13..d6fd8adda8185f 100644 --- a/examples/ipv6only-app/esp32/CMakeLists.txt +++ b/examples/all-clusters-minimal-app/esp32/CMakeLists.txt @@ -18,12 +18,20 @@ # CMakeLists in this exact order for cmake to work correctly cmake_minimum_required(VERSION 3.5) include($ENV{IDF_PATH}/tools/cmake/project.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/third_party/connectedhomeip/examples/common/cmake/idf_flashing.cmake) set(EXTRA_COMPONENT_DIRS "${CMAKE_CURRENT_LIST_DIR}/third_party/connectedhomeip/config/esp32/components" + "${CMAKE_CURRENT_LIST_DIR}/third_party/connectedhomeip/examples/common/QRCode" + "${IDF_PATH}/examples/common_components/led_strip" ) +if(${IDF_TARGET} STREQUAL "esp32") + list(APPEND EXTRA_COMPONENT_DIRS "${CMAKE_CURRENT_LIST_DIR}/third_party/connectedhomeip/examples/common/m5stack-tft/repo/components/tft" + "${CMAKE_CURRENT_LIST_DIR}/third_party/connectedhomeip/examples/common/m5stack-tft/repo/components/spidriver" + "${CMAKE_CURRENT_LIST_DIR}/third_party/connectedhomeip/examples/common/screen-framework") +endif() -project(chip-ipv6only-app) +project(chip-all-clusters-minimal-app) idf_build_set_property(CXX_COMPILE_OPTIONS "-std=gnu++17;-Os;-DLWIP_IPV6_SCOPES=0;-DCHIP_HAVE_CONFIG_H" APPEND) idf_build_set_property(C_COMPILE_OPTIONS "-Os;-DLWIP_IPV6_SCOPES=0" APPEND) # For the C3, project_include.cmake sets -Wno-format, but does not clear various @@ -36,11 +44,16 @@ idf_build_set_property(COMPILE_OPTIONS "-Wno-format-nonliteral;-Wno-format-secur # See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80635 idf_build_set_property(COMPILE_OPTIONS "-Wno-error=maybe-uninitialized" APPEND) +flashing_script() + +if (CONFIG_ENABLE_PW_RPC) get_filename_component(CHIP_ROOT ./third_party/connectedhomeip REALPATH) include(third_party/connectedhomeip/third_party/pigweed/repo/pw_build/pigweed.cmake) +pw_set_module_config(pw_rpc_CONFIG pw_rpc.disable_global_mutex_config) pw_set_backend(pw_log pw_log_basic) pw_set_backend(pw_assert pw_assert_log) pw_set_backend(pw_sys_io pw_sys_io.esp32) +pw_set_backend(pw_trace pw_trace_tokenized) add_subdirectory(third_party/connectedhomeip/third_party/pigweed/repo) add_subdirectory(third_party/connectedhomeip/third_party/nanopb/repo) @@ -50,3 +63,4 @@ get_target_property(_target_cxx_flags pw_build.cpp17 INTERFACE_COMPILE_OPTIONS) list(REMOVE_ITEM _target_cxx_flags $<$:-std=c++17>) list(APPEND _target_cxx_flags $<$:-std=gnu++17>) set_target_properties(pw_build.cpp17 PROPERTIES INTERFACE_COMPILE_OPTIONS "${_target_cxx_flags}") +endif(CONFIG_ENABLE_PW_RPC) diff --git a/examples/all-clusters-minimal-app/esp32/README.md b/examples/all-clusters-minimal-app/esp32/README.md new file mode 100644 index 00000000000000..8c2965a834013d --- /dev/null +++ b/examples/all-clusters-minimal-app/esp32/README.md @@ -0,0 +1,405 @@ +# CHIP ESP32 All Clusters Example + +A prototype application that demonstrates device commissioning and cluster +control. + +--- + +- [CHIP ESP32 All Clusters Example](#chip-esp32-all-clusters-example) + - [Supported Devices](#supported-devices) + - [Building the Example Application](#building-the-example-application) + - [Commissioning and cluster control](#commissioning-and-cluster-control) + - [Setting up chip-tool](#setting-up-chip-tool) + - [Commissioning over BLE](#commissioning-over-ble) + - [Cluster control](#cluster-control) + - [Flashing app using script](#flashing-app-using-script) + - [Note](#note) + - [Using the RPC console](#using-the-rpc-console) + - [Device Tracing](#device-tracing) + +--- + +## Supported Devices + +The CHIP demo application is intended to work on three categories of ESP32 +devices: the +[ESP32-DevKitC](https://www.espressif.com/en/products/hardware/esp32-devkitc/overview), +the +[ESP32-WROVER-KIT_V4.1](https://www.espressif.com/en/products/hardware/esp-wrover-kit/overview), +the [M5Stack](http://m5stack.com), and the +[ESP32C3-DevKitM](https://docs.espressif.com/projects/esp-idf/en/latest/esp32c3/hw-reference/esp32c3/user-guide-devkitm-1.html). + +Note: M5Stack Core 2 display is not supported in the tft component, while other +functionality can still work fine. + +## VCP Drivers + +Some users might have to install the +[VCP driver](https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers) +before the device shows up on `/dev/tty`. + +In addition, if the following error is encountered during M5Stack flashing, the +[CH9102 VCP driver](https://docs.m5stack.com/en/download) would also need to be +installed: + +``` +Failed to write to target RAM (result was 01070000) +``` + +## Building the Example Application + +Building the example application requires the use of the Espressif ESP32 IoT +Development Framework and the xtensa-esp32-elf toolchain for ESP32 modules or +the riscv-esp32-elf toolchain for ESP32C3 modules. + +The VSCode devcontainer has these components pre-installed, so you can skip this +step. To install these components manually, follow these steps: + +- Clone the Espressif ESP-IDF and checkout + [v4.4.1 release](https://github.com/espressif/esp-idf/releases/tag/v4.4.1) + + ``` + $ mkdir ${HOME}/tools + $ cd ${HOME}/tools + $ git clone https://github.com/espressif/esp-idf.git + $ cd esp-idf + $ git checkout v4.4.1 + $ git submodule update --init + $ ./install.sh + $ . ./export.sh + ``` + + To update an existing esp-idf toolchain to v4.4.1: + + ``` + $ cd ~/tools/esp-idf + $ git fetch origin + $ git checkout v4.4.1 + $ git reset --hard origin/v4.4.1 + $ git submodule update --init + $ git clean -fdx + $ ./install.sh + $ . ./export.sh + ``` + +- Install ninja-build + + ``` + $ sudo apt-get install ninja-build + ``` + +Currently building in VSCode _and_ deploying from native is not supported, so +make sure the IDF_PATH has been exported(See the manual setup steps above). + +- Setting up the environment + + ``` + $ cd ${HOME}/tools/esp-idf + $ ./install.sh + $ . ./export.sh + $ cd {path-to-connectedhomeip} + ``` + + To download and install packages. + + ``` + $ source ./scripts/bootstrap.sh + $ source ./scripts/activate.sh + ``` + + If packages are already installed then simply activate them. + + ``` + $ source ./scripts/activate.sh + ``` + +- Target Set + +To set IDF target, first: + + ``` + $ cd {path-to-connectedhomeip}/examples/all-clusters-minimal-app/esp32/ + ``` + +Then run set-target with one of the commands. + + ``` + $ idf.py set-target esp32 + $ idf.py set-target esp32c3 + ``` + +- Configuration Options + +To build the default configuration (`sdkconfig.defaults`) skip to building the +demo application. + +To build a specific configuration (as an example `m5stack`): + + ``` + $ rm sdkconfig + $ idf.py -D 'SDKCONFIG_DEFAULTS=sdkconfig_m5stack.defaults' build + ``` + + Note: If using a specific device configuration, it is highly recommended to + start off with one of the defaults and customize on top of that. Certain + configurations have different constraints that are customized within the + device specific configuration (eg: main app stack size). + +To customize the configuration, run menuconfig. + + ``` + $ idf.py menuconfig + ``` + +Select ESP32 based `Device Type` through `Demo`->`Device Type`. The device types +that are currently supported include `ESP32-DevKitC` (default), +`ESP32-WROVER-KIT_V4.1`, `M5Stack` and `ESP32C3-DevKitM`. + +- To build the demo application. + + ``` + $ idf.py build + ``` + +- After building the application, to flash it outside of VSCode, connect your + device via USB. Then run the following command to flash the demo application + onto the device and then monitor its output. If necessary, replace + `/dev/tty.SLAB_USBtoUART` with the correct USB device name for your system + (like `/dev/ttyUSB0` on Linux or `/dev/tty.usbserial-01CDEEDC` on Mac). Note + that sometimes you might have to press and hold the `boot` button on the + device while it's trying to connect before flashing. For ESP32-DevKitC + devices this is labeled in the + [functional description diagram](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/get-started-devkitc.html#functional-description). + + ``` + $ idf.py -p /dev/tty.SLAB_USBtoUART flash monitor + ``` + +- Quit the monitor by hitting `Ctrl+]`. + + Note: You can see a menu of various monitor commands by hitting + `Ctrl+t Ctrl+h` while the monitor is running. + +- If desired, the monitor can be run again like so: + + ``` + $ idf.py -p /dev/tty.SLAB_USBtoUART monitor + ``` + +## Commissioning and cluster control + +Commissioning can be carried out using WiFi or BLE. + +1. Set the `Rendezvous Mode` for commissioning using menuconfig; the default + Rendezvous mode is BLE. + + ``` + $ idf.py menuconfig + ``` + +Select the Rendezvous Mode via `Demo -> Rendezvous Mode`. + +NOTE: to avoid build error +`undefined reference to 'chip::DevelopmentCerts::kDacPublicKey'`, set VID to +`0xFFF1` and PID in range `0x8000..0x8005`. + +`idf.py menuconfig -> Component config -> CHIP Device Layer -> Device Identification Options` + +2. Now flash the device with the same command as before. (Use the right `/dev` + device) + + ``` + $ idf.py -p /dev/tty.SLAB_USBtoUART flash monitor + ``` + +3. The device should boot up. When device connects to your network, you will + see a log like this on the device console. + + ``` + I (5524) chip[DL]: SYSTEM_EVENT_STA_GOT_IP + I (5524) chip[DL]: IPv4 address changed on WiFi station interface: ... + ``` + +4. Use + [python based device controller](https://github.com/project-chip/connectedhomeip/tree/master/src/controller/python) + or + [standalone chip-tool](https://github.com/project-chip/connectedhomeip/tree/master/examples/chip-tool) + or + [iOS chip-tool app](https://github.com/project-chip/connectedhomeip/tree/master/src/darwin/CHIPTool) + or + [Android chip-tool app](https://github.com/project-chip/connectedhomeip/tree/master/src/android/CHIPTool) + to communicate with the device. + +Note: The ESP32 does not support 5GHz networks. Also, the Device will persist +your network configuration. To erase it, simply run. + + ``` + $ idf.py -p /dev/tty.SLAB_USBtoUART erase_flash + ``` + +- Once ESP32 is up and running, we need to set up a device controller to + perform commissioning and cluster control. + +### Setting up chip-tool + +See [the build guide](../../../docs/guides/BUILDING.md#prerequisites) for +general background on build prerequisites. + +Building the example: + +``` +$ cd examples/chip-tool + +$ rm -rf out + +$ gn gen out/debug + +$ ninja -C out/debug +``` + +which puts the binary at `out/debug/chip-tool` + +### Commission a device using chip-tool + +To initiate a client commissioning request to a device, run the built executable +and choose the pairing mode. + +#### Commissioning over BLE + +Run the built executable and pass it the discriminator and pairing code of the +remote device, as well as the network credentials to use. + +The command below uses the default values hard-coded into the debug versions of +the ESP32 all-clusters-minimal-app to commission it onto a Wi-Fi network: + + ``` + $ ./out/debug/chip-tool pairing ble-wifi 12344321 ${SSID} ${PASSWORD} 20202021 3840 + ``` + +Parameters: + +1. Discriminator: 3840 (configurable through menuconfig) +2. Setup-pin-code: 20202021 (configurable through menuconfig) +3. Node-id: 12344321 (you can assign any node id) + +### Cluster control + +#### onoff + +To use the Client to send Matter commands, run the built executable and pass it +the target cluster name, the target command name as well as an endpoint id. + + ``` + $ ./out/debug/chip-tool onoff on 12344321 1 + ``` + +The client will send a single command packet and then exit. + +#### levelcontrol + +```bash +Usage: + $ ./out/debug/chip-tool levelcontrol move-to-level Level=10 TransitionTime=0 OptionMask=0 OptionOverride=0 12344321 1 +``` + +### Flashing app using script + +- Follow these steps to use `${app_name}.flash.py`. + + - First set IDF target, run set-target with one of the commands. + + ``` + $ idf.py set-target esp32 + $ idf.py set-target esp32c3 + ``` + + - Execute below sequence of commands + + ``` + $ export ESPPORT=/dev/tty.SLAB_USBtoUART + $ idf.py build + $ idf.py flashing_script + $ python ${app_name}.flash.py + ``` + +### Note + +This demo app illustrates controlling OnOff cluster (Server) attributes of an +endpoint. For `ESP32-DevKitC`, `ESP32-WROVER-KIT_V4.1` and `ESP32C3-DevKitM`, a +GPIO (configurable through `STATUS_LED_GPIO_NUM` in `main/main.cpp`) is updated +through the on/off/toggle commands from the `python-controller`. For `M5Stack`, +a virtual Green LED on the display is used for the same. + +If you wish to see the actual effect of the commands on `ESP32-DevKitC`, +`ESP32-WROVER-KIT_V4.1`, you will have to connect an external LED to GPIO +`STATUS_LED_GPIO_NUM`. For `ESP32C3-DevKitM`, the on-board LED will show the +actual effect of the commands. + +## Using the RPC console + +You can use the rpc default config to setup everything correctly for RPCs: + + ``` + $ export SDKCONFIG_DEFAULTS=$PROJECT_ROOT/examples/all-clusters-minimal-app/esp32/sdkconfig_m5stack_rpc.defaults + $ rm sdkconfig + $ idf.py fullclean + ``` + +Alternatively, Enable RPCs in the build using menuconfig: + + - Enable the RPC library and Disable ENABLE_CHIP_SHELL + + ``` + Component config → CHIP Core → General Options → Enable Pigweed PRC library + Component config → CHIP Core → General Options → Disable CHIP Shell + ``` + + - Ensure the UART is correctly configured for your board, for m5stack: + + ``` + PW RPC Debug channel → UART port number → 0 + PW RPC Debug channel → UART communication speed → 115200 + PW RPC Debug channel → UART RXD pin number → 3 + PW RPC Debug channel → UART TXD pin number → 1 + ``` + +After configuring you can build and flash normally: + + ``` + $ idf.py build + $ idf.py flash + ``` + +After flashing a build with RPCs enabled you can use the rpc console to send +commands to the device. + +Build or install the [rpc console](../../common/pigweed/rpc_console/README.md) + +Start the console + + ``` + chip-console --device /dev/ttyUSB0 + ``` + +From within the console you can then invoke rpcs: + + ```python + rpcs.chip.rpc.WiFi.Connect(ssid=b"MySSID", secret=b"MyPASSWORD") + rpcs.chip.rpc.WiFi.GetIP6Address() + + rpcs.chip.rpc.Lighting.Get() + rpcs.chip.rpc.Lighting.Set(on=True, level=128, color=protos.chip.rpc.LightingColor(hue=5, saturation=5)) + ``` + +## Device Tracing + +Device tracing is available to analyze the device performance. To turn on +tracing, build with RPC enabled. See +[Using the RPC console](#using-the-rpc-console). + +Obtain tracing json file. + +``` + $ ./{PIGWEED_REPO}/pw_trace_tokenized/py/pw_trace_tokenized/get_trace.py -d {PORT} -o {OUTPUT_FILE} \ + -t {ELF_FILE} {PIGWEED_REPO}/pw_trace_tokenized/pw_trace_protos/trace_rpc.proto +``` diff --git a/examples/all-clusters-minimal-app/esp32/main/AppTask.cpp b/examples/all-clusters-minimal-app/esp32/main/AppTask.cpp new file mode 100644 index 00000000000000..6db8c63b3c14ec --- /dev/null +++ b/examples/all-clusters-minimal-app/esp32/main/AppTask.cpp @@ -0,0 +1,181 @@ +/* + * + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#include "AppTask.h" +#include "Button.h" +#include "DeviceWithDisplay.h" +#include "Globals.h" +#include "LEDWidget.h" +#include "ScreenManager.h" +#include "driver/gpio.h" +#include "esp_log.h" +#include "esp_spi_flash.h" +#include "freertos/FreeRTOS.h" +#include + +#define APP_TASK_NAME "APP" +#define APP_EVENT_QUEUE_SIZE 10 +#define APP_TASK_STACK_SIZE (3072) + +static const char * TAG = "app-task"; + +namespace { + +QueueHandle_t sAppEventQueue; +TaskHandle_t sAppTaskHandle; + +} // namespace + +AppTask AppTask::sAppTask; + +CHIP_ERROR AppTask::StartAppTask() +{ + sAppEventQueue = xQueueCreate(APP_EVENT_QUEUE_SIZE, sizeof(AppEvent)); + if (sAppEventQueue == NULL) + { + ESP_LOGE(TAG, "Failed to allocate app event queue"); + return APP_ERROR_EVENT_QUEUE_FAILED; + } + + // Start App task. + BaseType_t xReturned; + xReturned = xTaskCreate(AppTaskMain, APP_TASK_NAME, APP_TASK_STACK_SIZE, NULL, 1, &sAppTaskHandle); + return (xReturned == pdPASS) ? CHIP_NO_ERROR : APP_ERROR_CREATE_TASK_FAILED; +} + +CHIP_ERROR AppTask::Init() +{ + /* Print chip information */ + esp_chip_info_t chip_info; + esp_chip_info(&chip_info); + ESP_LOGI(TAG, "This is ESP32 chip with %d CPU cores, WiFi%s%s, ", chip_info.cores, + (chip_info.features & CHIP_FEATURE_BT) ? "/BT" : "", (chip_info.features & CHIP_FEATURE_BLE) ? "/BLE" : ""); + ESP_LOGI(TAG, "silicon revision %d, ", chip_info.revision); + ESP_LOGI(TAG, "%dMB %s flash\n", spi_flash_get_chip_size() / (1024 * 1024), + (chip_info.features & CHIP_FEATURE_EMB_FLASH) ? "embedded" : "external"); + + CHIP_ERROR err = CHIP_NO_ERROR; + statusLED1.Init(STATUS_LED_GPIO_NUM); + // Our second LED doesn't map to any physical LEDs so far, just to virtual + // "LED"s on devices with screens. + statusLED2.Init(GPIO_NUM_MAX); + bluetoothLED.Init(); + wifiLED.Init(); + pairingWindowLED.Init(); + + // Print QR Code URL + PrintOnboardingCodes(chip::RendezvousInformationFlags(CONFIG_RENDEZVOUS_MODE)); + +#if CONFIG_HAVE_DISPLAY + InitDeviceDisplay(); +#endif + return err; +} + +void AppTask::AppTaskMain(void * pvParameter) +{ + AppEvent event; + CHIP_ERROR err = sAppTask.Init(); + if (err != CHIP_NO_ERROR) + { + ESP_LOGI(TAG, "AppTask.Init() failed due to %" CHIP_ERROR_FORMAT, err.Format()); + return; + } + + ESP_LOGI(TAG, "App Task started"); + + while (true) + { + BaseType_t eventReceived = xQueueReceive(sAppEventQueue, &event, pdMS_TO_TICKS(10)); + while (eventReceived == pdTRUE) + { + sAppTask.DispatchEvent(&event); + eventReceived = xQueueReceive(sAppEventQueue, &event, 0); // return immediately if the queue is empty + } + } +} + +void AppTask::PostEvent(const AppEvent * aEvent) +{ + if (sAppEventQueue != NULL) + { + BaseType_t status; + if (xPortInIsrContext()) + { + BaseType_t higherPrioTaskWoken = pdFALSE; + status = xQueueSendFromISR(sAppEventQueue, aEvent, &higherPrioTaskWoken); + } + else + { + status = xQueueSend(sAppEventQueue, aEvent, 1); + } + if (!status) + ESP_LOGE(TAG, "Failed to post event to app task event queue"); + } + else + { + ESP_LOGE(TAG, "Event Queue is NULL should never happen"); + } +} + +void AppTask::DispatchEvent(AppEvent * aEvent) +{ + if (aEvent->mHandler) + { + aEvent->mHandler(aEvent); + } + else + { + ESP_LOGI(TAG, "Event received with no handler. Dropping event."); + } +} + +void AppTask::ButtonEventHandler(uint8_t btnIdx, uint8_t btnAction) +{ + AppEvent button_event = {}; + button_event.mType = AppEvent::kEventType_Button; + button_event.mButtonEvent.mPinNo = btnIdx; + button_event.mButtonEvent.mAction = btnAction; + + if (btnAction == APP_BUTTON_PRESSED) + { + button_event.mHandler = ButtonPressedAction; + sAppTask.PostEvent(&button_event); + } +} + +void AppTask::ButtonPressedAction(AppEvent * aEvent) +{ +#if CONFIG_DEVICE_TYPE_M5STACK + uint32_t io_num = aEvent->mButtonEvent.mPinNo; + int level = gpio_get_level((gpio_num_t) io_num); + if (level == 0) + { + bool woken = WakeDisplay(); + if (woken) + { + return; + } + // Button 1 is connected to the pin 39 + // Button 2 is connected to the pin 38 + // Button 3 is connected to the pin 37 + // So we use 40 - io_num to map the pin number to button number + ScreenManager::ButtonPressed(40 - io_num); + } +#endif +} diff --git a/examples/all-clusters-minimal-app/esp32/main/BluetoothWidget.cpp b/examples/all-clusters-minimal-app/esp32/main/BluetoothWidget.cpp new file mode 100644 index 00000000000000..4f8a011254bed0 --- /dev/null +++ b/examples/all-clusters-minimal-app/esp32/main/BluetoothWidget.cpp @@ -0,0 +1,68 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +/** + * @file BluetoothWidget.cpp + * + * Implements a Bluetooth Widget controller that display the state of bluetooth + * connection on display. + */ + +#include "ScreenManager.h" + +#include "BluetoothWidget.h" + +#include "esp_log.h" +#include "esp_system.h" + +extern const char * TAG; + +void BluetoothWidget::Init() +{ +#if CONFIG_HAVE_DISPLAY + mVLED = -1; +#endif // CONFIG_HAVE_DISPLAY + + mState = false; +} + +void BluetoothWidget::Set(bool state) +{ + bool stateChange = (mState != state); + mState = state; + if (stateChange) + { +#if CONFIG_HAVE_DISPLAY + if (mVLED != -1) + { + ScreenManager::SetVLED(mVLED, mState); + } +#endif // CONFIG_HAVE_DISPLAY + } +} + +#if CONFIG_HAVE_DISPLAY +void BluetoothWidget::SetVLED(int id) +{ + mVLED = id; + if (mVLED != -1) + { + ScreenManager::SetVLED(mVLED, mState); + } +} +#endif // CONFIG_HAVE_DISPLAY diff --git a/examples/all-clusters-minimal-app/esp32/main/Button.cpp b/examples/all-clusters-minimal-app/esp32/main/Button.cpp new file mode 100644 index 00000000000000..5708f196b14944 --- /dev/null +++ b/examples/all-clusters-minimal-app/esp32/main/Button.cpp @@ -0,0 +1,117 @@ +/* + * + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +/** + * @file Button.cpp + * + * Implements a Button tied to a GPIO and provides debouncing + * + **/ + +#include "driver/gpio.h" +#include "esp_check.h" +#include "esp_log.h" +#include "esp_system.h" + +#include "AppTask.h" +#include "Button.h" +#include "Globals.h" +#include "ScreenManager.h" +#include +#include +#include + +static const char * TAG = "Button.cpp"; + +extern Button gButtons[BUTTON_NUMBER]; + +Button::Button() {} + +Button::Button(gpio_num_t gpioNum) +{ + mGPIONum = gpioNum; +} + +int32_t Find_Button_Via_Pin(gpio_num_t gpioNum) +{ + for (int i = 0; i < BUTTON_NUMBER; i++) + { + if (gButtons[i].GetGPIONum() == gpioNum) + { + return i; + } + } + return -1; +} + +void IRAM_ATTR button_isr_handler(void * arg) +{ + uint32_t gpio_num = (uint32_t) arg; + int32_t idx = Find_Button_Via_Pin((gpio_num_t) gpio_num); + if (idx == -1) + { + return; + } + BaseType_t taskWoken = pdFALSE; + xTimerStartFromISR(gButtons[idx].mbuttonTimer, + &taskWoken); // If the timer had already been started ,restart it will reset its expiry time +} + +esp_err_t Button::Init() +{ + return Init(mGPIONum); +} + +esp_err_t Button::Init(gpio_num_t gpioNum) +{ + esp_err_t ret = ESP_OK; + + mGPIONum = gpioNum; + // zero-initialize the config structure. + gpio_config_t io_conf = {}; + // interrupt of falling edge + io_conf.intr_type = GPIO_INTR_NEGEDGE; + // bit mask of the pins, use GPIO4/5 here + io_conf.pin_bit_mask = 1ULL << gpioNum; + // set as input mode + io_conf.mode = GPIO_MODE_INPUT; + // enable pull-up mode + io_conf.pull_up_en = GPIO_PULLUP_ENABLE; + + gpio_config(&io_conf); + + // hook isr handler for specific gpio pin + ret = gpio_isr_handler_add(gpioNum, button_isr_handler, (void *) gpioNum); + ESP_RETURN_ON_ERROR(ret, TAG, "gpio_isr_handler_add failed: %s", esp_err_to_name(ret)); + + mbuttonTimer = xTimerCreate("BtnTmr", // Just a text name, not used by the RTOS kernel + pdMS_TO_TICKS(50), // timer period + false, // no timer reload (==one-shot) + (void *) (int) gpioNum, // init timer id = gpioNum index + TimerCallback // timer callback handler (all buttons use + // the same timer cn function) + ); + + return ESP_OK; +} +void Button::TimerCallback(TimerHandle_t xTimer) +{ + // Get the button index of the expired timer and call button event Handler. + uint32_t gpio_num = (uint32_t) pvTimerGetTimerID(xTimer); + GetAppTask().ButtonEventHandler(gpio_num, APP_BUTTON_PRESSED); +} diff --git a/examples/all-clusters-minimal-app/esp32/main/CMakeLists.txt b/examples/all-clusters-minimal-app/esp32/main/CMakeLists.txt new file mode 100644 index 00000000000000..9754be95bae2e4 --- /dev/null +++ b/examples/all-clusters-minimal-app/esp32/main/CMakeLists.txt @@ -0,0 +1,261 @@ +# +# Copyright (c) 2021 Project CHIP Authors +# All rights reserved. +# +# 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. +# + +# (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) +# The list of src and include dirs must be in sync with that in all-clusters-minimal-app/esp32/main/component.mk +set(PRIV_INCLUDE_DIRS_LIST + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/zzz_generated/all-clusters-minimal-app" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/all-clusters-app/all-clusters-common/include" + "${CMAKE_CURRENT_LIST_DIR}/include" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/platform/esp32" +) +set(SRC_DIRS_LIST + "${CMAKE_CURRENT_LIST_DIR}" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/zzz_generated/all-clusters-minimal-app/zap-generated" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/zzz_generated/app-common/app-common/zap-generated/attributes" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/zzz_generated/app-common/app-common/zap-generated" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/platform/esp32/route_hook" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/platform/esp32/ota" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/platform/esp32/common" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/platform/esp32/shell_extension" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/util" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/reporting" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/administrator-commissioning-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/application-basic-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/test-cluster-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/descriptor" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/fan-control-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/fixed-label-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/user-label-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/on-off-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/level-control" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/identify-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/access-control-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/account-login-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/application-launcher-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/audio-output-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/barrier-control-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/window-covering-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/general-commissioning-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/network-commissioning" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/groups-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/color-control-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/content-launch-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/operational-credentials-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/media-input-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/mode-select-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/low-power-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/keypad-input-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/media-playback-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/ota-requestor" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/target-navigator-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/thermostat-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/thermostat-user-interface-configuration-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/thread-network-diagnostics-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/channel-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/scenes" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/software-diagnostics-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/switch-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/general-diagnostics-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/group-key-mgmt-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/basic" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/bindings" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/diagnostic-logs-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/door-lock-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/occupancy-sensor-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/ethernet-network-diagnostics-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/localization-configuration-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/time-format-localization-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/wifi-network-diagnostics-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/wake-on-lan-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/pump-configuration-and-control-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/power-source-configuration-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/power-source-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/all-clusters-app/all-clusters-common/src" +) + +if (CONFIG_ENABLE_PW_RPC) +# Append additional directories for RPC build +set(PRIV_INCLUDE_DIRS_LIST "${PRIV_INCLUDE_DIRS_LIST}" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/platform/esp32/pw_sys_io/public" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/common" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/common/pigweed" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/common/pigweed/esp32" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/lib/support" + "${IDF_PATH}/components/freertos/include/freertos" +) +set(SRC_DIRS_LIST "${SRC_DIRS_LIST}" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/platform/esp32" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/common/pigweed" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/common/pigweed/esp32" +) +endif (CONFIG_ENABLE_PW_RPC) + +if(("${CONFIG_DEVICE_TYPE_ESP32_DEVKITC}" STREQUAL "y") OR ("${CONFIG_DEVICE_TYPE_ESP32_C3_DEVKITM}" STREQUAL "y")) + list(APPEND PRIV_INCLUDE_DIRS_LIST + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/common/screen-framework/include") + set(PRIV_REQUIRES_LIST chip QRCode bt) +elseif(("${CONFIG_DEVICE_TYPE_M5STACK}" STREQUAL "y") OR ("${CONFIG_DEVICE_TYPE_ESP32_WROVER_KIT}" STREQUAL "y")) + set(PRIV_REQUIRES_LIST chip QRCode bt tft spidrier screen-framework) +endif() + +if("${CONFIG_DEVICE_TYPE_ESP32_C3_DEVKITM}" STREQUAL "y") + list(APPEND PRIV_REQUIRES_LIST led_strip) +endif() + +if (CONFIG_OPENTHREAD_ENABLED) + list(APPEND PRIV_REQUIRES_LIST openthread) +endif() + +idf_component_register(PRIV_INCLUDE_DIRS ${PRIV_INCLUDE_DIRS_LIST} + SRC_DIRS ${SRC_DIRS_LIST} + PRIV_REQUIRES ${PRIV_REQUIRES_LIST}) + +set_property(TARGET ${COMPONENT_LIB} PROPERTY CXX_STANDARD 17) +target_compile_options(${COMPONENT_LIB} PRIVATE "-DLWIP_IPV6_SCOPES=0" "-DCHIP_HAVE_CONFIG_H") +target_compile_options(${COMPONENT_LIB} PUBLIC + "-DCHIP_ADDRESS_RESOLVE_IMPL_INCLUDE_HEADER=" +) + +if (CONFIG_ENABLE_PW_RPC) + +get_filename_component(CHIP_ROOT ${CMAKE_SOURCE_DIR}/third_party/connectedhomeip REALPATH) + +set(PIGWEED_ROOT "${CHIP_ROOT}/third_party/pigweed/repo") +include(${PIGWEED_ROOT}/pw_build/pigweed.cmake) +include(${PIGWEED_ROOT}/pw_protobuf_compiler/proto.cmake) +set(dir_pw_third_party_nanopb "${CHIP_ROOT}/third_party/nanopb/repo" CACHE STRING "" FORCE) + +pw_proto_library(attributes_service + SOURCES + ${CHIP_ROOT}/examples/common/pigweed/protos/attributes_service.proto + INPUTS + ${CHIP_ROOT}/examples/common/pigweed/protos/attributes_service.options + PREFIX + attributes_service + STRIP_PREFIX + ${CHIP_ROOT}/examples/common/pigweed/protos + DEPS + pw_protobuf.common_protos +) + +pw_proto_library(button_service + SOURCES + ${CHIP_ROOT}/examples/common/pigweed/protos/button_service.proto + PREFIX + button_service + STRIP_PREFIX + ${CHIP_ROOT}/examples/common/pigweed/protos + DEPS + pw_protobuf.common_protos +) + +pw_proto_library(descriptor_service + SOURCES + ${CHIP_ROOT}/examples/common/pigweed/protos/descriptor_service.proto + PREFIX + descriptor_service + STRIP_PREFIX + ${CHIP_ROOT}/examples/common/pigweed/protos + DEPS + pw_protobuf.common_protos +) + +pw_proto_library(device_service + SOURCES + ${CHIP_ROOT}/examples/common/pigweed/protos/device_service.proto + INPUTS + ${CHIP_ROOT}/examples/common/pigweed/protos/device_service.options + PREFIX + device_service + STRIP_PREFIX + ${CHIP_ROOT}/examples/common/pigweed/protos + DEPS + pw_protobuf.common_protos +) + +pw_proto_library(lighting_service + SOURCES + ${CHIP_ROOT}/examples/common/pigweed/protos/lighting_service.proto + PREFIX + lighting_service + STRIP_PREFIX + ${CHIP_ROOT}/examples/common/pigweed/protos + DEPS + pw_protobuf.common_protos +) + +pw_proto_library(locking_service + SOURCES + ${CHIP_ROOT}/examples/common/pigweed/protos/locking_service.proto + PREFIX + locking_service + STRIP_PREFIX + ${CHIP_ROOT}/examples/common/pigweed/protos + DEPS + pw_protobuf.common_protos +) + +pw_proto_library(wifi_service + SOURCES + ${CHIP_ROOT}/examples/common/pigweed/protos/wifi_service.proto + INPUTS + ${CHIP_ROOT}/examples/common/pigweed/protos/wifi_service.options + PREFIX + wifi_service + DEPS + pw_protobuf.common_protos + STRIP_PREFIX + ${CHIP_ROOT}/examples/common/pigweed/protos +) + +target_link_libraries(${COMPONENT_LIB} PUBLIC + attributes_service.nanopb_rpc + button_service.nanopb_rpc + descriptor_service.nanopb_rpc + device_service.nanopb_rpc + lighting_service.nanopb_rpc + locking_service.nanopb_rpc + wifi_service.nanopb_rpc + pw_checksum + pw_hdlc + pw_log + pw_rpc.server + pw_trace_tokenized + pw_trace_tokenized.trace_buffer + pw_trace_tokenized.rpc_service + pw_trace_tokenized.protos.nanopb_rpc +) + +target_link_options(${COMPONENT_LIB} + PUBLIC + "-T${PIGWEED_ROOT}/pw_tokenizer/pw_tokenizer_linker_sections.ld" +) + +target_compile_options(${COMPONENT_LIB} PRIVATE + "-DPW_RPC_ATTRIBUTE_SERVICE=1" + "-DPW_RPC_BUTTON_SERVICE=1" + "-DPW_RPC_DESCRIPTOR_SERVICE=1" + "-DPW_RPC_DEVICE_SERVICE=1" + "-DPW_RPC_LIGHTING_SERVICE=1" + "-DPW_RPC_LOCKING_SERVICE=1" + "-DPW_RPC_TRACING_SERVICE=1" + "-DPW_RPC_WIFI_SERVICE=1" + "-DPW_TRACE_BACKEND_SET=1") + +endif (CONFIG_ENABLE_PW_RPC) diff --git a/examples/all-clusters-minimal-app/esp32/main/DeviceCallbacks.cpp b/examples/all-clusters-minimal-app/esp32/main/DeviceCallbacks.cpp new file mode 100644 index 00000000000000..52d632f7fa5afa --- /dev/null +++ b/examples/all-clusters-minimal-app/esp32/main/DeviceCallbacks.cpp @@ -0,0 +1,219 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +/** + * @file DeviceCallbacks.cpp + * + * Implements all the callbacks to the application from the CHIP Stack + * + **/ +#include "DeviceCallbacks.h" + +#include "Globals.h" +#include "LEDWidget.h" +#include "WiFiWidget.h" +#include +#include +#include +#include +#include +#include +#include +#include + +#if CONFIG_DEVICE_TYPE_ESP32_C3_DEVKITM +#include +#endif + +static const char * TAG = "app-devicecallbacks"; + +using namespace ::chip; +using namespace ::chip::Inet; +using namespace ::chip::System; +using namespace chip::app; + +constexpr uint32_t kIdentifyTimerDelayMS = 250; + +void OnIdentifyTriggerEffect(Identify * identify) +{ + switch (identify->mCurrentEffectIdentifier) + { + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BLINK: + statusLED1.Blink(kIdentifyTimerDelayMS * 2); + ChipLogProgress(Zcl, "EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BLINK"); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BREATHE: + ChipLogProgress(Zcl, "EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BREATHE"); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_OKAY: + ChipLogProgress(Zcl, "EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_OKAY"); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_CHANNEL_CHANGE: + ChipLogProgress(Zcl, "EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_CHANNEL_CHANGE"); + break; + default: + ChipLogProgress(Zcl, "No identifier effect"); + break; + } + return; +} + +Identify gIdentify0 = { + chip::EndpointId{ 0 }, + [](Identify *) { ChipLogProgress(Zcl, "onIdentifyStart"); }, + [](Identify *) { ChipLogProgress(Zcl, "onIdentifyStop"); }, + EMBER_ZCL_IDENTIFY_IDENTIFY_TYPE_VISIBLE_LED, + OnIdentifyTriggerEffect, +}; + +Identify gIdentify1 = { + chip::EndpointId{ 1 }, + [](Identify *) { ChipLogProgress(Zcl, "onIdentifyStart"); }, + [](Identify *) { ChipLogProgress(Zcl, "onIdentifyStop"); }, + EMBER_ZCL_IDENTIFY_IDENTIFY_TYPE_VISIBLE_LED, + OnIdentifyTriggerEffect, +}; + +void AppDeviceCallbacks::PostAttributeChangeCallback(EndpointId endpointId, ClusterId clusterId, AttributeId attributeId, + uint8_t type, uint16_t size, uint8_t * value) +{ + ESP_LOGI(TAG, + "PostAttributeChangeCallback - Cluster ID: '0x%04x', EndPoint ID: " + "'0x%02x', Attribute ID: '0x%04x'", + clusterId, endpointId, attributeId); + + switch (clusterId) + { + case Clusters::OnOff::Id: + OnOnOffPostAttributeChangeCallback(endpointId, attributeId, value); + break; + + case Clusters::LevelControl::Id: + OnLevelControlAttributeChangeCallback(endpointId, attributeId, value); + break; +#if CONFIG_DEVICE_TYPE_ESP32_C3_DEVKITM + case Clusters::ColorControl::Id: + OnColorControlAttributeChangeCallback(endpointId, attributeId, value); + break; +#endif + case Clusters::Identify::Id: + OnIdentifyPostAttributeChangeCallback(endpointId, attributeId, size, value); + break; + default: + ESP_LOGI(TAG, "Unhandled cluster ID: %d", clusterId); + break; + } + + ESP_LOGI(TAG, "Current free heap: %u\n", static_cast(heap_caps_get_free_size(MALLOC_CAP_8BIT))); +} + +void AppDeviceCallbacks::OnOnOffPostAttributeChangeCallback(EndpointId endpointId, AttributeId attributeId, uint8_t * value) +{ + VerifyOrExit(attributeId == ZCL_ON_OFF_ATTRIBUTE_ID, ESP_LOGI(TAG, "Unhandled Attribute ID: '0x%04x", attributeId)); + VerifyOrExit(endpointId == 1 || endpointId == 2, ESP_LOGE(TAG, "Unexpected EndPoint ID: `0x%02x'", endpointId)); + + // At this point we can assume that value points to a bool value. + mEndpointOnOffState[endpointId - 1] = *value; + endpointId == 1 ? statusLED1.Set(*value) : statusLED2.Set(*value); + +exit: + return; +} + +void AppDeviceCallbacks::OnLevelControlAttributeChangeCallback(EndpointId endpointId, AttributeId attributeId, uint8_t * value) +{ + bool onOffState = mEndpointOnOffState[endpointId - 1]; + uint8_t brightness = onOffState ? *value : 0; + + VerifyOrExit(attributeId == ZCL_CURRENT_LEVEL_ATTRIBUTE_ID, ESP_LOGI(TAG, "Unhandled Attribute ID: '0x%04x", attributeId)); + VerifyOrExit(endpointId == 1 || endpointId == 2, ESP_LOGE(TAG, "Unexpected EndPoint ID: `0x%02x'", endpointId)); + + // At this point we can assume that value points to a bool value. + endpointId == 1 ? statusLED1.SetBrightness(brightness) : statusLED2.SetBrightness(brightness); + +exit: + return; +} + +// Currently we only support ColorControl cluster for ESP32C3_DEVKITM which has +// an on-board RGB-LED +#if CONFIG_DEVICE_TYPE_ESP32_C3_DEVKITM +void AppDeviceCallbacks::OnColorControlAttributeChangeCallback(EndpointId endpointId, AttributeId attributeId, uint8_t * value) +{ + VerifyOrExit(attributeId == ZCL_COLOR_CONTROL_CURRENT_HUE_ATTRIBUTE_ID || + attributeId == ZCL_COLOR_CONTROL_CURRENT_SATURATION_ATTRIBUTE_ID, + ESP_LOGI(TAG, "Unhandled AttributeId ID: '0x%04x", attributeId)); + VerifyOrExit(endpointId == 1 || endpointId == 2, ESP_LOGE(TAG, "Unexpected EndPoint ID: `0x%02x'", endpointId)); + if (endpointId == 1) + { + uint8_t hue, saturation; + if (attributeId == ZCL_COLOR_CONTROL_CURRENT_HUE_ATTRIBUTE_ID) + { + hue = *value; + emberAfReadServerAttribute(endpointId, ZCL_COLOR_CONTROL_CLUSTER_ID, ZCL_COLOR_CONTROL_CURRENT_SATURATION_ATTRIBUTE_ID, + &saturation, sizeof(uint8_t)); + } + else + { + saturation = *value; + emberAfReadServerAttribute(endpointId, ZCL_COLOR_CONTROL_CLUSTER_ID, ZCL_COLOR_CONTROL_CURRENT_HUE_ATTRIBUTE_ID, &hue, + sizeof(uint8_t)); + } + statusLED1.SetColor(hue, saturation); + } +exit: + return; +} +#endif + +void AppDeviceCallbacks::OnIdentifyPostAttributeChangeCallback(EndpointId endpointId, AttributeId attributeId, uint16_t size, + uint8_t * value) +{ + if (attributeId == Clusters::Identify::Attributes::IdentifyTime::Id && size == 2) + { + uint16_t identifyTime; + memcpy(&identifyTime, value, size); + if (identifyTime) + { + // Currently we have no separate indicator LEDs on each endpoints. + // We are using LED1 for endpoint 0,1 and LED2 for endpoint 2 + endpointId == 2 ? statusLED2.Blink(kIdentifyTimerDelayMS * 2) : statusLED1.Blink(kIdentifyTimerDelayMS * 2); + } + else + { + bool onOffState; + endpointId == 0 ? onOffState = mEndpointOnOffState[0] : onOffState = mEndpointOnOffState[endpointId - 1]; + endpointId == 2 ? statusLED2.Set(onOffState) : statusLED1.Set(onOffState); + } + } +} + +bool emberAfBasicClusterMfgSpecificPingCallback(chip::app::CommandHandler * commandObj) +{ + emberAfSendDefaultResponse(emberAfCurrentCommand(), EMBER_ZCL_STATUS_SUCCESS); + return true; +} + +void AppDeviceCallbacksDelegate::OnIPv4ConnectivityEstablished() +{ + wifiLED.Set(true); +} +void AppDeviceCallbacksDelegate::OnIPv4ConnectivityLost() +{ + wifiLED.Set(false); +} diff --git a/examples/all-clusters-minimal-app/esp32/main/DeviceWithDisplay.cpp b/examples/all-clusters-minimal-app/esp32/main/DeviceWithDisplay.cpp new file mode 100644 index 00000000000000..987a095134b16d --- /dev/null +++ b/examples/all-clusters-minimal-app/esp32/main/DeviceWithDisplay.cpp @@ -0,0 +1,698 @@ +/* + * + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#include "DeviceWithDisplay.h" +#include + +#if CONFIG_HAVE_DISPLAY +using namespace ::chip; +using namespace ::chip::Credentials; +using namespace ::chip::DeviceManager; +using namespace ::chip::DeviceLayer; + +static const char * TAG = "DeviceWithDisplay"; + +#if CONFIG_DEVICE_TYPE_M5STACK + +Button gButtons[BUTTON_NUMBER] = { Button(BUTTON_1_GPIO_NUM), Button(BUTTON_2_GPIO_NUM), Button(BUTTON_3_GPIO_NUM) }; + +// Pretend these are devices with endpoints with clusters with attributes +typedef std::tuple Attribute; +typedef std::vector Attributes; +typedef std::tuple Cluster; +typedef std::vector Clusters; +typedef std::tuple Endpoint; +typedef std::vector Endpoints; +typedef std::tuple Device; +typedef std::vector Devices; +Devices devices; + +void AddAttribute(std::string name, std::string value) +{ + Attribute attribute = std::make_tuple(std::move(name), std::move(value)); + std::get<1>(std::get<1>(std::get<1>(devices.back()).back()).back()).emplace_back(std::move(attribute)); +} + +void AddCluster(std::string name) +{ + Cluster cluster = std::make_tuple(std::move(name), std::move(Attributes())); + std::get<1>(std::get<1>(devices.back()).back()).emplace_back(std::move(cluster)); +} + +void AddEndpoint(std::string name) +{ + Endpoint endpoint = std::make_tuple(std::move(name), std::move(Clusters())); + std::get<1>(devices.back()).emplace_back(std::move(endpoint)); +} + +void AddDevice(std::string name) +{ + Device device = std::make_tuple(std::move(name), std::move(Endpoints())); + devices.emplace_back(std::move(device)); +} + +class TouchesMatterStackModel : public ListScreen::Model +{ + // We could override Action() and then hope focusIndex has not changed by + // the time our queued task runs, but it's cleaner to just capture its value + // now. + struct QueuedAction + { + QueuedAction(TouchesMatterStackModel * selfArg, int iArg) : self(selfArg), i(iArg) {} + TouchesMatterStackModel * self; + int i; + }; + + void ItemAction(int i) final + { + auto * action = chip::Platform::New(this, i); + chip::DeviceLayer::PlatformMgr().ScheduleWork(QueuedActionHandler, reinterpret_cast(action)); + } + + static void QueuedActionHandler(intptr_t closure) + { + auto * queuedAction = reinterpret_cast(closure); + queuedAction->self->DoAction(queuedAction->i); + chip::Platform::Delete(queuedAction); + } + + virtual void DoAction(int i) = 0; +}; + +class EditAttributeListModel : public TouchesMatterStackModel +{ + int deviceIndex; + int endpointIndex; + int clusterIndex; + int attributeIndex; + +public: + EditAttributeListModel(int deviceIndex, int endpointIndex, int clusterIndex, int attributeIndex) : + deviceIndex(deviceIndex), endpointIndex(endpointIndex), clusterIndex(clusterIndex), attributeIndex(attributeIndex) + {} + Attribute & attribute() + { + return std::get<1>(std::get<1>(std::get<1>(devices[deviceIndex])[endpointIndex])[clusterIndex])[attributeIndex]; + } + bool IsBooleanAttribute() + { + auto & attribute = this->attribute(); + auto & value = std::get<1>(attribute); + return value == "On" || value == "Off" || value == "Yes" || value == "No"; + } + virtual std::string GetTitle() + { + auto & attribute = this->attribute(); + auto & name = std::get<0>(attribute); + auto & value = std::get<1>(attribute); + char buffer[64]; + snprintf(buffer, sizeof(buffer), "%s : %s", name.c_str(), value.c_str()); + return buffer; + } + virtual int GetItemCount() { return IsBooleanAttribute() ? 1 : 2; } + virtual std::string GetItemText(int i) + { + if (IsBooleanAttribute()) + { + return "Toggle"; + } + return i == 0 ? "+" : "-"; + } + + void DoAction(int i) override + { + auto & attribute = this->attribute(); + auto & value = std::get<1>(attribute); + int n; + if (sscanf(value.c_str(), "%d", &n) == 1) + { + auto & name = std::get<0>(attribute); + + ESP_LOGI(TAG, "editing attribute as integer: %d (%s)", n, i == 0 ? "+" : "-"); + n += (i == 0) ? 1 : -1; + char buffer[32]; + sprintf(buffer, "%d", n); + if (name == "Temperature") + { + // update the temp attribute here for hardcoded endpoint 1 + chip::app::Clusters::TemperatureMeasurement::Attributes::MeasuredValue::Set(1, static_cast(n * 100)); + } + else if (name == "Color Current Level") + { + // update the current level here for hardcoded endpoint 1 + ESP_LOGI(TAG, "Brightness changed to : %d", (n * 100 / 255)); + app::Clusters::LevelControl::Attributes::CurrentLevel::Set(1, n); + } + else if (name == "Current Hue") + { + // update the current hue here for hardcoded endpoint 1 + ESP_LOGI(TAG, "Hue changed to : %d", n * 360 / 254); + app::Clusters::ColorControl::Attributes::CurrentHue::Set(1, n); + } + else if (name == "Current Saturation") + { + // update the current saturation here for hardcoded endpoint 1 + ESP_LOGI(TAG, "Saturation changed to : %d", n * 100 / 254); + app::Clusters::ColorControl::Attributes::CurrentSaturation::Set(1, n); + } + else if (name == "Illuminance") + { + // update the current illuminance here for hardcoded endpoint 1 + ESP_LOGI(TAG, "Illuminance changed to : %d", n); + app::Clusters::IlluminanceMeasurement::Attributes::MeasuredValue::Set(1, static_cast(n)); + } + else if (name == "Humidity") + { + // update the current humidity here for hardcoded endpoint 1 + ESP_LOGI(TAG, "Humidity changed to : %d", n); + app::Clusters::RelativeHumidityMeasurement::Attributes::MeasuredValue::Set(1, static_cast(n * 100)); + } + else if (name == "OccupiedCoolingSetpoint") + { + ESP_LOGI(TAG, "OccupiedCoolingSetpoint changed to : %d", n); + app::Clusters::Thermostat::Attributes::OccupiedCoolingSetpoint::Set(1, static_cast(n * 100)); + } + else if (name == "OccupiedHeatingSetpoint") + { + ESP_LOGI(TAG, "OccupiedHeatingSetpoint changed to : %d", n); + app::Clusters::Thermostat::Attributes::OccupiedHeatingSetpoint::Set(1, static_cast(n * 100)); + } + else if (name == "SystemMode") + { + ESP_LOGI(TAG, "SystemMode changed to : %d", n); + app::Clusters::Thermostat::Attributes::OccupiedHeatingSetpoint::Set(1, n); + } + else if (name == "Current Lift") + { + // update the current lift here for hardcoded endpoint 1 + ESP_LOGI(TAG, "Current position lift percent 100ths changed to : %d", n * 100); + app::Clusters::WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Set(1, static_cast(n * 100)); + } + else if (name == "Current Tilt") + { + // update the current tilt here for hardcoded endpoint 1 + ESP_LOGI(TAG, "Current position tilt percent 100ths changed to : %d", n * 100); + app::Clusters::WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Set(1, static_cast(n * 100)); + } + else if (name == "Opr Status") + { + // update the operational status here for hardcoded endpoint 1 + ESP_LOGI(TAG, "Operational status changed to : %d", n); + app::Clusters::WindowCovering::Attributes::OperationalStatus::Set(1, static_cast(n)); + } + else if (name == "Bat remaining") + { + // update the battery percent remaining here for hardcoded endpoint 1 + ESP_LOGI(TAG, "Battery percent remaining changed to : %d", n); + app::Clusters::PowerSource::Attributes::BatteryPercentRemaining::Set(1, static_cast(n * 2)); + } + value = buffer; + } + else if (IsBooleanAttribute()) + { + auto & name = std::get<0>(attribute); + auto & cluster = std::get<0>(std::get<1>(std::get<1>(devices[deviceIndex])[endpointIndex])[i]); + + if (name == "OnOff" && cluster == "OnOff") + { + value = (value == "On") ? "Off" : "On"; + uint8_t attributeValue = (value == "On") ? 1 : 0; + emberAfWriteServerAttribute(endpointIndex + 1, ZCL_ON_OFF_CLUSTER_ID, ZCL_ON_OFF_ATTRIBUTE_ID, + (uint8_t *) &attributeValue, ZCL_BOOLEAN_ATTRIBUTE_TYPE); + } + + if (name == "Occupancy" && cluster == "Occupancy Sensor") + { + value = (value == "Yes") ? "No" : "Yes"; + uint8_t attributeValue = (value == "Yes") ? 1 : 0; + ESP_LOGI(TAG, "Occupancy changed to : %s", value.c_str()); + // update the current occupancy here for hardcoded endpoint 1 + app::Clusters::OccupancySensing::Attributes::Occupancy::Set(1, attributeValue); + } + } + else + { + auto & name = std::get<0>(attribute); + auto & cluster = std::get<0>(std::get<1>(std::get<1>(devices[deviceIndex])[endpointIndex])[0]); + + ESP_LOGI(TAG, "editing attribute as string: '%s' (%s)", value.c_str(), i == 0 ? "+" : "-"); + ESP_LOGI(TAG, "name and cluster: '%s' (%s)", name.c_str(), cluster.c_str()); + if (name == "State" && cluster == "Lock") + { + value = (value == "Closed") ? "Open" : "Closed"; + using namespace chip::app::Clusters; + // update the doorlock attribute here + auto attributeValue = value == "Closed" ? DoorLock::DlLockState::kLocked : DoorLock::DlLockState::kUnlocked; + DoorLock::Attributes::LockState::Set(DOOR_LOCK_SERVER_ENDPOINT, attributeValue); + } + else if (name == "Charge level" && cluster == "Power Source") + { + using namespace chip::app::Clusters::PowerSource; + auto attributeValue = BatChargeLevel::kOk; + + if (value == "OK") + { + value = "Warning"; + attributeValue = BatChargeLevel::kWarning; + } + else if (value == "Warning") + { + value = "Critical"; + attributeValue = BatChargeLevel::kCritical; + } + else + { + value = "OK"; + attributeValue = BatChargeLevel::kOk; + } + + // update the battery charge level here for hardcoded endpoint 1 + ESP_LOGI(TAG, "Battery charge level changed to : %u", static_cast(attributeValue)); + app::Clusters::PowerSource::Attributes::BatteryChargeLevel::Set(1, static_cast(attributeValue)); + } + else + { + value = (value == "Closed") ? "Open" : "Closed"; + } + } + } +}; + +class AttributeListModel : public ListScreen::Model +{ + int deviceIndex; + int endpointIndex; + int clusterIndex; + +public: + AttributeListModel(int deviceIndex, int endpointIndex, int clusterIndex) : + deviceIndex(deviceIndex), endpointIndex(endpointIndex), clusterIndex(clusterIndex) + {} + virtual std::string GetTitle() { return "Attributes"; } + virtual int GetItemCount() + { + return std::get<1>(std::get<1>(std::get<1>(devices[deviceIndex])[endpointIndex])[clusterIndex]).size(); + } + virtual std::string GetItemText(int i) + { + auto & attribute = std::get<1>(std::get<1>(std::get<1>(devices[deviceIndex])[endpointIndex])[clusterIndex])[i]; + auto & name = std::get<0>(attribute); + auto & value = std::get<1>(attribute); + char buffer[64]; + snprintf(buffer, sizeof(buffer), "%s : %s", name.c_str(), value.c_str()); + return buffer; + } + virtual void ItemAction(int i) + { + ESP_LOGI(TAG, "Opening attribute %d", i); + ScreenManager::PushScreen(chip::Platform::New( + chip::Platform::New(deviceIndex, endpointIndex, clusterIndex, i))); + } +}; +class ClusterListModel : public ListScreen::Model +{ + int deviceIndex; + int endpointIndex; + +public: + ClusterListModel(int deviceIndex, int endpointIndex) : deviceIndex(deviceIndex), endpointIndex(endpointIndex) {} + virtual std::string GetTitle() { return "Clusters"; } + virtual int GetItemCount() { return std::get<1>(std::get<1>(devices[deviceIndex])[endpointIndex]).size(); } + virtual std::string GetItemText(int i) { return std::get<0>(std::get<1>(std::get<1>(devices[deviceIndex])[endpointIndex])[i]); } + virtual void ItemAction(int i) + { + ESP_LOGI(TAG, "Opening cluster %d", i); + ScreenManager::PushScreen( + chip::Platform::New(chip::Platform::New(deviceIndex, endpointIndex, i))); + } +}; + +class EndpointListModel : public ListScreen::Model +{ + int deviceIndex; + +public: + EndpointListModel(int deviceIndex) : deviceIndex(deviceIndex) {} + virtual std::string GetTitle() { return "Endpoints"; } + virtual int GetItemCount() { return std::get<1>(devices[deviceIndex]).size(); } + virtual std::string GetItemText(int i) { return std::get<0>(std::get<1>(devices[deviceIndex])[i]); } + virtual void ItemAction(int i) + { + ESP_LOGI(TAG, "Opening endpoint %d", i); + ScreenManager::PushScreen(chip::Platform::New(chip::Platform::New(deviceIndex, i))); + } +}; + +class DeviceListModel : public ListScreen::Model +{ +public: + virtual std::string GetTitle() { return "Devices"; } + virtual int GetItemCount() { return devices.size(); } + virtual std::string GetItemText(int i) { return std::get<0>(devices[i]); } + virtual void ItemAction(int i) + { + ESP_LOGI(TAG, "Opening device %d", i); + ScreenManager::PushScreen(chip::Platform::New(chip::Platform::New(i))); + } +}; + +class ActionListModel : public ListScreen::Model +{ + int GetItemCount() override { return static_cast(mActions.size()); } + std::string GetItemText(int i) override { return mActions[i].title.c_str(); } + void ItemAction(int i) override + { + ESP_LOGI(TAG, "generic action %d", i); + mActions[i].action(); + } + +protected: + void AddAction(const char * name, std::function action) { mActions.push_back(Action(name, action)); } + +private: + struct Action + { + std::string title; + std::function action; + + Action(const char * t, std::function a) : title(t), action(a) {} + }; + + std::vector mActions; +}; + +class MdnsDebugListModel : public ActionListModel +{ +public: + std::string GetTitle() override { return "mDNS Debug"; } + + MdnsDebugListModel() { AddAction("(Re-)Init", std::bind(&MdnsDebugListModel::DoReinit, this)); } + +private: + void DoReinit() + { + CHIP_ERROR err = Dnssd::ServiceAdvertiser::Instance().Init(DeviceLayer::UDPEndPointManager()); + if (err != CHIP_NO_ERROR) + { + ESP_LOGE(TAG, "Error initializing: %s", err.AsString()); + } + } +}; + +class SetupListModel : public TouchesMatterStackModel +{ +public: + SetupListModel() + { + std::string resetWiFi = "Reset WiFi"; + std::string resetToFactory = "Reset to factory"; + std::string forceWiFiCommissioningBasic = "Force WiFi commissioning (basic)"; + options.emplace_back(resetWiFi); + options.emplace_back(resetToFactory); + options.emplace_back(forceWiFiCommissioningBasic); + } + virtual std::string GetTitle() { return "Setup"; } + virtual int GetItemCount() { return options.size(); } + virtual std::string GetItemText(int i) { return options.at(i); } + void DoAction(int i) override + { + ESP_LOGI(TAG, "Opening options %d: %s", i, GetItemText(i).c_str()); + if (i == 0) + { + ConnectivityMgr().ClearWiFiStationProvision(); + chip::Server::GetInstance().GetFabricTable().DeleteAllFabrics(); + chip::Server::GetInstance().GetCommissioningWindowManager().OpenBasicCommissioningWindow(); + } + else if (i == 1) + { + chip::Server::GetInstance().ScheduleFactoryReset(); + } + else if (i == 2) + { + chip::Server::GetInstance().GetFabricTable().DeleteAllFabrics(); + auto & commissionMgr = chip::Server::GetInstance().GetCommissioningWindowManager(); + commissionMgr.OpenBasicCommissioningWindow(commissionMgr.MaxCommissioningTimeout(), + CommissioningWindowAdvertisement::kDnssdOnly); + } + } + +private: + std::vector options; +}; +class CustomScreen : public Screen +{ +public: + virtual void Display() + { + TFT_drawCircle(0.3 * DisplayWidth, 0.3 * DisplayHeight, 8, TFT_BLUE); + TFT_drawCircle(0.7 * DisplayWidth, 0.3 * DisplayHeight, 8, TFT_BLUE); + TFT_drawLine(0.2 * DisplayWidth, 0.6 * DisplayHeight, 0.3 * DisplayWidth, 0.7 * DisplayHeight, TFT_BLUE); + TFT_drawLine(0.3 * DisplayWidth, 0.7 * DisplayHeight, 0.7 * DisplayWidth, 0.7 * DisplayHeight, TFT_BLUE); + TFT_drawLine(0.7 * DisplayWidth, 0.7 * DisplayHeight, 0.8 * DisplayWidth, 0.6 * DisplayHeight, TFT_BLUE); + } +}; + +void SetupPretendDevices() +{ + AddDevice("Watch"); + AddEndpoint("Default"); + AddCluster("Battery"); + AddAttribute("Level", "89"); + AddAttribute("Voltage", "490"); + AddAttribute("Amperage", "501"); + AddCluster("Heart Monitor"); + AddAttribute("BPM", "72"); + AddCluster("Step Counter"); + AddAttribute("Steps", "9876"); + + AddDevice("Light Bulb"); + AddEndpoint("1"); + AddCluster("OnOff"); + AddAttribute("OnOff", "Off"); + AddCluster("Level Control"); + AddAttribute("Current Level", "255"); + AddEndpoint("2"); + AddCluster("OnOff"); + AddAttribute("OnOff", "Off"); + AddCluster("Level Control"); + AddAttribute("Current Level", "255"); + + AddDevice("Thermometer"); + AddEndpoint("External"); + AddCluster("Thermometer"); + AddAttribute("Temperature", "21"); + // write the temp attribute + chip::app::Clusters::TemperatureMeasurement::Attributes::MeasuredValue::Set(1, static_cast(21 * 100)); + + AddDevice("Door Lock"); + AddEndpoint("Default"); + AddCluster("Lock"); + AddAttribute("State", "Open"); + // write the door lock state + chip::app::Clusters::DoorLock::Attributes::LockState::Set(DOOR_LOCK_SERVER_ENDPOINT, + chip::app::Clusters::DoorLock::DlLockState::kUnlocked); + AddDevice("Garage 1"); + AddEndpoint("Door 1"); + AddCluster("Door"); + AddAttribute("State", "Closed"); + AddEndpoint("Door 2"); + AddCluster("Door"); + AddAttribute("State", "Closed"); + AddEndpoint("Door 3"); + AddCluster("Door"); + AddAttribute("State", "Open"); + + AddDevice("Garage 2"); + AddEndpoint("Door 1"); + AddCluster("Door"); + AddAttribute("State", "Open"); + AddEndpoint("Door 2"); + AddCluster("Door"); + AddAttribute("State", "Closed"); + + AddDevice("Occupancy Sensor"); + AddEndpoint("External"); + AddCluster("Occupancy Sensor"); + AddAttribute("Occupancy", "Yes"); + app::Clusters::OccupancySensing::Attributes::Occupancy::Set(1, 1); + + AddDevice("Contact Sensor"); + AddEndpoint("External"); + AddCluster("Contact Sensor"); + AddAttribute("Contact", "true"); + app::Clusters::BooleanState::Attributes::StateValue::Set(1, true); + + AddDevice("Thermostat"); + AddEndpoint("1"); + AddCluster("Thermostat"); + app::Clusters::TemperatureMeasurement::Attributes::MeasuredValue::Set(1, static_cast(21 * 100)); + app::Clusters::Thermostat::Attributes::LocalTemperature::Set(1, static_cast(21 * 100)); + AddAttribute("SystemMode", "4"); + app::Clusters::Thermostat::Attributes::SystemMode::Set(1, 4); + AddAttribute("OccupiedCoolingSetpoint", "19"); + app::Clusters::Thermostat::Attributes::OccupiedCoolingSetpoint::Set(1, static_cast(19 * 100)); + AddAttribute("OccupiedHeatingSetpoint", "25"); + app::Clusters::Thermostat::Attributes::OccupiedHeatingSetpoint::Set(1, static_cast(25 * 100)); + + AddDevice("Humidity Sensor"); + AddEndpoint("External"); + AddCluster("Humidity Sensor"); + AddAttribute("Humidity", "30"); + app::Clusters::RelativeHumidityMeasurement::Attributes::MeasuredValue::Set(1, static_cast(30 * 100)); + + AddDevice("Light Sensor"); + AddEndpoint("External"); + AddCluster("Illuminance Measurement"); + AddAttribute("Illuminance", "1000"); + app::Clusters::IlluminanceMeasurement::Attributes::MeasuredValue::Set(1, static_cast(1000)); + + AddDevice("Color Light"); + AddEndpoint("1"); + AddCluster("OnOff"); + AddAttribute("OnOff", "Off"); + app::Clusters::OnOff::Attributes::OnOff::Set(1, false); + AddCluster("Level Control"); + AddAttribute("Color Current Level", "255"); + app::Clusters::LevelControl::Attributes::CurrentLevel::Set(1, 255); + AddEndpoint("2"); + AddCluster("Color Control"); + AddAttribute("Current Hue", "200"); + app::Clusters::ColorControl::Attributes::CurrentHue::Set(1, 200); + AddAttribute("Current Saturation\n", "150"); + app::Clusters::ColorControl::Attributes::CurrentSaturation::Set(1, 150); + + AddDevice("Window Covering"); + AddEndpoint("1"); + AddCluster("Window Covering"); + AddAttribute("Current Lift", "5"); + app::Clusters::WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Set(1, static_cast(5 * 100)); + AddAttribute("Current Tilt", "5"); + app::Clusters::WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Set(1, static_cast(5 * 100)); + AddAttribute("Opr Status", "0"); + app::Clusters::WindowCovering::Attributes::OperationalStatus::Set(1, static_cast(0)); + + AddDevice("Battery"); + AddEndpoint("1"); + AddCluster("Power Source"); + AddAttribute("Bat remaining", "70"); + app::Clusters::PowerSource::Attributes::BatteryPercentRemaining::Set(1, static_cast(70 * 2)); + AddAttribute("Charge level", "0"); + app::Clusters::PowerSource::Attributes::BatteryChargeLevel::Set(1, static_cast(0)); +} + +esp_err_t InitM5Stack(std::string qrCodeText) +{ + esp_err_t err; + // Initialize the buttons. + err = gpio_install_isr_service(0); + ESP_RETURN_ON_ERROR(err, TAG, "Button preInit failed: %s", esp_err_to_name(err)); + for (int i = 0; i < BUTTON_NUMBER; ++i) + { + err = gButtons[i].Init(); + ESP_RETURN_ON_ERROR(err, TAG, "Button.Init() failed: %s", esp_err_to_name(err)); + } + // Push a rudimentary user interface. + ScreenManager::PushScreen(chip::Platform::New( + (chip::Platform::New()) + ->Title("CHIP") + ->Action([](int i) { ESP_LOGI(TAG, "action on item %d", i); }) + ->Item("Devices", + []() { + ESP_LOGI(TAG, "Opening device list"); + ScreenManager::PushScreen(chip::Platform::New(chip::Platform::New())); + }) + ->Item("mDNS Debug", + []() { + ESP_LOGI(TAG, "Opening MDNS debug"); + ScreenManager::PushScreen(chip::Platform::New(chip::Platform::New())); + }) + ->Item("QR Code", + [=]() { + ESP_LOGI(TAG, "Opening QR code screen"); + PrintOnboardingCodes(chip::RendezvousInformationFlags(CONFIG_RENDEZVOUS_MODE)); + ScreenManager::PushScreen(chip::Platform::New(qrCodeText)); + }) + ->Item("Setup", + [=]() { + ESP_LOGI(TAG, "Opening Setup list"); + ScreenManager::PushScreen(chip::Platform::New(chip::Platform::New())); + }) + ->Item("Status", + [=]() { + ESP_LOGI(TAG, "Opening Status screen"); + ScreenManager::PushScreen(chip::Platform::New()); + }) + ->Item("Custom", + []() { + ESP_LOGI(TAG, "Opening custom screen"); + ScreenManager::PushScreen(chip::Platform::New()); + }) + ->Item("More") + ->Item("Items") + ->Item("For") + ->Item("Demo"))); + return ESP_OK; +} +#endif + +void InitDeviceDisplay() +{ + // Create buffer for QR code that can fit max size and null terminator. + char qrCodeBuffer[chip::QRCodeBasicSetupPayloadGenerator::kMaxQRCodeBase38RepresentationLength + 1]; + chip::MutableCharSpan qrCodeText(qrCodeBuffer); + + // Get QR Code and emulate its content using NFC tag + GetQRCode(qrCodeText, chip::RendezvousInformationFlags(CONFIG_RENDEZVOUS_MODE)); + + // Initialize the display device. + esp_err_t err = InitDisplay(); + if (err != ESP_OK) + { + ESP_LOGE(TAG, "InitDisplay() failed: %s", esp_err_to_name(err)); + return; + } + + // Initialize the screen manager + ScreenManager::Init(); + + // Connect the status LED to VLEDs. + int vled1 = ScreenManager::AddVLED(TFT_GREEN); + int vled2 = ScreenManager::AddVLED(TFT_RED); + statusLED1.SetVLED(vled1, vled2); + + int vled3 = ScreenManager::AddVLED(TFT_CYAN); + int vled4 = ScreenManager::AddVLED(TFT_ORANGE); + statusLED2.SetVLED(vled3, vled4); + + bluetoothLED.SetVLED(ScreenManager::AddVLED(TFT_BLUE)); + wifiLED.SetVLED(ScreenManager::AddVLED(TFT_YELLOW)); + pairingWindowLED.SetVLED(ScreenManager::AddVLED(TFT_ORANGE)); + +#if CONFIG_DEVICE_TYPE_M5STACK + + InitM5Stack(qrCodeText.data()); + +#elif CONFIG_DEVICE_TYPE_ESP32_WROVER_KIT + + // Display the QR Code + QRCodeScreen qrCodeScreen(qrCodeText.data()); + qrCodeScreen.Display(); + +#endif +} +#endif diff --git a/examples/tv-casting-app/darwin/darwin/SceneDelegate.h b/examples/all-clusters-minimal-app/esp32/main/Globals.cpp similarity index 72% rename from examples/tv-casting-app/darwin/darwin/SceneDelegate.h rename to examples/all-clusters-minimal-app/esp32/main/Globals.cpp index dd12a1c96cc3af..1334e818ceffdb 100644 --- a/examples/tv-casting-app/darwin/darwin/SceneDelegate.h +++ b/examples/all-clusters-minimal-app/esp32/main/Globals.cpp @@ -1,6 +1,7 @@ -/** +/* * - * Copyright (c) 2020-2022 Project CHIP Authors + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,10 +16,10 @@ * limitations under the License. */ -#import +#include "Globals.h" -@interface SceneDelegate : UIResponder - -@property (strong, nonatomic) UIWindow * window; - -@end +LEDWidget statusLED1; +LEDWidget statusLED2; +BluetoothWidget bluetoothLED; +WiFiWidget wifiLED; +WiFiWidget pairingWindowLED; diff --git a/examples/all-clusters-minimal-app/esp32/main/Kconfig.projbuild b/examples/all-clusters-minimal-app/esp32/main/Kconfig.projbuild new file mode 100644 index 00000000000000..8791a80a443e71 --- /dev/null +++ b/examples/all-clusters-minimal-app/esp32/main/Kconfig.projbuild @@ -0,0 +1,149 @@ +# +# Copyright (c) 2022 Project CHIP Authors +# All rights reserved. +# +# 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. +# +# Description: +# Configuration options CHIP ESP32 demo application. +# + +menu "Demo" + + choice + prompt "Device Type" + default DEVICE_TYPE_ESP32_DEVKITC if IDF_TARGET_ESP32 + default DEVICE_TYPE_ESP32_C3_DEVKITM if IDF_TARGET_ESP32C3 + help + Specifies the type of ESP32 device. + + Note that the "ESP32-DevKitC" choice is compatible with a number of clone devices + available from third-party manufacturers. + + config DEVICE_TYPE_ESP32_DEVKITC + bool "ESP32-DevKitC" + depends on IDF_TARGET_ESP32 + config DEVICE_TYPE_ESP32_WROVER_KIT + bool "ESP32-WROVER-KIT_V4.1" + depends on IDF_TARGET_ESP32 + config DEVICE_TYPE_M5STACK + bool "M5Stack" + depends on IDF_TARGET_ESP32 + config DEVICE_TYPE_ESP32_C3_DEVKITM + bool "ESP32C3-DevKitM" + depends on IDF_TARGET_ESP32C3 + endchoice + + choice + prompt "Rendezvous Mode" + default RENDEZVOUS_MODE_BLE if BT_ENABLED + default RENDEZVOUS_MODE_SOFTAP + help + Specifies the Rendezvous mode of the peripheral. + + config RENDEZVOUS_MODE_SOFTAP + bool "Soft-AP" + config RENDEZVOUS_MODE_BLE + bool "BLE" + depends on BT_ENABLED + config RENDEZVOUS_MODE_ON_NETWORK + bool "On-Network" + config RENDEZVOUS_MODE_SOFTAP_ON_NETWORK + bool "Soft-AP / On-Network" + config RENDEZVOUS_MODE_BLE_ON_NETWORK + bool "BLE / On-Network" + endchoice + + config ECHO_HOST_IP + string "IPV4 address" + default "127.0.0.1" + depends on USE_ECHO_CLIENT + help + The IPV4 Address of the ECHO Server. + + # NOTE: This config is not displayed as a input in the Kconfig menu, as its value is + # entirely derived from the Device Type choice. However the CONFIG_EXAMPLE_DISPLAY_TYPE + # define that is produced is needed to configure the TFT library correctly. + config TFT_PREDEFINED_DISPLAY_TYPE + int + range 0 5 + default 0 if DEVICE_TYPE_ESP32_DEVKITC + default 0 if DEVICE_TYPE_ESP32_C3_DEVKITM + default 3 if DEVICE_TYPE_M5STACK + default 4 if DEVICE_TYPE_ESP32_WROVER_KIT + + config RENDEZVOUS_MODE + int + range 0 8 + default 1 if RENDEZVOUS_MODE_SOFTAP + default 2 if RENDEZVOUS_MODE_BLE + default 4 if RENDEZVOUS_MODE_ON_NETWORK + default 5 if RENDEZVOUS_MODE_SOFTAP_ON_NETWORK + default 6 if RENDEZVOUS_MODE_BLE_ON_NETWORK + + config DISPLAY_AUTO_OFF + bool "Automatically turn off the M5Stack's Display after a few seconds" + default "y" + depends on DEVICE_TYPE_M5STACK + help + To reduce wear and heat the M5Stack's Display is automatically switched off after a few seconds + + config STATUS_LED_GPIO_NUM + int + range 0 40 + default 2 if DEVICE_TYPE_ESP32_DEVKITC #Use LED1 (blue LED) as status LED on DevKitC + default 8 if DEVICE_TYPE_ESP32_C3_DEVKITM + default 26 if DEVICE_TYPE_ESP32_WROVER_KIT + default 40 if DEVICE_TYPE_M5STACK + help + Each board has a status led, define its pin number. + +endmenu + +menu "PW RPC Debug channel" +depends on ENABLE_PW_RPC + config EXAMPLE_UART_PORT_NUM + int "UART port number" + range 0 2 if IDF_TARGET_ESP32 + range 0 1 if IDF_TARGET_ESP32C3 + default 0 + help + UART communication port number for the example. + See UART documentation for available port numbers. + + config EXAMPLE_UART_BAUD_RATE + int "UART communication speed" + range 1200 115200 + default 115200 + help + UART communication speed for Modbus example. + + config EXAMPLE_UART_RXD + int "UART RXD pin number" + range 0 34 if IDF_TARGET_ESP32 + range 0 19 if IDF_TARGET_ESP32C3 + default 5 + help + GPIO number for UART RX pin. See UART documentation for more information + about available pin numbers for UART. + + config EXAMPLE_UART_TXD + int "UART TXD pin number" + range 0 34 if IDF_TARGET_ESP32 + range 0 19 if IDF_TARGET_ESP32C3 + default 4 + help + GPIO number for UART TX pin. See UART documentation for more information + about available pin numbers for UART. + +endmenu diff --git a/examples/all-clusters-minimal-app/esp32/main/LEDWidget.cpp b/examples/all-clusters-minimal-app/esp32/main/LEDWidget.cpp new file mode 100644 index 00000000000000..13dcdc4893c2cf --- /dev/null +++ b/examples/all-clusters-minimal-app/esp32/main/LEDWidget.cpp @@ -0,0 +1,287 @@ +/* + * + * Copyright (c) 2018 Nest Labs, Inc. + * All rights reserved. + * + * 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. + */ + +/** + * @file LEDWidget.cpp + * + * Implements an LED Widget controller that is usually tied to a GPIO + * It also updates the display widget if it's enabled + */ + +#include "LEDWidget.h" + +#include "ScreenManager.h" + +#include "esp_log.h" +#include "esp_system.h" +#include "esp_timer.h" +#if CONFIG_DEVICE_TYPE_ESP32_C3_DEVKITM +#include "driver/rmt.h" +#include "led_strip.h" +#define RMT_TX_DEFAULT_GPIO GPIO_NUM_8 +#define RMT_TX_DEFAULT_CHANNEL RMT_CHANNEL_0 +static led_strip_t * strip = NULL; +#else +#include "driver/ledc.h" +#include "hal/ledc_types.h" +#endif +void LEDWidget::Init(gpio_num_t gpioNum) +{ + mLastChangeTimeUS = 0; + mBlinkOnTimeMS = 0; + mBlinkOffTimeMS = 0; + mGPIONum = gpioNum; + mVLED1 = -1; + mVLED2 = -1; + mState = false; + mError = false; + errorTimer = NULL; +#if CONFIG_DEVICE_TYPE_ESP32_C3_DEVKITM + if (gpioNum == RMT_TX_DEFAULT_GPIO) + { + rmt_config_t config = RMT_DEFAULT_CONFIG_TX(RMT_TX_DEFAULT_GPIO, RMT_TX_DEFAULT_CHANNEL); + config.clk_div = 2; + rmt_config(&config); + rmt_driver_install(config.channel, 0, 0); + led_strip_config_t strip_config = LED_STRIP_DEFAULT_CONFIG(1, (led_strip_dev_t) config.channel); + strip = led_strip_new_rmt_ws2812(&strip_config); + mDefaultOnBrightness = UINT8_MAX; + mHue = 0; + mSaturation = 0; + } +#else + if (gpioNum < GPIO_NUM_MAX) + { + ledc_timer_config_t ledc_timer = { + .speed_mode = LEDC_LOW_SPEED_MODE, // timer mode + .duty_resolution = LEDC_TIMER_8_BIT, // resolution of PWM duty + .timer_num = LEDC_TIMER_1, // timer index + .freq_hz = 5000, // frequency of PWM signal + .clk_cfg = LEDC_AUTO_CLK, // Auto select the source clock + }; + ledc_timer_config(&ledc_timer); + ledc_channel_config_t ledc_channel = { + .gpio_num = gpioNum, + .speed_mode = LEDC_LOW_SPEED_MODE, + .channel = LEDC_CHANNEL_0, + .intr_type = LEDC_INTR_DISABLE, + .timer_sel = LEDC_TIMER_1, + .duty = 0, + .hpoint = 0, + }; + ledc_channel_config(&ledc_channel); + mDefaultOnBrightness = UINT8_MAX; + } +#endif +} + +void LEDWidget::Set(bool state) +{ + mBlinkOnTimeMS = mBlinkOffTimeMS = 0; + DoSet(state); +} + +void LEDWidget::SetBrightness(uint8_t brightness) +{ +#if CONFIG_DEVICE_TYPE_ESP32_C3_DEVKITM + if (strip) + { + uint8_t red, green, blue; + HSB2rgb(mHue, mSaturation, brightness, red, green, blue); + strip->set_pixel(strip, 0, red, green, blue); + strip->refresh(strip, 100); + } +#else + if (mGPIONum < GPIO_NUM_MAX) + { + ledc_set_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_0, brightness); + ledc_update_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_0); + } +#endif + if (brightness > 0) + { + mDefaultOnBrightness = brightness; + } +#if CONFIG_HAVE_DISPLAY + if (mVLED1 != -1) + { + ScreenManager::SetVLED(mVLED1, mState); + } +#endif // CONFIG_HAVE_DISPLAY +} + +void LEDWidget::Blink(uint32_t changeRateMS) +{ + Blink(changeRateMS, changeRateMS); +} + +void LEDWidget::Blink(uint32_t onTimeMS, uint32_t offTimeMS) +{ + mBlinkOnTimeMS = onTimeMS; + mBlinkOffTimeMS = offTimeMS; + Animate(); +} + +void ClearErrorState(TimerHandle_t handle) +{ +#if CONFIG_HAVE_DISPLAY + LEDWidget * pWidget = (LEDWidget *) pvTimerGetTimerID(handle); + pWidget->mError = false; + if (pWidget->mVLED2 != -1) + { + ScreenManager::SetVLED(pWidget->mVLED2, false); + } +#endif +} + +void LEDWidget::BlinkOnError() +{ +#if CONFIG_HAVE_DISPLAY + mError = true; + if (errorTimer != NULL) + { + xTimerDelete(errorTimer, 0); + } + errorTimer = xTimerCreate("ErrorTimer", pdMS_TO_TICKS(2000), false, this, ClearErrorState); + xTimerStart(errorTimer, 0); + if (mVLED2 != -1) + { + ScreenManager::SetVLED(mVLED2, true); + } +#endif +} + +void LEDWidget::Animate() +{ + if (mBlinkOnTimeMS != 0 && mBlinkOffTimeMS != 0) + { + int64_t nowUS = ::esp_timer_get_time(); + int64_t stateDurUS = ((mState) ? mBlinkOnTimeMS : mBlinkOffTimeMS) * 1000LL; + int64_t nextChangeTimeUS = mLastChangeTimeUS + stateDurUS; + + if (nowUS > nextChangeTimeUS) + { + DoSet(!mState); + mLastChangeTimeUS = nowUS; + } + } +} + +void LEDWidget::DoSet(bool state) +{ + bool stateChange = (mState != state); + mState = state; +#if CONFIG_DEVICE_TYPE_ESP32_C3_DEVKITM + if (strip) + { + uint8_t red, green, blue; + uint8_t brightness = state ? mDefaultOnBrightness : 0; + HSB2rgb(mHue, mSaturation, brightness, red, green, blue); + strip->set_pixel(strip, 0, red, green, blue); + strip->refresh(strip, 100); + } +#else + if (mGPIONum < GPIO_NUM_MAX) + { + ledc_set_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_0, state ? mDefaultOnBrightness : 0); + ledc_update_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_0); + } +#endif + if (stateChange) + { +#if CONFIG_HAVE_DISPLAY + if (mVLED1 != -1) + { + ScreenManager::SetVLED(mVLED1, mState); + } +#endif + } +} + +#if CONFIG_HAVE_DISPLAY +void LEDWidget::SetVLED(int id1, int id2) +{ + mVLED1 = id1; + if (mVLED1 != -1) + { + ScreenManager::SetVLED(mVLED1, mState); + } + mVLED2 = id2; + if (mVLED2 != -1) + { + ScreenManager::SetVLED(mVLED2, mError); + } +} +#endif + +#if CONFIG_DEVICE_TYPE_ESP32_C3_DEVKITM +void LEDWidget::SetColor(uint8_t Hue, uint8_t Saturation) +{ + uint8_t red, green, blue; + uint8_t brightness = mState ? mDefaultOnBrightness : 0; + mHue = static_cast(Hue) * 360 / 254; // mHue [0, 360] + mSaturation = static_cast(Saturation) * 100 / 254; // mSaturation [0 , 100] + + HSB2rgb(mHue, mSaturation, brightness, red, green, blue); + strip->set_pixel(strip, 0, red, green, blue); + strip->refresh(strip, 100); +} + +void LEDWidget::HSB2rgb(uint16_t Hue, uint8_t Saturation, uint8_t brightness, uint8_t & red, uint8_t & green, uint8_t & blue) +{ + uint16_t i = Hue / 60; + uint16_t rgb_max = brightness; + uint16_t rgb_min = rgb_max * (100 - Saturation) / 100; + uint16_t diff = Hue % 60; + uint16_t rgb_adj = (rgb_max - rgb_min) * diff / 60; + + switch (i) + { + case 0: + red = rgb_max; + green = rgb_min + rgb_adj; + blue = rgb_min; + break; + case 1: + red = rgb_max - rgb_adj; + green = rgb_max; + blue = rgb_min; + break; + case 2: + red = rgb_min; + green = rgb_max; + blue = rgb_min + rgb_adj; + break; + case 3: + red = rgb_min; + green = rgb_max - rgb_adj; + blue = rgb_max; + break; + case 4: + red = rgb_min + rgb_adj; + green = rgb_min; + blue = rgb_max; + break; + default: + red = rgb_max; + green = rgb_min; + blue = rgb_max - rgb_adj; + break; + } +} +#endif diff --git a/examples/all-clusters-minimal-app/esp32/main/OpenThreadLaunch.cpp b/examples/all-clusters-minimal-app/esp32/main/OpenThreadLaunch.cpp new file mode 100644 index 00000000000000..e3372456226e0b --- /dev/null +++ b/examples/all-clusters-minimal-app/esp32/main/OpenThreadLaunch.cpp @@ -0,0 +1,111 @@ +/* + * + * 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. + */ + +#include "OpenThreadLaunch.h" + +#include "sdkconfig.h" + +#if CONFIG_OPENTHREAD_ENABLED + +#include +#include + +#include "driver/uart.h" +#include "esp_err.h" +#include "esp_event.h" +#include "esp_log.h" +#include "esp_netif.h" +#include "esp_netif_types.h" +#include "esp_openthread.h" +#include "esp_openthread_lock.h" +#include "esp_openthread_netif_glue.h" +#include "esp_openthread_types.h" +#include "esp_vfs_eventfd.h" +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "hal/uart_types.h" +#include "openthread/instance.h" +#include "openthread/logging.h" +#include "openthread/platform/logging.h" +#include "sdkconfig.h" + +#if CONFIG_IDF_TARGET_ESP32H2 +#define ESP_OPENTHREAD_DEFAULT_RADIO_CONFIG() \ + { \ + .radio_mode = RADIO_MODE_NATIVE, \ + } +#else +#define ESP_OPENTHREAD_DEFAULT_RADIO_CONFIG() \ + { \ + .radio_mode = RADIO_MODE_UART_RCP, \ + .radio_uart_config = { \ + .port = 1, \ + .uart_config = \ + { \ + .baud_rate = 115200, \ + .data_bits = UART_DATA_8_BITS, \ + .parity = UART_PARITY_DISABLE, \ + .stop_bits = UART_STOP_BITS_1, \ + .flow_ctrl = UART_HW_FLOWCTRL_DISABLE, \ + .rx_flow_ctrl_thresh = 0, \ + .source_clk = UART_SCLK_APB, \ + }, \ + .rx_pin = 4, \ + .tx_pin = 5, \ + }, \ + } +#endif + +#define ESP_OPENTHREAD_DEFAULT_HOST_CONFIG() \ + { \ + .host_connection_mode = HOST_CONNECTION_MODE_NONE, \ + } + +#define ESP_OPENTHREAD_DEFAULT_PORT_CONFIG() \ + { \ + .storage_partition_name = "ot_storage", .netif_queue_size = 10, .task_queue_size = 10, \ + } + +static void OpenThreadTask(void * aContext) +{ + esp_openthread_platform_config_t config = { + .radio_config = ESP_OPENTHREAD_DEFAULT_RADIO_CONFIG(), + .host_config = ESP_OPENTHREAD_DEFAULT_HOST_CONFIG(), + .port_config = ESP_OPENTHREAD_DEFAULT_PORT_CONFIG(), + }; + + // Initialize the OpenThread stack + ESP_ERROR_CHECK(esp_openthread_init(&config)); + (void) otLoggingSetLevel(OT_LOG_LEVEL_INFO); + + // Run the main loop + esp_openthread_launch_mainloop(); + + esp_vfs_eventfd_unregister(); + vTaskDelete(NULL); +} + +void LaunchOpenThread() +{ + esp_vfs_eventfd_config_t eventfd_config = { + .max_fds = 3, + }; + ESP_ERROR_CHECK(esp_vfs_eventfd_register(&eventfd_config)); + xTaskCreate(OpenThreadTask, "ot", 10240, xTaskGetCurrentTaskHandle(), 5, NULL); +} + +#endif // CONFIG_OPENTHREAD_ENABLED diff --git a/examples/all-clusters-minimal-app/esp32/main/QRCodeScreen.cpp b/examples/all-clusters-minimal-app/esp32/main/QRCodeScreen.cpp new file mode 100644 index 00000000000000..2130da0107f31d --- /dev/null +++ b/examples/all-clusters-minimal-app/esp32/main/QRCodeScreen.cpp @@ -0,0 +1,103 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2018 Nest Labs, Inc. + * All rights reserved. + * + * 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. + */ + +/** + * @file QRCodeScreen.cpp + * + * Screen which displays a QR code. + * + */ + +#include "QRCodeScreen.h" + +#if CONFIG_HAVE_DISPLAY + +// TODO organize includes below + +#include "esp_log.h" +#include "esp_system.h" +#include "esp_wifi.h" +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" + +#include "qrcodegen.h" + +#include +#include +#include + +// TODO need sensible library tag when put in library +extern const char * TAG; + +namespace { + +constexpr int kVersion = 4; +constexpr int kModuleSize = 4; +constexpr int kBorderSize = 1; + +color_t qrCodeColor = TFT_LIGHTGREY; + +}; // namespace + +QRCodeScreen::QRCodeScreen(std::string text, std::string title) : title(title) +{ + constexpr int qrCodeSize = qrcodegen_BUFFER_LEN_FOR_VERSION(kVersion); + + // TODO check text length against max size permitted, or maybe adjust version used accordingly + + std::vector temp(qrCodeSize); + qrCode.resize(qrCodeSize); + + if (!qrcodegen_encodeText(text.c_str(), temp.data(), qrCode.data(), qrcodegen_Ecc_LOW, kVersion, kVersion, qrcodegen_Mask_AUTO, + true)) + { + ESP_LOGE(TAG, "qrcodegen_encodeText() failed"); + qrCode.clear(); + } +} + +void QRCodeScreen::Display() +{ + if (qrCode.empty()) + { + return; + } + + const uint8_t * data = qrCode.data(); + const int size = qrcodegen_getSize(data); + const int displaySize = (2 * kBorderSize + size) * kModuleSize; + const int displayX = (DisplayWidth - displaySize) / 2; + const int displayY = ScreenTitleSafeTop + ((DisplayHeight - ScreenTitleSafeTop - ScreenTitleSafeBottom) - displaySize) / 2; + + TFT_fillRect(displayX, displayY, displaySize, displaySize, qrCodeColor); + + for (int y = 0; y < size; ++y) + { + for (int x = 0; x < size; ++x) + { + if (qrcodegen_getModule(data, x, y)) + { + TFT_fillRect(displayX + (kBorderSize + x) * kModuleSize, displayY + (kBorderSize + y) * kModuleSize, kModuleSize, + kModuleSize, TFT_BLACK); + } + } + } +} + +#endif // CONFIG_HAVE_DISPLAY diff --git a/examples/all-clusters-minimal-app/esp32/main/ShellCommands.cpp b/examples/all-clusters-minimal-app/esp32/main/ShellCommands.cpp new file mode 100644 index 00000000000000..3c7b4822d21558 --- /dev/null +++ b/examples/all-clusters-minimal-app/esp32/main/ShellCommands.cpp @@ -0,0 +1,52 @@ +/* + * + * Copyright (c) 2022 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. + */ + +#include + +namespace chip { +namespace Shell { + +Shell::Engine OnOffCommands::sSubShell; +void OnOffCommands::Register() +{ + static const shell_command_t subCommands[] = { { &OnLightHandler, "on", "Usage: OnOff on endpoint-id" }, + { &OffLightHandler, "off", "Usage: OnOff off endpoint-id" }, + { &ToggleLightHandler, "toggle", "Usage: OnOff toggle endpoint-id" } }; + sSubShell.RegisterCommands(subCommands, ArraySize(subCommands)); + + // Register the root `OnOff` command in the top-level shell. + static const shell_command_t onOffCommand = { &OnOffHandler, "OnOff", "OnOff commands" }; + + Engine::Root().RegisterCommands(&onOffCommand, 1); +} + +Callback::Callback CASECommands::sOnConnectedCallback(CASECommands::OnConnected, nullptr); +Callback::Callback CASECommands::sOnConnectionFailureCallback(CASECommands::OnConnectionFailure, + nullptr); +Shell::Engine CASECommands::sSubShell; +void CASECommands::Register() +{ + static const shell_command_t subCommands[] = { + { &ConnectToNodeHandler, "connect", "Establish CASESession to a node, Usage: case connect " }, + }; + sSubShell.RegisterCommands(subCommands, ArraySize(subCommands)); + + static const shell_command_t CASECommand = { &CASEHandler, "case", "Case Commands" }; + Engine::Root().RegisterCommands(&CASECommand, 1); +} +} // namespace Shell +} // namespace chip diff --git a/examples/all-clusters-minimal-app/esp32/main/StatusScreen.cpp b/examples/all-clusters-minimal-app/esp32/main/StatusScreen.cpp new file mode 100644 index 00000000000000..55f42a32723823 --- /dev/null +++ b/examples/all-clusters-minimal-app/esp32/main/StatusScreen.cpp @@ -0,0 +1,189 @@ +/* + * + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +/** + * @file StatusScreen.cpp + * + * Screen which displays device state and status: + * - Fabric Index : none | # + * - Fabric ID : none | # + * - Node ID : none | # + * - UDP Port : # + * - IPv4 : none | addr + * - IPv6 LL : none | addr + * - IPv6 ULA : none | addr + */ + +#include "StatusScreen.h" + +#if CONFIG_HAVE_DISPLAY + +#include "esp_log.h" +#include "esp_system.h" +#include "esp_wifi.h" +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" + +#include +#include + +#include +#include + +#define MAX_LENGTH_SMALL_FONT 30 + +using namespace chip; + +class StatusListModel : public ListScreen::Model +{ +public: + enum + { + kStatusItemFabricIndex, + kStatusItemFabricId, + kStatusItemNodeId, + kStatusItemPort, + kStatusItemIp4, + kStatusItemIp6LinkLocal, + kStatusItemIp6Ula, + }; + + StatusListModel() + { + options.emplace_back("FabricIndex : none"); + options.emplace_back("FabricID : none"); + options.emplace_back("NodeID : none"); + options.emplace_back("UDP port : " + std::to_string(CHIP_PORT)); + options.emplace_back("IPv4 : none"); + options.emplace_back("IPv6 LL : none"); + options.emplace_back("IPv6 ULA : none"); + } + + virtual std::string GetTitle() { return "Status"; } + + virtual int GetItemCount() { return options.size(); } + virtual std::string GetItemText(int i) + { + std::string itemString = options.at(i); + switch (i) + { + case kStatusItemFabricIndex: { + for (const auto & fb : Server::GetInstance().GetFabricTable()) + { + FabricIndex fabricIndex = fb.GetFabricIndex(); + itemString = "FabricIdx : " + std::to_string(fabricIndex); + break; // Only print first fabric for now + } + break; + } + + case kStatusItemFabricId: { + for (const auto & fb : Server::GetInstance().GetFabricTable()) + { + FabricId fabricId = fb.GetFabricId(); + itemString = "FabricID : " + std::to_string(fabricId); + break; // Only print first fabric for now + } + break; + } + + case kStatusItemNodeId: { + for (const auto & fb : Server::GetInstance().GetFabricTable()) + { + NodeId nodeId = fb.GetNodeId(); + itemString = "NodeID : " + std::to_string(nodeId); + break; // Only print first fabric for now + } + break; + } + + case kStatusItemIp4: { + chip::Inet::IPAddress addr; + for (chip::Inet::InterfaceAddressIterator it; it.HasCurrent(); it.Next()) + { + if ((it.GetAddress(addr) == CHIP_NO_ERROR) && addr.IsIPv4()) + { + char buf[Inet::IPAddress::kMaxStringLength]; + addr.ToString(buf); + itemString = std::string(buf); + break; // Only print first IPv4 address for now + } + } + break; + } + + case kStatusItemIp6LinkLocal: { + chip::Inet::IPAddress addr; + for (chip::Inet::InterfaceAddressIterator it; it.HasCurrent(); it.Next()) + { + if ((it.GetAddress(addr) == CHIP_NO_ERROR) && addr.IsIPv6LinkLocal()) + { + char buf[Inet::IPAddress::kMaxStringLength]; + addr.ToString(buf); + itemString = std::string(buf); + if (itemString.length() < MAX_LENGTH_SMALL_FONT) + { + TFT_setFont(SMALL_FONT, nullptr); + } + else + { + TFT_setFont(DEF_SMALL_FONT, nullptr); + } + break; // Only print first IPv6 LL for now + } + } + break; + } + + case kStatusItemIp6Ula: { + chip::Inet::IPAddress addr; + for (chip::Inet::InterfaceAddressIterator it; it.HasCurrent(); it.Next()) + { + if ((it.GetAddress(addr) == CHIP_NO_ERROR) && addr.IsIPv6ULA()) + { + char buf[Inet::IPAddress::kMaxStringLength]; + addr.ToString(buf); + itemString = std::string(buf); + if (itemString.length() < MAX_LENGTH_SMALL_FONT) + { + TFT_setFont(SMALL_FONT, nullptr); + } + else + { + TFT_setFont(DEF_SMALL_FONT, nullptr); + } + break; // Only print first IPv6 ULA for now + } + } + break; + } + } + ESP_LOGI("M5 UI", "Display status %d: %s", i, itemString.c_str()); + + return itemString; + } + + virtual void ItemAction(int i) {} + +private: + std::vector options; +}; + +StatusScreen::StatusScreen() : ListScreen(chip::Platform::New()) {} + +#endif // CONFIG_HAVE_DISPLAY diff --git a/examples/all-clusters-minimal-app/esp32/main/WiFiWidget.cpp b/examples/all-clusters-minimal-app/esp32/main/WiFiWidget.cpp new file mode 100644 index 00000000000000..07fa20d9186fe0 --- /dev/null +++ b/examples/all-clusters-minimal-app/esp32/main/WiFiWidget.cpp @@ -0,0 +1,68 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +/** + * @file WiFiWidget.cpp + * + * Implements a WiFi Widget controller that display the state of bluetooth + * connection on display. + */ + +#include "ScreenManager.h" + +#include "WiFiWidget.h" + +#include "esp_log.h" +#include "esp_system.h" + +extern const char * TAG; + +void WiFiWidget::Init() +{ +#if CONFIG_HAVE_DISPLAY + mVLED = -1; +#endif // CONFIG_HAVE_DISPLAY + + mState = false; +} + +void WiFiWidget::Set(bool state) +{ + bool stateChange = (mState != state); + mState = state; + if (stateChange) + { +#if CONFIG_HAVE_DISPLAY + if (mVLED != -1) + { + ScreenManager::SetVLED(mVLED, mState); + } +#endif // CONFIG_HAVE_DISPLAY + } +} + +#if CONFIG_HAVE_DISPLAY +void WiFiWidget::SetVLED(int id) +{ + mVLED = id; + if (mVLED != -1) + { + ScreenManager::SetVLED(mVLED, mState); + } +} +#endif // CONFIG_HAVE_DISPLAY diff --git a/examples/all-clusters-minimal-app/esp32/main/include/AppEvent.h b/examples/all-clusters-minimal-app/esp32/main/include/AppEvent.h new file mode 100644 index 00000000000000..26b97ab86d5018 --- /dev/null +++ b/examples/all-clusters-minimal-app/esp32/main/include/AppEvent.h @@ -0,0 +1,51 @@ +/* + * + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#pragma once +#include "esp_system.h" + +struct AppEvent; +typedef void (*EventHandler)(AppEvent *); + +struct AppEvent +{ + enum AppEventTypes + { + kEventType_Button = 0, + kEventType_Timer, + kEventType_Light, + kEventType_Install, + }; + + uint16_t mType; + + union + { + struct + { + uint8_t mPinNo; + uint8_t mAction; + } mButtonEvent; + struct + { + void * mContext; + } mTimerEvent; + }; + + EventHandler mHandler; +}; diff --git a/examples/all-clusters-minimal-app/esp32/main/include/AppTask.h b/examples/all-clusters-minimal-app/esp32/main/include/AppTask.h new file mode 100644 index 00000000000000..3dd8b0bf121a5c --- /dev/null +++ b/examples/all-clusters-minimal-app/esp32/main/include/AppTask.h @@ -0,0 +1,51 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2018 Nest Labs, Inc. + * All rights reserved. + * + * 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. + */ + +#pragma once +#include "AppEvent.h" +#include + +// Application-defined error codes in the CHIP_ERROR space. +#define APP_ERROR_EVENT_QUEUE_FAILED CHIP_APPLICATION_ERROR(0x01) +#define APP_ERROR_CREATE_TASK_FAILED CHIP_APPLICATION_ERROR(0x02) +#define APP_ERROR_UNHANDLED_EVENT CHIP_APPLICATION_ERROR(0x03) +#define APP_ERROR_CREATE_TIMER_FAILED CHIP_APPLICATION_ERROR(0x04) +#define APP_ERROR_START_TIMER_FAILED CHIP_APPLICATION_ERROR(0x05) +#define APP_ERROR_STOP_TIMER_FAILED CHIP_APPLICATION_ERROR(0x06) + +class AppTask +{ +public: + CHIP_ERROR StartAppTask(); + static void AppTaskMain(void * pvParameter); + void PostEvent(const AppEvent * event); + void ButtonEventHandler(uint8_t btnIdx, uint8_t btnAction); + static void ButtonPressedAction(AppEvent * aEvent); + +private: + CHIP_ERROR Init(); + void DispatchEvent(AppEvent * event); + static AppTask sAppTask; + friend AppTask & GetAppTask(void); +}; + +inline AppTask & GetAppTask(void) +{ + return AppTask::sAppTask; +} diff --git a/examples/all-clusters-minimal-app/esp32/main/include/BluetoothWidget.h b/examples/all-clusters-minimal-app/esp32/main/include/BluetoothWidget.h new file mode 100644 index 00000000000000..93b636e9b3c083 --- /dev/null +++ b/examples/all-clusters-minimal-app/esp32/main/include/BluetoothWidget.h @@ -0,0 +1,36 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#pragma once + +#include "Display.h" + +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" + +class BluetoothWidget +{ +public: + void Init(); + void Set(bool state); + void SetVLED(int id); + +private: + int mVLED; + bool mState; +}; diff --git a/examples/all-clusters-minimal-app/esp32/main/include/Button.h b/examples/all-clusters-minimal-app/esp32/main/include/Button.h new file mode 100644 index 00000000000000..894052463afa2c --- /dev/null +++ b/examples/all-clusters-minimal-app/esp32/main/include/Button.h @@ -0,0 +1,89 @@ +/* + * + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +/** + * @file Button.h + * + * Describes a Button tied to a GPIO that provides debouncing + * + **/ + +#pragma once + +#include "driver/gpio.h" +#include "esp_log.h" +#include "esp_system.h" +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "freertos/timers.h" + +#define APP_BUTTON_PRESSED 0 +#define APP_BUTTON_RELEASED 1 +#define BUTTON_NUMBER 3 +class Button +{ +public: + /** + * @brief + * construct a button + */ + Button(); + /** + * @brief + * construct a button with given GPIO number + */ + Button(gpio_num_t gpioNum); + /** + * @brief + * Initialize a button + * @return esp_err_t + */ + esp_err_t Init(); + /** + * @brief + * Initialize a button with given GPIO number + * @param gpioNum The GPIO pin this button should keep track of + * @return esp_err_t + */ + esp_err_t Init(gpio_num_t gpioNum); + /** + * @brief + * Get the pin number assosiate to a button + * @return gpio_num_t + */ + inline gpio_num_t GetGPIONum(); + /** + * @brief + * Global Button debouncing Timer Callback function + */ + static void TimerCallback(TimerHandle_t xTimer); + /** + * @brief + * Button gpio isr + */ + friend void IRAM_ATTR button_isr_handler(void * arg); + +private: + gpio_num_t mGPIONum; + TimerHandle_t mbuttonTimer; // FreeRTOS timers used for debouncing buttons +}; + +inline gpio_num_t Button::GetGPIONum() +{ + return mGPIONum; +} diff --git a/examples/all-clusters-minimal-app/esp32/main/include/DeviceCallbacks.h b/examples/all-clusters-minimal-app/esp32/main/include/DeviceCallbacks.h new file mode 100644 index 00000000000000..db97219ed86c9e --- /dev/null +++ b/examples/all-clusters-minimal-app/esp32/main/include/DeviceCallbacks.h @@ -0,0 +1,53 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +/** + * @file DeviceCallbacks.h + * + * Implementations for the DeviceManager callbacks for this application + * + **/ + +#pragma once + +#include +#include + +class AppDeviceCallbacks : public CommonDeviceCallbacks +{ +public: + virtual void PostAttributeChangeCallback(chip::EndpointId endpointId, chip::ClusterId clusterId, chip::AttributeId attributeId, + uint8_t type, uint16_t size, uint8_t * value); + +private: + void OnOnOffPostAttributeChangeCallback(chip::EndpointId endpointId, chip::AttributeId attributeId, uint8_t * value); + void OnLevelControlAttributeChangeCallback(chip::EndpointId endpointId, chip::AttributeId attributeId, uint8_t * value); +#if CONFIG_DEVICE_TYPE_ESP32_C3_DEVKITM + void OnColorControlAttributeChangeCallback(chip::EndpointId endpointId, chip::AttributeId attributeId, uint8_t * value); +#endif + void OnIdentifyPostAttributeChangeCallback(chip::EndpointId endpointId, chip::AttributeId attributeId, uint16_t size, + uint8_t * value); + bool mEndpointOnOffState[2]; +}; + +class AppDeviceCallbacksDelegate : public DeviceCallbacksDelegate +{ +public: + void OnIPv4ConnectivityEstablished(void) override; + void OnIPv4ConnectivityLost(void) override; +}; diff --git a/examples/all-clusters-minimal-app/esp32/main/include/DeviceWithDisplay.h b/examples/all-clusters-minimal-app/esp32/main/include/DeviceWithDisplay.h new file mode 100644 index 00000000000000..99e53e9be9dc4f --- /dev/null +++ b/examples/all-clusters-minimal-app/esp32/main/include/DeviceWithDisplay.h @@ -0,0 +1,57 @@ +/* + * + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#pragma once + +#include "Button.h" +#include "DeviceCallbacks.h" +#include "Display.h" +#include "Globals.h" +#include "ListScreen.h" +#include "QRCodeScreen.h" +#include "ScreenManager.h" +#include "StatusScreen.h" +#include "esp_check.h" +#include "esp_log.h" +#include "esp_system.h" +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#if CONFIG_DEVICE_TYPE_M5STACK +#define BUTTON_1_GPIO_NUM ((gpio_num_t) 39) // Left button on M5Stack +#define BUTTON_2_GPIO_NUM ((gpio_num_t) 38) // Middle button on M5Stack +#define BUTTON_3_GPIO_NUM ((gpio_num_t) 37) // Right button on M5Stack + +void SetupPretendDevices(); +esp_err_t InitM5Stack(std::string qrCodeText); +#endif + +#if CONFIG_HAVE_DISPLAY +void InitDeviceDisplay(); +#endif diff --git a/examples/all-clusters-minimal-app/esp32/main/include/Globals.h b/examples/all-clusters-minimal-app/esp32/main/include/Globals.h new file mode 100644 index 00000000000000..b3d466a8a68bd0 --- /dev/null +++ b/examples/all-clusters-minimal-app/esp32/main/include/Globals.h @@ -0,0 +1,31 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#pragma once + +#include "BluetoothWidget.h" +#include "LEDWidget.h" +#include "WiFiWidget.h" +#include "transport/raw/MessageHeader.h" + +extern LEDWidget statusLED1; +extern LEDWidget statusLED2; +extern BluetoothWidget bluetoothLED; +extern WiFiWidget wifiLED; +extern const chip::NodeId kLocalNodeId; +extern WiFiWidget pairingWindowLED; diff --git a/examples/all-clusters-minimal-app/esp32/main/include/LEDWidget.h b/examples/all-clusters-minimal-app/esp32/main/include/LEDWidget.h new file mode 100644 index 00000000000000..8ce4323329854d --- /dev/null +++ b/examples/all-clusters-minimal-app/esp32/main/include/LEDWidget.h @@ -0,0 +1,78 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2018 Nest Labs, Inc. + * All rights reserved. + * + * 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. + */ + +#pragma once + +#include "Display.h" + +#include "driver/gpio.h" + +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "freertos/timers.h" + +#define STATUS_LED_GPIO_NUM ((gpio_num_t) CONFIG_STATUS_LED_GPIO_NUM) + +class LEDWidget +{ +public: + void Init(gpio_num_t gpioNum); + + void Set(bool state); + + void SetStateMask(bool state); + + void SetBrightness(uint8_t brightness); + + void Blink(uint32_t changeRateMS); + + void Blink(uint32_t onTimeMS, uint32_t offTimeMS); + + void BlinkOnError(); + + void Animate(); +#if CONFIG_DEVICE_TYPE_ESP32_C3_DEVKITM + void SetColor(uint8_t Hue, uint8_t Saturation); + + void HSB2rgb(uint16_t Hue, uint8_t Saturation, uint8_t brightness, uint8_t & red, uint8_t & green, uint8_t & blue); +#endif +#if CONFIG_HAVE_DISPLAY + void SetVLED(int id1, int id2); +#endif + +private: + int64_t mLastChangeTimeUS; + uint32_t mBlinkOnTimeMS; + uint32_t mBlinkOffTimeMS; + uint8_t mDefaultOnBrightness; +#if CONFIG_DEVICE_TYPE_ESP32_C3_DEVKITM + uint16_t mHue; // mHue [0, 360] + uint8_t mSaturation; // mSaturation [0, 100] +#endif + gpio_num_t mGPIONum; + int mVLED1; + int mVLED2; + bool mState; + bool mError; + TimerHandle_t errorTimer; + + void DoSet(bool state); + + friend void ClearErrorState(TimerHandle_t); +}; diff --git a/examples/all-clusters-minimal-app/esp32/main/include/OpenThreadLaunch.h b/examples/all-clusters-minimal-app/esp32/main/include/OpenThreadLaunch.h new file mode 100644 index 00000000000000..86b02d6328fdb5 --- /dev/null +++ b/examples/all-clusters-minimal-app/esp32/main/include/OpenThreadLaunch.h @@ -0,0 +1,20 @@ +/* + * + * 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. + */ + +#pragma once + +void LaunchOpenThread(); diff --git a/examples/all-clusters-minimal-app/esp32/main/include/QRCodeScreen.h b/examples/all-clusters-minimal-app/esp32/main/include/QRCodeScreen.h new file mode 100644 index 00000000000000..e24fcd86d81e1a --- /dev/null +++ b/examples/all-clusters-minimal-app/esp32/main/include/QRCodeScreen.h @@ -0,0 +1,49 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +/** + * @file QRCodeScreen.h + * + * Screen which displays a QR code. + * + */ + +#pragma once + +#include "Screen.h" +#include "ScreenManager.h" + +#if CONFIG_HAVE_DISPLAY + +#include +#include + +class QRCodeScreen : public Screen +{ + std::vector qrCode; + std::string title; + +public: + QRCodeScreen(std::string text, std::string title = "QR Code"); + + virtual std::string GetTitle() { return title; } + + virtual void Display(); +}; + +#endif // CONFIG_HAVE_DISPLAY diff --git a/examples/all-clusters-minimal-app/esp32/main/include/ShellCommands.h b/examples/all-clusters-minimal-app/esp32/main/include/ShellCommands.h new file mode 100644 index 00000000000000..aea17cca138523 --- /dev/null +++ b/examples/all-clusters-minimal-app/esp32/main/include/ShellCommands.h @@ -0,0 +1,210 @@ +/* + * + * Copyright (c) 2022 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. + */ + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#if CONFIG_DEVICE_LAYER +#include +#endif + +namespace chip { +namespace Shell { + +class OnOffCommands +{ +public: + // delete the copy constructor + OnOffCommands(const OnOffCommands &) = delete; + // delete the move constructor + OnOffCommands(OnOffCommands &&) = delete; + // delete the assignment operator + OnOffCommands & operator=(const OnOffCommands &) = delete; + + static OnOffCommands & GetInstance() + { + static OnOffCommands instance; + return instance; + } + + // Register the OnOff commands + void Register(); + +private: + OnOffCommands() {} + + static CHIP_ERROR OnOffHandler(int argc, char ** argv) + { + if (argc == 0) + { + sSubShell.ForEachCommand(PrintCommandHelp, nullptr); + return CHIP_NO_ERROR; + } + + CHIP_ERROR error = sSubShell.ExecCommand(argc, argv); + + if (error != CHIP_NO_ERROR) + { + streamer_printf(streamer_get(), "Error: %" CHIP_ERROR_FORMAT "\r\n", error.Format()); + } + + return error; + } + + static CHIP_ERROR OnLightHandler(int argc, char ** argv) + { + if (argc != 1) + return CHIP_ERROR_INVALID_ARGUMENT; + chip::app::Clusters::OnOff::Attributes::OnOff::Set(atoi(argv[0]), 1); + return CHIP_NO_ERROR; + } + + static CHIP_ERROR OffLightHandler(int argc, char ** argv) + { + if (argc != 1) + return CHIP_ERROR_INVALID_ARGUMENT; + chip::app::Clusters::OnOff::Attributes::OnOff::Set(atoi(argv[0]), 0); + return CHIP_NO_ERROR; + } + + static CHIP_ERROR ToggleLightHandler(int argc, char ** argv) + { + if (argc != 1) + return CHIP_ERROR_INVALID_ARGUMENT; + bool value; + chip::app::Clusters::OnOff::Attributes::OnOff::Get(atoi(argv[0]), &value); + chip::app::Clusters::OnOff::Attributes::OnOff::Set(atoi(argv[0]), !value); + return CHIP_NO_ERROR; + } + + static Shell::Engine sSubShell; +}; + +class CASECommands +{ +public: + // delete the copy constructor + CASECommands(const CASECommands &) = delete; + // delete the move constructor + CASECommands(CASECommands &&) = delete; + // delete the assignment operator + CASECommands & operator=(const CASECommands &) = delete; + + static CASECommands & GetInstance() + { + static CASECommands instance; + return instance; + } + + // Register the CASESession commands + void Register(); + + void SetFabricInfo(FabricInfo * fabricInfo) { mFabricInfo = fabricInfo; } + void SetNodeId(NodeId nodeId) { mNodeId = nodeId; } + void SetOnConnecting(bool onConnecting) { mOnConnecting = onConnecting; } + FabricInfo * GetFabricInfo(void) { return mFabricInfo; } + NodeId GetNodeId(void) { return mNodeId; } + bool GetOnConnecting(void) { return mOnConnecting; } + +private: + CASECommands() {} + static void OnConnected(void * context, OperationalDeviceProxy * deviceProxy) + { + streamer_printf(streamer_get(), "Establish CASESession Success!\r\n"); + GetInstance().SetOnConnecting(false); + } + + static void OnConnectionFailure(void * context, PeerId peerId, CHIP_ERROR error) + { + streamer_printf(streamer_get(), "Establish CASESession Failure!\r\n"); + GetInstance().SetOnConnecting(false); + } + + static void ConnectToNode(intptr_t arg) + { + CASECommands * caseCommand = reinterpret_cast(arg); + Server * server = &(chip::Server::GetInstance()); + CASESessionManager * caseSessionManager = server->GetCASESessionManager(); + if (caseSessionManager == nullptr) + { + ChipLogError(SecureChannel, "Can't get the CASESessionManager"); + return; + } + caseSessionManager->FindOrEstablishSession(caseCommand->GetFabricInfo()->GetPeerIdForNode(caseCommand->GetNodeId()), + &sOnConnectedCallback, &sOnConnectionFailureCallback); + } + + static CHIP_ERROR ConnectToNodeHandler(int argc, char ** argv) + { + if (GetInstance().GetOnConnecting()) + { + return CHIP_ERROR_INCORRECT_STATE; + } + const FabricIndex fabricIndex = static_cast(strtoul(argv[0], nullptr, 10)); + FabricInfo * fabricInfo = Server::GetInstance().GetFabricTable().FindFabricWithIndex(fabricIndex); + + if (fabricInfo == nullptr) + { + streamer_printf(streamer_get(), "Can't get fabric information from FabricIndex\r\n"); + return CHIP_ERROR_NOT_FOUND; + } + GetInstance().SetFabricInfo(fabricInfo); + GetInstance().SetNodeId(static_cast(strtoul(argv[1], nullptr, 10))); + streamer_printf(streamer_get(), "Try to establish CaseSession to NodeId:0x" ChipLogFormatX64 " on fabric index %d\r\n", + ChipLogValueX64(GetInstance().GetNodeId()), fabricIndex); + GetInstance().SetOnConnecting(true); + chip::DeviceLayer::PlatformMgr().ScheduleWork(ConnectToNode, reinterpret_cast(&GetInstance())); + return CHIP_NO_ERROR; + } + + static CHIP_ERROR CASEHandler(int argc, char ** argv) + { + if (argc == 0) + { + sSubShell.ForEachCommand(PrintCommandHelp, nullptr); + return CHIP_NO_ERROR; + } + CHIP_ERROR err = sSubShell.ExecCommand(argc, argv); + if (err != CHIP_NO_ERROR) + { + streamer_printf(streamer_get(), "Error: %" CHIP_ERROR_FORMAT "\r\n", err.Format()); + } + return err; + } + + static Callback::Callback sOnConnectedCallback; + static Callback::Callback sOnConnectionFailureCallback; + static Shell::Engine sSubShell; + FabricInfo * mFabricInfo = nullptr; + NodeId mNodeId = 0; + bool mOnConnecting = false; +}; + +} // namespace Shell +} // namespace chip diff --git a/examples/all-clusters-minimal-app/esp32/main/include/StatusScreen.h b/examples/all-clusters-minimal-app/esp32/main/include/StatusScreen.h new file mode 100644 index 00000000000000..621604804aa923 --- /dev/null +++ b/examples/all-clusters-minimal-app/esp32/main/include/StatusScreen.h @@ -0,0 +1,45 @@ +/* + * + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +/** + * @file StatusScreen.h + * + * Screen which displays a QR code. + * + */ + +#pragma once + +#include "ListScreen.h" +#include "ScreenManager.h" + +#if CONFIG_HAVE_DISPLAY + +#include +#include + +class StatusScreen : public ListScreen +{ + +public: + StatusScreen(); + + virtual ~StatusScreen() {} +}; + +#endif // CONFIG_HAVE_DISPLAY diff --git a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/SceneDelegate.h b/examples/all-clusters-minimal-app/esp32/main/include/WiFiWidget.h similarity index 65% rename from examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/SceneDelegate.h rename to examples/all-clusters-minimal-app/esp32/main/include/WiFiWidget.h index dd12a1c96cc3af..986ab48b63ad4b 100644 --- a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/SceneDelegate.h +++ b/examples/all-clusters-minimal-app/esp32/main/include/WiFiWidget.h @@ -1,6 +1,7 @@ -/** +/* * - * Copyright (c) 2020-2022 Project CHIP Authors + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,10 +16,21 @@ * limitations under the License. */ -#import +#pragma once -@interface SceneDelegate : UIResponder +#include "Display.h" -@property (strong, nonatomic) UIWindow * window; +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" -@end +class WiFiWidget +{ +public: + void Init(); + void Set(bool state); + void SetVLED(int id); + +private: + int mVLED; + bool mState; +}; diff --git a/examples/all-clusters-minimal-app/esp32/main/main.cpp b/examples/all-clusters-minimal-app/esp32/main/main.cpp new file mode 100644 index 00000000000000..483f00b41cf678 --- /dev/null +++ b/examples/all-clusters-minimal-app/esp32/main/main.cpp @@ -0,0 +1,151 @@ +/* + * + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#include "AppTask.h" +#include "BluetoothWidget.h" +#include "DeviceCallbacks.h" +#include "Globals.h" +#include "LEDWidget.h" +#include "OpenThreadLaunch.h" +#include "QRCodeScreen.h" +#include "ShellCommands.h" +#include "WiFiWidget.h" +#include "esp_heap_caps_init.h" +#include "esp_log.h" +#include "esp_netif.h" +#include "esp_spi_flash.h" +#include "esp_system.h" +#include "esp_wifi.h" +#include "nvs_flash.h" +#include "platform/PlatformManager.h" +#include "shell_extension/launch.h" +#include + +#include +#include +#include +#include + +#if CONFIG_HAVE_DISPLAY +#include "DeviceWithDisplay.h" +#endif + +#if CONFIG_ENABLE_PW_RPC +#include "Rpc.h" +#endif + +#if CONFIG_OPENTHREAD_ENABLED +#include +#endif + +using namespace ::chip; +using namespace ::chip::Shell; +using namespace ::chip::DeviceManager; + +// Used to indicate that an IP address has been added to the QRCode +#define EXAMPLE_VENDOR_TAG_IP 1 + +const char * TAG = "all-clusters-minimal-app"; + +static AppDeviceCallbacks EchoCallbacks; +static AppDeviceCallbacksDelegate sAppDeviceCallbacksDelegate; +namespace { + +class AppCallbacks : public AppDelegate +{ +public: + void OnCommissioningSessionStarted() override { bluetoothLED.Set(true); } + void OnCommissioningSessionStopped() override + { + bluetoothLED.Set(false); + pairingWindowLED.Set(false); + } + void OnCommissioningWindowOpened() override { pairingWindowLED.Set(true); } + void OnCommissioningWindowClosed() override { pairingWindowLED.Set(false); } +}; + +AppCallbacks sCallbacks; + +constexpr EndpointId kNetworkCommissioningEndpointSecondary = 0xFFFE; + +} // namespace + +static void InitServer(intptr_t context) +{ + Esp32AppServer::Init(&sCallbacks); // Init ZCL Data Model and CHIP App Server AND Initialize device attestation config + + // We only have network commissioning on endpoint 0. + emberAfEndpointEnableDisable(kNetworkCommissioningEndpointSecondary, false); + + InitBindingHandlers(); +#if CONFIG_DEVICE_TYPE_M5STACK + SetupPretendDevices(); +#endif +} + +extern "C" void app_main() +{ + // Initialize the ESP NVS layer. + esp_err_t err = nvs_flash_init(); + if (err != ESP_OK) + { + ESP_LOGE(TAG, "nvs_flash_init() failed: %s", esp_err_to_name(err)); + return; + } +#if CONFIG_ENABLE_PW_RPC + chip::rpc::Init(); +#endif + + ESP_LOGI(TAG, "=================================================="); + ESP_LOGI(TAG, "chip-esp32-all-cluster-demo starting"); + ESP_LOGI(TAG, "=================================================="); + +#if CONFIG_ENABLE_CHIP_SHELL + chip::LaunchShell(); + OnOffCommands::GetInstance().Register(); + CASECommands::GetInstance().Register(); +#endif // CONFIG_ENABLE_CHIP_SHELL + +#if CONFIG_OPENTHREAD_ENABLED + LaunchOpenThread(); + ThreadStackMgr().InitThreadStack(); +#endif + + CHIPDeviceManager & deviceMgr = CHIPDeviceManager::GetInstance(); + CHIP_ERROR error = deviceMgr.Init(&EchoCallbacks); + DeviceCallbacksDelegate::Instance().SetAppDelegate(&sAppDeviceCallbacksDelegate); + if (error != CHIP_NO_ERROR) + { + ESP_LOGE(TAG, "device.Init() failed: %s", ErrorStr(error)); + return; + } + + ESP_LOGI(TAG, "------------------------Starting App Task---------------------------"); + error = GetAppTask().StartAppTask(); + if (error != CHIP_NO_ERROR) + { + ESP_LOGE(TAG, "GetAppTask().StartAppTask() failed : %s", ErrorStr(error)); + } + + chip::DeviceLayer::PlatformMgr().ScheduleWork(InitServer, reinterpret_cast(nullptr)); +} + +bool lowPowerClusterSleep() +{ + return true; +} diff --git a/examples/ipv6only-app/esp32/partitions.csv b/examples/all-clusters-minimal-app/esp32/partitions.csv similarity index 57% rename from examples/ipv6only-app/esp32/partitions.csv rename to examples/all-clusters-minimal-app/esp32/partitions.csv index b338ff11a11589..43acef25d0245d 100644 --- a/examples/ipv6only-app/esp32/partitions.csv +++ b/examples/all-clusters-minimal-app/esp32/partitions.csv @@ -1,6 +1,8 @@ # Name, Type, SubType, Offset, Size, Flags # Note: if you have increased the bootloader size, make sure to update the offsets to avoid overlap nvs, data, nvs, , 0x6000, +otadata, data, ota, , 0x2000, phy_init, data, phy, , 0x1000, -# Factory partition size about 1.9MB -factory, app, factory, , 1945K, +ota_0, app, ota_0, , 1500K, +ota_1, app, ota_1, , 1500K, +ot_storage, data, 0x3a, , 0x2000, diff --git a/examples/all-clusters-minimal-app/esp32/sdkconfig.defaults b/examples/all-clusters-minimal-app/esp32/sdkconfig.defaults new file mode 100644 index 00000000000000..5f996f40946d68 --- /dev/null +++ b/examples/all-clusters-minimal-app/esp32/sdkconfig.defaults @@ -0,0 +1,55 @@ +# +# Copyright (c) 2020 Project CHIP Authors +# Copyright (c) 2018 Nest Labs, Inc. +# All rights reserved. +# +# 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. +# +# Description: +# Some useful defaults for the demo app configuration. +# + + +# Default to 921600 baud when flashing and monitoring device +CONFIG_ESPTOOLPY_BAUD_921600B=y +CONFIG_ESPTOOLPY_BAUD=921600 +CONFIG_ESPTOOLPY_COMPRESSED=y +CONFIG_ESPTOOLPY_MONITOR_BAUD_115200B=y +CONFIG_ESPTOOLPY_MONITOR_BAUD=115200 + +#enable BT +CONFIG_BT_ENABLED=y +CONFIG_BT_NIMBLE_ENABLED=y + +#enable lwip ipv6 autoconfig +CONFIG_LWIP_IPV6_AUTOCONFIG=y + +# Use a custom partition table +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" + +# Vendor and product id +CONFIG_DEVICE_VENDOR_ID=0xFFF1 +CONFIG_DEVICE_PRODUCT_ID=0x8001 +CONFIG_DEVICE_FIRMWARE_REVISION="prerelease" + +#enable debug shell +CONFIG_ENABLE_CHIP_SHELL=y + +#enable lwIP route hooks +CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT=y +CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT=y + +# Serial Flasher config +CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y +CONFIG_ESPTOOLPY_FLASHSIZE="4MB" diff --git a/examples/all-clusters-minimal-app/esp32/sdkconfig.old b/examples/all-clusters-minimal-app/esp32/sdkconfig.old new file mode 100644 index 00000000000000..77d2115a14eb6d --- /dev/null +++ b/examples/all-clusters-minimal-app/esp32/sdkconfig.old @@ -0,0 +1,1551 @@ +# +# Automatically generated file. DO NOT EDIT. +# Espressif IoT Development Framework (ESP-IDF) Project Configuration +# +CONFIG_IDF_CMAKE=y +CONFIG_IDF_TARGET_ARCH_XTENSA=y +CONFIG_IDF_TARGET="esp32" +CONFIG_IDF_TARGET_ESP32=y +CONFIG_IDF_FIRMWARE_CHIP_ID=0x0000 + +# +# SDK tool configuration +# +CONFIG_SDK_TOOLPREFIX="xtensa-esp32-elf-" +# CONFIG_SDK_TOOLCHAIN_SUPPORTS_TIME_WIDE_64_BITS is not set +# end of SDK tool configuration + +# +# Build type +# +CONFIG_APP_BUILD_TYPE_APP_2NDBOOT=y +# CONFIG_APP_BUILD_TYPE_ELF_RAM is not set +CONFIG_APP_BUILD_GENERATE_BINARIES=y +CONFIG_APP_BUILD_BOOTLOADER=y +CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y +# end of Build type + +# +# Application manager +# +CONFIG_APP_COMPILE_TIME_DATE=y +# CONFIG_APP_EXCLUDE_PROJECT_VER_VAR is not set +# CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR is not set +# CONFIG_APP_PROJECT_VER_FROM_CONFIG is not set +CONFIG_APP_RETRIEVE_LEN_ELF_SHA=16 +# end of Application manager + +# +# Bootloader config +# +CONFIG_BOOTLOADER_OFFSET_IN_FLASH=0x1000 +CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y +# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set +# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set +# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE is not set +# CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set +# CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set +# CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set +CONFIG_BOOTLOADER_LOG_LEVEL_INFO=y +# CONFIG_BOOTLOADER_LOG_LEVEL_DEBUG is not set +# CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set +CONFIG_BOOTLOADER_LOG_LEVEL=3 +# CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_8V is not set +CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_9V=y +# CONFIG_BOOTLOADER_FACTORY_RESET is not set +# CONFIG_BOOTLOADER_APP_TEST is not set +CONFIG_BOOTLOADER_WDT_ENABLE=y +# CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE is not set +CONFIG_BOOTLOADER_WDT_TIME_MS=9000 +# CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE is not set +# CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP is not set +# CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON is not set +# CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS is not set +CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0 +# CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC is not set +CONFIG_BOOTLOADER_FLASH_XMC_SUPPORT=y +# end of Bootloader config + +# +# Security features +# +# CONFIG_SECURE_SIGNED_APPS_NO_SECURE_BOOT is not set +# CONFIG_SECURE_BOOT is not set +# CONFIG_SECURE_FLASH_ENC_ENABLED is not set +# end of Security features + +# +# Serial flasher config +# +CONFIG_ESPTOOLPY_BAUD_OTHER_VAL=115200 +# CONFIG_ESPTOOLPY_NO_STUB is not set +# CONFIG_ESPTOOLPY_FLASHMODE_QIO is not set +# CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set +CONFIG_ESPTOOLPY_FLASHMODE_DIO=y +# CONFIG_ESPTOOLPY_FLASHMODE_DOUT is not set +CONFIG_ESPTOOLPY_FLASH_SAMPLE_MODE_STR=y +CONFIG_ESPTOOLPY_FLASHMODE="dio" +# CONFIG_ESPTOOLPY_FLASHFREQ_80M is not set +CONFIG_ESPTOOLPY_FLASHFREQ_40M=y +# CONFIG_ESPTOOLPY_FLASHFREQ_26M is not set +# CONFIG_ESPTOOLPY_FLASHFREQ_20M is not set +CONFIG_ESPTOOLPY_FLASHFREQ="40m" +# CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set +# CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set +CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y +# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set +# CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set +CONFIG_ESPTOOLPY_FLASHSIZE="4MB" +CONFIG_ESPTOOLPY_FLASHSIZE_DETECT=y +CONFIG_ESPTOOLPY_BEFORE_RESET=y +# CONFIG_ESPTOOLPY_BEFORE_NORESET is not set +CONFIG_ESPTOOLPY_BEFORE="default_reset" +CONFIG_ESPTOOLPY_AFTER_RESET=y +# CONFIG_ESPTOOLPY_AFTER_NORESET is not set +CONFIG_ESPTOOLPY_AFTER="hard_reset" +# CONFIG_ESPTOOLPY_MONITOR_BAUD_CONSOLE is not set +# CONFIG_ESPTOOLPY_MONITOR_BAUD_9600B is not set +# CONFIG_ESPTOOLPY_MONITOR_BAUD_57600B is not set +CONFIG_ESPTOOLPY_MONITOR_BAUD_115200B=y +# CONFIG_ESPTOOLPY_MONITOR_BAUD_230400B is not set +# CONFIG_ESPTOOLPY_MONITOR_BAUD_921600B is not set +# CONFIG_ESPTOOLPY_MONITOR_BAUD_2MB is not set +# CONFIG_ESPTOOLPY_MONITOR_BAUD_OTHER is not set +CONFIG_ESPTOOLPY_MONITOR_BAUD_OTHER_VAL=115200 +CONFIG_ESPTOOLPY_MONITOR_BAUD=115200 +# end of Serial flasher config + +# +# Partition Table +# +# CONFIG_PARTITION_TABLE_SINGLE_APP is not set +# CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE is not set +# CONFIG_PARTITION_TABLE_TWO_OTA is not set +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" +CONFIG_PARTITION_TABLE_FILENAME="partitions.csv" +CONFIG_PARTITION_TABLE_OFFSET=0x8000 +CONFIG_PARTITION_TABLE_MD5=y +# end of Partition Table + +# +# Demo +# +# CONFIG_DEVICE_TYPE_ESP32_DEVKITC is not set +# CONFIG_DEVICE_TYPE_ESP32_WROVER_KIT is not set +CONFIG_DEVICE_TYPE_M5STACK=y +# CONFIG_RENDEZVOUS_MODE_SOFTAP is not set +CONFIG_RENDEZVOUS_MODE_BLE=y +# CONFIG_RENDEZVOUS_MODE_ON_NETWORK is not set +# CONFIG_RENDEZVOUS_MODE_SOFTAP_ON_NETWORK is not set +# CONFIG_RENDEZVOUS_MODE_BLE_ON_NETWORK is not set +CONFIG_TFT_PREDEFINED_DISPLAY_TYPE=3 +CONFIG_RENDEZVOUS_MODE=2 +CONFIG_DISPLAY_AUTO_OFF=y +CONFIG_STATUS_LED_GPIO_NUM=40 +CONFIG_DEINIT_BLE_ON_COMMISSIONING_COMPLETE=y +# end of Demo + +# +# Compiler options +# +CONFIG_COMPILER_OPTIMIZATION_DEFAULT=y +# CONFIG_COMPILER_OPTIMIZATION_SIZE is not set +# CONFIG_COMPILER_OPTIMIZATION_PERF is not set +# CONFIG_COMPILER_OPTIMIZATION_NONE is not set +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y +# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set +# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE is not set +CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2 +# CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT is not set +CONFIG_COMPILER_HIDE_PATHS_MACROS=y +# CONFIG_COMPILER_CXX_EXCEPTIONS is not set +# CONFIG_COMPILER_CXX_RTTI is not set +CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y +# CONFIG_COMPILER_STACK_CHECK_MODE_NORM is not set +# CONFIG_COMPILER_STACK_CHECK_MODE_STRONG is not set +# CONFIG_COMPILER_STACK_CHECK_MODE_ALL is not set +# CONFIG_COMPILER_WARN_WRITE_STRINGS is not set +# CONFIG_COMPILER_DISABLE_GCC8_WARNINGS is not set +# CONFIG_COMPILER_DUMP_RTL_FILES is not set +# end of Compiler options + +# +# Component config +# + +# +# Application Level Tracing +# +# CONFIG_APPTRACE_DEST_JTAG is not set +CONFIG_APPTRACE_DEST_NONE=y +CONFIG_APPTRACE_LOCK_ENABLE=y +# end of Application Level Tracing + +# +# ESP-ASIO +# +# CONFIG_ASIO_SSL_SUPPORT is not set +# end of ESP-ASIO + +# +# Bluetooth +# +CONFIG_BT_ENABLED=y + +# +# Bluetooth controller +# +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +# CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY is not set +# CONFIG_BTDM_CTRL_MODE_BTDM is not set +CONFIG_BTDM_CTRL_BLE_MAX_CONN=3 +CONFIG_BTDM_CTRL_BR_EDR_SCO_DATA_PATH_EFF=0 +CONFIG_BTDM_CTRL_PCM_ROLE_EFF=0 +CONFIG_BTDM_CTRL_PCM_POLAR_EFF=0 +CONFIG_BTDM_CTRL_BLE_MAX_CONN_EFF=3 +CONFIG_BTDM_CTRL_BR_EDR_MAX_ACL_CONN_EFF=0 +CONFIG_BTDM_CTRL_BR_EDR_MAX_SYNC_CONN_EFF=0 +CONFIG_BTDM_CTRL_PINNED_TO_CORE_0=y +# CONFIG_BTDM_CTRL_PINNED_TO_CORE_1 is not set +CONFIG_BTDM_CTRL_PINNED_TO_CORE=0 +CONFIG_BTDM_CTRL_HCI_MODE_VHCI=y +# CONFIG_BTDM_CTRL_HCI_MODE_UART_H4 is not set + +# +# MODEM SLEEP Options +# +# CONFIG_BTDM_CTRL_MODEM_SLEEP is not set +# end of MODEM SLEEP Options + +CONFIG_BTDM_BLE_DEFAULT_SCA_250PPM=y +CONFIG_BTDM_BLE_SLEEP_CLOCK_ACCURACY_INDEX_EFF=1 +CONFIG_BTDM_BLE_SCAN_DUPL=y +CONFIG_BTDM_SCAN_DUPL_TYPE_DEVICE=y +# CONFIG_BTDM_SCAN_DUPL_TYPE_DATA is not set +# CONFIG_BTDM_SCAN_DUPL_TYPE_DATA_DEVICE is not set +CONFIG_BTDM_SCAN_DUPL_TYPE=0 +CONFIG_BTDM_SCAN_DUPL_CACHE_SIZE=200 +# CONFIG_BTDM_BLE_MESH_SCAN_DUPL_EN is not set +CONFIG_BTDM_CTRL_FULL_SCAN_SUPPORTED=y +CONFIG_BTDM_BLE_ADV_REPORT_FLOW_CTRL_SUPP=y +CONFIG_BTDM_BLE_ADV_REPORT_FLOW_CTRL_NUM=100 +CONFIG_BTDM_BLE_ADV_REPORT_DISCARD_THRSHOLD=20 +CONFIG_BTDM_RESERVE_DRAM=0xdb5c +CONFIG_BTDM_CTRL_HLI=y +# end of Bluetooth controller + +# CONFIG_BT_BLUEDROID_ENABLED is not set +CONFIG_BT_NIMBLE_ENABLED=y +# CONFIG_BT_CONTROLLER_ONLY is not set + +# +# NimBLE Options +# +CONFIG_BT_NIMBLE_MEM_ALLOC_MODE_INTERNAL=y +# CONFIG_BT_NIMBLE_MEM_ALLOC_MODE_DEFAULT is not set +# CONFIG_BT_NIMBLE_LOG_LEVEL_NONE is not set +# CONFIG_BT_NIMBLE_LOG_LEVEL_ERROR is not set +# CONFIG_BT_NIMBLE_LOG_LEVEL_WARNING is not set +CONFIG_BT_NIMBLE_LOG_LEVEL_INFO=y +# CONFIG_BT_NIMBLE_LOG_LEVEL_DEBUG is not set +CONFIG_BT_NIMBLE_LOG_LEVEL=1 +CONFIG_BT_NIMBLE_MAX_CONNECTIONS=3 +CONFIG_BT_NIMBLE_MAX_BONDS=3 +CONFIG_BT_NIMBLE_MAX_CCCDS=8 +CONFIG_BT_NIMBLE_L2CAP_COC_MAX_NUM=0 +CONFIG_BT_NIMBLE_PINNED_TO_CORE_0=y +# CONFIG_BT_NIMBLE_PINNED_TO_CORE_1 is not set +CONFIG_BT_NIMBLE_PINNED_TO_CORE=0 +CONFIG_BT_NIMBLE_TASK_STACK_SIZE=4096 +CONFIG_BT_NIMBLE_ROLE_CENTRAL=y +CONFIG_BT_NIMBLE_ROLE_PERIPHERAL=y +CONFIG_BT_NIMBLE_ROLE_BROADCASTER=y +CONFIG_BT_NIMBLE_ROLE_OBSERVER=y +CONFIG_BT_NIMBLE_NVS_PERSIST=y +CONFIG_BT_NIMBLE_SM_LEGACY=y +CONFIG_BT_NIMBLE_SM_SC=y +# CONFIG_BT_NIMBLE_DEBUG is not set +# CONFIG_BT_NIMBLE_SM_SC_DEBUG_KEYS is not set +CONFIG_BT_NIMBLE_SVC_GAP_DEVICE_NAME="nimble" +CONFIG_BT_NIMBLE_GAP_DEVICE_NAME_MAX_LEN=31 +CONFIG_BT_NIMBLE_ATT_PREFERRED_MTU=256 +CONFIG_BT_NIMBLE_SVC_GAP_APPEARANCE=0 +CONFIG_BT_NIMBLE_ACL_BUF_COUNT=20 +CONFIG_BT_NIMBLE_ACL_BUF_SIZE=255 +CONFIG_BT_NIMBLE_HCI_EVT_BUF_SIZE=70 +CONFIG_BT_NIMBLE_HCI_EVT_HI_BUF_COUNT=30 +CONFIG_BT_NIMBLE_HCI_EVT_LO_BUF_COUNT=8 +CONFIG_BT_NIMBLE_MSYS1_BLOCK_COUNT=12 +CONFIG_BT_NIMBLE_HS_FLOW_CTRL=y +CONFIG_BT_NIMBLE_HS_FLOW_CTRL_ITVL=1000 +CONFIG_BT_NIMBLE_HS_FLOW_CTRL_THRESH=2 +CONFIG_BT_NIMBLE_HS_FLOW_CTRL_TX_ON_DISCONNECT=y +CONFIG_BT_NIMBLE_RPA_TIMEOUT=900 +# CONFIG_BT_NIMBLE_MESH is not set +CONFIG_BT_NIMBLE_CRYPTO_STACK_MBEDTLS=y +CONFIG_BT_NIMBLE_HS_STOP_TIMEOUT_MS=2000 +# CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT is not set +# CONFIG_BT_NIMBLE_BLUFI_ENABLE is not set +CONFIG_BT_NIMBLE_USE_ESP_TIMER=y +# end of NimBLE Options +# end of Bluetooth + +# CONFIG_BLE_MESH is not set + +# +# CoAP Configuration +# +CONFIG_COAP_MBEDTLS_PSK=y +# CONFIG_COAP_MBEDTLS_PKI is not set +# CONFIG_COAP_MBEDTLS_DEBUG is not set +CONFIG_COAP_LOG_DEFAULT_LEVEL=0 +# end of CoAP Configuration + +# +# Driver configurations +# + +# +# ADC configuration +# +# CONFIG_ADC_FORCE_XPD_FSM is not set +CONFIG_ADC_DISABLE_DAC=y +# end of ADC configuration + +# +# MCPWM configuration +# +# CONFIG_MCPWM_ISR_IN_IRAM is not set +# end of MCPWM configuration + +# +# SPI configuration +# +# CONFIG_SPI_MASTER_IN_IRAM is not set +CONFIG_SPI_MASTER_ISR_IN_IRAM=y +# CONFIG_SPI_SLAVE_IN_IRAM is not set +CONFIG_SPI_SLAVE_ISR_IN_IRAM=y +# end of SPI configuration + +# +# TWAI configuration +# +# CONFIG_TWAI_ISR_IN_IRAM is not set +# CONFIG_TWAI_ERRATA_FIX_BUS_OFF_REC is not set +# CONFIG_TWAI_ERRATA_FIX_TX_INTR_LOST is not set +# CONFIG_TWAI_ERRATA_FIX_RX_FRAME_INVALID is not set +# CONFIG_TWAI_ERRATA_FIX_RX_FIFO_CORRUPT is not set +# end of TWAI configuration + +# +# UART configuration +# +# CONFIG_UART_ISR_IN_IRAM is not set +# end of UART configuration + +# +# RTCIO configuration +# +# CONFIG_RTCIO_SUPPORT_RTC_GPIO_DESC is not set +# end of RTCIO configuration + +# +# GPIO Configuration +# +# CONFIG_GPIO_ESP32_SUPPORT_SWITCH_SLP_PULL is not set +# end of GPIO Configuration + +# +# GDMA Configuration +# +# CONFIG_GDMA_CTRL_FUNC_IN_IRAM is not set +# CONFIG_GDMA_ISR_IRAM_SAFE is not set +# end of GDMA Configuration +# end of Driver configurations + +# +# eFuse Bit Manager +# +# CONFIG_EFUSE_CUSTOM_TABLE is not set +# CONFIG_EFUSE_VIRTUAL is not set +# CONFIG_EFUSE_CODE_SCHEME_COMPAT_NONE is not set +CONFIG_EFUSE_CODE_SCHEME_COMPAT_3_4=y +# CONFIG_EFUSE_CODE_SCHEME_COMPAT_REPEAT is not set +CONFIG_EFUSE_MAX_BLK_LEN=192 +# end of eFuse Bit Manager + +# +# ESP-TLS +# +CONFIG_ESP_TLS_USING_MBEDTLS=y +# CONFIG_ESP_TLS_USE_SECURE_ELEMENT is not set +# CONFIG_ESP_TLS_SERVER is not set +# CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS is not set +# CONFIG_ESP_TLS_PSK_VERIFICATION is not set +# CONFIG_ESP_TLS_INSECURE is not set +# end of ESP-TLS + +# +# ESP32-specific +# +CONFIG_ESP32_REV_MIN_0=y +# CONFIG_ESP32_REV_MIN_1 is not set +# CONFIG_ESP32_REV_MIN_2 is not set +# CONFIG_ESP32_REV_MIN_3 is not set +CONFIG_ESP32_REV_MIN=0 +CONFIG_ESP32_DPORT_WORKAROUND=y +# CONFIG_ESP32_DEFAULT_CPU_FREQ_80 is not set +CONFIG_ESP32_DEFAULT_CPU_FREQ_160=y +# CONFIG_ESP32_DEFAULT_CPU_FREQ_240 is not set +CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=160 +# CONFIG_ESP32_SPIRAM_SUPPORT is not set +# CONFIG_ESP32_TRAX is not set +CONFIG_ESP32_TRACEMEM_RESERVE_DRAM=0x0 +# CONFIG_ESP32_ULP_COPROC_ENABLED is not set +CONFIG_ESP32_ULP_COPROC_RESERVE_MEM=0 +CONFIG_ESP32_DEBUG_OCDAWARE=y +CONFIG_ESP32_BROWNOUT_DET=y +CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_0=y +# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_1 is not set +# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_2 is not set +# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_3 is not set +# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_4 is not set +# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_5 is not set +# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_6 is not set +# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_7 is not set +CONFIG_ESP32_BROWNOUT_DET_LVL=0 +CONFIG_ESP32_TIME_SYSCALL_USE_RTC_FRC1=y +# CONFIG_ESP32_TIME_SYSCALL_USE_RTC is not set +# CONFIG_ESP32_TIME_SYSCALL_USE_FRC1 is not set +# CONFIG_ESP32_TIME_SYSCALL_USE_NONE is not set +CONFIG_ESP32_RTC_CLK_SRC_INT_RC=y +# CONFIG_ESP32_RTC_CLK_SRC_EXT_CRYS is not set +# CONFIG_ESP32_RTC_CLK_SRC_EXT_OSC is not set +# CONFIG_ESP32_RTC_CLK_SRC_INT_8MD256 is not set +CONFIG_ESP32_RTC_CLK_CAL_CYCLES=1024 +CONFIG_ESP32_DEEP_SLEEP_WAKEUP_DELAY=2000 +CONFIG_ESP32_XTAL_FREQ_40=y +# CONFIG_ESP32_XTAL_FREQ_26 is not set +# CONFIG_ESP32_XTAL_FREQ_AUTO is not set +CONFIG_ESP32_XTAL_FREQ=40 +# CONFIG_ESP32_DISABLE_BASIC_ROM_CONSOLE is not set +# CONFIG_ESP32_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set +# CONFIG_ESP32_COMPATIBLE_PRE_V3_1_BOOTLOADERS is not set +# CONFIG_ESP32_USE_FIXED_STATIC_RAM_SIZE is not set +CONFIG_ESP32_DPORT_DIS_INTERRUPT_LVL=5 +# end of ESP32-specific + +# +# ADC-Calibration +# +CONFIG_ADC_CAL_EFUSE_TP_ENABLE=y +CONFIG_ADC_CAL_EFUSE_VREF_ENABLE=y +CONFIG_ADC_CAL_LUT_ENABLE=y +# end of ADC-Calibration + +# +# Common ESP-related +# +CONFIG_ESP_ERR_TO_NAME_LOOKUP=y +# end of Common ESP-related + +# +# Ethernet +# +CONFIG_ETH_ENABLED=y +CONFIG_ETH_USE_ESP32_EMAC=y +CONFIG_ETH_PHY_INTERFACE_RMII=y +CONFIG_ETH_RMII_CLK_INPUT=y +# CONFIG_ETH_RMII_CLK_OUTPUT is not set +CONFIG_ETH_RMII_CLK_IN_GPIO=0 +CONFIG_ETH_DMA_BUFFER_SIZE=512 +CONFIG_ETH_DMA_RX_BUFFER_NUM=10 +CONFIG_ETH_DMA_TX_BUFFER_NUM=10 +CONFIG_ETH_USE_SPI_ETHERNET=y +# CONFIG_ETH_SPI_ETHERNET_DM9051 is not set +# CONFIG_ETH_SPI_ETHERNET_W5500 is not set +# CONFIG_ETH_SPI_ETHERNET_KSZ8851SNL is not set +# CONFIG_ETH_USE_OPENETH is not set +# end of Ethernet + +# +# Event Loop Library +# +# CONFIG_ESP_EVENT_LOOP_PROFILING is not set +CONFIG_ESP_EVENT_POST_FROM_ISR=y +CONFIG_ESP_EVENT_POST_FROM_IRAM_ISR=y +# end of Event Loop Library + +# +# GDB Stub +# +# end of GDB Stub + +# +# ESP HTTP client +# +CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y +# CONFIG_ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH is not set +CONFIG_ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH=y +# end of ESP HTTP client + +# +# HTTP Server +# +CONFIG_HTTPD_MAX_REQ_HDR_LEN=512 +CONFIG_HTTPD_MAX_URI_LEN=512 +CONFIG_HTTPD_ERR_RESP_NO_DELAY=y +CONFIG_HTTPD_PURGE_BUF_LEN=32 +# CONFIG_HTTPD_LOG_PURGE_DATA is not set +# CONFIG_HTTPD_WS_SUPPORT is not set +# end of HTTP Server + +# +# ESP HTTPS OTA +# +# CONFIG_OTA_ALLOW_HTTP is not set +# end of ESP HTTPS OTA + +# +# ESP HTTPS server +# +# CONFIG_ESP_HTTPS_SERVER_ENABLE is not set +# end of ESP HTTPS server + +# +# Hardware Settings +# + +# +# MAC Config +# +CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_STA=y +CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y +CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y +CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y +# CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_TWO is not set +CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_FOUR=y +CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES=4 +# end of MAC Config + +# +# Sleep Config +# +CONFIG_ESP_SLEEP_POWER_DOWN_FLASH=y +CONFIG_ESP_SLEEP_RTC_BUS_ISO_WORKAROUND=y +# CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND is not set +# CONFIG_ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND is not set +# end of Sleep Config +# end of Hardware Settings + +# +# IPC (Inter-Processor Call) +# +CONFIG_ESP_IPC_TASK_STACK_SIZE=1536 +CONFIG_ESP_IPC_USES_CALLERS_PRIORITY=y +CONFIG_ESP_IPC_ISR_ENABLE=y +# end of IPC (Inter-Processor Call) + +# +# LCD and Touch Panel +# + +# +# LCD Peripheral Configuration +# +CONFIG_LCD_PANEL_IO_FORMAT_BUF_SIZE=32 +# end of LCD Peripheral Configuration +# end of LCD and Touch Panel + +# +# ESP NETIF Adapter +# +CONFIG_ESP_NETIF_IP_LOST_TIMER_INTERVAL=120 +CONFIG_ESP_NETIF_TCPIP_LWIP=y +# CONFIG_ESP_NETIF_LOOPBACK is not set +CONFIG_ESP_NETIF_TCPIP_ADAPTER_COMPATIBLE_LAYER=y +# end of ESP NETIF Adapter + +# +# PHY +# +CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE=y +# CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION is not set +CONFIG_ESP_PHY_MAX_WIFI_TX_POWER=20 +CONFIG_ESP_PHY_MAX_TX_POWER=20 +CONFIG_ESP_PHY_REDUCE_TX_POWER=y +# end of PHY + +# +# Power Management +# +# CONFIG_PM_ENABLE is not set +# end of Power Management + +# +# ESP System Settings +# +# CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT is not set +CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y +# CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set +# CONFIG_ESP_SYSTEM_PANIC_GDBSTUB is not set +# CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME is not set + +# +# Memory protection +# +# end of Memory protection + +CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=32 +CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2304 +CONFIG_ESP_MAIN_TASK_STACK_SIZE=5120 +CONFIG_ESP_MAIN_TASK_AFFINITY_CPU0=y +# CONFIG_ESP_MAIN_TASK_AFFINITY_CPU1 is not set +# CONFIG_ESP_MAIN_TASK_AFFINITY_NO_AFFINITY is not set +CONFIG_ESP_MAIN_TASK_AFFINITY=0x0 +CONFIG_ESP_MINIMAL_SHARED_STACK_SIZE=2048 +CONFIG_ESP_CONSOLE_UART_DEFAULT=y +# CONFIG_ESP_CONSOLE_UART_CUSTOM is not set +# CONFIG_ESP_CONSOLE_NONE is not set +CONFIG_ESP_CONSOLE_UART=y +CONFIG_ESP_CONSOLE_MULTIPLE_UART=y +CONFIG_ESP_CONSOLE_UART_NUM=0 +CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200 +CONFIG_ESP_INT_WDT=y +CONFIG_ESP_INT_WDT_TIMEOUT_MS=300 +CONFIG_ESP_INT_WDT_CHECK_CPU1=y +CONFIG_ESP_TASK_WDT=y +# CONFIG_ESP_TASK_WDT_PANIC is not set +CONFIG_ESP_TASK_WDT_TIMEOUT_S=5 +CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=y +CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1=y +# CONFIG_ESP_PANIC_HANDLER_IRAM is not set +CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_5=y +# end of ESP System Settings + +# +# High resolution timer (esp_timer) +# +# CONFIG_ESP_TIMER_PROFILING is not set +CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y +CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER=y +CONFIG_ESP_TIMER_TASK_STACK_SIZE=3584 +CONFIG_ESP_TIMER_INTERRUPT_LEVEL=1 +# CONFIG_ESP_TIMER_SUPPORTS_ISR_DISPATCH_METHOD is not set +# CONFIG_ESP_TIMER_IMPL_FRC2 is not set +CONFIG_ESP_TIMER_IMPL_TG0_LAC=y +# end of High resolution timer (esp_timer) + +# +# Wi-Fi +# +CONFIG_ESP32_WIFI_ENABLED=y +CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE=y +CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10 +CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32 +# CONFIG_ESP32_WIFI_STATIC_TX_BUFFER is not set +CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER=y +CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=1 +CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32 +# CONFIG_ESP32_WIFI_CSI_ENABLED is not set +CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y +CONFIG_ESP32_WIFI_TX_BA_WIN=6 +CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y +CONFIG_ESP32_WIFI_RX_BA_WIN=6 +CONFIG_ESP32_WIFI_NVS_ENABLED=y +CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0=y +# CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_1 is not set +CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752 +CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32 +CONFIG_ESP32_WIFI_IRAM_OPT=y +CONFIG_ESP32_WIFI_RX_IRAM_OPT=y +CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y +# CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set +# CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE is not set +# CONFIG_ESP_WIFI_GMAC_SUPPORT is not set +CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y +# end of Wi-Fi + +# +# Core dump +# +# CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH is not set +# CONFIG_ESP_COREDUMP_ENABLE_TO_UART is not set +CONFIG_ESP_COREDUMP_ENABLE_TO_NONE=y +# end of Core dump + +# +# FAT Filesystem support +# +# CONFIG_FATFS_CODEPAGE_DYNAMIC is not set +CONFIG_FATFS_CODEPAGE_437=y +# CONFIG_FATFS_CODEPAGE_720 is not set +# CONFIG_FATFS_CODEPAGE_737 is not set +# CONFIG_FATFS_CODEPAGE_771 is not set +# CONFIG_FATFS_CODEPAGE_775 is not set +# CONFIG_FATFS_CODEPAGE_850 is not set +# CONFIG_FATFS_CODEPAGE_852 is not set +# CONFIG_FATFS_CODEPAGE_855 is not set +# CONFIG_FATFS_CODEPAGE_857 is not set +# CONFIG_FATFS_CODEPAGE_860 is not set +# CONFIG_FATFS_CODEPAGE_861 is not set +# CONFIG_FATFS_CODEPAGE_862 is not set +# CONFIG_FATFS_CODEPAGE_863 is not set +# CONFIG_FATFS_CODEPAGE_864 is not set +# CONFIG_FATFS_CODEPAGE_865 is not set +# CONFIG_FATFS_CODEPAGE_866 is not set +# CONFIG_FATFS_CODEPAGE_869 is not set +# CONFIG_FATFS_CODEPAGE_932 is not set +# CONFIG_FATFS_CODEPAGE_936 is not set +# CONFIG_FATFS_CODEPAGE_949 is not set +# CONFIG_FATFS_CODEPAGE_950 is not set +CONFIG_FATFS_CODEPAGE=437 +CONFIG_FATFS_LFN_NONE=y +# CONFIG_FATFS_LFN_HEAP is not set +# CONFIG_FATFS_LFN_STACK is not set +CONFIG_FATFS_FS_LOCK=0 +CONFIG_FATFS_TIMEOUT_MS=10000 +CONFIG_FATFS_PER_FILE_CACHE=y +# CONFIG_FATFS_USE_FASTSEEK is not set +# end of FAT Filesystem support + +# +# Modbus configuration +# +CONFIG_FMB_COMM_MODE_TCP_EN=y +CONFIG_FMB_TCP_PORT_DEFAULT=502 +CONFIG_FMB_TCP_PORT_MAX_CONN=5 +CONFIG_FMB_TCP_CONNECTION_TOUT_SEC=20 +CONFIG_FMB_COMM_MODE_RTU_EN=y +CONFIG_FMB_COMM_MODE_ASCII_EN=y +CONFIG_FMB_MASTER_TIMEOUT_MS_RESPOND=150 +CONFIG_FMB_MASTER_DELAY_MS_CONVERT=200 +CONFIG_FMB_QUEUE_LENGTH=20 +CONFIG_FMB_PORT_TASK_STACK_SIZE=4096 +CONFIG_FMB_SERIAL_BUF_SIZE=256 +CONFIG_FMB_SERIAL_ASCII_BITS_PER_SYMB=8 +CONFIG_FMB_SERIAL_ASCII_TIMEOUT_RESPOND_MS=1000 +CONFIG_FMB_PORT_TASK_PRIO=10 +# CONFIG_FMB_PORT_TASK_AFFINITY_NO_AFFINITY is not set +CONFIG_FMB_PORT_TASK_AFFINITY_CPU0=y +# CONFIG_FMB_PORT_TASK_AFFINITY_CPU1 is not set +CONFIG_FMB_PORT_TASK_AFFINITY=0x0 +CONFIG_FMB_CONTROLLER_SLAVE_ID_SUPPORT=y +CONFIG_FMB_CONTROLLER_SLAVE_ID=0x00112233 +CONFIG_FMB_CONTROLLER_NOTIFY_TIMEOUT=20 +CONFIG_FMB_CONTROLLER_NOTIFY_QUEUE_SIZE=20 +CONFIG_FMB_CONTROLLER_STACK_SIZE=4096 +CONFIG_FMB_EVENT_QUEUE_TIMEOUT=20 +# CONFIG_FMB_TIMER_PORT_ENABLED is not set +CONFIG_FMB_TIMER_GROUP=0 +CONFIG_FMB_TIMER_INDEX=0 +CONFIG_FMB_MASTER_TIMER_GROUP=0 +CONFIG_FMB_MASTER_TIMER_INDEX=0 +# CONFIG_FMB_TIMER_ISR_IN_IRAM is not set +# end of Modbus configuration + +# +# FreeRTOS +# +# CONFIG_FREERTOS_UNICORE is not set +CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF +CONFIG_FREERTOS_TICK_SUPPORT_CORETIMER=y +CONFIG_FREERTOS_CORETIMER_0=y +# CONFIG_FREERTOS_CORETIMER_1 is not set +CONFIG_FREERTOS_SYSTICK_USES_CCOUNT=y +CONFIG_FREERTOS_HZ=100 +CONFIG_FREERTOS_ASSERT_ON_UNTESTED_FUNCTION=y +# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE is not set +# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL is not set +CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY=y +# CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set +CONFIG_FREERTOS_INTERRUPT_BACKTRACE=y +CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1 +CONFIG_FREERTOS_ASSERT_FAIL_ABORT=y +# CONFIG_FREERTOS_ASSERT_FAIL_PRINT_CONTINUE is not set +# CONFIG_FREERTOS_ASSERT_DISABLE is not set +CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536 +CONFIG_FREERTOS_ISR_STACKSIZE=1536 +# CONFIG_FREERTOS_LEGACY_HOOKS is not set +CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16 +CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y +# CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP is not set +CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1 +CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048 +CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10 +CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 +# CONFIG_FREERTOS_USE_TRACE_FACILITY is not set +# CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set +CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER=y +CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y +# CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set +# CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set +CONFIG_FREERTOS_DEBUG_OCDAWARE=y +# CONFIG_FREERTOS_FPU_IN_ISR is not set +CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y +# CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH is not set +# end of FreeRTOS + +# +# Hardware Abstraction Layer (HAL) and Low Level (LL) +# +CONFIG_HAL_ASSERTION_EQUALS_SYSTEM=y +# CONFIG_HAL_ASSERTION_DISABLE is not set +# CONFIG_HAL_ASSERTION_SILIENT is not set +# CONFIG_HAL_ASSERTION_ENABLE is not set +CONFIG_HAL_DEFAULT_ASSERTION_LEVEL=2 +# end of Hardware Abstraction Layer (HAL) and Low Level (LL) + +# +# Heap memory debugging +# +CONFIG_HEAP_POISONING_DISABLED=y +# CONFIG_HEAP_POISONING_LIGHT is not set +# CONFIG_HEAP_POISONING_COMPREHENSIVE is not set +CONFIG_HEAP_TRACING_OFF=y +# CONFIG_HEAP_TRACING_STANDALONE is not set +# CONFIG_HEAP_TRACING_TOHOST is not set +# CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS is not set +# end of Heap memory debugging + +# +# jsmn +# +# CONFIG_JSMN_PARENT_LINKS is not set +# CONFIG_JSMN_STRICT is not set +# end of jsmn + +# +# libsodium +# +# end of libsodium + +# +# Log output +# +# CONFIG_LOG_DEFAULT_LEVEL_NONE is not set +# CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set +# CONFIG_LOG_DEFAULT_LEVEL_WARN is not set +CONFIG_LOG_DEFAULT_LEVEL_INFO=y +# CONFIG_LOG_DEFAULT_LEVEL_DEBUG is not set +# CONFIG_LOG_DEFAULT_LEVEL_VERBOSE is not set +CONFIG_LOG_DEFAULT_LEVEL=3 +CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT=y +# CONFIG_LOG_MAXIMUM_LEVEL_DEBUG is not set +# CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE is not set +CONFIG_LOG_MAXIMUM_LEVEL=3 +CONFIG_LOG_COLORS=y +CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y +# CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM is not set +# end of Log output + +# +# LWIP +# +CONFIG_LWIP_LOCAL_HOSTNAME="espressif" +# CONFIG_LWIP_NETIF_API is not set +# CONFIG_LWIP_TCPIP_CORE_LOCKING is not set +CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES=y +# CONFIG_LWIP_L2_TO_L3_COPY is not set +# CONFIG_LWIP_IRAM_OPTIMIZATION is not set +CONFIG_LWIP_TIMERS_ONDEMAND=y +CONFIG_LWIP_MAX_SOCKETS=10 +# CONFIG_LWIP_USE_ONLY_LWIP_SELECT is not set +# CONFIG_LWIP_SO_LINGER is not set +CONFIG_LWIP_SO_REUSE=y +CONFIG_LWIP_SO_REUSE_RXTOALL=y +# CONFIG_LWIP_SO_RCVBUF is not set +# CONFIG_LWIP_NETBUF_RECVINFO is not set +CONFIG_LWIP_IP4_FRAG=y +CONFIG_LWIP_IP6_FRAG=y +# CONFIG_LWIP_IP4_REASSEMBLY is not set +# CONFIG_LWIP_IP6_REASSEMBLY is not set +# CONFIG_LWIP_IP_FORWARD is not set +# CONFIG_LWIP_STATS is not set +# CONFIG_LWIP_ETHARP_TRUST_IP_MAC is not set +CONFIG_LWIP_ESP_GRATUITOUS_ARP=y +CONFIG_LWIP_GARP_TMR_INTERVAL=60 +CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32 +CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y +# CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set +CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y +# CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set +CONFIG_LWIP_DHCP_OPTIONS_LEN=68 + +# +# DHCP server +# +CONFIG_LWIP_DHCPS=y +CONFIG_LWIP_DHCPS_LEASE_UNIT=60 +CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8 +# end of DHCP server + +# CONFIG_LWIP_AUTOIP is not set +CONFIG_LWIP_IPV6=y +CONFIG_LWIP_IPV6_AUTOCONFIG=y +CONFIG_LWIP_IPV6_NUM_ADDRESSES=3 +# CONFIG_LWIP_IPV6_FORWARD is not set +CONFIG_LWIP_IPV6_RDNSS_MAX_DNS_SERVERS=0 +# CONFIG_LWIP_IPV6_DHCP6 is not set +# CONFIG_LWIP_NETIF_STATUS_CALLBACK is not set +CONFIG_LWIP_NETIF_LOOPBACK=y +CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8 + +# +# TCP +# +CONFIG_LWIP_MAX_ACTIVE_TCP=16 +CONFIG_LWIP_MAX_LISTENING_TCP=16 +CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=y +CONFIG_LWIP_TCP_MAXRTX=12 +CONFIG_LWIP_TCP_SYNMAXRTX=12 +CONFIG_LWIP_TCP_MSS=1440 +CONFIG_LWIP_TCP_TMR_INTERVAL=250 +CONFIG_LWIP_TCP_MSL=60000 +CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5744 +CONFIG_LWIP_TCP_WND_DEFAULT=5744 +CONFIG_LWIP_TCP_RECVMBOX_SIZE=6 +CONFIG_LWIP_TCP_QUEUE_OOSEQ=y +# CONFIG_LWIP_TCP_SACK_OUT is not set +# CONFIG_LWIP_TCP_KEEP_CONNECTION_WHEN_IP_CHANGES is not set +CONFIG_LWIP_TCP_OVERSIZE_MSS=y +# CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set +# CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set +CONFIG_LWIP_TCP_RTO_TIME=1500 +# end of TCP + +# +# UDP +# +CONFIG_LWIP_MAX_UDP_PCBS=16 +CONFIG_LWIP_UDP_RECVMBOX_SIZE=6 +# end of UDP + +# +# Checksums +# +# CONFIG_LWIP_CHECKSUM_CHECK_IP is not set +# CONFIG_LWIP_CHECKSUM_CHECK_UDP is not set +CONFIG_LWIP_CHECKSUM_CHECK_ICMP=y +# end of Checksums + +CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072 +CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y +# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set +# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU1 is not set +CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF +# CONFIG_LWIP_PPP_SUPPORT is not set +CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3 +CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5 +# CONFIG_LWIP_SLIP_SUPPORT is not set + +# +# ICMP +# +CONFIG_LWIP_ICMP=y +# CONFIG_LWIP_MULTICAST_PING is not set +# CONFIG_LWIP_BROADCAST_PING is not set +# end of ICMP + +# +# LWIP RAW API +# +CONFIG_LWIP_MAX_RAW_PCBS=16 +# end of LWIP RAW API + +# +# SNTP +# +CONFIG_LWIP_SNTP_MAX_SERVERS=1 +# CONFIG_LWIP_DHCP_GET_NTP_SRV is not set +CONFIG_LWIP_SNTP_UPDATE_DELAY=3600000 +# end of SNTP + +CONFIG_LWIP_ESP_LWIP_ASSERT=y + +# +# Hooks +# +# CONFIG_LWIP_HOOK_TCP_ISN_NONE is not set +CONFIG_LWIP_HOOK_TCP_ISN_DEFAULT=y +# CONFIG_LWIP_HOOK_TCP_ISN_CUSTOM is not set +# CONFIG_LWIP_HOOK_IP6_ROUTE_NONE is not set +CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT=y +# CONFIG_LWIP_HOOK_IP6_ROUTE_CUSTOM is not set +# CONFIG_LWIP_HOOK_ND6_GET_GW_NONE is not set +CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT=y +# CONFIG_LWIP_HOOK_ND6_GET_GW_CUSTOM is not set +CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y +# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT is not set +# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM is not set +# end of Hooks + +# CONFIG_LWIP_DEBUG is not set +# end of LWIP + +# +# mbedTLS +# +CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y +# CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC is not set +# CONFIG_MBEDTLS_CUSTOM_MEM_ALLOC is not set +CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y +CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384 +CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096 +# CONFIG_MBEDTLS_DYNAMIC_BUFFER is not set +# CONFIG_MBEDTLS_DEBUG is not set + +# +# Certificate Bundle +# +CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y +CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y +# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN is not set +# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE is not set +# CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE is not set +# end of Certificate Bundle + +CONFIG_MBEDTLS_ECP_RESTARTABLE=y +CONFIG_MBEDTLS_CMAC_C=y +CONFIG_MBEDTLS_HARDWARE_AES=y +CONFIG_MBEDTLS_HARDWARE_MPI=y +CONFIG_MBEDTLS_HARDWARE_SHA=y +CONFIG_MBEDTLS_ROM_MD5=y +# CONFIG_MBEDTLS_ATCA_HW_ECDSA_SIGN is not set +# CONFIG_MBEDTLS_ATCA_HW_ECDSA_VERIFY is not set +CONFIG_MBEDTLS_HAVE_TIME=y +# CONFIG_MBEDTLS_HAVE_TIME_DATE is not set +CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y +CONFIG_MBEDTLS_SHA512_C=y +CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y +# CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set +# CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set +# CONFIG_MBEDTLS_TLS_DISABLED is not set +CONFIG_MBEDTLS_TLS_SERVER=y +CONFIG_MBEDTLS_TLS_CLIENT=y +CONFIG_MBEDTLS_TLS_ENABLED=y + +# +# TLS Key Exchange Methods +# +# CONFIG_MBEDTLS_PSK_MODES is not set +CONFIG_MBEDTLS_KEY_EXCHANGE_RSA=y +CONFIG_MBEDTLS_KEY_EXCHANGE_DHE_RSA=y +CONFIG_MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE=y +CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA=y +CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA=y +CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA=y +CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_RSA=y +# end of TLS Key Exchange Methods + +CONFIG_MBEDTLS_SSL_RENEGOTIATION=y +# CONFIG_MBEDTLS_SSL_PROTO_SSL3 is not set +CONFIG_MBEDTLS_SSL_PROTO_TLS1=y +CONFIG_MBEDTLS_SSL_PROTO_TLS1_1=y +CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y +# CONFIG_MBEDTLS_SSL_PROTO_GMTSSL1_1 is not set +# CONFIG_MBEDTLS_SSL_PROTO_DTLS is not set +CONFIG_MBEDTLS_SSL_ALPN=y +CONFIG_MBEDTLS_CLIENT_SSL_SESSION_TICKETS=y +CONFIG_MBEDTLS_X509_CHECK_KEY_USAGE=y +CONFIG_MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE=y +CONFIG_MBEDTLS_SERVER_SSL_SESSION_TICKETS=y + +# +# Symmetric Ciphers +# +CONFIG_MBEDTLS_AES_C=y +# CONFIG_MBEDTLS_CAMELLIA_C is not set +# CONFIG_MBEDTLS_DES_C is not set +CONFIG_MBEDTLS_RC4_DISABLED=y +# CONFIG_MBEDTLS_RC4_ENABLED_NO_DEFAULT is not set +# CONFIG_MBEDTLS_RC4_ENABLED is not set +# CONFIG_MBEDTLS_BLOWFISH_C is not set +# CONFIG_MBEDTLS_XTEA_C is not set +CONFIG_MBEDTLS_CCM_C=y +CONFIG_MBEDTLS_GCM_C=y +# CONFIG_MBEDTLS_NIST_KW_C is not set +# end of Symmetric Ciphers + +# CONFIG_MBEDTLS_RIPEMD160_C is not set + +# +# Certificates +# +CONFIG_MBEDTLS_PEM_PARSE_C=y +CONFIG_MBEDTLS_PEM_WRITE_C=y +CONFIG_MBEDTLS_X509_CRL_PARSE_C=y +CONFIG_MBEDTLS_X509_CSR_PARSE_C=y +# end of Certificates + +CONFIG_MBEDTLS_ECP_C=y +CONFIG_MBEDTLS_ECDH_C=y +CONFIG_MBEDTLS_ECDSA_C=y +# CONFIG_MBEDTLS_ECJPAKE_C is not set +CONFIG_MBEDTLS_ECP_DP_SECP192R1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_SECP224R1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_SECP384R1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_SECP521R1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_SECP192K1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_SECP224K1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_SECP256K1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_BP256R1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_BP384R1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y +CONFIG_MBEDTLS_ECP_NIST_OPTIM=y +# CONFIG_MBEDTLS_POLY1305_C is not set +# CONFIG_MBEDTLS_CHACHA20_C is not set +# CONFIG_MBEDTLS_HKDF_C is not set +# CONFIG_MBEDTLS_THREADING_C is not set +# CONFIG_MBEDTLS_LARGE_KEY_SOFTWARE_MPI is not set +# CONFIG_MBEDTLS_SECURITY_RISKS is not set +# end of mbedTLS + +# +# mDNS +# +CONFIG_MDNS_MAX_SERVICES=10 +CONFIG_MDNS_TASK_PRIORITY=1 +CONFIG_MDNS_TASK_STACK_SIZE=4096 +# CONFIG_MDNS_TASK_AFFINITY_NO_AFFINITY is not set +CONFIG_MDNS_TASK_AFFINITY_CPU0=y +# CONFIG_MDNS_TASK_AFFINITY_CPU1 is not set +CONFIG_MDNS_TASK_AFFINITY=0x0 +CONFIG_MDNS_SERVICE_ADD_TIMEOUT_MS=2000 +# CONFIG_MDNS_STRICT_MODE is not set +CONFIG_MDNS_TIMER_PERIOD_MS=100 +# CONFIG_MDNS_NETWORKING_SOCKET is not set +CONFIG_MDNS_MULTIPLE_INSTANCE=y +# end of mDNS + +# +# ESP-MQTT Configurations +# +CONFIG_MQTT_PROTOCOL_311=y +CONFIG_MQTT_TRANSPORT_SSL=y +CONFIG_MQTT_TRANSPORT_WEBSOCKET=y +CONFIG_MQTT_TRANSPORT_WEBSOCKET_SECURE=y +# CONFIG_MQTT_MSG_ID_INCREMENTAL is not set +# CONFIG_MQTT_SKIP_PUBLISH_IF_DISCONNECTED is not set +# CONFIG_MQTT_REPORT_DELETED_MESSAGES is not set +# CONFIG_MQTT_USE_CUSTOM_CONFIG is not set +# CONFIG_MQTT_TASK_CORE_SELECTION_ENABLED is not set +# CONFIG_MQTT_CUSTOM_OUTBOX is not set +# end of ESP-MQTT Configurations + +# +# Newlib +# +CONFIG_NEWLIB_STDOUT_LINE_ENDING_CRLF=y +# CONFIG_NEWLIB_STDOUT_LINE_ENDING_LF is not set +# CONFIG_NEWLIB_STDOUT_LINE_ENDING_CR is not set +# CONFIG_NEWLIB_STDIN_LINE_ENDING_CRLF is not set +# CONFIG_NEWLIB_STDIN_LINE_ENDING_LF is not set +CONFIG_NEWLIB_STDIN_LINE_ENDING_CR=y +# CONFIG_NEWLIB_NANO_FORMAT is not set +# end of Newlib + +# +# NVS +# +# end of NVS + +# +# OpenSSL +# +# CONFIG_OPENSSL_DEBUG is not set +CONFIG_OPENSSL_ERROR_STACK=y +# CONFIG_OPENSSL_ASSERT_DO_NOTHING is not set +CONFIG_OPENSSL_ASSERT_EXIT=y +# end of OpenSSL + +# +# OpenThread +# +# CONFIG_OPENTHREAD_ENABLED is not set +# end of OpenThread + +# +# PThreads +# +CONFIG_PTHREAD_TASK_PRIO_DEFAULT=5 +CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072 +CONFIG_PTHREAD_STACK_MIN=768 +CONFIG_PTHREAD_DEFAULT_CORE_NO_AFFINITY=y +# CONFIG_PTHREAD_DEFAULT_CORE_0 is not set +# CONFIG_PTHREAD_DEFAULT_CORE_1 is not set +CONFIG_PTHREAD_TASK_CORE_DEFAULT=-1 +CONFIG_PTHREAD_TASK_NAME_DEFAULT="pthread" +# end of PThreads + +# +# SPI Flash driver +# +# CONFIG_SPI_FLASH_VERIFY_WRITE is not set +# CONFIG_SPI_FLASH_ENABLE_COUNTERS is not set +CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=y +CONFIG_SPI_FLASH_DANGEROUS_WRITE_ABORTS=y +# CONFIG_SPI_FLASH_DANGEROUS_WRITE_FAILS is not set +# CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED is not set +# CONFIG_SPI_FLASH_USE_LEGACY_IMPL is not set +# CONFIG_SPI_FLASH_SHARE_SPI1_BUS is not set +# CONFIG_SPI_FLASH_BYPASS_BLOCK_ERASE is not set +CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y +CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=20 +CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=1 +CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=8192 +# CONFIG_SPI_FLASH_SIZE_OVERRIDE is not set +# CONFIG_SPI_FLASH_CHECK_ERASE_TIMEOUT_DISABLED is not set +# CONFIG_SPI_FLASH_OVERRIDE_CHIP_DRIVER_LIST is not set + +# +# Auto-detect flash chips +# +CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=y +CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=y +CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=y +CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=y +# end of Auto-detect flash chips + +CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=y +# end of SPI Flash driver + +# +# SPIFFS Configuration +# +CONFIG_SPIFFS_MAX_PARTITIONS=3 + +# +# SPIFFS Cache Configuration +# +CONFIG_SPIFFS_CACHE=y +CONFIG_SPIFFS_CACHE_WR=y +# CONFIG_SPIFFS_CACHE_STATS is not set +# end of SPIFFS Cache Configuration + +CONFIG_SPIFFS_PAGE_CHECK=y +CONFIG_SPIFFS_GC_MAX_RUNS=10 +# CONFIG_SPIFFS_GC_STATS is not set +CONFIG_SPIFFS_PAGE_SIZE=256 +CONFIG_SPIFFS_OBJ_NAME_LEN=32 +# CONFIG_SPIFFS_FOLLOW_SYMLINKS is not set +CONFIG_SPIFFS_USE_MAGIC=y +CONFIG_SPIFFS_USE_MAGIC_LENGTH=y +CONFIG_SPIFFS_META_LENGTH=4 +CONFIG_SPIFFS_USE_MTIME=y + +# +# Debug Configuration +# +# CONFIG_SPIFFS_DBG is not set +# CONFIG_SPIFFS_API_DBG is not set +# CONFIG_SPIFFS_GC_DBG is not set +# CONFIG_SPIFFS_CACHE_DBG is not set +# CONFIG_SPIFFS_CHECK_DBG is not set +# CONFIG_SPIFFS_TEST_VISUALISATION is not set +# end of Debug Configuration +# end of SPIFFS Configuration + +# +# TCP Transport +# + +# +# Websocket +# +CONFIG_WS_TRANSPORT=y +CONFIG_WS_BUFFER_SIZE=1024 +# end of Websocket +# end of TCP Transport + +# +# Unity unit testing library +# +CONFIG_UNITY_ENABLE_FLOAT=y +CONFIG_UNITY_ENABLE_DOUBLE=y +# CONFIG_UNITY_ENABLE_64BIT is not set +# CONFIG_UNITY_ENABLE_COLOR is not set +CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER=y +# CONFIG_UNITY_ENABLE_FIXTURE is not set +# CONFIG_UNITY_ENABLE_BACKTRACE_ON_FAIL is not set +# end of Unity unit testing library + +# +# Virtual file system +# +CONFIG_VFS_SUPPORT_IO=y +CONFIG_VFS_SUPPORT_DIR=y +CONFIG_VFS_SUPPORT_SELECT=y +CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT=y +CONFIG_VFS_SUPPORT_TERMIOS=y + +# +# Host File System I/O (Semihosting) +# +CONFIG_VFS_SEMIHOSTFS_MAX_MOUNT_POINTS=1 +CONFIG_VFS_SEMIHOSTFS_HOST_PATH_MAX_LEN=128 +# end of Host File System I/O (Semihosting) +# end of Virtual file system + +# +# Wear Levelling +# +# CONFIG_WL_SECTOR_SIZE_512 is not set +CONFIG_WL_SECTOR_SIZE_4096=y +CONFIG_WL_SECTOR_SIZE=4096 +# end of Wear Levelling + +# +# Wi-Fi Provisioning Manager +# +CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16 +CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30 +# CONFIG_WIFI_PROV_BLE_BONDING is not set +# end of Wi-Fi Provisioning Manager + +# +# Supplicant +# +CONFIG_WPA_MBEDTLS_CRYPTO=y +# CONFIG_WPA_WAPI_PSK is not set +# CONFIG_WPA_SUITE_B_192 is not set +# CONFIG_WPA_DEBUG_PRINT is not set +# CONFIG_WPA_TESTING_OPTIONS is not set +# CONFIG_WPA_WPS_STRICT is not set +# CONFIG_WPA_11KV_SUPPORT is not set +# end of Supplicant + +# +# CHIP Core +# + +# +# General Options +# +CONFIG_MAX_EXCHANGE_CONTEXTS=8 +CONFIG_MAX_BINDINGS=8 +CONFIG_MAX_FABRICS=5 +CONFIG_MAX_PEER_NODES=16 +CONFIG_MAX_UNSOLICITED_MESSAGE_HANDLERS=8 +# CONFIG_ENABLE_PW_RPC is not set +CONFIG_USE_MINIMAL_MDNS=y +CONFIG_ENABLE_CHIP_SHELL=y +# CONFIG_DISABLE_IPV4 is not set +CONFIG_BUILD_CHIP_TESTS=y +# end of General Options + +# +# Networking Options +# +CONFIG_NUM_TCP_ENDPOINTS=8 +CONFIG_NUM_UDP_ENDPOINTS=8 +CONFIG_MAX_CONNECTIONS=8 +CONFIG_DEFAULT_INCOMING_CONNECTION_IDLE_TIMEOUT=15000 +# end of Networking Options + +# +# System Options +# +CONFIG_NUM_TIMERS=32 +# CONFIG_ENABLE_OTA_REQUESTOR is not set +# end of System Options + +# +# Security Options +# +CONFIG_MAX_SESSION_KEYS=8 + +# +# Debugging +# +# CONFIG_SECURITY_TEST_MODE is not set +# CONFIG_DISABLE_PROVISIONING_AUTH is not set +# end of Debugging +# end of Security Options +# end of CHIP Core + +# +# CHIP Device Layer +# + +# +# General Options +# +CONFIG_CHIP_PROJECT_CONFIG="" +CONFIG_CHIP_TASK_STACK_SIZE=8192 +CONFIG_CHIP_TASK_PRIORITY=1 +CONFIG_MAX_EVENT_QUEUE_SIZE=25 +CONFIG_SERVICE_DIRECTORY_CACHE_SIZE=512 +# CONFIG_ENABLE_EXTENDED_DISCOVERY is not set +# CONFIG_ENABLE_COMMISSIONABLE_DEVICE_TYPE is not set +# end of General Options + +# +# Device Identification Options +# +CONFIG_DEVICE_VENDOR_ID=0xFFF1 +CONFIG_DEVICE_PRODUCT_ID=0x8001 +CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION=0 +CONFIG_DEVICE_SOFTWARE_VERSION="v1.0" +CONFIG_DEVICE_SOFTWARE_VERSION_NUMBER=1 +CONFIG_DEVICE_TYPE=0 +# end of Device Identification Options + +# +# WiFi Station Options +# +CONFIG_ENABLE_WIFI_STATION=y +CONFIG_DEFAULT_WIFI_SSID="" +CONFIG_DEFAULT_WIFI_PASSWORD="" +CONFIG_WIFI_STATION_RECONNECT_INTERVAL=5000 +CONFIG_MAX_SCAN_NETWORKS_RESULTS=10 +CONFIG_WIFI_SCAN_COMPLETION_TIMEOUT=10000 +CONFIG_WIFI_CONNECTIVITY_TIMEOUT=30000 +# end of WiFi Station Options + +# +# WiFi AP Options +# +CONFIG_ENABLE_WIFI_AP=y +CONFIG_WIFI_AP_SSID_PREFIX="MATTER-" +CONFIG_WIFI_AP_CHANNEL=1 +CONFIG_WIFI_AP_MAX_STATIONS=4 +CONFIG_WIFI_AP_BEACON_INTERVAL=100 +CONFIG_WIFI_AP_IDLE_TIMEOUT=120000 +# end of WiFi AP Options + +# +# BLE Options +# +CONFIG_ENABLE_CHIPOBLE=y +CONFIG_BLE_DEVICE_NAME_PREFIX="MATTER-" +CONFIG_BLE_FAST_ADVERTISING_INTERVAL_MIN=40 +CONFIG_BLE_FAST_ADVERTISING_INTERVAL_MAX=40 +CONFIG_BLE_SLOW_ADVERTISING_INTERVAL_MIN=800 +CONFIG_BLE_SLOW_ADVERTISING_INTERVAL_MAX=800 +CONFIG_CHIPOBLE_SINGLE_CONNECTION=y +# CONFIG_CHIPOBLE_DISABLE_ADVERTISING_WHEN_PROVISIONED is not set +# end of BLE Options + +# +# CHIP Trait Manager +# +CONFIG_ENABLE_TRAIT_MANAGER=y +# end of CHIP Trait Manager + +# +# Time Sync Options +# +CONFIG_ENABLE_SERVICE_DIRECTORY_TIME_SYNC=y +# CONFIG_ENABLE_CHIP_TIME_SERVICE_TIME_SYNC is not set +# end of Time Sync Options + +# +# Service Provisioning Options +# +CONFIG_SERVICE_PROVISIONING_ENDPOINT_ID=18B4300200000010 +CONFIG_SERVICE_PROVISIONING_CONNECTIVITY_TIMEOUT=10000 +CONFIG_SERVICE_PROVISIONING_REQUEST_TIMEOUT=10000 +# end of Service Provisioning Options + +# +# Commissioning options +# +CONFIG_RENDEZVOUS_WAIT_FOR_COMMISSIONING_COMPLETE=0 +# CONFIG_ENABLE_ROTATING_DEVICE_ID is not set +# CONFIG_ENABLE_ESP32_FACTORY_DATA_PROVIDER is not set +# end of Commissioning options + +# +# Testing Options +# +CONFIG_USE_TEST_SERIAL_NUMBER="TEST_SN" +CONFIG_ENABLE_TEST_SETUP_PARAMS=y +# CONFIG_ENABLE_FIXED_TUNNEL_SERVER is not set +# CONFIG_LOG_PROVISIONING_HASH is not set +# end of Testing Options + +# +# Network Telemetry Options +# +CONFIG_ENABLE_WIFI_TELEMETRY=y +# CONFIG_ENABLE_THREAD_TELEMETRY is not set +# CONFIG_ENABLE_THREAD_TELEMETRY_FULL is not set +# CONFIG_ENABLE_TUNNEL_TELEMETRY is not set +# end of Network Telemetry Options + +# +# Event Logging Options +# +CONFIG_EVENT_LOGGING_CRIT_BUFFER_SIZE=4096 +CONFIG_EVENT_LOGGING_PROD_BUFFER_SIZE=2048 +CONFIG_EVENT_LOGGING_INFO_BUFFER_SIZE=1024 +CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE=1024 +CONFIG_CHIP_ENABLE_SCHEMA_CHECK=y +# end of Event Logging Options + +# +# Matter OTA Image +# +# CONFIG_CHIP_OTA_IMAGE_BUILD is not set +# end of Matter OTA Image + +# +# External Platform +# +# CONFIG_CHIP_ENABLE_EXTERNAL_PLATFORM is not set +# end of External Platform + +# +# Matter Manufacturing Options +# +CONFIG_CHIP_FACTORY_NAMESPACE_PARTITION_LABEL="nvs" +CONFIG_CHIP_CONFIG_NAMESPACE_PARTITION_LABEL="nvs" +CONFIG_CHIP_COUNTERS_NAMESPACE_PARTITION_LABEL="nvs" +# end of Matter Manufacturing Options +# end of CHIP Device Layer + +# +# TFT Display +# +CONFIG_TFT_PREDEFINED_DISPLAY_TYPE0=y +# CONFIG_TFT_PREDEFINED_DISPLAY_TYPE1 is not set +# CONFIG_TFT_PREDEFINED_DISPLAY_TYPE4 is not set +# CONFIG_TFT_PREDEFINED_DISPLAY_TYPE2 is not set +# CONFIG_TFT_PREDEFINED_DISPLAY_TYPE3 is not set +# CONFIG_TFT_PREDEFINED_DISPLAY_TYPE5 is not set +# CONFIG_TFT_PREDEFINED_DISPLAY_TYPE6 is not set +CONFIG_TFT_DISPLAY_CONTROLLER_MODEL=0 +CONFIG_TFT_DISPLAY_CONTROLLER_ILI9341=y +# CONFIG_TFT_DISPLAY_CONTROLLER_ILI9488 is not set +# CONFIG_TFT_DISPLAY_CONTROLLER_ST7789V is not set +# CONFIG_TFT_DISPLAY_CONTROLLER_ST7735 is not set +# CONFIG_TFT_DISPLAY_CONTROLLER_ST7735R is not set +# CONFIG_TFT_DISPLAY_CONTROLLER_ST7735B is not set +CONFIG_TFT_DISPLAY_WIDTH=240 +CONFIG_TFT_DISPLAY_HEIGHT=320 +# CONFIG_TFT_RGB_BGR is not set +CONFIG_TFT_TOUCH_CONTROLLER=0 +CONFIG_TFT_TOUCH_CONTROLLER0=y +# CONFIG_TFT_TOUCH_CONTROLLER1 is not set +# CONFIG_TFT_TOUCH_CONTROLLER2 is not set +# CONFIG_TFT_INVERT_ROTATION1 is not set +CONFIG_TFT_PIN_NUM_MOSI=23 +CONFIG_TFT_PIN_NUM_MISO=19 +CONFIG_TFT_PIN_NUM_CLK=18 +CONFIG_TFT_PIN_NUM_CS=5 +CONFIG_TFT_PIN_NUM_DC=26 +CONFIG_TFT_PIN_NUM_TCS=25 +CONFIG_TFT_PIN_NUM_RST=0 +CONFIG_TFT_PIN_NUM_BCKL=0 +# end of TFT Display +# end of Component config + +# +# Compatibility options +# +# CONFIG_LEGACY_INCLUDE_COMMON_HEADERS is not set +# end of Compatibility options diff --git a/examples/ipv6only-app/esp32/sdkconfig.defaults b/examples/all-clusters-minimal-app/esp32/sdkconfig_c3devkit.defaults similarity index 67% rename from examples/ipv6only-app/esp32/sdkconfig.defaults rename to examples/all-clusters-minimal-app/esp32/sdkconfig_c3devkit.defaults index e4ce5edbb3c0fd..737935b166f98f 100644 --- a/examples/ipv6only-app/esp32/sdkconfig.defaults +++ b/examples/all-clusters-minimal-app/esp32/sdkconfig_c3devkit.defaults @@ -1,5 +1,5 @@ # -# Copyright (c) 2021 Project CHIP Authors +# Copyright (c) 2020 Project CHIP Authors # Copyright (c) 2018 Nest Labs, Inc. # All rights reserved. # @@ -16,9 +16,11 @@ # limitations under the License. # # Description: -# Some useful defaults for the demo app configuration. +# CI uses this to select the ESP32C3-DevKitM. # - +CONFIG_IDF_TARGET="esp32c3" +CONFIG_IDF_TARGET_ESP32C3=y +CONFIG_DEVICE_TYPE_ESP32_C3_DEVKITM=y # Default to 921600 baud when flashing and monitoring device CONFIG_ESPTOOLPY_BAUD_921600B=y @@ -27,17 +29,21 @@ CONFIG_ESPTOOLPY_COMPRESSED=y CONFIG_ESPTOOLPY_MONITOR_BAUD_115200B=y CONFIG_ESPTOOLPY_MONITOR_BAUD=115200 -# UART -CONFIG_ESP_CONSOLE_UART_CUSTOM=y -CONFIG_ESP_CONSOLE_UART_CUSTOM_NUM_1=y -CONFIG_ESP_CONSOLE_UART_NUM=1 +#enable BT +CONFIG_BT_ENABLED=y +CONFIG_BT_NIMBLE_ENABLED=y #enable lwip ipv6 autoconfig CONFIG_LWIP_IPV6_AUTOCONFIG=y # Use a custom partition table CONFIG_PARTITION_TABLE_CUSTOM=y -CONFIG_PARTITION_TABLE_FILENAME="partitions.csv" +CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" + +#enable lwIP route hooks +CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT=y +CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT=y -# Enable Pigweed RPC Library in CHIP -CONFIG_ENABLE_PW_RPC=y +# Serial Flasher config +CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y +CONFIG_ESPTOOLPY_FLASHSIZE="4MB" diff --git a/examples/all-clusters-minimal-app/esp32/sdkconfig_m5stack.defaults b/examples/all-clusters-minimal-app/esp32/sdkconfig_m5stack.defaults new file mode 100644 index 00000000000000..6b3de5e5cfea51 --- /dev/null +++ b/examples/all-clusters-minimal-app/esp32/sdkconfig_m5stack.defaults @@ -0,0 +1,66 @@ +# +# Copyright (c) 2020 Project CHIP Authors +# Copyright (c) 2018 Nest Labs, Inc. +# All rights reserved. +# +# 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. +# +# Description: +# CI uses this to select the ESP32 M5Stack. +# +CONFIG_IDF_TARGET="esp32" +CONFIG_IDF_TARGET_ESP32=y +CONFIG_DEVICE_TYPE_M5STACK=y + +# Default to 921600 baud when flashing and monitoring device +CONFIG_ESPTOOLPY_BAUD_921600B=y +CONFIG_ESPTOOLPY_BAUD=921600 +CONFIG_ESPTOOLPY_COMPRESSED=y +CONFIG_ESPTOOLPY_MONITOR_BAUD_115200B=y +CONFIG_ESPTOOLPY_MONITOR_BAUD=115200 + +#enable BT +CONFIG_BT_ENABLED=y +CONFIG_BT_NIMBLE_ENABLED=y + +#enable lwip ipv6 autoconfig +CONFIG_LWIP_IPV6_AUTOCONFIG=y + +# Use a custom partition table +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" + +# Vendor and product id +CONFIG_DEVICE_VENDOR_ID=0xFFF1 +CONFIG_DEVICE_PRODUCT_ID=0x8001 + +# Main task needs a bit more stack than the default +# default is 3584, bump this up to 5k. +CONFIG_ESP_MAIN_TASK_STACK_SIZE=5120 + +#enable debug shell +CONFIG_ENABLE_CHIP_SHELL=y + +#enable lwIP route hooks +CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT=y +CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT=y + +# Serial Flasher config +CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y +CONFIG_ESPTOOLPY_FLASHSIZE="4MB" + +#disable Bluetooth modem sleep +#enable it may cause GPIO ISR triggers continuously +CONFIG_BTDM_CTRL_MODEM_SLEEP=n +CONFIG_BTDM_CTRL_MODEM_SLEEP_MODE_ORIG=n +CONFIG_BTDM_CTRL_LPCLK_SEL_MAIN_XTAL=n \ No newline at end of file diff --git a/examples/all-clusters-minimal-app/esp32/sdkconfig_m5stack_rpc.defaults b/examples/all-clusters-minimal-app/esp32/sdkconfig_m5stack_rpc.defaults new file mode 100644 index 00000000000000..5ffdd6672f1205 --- /dev/null +++ b/examples/all-clusters-minimal-app/esp32/sdkconfig_m5stack_rpc.defaults @@ -0,0 +1,70 @@ +# +# Copyright (c) 2020 Project CHIP Authors +# Copyright (c) 2018 Nest Labs, Inc. +# All rights reserved. +# +# 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. +# +# Description: +# CI uses this to select the ESP32 M5Stack. +# +CONFIG_IDF_TARGET="esp32" +CONFIG_IDF_TARGET_ESP32=y +CONFIG_DEVICE_TYPE_M5STACK=y + +# Default to 921600 baud when flashing and monitoring device +CONFIG_ESPTOOLPY_BAUD_921600B=y +CONFIG_ESPTOOLPY_BAUD=921600 +CONFIG_ESPTOOLPY_COMPRESSED=y +CONFIG_ESPTOOLPY_MONITOR_BAUD_115200B=y +CONFIG_ESPTOOLPY_MONITOR_BAUD=115200 + +#enable BT +CONFIG_BT_ENABLED=y +CONFIG_BT_NIMBLE_ENABLED=y + +#enable lwip ipv6 autoconfig +CONFIG_LWIP_IPV6_AUTOCONFIG=y + +# Use a custom partition table +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" + +# Vendor and product id +CONFIG_DEVICE_VENDOR_ID=0xFFF1 +CONFIG_DEVICE_PRODUCT_ID=0x8001 + +# Main task needs a bit more stack than the default +# default is 3584, bump this up to 5k. +CONFIG_ESP_MAIN_TASK_STACK_SIZE=5120 + +# PW RPC Debug channel +CONFIG_EXAMPLE_UART_PORT_NUM=0 +CONFIG_EXAMPLE_UART_BAUD_RATE=115200 +CONFIG_EXAMPLE_UART_RXD=3 +CONFIG_EXAMPLE_UART_TXD=1 +CONFIG_ENABLE_PW_RPC=y + +# Disable shell +CONFIG_ENABLE_CHIP_SHELL=n + +# Serial Flasher config +CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y +CONFIG_ESPTOOLPY_FLASHSIZE="4MB" + + +#disable Bluetooth modem sleep +#enable it may cause GPIO ISR triggers continuously +CONFIG_BTDM_CTRL_MODEM_SLEEP=n +CONFIG_BTDM_CTRL_MODEM_SLEEP_MODE_ORIG=n +CONFIG_BTDM_CTRL_LPCLK_SEL_MAIN_XTAL=n \ No newline at end of file diff --git a/examples/all-clusters-minimal-app/esp32/third_party/connectedhomeip b/examples/all-clusters-minimal-app/esp32/third_party/connectedhomeip new file mode 120000 index 00000000000000..11a54ed360106c --- /dev/null +++ b/examples/all-clusters-minimal-app/esp32/third_party/connectedhomeip @@ -0,0 +1 @@ +../../../../ \ No newline at end of file diff --git a/examples/all-clusters-minimal-app/linux/.gn b/examples/all-clusters-minimal-app/linux/.gn new file mode 100644 index 00000000000000..5d1ce757507582 --- /dev/null +++ b/examples/all-clusters-minimal-app/linux/.gn @@ -0,0 +1,25 @@ +# Copyright (c) 2020 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. + +import("//build_overrides/build.gni") + +# The location of the build configuration file. +buildconfig = "${build_root}/config/BUILDCONFIG.gn" + +# CHIP uses angle bracket includes. +check_system_includes = true + +default_args = { + import("//args.gni") +} diff --git a/examples/all-clusters-minimal-app/linux/AppOptions.cpp b/examples/all-clusters-minimal-app/linux/AppOptions.cpp new file mode 100644 index 00000000000000..c3f80a2302a484 --- /dev/null +++ b/examples/all-clusters-minimal-app/linux/AppOptions.cpp @@ -0,0 +1,77 @@ +/* + * + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#include "AppOptions.h" + +#include +#include + +using chip::ArgParser::OptionDef; +using chip::ArgParser::OptionSet; +using chip::ArgParser::PrintArgError; + +constexpr uint16_t kOptionDacProviderFilePath = 0xFF01; +constexpr uint16_t kOptionMinCommissioningTimeout = 0xFF02; + +static chip::Credentials::Examples::TestHarnessDACProvider mDacProvider; + +bool AppOptions::HandleOptions(const char * program, OptionSet * options, int identifier, const char * name, const char * value) +{ + bool retval = true; + switch (identifier) + { + case kOptionDacProviderFilePath: + mDacProvider.Init(value); + break; + case kOptionMinCommissioningTimeout: { + auto & commissionMgr = chip::Server::GetInstance().GetCommissioningWindowManager(); + commissionMgr.OverrideMinCommissioningTimeout(chip::System::Clock::Seconds16(static_cast(atoi(value)))); + break; + } + default: + PrintArgError("%s: INTERNAL ERROR: Unhandled option: %s\n", program, name); + retval = false; + break; + } + + return retval; +} + +OptionSet * AppOptions::GetOptions() +{ + static OptionDef optionsDef[] = { + { "dac_provider", chip::ArgParser::kArgumentRequired, kOptionDacProviderFilePath }, + { "min_commissioning_timeout", chip::ArgParser::kArgumentRequired, kOptionMinCommissioningTimeout }, + {}, + }; + + static OptionSet options = { + AppOptions::HandleOptions, optionsDef, "PROGRAM OPTIONS", + " --dac_provider \n" + " A json file with data used by the example dac provider to validate device attestation procedure.\n" + " --min_commissioning_timeout \n" + " The minimum time in seconds during which commissioning session establishment is allowed by the Node.\n" + }; + + return &options; +} + +chip::Credentials::DeviceAttestationCredentialsProvider * AppOptions::GetDACProvider() +{ + return &mDacProvider; +} diff --git a/examples/all-clusters-minimal-app/linux/AppOptions.h b/examples/all-clusters-minimal-app/linux/AppOptions.h new file mode 100644 index 00000000000000..3073c66176331f --- /dev/null +++ b/examples/all-clusters-minimal-app/linux/AppOptions.h @@ -0,0 +1,34 @@ +/* + * + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#pragma once + +#include "AppMain.h" + +#include + +class AppOptions +{ +public: + static chip::ArgParser::OptionSet * GetOptions(); + static chip::Credentials::DeviceAttestationCredentialsProvider * GetDACProvider(); + +private: + static bool HandleOptions(const char * program, chip::ArgParser::OptionSet * options, int identifier, const char * name, + const char * value); +}; diff --git a/examples/all-clusters-minimal-app/linux/BUILD.gn b/examples/all-clusters-minimal-app/linux/BUILD.gn new file mode 100644 index 00000000000000..cc2714427d4f3e --- /dev/null +++ b/examples/all-clusters-minimal-app/linux/BUILD.gn @@ -0,0 +1,103 @@ +# Copyright (c) 2020 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. + +import("//build_overrides/build.gni") +import("//build_overrides/chip.gni") +import("${build_root}/config/compiler/compiler.gni") + +import("${chip_root}/src/lib/lib.gni") +import("${chip_root}/src/platform/device.gni") + +source_set("chip-all-clusters-common") { + sources = [ + "${chip_root}/examples/all-clusters-app/all-clusters-common/src/binding-handler.cpp", + "${chip_root}/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp", + "${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-modes-manager.cpp", + "AppOptions.cpp", + "include/tv-callbacks.cpp", + "include/tv-callbacks.h", + "main-common.cpp", + ] + + deps = [ + "${chip_root}/examples/all-clusters-minimal-app/all-clusters-common", + "${chip_root}/examples/platform/linux:app-main", + "${chip_root}/src/app/tests/suites/credentials:dac_provider", + "${chip_root}/src/lib", + ] + + include_dirs = + [ "${chip_root}/examples/all-clusters-app/all-clusters-common/include" ] + + cflags = [ "-Wconversion" ] + + if (chip_build_libshell) { + defines = [ "ENABLE_CHIP_SHELL" ] + } +} + +source_set("chip-lock-app-common") { + sources = [ + "${chip_root}/examples/lock-app/linux/src/LockEndpoint.cpp", + "${chip_root}/examples/lock-app/linux/src/LockManager.cpp", + "${chip_root}/examples/lock-app/linux/src/ZCLDoorLockCallbacks.cpp", + ] + + deps = + [ "${chip_root}/examples/all-clusters-minimal-app/all-clusters-common" ] + + include_dirs = [ "${chip_root}/examples/lock-app/linux/include" ] + + cflags = [ "-Wconversion" ] +} + +executable("chip-all-clusters-minimal-app") { + sources = [ "main.cpp" ] + + deps = [ + ":chip-all-clusters-common", + ":chip-lock-app-common", + "${chip_root}/examples/platform/linux:app-main", + ] + + cflags = [ "-Wconversion" ] + + include_dirs = + [ "${chip_root}/examples/all-clusters-app/all-clusters-common/include" ] + + output_dir = root_out_dir +} + +if (chip_device_platform == "darwin") { + action("codesign") { + script = "entitlements/codesign.py" + public_deps = [ ":chip-all-clusters-minimal-app" ] + + args = [ + "--target_path", + rebase_path("${root_build_dir}/chip-all-clusters-minimal-app", + root_build_dir), + "--log_path", + rebase_path("${root_build_dir}/codesign_log.txt", root_build_dir), + ] + + output_name = "codesign_log.txt" + outputs = [ "${root_build_dir}/${output_name}" ] + } +} + +group("linux") { + deps = [] + deps += [ ":chip-all-clusters-minimal-app" ] +} diff --git a/examples/all-clusters-minimal-app/linux/Dockerfile b/examples/all-clusters-minimal-app/linux/Dockerfile new file mode 100644 index 00000000000000..697ae5fe2d0087 --- /dev/null +++ b/examples/all-clusters-minimal-app/linux/Dockerfile @@ -0,0 +1,23 @@ +# +# Copyright (c) 2020 Project CHIP Authors +# All rights reserved. +# +# 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. +# + +from generic_node_image +RUN apt-get install -y libglib2.0 +COPY out/debug/chip-all-clusters-minimal-app /usr/bin/ +COPY entrypoint.sh / + +ENTRYPOINT ["/entrypoint.sh", "server"] diff --git a/examples/all-clusters-minimal-app/linux/args.gni b/examples/all-clusters-minimal-app/linux/args.gni new file mode 100644 index 00000000000000..dc89c1c4d16b31 --- /dev/null +++ b/examples/all-clusters-minimal-app/linux/args.gni @@ -0,0 +1,25 @@ +# Copyright (c) 2020 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. + +import("//build_overrides/chip.gni") + +import("${chip_root}/config/standalone/args.gni") + +chip_device_project_config_include = "" +chip_project_config_include = "" +chip_system_project_config_include = "" + +chip_project_config_include_dirs = + [ "${chip_root}/examples/all-clusters-minimal-app/linux/include" ] +chip_project_config_include_dirs += [ "${chip_root}/config/standalone" ] diff --git a/examples/all-clusters-minimal-app/linux/build_overrides b/examples/all-clusters-minimal-app/linux/build_overrides new file mode 120000 index 00000000000000..e578e73312ebd1 --- /dev/null +++ b/examples/all-clusters-minimal-app/linux/build_overrides @@ -0,0 +1 @@ +../../build_overrides \ No newline at end of file diff --git a/examples/all-clusters-minimal-app/linux/entitlements/codesign.py b/examples/all-clusters-minimal-app/linux/entitlements/codesign.py new file mode 100644 index 00000000000000..2cf51a1cfa5b9e --- /dev/null +++ b/examples/all-clusters-minimal-app/linux/entitlements/codesign.py @@ -0,0 +1,66 @@ +#!/usr/bin/env -S python3 -B + +# Copyright (c) 2022 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. + +import argparse +import subprocess +import re + + +def run_command(command): + print("Running {}".format(command)) + return str(subprocess.check_output(command.split())) + + +def get_identity(): + command = "/usr/bin/security find-identity -v -p codesigning" + command_result = run_command(command) + + failure_str = "Error: 0 valid identities found" + if failure_str in command_result: + print( + "No valid identity has been found. Application will run without entitlements.") + exit(0) + + command_result = command_result.replace("\\n", "\n") + identity = re.search(r'\b[0-9a-fA-F]{40}\b(?![^\n]*\(CSSMERR_TP_CERT_EXPIRED\))', command_result) + if identity is None: + print( + "No valid identity has been found. Application will run without entitlements.") + exit(0) + + return identity.group() + + +def codesign(args): + command = "codesign --force -d --sign {identity} {target}".format( + identity=get_identity(), + target=args.target_path) + command_result = run_command(command) + + print("Codesign Result: {}".format(command_result)) + with open(args.log_path, "w") as f: + f.write(command_result) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser( + description='Codesign the binary') + parser.add_argument( + '--log_path', help='Output log file destination', required=True) + parser.add_argument('--target_path', help='Binary to sign', required=True) + + args = parser.parse_args() + codesign(args) diff --git a/examples/all-clusters-minimal-app/linux/entrypoint.sh b/examples/all-clusters-minimal-app/linux/entrypoint.sh new file mode 100755 index 00000000000000..0d54ba0a11c681 --- /dev/null +++ b/examples/all-clusters-minimal-app/linux/entrypoint.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash + +# +# Copyright (c) 2020 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. +# + +set -ex + +service dbus start +sleep 1 +/usr/sbin/otbr-agent -I wpan0 spinel+hdlc+uart:///dev/ttyUSB0 & +sleep 1 +ot-ctl panid 0x1234 +ot-ctl ifconfig up +ot-ctl thread start + +chip-all-clusters-minimal-app diff --git a/examples/all-clusters-minimal-app/linux/fuzzing-main.cpp b/examples/all-clusters-minimal-app/linux/fuzzing-main.cpp new file mode 100644 index 00000000000000..b1736826ef335a --- /dev/null +++ b/examples/all-clusters-minimal-app/linux/fuzzing-main.cpp @@ -0,0 +1,80 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#include "AppMain.h" +#include + +using namespace chip; +using namespace chip::DeviceLayer; + +void CleanShutdown() +{ + Server::GetInstance().Shutdown(); + PlatformMgr().Shutdown(); + // TODO: We don't Platform::MemoryShutdown because ~CASESessionManager calls + // Dnssd::ResolverProxy::Shutdown, which starts doing Platform::Delete. + // Platform::MemoryShutdown(); +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t * aData, size_t aSize) +{ + static bool matterStackInitialized = false; + if (!matterStackInitialized) + { + // Might be simpler to do ChipLinuxAppInit() with argc == 0, argv set to + // just a fake executable name? + VerifyOrDie(Platform::MemoryInit() == CHIP_NO_ERROR); + VerifyOrDie(PlatformMgr().InitChipStack() == CHIP_NO_ERROR); + + // ChipLinuxAppMainLoop blocks, and we don't want that here. + static chip::CommonCaseDeviceServerInitParams initParams; + (void) initParams.InitializeStaticResourcesBeforeServerInit(); + VerifyOrDie(Server::GetInstance().Init(initParams) == CHIP_NO_ERROR); + + ApplicationInit(); + + // We don't start the event loop task, because we don't plan to deliver + // data on a separate thread. + + matterStackInitialized = true; + + // The fuzzer does not have a way to tell us when it's done, so just + // shut down things on exit. + atexit(CleanShutdown); + } + + // For now, just dump the data as a UDP payload into the session manager. + // But maybe we should try to separately extract a PeerAddress and data from + // the incoming data? + Transport::PeerAddress peerAddr; + System::PacketBufferHandle buf = + System::PacketBufferHandle::NewWithData(aData, aSize, /* aAdditionalSize = */ 0, /* aReservedSize = */ 0); + if (buf.IsNull()) + { + // Too big; we couldn't represent this as a packetbuffer to start with. + return 0; + } + + // Ignoring the return value from OnMessageReceived, because we might be + // passing it all sorts of garbage that will cause it to fail. + Server::GetInstance().GetSecureSessionManager().OnMessageReceived(peerAddr, std::move(buf)); + + // Now process pending events until our sentinel is reached. + PlatformMgr().ScheduleWork([](intptr_t) { PlatformMgr().StopEventLoopTask(); }); + PlatformMgr().RunEventLoop(); + return 0; +} diff --git a/examples/all-clusters-minimal-app/linux/include/CHIPProjectAppConfig.h b/examples/all-clusters-minimal-app/linux/include/CHIPProjectAppConfig.h new file mode 100644 index 00000000000000..b6c15f4c98230e --- /dev/null +++ b/examples/all-clusters-minimal-app/linux/include/CHIPProjectAppConfig.h @@ -0,0 +1,34 @@ +/* + * + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +/** + * @file + * Example project configuration file for CHIP. + * + * This is a place to put application or project-specific overrides + * to the default configuration values for general CHIP features. + * + */ + +#pragma once + +// include the CHIPProjectConfig from config/standalone +#include + +// Allows app options (ports) to be configured on launch of app +#define CHIP_DEVICE_ENABLE_PORT_PARAMS 1 diff --git a/examples/all-clusters-minimal-app/linux/include/tv-callbacks.cpp b/examples/all-clusters-minimal-app/linux/include/tv-callbacks.cpp new file mode 100644 index 00000000000000..33a8154e9be6d7 --- /dev/null +++ b/examples/all-clusters-minimal-app/linux/include/tv-callbacks.cpp @@ -0,0 +1,30 @@ +/** + * + * 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. + */ + +/**************************************************************************** + * @file + * @brief Routines for TV stubs + *server stub implementation of TV cluster code. + ******************************************************************************* + ******************************************************************************/ + +#include "tv-callbacks.h" + +bool LowPowerManager::HandleSleep() +{ + return true; +} diff --git a/examples/all-clusters-minimal-app/linux/include/tv-callbacks.h b/examples/all-clusters-minimal-app/linux/include/tv-callbacks.h new file mode 100644 index 00000000000000..1ee3f4264370af --- /dev/null +++ b/examples/all-clusters-minimal-app/linux/include/tv-callbacks.h @@ -0,0 +1,31 @@ +/** + * + * 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. + */ + +/**************************************************************************** + * @file + * @brief Routines for TV stubs + *server stub implementation of TV cluster code. + ******************************************************************************* + ******************************************************************************/ + +#include + +class LowPowerManager : public chip::app::Clusters::LowPower::Delegate +{ +public: + bool HandleSleep() override; +}; diff --git a/examples/all-clusters-minimal-app/linux/main-common.cpp b/examples/all-clusters-minimal-app/linux/main-common.cpp new file mode 100644 index 00000000000000..7829f3a6c1894a --- /dev/null +++ b/examples/all-clusters-minimal-app/linux/main-common.cpp @@ -0,0 +1,185 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#include "include/tv-callbacks.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +using namespace chip; +using namespace chip::app; +using namespace chip::DeviceLayer; + +namespace { +static LowPowerManager lowPowerManager; +} // namespace + +bool emberAfBasicClusterMfgSpecificPingCallback(chip::app::CommandHandler * commandObj) +{ + emberAfSendDefaultResponse(emberAfCurrentCommand(), EMBER_ZCL_STATUS_SUCCESS); + return true; +} + +void OnIdentifyStart(::Identify *) +{ + ChipLogProgress(Zcl, "OnIdentifyStart"); +} + +void OnIdentifyStop(::Identify *) +{ + ChipLogProgress(Zcl, "OnIdentifyStop"); +} + +void OnTriggerEffect(::Identify * identify) +{ + switch (identify->mCurrentEffectIdentifier) + { + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BLINK: + ChipLogProgress(Zcl, "EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BLINK"); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BREATHE: + ChipLogProgress(Zcl, "EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BREATHE"); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_OKAY: + ChipLogProgress(Zcl, "EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_OKAY"); + break; + case EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_CHANNEL_CHANGE: + ChipLogProgress(Zcl, "EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_CHANNEL_CHANGE"); + break; + default: + ChipLogProgress(Zcl, "No identifier effect"); + return; + } +} + +static Identify gIdentify0 = { + chip::EndpointId{ 0 }, OnIdentifyStart, OnIdentifyStop, EMBER_ZCL_IDENTIFY_IDENTIFY_TYPE_VISIBLE_LED, OnTriggerEffect, +}; + +static Identify gIdentify1 = { + chip::EndpointId{ 1 }, OnIdentifyStart, OnIdentifyStop, EMBER_ZCL_IDENTIFY_IDENTIFY_TYPE_VISIBLE_LED, OnTriggerEffect, +}; + +// Network commissioning +namespace { +// This file is being used by platforms other than Linux, so we need this check to disable related features since we only +// implemented them on linux. +constexpr EndpointId kNetworkCommissioningEndpointMain = 0; +constexpr EndpointId kNetworkCommissioningEndpointSecondary = 0xFFFE; + +#if CHIP_DEVICE_LAYER_TARGET_LINUX +#if CHIP_DEVICE_CONFIG_ENABLE_THREAD +NetworkCommissioning::LinuxThreadDriver sLinuxThreadDriver; +Clusters::NetworkCommissioning::Instance sThreadNetworkCommissioningInstance(kNetworkCommissioningEndpointMain, + &sLinuxThreadDriver); +#endif +#if CHIP_DEVICE_CONFIG_ENABLE_WPA +NetworkCommissioning::LinuxWiFiDriver sLinuxWiFiDriver; +Clusters::NetworkCommissioning::Instance sWiFiNetworkCommissioningInstance(kNetworkCommissioningEndpointSecondary, + &sLinuxWiFiDriver); +#endif +NetworkCommissioning::LinuxEthernetDriver sLinuxEthernetDriver; +Clusters::NetworkCommissioning::Instance sEthernetNetworkCommissioningInstance(kNetworkCommissioningEndpointMain, + &sLinuxEthernetDriver); +#else // CHIP_DEVICE_LAYER_TARGET_LINUX +Clusters::NetworkCommissioning::NullNetworkDriver sNullNetworkDriver; +Clusters::NetworkCommissioning::Instance sNullNetworkCommissioningInstance(kNetworkCommissioningEndpointMain, &sNullNetworkDriver); +#endif // CHIP_DEVICE_LAYER_TARGET_LINUX +} // namespace + +void ApplicationInit() +{ + (void) kNetworkCommissioningEndpointMain; + // Enable secondary endpoint only when we need it, this should be applied to all platforms. + emberAfEndpointEnableDisable(kNetworkCommissioningEndpointSecondary, false); + +#if CHIP_DEVICE_LAYER_TARGET_LINUX + const bool kThreadEnabled = { +#if CHIP_DEVICE_CONFIG_ENABLE_THREAD + LinuxDeviceOptions::GetInstance().mThread +#else + false +#endif + }; + + const bool kWiFiEnabled = { +#if CHIP_DEVICE_CONFIG_ENABLE_WPA + LinuxDeviceOptions::GetInstance().mWiFi +#else + false +#endif + }; + + if (kThreadEnabled && kWiFiEnabled) + { +#if CHIP_DEVICE_CONFIG_ENABLE_THREAD + sThreadNetworkCommissioningInstance.Init(); +#endif +#if CHIP_DEVICE_CONFIG_ENABLE_WPA + sWiFiNetworkCommissioningInstance.Init(); +#endif + // Only enable secondary endpoint for network commissioning cluster when both WiFi and Thread are enabled. + emberAfEndpointEnableDisable(kNetworkCommissioningEndpointSecondary, true); + } + else if (kThreadEnabled) + { +#if CHIP_DEVICE_CONFIG_ENABLE_THREAD + sThreadNetworkCommissioningInstance.Init(); +#endif + } + else if (kWiFiEnabled) + { +#if CHIP_DEVICE_CONFIG_ENABLE_WPA + // If we only enable WiFi on this device, "move" WiFi instance to main NetworkCommissioning cluster endpoint. + sWiFiNetworkCommissioningInstance.~Instance(); + new (&sWiFiNetworkCommissioningInstance) + Clusters::NetworkCommissioning::Instance(kNetworkCommissioningEndpointMain, &sLinuxWiFiDriver); + sWiFiNetworkCommissioningInstance.Init(); +#endif + } + else +#endif // CHIP_DEVICE_LAYER_TARGET_LINUX + { +#if CHIP_DEVICE_LAYER_TARGET_LINUX + sEthernetNetworkCommissioningInstance.Init(); +#else + // Use NullNetworkCommissioningInstance to disable the network commissioning functions. + sNullNetworkCommissioningInstance.Init(); +#endif + } +} + +void emberAfLowPowerClusterInitCallback(EndpointId endpoint) +{ + ChipLogProgress(Zcl, "TV Linux App: LowPower::SetDefaultDelegate"); + chip::app::Clusters::LowPower::SetDefaultDelegate(endpoint, &lowPowerManager); +} diff --git a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/main.m b/examples/all-clusters-minimal-app/linux/main.cpp similarity index 60% rename from examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/main.m rename to examples/all-clusters-minimal-app/linux/main.cpp index 17c6551eaa5408..ec71f22c42cc0c 100644 --- a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/main.m +++ b/examples/all-clusters-minimal-app/linux/main.cpp @@ -1,6 +1,7 @@ -/** +/* * - * Copyright (c) 2020-2022 Project CHIP Authors + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,15 +16,17 @@ * limitations under the License. */ -#import "AppDelegate.h" -#import +#include "AppMain.h" +#include "AppOptions.h" +#include "binding-handler.h" int main(int argc, char * argv[]) { - NSString * appDelegateClassName; - @autoreleasepool { - // Setup code that might create autoreleased objects goes here. - appDelegateClassName = NSStringFromClass([AppDelegate class]); - } - return UIApplicationMain(argc, argv, nil, appDelegateClassName); + VerifyOrDie(ChipLinuxAppInit(argc, argv, AppOptions::GetOptions()) == 0); + VerifyOrDie(InitBindingHandlers() == CHIP_NO_ERROR); + + LinuxDeviceOptions::GetInstance().dacProvider = AppOptions::GetDACProvider(); + + ChipLinuxAppMainLoop(); + return 0; } diff --git a/examples/all-clusters-minimal-app/linux/third_party/connectedhomeip b/examples/all-clusters-minimal-app/linux/third_party/connectedhomeip new file mode 120000 index 00000000000000..11a54ed360106c --- /dev/null +++ b/examples/all-clusters-minimal-app/linux/third_party/connectedhomeip @@ -0,0 +1 @@ +../../../../ \ No newline at end of file diff --git a/examples/all-clusters-minimal-app/mbed/.gitignore b/examples/all-clusters-minimal-app/mbed/.gitignore new file mode 100644 index 00000000000000..ef564644de9016 --- /dev/null +++ b/examples/all-clusters-minimal-app/mbed/.gitignore @@ -0,0 +1,2 @@ +build-*/ +mcuboot diff --git a/examples/all-clusters-minimal-app/mbed/CMakeLists.txt b/examples/all-clusters-minimal-app/mbed/CMakeLists.txt new file mode 100644 index 00000000000000..e77c80fda2f3cb --- /dev/null +++ b/examples/all-clusters-minimal-app/mbed/CMakeLists.txt @@ -0,0 +1,84 @@ +# Copyright (c) 2021 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0) + +get_filename_component(CHIP_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../../.. REALPATH) +get_filename_component(MBED_COMMON ${CHIP_ROOT}/examples/platform/mbed REALPATH) +get_filename_component(GEN_DIR ${CHIP_ROOT}/zzz_generated/ REALPATH) +get_filename_component(ALL_CLUSTERS_COMMON ${CHIP_ROOT}/examples/all-clusters-app/all-clusters-common REALPATH) +get_filename_component(NLIO_ROOT ${CHIP_ROOT}/third_party/nlio/repo/include REALPATH) + +configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/config.in + ${CMAKE_CURRENT_BINARY_DIR}/chip_build/config + @ONLY +) + +set(MBED_PATH ${MBED_OS_PATH} CACHE INTERNAL "") +set(MBED_CONFIG_PATH ${CMAKE_CURRENT_BINARY_DIR} CACHE INTERNAL "") +set(MCUBOOT_PATH ${MBED_MCU_BOOT_PATH} CACHE INTERNAL "") +set(APP_PATH ${CMAKE_CURRENT_SOURCE_DIR} CACHE INTERNAL "") +set(APP_TYPE ${MBED_APP_TYPE} CACHE INTERNAL "") +set(BOOT_ENABLED FALSE) +set(APP_TARGET chip-mbed-all-clusters-minimal-app-example) + +if(APP_TYPE STREQUAL "boot" OR APP_TYPE STREQUAL "upgrade") + set(BOOT_ENABLED TRUE) +endif() + +include(${MBED_PATH}/tools/cmake/app.cmake) +if(MBED_TARGET STREQUAL "CY8CPROTO_062_4343W" AND BOOT_ENABLED) + list(REMOVE_ITEM MBED_TARGET_LABELS CM0P_SLEEP) + list(REMOVE_ITEM MBED_TARGET_DEFINITIONS COMPONENT_CM0P_SLEEP=1) +endif() +include(${CHIP_ROOT}/src/app/chip_data_model.cmake) + +project(${APP_TARGET}) + +add_subdirectory(${MBED_PATH} ./mbed_build) +add_subdirectory(${MBED_OS_POSIX_SOCKET_PATH} ./mbed_os_posix_socket_build) + +add_executable(${APP_TARGET}) + +add_subdirectory(${CHIP_ROOT}/config/mbed ./chip_build) + +mbed_configure_app_target(${APP_TARGET}) + +target_include_directories(${APP_TARGET} PRIVATE + main/include/ + ${MBED_COMMON}/util/include + ${ALL_CLUSTERS_COMMON}/include + ${GEN_DIR}/app-common + ${GEN_DIR}/all-clusters-minimal-app + ${NLIO_ROOT} +) + +target_sources(${APP_TARGET} PRIVATE + main/main.cpp + main/AppTask.cpp + ${GEN_DIR}/all-clusters-minimal-app/zap-generated/callback-stub.cpp + ${GEN_DIR}/all-clusters-minimal-app/zap-generated/IMClusterCommandHandler.cpp + ${MBED_COMMON}/util/LEDWidget.cpp + ${MBED_COMMON}/util/DFUManager.cpp + ${ALL_CLUSTERS_COMMON}/src/bridged-actions-stub.cpp + ${ALL_CLUSTERS_COMMON}/src/static-supported-modes-manager.cpp +) + +chip_configure_data_model(${APP_TARGET} + INCLUDE_SERVER + ZAP_FILE ${CMAKE_CURRENT_SOURCE_DIR}/../all-clusters-common/all-clusters-minimal-app.zap +) + +target_link_libraries(${APP_TARGET} mbed-os-posix-socket mbed-os mbed-ble mbed-events mbed-netsocket mbed-storage mbed-storage-kv-global-api mbed-mbedtls mbed-emac chip) + +if(MBED_TARGET STREQUAL "CY8CPROTO_062_4343W") + target_link_libraries(${APP_TARGET} mbed-cy-psoc6-common-network) +endif() + +mbed_set_post_build(${APP_TARGET}) + +option(VERBOSE_BUILD "Have a verbose build process") +if(VERBOSE_BUILD) + set(CMAKE_VERBOSE_MAKEFILE ON) +endif() diff --git a/examples/all-clusters-minimal-app/mbed/README.md b/examples/all-clusters-minimal-app/mbed/README.md new file mode 100644 index 00000000000000..e5f0ef2233eb3c --- /dev/null +++ b/examples/all-clusters-minimal-app/mbed/README.md @@ -0,0 +1,277 @@ +![ARM Mbed-OS logo](https://raw.githubusercontent.com/ARMmbed/mbed-os/master/logo.png) + +

Matter Arm Mbed OS All Clusters Example Application

+ +The Arm Mbed OS All Clusters Example demonstrates device commissioning process +and all available clusters control. + +You can use this example as a reference for creating your own application. + +The example is based on +[Matter](https://github.com/project-chip/connectedhomeip) and Arm Mbed OS, and +supports remote access and control of device over a WiFi network. + +The example behaves as a Matter accessory, in other words a device that can be +paired into an existing Matter network and can be controlled by this network. + +
+ +- [Overview](#overview) + - [Bluetooth Low Energy advertising](#bluetooth-low-energy-advertising) + - [Bluetooth Low Energy rendezvous](#bluetooth-low-energy-rendezvous) + - [WiFi provisioning](#wifi-provisioning) +- [Run application](#run-application) + - [Environment setup](#environment-setup) + - [Building](#building) + - [Flashing](#flashing) + - [Debugging](#debugging) + - [Testing](#testing) + - [Serial port terminal](#serial-port-terminal) + - [CHIP Tools](#chip-tools) + - [Supported devices](#supported-devices) + - [Notes](#notes) +- [Device UI](#device-ui) + - [Notes](#notes-1) + +
+ +# Overview + +The Matter device that runs the All Clusters application is controlled by the +Matter controller device over WiFi. By default, the Matter device is +disconnected, and it should be paired with Matter controller and get +configuration from it. Actions required before establishing full communication +are described below. + +## Bluetooth Low Energy advertising + +To commission the device onto a Matter network, the device must be discoverable +over BLE. The BLE advertising starts automatically after device boot-up. + +## Bluetooth Low Energy rendezvous + +In Matter, the commissioning procedure (called rendezvous) is done over BLE +between a Matter device and the Matter controller, where the controller has the +commissioner role. + +To start the rendezvous, the controller must get the commissioning information +from the Matter device. The data payload is encoded within a QR code, printed to +the UART console. + +## WiFi provisioning + +The last part of the rendezvous procedure, provisioning involves sending the +network credentials from the Matter controller to the Matter device. As a +result, device is able to join the network and communicate with other devices in +the network. + +# Run application + +## Environment setup + +Before building the example, check out the Matter repository and sync submodules +using the following command: + + $ git submodule update --init + +Building the example application requires the use of **ARM Mbed-OS** sources and +the **arm-none-gnu-eabi** toolchain. + +The Cypress OpenOCD package is required for flashing purpose. Install the +Cypress OpenOCD and set env var `OPENOCD_PATH` before calling the flashing +script. + +``` +cd ~ +wget https://github.com/Infineon/openocd/releases/download/release-v4.3.0/openocd-4.3.0.1746-linux.tar.gz +tar xzvf openocd-4.3.0.1746-linux.tar.gz +export OPENOCD_PATH=$HOME/openocd +``` + +Some additional packages may be needed, depending on selected build target and +its requirements. + +> **The VSCode devcontainer has these components pre-installed. Using the VSCode +> devcontainer is the recommended way to interact with Arm Mbed-OS port of the +> Matter Project.** +> +> **Please read this [README.md](../../..//docs/VSCODE_DEVELOPMENT.md) for more +> information about using VSCode in container.** + +To initialize the development environment, download all registered sub-modules +and activate the environment: + +``` +$ source ./scripts/bootstrap.sh +$ source ./scripts/activate.sh +``` + +If packages are already installed then you just need to activate the development +environment: + +``` +$ source ./scripts/activate.sh +``` + +## Building + +The All Clusters application can be built in the same way as any other Matter +example ported to the mbed-os platform. + +- **by using generic vscode task**: + +``` +Command Palette (F1) => Run Task... => Run Mbed Application => build => all-clusters-minimal-app => (board name) => (build profile) => (build type) +``` + +- **by calling explicitly building script:** + +``` +${MATTER_ROOT}/scripts/examples/mbed_example.sh -c=build -a=all-clusters-minimal-app -b= -p= -T= +``` + +Both approaches are limited to supported evaluation boards which are listed in +[Supported devices](#supported_devices) paragraph. + +Mbed OS defines three building profiles: _develop, debug_ and _release_. For +more details please visit +[ARM Mbed OS build profiles](https://os.mbed.com/docs/mbed-os/latest/program-setup/build-profiles-and-rules.html). + +There are also three types of built application: _simple, boot_ and _upgrade_: + +- **simple** - standalone application, mainly for developing and testing + purpose (all building profiles are supported) +- **boot** - signed application + bootloader, it supports booting process and + can be use for firmware update (only _release_ building profiles is + supported) +- **update** - signed application, application image can be used for firmware + update (only _release_ building profiles is supported) + +When using the building script, it is possible expand the list of acceptable +targets; this may be useful for rapid testing of a new mbed-targets. + +## Flashing + +The All Clusters application can be flashed in the same way as any other Matter +example ported to mbed-os platform. + +The [Open On-Chip Debugger](http://openocd.org/) is used to upload a binary +image and reset the device. + +- **by using VSCode task**: + +``` +Command Palette (F1) => Run Task... -> Run Mbed Application => flash => all-clusters-minimal-app => (board name) => (build profile) +``` + +- **by calling explicitly building script:** + +``` +${MATTER_ROOT}/scripts/examples/mbed_example.sh -c=flash -a=all-clusters-minimal-app -b= -p= +``` + +- **by using VSCode launch task**: + +``` +Run and Debug (Ctrl+Shift+D) => Flash Mbed examples => Start Debugging (F5) => (board name) => all-clusters-minimal-app => (build profile) +``` + +The last option uses the Open On-Chip Debugger to open and manage the gdb-server +session. Then gdb-client (arm-none-eabi-gdb) upload binary image and reset +device. + +It is possible to connect to an external gdb-server session by using a specific +**'Flash Mbed examples [remote]'** task. + +## Debugging + +Debugging can be performed in the same was as with any other Matter example +ported to mbed-os platform. + +The [Open On-Chip Debugger](http://openocd.org/) is used to to open and manage +the gdb-server session. Then gdb-client (arm-none-eabi-gdb) connect the server +to upload binary image and control debugging. + +``` +Run and Debug (Ctrl+Shift+D) => Debug Mbed examples => Start Debugging (F5) => (board name) => all-clusters-minimal-app => (build profile) +``` + +It is possible to connect to an external gdb-server session by using specific +**'Debug Mbed examples [remote]'** task. + +## Testing + +### Serial port terminal + +The application traces are streaming to serial output. To start communication +open a terminal session and connect to the serial port of the device. You can +use **mbed-tools** for this purpose +([mbed-tools](https://github.com/ARMmbed/mbed-tools)): + + ``` + mbed-tools sterm -p /dev/ttyACM0 -b 115200 -e off + ``` + +After device reset these lines should be visible: + + ``` + [INFO][CHIP]: [-]Mbed all-clusters-minimal-app example application start + ... + [INFO][CHIP]: [-]Mbed all-clusters-minimal-app example application run + ``` + +The all-clusters-minimal-app application launched correctly and you can follow +traces in the terminal. + +### CHIP Tools + +Read the [MbedCommissioning](../../../docs/guides/mbedos_commissioning.md) to +see how to use different CHIP tools to commission and control the application +within a WiFi network. + +## Supported devices + +| Manufacturer | Hardware platform | Build target | Platform image | Status | Platform components | +| ----------------------------------------------------- | ------------------------------------------------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------ | :----------------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [Cypress
Semiconductor](https://www.cypress.com/) | [CY8CPROTO-062-4343W](https://os.mbed.com/platforms/CY8CPROTO-062-4343W/) | `CY8CPROTO_062_4343W` | ![CY8CPROTO-062-4343W](https://os.mbed.com/media/cache/platforms/p6_wifi-bt_proto.png.250x250_q85.jpg) | :heavy_check_mark: |
LEDs
  • Board has only one usable LED (LED4) which corresponds to USER LED from UI.
Buttons
  • Unused
Slider
  • Unused
| + +#### Notes + +- More details and guidelines about porting new hardware into the Matter + project with Mbed OS can be found in + [MbedNewTarget](../../../docs/guides/mbedos_add_new_target.md) +- Some useful information about HW platform specific settings can be found in + `all-clusters-minimal-app/mbed/mbed_app.json`. + Information about this file syntax and its meaning in mbed-os project can be + found here: + [Mbed-Os configuration system](https://os.mbed.com/docs/mbed-os/latest/program-setup/advanced-configuration.html)) + +# Device UI + +This section lists the User Interface elements that you can use to control and +monitor the state of the device. These correspond to PCB components on the +platform image. + +**USER LED** shows the overall state of the device and its connectivity. The +following states are possible: + +- _Short Flash On (50 ms on/950 ms off)_ — The device is in the + unprovisioned (unpaired) state and is waiting for a commissioning + application to connect. + +- _Rapid Even Flashing (100 ms on/100 ms off)_ — The device is in the + unprovisioned state and a commissioning application is connected through + Bluetooth LE. + +- _Short Flash Off (950ms on/50ms off)_ — The device is fully + provisioned, but does not yet have full network or service connectivity. + +- _Solid On_ — The device is fully provisioned and has full network and + service connectivity. + +### Notes + +Some of the supported boards may not have sufficient number PCB components to +follow above description. In that case please refer to +[Supported devices](#Supported-devices) section and check board's 'Platform +components' column for additional information about the limitation. diff --git a/examples/all-clusters-minimal-app/mbed/config.in b/examples/all-clusters-minimal-app/mbed/config.in new file mode 100644 index 00000000000000..ecf3bb53b4623b --- /dev/null +++ b/examples/all-clusters-minimal-app/mbed/config.in @@ -0,0 +1,6 @@ +CONFIG_CHIP_BUILD_TESTS=n +CONFIG_CHIP_WITH_EXTERNAL_MBEDTLS=y +CONFIG_CHIP_PROJECT_CONFIG=main/include/CHIPProjectConfig.h +CONFIG_MBED_BSD_SOCKET_TRACE=n +CONFIG_CHIP_OTA_REQUESTOR=y +CONFIG_CHIP_DATA_MODEL=y diff --git a/examples/all-clusters-minimal-app/mbed/main/AppTask.cpp b/examples/all-clusters-minimal-app/mbed/main/AppTask.cpp new file mode 100644 index 00000000000000..9343fc33899700 --- /dev/null +++ b/examples/all-clusters-minimal-app/mbed/main/AppTask.cpp @@ -0,0 +1,151 @@ +/* + * + * Copyright (c) 2021 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#include "AppTask.h" +#include "LEDWidget.h" +#include +#include + +#include +#include +#include +#include + +#include + +static LEDWidget sStatusLED(MBED_CONF_APP_SYSTEM_STATE_LED); + +static bool sIsWiFiStationProvisioned = false; +static bool sIsWiFiStationEnabled = false; +static bool sIsWiFiStationConnected = false; +static bool sIsPairedToAccount = false; +static bool sHaveBLEConnections = false; + +static events::EventQueue sAppEventQueue; + +using namespace ::chip; +using namespace ::chip::DeviceLayer; +using namespace ::chip::Credentials; + +AppTask AppTask::sAppTask; + +int AppTask::Init() +{ + CHIP_ERROR error; + // Register the callback to init the MDNS server when connectivity is available + PlatformMgr().AddEventHandler( + [](const ChipDeviceEvent * event, intptr_t arg) { + // Restart the server whenever an ip address is renewed + if (event->Type == DeviceEventType::kInternetConnectivityChange) + { + if (event->InternetConnectivityChange.IPv4 == kConnectivity_Established || + event->InternetConnectivityChange.IPv6 == kConnectivity_Established) + { + chip::app::DnssdServer::Instance().StartServer(); + } + } + }, + 0); + + // Init ZCL Data Model and start server + static chip::CommonCaseDeviceServerInitParams initParams; + (void) initParams.InitializeStaticResourcesBeforeServerInit(); + error = Server::GetInstance().Init(initParams); + if (error != CHIP_NO_ERROR) + { + ChipLogError(NotSpecified, "Server initialization failed: %s", error.AsString()); + return EXIT_FAILURE; + } + + // Initialize device attestation config + SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider()); + ConfigurationMgr().LogDeviceConfig(); + // QR code will be used with CHIP Tool + PrintOnboardingCodes(chip::RendezvousInformationFlags(chip::RendezvousInformationFlag::kBLE)); + + error = GetDFUManager().Init(); + if (error != CHIP_NO_ERROR) + { + ChipLogError(NotSpecified, "DFU manager initialization failed: %s", error.AsString()); + return EXIT_FAILURE; + } + + return 0; +} + +int AppTask::StartApp() +{ + int ret = Init(); + if (ret) + { + ChipLogError(NotSpecified, "AppTask.Init() failed"); + return ret; + } + + ChipLogProgress(NotSpecified, "Mbed all-clusters-minimal-app example application run"); + + while (true) + { + sAppEventQueue.dispatch(100); + + // Collect connectivity and configuration state from the CHIP stack. Because the + // CHIP event loop is being run in a separate task, the stack must be locked + // while these values are queried. However we use a non-blocking lock request + // (TryLockChipStack()) to avoid blocking other UI activities when the CHIP + // task is busy (e.g. with a long crypto operation). + + if (PlatformMgr().TryLockChipStack()) + { + sIsWiFiStationProvisioned = ConnectivityMgr().IsWiFiStationProvisioned(); + sIsWiFiStationEnabled = ConnectivityMgr().IsWiFiStationEnabled(); + sIsWiFiStationConnected = ConnectivityMgr().IsWiFiStationConnected(); + sHaveBLEConnections = (ConnectivityMgr().NumBLEConnections() != 0); + PlatformMgr().UnlockChipStack(); + } + + // Update the status LED + // + // If system is connected to Wi-Fi station, keep the LED On constantly. + // + // If Wi-Fi is provisioned, but not connected to Wi-Fi station yet + // THEN blink the LED Off for a short period of time. + // + // If the system has ble connection(s) uptill the stage above, THEN blink the LEDs at an even + // rate of 100ms. + // + // Otherwise, blink the LED ON for a very short time. + if (sIsWiFiStationConnected) + { + sStatusLED.Set(true); + } + else if (sIsWiFiStationProvisioned && sIsWiFiStationEnabled && sIsPairedToAccount && !sIsWiFiStationConnected) + { + sStatusLED.Blink(950, 50); + } + else if (sHaveBLEConnections) + { + sStatusLED.Blink(100, 100); + } + else + { + sStatusLED.Blink(50, 950); + } + + sStatusLED.Animate(); + } +} diff --git a/examples/tv-casting-app/darwin/darwin/ViewController.m b/examples/all-clusters-minimal-app/mbed/main/include/AppTask.h similarity index 67% rename from examples/tv-casting-app/darwin/darwin/ViewController.m rename to examples/all-clusters-minimal-app/mbed/main/include/AppTask.h index 8d070158ac42e7..a1ee9761ae6a2a 100644 --- a/examples/tv-casting-app/darwin/darwin/ViewController.m +++ b/examples/all-clusters-minimal-app/mbed/main/include/AppTask.h @@ -1,6 +1,7 @@ -/** +/* * - * Copyright (c) 2020-2022 Project CHIP Authors + * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,18 +16,22 @@ * limitations under the License. */ -#import "ViewController.h" +#pragma once -@interface ViewController () +class AppTask +{ +public: + int StartApp(); + +private: + friend AppTask & GetAppTask(void); -@end + int Init(); -@implementation ViewController + static AppTask sAppTask; +}; -- (void)viewDidLoad +inline AppTask & GetAppTask(void) { - [super viewDidLoad]; - // Do any additional setup after loading the view. + return AppTask::sAppTask; } - -@end diff --git a/examples/all-clusters-minimal-app/mbed/main/include/CHIPProjectConfig.h b/examples/all-clusters-minimal-app/mbed/main/include/CHIPProjectConfig.h new file mode 100644 index 00000000000000..896d53ec97a572 --- /dev/null +++ b/examples/all-clusters-minimal-app/mbed/main/include/CHIPProjectConfig.h @@ -0,0 +1,35 @@ +/* + * + * Copyright (c) 2020-2021 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +/** + * @file + * Example project configuration file for CHIP. + * + * This is a place to put application or project-specific overrides + * to the default configuration values for general CHIP features. + * + */ + +#pragma once + +#define CHIP_DEVICE_CONFIG_ENABLE_WIFI_STATION 1 +#define CHIP_DEVICE_CONFIG_ENABLE_WIFI_AP 1 + +// Use a default pairing code if one hasn't been provisioned in flash. +#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE 20202021 +#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR 0xF00 diff --git a/examples/all-clusters-minimal-app/mbed/main/main.cpp b/examples/all-clusters-minimal-app/mbed/main/main.cpp new file mode 100644 index 00000000000000..ba24b76da4443d --- /dev/null +++ b/examples/all-clusters-minimal-app/mbed/main/main.cpp @@ -0,0 +1,87 @@ +/* + * + * Copyright (c) 2021 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#include "AppTask.h" + +#include "mbedtls/platform.h" +#include +#include +#include +#include + +using namespace ::chip; +using namespace ::chip::Inet; +using namespace ::chip::DeviceLayer; +using namespace ::chip::Logging::Platform; + +int main(int argc, char * argv[]) +{ + int ret = 0; + CHIP_ERROR err = CHIP_NO_ERROR; + + mbed_logging_init(); + + ChipLogProgress(NotSpecified, "Mbed all-clusters-minimal-app example application start"); + + ret = mbedtls_platform_setup(NULL); + if (ret) + { + ChipLogError(NotSpecified, "Mbed TLS platform initialization failed [%d]", ret); + goto exit; + } + + err = chip::Platform::MemoryInit(); + if (err != CHIP_NO_ERROR) + { + ChipLogError(NotSpecified, "Memory initialization failed: %s", err.AsString()); + ret = EXIT_FAILURE; + goto exit; + } + + err = PlatformMgr().InitChipStack(); + if (err != CHIP_NO_ERROR) + { + ChipLogError(NotSpecified, "Chip stack initialization failed: %s", err.AsString()); + ret = EXIT_FAILURE; + goto exit; + } + +#ifdef MBED_CONF_APP_BLE_DEVICE_NAME + err = ConnectivityMgr().SetBLEDeviceName(MBED_CONF_APP_BLE_DEVICE_NAME); + if (err != CHIP_NO_ERROR) + { + ChipLogError(NotSpecified, "Set BLE device name failed: %s", err.AsString()); + ret = EXIT_FAILURE; + goto exit; + } +#endif + + err = PlatformMgr().StartEventLoopTask(); + if (err != CHIP_NO_ERROR) + { + ChipLogError(NotSpecified, "Chip stack start failed: %s", err.AsString()); + ret = EXIT_FAILURE; + goto exit; + } + + ret = GetAppTask().StartApp(); + +exit: + ChipLogProgress(NotSpecified, "Exited with code %d", ret); + return ret; +} diff --git a/examples/all-clusters-minimal-app/mbed/mbed_app.json b/examples/all-clusters-minimal-app/mbed/mbed_app.json new file mode 100644 index 00000000000000..8c167bfcb84c19 --- /dev/null +++ b/examples/all-clusters-minimal-app/mbed/mbed_app.json @@ -0,0 +1,61 @@ +{ + "macros": ["MBEDTLS_USER_CONFIG_FILE=\"chip_mbedtls_config.h\""], + "target_overrides": { + "*": { + "platform.stdio-baud-rate": 115200, + "lwip.ipv6-enabled": true, + "lwip.raw-socket-enabled": true, + "lwip.netbuf-recvinfo-enabled": true, + "nsapi.default-wifi-security": "WPA_WPA2", + "nsapi.default-wifi-ssid": "\"YOUR_SSID\"", + "nsapi.default-wifi-password": "\"YOUR_PASSWORD\"", + "mbed-trace.max-level": "TRACE_LEVEL_DEBUG", + "mbed-trace.enable": true, + "target.printf_lib": "std", + "mcuboot.bootloader-build": false, + "mcuboot.log-enable": true, + "mcuboot.log-level": "MCUBOOT_LOG_LEVEL_ERROR" + }, + "CY8CPROTO_062_4343W": { + "target.network-default-interface-type": "WIFI", + "target.macros_add": [ + "MXCRYPTO_DISABLED", + "NL_ASSERT_LOG=NL_ASSERT_LOG_DEFAULT", + "NL_ASSERT_EXPECT_FLAGS=NL_ASSERT_FLAG_LOG", + "WHD_PRINT_DISABLE" + ], + "mcuboot.primary-slot-address": "0x10022000", + "mcuboot.slot-size": "0x180000", + "mcuboot.scratch-address": "0x101A2000", + "mcuboot.scratch-size": "0x40000", + "mcuboot.max-img-sectors": "0xC00", + "mcuboot.header-size": "0x400" + } + }, + "config": { + "led-active-state": { + "help": "GPIO output to turn the LED on.", + "value": 0 + }, + "system-state-led": { + "help": "System status LED.", + "value": "LED1" + }, + "ble-device-name": { + "help": "Name used for BLE advertising.", + "value": "\"MBED-clusters\"" + }, + "version-number": { + "value": "0" + }, + "version-number-str": { + "value": "\"0.1.0\"" + }, + "vendor-id": { + "value": "0xFFF1" + }, + "product-id": { + "value": "0x8001" + } + } +} diff --git a/examples/all-clusters-minimal-app/nrfconnect/.gitignore b/examples/all-clusters-minimal-app/nrfconnect/.gitignore new file mode 100644 index 00000000000000..84c048a73cc2e5 --- /dev/null +++ b/examples/all-clusters-minimal-app/nrfconnect/.gitignore @@ -0,0 +1 @@ +/build/ diff --git a/examples/all-clusters-minimal-app/nrfconnect/CMakeLists.txt b/examples/all-clusters-minimal-app/nrfconnect/CMakeLists.txt new file mode 100644 index 00000000000000..d1bc3092977a05 --- /dev/null +++ b/examples/all-clusters-minimal-app/nrfconnect/CMakeLists.txt @@ -0,0 +1,76 @@ +# +# Copyright (c) 2022 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. +# +cmake_minimum_required(VERSION 3.13.1) + +get_filename_component(CHIP_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/third_party/connectedhomeip REALPATH) +get_filename_component(NRFCONNECT_COMMON ${CHIP_ROOT}/examples/platform/nrfconnect REALPATH) +get_filename_component(GEN_DIR ${CHIP_ROOT}/zzz_generated/ REALPATH) +get_filename_component(ALL_CLUSTERS_COMMON_DIR ${CHIP_ROOT}/examples/all-clusters-app/all-clusters-common REALPATH) + +include(${CHIP_ROOT}/config/nrfconnect/app/check-nrfconnect-version.cmake) + +# Set Kconfig root files that will be processed as a first Kconfig for used child images. +set(mcuboot_KCONFIG_ROOT ${CHIP_ROOT}/config/nrfconnect/chip-module/Kconfig.mcuboot.root) +set(multiprotocol_rpmsg_KCONFIG_ROOT ${CHIP_ROOT}/config/nrfconnect/chip-module/Kconfig.multiprotocol_rpmsg.root) + +if(DEFINED CONF_FILE AND NOT CONF_FILE STREQUAL "prj.conf") + set(PM_STATIC_YML_FILE ${CMAKE_CURRENT_SOURCE_DIR}/configuration/${BOARD}/pm_static_dfu.yml) +endif() + +list(APPEND ZEPHYR_EXTRA_MODULES ${CHIP_ROOT}/config/nrfconnect/chip-module) +find_package(Zephyr HINTS $ENV{ZEPHYR_BASE}) + +# -Wmaybe-uninitialized has too many false positives, including on std::optional +# and chip::Optional. Make it nonfatal. +# +# See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80635 +target_compile_options(app PRIVATE -Werror -Wno-error=maybe-uninitialized) + +project(chip-nrfconnect-all-clusters-minimal-app-example) + +include(${CHIP_ROOT}/config/nrfconnect/app/enable-gnu-std.cmake) +include(${CHIP_ROOT}/config/nrfconnect/app/flashing.cmake) +include(${CHIP_ROOT}/src/app/chip_data_model.cmake) + +target_include_directories(app PRIVATE + main/include + ${ALL_CLUSTERS_COMMON_DIR}/include + ${GEN_DIR}/app-common + ${GEN_DIR}/all-clusters-minimal-app + ${NRFCONNECT_COMMON}/util/include) + +target_sources(app PRIVATE + main/AppTask.cpp + main/main.cpp + ${ALL_CLUSTERS_COMMON_DIR}/src/static-supported-modes-manager.cpp + ${ALL_CLUSTERS_COMMON_DIR}/src/bridged-actions-stub.cpp + ${ALL_CLUSTERS_COMMON_DIR}/src/binding-handler.cpp + ${GEN_DIR}/all-clusters-minimal-app/zap-generated/callback-stub.cpp + ${GEN_DIR}/all-clusters-minimal-app/zap-generated/IMClusterCommandHandler.cpp + ${NRFCONNECT_COMMON}/util/LEDWidget.cpp) + +chip_configure_data_model(app + INCLUDE_SERVER + ZAP_FILE ${CMAKE_CURRENT_SOURCE_DIR}/../all-clusters-common/all-clusters-minimal-app.zap +) + +if(CONFIG_CHIP_OTA_REQUESTOR) + target_sources(app PRIVATE ${NRFCONNECT_COMMON}/util/OTAUtil.cpp) +endif() + +if (CONFIG_SHELL AND BOARD STREQUAL "nrf52840dongle_nrf52840") + target_sources(app PRIVATE ${NRFCONNECT_COMMON}/util/DFUTrigger.cpp) +endif() diff --git a/examples/all-clusters-minimal-app/nrfconnect/Kconfig b/examples/all-clusters-minimal-app/nrfconnect/Kconfig new file mode 100644 index 00000000000000..9fcdb41ab33208 --- /dev/null +++ b/examples/all-clusters-minimal-app/nrfconnect/Kconfig @@ -0,0 +1,27 @@ +# +# Copyright (c) 2022 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. +# +mainmenu "Matter nRF Connect All Clusters Example Application" + +config STATE_LEDS + bool "Use LEDs to indicate the device state" + default y + help + Use LEDs to render the current state of the device such as the progress of commissioning of + the device into a network or the factory reset initiation. + +rsource "../../../config/nrfconnect/chip-module/Kconfig.features" +rsource "../../../config/nrfconnect/chip-module/Kconfig.defaults" +source "Kconfig.zephyr" diff --git a/examples/all-clusters-minimal-app/nrfconnect/README.md b/examples/all-clusters-minimal-app/nrfconnect/README.md new file mode 100644 index 00000000000000..919fb768d5fd51 --- /dev/null +++ b/examples/all-clusters-minimal-app/nrfconnect/README.md @@ -0,0 +1,451 @@ +# Matter nRF Connect All Clusters Example Application + +The nRF All Clusters Example Application implements various ZCL clusters +populated on three endpoints. You can use this example as a reference for +creating your own application. + +![Nordic Smiconductor logo](../../platform/nrfconnect/doc/images/Logo_RGB_H-small.png) +![nRF52840 DK](../../platform/nrfconnect/doc/images/nRF52840-DK-small.png) + +The example is based on +[Matter](https://github.com/project-chip/connectedhomeip) and Nordic +Semiconductor's nRF Connect SDK, and was created to facilitate testing and +certification of a Matter device communicating over a low-power, 802.15.4 Thread +network. + +The example behaves as a Matter accessory, that is a device that can be paired +into an existing Matter network and can be controlled by this network. + +
+ +- [Overview](#overview) + - [Bluetooth LE advertising](#bluetooth-le-advertising) + - [Bluetooth LE rendezvous](#bluetooth-le-rendezvous) +- [Requirements](#requirements) + - [Supported devices](#supported_devices) +- [Device UI](#device-ui) +- [Setting up the environment](#setting-up-the-environment) + - [Using Docker container for setup](#using-docker-container-for-setup) + - [Using native shell for setup](#using-native-shell-for-setup) +- [Building](#building) + - [Removing build artifacts](#removing-build-artifacts) + - [Building with release configuration](#building-with-release-configuration) + - [Building with low-power configuration](#building-with-low-power-configuration) + - [Building with Device Firmware Upgrade support](#building-with-device-firmware-upgrade-support) +- [Configuring the example](#configuring-the-example) + - [Example build types](#example-build-types) +- [Flashing and debugging](#flashing-and-debugging) + - [Flashing on the development kits](#nrfdks_flashing) + - [Flashing on the nRF52840 Dongle](#nrf52840dongle_flashing) +- [Testing the example](#testing-the-example) + - [Testing using CHIPTool](#testing-using-chiptool) + +
+ + + +## Overview + +This example is running on the nRF Connect platform, which is based on Nordic +Semiconductor's +[nRF Connect SDK](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/index.html) +and [Zephyr RTOS](https://zephyrproject.org/). Visit Matter's +[nRF Connect platform overview](../../../docs/guides/nrfconnect_platform_overview.md) +to read more about the platform structure and dependencies. + +The Matter device that runs the all clusters application is controlled by the +Matter controller device over the Thread protocol. By default, the Matter device +has Thread disabled, and it should be paired with Matter controller and get +configuration from it. Some actions required before establishing full +communication are described below. + +### Bluetooth LE advertising + +In this example, to commission the device onto a Matter network, it must be +discoverable over Bluetooth LE. For security reasons, you must start Bluetooth +LE advertising manually after powering up the device by pressing **Button 4**. + +### Bluetooth LE rendezvous + +In this example, the commissioning procedure is done over Bluetooth LE between a +Matter device and the Matter controller, where the controller has the +commissioner role. + +To start the rendezvous, the controller must get the commissioning information +from the Matter device. The data payload is encoded within a QR code, printed to +the UART console. + +#### Thread provisioning + +Last part of the rendezvous procedure, the provisioning operation involves +sending the Thread network credentials from the Matter controller to the Matter +device. As a result, device is able to join the Thread network and communicate +with other Thread devices in the network. + +
+ + + +## Requirements + +The application requires a specific revision of the nRF Connect SDK to work +correctly. See [Setting up the environment](#setting-up-the-environment) for +more information. + + + +### Supported devices + +The example supports building and running on the following devices: + +| Hardware platform | Build target | Platform image | +| ------------------------------------------------------------------------------------------------- | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [nRF52840 DK](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52840-DK) | `nrf52840dk_nrf52840` |
nRF52840 DKnRF52840 DK
| +| [nRF5340 DK](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF5340-DK) | `nrf5340dk_nrf5340_cpuapp` |
nRF5340 DKnRF5340 DK
| +| [nRF52840 Dongle](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52840-Dongle) | `nrf52840dongle_nrf52840` |
nRF52840 DonglenRF52840 Dongle
| + +
+ + + +## Device UI + +This section lists the User Interface elements that you can use to control and +monitor the state of the device. These correspond to PCB components on the +platform image. + +> **Note**: +> +> The following Device UI elements are missing on the nRF52840 Dongle: **Button +> 2**, **Button 3**, **Button 4**, **SEGGER J-Link USB port**, and **NFC port +> with antenna attached**. You can collect logs from the nRF52840 Dongle using +> the **nRF USB port** instead of the **SEGGER J-Link USB port**. +> Functionalities associated with the remaining missing elements are +> inaccessible. + +**LED 1** shows the overall state of the device and its connectivity. The +following states are possible: + +- _Short Flash On (50 ms on/950 ms off)_ — The device is in the + unprovisioned (unpaired) state and is waiting for a commissioning + application to connect. + +- _Rapid Even Flashing (100 ms on/100 ms off)_ — The device is in the + unprovisioned state and a commissioning application is connected through + Bluetooth LE. + +- _Short Flash Off (950ms on/50ms off)_ — The device is fully + provisioned, but does not yet have full Thread network or service + connectivity. + +- _Solid On_ — The device is fully provisioned and has full Thread + network and service connectivity. + +**Button 1** can be used for the following purposes: + +- _Pressed for 6 s_ — Initiates the factory reset of the device. + Releasing the button within the 6-second window cancels the factory reset + procedure. **LEDs 1-4** blink in unison when the factory reset procedure is + initiated. + +**Button 4** — Pressing the button once starts Bluetooth LE advertising +for the predefined period of time (15 minutes by default). + +**SEGGER J-Link USB port** can be used to get logs from the device or +communicate with it using the +[command line interface](../../../docs/guides/nrfconnect_examples_cli.md). + +
+ +## Setting up the environment + +Before building the example, check out the Matter repository and sync submodules +using the following command: + + $ git submodule update --init + +The example requires a specific revision of the nRF Connect SDK. You can either +install it along with the related tools directly on your system or use a Docker +image that has the tools pre-installed. + +If you are a macOS user, you won't be able to use the Docker container to flash +the application onto a Nordic development kit due to +[certain limitations of Docker for macOS](https://docs.docker.com/docker-for-mac/faqs/#can-i-pass-through-a-usb-device-to-a-container). +Use the [native shell](#using-native-shell) for building instead. + +### Using Docker container for setup + +To use the Docker container for setup, complete the following steps: + +1. If you do not have the nRF Connect SDK installed yet, create a directory for + it by running the following command: + + $ mkdir ~/nrfconnect + +2. Download the latest version of the nRF Connect SDK Docker image by running + the following command: + + $ docker pull nordicsemi/nrfconnect-chip + +3. Start Docker with the downloaded image by running the following command, + customized to your needs as described below: + + $ docker run --rm -it -e RUNAS=$(id -u) -v ~/nrfconnect:/var/ncs -v ~/connectedhomeip:/var/chip \ + -v /dev/bus/usb:/dev/bus/usb --device-cgroup-rule "c 189:* rmw" nordicsemi/nrfconnect-chip + + In this command: + + - _~/nrfconnect_ can be replaced with an absolute path to the nRF Connect + SDK source directory. + - _~/connectedhomeip_ must be replaced with an absolute path to the CHIP + source directory. + - _-v /dev/bus/usb:/dev/bus/usb --device-cgroup-rule "c 189:_ rmw"\* + parameters can be omitted if you are not planning to flash the example + onto hardware. These parameters give the container access to USB devices + connected to your computer such as the nRF52840 DK. + - _--rm_ can be omitted if you do not want the container to be + auto-removed when you exit the container shell session. + - _-e RUNAS=\$(id -u)_ is needed to start the container session as the + current user instead of root. + +4. Update the nRF Connect SDK to the most recent supported revision, by running + the following command: + + $ cd /var/chip + $ python3 scripts/setup/nrfconnect/update_ncs.py --update + +Now you can proceed with the [Building](#building) instruction. + +### Using native shell for setup + +To use the native shell for setup, complete the following steps: + +1. Download and install the following additional software: + + - [nRF Command Line Tools](https://www.nordicsemi.com/Software-and-Tools/Development-Tools/nRF-Command-Line-Tools) + - [GN meta-build system](https://gn.googlesource.com/gn/) + +2. If you do not have the nRF Connect SDK installed, follow the + [guide](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/gs_assistant.html#) + in the nRF Connect SDK documentation to install the latest stable nRF + Connect SDK version. Since command-line tools will be used for building the + example, installing SEGGER Embedded Studio is not required. + + If you have the SDK already installed, continue to the next step and update + the nRF Connect SDK after initializing environment variables. + +3. Initialize environment variables referred to by the CHIP and the nRF Connect + SDK build scripts. Replace _nrfconnect-dir_ with the path to your nRF + Connect SDK installation directory, and _toolchain-dir_ with the path to GNU + Arm Embedded Toolchain. + + $ source nrfconnect-dir/zephyr/zephyr-env.sh + $ export ZEPHYR_TOOLCHAIN_VARIANT=gnuarmemb + $ export GNUARMEMB_TOOLCHAIN_PATH=toolchain-dir + +4. Update the nRF Connect SDK to the most recent supported revision by running + the following command (replace _matter-dir_ with the path to Matter + repository directory): + + $ cd matter-dir + $ python3 scripts/setup/nrfconnect/update_ncs.py --update + +Now you can proceed with the [Building](#building) instruction. + +
+ + + +## Building + +Complete the following steps, regardless of the method used for setting up the +environment: + +1. Navigate to the example's directory: + + $ cd examples/all-clusters-minimal-app/nrfconnect + +2. Run the following command to build the example, with _build-target_ replaced + with the build target name of the Nordic Semiconductor's kit you own, for + example `nrf52840dk_nrf52840`: + + $ west build -b build-target + + You only need to specify the build target on the first build. See + [Requirements](#requirements) for the build target names of compatible kits. + +The output `zephyr.hex` file will be available in the `build/zephyr/` directory. + +### Removing build artifacts + +If you're planning to build the example for a different kit or make changes to +the configuration, remove all build artifacts before building. To do so, use the +following command: + + $ rm -r build + +### Building with release configuration + +To build the example with release configuration that disables the diagnostic +features like logs and command-line interface, run the following command: + + $ west build -b build-target -- -DCONF_FILE=prj_release.conf + +Remember to replace _build-target_ with the build target name of the Nordic +Semiconductor's kit you own. + +### Building with low-power configuration + +You can build the example using the low-power configuration, which enables +Thread's Sleepy End Device mode and disables debug features, such as the UART +console or the **LED 1** usage. + +To build for the low-power configuration, run the following command with +_build-target_ replaced with the build target name of the Nordic Semiconductor's +kit you own (for example `nrf52840dk_nrf52840`): + + $ west build -b build-target -- -DOVERLAY_CONFIG=overlay-low_power.conf + +For example, use the following command for `nrf52840dk_nrf52840`: + + $ west build -b nrf52840dk_nrf52840 -- -DOVERLAY_CONFIG=overlay-low_power.conf + +### Building with Device Firmware Upgrade support + +Support for DFU using Matter OTA is disabled by default. + +To build the example with configuration that supports DFU, run the following +command with _build-target_ replaced with the build target name of the Nordic +Semiconductor kit you are using (for example `nrf52840dk_nrf52840`): + + $ west build -b build-target -- -DCONF_FILE=prj_dfu.conf + +> **Note**: +> +> There are two types of Device Firmware Upgrade modes: single-image DFU and +> multi-image DFU. Single-image mode supports upgrading only one firmware image, +> the application image, and should be used for single-core nRF52840 DK devices. +> Multi-image mode allows to upgrade more firmware images and is suitable for +> upgrading the application core and network core firmware in two-core nRF5340 +> DK devices. +> +> Currently the multi-image mode is not available for the Matter OTA DFU. + +#### Changing bootloader configuration + +To change the default MCUboot configuration, edit the `prj.conf` file located in +the `child_image/mcuboot` directory. + +#### Changing flash memory settings + +In the default configuration, the MCUboot uses the +[Partition Manager](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/scripts/partition_manager/partition_manager.html#partition-manager) +to configure flash partitions used for the bootloader application image slot +purposes. You can change these settings by defining +[static partitions](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/scripts/partition_manager/partition_manager.html#ug-pm-static). +This example uses this option to define using an external flash. + +To modify the flash settings of your board (that is, your _build-target_, for +example `nrf52840dk_nrf52840`), edit the `pm_static_dfu.yml` file located in the +`configuration/build-target/` directory. + +
+ + + +## Configuring the example + +The Zephyr ecosystem is based on Kconfig files and the settings can be modified +using the menuconfig utility. + +To open the menuconfig utility, run the following command from the example +directory: + + $ west build -b build-target -t menuconfig + +Remember to replace _build-target_ with the build target name of the Nordic +Semiconductor's kit you own. + +Changes done with menuconfig will be lost if the `build` directory is deleted. +To make them persistent, save the configuration options in the `prj.conf` file. + +### Example build types + +The example uses different configuration files depending on the supported +features. Configuration files are provided for different build types and they +are located in the application root directory. + +The `prj.conf` file represents a debug build type. Other build types are covered +by dedicated files with the build type added as a suffix to the prj part, as per +the following list. For example, the release build type file name is +`prj_release.conf`. If a board has other configuration files, for example +associated with partition layout or child image configuration, these follow the +same pattern. + +Before you start testing the application, you can select one of the build types +supported by the sample. This sample supports the following build types, +depending on the selected board: + +- debug -- Debug version of the application - can be used to enable additional + features for verifying the application behavior, such as logs or + command-line shell. +- release -- Release version of the application - can be used to enable only + the necessary application functionalities to optimize its performance. It + has Device Firmware Upgrade feature enabled. It can be used only for the + nRF52840 DK and nRF5340 DK, as only those platforms support the DFU. +- dfu -- Debug version of the application with Device Firmware Upgrade feature + support. It can be used only for the nRF52840 DK and nRF5340 DK, as only + those platforms support the DFU. + +For more information, see the +[Configuring nRF Connect SDK examples](../../../docs/guides/nrfconnect_examples_configuration.md) +page. + +
+ + + +## Flashing and debugging + +The flashing and debugging procedure is different for the development kits and +the nRF52840 Dongle. + + + +### Flashing on the development kits + +To flash the application to the device, use the west tool and run the following +command from the example directory: + + $ west flash --erase + +If you have multiple development kits connected, west will prompt you to pick +the correct one. + +To debug the application on target, run the following command from the example +directory: + + $ west debug + + + +### Flashing on the nRF52840 Dongle + +Visit +[Programming and Debugging nRF52840 Dongle](https://docs.zephyrproject.org/latest/boards/arm/nrf52840dongle_nrf52840/doc/index.html#programming-and-debugging) +to read more about flashing on the nRF52840 Dongle. + +
+ +## Testing the example + +Check the [CLI tutorial](../../../docs/guides/nrfconnect_examples_cli.md) to +learn how to use command-line interface of the application. + +### Testing using CHIPTool + +Read the +[Android commissioning guide](../../../docs/guides/nrfconnect_android_commissioning.md) +to see how to use [CHIPTool](../../../src/android/CHIPTool/README.md) for +Android smartphones to commission and control the application within a +Matter-enabled Thread network. diff --git a/examples/all-clusters-minimal-app/nrfconnect/boards/nrf52840dk_nrf52840.overlay b/examples/all-clusters-minimal-app/nrfconnect/boards/nrf52840dk_nrf52840.overlay new file mode 100644 index 00000000000000..04253ef9667617 --- /dev/null +++ b/examples/all-clusters-minimal-app/nrfconnect/boards/nrf52840dk_nrf52840.overlay @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2022 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. + */ + +/ { + chosen { + nordic,pm-ext-flash = &mx25r64; + }; + + /* + * In some default configurations within the nRF Connect SDK, + * e.g. on nRF52840, the chosen zephyr,entropy node is &cryptocell. + * This devicetree overlay ensures that default is overridden wherever it + * is set, as this application uses the RNG node for entropy exclusively. + */ + chosen { + zephyr,entropy = &rng; + }; +}; + +/* Disable unused peripherals to reduce power consumption */ +&adc { + status = "disabled"; +}; +&uart1 { + status = "disabled"; +}; +&gpio1 { + status = "disabled"; +}; +&i2c0 { + status = "disabled"; +}; +&pwm0 { + status = "disabled"; +}; +&spi1 { + status = "disabled"; +}; +&spi3 { + status = "disabled"; +}; +&usbd { + status = "disabled"; +}; diff --git a/examples/all-clusters-minimal-app/nrfconnect/boards/nrf52840dongle_nrf52840.conf b/examples/all-clusters-minimal-app/nrfconnect/boards/nrf52840dongle_nrf52840.conf new file mode 100644 index 00000000000000..dc8c38ed741291 --- /dev/null +++ b/examples/all-clusters-minimal-app/nrfconnect/boards/nrf52840dongle_nrf52840.conf @@ -0,0 +1,43 @@ +# +# Copyright (c) 2022 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. +# + +# Configure logging over USB +# - do enable shell to reduce flash usage +# - disable CDC ACM logs as it may lead to infinite loop when CDC ACM is used as the log backend +CONFIG_USB_DEVICE_STACK=y +CONFIG_CONSOLE=y +CONFIG_UART_CONSOLE=y +CONFIG_LOG_BACKEND_UART=y +CONFIG_SHELL_LOG_BACKEND=n +CONFIG_UART_LINE_CTRL=y +CONFIG_USB_CDC_ACM_LOG_LEVEL_OFF=y + +# The minimal logging mode does not work properly with the USB CDC device, so use the deferred mode +CONFIG_LOG_MODE_MINIMAL=n +CONFIG_LOG2_MODE_DEFERRED=y +CONFIG_LOG_BUFFER_SIZE=8192 + +# Reduce the code size as the dongle reserves some space for MBR and Open Bootloader +CONFIG_ASSERT_VERBOSE=n +CONFIG_SHELL=n +CONFIG_OPENTHREAD_SHELL=n +CONFIG_MATTER_LOG_LEVEL_INF=y + +# Use partition manager to configure the settings partition not to overlap with Open Bootloader +CONFIG_PM_SINGLE_IMAGE=y + +# Enable CHIP pairing automatically on application start. +CONFIG_CHIP_ENABLE_PAIRING_AUTOSTART=y diff --git a/examples/all-clusters-minimal-app/nrfconnect/boards/nrf52840dongle_nrf52840.overlay b/examples/all-clusters-minimal-app/nrfconnect/boards/nrf52840dongle_nrf52840.overlay new file mode 100644 index 00000000000000..848566b5f43702 --- /dev/null +++ b/examples/all-clusters-minimal-app/nrfconnect/boards/nrf52840dongle_nrf52840.overlay @@ -0,0 +1,28 @@ +/* + * 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. + */ + + / { + chosen { + zephyr,console = &cdc_acm_uart0; + }; +}; + +&zephyr_udc0 { + cdc_acm_uart0: cdc_acm_uart0 { + compatible = "zephyr,cdc-acm-uart"; + label = "CDC_ACM_0"; + }; +}; diff --git a/examples/all-clusters-minimal-app/nrfconnect/boards/nrf5340dk_nrf5340_cpuapp.overlay b/examples/all-clusters-minimal-app/nrfconnect/boards/nrf5340dk_nrf5340_cpuapp.overlay new file mode 100644 index 00000000000000..5be8b8fd5f736f --- /dev/null +++ b/examples/all-clusters-minimal-app/nrfconnect/boards/nrf5340dk_nrf5340_cpuapp.overlay @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2022 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. + */ + +/ { + chosen { + nordic,pm-ext-flash = &mx25r64; + }; + + soc { + /* Add a flash controller which has the compatible + * 'zephyr,sim-flash'. This will ensure that the flash + * simulator can use it. None of the other properties in this + * node is used for anything. + */ + nordic_ram_flash_controller: nordic_ram-flash-controller@0 { + compatible = "zephyr,sim-flash"; + reg = <0x00000000 DT_SIZE_K(40)>; + #address-cells = <1>; + #size-cells = <1>; + erase-value = <0xff>; + label = "nordic_ram_flash_flash_controller"; + + /* This node label must match that used in the flash + * simulator. + */ + flash_sim0: flash_sim@0 { + status = "okay"; + compatible = "soc-nv-flash"; + label = "simulated_flash"; + erase-block-size = <4096>; + write-block-size = <4>; + reg = <0x00000000 DT_SIZE_K(256)>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + /* This partition must be defined for + * MCUboot to find the partition ID + * of the primary slot for image 1, + * which is stored in this partition. + */ + slot2_partition: partition@0 { + label = "image-2"; + reg = <0x00000000 0x00000A000>; + }; + }; + }; + }; + }; + +}; + +/* Disable unused peripherals to reduce power consumption */ +&adc { + status = "disabled"; +}; +&gpio1 { + status = "disabled"; +}; +&i2c1 { + status = "disabled"; +}; +&pwm0 { + status = "disabled"; +}; +&spi2 { + status = "disabled"; +}; +&usbd { + status = "disabled"; +}; diff --git a/examples/all-clusters-minimal-app/nrfconnect/child_image/mcuboot/prj_dfu.conf b/examples/all-clusters-minimal-app/nrfconnect/child_image/mcuboot/prj_dfu.conf new file mode 100644 index 00000000000000..287c7829c6a5cf --- /dev/null +++ b/examples/all-clusters-minimal-app/nrfconnect/child_image/mcuboot/prj_dfu.conf @@ -0,0 +1,30 @@ +# +# Copyright (c) 2022 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. +# + +# This target uses Kconfig.mcuboot.defaults to set options common for all +# samples using mcuboot. This file should contain only options specific for this sample +# mcuboot configuration or overrides of default values. + +CONFIG_MBEDTLS_CFG_FILE="mcuboot-mbedtls-cfg.h" + +# Bootloader size optimization +# Disable not used modules that cannot be set in Kconfig.mcuboot.defaults due to overriding +# in board files. +CONFIG_GPIO=n +CONFIG_CONSOLE=n +CONFIG_SERIAL=n +CONFIG_UART_CONSOLE=n +CONFIG_USE_SEGGER_RTT=n diff --git a/examples/all-clusters-minimal-app/nrfconnect/child_image/mcuboot/prj_release.conf b/examples/all-clusters-minimal-app/nrfconnect/child_image/mcuboot/prj_release.conf new file mode 100644 index 00000000000000..287c7829c6a5cf --- /dev/null +++ b/examples/all-clusters-minimal-app/nrfconnect/child_image/mcuboot/prj_release.conf @@ -0,0 +1,30 @@ +# +# Copyright (c) 2022 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. +# + +# This target uses Kconfig.mcuboot.defaults to set options common for all +# samples using mcuboot. This file should contain only options specific for this sample +# mcuboot configuration or overrides of default values. + +CONFIG_MBEDTLS_CFG_FILE="mcuboot-mbedtls-cfg.h" + +# Bootloader size optimization +# Disable not used modules that cannot be set in Kconfig.mcuboot.defaults due to overriding +# in board files. +CONFIG_GPIO=n +CONFIG_CONSOLE=n +CONFIG_SERIAL=n +CONFIG_UART_CONSOLE=n +CONFIG_USE_SEGGER_RTT=n diff --git a/examples/all-clusters-minimal-app/nrfconnect/child_image/multiprotocol_rpmsg/prj.conf b/examples/all-clusters-minimal-app/nrfconnect/child_image/multiprotocol_rpmsg/prj.conf new file mode 100644 index 00000000000000..f43614c64500d7 --- /dev/null +++ b/examples/all-clusters-minimal-app/nrfconnect/child_image/multiprotocol_rpmsg/prj.conf @@ -0,0 +1,25 @@ +# +# Copyright (c) 2022 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. +# + +# This target uses Kconfig.multiprotocol_rpmsg.defaults to set options common for all +# samples using multiprotocol_rpmsg. This file should contain only options specific for this sample +# multiprotocol_rpmsg configuration or overrides of default values. + +# Disable not used modules that cannot be set in Kconfig.multiprotocol_rpmsg.defaults due to overriding +# in board files. + +CONFIG_SERIAL=n +CONFIG_UART_CONSOLE=n diff --git a/examples/all-clusters-minimal-app/nrfconnect/child_image/multiprotocol_rpmsg/prj_dfu.conf b/examples/all-clusters-minimal-app/nrfconnect/child_image/multiprotocol_rpmsg/prj_dfu.conf new file mode 100644 index 00000000000000..f43614c64500d7 --- /dev/null +++ b/examples/all-clusters-minimal-app/nrfconnect/child_image/multiprotocol_rpmsg/prj_dfu.conf @@ -0,0 +1,25 @@ +# +# Copyright (c) 2022 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. +# + +# This target uses Kconfig.multiprotocol_rpmsg.defaults to set options common for all +# samples using multiprotocol_rpmsg. This file should contain only options specific for this sample +# multiprotocol_rpmsg configuration or overrides of default values. + +# Disable not used modules that cannot be set in Kconfig.multiprotocol_rpmsg.defaults due to overriding +# in board files. + +CONFIG_SERIAL=n +CONFIG_UART_CONSOLE=n diff --git a/examples/all-clusters-minimal-app/nrfconnect/child_image/multiprotocol_rpmsg/prj_release.conf b/examples/all-clusters-minimal-app/nrfconnect/child_image/multiprotocol_rpmsg/prj_release.conf new file mode 100644 index 00000000000000..f43614c64500d7 --- /dev/null +++ b/examples/all-clusters-minimal-app/nrfconnect/child_image/multiprotocol_rpmsg/prj_release.conf @@ -0,0 +1,25 @@ +# +# Copyright (c) 2022 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. +# + +# This target uses Kconfig.multiprotocol_rpmsg.defaults to set options common for all +# samples using multiprotocol_rpmsg. This file should contain only options specific for this sample +# multiprotocol_rpmsg configuration or overrides of default values. + +# Disable not used modules that cannot be set in Kconfig.multiprotocol_rpmsg.defaults due to overriding +# in board files. + +CONFIG_SERIAL=n +CONFIG_UART_CONSOLE=n diff --git a/examples/all-clusters-minimal-app/nrfconnect/configuration/nrf52840dk_nrf52840/pm_static_dfu.yml b/examples/all-clusters-minimal-app/nrfconnect/configuration/nrf52840dk_nrf52840/pm_static_dfu.yml new file mode 100644 index 00000000000000..1847733295425b --- /dev/null +++ b/examples/all-clusters-minimal-app/nrfconnect/configuration/nrf52840dk_nrf52840/pm_static_dfu.yml @@ -0,0 +1,38 @@ +mcuboot: + address: 0x0 + size: 0x7000 + region: flash_primary +mcuboot_pad: + address: 0x7000 + size: 0x200 +app: + address: 0x7200 + size: 0xf4e00 +mcuboot_primary: + orig_span: &id001 + - mcuboot_pad + - app + span: *id001 + address: 0x7000 + size: 0xf5000 + region: flash_primary +mcuboot_primary_app: + orig_span: &id002 + - app + span: *id002 + address: 0x7200 + size: 0xf4e00 +settings_storage: + address: 0xfc000 + size: 0x4000 + region: flash_primary +mcuboot_secondary: + address: 0x0 + size: 0xf5000 + device: MX25R64 + region: external_flash +external_flash: + address: 0xf5000 + size: 0x70b000 + device: MX25R64 + region: external_flash diff --git a/examples/all-clusters-minimal-app/nrfconnect/configuration/nrf5340dk_nrf5340_cpuapp/pm_static_dfu.yml b/examples/all-clusters-minimal-app/nrfconnect/configuration/nrf5340dk_nrf5340_cpuapp/pm_static_dfu.yml new file mode 100644 index 00000000000000..ba02c6e5645eea --- /dev/null +++ b/examples/all-clusters-minimal-app/nrfconnect/configuration/nrf5340dk_nrf5340_cpuapp/pm_static_dfu.yml @@ -0,0 +1,52 @@ +mcuboot: + address: 0x0 + size: 0xC000 + region: flash_primary +mcuboot_pad: + address: 0xC000 + size: 0x200 +app: + address: 0xC200 + size: 0xefe00 +mcuboot_primary: + orig_span: &id001 + - mcuboot_pad + - app + span: *id001 + address: 0xC000 + size: 0xf0000 + region: flash_primary +mcuboot_primary_app: + orig_span: &id002 + - app + span: *id002 + address: 0xC200 + size: 0xefe00 +settings_storage: + address: 0xfc000 + size: 0x4000 + region: flash_primary +mcuboot_primary_1: + address: 0x0 + size: 0x40000 + device: flash_ctrl + region: ram_flash +mcuboot_secondary: + address: 0x0 + size: 0xf0000 + device: MX25R64 + region: external_flash +mcuboot_secondary_1: + address: 0xf0000 + size: 0x40000 + device: MX25R64 + region: external_flash +external_flash: + address: 0x130000 + size: 0x6D0000 + device: MX25R64 + region: external_flash +pcd_sram: + address: 0x20000000 + size: 0x2000 + region: sram_primary diff --git a/examples/all-clusters-minimal-app/nrfconnect/main/AppTask.cpp b/examples/all-clusters-minimal-app/nrfconnect/main/AppTask.cpp new file mode 100644 index 00000000000000..8f7c646bd8471d --- /dev/null +++ b/examples/all-clusters-minimal-app/nrfconnect/main/AppTask.cpp @@ -0,0 +1,407 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#include "AppTask.h" +#include "AppConfig.h" +#include "AppEvent.h" +#include "LEDUtil.h" +#include "binding-handler.h" + +#include +#include + +#include +#include +#include +#include + +#include +#include + +#if CONFIG_CHIP_OTA_REQUESTOR +#include "OTAUtil.h" +#endif + +#include +#include +#include + +using namespace ::chip; +using namespace ::chip::Credentials; +using namespace ::chip::DeviceLayer; + +#define FACTORY_RESET_TRIGGER_TIMEOUT 3000 +#define FACTORY_RESET_CANCEL_WINDOW_TIMEOUT 3000 +#define APP_EVENT_QUEUE_SIZE 10 +#define BUTTON_PUSH_EVENT 1 +#define BUTTON_RELEASE_EVENT 0 + +LOG_MODULE_DECLARE(app, CONFIG_MATTER_LOG_LEVEL); +K_MSGQ_DEFINE(sAppEventQueue, sizeof(AppEvent), APP_EVENT_QUEUE_SIZE, alignof(AppEvent)); + +static LEDWidget sStatusLED; +static UnusedLedsWrapper<3> sUnusedLeds{ { DK_LED2, DK_LED3, DK_LED4 } }; +static k_timer sFunctionTimer; + +constexpr EndpointId kNetworkCommissioningEndpointSecondary = 0xFFFE; + +namespace LedConsts { +constexpr uint32_t kBlinkRate_ms{ 500 }; +namespace StatusLed { +namespace Unprovisioned { +constexpr uint32_t kOn_ms{ 100 }; +constexpr uint32_t kOff_ms{ kOn_ms }; +} // namespace Unprovisioned +namespace Provisioned { +constexpr uint32_t kOn_ms{ 50 }; +constexpr uint32_t kOff_ms{ 950 }; +} // namespace Provisioned + +} // namespace StatusLed +} // namespace LedConsts + +CHIP_ERROR AppTask::Init() +{ + // Initialize CHIP stack + LOG_INF("Init CHIP stack"); + + CHIP_ERROR err = chip::Platform::MemoryInit(); + if (err != CHIP_NO_ERROR) + { + LOG_ERR("Platform::MemoryInit() failed"); + return err; + } + + err = PlatformMgr().InitChipStack(); + if (err != CHIP_NO_ERROR) + { + LOG_ERR("PlatformMgr().InitChipStack() failed"); + return err; + } + + err = ThreadStackMgr().InitThreadStack(); + if (err != CHIP_NO_ERROR) + { + LOG_ERR("ThreadStackMgr().InitThreadStack() failed"); + return err; + } + +#ifdef CONFIG_OPENTHREAD_MTD_SED + err = ConnectivityMgr().SetThreadDeviceType(ConnectivityManager::kThreadDeviceType_SleepyEndDevice); +#else + err = ConnectivityMgr().SetThreadDeviceType(ConnectivityManager::kThreadDeviceType_MinimalEndDevice); +#endif + if (err != CHIP_NO_ERROR) + { + LOG_ERR("ConnectivityMgr().SetThreadDeviceType() failed"); + return err; + } + + // Initialize LEDs + LEDWidget::InitGpio(); + LEDWidget::SetStateUpdateCallback(LEDStateUpdateHandler); + + sStatusLED.Init(SYSTEM_STATE_LED); + + UpdateStatusLED(); + + // Initialize buttons + auto ret = dk_buttons_init(ButtonEventHandler); + if (ret) + { + LOG_ERR("dk_buttons_init() failed"); + return chip::System::MapErrorZephyr(ret); + } + err = InitBindingHandlers(); + if (err != CHIP_NO_ERROR) + { + LOG_ERR("InitBindingHandlers() failed"); + } + + // Initialize timer user data + k_timer_init(&sFunctionTimer, &AppTask::TimerEventHandler, nullptr); + k_timer_user_data_set(&sFunctionTimer, this); + + // Initialize CHIP server + SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider()); + + static chip::CommonCaseDeviceServerInitParams initParams; + (void) initParams.InitializeStaticResourcesBeforeServerInit(); + ReturnErrorOnFailure(chip::Server::GetInstance().Init(initParams)); +#if CONFIG_CHIP_OTA_REQUESTOR + InitBasicOTARequestor(); +#endif + // We only have network commissioning on endpoint 0. + emberAfEndpointEnableDisable(kNetworkCommissioningEndpointSecondary, false); + ConfigurationMgr().LogDeviceConfig(); + PrintOnboardingCodes(chip::RendezvousInformationFlag(chip::RendezvousInformationFlag::kBLE)); + + // Add CHIP event handler and start CHIP thread. + // Note that all the initialization code should happen prior to this point to avoid data races + // between the main and the CHIP threads + PlatformMgr().AddEventHandler(ChipEventHandler, 0); + err = PlatformMgr().StartEventLoopTask(); + if (err != CHIP_NO_ERROR) + { + LOG_ERR("PlatformMgr().StartEventLoopTask() failed"); + } + + return err; +} + +CHIP_ERROR AppTask::StartApp() +{ + ReturnErrorOnFailure(Init()); + + AppEvent event{}; + + while (true) + { + k_msgq_get(&sAppEventQueue, &event, K_FOREVER); + DispatchEvent(&event); + } + + return CHIP_NO_ERROR; +} + +void AppTask::ButtonEventHandler(uint32_t aButtonState, uint32_t aHasChanged) +{ + AppEvent event; + event.Type = AppEvent::Type::Button; + + if (FUNCTION_BUTTON_MASK & aHasChanged) + { + event.ButtonEvent.PinNo = FUNCTION_BUTTON; + event.ButtonEvent.Action = (FUNCTION_BUTTON_MASK & aButtonState) ? BUTTON_PUSH_EVENT : BUTTON_RELEASE_EVENT; + event.Handler = FunctionHandler; + PostEvent(&event); + } + + if (BLE_ADVERTISEMENT_START_BUTTON_MASK & aButtonState & aHasChanged) + { + event.ButtonEvent.PinNo = BLE_ADVERTISEMENT_START_BUTTON; + event.ButtonEvent.Action = BUTTON_PUSH_EVENT; + event.Handler = StartBLEAdvertisementHandler; + PostEvent(&event); + } +} + +void AppTask::TimerEventHandler(k_timer * aTimer) +{ + if (!aTimer) + return; + + AppEvent event; + event.Type = AppEvent::Type::Timer; + event.TimerEvent.Context = k_timer_user_data_get(aTimer); + event.Handler = FunctionTimerEventHandler; + PostEvent(&event); +} + +void AppTask::FunctionTimerEventHandler(AppEvent * aEvent) +{ + if (!aEvent) + return; + if (aEvent->Type != AppEvent::Type::Timer) + return; + + // If we reached here, the button was held past FACTORY_RESET_TRIGGER_TIMEOUT, initiate factory reset + if (Instance().mFunctionTimerActive && Instance().mMode == OperatingMode::Normal) + { + LOG_INF("Factory Reset Triggered. Release button within %ums to cancel.", FACTORY_RESET_TRIGGER_TIMEOUT); + + // Start timer for FACTORY_RESET_CANCEL_WINDOW_TIMEOUT to allow user to cancel, if required. + StartTimer(FACTORY_RESET_CANCEL_WINDOW_TIMEOUT); + Instance().mMode = OperatingMode::FactoryReset; + +#ifdef CONFIG_STATE_LEDS + // Turn off all LEDs before starting blink to make sure blink is co-ordinated. + sStatusLED.Set(false); + sUnusedLeds.Set(false); + + sStatusLED.Blink(LedConsts::kBlinkRate_ms); + sUnusedLeds.Blink(LedConsts::kBlinkRate_ms); +#endif + } + else if (Instance().mFunctionTimerActive && Instance().mMode == OperatingMode::FactoryReset) + { + // Actually trigger Factory Reset + Instance().mMode = OperatingMode::Normal; + ConfigurationMgr().InitiateFactoryReset(); + } +} + +void AppTask::FunctionHandler(AppEvent * aEvent) +{ + if (!aEvent) + return; + if (aEvent->ButtonEvent.PinNo != FUNCTION_BUTTON) + return; + + // To initiate factory reset: press the FUNCTION_BUTTON for FACTORY_RESET_TRIGGER_TIMEOUT + FACTORY_RESET_CANCEL_WINDOW_TIMEOUT + // All LEDs start blinking after FACTORY_RESET_TRIGGER_TIMEOUT to signal factory reset has been initiated. + // To cancel factory reset: release the FUNCTION_BUTTON once all LEDs start blinking within the + // FACTORY_RESET_CANCEL_WINDOW_TIMEOUT + if (aEvent->ButtonEvent.Action == BUTTON_PUSH_EVENT) + { + if (!Instance().mFunctionTimerActive && Instance().mMode == OperatingMode::Normal) + { + StartTimer(FACTORY_RESET_TRIGGER_TIMEOUT); + } + } + else + { + if (Instance().mFunctionTimerActive && Instance().mMode == OperatingMode::FactoryReset) + { + sUnusedLeds.Set(false); + + UpdateStatusLED(); + CancelTimer(); + + // Change the function to none selected since factory reset has been canceled. + Instance().mMode = OperatingMode::Normal; + + LOG_INF("Factory Reset has been Canceled"); + } + else if (Instance().mFunctionTimerActive) + { + CancelTimer(); + Instance().mMode = OperatingMode::Normal; + } + } +} + +void AppTask::StartBLEAdvertisementHandler(AppEvent *) +{ + if (Server::GetInstance().GetFabricTable().FabricCount() != 0) + { + LOG_INF("Matter service BLE advertising not started - device is already commissioned"); + return; + } + + if (ConnectivityMgr().IsBLEAdvertisingEnabled()) + { + LOG_INF("BLE advertising is already enabled"); + return; + } + + if (Server::GetInstance().GetCommissioningWindowManager().OpenBasicCommissioningWindow() != CHIP_NO_ERROR) + { + LOG_ERR("OpenBasicCommissioningWindow() failed"); + } +} + +void AppTask::UpdateLedStateEventHandler(AppEvent * aEvent) +{ + if (!aEvent) + return; + if (aEvent->Type == AppEvent::Type::UpdateLedState) + { + aEvent->UpdateLedStateEvent.LedWidget->UpdateState(); + } +} + +void AppTask::LEDStateUpdateHandler(LEDWidget & aLedWidget) +{ + AppEvent event; + event.Type = AppEvent::Type::UpdateLedState; + event.Handler = UpdateLedStateEventHandler; + event.UpdateLedStateEvent.LedWidget = &aLedWidget; + PostEvent(&event); +} + +void AppTask::UpdateStatusLED() +{ +#ifdef CONFIG_STATE_LEDS + /* Update the status LED. + * + * If thread and service provisioned, keep the LED On constantly. + * + * If the system has ble connection(s) uptill the stage above, THEN blink the LED at an even + * rate of 100ms. + * + * Otherwise, blink the LED On for a very short time. */ + if (Instance().mIsThreadProvisioned && Instance().mIsThreadEnabled) + { + sStatusLED.Set(true); + } + else if (Instance().mHaveBLEConnections) + { + sStatusLED.Blink(LedConsts::StatusLed::Unprovisioned::kOn_ms, LedConsts::StatusLed::Unprovisioned::kOff_ms); + } + else + { + sStatusLED.Blink(LedConsts::StatusLed::Provisioned::kOn_ms, LedConsts::StatusLed::Provisioned::kOff_ms); + } +#endif +} + +void AppTask::ChipEventHandler(const ChipDeviceEvent * aEvent, intptr_t /* aArg */) +{ + if (!aEvent) + return; + switch (aEvent->Type) + { + case DeviceEventType::kCHIPoBLEAdvertisingChange: + Instance().mHaveBLEConnections = ConnectivityMgr().NumBLEConnections() != 0; + UpdateStatusLED(); + break; + case DeviceEventType::kThreadStateChange: + Instance().mIsThreadProvisioned = ConnectivityMgr().IsThreadProvisioned(); + Instance().mIsThreadEnabled = ConnectivityMgr().IsThreadEnabled(); + UpdateStatusLED(); + break; + default: + break; + } +} + +void AppTask::CancelTimer() +{ + k_timer_stop(&sFunctionTimer); + Instance().mFunctionTimerActive = false; +} + +void AppTask::StartTimer(uint32_t aTimeoutInMs) +{ + k_timer_start(&sFunctionTimer, K_MSEC(aTimeoutInMs), K_NO_WAIT); + Instance().mFunctionTimerActive = true; +} + +void AppTask::PostEvent(AppEvent * aEvent) +{ + if (!aEvent) + return; + if (k_msgq_put(&sAppEventQueue, aEvent, K_NO_WAIT)) + { + LOG_INF("Failed to post event to app task event queue"); + } +} + +void AppTask::DispatchEvent(AppEvent * aEvent) +{ + if (!aEvent) + return; + if (aEvent->Handler) + { + aEvent->Handler(aEvent); + } + else + { + LOG_INF("Event received with no handler. Dropping event."); + } +} diff --git a/src/transport/MessageCounter.cpp b/examples/all-clusters-minimal-app/nrfconnect/main/include/AppConfig.h similarity index 62% rename from src/transport/MessageCounter.cpp rename to examples/all-clusters-minimal-app/nrfconnect/main/include/AppConfig.h index 59fae9bfc9f2e7..01465d3bb17a62 100644 --- a/src/transport/MessageCounter.cpp +++ b/examples/all-clusters-minimal-app/nrfconnect/main/include/AppConfig.h @@ -1,5 +1,6 @@ /* - * Copyright (c) 2021 Project CHIP Authors + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,22 +15,13 @@ * limitations under the License. */ -/** - * @file - * This file defines the CHIP message counters. - * - */ - -#include - -#include -#include +#pragma once -namespace chip { +// ---- All Clusters Application example config ---- -void GlobalUnencryptedMessageCounter::Init() -{ - mValue = Crypto::GetRandU32(); -} +#define FUNCTION_BUTTON DK_BTN1 +#define FUNCTION_BUTTON_MASK DK_BTN1_MSK +#define BLE_ADVERTISEMENT_START_BUTTON DK_BTN4 +#define BLE_ADVERTISEMENT_START_BUTTON_MASK DK_BTN4_MSK -} // namespace chip +#define SYSTEM_STATE_LED DK_LED1 diff --git a/examples/all-clusters-minimal-app/nrfconnect/main/include/AppEvent.h b/examples/all-clusters-minimal-app/nrfconnect/main/include/AppEvent.h new file mode 100644 index 00000000000000..f6cac85b182b32 --- /dev/null +++ b/examples/all-clusters-minimal-app/nrfconnect/main/include/AppEvent.h @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#pragma once + +#include + +class LEDWidget; + +struct AppEvent +{ + using EventHandler = void (*)(AppEvent *); + + enum class Type : uint8_t + { + None, + Button, + Timer, + UpdateLedState, + }; + + Type Type{ Type::None }; + + union + { + struct + { + uint8_t PinNo; + uint8_t Action; + } ButtonEvent; + struct + { + void * Context; + } TimerEvent; + struct + { + LEDWidget * LedWidget; + } UpdateLedStateEvent; + }; + + EventHandler Handler; +}; diff --git a/examples/all-clusters-minimal-app/nrfconnect/main/include/AppTask.h b/examples/all-clusters-minimal-app/nrfconnect/main/include/AppTask.h new file mode 100644 index 00000000000000..e7402653f7237c --- /dev/null +++ b/examples/all-clusters-minimal-app/nrfconnect/main/include/AppTask.h @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#pragma once + +#include + +struct k_timer; +class AppEvent; +class LEDWidget; + +class AppTask +{ +public: + static AppTask & Instance(void) + { + static AppTask sAppTask; + return sAppTask; + }; + CHIP_ERROR StartApp(); + +private: + enum class OperatingMode : uint8_t + { + Normal, + FactoryReset, + Invalid + }; + + CHIP_ERROR Init(); + void DispatchEvent(AppEvent * aEvent); + + // statics needed to interact with zephyr C API + static void CancelTimer(void); + static void StartTimer(uint32_t aTimeoutInMs); + static void FunctionTimerEventHandler(AppEvent * aEvent); + static void FunctionHandler(AppEvent * aEvent); + static void ButtonEventHandler(uint32_t aButtonsState, uint32_t aHasChanged); + static void TimerEventHandler(k_timer * aTimer); + static void PostEvent(AppEvent * aEvent); + static void UpdateStatusLED(); + static void LEDStateUpdateHandler(LEDWidget & aLedWidget); + static void UpdateLedStateEventHandler(AppEvent * aEvent); + static void StartBLEAdvertisementHandler(AppEvent * aEvent); + static void ChipEventHandler(const chip::DeviceLayer::ChipDeviceEvent * aEvent, intptr_t aArg); + + OperatingMode mMode{ OperatingMode::Normal }; + bool mFunctionTimerActive{ false }; + bool mIsThreadProvisioned{ false }; + bool mIsThreadEnabled{ false }; + bool mHaveBLEConnections{ false }; +}; diff --git a/examples/all-clusters-minimal-app/nrfconnect/main/include/CHIPProjectConfig.h b/examples/all-clusters-minimal-app/nrfconnect/main/include/CHIPProjectConfig.h new file mode 100644 index 00000000000000..7a2941f28621df --- /dev/null +++ b/examples/all-clusters-minimal-app/nrfconnect/main/include/CHIPProjectConfig.h @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +/** + * @file + * Example project configuration file for CHIP. + * + * This is a place to put application or project-specific overrides + * to the default configuration values for general CHIP features. + * + */ + +#pragma once + +// Use a default pairing code if one hasn't been provisioned in flash. +#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE 20202021 +#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR 0xF00 + +#define CHIP_DEVICE_CONFIG_SED_IDLE_INTERVAL 2000_ms32 diff --git a/examples/all-clusters-minimal-app/nrfconnect/main/main.cpp b/examples/all-clusters-minimal-app/nrfconnect/main/main.cpp new file mode 100644 index 00000000000000..8f71ca55e41070 --- /dev/null +++ b/examples/all-clusters-minimal-app/nrfconnect/main/main.cpp @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#include "AppTask.h" + +#include + +#if DT_NODE_HAS_COMPAT(DT_CHOSEN(zephyr_console), zephyr_cdc_acm_uart) +#include +#include +#endif + +LOG_MODULE_REGISTER(app, CONFIG_MATTER_LOG_LEVEL); + +using namespace ::chip; + +#if DT_NODE_HAS_COMPAT(DT_CHOSEN(zephyr_console), zephyr_cdc_acm_uart) +static int InitUSB() +{ + int err = usb_enable(nullptr); + + if (err) + { + LOG_ERR("Failed to initialize USB device"); + return err; + } + + const struct device * dev = DEVICE_DT_GET(DT_CHOSEN(zephyr_console)); + uint32_t dtr = 0; + + while (!dtr) + { + uart_line_ctrl_get(dev, UART_LINE_CTRL_DTR, &dtr); + k_sleep(K_MSEC(100)); + } + + return 0; +} +#endif + +int main() +{ + CHIP_ERROR err = CHIP_NO_ERROR; + +#if DT_NODE_HAS_COMPAT(DT_CHOSEN(zephyr_console), zephyr_cdc_acm_uart) + err = System::MapErrorZephyr(InitUSB()); +#endif + + if (err == CHIP_NO_ERROR) + { + err = AppTask::Instance().StartApp(); + } + + LOG_ERR("Exited with code %" CHIP_ERROR_FORMAT, err.Format()); + return err == CHIP_NO_ERROR ? EXIT_SUCCESS : EXIT_FAILURE; +} diff --git a/examples/all-clusters-minimal-app/nrfconnect/overlay-low_power.conf b/examples/all-clusters-minimal-app/nrfconnect/overlay-low_power.conf new file mode 100644 index 00000000000000..c962425f6ef937 --- /dev/null +++ b/examples/all-clusters-minimal-app/nrfconnect/overlay-low_power.conf @@ -0,0 +1,30 @@ +# +# Copyright (c) 2022 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. +# + +# Enable MTD Sleepy End Device +CONFIG_CHIP_ENABLE_SLEEPY_END_DEVICE_SUPPORT=y + +# Disable UART console +CONFIG_SHELL=n +CONFIG_LOG=n +CONFIG_UART_CONSOLE=n +CONFIG_SERIAL=n + +# Suspend devices when the CPU goes to sleep +CONFIG_PM_DEVICE=y + +# Disable auxiliary state LEDs +CONFIG_STATE_LEDS=n diff --git a/examples/all-clusters-minimal-app/nrfconnect/pm_static_nrf52840dongle_nrf52840.yml b/examples/all-clusters-minimal-app/nrfconnect/pm_static_nrf52840dongle_nrf52840.yml new file mode 100644 index 00000000000000..ad0f9426169e9d --- /dev/null +++ b/examples/all-clusters-minimal-app/nrfconnect/pm_static_nrf52840dongle_nrf52840.yml @@ -0,0 +1,8 @@ +settings_storage: + address: 0xd8000 + size: 0x8000 + region: flash_primary +open_bootloader: + address: 0xe0000 + size: 0x20000 + region: flash_primary diff --git a/examples/all-clusters-minimal-app/nrfconnect/prj.conf b/examples/all-clusters-minimal-app/nrfconnect/prj.conf new file mode 100644 index 00000000000000..a75017723ceea3 --- /dev/null +++ b/examples/all-clusters-minimal-app/nrfconnect/prj.conf @@ -0,0 +1,51 @@ +# +# Copyright (c) 2022 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. +# + +CONFIG_CHIP=y +CONFIG_STD_CPP14=y + +# This sample uses Kconfig.defaults to set options common for all +# samples. This file should contain only options specific for this sample +# or overrides of default values. + +# Add support for LEDs and buttons on Nordic development kits +CONFIG_DK_LIBRARY=y + +# OpenThread settings +CONFIG_OPENTHREAD_THREAD_VERSION_1_2=y +CONFIG_OPENTHREAD_NORDIC_LIBRARY_MTD=y +CONFIG_OPENTHREAD_MTD=y +CONFIG_OPENTHREAD_FTD=n + +# Bluetooth overrides +CONFIG_BT_DEVICE_NAME="AllClusters" + +# Additional configs for debbugging experience. +CONFIG_THREAD_NAME=y +CONFIG_MPU_STACK_GUARD=y +CONFIG_RESET_ON_FATAL_ERROR=n + +# Disable OTA requestor +CONFIG_CHIP_OTA_REQUESTOR=n + +# Disable QSPI NOR +CONFIG_CHIP_QSPI_NOR=n + +# CHIP configuration +CONFIG_CHIP_PROJECT_CONFIG="main/include/CHIPProjectConfig.h" + +# CHIP PID: 32769 == 0x8001 (all-clusters-minimal-app) +CONFIG_CHIP_DEVICE_PRODUCT_ID=32769 diff --git a/examples/all-clusters-minimal-app/nrfconnect/prj_dfu.conf b/examples/all-clusters-minimal-app/nrfconnect/prj_dfu.conf new file mode 100644 index 00000000000000..16dd33d9574500 --- /dev/null +++ b/examples/all-clusters-minimal-app/nrfconnect/prj_dfu.conf @@ -0,0 +1,45 @@ +# +# Copyright (c) 2022 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. +# + +CONFIG_CHIP=y +CONFIG_STD_CPP14=y + +# This sample uses Kconfig.defaults to set options common for all +# samples. This file should contain only options specific for this sample +# or overrides of default values. + +# Add support for LEDs and buttons on Nordic development kits +CONFIG_DK_LIBRARY=y + +# OpenThread settings +CONFIG_OPENTHREAD_THREAD_VERSION_1_2=y +CONFIG_OPENTHREAD_NORDIC_LIBRARY_MTD=y +CONFIG_OPENTHREAD_MTD=y +CONFIG_OPENTHREAD_FTD=n + +# Bluetooth overrides +CONFIG_BT_DEVICE_NAME="AllClusters" + +# Additional configs for debbugging experience. +CONFIG_THREAD_NAME=y +CONFIG_MPU_STACK_GUARD=y +CONFIG_RESET_ON_FATAL_ERROR=n + +# CHIP configuration +CONFIG_CHIP_PROJECT_CONFIG="main/include/CHIPProjectConfig.h" + +# CHIP PID: 32769 == 0x8001 (all-clusters-minimal-app) +CONFIG_CHIP_DEVICE_PRODUCT_ID=32769 diff --git a/examples/all-clusters-minimal-app/nrfconnect/prj_release.conf b/examples/all-clusters-minimal-app/nrfconnect/prj_release.conf new file mode 100644 index 00000000000000..73ff63af0ddcbb --- /dev/null +++ b/examples/all-clusters-minimal-app/nrfconnect/prj_release.conf @@ -0,0 +1,55 @@ +# +# Copyright (c) 2022 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. +# + +CONFIG_CHIP=y +CONFIG_STD_CPP14=y + +# This sample uses Kconfig.defaults to set options common for all +# samples. This file should contain only options specific for this sample +# or overrides of default values. + +# Add support for LEDs and buttons on Nordic development kits +CONFIG_DK_LIBRARY=y + +# OpenThread settings +CONFIG_OPENTHREAD_THREAD_VERSION_1_2=y +CONFIG_OPENTHREAD_NORDIC_LIBRARY_MTD=y +CONFIG_OPENTHREAD_MTD=y +CONFIG_OPENTHREAD_FTD=n + +# Bluetooth overrides +CONFIG_BT_DEVICE_NAME="AllClusters" + +# Enable system reset on fatal error +CONFIG_RESET_ON_FATAL_ERROR=y + +# CHIP configuration +CONFIG_CHIP_PROJECT_CONFIG="main/include/CHIPProjectConfig.h" + +# CHIP PID: 32769 == 0x8001 (all-clusters-minimal-app) +CONFIG_CHIP_DEVICE_PRODUCT_ID=32769 + +# Disable all debug features +CONFIG_SHELL=n +CONFIG_OPENTHREAD_SHELL=n +CONFIG_CONSOLE=n +CONFIG_UART_CONSOLE=n +CONFIG_SERIAL=n +CONFIG_LOG=n +CONFIG_LOG_MODE_MINIMAL=n +CONFIG_ASSERT_VERBOSE=n +CONFIG_PRINTK=n +CONFIG_THREAD_NAME=n diff --git a/examples/all-clusters-minimal-app/nrfconnect/third_party/connectedhomeip b/examples/all-clusters-minimal-app/nrfconnect/third_party/connectedhomeip new file mode 120000 index 00000000000000..c866b86874994d --- /dev/null +++ b/examples/all-clusters-minimal-app/nrfconnect/third_party/connectedhomeip @@ -0,0 +1 @@ +../../../.. \ No newline at end of file diff --git a/examples/all-clusters-minimal-app/nxp/linux-imx/imx8m/README.md b/examples/all-clusters-minimal-app/nxp/linux-imx/imx8m/README.md new file mode 100644 index 00000000000000..9a90a11e0dccc4 --- /dev/null +++ b/examples/all-clusters-minimal-app/nxp/linux-imx/imx8m/README.md @@ -0,0 +1,4 @@ +To cross-compile this example on x64 host and run on **NXP i.MX 8M Mini** +**EVK**, see the associated +[README document](../../../../../docs/guides/nxp_imx8m_linux_examples.md) for +details. diff --git a/src/app/tests/suites/certification/Test_TC_BDX_1_1.yaml b/examples/all-clusters-minimal-app/p6/.gn similarity index 62% rename from src/app/tests/suites/certification/Test_TC_BDX_1_1.yaml rename to examples/all-clusters-minimal-app/p6/.gn index ba3f0276ecbbef..81cec9d11a421b 100644 --- a/src/app/tests/suites/certification/Test_TC_BDX_1_1.yaml +++ b/examples/all-clusters-minimal-app/p6/.gn @@ -11,15 +11,18 @@ # 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: 28.1.1. [TC-BDX-1.1] Sender Initiated BDX Transfer session +import("//build_overrides/build.gni") -config: - nodeId: 0x12344321 - cluster: "Basic" - endpoint: 0 +# The location of the build configuration file. +buildconfig = "${build_root}/config/BUILDCONFIG.gn" -tests: - - label: "DUT sends a SendInit message to TH" - disabled: true +# CHIP uses angle bracket includes. +check_system_includes = true + +default_args = { + target_cpu = "arm" + target_os = "freertos" + + import("//args.gni") +} diff --git a/examples/all-clusters-minimal-app/p6/BUILD.gn b/examples/all-clusters-minimal-app/p6/BUILD.gn new file mode 100644 index 00000000000000..a9b88c2125b219 --- /dev/null +++ b/examples/all-clusters-minimal-app/p6/BUILD.gn @@ -0,0 +1,178 @@ +# 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. + +import("//build_overrides/build.gni") +import("//build_overrides/chip.gni") +import("//build_overrides/p6.gni") + +import("${build_root}/config/defaults.gni") +import("${chip_root}/src/platform/device.gni") +import("${p6_sdk_build_root}/p6_executable.gni") +import("${p6_sdk_build_root}/p6_sdk.gni") + +assert(current_os == "freertos") + +p6_project_dir = "${chip_root}/examples/all-clusters-minimal-app/p6" +examples_plat_dir = "${chip_root}/examples/platform/p6" + +declare_args() { + # Dump memory usage at link time. + chip_print_memory_usage = false + + # PIN code for PASE session establishment. + setup_pin_code = 20202021 + + # Monitor & log memory usage at runtime. + enable_heap_monitoring = false + + # Build update app + build_update_image = false +} + +config("p6_ota_config") { + ldflags = [ "-T/" + rebase_path( + "${chip_root}/third_party/p6/p6_sdk/ota/cy8c6xxa_cm4_dual_ota_int.ld", + "/", + "${p6_project_dir}") ] + + ldflags += [ "-Wl,--defsym,MCUBOOT_HEADER_SIZE=0x400,--defsym,MCUBOOT_BOOTLOADER_SIZE=0x18000,--defsym,CY_BOOT_PRIMARY_1_SIZE=0x1C0000" ] + + defines = [ + "P6_OTA", + "OTA_SUPPORT ", + "OTA_USE_EXTERNAL_FLASH", + "CY_BOOT_USE_EXTERNAL_FLASH", + "MCUBOOT_HEADER_SIZE=0x400", + "MCUBOOT_MAX_IMG_SECTORS=3584", + "CY_BOOT_SCRATCH_SIZE=0x00004000", + "MCUBOOT_BOOTLOADER_SIZE=0x00018000", + "CY_BOOT_BOOTLOADER_SIZE=0x00018000", + "CY_BOOT_PRIMARY_1_START=0x00018000", + "CY_BOOT_PRIMARY_1_SIZE=0x1C0000", + "CY_BOOT_SECONDARY_1_START=0x00000000", + "CY_BOOT_SECONDARY_1_SIZE=0x001C0000", + "CY_FLASH_ERASE_VALUE=0xFF", + "MCUBOOT_IMAGE_NUMBER=1", + "MCUBOOT_SLOT_SIZE=0x1C0000", + "MCUBOOT_SCRATCH_SIZE=0x4000", + "MCUBOOT_SECTOR_SIZE = 512", + "APP_VERSION_MAJOR=1", + "APP_VERSION_MINOR=0", + "APP_VERSION_BUILD=0", + "MCUBOOT_OVERWRITE_ONLY", + "CY_ENABLE_XIP_PROGRAM", + ] + + if (build_update_image) { + defines += [ "CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION=2" ] + } else { + defines += [ "CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION=1" ] + } +} + +p6_sdk_sources("all_clusters_app_sdk_sources") { + include_dirs = [ + "${chip_root}/src/platform/P6", + "${p6_project_dir}/include", + "${examples_plat_dir}", + ] + + defines = [ + "BOARD_ID=${p6_board}", + "P6_LOG_ENABLED=1", + "CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE=${setup_pin_code}", + ] + + sources = [ "${p6_project_dir}/include/CHIPProjectConfig.h" ] + + public_configs = [ "${chip_root}/third_party/p6:p6_sdk_config" ] + + if (chip_enable_ota_requestor) { + sources += [ + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/bootutil/src/bootutil_misc.c", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/cy_flash_map.c", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/cy_flash_psoc6.c", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/cy_smif_psoc6.c", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/mem_config/mem_config_sfdp.c", + ] + include_dirs += [ + "${chip_root}/third_party/p6/p6_sdk/ota/config", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/mem_config/", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/include/", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/include/flash_map_backend/", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/sysflash/", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/bootutil/include", + ] + public_configs += [ ":p6_ota_config" ] + } +} + +p6_executable("clusters_minimal_app") { + include_dirs = [] + defines = [] + output_name = "chip-p6-clusters-minimal-example.out" + + sources = [ + "${chip_root}/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp", + "${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-modes-manager.cpp", + "${examples_plat_dir}/LEDWidget.cpp", + "${examples_plat_dir}/init_p6Platform.cpp", + "src/AppTask.cpp", + "src/ButtonHandler.cpp", + "src/ClusterManager.cpp", + "src/ZclCallbacks.cpp", + "src/main.cpp", + ] + + deps = [ + ":all_clusters_app_sdk_sources", + "${chip_root}/examples/all-clusters-minimal-app/all-clusters-common", + "${chip_root}/examples/common/QRCode", + "${chip_root}/src/lib", + "${chip_root}/src/setup_payload", + ] + + include_dirs += [ + "include", + "${examples_plat_dir}", + "${p6_project_dir}/include", + "${chip_root}/examples/all-clusters-app/all-clusters-common/include", + ] + + defines = [] + + if (enable_heap_monitoring) { + sources += [ "${examples_plat_dir}/MemMonitoring.cpp" ] + defines += [ "HEAP_MONITORING" ] + } + + if (chip_print_memory_usage) { + ldflags += [ + "-Wl,--print-memory-usage", + "-fstack-usage", + ] + } + + output_dir = root_out_dir +} + +group("p6") { + deps = [ ":clusters_minimal_app" ] +} + +group("default") { + deps = [ ":p6" ] +} diff --git a/examples/all-clusters-minimal-app/p6/README.md b/examples/all-clusters-minimal-app/p6/README.md new file mode 100644 index 00000000000000..c6b752d209a6ca --- /dev/null +++ b/examples/all-clusters-minimal-app/p6/README.md @@ -0,0 +1,143 @@ +#CHIP P6 All Clusters Example + +An example showing the use of Matter on the Infineon CY8CKIT-062S2-43012 board. + +
+ +- [Matter P6 All Clusters Example](#chip-p6-clusters-example) + - [Introduction](#introduction) + - [Building](#building) + - [Flashing the Application](#flashing-the-application) + - [Commissioning and cluster control](#commissioning-and-cluster-control) + - [Setting up chip-tool](#setting-up-chip-tool) + - [Commissioning over BLE](#commissioning-over-ble) + - [Notes](#notes) + - [OTA Software Update](#ota-software-update) + +
+ + + +## Introduction + +The P6 clusters example provides a baseline demonstration of a Cluster control +device, built using Matter and the Infineon Modustoolbox SDK. It can be +controlled by Matter controller over Wi-Fi network. + +The P6 device can be commissioned over Bluetooth Low Energy where the device and +the Matter controller will exchange security information with the Rendezvous +procedure. Wi-Fi Network credentials are then provided to the P6 device which +will then join the network. + + + +## Building + +- [Modustoolbox Software](https://www.cypress.com/products/modustoolbox) + + Refer to `integrations/docker/images/chip-build-infineon/Dockerfile` or + `scripts/examples/gn_p6_example.sh` for downloading the Software and related + tools. + +- Install some additional tools (likely already present for Matter + developers): + + ``` + sudo apt install gcc g++ clang ninja-build python \ + python3-venv libssl-dev libavahi-client-dev libglib2.0-dev git cmake \ + python3-pip + ``` + +- Supported hardware: + [CY8CKIT-062S2-43012](https://www.cypress.com/CY8CKIT-062S2-43012) + +* Build the example application: + + ``` + $ ./scripts/examples/gn_p6_example.sh ./examples/all-clusters-minimal-app/p6 out/minimal_clusters_app_p6 + ``` + +- To delete generated executable, libraries and object files use: + + ``` + $ cd ~/connectedhomeip + $ rm -rf out/ + ``` + + + +## Flashing the Application + +- Put CY8CKIT-062S2-43012 board on KitProg3 CMSIS-DAP Mode by pressing the + `MODE SELECT` button. `KITPROG3 STATUS` LED is ON confirms board is in + proper mode. + +- On the command line: + + ``` + $ cd ~/connectedhomeip + $ python3 out/clusters_app_p6/chip-p6-clusters-minimal-example.flash.py + ``` + + + +## Commissioning and cluster control + +Commissioning can be carried out using BLE. + + + +### Setting up Chip tool + +Once P6 is up and running, we need to set up chip-tool on Raspberry Pi 4 to +perform commissioning and cluster control. + +- Set up python controller. + + ``` + $ cd {path-to-connectedhomeip} + $ ./scripts/examples/gn_build_example.sh examples/chip-tool out/debug + ``` + +- Execute the controller. + + ``` + $ ./out/debug/chip-tool + ``` + + + +### Commissioning over BLE + +Run the built executable and pass it the discriminator and pairing code of the +remote device, as well as the network credentials to use. + + ``` + $ ./out/debug/chip-tool pairing ble-wifi 1234 ${SSID} ${PASSWORD} 20202021 3840 + + Parameters: + 1. Discriminator: 3840 + 2. Setup-pin-code: 20202021 + 3. Node ID: 1234 (you can assign any node id) + 4. SSID : Wi-Fi SSID + 5. PASSWORD : Wi-Fi Password + ``` + + + +#### Notes + +Raspberry Pi 4 BLE connection issues can be avoided by running the following +commands. These power cycle the BlueTooth hardware and disable BR/EDR mode. + + ``` + sudo btmgmt -i hci0 power off + sudo btmgmt -i hci0 bredr off + sudo btmgmt -i hci0 power on + ``` + +## OTA Software Update + +For the description of Software Update process with infineon P6 example +applications see +[Infineon P6 OTA Software Update](../../../docs/guides/infineon_p6_software_update.md) diff --git a/src/app/tests/suites/certification/Test_TC_BDX_1_3.yaml b/examples/all-clusters-minimal-app/p6/args.gni similarity index 57% rename from src/app/tests/suites/certification/Test_TC_BDX_1_3.yaml rename to examples/all-clusters-minimal-app/p6/args.gni index fd1467c55a61dc..2a93385cf36bd6 100644 --- a/src/app/tests/suites/certification/Test_TC_BDX_1_3.yaml +++ b/examples/all-clusters-minimal-app/p6/args.gni @@ -11,17 +11,10 @@ # 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: 28.1.3. [TC-BDX-1.3] Response to Sender Initiated BDX Transfer session +import("//build_overrides/chip.gni") +import("//build_overrides/pigweed.gni") +import("${chip_root}/src/platform/P6/args.gni") -config: - nodeId: 0x12344321 - cluster: "Basic" - endpoint: 0 - -tests: - - label: - "TH sends a SendInit message to DUT + DUT sends a SendAccept message - back to TH" - disabled: true +p6_target_project = + get_label_info(":all_clusters_app_sdk_sources", "label_no_toolchain") diff --git a/examples/all-clusters-minimal-app/p6/build_overrides b/examples/all-clusters-minimal-app/p6/build_overrides new file mode 120000 index 00000000000000..194ee0b812dc3d --- /dev/null +++ b/examples/all-clusters-minimal-app/p6/build_overrides @@ -0,0 +1 @@ +../../build_overrides/ \ No newline at end of file diff --git a/examples/all-clusters-minimal-app/p6/include/AppConfig.h b/examples/all-clusters-minimal-app/p6/include/AppConfig.h new file mode 100644 index 00000000000000..8e9ebe286ef421 --- /dev/null +++ b/examples/all-clusters-minimal-app/p6/include/AppConfig.h @@ -0,0 +1,62 @@ +/* + * + * Copyright (c) 2021 Project CHIP Authors + * Copyright (c) 2019 Google LLC. + * Copyright 2021, Cypress Semiconductor Corporation (an Infineon company) + * All rights reserved. + * + * 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. + */ + +#pragma once + +#include "cybsp.h" +#include "cyhal.h" + +// ---- Lighting Example App Config ---- + +#define APP_TASK_NAME "APP" + +#define APP_LIGHT_BUTTON_IDX 0 +#define APP_LIGHT_BUTTON CYBSP_USER_BTN1 +#define APP_BUTTON_DEBOUNCE_PERIOD_MS 50 + +#define APP_BUTTON_PRESSED 0 +#define APP_BUTTON_RELEASED 1 + +#define SYSTEM_STATE_LED CYBSP_USER_LED1 +#define LIGHT_LED CYBSP_USER_LED2 + +// Time it takes in ms for the simulated actuator to move from one +// state to another. +#define ACTUATOR_MOVEMENT_PERIOS_MS 2000 + +// ---- Thread Polling Config ---- +#define THREAD_ACTIVE_POLLING_INTERVAL_MS 100 +#define THREAD_INACTIVE_POLLING_INTERVAL_MS 1000 + +// P6 Logging +#ifdef __cplusplus +extern "C" { +#endif + +void appError(int err); +void P6Log(const char * aFormat, ...); +#define P6_LOG(...) P6Log(__VA_ARGS__) + +#ifdef __cplusplus +} + +#include +void appError(CHIP_ERROR error); +#endif diff --git a/examples/all-clusters-minimal-app/p6/include/AppEvent.h b/examples/all-clusters-minimal-app/p6/include/AppEvent.h new file mode 100644 index 00000000000000..671a1be6419724 --- /dev/null +++ b/examples/all-clusters-minimal-app/p6/include/AppEvent.h @@ -0,0 +1,52 @@ +/* + * + * Copyright (c) 2021 Project CHIP Authors + * Copyright (c) 2018 Nest Labs, Inc. + * Copyright 2021, Cypress Semiconductor Corporation (an Infineon company) + * All rights reserved. + * + * 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. + */ + +#pragma once + +struct AppEvent; +typedef void (*EventHandler)(AppEvent *); + +struct AppEvent +{ + enum AppEventTypes + { + kEventType_Button = 0, + kEventType_Timer, + kEventType_Light, + kEventType_Install, + }; + + uint16_t Type; + + union + { + struct + { + uint8_t ButtonIdx; + uint8_t Action; + } ButtonEvent; + struct + { + void * Context; + } TimerEvent; + }; + + EventHandler Handler; +}; diff --git a/examples/all-clusters-minimal-app/p6/include/AppTask.h b/examples/all-clusters-minimal-app/p6/include/AppTask.h new file mode 100644 index 00000000000000..5bb9a9163225bf --- /dev/null +++ b/examples/all-clusters-minimal-app/p6/include/AppTask.h @@ -0,0 +1,64 @@ +/* + * + * Copyright (c) 2021 Project CHIP Authors + * Copyright (c) 2019 Google LLC. + * Copyright 2021, Cypress Semiconductor Corporation (an Infineon company) + * All rights reserved. + * + * 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. + */ + +#pragma once + +#include +#include + +#include "AppEvent.h" +#include "FreeRTOS.h" +#include "timers.h" // provides FreeRTOS timer support +#include +#include + +// Application-defined error codes in the CHIP_ERROR space. +#define APP_ERROR_EVENT_QUEUE_FAILED CHIP_APPLICATION_ERROR(0x01) +#define APP_ERROR_CREATE_TASK_FAILED CHIP_APPLICATION_ERROR(0x02) +#define APP_ERROR_UNHANDLED_EVENT CHIP_APPLICATION_ERROR(0x03) +#define APP_ERROR_CREATE_TIMER_FAILED CHIP_APPLICATION_ERROR(0x04) +#define APP_ERROR_START_TIMER_FAILED CHIP_APPLICATION_ERROR(0x05) +#define APP_ERROR_STOP_TIMER_FAILED CHIP_APPLICATION_ERROR(0x06) + +class AppTask +{ + +public: + CHIP_ERROR StartAppTask(); + static void AppTaskMain(void * pvParameter); + static void LightActionEventHandler(AppEvent * aEvent); + void ButtonEventHandler(uint8_t btnIdx, uint8_t btnAction); + void PostEvent(const AppEvent * event); + void InitOTARequestor(); + +private: + friend AppTask & GetAppTask(void); + + CHIP_ERROR Init(); + + static AppTask sAppTask; + void DispatchEvent(AppEvent * event); + static void OnOffUpdateClusterState(intptr_t context); +}; + +inline AppTask & GetAppTask(void) +{ + return AppTask::sAppTask; +} diff --git a/examples/all-clusters-minimal-app/p6/include/ButtonHandler.h b/examples/all-clusters-minimal-app/p6/include/ButtonHandler.h new file mode 100644 index 00000000000000..85dcdb5e952ca3 --- /dev/null +++ b/examples/all-clusters-minimal-app/p6/include/ButtonHandler.h @@ -0,0 +1,40 @@ +/* + * + * Copyright (c) 2021 Project CHIP Authors + * Copyright (c) 2019 Google LLC. + * Copyright 2021, Cypress Semiconductor Corporation (an Infineon company) + * All rights reserved. + * + * 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. + */ + +#pragma once + +#include + +#include "FreeRTOS.h" +#include "cyhal.h" +#include "timers.h" // provides FreeRTOS timer support + +#define GPIO_INTERRUPT_PRIORITY (5) + +class ButtonHandler +{ +public: + static void Init(void); + +private: + static void GpioInit(void); + static void lightbuttonIsr(void * handler_arg, cyhal_gpio_event_t event); + static void TimerCallback(TimerHandle_t xTimer); +}; diff --git a/examples/all-clusters-minimal-app/p6/include/CHIPProjectConfig.h b/examples/all-clusters-minimal-app/p6/include/CHIPProjectConfig.h new file mode 100644 index 00000000000000..f582a28fce06b5 --- /dev/null +++ b/examples/all-clusters-minimal-app/p6/include/CHIPProjectConfig.h @@ -0,0 +1,97 @@ +/* + * + * Copyright (c) 2021 Project CHIP Authors + * Copyright (c) 2019 Google LLC. + * Copyright 2021, Cypress Semiconductor Corporation (an Infineon company) + * All rights reserved. + * + * 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. + */ + +/** + * @file + * Example project configuration file for CHIP. + * + * This is a place to put application or project-specific overrides + * to the default configuration values for general CHIP features. + * + */ + +#pragma once + +// Use a default pairing code if one hasn't been provisioned in flash. +#ifndef CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE +#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE 20202021 +#endif + +#ifndef CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR +#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR 0xF00 +#endif + +// For convenience, Chip Security Test Mode can be enabled and the +// requirement for authentication in various protocols can be disabled. +// +// WARNING: These options make it possible to circumvent basic Chip security functionality, +// including message encryption. Because of this they MUST NEVER BE ENABLED IN PRODUCTION BUILDS. +// +#define CHIP_CONFIG_SECURITY_TEST_MODE 0 + +/** + * CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION + * + * The hardware version number assigned to device or product by the device vendor. This + * number is scoped to the device product id, and typically corresponds to a version of the + * physical device, a change to its packaging, and/or a change to its marketing presentation. + * This value is generally *not* incremented for device software versions. + */ +#define CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION 1 + +/** + * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING + * + * A string identifying the software version running on the device. + * CHIP service currently expects the software version to be in the format + * {MAJOR_VERSION}.0d{MINOR_VERSION} + */ +#ifndef CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING +#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING "0.1ALPHA" +#endif +/** + * CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE + * + * Enable support for Chip-over-BLE (CHIPoBLE). + */ +#define CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE 1 + +/** + * CHIP_DEVICE_CONFIG_ENABLE_CHIP_TIME_SERVICE_TIME_SYNC + * + * Enables synchronizing the device's real time clock with a remote Chip Time service + * using the Chip Time Sync protocol. + */ +#define CHIP_DEVICE_CONFIG_ENABLE_CHIP_TIME_SERVICE_TIME_SYNC 0 + +/** + * CHIP_DEVICE_CONFIG_TEST_SERIAL_NUMBER + * + * Enables the use of a hard-coded default serial number if none + * is found in Chip NV storage. + */ +#define CHIP_DEVICE_CONFIG_TEST_SERIAL_NUMBER "TEST_SN" + +/** + * CHIP_DEVICE_CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE + * + * A size, in bytes, of the individual debug event logging buffer. + */ +#define CHIP_DEVICE_CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE (512) diff --git a/examples/all-clusters-minimal-app/p6/include/ClusterManager.h b/examples/all-clusters-minimal-app/p6/include/ClusterManager.h new file mode 100644 index 00000000000000..1f7e073ff8abde --- /dev/null +++ b/examples/all-clusters-minimal-app/p6/include/ClusterManager.h @@ -0,0 +1,55 @@ +/* + * + * Copyright (c) 2021 Project CHIP Authors + * Copyright 2021, Cypress Semiconductor Corporation (an Infineon company) + * All rights reserved. + * + * 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. + */ + +/** + * @file ClusterManager.h + * + * Implementations for the DeviceManager callbacks for this application + * + **/ + +#pragma once + +#include "LEDWidget.h" +#include +#include +#include + +extern LEDWidget sStatusLED; +extern LEDWidget sLightLED; +extern LEDWidget sClusterLED; + +class ClusterManager +{ +public: + void OnOnOffPostAttributeChangeCallback(chip::EndpointId endpointId, chip::AttributeId attributeId, uint8_t * value); + void OnLevelControlAttributeChangeCallback(chip::EndpointId endpointId, chip::AttributeId attributeId, uint8_t * value); + void OnColorControlAttributeChangeCallback(chip::EndpointId endpointId, chip::AttributeId attributeId, uint8_t * value); + void OnIdentifyPostAttributeChangeCallback(chip::EndpointId endpointId, chip::AttributeId attributeId, uint8_t * value); + +private: + friend ClusterManager & ClusterMgr(void); + bool mEndpointOnOffState[2]; + static ClusterManager sCluster; +}; + +inline ClusterManager & ClusterMgr(void) +{ + return ClusterManager::sCluster; +} diff --git a/examples/all-clusters-minimal-app/p6/ota_base_build.sh b/examples/all-clusters-minimal-app/p6/ota_base_build.sh new file mode 100755 index 00000000000000..c49fad50303fdf --- /dev/null +++ b/examples/all-clusters-minimal-app/p6/ota_base_build.sh @@ -0,0 +1,8 @@ +OUT_DIR=out/all-clusters-minimal-app/ +ANYCLOUD_DIR=third_party/p6/p6_sdk/libs/anycloud-ota/ + +scripts/examples/gn_p6_example.sh examples/all-clusters-minimal-app/p6 "$OUT_DIR" chip_enable_ota_requestor=true + +mv "$OUT_DIR"/chip-p6-clusters-minimal-example.hex "$OUT_DIR"/chip-p6-clusters-minimal-example.unsigned.hex + +./"$ANYCLOUD_DIR"/scripts/sign_script.bash "$OUT_DIR"/ chip-p6-clusters-minimal-example python3 arm-none-eabi-objcopy "-O ihex" "" "$ANYCLOUD_DIR"/source/mcuboot/scripts/ imgtool_v1.7.0/imgtool.py create 0xFF 0x400 3584 1.0.0 0x00018000 0x001C0000 arm-none-eabi-objcopy "" diff --git a/examples/all-clusters-minimal-app/p6/ota_update_build.sh b/examples/all-clusters-minimal-app/p6/ota_update_build.sh new file mode 100755 index 00000000000000..2aa7902556bd62 --- /dev/null +++ b/examples/all-clusters-minimal-app/p6/ota_update_build.sh @@ -0,0 +1,13 @@ +OUT_DIR=out/all-clusters-minimal-app-ota +ANYCLOUD_DIR=third_party/p6/p6_sdk/libs/anycloud-ota/ + +./scripts/examples/gn_p6_example.sh examples/all-clusters-minimal-app/p6 "$OUT_DIR" chip_enable_ota_requestor=true build_update_image=true + +mv "$OUT_DIR"/chip-p6-clusters-minimal-example.hex "$OUT_DIR"/chip-p6-clusters-minimal-example.unsigned.hex + +./"$ANYCLOUD_DIR"/scripts/sign_script.bash "$OUT_DIR"/ chip-p6-clusters-minimal-example python3 arm-none-eabi-objcopy "-O ihex" "" "$ANYCLOUD_DIR"/source/mcuboot/scripts/ imgtool_v1.7.0/imgtool.py sign 0xFF 0x400 3584 1.0.0 0x00018000 0x001C0000 arm-none-eabi-objcopy "-k $ANYCLOUD_DIR/source/mcuboot/keys/cypress-test-ec-p256.pem" + +if [ -f "$OUT_DIR"/chip-p6-clusters-minimal-example.ota ]; then + rm "$OUT_DIR"/chip-p6-clusters-minimal-example.ota +fi +src/app/ota_image_tool.py create -v 0xFFF1 -p 0x8000 -vn 2 -vs "2.0" -da sha256 "$OUT_DIR"/chip-p6-clusters-minimal-example.bin "$OUT_DIR"/chip-p6-clusters-minimal-example.ota diff --git a/examples/all-clusters-minimal-app/p6/src/AppTask.cpp b/examples/all-clusters-minimal-app/p6/src/AppTask.cpp new file mode 100644 index 00000000000000..c8717c30740357 --- /dev/null +++ b/examples/all-clusters-minimal-app/p6/src/AppTask.cpp @@ -0,0 +1,348 @@ +/* + * + * Copyright (c) 2021 Project CHIP Authors + * Copyright (c) 2019 Google LLC. + * Copyright 2021, Cypress Semiconductor Corporation (an Infineon company) + * All rights reserved. + * + * 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. + */ + +#include "AppTask.h" +#include "AppConfig.h" +#include "AppEvent.h" +#include "ButtonHandler.h" +#include "LEDWidget.h" +#include "qrcodegen.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +/* OTA related includes */ +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR +#include +#include +#include +#include +#include +extern "C" { +#include "cy_smif_psoc6.h" +} +using chip::BDXDownloader; +using chip::CharSpan; +using chip::DefaultOTARequestor; +using chip::FabricIndex; +using chip::GetRequestorInstance; +using chip::NodeId; +using chip::OTADownloader; +using chip::OTAImageProcessorImpl; +using chip::System::Layer; + +using namespace ::chip; +using namespace chip::TLV; +using namespace ::chip::Credentials; +using namespace ::chip::DeviceLayer; +using namespace ::chip::System; + +#endif +#define APP_EVENT_QUEUE_SIZE 10 +#define APP_TASK_STACK_SIZE (4096) +#define APP_WAIT_LOOP 1000 + +LEDWidget sStatusLED; +LEDWidget sLightLED; +LEDWidget sClusterLED; + +namespace { + +TaskHandle_t sAppTaskHandle; +QueueHandle_t sAppEventQueue; + +uint8_t sAppEventQueueBuffer[APP_EVENT_QUEUE_SIZE * sizeof(AppEvent)]; +StaticQueue_t sAppEventQueueStruct; + +StackType_t appStack[APP_TASK_STACK_SIZE / sizeof(StackType_t)]; +StaticTask_t appTaskStruct; + +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR +DefaultOTARequestor gRequestorCore; +DefaultOTARequestorStorage gRequestorStorage; +DefaultOTARequestorDriver gRequestorUser; +BDXDownloader gDownloader; +OTAImageProcessorImpl gImageProcessor; +#endif + +} // namespace + +using namespace ::chip; +using namespace chip::TLV; +using namespace ::chip::Credentials; +using namespace ::chip::DeviceLayer; +using namespace ::chip::System; + +AppTask AppTask::sAppTask; + +namespace { +app::Clusters::NetworkCommissioning::Instance + sWiFiNetworkCommissioningInstance(0 /* Endpoint Id */, &(NetworkCommissioning::P6WiFiDriver::GetInstance())); + +constexpr EndpointId kNetworkCommissioningEndpointSecondary = 0xFFFE; + +} // namespace + +void NetWorkCommissioningInstInit() +{ + sWiFiNetworkCommissioningInstance.Init(); +} + +static void InitServer(intptr_t context) +{ + // Init ZCL Data Model + static chip::CommonCaseDeviceServerInitParams initParams; + (void) initParams.InitializeStaticResourcesBeforeServerInit(); + chip::Server::GetInstance().Init(initParams); + + // We only have network commissioning on endpoint 0. + emberAfEndpointEnableDisable(kNetworkCommissioningEndpointSecondary, false); + + // Initialize device attestation config + SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider()); +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR + GetAppTask().InitOTARequestor(); +#endif +} + +CHIP_ERROR AppTask::StartAppTask() +{ + sAppEventQueue = xQueueCreateStatic(APP_EVENT_QUEUE_SIZE, sizeof(AppEvent), sAppEventQueueBuffer, &sAppEventQueueStruct); + if (sAppEventQueue == NULL) + { + P6_LOG("Failed to allocate app event queue"); + appError(APP_ERROR_EVENT_QUEUE_FAILED); + } + // Start App task. + sAppTaskHandle = xTaskCreateStatic(AppTaskMain, APP_TASK_NAME, ArraySize(appStack), NULL, 1, appStack, &appTaskStruct); + return (sAppTaskHandle == nullptr) ? APP_ERROR_CREATE_TASK_FAILED : CHIP_NO_ERROR; +} + +CHIP_ERROR AppTask::Init() +{ + CHIP_ERROR err = CHIP_NO_ERROR; +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR + int rc = boot_set_confirmed(); + if (rc != 0) + { + P6_LOG("boot_set_confirmed failed"); + appError(CHIP_ERROR_WELL_UNINITIALIZED); + } +#endif + // Register the callback to init the MDNS server when connectivity is available + PlatformMgr().AddEventHandler( + [](const ChipDeviceEvent * event, intptr_t arg) { + // Restart the server whenever an ip address is renewed + if (event->Type == DeviceEventType::kInternetConnectivityChange) + { + if (event->InternetConnectivityChange.IPv4 == kConnectivity_Established || + event->InternetConnectivityChange.IPv6 == kConnectivity_Established) + { + chip::app::DnssdServer::Instance().StartServer(); + } + } + }, + 0); + + chip::DeviceLayer::PlatformMgr().ScheduleWork(InitServer, reinterpret_cast(nullptr)); + + // Initialise WSTK buttons PB0 and PB1 (including debounce). + ButtonHandler::Init(); + + NetWorkCommissioningInstInit(); + P6_LOG("Current Software Version: %s", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING); + + // Initialize LEDs + sStatusLED.Init(SYSTEM_STATE_LED); + sLightLED.Init(LIGHT_LED); + sClusterLED.RGB_init(); + + ConfigurationMgr().LogDeviceConfig(); + + // Print setup info + PrintOnboardingCodes(chip::RendezvousInformationFlag(chip::RendezvousInformationFlag::kBLE)); + + return err; +} + +void AppTask::AppTaskMain(void * pvParameter) +{ + AppEvent event; + CHIP_ERROR err = sAppTask.Init(); + if (err != CHIP_NO_ERROR) + { + P6_LOG("AppTask.Init() failed"); + appError(err); + } + + P6_LOG("App Task started"); + + while (true) + { + BaseType_t eventReceived = xQueueReceive(sAppEventQueue, &event, pdMS_TO_TICKS(10)); + while (eventReceived == pdTRUE) + { + sAppTask.DispatchEvent(&event); + eventReceived = xQueueReceive(sAppEventQueue, &event, 0); + } + } +} + +void AppTask::LightActionEventHandler(AppEvent * aEvent) +{ + /* ON/OFF Light Led based on Button interrupt */ + sLightLED.Invert(); + + /* Update OnOff Cluster state */ + chip::DeviceLayer::PlatformMgr().ScheduleWork(OnOffUpdateClusterState, reinterpret_cast(nullptr)); +} + +void AppTask::ButtonEventHandler(uint8_t btnIdx, uint8_t btnAction) +{ + if (btnIdx != APP_LIGHT_BUTTON_IDX) + { + return; + } + + AppEvent button_event = {}; + button_event.Type = AppEvent::kEventType_Button; + button_event.ButtonEvent.ButtonIdx = btnIdx; + button_event.ButtonEvent.Action = btnAction; + + if ((btnIdx == APP_LIGHT_BUTTON_IDX) && (btnAction == APP_BUTTON_RELEASED)) + { + button_event.Handler = LightActionEventHandler; + sAppTask.PostEvent(&button_event); + } +} + +void AppTask::PostEvent(const AppEvent * aEvent) +{ + if (sAppEventQueue != NULL) + { + BaseType_t status; + if (xPortIsInsideInterrupt()) + { + BaseType_t higherPrioTaskWoken = pdFALSE; + status = xQueueSendFromISR(sAppEventQueue, aEvent, &higherPrioTaskWoken); + +#ifdef portYIELD_FROM_ISR + portYIELD_FROM_ISR(higherPrioTaskWoken); +#elif portEND_SWITCHING_ISR // portYIELD_FROM_ISR or portEND_SWITCHING_ISR + portEND_SWITCHING_ISR(higherPrioTaskWoken); +#else // portYIELD_FROM_ISR or portEND_SWITCHING_ISR +#error "Must have portYIELD_FROM_ISR or portEND_SWITCHING_ISR" +#endif // portYIELD_FROM_ISR or portEND_SWITCHING_ISR + } + else + { + status = xQueueSend(sAppEventQueue, aEvent, 1); + } + + if (!status) + P6_LOG("Failed to post event to app task event queue"); + } + else + { + P6_LOG("Event Queue is NULL should never happen"); + } +} + +void AppTask::DispatchEvent(AppEvent * aEvent) +{ + if (aEvent->Handler) + { + aEvent->Handler(aEvent); + } + else + { + P6_LOG("Event received with no handler. Dropping event."); + } +} + +void AppTask::OnOffUpdateClusterState(intptr_t context) +{ + uint8_t onoff = sLightLED.Get(); + + // write the new on/off value + EmberAfStatus status = + emberAfWriteServerAttribute(2, ZCL_ON_OFF_CLUSTER_ID, ZCL_ON_OFF_ATTRIBUTE_ID, &onoff, ZCL_BOOLEAN_ATTRIBUTE_TYPE); + + if (status != EMBER_ZCL_STATUS_SUCCESS) + { + P6_LOG("ERR: updating on/off %x", status); + } +} + +bool lowPowerClusterSleep() +{ + return true; +} + +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR +void AppTask::InitOTARequestor() +{ + CHIP_ERROR err = CHIP_NO_ERROR; + SetRequestorInstance(&gRequestorCore); + gRequestorStorage.Init(chip::Server::GetInstance().GetPersistentStorage()); + gRequestorCore.Init(chip::Server::GetInstance(), gRequestorStorage, gRequestorUser, gDownloader); + gImageProcessor.SetOTADownloader(&gDownloader); + gDownloader.SetImageProcessorDelegate(&gImageProcessor); + gRequestorUser.Init(&gRequestorCore, &gImageProcessor); + + uint32_t savedSoftwareVersion; + err = ConfigurationMgr().GetSoftwareVersion(savedSoftwareVersion); + if (err != CHIP_NO_ERROR) + { + P6_LOG("Can't get saved software version"); + appError(err); + } + + if (savedSoftwareVersion != CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION) + { + ConfigurationMgr().StoreSoftwareVersion(CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION); + + P6_LOG("Confirming update to version: %u", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION); + chip::OTARequestorInterface * requestor = chip::GetRequestorInstance(); + if (requestor != nullptr) + { + requestor->NotifyUpdateApplied(); + } + } + + P6_LOG("Current Software Version: %u", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION); + P6_LOG("Current Firmware Version String: %s", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING); +} +#endif diff --git a/examples/all-clusters-minimal-app/p6/src/ButtonHandler.cpp b/examples/all-clusters-minimal-app/p6/src/ButtonHandler.cpp new file mode 100644 index 00000000000000..6c768e4148e751 --- /dev/null +++ b/examples/all-clusters-minimal-app/p6/src/ButtonHandler.cpp @@ -0,0 +1,84 @@ +/* + * + * Copyright (c) 2021 Project CHIP Authors + * Copyright (c) 2019 Google LLC. + * Copyright 2021, Cypress Semiconductor Corporation (an Infineon company) + * All rights reserved. + * + * 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. + */ + +#include "ButtonHandler.h" +#include "AppConfig.h" +#include "AppTask.h" + +namespace { + +TimerHandle_t buttonTimer; // FreeRTOS timers used for debouncing buttons + +} // namespace + +void ButtonHandler::Init(void) +{ + GpioInit(); + + buttonTimer = xTimerCreate("BtnTmr", // Just a text name, not used by the RTOS kernel + APP_BUTTON_DEBOUNCE_PERIOD_MS, // timer period + false, // no timer reload (==one-shot) + (void *) (int) APP_LIGHT_BUTTON_IDX, // init timer id = button index + TimerCallback // timer callback handler (all buttons use + // the same timer cn function) + ); +} + +void ButtonHandler::GpioInit(void) +{ + cy_rslt_t result = CY_RSLT_SUCCESS; + // Set up button GPIOs to input with pullups. + result = cyhal_gpio_init(APP_LIGHT_BUTTON, CYHAL_GPIO_DIR_INPUT, CYHAL_GPIO_DRIVE_PULLUP, CYBSP_BTN_OFF); + if (result != CY_RSLT_SUCCESS) + { + printf(" cyhal_gpio_init failed for APP_LIGHT_BUTTON\r\n"); + } + + /* Configure GPIO interrupt. */ + cyhal_gpio_register_callback(APP_LIGHT_BUTTON, lightbuttonIsr, NULL); + cyhal_gpio_enable_event(APP_LIGHT_BUTTON, CYHAL_GPIO_IRQ_FALL, GPIO_INTERRUPT_PRIORITY, true); +} + +void ButtonHandler::lightbuttonIsr(void * handler_arg, cyhal_gpio_event_t event) +{ + portBASE_TYPE taskWoken = pdFALSE; + xTimerStartFromISR(buttonTimer, &taskWoken); +} + +void ButtonHandler::TimerCallback(TimerHandle_t xTimer) +{ + // Get the button index of the expired timer and call button event helper. + uint32_t timerId; + uint8_t buttonevent = 0; + timerId = (uint32_t) pvTimerGetTimerID(xTimer); + + switch (timerId) + { + case APP_LIGHT_BUTTON_IDX: + buttonevent = cyhal_gpio_read(APP_LIGHT_BUTTON); + break; + + default: + P6_LOG("Unhandled TimerID: %d", timerId); + break; + } + + GetAppTask().ButtonEventHandler(timerId, (buttonevent) ? APP_BUTTON_PRESSED : APP_BUTTON_RELEASED); +} diff --git a/examples/all-clusters-minimal-app/p6/src/ClusterManager.cpp b/examples/all-clusters-minimal-app/p6/src/ClusterManager.cpp new file mode 100644 index 00000000000000..4d550f8c4fdaf8 --- /dev/null +++ b/examples/all-clusters-minimal-app/p6/src/ClusterManager.cpp @@ -0,0 +1,156 @@ +/* + * + * Copyright (c) 2021 Project CHIP Authors + * Copyright 2021, Cypress Semiconductor Corporation (an Infineon company) + * + * 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. + */ + +/** + * @file + * This file implements the handler for data model messages. + */ + +#include "ClusterManager.h" +#include "AppConfig.h" +#include "LEDWidget.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace ::chip; +using namespace ::chip::Inet; +using namespace ::chip::System; +using namespace ::chip::DeviceLayer; +using namespace ::chip::app::Clusters; + +#define ENDPOINT_FIRST_IDX 1 +#define ENDPOINT_SECOND_IDX 2 + +uint32_t identifyTimerCount; +constexpr uint32_t kIdentifyTimerDelayMS = 250; +ClusterManager ClusterManager::sCluster; + +void ClusterManager::OnOnOffPostAttributeChangeCallback(EndpointId endpointId, AttributeId attributeId, uint8_t * value) +{ + VerifyOrExit(attributeId == ZCL_ON_OFF_ATTRIBUTE_ID, + P6_LOG("Unhandled Attribute ID: '" ChipLogFormatMEI "'", ChipLogValueMEI(attributeId))); + VerifyOrExit(endpointId == ENDPOINT_FIRST_IDX || endpointId == ENDPOINT_SECOND_IDX, + P6_LOG("Unexpected EndPoint ID: `0x%02x'", endpointId)); + + // At this point we can assume that value points to a bool value. + mEndpointOnOffState[endpointId - 1] = *value; + + // On/Off Cluster LED for endpoint 1 and Light Led for endpoint 2 + endpointId == ENDPOINT_FIRST_IDX ? sClusterLED.RGB_set(*value) : sLightLED.Set(*value); + +exit: + return; +} + +void ClusterManager::OnLevelControlAttributeChangeCallback(EndpointId endpointId, AttributeId attributeId, uint8_t * value) +{ + bool onOffState = mEndpointOnOffState[endpointId - 1]; + uint8_t brightness = onOffState ? *value : 0; + + VerifyOrExit(attributeId == ZCL_CURRENT_LEVEL_ATTRIBUTE_ID, + P6_LOG("Unhandled Attribute ID: '" ChipLogFormatMEI "'", ChipLogValueMEI(attributeId))); + VerifyOrExit(endpointId == ENDPOINT_FIRST_IDX || endpointId == ENDPOINT_SECOND_IDX, + P6_LOG("Unexpected EndPoint ID: `0x%02x'", endpointId)); + + endpointId == ENDPOINT_FIRST_IDX ? sClusterLED.SetBrightness(brightness) : sLightLED.SetBrightness(brightness); + +exit: + return; +} + +void ClusterManager::OnColorControlAttributeChangeCallback(EndpointId endpointId, AttributeId attributeId, uint8_t * value) +{ + VerifyOrExit(attributeId == ColorControl::Attributes::CurrentHue::Id || + attributeId == ColorControl::Attributes::CurrentSaturation::Id, + P6_LOG("Unhandled Attribute ID: '" ChipLogFormatMEI "'", ChipLogValueMEI(attributeId))); + VerifyOrExit(endpointId == ENDPOINT_FIRST_IDX || endpointId == ENDPOINT_SECOND_IDX, + P6_LOG("Unexpected EndPoint ID: `0x%02x'", endpointId)); + if (endpointId == 1) + { + uint8_t hue, saturation; + /* If the Current Attribute is ZCL_COLOR_CONTROL_CURRENT_HUE_ATTRIBUTE_ID, read the saturation value and + * set the color on Cluster LED using both Saturation and Hue. + */ + if (attributeId == ColorControl::Attributes::CurrentHue::Id) + { + hue = *value; + /* Read Current Saturation value when Attribute change callback for HUE Attribute */ + ColorControl::Attributes::CurrentSaturation::Get(endpointId, &saturation); + } + else + { + /* If the Current Attribute is ZCL_COLOR_CONTROL_CURRENT_SATURATION_ATTRIBUTE_ID, read the Hue value and + * set the color on Cluster LED using both Saturation and Hue. + */ + saturation = *value; + /* Read Current Hue value when Attribute change callback for SATURATION Attribute */ + ColorControl::Attributes::CurrentHue::Get(endpointId, &hue); + } + /* Set RGB Color on Cluster Indication LED */ + sClusterLED.SetColor(hue, saturation); + } +exit: + return; +} + +/* Identify Cluster puts device into identification mode like flashing a device + * This function blinks LED by running timer every 500ms as expected by + * IdentifyTimer Attribute + */ + +void IdentifyTimerHandler(Layer * systemLayer, void * appState) +{ + /* Status LED On/Off based on Blink Configuration */ + sStatusLED.Animate(); + + if (identifyTimerCount) + { + systemLayer->StartTimer(Clock::Milliseconds32(kIdentifyTimerDelayMS), IdentifyTimerHandler, appState); + // Decrement the timer count. + identifyTimerCount--; + } +} + +void ClusterManager::OnIdentifyPostAttributeChangeCallback(EndpointId endpointId, AttributeId attributeId, uint8_t * value) +{ + VerifyOrExit(attributeId == Identify::Attributes::IdentifyTime::Id, + P6_LOG("Unhandled Attribute ID: '" ChipLogFormatMEI "'", ChipLogValueMEI(attributeId))); + VerifyOrExit(endpointId == ENDPOINT_FIRST_IDX, P6_LOG("Unexpected EndPoint ID: `0x%02x'", endpointId)); + + /* IdentifyTime Attribute Spec mentions "flashing a light with a period of 0.5 seconds" */ + sStatusLED.Blink(kIdentifyTimerDelayMS * 2); + + // timerCount represents the number of callback executions before we stop the timer. + // value is expressed in seconds and the timer is fired every 250ms, so just multiply value by 4. + // Also, we want timerCount to be odd number, so the light state ends in the same state it starts. + identifyTimerCount = (*value) * 4; + + DeviceLayer::SystemLayer().CancelTimer(IdentifyTimerHandler, this); + DeviceLayer::SystemLayer().StartTimer(Clock::Milliseconds32(kIdentifyTimerDelayMS), IdentifyTimerHandler, this); + +exit: + return; +} diff --git a/examples/all-clusters-minimal-app/p6/src/ZclCallbacks.cpp b/examples/all-clusters-minimal-app/p6/src/ZclCallbacks.cpp new file mode 100644 index 00000000000000..32ba951b52cfc6 --- /dev/null +++ b/examples/all-clusters-minimal-app/p6/src/ZclCallbacks.cpp @@ -0,0 +1,88 @@ +/* + * + * Copyright (c) 2021 Project CHIP Authors + * Copyright 2021, Cypress Semiconductor Corporation (an Infineon company) + * + * 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. + */ + +/** + * @file + * This file implements the handler for data model messages. + */ + +#include "AppConfig.h" +#include + +#include "ClusterManager.h" + +#include +#include +#include +#include +#include + +using namespace ::chip; +using namespace ::chip::app::Clusters; + +void MatterPostAttributeChangeCallback(const chip::app::ConcreteAttributePath & attributePath, uint8_t type, uint16_t size, + uint8_t * value) +{ + EndpointId endpoint = attributePath.mEndpointId; + ClusterId clusterId = attributePath.mClusterId; + AttributeId attributeId = attributePath.mAttributeId; + P6_LOG("MatterPostAttributeChangeCallback - Cluster ID: " ChipLogFormatMEI + ", EndPoint ID: '0x%02x', Attribute ID: " ChipLogFormatMEI, + ChipLogValueMEI(clusterId), endpoint, ChipLogValueMEI(attributeId)); + + switch (clusterId) + { + case OnOff::Id: + ClusterMgr().OnOnOffPostAttributeChangeCallback(endpoint, attributeId, value); + break; + + case Identify::Id: + ClusterMgr().OnIdentifyPostAttributeChangeCallback(endpoint, attributeId, value); + break; + + case LevelControl::Id: + ClusterMgr().OnLevelControlAttributeChangeCallback(endpoint, attributeId, value); + break; + + case ColorControl::Id: + ClusterMgr().OnColorControlAttributeChangeCallback(endpoint, attributeId, value); + break; + default: + P6_LOG("Unhandled cluster ID: " ChipLogFormatMEI, ChipLogValueMEI(clusterId)); + break; + } +} +/** @brief OnOff Cluster Init + * + * This function is called when a specific cluster is initialized. It gives the + * application an opportunity to take care of cluster initialization procedures. + * It is called exactly once for each endpoint where cluster is present. + * + * @param endpoint Ver.: always + * + * TODO Issue #3841 + * emberAfOnOffClusterInitCallback happens before the stack initialize the cluster + * attributes to the default value. + * The logic here expects something similar to the deprecated Plugins callback + * emberAfPluginOnOffClusterServerPostInitCallback. + * + */ +void emberAfOnOffClusterInitCallback(EndpointId endpoint) +{ + // TODO: implement any additional Cluster Server init actions +} diff --git a/examples/all-clusters-minimal-app/p6/src/main.cpp b/examples/all-clusters-minimal-app/p6/src/main.cpp new file mode 100644 index 00000000000000..d365f9ff8220d4 --- /dev/null +++ b/examples/all-clusters-minimal-app/p6/src/main.cpp @@ -0,0 +1,158 @@ +/* + * + * Copyright (c) 2021 Project CHIP Authors + * Copyright (c) 2019 Google LLC. + * Copyright 2021, Cypress Semiconductor Corporation (an Infineon company) + * All rights reserved. + * + * 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. + */ + +#include +#include + +#include +#include +#include + +#include + +#include +#include +#include +#include + +#include + +#include "AppConfig.h" +#include "cyhal_wdt.h" +#include "init_p6Platform.h" +#include + +#ifdef HEAP_MONITORING +#include "MemMonitoring.h" +#endif +#define MAIN_TASK_STACK_SIZE (4096) +#define MAIN_TASK_PRIORITY 2 + +using namespace ::chip; +using namespace ::chip::Inet; +using namespace ::chip::DeviceLayer; + +volatile int apperror_cnt; +static void main_task(void * pvParameters); + +// ================================================================================ +// App Error +//================================================================================= +void appError(int err) +{ + P6_LOG("!!!!!!!!!!!! App Critical Error: %d !!!!!!!!!!!", err); + portDISABLE_INTERRUPTS(); + while (1) + ; +} + +void appError(CHIP_ERROR error) +{ + appError(static_cast(error.AsInteger())); +} + +// ================================================================================ +// FreeRTOS Callbacks +// ================================================================================ +extern "C" void vApplicationIdleHook(void) +{ + // FreeRTOS Idle callback +} + +extern "C" void vApplicationDaemonTaskStartupHook() +{ + // Init Chip memory management before the stack + chip::Platform::MemoryInit(); + + /* Create the Main task. */ + xTaskCreate(main_task, "Main task", MAIN_TASK_STACK_SIZE, NULL, MAIN_TASK_PRIORITY, NULL); +} + +static void main_task(void * pvParameters) +{ + CHIP_ERROR ret = chip::DeviceLayer::PersistedStorage::KeyValueStoreMgrImpl().Init(); + if (ret != CHIP_NO_ERROR) + { + P6_LOG("PersistedStorage::KeyValueStoreMgrImpl().Init() failed"); + appError(ret); + } + + ret = PlatformMgr().InitChipStack(); + if (ret != CHIP_NO_ERROR) + { + P6_LOG("PlatformMgr().InitChipStack() failed"); + appError(ret); + } + + ret = chip::DeviceLayer::ConnectivityMgr().SetBLEDeviceName("P6_CLUSTERS"); + if (ret != CHIP_NO_ERROR) + { + P6_LOG("ConnectivityMgr().SetBLEDeviceName() failed"); + appError(ret); + } + + P6_LOG("Starting Platform Manager Event Loop"); + ret = PlatformMgr().StartEventLoopTask(); + if (ret != CHIP_NO_ERROR) + { + P6_LOG("PlatformMgr().StartEventLoopTask() failed"); + appError(ret); + } + ret = GetAppTask().StartAppTask(); + if (ret != CHIP_NO_ERROR) + { + P6_LOG("GetAppTask().Init() failed"); + appError(ret); + } + + /* Delete task */ + vTaskDelete(NULL); +} + +// ================================================================================ +// Main Code +// ================================================================================ +int main(void) +{ + init_p6Platform(); +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR + // Clear watchdog timer (started by bootloader) so that it doesn't trigger a reset + cyhal_wdt_t wdt_obj; + cyhal_wdt_init(&wdt_obj, cyhal_wdt_get_max_timeout_ms()); + cyhal_wdt_free(&wdt_obj); +#endif +#ifdef HEAP_MONITORING + MemMonitoring::startHeapMonitoring(); +#endif + + P6_LOG("==================================================\r\n"); + P6_LOG("chip-p6-all-clusters-example starting\r\n"); + P6_LOG("==================================================\r\n"); + + /* Start the FreeRTOS scheduler */ + vTaskStartScheduler(); + + chip::Platform::MemoryShutdown(); + PlatformMgr().StopEventLoopTask(); + PlatformMgr().Shutdown(); + + // Should never get here. + P6_LOG("vTaskStartScheduler() failed"); +} diff --git a/examples/all-clusters-minimal-app/p6/third_party/connectedhomeip b/examples/all-clusters-minimal-app/p6/third_party/connectedhomeip new file mode 120000 index 00000000000000..11a54ed360106c --- /dev/null +++ b/examples/all-clusters-minimal-app/p6/third_party/connectedhomeip @@ -0,0 +1 @@ +../../../../ \ No newline at end of file diff --git a/examples/bridge-app/bridge-common/bridge-app.matter b/examples/bridge-app/bridge-common/bridge-app.matter index 1f7ce69cb038dd..64b03dc44a04ff 100644 --- a/examples/bridge-app/bridge-common/bridge-app.matter +++ b/examples/bridge-app/bridge-common/bridge-app.matter @@ -1,11 +1,6 @@ // This IDL was generated automatically by ZAP. // It is for view/code review purposes only. -struct LabelStruct { - char_string<16> label = 0; - char_string<16> value = 1; -} - client cluster AccessControl = 31 { enum AuthMode : ENUM8 { kPase = 1; @@ -67,6 +62,8 @@ client cluster AccessControl = 31 { readonly attribute int16u subjectsPerAccessControlEntry = 2; readonly attribute int16u targetsPerAccessControlEntry = 3; readonly attribute int16u accessControlEntriesPerFabric = 4; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -133,6 +130,8 @@ server cluster AccessControl = 31 { readonly attribute int16u subjectsPerAccessControlEntry = 2; readonly attribute int16u targetsPerAccessControlEntry = 3; readonly attribute int16u accessControlEntriesPerFabric = 4; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -154,6 +153,9 @@ server cluster AdministratorCommissioning = 60 { readonly attribute int8u windowStatus = 0; readonly attribute fabric_idx adminFabricIndex = 1; readonly attribute int16u adminVendorId = 2; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -214,6 +216,108 @@ server cluster Basic = 40 { readonly attribute boolean reachable = 17; readonly attribute char_string<32> uniqueID = 18; readonly attribute CapabilityMinimaStruct capabilityMinima = 19; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +client cluster Binding = 30 { + struct TargetStruct { + optional node_id node = 1; + optional group_id group = 2; + optional endpoint_no endpoint = 3; + optional cluster_id cluster = 4; + fabric_idx fabricIndex = 254; + } + + attribute TargetStruct binding[] = 0; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster BridgedActions = 37 { + enum ActionErrorEnum : ENUM8 { + kUnknown = 0; + kInterrupted = 1; + } + + enum ActionStateEnum : ENUM8 { + kInactive = 0; + kActive = 1; + kPaused = 2; + kDisabled = 3; + } + + enum ActionTypeEnum : ENUM8 { + kOther = 0; + kScene = 1; + kSequence = 2; + kAutomation = 3; + kException = 4; + kNotification = 5; + kAlarm = 6; + } + + enum EndpointListTypeEnum : ENUM8 { + kOther = 0; + kRoom = 1; + kZone = 2; + } + + bitmap CommandBits : BITMAP16 { + kInstantAction = 0x1; + kInstantActionWithTransition = 0x2; + kStartAction = 0x4; + kStartActionWithDuration = 0x8; + kStopAction = 0x10; + kPauseAction = 0x20; + kPauseActionWithDuration = 0x40; + kResumeAction = 0x80; + kEnableAction = 0x100; + kEnableActionWithDuration = 0x200; + kDisableAction = 0x400; + kDisableActionWithDuration = 0x800; + } + + struct ActionStruct { + int16u actionID = 0; + char_string<32> name = 1; + ActionTypeEnum type = 2; + int16u endpointListID = 3; + int16u supportedCommands = 4; + ActionStateEnum status = 5; + } + + struct EndpointListStruct { + int16u endpointListID = 0; + char_string<32> name = 1; + EndpointListTypeEnum type = 2; + endpoint_no endpoints[] = 3; + } + + info event StateChanged = 0 { + INT16U actionID = 0; + INT32U invokeID = 1; + ActionStateEnum newState = 2; + } + + info event ActionFailed = 1 { + INT16U actionID = 0; + INT32U invokeID = 1; + ActionStateEnum newState = 2; + ActionErrorEnum error = 3; + } + + readonly attribute ActionStruct actionList[] = 0; + readonly attribute EndpointListStruct endpointList[] = 1; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; } @@ -228,6 +332,9 @@ server cluster Descriptor = 29 { readonly attribute CLUSTER_ID serverList[] = 1; readonly attribute CLUSTER_ID clientList[] = 2; readonly attribute ENDPOINT_NO partsList[] = 3; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; } @@ -291,12 +398,6 @@ server cluster EthernetNetworkDiagnostics = 55 { readonly attribute int16u clusterRevision = 65533; } -server cluster FixedLabel = 64 { - readonly attribute LabelStruct labelList[] = 0; - readonly attribute bitmap32 featureMap = 65532; - readonly attribute int16u clusterRevision = 65533; -} - server cluster GeneralCommissioning = 48 { enum CommissioningError : ENUM8 { kOk = 0; @@ -321,6 +422,9 @@ server cluster GeneralCommissioning = 48 { readonly attribute RegulatoryLocationType regulatoryConfig = 2; readonly attribute RegulatoryLocationType locationCapability = 3; readonly attribute boolean supportsConcurrentConnection = 4; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -443,8 +547,133 @@ server cluster GeneralDiagnostics = 51 { readonly attribute ENUM8 activeHardwareFaults[] = 5; readonly attribute ENUM8 activeRadioFaults[] = 6; readonly attribute ENUM8 activeNetworkFaults[] = 7; + readonly attribute boolean testEventTriggersEnabled = 8; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct TestEventTriggerRequest { + OCTET_STRING enableKey = 0; + INT64U eventTrigger = 1; + } + + command TestEventTrigger(TestEventTriggerRequest): DefaultSuccess = 0; +} + +server cluster GroupKeyManagement = 63 { + enum GroupKeySecurityPolicy : ENUM8 { + kTrustFirst = 0; + kCacheAndSync = 1; + } + + struct GroupKeyMapStruct { + group_id groupId = 1; + int16u groupKeySetID = 2; + fabric_idx fabricIndex = 254; + } + + struct GroupInfoMapStruct { + group_id groupId = 1; + endpoint_no endpoints[] = 2; + optional char_string<16> groupName = 3; + fabric_idx fabricIndex = 254; + } + + struct GroupKeySetStruct { + int16u groupKeySetID = 0; + GroupKeySecurityPolicy groupKeySecurityPolicy = 1; + nullable octet_string<16> epochKey0 = 2; + nullable epoch_us epochStartTime0 = 3; + nullable octet_string<16> epochKey1 = 4; + nullable epoch_us epochStartTime1 = 5; + nullable octet_string<16> epochKey2 = 6; + nullable epoch_us epochStartTime2 = 7; + } + + attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; + readonly attribute GroupInfoMapStruct groupTable[] = 1; + readonly attribute int16u maxGroupsPerFabric = 2; + readonly attribute int16u maxGroupKeysPerFabric = 3; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct KeySetWriteRequest { + GroupKeySetStruct groupKeySet = 0; + } + + request struct KeySetReadRequest { + INT16U groupKeySetID = 0; + } + + request struct KeySetRemoveRequest { + INT16U groupKeySetID = 0; + } + + request struct KeySetReadAllIndicesRequest { + INT16U groupKeySetIDs[] = 0; + } + + response struct KeySetReadResponse = 2 { + GroupKeySetStruct groupKeySet = 0; + } + + response struct KeySetReadAllIndicesResponse = 5 { + INT16U groupKeySetIDs[] = 0; + } + + command access(invoke: administer) KeySetWrite(KeySetWriteRequest): DefaultSuccess = 0; + command access(invoke: administer) KeySetRead(KeySetReadRequest): KeySetReadResponse = 1; + command access(invoke: administer) KeySetRemove(KeySetRemoveRequest): DefaultSuccess = 3; + command access(invoke: administer) KeySetReadAllIndices(KeySetReadAllIndicesRequest): KeySetReadAllIndicesResponse = 4; +} + +server cluster Identify = 3 { + enum IdentifyEffectIdentifier : ENUM8 { + kBlink = 0; + kBreathe = 1; + kOkay = 2; + kChannelChange = 11; + kFinishEffect = 254; + kStopEffect = 255; + } + + enum IdentifyEffectVariant : ENUM8 { + kDefault = 0; + } + + enum IdentifyIdentifyType : ENUM8 { + kNone = 0; + kVisibleLight = 1; + kVisibleLED = 2; + kAudibleBeep = 3; + kDisplay = 4; + kActuator = 5; + } + + attribute int16u identifyTime = 0; + readonly attribute enum8 identifyType = 1; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + + request struct IdentifyRequest { + INT16U identifyTime = 0; + } + + request struct TriggerEffectRequest { + IdentifyEffectIdentifier effectIdentifier = 0; + IdentifyEffectVariant effectVariant = 1; + } + + command access(invoke: manage) Identify(IdentifyRequest): DefaultSuccess = 0; + command access(invoke: manage) TriggerEffect(TriggerEffectRequest): DefaultSuccess = 64; } server cluster LevelControl = 8 { @@ -537,6 +766,9 @@ server cluster LevelControl = 8 { server cluster LocalizationConfiguration = 43 { attribute char_string<35> activeLocale = 0; readonly attribute CHAR_STRING supportedLocales[] = 1; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; } @@ -613,6 +845,9 @@ server cluster NetworkCommissioning = 49 { readonly attribute access(read: administer) nullable NetworkCommissioningStatus lastNetworkingStatus = 5; readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6; readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -726,6 +961,7 @@ server cluster OperationalCredentials = 62 { kInvalidNOC = 3; kMissingCsr = 4; kTableFull = 5; + kInvalidAdminSubject = 6; kInsufficientPrivilege = 8; kFabricConflict = 9; kLabelConflict = 10; @@ -753,6 +989,9 @@ server cluster OperationalCredentials = 62 { readonly attribute int8u commissionedFabrics = 3; readonly attribute OCTET_STRING trustedRootCertificates[] = 4; readonly attribute fabric_idx currentFabricIndex = 5; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -766,13 +1005,14 @@ server cluster OperationalCredentials = 62 { request struct CSRRequestRequest { OCTET_STRING CSRNonce = 0; + optional boolean isForUpdateNOC = 1; } request struct AddNOCRequest { OCTET_STRING NOCValue = 0; optional OCTET_STRING ICACValue = 1; OCTET_STRING IPKValue = 2; - NODE_ID caseAdminNode = 3; + Int64u caseAdminSubject = 3; VENDOR_ID adminVendorId = 4; } @@ -793,10 +1033,6 @@ server cluster OperationalCredentials = 62 { OCTET_STRING rootCertificate = 0; } - request struct RemoveTrustedRootCertificateRequest { - OCTET_STRING trustedRootIdentifier = 0; - } - response struct AttestationResponse = 1 { OCTET_STRING attestationElements = 0; OCTET_STRING signature = 1; @@ -825,16 +1061,19 @@ server cluster OperationalCredentials = 62 { command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } server cluster SoftwareDiagnostics = 52 { + bitmap SoftwareDiagnosticsFeature : BITMAP32 { + kWaterMarks = 0x1; + } + struct ThreadMetrics { int64u id = 0; - char_string<8> name = 1; - int32u stackFreeCurrent = 2; - int32u stackFreeMinimum = 3; - int32u stackSize = 4; + optional char_string<8> name = 1; + optional int32u stackFreeCurrent = 2; + optional int32u stackFreeMinimum = 3; + optional int32u stackSize = 4; } info event SoftwareFault = 0 { @@ -972,7 +1211,7 @@ server cluster ThreadNetworkDiagnostics = 53 { } readonly attribute nullable int16u channel = 0; - readonly attribute nullable enum8 routingRole = 1; + readonly attribute nullable RoutingRole routingRole = 1; readonly attribute nullable char_string<16> networkName = 2; readonly attribute nullable int16u panId = 3; readonly attribute nullable int64u extendedPanId = 4; @@ -980,11 +1219,11 @@ server cluster ThreadNetworkDiagnostics = 53 { readonly attribute int64u overrunCount = 6; readonly attribute NeighborTable neighborTableList[] = 7; readonly attribute RouteTable routeTableList[] = 8; - readonly attribute int32u partitionId = 9; - readonly attribute int8u weighting = 10; - readonly attribute int8u dataVersion = 11; - readonly attribute int8u stableDataVersion = 12; - readonly attribute int8u leaderRouterId = 13; + readonly attribute nullable int32u partitionId = 9; + readonly attribute nullable int8u weighting = 10; + readonly attribute nullable int8u dataVersion = 11; + readonly attribute nullable int8u stableDataVersion = 12; + readonly attribute nullable int8u leaderRouterId = 13; readonly attribute int16u detachedRoleCount = 14; readonly attribute int16u childRoleCount = 15; readonly attribute int16u routerRoleCount = 16; @@ -1027,12 +1266,12 @@ server cluster ThreadNetworkDiagnostics = 53 { readonly attribute int32u rxErrSecCount = 53; readonly attribute int32u rxErrFcsCount = 54; readonly attribute int32u rxErrOtherCount = 55; - readonly attribute int64u activeTimestamp = 56; - readonly attribute int64u pendingTimestamp = 57; - readonly attribute int32u delay = 58; - readonly attribute SecurityPolicy securityPolicy[] = 59; - readonly attribute octet_string<4> channelMask = 60; - readonly attribute OperationalDatasetComponents operationalDatasetComponents[] = 61; + readonly attribute nullable int64u activeTimestamp = 56; + readonly attribute nullable int64u pendingTimestamp = 57; + readonly attribute nullable int32u delay = 58; + readonly attribute nullable SecurityPolicy securityPolicy = 59; + readonly attribute nullable octet_string<4> channelMask = 60; + readonly attribute nullable OperationalDatasetComponents operationalDatasetComponents = 61; readonly attribute NetworkFault activeNetworkFaultsList[] = 62; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -1062,6 +1301,9 @@ server cluster TimeFormatLocalization = 44 { attribute HourFormat hourFormat = 0; attribute CalendarType activeCalendarType = 1; readonly attribute CalendarType supportedCalendarTypes[] = 2; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; } @@ -1078,11 +1320,19 @@ server cluster UnitLocalization = 45 { } attribute TempUnit temperatureUnit = 0; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; } server cluster UserLabel = 65 { + struct LabelStruct { + char_string<16> label = 0; + char_string<16> value = 1; + } + attribute access(write: manage) LabelStruct labelList[] = 0; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -1149,8 +1399,8 @@ server cluster WiFiNetworkDiagnostics = 54 { readonly attribute int16u clusterRevision = 65533; } - endpoint 0 { + device type bridge = 22; binding cluster AccessControl; server cluster Descriptor { @@ -1158,6 +1408,9 @@ endpoint 0 { callback attribute serverList; callback attribute clientList; callback attribute partsList; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; ram attribute featureMap; callback attribute clusterRevision default = 1; } @@ -1168,6 +1421,8 @@ endpoint 0 { callback attribute subjectsPerAccessControlEntry default = 4; callback attribute targetsPerAccessControlEntry default = 3; callback attribute accessControlEntriesPerFabric default = 3; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; callback attribute attributeList; ram attribute featureMap; ram attribute clusterRevision default = 1; @@ -1194,6 +1449,9 @@ endpoint 0 { ram attribute reachable default = 1; callback attribute uniqueID; callback attribute capabilityMinima; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; ram attribute featureMap; ram attribute clusterRevision default = 1; } @@ -1201,6 +1459,9 @@ endpoint 0 { server cluster LocalizationConfiguration { persist attribute activeLocale default = "en-US"; callback attribute supportedLocales; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; ram attribute featureMap; ram attribute clusterRevision default = 1; } @@ -1209,12 +1470,18 @@ endpoint 0 { persist attribute hourFormat; persist attribute activeCalendarType; callback attribute supportedCalendarTypes; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; ram attribute featureMap; ram attribute clusterRevision default = 1; } server cluster UnitLocalization { persist attribute temperatureUnit; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; ram attribute featureMap default = 0x1; ram attribute clusterRevision default = 1; } @@ -1225,6 +1492,9 @@ endpoint 0 { callback attribute regulatoryConfig; callback attribute locationCapability; callback attribute supportsConcurrentConnection default = 1; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; ram attribute featureMap default = 6; ram attribute clusterRevision default = 1; } @@ -1238,6 +1508,9 @@ endpoint 0 { ram attribute lastNetworkingStatus; ram attribute lastNetworkID; ram attribute lastConnectErrorValue; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; ram attribute featureMap default = 2; ram attribute clusterRevision default = 1; } @@ -1256,6 +1529,10 @@ endpoint 0 { callback attribute activeHardwareFaults; callback attribute activeRadioFaults; callback attribute activeNetworkFaults; + callback attribute testEventTriggersEnabled; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; ram attribute featureMap; ram attribute clusterRevision default = 1; } @@ -1270,67 +1547,67 @@ endpoint 0 { } server cluster ThreadNetworkDiagnostics { - ram attribute channel; - ram attribute routingRole; - ram attribute networkName; - ram attribute panId; - ram attribute extendedPanId; - ram attribute meshLocalPrefix; - ram attribute overrunCount; + callback attribute channel; + callback attribute routingRole; + callback attribute networkName; + callback attribute panId; + callback attribute extendedPanId; + callback attribute meshLocalPrefix; + callback attribute overrunCount; callback attribute neighborTableList; callback attribute routeTableList; - ram attribute partitionId; - ram attribute weighting; - ram attribute dataVersion; - ram attribute stableDataVersion; - ram attribute leaderRouterId; - ram attribute detachedRoleCount; - ram attribute childRoleCount; - ram attribute routerRoleCount; - ram attribute leaderRoleCount; - ram attribute attachAttemptCount; - ram attribute partitionIdChangeCount; - ram attribute betterPartitionAttachAttemptCount; - ram attribute parentChangeCount; - ram attribute txTotalCount; - ram attribute txUnicastCount; - ram attribute txBroadcastCount; - ram attribute txAckRequestedCount; - ram attribute txAckedCount; - ram attribute txNoAckRequestedCount; - ram attribute txDataCount; - ram attribute txDataPollCount; - ram attribute txBeaconCount; - ram attribute txBeaconRequestCount; - ram attribute txOtherCount; - ram attribute txRetryCount; - ram attribute txDirectMaxRetryExpiryCount; - ram attribute txIndirectMaxRetryExpiryCount; - ram attribute txErrCcaCount; - ram attribute txErrAbortCount; - ram attribute txErrBusyChannelCount; - ram attribute rxTotalCount; - ram attribute rxUnicastCount; - ram attribute rxBroadcastCount; - ram attribute rxDataCount; - ram attribute rxDataPollCount; - ram attribute rxBeaconCount; - ram attribute rxBeaconRequestCount; - ram attribute rxOtherCount; - ram attribute rxAddressFilteredCount; - ram attribute rxDestAddrFilteredCount; - ram attribute rxDuplicatedCount; - ram attribute rxErrNoFrameCount; - ram attribute rxErrUnknownNeighborCount; - ram attribute rxErrInvalidSrcAddrCount; - ram attribute rxErrSecCount; - ram attribute rxErrFcsCount; - ram attribute rxErrOtherCount; - ram attribute activeTimestamp; - ram attribute pendingTimestamp; - ram attribute delay; + callback attribute partitionId; + callback attribute weighting; + callback attribute dataVersion; + callback attribute stableDataVersion; + callback attribute leaderRouterId; + callback attribute detachedRoleCount; + callback attribute childRoleCount; + callback attribute routerRoleCount; + callback attribute leaderRoleCount; + callback attribute attachAttemptCount; + callback attribute partitionIdChangeCount; + callback attribute betterPartitionAttachAttemptCount; + callback attribute parentChangeCount; + callback attribute txTotalCount; + callback attribute txUnicastCount; + callback attribute txBroadcastCount; + callback attribute txAckRequestedCount; + callback attribute txAckedCount; + callback attribute txNoAckRequestedCount; + callback attribute txDataCount; + callback attribute txDataPollCount; + callback attribute txBeaconCount; + callback attribute txBeaconRequestCount; + callback attribute txOtherCount; + callback attribute txRetryCount; + callback attribute txDirectMaxRetryExpiryCount; + callback attribute txIndirectMaxRetryExpiryCount; + callback attribute txErrCcaCount; + callback attribute txErrAbortCount; + callback attribute txErrBusyChannelCount; + callback attribute rxTotalCount; + callback attribute rxUnicastCount; + callback attribute rxBroadcastCount; + callback attribute rxDataCount; + callback attribute rxDataPollCount; + callback attribute rxBeaconCount; + callback attribute rxBeaconRequestCount; + callback attribute rxOtherCount; + callback attribute rxAddressFilteredCount; + callback attribute rxDestAddrFilteredCount; + callback attribute rxDuplicatedCount; + callback attribute rxErrNoFrameCount; + callback attribute rxErrUnknownNeighborCount; + callback attribute rxErrInvalidSrcAddrCount; + callback attribute rxErrSecCount; + callback attribute rxErrFcsCount; + callback attribute rxErrOtherCount; + callback attribute activeTimestamp; + callback attribute pendingTimestamp; + callback attribute delay; callback attribute securityPolicy; - ram attribute channelMask; + callback attribute channelMask; callback attribute operationalDatasetComponents; callback attribute activeNetworkFaultsList; ram attribute featureMap default = 15; @@ -1373,6 +1650,9 @@ endpoint 0 { callback attribute windowStatus; callback attribute adminFabricIndex default = 1; callback attribute adminVendorId; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; ram attribute featureMap; ram attribute clusterRevision default = 1; } @@ -1384,12 +1664,21 @@ endpoint 0 { callback attribute commissionedFabrics; callback attribute trustedRootCertificates; callback attribute currentFabricIndex; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; ram attribute featureMap; ram attribute clusterRevision default = 1; } - server cluster FixedLabel { - callback attribute labelList; + server cluster GroupKeyManagement { + callback attribute groupKeyMap; + callback attribute groupTable; + callback attribute maxGroupsPerFabric; + callback attribute maxGroupKeysPerFabric; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; ram attribute featureMap; ram attribute clusterRevision default = 1; } @@ -1400,8 +1689,44 @@ endpoint 0 { ram attribute clusterRevision default = 1; } } - endpoint 1 { + device type anonymousEndpointType = 14; + binding cluster Binding; + + server cluster Identify { + ram attribute identifyTime; + ram attribute identifyType; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; + ram attribute featureMap; + ram attribute clusterRevision default = 2; + } + + server cluster Descriptor { + callback attribute deviceList; + callback attribute serverList; + callback attribute clientList; + callback attribute partsList; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster BridgedActions { + callback attribute actionList; + callback attribute endpointList; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } +} +endpoint 2 { + device type dimmablelight = 257; server cluster OnOff { ram attribute onOff; @@ -1412,7 +1737,7 @@ endpoint 1 { server cluster LevelControl { persist attribute currentLevel; ram attribute remainingTime; - ram attribute minLevel; + ram attribute minLevel default = 0x01; ram attribute maxLevel default = 0xFE; ram attribute currentFrequency; ram attribute minFrequency; @@ -1444,12 +1769,6 @@ endpoint 1 { ram attribute featureMap; ram attribute clusterRevision default = 1; } - - server cluster FixedLabel { - callback attribute labelList; - ram attribute featureMap; - ram attribute clusterRevision default = 1; - } } diff --git a/examples/bridge-app/bridge-common/bridge-app.zap b/examples/bridge-app/bridge-common/bridge-app.zap index 9c4c129a17a05a..1d50e048036115 100644 --- a/examples/bridge-app/bridge-common/bridge-app.zap +++ b/examples/bridge-app/bridge-common/bridge-app.zap @@ -32,8 +32,8 @@ "endpointTypes": [ { "name": "MA-bridge", - "deviceTypeName": "MA-bridge", - "deviceTypeCode": 14, + "deviceTypeName": "MA-rootdevice", + "deviceTypeCode": 22, "deviceTypeProfileId": 259, "clusters": [ { @@ -45,6 +45,22 @@ "enabled": 0, "commands": [], "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "ClusterRevision", "code": 65533, @@ -99,7 +115,7 @@ "singleton": 0, "bounded": 0, "defaultValue": "", - "reportable": 1, + "reportable": 0, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 @@ -115,7 +131,7 @@ "singleton": 0, "bounded": 0, "defaultValue": "", - "reportable": 1, + "reportable": 0, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 @@ -131,11 +147,59 @@ "singleton": 0, "bounded": 0, "defaultValue": "", - "reportable": 1, + "reportable": 0, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "FeatureMap", "code": 65532, @@ -179,6 +243,22 @@ "enabled": 1, "commands": [], "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "ClusterRevision", "code": 65533, @@ -217,7 +297,7 @@ "singleton": 0, "bounded": 0, "defaultValue": "", - "reportable": 1, + "reportable": 0, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 @@ -233,7 +313,7 @@ "singleton": 0, "bounded": 0, "defaultValue": "", - "reportable": 1, + "reportable": 0, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 @@ -286,6 +366,38 @@ "maxInterval": 65534, "reportableChange": 0 }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "AttributeList", "code": 65531, @@ -345,6 +457,22 @@ "enabled": 0, "commands": [], "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "ClusterRevision", "code": 65533, @@ -383,7 +511,7 @@ "singleton": 1, "bounded": 0, "defaultValue": "10", - "reportable": 1, + "reportable": 0, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 @@ -399,7 +527,7 @@ "singleton": 1, "bounded": 0, "defaultValue": "", - "reportable": 1, + "reportable": 0, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 @@ -415,7 +543,7 @@ "singleton": 1, "bounded": 0, "defaultValue": "", - "reportable": 1, + "reportable": 0, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 @@ -431,7 +559,7 @@ "singleton": 1, "bounded": 0, "defaultValue": "", - "reportable": 1, + "reportable": 0, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 @@ -447,7 +575,7 @@ "singleton": 1, "bounded": 0, "defaultValue": "", - "reportable": 1, + "reportable": 0, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 @@ -463,7 +591,7 @@ "singleton": 1, "bounded": 0, "defaultValue": "", - "reportable": 1, + "reportable": 0, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 @@ -479,7 +607,7 @@ "singleton": 1, "bounded": 0, "defaultValue": "XX", - "reportable": 1, + "reportable": 0, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 @@ -495,7 +623,7 @@ "singleton": 1, "bounded": 0, "defaultValue": "0", - "reportable": 1, + "reportable": 0, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 @@ -511,7 +639,7 @@ "singleton": 1, "bounded": 0, "defaultValue": "", - "reportable": 1, + "reportable": 0, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 @@ -527,7 +655,7 @@ "singleton": 1, "bounded": 0, "defaultValue": "0", - "reportable": 1, + "reportable": 0, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 @@ -543,7 +671,7 @@ "singleton": 1, "bounded": 0, "defaultValue": "", - "reportable": 1, + "reportable": 0, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 @@ -692,6 +820,54 @@ "maxInterval": 65534, "reportableChange": 0 }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "FeatureMap", "code": 65532, @@ -734,7 +910,40 @@ "side": "client", "enabled": 0, "commands": [], - "attributes": [] + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] }, { "name": "Localization Configuration", @@ -756,7 +965,7 @@ "singleton": 0, "bounded": 0, "defaultValue": "en-US", - "reportable": 1, + "reportable": 0, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 @@ -772,67 +981,148 @@ "singleton": 0, "bounded": 0, "defaultValue": "", - "reportable": 1, + "reportable": 0, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "GeneratedCommandList", + "code": 65528, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "array", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "AcceptedCommandList", + "code": 65529, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "array", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Time Format Localization", - "code": 44, - "mfgCode": null, - "define": "TIME_FORMAT_LOCALIZATION_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [], - "attributes": [] - }, - { - "name": "Time Format Localization", - "code": 44, - "mfgCode": null, - "define": "TIME_FORMAT_LOCALIZATION_CLUSTER", - "side": "server", - "enabled": 1, - "commands": [], - "attributes": [ + }, { - "name": "HourFormat", - "code": 0, + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Time Format Localization", + "code": 44, + "mfgCode": null, + "define": "TIME_FORMAT_LOCALIZATION_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Time Format Localization", + "code": 44, + "mfgCode": null, + "define": "TIME_FORMAT_LOCALIZATION_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "HourFormat", + "code": 0, "mfgCode": null, "side": "server", "type": "HourFormat", @@ -841,7 +1131,7 @@ "singleton": 0, "bounded": 0, "defaultValue": "0", - "reportable": 1, + "reportable": 0, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 @@ -878,6 +1168,54 @@ "maxInterval": 65534, "reportableChange": 0 }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "FeatureMap", "code": 65532, @@ -920,7 +1258,40 @@ "side": "client", "enabled": 0, "commands": [], - "attributes": [] + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] }, { "name": "Unit Localization", @@ -947,6 +1318,54 @@ "maxInterval": 65534, "reportableChange": 0 }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "FeatureMap", "code": 65532, @@ -1015,6 +1434,22 @@ } ], "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "ClusterRevision", "code": 65533, @@ -1148,32 +1583,80 @@ "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "GeneratedCommandList", + "code": 65528, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "array", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "6", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "AcceptedCommandList", + "code": 65529, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "array", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "6", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", "reportable": 1, "minInterval": 0, "maxInterval": 65344, @@ -1239,6 +1722,22 @@ } ], "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "ClusterRevision", "code": 65533, @@ -1419,13 +1918,45 @@ "maxInterval": 65534, "reportableChange": 0 }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "AttributeList", "code": 65531, "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -1528,8 +2059,33 @@ "define": "GENERAL_DIAGNOSTICS_CLUSTER", "side": "client", "enabled": 0, - "commands": [], + "commands": [ + { + "name": "TestEventTrigger", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "ClusterRevision", "code": 65533, @@ -1555,7 +2111,16 @@ "define": "GENERAL_DIAGNOSTICS_CLUSTER", "side": "server", "enabled": 1, - "commands": [], + "commands": [ + { + "name": "TestEventTrigger", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], "attributes": [ { "name": "NetworkInterfaces", @@ -1685,6 +2250,70 @@ "maxInterval": 65534, "reportableChange": 0 }, + { + "name": "TestEventTriggersEnabled", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "false", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "FeatureMap", "code": 65532, @@ -1878,7 +2507,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -1892,9 +2521,9 @@ "code": 1, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "RoutingRole", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -1910,7 +2539,7 @@ "side": "server", "type": "char_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", @@ -1926,7 +2555,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -1942,7 +2571,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -1958,7 +2587,7 @@ "side": "server", "type": "octet_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -1974,7 +2603,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -2022,7 +2651,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -2038,7 +2667,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -2054,7 +2683,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -2070,7 +2699,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -2086,7 +2715,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -2102,7 +2731,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2118,7 +2747,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2134,7 +2763,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2150,7 +2779,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2166,7 +2795,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2182,7 +2811,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2198,7 +2827,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2214,7 +2843,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2230,7 +2859,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2246,7 +2875,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2262,7 +2891,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2278,7 +2907,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2294,7 +2923,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2310,7 +2939,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2326,7 +2955,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2342,7 +2971,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2358,7 +2987,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2374,7 +3003,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2390,7 +3019,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2406,7 +3035,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2422,7 +3051,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2438,7 +3067,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2454,7 +3083,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2470,7 +3099,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2486,7 +3115,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2502,7 +3131,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2518,7 +3147,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2534,7 +3163,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2550,7 +3179,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2566,7 +3195,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2582,7 +3211,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2598,7 +3227,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2614,7 +3243,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2630,7 +3259,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2646,7 +3275,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2662,7 +3291,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2678,7 +3307,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2694,7 +3323,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2710,7 +3339,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2726,7 +3355,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2742,7 +3371,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2758,7 +3387,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2774,7 +3403,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -2790,7 +3419,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -2806,7 +3435,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2820,7 +3449,7 @@ "code": 59, "mfgCode": null, "side": "server", - "type": "array", + "type": "SecurityPolicy", "included": 1, "storageOption": "External", "singleton": 0, @@ -2838,7 +3467,7 @@ "side": "server", "type": "octet_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2852,7 +3481,7 @@ "code": 61, "mfgCode": null, "side": "server", - "type": "array", + "type": "OperationalDatasetComponents", "included": 1, "storageOption": "External", "singleton": 0, @@ -3448,6 +4077,22 @@ } ], "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "ClusterRevision", "code": 65533, @@ -3523,6 +4168,54 @@ "maxInterval": 65534, "reportableChange": 0 }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "FeatureMap", "code": 65532, @@ -3628,22 +4321,1025 @@ "source": "client", "incoming": 1, "outgoing": 1 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Operational Credentials", + "code": 62, + "mfgCode": null, + "define": "OPERATIONAL_CREDENTIALS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "AttestationResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 }, { - "name": "RemoveTrustedRootCertificate", - "code": 12, + "name": "CertificateChainResponse", + "code": 3, "mfgCode": null, - "source": "client", + "source": "server", "incoming": 1, - "outgoing": 0 + "outgoing": 1 + }, + { + "name": "CSRResponse", + "code": 5, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "NOCResponse", + "code": 8, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 } ], "attributes": [ + { + "name": "NOCs", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Fabrics", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SupportedFabrics", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CommissionedFabrics", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TrustedRootCertificates", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentFabricIndex", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "fabric_idx", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Group Key Management", + "code": 63, + "mfgCode": null, + "define": "GROUP_KEY_MANAGEMENT_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "KeySetWrite", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "KeySetRead", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "KeySetRemove", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "KeySetReadAllIndices", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Group Key Management", + "code": 63, + "mfgCode": null, + "define": "GROUP_KEY_MANAGEMENT_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "KeySetReadResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "KeySetReadAllIndicesResponse", + "code": 5, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "GroupKeyMap", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GroupTable", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxGroupsPerFabric", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxGroupKeysPerFabric", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Fixed Label", + "code": 64, + "mfgCode": null, + "define": "FIXED_LABEL_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [] + }, + { + "name": "Fixed Label", + "code": 64, + "mfgCode": null, + "define": "FIXED_LABEL_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "label list", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "User Label", + "code": 65, + "mfgCode": null, + "define": "USER_LABEL_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [] + }, + { + "name": "User Label", + "code": 65, + "mfgCode": null, + "define": "USER_LABEL_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "label list", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + } + ] + }, + { + "name": "Anonymous Endpoint Type", + "deviceTypeName": "MA-bridge", + "deviceTypeCode": 14, + "deviceTypeProfileId": 259, + "clusters": [ + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "Identify", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "TriggerEffect", + "code": 64, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "identify time", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0", + "reportable": 0, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "identify type", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0", + "reportable": 0, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Descriptor", + "code": 29, + "mfgCode": null, + "define": "DESCRIPTOR_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Descriptor", + "code": 29, + "mfgCode": null, + "define": "DESCRIPTOR_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "device list", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "server list", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "client list", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "parts list", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 0, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "ClusterRevision", "code": 65533, "mfgCode": null, - "side": "client", + "side": "server", "type": "int16u", "included": 1, "storageOption": "RAM", @@ -3651,62 +5347,72 @@ "bounded": 0, "defaultValue": "1", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 } ] }, { - "name": "Operational Credentials", - "code": 62, + "name": "Binding", + "code": 30, "mfgCode": null, - "define": "OPERATIONAL_CREDENTIALS_CLUSTER", - "side": "server", + "define": "BINDING_CLUSTER", + "side": "client", "enabled": 1, - "commands": [ - { - "name": "AttestationResponse", - "code": 1, - "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "CertificateChainResponse", - "code": 3, - "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 1 - }, + "commands": [], + "attributes": [ { - "name": "CSRResponse", - "code": 5, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 1 + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 }, { - "name": "NOCResponse", - "code": 8, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 1 + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 } - ], + ] + }, + { + "name": "Binding", + "code": 30, + "mfgCode": null, + "define": "BINDING_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], "attributes": [ { - "name": "NOCs", + "name": "Binding", "code": 0, "mfgCode": null, "side": "server", "type": "array", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3716,90 +5422,101 @@ "reportableChange": 0 }, { - "name": "Fabrics", - "code": 1, + "name": "GeneratedCommandList", + "code": 65528, "mfgCode": null, "side": "server", "type": "array", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "SupportedFabrics", - "code": 2, + "name": "AcceptedCommandList", + "code": 65529, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "array", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CommissionedFabrics", - "code": 3, + "name": "AttributeList", + "code": 65531, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "array", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "TrustedRootCertificates", - "code": 4, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, "side": "server", - "type": "array", + "type": "bitmap32", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentFabricIndex", - "code": 5, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "server", - "type": "fabric_idx", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Bridged Actions", + "code": 37, + "mfgCode": null, + "define": "BRIDGED_ACTIONS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ { "name": "FeatureMap", "code": 65532, "mfgCode": null, - "side": "server", + "side": "client", "type": "bitmap32", "included": 1, "storageOption": "RAM", @@ -3815,7 +5532,7 @@ "name": "ClusterRevision", "code": 65533, "mfgCode": null, - "side": "server", + "side": "client", "type": "int16u", "included": 1, "storageOption": "RAM", @@ -3823,39 +5540,29 @@ "bounded": 0, "defaultValue": "1", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 } ] }, { - "name": "Fixed Label", - "code": 64, - "mfgCode": null, - "define": "FIXED_LABEL_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [], - "attributes": [] - }, - { - "name": "Fixed Label", - "code": 64, + "name": "Bridged Actions", + "code": 37, "mfgCode": null, - "define": "FIXED_LABEL_CLUSTER", + "define": "BRIDGED_ACTIONS_CLUSTER", "side": "server", "enabled": 1, "commands": [], "attributes": [ { - "name": "label list", + "name": "action list", "code": 0, "mfgCode": null, "side": "server", "type": "array", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3865,66 +5572,77 @@ "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "endpoint list", + "code": 1, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "array", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "setup url", + "code": 2, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "long_char_string", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "User Label", - "code": 65, - "mfgCode": null, - "define": "USER_LABEL_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [], - "attributes": [] - }, - { - "name": "User Label", - "code": 65, - "mfgCode": null, - "define": "USER_LABEL_CLUSTER", - "side": "server", - "enabled": 1, - "commands": [], - "attributes": [ + }, { - "name": "label list", - "code": 0, + "name": "AcceptedCommandList", + "code": 65529, "mfgCode": null, "side": "server", "type": "array", "included": 1, - "storageOption": "External", + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -4700,7 +6418,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0x01", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -5575,7 +7293,7 @@ "mfgCode": null, "define": "FIXED_LABEL_CLUSTER", "side": "server", - "enabled": 1, + "enabled": 0, "commands": [], "attributes": [ { @@ -5639,16 +7357,26 @@ "endpointId": 0, "networkId": 0, "endpointVersion": 1, - "deviceIdentifier": 14 + "deviceIdentifier": 22 }, { - "endpointTypeName": "MA-dimmablelight", + "endpointTypeName": "Anonymous Endpoint Type", "endpointTypeIndex": 1, "profileId": 259, "endpointId": 1, "networkId": 0, "endpointVersion": 1, + "deviceIdentifier": 14 + }, + { + "endpointTypeName": "MA-dimmablelight", + "endpointTypeIndex": 2, + "profileId": 259, + "endpointId": 2, + "networkId": 0, + "endpointVersion": 1, "deviceIdentifier": 257 } - ] + ], + "log": [] } \ No newline at end of file diff --git a/examples/bridge-app/esp32/main/CMakeLists.txt b/examples/bridge-app/esp32/main/CMakeLists.txt index ebf11fca948731..4857554dd04e26 100644 --- a/examples/bridge-app/esp32/main/CMakeLists.txt +++ b/examples/bridge-app/esp32/main/CMakeLists.txt @@ -30,6 +30,7 @@ idf_component_register(PRIV_INCLUDE_DIRS "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/basic" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/bridged-device-basic-information-server" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/level-control" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/identify-server" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/diagnostic-logs-server" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/ethernet-network-diagnostics-server" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/localization-configuration-server" diff --git a/examples/bridge-app/esp32/main/DeviceCallbacks.cpp b/examples/bridge-app/esp32/main/DeviceCallbacks.cpp index 9ca8038c32a716..51d23c32c75dbd 100644 --- a/examples/bridge-app/esp32/main/DeviceCallbacks.cpp +++ b/examples/bridge-app/esp32/main/DeviceCallbacks.cpp @@ -16,11 +16,23 @@ * limitations under the License. */ +#include +#include +#include +#include +#include +#include +#include +#include + #include "DeviceCallbacks.h" static const char * TAG = "bridge-devicecallbacks"; using namespace ::chip; +using namespace ::chip::app; +using namespace ::chip::app::Clusters; +using namespace ::chip::app::Clusters::BridgedActions::Attributes; using namespace ::chip::Inet; using namespace ::chip::System; @@ -31,3 +43,75 @@ void AppDeviceCallbacks::PostAttributeChangeCallback(EndpointId endpointId, Clus endpointId, attributeId); ESP_LOGI(TAG, "Current free heap: %d\n", heap_caps_get_free_size(MALLOC_CAP_8BIT)); } + +namespace { + +class BridgedActionsAttrAccess : public AttributeAccessInterface +{ +public: + // Register for the Bridged Actions cluster on all endpoints. + BridgedActionsAttrAccess() : AttributeAccessInterface(Optional::Missing(), BridgedActions::Id) {} + + CHIP_ERROR Read(const ConcreteReadAttributePath & aPath, AttributeValueEncoder & aEncoder) override; + +private: + static constexpr uint16_t ClusterRevision = 1; + + CHIP_ERROR ReadActionListAttribute(EndpointId endpoint, AttributeValueEncoder & aEncoder); + CHIP_ERROR ReadEndpointListAttribute(EndpointId endpoint, AttributeValueEncoder & aEncoder); + CHIP_ERROR ReadSetupUrlAttribute(EndpointId endpoint, AttributeValueEncoder & aEncoder); + CHIP_ERROR ReadClusterRevision(EndpointId endpoint, AttributeValueEncoder & aEncoder); +}; + +constexpr uint16_t BridgedActionsAttrAccess::ClusterRevision; + +CHIP_ERROR BridgedActionsAttrAccess::ReadActionListAttribute(EndpointId endpoint, AttributeValueEncoder & aEncoder) +{ + // Just return an empty list + return aEncoder.EncodeEmptyList(); +} + +CHIP_ERROR BridgedActionsAttrAccess::ReadEndpointListAttribute(EndpointId endpoint, AttributeValueEncoder & aEncoder) +{ + // Just return an empty list + return aEncoder.EncodeEmptyList(); +} + +CHIP_ERROR BridgedActionsAttrAccess::ReadSetupUrlAttribute(EndpointId endpoint, AttributeValueEncoder & aEncoder) +{ + const char SetupUrl[] = "https://example.com"; + return aEncoder.Encode(chip::CharSpan::fromCharString(SetupUrl)); +} + +CHIP_ERROR BridgedActionsAttrAccess::ReadClusterRevision(EndpointId endpoint, AttributeValueEncoder & aEncoder) +{ + return aEncoder.Encode(ClusterRevision); +} + +BridgedActionsAttrAccess gAttrAccess; + +CHIP_ERROR BridgedActionsAttrAccess::Read(const ConcreteReadAttributePath & aPath, AttributeValueEncoder & aEncoder) +{ + VerifyOrDie(aPath.mClusterId == BridgedActions::Id); + + switch (aPath.mAttributeId) + { + case ActionList::Id: + return ReadActionListAttribute(aPath.mEndpointId, aEncoder); + case EndpointList::Id: + return ReadEndpointListAttribute(aPath.mEndpointId, aEncoder); + case SetupUrl::Id: + return ReadSetupUrlAttribute(aPath.mEndpointId, aEncoder); + case ClusterRevision::Id: + return ReadClusterRevision(aPath.mEndpointId, aEncoder); + default: + break; + } + return CHIP_NO_ERROR; +} +} // anonymous namespace + +void MatterBridgedActionsPluginServerInitCallback(void) +{ + registerAttributeAccessOverride(&gAttrAccess); +} diff --git a/examples/bridge-app/esp32/main/main.cpp b/examples/bridge-app/esp32/main/main.cpp index d82b110f1153e2..b09f5d7ddaf950 100644 --- a/examples/bridge-app/esp32/main/main.cpp +++ b/examples/bridge-app/esp32/main/main.cpp @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -42,7 +43,6 @@ static AppDeviceCallbacks AppCallback; static const int kNodeLabelSize = 32; // Current ZCL implementation of Struct uses a max-size array of 254 bytes static const int kDescriptorAttributeArraySize = 254; -static const int kFixedLabelAttributeArraySize = 254; static EndpointId gCurrentEndpointId; static EndpointId gFirstDynamicEndpointId; @@ -71,7 +71,6 @@ static Device gLight4("Light 4", "Den"); - On/Off - Descriptor - Bridged Device Basic - - Fixed Label */ // Declare On/Off cluster attributes @@ -93,11 +92,6 @@ DECLARE_DYNAMIC_ATTRIBUTE(ZCL_NODE_LABEL_ATTRIBUTE_ID, CHAR_STRING, kNodeLabelSi DECLARE_DYNAMIC_ATTRIBUTE(ZCL_REACHABLE_ATTRIBUTE_ID, BOOLEAN, 1, 0), /* Reachable */ DECLARE_DYNAMIC_ATTRIBUTE_LIST_END(); -// Declare Fixed Label cluster attributes -DECLARE_DYNAMIC_ATTRIBUTE_LIST_BEGIN(fixedLabelAttrs) -DECLARE_DYNAMIC_ATTRIBUTE(ZCL_LABEL_LIST_ATTRIBUTE_ID, ARRAY, kFixedLabelAttributeArraySize, 0), /* label list */ - DECLARE_DYNAMIC_ATTRIBUTE_LIST_END(); - // Declare Cluster List for Bridged Light endpoint // TODO: It's not clear whether it would be better to get the command lists from // the ZAP config on our last fixed endpoint instead. @@ -114,8 +108,8 @@ constexpr CommandId onOffIncomingCommands[] = { DECLARE_DYNAMIC_CLUSTER_LIST_BEGIN(bridgedLightClusters) DECLARE_DYNAMIC_CLUSTER(ZCL_ON_OFF_CLUSTER_ID, onOffAttrs, onOffIncomingCommands, nullptr), DECLARE_DYNAMIC_CLUSTER(ZCL_DESCRIPTOR_CLUSTER_ID, descriptorAttrs, nullptr, nullptr), - DECLARE_DYNAMIC_CLUSTER(ZCL_BRIDGED_DEVICE_BASIC_CLUSTER_ID, bridgedDeviceBasicAttrs, nullptr, nullptr), - DECLARE_DYNAMIC_CLUSTER(ZCL_FIXED_LABEL_CLUSTER_ID, fixedLabelAttrs, nullptr, nullptr), DECLARE_DYNAMIC_CLUSTER_LIST_END; + DECLARE_DYNAMIC_CLUSTER(ZCL_BRIDGED_DEVICE_BASIC_CLUSTER_ID, bridgedDeviceBasicAttrs, nullptr, + nullptr) DECLARE_DYNAMIC_CLUSTER_LIST_END; // Declare Bridged Light endpoint DECLARE_DYNAMIC_ENDPOINT(bridgedLightEndpoint, bridgedLightClusters); @@ -201,18 +195,6 @@ uint8_t * ToZclCharString(uint8_t * zclString, const char * cString, uint8_t max return zclString; } -// Converted into bytes and mapped the (label, value) -void EncodeFixedLabel(const char * label, const char * value, uint8_t * buffer, uint16_t length, - const EmberAfAttributeMetadata * am) -{ - _LabelStruct labelStruct; - - labelStruct.label = chip::CharSpan::fromCharString(label); - labelStruct.value = chip::CharSpan::fromCharString(value); - - // TODO: Need to set up an AttributeAccessInterface to handle the lists here. -} - EmberAfStatus HandleReadBridgedDeviceBasicAttribute(Device * dev, chip::AttributeId attributeId, uint8_t * buffer, uint16_t maxReadLength) { @@ -238,25 +220,6 @@ EmberAfStatus HandleReadBridgedDeviceBasicAttribute(Device * dev, chip::Attribut return EMBER_ZCL_STATUS_SUCCESS; } -EmberAfStatus HandleReadFixedLabelAttribute(Device * dev, const EmberAfAttributeMetadata * am, uint8_t * buffer, - uint16_t maxReadLength) -{ - if ((am->attributeId == ZCL_LABEL_LIST_ATTRIBUTE_ID) && (maxReadLength <= kFixedLabelAttributeArraySize)) - { - EncodeFixedLabel("room", dev->GetLocation(), buffer, maxReadLength, am); - } - else if ((am->attributeId == ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID) && (maxReadLength == 2)) - { - *buffer = (uint16_t) ZCL_FIXED_LABEL_CLUSTER_REVISION; - } - else - { - return EMBER_ZCL_STATUS_FAILURE; - } - - return EMBER_ZCL_STATUS_SUCCESS; -} - EmberAfStatus HandleReadOnOffAttribute(Device * dev, chip::AttributeId attributeId, uint8_t * buffer, uint16_t maxReadLength) { ChipLogProgress(DeviceLayer, "HandleReadOnOffAttribute: attrId=%d, maxReadLength=%d", attributeId, maxReadLength); @@ -300,10 +263,6 @@ EmberAfStatus emberAfExternalAttributeReadCallback(EndpointId endpoint, ClusterI { return HandleReadBridgedDeviceBasicAttribute(dev, attributeMetadata->attributeId, buffer, maxReadLength); } - else if (clusterId == ZCL_FIXED_LABEL_CLUSTER_ID) - { - return HandleReadFixedLabelAttribute(dev, attributeMetadata, buffer, maxReadLength); - } else if (clusterId == ZCL_ON_OFF_CLUSTER_ID) { return HandleReadOnOffAttribute(dev, attributeMetadata->attributeId, buffer, maxReadLength); @@ -354,18 +313,6 @@ void HandleDeviceStatusChanged(Device * dev, Device::Changed_t itemChangedMask) MatterReportingAttributeChangeCallback(dev->GetEndpointId(), ZCL_BRIDGED_DEVICE_BASIC_CLUSTER_ID, ZCL_NODE_LABEL_ATTRIBUTE_ID, ZCL_CHAR_STRING_ATTRIBUTE_TYPE, zclName); } - if (itemChangedMask & Device::kChanged_Location) - { - uint8_t buffer[kFixedLabelAttributeArraySize]; - EmberAfAttributeMetadata am = { .attributeId = ZCL_LABEL_LIST_ATTRIBUTE_ID, - .size = kFixedLabelAttributeArraySize, - .defaultValue = static_cast(0) }; - - EncodeFixedLabel("room", dev->GetLocation(), buffer, sizeof(buffer), &am); - - MatterReportingAttributeChangeCallback(dev->GetEndpointId(), ZCL_FIXED_LABEL_CLUSTER_ID, ZCL_LABEL_LIST_ATTRIBUTE_ID, - ZCL_ARRAY_ATTRIBUTE_TYPE, buffer); - } } const EmberAfDeviceType gBridgedRootDeviceTypes[] = { { DEVICE_TYPE_ROOT_NODE, DEVICE_VERSION_DEFAULT }, diff --git a/examples/bridge-app/linux/BUILD.gn b/examples/bridge-app/linux/BUILD.gn index eac94b9712c3db..6860566c5bdba5 100644 --- a/examples/bridge-app/linux/BUILD.gn +++ b/examples/bridge-app/linux/BUILD.gn @@ -20,6 +20,7 @@ assert(chip_build_tools) executable("chip-bridge-app") { sources = [ + "${chip_root}/examples/bridge-app/linux/bridged-actions-stub.cpp", "${chip_root}/examples/tv-app/tv-common/include/CHIPProjectAppConfig.h", "Device.cpp", "include/Device.h", diff --git a/examples/bridge-app/linux/Device.cpp b/examples/bridge-app/linux/Device.cpp index a3c30dc1f200ac..f726baf06c21c2 100644 --- a/examples/bridge-app/linux/Device.cpp +++ b/examples/bridge-app/linux/Device.cpp @@ -110,6 +110,12 @@ void DeviceOnOff::SetOnOff(bool aOn) } } +void DeviceOnOff::Toggle() +{ + bool aOn = !IsOn(); + SetOnOff(aOn); +} + void DeviceOnOff::SetChangeCallback(DeviceCallback_fn aChanged_CB) { mChanged_CB = aChanged_CB; diff --git a/examples/bridge-app/linux/bridged-actions-stub.cpp b/examples/bridge-app/linux/bridged-actions-stub.cpp new file mode 100644 index 00000000000000..bade30c1c102cb --- /dev/null +++ b/examples/bridge-app/linux/bridged-actions-stub.cpp @@ -0,0 +1,102 @@ +/* + * + * 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. + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace chip; +using namespace chip::app; +using namespace chip::app::Clusters; +using namespace chip::app::Clusters::BridgedActions::Attributes; + +namespace { + +class BridgedActionsAttrAccess : public AttributeAccessInterface +{ +public: + // Register for the Bridged Actions cluster on all endpoints. + BridgedActionsAttrAccess() : AttributeAccessInterface(Optional::Missing(), BridgedActions::Id) {} + + CHIP_ERROR Read(const ConcreteReadAttributePath & aPath, AttributeValueEncoder & aEncoder) override; + +private: + static constexpr uint16_t ClusterRevision = 1; + + CHIP_ERROR ReadActionListAttribute(EndpointId endpoint, AttributeValueEncoder & aEncoder); + CHIP_ERROR ReadEndpointListAttribute(EndpointId endpoint, AttributeValueEncoder & aEncoder); + CHIP_ERROR ReadSetupUrlAttribute(EndpointId endpoint, AttributeValueEncoder & aEncoder); + CHIP_ERROR ReadClusterRevision(EndpointId endpoint, AttributeValueEncoder & aEncoder); +}; + +constexpr uint16_t BridgedActionsAttrAccess::ClusterRevision; + +CHIP_ERROR BridgedActionsAttrAccess::ReadActionListAttribute(EndpointId endpoint, AttributeValueEncoder & aEncoder) +{ + // Just return an empty list + return aEncoder.EncodeEmptyList(); +} + +CHIP_ERROR BridgedActionsAttrAccess::ReadEndpointListAttribute(EndpointId endpoint, AttributeValueEncoder & aEncoder) +{ + // Just return an empty list + return aEncoder.EncodeEmptyList(); +} + +CHIP_ERROR BridgedActionsAttrAccess::ReadSetupUrlAttribute(EndpointId endpoint, AttributeValueEncoder & aEncoder) +{ + const char SetupUrl[] = "https://example.com"; + return aEncoder.Encode(chip::CharSpan::fromCharString(SetupUrl)); +} + +CHIP_ERROR BridgedActionsAttrAccess::ReadClusterRevision(EndpointId endpoint, AttributeValueEncoder & aEncoder) +{ + return aEncoder.Encode(ClusterRevision); +} + +BridgedActionsAttrAccess gAttrAccess; + +CHIP_ERROR BridgedActionsAttrAccess::Read(const ConcreteReadAttributePath & aPath, AttributeValueEncoder & aEncoder) +{ + VerifyOrDie(aPath.mClusterId == BridgedActions::Id); + + switch (aPath.mAttributeId) + { + case ActionList::Id: + return ReadActionListAttribute(aPath.mEndpointId, aEncoder); + case EndpointList::Id: + return ReadEndpointListAttribute(aPath.mEndpointId, aEncoder); + case SetupUrl::Id: + return ReadSetupUrlAttribute(aPath.mEndpointId, aEncoder); + case ClusterRevision::Id: + return ReadClusterRevision(aPath.mEndpointId, aEncoder); + default: + break; + } + return CHIP_NO_ERROR; +} +} // anonymous namespace + +void MatterBridgedActionsPluginServerInitCallback(void) +{ + registerAttributeAccessOverride(&gAttrAccess); +} diff --git a/examples/bridge-app/linux/include/Device.h b/examples/bridge-app/linux/include/Device.h index f1a0506c9d6156..3bc7a88a47b6ae 100644 --- a/examples/bridge-app/linux/include/Device.h +++ b/examples/bridge-app/linux/include/Device.h @@ -73,6 +73,7 @@ class DeviceOnOff : public Device bool IsOn(); void SetOnOff(bool aOn); + void Toggle(); using DeviceCallback_fn = std::function; void SetChangeCallback(DeviceCallback_fn aChanged_CB); diff --git a/examples/bridge-app/linux/main.cpp b/examples/bridge-app/linux/main.cpp index 2a3eadb12c1de0..5709352d28b21e 100644 --- a/examples/bridge-app/linux/main.cpp +++ b/examples/bridge-app/linux/main.cpp @@ -39,6 +39,9 @@ #include #include +#include +#include + #include "CommissionableInit.h" #include "Device.h" #include @@ -57,9 +60,6 @@ namespace { const int kNodeLabelSize = 32; // Current ZCL implementation of Struct uses a max-size array of 254 bytes const int kDescriptorAttributeArraySize = 254; -const int kFixedLabelAttributeArraySize = 254; -// Four attributes in descriptor cluster: DeviceTypeList, ServerList, ClientList, PartsList -const int kFixedLabelElementsOctetStringSize = 16; EndpointId gCurrentEndpointId; EndpointId gFirstDynamicEndpointId; @@ -85,10 +85,6 @@ Device * gDevices[CHIP_DEVICE_CONFIG_DYNAMIC_ENDPOINT_COUNT]; // (taken from lo-devices.xml) #define DEVICE_TYPE_LO_ON_OFF_LIGHT_SWITCH 0x0103 // (taken from chip-devices.xml) -#define DEVICE_TYPE_ROOT_NODE 0x0016 -// (taken from chip-devices.xml) -#define DEVICE_TYPE_BRIDGE 0x000e -// (taken from chip-devices.xml) #define DEVICE_TYPE_POWER_SOURCE 0x0011 // Device Version for dynamic endpoints: @@ -100,7 +96,6 @@ Device * gDevices[CHIP_DEVICE_CONFIG_DYNAMIC_ENDPOINT_COUNT]; // - On/Off // - Descriptor // - Bridged Device Basic -// - Fixed Label // Declare On/Off cluster attributes DECLARE_DYNAMIC_ATTRIBUTE_LIST_BEGIN(onOffAttrs) @@ -121,11 +116,6 @@ DECLARE_DYNAMIC_ATTRIBUTE(ZCL_NODE_LABEL_ATTRIBUTE_ID, CHAR_STRING, kNodeLabelSi DECLARE_DYNAMIC_ATTRIBUTE(ZCL_REACHABLE_ATTRIBUTE_ID, BOOLEAN, 1, 0), /* Reachable */ DECLARE_DYNAMIC_ATTRIBUTE_LIST_END(); -// Declare Fixed Label cluster attributes -DECLARE_DYNAMIC_ATTRIBUTE_LIST_BEGIN(fixedLabelAttrs) -DECLARE_DYNAMIC_ATTRIBUTE(ZCL_LABEL_LIST_ATTRIBUTE_ID, ARRAY, kFixedLabelAttributeArraySize, 0), /* label list */ - DECLARE_DYNAMIC_ATTRIBUTE_LIST_END(); - // Declare Cluster List for Bridged Light endpoint // TODO: It's not clear whether it would be better to get the command lists from // the ZAP config on our last fixed endpoint instead. @@ -142,15 +132,22 @@ constexpr CommandId onOffIncomingCommands[] = { DECLARE_DYNAMIC_CLUSTER_LIST_BEGIN(bridgedLightClusters) DECLARE_DYNAMIC_CLUSTER(ZCL_ON_OFF_CLUSTER_ID, onOffAttrs, onOffIncomingCommands, nullptr), DECLARE_DYNAMIC_CLUSTER(ZCL_DESCRIPTOR_CLUSTER_ID, descriptorAttrs, nullptr, nullptr), - DECLARE_DYNAMIC_CLUSTER(ZCL_BRIDGED_DEVICE_BASIC_CLUSTER_ID, bridgedDeviceBasicAttrs, nullptr, nullptr), - DECLARE_DYNAMIC_CLUSTER(ZCL_FIXED_LABEL_CLUSTER_ID, fixedLabelAttrs, nullptr, nullptr), DECLARE_DYNAMIC_CLUSTER_LIST_END; + DECLARE_DYNAMIC_CLUSTER(ZCL_BRIDGED_DEVICE_BASIC_CLUSTER_ID, bridgedDeviceBasicAttrs, nullptr, + nullptr) DECLARE_DYNAMIC_CLUSTER_LIST_END; // Declare Bridged Light endpoint DECLARE_DYNAMIC_ENDPOINT(bridgedLightEndpoint, bridgedLightClusters); DataVersion gLight1DataVersions[ArraySize(bridgedLightClusters)]; DataVersion gLight2DataVersions[ArraySize(bridgedLightClusters)]; -DataVersion gLight3DataVersions[ArraySize(bridgedLightClusters)]; -DataVersion gLight4DataVersions[ArraySize(bridgedLightClusters)]; + +DeviceOnOff Light1("Light 1", "Office"); +DeviceOnOff Light2("Light 2", "Office"); + +DeviceSwitch Switch1("Switch 1", "Office", EMBER_AF_SWITCH_FEATURE_LATCHING_SWITCH); +DeviceSwitch Switch2("Switch 2", "Office", + EMBER_AF_SWITCH_FEATURE_MOMENTARY_SWITCH | EMBER_AF_SWITCH_FEATURE_MOMENTARY_SWITCH_RELEASE | + EMBER_AF_SWITCH_FEATURE_MOMENTARY_SWITCH_LONG_PRESS | + EMBER_AF_SWITCH_FEATURE_MOMENTARY_SWITCH_MULTI_PRESS); // --------------------------------------------------------------------------- // @@ -158,7 +155,6 @@ DataVersion gLight4DataVersions[ArraySize(bridgedLightClusters)]; // - Switch // - Descriptor // - Bridged Device Basic -// - Fixed Label // Declare Switch cluster attributes DECLARE_DYNAMIC_ATTRIBUTE_LIST_BEGIN(switchAttrs) @@ -182,17 +178,12 @@ DECLARE_DYNAMIC_ATTRIBUTE(ZCL_NODE_LABEL_ATTRIBUTE_ID, CHAR_STRING, kNodeLabelSi DECLARE_DYNAMIC_ATTRIBUTE(ZCL_REACHABLE_ATTRIBUTE_ID, BOOLEAN, 1, 0), /* Reachable */ DECLARE_DYNAMIC_ATTRIBUTE_LIST_END(); -// Declare Fixed Label cluster attributes -DECLARE_DYNAMIC_ATTRIBUTE_LIST_BEGIN(switchFixedLabelAttrs) -DECLARE_DYNAMIC_ATTRIBUTE(ZCL_LABEL_LIST_ATTRIBUTE_ID, ARRAY, kFixedLabelAttributeArraySize, 0), /* label list */ - DECLARE_DYNAMIC_ATTRIBUTE_LIST_END(); - // Declare Cluster List for Bridged Switch endpoint DECLARE_DYNAMIC_CLUSTER_LIST_BEGIN(bridgedSwitchClusters) DECLARE_DYNAMIC_CLUSTER(ZCL_SWITCH_CLUSTER_ID, switchAttrs, nullptr, nullptr), DECLARE_DYNAMIC_CLUSTER(ZCL_DESCRIPTOR_CLUSTER_ID, switchDescriptorAttrs, nullptr, nullptr), - DECLARE_DYNAMIC_CLUSTER(ZCL_BRIDGED_DEVICE_BASIC_CLUSTER_ID, switchBridgedDeviceBasicAttrs, nullptr, nullptr), - DECLARE_DYNAMIC_CLUSTER(ZCL_FIXED_LABEL_CLUSTER_ID, switchFixedLabelAttrs, nullptr, nullptr) DECLARE_DYNAMIC_CLUSTER_LIST_END; + DECLARE_DYNAMIC_CLUSTER(ZCL_BRIDGED_DEVICE_BASIC_CLUSTER_ID, switchBridgedDeviceBasicAttrs, nullptr, + nullptr) DECLARE_DYNAMIC_CLUSTER_LIST_END; // Declare Bridged Switch endpoint DECLARE_DYNAMIC_ENDPOINT(bridgedSwitchEndpoint, bridgedSwitchClusters); @@ -309,24 +300,6 @@ int RemoveDeviceEndpoint(Device * dev) return -1; } -void EncodeFixedLabel(const char * label, const char * value, uint8_t * buffer, uint16_t length, - const EmberAfAttributeMetadata * am) -{ - char zclOctetStrBuf[kFixedLabelElementsOctetStringSize]; - _LabelStruct labelStruct; - - // TODO: This size is obviously wrong. See - // https://github.com/project-chip/connectedhomeip/issues/10743 - labelStruct.label = CharSpan(label, kFixedLabelElementsOctetStringSize); - - strncpy(zclOctetStrBuf, value, sizeof(zclOctetStrBuf)); - // TODO: This size is obviously wrong. See - // https://github.com/project-chip/connectedhomeip/issues/10743 - labelStruct.value = CharSpan(&zclOctetStrBuf[0], sizeof(zclOctetStrBuf)); - - // TODO: Need to set up an AttributeAccessInterface to handle the lists here. -} - void HandleDeviceStatusChanged(Device * dev, Device::Changed_t itemChangedMask) { if (itemChangedMask & Device::kChanged_Reachable) @@ -344,19 +317,6 @@ void HandleDeviceStatusChanged(Device * dev, Device::Changed_t itemChangedMask) MatterReportingAttributeChangeCallback(dev->GetEndpointId(), ZCL_BRIDGED_DEVICE_BASIC_CLUSTER_ID, ZCL_NODE_LABEL_ATTRIBUTE_ID, ZCL_CHAR_STRING_ATTRIBUTE_TYPE, zclNameSpan.data()); } - - if (itemChangedMask & Device::kChanged_Location) - { - uint8_t buffer[kFixedLabelAttributeArraySize]; - EmberAfAttributeMetadata am = { .attributeId = ZCL_LABEL_LIST_ATTRIBUTE_ID, - .size = kFixedLabelAttributeArraySize, - .defaultValue = static_cast(0) }; - - EncodeFixedLabel("room", dev->GetLocation(), buffer, sizeof(buffer), &am); - - MatterReportingAttributeChangeCallback(dev->GetEndpointId(), ZCL_FIXED_LABEL_CLUSTER_ID, ZCL_LABEL_LIST_ATTRIBUTE_ID, - ZCL_ARRAY_ATTRIBUTE_TYPE, buffer); - } } void HandleDeviceOnOffStatusChanged(DeviceOnOff * dev, DeviceOnOff::Changed_t itemChangedMask) @@ -495,25 +455,6 @@ EmberAfStatus HandleWriteOnOffAttribute(DeviceOnOff * dev, chip::AttributeId att return EMBER_ZCL_STATUS_SUCCESS; } -EmberAfStatus HandleReadFixedLabelAttribute(Device * dev, const EmberAfAttributeMetadata * am, uint8_t * buffer, - uint16_t maxReadLength) -{ - if ((am->attributeId == ZCL_LABEL_LIST_ATTRIBUTE_ID) && (maxReadLength <= kFixedLabelAttributeArraySize)) - { - EncodeFixedLabel("room", dev->GetLocation(), buffer, maxReadLength, am); - } - else if ((am->attributeId == ZCL_CLUSTER_REVISION_SERVER_ATTRIBUTE_ID) && (maxReadLength == 2)) - { - *buffer = (uint16_t) ZCL_FIXED_LABEL_CLUSTER_REVISION; - } - else - { - return EMBER_ZCL_STATUS_FAILURE; - } - - return EMBER_ZCL_STATUS_SUCCESS; -} - EmberAfStatus HandleReadSwitchAttribute(DeviceSwitch * dev, chip::AttributeId attributeId, uint8_t * buffer, uint16_t maxReadLength) { if ((attributeId == ZCL_NUMBER_OF_POSITIONS_ATTRIBUTE_ID) && (maxReadLength == 1)) @@ -599,10 +540,6 @@ EmberAfStatus emberAfExternalAttributeReadCallback(EndpointId endpoint, ClusterI { ret = HandleReadBridgedDeviceBasicAttribute(dev, attributeMetadata->attributeId, buffer, maxReadLength); } - else if (clusterId == ZCL_FIXED_LABEL_CLUSTER_ID) - { - ret = HandleReadFixedLabelAttribute(dev, attributeMetadata, buffer, maxReadLength); - } else if (clusterId == ZCL_ON_OFF_CLUSTER_ID) { ret = HandleReadOnOffAttribute(static_cast(dev), attributeMetadata->attributeId, buffer, maxReadLength); @@ -646,9 +583,6 @@ EmberAfStatus emberAfExternalAttributeWriteCallback(EndpointId endpoint, Cluster void ApplicationInit() {} -const EmberAfDeviceType gBridgedRootDeviceTypes[] = { { DEVICE_TYPE_ROOT_NODE, DEVICE_VERSION_DEFAULT }, - { DEVICE_TYPE_BRIDGE, DEVICE_VERSION_DEFAULT } }; - const EmberAfDeviceType gBridgedOnOffDeviceTypes[] = { { DEVICE_TYPE_LO_ON_OFF_LIGHT, DEVICE_VERSION_DEFAULT }, { DEVICE_TYPE_BRIDGED_NODE, DEVICE_VERSION_DEFAULT } }; @@ -661,35 +595,86 @@ const EmberAfDeviceType gComposedSwitchDeviceTypes[] = { { DEVICE_TYPE_LO_ON_OFF const EmberAfDeviceType gComposedPowerSourceDeviceTypes[] = { { DEVICE_TYPE_POWER_SOURCE, DEVICE_VERSION_DEFAULT } }; +#define POLL_INTERVAL_MS (100) +uint8_t poll_prescale = 0; + +bool kbhit() +{ + int byteswaiting; + ioctl(0, FIONREAD, &byteswaiting); + return byteswaiting > 0; +} + +void * bridge_polling_thread(void * context) +{ + bool light1_added = true; + bool light2_added = false; + while (1) + { + if (kbhit()) + { + int ch = getchar(); + if (ch == '2' && light2_added == false) + { + AddDeviceEndpoint(&Light2, &bridgedLightEndpoint, Span(gBridgedOnOffDeviceTypes), + Span(gLight2DataVersions), 1); + light2_added = true; + } + else if (ch == '4' && light1_added == true) + { + RemoveDeviceEndpoint(&Light1); + light1_added = false; + } + if (ch == '5' && light1_added == false) + { + AddDeviceEndpoint(&Light1, &bridgedLightEndpoint, Span(gBridgedOnOffDeviceTypes), + Span(gLight1DataVersions), 1); + light1_added = true; + } + if (ch == 'b') + { + if (light1_added) + { + Light1.SetName("Light 1b"); + } + if (light2_added) + { + Light2.SetName("Light 2b"); + } + } + if (ch == 'c') + { + if (light1_added) + { + Light1.Toggle(); + } + if (light2_added) + { + Light2.Toggle(); + } + } + continue; + } + + // Sleep to avoid tight loop reading commands + usleep(POLL_INTERVAL_MS * 1000); + } + + return nullptr; +} + int main(int argc, char * argv[]) { // Clear out the device database memset(gDevices, 0, sizeof(gDevices)); - // Create Mock Devices - - // Define 4 lights - DeviceOnOff Light1("Light 1", "Office"); - DeviceOnOff Light2("Light 2", "Office"); - DeviceOnOff Light3("Light 3", "Office"); - DeviceOnOff Light4("Light 4", "Den"); + // Setup Mock Devices Light1.SetChangeCallback(&HandleDeviceOnOffStatusChanged); Light2.SetChangeCallback(&HandleDeviceOnOffStatusChanged); - Light3.SetChangeCallback(&HandleDeviceOnOffStatusChanged); - Light4.SetChangeCallback(&HandleDeviceOnOffStatusChanged); Light1.SetReachable(true); Light2.SetReachable(true); - Light3.SetReachable(true); - Light4.SetReachable(true); - - // Define 2 switches - DeviceSwitch Switch1("Switch 1", "Office", EMBER_AF_SWITCH_FEATURE_LATCHING_SWITCH); - DeviceSwitch Switch2("Switch 2", "Office", - EMBER_AF_SWITCH_FEATURE_MOMENTARY_SWITCH | EMBER_AF_SWITCH_FEATURE_MOMENTARY_SWITCH_RELEASE | - EMBER_AF_SWITCH_FEATURE_MOMENTARY_SWITCH_LONG_PRESS | - EMBER_AF_SWITCH_FEATURE_MOMENTARY_SWITCH_MULTI_PRESS); Switch1.SetChangeCallback(&HandleDeviceSwitchStatusChanged); Switch2.SetChangeCallback(&HandleDeviceSwitchStatusChanged); @@ -746,40 +731,19 @@ int main(int argc, char * argv[]) // supported clusters so that ZAP will generated the requisite code. emberAfEndpointEnableDisable(emberAfEndpointFromIndex(static_cast(emberAfFixedEndpointCount() - 1)), false); - // - // By default, ZAP only supports specifying a single device type in the UI. However for bridges, they are both - // a Bridge and Matter Root Node device on EP0. Consequently, over-ride the generated value to correct this. - // - emberAfSetDeviceTypeList(0, Span(gBridgedRootDeviceTypes)); - - // Add lights 1..3 --> will be mapped to ZCL endpoints 2, 3, 4 + // Add light 1 -> will be mapped to ZCL endpoints 3 AddDeviceEndpoint(&Light1, &bridgedLightEndpoint, Span(gBridgedOnOffDeviceTypes), - Span(gLight1DataVersions)); - AddDeviceEndpoint(&Light2, &bridgedLightEndpoint, Span(gBridgedOnOffDeviceTypes), - Span(gLight2DataVersions)); - AddDeviceEndpoint(&Light3, &bridgedLightEndpoint, Span(gBridgedOnOffDeviceTypes), - Span(gLight3DataVersions)); - - // Remove Light 2 -- Lights 1 & 3 will remain mapped to endpoints 2 & 4 - RemoveDeviceEndpoint(&Light2); - - // Add Light 4 -- > will be mapped to ZCL endpoint 5 - AddDeviceEndpoint(&Light4, &bridgedLightEndpoint, Span(gBridgedOnOffDeviceTypes), - Span(gLight4DataVersions)); + Span(gLight1DataVersions), 1); - // Re-add Light 2 -- > will be mapped to ZCL endpoint 6 - AddDeviceEndpoint(&Light2, &bridgedLightEndpoint, Span(gBridgedOnOffDeviceTypes), - Span(gLight2DataVersions)); - - // Add switch 1..2 --> will be mapped to ZCL endpoints 7,8 + // Add switch 1..2 --> will be mapped to ZCL endpoints 4,5 AddDeviceEndpoint(&Switch1, &bridgedSwitchEndpoint, Span(gBridgedSwitchDeviceTypes), - Span(gSwitch1DataVersions)); + Span(gSwitch1DataVersions), 1); AddDeviceEndpoint(&Switch2, &bridgedSwitchEndpoint, Span(gBridgedSwitchDeviceTypes), - Span(gSwitch2DataVersions)); + Span(gSwitch2DataVersions), 1); // Add composed Device with two buttons and a power source AddDeviceEndpoint(&ComposedDevice, &bridgedComposedDeviceEndpoint, Span(gBridgedComposedDeviceTypes), - Span(gComposedDeviceDataVersions)); + Span(gComposedDeviceDataVersions), 1); AddDeviceEndpoint(&ComposedSwitch1, &bridgedSwitchEndpoint, Span(gComposedSwitchDeviceTypes), Span(gComposedSwitch1DataVersions), ComposedDevice.GetEndpointId()); AddDeviceEndpoint(&ComposedSwitch2, &bridgedSwitchEndpoint, Span(gComposedSwitchDeviceTypes), @@ -788,6 +752,16 @@ int main(int argc, char * argv[]) Span(gComposedPowerSourceDeviceTypes), Span(gComposedPowerSourceDataVersions), ComposedDevice.GetEndpointId()); + { + pthread_t poll_thread; + int res = pthread_create(&poll_thread, nullptr, bridge_polling_thread, nullptr); + if (res) + { + printf("Error creating polling thread: %d\n", res); + exit(1); + } + } + // Run CHIP chip::DeviceLayer::PlatformMgr().RunEventLoop(); diff --git a/examples/build_overrides/mbedtls.gni b/examples/build_overrides/mbedtls.gni index fff24c4f29f01f..7b7bb7346759b4 100644 --- a/examples/build_overrides/mbedtls.gni +++ b/examples/build_overrides/mbedtls.gni @@ -15,4 +15,5 @@ declare_args() { # Root directory for mbedTLS. mbedtls_root = "//third_party/connectedhomeip/third_party/mbedtls" + mbedtls_repo = "//third_party/connectedhomeip/third_party/mbedtls" } diff --git a/examples/chef/BUILD.gn b/examples/chef/BUILD.gn new file mode 100644 index 00000000000000..5c3280c903c485 --- /dev/null +++ b/examples/chef/BUILD.gn @@ -0,0 +1,43 @@ +# Copyright (c) 2022 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. + +import("//build_overrides/build.gni") +import("//build_overrides/chip.gni") + +import("//build_overrides/pigweed.gni") +import("$dir_pw_build/python.gni") + +pw_python_package("chef") { + setup = [ "setup.py" ] + + inputs = [ + "sample_app_util/test_files/sample_zap_file.zap", + "sample_app_util/test_files/sample_zap_file_hashmeta.yaml", + ] + + sources = [ + "__init__.py", + "chef.py", + "constants.py", + "sample_app_util/__init__.py", + "sample_app_util/sample_app_util.py", + "sample_app_util/zap_file_parser.py", + "stateful_shell.py", + ] + + tests = [ + "test_stateful_shell.py", + "sample_app_util/test_zap_file_parser.py", + ] +} diff --git a/examples/chef/README.md b/examples/chef/README.md index 0ccd51193bae73..91da0db5201682 100644 --- a/examples/chef/README.md +++ b/examples/chef/README.md @@ -58,3 +58,64 @@ Run `chef.py -h` to see the available commands 3. Click on `Save As` and save the file with the name of your new device type into the `devices` folder. This device is now available for the script. See `chef.py -h` for a list of devices available. + +## CI + +### zzz_generated + +To eliminate a dependency on ZAP in CI jobs, all chef examples found in +`examples/chef/devices` must have their output from the ZAP tool cached in +`examples/chef/zzz_generated`. + +To generate the cache, one may execute chef with the option `--generate_zzz`. +This will run ZAP for all devices in `examples/chef/devices` and place the +output into the appropriate directory structure. + +Other than the output from the ZAP tool, the cache directory contains two +additional files for each device: + +- `INPUTMD5.txt` contains the md5 hex digest of the ZAP file used to generate + the directory. +- `ZAPSHA.txt` contains the commit of ZAP in the user's tree when the + directory was generated. + +``` +zzz_generated/ +└── lighting-app + ├── INPUTMD5.txt + ├── zap-generated + │   ├── access.h + │   ├── af-gen-event.h + │   └── ... + └── ZAPSHA.txt +``` + +These additional files will be used by the CI jobs to validate whether the cache +must be regenerated i.e. regeneration is needed when ZAP or the input ZAP files +change. + +### Workflow + +All CI jobs for chef can be found in `.github/workflows/chef.yaml`. + +#### Validate + +The workflow begins by calling chef with `--validate_zzz`. + +`--validate_zzz` will recalculate the current ZAP commit and the md5 of all +example ZAP files and compare with what is committed to `zzz_generated`. + +If the validation job fails, it will provide instructions to repair +`zzz_generated` and no builds will run. + +#### Build + +Once the validation job is complete, there is a separate job for each platform, +which run in parallel. + +These jobs use a platform-specific image with base `chip-build`. + +The build jobs call chef with the options `--ci -t `. The `--ci` +option will execute builds for all devices specified in `_CI_ALLOW_LIST` defined +in `chef.py` (so long as these devices are also in `/devices`) on the specified +platform. diff --git a/examples/chef/__init__.py b/examples/chef/__init__.py new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/examples/chef/chef.py b/examples/chef/chef.py index 299229e890a92f..22d821d05083ac 100755 --- a/examples/chef/chef.py +++ b/examples/chef/chef.py @@ -14,18 +14,21 @@ # See the License for the specific language governing permissions and # limitations under the License. -import sys +import hashlib +import json import optparse import os +import shutil import sys +import tarfile import textwrap -from typing import Sequence +from typing import Any, Dict, Sequence + import yaml import constants import stateful_shell - TermColors = constants.TermColors shell = stateful_shell.StatefulShell() @@ -34,6 +37,11 @@ _REPO_BASE_PATH = os.path.join(_CHEF_SCRIPT_PATH, "../../") _DEVICE_FOLDER = os.path.join(_CHEF_SCRIPT_PATH, "devices") _DEVICE_LIST = [file[:-4] for file in os.listdir(_DEVICE_FOLDER) if file.endswith(".zap")] +_CHEF_ZZZ_ROOT = os.path.join(_CHEF_SCRIPT_PATH, "zzz_generated") +_CI_DEVICE_MANIFEST_NAME = "INPUTMD5.txt" +_CI_ZAP_MANIFEST_NAME = "ZAPSHA.txt" +_CICD_CONFIG_FILE_NAME = os.path.join(_CHEF_SCRIPT_PATH, "cicd_meta.json") +_CI_ALLOW_LIST = ["lighting-app"] gen_dir = "" # Filled in after sample app type is read from args. @@ -49,7 +57,7 @@ def splash() -> None: | `----.| | | | | |____ | | \\______||__| |__| |_______||__|{TermColors.STRRESET} """) - print(splashText) + flush_print(splashText) def load_config() -> None: @@ -57,16 +65,15 @@ def load_config() -> None: config["nrfconnect"] = dict() config["esp32"] = dict() config["silabs-thread"] = dict() - configFile = f"{_CHEF_SCRIPT_PATH}/config.yaml" if (os.path.exists(configFile)): configStream = open(configFile, 'r') config = yaml.load(configStream, Loader=yaml.SafeLoader) configStream.close() else: - print("Running for the first time and configuring config.yaml. " + - "Change this configuration file to include correct configuration " + - "for the vendor's SDK") + flush_print("Running for the first time and configuring config.yaml. " + + "Change this configuration file to include correct configuration " + + "for the vendor's SDK") configStream = open(configFile, 'w') config["nrfconnect"]["ZEPHYR_BASE"] = os.environ.get('ZEPHYR_BASE') config["nrfconnect"]["TTY"] = None @@ -76,7 +83,7 @@ def load_config() -> None: config["silabs-thread"]["TTY"] = None config["silabs-thread"]["CU"] = None - print(yaml.dump(config)) + flush_print(yaml.dump(config)) yaml.dump(config, configStream) configStream.close() @@ -85,21 +92,98 @@ def load_config() -> None: def check_python_version() -> None: if sys.version_info[0] < 3: - print('Must use Python 3. Current version is ' + - str(sys.version_info[0])) + flush_print('Must use Python 3. Current version is ' + + str(sys.version_info[0])) exit(1) +def check_zap() -> str: + """Produces SHA of ZAP submodule for current HEAD. + + Returns: + SHA of zap submodule. + """ + shell.run_cmd(f"cd {_REPO_BASE_PATH}") + branch = shell.run_cmd("git rev-parse --abbrev-ref HEAD", + return_cmd_output=True) + branch = branch.replace("\n", "") + command = f"git ls-tree {branch} third_party/zap/repo" + zap_commit = shell.run_cmd(command, return_cmd_output=True) + zap_commit = zap_commit.split(" ")[2] + zap_commit = zap_commit[:zap_commit.index("\t")] + flush_print(f"Found zap commit: {zap_commit}") + return zap_commit + + +def generate_device_manifest( + write_manifest_file: bool = False) -> Dict[str, Any]: + """Produces dictionary containing md5 of device dir zap files. + + Args: + write_manifest_file: Serialize manifest in tree. + Returns: + Dict containing MD5 of device dir zap files. + """ + ci_manifest = {"devices": {}} + devices_manifest = ci_manifest["devices"] + zap_sha = check_zap() + ci_manifest["zap_commit"] = zap_sha + for device_name in _DEVICE_LIST: + device_file_path = os.path.join(_DEVICE_FOLDER, device_name + ".zap") + with open(device_file_path, "rb") as device_file: + device_file_data = device_file.read() + device_file_md5 = hashlib.md5(device_file_data).hexdigest() + devices_manifest[device_name] = device_file_md5 + flush_print(f"Current digest for {device_name} : {device_file_md5}") + if write_manifest_file: + device_zzz_dir = os.path.join(_CHEF_ZZZ_ROOT, device_name) + device_zzz_md5_file = os.path.join(device_zzz_dir, _CI_DEVICE_MANIFEST_NAME) + with open(device_zzz_md5_file, "w+") as md5_file: + md5_file.write(device_file_md5) + device_zzz_zap_sha_file = os.path.join(device_zzz_dir, _CI_ZAP_MANIFEST_NAME) + with open(device_zzz_zap_sha_file, "w+") as zap_sha_file: + zap_sha_file.write(zap_sha) + return ci_manifest + + +def load_cicd_config() -> Dict[str, Any]: + with open(_CICD_CONFIG_FILE_NAME) as config_file: + config = json.loads(config_file.read()) + for platform_name, platform_config in config.items(): + has_build_dir = "build_dir" in platform_config + has_plat_label = "platform_label" in platform_config + if not has_build_dir or not has_plat_label: + flush_print(f"{platform_name} CICD config missing build_dir or platform_label") + exit(1) + return config + + +def flush_print( + to_print: str, + with_border: bool = False) -> None: + """Prints and flushes stdout buffer. + + Args: + to_print: The string to print. + with_border: Add boarder above and below to_print. + """ + if with_border: + border = ('-' * 64) + '\n' + to_print = f"{border}{to_print}\n{border}" + print(to_print, flush=True) + + def main(argv: Sequence[str]) -> None: check_python_version() config = load_config() + cicd_config = load_cicd_config() # # Build environment switches # if sys.platform == "win32": - print('Windows is currently not supported. Use Linux or MacOS platforms') + flush_print('Windows is currently not supported. Use Linux or MacOS platforms') exit(1) # @@ -164,30 +248,178 @@ def main(argv: Sequence[str]) -> None: action="store_true", dest="do_rpc_console") parser.add_option("-y", "--tty", help="Enumerated USB tty/serial interface enumerated for your physical device. E.g.: /dev/ACM0", dest="tty", metavar="TTY", default=None) + parser.add_option("", "--generate_zzz", help="Populates zzz_generated/chef//zap-generated with output of ZAP tool for every device in examples/chef/devices. If this flag is set, all other arguments are ignored except for --bootstrap_zap and --validate_zzz.", + dest="generate_zzz", action="store_true") + parser.add_option("", "--validate_zzz", help="Checks if cached ZAP output needs to be regenrated, for use in CI. If this flag is set, all other arguments are ignored.", + dest="validate_zzz", action="store_true") + parser.add_option("", "--use_zzz", help="Use pre generated output from the ZAP tool found in the zzz_generated folder. Used to decrease execution time of CI/CD jobs", + dest="use_zzz", action="store_true") + parser.add_option("", "--build_all", help="For use in CD only. Builds and bundles all chef examples for the specified platform. Uses --use_zzz. Chef exits after completion.", + dest="build_all", action="store_true") + parser.add_option( + "", "--ci", help="Builds Chef examples defined in _CI_ALLOW_LIST. Uses --use_zzz. Uses specified target from -t. Chef exits after completion.", dest="ci", action="store_true") options, _ = parser.parse_args(argv) splash() + # + # Validate zzz_generated + # + + if options.validate_zzz: + flush_print(f"Validating\n{_CHEF_ZZZ_ROOT}\n", + with_border=True) + fix_instructions = textwrap.dedent("""\ + Cached files out of date! + Please: + ./scripts/bootstrap.sh + source ./scripts/activate.sh + cd ./third_party/zap/repo + npm install + cd ../../.. + ./examples/chef/chef.py --generate_zzz + git add examples/chef/zzz_generated + Ensure you are running with the latest version of ZAP from master!""") + ci_manifest = generate_device_manifest() + current_zap = ci_manifest["zap_commit"] + for device, device_md5 in ci_manifest["devices"].items(): + zzz_dir = os.path.join(_CHEF_ZZZ_ROOT, device) + device_zap_sha_file = os.path.join(zzz_dir, _CI_ZAP_MANIFEST_NAME) + device_md5_file = os.path.join(zzz_dir, _CI_DEVICE_MANIFEST_NAME) + help_msg = f"{device}: {fix_instructions}" + if not os.path.exists(device_zap_sha_file): + flush_print(f"ZAP VERSION MISSING {help_msg}") + exit(1) + else: + with open(device_zap_sha_file) as zap_file: + output_cached_zap_sha = zap_file.read() + if output_cached_zap_sha != current_zap: + flush_print(f"ZAP VERSION MISMATCH {help_msg}") + exit(1) + if not os.path.exists(device_md5_file): + flush_print(f"INPUT MD5 MISSING {help_msg}") + exit(1) + else: + with open(device_md5_file) as md5_file: + output_cached_md5 = md5_file.read() + if output_cached_md5 != device_md5: + flush_print(f"INPUT MD5 MISMATCH {help_msg}") + exit(1) + flush_print("Cached ZAP output is up to date!") + exit(0) + + # + # ZAP bootstrapping + # + + if options.do_bootstrap_zap: + if sys.platform == "linux" or sys.platform == "linux2": + flush_print("Installing ZAP OS package dependencies") + install_deps_cmd = textwrap.dedent("""\ + sudo apt-get install node node-yargs npm + libpixman-1-dev libcairo2-dev libpango1.0-dev node-pre-gyp + libjpeg9-dev libgif-dev node-typescript""") + install_deps_cmd = install_deps_cmd.replace("\n", " ") + shell.run_cmd(install_deps_cmd) + if sys.platform == "darwin": + flush_print("Installation of ZAP OS packages not supported on MacOS") + if sys.platform == "win32": + flush_print( + "Installation of ZAP OS packages not supported on Windows") + + flush_print("Running NPM to install ZAP Node.JS dependencies") + shell.run_cmd( + f"cd {_REPO_BASE_PATH}/third_party/zap/repo/ && npm install") + + # + # Populate zzz_generated + # + + if options.generate_zzz: + flush_print(f"Cleaning {_CHEF_ZZZ_ROOT}") + if not os.path.exists(_CHEF_ZZZ_ROOT): + flush_print(f"{_CHEF_ZZZ_ROOT} doesn't exist; creating") + os.mkdir(_CHEF_ZZZ_ROOT) + else: + flush_print(f"Deleting and recreating existing {_CHEF_ZZZ_ROOT}") + shutil.rmtree(_CHEF_ZZZ_ROOT) + os.mkdir(_CHEF_ZZZ_ROOT) + flush_print(f"Generating files in {_CHEF_ZZZ_ROOT} for all devices") + for device_name in _DEVICE_LIST: + flush_print(f"Generating files for {device_name}") + device_out_dir = os.path.join(_CHEF_ZZZ_ROOT, + device_name, + "zap-generated") + os.makedirs(device_out_dir) + shell.run_cmd(textwrap.dedent(f"""\ + {_REPO_BASE_PATH}/scripts/tools/zap/generate.py \ + {_CHEF_SCRIPT_PATH}/devices/{device_name}.zap -o {device_out_dir}""")) + shell.run_cmd(f"touch {device_out_dir}/af-gen-event.h") + generate_device_manifest(write_manifest_file=True) + exit(0) + + # + # CI + # + + if options.ci: + for device_name in [d for d in _DEVICE_LIST if d in _CI_ALLOW_LIST]: + if options.build_target == "nrfconnect": + shell.run_cmd("export GNUARMEMB_TOOLCHAIN_PATH=\"$PW_ARM_CIPD_INSTALL_DIR\"") + shell.run_cmd(f"cd {_CHEF_SCRIPT_PATH}") + command = f"./chef.py -cbr --use_zzz -d {device_name} -t {options.build_target}" + flush_print(f"Building {command}", with_border=True) + shell.run_cmd(command) + # TODO call per-platform bundle function for extra validation + exit(0) + + # + # Build all + # + + if options.build_all: + flush_print("Building all chef examples") + archive_prefix = "/workspace/artifacts/" + archive_suffix = ".tar.gz" + os.makedirs(archive_prefix, exist_ok=True) + for device_name in _DEVICE_LIST: + for platform, platform_meta in cicd_config.items(): + directory = platform_meta['build_dir'] + label = platform_meta['platform_label'] + output_dir = os.path.join(_CHEF_SCRIPT_PATH, directory) + command = f"./chef.py -cbr --use_zzz -d {device_name} -t {platform}" + flush_print(f"Building {command}", with_border=True) + shell.run_cmd(f"cd {_CHEF_SCRIPT_PATH}") + shell.run_cmd("export GNUARMEMB_TOOLCHAIN_PATH=\"$PW_ARM_CIPD_INSTALL_DIR\"") + shell.run_cmd(command) + # TODO Needs to call per-platform bundle function + archive_name = f"{label}-{device_name}" + archive_full_name = archive_prefix + archive_name + archive_suffix + flush_print(f"Adding build output to archive {archive_full_name}") + with tarfile.open(archive_full_name, "w:gz") as tar: + tar.add(output_dir, arcname=".") + exit(0) + # # Platform Folder # - print(f"Target is set to {options.sample_device_type_name}") + flush_print(f"Target is set to {options.sample_device_type_name}") global gen_dir gen_dir = ( f"{_CHEF_SCRIPT_PATH}/out/{options.sample_device_type_name}/zap-generated/") - print("Setting up environment...") + flush_print("Setting up environment...") if options.build_target == "esp32": if config['esp32']['IDF_PATH'] is None: - print('Path for esp32 SDK was not found. Make sure esp32.IDF_PATH is set on your config.yaml file') + flush_print('Path for esp32 SDK was not found. Make sure esp32.IDF_PATH is set on your config.yaml file') exit(1) plat_folder = os.path.normpath(f"{_CHEF_SCRIPT_PATH}/esp32") shell.run_cmd(f'source {config["esp32"]["IDF_PATH"]}/export.sh') elif options.build_target == "nrfconnect": if config['nrfconnect']['ZEPHYR_BASE'] is None: - print('Path for nrfconnect SDK was not found. Make sure nrfconnect.ZEPHYR_BASE is set on your config.yaml file') + flush_print('Path for nrfconnect SDK was not found. Make sure nrfconnect.ZEPHYR_BASE is set on your config.yaml file') exit(1) plat_folder = os.path.normpath(f"{_CHEF_SCRIPT_PATH}/nrfconnect") shell.run_cmd(f'source {config["nrfconnect"]["ZEPHYR_BASE"]}/zephyr-env.sh') @@ -195,9 +427,9 @@ def main(argv: Sequence[str]) -> None: elif options.build_target == "linux": pass elif options.build_target == "silabs-thread": - print('Path to gecko sdk is configured within Matter.') + flush_print('Path to gecko sdk is configured within Matter.') else: - print(f"Target {options.build_target} not supported") + flush_print(f"Target {options.build_target} not supported") shell.run_cmd(f"source {_REPO_BASE_PATH}/scripts/activate.sh") @@ -207,49 +439,30 @@ def main(argv: Sequence[str]) -> None: if options.do_update_toolchain: if options.build_target == "esp32": - print("ESP32 toolchain update not supported. Skipping") + flush_print("ESP32 toolchain update not supported. Skipping") elif options.build_target == "nrfconnect": - print("Updating toolchain") + flush_print("Updating toolchain") shell.run_cmd( f"cd {_REPO_BASE_PATH} && python3 scripts/setup/nrfconnect/update_ncs.py --update") elif options.build_target == "silabs-thread": - print("Silabs-thread toolchain not supported. Skipping") + flush_print("Silabs-thread toolchain not supported. Skipping") elif options.build_target == "linux": - print("Linux toolchain update not supported. Skipping") - - # - # ZAP bootstrapping - # - - if options.do_bootstrap_zap: - if sys.platform == "linux" or sys.platform == "linux2": - print("Installing ZAP OS package dependencies") - shell.run_cmd( - f"sudo apt-get install sudo apt-get install node node-yargs npm libpixman-1-dev libcairo2-dev libpango1.0-dev node-pre-gyp libjpeg9-dev libgif-dev node-typescript") - if sys.platform == "darwin": - print("Installation of ZAP OS packages not supported on MacOS") - if sys.platform == "win32": - print( - "Installation of ZAP OS packages not supported on Windows") - - print("Running NPM to install ZAP Node.JS dependencies") - shell.run_cmd( - f"cd {_REPO_BASE_PATH}/third_party/zap/repo/ && npm install") + flush_print("Linux toolchain update not supported. Skipping") # # Cluster customization # if options.do_run_gui: - print("Starting ZAP GUI editor") + flush_print("Starting ZAP GUI editor") shell.run_cmd(f"cd {_CHEF_SCRIPT_PATH}/devices") shell.run_cmd( f"{_REPO_BASE_PATH}/scripts/tools/zap/run_zaptool.sh {options.sample_device_type_name}.zap") if options.do_run_zap: - print("Running ZAP script to generate artifacts") - shell.run_cmd(f"mkdir -p {gen_dir}/") - shell.run_cmd(f"rm {gen_dir}/*") + flush_print("Running ZAP script to generate artifacts") + shell.run_cmd(f"rm -rf {gen_dir}") + shell.run_cmd(f"mkdir -p {gen_dir}") shell.run_cmd( f"{_REPO_BASE_PATH}/scripts/tools/zap/generate.py {_CHEF_SCRIPT_PATH}/devices/{options.sample_device_type_name}.zap -o {gen_dir}") # af-gen-event.h is not generated @@ -267,31 +480,50 @@ def main(argv: Sequence[str]) -> None: shell.run_cmd(f"cd {_CHEF_SCRIPT_PATH}/nrfconnect") shell.run_cmd("west build -t menuconfig") elif (options.build_target == "silabs-thread") or (options.build_target == "silabs-wifi"): - print("Menuconfig not available on Silabs-thread target. Skipping") + flush_print("Menuconfig not available on Silabs-thread target. Skipping") elif options.build_target == "linux": - print("Menuconfig not available on Linux target. Skipping") + flush_print("Menuconfig not available on Linux target. Skipping") # # Build # if options.do_build: - print("Building...") + if options.use_zzz: + flush_print("Using pre-generated ZAP output") + zzz_dir = os.path.join(_CHEF_SCRIPT_PATH, + "zzz_generated", + options.sample_device_type_name, + "zap-generated") + if not os.path.exists(zzz_dir): + flush_print(textwrap.dedent(f"""\ + You have specified --use_zzz + for device {options.sample_device_type_name} + which does not exist in the cached ZAP output. + To cache ZAP output for this device: + ensure {options.sample_device_type_name}.zap + is placed in {_DEVICE_FOLDER} + run chef with the option --generate_zzz + """)) + exit(1) + shutil.rmtree(gen_dir, ignore_errors=True) + shutil.copytree(zzz_dir, gen_dir) + flush_print("Building...") if options.do_rpc: - print("RPC PW enabled") + flush_print("RPC PW enabled") if options.build_target == "esp32": shell.run_cmd( f"export SDKCONFIG_DEFAULTS={_CHEF_SCRIPT_PATH}/esp32/sdkconfig_rpc.defaults") else: - print(f"RPC PW on {options.build_target} not supported") + flush_print(f"RPC PW on {options.build_target} not supported") else: - print("RPC PW disabled") + flush_print("RPC PW disabled") if (options.build_target == "esp32"): shell.run_cmd( f"export SDKCONFIG_DEFAULTS={_CHEF_SCRIPT_PATH}/esp32/sdkconfig.defaults") - print( + flush_print( f"Product ID 0x{options.pid:02X} / Vendor ID 0x{options.vid:02X}") shell.run_cmd(f"cd {_CHEF_SCRIPT_PATH}") @@ -306,7 +538,7 @@ def main(argv: Sequence[str]) -> None: if options.build_target == "esp32": shell.run_cmd(f"cd {_CHEF_SCRIPT_PATH}/esp32") if options.do_clean: - shell.run_cmd(f"rm {_CHEF_SCRIPT_PATH}/esp32/sdkconfig") + shell.run_cmd(f"rm -f {_CHEF_SCRIPT_PATH}/esp32/sdkconfig") shell.run_cmd(f"cd {_CHEF_SCRIPT_PATH}/esp32") shell.run_cmd(f"rm -rf {_CHEF_SCRIPT_PATH}/esp32/build") shell.run_cmd("idf.py fullclean") @@ -333,7 +565,7 @@ def main(argv: Sequence[str]) -> None: with open(f"{_CHEF_SCRIPT_PATH}/linux/args.gni", "w") as f: f.write(textwrap.dedent(f"""\ import("//build_overrides/chip.gni") - import("\\${{chip_root}}/config/standalone/args.gni") + import("${{chip_root}}/config/standalone/args.gni") chip_shell_cmd_server = false target_defines = ["CHIP_DEVICE_CONFIG_DEVICE_VENDOR_ID={options.vid}", "CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID={options.pid}", "CONFIG_ENABLE_PW_RPC={'1' if options.do_rpc else '0'}"] """)) @@ -344,7 +576,10 @@ def main(argv: Sequence[str]) -> None: """)) if options.do_clean: shell.run_cmd(f"rm -rf out") - shell.run_cmd("gn gen out") + if options.do_rpc: + shell.run_cmd("gn gen out --args='import(\"//with_pw_rpc.gni\")'") + else: + shell.run_cmd("gn gen out --args=''") shell.run_cmd("ninja -C out") # @@ -356,10 +591,10 @@ def main(argv: Sequence[str]) -> None: # if options.do_flash: - print("Flashing target") + flush_print("Flashing target") if options.build_target == "esp32": if config['esp32']['TTY'] is None: - print('The path for the serial enumeration for esp32 is not set. Make sure esp32.TTY is set on your config.yaml file') + flush_print('The path for the serial enumeration for esp32 is not set. Make sure esp32.TTY is set on your config.yaml file') exit(1) shell.run_cmd(f"cd {_CHEF_SCRIPT_PATH}/esp32") if options.do_erase: @@ -383,28 +618,29 @@ def main(argv: Sequence[str]) -> None: # if options.do_interact: - print("Starting terminal...") + flush_print("Starting terminal...") if options.build_target == "esp32": if config['esp32']['TTY'] is None: - print('The path for the serial enumeration for esp32 is not set. Make sure esp32.TTY is set on your config.yaml file') + flush_print('The path for the serial enumeration for esp32 is not set. Make sure esp32.TTY is set on your config.yaml file') exit(1) shell.run_cmd(f"cd {_CHEF_SCRIPT_PATH}/esp32") shell.run_cmd(f"idf.py -p {config['esp32']['TTY']} monitor") elif options.build_target == "nrfconnect": if config['nrfconnect']['TTY'] is None: - print('The path for the serial enumeration for nordic is not set. Make sure nrfconnect.TTY is set on your config.yaml file') + flush_print('The path for the serial enumeration for nordic is not set. Make sure nrfconnect.TTY is set on your config.yaml file') exit(1) shell.run_cmd("killall screen") shell.run_cmd(f"screen {config['nrfconnect']['TTY']} 115200") elif (options.build_target == "silabs-thread"): if config['silabs-thread']['TTY'] is None: - print('The path for the serial enumeration for silabs-thread is not set. Make sure silabs-thread.TTY is set on your config.yaml file') + flush_print( + 'The path for the serial enumeration for silabs-thread is not set. Make sure silabs-thread.TTY is set on your config.yaml file') exit(1) shell.run_cmd("killall screen") shell.run_cmd(f"screen {config['silabs-thread']['TTY']} 115200 8-N-1") elif options.build_target == "linux": - print( + flush_print( f"{_CHEF_SCRIPT_PATH}/linux/out/{options.sample_device_type_name}") shell.run_cmd( f"{_CHEF_SCRIPT_PATH}/linux/out/{options.sample_device_type_name}") @@ -419,16 +655,18 @@ def main(argv: Sequence[str]) -> None: elif (options.build_target == "silabs-thread"): if (sys.platform == "linux") or (sys.platform == "linux2"): if(config['silabs-thread']['TTY'] is None): - print('The path for the serial enumeration for silabs-thread is not set. Make sure silabs-thread.TTY is set on your config.yaml file') + flush_print( + 'The path for the serial enumeration for silabs-thread is not set. Make sure silabs-thread.TTY is set on your config.yaml file') exit(1) shell.run_cmd(f"python3 -m chip_rpc.console --device {config['silabs-thread']['TTY']} -b 115200") elif sys.platform == "darwin": if(config['silabs-thread']['CU'] is None): - print('The path for the serial enumeration for silabs-thread is not set. Make sure silabs-thread.CU is set on your config.yaml file') + flush_print( + 'The path for the serial enumeration for silabs-thread is not set. Make sure silabs-thread.CU is set on your config.yaml file') exit(1) shell.run_cmd(f"python3 -m chip_rpc.console --device {config['silabs-thread']['CU']} -b 115200") - print("Done") + flush_print("Done") if __name__ == '__main__': diff --git a/examples/chef/cicd_meta.json b/examples/chef/cicd_meta.json new file mode 100644 index 00000000000000..34cabcb530a302 --- /dev/null +++ b/examples/chef/cicd_meta.json @@ -0,0 +1,14 @@ +{ + "linux": { + "build_dir": "linux/out", + "platform_label": "linux_x86" + }, + "esp32": { + "build_dir": "esp32/build", + "platform_label": "esp32-m5stack" + }, + "nrfconnect": { + "build_dir": "nrfconnect/build", + "platform_label": "nrf-nrf52840dk" + } +} diff --git a/examples/chef/devices/lighting-app.zap b/examples/chef/devices/lighting-app.zap index 2868176f0c6b6d..b3183cfc9ce59a 100644 --- a/examples/chef/devices/lighting-app.zap +++ b/examples/chef/devices/lighting-app.zap @@ -2613,7 +2613,16 @@ "define": "GENERAL_DIAGNOSTICS_CLUSTER", "side": "server", "enabled": 1, - "commands": [], + "commands": [ + { + "name": "TestEventTrigger", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], "attributes": [ { "name": "NetworkInterfaces", @@ -2743,6 +2752,22 @@ "maxInterval": 65534, "reportableChange": 0 }, + { + "name": "TestEventTriggersEnabled", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "false", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "FeatureMap", "code": 65532, @@ -2972,7 +2997,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -2986,9 +3011,9 @@ "code": 1, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "RoutingRole", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3004,7 +3029,7 @@ "side": "server", "type": "char_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", @@ -3020,7 +3045,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3036,7 +3061,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -3052,7 +3077,7 @@ "side": "server", "type": "octet_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3068,7 +3093,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -3116,7 +3141,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3132,7 +3157,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3148,7 +3173,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3164,7 +3189,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3180,7 +3205,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3196,7 +3221,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3212,7 +3237,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3228,7 +3253,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3244,7 +3269,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3260,7 +3285,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3276,7 +3301,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3292,7 +3317,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3308,7 +3333,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3324,7 +3349,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3340,7 +3365,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3356,7 +3381,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3372,7 +3397,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3388,7 +3413,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3404,7 +3429,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3420,7 +3445,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3436,7 +3461,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3452,7 +3477,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3468,7 +3493,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3484,7 +3509,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3500,7 +3525,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3516,7 +3541,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3532,7 +3557,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3548,7 +3573,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3564,7 +3589,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3580,7 +3605,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3596,7 +3621,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3612,7 +3637,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3628,7 +3653,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3644,7 +3669,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3660,7 +3685,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3676,7 +3701,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3692,7 +3717,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3708,7 +3733,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3724,7 +3749,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3740,7 +3765,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3756,7 +3781,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3772,7 +3797,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3788,7 +3813,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3804,7 +3829,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3820,7 +3845,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3836,7 +3861,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3852,7 +3877,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3868,7 +3893,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -3884,7 +3909,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -3900,7 +3925,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3914,7 +3939,7 @@ "code": 59, "mfgCode": null, "side": "server", - "type": "array", + "type": "SecurityPolicy", "included": 1, "storageOption": "External", "singleton": 0, @@ -3932,7 +3957,7 @@ "side": "server", "type": "octet_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3946,7 +3971,7 @@ "code": 61, "mfgCode": null, "side": "server", - "type": "array", + "type": "OperationalDatasetComponents", "included": 1, "storageOption": "External", "singleton": 0, @@ -4784,14 +4809,6 @@ "source": "client", "incoming": 1, "outgoing": 1 - }, - { - "name": "RemoveTrustedRootCertificate", - "code": 12, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 } ], "attributes": [ @@ -6191,7 +6208,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0x01", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -7694,5 +7711,6 @@ "endpointVersion": 1, "deviceIdentifier": 257 } - ] + ], + "log": [] } \ No newline at end of file diff --git a/examples/chef/linux/BUILD.gn b/examples/chef/linux/BUILD.gn index 32e8d05a6dee3a..9bd88e4b53c03d 100644 --- a/examples/chef/linux/BUILD.gn +++ b/examples/chef/linux/BUILD.gn @@ -12,15 +12,23 @@ # See the License for the specific language governing permissions and # limitations under the License. -import("//build_overrides/build.gni") import("//build_overrides/chip.gni") -import("//build_overrides/openthread.gni") + import("${chip_root}/build/chip/tools.gni") import("${chip_root}/src/app/chip_data_model.gni") -import("sample.gni") +import("${chip_root}/src/app/common_flags.gni") assert(chip_build_tools) +import("${chip_root}/examples/common/pigweed/pigweed_rpcs.gni") + +if (chip_enable_pw_rpc) { + import("//build_overrides/pigweed.gni") + import("$dir_pw_build/target_types.gni") +} + +import("sample.gni") + project_dir = "./.." chip_data_model("chef-data-model") { @@ -36,14 +44,60 @@ executable("${sample_name}") { deps = [ ":chef-data-model", - "${chip_root}/src/controller", - "${chip_root}/src/credentials", - "${chip_root}/src/lib/shell", - "${chip_root}/src/platform", + "${chip_root}/examples/platform/linux:app-main", + "${chip_root}/src/lib", "${project_dir}/shell_common:shell_common", ] - cflags = [ "-Wconversion" ] + include_dirs = [ "include" ] + + if (chip_enable_pw_rpc) { + defines = [ + "PW_RPC_ENABLED", + "PW_RPC_ATTRIBUTE_SERVICE=1", + "PW_RPC_BUTTON_SERVICE=1", + "PW_RPC_DESCRIPTOR_SERVICE=1", + "PW_RPC_DEVICE_SERVICE=1", + "PW_RPC_LIGHTING_SERVICE=1", + "PW_RPC_TRACING_SERVICE=1", + ] + + sources += [ + "${chip_root}/examples/platform/linux/Rpc.cpp", + "${dir_pigweed}/targets/host/system_rpc_server.cc", + ] + + deps += [ + "$dir_pw_hdlc:pw_rpc", + "$dir_pw_hdlc:rpc_channel_output", + "$dir_pw_log", + "$dir_pw_rpc:server", + "$dir_pw_rpc/system_server:facade", + "$dir_pw_stream:socket_stream", + "$dir_pw_stream:sys_io_stream", + "$dir_pw_sync:mutex", + "$dir_pw_trace", + "$dir_pw_trace_tokenized", + "$dir_pw_trace_tokenized:trace_rpc_service", + "${chip_root}/config/linux/lib/pw_rpc:pw_rpc", + "${chip_root}/examples/common/pigweed:attributes_service.nanopb_rpc", + "${chip_root}/examples/common/pigweed:button_service.nanopb_rpc", + "${chip_root}/examples/common/pigweed:descriptor_service.nanopb_rpc", + "${chip_root}/examples/common/pigweed:device_service.nanopb_rpc", + "${chip_root}/examples/common/pigweed:lighting_service.nanopb_rpc", + "${chip_root}/examples/common/pigweed:rpc_services", + ] + + deps += pw_build_LINK_DEPS + + cflags = [ "-Wno-gnu-designator" ] + + include_dirs += [ "${chip_root}/examples/common" ] + } else { + # The system_rpc_server.cc file is in pigweed and doesn't compile with + # -Wconversion, remove check for RPC build only. + cflags = [ "-Wconversion" ] + } output_dir = root_out_dir } @@ -52,4 +106,6 @@ group("chef") { deps = [ ":${sample_name}" ] } -import("//build_overrides/chip.gni") +group("default") { + deps = [ ":chef" ] +} diff --git a/examples/chef/linux/main.cpp b/examples/chef/linux/main.cpp index 0335bbb6e497e0..56b80dd313bdc4 100644 --- a/examples/chef/linux/main.cpp +++ b/examples/chef/linux/main.cpp @@ -1,6 +1,7 @@ /* * * Copyright (c) 2020 Project CHIP Authors + * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,32 +16,29 @@ * limitations under the License. */ -#include +#include -#include -#include -#include -#include +#include +#include #include +#include + #include -#include -#include using namespace chip; using namespace chip::Shell; -int main() +void ApplicationInit() {} + +int main(int argc, char * argv[]) { - chip::Platform::MemoryInit(); - chip::DeviceLayer::PlatformMgr().InitChipStack(); - chip::DeviceLayer::PlatformMgr().StartEventLoopTask(); -#if CHIP_DEVICE_CONFIG_ENABLE_WPA - chip::DeviceLayer::ConnectivityManagerImpl().StartWiFiManagement(); -#endif + if (ChipLinuxAppInit(argc, argv) != 0) + { + return -1; + } const int rc = Engine::Root().Init(); - if (rc != 0) { ChipLogError(Shell, "Streamer initialization failed: %d", rc); @@ -55,6 +53,7 @@ int main() cmd_app_server_init(); #endif - Engine::Root().RunMainLoop(); + ChipLinuxAppMainLoop(); + return 0; } diff --git a/examples/chef/linux/with_pw_rpc.gni b/examples/chef/linux/with_pw_rpc.gni new file mode 100644 index 00000000000000..969b2b88c9b75b --- /dev/null +++ b/examples/chef/linux/with_pw_rpc.gni @@ -0,0 +1,42 @@ +# 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. + +# add this gni as import in your build args to use pigweed in the example +# 'import("//with_pw_rpc.gni")' + +import("//build_overrides/chip.gni") + +import("${chip_root}/config/standalone/args.gni") + +import("//build_overrides/pigweed.gni") + +cpp_standard = "gnu++17" + +pw_log_BACKEND = "$dir_pw_log_basic" +pw_assert_BACKEND = "$dir_pw_assert_log" +pw_sys_io_BACKEND = "$dir_pw_sys_io_stdio" +pw_trace_BACKEND = "$dir_pw_trace_tokenized" +pw_unit_test_MAIN = "$dir_pw_unit_test:logging_main" +pw_rpc_system_server_BACKEND = "${chip_root}/config/linux/lib/pw_rpc:pw_rpc" +dir_pw_third_party_nanopb = "${chip_root}/third_party/nanopb/repo" +pw_chrono_SYSTEM_CLOCK_BACKEND = "$dir_pw_chrono_stl:system_clock" +pw_sync_MUTEX_BACKEND = "$dir_pw_sync_stl:mutex_backend" + +pw_build_LINK_DEPS = [ + "$dir_pw_assert:impl", + "$dir_pw_log:impl", +] + +chip_enable_pw_rpc = true +chip_build_pw_trace_lib = true diff --git a/examples/chef/nrfconnect/CMakeLists.txt b/examples/chef/nrfconnect/CMakeLists.txt index 921458db215900..483f275bbdf2c8 100644 --- a/examples/chef/nrfconnect/CMakeLists.txt +++ b/examples/chef/nrfconnect/CMakeLists.txt @@ -122,6 +122,7 @@ set(PIGWEED_ROOT "${CHIP_ROOT}/third_party/pigweed/repo") include(${PIGWEED_ROOT}/pw_build/pigweed.cmake) include(${PIGWEED_ROOT}/pw_protobuf_compiler/proto.cmake) +pw_set_module_config(pw_rpc_CONFIG pw_rpc.disable_global_mutex_config) pw_set_backend(pw_log pw_log_basic) pw_set_backend(pw_assert pw_assert_log) pw_set_backend(pw_sys_io pw_sys_io.nrfconnect) diff --git a/examples/chef/nrfconnect/main.cpp b/examples/chef/nrfconnect/main.cpp index 4f427797c069d5..650a3664b975d2 100644 --- a/examples/chef/nrfconnect/main.cpp +++ b/examples/chef/nrfconnect/main.cpp @@ -33,7 +33,7 @@ #include #include -#include +#include #if CONFIG_ENABLE_CHIP_SHELL || CONFIG_CHIP_LIB_SHELL #include diff --git a/examples/chef/sample_app_util/README.md b/examples/chef/sample_app_util/README.md new file mode 100644 index 00000000000000..041f9462c4232c --- /dev/null +++ b/examples/chef/sample_app_util/README.md @@ -0,0 +1,195 @@ +# Chef Build Conventions + +## Overview + +--- + +It is convenient to follow some naming and build conventions for Chef tool due +to the large volume of sample apps that may be created and the ambiguity that +may result from arbitrary names. + +There are three components to the convention proposed here: + +1. The naming convention for the sample matter device and clusters (referred to + here as the `sample app`). +2. The naming convention to use for the build files which will be flashed on the + devices. +3. The usage of metadata files that shall accompany build files to provide more + detailed information about builds. + +The convention proposed here should be adopted by the zap files provided in +`examples/chef/devices` and the builds generated from Chef tool in CI. + +## Limitations + +--- + +The largest filename that can be used on MacOS and Linux is 255 characters. If a +sample app name would exceed this limit by following this convention, then the +sample app should be given an arbitrary name. + +This limitation is called out, but, with the given naming conventions, this +should rarely happen. + +## Convention + +--- + +### Sample App Naming Convention + +Sample apps should be named by concatenating the name of all endpoints in the +order of their index. Endpoint names are separated by underscores (`_`) and a 10 +character hash[^hash_note] of the sample app metadata is appended to the end. + +Valid sample app names conform to the following format: + +``` +__ +``` + +For example, here are some valid names: + +``` +rootnode_extendedcolorlight_H1l9gnQDYl +rootnode_speaker_8qRQaEj0Hy +rootnode_lightsensor_L6dEbmVDah +rootnode_dimmablelight_rWsDiwzw2t +rootnode_pressuresensor_03quf7tPOL +rootnode_flowsensor_ixbAboycie +rootnode_windowcovering_b9QoiScjOq +rootnode_doorlock_d5wtU7sjFR +rootnode_thermostat_KuQYArmwl7 +rootnode_dimmablelight_7pNE3GVarn +rootnode_temperaturesensor_i0wGnDVUAc +rootnode_occupancysensor_wyGeQSokNp +rootnode_humiditysensor_pv0comNKyT +bridgednode_temperaturesensor_onofflight_onoffpluginunit_MI9DSdkH8H +``` + +[^hash_note]: + + The 10 character hash is a base64 encoding of the md5 hash generated by + digesting the JSON string encoding of the metadata information. The code for + generating the hash can be found in `generate_hash` in + [zap_file_parser](zap_file_parser.py) There are some notable details + here: 1) The full base64 encoded hash is 16 characters, but only 10 are + used. This still gives us a sufficiently low probability of collision (~1.2 + x 10^-8). 2) `_` and `-` are replaced in the base64 encoding because they + have other uses in the naming. 3) Platform specific information is omitted + from the hash. E.g. the networking_commissioning cluster is excluded. This + is to make the hashes platform agnostic. + +### Sample App Build Naming Convention + +The sample app builds formats will be named by pre-pending the zap file name +(described above) with the platform and appending connectivity info. + +Valid build names conform to the following format: + +``` +_ +``` + +Note that `` follows the convention: +`__`. + +Together that is: + +``` +___ +``` + +The list of platforms supported here (as of writing this) are: + +``` +m5stack +brd4161a +nrf52840dk +linux_x86 +``` + +For example, here are some valid names: + +``` +m5stack_rootnode_humiditysensor_pv0comNKyT +brd4161a_rootnode_humiditysensor_pv0comNKyT +nrf52840dk_rootnode_humiditysensor_pv0comNKyT +linux_x86_rootnode_humiditysensor_pv0comNKyT +``` + +### Metadata file convention + +Metadata files are `yaml` files that should accompany build files. + +The metadata files have a structure as follows: + +``` +- : + client_clusters: + : + attributes: + : + ... + commands: + - + - ... + server_clusters: + : + attributes: + : + ... + commands: + - + - ... +- : ... +``` + +For an example, see [sample_zap_file.yaml](test_files/sample_zap_file.yaml) +which was generated from [sample_zap_file.zap](test_files/sample_zap_file.zap). + +Note that it is more readable in `yaml` format. Since hashes are generated from +the metadata info, additional conventions are needed to ensure consistency for +the metadata structure. + +The following conventions are used: + +- All lists are sorted alphabetically. +- If a list contains dictionaries, it will be sorted by the "name" key. If it + does not contain "name" key, it will be sorted by the first key common to + all dictionaries that comes first alphabetically. +- The list of endpoints is excluded from the above conventions. Endpoints are + ordered according to their endpoint number; here, the endpoint number is the + same as the order they are read from the zap file. + +As an example, take a look at +[sample_zap_file.yaml](test_files/sample_zap_file.yaml) + +## Utility Usage + +--- + +There are a few primary usage cases for the utility +[sample_app_util.py](sample_app_util.py). Details are provided by using +`python sample_app_util.py zap --help`. Below is a summary. + +| Command | Description | +| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `python sample_app_util.py zap --generate-name` | Generates the name for a zap file per the specified convention | +| `python sample_app_util.py zap --rename-file` | Renames the zap file per specified convention | +| `python sample_app_util.py zap --generate-metadata [output_path]` | Generates the metadata file adjacent to the zap file with `.yaml` extension. If `[output_path]` is provided then the metadata file will be stored at the location specified. | + +## Running Tests + +--- + +Navigate to the base directory of this README. + +``` +cd /examples/chef/sample_app_util +``` + +Run unit tests. + +``` +python -m unittest +``` diff --git a/examples/chef/sample_app_util/__init__.py b/examples/chef/sample_app_util/__init__.py new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/examples/chef/sample_app_util/matter_device_types.json b/examples/chef/sample_app_util/matter_device_types.json new file mode 100644 index 00000000000000..a5dd0745b1e312 --- /dev/null +++ b/examples/chef/sample_app_util/matter_device_types.json @@ -0,0 +1,43 @@ +{ + "Root Node": 22, + "Power Source": 17, + "OTA Requestor": 18, + "OTA Provider": 20, + "Aggregator": 14, + "Bridged Node": 19, + "On/Off Light": 256, + "Dimmable Light": 257, + "Color Temperature Light": 268, + "Extended Color Light": 269, + "On/Off Plug-in Unit": 266, + "Dimmable Plug-In Unit": 267, + "Pump": 771, + "On/Off Light Switch": 259, + "Dimmer Switch": 260, + "Color Dimmer Switch": 261, + "Control Bridge": 2112, + "Pump Controller": 772, + "Generic Switch": 15, + "Contact Sensor": 21, + "Light Sensor": 262, + "Occupancy Sensor": 263, + "Temperature Sensor": 770, + "Pressure Sensor": 773, + "Flow Sensor": 774, + "Humidity Sensor": 775, + "On/Off Sensor": 2128, + "Door Lock": 10, + "Door Lock Controller": 11, + "Window Covering": 514, + "Window Covering Controller": 515, + "Heating/Cooling Unit": 768, + "Thermostat": 769, + "Fan": 43, + "Casting Video Player": 35, + "Speaker": 34, + "Content App": 36, + "Basic Video Player": 40, + "Casting Video Client": 41, + "Video Remote Control": 42, + "Mode Select": 39 +} diff --git a/examples/chef/sample_app_util/sample_app_util.py b/examples/chef/sample_app_util/sample_app_util.py new file mode 100644 index 00000000000000..08cfc87de62eda --- /dev/null +++ b/examples/chef/sample_app_util/sample_app_util.py @@ -0,0 +1,71 @@ +"""Utility to work with sample app device files. + +This utility helps with the following: +- Parsing sample app device files. +- Producing metadata files from sample app device files. +- Generating names for sample app device files. + +Usage: + python sample_app_util.py zap [options] + + python sample_app_util.py zap test_files/sample_zap_file.zap --generate-name + python sample_app_util.py zap test_files/sample_zap_file.zap --generate-metadata +""" + +import argparse +import os +import shutil + +import zap_file_parser + + +def zap_cmd_handler(args: argparse.Namespace) -> None: + """Handles args for zap_cmd_parser.""" + zap_file_path = args.zap_file + if args.generate_name: + print(zap_file_parser.generate_name(zap_file_path)) + elif args.rename_file: + name = zap_file_parser.generate_name(zap_file_path) + dirpath = os.path.dirname(zap_file_path) + hash_string = zap_file_parser.generate_hash(zap_file_path) + output_path = os.path.join(dirpath, f"{name}-{hash_string}.zap") + shutil.move(zap_file_path, output_path) + print(f"Renamed from: {zap_file_path} to {output_path}") + elif args.generate_hash_metadata: + created_file = zap_file_parser.generate_hash_metadata_file(zap_file_path) + print(f"Created {created_file}") + + +parser = argparse.ArgumentParser() +subparsers = parser.add_subparsers(dest="command") +subparsers.required = True + +zap_cmd_parser = subparsers.add_parser("zap", help="Command to operate on zap files.") +zap_cmd_parser.add_argument( + "zap_file", metavar="ZAP_FILE", type=str, help="Zap file to generate name for.") + +zap_cmd_group = zap_cmd_parser.add_mutually_exclusive_group() + +zap_cmd_group.add_argument( + "--generate-name", action="store_true", + help="Print the name file name according to the name convention" +) + +zap_cmd_parser.add_argument( + "--generate-hash-metadata", action="store_true", + help=( + "Generate the hash metadata file which provide information about what was included in " + "the hash digest.") +) + +zap_cmd_group.add_argument( + "--rename-file", action='store_true', + help="Rename the target zap file according to name convention." +) + +zap_cmd_parser.set_defaults(func=zap_cmd_handler) + + +if __name__ == "__main__": + args = parser.parse_args() + args.func(args) diff --git a/examples/chef/sample_app_util/test_files/sample_zap_file.zap b/examples/chef/sample_app_util/test_files/sample_zap_file.zap new file mode 100644 index 00000000000000..2868176f0c6b6d --- /dev/null +++ b/examples/chef/sample_app_util/test_files/sample_zap_file.zap @@ -0,0 +1,7698 @@ +{ + "featureLevel": 71, + "creator": "zap", + "keyValuePairs": [ + { + "key": "commandDiscovery", + "value": "1" + }, + { + "key": "defaultResponsePolicy", + "value": "always" + }, + { + "key": "manufacturerCodes", + "value": "0x1002" + } + ], + "package": [ + { + "pathRelativity": "relativeToZap", + "path": "../../../src/app/zap-templates/zcl/zcl.json", + "version": "ZCL Test Data", + "type": "zcl-properties" + }, + { + "pathRelativity": "relativeToZap", + "path": "../../../src/app/zap-templates/app-templates.json", + "version": "chip-v1", + "type": "gen-templates-json" + } + ], + "endpointTypes": [ + { + "name": "MA-rootdevice", + "deviceTypeName": "MA-rootdevice", + "deviceTypeCode": 22, + "deviceTypeProfileId": 259, + "clusters": [ + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "Identify", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "identify time", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Groups", + "code": 4, + "mfgCode": null, + "define": "GROUPS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AddGroup", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ViewGroup", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GetGroupMembership", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveGroup", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveAllGroups", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "AddGroupIfIdentifying", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Groups", + "code": 4, + "mfgCode": null, + "define": "GROUPS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "AddGroupResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ViewGroupResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "GetGroupMembershipResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveGroupResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "name support", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Scenes", + "code": 5, + "mfgCode": null, + "define": "SCENES_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AddScene", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ViewScene", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveScene", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveAllScenes", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StoreScene", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RecallScene", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GetSceneMembership", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Scenes", + "code": 5, + "mfgCode": null, + "define": "SCENES_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [ + { + "name": "AddSceneResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ViewSceneResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveSceneResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveAllScenesResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "StoreSceneResponse", + "code": 4, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "GetSceneMembershipResponse", + "code": 6, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "SceneCount", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentScene", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentGroup", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "group_id", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SceneValid", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NameSupport", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "On/Off", + "code": 6, + "mfgCode": null, + "define": "ON_OFF_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "Off", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "On", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Toggle", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "On/Off", + "code": 6, + "mfgCode": null, + "define": "ON_OFF_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "OnOff", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "On/off Switch Configuration", + "code": 7, + "mfgCode": null, + "define": "ON_OFF_SWITCH_CONFIG_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "On/off Switch Configuration", + "code": 7, + "mfgCode": null, + "define": "ON_OFF_SWITCH_CONFIG_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "switch type", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "switch actions", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Level Control", + "code": 8, + "mfgCode": null, + "define": "LEVEL_CONTROL_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "MoveToLevel", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Move", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Step", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Stop", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "MoveToLevelWithOnOff", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "MoveWithOnOff", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StepWithOnOff", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StopWithOnOff", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Level Control", + "code": 8, + "mfgCode": null, + "define": "LEVEL_CONTROL_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "current level", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Descriptor", + "code": 29, + "mfgCode": null, + "define": "DESCRIPTOR_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Descriptor", + "code": 29, + "mfgCode": null, + "define": "DESCRIPTOR_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "device list", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "server list", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "client list", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "parts list", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Access Control", + "code": 31, + "mfgCode": null, + "define": "ACCESS_CONTROL_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Access Control", + "code": 31, + "mfgCode": null, + "define": "ACCESS_CONTROL_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "ACL", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Extension", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SubjectsPerAccessControlEntry", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "TargetsPerAccessControlEntry", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AccessControlEntriesPerFabric", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Basic", + "code": 40, + "mfgCode": null, + "define": "BASIC_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Basic", + "code": 40, + "mfgCode": null, + "define": "BASIC_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "DataModelRevision", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "10", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "VendorName", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "VendorID", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "vendor_id", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductName", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductID", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NodeLabel", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "NVM", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Location", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "XX", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "HardwareVersion", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "HardwareVersionString", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SoftwareVersion", + "code": 9, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SoftwareVersionString", + "code": 10, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ManufacturingDate", + "code": 11, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "20210614123456ZZ", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PartNumber", + "code": 12, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductURL", + "code": 13, + "mfgCode": null, + "side": "server", + "type": "long_char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductLabel", + "code": 14, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SerialNumber", + "code": 15, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "LocalConfigDisabled", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "NVM", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Reachable", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "UniqueID", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CapabilityMinima", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "CapabilityMinimaStruct", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "OTA Software Update Provider", + "code": 41, + "mfgCode": null, + "define": "OTA_PROVIDER_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "QueryImage", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ApplyUpdateRequest", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "NotifyUpdateApplied", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "OTA Software Update Provider", + "code": 41, + "mfgCode": null, + "define": "OTA_PROVIDER_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [ + { + "name": "QueryImageResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ApplyUpdateResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "OTA Software Update Requestor", + "code": 42, + "mfgCode": null, + "define": "OTA_REQUESTOR_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AnnounceOtaProvider", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "OTA Software Update Requestor", + "code": 42, + "mfgCode": null, + "define": "OTA_REQUESTOR_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "DefaultOtaProviders", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "UpdatePossible", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "UpdateState", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "OTAUpdateStateEnum", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "UpdateStateProgress", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Localization Configuration", + "code": 43, + "mfgCode": null, + "define": "LOCALIZATION_CONFIGURATION_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [] + }, + { + "name": "Localization Configuration", + "code": 43, + "mfgCode": null, + "define": "LOCALIZATION_CONFIGURATION_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "ActiveLocale", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "en-US", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SupportedLocales", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Time Format Localization", + "code": 44, + "mfgCode": null, + "define": "TIME_FORMAT_LOCALIZATION_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [] + }, + { + "name": "Time Format Localization", + "code": 44, + "mfgCode": null, + "define": "TIME_FORMAT_LOCALIZATION_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "HourFormat", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "HourFormat", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ActiveCalendarType", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "CalendarType", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SupportedCalendarTypes", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Unit Localization", + "code": 45, + "mfgCode": null, + "define": "UNIT_LOCALIZATION_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [] + }, + { + "name": "Unit Localization", + "code": 45, + "mfgCode": null, + "define": "UNIT_LOCALIZATION_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "TemperatureUnit", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "TempUnit", + "included": 0, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "General Commissioning", + "code": 48, + "mfgCode": null, + "define": "GENERAL_COMMISSIONING_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ArmFailSafe", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "SetRegulatoryConfig", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "CommissioningComplete", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "General Commissioning", + "code": 48, + "mfgCode": null, + "define": "GENERAL_COMMISSIONING_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "ArmFailSafeResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "SetRegulatoryConfigResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "CommissioningCompleteResponse", + "code": 5, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "Breadcrumb", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "BasicCommissioningInfo", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "BasicCommissioningInfo", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RegulatoryConfig", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "RegulatoryLocationType", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LocationCapability", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "RegulatoryLocationType", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "6", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Network Commissioning", + "code": 49, + "mfgCode": null, + "define": "NETWORK_COMMISSIONING_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ScanNetworks", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "AddOrUpdateWiFiNetwork", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "AddOrUpdateThreadNetwork", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveNetwork", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ConnectNetwork", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ReorderNetwork", + "code": 8, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Network Commissioning", + "code": 49, + "mfgCode": null, + "define": "NETWORK_COMMISSIONING_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "ScanNetworksResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "NetworkConfigResponse", + "code": 5, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ConnectNetworkResponse", + "code": 7, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "MaxNetworks", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Networks", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ScanMaxTimeSeconds", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ConnectMaxTimeSeconds", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "InterfaceEnabled", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LastNetworkingStatus", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "NetworkCommissioningStatus", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LastNetworkID", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "octet_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LastConnectErrorValue", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int32s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Diagnostic Logs", + "code": 50, + "mfgCode": null, + "define": "DIAGNOSTIC_LOGS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "RetrieveLogsRequest", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "General Diagnostics", + "code": 51, + "mfgCode": null, + "define": "GENERAL_DIAGNOSTICS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "General Diagnostics", + "code": 51, + "mfgCode": null, + "define": "GENERAL_DIAGNOSTICS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "NetworkInterfaces", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RebootCount", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "UpTime", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "TotalOperationalHours", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BootReasons", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ActiveHardwareFaults", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ActiveRadioFaults", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ActiveNetworkFaults", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Software Diagnostics", + "code": 52, + "mfgCode": null, + "define": "SOFTWARE_DIAGNOSTICS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ResetWatermarks", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Software Diagnostics", + "code": 52, + "mfgCode": null, + "define": "SOFTWARE_DIAGNOSTICS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "ThreadMetrics", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentHeapFree", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentHeapUsed", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentHeapHighWatermark", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Thread Network Diagnostics", + "code": 53, + "mfgCode": null, + "define": "THREAD_NETWORK_DIAGNOSTICS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ResetCounts", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Thread Network Diagnostics", + "code": 53, + "mfgCode": null, + "define": "THREAD_NETWORK_DIAGNOSTICS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "channel", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RoutingRole", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NetworkName", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PanId", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ExtendedPanId", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MeshLocalPrefix", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "octet_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OverrunCount", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NeighborTableList", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RouteTableList", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PartitionId", + "code": 9, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "weighting", + "code": 10, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "DataVersion", + "code": 11, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "StableDataVersion", + "code": 12, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "LeaderRouterId", + "code": 13, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "DetachedRoleCount", + "code": 14, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ChildRoleCount", + "code": 15, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RouterRoleCount", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "LeaderRoleCount", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "AttachAttemptCount", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PartitionIdChangeCount", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "BetterPartitionAttachAttemptCount", + "code": 20, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ParentChangeCount", + "code": 21, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxTotalCount", + "code": 22, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxUnicastCount", + "code": 23, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxBroadcastCount", + "code": 24, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxAckRequestedCount", + "code": 25, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxAckedCount", + "code": 26, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxNoAckRequestedCount", + "code": 27, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxDataCount", + "code": 28, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxDataPollCount", + "code": 29, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxBeaconCount", + "code": 30, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxBeaconRequestCount", + "code": 31, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxOtherCount", + "code": 32, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxRetryCount", + "code": 33, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxDirectMaxRetryExpiryCount", + "code": 34, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxIndirectMaxRetryExpiryCount", + "code": 35, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxErrCcaCount", + "code": 36, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxErrAbortCount", + "code": 37, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxErrBusyChannelCount", + "code": 38, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxTotalCount", + "code": 39, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxUnicastCount", + "code": 40, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxBroadcastCount", + "code": 41, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxDataCount", + "code": 42, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxDataPollCount", + "code": 43, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxBeaconCount", + "code": 44, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxBeaconRequestCount", + "code": 45, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxOtherCount", + "code": 46, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxAddressFilteredCount", + "code": 47, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxDestAddrFilteredCount", + "code": 48, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxDuplicatedCount", + "code": 49, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxErrNoFrameCount", + "code": 50, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxErrUnknownNeighborCount", + "code": 51, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxErrInvalidSrcAddrCount", + "code": 52, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxErrSecCount", + "code": 53, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxErrFcsCount", + "code": 54, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxErrOtherCount", + "code": 55, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ActiveTimestamp", + "code": 56, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PendingTimestamp", + "code": 57, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "delay", + "code": 58, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SecurityPolicy", + "code": 59, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ChannelMask", + "code": 60, + "mfgCode": null, + "side": "server", + "type": "octet_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OperationalDatasetComponents", + "code": 61, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ActiveNetworkFaultsList", + "code": 62, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x000F", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "WiFi Network Diagnostics", + "code": 54, + "mfgCode": null, + "define": "WIFI_NETWORK_DIAGNOSTICS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ResetCounts", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "WiFi Network Diagnostics", + "code": 54, + "mfgCode": null, + "define": "WIFI_NETWORK_DIAGNOSTICS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "bssid", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "octet_string", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SecurityType", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "SecurityType", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "WiFiVersion", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "WiFiVersionType", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ChannelNumber", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Rssi", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int8s", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "BeaconLostCount", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BeaconRxCount", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PacketMulticastRxCount", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PacketMulticastTxCount", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PacketUnicastRxCount", + "code": 9, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PacketUnicastTxCount", + "code": 10, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentMaxRate", + "code": 11, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OverrunCount", + "code": 12, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Ethernet Network Diagnostics", + "code": 55, + "mfgCode": null, + "define": "ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ResetCounts", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Ethernet Network Diagnostics", + "code": 55, + "mfgCode": null, + "define": "ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "PHYRate", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "PHYRateType", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FullDuplex", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PacketRxCount", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PacketTxCount", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxErrCount", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CollisionCount", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OverrunCount", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CarrierDetect", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "TimeSinceReset", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Switch", + "code": 59, + "mfgCode": null, + "define": "SWITCH_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [] + }, + { + "name": "Switch", + "code": 59, + "mfgCode": null, + "define": "SWITCH_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "AdministratorCommissioning", + "code": 60, + "mfgCode": null, + "define": "ADMINISTRATOR_COMMISSIONING_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "OpenCommissioningWindow", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "OpenBasicCommissioningWindow", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RevokeCommissioning", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "AdministratorCommissioning", + "code": 60, + "mfgCode": null, + "define": "ADMINISTRATOR_COMMISSIONING_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "WindowStatus", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AdminFabricIndex", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "fabric_idx", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AdminVendorId", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Operational Credentials", + "code": 62, + "mfgCode": null, + "define": "OPERATIONAL_CREDENTIALS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AttestationRequest", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "CertificateChainRequest", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "CSRRequest", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "AddNOC", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "UpdateNOC", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "UpdateFabricLabel", + "code": 9, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveFabric", + "code": 10, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "AddTrustedRootCertificate", + "code": 11, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveTrustedRootCertificate", + "code": 12, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Operational Credentials", + "code": 62, + "mfgCode": null, + "define": "OPERATIONAL_CREDENTIALS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "AttestationResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "CertificateChainResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "CSRResponse", + "code": 5, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "NOCResponse", + "code": 8, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "NOCs", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Fabrics", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SupportedFabrics", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CommissionedFabrics", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TrustedRootCertificates", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentFabricIndex", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "fabric_idx", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Group Key Management", + "code": 63, + "mfgCode": null, + "define": "GROUP_KEY_MANAGEMENT_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "KeySetWrite", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "KeySetRead", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "KeySetRemove", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "KeySetReadAllIndices", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [] + }, + { + "name": "Group Key Management", + "code": 63, + "mfgCode": null, + "define": "GROUP_KEY_MANAGEMENT_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "KeySetReadResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "KeySetReadAllIndicesResponse", + "code": 5, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "GroupKeyMap", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GroupTable", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxGroupsPerFabric", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxGroupKeysPerFabric", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Fixed Label", + "code": 64, + "mfgCode": null, + "define": "FIXED_LABEL_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [] + }, + { + "name": "Fixed Label", + "code": 64, + "mfgCode": null, + "define": "FIXED_LABEL_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "label list", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "User Label", + "code": 65, + "mfgCode": null, + "define": "USER_LABEL_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [] + }, + { + "name": "User Label", + "code": 65, + "mfgCode": null, + "define": "USER_LABEL_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "label list", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + } + ] + }, + { + "name": "MA-dimmablelight", + "deviceTypeName": "MA-dimmablelight", + "deviceTypeCode": 257, + "deviceTypeProfileId": 259, + "clusters": [ + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "Identify", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "TriggerEffect", + "code": 64, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "identify time", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "identify type", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Groups", + "code": 4, + "mfgCode": null, + "define": "GROUPS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AddGroup", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ViewGroup", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GetGroupMembership", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveGroup", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveAllGroups", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "AddGroupIfIdentifying", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Groups", + "code": 4, + "mfgCode": null, + "define": "GROUPS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "AddGroupResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ViewGroupResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "GetGroupMembershipResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveGroupResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "name support", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Scenes", + "code": 5, + "mfgCode": null, + "define": "SCENES_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AddScene", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ViewScene", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveScene", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveAllScenes", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StoreScene", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RecallScene", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GetSceneMembership", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "EnhancedAddScene", + "code": 64, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "EnhancedViewScene", + "code": 65, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "CopyScene", + "code": 66, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Scenes", + "code": 5, + "mfgCode": null, + "define": "SCENES_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [ + { + "name": "AddSceneResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ViewSceneResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveSceneResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveAllScenesResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "StoreSceneResponse", + "code": 4, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "GetSceneMembershipResponse", + "code": 6, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "SceneCount", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentScene", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentGroup", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "group_id", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SceneValid", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NameSupport", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "On/Off", + "code": 6, + "mfgCode": null, + "define": "ON_OFF_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "Off", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "On", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Toggle", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "OffWithEffect", + "code": 64, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "OnWithRecallGlobalScene", + "code": 65, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "OnWithTimedOff", + "code": 66, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "On/Off", + "code": 6, + "mfgCode": null, + "define": "ON_OFF_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "OnOff", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "GlobalSceneControl", + "code": 16384, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OnTime", + "code": 16385, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OffWaitTime", + "code": 16386, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "StartUpOnOff", + "code": 16387, + "mfgCode": null, + "side": "server", + "type": "OnOffStartUpOnOff", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFF", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Level Control", + "code": 8, + "mfgCode": null, + "define": "LEVEL_CONTROL_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "MoveToLevel", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Move", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Step", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Stop", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "MoveToLevelWithOnOff", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "MoveWithOnOff", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StepWithOnOff", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StopWithOnOff", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Level Control", + "code": 8, + "mfgCode": null, + "define": "LEVEL_CONTROL_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "current level", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "remaining time", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "min level", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "max level", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFE", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "current frequency", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "min frequency", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "max frequency", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "options", + "code": 15, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "on off transition time", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "on level", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFF", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "on transition time", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "off transition time", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "default move rate", + "code": 20, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "start up current level", + "code": 16384, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "255", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Descriptor", + "code": 29, + "mfgCode": null, + "define": "DESCRIPTOR_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Descriptor", + "code": 29, + "mfgCode": null, + "define": "DESCRIPTOR_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "device list", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "server list", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "client list", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "parts list", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Basic", + "code": 40, + "mfgCode": null, + "define": "BASIC_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Basic", + "code": 40, + "mfgCode": null, + "define": "BASIC_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "DataModelRevision", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "10", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "VendorName", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "VendorID", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "vendor_id", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductName", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductID", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NodeLabel", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "NVM", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Location", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "XX", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "HardwareVersion", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "HardwareVersionString", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SoftwareVersion", + "code": 9, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SoftwareVersionString", + "code": 10, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ManufacturingDate", + "code": 11, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "20210614123456ZZ", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PartNumber", + "code": 12, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductURL", + "code": 13, + "mfgCode": null, + "side": "server", + "type": "long_char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductLabel", + "code": 14, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SerialNumber", + "code": 15, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "LocalConfigDisabled", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "NVM", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Reachable", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "UniqueID", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CapabilityMinima", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "CapabilityMinimaStruct", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Color Control", + "code": 768, + "mfgCode": null, + "define": "COLOR_CONTROL_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "MoveToHue", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "MoveHue", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StepHue", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "MoveToSaturation", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "MoveSaturation", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StepSaturation", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "MoveToHueAndSaturation", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "MoveToColor", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveColor", + "code": 8, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepColor", + "code": 9, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToColorTemperature", + "code": 10, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "EnhancedMoveToHue", + "code": 64, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "EnhancedMoveHue", + "code": 65, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "EnhancedStepHue", + "code": 66, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "EnhancedMoveToHueAndSaturation", + "code": 67, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ColorLoopSet", + "code": 68, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StopMoveStep", + "code": 71, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "MoveColorTemperature", + "code": 75, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StepColorTemperature", + "code": 76, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Color Control", + "code": 768, + "mfgCode": null, + "define": "COLOR_CONTROL_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "CurrentHue", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentSaturation", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RemainingTime", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentX", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x616B", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentY", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x607D", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "DriftCompensation", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CompensationText", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorTemperature", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00FA", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorMode", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Options", + "code": 15, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NumberOfPrimaries", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "EnhancedCurrentHue", + "code": 16384, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "EnhancedColorMode", + "code": 16385, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorLoopActive", + "code": 16386, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorLoopDirection", + "code": 16387, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorLoopTime", + "code": 16388, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0019", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorLoopStartEnhancedHue", + "code": 16389, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x2300", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorLoopStoredEnhancedHue", + "code": 16390, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorCapabilities", + "code": 16394, + "mfgCode": null, + "side": "server", + "type": "bitmap16", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorTempPhysicalMinMireds", + "code": 16395, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorTempPhysicalMaxMireds", + "code": 16396, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFEFF", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CoupleColorTempToLevelMinMireds", + "code": 16397, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "StartUpColorTemperatureMireds", + "code": 16400, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Occupancy Sensing", + "code": 1030, + "mfgCode": null, + "define": "OCCUPANCY_SENSING_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Occupancy Sensing", + "code": 1030, + "mfgCode": null, + "define": "OCCUPANCY_SENSING_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "occupancy", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "occupancy sensor type", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "occupancy sensor type bitmap", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + } + ] + } + ], + "endpoints": [ + { + "endpointTypeName": "MA-rootdevice", + "endpointTypeIndex": 0, + "profileId": 259, + "endpointId": 0, + "networkId": 0, + "endpointVersion": 1, + "deviceIdentifier": 22 + }, + { + "endpointTypeName": "MA-dimmablelight", + "endpointTypeIndex": 1, + "profileId": 259, + "endpointId": 1, + "networkId": 0, + "endpointVersion": 1, + "deviceIdentifier": 257 + } + ] +} \ No newline at end of file diff --git a/examples/chef/sample_app_util/test_files/sample_zap_file_hashmeta.yaml b/examples/chef/sample_app_util/test_files/sample_zap_file_hashmeta.yaml new file mode 100644 index 00000000000000..b42a98e0d8943a --- /dev/null +++ b/examples/chef/sample_app_util/test_files/sample_zap_file_hashmeta.yaml @@ -0,0 +1,90 @@ +- RootNode/22: + client_clusters: + OtaSoftwareUpdateProvider/41: + attributes: + FeatureMap/65532: '0' + server_clusters: + AccessControl/31: + attributes: + FeatureMap/65532: '0' + AdministratorCommissioning/60: + attributes: + FeatureMap/65532: '0' + Basic/40: + attributes: + FeatureMap/65532: '0' + Descriptor/29: + attributes: + FeatureMap/65532: '0' + DiagnosticLogs/50: + attributes: + FeatureMap/65532: '0' + EthernetNetworkDiagnostics/55: + attributes: + FeatureMap/65532: '3' + FixedLabel/64: + attributes: + FeatureMap/65532: '0' + GeneralCommissioning/48: + attributes: + FeatureMap/65532: '6' + GeneralDiagnostics/51: + attributes: + FeatureMap/65532: '0' + GroupKeyManagement/63: + attributes: + FeatureMap/65532: '0' + Groups/4: + attributes: + FeatureMap/65532: '0' + LocalizationConfiguration/43: + attributes: + FeatureMap/65532: '0' + OperationalCredentials/62: + attributes: + FeatureMap/65532: '0' + OtaSoftwareUpdateRequestor/42: + attributes: + FeatureMap/65532: '0' + SoftwareDiagnostics/52: + attributes: + FeatureMap/65532: '1' + Switch/59: + attributes: + FeatureMap/65532: '0' + ThreadNetworkDiagnostics/53: + attributes: + FeatureMap/65532: '15' + TimeFormatLocalization/44: + attributes: + FeatureMap/65532: '0' + UserLabel/65: + attributes: + FeatureMap/65532: '0' + WiFiNetworkDiagnostics/54: + attributes: + FeatureMap/65532: '3' +- DimmableLight/257: + client_clusters: {} + server_clusters: + ColorControl/768: + attributes: + FeatureMap/65532: '0' + Descriptor/29: + attributes: + FeatureMap/65532: '0' + Groups/4: + attributes: + FeatureMap/65532: '0' + Identify/3: + attributes: + FeatureMap/65532: '0' + LevelControl/8: + attributes: + FeatureMap/65532: '3' + OccupancySensing/1030: + attributes: + FeatureMap/65532: '0' + OnOff/6: + attributes: + FeatureMap/65532: '1' diff --git a/examples/chef/sample_app_util/test_zap_file_parser.py b/examples/chef/sample_app_util/test_zap_file_parser.py new file mode 100644 index 00000000000000..a49345ad128eb1 --- /dev/null +++ b/examples/chef/sample_app_util/test_zap_file_parser.py @@ -0,0 +1,63 @@ +"""Tests for zap_file_parser.py + +Usage: +python -m unittest +""" + +import os +import shutil +import tempfile +import unittest + +try: + import yaml +except ImportError: + print("Missing yaml library. Install with:\npip install pyyaml") + exit(1) + +import zap_file_parser + + +_HERE = os.path.abspath(os.path.dirname(__file__)) +_TEST_FILE = os.path.join(_HERE, "test_files", "sample_zap_file.zap") +_TEST_METADATA = os.path.join(_HERE, "test_files", "sample_zap_file_hashmeta.yaml") + + +class TestZapFileParser(unittest.TestCase): + """Testcases for zap_file_parser.py.""" + + def test_generate_hash(self): + """Tests generate_hash function.""" + hash_string = zap_file_parser.generate_hash(_TEST_FILE) + self.assertEqual(hash_string, "Xir1gEfjij", "Hash is incorrectly generated.") + + def test_generate_metadata(self): + """Tests generate_metadata.""" + generated_metadata = zap_file_parser.generate_hash_metadata(_TEST_FILE) + with open(_TEST_METADATA) as f: + expected_metadata = yaml.load(f.read(), Loader=yaml.FullLoader) + self.assertEqual( + generated_metadata, expected_metadata, "Metadata not generated correctly.") + + def test_generate_metadata_file(self): + """Tests generate_metadata_file.""" + with tempfile.TemporaryDirectory(dir=os.path.dirname(_HERE)) as dir: + zap_file = os.path.join(dir, "test_file.zap") + hashmeta_file = os.path.join(dir, "test_file_hashmeta.yaml") + shutil.copy(_TEST_FILE, zap_file) + zap_file_parser.generate_hash_metadata_file(zap_file) + with open(hashmeta_file) as f: + generated_metadata = yaml.load(f.read(), Loader=yaml.FullLoader) + with open(_TEST_METADATA) as f: + expected_metadata = yaml.load(f.read(), Loader=yaml.FullLoader) + self.assertEqual( + generated_metadata, expected_metadata, "Metadata file not generated correctly.") + + def test_generate_name(self): + """Tests generate_name.""" + name = zap_file_parser.generate_name(_TEST_FILE) + self.assertEqual(name, "rootnode_dimmablelight_Xir1gEfjij", "Name incorrectly generated.") + + +if __name__ == "__main__": + unittest.main() diff --git a/examples/chef/sample_app_util/zap_file_parser.py b/examples/chef/sample_app_util/zap_file_parser.py new file mode 100644 index 00000000000000..66a09c0c70e27a --- /dev/null +++ b/examples/chef/sample_app_util/zap_file_parser.py @@ -0,0 +1,353 @@ +"""Module for parsing zap files for use in sample_app_util.py. + + +Note on generating the hash: + Care must be taken to produce a hash value which is not affected by updates to the zap file. + For this reason, it is necessary to ensure a consistent order for all lists. It is also + necessary to generate a minimum set of parameters that can be used to uniquely identify a + particular build. In this case, the hash is generated from the metadata file data. + + The actual hash is generated by digesting the output from json.dumps() with `sort_keys=True`. + The json lib is a good choice here because it is a Python standard lib and the output is + unlikely to change. Additionally, using `sort_keys=True` provides us with a guaranteed output + for the ordering of dict keys. + + After generating the hash, the hash is converted to base64 and the first 10 characters are used. + The probability of a collision (with 100,000 items) is 1-exp(-100000^2/62^10) ~= 1.2 x 10^-8. + +Conventions used for constructing the metadata file: + - All lists are sorted alphabetically. + - If a list contains dicts, it will be sorted by the "name" key. If it does not contain "name" + key, it will be sorted by the first key common to all dicts that comes first alphabetically. + - The list of endpoints is excluded from the above conventions. Endpoints are ordered according + to their endpoint number; here, the endpoint number is the same as the order they are read + from the zap file. + +Future work: + - _load_matter_device_types should be updated to get the mapping for device type ID and device + name from the matter spec directly. This should be done once the matter spec becomes publicly + available. + - Add support for .matter files. +""" +import copy +import base64 +import hashlib +import json +import os +import re + +from typing import Dict, List, Literal, Optional, Sequence, TypedDict, Union + +try: + import yaml +except ImportError: + print("Missing yaml library. Install with:\npip install pyyaml") + exit(1) + +_NETWORK_COMMISSIONING_CODE = "49" +_FEATURE_MAP_CODE = "65532" + +_ATTRIBUTE_ALLOW_LIST = ( + _FEATURE_MAP_CODE, # Feature Map +) + +_HERE = os.path.abspath(os.path.dirname(__file__)) +_MATTER_DEVICE_LIST = os.path.join(_HERE, "matter_device_types.json") + + +class ClusterType(TypedDict): + commands: List[str] + attributes: Dict[str, str] + + +class EndpointType(TypedDict): + client_clusters: Dict[str, ClusterType] + server_clusters: Dict[str, ClusterType] + + +def _b64encode(input_data: bytes) -> bytes: + """Returns urlsafe base64 encoded with padding removed.""" + return base64.urlsafe_b64encode(input_data).strip(b"=") + + +def _b64decode(input_data: bytes) -> bytes: + """Returns urlsafe base64 decoded with padding added.""" + # "=" is padding character that doesn't carry info. + # Adding 2x "=" will handle all edge cases where there may be + # incorrect number of bytes. + return base64.urlsafe_b64decode(input_data + b"==") + + +def _convert_metadata_name(name: str, code: Union[int, str]) -> str: + """Converts a name for use in a metadata file - CamelCaseName/ID.""" + # Preserve camel case if it's already there + name = re.sub(r"([A-Z]+)", r" \1", name).title() + # Convert to camel case and append ID + return re.sub(r"[^a-zA-Z]+", "", name.title()) + f"/{int(code)}" + + +def _convert_filename(name: str) -> str: + """Converts a pretty name into a file friendly one.""" + return re.sub(r"[^a-zA-Z]+", "", name).lower() + + +def _load_matter_device_types() -> Dict[Union[int, str], Union[int, str]]: + """Load matter device type reversible mapping. + + This function should be updated to pull from the Matter spec once it is available publicly. + + Returns: + A dictionary mapping Matter device type IDs to their proper name and vice versa. + """ + with open(_MATTER_DEVICE_LIST) as f: + mapping = json.loads(f.read()) + reverse_mapping = {} + for key, val in mapping.items(): + reverse_mapping[val] = key + mapping.update(reverse_mapping) + return mapping + + +def _read_value(input_string: str) -> str: + """Convert various numeric forms to regular decimal format if possible.""" + ret_val = "" + if not input_string: + ret_val = "" + if "0x" in input_string: + ret_val = int(input_string, 16) + elif "." in input_string: + try: + ret_val = float(input_string) + except ValueError: + pass + else: + try: + ret_val = int(input_string) + except ValueError: + pass + return str(ret_val) + + +def _convert_metadata_to_hashable_digest(metadata_input: Sequence[Dict[str, EndpointType]]) -> str: + """Converts metadata input into a hashable digest. + + Note that the output produced here is consistent across runs. Lists are sorted and dictionaries + are sorted by their keys. + + Args: + metadata_input: Metadata input produced from a zap file or read in from the hashable file. + + Returns: + Hashable string for digest into a hash algorithm. + """ + metadata = copy.deepcopy(metadata_input) + + # Replace endpoint, cluster, attribute, and commands names with IDs + + # Replace endpoint names + for endpoint in metadata: + endpoint_key = list(endpoint.keys())[0] + endpoint_id = _get_id(endpoint_key) + endpoint[endpoint_id] = endpoint.pop(endpoint_key) + endpoint_obj = endpoint[endpoint_id] + + # Replace cluster names + for cluster_type in ["client_clusters", "server_clusters"]: + for cluster_key in list(endpoint_obj[cluster_type].keys()): + cluster_id = _get_id(cluster_key) + endpoint_obj[cluster_type][cluster_id] = endpoint_obj[cluster_type].pop(cluster_key) + cluster_obj = endpoint_obj[cluster_type][cluster_id] + + # Replace attribute names + attribute_obj = cluster_obj["attributes"] + attribute_keys = list(cluster_obj["attributes"]) + for attribute_key in attribute_keys: + attribute_id = _get_id(attribute_key) + attribute_obj[attribute_id] = attribute_obj.pop(attribute_key) + + # Replace command names + if "commands" in cluster_obj: + command_keys = cluster_obj["commands"] + cluster_obj["commands"] = [_get_id(x) for x in command_keys] + cluster_obj["commands"].sort() + + return json.dumps(metadata, sort_keys=True) + + +def _get_id(name): + """Gets id from a condensed name which is formatted like: name/id.""" + return name.split("/")[-1] + + +def generate_hash(zap_file_path: str) -> str: + """Generates a hash for a zap file. + + Args: + zap_file_path: Path to the zap file. + + Returns: + MD5 hash of the metadata generated from the zap file. + This is converted to base64 and then the first 10 characters are used. + """ + parsed = generate_hash_metadata(zap_file_path) + # Use json.dumps to produce a consistent output for the object passed into it. + digestible_content = _convert_metadata_to_hashable_digest(parsed) + md5_hash = hashlib.md5(digestible_content.encode("utf-8")).digest() + output = str(_b64encode(md5_hash), encoding="utf-8")[:10] + # Replace "-" and "_" with "a" and "b". + # The reason for doing this is to allow the generated name to be parsed by splitting on "_". + # Replacing "-" makes the name easier to parse visually. + # This increases likelihood of hash collisions, but minimally so. See module docstring. + return output.replace("-", "a").replace("_", "b") + + +def generate_hash_metadata(zap_file_path: str) -> List[Dict[str, EndpointType]]: + """Generates metadata for hash digest consumption.""" + return generate_metadata( + zap_file_path=zap_file_path, + attribute_allow_list=_ATTRIBUTE_ALLOW_LIST, + include_commands=False, + include_platform_specific_info=False) + + +def generate_metadata( + zap_file_path: str, + attribute_allow_list: Optional[Sequence[str]] = _ATTRIBUTE_ALLOW_LIST, + include_commands: bool = False, + include_platform_specific_info: bool = False) -> List[Dict[str, EndpointType]]: + """Parses a zap_file and returns structure containing minimal content. + + The lists provided in the returned objects are sorted except for the top level list of endpoints. + Lists containing dicts will be sorted by the "name" key of the individual dicts. + + Args: + zap_file_path: Path to the zap file. + attribute_allow_list: List of attribute IDs which are included in the metadata. + If set to None then all attributes will be included. + include_commands: Whether to include commands in the metadata. + include_platform_specific_info: Whether to include platform specific information. + Omitting this allows us to generate a hash that is agnostic of the platform. + + Returns: + Dictionary containing information about endpoints and clusters. Format will be as follows: + [ + { + /: { + "server_clusters": { + /: { + "commands": [ + / + ], + "attributes": { + /: , + } + } + } + "client_clusters": { ... } + } + /: { ... } + } + ] + """ + endpoint_names = _load_matter_device_types() + with open(zap_file_path) as f: + app_data = json.loads(f.read()) + + return_obj: List[Dict[str, EndpointType]] = [] + + for endpoint in app_data["endpointTypes"]: + device_type_id = endpoint["deviceTypeCode"] + device_type_name = endpoint_names[device_type_id] + + endpoint_ref = _convert_metadata_name(device_type_name, device_type_id) + endpoint_obj: Dict[str, EndpointType] = {endpoint_ref: {}} + return_obj.append(endpoint_obj) + + client_clusters: Dict[str, ClusterType] = {} + server_clusters: Dict[str, ClusterType] = {} + + endpoint_obj[endpoint_ref]["client_clusters"] = client_clusters + endpoint_obj[endpoint_ref]["server_clusters"] = server_clusters + + for cluster in endpoint["clusters"]: + # The network commissioning cluster contains platform specific details + # such as how the platform will be commissioned to the matter fabric. + if (not include_platform_specific_info and + str(cluster["code"]) == _NETWORK_COMMISSIONING_CODE): + continue + if not cluster["enabled"]: + continue + + cluster_ref = _convert_metadata_name(cluster["name"], cluster["code"]) + + if include_commands: + cluster_obj: ClusterType = {"attributes": {}, "commands": []} + else: + cluster_obj: ClusterType = {"attributes": {}} + + for attribute in cluster["attributes"]: + attribute_allowed = ( + attribute_allow_list is None or str(attribute["code"]) in attribute_allow_list) + if attribute["included"] and attribute_allowed: + attribute_ref = _convert_metadata_name(attribute["name"], attribute["code"]) + value = _read_value(attribute["defaultValue"]) + cluster_obj["attributes"][attribute_ref] = value + + # Add a default feature map if none is provided + if "FeatureMap/65532" not in cluster_obj["attributes"]: + cluster_obj["attributes"]["FeatureMap/65532"] = "0" + + if include_commands: + for command in cluster["commands"]: + command_ref = _convert_metadata_name(command["name"], command["code"]) + if cluster["side"] == "client" and command["outgoing"] == 1: + cluster_obj["commands"].append(command_ref) + elif cluster["side"] == "server" and command["incoming"] == 1: + cluster_obj["commands"].append(command_ref) + + cluster_obj["commands"] = sorted(cluster_obj["commands"]) + + if cluster["side"] == "client": + client_clusters[cluster_ref] = cluster_obj + else: + server_clusters[cluster_ref] = cluster_obj + + return return_obj + + +def generate_hash_metadata_file(zap_file_path: str) -> str: + """Generates hash metadata file for a zap file input. + + The purpose of this file is to inform the user what data was included in the hash digest. + + Args: + zap_file_path: Path to the zap file to parse for generating the metadata file. + """ + parsed = generate_hash_metadata(zap_file_path) + output = yaml.dump(parsed, indent=4, sort_keys=True) + + dirname, filename = os.path.split(zap_file_path) + + filename = os.path.splitext(filename)[0] + output_file_path = os.path.join(dirname, f"{filename}_hashmeta.yaml") + with open(output_file_path, "w") as f: + f.write(output) + return output_file_path + + +def generate_name(zap_file_path: str) -> str: + """Generates the name for a zap file following convention. + + Args: + zap_file_path: Path to the zap file to parse for generating the metadata file. + + Returns: + Name of the file generated by following convention. + """ + parsed = generate_metadata(zap_file_path) + names = [] + for endpoint in parsed: + name = next(iter(endpoint)) + names.append(_convert_filename(name)) + hash_string = generate_hash(zap_file_path) + return "_".join(names) + f"_{hash_string}" diff --git a/examples/chef/setup.py b/examples/chef/setup.py new file mode 100644 index 00000000000000..e80c86f465f238 --- /dev/null +++ b/examples/chef/setup.py @@ -0,0 +1,28 @@ +# Copyright (c) 2022 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. + + +"""The chef package.""" + +import setuptools # type: ignore + +setuptools.setup( + name='chef', + version='0.0.1', + author='Project CHIP Authors', + description='Build custom sample apps for supported platforms', + packages=setuptools.find_packages(), + package_data={'chef': ['py.typed']}, + zip_safe=False, +) diff --git a/examples/chef/stateful_shell.py b/examples/chef/stateful_shell.py index 56ba52bf493464..720b7107c79028 100644 --- a/examples/chef/stateful_shell.py +++ b/examples/chef/stateful_shell.py @@ -17,16 +17,26 @@ import subprocess import sys import tempfile -from typing import Dict +import time +from typing import Dict, Optional import constants +_ENV_FILENAME = ".shell_env" +_OUTPUT_FILENAME = ".shell_output" +_HERE = os.path.dirname(os.path.abspath(__file__)) +_TEE_WAIT_TIMEOUT = 3 TermColors = constants.TermColors class StatefulShell: - """A Shell that tracks state changes of the environment.""" + """A Shell that tracks state changes of the environment. + + Attributes: + env: Env variables passed to command. It gets updated after every command. + cwd: Current working directory of shell. + """ def __init__(self) -> None: if sys.platform == "linux" or sys.platform == "linux2": @@ -40,10 +50,6 @@ def __init__(self) -> None: self.env: Dict[str, str] = os.environ.copy() self.cwd: str = self.env["PWD"] - # This file holds the env after running a command. This is a better approach - # than writing to stdout because commands could redirect the stdout. - self.envfile_path: str = os.path.join(tempfile.gettempdir(), "envfile") - def print_env(self) -> None: """Print environment variables in commandline friendly format for export. @@ -56,39 +62,91 @@ def print_env(self) -> None: if env_var: print(f"export {env_var}={quoted_value}") - def run_cmd(self, cmd: str, *, raise_on_returncode=False) -> None: + def run_cmd( + self, cmd: str, *, + raise_on_returncode=True, + return_cmd_output=False, + ) -> Optional[str]: """Runs a command and updates environment. Args: cmd: Command to execute. + This does not support commands that run in the background e.g. ` &` raise_on_returncode: Whether to raise an error if the return code is nonzero. + return_cmd_output: Whether to return the command output. + If enabled, the text piped to screen won't be colorized due to output + being passed through `tee`. Raises: RuntimeError: If raise_on_returncode is set and nonzero return code is given. + + Returns: + Output of command if return_cmd_output set to True. """ - env_dict = {} - - # Set OLDPWD at beginning because opening the shell clears this. This handles 'cd -'. - # env -0 prints the env variables separated by null characters for easy parsing. - command_with_state = f"OLDPWD={self.env.get('OLDPWD', '')}; {cmd}; env -0 > {self.envfile_path}" - with subprocess.Popen( - [command_with_state], - env=self.env, cwd=self.cwd, - shell=True, executable=self.shell_app - ) as proc: - returncode = proc.wait() - - # Load env state from envfile. - with open(self.envfile_path) as f: - # Split on null char because we use env -0. - env_entries = f.read().split("\0") - for entry in env_entries: - parts = entry.split("=") - # Handle case where an env variable contains text with '='. - env_dict[parts[0]] = "=".join(parts[1:]) - self.env = env_dict - self.cwd = self.env["PWD"] - - if raise_on_returncode and returncode != 0: - raise RuntimeError( - f"Error. Return code is not 0. It is: {returncode}") + with tempfile.TemporaryDirectory(dir=os.path.dirname(_HERE)) as temp_dir: + envfile_path: str = os.path.join(temp_dir, _ENV_FILENAME) + cmd_output_path: str = os.path.join(temp_dir, _OUTPUT_FILENAME) + + env_dict = {} + # Set OLDPWD at beginning because opening the shell clears this. This handles 'cd -'. + # env -0 prints the env variables separated by null characters for easy parsing. + + if return_cmd_output: + # Piping won't work here because piping will affect how environment variables + # are propagated. This solution uses tee without piping to preserve env variables. + redirect = f" > >(tee \"{cmd_output_path}\") 2>&1 " # include stderr + else: + redirect = "" + + # TODO: Use env -0 when `macos-latest` refers to macos-12 in github actions. + # env -0 is ideal because it will support cases where an env variable that has newline + # characters. The flag "-0" is requires MacOS 12 which is still in beta in Github Actions. + # The less ideal `env` command is used by itself, with the caveat that newline chars + # are unsupported in env variables. + save_env_cmd = f"env > {envfile_path}" + + command_with_state = ( + f"OLDPWD={self.env.get('OLDPWD', '')}; {cmd} {redirect}; RETCODE=$?; " + f"{save_env_cmd}; exit $RETCODE") + with subprocess.Popen( + [command_with_state], + env=self.env, cwd=self.cwd, + shell=True, executable=self.shell_app + ) as proc: + returncode = proc.wait() + + # Load env state from envfile. + with open(envfile_path, encoding="latin1") as f: + # TODO: Split on null char after updating to env -0 - requires MacOS 12. + env_entries = f.read().split("\n") + for entry in env_entries: + parts = entry.split("=") + # Handle case where an env variable contains text with '='. + env_dict[parts[0]] = "=".join(parts[1:]) + self.env = env_dict + self.cwd = self.env["PWD"] + + if raise_on_returncode and returncode != 0: + raise RuntimeError( + "Error. Nonzero return code." + f"\nReturncode: {returncode}" + f"\nCmd: {cmd}") + + if return_cmd_output: + # Poll for file due to give 'tee' time to close. + # This is necessary because 'tee' waits for all subshells to finish before writing. + start_time = time.time() + while time.time() - start_time < _TEE_WAIT_TIMEOUT: + if os.path.isfile(cmd_output_path): + with open(cmd_output_path, encoding="latin1") as f: + output = f.read() + if output: # Ensure that file has been written to. + break + time.sleep(0.1) + else: + raise TimeoutError( + f"Error. Output file: {cmd_output_path} not created within " + f"the alloted time of: {_TEE_WAIT_TIMEOUT}s" + ) + + return output diff --git a/examples/chef/test_stateful_shell.py b/examples/chef/test_stateful_shell.py new file mode 100644 index 00000000000000..b2e7d7cf564291 --- /dev/null +++ b/examples/chef/test_stateful_shell.py @@ -0,0 +1,48 @@ +"""Tests for stateful_shell.py + +Usage: +python -m unittest +""" + +import unittest + +import stateful_shell + + +class TestStatefulShell(unittest.TestCase): + """Testcases for stateful_shell.py.""" + + def setUp(self): + """Prepares stateful shell instance for tests.""" + self.shell = stateful_shell.StatefulShell() + + def test_cmd_output(self): + """Tests shell command output.""" + resp = self.shell.run_cmd("echo test123", return_cmd_output=True).strip() + self.assertEqual(resp, "test123") + + def test_set_env_in_shell(self): + """Tests setting env variables in shell.""" + self.shell.run_cmd("export TESTVAR=123") + self.assertEqual(self.shell.env["TESTVAR"], "123") + + def test_set_env_outside_shell(self): + """Tests setting env variables outside shell call.""" + self.shell.env["TESTVAR"] = "1234" + resp = self.shell.run_cmd("echo $TESTVAR", return_cmd_output=True).strip() + self.assertEqual(resp, "1234") + + def test_env_var_set_get(self): + """Tests setting and getting env vars between calls.""" + self.shell.run_cmd("export TESTVAR=123") + resp = self.shell.run_cmd("echo $TESTVAR", return_cmd_output=True).strip() + self.assertEqual(resp, "123") + + def test_raise_on_returncode(self): + """Tests raising errors when returncode is nonzero.""" + with self.assertRaises(RuntimeError): + self.shell.run_cmd("invalid_cmd > /dev/null 2>&1", raise_on_returncode=True) + + +if __name__ == "__main__": + unittest.main() diff --git a/examples/chef/zzz_generated/lighting-app/INPUTMD5.txt b/examples/chef/zzz_generated/lighting-app/INPUTMD5.txt new file mode 100644 index 00000000000000..a73223b32f281c --- /dev/null +++ b/examples/chef/zzz_generated/lighting-app/INPUTMD5.txt @@ -0,0 +1 @@ +1e7c1687f9e61abc2eda4a689dfaabd4 \ No newline at end of file diff --git a/examples/chef/zzz_generated/lighting-app/ZAPSHA.txt b/examples/chef/zzz_generated/lighting-app/ZAPSHA.txt new file mode 100644 index 00000000000000..37e00b022574e7 --- /dev/null +++ b/examples/chef/zzz_generated/lighting-app/ZAPSHA.txt @@ -0,0 +1 @@ +ca9cbecbc36228db65349864a77402075c39d9d2 \ No newline at end of file diff --git a/examples/chef/zzz_generated/lighting-app/zap-generated/CHIPClientCallbacks.h b/examples/chef/zzz_generated/lighting-app/zap-generated/CHIPClientCallbacks.h new file mode 100644 index 00000000000000..4458f51745a59b --- /dev/null +++ b/examples/chef/zzz_generated/lighting-app/zap-generated/CHIPClientCallbacks.h @@ -0,0 +1,32 @@ +/* + * + * Copyright (c) 2022 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. + */ + +// THIS FILE IS GENERATED BY ZAP + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// List specific responses diff --git a/examples/chef/zzz_generated/lighting-app/zap-generated/CHIPClusters.h b/examples/chef/zzz_generated/lighting-app/zap-generated/CHIPClusters.h new file mode 100644 index 00000000000000..15ec5aca34a215 --- /dev/null +++ b/examples/chef/zzz_generated/lighting-app/zap-generated/CHIPClusters.h @@ -0,0 +1,41 @@ +/* + * + * Copyright (c) 2022 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. + */ + +// THIS FILE IS GENERATED BY ZAP + +// Prevent multiple inclusion +#pragma once + +#include +#include + +#include +#include +#include + +namespace chip { +namespace Controller { + +class DLL_EXPORT OtaSoftwareUpdateProviderCluster : public ClusterBase +{ +public: + OtaSoftwareUpdateProviderCluster() : ClusterBase(app::Clusters::OtaSoftwareUpdateProvider::Id) {} + ~OtaSoftwareUpdateProviderCluster() {} +}; + +} // namespace Controller +} // namespace chip diff --git a/examples/chef/zzz_generated/lighting-app/zap-generated/IMClusterCommandHandler.cpp b/examples/chef/zzz_generated/lighting-app/zap-generated/IMClusterCommandHandler.cpp new file mode 100644 index 00000000000000..adf2da73d06244 --- /dev/null +++ b/examples/chef/zzz_generated/lighting-app/zap-generated/IMClusterCommandHandler.cpp @@ -0,0 +1,1248 @@ +/* + * + * Copyright (c) 2022 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. + */ + +// THIS FILE IS GENERATED BY ZAP + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// Currently we need some work to keep compatible with ember lib. +#include + +namespace chip { +namespace app { + +// Cluster specific command parsing + +namespace Clusters { + +namespace AdministratorCommissioning { + +void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) +{ + CHIP_ERROR TLVError = CHIP_NO_ERROR; + bool wasHandled = false; + { + switch (aCommandPath.mCommandId) + { + case Commands::OpenCommissioningWindow::Id: { + Commands::OpenCommissioningWindow::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfAdministratorCommissioningClusterOpenCommissioningWindowCallback(apCommandObj, aCommandPath, + commandData); + } + break; + } + case Commands::OpenBasicCommissioningWindow::Id: { + Commands::OpenBasicCommissioningWindow::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfAdministratorCommissioningClusterOpenBasicCommissioningWindowCallback( + apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::RevokeCommissioning::Id: { + Commands::RevokeCommissioning::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = + emberAfAdministratorCommissioningClusterRevokeCommissioningCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + default: { + // Unrecognized command ID, error status will apply. + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); + ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, + ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); + return; + } + } + } + + if (CHIP_NO_ERROR != TLVError || !wasHandled) + { + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); + ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); + } +} + +} // namespace AdministratorCommissioning + +namespace ColorControl { + +void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) +{ + CHIP_ERROR TLVError = CHIP_NO_ERROR; + bool wasHandled = false; + { + switch (aCommandPath.mCommandId) + { + case Commands::MoveToHue::Id: { + Commands::MoveToHue::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfColorControlClusterMoveToHueCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::MoveHue::Id: { + Commands::MoveHue::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfColorControlClusterMoveHueCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::StepHue::Id: { + Commands::StepHue::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfColorControlClusterStepHueCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::MoveToSaturation::Id: { + Commands::MoveToSaturation::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfColorControlClusterMoveToSaturationCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::MoveSaturation::Id: { + Commands::MoveSaturation::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfColorControlClusterMoveSaturationCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::StepSaturation::Id: { + Commands::StepSaturation::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfColorControlClusterStepSaturationCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::MoveToHueAndSaturation::Id: { + Commands::MoveToHueAndSaturation::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfColorControlClusterMoveToHueAndSaturationCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::MoveToColor::Id: { + Commands::MoveToColor::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfColorControlClusterMoveToColorCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::MoveColor::Id: { + Commands::MoveColor::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfColorControlClusterMoveColorCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::StepColor::Id: { + Commands::StepColor::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfColorControlClusterStepColorCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::MoveToColorTemperature::Id: { + Commands::MoveToColorTemperature::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfColorControlClusterMoveToColorTemperatureCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::EnhancedMoveToHue::Id: { + Commands::EnhancedMoveToHue::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfColorControlClusterEnhancedMoveToHueCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::EnhancedMoveHue::Id: { + Commands::EnhancedMoveHue::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfColorControlClusterEnhancedMoveHueCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::EnhancedStepHue::Id: { + Commands::EnhancedStepHue::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfColorControlClusterEnhancedStepHueCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::EnhancedMoveToHueAndSaturation::Id: { + Commands::EnhancedMoveToHueAndSaturation::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = + emberAfColorControlClusterEnhancedMoveToHueAndSaturationCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::ColorLoopSet::Id: { + Commands::ColorLoopSet::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfColorControlClusterColorLoopSetCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::StopMoveStep::Id: { + Commands::StopMoveStep::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfColorControlClusterStopMoveStepCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::MoveColorTemperature::Id: { + Commands::MoveColorTemperature::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfColorControlClusterMoveColorTemperatureCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::StepColorTemperature::Id: { + Commands::StepColorTemperature::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfColorControlClusterStepColorTemperatureCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + default: { + // Unrecognized command ID, error status will apply. + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); + ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, + ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); + return; + } + } + } + + if (CHIP_NO_ERROR != TLVError || !wasHandled) + { + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); + ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); + } +} + +} // namespace ColorControl + +namespace DiagnosticLogs { + +void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) +{ + CHIP_ERROR TLVError = CHIP_NO_ERROR; + bool wasHandled = false; + { + switch (aCommandPath.mCommandId) + { + case Commands::RetrieveLogsRequest::Id: { + Commands::RetrieveLogsRequest::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfDiagnosticLogsClusterRetrieveLogsRequestCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + default: { + // Unrecognized command ID, error status will apply. + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); + ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, + ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); + return; + } + } + } + + if (CHIP_NO_ERROR != TLVError || !wasHandled) + { + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); + ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); + } +} + +} // namespace DiagnosticLogs + +namespace EthernetNetworkDiagnostics { + +void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) +{ + CHIP_ERROR TLVError = CHIP_NO_ERROR; + bool wasHandled = false; + { + switch (aCommandPath.mCommandId) + { + case Commands::ResetCounts::Id: { + Commands::ResetCounts::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfEthernetNetworkDiagnosticsClusterResetCountsCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + default: { + // Unrecognized command ID, error status will apply. + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); + ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, + ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); + return; + } + } + } + + if (CHIP_NO_ERROR != TLVError || !wasHandled) + { + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); + ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); + } +} + +} // namespace EthernetNetworkDiagnostics + +namespace GeneralCommissioning { + +void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) +{ + CHIP_ERROR TLVError = CHIP_NO_ERROR; + bool wasHandled = false; + { + switch (aCommandPath.mCommandId) + { + case Commands::ArmFailSafe::Id: { + Commands::ArmFailSafe::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfGeneralCommissioningClusterArmFailSafeCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::SetRegulatoryConfig::Id: { + Commands::SetRegulatoryConfig::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfGeneralCommissioningClusterSetRegulatoryConfigCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::CommissioningComplete::Id: { + Commands::CommissioningComplete::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = + emberAfGeneralCommissioningClusterCommissioningCompleteCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + default: { + // Unrecognized command ID, error status will apply. + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); + ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, + ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); + return; + } + } + } + + if (CHIP_NO_ERROR != TLVError || !wasHandled) + { + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); + ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); + } +} + +} // namespace GeneralCommissioning + +namespace GeneralDiagnostics { + +void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) +{ + CHIP_ERROR TLVError = CHIP_NO_ERROR; + bool wasHandled = false; + { + switch (aCommandPath.mCommandId) + { + case Commands::TestEventTrigger::Id: { + Commands::TestEventTrigger::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfGeneralDiagnosticsClusterTestEventTriggerCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + default: { + // Unrecognized command ID, error status will apply. + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); + ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, + ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); + return; + } + } + } + + if (CHIP_NO_ERROR != TLVError || !wasHandled) + { + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); + ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); + } +} + +} // namespace GeneralDiagnostics + +namespace GroupKeyManagement { + +void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) +{ + CHIP_ERROR TLVError = CHIP_NO_ERROR; + bool wasHandled = false; + { + switch (aCommandPath.mCommandId) + { + case Commands::KeySetWrite::Id: { + Commands::KeySetWrite::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfGroupKeyManagementClusterKeySetWriteCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::KeySetRead::Id: { + Commands::KeySetRead::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfGroupKeyManagementClusterKeySetReadCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::KeySetRemove::Id: { + Commands::KeySetRemove::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfGroupKeyManagementClusterKeySetRemoveCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::KeySetReadAllIndices::Id: { + Commands::KeySetReadAllIndices::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfGroupKeyManagementClusterKeySetReadAllIndicesCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + default: { + // Unrecognized command ID, error status will apply. + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); + ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, + ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); + return; + } + } + } + + if (CHIP_NO_ERROR != TLVError || !wasHandled) + { + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); + ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); + } +} + +} // namespace GroupKeyManagement + +namespace Groups { + +void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) +{ + CHIP_ERROR TLVError = CHIP_NO_ERROR; + bool wasHandled = false; + { + switch (aCommandPath.mCommandId) + { + case Commands::AddGroup::Id: { + Commands::AddGroup::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfGroupsClusterAddGroupCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::ViewGroup::Id: { + Commands::ViewGroup::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfGroupsClusterViewGroupCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::GetGroupMembership::Id: { + Commands::GetGroupMembership::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfGroupsClusterGetGroupMembershipCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::RemoveGroup::Id: { + Commands::RemoveGroup::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfGroupsClusterRemoveGroupCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::RemoveAllGroups::Id: { + Commands::RemoveAllGroups::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfGroupsClusterRemoveAllGroupsCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::AddGroupIfIdentifying::Id: { + Commands::AddGroupIfIdentifying::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfGroupsClusterAddGroupIfIdentifyingCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + default: { + // Unrecognized command ID, error status will apply. + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); + ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, + ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); + return; + } + } + } + + if (CHIP_NO_ERROR != TLVError || !wasHandled) + { + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); + ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); + } +} + +} // namespace Groups + +namespace Identify { + +void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) +{ + CHIP_ERROR TLVError = CHIP_NO_ERROR; + bool wasHandled = false; + { + switch (aCommandPath.mCommandId) + { + case Commands::Identify::Id: { + Commands::Identify::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfIdentifyClusterIdentifyCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::TriggerEffect::Id: { + Commands::TriggerEffect::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfIdentifyClusterTriggerEffectCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + default: { + // Unrecognized command ID, error status will apply. + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); + ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, + ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); + return; + } + } + } + + if (CHIP_NO_ERROR != TLVError || !wasHandled) + { + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); + ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); + } +} + +} // namespace Identify + +namespace LevelControl { + +void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) +{ + CHIP_ERROR TLVError = CHIP_NO_ERROR; + bool wasHandled = false; + { + switch (aCommandPath.mCommandId) + { + case Commands::MoveToLevel::Id: { + Commands::MoveToLevel::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfLevelControlClusterMoveToLevelCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::Move::Id: { + Commands::Move::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfLevelControlClusterMoveCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::Step::Id: { + Commands::Step::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfLevelControlClusterStepCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::Stop::Id: { + Commands::Stop::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfLevelControlClusterStopCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::MoveToLevelWithOnOff::Id: { + Commands::MoveToLevelWithOnOff::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfLevelControlClusterMoveToLevelWithOnOffCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::MoveWithOnOff::Id: { + Commands::MoveWithOnOff::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfLevelControlClusterMoveWithOnOffCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::StepWithOnOff::Id: { + Commands::StepWithOnOff::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfLevelControlClusterStepWithOnOffCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::StopWithOnOff::Id: { + Commands::StopWithOnOff::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfLevelControlClusterStopWithOnOffCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + default: { + // Unrecognized command ID, error status will apply. + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); + ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, + ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); + return; + } + } + } + + if (CHIP_NO_ERROR != TLVError || !wasHandled) + { + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); + ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); + } +} + +} // namespace LevelControl + +namespace NetworkCommissioning { + +void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) +{ + CHIP_ERROR TLVError = CHIP_NO_ERROR; + bool wasHandled = false; + { + switch (aCommandPath.mCommandId) + { + case Commands::ScanNetworks::Id: { + Commands::ScanNetworks::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfNetworkCommissioningClusterScanNetworksCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::AddOrUpdateWiFiNetwork::Id: { + Commands::AddOrUpdateWiFiNetwork::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = + emberAfNetworkCommissioningClusterAddOrUpdateWiFiNetworkCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::AddOrUpdateThreadNetwork::Id: { + Commands::AddOrUpdateThreadNetwork::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = + emberAfNetworkCommissioningClusterAddOrUpdateThreadNetworkCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::RemoveNetwork::Id: { + Commands::RemoveNetwork::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfNetworkCommissioningClusterRemoveNetworkCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::ConnectNetwork::Id: { + Commands::ConnectNetwork::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfNetworkCommissioningClusterConnectNetworkCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::ReorderNetwork::Id: { + Commands::ReorderNetwork::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfNetworkCommissioningClusterReorderNetworkCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + default: { + // Unrecognized command ID, error status will apply. + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); + ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, + ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); + return; + } + } + } + + if (CHIP_NO_ERROR != TLVError || !wasHandled) + { + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); + ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); + } +} + +} // namespace NetworkCommissioning + +namespace OtaSoftwareUpdateRequestor { + +void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) +{ + CHIP_ERROR TLVError = CHIP_NO_ERROR; + bool wasHandled = false; + { + switch (aCommandPath.mCommandId) + { + case Commands::AnnounceOtaProvider::Id: { + Commands::AnnounceOtaProvider::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = + emberAfOtaSoftwareUpdateRequestorClusterAnnounceOtaProviderCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + default: { + // Unrecognized command ID, error status will apply. + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); + ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, + ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); + return; + } + } + } + + if (CHIP_NO_ERROR != TLVError || !wasHandled) + { + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); + ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); + } +} + +} // namespace OtaSoftwareUpdateRequestor + +namespace OnOff { + +void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) +{ + CHIP_ERROR TLVError = CHIP_NO_ERROR; + bool wasHandled = false; + { + switch (aCommandPath.mCommandId) + { + case Commands::Off::Id: { + Commands::Off::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfOnOffClusterOffCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::On::Id: { + Commands::On::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfOnOffClusterOnCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::Toggle::Id: { + Commands::Toggle::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfOnOffClusterToggleCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::OffWithEffect::Id: { + Commands::OffWithEffect::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfOnOffClusterOffWithEffectCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::OnWithRecallGlobalScene::Id: { + Commands::OnWithRecallGlobalScene::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfOnOffClusterOnWithRecallGlobalSceneCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::OnWithTimedOff::Id: { + Commands::OnWithTimedOff::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfOnOffClusterOnWithTimedOffCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + default: { + // Unrecognized command ID, error status will apply. + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); + ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, + ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); + return; + } + } + } + + if (CHIP_NO_ERROR != TLVError || !wasHandled) + { + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); + ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); + } +} + +} // namespace OnOff + +namespace OperationalCredentials { + +void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) +{ + CHIP_ERROR TLVError = CHIP_NO_ERROR; + bool wasHandled = false; + { + switch (aCommandPath.mCommandId) + { + case Commands::AttestationRequest::Id: { + Commands::AttestationRequest::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = + emberAfOperationalCredentialsClusterAttestationRequestCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::CertificateChainRequest::Id: { + Commands::CertificateChainRequest::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = + emberAfOperationalCredentialsClusterCertificateChainRequestCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::CSRRequest::Id: { + Commands::CSRRequest::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfOperationalCredentialsClusterCSRRequestCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::AddNOC::Id: { + Commands::AddNOC::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfOperationalCredentialsClusterAddNOCCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::UpdateNOC::Id: { + Commands::UpdateNOC::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfOperationalCredentialsClusterUpdateNOCCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::UpdateFabricLabel::Id: { + Commands::UpdateFabricLabel::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfOperationalCredentialsClusterUpdateFabricLabelCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::RemoveFabric::Id: { + Commands::RemoveFabric::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfOperationalCredentialsClusterRemoveFabricCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + case Commands::AddTrustedRootCertificate::Id: { + Commands::AddTrustedRootCertificate::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = + emberAfOperationalCredentialsClusterAddTrustedRootCertificateCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + default: { + // Unrecognized command ID, error status will apply. + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); + ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, + ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); + return; + } + } + } + + if (CHIP_NO_ERROR != TLVError || !wasHandled) + { + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); + ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); + } +} + +} // namespace OperationalCredentials + +namespace SoftwareDiagnostics { + +void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) +{ + CHIP_ERROR TLVError = CHIP_NO_ERROR; + bool wasHandled = false; + { + switch (aCommandPath.mCommandId) + { + case Commands::ResetWatermarks::Id: { + Commands::ResetWatermarks::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfSoftwareDiagnosticsClusterResetWatermarksCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + default: { + // Unrecognized command ID, error status will apply. + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); + ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, + ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); + return; + } + } + } + + if (CHIP_NO_ERROR != TLVError || !wasHandled) + { + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); + ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); + } +} + +} // namespace SoftwareDiagnostics + +namespace ThreadNetworkDiagnostics { + +void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) +{ + CHIP_ERROR TLVError = CHIP_NO_ERROR; + bool wasHandled = false; + { + switch (aCommandPath.mCommandId) + { + case Commands::ResetCounts::Id: { + Commands::ResetCounts::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfThreadNetworkDiagnosticsClusterResetCountsCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + default: { + // Unrecognized command ID, error status will apply. + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); + ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, + ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); + return; + } + } + } + + if (CHIP_NO_ERROR != TLVError || !wasHandled) + { + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); + ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); + } +} + +} // namespace ThreadNetworkDiagnostics + +namespace WiFiNetworkDiagnostics { + +void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv) +{ + CHIP_ERROR TLVError = CHIP_NO_ERROR; + bool wasHandled = false; + { + switch (aCommandPath.mCommandId) + { + case Commands::ResetCounts::Id: { + Commands::ResetCounts::DecodableType commandData; + TLVError = DataModel::Decode(aDataTlv, commandData); + if (TLVError == CHIP_NO_ERROR) + { + wasHandled = emberAfWiFiNetworkDiagnosticsClusterResetCountsCallback(apCommandObj, aCommandPath, commandData); + } + break; + } + default: { + // Unrecognized command ID, error status will apply. + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand); + ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, + ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId)); + return; + } + } + } + + if (CHIP_NO_ERROR != TLVError || !wasHandled) + { + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand); + ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format()); + } +} + +} // namespace WiFiNetworkDiagnostics + +} // namespace Clusters + +void DispatchSingleClusterCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader, CommandHandler * apCommandObj) +{ + Compatibility::SetupEmberAfCommandHandler(apCommandObj, aCommandPath); + + switch (aCommandPath.mClusterId) + { + case Clusters::AdministratorCommissioning::Id: + Clusters::AdministratorCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader); + break; + case Clusters::ColorControl::Id: + Clusters::ColorControl::DispatchServerCommand(apCommandObj, aCommandPath, aReader); + break; + case Clusters::DiagnosticLogs::Id: + Clusters::DiagnosticLogs::DispatchServerCommand(apCommandObj, aCommandPath, aReader); + break; + case Clusters::EthernetNetworkDiagnostics::Id: + Clusters::EthernetNetworkDiagnostics::DispatchServerCommand(apCommandObj, aCommandPath, aReader); + break; + case Clusters::GeneralCommissioning::Id: + Clusters::GeneralCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader); + break; + case Clusters::GeneralDiagnostics::Id: + Clusters::GeneralDiagnostics::DispatchServerCommand(apCommandObj, aCommandPath, aReader); + break; + case Clusters::GroupKeyManagement::Id: + Clusters::GroupKeyManagement::DispatchServerCommand(apCommandObj, aCommandPath, aReader); + break; + case Clusters::Groups::Id: + Clusters::Groups::DispatchServerCommand(apCommandObj, aCommandPath, aReader); + break; + case Clusters::Identify::Id: + Clusters::Identify::DispatchServerCommand(apCommandObj, aCommandPath, aReader); + break; + case Clusters::LevelControl::Id: + Clusters::LevelControl::DispatchServerCommand(apCommandObj, aCommandPath, aReader); + break; + case Clusters::NetworkCommissioning::Id: + Clusters::NetworkCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader); + break; + case Clusters::OtaSoftwareUpdateRequestor::Id: + Clusters::OtaSoftwareUpdateRequestor::DispatchServerCommand(apCommandObj, aCommandPath, aReader); + break; + case Clusters::OnOff::Id: + Clusters::OnOff::DispatchServerCommand(apCommandObj, aCommandPath, aReader); + break; + case Clusters::OperationalCredentials::Id: + Clusters::OperationalCredentials::DispatchServerCommand(apCommandObj, aCommandPath, aReader); + break; + case Clusters::SoftwareDiagnostics::Id: + Clusters::SoftwareDiagnostics::DispatchServerCommand(apCommandObj, aCommandPath, aReader); + break; + case Clusters::ThreadNetworkDiagnostics::Id: + Clusters::ThreadNetworkDiagnostics::DispatchServerCommand(apCommandObj, aCommandPath, aReader); + break; + case Clusters::WiFiNetworkDiagnostics::Id: + Clusters::WiFiNetworkDiagnostics::DispatchServerCommand(apCommandObj, aCommandPath, aReader); + break; + default: + ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId)); + apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCluster); + break; + } + + Compatibility::ResetEmberAfObjects(); +} + +} // namespace app +} // namespace chip diff --git a/examples/chef/zzz_generated/lighting-app/zap-generated/PluginApplicationCallbacks.h b/examples/chef/zzz_generated/lighting-app/zap-generated/PluginApplicationCallbacks.h new file mode 100644 index 00000000000000..85154579b68824 --- /dev/null +++ b/examples/chef/zzz_generated/lighting-app/zap-generated/PluginApplicationCallbacks.h @@ -0,0 +1,51 @@ +/* + * + * Copyright (c) 2022 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. + */ + +// THIS FILE IS GENERATED BY ZAP + +#pragma once + +#include + +#define MATTER_PLUGINS_INIT \ + MatterAccessControlPluginServerInitCallback(); \ + MatterAdministratorCommissioningPluginServerInitCallback(); \ + MatterBasicPluginServerInitCallback(); \ + MatterColorControlPluginServerInitCallback(); \ + MatterDescriptorPluginServerInitCallback(); \ + MatterDiagnosticLogsPluginServerInitCallback(); \ + MatterEthernetNetworkDiagnosticsPluginServerInitCallback(); \ + MatterFixedLabelPluginServerInitCallback(); \ + MatterGeneralCommissioningPluginServerInitCallback(); \ + MatterGeneralDiagnosticsPluginServerInitCallback(); \ + MatterGroupKeyManagementPluginServerInitCallback(); \ + MatterGroupsPluginServerInitCallback(); \ + MatterIdentifyPluginServerInitCallback(); \ + MatterLevelControlPluginServerInitCallback(); \ + MatterLocalizationConfigurationPluginServerInitCallback(); \ + MatterNetworkCommissioningPluginServerInitCallback(); \ + MatterOtaSoftwareUpdateProviderPluginClientInitCallback(); \ + MatterOtaSoftwareUpdateRequestorPluginServerInitCallback(); \ + MatterOccupancySensingPluginServerInitCallback(); \ + MatterOnOffPluginServerInitCallback(); \ + MatterOperationalCredentialsPluginServerInitCallback(); \ + MatterSoftwareDiagnosticsPluginServerInitCallback(); \ + MatterSwitchPluginServerInitCallback(); \ + MatterThreadNetworkDiagnosticsPluginServerInitCallback(); \ + MatterTimeFormatLocalizationPluginServerInitCallback(); \ + MatterUserLabelPluginServerInitCallback(); \ + MatterWiFiNetworkDiagnosticsPluginServerInitCallback(); diff --git a/examples/chef/zzz_generated/lighting-app/zap-generated/access.h b/examples/chef/zzz_generated/lighting-app/zap-generated/access.h new file mode 100644 index 00000000000000..2806b8d11356f8 --- /dev/null +++ b/examples/chef/zzz_generated/lighting-app/zap-generated/access.h @@ -0,0 +1,281 @@ +/* + * + * Copyright (c) 2022 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. + */ + +// THIS FILE IS GENERATED BY ZAP + +// Prevent multiple inclusion +#pragma once + +#include + +// Prevent changing generated format +// clang-format off + +//////////////////////////////////////////////////////////////////////////////// + +// Parallel array data (*cluster*, attribute, privilege) for read attribute +#define GENERATED_ACCESS_READ_ATTRIBUTE__CLUSTER { \ + 31, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \ + 31, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \ + /* Cluster: Access Control, Attribute: SubjectsPerAccessControlEntry, Privilege: view */ \ + /* Cluster: Access Control, Attribute: TargetsPerAccessControlEntry, Privilege: view */ \ + /* Cluster: Access Control, Attribute: AccessControlEntriesPerFabric, Privilege: view */ \ + /* Cluster: Basic, Attribute: NodeLabel, Privilege: view */ \ + /* Cluster: Basic, Attribute: Location, Privilege: view */ \ + /* Cluster: Basic, Attribute: LocalConfigDisabled, Privilege: view */ \ + /* Cluster: Color Control, Attribute: StartUpColorTemperatureMireds, Privilege: view */ \ + /* Cluster: General Commissioning, Attribute: Breadcrumb, Privilege: view */ \ + /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: view */ \ + /* Cluster: Level Control, Attribute: start up current level, Privilege: view */ \ + 49, /* Cluster: Network Commissioning, Attribute: MaxNetworks, Privilege: administer */ \ + 49, /* Cluster: Network Commissioning, Attribute: Networks, Privilege: administer */ \ + /* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: view */ \ + 49, /* Cluster: Network Commissioning, Attribute: LastNetworkingStatus, Privilege: administer */ \ + 49, /* Cluster: Network Commissioning, Attribute: LastNetworkID, Privilege: administer */ \ + 49, /* Cluster: Network Commissioning, Attribute: LastConnectErrorValue, Privilege: administer */ \ + /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \ + 62, /* Cluster: Operational Credentials, Attribute: NOCs, Privilege: administer */ \ + /* Cluster: User Label, Attribute: label list, Privilege: view */ \ +} + +// Parallel array data (cluster, *attribute*, privilege) for read attribute +#define GENERATED_ACCESS_READ_ATTRIBUTE__ATTRIBUTE { \ + 0, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \ + 1, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \ + /* Cluster: Access Control, Attribute: SubjectsPerAccessControlEntry, Privilege: view */ \ + /* Cluster: Access Control, Attribute: TargetsPerAccessControlEntry, Privilege: view */ \ + /* Cluster: Access Control, Attribute: AccessControlEntriesPerFabric, Privilege: view */ \ + /* Cluster: Basic, Attribute: NodeLabel, Privilege: view */ \ + /* Cluster: Basic, Attribute: Location, Privilege: view */ \ + /* Cluster: Basic, Attribute: LocalConfigDisabled, Privilege: view */ \ + /* Cluster: Color Control, Attribute: StartUpColorTemperatureMireds, Privilege: view */ \ + /* Cluster: General Commissioning, Attribute: Breadcrumb, Privilege: view */ \ + /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: view */ \ + /* Cluster: Level Control, Attribute: start up current level, Privilege: view */ \ + 0, /* Cluster: Network Commissioning, Attribute: MaxNetworks, Privilege: administer */ \ + 1, /* Cluster: Network Commissioning, Attribute: Networks, Privilege: administer */ \ + /* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: view */ \ + 5, /* Cluster: Network Commissioning, Attribute: LastNetworkingStatus, Privilege: administer */ \ + 6, /* Cluster: Network Commissioning, Attribute: LastNetworkID, Privilege: administer */ \ + 7, /* Cluster: Network Commissioning, Attribute: LastConnectErrorValue, Privilege: administer */ \ + /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \ + 0, /* Cluster: Operational Credentials, Attribute: NOCs, Privilege: administer */ \ + /* Cluster: User Label, Attribute: label list, Privilege: view */ \ +} + +// Parallel array data (cluster, attribute, *privilege*) for read attribute +#define GENERATED_ACCESS_READ_ATTRIBUTE__PRIVILEGE { \ + kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \ + /* Cluster: Access Control, Attribute: SubjectsPerAccessControlEntry, Privilege: view */ \ + /* Cluster: Access Control, Attribute: TargetsPerAccessControlEntry, Privilege: view */ \ + /* Cluster: Access Control, Attribute: AccessControlEntriesPerFabric, Privilege: view */ \ + /* Cluster: Basic, Attribute: NodeLabel, Privilege: view */ \ + /* Cluster: Basic, Attribute: Location, Privilege: view */ \ + /* Cluster: Basic, Attribute: LocalConfigDisabled, Privilege: view */ \ + /* Cluster: Color Control, Attribute: StartUpColorTemperatureMireds, Privilege: view */ \ + /* Cluster: General Commissioning, Attribute: Breadcrumb, Privilege: view */ \ + /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: view */ \ + /* Cluster: Level Control, Attribute: start up current level, Privilege: view */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Attribute: MaxNetworks, Privilege: administer */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Attribute: Networks, Privilege: administer */ \ + /* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: view */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Attribute: LastNetworkingStatus, Privilege: administer */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Attribute: LastNetworkID, Privilege: administer */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Attribute: LastConnectErrorValue, Privilege: administer */ \ + /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: Operational Credentials, Attribute: NOCs, Privilege: administer */ \ + /* Cluster: User Label, Attribute: label list, Privilege: view */ \ +} + +//////////////////////////////////////////////////////////////////////////////// + +// Parallel array data (*cluster*, attribute, privilege) for write attribute +#define GENERATED_ACCESS_WRITE_ATTRIBUTE__CLUSTER { \ + 31, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \ + 31, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \ + 40, /* Cluster: Basic, Attribute: NodeLabel, Privilege: manage */ \ + 40, /* Cluster: Basic, Attribute: Location, Privilege: administer */ \ + 40, /* Cluster: Basic, Attribute: LocalConfigDisabled, Privilege: manage */ \ + 768, /* Cluster: Color Control, Attribute: StartUpColorTemperatureMireds, Privilege: manage */ \ + 48, /* Cluster: General Commissioning, Attribute: Breadcrumb, Privilege: administer */ \ + 63, /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: manage */ \ + 8, /* Cluster: Level Control, Attribute: start up current level, Privilege: manage */ \ + 49, /* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: administer */ \ + 6, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \ + 65, /* Cluster: User Label, Attribute: label list, Privilege: manage */ \ +} + +// Parallel array data (cluster, *attribute*, privilege) for write attribute +#define GENERATED_ACCESS_WRITE_ATTRIBUTE__ATTRIBUTE { \ + 0, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \ + 1, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \ + 5, /* Cluster: Basic, Attribute: NodeLabel, Privilege: manage */ \ + 6, /* Cluster: Basic, Attribute: Location, Privilege: administer */ \ + 16, /* Cluster: Basic, Attribute: LocalConfigDisabled, Privilege: manage */ \ + 16400, /* Cluster: Color Control, Attribute: StartUpColorTemperatureMireds, Privilege: manage */ \ + 0, /* Cluster: General Commissioning, Attribute: Breadcrumb, Privilege: administer */ \ + 0, /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: manage */ \ + 16384, /* Cluster: Level Control, Attribute: start up current level, Privilege: manage */ \ + 4, /* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: administer */ \ + 16387, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \ + 0, /* Cluster: User Label, Attribute: label list, Privilege: manage */ \ +} + +// Parallel array data (cluster, attribute, *privilege*) for write attribute +#define GENERATED_ACCESS_WRITE_ATTRIBUTE__PRIVILEGE { \ + kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \ + kMatterAccessPrivilegeManage, /* Cluster: Basic, Attribute: NodeLabel, Privilege: manage */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: Basic, Attribute: Location, Privilege: administer */ \ + kMatterAccessPrivilegeManage, /* Cluster: Basic, Attribute: LocalConfigDisabled, Privilege: manage */ \ + kMatterAccessPrivilegeManage, /* Cluster: Color Control, Attribute: StartUpColorTemperatureMireds, Privilege: manage */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: General Commissioning, Attribute: Breadcrumb, Privilege: administer */ \ + kMatterAccessPrivilegeManage, /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: manage */ \ + kMatterAccessPrivilegeManage, /* Cluster: Level Control, Attribute: start up current level, Privilege: manage */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: administer */ \ + kMatterAccessPrivilegeManage, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \ + kMatterAccessPrivilegeManage, /* Cluster: User Label, Attribute: label list, Privilege: manage */ \ +} + +//////////////////////////////////////////////////////////////////////////////// + +// Parallel array data (*cluster*, command, privilege) for invoke command +#define GENERATED_ACCESS_INVOKE_COMMAND__CLUSTER { \ + 60, /* Cluster: AdministratorCommissioning, Command: OpenCommissioningWindow, Privilege: administer */ \ + 60, /* Cluster: AdministratorCommissioning, Command: OpenBasicCommissioningWindow, Privilege: administer */ \ + 60, /* Cluster: AdministratorCommissioning, Command: RevokeCommissioning, Privilege: administer */ \ + 48, /* Cluster: General Commissioning, Command: ArmFailSafe, Privilege: administer */ \ + 48, /* Cluster: General Commissioning, Command: SetRegulatoryConfig, Privilege: administer */ \ + 48, /* Cluster: General Commissioning, Command: CommissioningComplete, Privilege: administer */ \ + 63, /* Cluster: Group Key Management, Command: KeySetWrite, Privilege: administer */ \ + 63, /* Cluster: Group Key Management, Command: KeySetRead, Privilege: administer */ \ + 63, /* Cluster: Group Key Management, Command: KeySetRemove, Privilege: administer */ \ + 63, /* Cluster: Group Key Management, Command: KeySetReadAllIndices, Privilege: administer */ \ + 4, /* Cluster: Groups, Command: AddGroup, Privilege: manage */ \ + 4, /* Cluster: Groups, Command: RemoveGroup, Privilege: manage */ \ + 4, /* Cluster: Groups, Command: RemoveAllGroups, Privilege: manage */ \ + 4, /* Cluster: Groups, Command: AddGroupIfIdentifying, Privilege: manage */ \ + 3, /* Cluster: Identify, Command: Identify, Privilege: manage */ \ + 3, /* Cluster: Identify, Command: TriggerEffect, Privilege: manage */ \ + 49, /* Cluster: Network Commissioning, Command: ScanNetworks, Privilege: administer */ \ + 49, /* Cluster: Network Commissioning, Command: AddOrUpdateWiFiNetwork, Privilege: administer */ \ + 49, /* Cluster: Network Commissioning, Command: AddOrUpdateThreadNetwork, Privilege: administer */ \ + 49, /* Cluster: Network Commissioning, Command: RemoveNetwork, Privilege: administer */ \ + 49, /* Cluster: Network Commissioning, Command: ConnectNetwork, Privilege: administer */ \ + 49, /* Cluster: Network Commissioning, Command: ReorderNetwork, Privilege: administer */ \ + 62, /* Cluster: Operational Credentials, Command: AttestationRequest, Privilege: administer */ \ + 62, /* Cluster: Operational Credentials, Command: CertificateChainRequest, Privilege: administer */ \ + 62, /* Cluster: Operational Credentials, Command: CSRRequest, Privilege: administer */ \ + 62, /* Cluster: Operational Credentials, Command: AddNOC, Privilege: administer */ \ + 62, /* Cluster: Operational Credentials, Command: UpdateNOC, Privilege: administer */ \ + 62, /* Cluster: Operational Credentials, Command: UpdateFabricLabel, Privilege: administer */ \ + 62, /* Cluster: Operational Credentials, Command: RemoveFabric, Privilege: administer */ \ + 62, /* Cluster: Operational Credentials, Command: AddTrustedRootCertificate, Privilege: administer */ \ +} + +// Parallel array data (cluster, *command*, privilege) for invoke command +#define GENERATED_ACCESS_INVOKE_COMMAND__COMMAND { \ + 0, /* Cluster: AdministratorCommissioning, Command: OpenCommissioningWindow, Privilege: administer */ \ + 1, /* Cluster: AdministratorCommissioning, Command: OpenBasicCommissioningWindow, Privilege: administer */ \ + 2, /* Cluster: AdministratorCommissioning, Command: RevokeCommissioning, Privilege: administer */ \ + 0, /* Cluster: General Commissioning, Command: ArmFailSafe, Privilege: administer */ \ + 2, /* Cluster: General Commissioning, Command: SetRegulatoryConfig, Privilege: administer */ \ + 4, /* Cluster: General Commissioning, Command: CommissioningComplete, Privilege: administer */ \ + 0, /* Cluster: Group Key Management, Command: KeySetWrite, Privilege: administer */ \ + 1, /* Cluster: Group Key Management, Command: KeySetRead, Privilege: administer */ \ + 3, /* Cluster: Group Key Management, Command: KeySetRemove, Privilege: administer */ \ + 4, /* Cluster: Group Key Management, Command: KeySetReadAllIndices, Privilege: administer */ \ + 0, /* Cluster: Groups, Command: AddGroup, Privilege: manage */ \ + 3, /* Cluster: Groups, Command: RemoveGroup, Privilege: manage */ \ + 4, /* Cluster: Groups, Command: RemoveAllGroups, Privilege: manage */ \ + 5, /* Cluster: Groups, Command: AddGroupIfIdentifying, Privilege: manage */ \ + 0, /* Cluster: Identify, Command: Identify, Privilege: manage */ \ + 64, /* Cluster: Identify, Command: TriggerEffect, Privilege: manage */ \ + 0, /* Cluster: Network Commissioning, Command: ScanNetworks, Privilege: administer */ \ + 2, /* Cluster: Network Commissioning, Command: AddOrUpdateWiFiNetwork, Privilege: administer */ \ + 3, /* Cluster: Network Commissioning, Command: AddOrUpdateThreadNetwork, Privilege: administer */ \ + 4, /* Cluster: Network Commissioning, Command: RemoveNetwork, Privilege: administer */ \ + 6, /* Cluster: Network Commissioning, Command: ConnectNetwork, Privilege: administer */ \ + 8, /* Cluster: Network Commissioning, Command: ReorderNetwork, Privilege: administer */ \ + 0, /* Cluster: Operational Credentials, Command: AttestationRequest, Privilege: administer */ \ + 2, /* Cluster: Operational Credentials, Command: CertificateChainRequest, Privilege: administer */ \ + 4, /* Cluster: Operational Credentials, Command: CSRRequest, Privilege: administer */ \ + 6, /* Cluster: Operational Credentials, Command: AddNOC, Privilege: administer */ \ + 7, /* Cluster: Operational Credentials, Command: UpdateNOC, Privilege: administer */ \ + 9, /* Cluster: Operational Credentials, Command: UpdateFabricLabel, Privilege: administer */ \ + 10, /* Cluster: Operational Credentials, Command: RemoveFabric, Privilege: administer */ \ + 11, /* Cluster: Operational Credentials, Command: AddTrustedRootCertificate, Privilege: administer */ \ +} + +// Parallel array data (cluster, command, *privilege*) for invoke command +#define GENERATED_ACCESS_INVOKE_COMMAND__PRIVILEGE { \ + kMatterAccessPrivilegeAdminister, /* Cluster: AdministratorCommissioning, Command: OpenCommissioningWindow, Privilege: administer */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: AdministratorCommissioning, Command: OpenBasicCommissioningWindow, Privilege: administer */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: AdministratorCommissioning, Command: RevokeCommissioning, Privilege: administer */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: General Commissioning, Command: ArmFailSafe, Privilege: administer */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: General Commissioning, Command: SetRegulatoryConfig, Privilege: administer */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: General Commissioning, Command: CommissioningComplete, Privilege: administer */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: Group Key Management, Command: KeySetWrite, Privilege: administer */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: Group Key Management, Command: KeySetRead, Privilege: administer */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: Group Key Management, Command: KeySetRemove, Privilege: administer */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: Group Key Management, Command: KeySetReadAllIndices, Privilege: administer */ \ + kMatterAccessPrivilegeManage, /* Cluster: Groups, Command: AddGroup, Privilege: manage */ \ + kMatterAccessPrivilegeManage, /* Cluster: Groups, Command: RemoveGroup, Privilege: manage */ \ + kMatterAccessPrivilegeManage, /* Cluster: Groups, Command: RemoveAllGroups, Privilege: manage */ \ + kMatterAccessPrivilegeManage, /* Cluster: Groups, Command: AddGroupIfIdentifying, Privilege: manage */ \ + kMatterAccessPrivilegeManage, /* Cluster: Identify, Command: Identify, Privilege: manage */ \ + kMatterAccessPrivilegeManage, /* Cluster: Identify, Command: TriggerEffect, Privilege: manage */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Command: ScanNetworks, Privilege: administer */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Command: AddOrUpdateWiFiNetwork, Privilege: administer */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Command: AddOrUpdateThreadNetwork, Privilege: administer */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Command: RemoveNetwork, Privilege: administer */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Command: ConnectNetwork, Privilege: administer */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: Network Commissioning, Command: ReorderNetwork, Privilege: administer */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: Operational Credentials, Command: AttestationRequest, Privilege: administer */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: Operational Credentials, Command: CertificateChainRequest, Privilege: administer */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: Operational Credentials, Command: CSRRequest, Privilege: administer */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: Operational Credentials, Command: AddNOC, Privilege: administer */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: Operational Credentials, Command: UpdateNOC, Privilege: administer */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: Operational Credentials, Command: UpdateFabricLabel, Privilege: administer */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: Operational Credentials, Command: RemoveFabric, Privilege: administer */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: Operational Credentials, Command: AddTrustedRootCertificate, Privilege: administer */ \ +} + +//////////////////////////////////////////////////////////////////////////////// + +// Parallel array data (*cluster*, event, privilege) for read event +#define GENERATED_ACCESS_READ_EVENT__CLUSTER { \ + 31, /* Cluster: Access Control, Event: AccessControlEntryChanged, Privilege: administer */ \ + 31, /* Cluster: Access Control, Event: AccessControlExtensionChanged, Privilege: administer */ \ +} + +// Parallel array data (cluster, *event*, privilege) for read event +#define GENERATED_ACCESS_READ_EVENT__EVENT { \ + 0, /* Cluster: Access Control, Event: AccessControlEntryChanged, Privilege: administer */ \ + 1, /* Cluster: Access Control, Event: AccessControlExtensionChanged, Privilege: administer */ \ +} + +// Parallel array data (cluster, event, *privilege*) for read event +#define GENERATED_ACCESS_READ_EVENT__PRIVILEGE { \ + kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Event: AccessControlEntryChanged, Privilege: administer */ \ + kMatterAccessPrivilegeAdminister, /* Cluster: Access Control, Event: AccessControlExtensionChanged, Privilege: administer */ \ +} + +//////////////////////////////////////////////////////////////////////////////// + +// clang-format on diff --git a/examples/chef/zzz_generated/lighting-app/zap-generated/af-gen-event.h b/examples/chef/zzz_generated/lighting-app/zap-generated/af-gen-event.h new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/examples/chef/zzz_generated/lighting-app/zap-generated/callback-stub.cpp b/examples/chef/zzz_generated/lighting-app/zap-generated/callback-stub.cpp new file mode 100644 index 00000000000000..20850267856b32 --- /dev/null +++ b/examples/chef/zzz_generated/lighting-app/zap-generated/callback-stub.cpp @@ -0,0 +1,343 @@ +/* + * + * Copyright (c) 2022 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. + */ + +// THIS FILE IS GENERATED BY ZAP + +#include +#include +#include +#include + +using namespace chip; + +// Cluster Init Functions +void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId) +{ + switch (clusterId) + { + case ZCL_ACCESS_CONTROL_CLUSTER_ID: + emberAfAccessControlClusterInitCallback(endpoint); + break; + case ZCL_ADMINISTRATOR_COMMISSIONING_CLUSTER_ID: + emberAfAdministratorCommissioningClusterInitCallback(endpoint); + break; + case ZCL_BASIC_CLUSTER_ID: + emberAfBasicClusterInitCallback(endpoint); + break; + case ZCL_COLOR_CONTROL_CLUSTER_ID: + emberAfColorControlClusterInitCallback(endpoint); + break; + case ZCL_DESCRIPTOR_CLUSTER_ID: + emberAfDescriptorClusterInitCallback(endpoint); + break; + case ZCL_DIAGNOSTIC_LOGS_CLUSTER_ID: + emberAfDiagnosticLogsClusterInitCallback(endpoint); + break; + case ZCL_ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER_ID: + emberAfEthernetNetworkDiagnosticsClusterInitCallback(endpoint); + break; + case ZCL_FIXED_LABEL_CLUSTER_ID: + emberAfFixedLabelClusterInitCallback(endpoint); + break; + case ZCL_GENERAL_COMMISSIONING_CLUSTER_ID: + emberAfGeneralCommissioningClusterInitCallback(endpoint); + break; + case ZCL_GENERAL_DIAGNOSTICS_CLUSTER_ID: + emberAfGeneralDiagnosticsClusterInitCallback(endpoint); + break; + case ZCL_GROUP_KEY_MANAGEMENT_CLUSTER_ID: + emberAfGroupKeyManagementClusterInitCallback(endpoint); + break; + case ZCL_GROUPS_CLUSTER_ID: + emberAfGroupsClusterInitCallback(endpoint); + break; + case ZCL_IDENTIFY_CLUSTER_ID: + emberAfIdentifyClusterInitCallback(endpoint); + break; + case ZCL_LEVEL_CONTROL_CLUSTER_ID: + emberAfLevelControlClusterInitCallback(endpoint); + break; + case ZCL_LOCALIZATION_CONFIGURATION_CLUSTER_ID: + emberAfLocalizationConfigurationClusterInitCallback(endpoint); + break; + case ZCL_NETWORK_COMMISSIONING_CLUSTER_ID: + emberAfNetworkCommissioningClusterInitCallback(endpoint); + break; + case ZCL_OTA_PROVIDER_CLUSTER_ID: + emberAfOtaSoftwareUpdateProviderClusterInitCallback(endpoint); + break; + case ZCL_OTA_REQUESTOR_CLUSTER_ID: + emberAfOtaSoftwareUpdateRequestorClusterInitCallback(endpoint); + break; + case ZCL_OCCUPANCY_SENSING_CLUSTER_ID: + emberAfOccupancySensingClusterInitCallback(endpoint); + break; + case ZCL_ON_OFF_CLUSTER_ID: + emberAfOnOffClusterInitCallback(endpoint); + break; + case ZCL_OPERATIONAL_CREDENTIALS_CLUSTER_ID: + emberAfOperationalCredentialsClusterInitCallback(endpoint); + break; + case ZCL_SOFTWARE_DIAGNOSTICS_CLUSTER_ID: + emberAfSoftwareDiagnosticsClusterInitCallback(endpoint); + break; + case ZCL_SWITCH_CLUSTER_ID: + emberAfSwitchClusterInitCallback(endpoint); + break; + case ZCL_THREAD_NETWORK_DIAGNOSTICS_CLUSTER_ID: + emberAfThreadNetworkDiagnosticsClusterInitCallback(endpoint); + break; + case ZCL_TIME_FORMAT_LOCALIZATION_CLUSTER_ID: + emberAfTimeFormatLocalizationClusterInitCallback(endpoint); + break; + case ZCL_USER_LABEL_CLUSTER_ID: + emberAfUserLabelClusterInitCallback(endpoint); + break; + case ZCL_WIFI_NETWORK_DIAGNOSTICS_CLUSTER_ID: + emberAfWiFiNetworkDiagnosticsClusterInitCallback(endpoint); + break; + default: + // Unrecognized cluster ID + break; + } +} + +void __attribute__((weak)) emberAfAccessControlClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfAdministratorCommissioningClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfBasicClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfColorControlClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfDescriptorClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfDiagnosticLogsClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfEthernetNetworkDiagnosticsClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfFixedLabelClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfGeneralCommissioningClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfGeneralDiagnosticsClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfGroupKeyManagementClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfGroupsClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfIdentifyClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfLevelControlClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfLocalizationConfigurationClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfNetworkCommissioningClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfOtaSoftwareUpdateProviderClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfOtaSoftwareUpdateRequestorClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfOccupancySensingClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfOnOffClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfOperationalCredentialsClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfSoftwareDiagnosticsClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfSwitchClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfThreadNetworkDiagnosticsClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfTimeFormatLocalizationClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfUserLabelClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfWiFiNetworkDiagnosticsClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} + +// +// Non-Cluster Related Callbacks +// + +void __attribute__((weak)) emberAfAddToCurrentAppTasksCallback(EmberAfApplicationTask tasks) {} + +void __attribute__((weak)) emberAfRemoveFromCurrentAppTasksCallback(EmberAfApplicationTask tasks) {} + +EmberAfAttributeWritePermission __attribute__((weak)) +emberAfAllowNetworkWriteAttributeCallback(EndpointId endpoint, ClusterId clusterId, AttributeId attributeId, uint8_t * value, + uint8_t type) +{ + return EMBER_ZCL_ATTRIBUTE_WRITE_PERMISSION_ALLOW_WRITE_NORMAL; // Default +} + +bool __attribute__((weak)) emberAfAttributeReadAccessCallback(EndpointId endpoint, ClusterId clusterId, AttributeId attributeId) +{ + return true; +} + +bool __attribute__((weak)) emberAfAttributeWriteAccessCallback(EndpointId endpoint, ClusterId clusterId, AttributeId attributeId) +{ + return true; +} + +bool __attribute__((weak)) emberAfDefaultResponseCallback(ClusterId clusterId, CommandId commandId, EmberAfStatus status) +{ + return false; +} + +bool __attribute__((weak)) emberAfPreMessageSendCallback(EmberAfMessageStruct * messageStruct, EmberStatus * status) +{ + return false; +} + +bool __attribute__((weak)) emberAfMessageSentCallback(const MessageSendDestination & destination, EmberApsFrame * apsFrame, + uint16_t msgLen, uint8_t * message, EmberStatus status) +{ + return false; +} + +EmberAfStatus __attribute__((weak)) +emberAfExternalAttributeReadCallback(EndpointId endpoint, ClusterId clusterId, const EmberAfAttributeMetadata * attributeMetadata, + uint8_t * buffer, uint16_t maxReadLength) +{ + return EMBER_ZCL_STATUS_FAILURE; +} + +EmberAfStatus __attribute__((weak)) +emberAfExternalAttributeWriteCallback(EndpointId endpoint, ClusterId clusterId, const EmberAfAttributeMetadata * attributeMetadata, + uint8_t * buffer) +{ + return EMBER_ZCL_STATUS_FAILURE; +} + +uint32_t __attribute__((weak)) emberAfGetCurrentTimeCallback() +{ + return 0; +} + +bool __attribute__((weak)) +emberAfGetEndpointInfoCallback(EndpointId endpoint, uint8_t * returnNetworkIndex, EmberAfEndpointInfoStruct * returnEndpointInfo) +{ + return false; +} + +void __attribute__((weak)) emberAfRegistrationAbortCallback() {} + +EmberStatus __attribute__((weak)) +emberAfInterpanSendMessageCallback(EmberAfInterpanHeader * header, uint16_t messageLength, uint8_t * message) +{ + return EMBER_LIBRARY_NOT_PRESENT; +} + +bool __attribute__((weak)) emberAfStartMoveCallback() +{ + return false; +} + +chip::Protocols::InteractionModel::Status __attribute__((weak)) +MatterPreAttributeChangeCallback(const chip::app::ConcreteAttributePath & attributePath, uint8_t type, uint16_t size, + uint8_t * value) +{ + return chip::Protocols::InteractionModel::Status::Success; +} + +void __attribute__((weak)) MatterPostAttributeChangeCallback(const chip::app::ConcreteAttributePath & attributePath, uint8_t type, + uint16_t size, uint8_t * value) +{} diff --git a/examples/chef/zzz_generated/lighting-app/zap-generated/endpoint_config.h b/examples/chef/zzz_generated/lighting-app/zap-generated/endpoint_config.h new file mode 100644 index 00000000000000..b693363305327f --- /dev/null +++ b/examples/chef/zzz_generated/lighting-app/zap-generated/endpoint_config.h @@ -0,0 +1,1144 @@ +/* + * + * Copyright (c) 2022 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. + */ + +// THIS FILE IS GENERATED BY ZAP + +// Prevent multiple inclusion +#pragma once + +#include + +// Default values for the attributes longer than a pointer, +// in a form of a binary blob +// Separate block is generated for big-endian and little-endian cases. +#if BIGENDIAN_CPU +#define GENERATED_DEFAULTS \ + { \ + \ + /* Endpoint: 0, Cluster: Localization Configuration (server), big-endian */ \ + \ + /* 0 - ActiveLocale, */ \ + 5, 'e', 'n', '-', 'U', 'S', \ + \ + /* Endpoint: 0, Cluster: General Commissioning (server), big-endian */ \ + \ + /* 6 - Breadcrumb, */ \ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ + } + +#else // !BIGENDIAN_CPU +#define GENERATED_DEFAULTS \ + { \ + \ + /* Endpoint: 0, Cluster: Localization Configuration (server), little-endian */ \ + \ + /* 0 - ActiveLocale, */ \ + 5, 'e', 'n', '-', 'U', 'S', \ + \ + /* Endpoint: 0, Cluster: General Commissioning (server), little-endian */ \ + \ + /* 6 - Breadcrumb, */ \ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ + } + +#endif // BIGENDIAN_CPU + +#define GENERATED_DEFAULTS_COUNT (2) + +#define ZAP_TYPE(type) ZCL_##type##_ATTRIBUTE_TYPE +#define ZAP_LONG_DEFAULTS_INDEX(index) \ + { \ + &generatedDefaults[index] \ + } +#define ZAP_MIN_MAX_DEFAULTS_INDEX(index) \ + { \ + &minMaxDefaults[index] \ + } +#define ZAP_EMPTY_DEFAULT() \ + { \ + (uint32_t) 0 \ + } +#define ZAP_SIMPLE_DEFAULT(x) \ + { \ + (uint32_t) x \ + } + +// This is an array of EmberAfAttributeMinMaxValue structures. +#define GENERATED_MIN_MAX_DEFAULT_COUNT 4 +#define GENERATED_MIN_MAX_DEFAULTS \ + { \ + \ + /* Endpoint: 0, Cluster: Time Format Localization (server) */ \ + { (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x1 }, /* HourFormat */ \ + \ + /* Endpoint: 1, Cluster: On/Off (server) */ \ + { (uint16_t) 0xFF, (uint16_t) 0x0, (uint16_t) 0x2 }, /* StartUpOnOff */ \ + \ + /* Endpoint: 1, Cluster: Level Control (server) */ \ + { (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0x3 }, /* options */ \ + \ + /* Endpoint: 1, Cluster: Color Control (server) */ \ + { \ + (uint16_t) 0x0, (uint16_t) 0x0, (uint16_t) 0xFEFF \ + } /* StartUpColorTemperatureMireds */ \ + } + +#define ZAP_ATTRIBUTE_MASK(mask) ATTRIBUTE_MASK_##mask +// This is an array of EmberAfAttributeMetadata structures. +#define GENERATED_ATTRIBUTE_COUNT 270 +#define GENERATED_ATTRIBUTES \ + { \ + \ + /* Endpoint: 0, Cluster: Groups (server) */ \ + { 0x00000000, ZAP_TYPE(BITMAP8), 1, 0, ZAP_EMPTY_DEFAULT() }, /* name support */ \ + { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ + { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \ + \ + /* Endpoint: 0, Cluster: Descriptor (server) */ \ + { 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* device list */ \ + { 0x00000001, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* server list */ \ + { 0x00000002, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* client list */ \ + { 0x00000003, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* parts list */ \ + { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ + { 0x0000FFFD, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* ClusterRevision */ \ + \ + /* Endpoint: 0, Cluster: Access Control (server) */ \ + { 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(WRITABLE), \ + ZAP_EMPTY_DEFAULT() }, /* ACL */ \ + { 0x00000001, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(WRITABLE), \ + ZAP_EMPTY_DEFAULT() }, /* Extension */ \ + { 0x00000002, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* SubjectsPerAccessControlEntry */ \ + { 0x00000003, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* TargetsPerAccessControlEntry */ \ + { 0x00000004, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* AccessControlEntriesPerFabric */ \ + { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ + { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ + \ + /* Endpoint: 0, Cluster: Basic (server) */ \ + { 0x00000000, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), \ + ZAP_EMPTY_DEFAULT() }, /* DataModelRevision */ \ + { 0x00000001, ZAP_TYPE(CHAR_STRING), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), \ + ZAP_EMPTY_DEFAULT() }, /* VendorName */ \ + { 0x00000002, ZAP_TYPE(VENDOR_ID), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), \ + ZAP_EMPTY_DEFAULT() }, /* VendorID */ \ + { 0x00000003, ZAP_TYPE(CHAR_STRING), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), \ + ZAP_EMPTY_DEFAULT() }, /* ProductName */ \ + { 0x00000004, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), \ + ZAP_EMPTY_DEFAULT() }, /* ProductID */ \ + { 0x00000005, ZAP_TYPE(CHAR_STRING), 33, \ + ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(SINGLETON) | ZAP_ATTRIBUTE_MASK(WRITABLE), \ + ZAP_EMPTY_DEFAULT() }, /* NodeLabel */ \ + { 0x00000006, ZAP_TYPE(CHAR_STRING), 0, \ + ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON) | ZAP_ATTRIBUTE_MASK(WRITABLE), \ + ZAP_EMPTY_DEFAULT() }, /* Location */ \ + { 0x00000007, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), \ + ZAP_EMPTY_DEFAULT() }, /* HardwareVersion */ \ + { 0x00000008, ZAP_TYPE(CHAR_STRING), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), \ + ZAP_EMPTY_DEFAULT() }, /* HardwareVersionString */ \ + { 0x00000009, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), \ + ZAP_EMPTY_DEFAULT() }, /* SoftwareVersion */ \ + { 0x0000000A, ZAP_TYPE(CHAR_STRING), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), \ + ZAP_EMPTY_DEFAULT() }, /* SoftwareVersionString */ \ + { 0x0000000B, ZAP_TYPE(CHAR_STRING), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), \ + ZAP_EMPTY_DEFAULT() }, /* ManufacturingDate */ \ + { 0x0000000C, ZAP_TYPE(CHAR_STRING), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), \ + ZAP_EMPTY_DEFAULT() }, /* PartNumber */ \ + { 0x0000000D, ZAP_TYPE(LONG_CHAR_STRING), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), \ + ZAP_EMPTY_DEFAULT() }, /* ProductURL */ \ + { 0x0000000E, ZAP_TYPE(CHAR_STRING), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), \ + ZAP_EMPTY_DEFAULT() }, /* ProductLabel */ \ + { 0x0000000F, ZAP_TYPE(CHAR_STRING), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), \ + ZAP_EMPTY_DEFAULT() }, /* SerialNumber */ \ + { 0x00000010, ZAP_TYPE(BOOLEAN), 1, \ + ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(SINGLETON) | ZAP_ATTRIBUTE_MASK(WRITABLE), \ + ZAP_SIMPLE_DEFAULT(0) }, /* LocalConfigDisabled */ \ + { 0x00000011, ZAP_TYPE(BOOLEAN), 1, ZAP_ATTRIBUTE_MASK(SINGLETON), ZAP_SIMPLE_DEFAULT(1) }, /* Reachable */ \ + { 0x00000012, ZAP_TYPE(CHAR_STRING), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON), \ + ZAP_EMPTY_DEFAULT() }, /* UniqueID */ \ + { 0x00000013, ZAP_TYPE(STRUCT), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* CapabilityMinima */ \ + { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ + { 0x0000FFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(SINGLETON), ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ + \ + /* Endpoint: 0, Cluster: OTA Software Update Requestor (server) */ \ + { 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(WRITABLE), \ + ZAP_EMPTY_DEFAULT() }, /* DefaultOtaProviders */ \ + { 0x00000001, ZAP_TYPE(BOOLEAN), 1, 0, ZAP_SIMPLE_DEFAULT(1) }, /* UpdatePossible */ \ + { 0x00000002, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0) }, /* UpdateState */ \ + { 0x00000003, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_SIMPLE_DEFAULT(0) }, /* UpdateStateProgress */ \ + { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ + { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ + \ + /* Endpoint: 0, Cluster: Localization Configuration (server) */ \ + { 0x00000000, ZAP_TYPE(CHAR_STRING), 36, ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(WRITABLE), \ + ZAP_LONG_DEFAULTS_INDEX(0) }, /* ActiveLocale */ \ + { 0x00000001, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* SupportedLocales */ \ + { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ + { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ + \ + /* Endpoint: 0, Cluster: Time Format Localization (server) */ \ + { 0x00000000, ZAP_TYPE(ENUM8), 1, \ + ZAP_ATTRIBUTE_MASK(MIN_MAX) | ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(WRITABLE), \ + ZAP_MIN_MAX_DEFAULTS_INDEX(0) }, /* HourFormat */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(WRITABLE), \ + ZAP_SIMPLE_DEFAULT(0) }, /* ActiveCalendarType */ \ + { 0x00000002, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* SupportedCalendarTypes */ \ + { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ + { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ + \ + /* Endpoint: 0, Cluster: General Commissioning (server) */ \ + { 0x00000000, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_LONG_DEFAULTS_INDEX(6) }, /* Breadcrumb */ \ + { 0x00000001, ZAP_TYPE(STRUCT), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* BasicCommissioningInfo */ \ + { 0x00000002, ZAP_TYPE(ENUM8), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* RegulatoryConfig */ \ + { 0x00000003, ZAP_TYPE(ENUM8), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* LocationCapability */ \ + { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(6) }, /* FeatureMap */ \ + { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ + \ + /* Endpoint: 0, Cluster: Network Commissioning (server) */ \ + { 0x00000000, ZAP_TYPE(INT8U), 1, 0, ZAP_EMPTY_DEFAULT() }, /* MaxNetworks */ \ + { 0x00000001, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* Networks */ \ + { 0x00000002, ZAP_TYPE(INT8U), 1, 0, ZAP_EMPTY_DEFAULT() }, /* ScanMaxTimeSeconds */ \ + { 0x00000003, ZAP_TYPE(INT8U), 1, 0, ZAP_EMPTY_DEFAULT() }, /* ConnectMaxTimeSeconds */ \ + { 0x00000004, ZAP_TYPE(BOOLEAN), 1, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_EMPTY_DEFAULT() }, /* InterfaceEnabled */ \ + { 0x00000005, ZAP_TYPE(ENUM8), 1, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() }, /* LastNetworkingStatus */ \ + { 0x00000006, ZAP_TYPE(OCTET_STRING), 33, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() }, /* LastNetworkID */ \ + { 0x00000007, ZAP_TYPE(INT32S), 4, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() }, /* LastConnectErrorValue */ \ + { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(2) }, /* FeatureMap */ \ + { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ + \ + /* Endpoint: 0, Cluster: Diagnostic Logs (server) */ \ + { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ + { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ + \ + /* Endpoint: 0, Cluster: General Diagnostics (server) */ \ + { 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* NetworkInterfaces */ \ + { 0x00000001, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* RebootCount */ \ + { 0x00000002, ZAP_TYPE(INT64U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* UpTime */ \ + { 0x00000003, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* TotalOperationalHours */ \ + { 0x00000004, ZAP_TYPE(ENUM8), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* BootReasons */ \ + { 0x00000005, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* ActiveHardwareFaults */ \ + { 0x00000006, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* ActiveRadioFaults */ \ + { 0x00000007, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* ActiveNetworkFaults */ \ + { 0x00000008, ZAP_TYPE(BOOLEAN), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* TestEventTriggersEnabled */ \ + { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ + { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ + \ + /* Endpoint: 0, Cluster: Software Diagnostics (server) */ \ + { 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* ThreadMetrics */ \ + { 0x00000001, ZAP_TYPE(INT64U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* CurrentHeapFree */ \ + { 0x00000002, ZAP_TYPE(INT64U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* CurrentHeapUsed */ \ + { 0x00000003, ZAP_TYPE(INT64U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* CurrentHeapHighWatermark */ \ + { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(1) }, /* FeatureMap */ \ + { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ + \ + /* Endpoint: 0, Cluster: Thread Network Diagnostics (server) */ \ + { 0x00000000, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ + ZAP_EMPTY_DEFAULT() }, /* channel */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ + ZAP_EMPTY_DEFAULT() }, /* RoutingRole */ \ + { 0x00000002, ZAP_TYPE(CHAR_STRING), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ + ZAP_EMPTY_DEFAULT() }, /* NetworkName */ \ + { 0x00000003, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ + ZAP_EMPTY_DEFAULT() }, /* PanId */ \ + { 0x00000004, ZAP_TYPE(INT64U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ + ZAP_EMPTY_DEFAULT() }, /* ExtendedPanId */ \ + { 0x00000005, ZAP_TYPE(OCTET_STRING), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ + ZAP_EMPTY_DEFAULT() }, /* MeshLocalPrefix */ \ + { 0x00000006, ZAP_TYPE(INT64U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* OverrunCount */ \ + { 0x00000007, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* NeighborTableList */ \ + { 0x00000008, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* RouteTableList */ \ + { 0x00000009, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ + ZAP_EMPTY_DEFAULT() }, /* PartitionId */ \ + { 0x0000000A, ZAP_TYPE(INT8U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ + ZAP_EMPTY_DEFAULT() }, /* weighting */ \ + { 0x0000000B, ZAP_TYPE(INT8U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ + ZAP_EMPTY_DEFAULT() }, /* DataVersion */ \ + { 0x0000000C, ZAP_TYPE(INT8U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ + ZAP_EMPTY_DEFAULT() }, /* StableDataVersion */ \ + { 0x0000000D, ZAP_TYPE(INT8U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ + ZAP_EMPTY_DEFAULT() }, /* LeaderRouterId */ \ + { 0x0000000E, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* DetachedRoleCount */ \ + { 0x0000000F, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* ChildRoleCount */ \ + { 0x00000010, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* RouterRoleCount */ \ + { 0x00000011, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* LeaderRoleCount */ \ + { 0x00000012, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* AttachAttemptCount */ \ + { 0x00000013, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* PartitionIdChangeCount */ \ + { 0x00000014, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* BetterPartitionAttachAttemptCount */ \ + { 0x00000015, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* ParentChangeCount */ \ + { 0x00000016, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* TxTotalCount */ \ + { 0x00000017, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* TxUnicastCount */ \ + { 0x00000018, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* TxBroadcastCount */ \ + { 0x00000019, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* TxAckRequestedCount */ \ + { 0x0000001A, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* TxAckedCount */ \ + { 0x0000001B, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* TxNoAckRequestedCount */ \ + { 0x0000001C, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* TxDataCount */ \ + { 0x0000001D, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* TxDataPollCount */ \ + { 0x0000001E, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* TxBeaconCount */ \ + { 0x0000001F, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* TxBeaconRequestCount */ \ + { 0x00000020, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* TxOtherCount */ \ + { 0x00000021, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* TxRetryCount */ \ + { 0x00000022, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* TxDirectMaxRetryExpiryCount */ \ + { 0x00000023, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* TxIndirectMaxRetryExpiryCount */ \ + { 0x00000024, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* TxErrCcaCount */ \ + { 0x00000025, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* TxErrAbortCount */ \ + { 0x00000026, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* TxErrBusyChannelCount */ \ + { 0x00000027, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* RxTotalCount */ \ + { 0x00000028, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* RxUnicastCount */ \ + { 0x00000029, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* RxBroadcastCount */ \ + { 0x0000002A, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* RxDataCount */ \ + { 0x0000002B, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* RxDataPollCount */ \ + { 0x0000002C, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* RxBeaconCount */ \ + { 0x0000002D, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* RxBeaconRequestCount */ \ + { 0x0000002E, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* RxOtherCount */ \ + { 0x0000002F, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* RxAddressFilteredCount */ \ + { 0x00000030, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* RxDestAddrFilteredCount */ \ + { 0x00000031, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* RxDuplicatedCount */ \ + { 0x00000032, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* RxErrNoFrameCount */ \ + { 0x00000033, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* RxErrUnknownNeighborCount */ \ + { 0x00000034, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* RxErrInvalidSrcAddrCount */ \ + { 0x00000035, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* RxErrSecCount */ \ + { 0x00000036, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* RxErrFcsCount */ \ + { 0x00000037, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* RxErrOtherCount */ \ + { 0x00000038, ZAP_TYPE(INT64U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ + ZAP_EMPTY_DEFAULT() }, /* ActiveTimestamp */ \ + { 0x00000039, ZAP_TYPE(INT64U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ + ZAP_EMPTY_DEFAULT() }, /* PendingTimestamp */ \ + { 0x0000003A, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ + ZAP_EMPTY_DEFAULT() }, /* delay */ \ + { 0x0000003B, ZAP_TYPE(STRUCT), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ + ZAP_EMPTY_DEFAULT() }, /* SecurityPolicy */ \ + { 0x0000003C, ZAP_TYPE(OCTET_STRING), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ + ZAP_EMPTY_DEFAULT() }, /* ChannelMask */ \ + { 0x0000003D, ZAP_TYPE(STRUCT), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ + ZAP_EMPTY_DEFAULT() }, /* OperationalDatasetComponents */ \ + { 0x0000003E, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* ActiveNetworkFaultsList */ \ + { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0x000F) }, /* FeatureMap */ \ + { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ + \ + /* Endpoint: 0, Cluster: WiFi Network Diagnostics (server) */ \ + { 0x00000000, ZAP_TYPE(OCTET_STRING), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ + ZAP_EMPTY_DEFAULT() }, /* bssid */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ + ZAP_EMPTY_DEFAULT() }, /* SecurityType */ \ + { 0x00000002, ZAP_TYPE(ENUM8), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ + ZAP_EMPTY_DEFAULT() }, /* WiFiVersion */ \ + { 0x00000003, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ + ZAP_EMPTY_DEFAULT() }, /* ChannelNumber */ \ + { 0x00000004, ZAP_TYPE(INT8S), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ + ZAP_EMPTY_DEFAULT() }, /* Rssi */ \ + { 0x00000005, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* BeaconLostCount */ \ + { 0x00000006, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* BeaconRxCount */ \ + { 0x00000007, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* PacketMulticastRxCount */ \ + { 0x00000008, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* PacketMulticastTxCount */ \ + { 0x00000009, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* PacketUnicastRxCount */ \ + { 0x0000000A, ZAP_TYPE(INT32U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* PacketUnicastTxCount */ \ + { 0x0000000B, ZAP_TYPE(INT64U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* CurrentMaxRate */ \ + { 0x0000000C, ZAP_TYPE(INT64U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* OverrunCount */ \ + { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(3) }, /* FeatureMap */ \ + { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ + \ + /* Endpoint: 0, Cluster: Ethernet Network Diagnostics (server) */ \ + { 0x00000000, ZAP_TYPE(ENUM8), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ + ZAP_EMPTY_DEFAULT() }, /* PHYRate */ \ + { 0x00000001, ZAP_TYPE(BOOLEAN), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ + ZAP_EMPTY_DEFAULT() }, /* FullDuplex */ \ + { 0x00000002, ZAP_TYPE(INT64U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* PacketRxCount */ \ + { 0x00000003, ZAP_TYPE(INT64U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* PacketTxCount */ \ + { 0x00000004, ZAP_TYPE(INT64U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* TxErrCount */ \ + { 0x00000005, ZAP_TYPE(INT64U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* CollisionCount */ \ + { 0x00000006, ZAP_TYPE(INT64U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* OverrunCount */ \ + { 0x00000007, ZAP_TYPE(BOOLEAN), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ + ZAP_EMPTY_DEFAULT() }, /* CarrierDetect */ \ + { 0x00000008, ZAP_TYPE(INT64U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* TimeSinceReset */ \ + { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(3) }, /* FeatureMap */ \ + { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ + \ + /* Endpoint: 0, Cluster: Switch (server) */ \ + { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ + { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ + \ + /* Endpoint: 0, Cluster: AdministratorCommissioning (server) */ \ + { 0x00000000, ZAP_TYPE(INT8U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* WindowStatus */ \ + { 0x00000001, ZAP_TYPE(FABRIC_IDX), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* AdminFabricIndex */ \ + { 0x00000002, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* AdminVendorId */ \ + { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ + { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ + \ + /* Endpoint: 0, Cluster: Operational Credentials (server) */ \ + { 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* NOCs */ \ + { 0x00000001, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* Fabrics */ \ + { 0x00000002, ZAP_TYPE(INT8U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* SupportedFabrics */ \ + { 0x00000003, ZAP_TYPE(INT8U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* CommissionedFabrics */ \ + { 0x00000004, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* TrustedRootCertificates */ \ + { 0x00000005, ZAP_TYPE(FABRIC_IDX), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* CurrentFabricIndex */ \ + { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ + { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ + \ + /* Endpoint: 0, Cluster: Group Key Management (server) */ \ + { 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(WRITABLE), \ + ZAP_EMPTY_DEFAULT() }, /* GroupKeyMap */ \ + { 0x00000001, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* GroupTable */ \ + { 0x00000002, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* MaxGroupsPerFabric */ \ + { 0x00000003, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), \ + ZAP_EMPTY_DEFAULT() }, /* MaxGroupKeysPerFabric */ \ + { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ + { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ + \ + /* Endpoint: 0, Cluster: Fixed Label (server) */ \ + { 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* label list */ \ + { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ + { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ + \ + /* Endpoint: 0, Cluster: User Label (server) */ \ + { 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(WRITABLE), \ + ZAP_EMPTY_DEFAULT() }, /* label list */ \ + { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ + { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */ \ + \ + /* Endpoint: 1, Cluster: Identify (server) */ \ + { 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0000) }, /* identify time */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */ \ + { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ + { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \ + \ + /* Endpoint: 1, Cluster: Groups (server) */ \ + { 0x00000000, ZAP_TYPE(BITMAP8), 1, 0, ZAP_EMPTY_DEFAULT() }, /* name support */ \ + { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ + { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \ + \ + /* Endpoint: 1, Cluster: On/Off (server) */ \ + { 0x00000000, ZAP_TYPE(BOOLEAN), 1, ZAP_ATTRIBUTE_MASK(TOKENIZE), ZAP_SIMPLE_DEFAULT(0x00) }, /* OnOff */ \ + { 0x00004000, ZAP_TYPE(BOOLEAN), 1, 0, ZAP_SIMPLE_DEFAULT(0x01) }, /* GlobalSceneControl */ \ + { 0x00004001, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0000) }, /* OnTime */ \ + { 0x00004002, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x0000) }, /* OffWaitTime */ \ + { 0x00004003, ZAP_TYPE(ENUM8), 1, \ + ZAP_ATTRIBUTE_MASK(MIN_MAX) | ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(WRITABLE) | \ + ZAP_ATTRIBUTE_MASK(NULLABLE), \ + ZAP_MIN_MAX_DEFAULTS_INDEX(1) }, /* StartUpOnOff */ \ + { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(1) }, /* FeatureMap */ \ + { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(4) }, /* ClusterRevision */ \ + \ + /* Endpoint: 1, Cluster: Level Control (server) */ \ + { 0x00000000, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(TOKENIZE), ZAP_SIMPLE_DEFAULT(0x01) }, /* current level */ \ + { 0x00000001, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* remaining time */ \ + { 0x00000002, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x01) }, /* min level */ \ + { 0x00000003, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0xFE) }, /* max level */ \ + { 0x00000004, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* current frequency */ \ + { 0x00000005, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* min frequency */ \ + { 0x00000006, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* max frequency */ \ + { 0x0000000F, ZAP_TYPE(BITMAP8), 1, ZAP_ATTRIBUTE_MASK(MIN_MAX) | ZAP_ATTRIBUTE_MASK(WRITABLE), \ + ZAP_MIN_MAX_DEFAULTS_INDEX(2) }, /* options */ \ + { 0x00000010, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), \ + ZAP_SIMPLE_DEFAULT(0x0000) }, /* on off transition time */ \ + { 0x00000011, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ + ZAP_SIMPLE_DEFAULT(0xFF) }, /* on level */ \ + { 0x00000012, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ + ZAP_EMPTY_DEFAULT() }, /* on transition time */ \ + { 0x00000013, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ + ZAP_EMPTY_DEFAULT() }, /* off transition time */ \ + { 0x00000014, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ + ZAP_EMPTY_DEFAULT() }, /* default move rate */ \ + { 0x00004000, ZAP_TYPE(INT8U), 1, \ + ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE), \ + ZAP_SIMPLE_DEFAULT(255) }, /* start up current level */ \ + { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(3) }, /* FeatureMap */ \ + { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(5) }, /* ClusterRevision */ \ + \ + /* Endpoint: 1, Cluster: Descriptor (server) */ \ + { 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* device list */ \ + { 0x00000001, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* server list */ \ + { 0x00000002, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* client list */ \ + { 0x00000003, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* parts list */ \ + { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ + { 0x0000FFFD, ZAP_TYPE(INT16U), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* ClusterRevision */ \ + \ + /* Endpoint: 1, Cluster: Color Control (server) */ \ + { 0x00000000, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x00) }, /* CurrentHue */ \ + { 0x00000001, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x00) }, /* CurrentSaturation */ \ + { 0x00000002, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* RemainingTime */ \ + { 0x00000003, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x616B) }, /* CurrentX */ \ + { 0x00000004, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x607D) }, /* CurrentY */ \ + { 0x00000007, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x00FA) }, /* ColorTemperature */ \ + { 0x00000008, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x01) }, /* ColorMode */ \ + { 0x0000000F, ZAP_TYPE(BITMAP8), 1, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_SIMPLE_DEFAULT(0x00) }, /* Options */ \ + { 0x00000010, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() }, /* NumberOfPrimaries */ \ + { 0x00004000, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* EnhancedCurrentHue */ \ + { 0x00004001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x01) }, /* EnhancedColorMode */ \ + { 0x00004002, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x00) }, /* ColorLoopActive */ \ + { 0x00004003, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0x00) }, /* ColorLoopDirection */ \ + { 0x00004004, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0019) }, /* ColorLoopTime */ \ + { 0x00004005, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x2300) }, /* ColorLoopStartEnhancedHue */ \ + { 0x00004006, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* ColorLoopStoredEnhancedHue */ \ + { 0x0000400A, ZAP_TYPE(BITMAP16), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* ColorCapabilities */ \ + { 0x0000400B, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0000) }, /* ColorTempPhysicalMinMireds */ \ + { 0x0000400C, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0xFEFF) }, /* ColorTempPhysicalMaxMireds */ \ + { 0x0000400D, ZAP_TYPE(INT16U), 2, 0, ZAP_EMPTY_DEFAULT() }, /* CoupleColorTempToLevelMinMireds */ \ + { 0x00004010, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(MIN_MAX) | ZAP_ATTRIBUTE_MASK(WRITABLE), \ + ZAP_MIN_MAX_DEFAULTS_INDEX(3) }, /* StartUpColorTemperatureMireds */ \ + { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ + { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(5) }, /* ClusterRevision */ \ + \ + /* Endpoint: 1, Cluster: Occupancy Sensing (server) */ \ + { 0x00000000, ZAP_TYPE(BITMAP8), 1, 0, ZAP_EMPTY_DEFAULT() }, /* occupancy */ \ + { 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() }, /* occupancy sensor type */ \ + { 0x00000002, ZAP_TYPE(BITMAP8), 1, 0, ZAP_EMPTY_DEFAULT() }, /* occupancy sensor type bitmap */ \ + { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */ \ + { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(3) }, /* ClusterRevision */ \ + } + +// This is an array of EmberAfCluster structures. +#define ZAP_ATTRIBUTE_INDEX(index) (&generatedAttributes[index]) + +#define ZAP_GENERATED_COMMANDS_INDEX(index) ((chip::CommandId *) (&generatedCommands[index])) + +// Cluster function static arrays +#define GENERATED_FUNCTION_ARRAYS \ + const EmberAfGenericClusterFunction chipFuncArrayGroupsServer[] = { \ + (EmberAfGenericClusterFunction) emberAfGroupsClusterServerInitCallback, \ + }; \ + const EmberAfGenericClusterFunction chipFuncArrayBasicServer[] = { \ + (EmberAfGenericClusterFunction) emberAfBasicClusterServerInitCallback, \ + }; \ + const EmberAfGenericClusterFunction chipFuncArrayLocalizationConfigurationServer[] = { \ + (EmberAfGenericClusterFunction) emberAfLocalizationConfigurationClusterServerInitCallback, \ + (EmberAfGenericClusterFunction) MatterLocalizationConfigurationClusterServerPreAttributeChangedCallback, \ + }; \ + const EmberAfGenericClusterFunction chipFuncArrayTimeFormatLocalizationServer[] = { \ + (EmberAfGenericClusterFunction) emberAfTimeFormatLocalizationClusterServerInitCallback, \ + (EmberAfGenericClusterFunction) MatterTimeFormatLocalizationClusterServerPreAttributeChangedCallback, \ + }; \ + const EmberAfGenericClusterFunction chipFuncArrayIdentifyServer[] = { \ + (EmberAfGenericClusterFunction) emberAfIdentifyClusterServerInitCallback, \ + (EmberAfGenericClusterFunction) MatterIdentifyClusterServerAttributeChangedCallback, \ + }; \ + const EmberAfGenericClusterFunction chipFuncArrayOnOffServer[] = { \ + (EmberAfGenericClusterFunction) emberAfOnOffClusterServerInitCallback, \ + }; \ + const EmberAfGenericClusterFunction chipFuncArrayLevelControlServer[] = { \ + (EmberAfGenericClusterFunction) emberAfLevelControlClusterServerInitCallback, \ + }; \ + const EmberAfGenericClusterFunction chipFuncArrayColorControlServer[] = { \ + (EmberAfGenericClusterFunction) emberAfColorControlClusterServerInitCallback, \ + }; \ + const EmberAfGenericClusterFunction chipFuncArrayOccupancySensingServer[] = { \ + (EmberAfGenericClusterFunction) emberAfOccupancySensingClusterServerInitCallback, \ + }; + +// clang-format off +#define GENERATED_COMMANDS { \ + /* Endpoint: 0, Cluster: Groups (server) */\ + /* AcceptedCommandList (index=0) */ \ + 0x00000000 /* AddGroup */, \ + 0x00000001 /* ViewGroup */, \ + 0x00000002 /* GetGroupMembership */, \ + 0x00000003 /* RemoveGroup */, \ + 0x00000004 /* RemoveAllGroups */, \ + 0x00000005 /* AddGroupIfIdentifying */, \ + chip::kInvalidCommandId /* end of list */, \ + /* GeneratedCommandList (index=7)*/ \ + 0x00000000 /* AddGroupResponse */, \ + 0x00000001 /* ViewGroupResponse */, \ + 0x00000002 /* GetGroupMembershipResponse */, \ + 0x00000003 /* RemoveGroupResponse */, \ + chip::kInvalidCommandId /* end of list */, \ + /* Endpoint: 0, Cluster: OTA Software Update Requestor (server) */\ + /* AcceptedCommandList (index=12) */ \ + 0x00000000 /* AnnounceOtaProvider */, \ + chip::kInvalidCommandId /* end of list */, \ + /* Endpoint: 0, Cluster: General Commissioning (server) */\ + /* AcceptedCommandList (index=14) */ \ + 0x00000000 /* ArmFailSafe */, \ + 0x00000002 /* SetRegulatoryConfig */, \ + 0x00000004 /* CommissioningComplete */, \ + chip::kInvalidCommandId /* end of list */, \ + /* GeneratedCommandList (index=18)*/ \ + 0x00000001 /* ArmFailSafeResponse */, \ + 0x00000003 /* SetRegulatoryConfigResponse */, \ + 0x00000005 /* CommissioningCompleteResponse */, \ + chip::kInvalidCommandId /* end of list */, \ + /* Endpoint: 0, Cluster: Network Commissioning (server) */\ + /* AcceptedCommandList (index=22) */ \ + 0x00000000 /* ScanNetworks */, \ + 0x00000002 /* AddOrUpdateWiFiNetwork */, \ + 0x00000003 /* AddOrUpdateThreadNetwork */, \ + 0x00000004 /* RemoveNetwork */, \ + 0x00000006 /* ConnectNetwork */, \ + 0x00000008 /* ReorderNetwork */, \ + chip::kInvalidCommandId /* end of list */, \ + /* GeneratedCommandList (index=29)*/ \ + 0x00000001 /* ScanNetworksResponse */, \ + 0x00000005 /* NetworkConfigResponse */, \ + 0x00000007 /* ConnectNetworkResponse */, \ + chip::kInvalidCommandId /* end of list */, \ + /* Endpoint: 0, Cluster: Diagnostic Logs (server) */\ + /* AcceptedCommandList (index=33) */ \ + 0x00000000 /* RetrieveLogsRequest */, \ + chip::kInvalidCommandId /* end of list */, \ + /* GeneratedCommandList (index=35)*/ \ + 0x00000001 /* RetrieveLogsResponse */, \ + chip::kInvalidCommandId /* end of list */, \ + /* Endpoint: 0, Cluster: General Diagnostics (server) */\ + /* AcceptedCommandList (index=37) */ \ + 0x00000000 /* TestEventTrigger */, \ + chip::kInvalidCommandId /* end of list */, \ + /* Endpoint: 0, Cluster: Software Diagnostics (server) */\ + /* AcceptedCommandList (index=39) */ \ + 0x00000000 /* ResetWatermarks */, \ + chip::kInvalidCommandId /* end of list */, \ + /* Endpoint: 0, Cluster: Thread Network Diagnostics (server) */\ + /* AcceptedCommandList (index=41) */ \ + 0x00000000 /* ResetCounts */, \ + chip::kInvalidCommandId /* end of list */, \ + /* Endpoint: 0, Cluster: WiFi Network Diagnostics (server) */\ + /* AcceptedCommandList (index=43) */ \ + 0x00000000 /* ResetCounts */, \ + chip::kInvalidCommandId /* end of list */, \ + /* Endpoint: 0, Cluster: Ethernet Network Diagnostics (server) */\ + /* AcceptedCommandList (index=45) */ \ + 0x00000000 /* ResetCounts */, \ + chip::kInvalidCommandId /* end of list */, \ + /* Endpoint: 0, Cluster: AdministratorCommissioning (server) */\ + /* AcceptedCommandList (index=47) */ \ + 0x00000000 /* OpenCommissioningWindow */, \ + 0x00000001 /* OpenBasicCommissioningWindow */, \ + 0x00000002 /* RevokeCommissioning */, \ + chip::kInvalidCommandId /* end of list */, \ + /* Endpoint: 0, Cluster: Operational Credentials (server) */\ + /* AcceptedCommandList (index=51) */ \ + 0x00000000 /* AttestationRequest */, \ + 0x00000002 /* CertificateChainRequest */, \ + 0x00000004 /* CSRRequest */, \ + 0x00000006 /* AddNOC */, \ + 0x00000007 /* UpdateNOC */, \ + 0x00000009 /* UpdateFabricLabel */, \ + 0x0000000A /* RemoveFabric */, \ + 0x0000000B /* AddTrustedRootCertificate */, \ + chip::kInvalidCommandId /* end of list */, \ + /* GeneratedCommandList (index=60)*/ \ + 0x00000001 /* AttestationResponse */, \ + 0x00000003 /* CertificateChainResponse */, \ + 0x00000005 /* CSRResponse */, \ + 0x00000008 /* NOCResponse */, \ + chip::kInvalidCommandId /* end of list */, \ + /* Endpoint: 0, Cluster: Group Key Management (server) */\ + /* AcceptedCommandList (index=65) */ \ + 0x00000000 /* KeySetWrite */, \ + 0x00000001 /* KeySetRead */, \ + 0x00000003 /* KeySetRemove */, \ + 0x00000004 /* KeySetReadAllIndices */, \ + chip::kInvalidCommandId /* end of list */, \ + /* GeneratedCommandList (index=70)*/ \ + 0x00000002 /* KeySetReadResponse */, \ + 0x00000005 /* KeySetReadAllIndicesResponse */, \ + chip::kInvalidCommandId /* end of list */, \ + /* Endpoint: 1, Cluster: Identify (server) */\ + /* AcceptedCommandList (index=73) */ \ + 0x00000000 /* Identify */, \ + 0x00000040 /* TriggerEffect */, \ + chip::kInvalidCommandId /* end of list */, \ + /* Endpoint: 1, Cluster: Groups (server) */\ + /* AcceptedCommandList (index=76) */ \ + 0x00000000 /* AddGroup */, \ + 0x00000001 /* ViewGroup */, \ + 0x00000002 /* GetGroupMembership */, \ + 0x00000003 /* RemoveGroup */, \ + 0x00000004 /* RemoveAllGroups */, \ + 0x00000005 /* AddGroupIfIdentifying */, \ + chip::kInvalidCommandId /* end of list */, \ + /* GeneratedCommandList (index=83)*/ \ + 0x00000000 /* AddGroupResponse */, \ + 0x00000001 /* ViewGroupResponse */, \ + 0x00000002 /* GetGroupMembershipResponse */, \ + 0x00000003 /* RemoveGroupResponse */, \ + chip::kInvalidCommandId /* end of list */, \ + /* Endpoint: 1, Cluster: On/Off (server) */\ + /* AcceptedCommandList (index=88) */ \ + 0x00000000 /* Off */, \ + 0x00000001 /* On */, \ + 0x00000002 /* Toggle */, \ + 0x00000040 /* OffWithEffect */, \ + 0x00000041 /* OnWithRecallGlobalScene */, \ + 0x00000042 /* OnWithTimedOff */, \ + chip::kInvalidCommandId /* end of list */, \ + /* Endpoint: 1, Cluster: Level Control (server) */\ + /* AcceptedCommandList (index=95) */ \ + 0x00000000 /* MoveToLevel */, \ + 0x00000001 /* Move */, \ + 0x00000002 /* Step */, \ + 0x00000003 /* Stop */, \ + 0x00000004 /* MoveToLevelWithOnOff */, \ + 0x00000005 /* MoveWithOnOff */, \ + 0x00000006 /* StepWithOnOff */, \ + 0x00000007 /* StopWithOnOff */, \ + chip::kInvalidCommandId /* end of list */, \ + /* Endpoint: 1, Cluster: Color Control (server) */\ + /* AcceptedCommandList (index=104) */ \ + 0x00000000 /* MoveToHue */, \ + 0x00000001 /* MoveHue */, \ + 0x00000002 /* StepHue */, \ + 0x00000003 /* MoveToSaturation */, \ + 0x00000004 /* MoveSaturation */, \ + 0x00000005 /* StepSaturation */, \ + 0x00000006 /* MoveToHueAndSaturation */, \ + 0x00000007 /* MoveToColor */, \ + 0x00000008 /* MoveColor */, \ + 0x00000009 /* StepColor */, \ + 0x0000000A /* MoveToColorTemperature */, \ + 0x00000040 /* EnhancedMoveToHue */, \ + 0x00000041 /* EnhancedMoveHue */, \ + 0x00000042 /* EnhancedStepHue */, \ + 0x00000043 /* EnhancedMoveToHueAndSaturation */, \ + 0x00000044 /* ColorLoopSet */, \ + 0x00000047 /* StopMoveStep */, \ + 0x0000004B /* MoveColorTemperature */, \ + 0x0000004C /* StepColorTemperature */, \ + chip::kInvalidCommandId /* end of list */, \ +} + +// clang-format on + +#define ZAP_CLUSTER_MASK(mask) CLUSTER_MASK_##mask +#define GENERATED_CLUSTER_COUNT 29 + +// clang-format off +#define GENERATED_CLUSTERS { \ + { \ + /* Endpoint: 0, Cluster: Groups (server) */ \ + .clusterId = 0x00000004, \ + .attributes = ZAP_ATTRIBUTE_INDEX(0), \ + .attributeCount = 3, \ + .clusterSize = 7, \ + .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \ + .functions = chipFuncArrayGroupsServer, \ + .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 0 ) ,\ + .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 7 ) ,\ + },\ + { \ + /* Endpoint: 0, Cluster: Descriptor (server) */ \ + .clusterId = 0x0000001D, \ + .attributes = ZAP_ATTRIBUTE_INDEX(3), \ + .attributeCount = 6, \ + .clusterSize = 4, \ + .mask = ZAP_CLUSTER_MASK(SERVER), \ + .functions = NULL, \ + .acceptedCommandList = nullptr ,\ + .generatedCommandList = nullptr ,\ + },\ + { \ + /* Endpoint: 0, Cluster: Access Control (server) */ \ + .clusterId = 0x0000001F, \ + .attributes = ZAP_ATTRIBUTE_INDEX(9), \ + .attributeCount = 7, \ + .clusterSize = 6, \ + .mask = ZAP_CLUSTER_MASK(SERVER), \ + .functions = NULL, \ + .acceptedCommandList = nullptr ,\ + .generatedCommandList = nullptr ,\ + },\ + { \ + /* Endpoint: 0, Cluster: Basic (server) */ \ + .clusterId = 0x00000028, \ + .attributes = ZAP_ATTRIBUTE_INDEX(16), \ + .attributeCount = 22, \ + .clusterSize = 41, \ + .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \ + .functions = chipFuncArrayBasicServer, \ + .acceptedCommandList = nullptr ,\ + .generatedCommandList = nullptr ,\ + },\ + { \ + /* Endpoint: 0, Cluster: OTA Software Update Provider (client) */ \ + .clusterId = 0x00000029, \ + .attributes = ZAP_ATTRIBUTE_INDEX(38), \ + .attributeCount = 0, \ + .clusterSize = 0, \ + .mask = ZAP_CLUSTER_MASK(CLIENT), \ + .functions = NULL, \ + .acceptedCommandList = nullptr ,\ + .generatedCommandList = nullptr ,\ + },\ + { \ + /* Endpoint: 0, Cluster: OTA Software Update Requestor (server) */ \ + .clusterId = 0x0000002A, \ + .attributes = ZAP_ATTRIBUTE_INDEX(38), \ + .attributeCount = 6, \ + .clusterSize = 9, \ + .mask = ZAP_CLUSTER_MASK(SERVER), \ + .functions = NULL, \ + .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 12 ) ,\ + .generatedCommandList = nullptr ,\ + },\ + { \ + /* Endpoint: 0, Cluster: Localization Configuration (server) */ \ + .clusterId = 0x0000002B, \ + .attributes = ZAP_ATTRIBUTE_INDEX(44), \ + .attributeCount = 4, \ + .clusterSize = 42, \ + .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(PRE_ATTRIBUTE_CHANGED_FUNCTION), \ + .functions = chipFuncArrayLocalizationConfigurationServer, \ + .acceptedCommandList = nullptr ,\ + .generatedCommandList = nullptr ,\ + },\ + { \ + /* Endpoint: 0, Cluster: Time Format Localization (server) */ \ + .clusterId = 0x0000002C, \ + .attributes = ZAP_ATTRIBUTE_INDEX(48), \ + .attributeCount = 5, \ + .clusterSize = 8, \ + .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(PRE_ATTRIBUTE_CHANGED_FUNCTION), \ + .functions = chipFuncArrayTimeFormatLocalizationServer, \ + .acceptedCommandList = nullptr ,\ + .generatedCommandList = nullptr ,\ + },\ + { \ + /* Endpoint: 0, Cluster: General Commissioning (server) */ \ + .clusterId = 0x00000030, \ + .attributes = ZAP_ATTRIBUTE_INDEX(53), \ + .attributeCount = 6, \ + .clusterSize = 14, \ + .mask = ZAP_CLUSTER_MASK(SERVER), \ + .functions = NULL, \ + .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 14 ) ,\ + .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 18 ) ,\ + },\ + { \ + /* Endpoint: 0, Cluster: Network Commissioning (server) */ \ + .clusterId = 0x00000031, \ + .attributes = ZAP_ATTRIBUTE_INDEX(59), \ + .attributeCount = 10, \ + .clusterSize = 48, \ + .mask = ZAP_CLUSTER_MASK(SERVER), \ + .functions = NULL, \ + .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 22 ) ,\ + .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 29 ) ,\ + },\ + { \ + /* Endpoint: 0, Cluster: Diagnostic Logs (server) */ \ + .clusterId = 0x00000032, \ + .attributes = ZAP_ATTRIBUTE_INDEX(69), \ + .attributeCount = 2, \ + .clusterSize = 6, \ + .mask = ZAP_CLUSTER_MASK(SERVER), \ + .functions = NULL, \ + .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 33 ) ,\ + .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 35 ) ,\ + },\ + { \ + /* Endpoint: 0, Cluster: General Diagnostics (server) */ \ + .clusterId = 0x00000033, \ + .attributes = ZAP_ATTRIBUTE_INDEX(71), \ + .attributeCount = 11, \ + .clusterSize = 6, \ + .mask = ZAP_CLUSTER_MASK(SERVER), \ + .functions = NULL, \ + .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 37 ) ,\ + .generatedCommandList = nullptr ,\ + },\ + { \ + /* Endpoint: 0, Cluster: Software Diagnostics (server) */ \ + .clusterId = 0x00000034, \ + .attributes = ZAP_ATTRIBUTE_INDEX(82), \ + .attributeCount = 6, \ + .clusterSize = 6, \ + .mask = ZAP_CLUSTER_MASK(SERVER), \ + .functions = NULL, \ + .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 39 ) ,\ + .generatedCommandList = nullptr ,\ + },\ + { \ + /* Endpoint: 0, Cluster: Thread Network Diagnostics (server) */ \ + .clusterId = 0x00000035, \ + .attributes = ZAP_ATTRIBUTE_INDEX(88), \ + .attributeCount = 65, \ + .clusterSize = 6, \ + .mask = ZAP_CLUSTER_MASK(SERVER), \ + .functions = NULL, \ + .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 41 ) ,\ + .generatedCommandList = nullptr ,\ + },\ + { \ + /* Endpoint: 0, Cluster: WiFi Network Diagnostics (server) */ \ + .clusterId = 0x00000036, \ + .attributes = ZAP_ATTRIBUTE_INDEX(153), \ + .attributeCount = 15, \ + .clusterSize = 6, \ + .mask = ZAP_CLUSTER_MASK(SERVER), \ + .functions = NULL, \ + .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 43 ) ,\ + .generatedCommandList = nullptr ,\ + },\ + { \ + /* Endpoint: 0, Cluster: Ethernet Network Diagnostics (server) */ \ + .clusterId = 0x00000037, \ + .attributes = ZAP_ATTRIBUTE_INDEX(168), \ + .attributeCount = 11, \ + .clusterSize = 6, \ + .mask = ZAP_CLUSTER_MASK(SERVER), \ + .functions = NULL, \ + .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 45 ) ,\ + .generatedCommandList = nullptr ,\ + },\ + { \ + /* Endpoint: 0, Cluster: Switch (server) */ \ + .clusterId = 0x0000003B, \ + .attributes = ZAP_ATTRIBUTE_INDEX(179), \ + .attributeCount = 2, \ + .clusterSize = 6, \ + .mask = ZAP_CLUSTER_MASK(SERVER), \ + .functions = NULL, \ + .acceptedCommandList = nullptr ,\ + .generatedCommandList = nullptr ,\ + },\ + { \ + /* Endpoint: 0, Cluster: AdministratorCommissioning (server) */ \ + .clusterId = 0x0000003C, \ + .attributes = ZAP_ATTRIBUTE_INDEX(181), \ + .attributeCount = 5, \ + .clusterSize = 6, \ + .mask = ZAP_CLUSTER_MASK(SERVER), \ + .functions = NULL, \ + .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 47 ) ,\ + .generatedCommandList = nullptr ,\ + },\ + { \ + /* Endpoint: 0, Cluster: Operational Credentials (server) */ \ + .clusterId = 0x0000003E, \ + .attributes = ZAP_ATTRIBUTE_INDEX(186), \ + .attributeCount = 8, \ + .clusterSize = 6, \ + .mask = ZAP_CLUSTER_MASK(SERVER), \ + .functions = NULL, \ + .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 51 ) ,\ + .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 60 ) ,\ + },\ + { \ + /* Endpoint: 0, Cluster: Group Key Management (server) */ \ + .clusterId = 0x0000003F, \ + .attributes = ZAP_ATTRIBUTE_INDEX(194), \ + .attributeCount = 6, \ + .clusterSize = 6, \ + .mask = ZAP_CLUSTER_MASK(SERVER), \ + .functions = NULL, \ + .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 65 ) ,\ + .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 70 ) ,\ + },\ + { \ + /* Endpoint: 0, Cluster: Fixed Label (server) */ \ + .clusterId = 0x00000040, \ + .attributes = ZAP_ATTRIBUTE_INDEX(200), \ + .attributeCount = 3, \ + .clusterSize = 6, \ + .mask = ZAP_CLUSTER_MASK(SERVER), \ + .functions = NULL, \ + .acceptedCommandList = nullptr ,\ + .generatedCommandList = nullptr ,\ + },\ + { \ + /* Endpoint: 0, Cluster: User Label (server) */ \ + .clusterId = 0x00000041, \ + .attributes = ZAP_ATTRIBUTE_INDEX(203), \ + .attributeCount = 3, \ + .clusterSize = 6, \ + .mask = ZAP_CLUSTER_MASK(SERVER), \ + .functions = NULL, \ + .acceptedCommandList = nullptr ,\ + .generatedCommandList = nullptr ,\ + },\ + { \ + /* Endpoint: 1, Cluster: Identify (server) */ \ + .clusterId = 0x00000003, \ + .attributes = ZAP_ATTRIBUTE_INDEX(206), \ + .attributeCount = 4, \ + .clusterSize = 9, \ + .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(ATTRIBUTE_CHANGED_FUNCTION), \ + .functions = chipFuncArrayIdentifyServer, \ + .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 73 ) ,\ + .generatedCommandList = nullptr ,\ + },\ + { \ + /* Endpoint: 1, Cluster: Groups (server) */ \ + .clusterId = 0x00000004, \ + .attributes = ZAP_ATTRIBUTE_INDEX(210), \ + .attributeCount = 3, \ + .clusterSize = 7, \ + .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \ + .functions = chipFuncArrayGroupsServer, \ + .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 76 ) ,\ + .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 83 ) ,\ + },\ + { \ + /* Endpoint: 1, Cluster: On/Off (server) */ \ + .clusterId = 0x00000006, \ + .attributes = ZAP_ATTRIBUTE_INDEX(213), \ + .attributeCount = 7, \ + .clusterSize = 13, \ + .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \ + .functions = chipFuncArrayOnOffServer, \ + .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 88 ) ,\ + .generatedCommandList = nullptr ,\ + },\ + { \ + /* Endpoint: 1, Cluster: Level Control (server) */ \ + .clusterId = 0x00000008, \ + .attributes = ZAP_ATTRIBUTE_INDEX(220), \ + .attributeCount = 16, \ + .clusterSize = 27, \ + .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \ + .functions = chipFuncArrayLevelControlServer, \ + .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 95 ) ,\ + .generatedCommandList = nullptr ,\ + },\ + { \ + /* Endpoint: 1, Cluster: Descriptor (server) */ \ + .clusterId = 0x0000001D, \ + .attributes = ZAP_ATTRIBUTE_INDEX(236), \ + .attributeCount = 6, \ + .clusterSize = 4, \ + .mask = ZAP_CLUSTER_MASK(SERVER), \ + .functions = NULL, \ + .acceptedCommandList = nullptr ,\ + .generatedCommandList = nullptr ,\ + },\ + { \ + /* Endpoint: 1, Cluster: Color Control (server) */ \ + .clusterId = 0x00000300, \ + .attributes = ZAP_ATTRIBUTE_INDEX(242), \ + .attributeCount = 23, \ + .clusterSize = 40, \ + .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \ + .functions = chipFuncArrayColorControlServer, \ + .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 104 ) ,\ + .generatedCommandList = nullptr ,\ + },\ + { \ + /* Endpoint: 1, Cluster: Occupancy Sensing (server) */ \ + .clusterId = 0x00000406, \ + .attributes = ZAP_ATTRIBUTE_INDEX(265), \ + .attributeCount = 5, \ + .clusterSize = 9, \ + .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \ + .functions = chipFuncArrayOccupancySensingServer, \ + .acceptedCommandList = nullptr ,\ + .generatedCommandList = nullptr ,\ + },\ +} + +// clang-format on + +#define ZAP_CLUSTER_INDEX(index) (&generatedClusters[index]) + +#define ZAP_FIXED_ENDPOINT_DATA_VERSION_COUNT 28 + +// This is an array of EmberAfEndpointType structures. +#define GENERATED_ENDPOINT_TYPES \ + { \ + { ZAP_CLUSTER_INDEX(0), 22, 251 }, { ZAP_CLUSTER_INDEX(22), 7, 109 }, \ + } + +// Largest attribute size is needed for various buffers +#define ATTRIBUTE_LARGEST (259) + +static_assert(ATTRIBUTE_LARGEST <= CHIP_CONFIG_MAX_ATTRIBUTE_STORE_ELEMENT_SIZE, "ATTRIBUTE_LARGEST larger than expected"); + +// Total size of singleton attributes +#define ATTRIBUTE_SINGLETONS_SIZE (37) + +// Total size of attribute storage +#define ATTRIBUTE_MAX_SIZE (360) + +// Number of fixed endpoints +#define FIXED_ENDPOINT_COUNT (2) + +// Array of endpoints that are supported, the data inside +// the array is the endpoint number. +#define FIXED_ENDPOINT_ARRAY \ + { \ + 0x0000, 0x0001 \ + } + +// Array of profile ids +#define FIXED_PROFILE_IDS \ + { \ + 0x0103, 0x0103 \ + } + +// Array of device types +#define FIXED_DEVICE_TYPES \ + { \ + { 0x0016, 1 }, { 0x0101, 1 } \ + } + +// Array of device type offsets +#define FIXED_DEVICE_TYPE_OFFSETS \ + { \ + 0, 1 \ + } + +// Array of device type lengths +#define FIXED_DEVICE_TYPE_LENGTHS \ + { \ + 1, 1 \ + } + +// Array of endpoint types supported on each endpoint +#define FIXED_ENDPOINT_TYPES \ + { \ + 0, 1 \ + } + +// Array of networks supported on each endpoint +#define FIXED_NETWORKS \ + { \ + 0, 0 \ + } diff --git a/examples/chef/zzz_generated/lighting-app/zap-generated/gen_config.h b/examples/chef/zzz_generated/lighting-app/zap-generated/gen_config.h new file mode 100644 index 00000000000000..efc7a77b3d5c58 --- /dev/null +++ b/examples/chef/zzz_generated/lighting-app/zap-generated/gen_config.h @@ -0,0 +1,202 @@ +/* + * + * Copyright (c) 2022 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. + */ + +// THIS FILE IS GENERATED BY ZAP + +// Prevent multiple inclusion +#pragma once + +// User options for plugin Binding Table Library +#define EMBER_BINDING_TABLE_SIZE 10 + +/**** Network Section ****/ +#define EMBER_SUPPORTED_NETWORKS (1) + +#define EMBER_APS_UNICAST_MESSAGE_COUNT 10 + +/**** Cluster endpoint counts ****/ +#define EMBER_AF_ACCESS_CONTROL_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_ADMINISTRATOR_COMMISSIONING_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_BASIC_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_COLOR_CONTROL_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_DESCRIPTOR_CLUSTER_SERVER_ENDPOINT_COUNT (2) +#define EMBER_AF_DIAGNOSTIC_LOGS_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_FIXED_LABEL_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_GENERAL_COMMISSIONING_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_GENERAL_DIAGNOSTICS_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_GROUP_KEY_MANAGEMENT_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_GROUPS_CLUSTER_SERVER_ENDPOINT_COUNT (2) +#define EMBER_AF_IDENTIFY_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_LEVEL_CONTROL_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_LOCALIZATION_CONFIGURATION_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_NETWORK_COMMISSIONING_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_OTA_PROVIDER_CLUSTER_CLIENT_ENDPOINT_COUNT (1) +#define EMBER_AF_OTA_REQUESTOR_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_OCCUPANCY_SENSING_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_ON_OFF_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_OPERATIONAL_CREDENTIALS_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_SOFTWARE_DIAGNOSTICS_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_SWITCH_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_THREAD_NETWORK_DIAGNOSTICS_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_TIME_FORMAT_LOCALIZATION_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_USER_LABEL_CLUSTER_SERVER_ENDPOINT_COUNT (1) +#define EMBER_AF_WIFI_NETWORK_DIAGNOSTICS_CLUSTER_SERVER_ENDPOINT_COUNT (1) + +/**** Cluster Plugins ****/ + +// Use this macro to check if the server side of the Access Control cluster is included +#define ZCL_USING_ACCESS_CONTROL_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_ACCESS_CONTROL_SERVER +#define EMBER_AF_PLUGIN_ACCESS_CONTROL + +// Use this macro to check if the server side of the AdministratorCommissioning cluster is included +#define ZCL_USING_ADMINISTRATOR_COMMISSIONING_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_ADMINISTRATOR_COMMISSIONING_SERVER +#define EMBER_AF_PLUGIN_ADMINISTRATOR_COMMISSIONING + +// Use this macro to check if the server side of the Basic cluster is included +#define ZCL_USING_BASIC_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_BASIC_SERVER +#define EMBER_AF_PLUGIN_BASIC + +// Use this macro to check if the server side of the Color Control cluster is included +#define ZCL_USING_COLOR_CONTROL_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_COLOR_CONTROL_SERVER +#define EMBER_AF_PLUGIN_COLOR_CONTROL +// User options for server plugin Color Control +#define EMBER_AF_PLUGIN_COLOR_CONTROL_SERVER_XY +#define EMBER_AF_PLUGIN_COLOR_CONTROL_SERVER_TEMP +#define EMBER_AF_PLUGIN_COLOR_CONTROL_SERVER_HSV + +// Use this macro to check if the server side of the Descriptor cluster is included +#define ZCL_USING_DESCRIPTOR_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_DESCRIPTOR_SERVER +#define EMBER_AF_PLUGIN_DESCRIPTOR + +// Use this macro to check if the server side of the Diagnostic Logs cluster is included +#define ZCL_USING_DIAGNOSTIC_LOGS_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_DIAGNOSTIC_LOGS_SERVER +#define EMBER_AF_PLUGIN_DIAGNOSTIC_LOGS + +// Use this macro to check if the server side of the Ethernet Network Diagnostics cluster is included +#define ZCL_USING_ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_ETHERNET_NETWORK_DIAGNOSTICS_SERVER +#define EMBER_AF_PLUGIN_ETHERNET_NETWORK_DIAGNOSTICS + +// Use this macro to check if the server side of the Fixed Label cluster is included +#define ZCL_USING_FIXED_LABEL_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_FIXED_LABEL_SERVER +#define EMBER_AF_PLUGIN_FIXED_LABEL + +// Use this macro to check if the server side of the General Commissioning cluster is included +#define ZCL_USING_GENERAL_COMMISSIONING_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_GENERAL_COMMISSIONING_SERVER +#define EMBER_AF_PLUGIN_GENERAL_COMMISSIONING + +// Use this macro to check if the server side of the General Diagnostics cluster is included +#define ZCL_USING_GENERAL_DIAGNOSTICS_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_GENERAL_DIAGNOSTICS_SERVER +#define EMBER_AF_PLUGIN_GENERAL_DIAGNOSTICS + +// Use this macro to check if the server side of the Group Key Management cluster is included +#define ZCL_USING_GROUP_KEY_MANAGEMENT_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_GROUP_KEY_MANAGEMENT_SERVER +#define EMBER_AF_PLUGIN_GROUP_KEY_MANAGEMENT + +// Use this macro to check if the server side of the Groups cluster is included +#define ZCL_USING_GROUPS_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_GROUPS_SERVER +#define EMBER_AF_PLUGIN_GROUPS + +// Use this macro to check if the server side of the Identify cluster is included +#define ZCL_USING_IDENTIFY_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_IDENTIFY_SERVER +#define EMBER_AF_PLUGIN_IDENTIFY + +// Use this macro to check if the server side of the Level Control cluster is included +#define ZCL_USING_LEVEL_CONTROL_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_LEVEL_CONTROL_SERVER +#define EMBER_AF_PLUGIN_LEVEL_CONTROL +// User options for server plugin Level Control +#define EMBER_AF_PLUGIN_LEVEL_CONTROL_MAXIMUM_LEVEL 254 +#define EMBER_AF_PLUGIN_LEVEL_CONTROL_MINIMUM_LEVEL 0 +#define EMBER_AF_PLUGIN_LEVEL_CONTROL_RATE 0 + +// Use this macro to check if the server side of the Localization Configuration cluster is included +#define ZCL_USING_LOCALIZATION_CONFIGURATION_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_LOCALIZATION_CONFIGURATION_SERVER +#define EMBER_AF_PLUGIN_LOCALIZATION_CONFIGURATION + +// Use this macro to check if the server side of the Network Commissioning cluster is included +#define ZCL_USING_NETWORK_COMMISSIONING_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_NETWORK_COMMISSIONING_SERVER +#define EMBER_AF_PLUGIN_NETWORK_COMMISSIONING + +// Use this macro to check if the client side of the OTA Software Update Provider cluster is included +#define ZCL_USING_OTA_PROVIDER_CLUSTER_CLIENT +#define EMBER_AF_PLUGIN_OTA_SOFTWARE_UPDATE_PROVIDER_CLIENT + +// Use this macro to check if the server side of the OTA Software Update Requestor cluster is included +#define ZCL_USING_OTA_REQUESTOR_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_OTA_SOFTWARE_UPDATE_REQUESTOR_SERVER +#define EMBER_AF_PLUGIN_OTA_SOFTWARE_UPDATE_REQUESTOR + +// Use this macro to check if the server side of the Occupancy Sensing cluster is included +#define ZCL_USING_OCCUPANCY_SENSING_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_OCCUPANCY_SENSING_SERVER +#define EMBER_AF_PLUGIN_OCCUPANCY_SENSING + +// Use this macro to check if the server side of the On/Off cluster is included +#define ZCL_USING_ON_OFF_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_ON_OFF_SERVER +#define EMBER_AF_PLUGIN_ON_OFF + +// Use this macro to check if the server side of the Operational Credentials cluster is included +#define ZCL_USING_OPERATIONAL_CREDENTIALS_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_OPERATIONAL_CREDENTIALS_SERVER +#define EMBER_AF_PLUGIN_OPERATIONAL_CREDENTIALS + +// Use this macro to check if the server side of the Software Diagnostics cluster is included +#define ZCL_USING_SOFTWARE_DIAGNOSTICS_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_SOFTWARE_DIAGNOSTICS_SERVER +#define EMBER_AF_PLUGIN_SOFTWARE_DIAGNOSTICS + +// Use this macro to check if the server side of the Switch cluster is included +#define ZCL_USING_SWITCH_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_SWITCH_SERVER +#define EMBER_AF_PLUGIN_SWITCH + +// Use this macro to check if the server side of the Thread Network Diagnostics cluster is included +#define ZCL_USING_THREAD_NETWORK_DIAGNOSTICS_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_THREAD_NETWORK_DIAGNOSTICS_SERVER +#define EMBER_AF_PLUGIN_THREAD_NETWORK_DIAGNOSTICS + +// Use this macro to check if the server side of the Time Format Localization cluster is included +#define ZCL_USING_TIME_FORMAT_LOCALIZATION_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_TIME_FORMAT_LOCALIZATION_SERVER +#define EMBER_AF_PLUGIN_TIME_FORMAT_LOCALIZATION + +// Use this macro to check if the server side of the User Label cluster is included +#define ZCL_USING_USER_LABEL_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_USER_LABEL_SERVER +#define EMBER_AF_PLUGIN_USER_LABEL + +// Use this macro to check if the server side of the WiFi Network Diagnostics cluster is included +#define ZCL_USING_WIFI_NETWORK_DIAGNOSTICS_CLUSTER_SERVER +#define EMBER_AF_PLUGIN_WI_FI_NETWORK_DIAGNOSTICS_SERVER +#define EMBER_AF_PLUGIN_WI_FI_NETWORK_DIAGNOSTICS diff --git a/examples/chef/zzz_generated/lighting-app/zap-generated/gen_tokens.h b/examples/chef/zzz_generated/lighting-app/zap-generated/gen_tokens.h new file mode 100644 index 00000000000000..dcc229f5b2c306 --- /dev/null +++ b/examples/chef/zzz_generated/lighting-app/zap-generated/gen_tokens.h @@ -0,0 +1,45 @@ +/* + * + * Copyright (c) 2022 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. + */ + +// THIS FILE IS GENERATED BY ZAP + +// Prevent multiple inclusion +#pragma once + +// This file contains the tokens for attributes stored in flash + +// Identifier tags for tokens + +// Types for the tokens +#ifdef DEFINETYPES +#endif // DEFINETYPES + +// Actual token definitions +#ifdef DEFINETOKENS +#endif // DEFINETOKENS + +// Macro snippet that loads all the attributes from tokens +#define GENERATED_TOKEN_LOADER(endpoint) \ + do \ + { \ + } while (false) + +// Macro snippet that saves the attribute to token +#define GENERATED_TOKEN_SAVER \ + do \ + { \ + } while (false) diff --git a/examples/chip-tool-darwin/templates/README.zapt b/examples/chip-tool-darwin/templates/README.zapt deleted file mode 100644 index 00f85baa6ce77b..00000000000000 --- a/examples/chip-tool-darwin/templates/README.zapt +++ /dev/null @@ -1,24 +0,0 @@ -# Command Details - -{{#chip_client_clusters includeAll=true}} -{{#chip_cluster_commands}} -{{#first}} -
{{parent.name}}

- -```bash -Usage: - ./chip-tool-darwin {{asType (asSpacedLowercase parent.name)}} command_name [param1 param2 ...] - - +-------------------------------------------------------------------------------------+ - | Commands: | - +-------------------------------------------------------------------------------------+ -{{/first}} -{{pad (concat " | * " (asDelimitedCommand name)) 88 ' '}}| -{{#last}} - +-------------------------------------------------------------------------------------+ -``` - -

-{{/last}} -{{/chip_cluster_commands}} -{{/chip_client_clusters}} diff --git a/examples/chip-tool/BUILD.gn b/examples/chip-tool/BUILD.gn index c820b4a7cd0899..2da0372fef7458 100644 --- a/examples/chip-tool/BUILD.gn +++ b/examples/chip-tool/BUILD.gn @@ -100,7 +100,8 @@ static_library("chip-tool-utils") { public_configs = [ ":config" ] if (chip_enable_transport_trace) { - public_deps += [ "${chip_root}/examples/common/tracing:trace_handlers" ] + public_deps += + [ "${chip_root}/examples/common/tracing:trace_handlers_decoder" ] } output_dir = root_out_dir diff --git a/examples/chip-tool/README.md b/examples/chip-tool/README.md index 4b266923782653..3385e7c7c36cdc 100644 --- a/examples/chip-tool/README.md +++ b/examples/chip-tool/README.md @@ -67,9 +67,9 @@ remote device, as well as the network credentials to use. The command below uses the default values hard-coded into the debug versions of the ESP32 all-clusters-app to commission it onto a Wi-Fi network: - ``` - $ chip-tool pairing ble-wifi ${NODE_ID_TO_ASSIGN} ${SSID} ${PASSWORD} 20202021 3840 - ``` +``` +chip-tool pairing ble-wifi ${NODE_ID_TO_ASSIGN} ${SSID} ${PASSWORD} 20202021 3840 +``` where: @@ -81,38 +81,38 @@ where: For example: - ``` - $ chip-tool pairing ble-wifi 0x11 xyz secret 20202021 3840 - ``` +``` +chip-tool pairing ble-wifi 0x11 xyz secret 20202021 3840 +``` or equivalently: - ``` - $ chip-tool pairing ble-wifi 17 hex:787980 hex:736563726574 20202021 3840 - ``` +``` +chip-tool pairing ble-wifi 17 hex:787980 hex:736563726574 20202021 3840 +``` #### Pair a device over IP The command below will discover devices and try to pair with the first one it discovers using the provided setup code. - ``` - $ chip-tool pairing onnetwork ${NODE_ID_TO_ASSIGN} 20202021 - ``` +``` +chip-tool pairing onnetwork ${NODE_ID_TO_ASSIGN} 20202021 +``` The command below will discover devices with long discriminator 3840 and try to pair with the first one it discovers using the provided setup code. - ``` - $ chip-tool pairing onnetwork-long ${NODE_ID_TO_ASSIGN} 20202021 3840 - ``` +``` +chip-tool pairing onnetwork-long ${NODE_ID_TO_ASSIGN} 20202021 3840 +``` The command below will discover devices based on the given QR code (which devices log when they start up) and try to pair with the first one it discovers. - ``` - $ chip-tool pairing code ${NODE_ID_TO_ASSIGN} MT:####### - ``` +``` +chip-tool pairing code ${NODE_ID_TO_ASSIGN} MT:####### +``` In all these cases, the device will be assigned node id `${NODE_ID_TO_ASSIGN}` (which must be a decimal number or a 0x-prefixed hex number). @@ -129,15 +129,15 @@ Attestation Verification. It will also discover devices with long discriminator 3840 and try to pair with the first one it discovers using the provided setup code. - ``` - $ chip-tool pairing onnetwork-long ${NODE_ID_TO_ASSIGN} 20202021 3840 --paa-trust-store-path path/to/PAAs - ``` +``` +chip-tool pairing onnetwork-long ${NODE_ID_TO_ASSIGN} 20202021 3840 --paa-trust-store-path path/to/PAAs +``` ### Forget the currently-commissioned device - ``` - $ chip-tool pairing unpair - ``` +``` +chip-tool pairing unpair +``` ## Using the Client to Send Matter Commands @@ -146,9 +146,9 @@ the target cluster name, the target command name as well as an endpoint id. The endpoint id must be between 1 and 240. - ``` - $ chip-tool onoff on 1 - ``` +``` +chip-tool onoff on 1 +``` The client will send a single command packet and then exit. @@ -158,27 +158,28 @@ The client will send a single command packet and then exit. 2. Add Group to device - ``` - $ chip-tool groups add-group GroupId GroupName node-id endpoint-id - $ chip-tool groups add-group 0x4141 Light 1234 1 - ``` +``` +chip-tool groups add-group GroupId GroupName node-id endpoint-id +chip-tool groups add-group 0x4141 Light 1234 1 +``` 3. Add group Keyset to device - ``` - $ chip-tool groupkeymanagement key-set-write GroupKeySet node-id endpoint-id - $ chip-tool groupkeymanagement key-set-write '{"groupKeySetID": 42, - "groupKeySecurityPolicy": 0, "epochKey0": - "d0d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime0": 2220000,"epochKey1": - "d1d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime1": 2220001,"epochKey2": +``` +chip-tool groupkeymanagement key-set-write GroupKeySet node-id endpoint-id +chip-tool groupkeymanagement key-set-write '{"groupKeySetID": 42, \ + "groupKeySecurityPolicy": 0, "epochKey0": \ + "d0d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime0": 2220000,"epochKey1": \ + "d1d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime1": 2220001,"epochKey2": \ "d2d1d2d3d4d5d6d7d8d9dadbdcdddedf", "epochStartTime2": 2220002 }' 1234 0 - ``` +``` 4. Bind Key to group - ``` - $ chip-tool groupkeymanagement write group-key-map attr-value node-id endpoint-id - $ chip-tool groupkeymanagement write group-key-map '[{"groupId": 16705, "groupKeySetID": 42}]' 1234 0 - ``` + +``` +chip-tool groupkeymanagement write group-key-map attr-value node-id endpoint-id +chip-tool groupkeymanagement write group-key-map '[{"groupId": 16705, "groupKeySetID": 42}]' 1234 0 +``` ## Configuring the client for Group Commands @@ -187,35 +188,35 @@ must be configured appropriately. To configure the client please use the groupsettings option - ``` - $ chip-tool groupsettings - ``` +``` +chip-tool groupsettings +``` A group with a valid encryption key needs to be set. The groupid and the encryption key must match the one configured on the end device. To add a group - ``` - $ chip-tool groupsettings add-group groupName groupId - $ chip-tool groupsettings add-group TestName 0x4141 - ``` +``` +chip-tool groupsettings add-group groupName groupId +chip-tool groupsettings add-group TestName 0x4141 +``` To add a keyset - ``` - $ chip-tool groupsettings add-keysets keysetId keyPolicy validityTime EpochKey - $ chip-tool groupsettings add-keysets 0xAAAA 0 0x000000000021dfe0 hex:d0d1d2d3d4d5d6d7d8d9dadbdcdddedf - ``` +``` +chip-tool groupsettings add-keysets keysetId keyPolicy validityTime EpochKey +chip-tool groupsettings add-keysets 0xAAAA 0 0x000000000021dfe0 hex:d0d1d2d3d4d5d6d7d8d9dadbdcdddedf +``` Take note that the epoch key must be in hex form with the 'hex:' prefix Finally to bind the keyset to the group - ``` - $ chip-tool groupsettings bind-keyset groupId keysetId - $ chip-tool groupsettings bind-keyset 0x4141 0xAAAA - ``` +``` +chip-tool groupsettings bind-keyset groupId keysetId +chip-tool groupsettings bind-keyset 0x4141 0xAAAA +``` ## Using the Client to Send Group (Multicast) Matter Commands @@ -226,9 +227,9 @@ and attributes write can be send with Group Id. E.G. sending to group Id 0x4141 - ``` - $ chip-tool onoff on 0xffffffffffff4141 1 - ``` +``` +chip-tool onoff on 0xffffffffffff4141 1 +``` The client will send a single multicast command packet and then exit. @@ -237,9 +238,9 @@ The client will send a single multicast command packet and then exit. To get the list of supported clusters, run the built executable without any arguments. - ``` - $ chip-tool - ``` +``` +chip-tool +``` Example output: @@ -271,33 +272,33 @@ Usage: To get the list of commands for a specific cluster, run the built executable with the target cluster name. - ``` - $ chip-tool onoff - ``` +``` +chip-tool onoff +``` ### How to get the list of supported attributes for a specific cluster To the the list of attributes for a specific cluster, run the built executable with the target cluster name and the `read` command name. - ``` - $ chip-tool onoff read - ``` +``` +chip-tool onoff read +``` ### How to get the list of parameters for a command To get the list of parameters for a specific command, run the built executable with the target cluster name and the target command name - ``` - $ chip-tool onoff on - ``` +``` +chip-tool onoff on +``` ### Run a test suite against a paired peer device - ``` - $ chip-tool tests Test_TC_OO_1_1 - ``` +``` +chip-tool tests Test_TC_OO_1_1 +``` ## Using the Client for Setup Payload @@ -306,36 +307,36 @@ with the target cluster name and the target command name To parse a setup code, run the built executable with the `payload` cluster name and the `parse-setup-payload` command - ``` - $ chip-tool payload parse-setup-payload code - ``` +``` +chip-tool payload parse-setup-payload code +``` #### QR Code - ``` - $ chip-tool payload parse-setup-payload "MT:#####" - ``` +``` +chip-tool payload parse-setup-payload "MT:#####" +``` #### QR Code with optional Vendor Info - ``` - $ chip-tool payload parse-setup-payload "MT:#####" - ``` +``` +chip-tool payload parse-setup-payload "MT:#####" +``` #### Manual Setup Code - ``` - $ chip-tool payload parse-setup-payload "#####" - ``` +``` +chip-tool payload parse-setup-payload "#####" +``` # Using the Client for Additional Data Payload To parse an additional data payload, run the built executable with the `payload` cluster name and the `parse-additional-data-payload` command - ``` - $ chip-tool payload parse-additional-data-payload "#####" - ``` +``` +chip-tool payload parse-additional-data-payload "#####" +``` # Command Reference diff --git a/examples/chip-tool/commands/clusters/ComplexArgument.h b/examples/chip-tool/commands/clusters/ComplexArgument.h index aafc18d68d7591..d02afd9ee98741 100644 --- a/examples/chip-tool/commands/clusters/ComplexArgument.h +++ b/examples/chip-tool/commands/clusters/ComplexArgument.h @@ -26,6 +26,8 @@ #include #include +#include "JsonParser.h" + constexpr uint8_t kMaxLabelLength = 100; class ComplexArgumentParser @@ -102,6 +104,16 @@ class ComplexArgumentParser return CHIP_NO_ERROR; } + template + static CHIP_ERROR Setup(const char * label, chip::BitMask & request, Json::Value & value) + { + T requestValue; + ReturnErrorOnFailure(ComplexArgumentParser::Setup(label, requestValue, value)); + + request = chip::BitMask(requestValue); + return CHIP_NO_ERROR; + } + template static CHIP_ERROR Setup(const char * label, chip::Optional & request, Json::Value & value) { @@ -304,57 +316,8 @@ class TypedComplexArgument : public ComplexArgument CHIP_ERROR Parse(const char * label, const char * json) { Json::Value value; - Json::Reader reader; - if (!reader.parse(json, value)) + if (!JsonParser::ParseComplexArgument(label, json, value)) { - std::vector errors = reader.getStructuredErrors(); - ChipLogError(chipTool, "Error parsing JSON for %s:", label); - for (auto & error : errors) - { - ChipLogError(chipTool, " %s", error.message.c_str()); - ptrdiff_t error_start = error.offset_start; - ptrdiff_t error_end = error.offset_limit; - const char * sourceText = json; - // The whole JSON string might be too long to fit in our log - // messages. Just include 30 chars before the error. - constexpr ptrdiff_t kMaxContext = 30; - std::string errorMsg; - if (error_start > kMaxContext) - { - sourceText += (error_start - kMaxContext); - error_end = kMaxContext + (error_end - error_start); - error_start = kMaxContext; - ChipLogError(chipTool, "... %s", sourceText); - // Add markers corresponding to the "... " above. - errorMsg += "----"; - } - else - { - ChipLogError(chipTool, "%s", sourceText); - } - for (ptrdiff_t i = 0; i < error_start; ++i) - { - errorMsg += "-"; - } - errorMsg += "^"; - if (error_start + 1 < error_end) - { - for (ptrdiff_t i = error_start + 1; i < error_end; ++i) - { - errorMsg += "-"; - } - errorMsg += "^"; - } - ChipLogError(chipTool, "%s", errorMsg.c_str()); - - if (error.message == "Missing ',' or '}' in object declaration" && error.offset_start > 0 && - json[error.offset_start - 1] == '0' && (json[error.offset_start] == 'x' || json[error.offset_start] == 'X')) - { - ChipLogError(chipTool, - "NOTE: JSON does not allow hex syntax beginning with 0x for numbers. Try putting the hex number " - "in quotes (like {\"name\": \"0x100\"})."); - } - } return CHIP_ERROR_INVALID_ARGUMENT; } diff --git a/examples/chip-tool/commands/clusters/CustomArgument.h b/examples/chip-tool/commands/clusters/CustomArgument.h index 2362171aa06da9..6755703fa0b7d5 100644 --- a/examples/chip-tool/commands/clusters/CustomArgument.h +++ b/examples/chip-tool/commands/clusters/CustomArgument.h @@ -22,6 +22,8 @@ #include #include +#include "JsonParser.h" + namespace { static constexpr char kPayloadHexPrefix[] = "hex:"; static constexpr char kPayloadSignedPrefix[] = "s:"; @@ -230,9 +232,30 @@ class CustomArgument CHIP_ERROR Parse(const char * label, const char * json) { - Json::Reader reader; Json::Value value; - reader.parse(json, value); + constexpr const char kHexNumPrefix[] = "0x"; + constexpr size_t kHexNumPrefixLen = ArraySize(kHexNumPrefix) - 1; + if (strncmp(json, kPayloadHexPrefix, kPayloadHexPrefixLen) == 0 || + strncmp(json, kPayloadSignedPrefix, kPayloadSignedPrefixLen) == 0 || + strncmp(json, kPayloadUnsignedPrefix, kPayloadUnsignedPrefixLen) == 0 || + strncmp(json, kPayloadFloatPrefix, kPayloadFloatPrefixLen) == 0 || + strncmp(json, kPayloadDoublePrefix, kPayloadDoublePrefixLen) == 0) + { + value = Json::Value(json); + } + else if (strncmp(json, kHexNumPrefix, kHexNumPrefixLen) == 0) + { + // Assume that hex numbers are unsigned. Prepend + // kPayloadUnsignedPrefix and then let the rest of the logic handle + // things. + std::string str(kPayloadUnsignedPrefix); + str += json; + value = Json::Value(str); + } + else if (!JsonParser::ParseCustomArgument(label, json, value)) + { + return CHIP_ERROR_INVALID_ARGUMENT; + } mData = static_cast(chip::Platform::MemoryCalloc(sizeof(uint8_t), mDataMaxLen)); VerifyOrReturnError(mData != nullptr, CHIP_ERROR_NO_MEMORY); diff --git a/examples/chip-tool/commands/clusters/JsonParser.h b/examples/chip-tool/commands/clusters/JsonParser.h new file mode 100644 index 00000000000000..2b74aee6fffb7c --- /dev/null +++ b/examples/chip-tool/commands/clusters/JsonParser.h @@ -0,0 +1,162 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#pragma once + +#include +#include + +#include +#include +#include +#include + +class JsonParser +{ +public: + // Returns whether the parse succeeded. + static bool ParseComplexArgument(const char * label, const char * json, Json::Value & value) + { + return Parse(label, json, /* strictRoot = */ true, value); + } + + // Returns whether the parse succeeded. + static bool ParseCustomArgument(const char * label, const char * json, Json::Value & value) + { + return Parse(label, json, /* strictRoot = */ false, value); + } + +private: + static bool Parse(const char * label, const char * json, bool strictRoot, Json::Value & value) + { + Json::CharReaderBuilder readerBuilder; + readerBuilder.settings_["strictRoot"] = strictRoot; + readerBuilder.settings_["allowSingleQuotes"] = true; + readerBuilder.settings_["failIfExtra"] = true; + readerBuilder.settings_["rejectDupKeys"] = true; + + auto reader = std::unique_ptr(readerBuilder.newCharReader()); + std::string errors; + if (reader->parse(json, json + strlen(json), &value, &errors)) + { + return true; + } + + // The CharReader API allows us to set failIfExtra, unlike Reader, but does + // not allow us to get structured errors. We get to try to manually undo + // the work it did to create a string from the structured errors it had. + ChipLogError(chipTool, "Error parsing JSON for %s:", label); + + // For each error "errors" has the following: + // + // 1) A line starting with "* " that has line/column info + // 2) A line with the error message. + // 3) An optional line with some extra info. + // + // We keep track of the last error column, in case the error message + // reporting needs it. + std::istringstream stream(errors); + std::string error; + chip::Optional errorColumn; + while (getline(stream, error)) + { + if (error.rfind("* ", 0) == 0) + { + // Flush out any pending error location. + LogErrorLocation(errorColumn, json); + + // The format of this line is: + // + // * Line N, Column M + // + // Unfortunately it does not indicate end of error, so we can only + // show its start. + unsigned errorLine; // ignored in practice + if (sscanf(error.c_str(), "* Line %u, Column %u", &errorLine, &errorColumn.Emplace()) != 2) + { + ChipLogError(chipTool, "Unexpected location string: %s\n", error.c_str()); + // We don't know how to make sense of this thing anymore. + break; + } + if (errorColumn.Value() == 0) + { + ChipLogError(chipTool, "Expected error column to be at least 1"); + // We don't know how to make sense of this thing anymore. + break; + } + // We are using our column numbers as offsets, so want them to be + // 0-based. + --errorColumn.Value(); + } + else + { + ChipLogError(chipTool, " %s", error.c_str()); + if (error == " Missing ',' or '}' in object declaration" && errorColumn.HasValue() && errorColumn.Value() > 0 && + json[errorColumn.Value() - 1] == '0' && (json[errorColumn.Value()] == 'x' || json[errorColumn.Value()] == 'X')) + { + // Log the error location marker before showing the NOTE + // message. + LogErrorLocation(errorColumn, json); + ChipLogError(chipTool, + "NOTE: JSON does not allow hex syntax beginning with 0x for numbers. Try putting the hex number " + "in quotes (like {\"name\": \"0x100\"})."); + } + } + } + + // Write out the marker for our last error. + LogErrorLocation(errorColumn, json); + + return false; + } + +private: + static void LogErrorLocation(chip::Optional & errorColumn, const char * json) + { + if (!errorColumn.HasValue()) + { + return; + } + + const char * sourceText = json; + unsigned error_start = errorColumn.Value(); + // The whole JSON string might be too long to fit in our log + // messages. Just include 30 chars before the error. + constexpr ptrdiff_t kMaxContext = 30; + std::string errorMarker; + if (error_start > kMaxContext) + { + sourceText += (error_start - kMaxContext); + error_start = kMaxContext; + ChipLogError(chipTool, "... %s", sourceText); + // Add markers corresponding to the "... " above. + errorMarker += "----"; + } + else + { + ChipLogError(chipTool, "%s", sourceText); + } + for (unsigned i = 0; i < error_start; ++i) + { + errorMarker += "-"; + } + errorMarker += "^"; + ChipLogError(chipTool, "%s", errorMarker.c_str()); + errorColumn.ClearValue(); + } +}; diff --git a/examples/chip-tool/commands/clusters/ReportCommand.h b/examples/chip-tool/commands/clusters/ReportCommand.h index dd533b2fb299d9..5a6bb4bf20c3b3 100644 --- a/examples/chip-tool/commands/clusters/ReportCommand.h +++ b/examples/chip-tool/commands/clusters/ReportCommand.h @@ -350,11 +350,7 @@ class SubscribeEvent : public SubscribeCommand { AddArgument("cluster-id", 0, UINT32_MAX, &mClusterIds); AddArgument("event-id", 0, UINT32_MAX, &mEventIds); - AddArgument("min-interval", 0, UINT16_MAX, &mMinInterval); - AddArgument("max-interval", 0, UINT16_MAX, &mMaxInterval); - AddArgument("fabric-filtered", 0, 1, &mFabricFiltered); - AddArgument("event-min", 0, UINT64_MAX, &mEventNumber); - AddArgument("keepSubscriptions", 0, 1, &mKeepSubscriptions); + AddCommonArguments(); SubscribeCommand::AddArguments(); } @@ -362,11 +358,7 @@ class SubscribeEvent : public SubscribeCommand SubscribeCommand("subscribe-event-by-id", credsIssuerConfig), mClusterIds(1, clusterId) { AddArgument("event-id", 0, UINT32_MAX, &mEventIds); - AddArgument("min-interval", 0, UINT16_MAX, &mMinInterval); - AddArgument("max-interval", 0, UINT16_MAX, &mMaxInterval); - AddArgument("fabric-filtered", 0, 1, &mFabricFiltered); - AddArgument("event-min", 0, UINT64_MAX, &mEventNumber); - AddArgument("keepSubscriptions", 0, 1, &mKeepSubscriptions); + AddCommonArguments(); SubscribeCommand::AddArguments(); } @@ -376,6 +368,12 @@ class SubscribeEvent : public SubscribeCommand mClusterIds(1, clusterId), mEventIds(1, eventId) { AddArgument("event-name", eventName, "Event name."); + AddCommonArguments(); + SubscribeCommand::AddArguments(); + } + + void AddCommonArguments() + { AddArgument("min-interval", 0, UINT16_MAX, &mMinInterval, "The requested minimum interval between reports. Sets MinIntervalFloor in the Subscribe Request."); AddArgument("max-interval", 0, UINT16_MAX, &mMaxInterval, @@ -384,7 +382,14 @@ class SubscribeEvent : public SubscribeCommand AddArgument("event-min", 0, UINT64_MAX, &mEventNumber); AddArgument("keepSubscriptions", 0, 1, &mKeepSubscriptions, "false - Terminate existing subscriptions from initiator.\n true - Leave existing subscriptions in place."); - SubscribeCommand::AddArguments(); + AddArgument( + "is-urgent", 0, 1, &mIsUrgents, + "Sets isUrgent in the Subscribe Request.\n" + " The queueing of any urgent event SHALL force an immediate generation of reports containing all events queued " + "leading up to (and including) the urgent event in question.\n" + " This argument takes a comma separated list of true/false values.\n" + " If the number of paths exceeds the number of entries provided to is-urgent, then isUrgent will be false for the " + "extra paths."); } ~SubscribeEvent() {} @@ -392,7 +397,7 @@ class SubscribeEvent : public SubscribeCommand CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector endpointIds) override { return SubscribeCommand::SubscribeEvent(device, endpointIds, mClusterIds, mEventIds, mMinInterval, mMaxInterval, - mFabricFiltered, mEventNumber, mKeepSubscriptions); + mFabricFiltered, mEventNumber, mKeepSubscriptions, mIsUrgents); } private: @@ -404,4 +409,5 @@ class SubscribeEvent : public SubscribeCommand chip::Optional mFabricFiltered; chip::Optional mEventNumber; chip::Optional mKeepSubscriptions; + chip::Optional> mIsUrgents; }; diff --git a/examples/chip-tool/commands/clusters/WriteAttributeCommand.h b/examples/chip-tool/commands/clusters/WriteAttributeCommand.h index 231526453775ed..93ca6d167fc41b 100644 --- a/examples/chip-tool/commands/clusters/WriteAttributeCommand.h +++ b/examples/chip-tool/commands/clusters/WriteAttributeCommand.h @@ -86,7 +86,7 @@ class WriteAttribute : public InteractionModelWriter, public ModelCommand, publi ChipLogProgress(chipTool, "Sending WriteAttribute to cluster " ChipLogFormatMEI " on endpoint %u", ChipLogValueMEI(clusterId), endpointId); return InteractionModelWriter::WriteAttribute(device, endpointId, clusterId, attributeId, value, mTimedInteractionTimeoutMs, - mSuppressResponse, mDataVersion); + mSuppressResponse, mDataVersion, mRepeatCount, mRepeatDelayInMs); } template @@ -111,6 +111,8 @@ class WriteAttribute : public InteractionModelWriter, public ModelCommand, publi "If provided, do a timed write with the given timed interaction timeout."); AddArgument("data-version", 0, UINT32_MAX, &mDataVersion); AddArgument("suppressResponse", 0, 1, &mSuppressResponse); + AddArgument("repeat-count", 1, UINT16_MAX, &mRepeatCount); + AddArgument("repeat-delay-ms", 0, UINT16_MAX, &mRepeatDelayInMs); ModelCommand::AddArguments(); } @@ -122,4 +124,6 @@ class WriteAttribute : public InteractionModelWriter, public ModelCommand, publi chip::Optional mDataVersion = chip::NullOptional; chip::Optional mSuppressResponse; CustomArgument mAttributeValue; + chip::Optional mRepeatCount; + chip::Optional mRepeatDelayInMs; }; diff --git a/examples/chip-tool/commands/common/CHIPCommand.cpp b/examples/chip-tool/commands/common/CHIPCommand.cpp index 729c77e291a1a3..4e10e67e74b2e8 100644 --- a/examples/chip-tool/commands/common/CHIPCommand.cpp +++ b/examples/chip-tool/commands/common/CHIPCommand.cpp @@ -27,6 +27,7 @@ #include #if CHIP_CONFIG_TRANSPORT_TRACE_ENABLED +#include "TraceDecoder.h" #include "TraceHandlers.h" #endif // CHIP_CONFIG_TRANSPORT_TRACE_ENABLED @@ -70,10 +71,12 @@ CHIP_ERROR CHIPCommand::MaybeSetUpStack() #endif ReturnLogErrorOnFailure(mDefaultStorage.Init()); + ReturnLogErrorOnFailure(mOperationalKeystore.Init(&mDefaultStorage)); chip::Controller::FactoryInitParams factoryInitParams; factoryInitParams.fabricIndependentStorage = &mDefaultStorage; + factoryInitParams.operationalKeystore = &mOperationalKeystore; // Init group data provider that will be used for all group keys and IPKs for the // chip-tool-configured fabrics. This is OK to do once since the fabric tables @@ -206,11 +209,21 @@ void CHIPCommand::StartTracing() if (mTraceFile.HasValue()) { - chip::trace::SetTraceStream(new chip::trace::TraceStreamFile(mTraceFile.Value())); + chip::trace::AddTraceStream(new chip::trace::TraceStreamFile(mTraceFile.Value())); } else if (mTraceLog.HasValue() && mTraceLog.Value()) { - chip::trace::SetTraceStream(new chip::trace::TraceStreamLog()); + chip::trace::AddTraceStream(new chip::trace::TraceStreamLog()); + } + + if (mTraceDecode.HasValue() && mTraceDecode.Value()) + { + chip::trace::TraceDecoderOptions options; + // The interaction model protocol is already logged, so just disable logging those. + options.mEnableProtocolInteractionModelResponse = false; + chip::trace::TraceDecoder * decoder = new chip::trace::TraceDecoder(); + decoder->SetOptions(options); + chip::trace::AddTraceStream(decoder); } #endif // CHIP_CONFIG_TRANSPORT_TRACE_ENABLED } diff --git a/examples/chip-tool/commands/common/CHIPCommand.h b/examples/chip-tool/commands/common/CHIPCommand.h index c1ff2d1acad46d..1313fadeb1f664 100644 --- a/examples/chip-tool/commands/common/CHIPCommand.h +++ b/examples/chip-tool/commands/common/CHIPCommand.h @@ -23,6 +23,7 @@ #include #include #include +#include #pragma once @@ -69,6 +70,7 @@ class CHIPCommand : public Command #if CHIP_CONFIG_TRANSPORT_TRACE_ENABLED AddArgument("trace_file", &mTraceFile); AddArgument("trace_log", 0, 1, &mTraceLog); + AddArgument("trace_decode", 0, 1, &mTraceDecode); #endif // CHIP_CONFIG_TRANSPORT_TRACE_ENABLED AddArgument("ble-adapter", 0, UINT64_MAX, &mBleAdapterId); } @@ -114,6 +116,8 @@ class CHIPCommand : public Command PersistentStorage mDefaultStorage; PersistentStorage mCommissionerStorage; + chip::PersistentStorageOperationalKeystore mOperationalKeystore; + chip::Credentials::GroupDataProviderImpl mGroupDataProvider{ kMaxGroupsPerFabric, kMaxGroupKeysPerFabric }; CredentialIssuerCommands * mCredIssuerCmds; @@ -162,5 +166,6 @@ class CHIPCommand : public Command #if CHIP_CONFIG_TRANSPORT_TRACE_ENABLED chip::Optional mTraceFile; chip::Optional mTraceLog; + chip::Optional mTraceDecode; #endif // CHIP_CONFIG_TRANSPORT_TRACE_ENABLED }; diff --git a/examples/chip-tool/commands/common/Command.cpp b/examples/chip-tool/commands/common/Command.cpp index a127f913ca8158..f5828f2b138326 100644 --- a/examples/chip-tool/commands/common/Command.cpp +++ b/examples/chip-tool/commands/common/Command.cpp @@ -215,6 +215,39 @@ bool Command::InitArgument(size_t argIndex, char * argValue) return CHIP_NO_ERROR == customArgument->Parse(arg.name, argValue); } + case ArgumentType::VectorBool: { + // Currently only chip::Optional> is supported. + if (arg.flags != Argument::kOptional) + { + return false; + } + + std::vector vectorArgument; + std::stringstream ss(argValue); + while (ss.good()) + { + std::string valueAsString; + getline(ss, valueAsString, ','); + + if (strcasecmp(valueAsString.c_str(), "true") == 0) + { + vectorArgument.push_back(true); + } + else if (strcasecmp(valueAsString.c_str(), "false") == 0) + { + vectorArgument.push_back(false); + } + else + { + return false; + } + } + + auto optionalArgument = static_cast> *>(arg.value); + optionalArgument->SetValue(vectorArgument); + return true; + } + case ArgumentType::Vector16: case ArgumentType::Vector32: { std::vector values; @@ -623,6 +656,21 @@ size_t Command::AddArgument(const char * name, int64_t min, uint64_t max, chip:: return AddArgumentToList(std::move(arg)); } +size_t Command::AddArgument(const char * name, int64_t min, uint64_t max, chip::Optional> * value, + const char * desc) +{ + Argument arg; + arg.type = ArgumentType::VectorBool; + arg.name = name; + arg.value = static_cast(value); + arg.min = min; + arg.max = max; + arg.flags = Argument::kOptional; + arg.desc = desc; + + return AddArgumentToList(std::move(arg)); +} + size_t Command::AddArgument(const char * name, ComplexArgument * value, const char * desc) { Argument arg; @@ -784,7 +832,12 @@ void Command::ResetArguments() const Argument arg = mArgs[i]; const ArgumentType type = arg.type; const uint8_t flags = arg.flags; - if (type == ArgumentType::Vector16 && flags != Argument::kOptional) + if (type == ArgumentType::VectorBool && flags == Argument::kOptional) + { + auto vectorArgument = static_cast *>(arg.value); + vectorArgument->clear(); + } + else if (type == ArgumentType::Vector16 && flags != Argument::kOptional) { auto vectorArgument = static_cast *>(arg.value); vectorArgument->clear(); diff --git a/examples/chip-tool/commands/common/Command.h b/examples/chip-tool/commands/common/Command.h index 0973a9d4fec638..b9a1c2bc1cb972 100644 --- a/examples/chip-tool/commands/common/Command.h +++ b/examples/chip-tool/commands/common/Command.h @@ -70,6 +70,7 @@ enum ArgumentType Address, Complex, Custom, + VectorBool, Vector16, Vector32, }; @@ -178,6 +179,8 @@ class Command size_t AddArgument(const char * name, int64_t min, uint64_t max, std::vector * value, const char * desc = ""); size_t AddArgument(const char * name, int64_t min, uint64_t max, std::vector * value, const char * desc = ""); + size_t AddArgument(const char * name, int64_t min, uint64_t max, chip::Optional> * value, + const char * desc = ""); size_t AddArgument(const char * name, int64_t min, uint64_t max, chip::Optional> * value, const char * desc = ""); @@ -196,6 +199,15 @@ class Command return AddArgument(name, min, max, reinterpret_cast(out), desc, flags); } + template + size_t AddArgument(const char * name, int64_t min, uint64_t max, chip::BitMask * out, const char * desc = "", + uint8_t flags = 0) + { + // This is a terrible hack that relies on BitMask only having the one + // mValue member. + return AddArgument(name, min, max, reinterpret_cast(out), desc, flags); + } + template size_t AddArgument(const char * name, chip::Optional * value, const char * desc = "") { diff --git a/examples/chip-tool/commands/interactive/InteractiveCommands.cpp b/examples/chip-tool/commands/interactive/InteractiveCommands.cpp index 10459305562b48..dbb3a6fbc1c5f0 100644 --- a/examples/chip-tool/commands/interactive/InteractiveCommands.cpp +++ b/examples/chip-tool/commands/interactive/InteractiveCommands.cpp @@ -18,8 +18,10 @@ #include "InteractiveCommands.h" +#include #include #include +#include char kInteractiveModeName[] = ""; constexpr const char * kInteractiveModePrompt = ">>> "; @@ -102,9 +104,10 @@ bool InteractiveStartCommand::ParseCommand(char * command) char * args[kInteractiveModeArgumentsMaxLength]; args[0] = kInteractiveModeName; int argsCount = 1; + std::string arg; - char * token = strtok(command, " "); - while (token != nullptr) + std::stringstream ss(command); + while (ss >> std::quoted(arg)) { if (argsCount == kInteractiveModeArgumentsMaxLength) { @@ -114,8 +117,9 @@ bool InteractiveStartCommand::ParseCommand(char * command) return true; } - args[argsCount++] = token; - token = strtok(nullptr, " "); + char * carg = new char[arg.size() + 1]; + strcpy(carg, arg.c_str()); + args[argsCount++] = carg; } ClearLine(); @@ -123,5 +127,9 @@ bool InteractiveStartCommand::ParseCommand(char * command) mHandler->RunInteractive(argsCount, args); gIsCommandRunning = false; + // Do not delete arg[0] + while (--argsCount) + delete[] args[argsCount]; + return true; } diff --git a/examples/chip-tool/commands/pairing/PairingCommand.cpp b/examples/chip-tool/commands/pairing/PairingCommand.cpp index 910940df8a2b06..1e092c51dcabd7 100644 --- a/examples/chip-tool/commands/pairing/PairingCommand.cpp +++ b/examples/chip-tool/commands/pairing/PairingCommand.cpp @@ -147,6 +147,7 @@ void PairingCommand::OnStatusUpdate(DevicePairingDelegate::Status status) break; case DevicePairingDelegate::Status::SecurePairingFailed: ChipLogError(chipTool, "Secure Pairing Failed"); + SetCommandExitStatus(CHIP_ERROR_INCORRECT_STATE); break; } } diff --git a/examples/chip-tool/config/PersistentStorage.cpp b/examples/chip-tool/config/PersistentStorage.cpp index f0c3a8312b4c89..c2bf34349bccab 100644 --- a/examples/chip-tool/config/PersistentStorage.cpp +++ b/examples/chip-tool/config/PersistentStorage.cpp @@ -37,7 +37,7 @@ constexpr const char kPortKey[] = "ListenPort"; constexpr const char kLoggingKey[] = "LoggingLevel"; constexpr const char kLocalNodeIdKey[] = "LocalNodeId"; constexpr const char kCommissionerCATsKey[] = "CommissionerCATs"; -constexpr LogCategory kDefaultLoggingLevel = kLogCategory_Detail; +constexpr LogCategory kDefaultLoggingLevel = kLogCategory_Automation; std::string GetFilename(const char * name) { @@ -223,6 +223,10 @@ LogCategory PersistentStorage::GetLoggingLevel() { chipLogLevel = kLogCategory_Detail; } + else if (strcasecmp(value, "automation") == 0) + { + chipLogLevel = kLogCategory_Automation; + } } return chipLogLevel; diff --git a/examples/chip-tool/templates/tests/partials/checks/maybeCheckExpectedConstraints.zapt b/examples/chip-tool/templates/tests/partials/checks/maybeCheckExpectedConstraints.zapt index 811f4f3a8d8fc3..b7a574e380173a 100644 --- a/examples/chip-tool/templates/tests/partials/checks/maybeCheckExpectedConstraints.zapt +++ b/examples/chip-tool/templates/tests/partials/checks/maybeCheckExpectedConstraints.zapt @@ -28,6 +28,18 @@ {{~#if (hasProperty expectedConstraints "maxValue")}}VerifyOrReturn(CheckConstraintMaxValue("{{asPropertyValue}}", {{asPropertyValue}}, {{asTypedLiteral expectedConstraints.maxValue type}}));{{/if}} + {{~#if (hasProperty expectedConstraints "contains")}} + {{#chip_tests_iterate_expected_list expectedConstraints.contains}} + VerifyOrReturn(CheckConstraintContains("{{asPropertyValue}}", {{asPropertyValue}}, {{asTypedLiteral value type}})); + {{/chip_tests_iterate_expected_list}} + {{/if}} + + {{~#if (hasProperty expectedConstraints "excludes")}} + {{#chip_tests_iterate_expected_list expectedConstraints.excludes}} + VerifyOrReturn(CheckConstraintExcludes("{{asPropertyValue}}", {{asPropertyValue}}, {{asTypedLiteral value type}})); + {{/chip_tests_iterate_expected_list}} + {{/if}} + {{~#if (hasProperty expectedConstraints "notValue")}} {{#if (isLiteralNull expectedConstraints.notValue)}} VerifyOrReturn(CheckValueNonNull("{{asPropertyValue}}", {{asPropertyValue}})); diff --git a/examples/chip-tool/templates/tests/partials/command_value.zapt b/examples/chip-tool/templates/tests/partials/command_value.zapt index 7a5b9e0a23230e..d412478ac00796 100644 --- a/examples/chip-tool/templates/tests/partials/command_value.zapt +++ b/examples/chip-tool/templates/tests/partials/command_value.zapt @@ -60,7 +60,11 @@ {{else if (isCharString type)}} chip::Span("{{definedValue}}garbage: not in length on purpose", {{utf8StringLength definedValue}}); {{else if (isOctetString type)}} - chip::ByteSpan(chip::Uint8::from_const_char("{{octetStringEscapedForCLiteral definedValue}}garbage: not in length on purpose"), {{definedValue.length}}); + {{~#if (isHexString definedValue)}} + chip::ByteSpan(chip::Uint8::from_const_char("{{octetStringFromHexString definedValue}}garbage: not in length on purpose"), {{octetStringLengthFromHexString definedValue}}); + {{else}} + chip::ByteSpan(chip::Uint8::from_const_char("{{octetStringEscapedForCLiteral definedValue}}garbage: not in length on purpose"), {{definedValue.length}}); + {{/if}} {{else}} {{#if_is_strongly_typed_bitmap type}} static_cast<{{zapTypeToEncodableClusterObjectType type ns=ns}}>({{asTypedLiteral definedValue type}}); diff --git a/examples/chip-tool/templates/tests/partials/value_equals.zapt b/examples/chip-tool/templates/tests/partials/value_equals.zapt index 2f934e60d0ca74..e387036b293662 100644 --- a/examples/chip-tool/templates/tests/partials/value_equals.zapt +++ b/examples/chip-tool/templates/tests/partials/value_equals.zapt @@ -52,7 +52,12 @@ VerifyOrReturn(CheckValue{{#if (isString type)}}AsString{{/if}}("{{label}}", {{actual}}, {{~#if (chip_tests_variables_has expected)}}{{expected}} {{else if keepAsExpected}}{{expected}} - {{else if (isOctetString type)}}chip::ByteSpan(chip::Uint8::from_const_char("{{octetStringEscapedForCLiteral expected}}"), {{expected.length}}) + {{else if (isOctetString type)}} + {{~#if (isHexString expected)}} + chip::ByteSpan(chip::Uint8::from_const_char("{{octetStringFromHexString expected}}"), {{octetStringLengthFromHexString expected}}) + {{else}} + chip::ByteSpan(chip::Uint8::from_const_char("{{octetStringEscapedForCLiteral expected}}"), {{expected.length}}) + {{/if}} {{else if (isCharString type)}}chip::CharSpan("{{expected}}", {{utf8StringLength expected}}) {{else if (chip_tests_config_has expected)}}m{{asUpperCamelCase expected}}.HasValue() ? m{{asUpperCamelCase expected}}.Value() : {{asTypedLiteral (chip_tests_config_get_default_value expected) (chip_tests_config_get_type expected)}} {{else}}{{asTypedExpression expected type}} diff --git a/examples/common/pigweed/protos/attributes_service.proto b/examples/common/pigweed/protos/attributes_service.proto index fd20ddbf6a5489..4ebb71508d586e 100644 --- a/examples/common/pigweed/protos/attributes_service.proto +++ b/examples/common/pigweed/protos/attributes_service.proto @@ -155,7 +155,6 @@ enum ClusterType { ZCL_CHLORODIBROMOMETHANE_CONCENTRATION_MEASUREMENT_CLUSTER_ID = 0x0427; ZCL_CHLOROFORM_CONCENTRATION_MEASUREMENT_CLUSTER_ID = 0x0428; ZCL_SODIUM_CONCENTRATION_MEASUREMENT_CLUSTER_ID = 0x0429; - ZCL_IAS_ZONE_CLUSTER_ID = 0x0500; ZCL_IAS_ACE_CLUSTER_ID = 0x0501; ZCL_IAS_WD_CLUSTER_ID = 0x0502; ZCL_WAKE_ON_LAN_CLUSTER_ID = 0x0503; @@ -170,7 +169,6 @@ enum ClusterType { ZCL_APPLICATION_LAUNCHER_CLUSTER_ID = 0x050C; ZCL_APPLICATION_BASIC_CLUSTER_ID = 0x050D; ZCL_ACCOUNT_LOGIN_CLUSTER_ID = 0x050E; - ZCL_TEST_CLUSTER_ID = 0x050F; ZCL_MESSAGING_CLUSTER_ID = 0x0703; ZCL_APPLIANCE_IDENTIFICATION_CLUSTER_ID = 0x0B00; ZCL_METER_IDENTIFICATION_CLUSTER_ID = 0x0B01; @@ -180,6 +178,13 @@ enum ClusterType { ZCL_BINDING_CLUSTER_ID = 0xF000; ZCL_GROUP_KEY_MANAGEMENT_CLUSTER_ID = 0xF004; ZCL_SAMPLE_MFG_SPECIFIC_CLUSTER_ID = 0xFC00; + + // NOTE: This is a large number that becomes negative as a 32-bit integer. + // + // Protobuf documentation states: + // Enumerator constants must be in the range of a 32-bit integer. Since enum values + // use varint encoding on the wire, negative values are inefficient and thus not recommended. + ZCL_TEST_CLUSTER_ID = -918523; // 0xFFF1FC05; } diff --git a/examples/common/pigweed/protos/device_service.options b/examples/common/pigweed/protos/device_service.options index 3f0c8f9375bb75..1435fa9208cd27 100644 --- a/examples/common/pigweed/protos/device_service.options +++ b/examples/common/pigweed/protos/device_service.options @@ -2,3 +2,5 @@ chip.rpc.DeviceInfo.serial_number max_size:32 // length defined in chip spec 8. chip.rpc.DeviceState.fabric_info max_count:2 chip.rpc.PairingInfo.qr_code max_size:256 chip.rpc.PairingInfo.qr_code_url max_size:256 +chip.rpc.SpakeInfo.verifier max_size:97 // kSpake2p_VerifierSerialized_Length +chip.rpc.SpakeInfo.salt max_size:32 // kSpake2p_Max_PBKDF_Salt_Length diff --git a/examples/common/pigweed/protos/device_service.proto b/examples/common/pigweed/protos/device_service.proto index 771e4c82efdf4b..e926866e687147 100644 --- a/examples/common/pigweed/protos/device_service.proto +++ b/examples/common/pigweed/protos/device_service.proto @@ -11,6 +11,12 @@ message PairingInfo { string qr_code_url = 4; } +message SpakeInfo { + optional bytes verifier = 1; + optional bytes salt = 2; + optional uint32 iteration_count = 3; +} + // type lengths defined in chip spec 8.2.3.1 message DeviceInfo { uint32 vendor_id = 1; @@ -43,4 +49,6 @@ service Device { rpc SetPairingState(PairingState) returns (pw.protobuf.Empty){} rpc GetPairingState(pw.protobuf.Empty) returns (PairingState){} rpc SetPairingInfo(PairingInfo) returns (pw.protobuf.Empty){} + rpc GetSpakeInfo(pw.protobuf.Empty) returns (SpakeInfo){} + rpc SetSpakeInfo(SpakeInfo) returns (pw.protobuf.Empty){} } diff --git a/examples/common/pigweed/rpc_console/README.md b/examples/common/pigweed/rpc_console/README.md index 09226c2eec1ceb..d433631b9e12d1 100644 --- a/examples/common/pigweed/rpc_console/README.md +++ b/examples/common/pigweed/rpc_console/README.md @@ -15,50 +15,50 @@ files required for CHIP. ## Building - If this is the first time using the checkout the environment must first be - bootstrapped to install all dependencies. +If this is the first time using the checkout the environment must first be +bootstrapped to install all dependencies. - ``` - $ source /scripts/bootstrap.sh - ``` +``` +$ source /scripts/bootstrap.sh +``` - If bootstrap has previously been run, then simply activate. +If bootstrap has previously been run, then simply activate. - ``` - $ source /scripts/activate.sh - ``` +``` +$ source /scripts/activate.sh +``` - The python console is built and installed in the venv using gn: +The python console is built and installed in the venv using gn: - ``` - $ cd /examples/common/pigweed/rpc_console - $ gn gen out/debug - $ ninja -C out/debug - ``` +``` +$ cd /examples/common/pigweed/rpc_console +$ gn gen out/debug +$ ninja -C out/debug +``` - After building the output directory also contains a folder - (chip_rpc_console_wheels), with all the wheels required for the tool. These - can be used to install the console without needing the sdk. Simply install - all the wheels in the folder: +After building the output directory also contains a folder +(chip_rpc_console_wheels), with all the wheels required for the tool. These can +be used to install the console without needing the sdk. Simply install all the +wheels in the folder: - ``` - $ cd /examples/common/pigweed/rpc_console/out/debug - $ pip install chip_rpc_console_wheels/*.whl - ``` +``` +$ cd /examples/common/pigweed/rpc_console/out/debug +$ pip install chip_rpc_console_wheels/*.whl +``` ## Running To start the console provide the path to the device, for example: - ``` - $ chip-console --device /dev/ttyUSB0 - ``` +``` +$ chip-console --device /dev/ttyUSB0 +``` Note that `chip-console` is an entry point for chip_rpc.console and could also be run with `python -m chip_rpc.console`. An example RPC command: - ```python - $ rpcs.chip.rpc.Device.GetDeviceInfo() - ``` +```python +rpcs.chip.rpc.Device.GetDeviceInfo() +``` diff --git a/examples/common/pigweed/rpc_services/Device.h b/examples/common/pigweed/rpc_services/Device.h index d7d06d3bfc3842..56caee22d309f4 100644 --- a/examples/common/pigweed/rpc_services/Device.h +++ b/examples/common/pigweed/rpc_services/Device.h @@ -21,18 +21,190 @@ #include #include +#include "app/clusters/ota-requestor/OTARequestorInterface.h" #include "app/server/OnboardingCodesUtil.h" #include "app/server/Server.h" #include "credentials/FabricTable.h" #include "device_service/device_service.rpc.pb.h" +#include "platform/CommissionableDataProvider.h" #include "platform/ConfigurationManager.h" #include "platform/DiagnosticDataProvider.h" #include "platform/PlatformManager.h" +#include #include namespace chip { namespace rpc { +namespace Internal { +// This class supports changing the commissionable data provider values at +// runtime using the RPCs. +// This class is LazyInit after getting or setting any of it's values. After +// this the class wraps the original CommissionableDataProvider, returning the +// original values for anything which has not been overwritten. +// +// NOTE: Values written do not persist across a reboot. +class CommissionableDataProviderRpcWrapper : public DeviceLayer::CommissionableDataProvider +{ +public: + CHIP_ERROR GetSetupPasscode(uint32_t & setupPasscode) override + { + LazyInit(); + if (mPasscodeOverride.has_value()) + { + setupPasscode = mPasscodeOverride.value(); + return CHIP_NO_ERROR; + } + if (mCommissionableDataProvider) + { + return mCommissionableDataProvider->GetSetupPasscode(setupPasscode); + } + return CHIP_ERROR_INTERNAL; + } + + // NOTE: Changing the passcode will not change the verifier or anything else + // this just changes the value returned from GetSetupPasscode. + // Using this is completely optional, and only really useful for test + // automation which can read the configured passcode for commissioning + // after it is changed. + CHIP_ERROR SetSetupPasscode(uint32_t setupPasscode) override + { + LazyInit(); + mPasscodeOverride = setupPasscode; + return CHIP_NO_ERROR; + } + + CHIP_ERROR GetSetupDiscriminator(uint16_t & setupDiscriminator) override + { + LazyInit(); + if (mDiscriminatorOverride.has_value()) + { + setupDiscriminator = mDiscriminatorOverride.value(); + return CHIP_NO_ERROR; + } + if (mCommissionableDataProvider) + { + return mCommissionableDataProvider->GetSetupDiscriminator(setupDiscriminator); + } + return CHIP_ERROR_INTERNAL; + } + + CHIP_ERROR SetSetupDiscriminator(uint16_t setupDiscriminator) override + { + LazyInit(); + mDiscriminatorOverride = setupDiscriminator; + return CHIP_NO_ERROR; + } + + CHIP_ERROR GetSpake2pIterationCount(uint32_t & iterationCount) override + { + LazyInit(); + if (mIterationCountOverride.has_value()) + { + iterationCount = mIterationCountOverride.value(); + return CHIP_NO_ERROR; + } + if (mCommissionableDataProvider) + { + return mCommissionableDataProvider->GetSpake2pIterationCount(iterationCount); + } + return CHIP_ERROR_INTERNAL; + } + + CHIP_ERROR SetSpake2pIterationCount(uint32_t iterationCount) + { + LazyInit(); + mIterationCountOverride = iterationCount; + return CHIP_NO_ERROR; + } + + CHIP_ERROR GetSpake2pSalt(MutableByteSpan & saltBuf) override + { + LazyInit(); + if (mSaltOverride.has_value()) + { + if (mSaltOverride.value().size() > saltBuf.size()) + { + return CHIP_ERROR_BUFFER_TOO_SMALL; + } + std::copy(mSaltOverride.value().begin(), mSaltOverride.value().end(), saltBuf.begin()); + saltBuf.reduce_size(mSaltOverride.value().size()); + return CHIP_NO_ERROR; + } + if (mCommissionableDataProvider) + { + return mCommissionableDataProvider->GetSpake2pSalt(saltBuf); + } + return CHIP_ERROR_INTERNAL; + } + + CHIP_ERROR SetSpake2pSalt(ByteSpan saltBuf) + { + LazyInit(); + if (sizeof(mSaltBuf) < saltBuf.size()) + { + return CHIP_ERROR_BUFFER_TOO_SMALL; + } + std::copy(saltBuf.begin(), saltBuf.end(), mSaltBuf); + mSaltOverride = ByteSpan(mSaltBuf, saltBuf.size()); + return CHIP_NO_ERROR; + } + + CHIP_ERROR GetSpake2pVerifier(MutableByteSpan & verifierBuf, size_t & outVerifierLen) override + { + LazyInit(); + if (mVerifierOverride.has_value()) + { + outVerifierLen = mVerifierOverride.value().size(); + if (mVerifierOverride.value().size() > verifierBuf.size()) + { + return CHIP_ERROR_BUFFER_TOO_SMALL; + } + std::copy(mVerifierOverride.value().begin(), mVerifierOverride.value().end(), verifierBuf.begin()); + verifierBuf.reduce_size(mVerifierOverride.value().size()); + return CHIP_NO_ERROR; + } + if (mCommissionableDataProvider) + { + return mCommissionableDataProvider->GetSpake2pVerifier(verifierBuf, outVerifierLen); + } + + return CHIP_ERROR_INTERNAL; + } + + CHIP_ERROR SetSpake2pVerifier(ByteSpan verifierBuf) + { + LazyInit(); + if (sizeof(mVerifierBuf) < verifierBuf.size()) + { + return CHIP_ERROR_BUFFER_TOO_SMALL; + } + std::copy(verifierBuf.begin(), verifierBuf.end(), mVerifierBuf); + mVerifierOverride = ByteSpan(mVerifierBuf, verifierBuf.size()); + return CHIP_NO_ERROR; + } + +private: + std::optional mDiscriminatorOverride; + std::optional mPasscodeOverride; + Spake2pVerifierSerialized mVerifierBuf; + std::optional mVerifierOverride; + uint8_t mSaltBuf[kSpake2p_Max_PBKDF_Salt_Length]; + std::optional mSaltOverride; + std::optional mIterationCountOverride; + DeviceLayer::CommissionableDataProvider * mCommissionableDataProvider = nullptr; + + void LazyInit() + { + if (!mCommissionableDataProvider) + { + mCommissionableDataProvider = DeviceLayer::GetCommissionableDataProvider(); + DeviceLayer::SetCommissionableDataProvider(this); + } + } +}; +} // namespace Internal + class Device : public pw_rpc::nanopb::Device::Service { public: @@ -51,8 +223,20 @@ class Device : public pw_rpc::nanopb::Device::Service virtual pw::Status TriggerOta(const pw_protobuf_Empty & request, pw_protobuf_Empty & response) { - // TODO: auto err = DeviceLayer::SoftwareUpdateMgr().CheckNow(); - return pw::Status::Unimplemented(); + chip::DeviceLayer::PlatformMgr().ScheduleWork( + [](intptr_t) { + chip::OTARequestorInterface * requestor = chip::GetRequestorInstance(); + if (requestor == nullptr) + { + ChipLogError(SoftwareUpdate, "Can't get the CASESessionManager"); + } + else + { + requestor->TriggerImmediateQuery(); + } + }, + reinterpret_cast(nullptr)); + return pw::OkStatus(); } virtual pw::Status SetPairingState(const chip_rpc_PairingState & request, pw_protobuf_Empty & response) @@ -141,7 +325,7 @@ class Device : public pw_rpc::nanopb::Device::Service response.has_pairing_info = true; } - if (DeviceLayer::ConfigurationMgr().GetSerialNumber(response.serial_number, sizeof(response.serial_number)) == + if (DeviceLayer::GetDeviceInstanceInfoProvider()->GetSerialNumber(response.serial_number, sizeof(response.serial_number)) == CHIP_NO_ERROR) { snprintf(response.serial_number, sizeof(response.serial_number), CHIP_DEVICE_CONFIG_TEST_SERIAL_NUMBER); @@ -160,15 +344,65 @@ class Device : public pw_rpc::nanopb::Device::Service return pw::OkStatus(); } + virtual pw::Status GetSpakeInfo(const pw_protobuf_Empty & request, chip_rpc_SpakeInfo & response) + { + size_t serializedVerifierLen = 0; + MutableByteSpan verifierSpan{ response.verifier.bytes }; + if (DeviceLayer::GetCommissionableDataProvider()->GetSpake2pVerifier(verifierSpan, serializedVerifierLen) == CHIP_NO_ERROR) + { + response.verifier.size = verifierSpan.size(); + response.has_verifier = true; + } + + MutableByteSpan saltSpan{ response.salt.bytes }; + if (DeviceLayer::GetCommissionableDataProvider()->GetSpake2pSalt(saltSpan) == CHIP_NO_ERROR) + { + response.salt.size = saltSpan.size(); + response.has_salt = true; + } + + if (DeviceLayer::GetCommissionableDataProvider()->GetSpake2pIterationCount(response.iteration_count) == CHIP_NO_ERROR) + { + response.has_iteration_count = true; + } + + return pw::OkStatus(); + } + + virtual pw::Status SetSpakeInfo(const chip_rpc_SpakeInfo & request, pw_protobuf_Empty & response) + { + if (request.has_salt) + { + mCommissionableDataProvider.SetSpake2pSalt(ByteSpan(request.salt.bytes, request.salt.size)); + } + if (request.has_iteration_count) + { + mCommissionableDataProvider.SetSpake2pIterationCount(request.iteration_count); + } + if (request.has_verifier) + { + mCommissionableDataProvider.SetSpake2pVerifier(ByteSpan(request.verifier.bytes, request.verifier.size)); + } + return pw::OkStatus(); + } + + // NOTE: Changing the passcode will not change the verifier or anything else + // this just changes the value returned from GetSetupPasscode. + // Using this is completely optional, and only really useful for test + // automation which can read the configured passcode for commissioning + // after it is changed. virtual pw::Status SetPairingInfo(const chip_rpc_PairingInfo & request, pw_protobuf_Empty & response) { - if (DeviceLayer::GetCommissionableDataProvider()->SetSetupPasscode(request.code) != CHIP_NO_ERROR || - DeviceLayer::GetCommissionableDataProvider()->SetSetupDiscriminator(request.discriminator) != CHIP_NO_ERROR) + if (mCommissionableDataProvider.SetSetupPasscode(request.code) != CHIP_NO_ERROR || + mCommissionableDataProvider.SetSetupDiscriminator(request.discriminator) != CHIP_NO_ERROR) { return pw::Status::Unknown(); } return pw::OkStatus(); } + +private: + Internal::CommissionableDataProviderRpcWrapper mCommissionableDataProvider; }; } // namespace rpc diff --git a/examples/common/tracing/.gn b/examples/common/tracing/.gn new file mode 100644 index 00000000000000..5d1ce757507582 --- /dev/null +++ b/examples/common/tracing/.gn @@ -0,0 +1,25 @@ +# Copyright (c) 2020 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. + +import("//build_overrides/build.gni") + +# The location of the build configuration file. +buildconfig = "${build_root}/config/BUILDCONFIG.gn" + +# CHIP uses angle bracket includes. +check_system_includes = true + +default_args = { + import("//args.gni") +} diff --git a/examples/common/tracing/BUILD.gn b/examples/common/tracing/BUILD.gn index 0ec67ae4e07a5e..0fe3e13b3f677a 100644 --- a/examples/common/tracing/BUILD.gn +++ b/examples/common/tracing/BUILD.gn @@ -27,3 +27,48 @@ source_set("trace_handlers") { public_configs = [ ":default_config" ] } + +source_set("trace_handlers_decoder") { + sources = [ + "TraceDecoder.cpp", + "TraceHandlers.cpp", + "decoder/TraceDecoderProtocols.cpp", + "decoder/bdx/Decoder.cpp", + "decoder/echo/Decoder.cpp", + "decoder/interaction_model/Decoder.cpp", + "decoder/interaction_model/DecoderCustomLog.cpp", + "decoder/logging/Log.cpp", + "decoder/logging/ToCertificateString.cpp", + "decoder/secure_channel/Decoder.cpp", + "decoder/udc/Decoder.cpp", + ] + + public_configs = [ ":default_config" ] + + deps = [ "${chip_root}/src/lib" ] + public_deps = [ "${chip_root}/third_party/jsoncpp" ] +} + +executable("chip-trace-decoder") { + sources = [ + "TraceDecoder.cpp", + "TraceDecoderArgumentParser.cpp", + "decoder/TraceDecoderProtocols.cpp", + "decoder/bdx/Decoder.cpp", + "decoder/echo/Decoder.cpp", + "decoder/interaction_model/Decoder.cpp", + "decoder/interaction_model/DecoderCustomLog.cpp", + "decoder/logging/Log.cpp", + "decoder/logging/ToCertificateString.cpp", + "decoder/secure_channel/Decoder.cpp", + "decoder/udc/Decoder.cpp", + "main.cpp", + ] + + output_dir = root_out_dir + + public_deps = [ + "${chip_root}/src/lib", + "${chip_root}/third_party/jsoncpp", + ] +} diff --git a/examples/common/tracing/TraceDecoder.cpp b/examples/common/tracing/TraceDecoder.cpp new file mode 100644 index 00000000000000..00c9bb96d9d767 --- /dev/null +++ b/examples/common/tracing/TraceDecoder.cpp @@ -0,0 +1,399 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#include "TraceDecoder.h" +#include "decoder/TraceDecoderProtocols.h" +#include "decoder/logging/Log.h" + +#include +#include +#include +#include +#include +#include + +constexpr uint16_t kMaxLineLen = 4096; +constexpr const char * jsonPrefix = " json\t"; + +// Json keys +constexpr const char * kProtocolIdKey = "protocol_id"; +constexpr const char * kProtocolCodeKey = "protocol_opcode"; +constexpr const char * kSessionIdKey = "session_id"; +constexpr const char * kExchangeIdKey = "exchange_id"; +constexpr const char * kMessageCounterKey = "msg_counter"; +constexpr const char * kSecurityFlagsKey = "security_flags"; +constexpr const char * kMessageFlagsKey = "msg_flags"; +constexpr const char * kSourceNodeIdKey = "source_node_id"; +constexpr const char * kDestinationNodeIdKey = "dest_node_id"; +constexpr const char * kDestinationGroupIdKey = "group_id"; +constexpr const char * kExchangeFlagsKey = "exchange_flags"; +constexpr const char * kIsInitiatorKey = "is_initiator"; +constexpr const char * kNeedsAckKey = "is_ack_requested"; +constexpr const char * kAckMsgKey = "acknowledged_msg_counter"; +constexpr const char * kPayloadDataKey = "payload_hex"; +constexpr const char * kPayloadSizeKey = "payload_size"; +constexpr const char * kPayloadEncryptedDataKey = "payload_hex_encrypted"; +constexpr const char * kPayloadEncryptedSizeKey = "payload_size_encrypted"; +constexpr const char * kPayloadEncryptedBufferPtrKey = "buffer_ptr"; +constexpr const char * kSourceKey = "source"; +constexpr const char * kDestinationKey = "destination"; + +namespace chip { +namespace trace { + +using namespace logging; + +CHIP_ERROR TraceDecoder::ReadFile(const char * fp) +{ + std::ifstream file(fp); + VerifyOrReturnError(file.is_open(), CHIP_ERROR_INVALID_ARGUMENT); + + char line[kMaxLineLen]; + while (file.getline(line, sizeof(line))) + { + ReturnErrorOnFailure(ReadString(line)); + } + + file.close(); + return CHIP_NO_ERROR; +} + +CHIP_ERROR TraceDecoder::ReadString(const char * str) +{ + if (strncmp(str, jsonPrefix, strlen(jsonPrefix)) != 0) + { + // Not a json string. Ignore it. + return CHIP_NO_ERROR; + } + str += strlen(jsonPrefix); + + Json::Reader reader; + + if (mJsonBuffer.empty()) + { + VerifyOrReturnError(reader.parse(str, mJsonBuffer), CHIP_ERROR_INVALID_ARGUMENT); + VerifyOrReturnError(mJsonBuffer.isMember(kPayloadDataKey) && mJsonBuffer.isMember(kPayloadSizeKey), + CHIP_ERROR_INCORRECT_STATE); + return CHIP_NO_ERROR; + } + + Json::Value json; + VerifyOrReturnError(reader.parse(str, json), CHIP_ERROR_INVALID_ARGUMENT); + + // If there is a source, then it means the previously saved payload is an encrypted to decode, otherwise + // the previously saved payload is the non encrypted version, and the current decoded one is the encrypted version. + if (mJsonBuffer.isMember(kSourceKey)) + { + json[kPayloadEncryptedDataKey] = mJsonBuffer[kPayloadDataKey]; + json[kPayloadEncryptedSizeKey] = mJsonBuffer[kPayloadSizeKey]; + } + else + { + auto data = json[kPayloadDataKey]; + auto size = json[kPayloadSizeKey]; + json[kPayloadDataKey] = mJsonBuffer[kPayloadDataKey]; + json[kPayloadSizeKey] = mJsonBuffer[kPayloadSizeKey]; + json[kPayloadEncryptedDataKey] = data; + json[kPayloadEncryptedSizeKey] = size; + } + mJsonBuffer.removeMember(kPayloadDataKey); + mJsonBuffer.removeMember(kPayloadSizeKey); + + // If there is additional data in the previously saved json copy all of it. + for (const auto & key : mJsonBuffer.getMemberNames()) + { + json[key] = mJsonBuffer[key]; + mJsonBuffer.removeMember(key); + } + + VerifyOrReturnError(json.isMember(kSourceKey) || json.isMember(kDestinationKey), CHIP_ERROR_INCORRECT_STATE); + VerifyOrReturnError(json.isMember(kProtocolIdKey), CHIP_ERROR_INCORRECT_STATE); + VerifyOrReturnError(json.isMember(kProtocolCodeKey), CHIP_ERROR_INCORRECT_STATE); + + return LogJSON(json); +} + +CHIP_ERROR TraceDecoder::LogJSON(Json::Value & json) +{ + uint32_t protocol = json[kProtocolIdKey].asLargestUInt(); + uint16_t vendorId = protocol >> 16; + uint16_t protocolId = protocol & 0xFFFF; + if (!mOptions.IsProtocolEnabled(chip::Protocols::Id(chip::VendorId(vendorId), protocolId))) + { + return CHIP_NO_ERROR; + } + + if (!mOptions.mEnableMessageInitiator && json.isMember(kDestinationKey)) + { + return CHIP_NO_ERROR; + } + + if (!mOptions.mEnableMessageResponder && json.isMember(kSourceKey)) + { + return CHIP_NO_ERROR; + } + + bool isResponse = json.isMember(kSourceKey) ? true : false; + ReturnErrorOnFailure(LogAndConsumeProtocol(json)); + ReturnErrorOnFailure(MaybeLogAndConsumeHeaderFlags(json)); + ReturnErrorOnFailure(MaybeLogAndConsumeEncryptedPayload(json)); + ReturnErrorOnFailure(MaybeLogAndConsumePayload(json, isResponse)); + ReturnErrorOnFailure(MaybeLogAndConsumeOthers(json)); + + return CHIP_NO_ERROR; +} + +CHIP_ERROR TraceDecoder::MaybeLogAndConsumeHeaderFlags(Json::Value & json) +{ + auto scopedIndent = ScopedLogIndent("Header Flags"); + ReturnErrorOnFailure(MaybeLogAndConsumeSecurityFlags(json)); + ReturnErrorOnFailure(MaybeLogAndConsumeMessageFlags(json)); + ReturnErrorOnFailure(MaybeLogAndConsumeExchangeFlags(json)); + + return CHIP_NO_ERROR; +} + +CHIP_ERROR TraceDecoder::MaybeLogAndConsumeEncryptedPayload(Json::Value & json) +{ + if (mOptions.mEnableDataEncryptedPayload) + { + size_t size = static_cast(json[kPayloadEncryptedSizeKey].asLargestUInt()); + if (size) + { + auto payload = json[kPayloadEncryptedDataKey].asString(); + auto bufferPtr = json[kPayloadEncryptedBufferPtrKey].asString(); + auto scoppedIndent = ScopedLogIndentWithSize("Encrypted Payload", size); + Log("data", payload.c_str()); + Log("buffer_ptr", bufferPtr.c_str()); + } + } + json.removeMember(kPayloadEncryptedSizeKey); + json.removeMember(kPayloadEncryptedDataKey); + json.removeMember(kPayloadEncryptedBufferPtrKey); + return CHIP_NO_ERROR; +} + +CHIP_ERROR TraceDecoder::MaybeLogAndConsumeOthers(Json::Value & json) +{ + std::vector keys = json.getMemberNames(); + if (keys.size()) + { + auto scopedIndent = ScopedLogIndent("Additional Fields"); + for (std::vector::const_iterator it = keys.begin(); it != keys.end(); ++it) + { + auto key = (*it).c_str(); + auto value = json[key].asString(); + Log(key, value.c_str()); + } + } + + return CHIP_NO_ERROR; +} + +CHIP_ERROR TraceDecoder::LogAndConsumeProtocol(Json::Value & json) +{ + char protocolInfo[256] = {}; + char protocolDetail[32] = {}; + + auto id = json[kProtocolIdKey].asLargestUInt(); + auto opcode = static_cast(json[kProtocolCodeKey].asLargestUInt()); + + uint16_t vendorId = (id >> 16); + uint16_t protocolId = (id & 0xFFFF); + + chip::StringBuilderBase builder(protocolInfo, sizeof(protocolInfo)); + + builder.Add(json.isMember(kSourceKey) ? "<< from " : ">> to "); + builder.Add(json.isMember(kSourceKey) ? json[kSourceKey].asCString() : json[kDestinationKey].asCString()); + + builder.Add(" "); + auto msgCounter = static_cast(json[kMessageCounterKey].asLargestUInt()); + memset(protocolDetail, '\0', sizeof(protocolDetail)); + snprintf(protocolDetail, sizeof(protocolDetail), "| %u |", msgCounter); + builder.Add(protocolDetail); + + builder.Add(" ["); + builder.Add(ToProtocolName(id)); + + builder.Add(" "); + memset(protocolDetail, '\0', sizeof(protocolDetail)); + snprintf(protocolDetail, sizeof(protocolDetail), "(%u)", protocolId); + builder.Add(protocolDetail); + + builder.Add(" / "); + builder.Add(ToProtocolMessageTypeName(id, opcode)); + + builder.Add(" "); + memset(protocolDetail, '\0', sizeof(protocolDetail)); + snprintf(protocolDetail, sizeof(protocolDetail), "(0x%02x)", opcode); + builder.Add(protocolDetail); + + if (vendorId != chip::VendorId::Common) + { + builder.Add(" / VendorId = "); + builder.Add(vendorId); + } + + builder.Add(" / Session = "); + builder.Add(static_cast(json[kSessionIdKey].asLargestUInt())); + + builder.Add(" / Exchange = "); + builder.Add(static_cast(json[kExchangeIdKey].asLargestUInt())); + builder.Add("]"); + + ChipLogProgress(DataManagement, "%s", builder.c_str()); + + json.removeMember(kSourceKey); + json.removeMember(kDestinationKey); + json.removeMember(kSessionIdKey); + json.removeMember(kExchangeIdKey); + json.removeMember(kMessageCounterKey); + + return CHIP_NO_ERROR; +} + +CHIP_ERROR TraceDecoder::MaybeLogAndConsumePayload(Json::Value & json, bool isResponse) +{ + auto size = static_cast(json[kPayloadSizeKey].asLargestUInt()); + if (size) + { + bool shouldDecode = !isResponse || mOptions.mEnableProtocolInteractionModelResponse; + auto payload = json[kPayloadDataKey].asString(); + auto protocolId = json[kProtocolIdKey].asLargestUInt(); + auto protocolCode = json[kProtocolCodeKey].asLargestUInt(); + ReturnErrorOnFailure(LogAsProtocolMessage(protocolId, protocolCode, payload.c_str(), payload.size(), shouldDecode)); + Log(" "); + } + + json.removeMember(kPayloadDataKey); + json.removeMember(kPayloadSizeKey); + json.removeMember(kProtocolIdKey); + json.removeMember(kProtocolCodeKey); + return CHIP_NO_ERROR; +} + +CHIP_ERROR TraceDecoder::MaybeLogAndConsumeSecurityFlags(Json::Value & json) +{ + VerifyOrReturnError(json.isMember(kSecurityFlagsKey), CHIP_NO_ERROR); + + auto flags = static_cast(json[kSecurityFlagsKey].asLargestUInt()); + if (flags) + { + auto scopedIndent = ScopedLogIndentWithFlags("Security", flags); + + if (flags & to_underlying(chip::Header::SecFlagValues::kPrivacyFlag)) + { + Log("Privacy", "true"); + } + + if (flags & to_underlying(chip::Header::SecFlagValues::kControlMsgFlag)) + { + Log("ControlMsg", "true"); + } + + if (flags & to_underlying(chip::Header::SecFlagValues::kMsgExtensionFlag)) + { + Log("MsgExtension", "true"); + } + } + + json.removeMember(kSecurityFlagsKey); + return CHIP_NO_ERROR; +} + +CHIP_ERROR TraceDecoder::MaybeLogAndConsumeMessageFlags(Json::Value & json) +{ + VerifyOrReturnError(json.isMember(kMessageFlagsKey), CHIP_NO_ERROR); + + auto flags = static_cast(json[kMessageFlagsKey].asLargestUInt()); + if (flags) + { + auto scopedIndent = ScopedLogIndentWithFlags("Message", flags); + + if (flags & to_underlying(chip::Header::MsgFlagValues::kSourceNodeIdPresent)) + { + auto id = json[kSourceNodeIdKey].asLargestUInt(); + LogAsHex("SourceNodeId", id); + } + + if (flags & to_underlying(chip::Header::MsgFlagValues::kDestinationNodeIdPresent)) + { + auto id = json[kDestinationNodeIdKey].asLargestUInt(); + LogAsHex("DestinationNodeId", id); + } + + if (flags & to_underlying(chip::Header::MsgFlagValues::kDestinationGroupIdPresent)) + { + auto id = static_cast(json[kDestinationGroupIdKey].asLargestUInt()); + LogAsHex("DestinationGroupIdPresent", id); + } + } + + json.removeMember(kMessageFlagsKey); + json.removeMember(kSourceNodeIdKey); + json.removeMember(kDestinationNodeIdKey); + json.removeMember(kDestinationGroupIdKey); + return CHIP_NO_ERROR; +} + +CHIP_ERROR TraceDecoder::MaybeLogAndConsumeExchangeFlags(Json::Value & json) +{ + VerifyOrReturnError(json.isMember(kExchangeFlagsKey), CHIP_NO_ERROR); + + auto flags = static_cast(json[kExchangeFlagsKey].asLargestUInt()); + if (flags) + { + + auto scopedIndent = ScopedLogIndentWithFlags("Exchange", flags); + + if (flags & to_underlying(chip::Header::ExFlagValues::kExchangeFlag_Initiator)) + { + ChipLogDetail(DataManagement, " Initiator = true"); + } + + if (flags & to_underlying(chip::Header::ExFlagValues::kExchangeFlag_AckMsg)) + { + auto ackMsgCounter = static_cast(json[kAckMsgKey].asLargestUInt()); + Log("AckMsg", ackMsgCounter); + } + + if (flags & to_underlying(chip::Header::ExFlagValues::kExchangeFlag_NeedsAck)) + { + Log("NeedsAck", "true"); + } + + if (flags & to_underlying(chip::Header::ExFlagValues::kExchangeFlag_SecuredExtension)) + { + Log("SecuredExtension", "true"); + } + + if (flags & to_underlying(chip::Header::ExFlagValues::kExchangeFlag_VendorIdPresent)) + { + Log("VendorIdPresent", "true"); + } + } + + json.removeMember(kExchangeFlagsKey); + json.removeMember(kIsInitiatorKey); + json.removeMember(kAckMsgKey); + json.removeMember(kNeedsAckKey); + return CHIP_NO_ERROR; +} + +} // namespace trace +} // namespace chip diff --git a/examples/common/tracing/TraceDecoder.h b/examples/common/tracing/TraceDecoder.h new file mode 100644 index 00000000000000..cc8dbd2374f9d5 --- /dev/null +++ b/examples/common/tracing/TraceDecoder.h @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#pragma once + +#include "TraceDecoderOptions.h" +#include "TraceHandlers.h" + +#include +#include + +namespace chip { +namespace trace { + +class TraceDecoder : public TraceStream +{ +public: + CHIP_ERROR ReadFile(const char * fp); + CHIP_ERROR ReadString(const char * str); + + void SetOptions(TraceDecoderOptions options) { mOptions = options; } + + // TraceStream Interface + void StartEvent(const std::string & label) override { ReadString(label.c_str()); } + + void AddField(const std::string & tag, const std::string & data) override + { + char buffer[2048] = {}; + snprintf(buffer, sizeof(buffer), " %s\t %s", tag.c_str(), data.c_str()); + ReadString(buffer); + } + + void FinishEvent() override {} + +private: + CHIP_ERROR LogJSON(Json::Value & value); + CHIP_ERROR LogAndConsumeProtocol(Json::Value & value); + CHIP_ERROR MaybeLogAndConsumeHeaderFlags(Json::Value & value); + CHIP_ERROR MaybeLogAndConsumeSecurityFlags(Json::Value & value); + CHIP_ERROR MaybeLogAndConsumeMessageFlags(Json::Value & value); + CHIP_ERROR MaybeLogAndConsumeExchangeFlags(Json::Value & value); + CHIP_ERROR MaybeLogAndConsumePayload(Json::Value & value, bool isResponse); + CHIP_ERROR MaybeLogAndConsumeEncryptedPayload(Json::Value & value); + CHIP_ERROR MaybeLogAndConsumeOthers(Json::Value & value); + +private: + TraceDecoderOptions mOptions; + Json::Value mJsonBuffer; +}; + +} // namespace trace +} // namespace chip diff --git a/examples/common/tracing/TraceDecoderArgumentParser.cpp b/examples/common/tracing/TraceDecoderArgumentParser.cpp new file mode 100644 index 00000000000000..530cbe62c070a1 --- /dev/null +++ b/examples/common/tracing/TraceDecoderArgumentParser.cpp @@ -0,0 +1,150 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#include "TraceDecoderArgumentParser.h" + +using namespace chip::ArgParser; + +namespace { + +TraceDecoderArgumentParser gTraceDecoderArgumentParser; + +constexpr unsigned kAppUsageLength = 64; + +// Follow the code style of command line arguments in case we need to add more options in the future. +enum +{ + kProgramOption_LogFile = 0x1000, + kProgramOption_DisableProtocolSecureChannel = 0x1001, + kProgramOption_DisableProtocolInteractionModel = 0x1002, + kProgramOption_DisableProtocolBDX = 0x1003, + kProgramOption_DisableProtocolUserDirectedCommissioning = 0x1004, + kProgramOption_DisableProtocolEcho = 0x1005, + kProgramOption_DisableMessageInitiator = 0x1006, + kProgramOption_DisableMessageResponder = 0x1007, + kProgramOption_DisableDataEncryptedPayload = 0x1008, +}; + +OptionDef sProgramOptionDefs[] = { + { "source", kArgumentRequired, kProgramOption_LogFile }, + // Protocol + { "disable-protocol-secure-channel", kNoArgument, kProgramOption_DisableProtocolSecureChannel }, + { "disable-protocol-interaction-model", kNoArgument, kProgramOption_DisableProtocolInteractionModel }, + { "disable-protocol-bdx", kNoArgument, kProgramOption_DisableProtocolBDX }, + { "disable-protocol-user-directed-commissioning", kNoArgument, kProgramOption_DisableProtocolUserDirectedCommissioning }, + { "disable-protocol-echo", kNoArgument, kProgramOption_DisableProtocolEcho }, + // Message + { "disable-message-initiator", kNoArgument, kProgramOption_DisableMessageInitiator }, + { "disable-message-responder", kNoArgument, kProgramOption_DisableMessageResponder }, + // Data + { "disable-data-encrypted-payload", kNoArgument, kProgramOption_DisableDataEncryptedPayload }, + {} +}; + +const char * sProgramOptionHelp = " --source \n" + " The log file to decode.\n" + // Protocol + " --disable-protocol-secure-channel\n" + " Disable Secure Channel protocol logging\n" + " --disable-protocol-interaction-model\n" + " Disable Interaction Model protocol logging\n" + " --disable-protocol-bdx\n" + " Disable BDX protocol logging\n" + " --disable-protocol-user-directed-commissioning\n" + " Disable User Directed Commissioning protocol logging\n" + " --disable-protocol-echo\n" + " Disable Echo protocol logging\n" + // Message + " --disable-message-initiator\n" + " Disable Initiator message logging\n" + " --disable-message-responder\n" + " Disable Responder message logging\n" + // Data + " --disable-data-encrypted-payload\n" + " Disable encrypted payload logging\n" + "\n"; + +bool HandleOption(const char * aProgram, OptionSet * aOptions, int aIdentifier, const char * aName, const char * aValue) +{ + bool retval = true; + + switch (aIdentifier) + { + // Protocol + case kProgramOption_LogFile: + gTraceDecoderArgumentParser.logFile = aValue; + break; + case kProgramOption_DisableProtocolSecureChannel: + gTraceDecoderArgumentParser.options.mEnableProtocolSecureChannel = false; + break; + case kProgramOption_DisableProtocolInteractionModel: + gTraceDecoderArgumentParser.options.mEnableProtocolInteractionModel = false; + break; + case kProgramOption_DisableProtocolBDX: + gTraceDecoderArgumentParser.options.mEnableProtocolBDX = false; + break; + case kProgramOption_DisableProtocolUserDirectedCommissioning: + gTraceDecoderArgumentParser.options.mEnableProtocolUserDirectedCommissioning = false; + break; + case kProgramOption_DisableProtocolEcho: + gTraceDecoderArgumentParser.options.mEnableProtocolEcho = false; + break; + // Message + case kProgramOption_DisableMessageInitiator: + gTraceDecoderArgumentParser.options.mEnableMessageInitiator = false; + break; + case kProgramOption_DisableMessageResponder: + gTraceDecoderArgumentParser.options.mEnableMessageResponder = false; + break; + // Data + case kProgramOption_DisableDataEncryptedPayload: + gTraceDecoderArgumentParser.options.mEnableDataEncryptedPayload = false; + break; + default: + chip::ArgParser::PrintArgError("%s: INTERNAL ERROR: Unhandled option: %s\n", aProgram, aName); + retval = false; + break; + } + + return (retval); +} + +OptionSet sProgramOptions = { HandleOption, sProgramOptionDefs, "GENERAL OPTIONS", sProgramOptionHelp }; + +OptionSet * sProgramOptionSets[] = { &sProgramOptions, nullptr, nullptr }; +} // namespace + +TraceDecoderArgumentParser & TraceDecoderArgumentParser::GetInstance() +{ + return gTraceDecoderArgumentParser; +} + +CHIP_ERROR TraceDecoderArgumentParser::ParseArguments(int argc, char * const argv[]) +{ + char usage[kAppUsageLength]; + snprintf(usage, kAppUsageLength, "Usage: %s [options]", argv[0]); + + HelpOptions helpOptions(argv[0], usage, "1.0"); + sProgramOptionSets[1] = &helpOptions; + + if (!ParseArgs(argv[0], argc, argv, sProgramOptionSets)) + { + return CHIP_ERROR_INTERNAL; + } + return CHIP_NO_ERROR; +} diff --git a/examples/common/tracing/TraceDecoderArgumentParser.h b/examples/common/tracing/TraceDecoderArgumentParser.h new file mode 100644 index 00000000000000..e620d95afde26d --- /dev/null +++ b/examples/common/tracing/TraceDecoderArgumentParser.h @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#pragma once + +#include "TraceDecoderOptions.h" + +#include + +struct TraceDecoderArgumentParser +{ + chip::trace::TraceDecoderOptions options; + const char * logFile = nullptr; + + static TraceDecoderArgumentParser & GetInstance(); + CHIP_ERROR ParseArguments(int argc, char * const argv[]); +}; diff --git a/examples/common/tracing/TraceDecoderOptions.h b/examples/common/tracing/TraceDecoderOptions.h new file mode 100644 index 00000000000000..a2e12f4fc89d3f --- /dev/null +++ b/examples/common/tracing/TraceDecoderOptions.h @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#pragma once + +#include + +namespace chip { +namespace trace { + +struct TraceDecoderOptions +{ + // Protocol + bool mEnableProtocolSecureChannel = true; + bool mEnableProtocolInteractionModel = true; + bool mEnableProtocolBDX = true; + bool mEnableProtocolUserDirectedCommissioning = true; + bool mEnableProtocolEcho = true; + + // Disable the decoding of interaction model responses + bool mEnableProtocolInteractionModelResponse = true; + + // Message + bool mEnableMessageInitiator = true; + bool mEnableMessageResponder = true; + + // Data + bool mEnableDataEncryptedPayload = true; + + bool IsProtocolEnabled(chip::Protocols::Id id) + { + switch (id.ToFullyQualifiedSpecForm()) + { + case chip::Protocols::SecureChannel::Id.ToFullyQualifiedSpecForm(): + return mEnableProtocolSecureChannel; + case chip::Protocols::InteractionModel::Id.ToFullyQualifiedSpecForm(): + return mEnableProtocolInteractionModel; + case chip::Protocols::BDX::Id.ToFullyQualifiedSpecForm(): + return mEnableProtocolBDX; + case chip::Protocols::UserDirectedCommissioning::Id.ToFullyQualifiedSpecForm(): + return mEnableProtocolUserDirectedCommissioning; + case chip::Protocols::Echo::Id.ToFullyQualifiedSpecForm(): + return mEnableProtocolEcho; + default: + return false; + } + } +}; + +} // namespace trace +} // namespace chip diff --git a/examples/common/tracing/TraceHandlers.cpp b/examples/common/tracing/TraceHandlers.cpp index 96be5808c65c54..1ffcb204882a0e 100644 --- a/examples/common/tracing/TraceHandlers.cpp +++ b/examples/common/tracing/TraceHandlers.cpp @@ -39,66 +39,62 @@ namespace { class TraceOutput { public: - ~TraceOutput() { DeleteStream(); } + ~TraceOutput() { UnregisterAllStreams(); } - void SetStream(TraceStream * stream) + void RegisterStream(TraceStream * stream) { std::lock_guard guard(mLock); - if (mStream) + mStreams.push_back(stream); + } + + void UnregisterAllStreams() + { + for (auto stream : mStreams) { - delete mStream; - mStream = nullptr; + delete stream; } - mStream = stream; + mStreams.clear(); } - void DeleteStream() { SetStream(nullptr); } - void StartEvent(const std::string & label) { std::lock_guard guard(mLock); - if (mStream) + for (auto stream : mStreams) { - mStream->StartEvent(label); + stream->StartEvent(label); } } void AddField(const std::string & tag, const std::string & data) { std::lock_guard guard(mLock); - if (mStream) + for (auto stream : mStreams) { - mStream->AddField(tag, data); + stream->AddField(tag, data); } } void FinishEvent() { std::lock_guard guard(mLock); - if (mStream) + for (auto stream : mStreams) { - mStream->FinishEvent(); + stream->FinishEvent(); } } bool HasStreamAvailable() const { std::lock_guard guard(mLock); - return (mStream != nullptr); + return (mStreams.size()); } private: mutable std::mutex mLock; - TraceStream * mStream = nullptr; -}; - -struct TraceHandlerContext -{ - TraceOutput * sink; + std::vector mStreams; }; -TraceOutput gTraceOutput; -TraceHandlerContext gTraceHandlerContext = { .sink = &gTraceOutput }; +TraceOutput gTraceOutputs; std::string AsJsonKey(const std::string & key, const std::string & value, bool prepend_comma) { @@ -247,8 +243,7 @@ std::string PreparedSecureMessageDataToJson(const TracePreparedSecureMessageData void SecureMessageSentHandler(const TraceSecureMessageSentData * eventData) { - TraceOutput * sink = gTraceHandlerContext.sink; - if (!sink->HasStreamAvailable()) + if (!gTraceOutputs.HasStreamAvailable()) { return; } @@ -263,15 +258,14 @@ void SecureMessageSentHandler(const TraceSecureMessageSentData * eventData) jsonBody += AsFirstJsonKey("payload_hex", AsJsonHexString(eventData->packetPayload, eventData->packetSize)); jsonBody += "}"; - sink->StartEvent(std::string{ kTraceMessageEvent } + "." + kTraceMessageSentDataFormat); - sink->AddField("json", jsonBody); - sink->FinishEvent(); + gTraceOutputs.StartEvent(std::string{ kTraceMessageEvent } + "." + kTraceMessageSentDataFormat); + gTraceOutputs.AddField("json", jsonBody); + gTraceOutputs.FinishEvent(); } void SecureMessageReceivedHandler(const TraceSecureMessageReceivedData * eventData) { - TraceOutput * sink = gTraceHandlerContext.sink; - if (!sink->HasStreamAvailable()) + if (!gTraceOutputs.HasStreamAvailable()) { return; } @@ -288,37 +282,35 @@ void SecureMessageReceivedHandler(const TraceSecureMessageReceivedData * eventDa jsonBody += AsFirstJsonKey("payload_hex", AsJsonHexString(eventData->packetPayload, eventData->packetSize)); jsonBody += "}"; - sink->StartEvent(std::string{ kTraceMessageEvent } + "." + kTraceMessageReceivedDataFormat); - sink->AddField("json", jsonBody); - sink->FinishEvent(); + gTraceOutputs.StartEvent(std::string{ kTraceMessageEvent } + "." + kTraceMessageReceivedDataFormat); + gTraceOutputs.AddField("json", jsonBody); + gTraceOutputs.FinishEvent(); // Note that `eventData->session` is currently ignored. } void PreparedMessageSentHandler(const TracePreparedSecureMessageData * eventData) { - TraceOutput * sink = gTraceHandlerContext.sink; - if (!sink->HasStreamAvailable()) + if (!gTraceOutputs.HasStreamAvailable()) { return; } - sink->StartEvent(std::string{ kTraceMessageEvent } + "." + kTracePreparedMessageSentDataFormat); - sink->AddField("json", PreparedSecureMessageDataToJson(eventData, "destination")); - sink->FinishEvent(); + gTraceOutputs.StartEvent(std::string{ kTraceMessageEvent } + "." + kTracePreparedMessageSentDataFormat); + gTraceOutputs.AddField("json", PreparedSecureMessageDataToJson(eventData, "destination")); + gTraceOutputs.FinishEvent(); } void PreparedMessageReceivedHandler(const TracePreparedSecureMessageData * eventData) { - TraceOutput * sink = gTraceHandlerContext.sink; - if (!sink->HasStreamAvailable()) + if (!gTraceOutputs.HasStreamAvailable()) { return; } - sink->StartEvent(std::string{ kTraceMessageEvent } + "." + kTracePreparedMessageReceivedDataFormat); - sink->AddField("json", PreparedSecureMessageDataToJson(eventData, "source")); - sink->FinishEvent(); + gTraceOutputs.StartEvent(std::string{ kTraceMessageEvent } + "." + kTracePreparedMessageReceivedDataFormat); + gTraceOutputs.AddField("json", PreparedSecureMessageDataToJson(eventData, "source")); + gTraceOutputs.FinishEvent(); } void TraceHandler(const char * type, const void * data, size_t size) @@ -343,9 +335,9 @@ void TraceHandler(const char * type, const void * data, size_t size) } // namespace -void SetTraceStream(TraceStream * stream) +void AddTraceStream(TraceStream * stream) { - gTraceOutput.SetStream(stream); + gTraceOutputs.RegisterStream(stream); } void InitTrace() @@ -355,7 +347,7 @@ void InitTrace() void DeInitTrace() { - gTraceOutput.DeleteStream(); + gTraceOutputs.UnregisterAllStreams(); } } // namespace trace diff --git a/examples/common/tracing/TraceHandlers.h b/examples/common/tracing/TraceHandlers.h index fb60e3e4db316d..f84923490a17be 100644 --- a/examples/common/tracing/TraceHandlers.h +++ b/examples/common/tracing/TraceHandlers.h @@ -16,6 +16,8 @@ * */ +#pragma once + #include #include #include @@ -88,7 +90,7 @@ class TraceStreamFile : public TraceStream std::ofstream mFile; }; -void SetTraceStream(TraceStream * stream); +void AddTraceStream(TraceStream * stream); void InitTrace(); void DeInitTrace(); diff --git a/examples/common/tracing/args.gni b/examples/common/tracing/args.gni new file mode 100644 index 00000000000000..a76f3e8996ce3c --- /dev/null +++ b/examples/common/tracing/args.gni @@ -0,0 +1,24 @@ +# Copyright (c) 2020 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. + +import("//build_overrides/chip.gni") + +import("${chip_root}/config/standalone/args.gni") + +chip_device_project_config_include = "" +chip_project_config_include = "" +chip_system_project_config_include = "" + +chip_project_config_include_dirs = [ "${chip_root}/examples/chip-tool/include" ] +chip_project_config_include_dirs += [ "${chip_root}/config/standalone" ] diff --git a/examples/common/tracing/build_overrides b/examples/common/tracing/build_overrides new file mode 120000 index 00000000000000..e578e73312ebd1 --- /dev/null +++ b/examples/common/tracing/build_overrides @@ -0,0 +1 @@ +../../build_overrides \ No newline at end of file diff --git a/examples/common/tracing/decoder/TraceDecoderProtocols.cpp b/examples/common/tracing/decoder/TraceDecoderProtocols.cpp new file mode 100644 index 00000000000000..18da44d7578181 --- /dev/null +++ b/examples/common/tracing/decoder/TraceDecoderProtocols.cpp @@ -0,0 +1,166 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#include "TraceDecoderProtocols.h" + +#include "bdx/Decoder.h" +#include "echo/Decoder.h" +#include "interaction_model/Decoder.h" +#include "secure_channel/Decoder.h" +#include "udc/Decoder.h" + +#include +#include +#include + +namespace { + +constexpr const char * kUnknown = "Unknown"; + +void ENFORCE_FORMAT(1, 2) TLVPrettyPrinter(const char * aFormat, ...) +{ + va_list args; + va_start(args, aFormat); + vprintf(aFormat, args); + va_end(args); +} +} // namespace + +namespace chip { +namespace trace { + +const char * ToProtocolName(uint16_t protocolId) +{ + const char * name = nullptr; + + auto protocol = Protocols::Id(VendorId::Common, protocolId); + if (protocol == Protocols::SecureChannel::Id) + { + name = secure_channel::ToProtocolName(); + } + else if (protocol == Protocols::InteractionModel::Id) + { + name = interaction_model::ToProtocolName(); + } + else if (protocol == Protocols::BDX::Id) + { + name = bdx::ToProtocolName(); + } + else if (protocol == Protocols::UserDirectedCommissioning::Id) + { + name = udc::ToProtocolName(); + } + else if (protocol == Protocols::Echo::Id) + { + name = echo::ToProtocolName(); + } + else + { + name = kUnknown; + } + + return name; +} + +const char * ToProtocolMessageTypeName(uint16_t protocolId, uint8_t protocolCode) +{ + const char * name = nullptr; + + auto protocol = Protocols::Id(VendorId::Common, protocolId); + if (protocol == Protocols::SecureChannel::Id) + { + name = secure_channel::ToProtocolMessageTypeName(protocolCode); + } + else if (protocol == Protocols::InteractionModel::Id) + { + name = interaction_model::ToProtocolMessageTypeName(protocolCode); + } + else if (protocol == Protocols::BDX::Id) + { + name = bdx::ToProtocolMessageTypeName(protocolCode); + } + else if (protocol == Protocols::UserDirectedCommissioning::Id) + { + name = udc::ToProtocolMessageTypeName(protocolCode); + } + else if (protocol == Protocols::Echo::Id) + { + name = echo::ToProtocolMessageTypeName(protocolCode); + } + else + { + name = kUnknown; + } + + return name; +} + +CHIP_ERROR LogAsProtocolMessage(uint16_t protocolId, uint8_t protocolCode, const char * payload, size_t len, + bool interactionModelResponse) +{ + constexpr uint16_t kMaxPayloadLen = 2048; + uint8_t data[kMaxPayloadLen] = {}; + size_t dataLen = Encoding::HexToBytes(payload, len, data, sizeof(data)); + VerifyOrReturnError(dataLen != 0, CHIP_ERROR_INVALID_ARGUMENT); + + CHIP_ERROR err = CHIP_NO_ERROR; + + auto protocol = Protocols::Id(VendorId::Common, protocolId); + if (protocol == Protocols::SecureChannel::Id) + { + err = secure_channel::LogAsProtocolMessage(protocolCode, data, dataLen); + } + else if (protocol == Protocols::InteractionModel::Id) + { + err = interaction_model::LogAsProtocolMessage(protocolCode, data, dataLen, interactionModelResponse); + } + else if (protocol == Protocols::BDX::Id) + { + err = bdx::LogAsProtocolMessage(protocolCode, data, dataLen); + } + else if (protocol == Protocols::UserDirectedCommissioning::Id) + { + err = udc::LogAsProtocolMessage(protocolCode, data, dataLen); + } + else if (protocol == Protocols::Echo::Id) + { + err = echo::LogAsProtocolMessage(protocolCode, data, dataLen); + } + else + { + err = CHIP_ERROR_NOT_IMPLEMENTED; + } + + if (CHIP_NO_ERROR != err) + { + ChipLogError(DataManagement, "Error: %s", chip::ErrorStr(err)); + TLV::TLVReader reader; + reader.Init(data, dataLen); + ReturnErrorOnFailure(reader.Next()); + err = TLV::Debug::Dump(reader, TLVPrettyPrinter); + if (CHIP_END_OF_TLV == err) + { + err = CHIP_NO_ERROR; + } + } + + return err; +} + +} // namespace trace +} // namespace chip diff --git a/examples/common/tracing/decoder/TraceDecoderProtocols.h b/examples/common/tracing/decoder/TraceDecoderProtocols.h new file mode 100644 index 00000000000000..ae387c82e007df --- /dev/null +++ b/examples/common/tracing/decoder/TraceDecoderProtocols.h @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#pragma once + +#include + +#include +#include + +namespace chip { +namespace trace { + +const char * ToProtocolName(uint16_t protocolId); + +const char * ToProtocolMessageTypeName(uint16_t protocolId, uint8_t protocolCode); + +CHIP_ERROR LogAsProtocolMessage(uint16_t protocolId, uint8_t protocolCode, const char * payload, size_t len, + bool interactionModelResponse); + +} // namespace trace +} // namespace chip diff --git a/examples/common/tracing/decoder/bdx/Decoder.cpp b/examples/common/tracing/decoder/bdx/Decoder.cpp new file mode 100644 index 00000000000000..e3db318449668d --- /dev/null +++ b/examples/common/tracing/decoder/bdx/Decoder.cpp @@ -0,0 +1,112 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#include "Decoder.h" + +#include + +namespace { +constexpr const char * kProtocolName = "Bulk Data Exchange"; + +constexpr const char * kUnknown = "Unknown"; +constexpr const char * kSendInit = "Send Init"; +constexpr const char * kSendAccept = "Send Accept"; +constexpr const char * kReceiveInit = "Receive Init"; +constexpr const char * kReceiveAccept = "Receive Accept"; +constexpr const char * kBlockQuery = "Block Query"; +constexpr const char * kBlock = "Block"; +constexpr const char * kBlockEOF = "Block End Of File"; +constexpr const char * kBlockAck = "Block Ack"; +constexpr const char * kBlockAckEOF = "Block Ack End Of File"; +constexpr const char * kBlockQueryWithSkip = "Block Query With Skip"; +} // namespace + +using MessageType = chip::bdx::MessageType; + +namespace chip { +namespace trace { +namespace bdx { + +const char * ToProtocolName() +{ + return kProtocolName; +} + +const char * ToProtocolMessageTypeName(uint8_t protocolCode) +{ + switch (protocolCode) + { + case to_underlying(MessageType::SendInit): + return kSendInit; + case to_underlying(MessageType::SendAccept): + return kSendAccept; + case to_underlying(MessageType::ReceiveInit): + return kReceiveInit; + case to_underlying(MessageType::ReceiveAccept): + return kReceiveAccept; + case to_underlying(MessageType::BlockQuery): + return kBlockQuery; + case to_underlying(MessageType::Block): + return kBlock; + case to_underlying(MessageType::BlockEOF): + return kBlockEOF; + case to_underlying(MessageType::BlockAck): + return kBlockAck; + case to_underlying(MessageType::BlockAckEOF): + return kBlockAckEOF; + case to_underlying(MessageType::BlockQueryWithSkip): + return kBlockQueryWithSkip; + default: + return kUnknown; + } +} + +CHIP_ERROR LogAsProtocolMessage(uint8_t protocolCode, const uint8_t * data, size_t len) +{ + // TODO Implement messages decoding + + switch (protocolCode) + { + case to_underlying(MessageType::SendInit): + return CHIP_ERROR_NOT_IMPLEMENTED; + case to_underlying(MessageType::SendAccept): + return CHIP_ERROR_NOT_IMPLEMENTED; + case to_underlying(MessageType::ReceiveInit): + return CHIP_ERROR_NOT_IMPLEMENTED; + case to_underlying(MessageType::ReceiveAccept): + return CHIP_ERROR_NOT_IMPLEMENTED; + case to_underlying(MessageType::BlockQuery): + return CHIP_ERROR_NOT_IMPLEMENTED; + case to_underlying(MessageType::Block): + return CHIP_ERROR_NOT_IMPLEMENTED; + case to_underlying(MessageType::BlockEOF): + return CHIP_ERROR_NOT_IMPLEMENTED; + case to_underlying(MessageType::BlockAck): + return CHIP_ERROR_NOT_IMPLEMENTED; + case to_underlying(MessageType::BlockAckEOF): + return CHIP_ERROR_NOT_IMPLEMENTED; + case to_underlying(MessageType::BlockQueryWithSkip): + return CHIP_ERROR_NOT_IMPLEMENTED; + default: + return CHIP_ERROR_NOT_IMPLEMENTED; + } +} + +} // namespace bdx +} // namespace trace +} // namespace chip diff --git a/examples/common/tracing/decoder/bdx/Decoder.h b/examples/common/tracing/decoder/bdx/Decoder.h new file mode 100644 index 00000000000000..ba93a73cf23819 --- /dev/null +++ b/examples/common/tracing/decoder/bdx/Decoder.h @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#pragma once + +#include + +#include +#include + +namespace chip { +namespace trace { +namespace bdx { + +const char * ToProtocolName(); + +const char * ToProtocolMessageTypeName(uint8_t protocolCode); + +CHIP_ERROR LogAsProtocolMessage(uint8_t protocolCode, const uint8_t * data, size_t len); + +} // namespace bdx +} // namespace trace +} // namespace chip diff --git a/examples/common/tracing/decoder/echo/Decoder.cpp b/examples/common/tracing/decoder/echo/Decoder.cpp new file mode 100644 index 00000000000000..0d3240e78456c0 --- /dev/null +++ b/examples/common/tracing/decoder/echo/Decoder.cpp @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#include "Decoder.h" + +#include + +namespace { +constexpr const char * kProtocolName = "Echo"; + +constexpr const char * kUnknown = "Unknown"; +constexpr const char * kEchoRequest = "Echo Request"; +constexpr const char * kEchoResponse = "Echo Response"; +} // namespace + +using MessageType = chip::Protocols::Echo::MsgType; + +namespace chip { +namespace trace { +namespace echo { + +const char * ToProtocolName() +{ + return kProtocolName; +} + +const char * ToProtocolMessageTypeName(uint8_t protocolCode) +{ + switch (protocolCode) + { + case to_underlying(MessageType::EchoRequest): + return kEchoRequest; + case to_underlying(MessageType::EchoResponse): + return kEchoResponse; + default: + return kUnknown; + } +} + +CHIP_ERROR LogAsProtocolMessage(uint8_t protocolCode, const uint8_t * data, size_t len) +{ + // TODO Implement messages decoding + + switch (protocolCode) + { + case to_underlying(MessageType::EchoRequest): + return CHIP_ERROR_NOT_IMPLEMENTED; + case to_underlying(MessageType::EchoResponse): + return CHIP_ERROR_NOT_IMPLEMENTED; + default: + return CHIP_ERROR_NOT_IMPLEMENTED; + } +} + +} // namespace echo +} // namespace trace +} // namespace chip diff --git a/examples/common/tracing/decoder/echo/Decoder.h b/examples/common/tracing/decoder/echo/Decoder.h new file mode 100644 index 00000000000000..c0c040807d24dd --- /dev/null +++ b/examples/common/tracing/decoder/echo/Decoder.h @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#pragma once + +#include + +#include +#include + +namespace chip { +namespace trace { +namespace echo { + +const char * ToProtocolName(); + +const char * ToProtocolMessageTypeName(uint8_t protocolCode); + +CHIP_ERROR LogAsProtocolMessage(uint8_t protocolCode, const uint8_t * data, size_t len); + +} // namespace echo +} // namespace trace +} // namespace chip diff --git a/examples/common/tracing/decoder/interaction_model/Decoder.cpp b/examples/common/tracing/decoder/interaction_model/Decoder.cpp new file mode 100644 index 00000000000000..5400b773418666 --- /dev/null +++ b/examples/common/tracing/decoder/interaction_model/Decoder.cpp @@ -0,0 +1,281 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#include "Decoder.h" +#include "DecoderCustomLog.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace { +constexpr const char * kProtocolName = "Interaction Model"; + +constexpr const char * kUnknown = "Unknown"; +constexpr const char * kStatusResponse = "Status Response"; +constexpr const char * kReadRequest = "Read Request"; +constexpr const char * kSubscribeRequest = "Subscribe Request"; +constexpr const char * kSubscribeResponse = "Subscribe Response"; +constexpr const char * kReportData = "Report Data"; +constexpr const char * kWriteRequest = "Write Request"; +constexpr const char * kWriteResponse = "Write Response"; +constexpr const char * kInvokeCommandRequest = "InvokeCommandRequest"; +constexpr const char * kInvokeCommandResponse = "InvokeCommandResponse"; +constexpr const char * kTimedRequest = "Timed Request"; + +} // namespace + +using MessageType = chip::Protocols::InteractionModel::MsgType; + +namespace chip { +namespace trace { +namespace interaction_model { + +CHIP_ERROR DecodeStatusResponse(TLV::TLVReader & reader, bool decode); +CHIP_ERROR DecodeReadRequest(TLV::TLVReader & reader, bool decode); +CHIP_ERROR DecodeSubscribeRequest(TLV::TLVReader & reader, bool decode); +CHIP_ERROR DecodeSubscribeResponse(TLV::TLVReader & reader, bool decode); +CHIP_ERROR DecodeReportData(TLV::TLVReader & reader, bool decode); +CHIP_ERROR DecodeWriteRequest(TLV::TLVReader & reader, bool decode); +CHIP_ERROR DecodeWriteResponse(TLV::TLVReader & reader, bool decode); +CHIP_ERROR DecodeInvokeCommandRequest(TLV::TLVReader & reader, bool decode); +CHIP_ERROR DecodeInvokeCommandResponse(TLV::TLVReader & reader, bool decode); +CHIP_ERROR DecodeTimedRequest(TLV::TLVReader & reader, bool decode); + +const char * ToProtocolName() +{ + return kProtocolName; +} + +const char * ToProtocolMessageTypeName(uint8_t protocolCode) +{ + switch (protocolCode) + { + case to_underlying(MessageType::StatusResponse): + return kStatusResponse; + case to_underlying(MessageType::ReadRequest): + return kReadRequest; + case to_underlying(MessageType::SubscribeRequest): + return kSubscribeRequest; + case to_underlying(MessageType::SubscribeResponse): + return kSubscribeResponse; + case to_underlying(MessageType::ReportData): + return kReportData; + case to_underlying(MessageType::WriteRequest): + return kWriteRequest; + case to_underlying(MessageType::WriteResponse): + return kWriteResponse; + case to_underlying(MessageType::InvokeCommandRequest): + return kInvokeCommandRequest; + case to_underlying(MessageType::InvokeCommandResponse): + return kInvokeCommandResponse; + case to_underlying(MessageType::TimedRequest): + return kTimedRequest; + default: + return kUnknown; + } +} + +CHIP_ERROR LogAsProtocolMessage(uint8_t protocolCode, const uint8_t * data, size_t len, bool decodeResponse) +{ + TLV::TLVReader reader; + reader.Init(data, len); + + switch (protocolCode) + { + case to_underlying(MessageType::StatusResponse): + return DecodeStatusResponse(reader, decodeResponse); + case to_underlying(MessageType::ReadRequest): + return DecodeReadRequest(reader, decodeResponse); + case to_underlying(MessageType::SubscribeRequest): + return DecodeSubscribeRequest(reader, decodeResponse); + case to_underlying(MessageType::SubscribeResponse): + return DecodeSubscribeResponse(reader, decodeResponse); + case to_underlying(MessageType::ReportData): + return DecodeReportData(reader, decodeResponse); + case to_underlying(MessageType::WriteRequest): + return DecodeWriteRequest(reader, decodeResponse); + case to_underlying(MessageType::WriteResponse): + return DecodeWriteResponse(reader, decodeResponse); + case to_underlying(MessageType::InvokeCommandRequest): + return DecodeInvokeCommandRequest(reader, decodeResponse); + case to_underlying(MessageType::InvokeCommandResponse): + return DecodeInvokeCommandResponse(reader, decodeResponse); + case to_underlying(MessageType::TimedRequest): + return DecodeTimedRequest(reader, decodeResponse); + default: + return CHIP_ERROR_NOT_IMPLEMENTED; + } +} + +CHIP_ERROR DecodeStatusResponse(TLV::TLVReader & reader, bool decode) +{ +#if CHIP_CONFIG_IM_ENABLE_SCHEMA_CHECK + if (decode) + { + app::StatusResponseMessage::Parser parser; + ReturnErrorOnFailure(parser.Init(reader)); + return parser.CheckSchemaValidity(); + } +#endif + + return CHIP_NO_ERROR; +} + +CHIP_ERROR DecodeReadRequest(TLV::TLVReader & reader, bool decode) +{ +#if CHIP_CONFIG_IM_ENABLE_SCHEMA_CHECK + if (decode) + { + app::ReadRequestMessage::Parser parser; + ReturnErrorOnFailure(parser.Init(reader)); + return parser.CheckSchemaValidity(); + } +#endif + + return CHIP_NO_ERROR; +} + +CHIP_ERROR DecodeSubscribeRequest(TLV::TLVReader & reader, bool decode) +{ +#if CHIP_CONFIG_IM_ENABLE_SCHEMA_CHECK + if (decode) + { + app::SubscribeRequestMessage::Parser parser; + ReturnErrorOnFailure(parser.Init(reader)); + return parser.CheckSchemaValidity(); + } +#endif + + return CHIP_NO_ERROR; +} + +CHIP_ERROR DecodeSubscribeResponse(TLV::TLVReader & reader, bool decode) +{ +#if CHIP_CONFIG_IM_ENABLE_SCHEMA_CHECK + if (decode) + { + app::SubscribeResponseMessage::Parser parser; + ReturnErrorOnFailure(parser.Init(reader)); + return parser.CheckSchemaValidity(); + } +#endif + + return CHIP_NO_ERROR; +} + +CHIP_ERROR DecodeReportData(TLV::TLVReader & reader, bool decode) +{ + ReturnErrorOnFailure(MaybeDecodeNestedReadResponse(reader.GetReadPoint(), reader.GetTotalLength())); + +#if CHIP_CONFIG_IM_ENABLE_SCHEMA_CHECK + if (decode) + { + app::ReportDataMessage::Parser parser; + ReturnErrorOnFailure(parser.Init(reader)); + return parser.CheckSchemaValidity(); + } +#endif + + return CHIP_NO_ERROR; +} + +CHIP_ERROR DecodeWriteRequest(TLV::TLVReader & reader, bool decode) +{ +#if CHIP_CONFIG_IM_ENABLE_SCHEMA_CHECK + if (decode) + { + app::WriteRequestMessage::Parser parser; + ReturnErrorOnFailure(parser.Init(reader)); + return parser.CheckSchemaValidity(); + } +#endif + + return CHIP_NO_ERROR; +} + +CHIP_ERROR DecodeWriteResponse(TLV::TLVReader & reader, bool decode) +{ +#if CHIP_CONFIG_IM_ENABLE_SCHEMA_CHECK + if (decode) + { + app::WriteResponseMessage::Parser parser; + ReturnErrorOnFailure(parser.Init(reader)); + return parser.CheckSchemaValidity(); + } +#endif + + return CHIP_NO_ERROR; +} + +CHIP_ERROR DecodeInvokeCommandRequest(TLV::TLVReader & reader, bool decode) +{ + ReturnErrorOnFailure(MaybeDecodeNestedCommandRequest(reader.GetReadPoint(), reader.GetTotalLength())); + +#if CHIP_CONFIG_IM_ENABLE_SCHEMA_CHECK + if (decode) + { + app::InvokeRequestMessage::Parser parser; + ReturnErrorOnFailure(parser.Init(reader)); + return parser.CheckSchemaValidity(); + } +#endif + + return CHIP_NO_ERROR; +} + +CHIP_ERROR DecodeInvokeCommandResponse(TLV::TLVReader & reader, bool decode) +{ + ReturnErrorOnFailure(MaybeDecodeNestedCommandResponse(reader.GetReadPoint(), reader.GetTotalLength())); + +#if CHIP_CONFIG_IM_ENABLE_SCHEMA_CHECK + if (decode) + { + app::InvokeResponseMessage::Parser parser; + ReturnErrorOnFailure(parser.Init(reader)); + return parser.CheckSchemaValidity(); + } +#endif + + return CHIP_NO_ERROR; +} + +CHIP_ERROR DecodeTimedRequest(TLV::TLVReader & reader, bool decode) +{ +#if CHIP_CONFIG_IM_ENABLE_SCHEMA_CHECK + if (decode) + { + app::TimedRequestMessage::Parser parser; + ReturnErrorOnFailure(parser.Init(reader)); + return parser.CheckSchemaValidity(); + } +#endif + + return CHIP_NO_ERROR; +} + +} // namespace interaction_model +} // namespace trace +} // namespace chip diff --git a/examples/common/tracing/decoder/interaction_model/Decoder.h b/examples/common/tracing/decoder/interaction_model/Decoder.h new file mode 100644 index 00000000000000..d7f313d71c4286 --- /dev/null +++ b/examples/common/tracing/decoder/interaction_model/Decoder.h @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#pragma once + +#include + +#include +#include + +namespace chip { +namespace trace { +namespace interaction_model { + +const char * ToProtocolName(); + +const char * ToProtocolMessageTypeName(uint8_t protocolCode); + +CHIP_ERROR LogAsProtocolMessage(uint8_t protocolCode, const uint8_t * data, size_t len, bool decodeResponse); + +} // namespace interaction_model +} // namespace trace +} // namespace chip diff --git a/examples/common/tracing/decoder/interaction_model/DecoderCustomLog.cpp b/examples/common/tracing/decoder/interaction_model/DecoderCustomLog.cpp new file mode 100644 index 00000000000000..e516a74c4ce93e --- /dev/null +++ b/examples/common/tracing/decoder/interaction_model/DecoderCustomLog.cpp @@ -0,0 +1,496 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#include "DecoderCustomLog.h" + +#include "../logging/Log.h" + +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include + +#include +#include + +namespace { +template +bool IsTag(const chip::TLV::TLVReader & reader, T tag) +{ + return chip::to_underlying(tag) == chip::TLV::TagNumFromTag(reader.GetTag()); +} +} // namespace + +namespace chip { +namespace trace { +namespace interaction_model { + +using namespace logging; + +CHIP_ERROR LogCertificateChainResponse(TLV::TLVReader & reader) +{ + app::Clusters::OperationalCredentials::Commands::CertificateChainResponse::DecodableType value; + ReturnErrorOnFailure(chip::app::DataModel::Decode(reader, value)); + + LogCertificate("DAC/PAI", value.certificate); + + return CHIP_NO_ERROR; +} + +CHIP_ERROR LogCertificationDeclaration(const ByteSpan & cd) +{ + auto scopedIndent = ScopedLogIndent("Certification Declaration"); + + // TODO Add an option to load a TrustStore so the subjectKeyId can be extracted from the CMS envelope in order + // to select the proper public key. + ByteSpan cdContentOut; + uint8_t pubKey[] = { 0x04, 0x3c, 0x39, 0x89, 0x22, 0x45, 0x2b, 0x55, 0xca, 0xf3, 0x89, 0xc2, 0x5b, 0xd1, 0xbc, 0xa4, 0x65, + 0x69, 0x52, 0xcc, 0xb9, 0x0e, 0x88, 0x69, 0x24, 0x9a, 0xd8, 0x47, 0x46, 0x53, 0x01, 0x4c, 0xbf, 0x95, + 0xd6, 0x87, 0x96, 0x5e, 0x03, 0x6b, 0x52, 0x1c, 0x51, 0x03, 0x7e, 0x6b, 0x8c, 0xed, 0xef, 0xca, 0x1e, + 0xb4, 0x40, 0x46, 0x69, 0x4f, 0xa0, 0x88, 0x82, 0xee, 0xd6, 0x51, 0x9d, 0xec, 0xba }; + + ReturnErrorOnFailure(Credentials::CMS_Verify(cd, Crypto::P256PublicKey(pubKey), cdContentOut)); + + constexpr uint8_t kTag_FormatVersion = 0; /**< [ unsigned int ] Format version. */ + constexpr uint8_t kTag_VendorId = 1; /**< [ unsigned int ] Vedor identifier. */ + constexpr uint8_t kTag_ProductIdArray = 2; /**< [ array ] Product identifiers (each is unsigned int). */ + constexpr uint8_t kTag_DeviceTypeId = 3; /**< [ unsigned int ] Device Type identifier. */ + constexpr uint8_t kTag_CertificateId = 4; /**< [ UTF-8 string, length 19 ] Certificate identifier. */ + constexpr uint8_t kTag_SecurityLevel = 5; /**< [ unsigned int ] Security level. */ + constexpr uint8_t kTag_SecurityInformation = 6; /**< [ unsigned int ] Security information. */ + constexpr uint8_t kTag_VersionNumber = 7; /**< [ unsigned int ] Version number. */ + constexpr uint8_t kTag_CertificationType = 8; /**< [ unsigned int ] Certification Type. */ + constexpr uint8_t kTag_DACOriginVendorId = 9; /**< [ unsigned int, optional ] DAC origin vendor identifier. */ + constexpr uint8_t kTag_DACOriginProductId = 10; /**< [ unsigned int, optional ] DAC origin product identifier. */ + constexpr uint8_t kTag_AuthorizedPAAList = 11; /**< [ array, optional ] Authorized PAA List. */ + + TLV::TLVReader reader; + reader.Init(cdContentOut); + + TLV::TLVType containerType = TLV::kTLVType_Structure; + ReturnErrorOnFailure(reader.Next(containerType, TLV::AnonymousTag())); + ReturnErrorOnFailure(reader.EnterContainer(containerType)); + + uint16_t value; + CHIP_ERROR err = CHIP_NO_ERROR; + while (CHIP_NO_ERROR == (err = reader.Next())) + { + switch (TLV::TagNumFromTag(reader.GetTag())) + { + case kTag_FormatVersion: + ReturnErrorOnFailure(reader.Get(value)); + Log("Format Version", value); + break; + case kTag_VendorId: + ReturnErrorOnFailure(reader.Get(value)); + Log("Vendor Id", value); + break; + case kTag_ProductIdArray: { + TLV::TLVType arrayType = TLV::kTLVType_Array; + ReturnErrorOnFailure(reader.EnterContainer(arrayType)); + auto scopedProductIndent = ScopedLogIndent("Product Ids"); + while (CHIP_NO_ERROR == (err = reader.Next())) + { + ReturnErrorOnFailure(reader.Get(value)); + Log("Product Id", value); + } + ReturnErrorOnFailure(reader.ExitContainer(arrayType)); + break; + } + case kTag_DeviceTypeId: + ReturnErrorOnFailure(reader.Get(value)); + Log("Device Type Id", value); + break; + case kTag_CertificateId: { + CharSpan str; + ReturnErrorOnFailure(reader.Get(str)); + Log("Certificate Id", str); + break; + } + case kTag_SecurityLevel: + ReturnErrorOnFailure(reader.Get(value)); + Log("Security Level", value); + break; + case kTag_SecurityInformation: + ReturnErrorOnFailure(reader.Get(value)); + Log("Security Information", value); + break; + case kTag_VersionNumber: + ReturnErrorOnFailure(reader.Get(value)); + Log("Version Number", value); + break; + case kTag_CertificationType: + ReturnErrorOnFailure(reader.Get(value)); + Log("Certification Type", value); + break; + case kTag_DACOriginVendorId: + ReturnErrorOnFailure(reader.Get(value)); + Log("DAC Origin Vendor Id", value); + break; + case kTag_DACOriginProductId: + ReturnErrorOnFailure(reader.Get(value)); + Log("DAC Origin Product Id", value); + break; + case kTag_AuthorizedPAAList: { + TLV::TLVType arrayType = TLV::kTLVType_Array; + ReturnErrorOnFailure(reader.EnterContainer(arrayType)); + auto scopedAuthorizedPAAIndent = ScopedLogIndent("Authorized PAAs"); + while (CHIP_NO_ERROR == (err = reader.Next())) + { + ByteSpan str; + ReturnErrorOnFailure(reader.Get(str)); + Log("Product Id", str); + } + ReturnErrorOnFailure(reader.ExitContainer(arrayType)); + break; + } + default: + Log(""); + break; + } + } + + ReturnErrorOnFailure(reader.ExitContainer(containerType)); + + return CHIP_NO_ERROR; +} + +CHIP_ERROR LogAttestationResponse(TLV::TLVReader & reader) +{ + app::Clusters::OperationalCredentials::Commands::AttestationResponse::DecodableType value; + ReturnErrorOnFailure(chip::app::DataModel::Decode(reader, value)); + + ByteSpan certificationDeclaration; + ByteSpan attestationNonce; + uint32_t timestamp; + ByteSpan firmwareInfo; + Credentials::DeviceAttestationVendorReservedDeconstructor vendorReserved; + + ReturnErrorOnFailure(Credentials::DeconstructAttestationElements(value.attestationElements, certificationDeclaration, + attestationNonce, timestamp, firmwareInfo, vendorReserved)); + auto scopedIndent = ScopedLogIndentWithSize("Attestation Elements", value.attestationElements.size()); + ReturnErrorOnFailure(LogCertificationDeclaration(certificationDeclaration)); + Log("Attestation Nonce", attestationNonce); + Log("Timestamp", timestamp); + Log("Firmware Info", firmwareInfo); + if (vendorReserved.GetNumberOfElements()) + { + auto scopedVendorIndent = ScopedLogIndent("Vendors Reserved"); + Credentials::VendorReservedElement element; + while (vendorReserved.GetNextVendorReservedElement(element) == CHIP_NO_ERROR) + { + auto scopedVendorReservedIndent = ScopedLogIndent("Vendor Reserved"); + Log("Vendor Id", element.vendorId); + Log("Profile Number", element.profileNum); + Log("Profile Data", element.vendorReservedData); + } + } + + return CHIP_NO_ERROR; +} + +CHIP_ERROR LogCSRResponse(TLV::TLVReader & reader) +{ + app::Clusters::OperationalCredentials::Commands::CSRResponse::DecodableType value; + ReturnErrorOnFailure(chip::app::DataModel::Decode(reader, value)); + + ByteSpan csr; + ByteSpan csrNonce; + ByteSpan vendorReserved1; + ByteSpan vendorReserved2; + ByteSpan vendorReserved3; + + ReturnErrorOnFailure(Credentials::DeconstructNOCSRElements(value.NOCSRElements, csr, csrNonce, vendorReserved1, vendorReserved2, + vendorReserved3)); + + { + auto scopedIndent = ScopedLogIndent("NOCSR Elements"); + Log("CSR", csr); + Log("CSRNonce", csrNonce); + Log("Vendor Reserved 1", vendorReserved1); + Log("Vendor Reserved 2", vendorReserved2); + Log("Vendor Reserved 3", vendorReserved3); + } + + LogCertificateRequest("CSR", csr); + + return CHIP_NO_ERROR; +} + +CHIP_ERROR LogAddNOC(TLV::TLVReader & reader) +{ + app::Clusters::OperationalCredentials::Commands::AddNOC::DecodableType value; + ReturnErrorOnFailure(chip::app::DataModel::Decode(reader, value)); + + LogCertificate("NOCValue", value.NOCValue); + + if (value.ICACValue.HasValue()) + { + LogCertificate("ICACValue", value.ICACValue.Value()); + } + + return CHIP_NO_ERROR; +} + +CHIP_ERROR LogAddTrustedRootCertificateRequest(TLV::TLVReader & reader) +{ + app::Clusters::OperationalCredentials::Commands::AddTrustedRootCertificate::DecodableType value; + ReturnErrorOnFailure(chip::app::DataModel::Decode(reader, value)); + + LogCertificate("RCACValue", value.rootCertificate); + + return CHIP_NO_ERROR; +} + +CHIP_ERROR LogNOCsAttribute(TLV::TLVReader & reader) +{ + if (reader.GetType() == TLV::kTLVType_Array) + { + return CHIP_NO_ERROR; + } + + chip::app::Clusters::OperationalCredentials::Structs::NOCStruct::DecodableType value; + ReturnErrorOnFailure(chip::app::DataModel::Decode(reader, value)); + + LogCertificate("NOC", value.noc); + + if (!value.icac.IsNull()) + { + LogCertificate("ICAC", value.icac.Value()); + } + + return CHIP_NO_ERROR; +} + +CHIP_ERROR MaybeDecodeAttributeData(TLV::TLVReader & reader) +{ + CHIP_ERROR err = CHIP_NO_ERROR; + + ClusterId clusterId; + AttributeId attributeId; + + TLV::TLVType containerType; + while (CHIP_NO_ERROR == (err = reader.Next())) + { + if (IsTag(reader, app::AttributeDataIB::Tag::kPath)) + { + ReturnErrorOnFailure(reader.EnterContainer(containerType)); + while (CHIP_NO_ERROR == (err = reader.Next())) + { + if (to_underlying(app::AttributePathIB::Tag::kCluster) == TLV::TagNumFromTag(reader.GetTag())) + { + reader.Get(clusterId); + } + else if (to_underlying(app::AttributePathIB::Tag::kAttribute) == TLV::TagNumFromTag(reader.GetTag())) + { + reader.Get(attributeId); + } + } + ReturnErrorOnFailure(reader.ExitContainer(containerType)); + } + else if (IsTag(reader, app::AttributeDataIB::Tag::kData)) + { + switch (clusterId) + { + case app::Clusters::OperationalCredentials::Id: + switch (attributeId) + { + case app::Clusters::OperationalCredentials::Attributes::NOCs::Id: + return LogNOCsAttribute(reader); + default: + return CHIP_NO_ERROR; + } + default: + return CHIP_NO_ERROR; + } + } + } + + return CHIP_NO_ERROR; +} + +CHIP_ERROR MaybeDecodeCommandData(TLV::TLVReader & reader) +{ + CHIP_ERROR err = CHIP_NO_ERROR; + + ClusterId clusterId; + CommandId commandId; + + TLV::TLVType containerType; + while (CHIP_NO_ERROR == (err = reader.Next())) + { + if (IsTag(reader, app::CommandDataIB::Tag::kPath)) + { + ReturnErrorOnFailure(reader.EnterContainer(containerType)); + while (CHIP_NO_ERROR == (err = reader.Next())) + { + if (to_underlying(app::CommandPathIB::Tag::kClusterId) == TLV::TagNumFromTag(reader.GetTag())) + { + reader.Get(clusterId); + } + else if (to_underlying(app::CommandPathIB::Tag::kCommandId) == TLV::TagNumFromTag(reader.GetTag())) + { + reader.Get(commandId); + } + } + ReturnErrorOnFailure(reader.ExitContainer(containerType)); + } + else if (IsTag(reader, app::CommandDataIB::Tag::kFields)) + { + switch (clusterId) + { + case app::Clusters::OperationalCredentials::Id: + switch (commandId) + { + case app::Clusters::OperationalCredentials::Commands::CertificateChainResponse::Id: + return LogCertificateChainResponse(reader); + case app::Clusters::OperationalCredentials::Commands::AttestationResponse::Id: + return LogAttestationResponse(reader); + case app::Clusters::OperationalCredentials::Commands::CSRResponse::Id: + return LogCSRResponse(reader); + case app::Clusters::OperationalCredentials::Commands::AddNOC::Id: + return LogAddNOC(reader); + case app::Clusters::OperationalCredentials::Commands::AddTrustedRootCertificate::Id: + return LogAddTrustedRootCertificateRequest(reader); + default: + return CHIP_NO_ERROR; + } + break; + default: + break; + } + } + } + + return CHIP_NO_ERROR; +} + +CHIP_ERROR MaybeDecodeNestedReadResponse(const uint8_t * data, size_t dataLen) +{ + TLV::TLVReader reader; + reader.Init(data, dataLen); + + TLV::TLVType containerType = TLV::kTLVType_Structure; + ReturnErrorOnFailure(reader.Next(containerType, TLV::AnonymousTag())); + ReturnErrorOnFailure(reader.EnterContainer(containerType)); + + CHIP_ERROR err = CHIP_NO_ERROR; + while (CHIP_NO_ERROR == (err = reader.Next())) + { + if (IsTag(reader, app::ReportDataMessage::Tag::kAttributeReportIBs)) + { + ReturnErrorOnFailure(reader.EnterContainer(containerType)); + while (CHIP_NO_ERROR == (err = reader.Next())) + { + TLV::TLVType arrayType = TLV::kTLVType_Array; + ReturnErrorOnFailure(reader.EnterContainer(arrayType)); + while (CHIP_NO_ERROR == (err = reader.Next())) + { + if (IsTag(reader, app::AttributeReportIB::Tag::kAttributeData)) + { + ReturnErrorOnFailure(reader.EnterContainer(containerType)); + ReturnErrorOnFailure(MaybeDecodeAttributeData(reader)); + ReturnErrorOnFailure(reader.ExitContainer(containerType)); + } + } + ReturnErrorOnFailure(reader.ExitContainer(arrayType)); + } + ReturnErrorOnFailure(reader.ExitContainer(containerType)); + } + } + + return reader.ExitContainer(containerType); +} + +CHIP_ERROR MaybeDecodeNestedCommandResponse(const uint8_t * data, size_t dataLen) +{ + TLV::TLVReader reader; + reader.Init(data, dataLen); + + ReturnErrorOnFailure(reader.Next()); + + TLV::TLVType containerType; + ReturnErrorOnFailure(reader.EnterContainer(containerType)); + + CHIP_ERROR err = CHIP_NO_ERROR; + while (CHIP_NO_ERROR == (err = reader.Next())) + { + if (IsTag(reader, app::InvokeResponseMessage::Tag::kInvokeResponses)) + { + ReturnErrorOnFailure(reader.EnterContainer(containerType)); + while (CHIP_NO_ERROR == (err = reader.Next())) + { + ReturnErrorOnFailure(reader.EnterContainer(containerType)); + while (CHIP_NO_ERROR == (err = reader.Next())) + { + if (IsTag(reader, app::InvokeResponseIB::Tag::kCommand)) + { + ReturnErrorOnFailure(reader.EnterContainer(containerType)); + ReturnErrorOnFailure(MaybeDecodeCommandData(reader)); + ReturnErrorOnFailure(reader.ExitContainer(containerType)); + } + } + ReturnErrorOnFailure(reader.ExitContainer(containerType)); + } + ReturnErrorOnFailure(reader.ExitContainer(containerType)); + } + } + + return reader.ExitContainer(containerType); +} + +CHIP_ERROR MaybeDecodeNestedCommandRequest(const uint8_t * data, size_t dataLen) +{ + TLV::TLVReader reader; + reader.Init(data, dataLen); + + ReturnErrorOnFailure(reader.Next()); + + TLV::TLVType containerType; + ReturnErrorOnFailure(reader.EnterContainer(containerType)); + + CHIP_ERROR err = CHIP_NO_ERROR; + while (CHIP_NO_ERROR == (err = reader.Next())) + { + if (IsTag(reader, app::InvokeRequestMessage::Tag::kInvokeRequests)) + { + ReturnErrorOnFailure(reader.EnterContainer(containerType)); + while (CHIP_NO_ERROR == (err = reader.Next())) + { + ReturnErrorOnFailure(reader.EnterContainer(containerType)); + ReturnErrorOnFailure(MaybeDecodeCommandData(reader)); + ReturnErrorOnFailure(reader.ExitContainer(containerType)); + } + ReturnErrorOnFailure(reader.ExitContainer(containerType)); + } + } + + return reader.ExitContainer(containerType); +} + +} // namespace interaction_model +} // namespace trace +} // namespace chip diff --git a/examples/common/tracing/decoder/interaction_model/DecoderCustomLog.h b/examples/common/tracing/decoder/interaction_model/DecoderCustomLog.h new file mode 100644 index 00000000000000..68e906e3d6c919 --- /dev/null +++ b/examples/common/tracing/decoder/interaction_model/DecoderCustomLog.h @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#pragma once + +#include + +#include +#include + +namespace chip { +namespace trace { +namespace interaction_model { + +CHIP_ERROR MaybeDecodeNestedReadResponse(const uint8_t * data, size_t dataLen); + +CHIP_ERROR MaybeDecodeNestedCommandResponse(const uint8_t * data, size_t dataLen); + +CHIP_ERROR MaybeDecodeNestedCommandRequest(const uint8_t * data, size_t dataLen); + +} // namespace interaction_model +} // namespace trace +} // namespace chip diff --git a/examples/common/tracing/decoder/logging/Log.cpp b/examples/common/tracing/decoder/logging/Log.cpp new file mode 100644 index 00000000000000..bc3cb74d82f117 --- /dev/null +++ b/examples/common/tracing/decoder/logging/Log.cpp @@ -0,0 +1,206 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#include "Log.h" + +#include "ToCertificateString.h" + +#include +#include + +namespace chip { +namespace trace { +namespace logging { + +namespace { + +constexpr uint8_t kSpacePerIndent = 4; +uint8_t gIndentLevel = 0; + +void ENFORCE_FORMAT(1, 2) LogFormatted(const char * format, ...) +{ + char buffer[CHIP_CONFIG_LOG_MESSAGE_MAX_SIZE] = {}; + + uint8_t indentation = gIndentLevel * kSpacePerIndent; + snprintf(buffer, sizeof(buffer), "%*s", indentation, ""); + + va_list args; + va_start(args, format); + vsnprintf(&buffer[indentation], sizeof(buffer) - indentation, format, args); + va_end(args); + + ChipLogDetail(DataManagement, "%s", buffer); +} + +const char * ToHexString(chip::ByteSpan source, MutableCharSpan destination) +{ + memset(destination.data(), '\0', destination.size()); + + if (source.size() == 0) + { + return destination.data(); + } + + CHIP_ERROR err = + Encoding::BytesToHex(source.data(), source.size(), destination.data(), destination.size(), Encoding::HexFlags::kUppercase); + if (CHIP_NO_ERROR != err) + { + LogErrorOnFailure(err); + return destination.data(); + } + + return destination.data(); +} + +} // namespace + +void Log(const char * name, ByteSpan & data) +{ + if (data.empty()) + { + return; + } + + char buffer[CHIP_CONFIG_LOG_MESSAGE_MAX_SIZE]; + chip::MutableCharSpan destination(buffer); + + CanCastTo(data.size()) + ? LogFormatted("%s (%u) = %s", name, static_cast(data.size()), ToHexString(data, destination)) + : LogFormatted("%s (>UINT16_MAX) = %s", name, ToHexString(data, destination)); +} + +void Log(const char * name, CharSpan & data) +{ + if (data.empty()) + { + return; + } + + CanCastTo(data.size()) + ? LogFormatted("%s (%u) = %.*s", name, static_cast(data.size()), static_cast(data.size()), data.data()) + : LogFormatted("%s (>UINT16_MAX) = %.*s", name, static_cast(data.size()), data.data()); +} + +void Log(const char * name, uint16_t value) +{ + LogFormatted("%s = %u", name, value); +} + +void Log(const char * name, uint32_t value) +{ + LogFormatted("%s = %u", name, value); +} + +void Log(const char * name, const char * value) +{ + LogFormatted("%s = %s", name, value); +} + +void Log(const char * name) +{ + LogFormatted("%s", name); +} + +void LogAsHex(const char * name, uint16_t value) +{ + LogFormatted("%s = 0x%04x", name, value); +} + +void LogAsHex(const char * name, uint64_t value) +{ + LogFormatted("%s = " ChipLogFormatX64, name, ChipLogValueX64(value)); +} + +void LogCertificate(const char * name, const ByteSpan & data) +{ + char buffer[CHIP_CONFIG_LOG_MESSAGE_MAX_SIZE] = {}; + chip::MutableCharSpan destination(buffer); + + CanCastTo(data.size()) ? LogFormatted("%s (%u) =", name, static_cast(data.size())) + : LogFormatted("%s (>UINT16_MAX) =", name); + LogFormatted("{\n%s", ToCertificateString(data, destination)); + LogFormatted("}"); + LogFormatted(" "); +} + +void LogCertificateRequest(const char * name, const ByteSpan & data) +{ + char buffer[CHIP_CONFIG_LOG_MESSAGE_MAX_SIZE] = {}; + chip::MutableCharSpan destination(buffer); + + CanCastTo(data.size()) ? LogFormatted("%s (%u) =", name, static_cast(data.size())) + : LogFormatted("%s (>UINT16_MAX) =", name); + LogFormatted("{\n%s", ToCertificateRequestString(data, destination)); + LogFormatted("}"); + LogFormatted(" "); +} + +void IncreaseLogIndent() +{ + LogFormatted("{"); + gIndentLevel++; +} + +void DecreaseLogIndent() +{ + gIndentLevel--; + LogFormatted("}"); + + if (gIndentLevel == 0) + { + LogFormatted(" "); + } +} + +ScopedLogIndent::ScopedLogIndent(const char * name) +{ + LogFormatted("%s =", name); + IncreaseLogIndent(); +} + +ScopedLogIndent::~ScopedLogIndent() +{ + DecreaseLogIndent(); +} + +ScopedLogIndentWithFlags::ScopedLogIndentWithFlags(const char * name, uint8_t flags) +{ + LogFormatted("%s (0x%02x) =", name, flags); + IncreaseLogIndent(); +} + +ScopedLogIndentWithFlags::~ScopedLogIndentWithFlags() +{ + DecreaseLogIndent(); +} + +ScopedLogIndentWithSize::ScopedLogIndentWithSize(const char * name, size_t size) +{ + CanCastTo(size) ? LogFormatted("%s (%u bytes) =", name, static_cast(size)) + : LogFormatted("%s (>UINT16_MAX) =", name); + IncreaseLogIndent(); +} + +ScopedLogIndentWithSize::~ScopedLogIndentWithSize() +{ + DecreaseLogIndent(); +} + +} // namespace logging +} // namespace trace +} // namespace chip diff --git a/examples/common/tracing/decoder/logging/Log.h b/examples/common/tracing/decoder/logging/Log.h new file mode 100644 index 00000000000000..b2ff6915eb4604 --- /dev/null +++ b/examples/common/tracing/decoder/logging/Log.h @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#pragma once + +#include + +#include +#include + +namespace chip { +namespace trace { +namespace logging { + +class ScopedLogIndent +{ +public: + ScopedLogIndent(const char * name); + ~ScopedLogIndent(); +}; + +class ScopedLogIndentWithFlags +{ +public: + ScopedLogIndentWithFlags(const char * name, uint8_t flags); + ~ScopedLogIndentWithFlags(); +}; + +class ScopedLogIndentWithSize +{ +public: + ScopedLogIndentWithSize(const char * name, size_t size); + ~ScopedLogIndentWithSize(); +}; + +void Log(const char * name, chip::ByteSpan & data); + +void Log(const char * name, chip::CharSpan & data); + +void Log(const char * name, uint16_t value); + +void Log(const char * name, uint32_t value); + +void Log(const char * name); + +void Log(const char * name, const char * value); + +void LogAsHex(const char * name, uint16_t value); + +void LogAsHex(const char * name, uint64_t value); + +void LogCertificate(const char * name, const chip::ByteSpan & data); + +void LogCertificateRequest(const char * name, const chip::ByteSpan & data); + +} // namespace logging +} // namespace trace +} // namespace chip diff --git a/examples/common/tracing/decoder/logging/ToCertificateString.cpp b/examples/common/tracing/decoder/logging/ToCertificateString.cpp new file mode 100644 index 00000000000000..10649348fc8c1f --- /dev/null +++ b/examples/common/tracing/decoder/logging/ToCertificateString.cpp @@ -0,0 +1,113 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#include "ToCertificateString.h" + +#include +#include + +namespace { +constexpr const uint8_t kChipRawPrefix[] = { 0x15, 0x30, 0x01 }; + +bool IsChipCertificate(const chip::ByteSpan & source) +{ + return (source.size() > sizeof(kChipRawPrefix)) && (memcmp(source.data(), kChipRawPrefix, sizeof(kChipRawPrefix)) == 0); +} + +const char * ToCertificate(const chip::ByteSpan & source, chip::MutableCharSpan destination, const char * header = "", + const char * footer = "") +{ + // Reset the buffer + memset(destination.data(), '\0', destination.size()); + + if (source.size() == 0) + { + return destination.data(); + } + + size_t base64DataLen = BASE64_ENCODED_LEN(source.size()) + 1; + if (base64DataLen + strlen(header) + strlen(footer) > destination.size()) + { + ChipLogError(DataManagement, "The certificate buffer is too small to hold the base64 encoded certificate"); + return destination.data(); + } + + chip::Platform::ScopedMemoryBuffer str; + str.Alloc(base64DataLen); + + auto encodedLen = chip::Base64Encode(source.data(), source.size(), str.Get()); + str.Get()[encodedLen] = '\0'; + + if (IsChipCertificate(source)) + { + // Wherever Matter Operational Certificate Encoding representation is used, all certificates SHALL NOT be longer than 400 + // bytes in their TLV form. + if (source.size() > 400) + { + ChipLogError(DataManagement, "Certificate size is greater than 400 bytes"); + } + + snprintf(destination.data(), destination.size(), "%s", str.Get()); + } + else + { + // All certificates SHALL NOT be longer than 600 bytes in their uncompressed DER format. + if (source.size() > 600) + { + ChipLogError(DataManagement, "Certificate size is greater than 600 bytes"); + } + + size_t inIndex = 0; + size_t outIndex = strlen(header) + 1; + + snprintf(destination.data(), destination.size(), "%s\n", header); + for (; inIndex < base64DataLen; inIndex += 64) + { + outIndex += snprintf(&destination.data()[outIndex], destination.size() - outIndex, "%.64s\n", &str[inIndex]); + } + snprintf(&destination.data()[outIndex], destination.size() - outIndex, "%s", footer); + } + + return destination.data(); +} + +} // namespace + +namespace chip { +namespace trace { +namespace logging { + +const char * ToCertificateString(const ByteSpan & source, MutableCharSpan destination) +{ + constexpr const char * kCertificateHeader = "-----BEGIN CERTIFICATE-----"; + constexpr const char * kCertificateFooter = "-----END CERTIFICATE-----"; + + return ToCertificate(source, destination, kCertificateHeader, kCertificateFooter); +} + +const char * ToCertificateRequestString(const ByteSpan & source, MutableCharSpan destination) +{ + constexpr const char * kCertificateHeader = "-----BEGIN CERTIFICATE REQUEST-----"; + constexpr const char * kCertificateFooter = "-----END CERTIFICATE REQUEST-----"; + + return ToCertificate(source, destination, kCertificateHeader, kCertificateFooter); +} + +} // namespace logging +} // namespace trace +} // namespace chip diff --git a/examples/common/tracing/decoder/logging/ToCertificateString.h b/examples/common/tracing/decoder/logging/ToCertificateString.h new file mode 100644 index 00000000000000..4b49732316813f --- /dev/null +++ b/examples/common/tracing/decoder/logging/ToCertificateString.h @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#pragma once + +#include + +#include + +namespace chip { +namespace trace { +namespace logging { + +/** + * @brief This methods converts bytes representing a certificate to a printable string. + * The certificate can be a X.509v3 certificate in DER format or a Matter Operational Certificate. + * + * @param source The source buffer containing a certificate as bytes. + * @param destination The destination buffer where the printable representation will be stored. + * + * @returns A pointer to the destination buffer data. + */ +const char * ToCertificateString(const chip::ByteSpan & source, chip::MutableCharSpan destination); + +/** + * @brief This methods converts bytes representing a CMS envelope to a printable string. + * + * @param source The source buffer containing a certificate as bytes. + * @param destination The destination buffer where the printable representation will be stored. + * + * @returns A pointer to the destination buffer data. + */ +const char * ToCertificateRequestString(const chip::ByteSpan & source, chip::MutableCharSpan destination); + +} // namespace logging +} // namespace trace +} // namespace chip diff --git a/examples/common/tracing/decoder/secure_channel/Decoder.cpp b/examples/common/tracing/decoder/secure_channel/Decoder.cpp new file mode 100644 index 00000000000000..a1cf96ea187fc2 --- /dev/null +++ b/examples/common/tracing/decoder/secure_channel/Decoder.cpp @@ -0,0 +1,565 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#include "Decoder.h" +#include "../logging/Log.h" + +#include +#include +#include + +namespace { +constexpr const char * kProtocolName = "Secure Channel"; + +constexpr const char * kUnknown = "Unknown"; +constexpr const char * kMsgCounterSyncReq = "Message Counter Sync Request"; +constexpr const char * kMsgCounterSyncResp = "Message Counter Sync Response"; +constexpr const char * kStandaloneAck = "Standalone Ack"; +constexpr const char * kPBKDFParamRequest = "Password-Based Key Derivation Parameters Request"; +constexpr const char * kPBKDFParamResponse = "Password-Based Key Derivation Parameters Response"; +constexpr const char * kPASE_Pake1 = "Password Authenticated Session Establishment '1'"; +constexpr const char * kPASE_Pake2 = "Password Authenticated Session Establishment '2'"; +constexpr const char * kPASE_Pake3 = "Password Authenticated Session Establishment '3'"; +constexpr const char * kPASE_PakeError = "Password-authenticated key exchange Error"; +constexpr const char * kCASE_Sigma1 = "Certificate Authenticated Session Establishment Sigma '1'"; +constexpr const char * kCASE_Sigma2 = "Certificate Authenticated Session Establishment Sigma '2'"; +constexpr const char * kCASE_Sigma3 = "Certificate Authenticated Session Establishment Sigma '3'"; +constexpr const char * kCASE_Sigma2Resume = "Certificate Authenticated Session Establishment Sigma '2' Resume"; +constexpr const char * kStatusReport = "Status Report"; +} // namespace + +using MessageType = chip::Protocols::SecureChannel::MsgType; + +namespace chip { +namespace trace { +namespace secure_channel { + +using namespace logging; + +CHIP_ERROR DecodeSEDParams(TLV::TLVReader & reader); +CHIP_ERROR DecodeMessageCounterSyncRequest(TLV::TLVReader & reader); +CHIP_ERROR DecodeMessageCounterSyncResponse(TLV::TLVReader & reader); +CHIP_ERROR DecodeStandaloneAck(TLV::TLVReader & reader); +CHIP_ERROR DecodePBDFKParamRequest(TLV::TLVReader & reader); +CHIP_ERROR DecodePBDFKParamResponse(TLV::TLVReader & reader); +CHIP_ERROR DecodePASEPake1(TLV::TLVReader & reader); +CHIP_ERROR DecodePASEPake2(TLV::TLVReader & reader); +CHIP_ERROR DecodePASEPake3(TLV::TLVReader & reader); +CHIP_ERROR DecodePASEPakeError(TLV::TLVReader & reader); +CHIP_ERROR DecodeCASESigma1(TLV::TLVReader & reader); +CHIP_ERROR DecodeCASESigma2(TLV::TLVReader & reader); +CHIP_ERROR DecodeCASESigma3(TLV::TLVReader & reader); +CHIP_ERROR DecodeCASESigma2Resume(TLV::TLVReader & reader); +CHIP_ERROR DecodeStatusReport(const uint8_t * data, size_t len); // TODO StatusReport does not use TLV Encoding + +const char * ToProtocolName() +{ + return kProtocolName; +} + +const char * ToProtocolMessageTypeName(uint8_t protocolCode) +{ + switch (protocolCode) + { + case to_underlying(MessageType::MsgCounterSyncReq): + return kMsgCounterSyncReq; + case to_underlying(MessageType::MsgCounterSyncRsp): + return kMsgCounterSyncResp; + case to_underlying(MessageType::StandaloneAck): + return kStandaloneAck; + case to_underlying(MessageType::PBKDFParamRequest): + return kPBKDFParamRequest; + case to_underlying(MessageType::PBKDFParamResponse): + return kPBKDFParamResponse; + case to_underlying(MessageType::PASE_Pake1): + return kPASE_Pake1; + case to_underlying(MessageType::PASE_Pake2): + return kPASE_Pake2; + case to_underlying(MessageType::PASE_Pake3): + return kPASE_Pake3; + case to_underlying(MessageType::PASE_PakeError): + return kPASE_PakeError; + case to_underlying(MessageType::CASE_Sigma1): + return kCASE_Sigma1; + case to_underlying(MessageType::CASE_Sigma2): + return kCASE_Sigma2; + case to_underlying(MessageType::CASE_Sigma3): + return kCASE_Sigma3; + case to_underlying(MessageType::CASE_Sigma2Resume): + return kCASE_Sigma2Resume; + case to_underlying(MessageType::StatusReport): + return kStatusReport; + default: + return kUnknown; + } +} + +CHIP_ERROR LogAsProtocolMessage(uint8_t protocolCode, const uint8_t * data, size_t len) +{ + TLV::TLVReader reader; + reader.Init(data, len); + + switch (protocolCode) + { + case to_underlying(MessageType::MsgCounterSyncReq): + return DecodeMessageCounterSyncRequest(reader); + case to_underlying(MessageType::MsgCounterSyncRsp): + return DecodeMessageCounterSyncResponse(reader); + case to_underlying(MessageType::StandaloneAck): + return DecodeStandaloneAck(reader); + case to_underlying(MessageType::PBKDFParamRequest): + return DecodePBDFKParamRequest(reader); + case to_underlying(MessageType::PBKDFParamResponse): + return DecodePBDFKParamResponse(reader); + case to_underlying(MessageType::PASE_Pake1): + return DecodePASEPake1(reader); + case to_underlying(MessageType::PASE_Pake2): + return DecodePASEPake2(reader); + case to_underlying(MessageType::PASE_Pake3): + return DecodePASEPake3(reader); + case to_underlying(MessageType::PASE_PakeError): + return DecodePASEPakeError(reader); + case to_underlying(MessageType::CASE_Sigma1): + return DecodeCASESigma1(reader); + case to_underlying(MessageType::CASE_Sigma2): + return DecodeCASESigma2(reader); + case to_underlying(MessageType::CASE_Sigma3): + return DecodeCASESigma3(reader); + case to_underlying(MessageType::CASE_Sigma2Resume): + return DecodeCASESigma2Resume(reader); + case to_underlying(MessageType::StatusReport): + return DecodeStatusReport(data, len); + default: + return CHIP_ERROR_NOT_IMPLEMENTED; + } +} + +CHIP_ERROR DecodeMessageCounterSyncRequest(TLV::TLVReader & reader) +{ + return CHIP_ERROR_NOT_IMPLEMENTED; +} + +CHIP_ERROR DecodeMessageCounterSyncResponse(TLV::TLVReader & reader) +{ + return CHIP_ERROR_NOT_IMPLEMENTED; +} + +CHIP_ERROR DecodeStandaloneAck(TLV::TLVReader & reader) +{ + // Standalone Ack does not contains any data. Something wrong is ongoing if this code is reached. + return CHIP_ERROR_INCORRECT_STATE; +} + +CHIP_ERROR DecodePBDFKParamRequest(TLV::TLVReader & reader) +{ + constexpr uint8_t kInitiatorRandomTag = 1; + constexpr uint8_t kInitiatorSessionIdTag = 2; + constexpr uint8_t kPasscodeIdTag = 3; + constexpr uint8_t kHasPBKDFParametersTag = 4; + constexpr uint8_t kInitiatorSEDParamsTag = 5; + + ByteSpan initiatorRandom; + uint16_t initiatorSessionId; + PasscodeId passcodeId; + bool hasPBKDFParameters; + + TLV::TLVType containerType = TLV::kTLVType_Structure; + ReturnErrorOnFailure(reader.Next(containerType, TLV::AnonymousTag())); + ReturnErrorOnFailure(reader.EnterContainer(containerType)); + ReturnErrorOnFailure(reader.Next(TLV::ContextTag(kInitiatorRandomTag))); + ReturnErrorOnFailure(reader.Get(initiatorRandom)); + ReturnErrorOnFailure(reader.Next(TLV::ContextTag(kInitiatorSessionIdTag))); + ReturnErrorOnFailure(reader.Get(initiatorSessionId)); + ReturnErrorOnFailure(reader.Next(TLV::ContextTag(kPasscodeIdTag))); + ReturnErrorOnFailure(reader.Get(passcodeId)); + ReturnErrorOnFailure(reader.Next(TLV::ContextTag(kHasPBKDFParametersTag))); + ReturnErrorOnFailure(reader.Get(hasPBKDFParameters)); + + auto scopedIndent = ScopedLogIndent("Parameters"); + Log("Initiator Random", initiatorRandom); + Log("Initiator Session Id", initiatorSessionId); + Log("Passcode Id", passcodeId); + Log("hasPBKDFParameters", hasPBKDFParameters ? "true" : "false"); + + CHIP_ERROR err = reader.Next(); + if (err == CHIP_END_OF_TLV) + { + return reader.ExitContainer(containerType); + } + ReturnErrorOnFailure(err); + + VerifyOrReturnError(reader.GetTag() == TLV::ContextTag(kInitiatorSEDParamsTag), CHIP_ERROR_INVALID_TLV_TAG); + ReturnErrorOnFailure(DecodeSEDParams(reader)); + + return reader.ExitContainer(containerType); +} + +CHIP_ERROR DecodePBDFKParamResponse(TLV::TLVReader & reader) +{ + constexpr uint8_t kInitiatorRandomTag = 1; + constexpr uint8_t kResponderRandomTag = 2; + constexpr uint8_t kResponderSessionIdTag = 3; + constexpr uint8_t kPBKDFParametersTag = 4; + constexpr uint8_t kInitiatorSEDParamsTag = 5; + + ByteSpan initiatorRandom; + ByteSpan responderRandom; + uint16_t responderSessionId; + + TLV::TLVType containerType = TLV::kTLVType_Structure; + ReturnErrorOnFailure(reader.Next(containerType, TLV::AnonymousTag())); + ReturnErrorOnFailure(reader.EnterContainer(containerType)); + ReturnErrorOnFailure(reader.Next(TLV::ContextTag(kInitiatorRandomTag))); + ReturnErrorOnFailure(reader.Get(initiatorRandom)); + ReturnErrorOnFailure(reader.Next(TLV::ContextTag(kResponderRandomTag))); + ReturnErrorOnFailure(reader.Get(responderRandom)); + ReturnErrorOnFailure(reader.Next(TLV::ContextTag(kResponderSessionIdTag))); + ReturnErrorOnFailure(reader.Get(responderSessionId)); + + auto scopedIndent = ScopedLogIndent("Parameters"); + Log("Initiator Random", initiatorRandom); + Log("Responder Random", responderRandom); + Log("Responder Session Id", responderSessionId); + + CHIP_ERROR err = reader.Next(); + if (err == CHIP_END_OF_TLV) + { + return reader.ExitContainer(containerType); + } + ReturnErrorOnFailure(err); + + if (TLV::TagNumFromTag(reader.GetTag()) == kPBKDFParametersTag) + { + uint32_t iterationCount; + ByteSpan salt; + + ReturnErrorOnFailure(reader.EnterContainer(containerType)); + ReturnErrorOnFailure(reader.Next()); + ReturnErrorOnFailure(reader.Get(iterationCount)); + Log("Iteration Count", iterationCount); + ReturnErrorOnFailure(reader.Next()); + ReturnErrorOnFailure(reader.Get(salt)); + Log("Salt", salt); + ReturnErrorOnFailure(reader.ExitContainer(containerType)); + err = reader.Next(); + } + + if (err == CHIP_END_OF_TLV) + { + return reader.ExitContainer(containerType); + } + ReturnErrorOnFailure(err); + + VerifyOrReturnError(reader.GetTag() == TLV::ContextTag(kInitiatorSEDParamsTag), CHIP_ERROR_INVALID_TLV_TAG); + ReturnErrorOnFailure(DecodeSEDParams(reader)); + + return reader.ExitContainer(containerType); +} + +CHIP_ERROR DecodePASEPake1(TLV::TLVReader & reader) +{ + ByteSpan pA; + + TLV::TLVType containerType = TLV::kTLVType_Structure; + ReturnErrorOnFailure(reader.Next(containerType, TLV::AnonymousTag())); + ReturnErrorOnFailure(reader.EnterContainer(containerType)); + ReturnErrorOnFailure(reader.Next()); + ReturnErrorOnFailure(reader.Get(pA)); + ReturnErrorOnFailure(reader.ExitContainer(containerType)); + + auto scopedIndent = ScopedLogIndent("Parameters"); + Log("pA", pA); + return CHIP_NO_ERROR; +} + +CHIP_ERROR DecodePASEPake2(TLV::TLVReader & reader) +{ + ByteSpan pB; + ByteSpan cB; + + TLV::TLVType containerType = TLV::kTLVType_Structure; + ReturnErrorOnFailure(reader.Next(containerType, TLV::AnonymousTag())); + ReturnErrorOnFailure(reader.EnterContainer(containerType)); + ReturnErrorOnFailure(reader.Next()); + ReturnErrorOnFailure(reader.Get(pB)); + ReturnErrorOnFailure(reader.Next()); + ReturnErrorOnFailure(reader.Get(cB)); + ReturnErrorOnFailure(reader.ExitContainer(containerType)); + + auto scopedIndent = ScopedLogIndent("Parameters"); + Log("pB", pB); + Log("cB", cB); + return CHIP_NO_ERROR; +} + +CHIP_ERROR DecodePASEPake3(TLV::TLVReader & reader) +{ + ByteSpan cA; + + TLV::TLVType containerType = TLV::kTLVType_Structure; + ReturnErrorOnFailure(reader.Next(containerType, TLV::AnonymousTag())); + ReturnErrorOnFailure(reader.EnterContainer(containerType)); + ReturnErrorOnFailure(reader.Next()); + ReturnErrorOnFailure(reader.Get(cA)); + ReturnErrorOnFailure(reader.ExitContainer(containerType)); + + auto scopedIndent = ScopedLogIndent("Parameters"); + Log("cA", cA); + return CHIP_NO_ERROR; +} + +CHIP_ERROR DecodePASEPakeError(TLV::TLVReader & reader) +{ + return CHIP_ERROR_NOT_IMPLEMENTED; +} + +CHIP_ERROR DecodeCASESigma1(TLV::TLVReader & reader) +{ + constexpr uint8_t kInitiatorRandomTag = 1; + constexpr uint8_t kInitiatorSessionIdTag = 2; + constexpr uint8_t kDestinationIdTag = 3; + constexpr uint8_t kInitiatorEphPubKeyTag = 4; + constexpr uint8_t kInitiatorSEDParamsTag = 5; + constexpr uint8_t kResumptionIDTag = 6; + constexpr uint8_t kResume1MICTag = 7; + + ByteSpan initiatorRandom; + uint16_t initiatorSessionId; + ByteSpan destinationId; + ByteSpan initiatorEphPubKey; + ByteSpan resumptionId; + ByteSpan initiatorResumeMIC; + + TLV::TLVType containerType = TLV::kTLVType_Structure; + ReturnErrorOnFailure(reader.Next(containerType, TLV::AnonymousTag())); + ReturnErrorOnFailure(reader.EnterContainer(containerType)); + ReturnErrorOnFailure(reader.Next(TLV::ContextTag(kInitiatorRandomTag))); + ReturnErrorOnFailure(reader.Get(initiatorRandom)); + ReturnErrorOnFailure(reader.Next(TLV::ContextTag(kInitiatorSessionIdTag))); + ReturnErrorOnFailure(reader.Get(initiatorSessionId)); + ReturnErrorOnFailure(reader.Next(TLV::ContextTag(kDestinationIdTag))); + ReturnErrorOnFailure(reader.Get(destinationId)); + ReturnErrorOnFailure(reader.Next(TLV::ContextTag(kInitiatorEphPubKeyTag))); + ReturnErrorOnFailure(reader.Get(initiatorEphPubKey)); + + auto scopedIndent = ScopedLogIndent("Parameters"); + Log("InitiatorRandom", initiatorRandom); + Log("InitiatorSessionId", initiatorSessionId); + Log("DestinationId", destinationId); + Log("InitiatorEphPubKey", initiatorEphPubKey); + + CHIP_ERROR err = reader.Next(); + if (err == CHIP_NO_ERROR && reader.GetTag() == TLV::ContextTag(kInitiatorSEDParamsTag)) + { + ReturnErrorOnFailure(DecodeSEDParams(reader)); + err = reader.Next(); + } + + if (err == CHIP_NO_ERROR && reader.GetTag() == TLV::ContextTag(kResumptionIDTag)) + { + ReturnErrorOnFailure(reader.Get(resumptionId)); + Log("ResumptionID", resumptionId); + err = reader.Next(); + } + + if (err == CHIP_NO_ERROR && reader.GetTag() == TLV::ContextTag(kResume1MICTag)) + { + ReturnErrorOnFailure(reader.Get(initiatorResumeMIC)); + Log("InitiatorResumeMIC", initiatorResumeMIC); + err = reader.Next(); + } + + if (err == CHIP_END_OF_TLV) + { + err = CHIP_NO_ERROR; + } + ReturnErrorOnFailure(err); + + return reader.ExitContainer(containerType); +} + +CHIP_ERROR DecodeCASESigma2(TLV::TLVReader & reader) +{ + constexpr uint8_t kResponderRandomTag = 1; + constexpr uint8_t kResponderSessionIdTag = 2; + constexpr uint8_t kResponderEphPubKeyTag = 3; + constexpr uint8_t kEncrypted2Tag = 4; + constexpr uint8_t kResponderSEDParamsTag = 5; + + ByteSpan responderRandom; + uint16_t responderSessionId; + ByteSpan responderEphPubKey; + ByteSpan encrypted2; + + TLV::TLVType containerType = TLV::kTLVType_Structure; + ReturnErrorOnFailure(reader.Next(containerType, TLV::AnonymousTag())); + ReturnErrorOnFailure(reader.EnterContainer(containerType)); + ReturnErrorOnFailure(reader.Next(TLV::ContextTag(kResponderRandomTag))); + ReturnErrorOnFailure(reader.Get(responderRandom)); + ReturnErrorOnFailure(reader.Next(TLV::ContextTag(kResponderSessionIdTag))); + ReturnErrorOnFailure(reader.Get(responderSessionId)); + ReturnErrorOnFailure(reader.Next(TLV::ContextTag(kResponderEphPubKeyTag))); + ReturnErrorOnFailure(reader.Get(responderEphPubKey)); + ReturnErrorOnFailure(reader.Next(TLV::ContextTag(kEncrypted2Tag))); + ReturnErrorOnFailure(reader.Get(encrypted2)); + + auto scopedIndent = ScopedLogIndent("Parameters"); + Log("ResponderRandom", responderRandom); + Log("ResponderSessionId", responderSessionId); + Log("ResponderEphPubKey", responderEphPubKey); + Log("Encrypted2", encrypted2); + + CHIP_ERROR err = reader.Next(); + if (err == CHIP_NO_ERROR && reader.GetTag() == TLV::ContextTag(kResponderSEDParamsTag)) + { + ReturnErrorOnFailure(DecodeSEDParams(reader)); + err = reader.Next(); + } + + if (err == CHIP_END_OF_TLV) + { + err = CHIP_NO_ERROR; + } + ReturnErrorOnFailure(err); + + return reader.ExitContainer(containerType); +} + +CHIP_ERROR DecodeCASESigma3(TLV::TLVReader & reader) +{ + constexpr uint8_t kEncrypted3Tag = 1; + + ByteSpan encrypted3; + + TLV::TLVType containerType = TLV::kTLVType_Structure; + ReturnErrorOnFailure(reader.Next(containerType, TLV::AnonymousTag())); + ReturnErrorOnFailure(reader.EnterContainer(containerType)); + ReturnErrorOnFailure(reader.Next(TLV::ContextTag(kEncrypted3Tag))); + ReturnErrorOnFailure(reader.Get(encrypted3)); + ReturnErrorOnFailure(reader.ExitContainer(containerType)); + + auto scopedIndent = ScopedLogIndent("Parameters"); + Log("Encrypted3", encrypted3); + return CHIP_NO_ERROR; +} + +CHIP_ERROR DecodeCASESigma2Resume(TLV::TLVReader & reader) +{ + constexpr uint8_t kResumptionIDTag = 1; + constexpr uint8_t kSigma2ResumeMICTag = 2; + constexpr uint8_t kResponderSessionIdTag = 3; + constexpr uint8_t kResponderSEDParamsTag = 4; + + ByteSpan resumptionId; + ByteSpan sigma2ResumeMIC; + uint16_t responderSessionId; + + TLV::TLVType containerType = TLV::kTLVType_Structure; + ReturnErrorOnFailure(reader.Next(containerType, TLV::AnonymousTag())); + ReturnErrorOnFailure(reader.EnterContainer(containerType)); + ReturnErrorOnFailure(reader.Next(TLV::ContextTag(kResumptionIDTag))); + ReturnErrorOnFailure(reader.Get(resumptionId)); + ReturnErrorOnFailure(reader.Next(TLV::ContextTag(kSigma2ResumeMICTag))); + ReturnErrorOnFailure(reader.Get(sigma2ResumeMIC)); + ReturnErrorOnFailure(reader.Next(TLV::ContextTag(kResponderSessionIdTag))); + ReturnErrorOnFailure(reader.Get(responderSessionId)); + + auto scopedIndent = ScopedLogIndent("Parameters"); + Log("ResumptionID", resumptionId); + Log("Sigma2ResumeMIC", sigma2ResumeMIC); + Log("ResponderSessionId", responderSessionId); + + CHIP_ERROR err = reader.Next(); + if (err == CHIP_NO_ERROR && reader.GetTag() == TLV::ContextTag(kResponderSEDParamsTag)) + { + ReturnErrorOnFailure(DecodeSEDParams(reader)); + err = reader.Next(); + } + + if (err == CHIP_END_OF_TLV) + { + err = CHIP_NO_ERROR; + } + ReturnErrorOnFailure(err); + + return reader.ExitContainer(containerType); +} + +CHIP_ERROR DecodeStatusReport(const uint8_t * data, size_t len) +{ + uint16_t statusGeneralStatusCode; + uint32_t statusProtocolId; + uint16_t statusProtocolCode; + + Encoding::LittleEndian::Reader bufReader(data, len); + ReturnErrorOnFailure( + bufReader.Read16(&statusGeneralStatusCode).Read32(&statusProtocolId).Read16(&statusProtocolCode).StatusCode()); + + auto scopedIndent = ScopedLogIndent("Parameters"); + Log("GeneralStatusCode", statusGeneralStatusCode); + Log("ProtocolId", statusProtocolId); + Log("ProtocolCode", statusProtocolCode); + + if (bufReader.Remaining()) + { + ByteSpan statusProtocolData(data + bufReader.OctetsRead(), bufReader.Remaining()); + Log("Data", statusProtocolData); + } + + return CHIP_NO_ERROR; +} + +CHIP_ERROR DecodeSEDParams(TLV::TLVReader & reader) +{ + constexpr uint8_t kIdleRetransmitTimeoutTag = 1; + constexpr uint8_t kActiveRetransmitTimeoutTag = 2; + + auto scopedIndent = ScopedLogIndent("SED"); + + TLV::TLVType containerType = TLV::kTLVType_Structure; + ReturnErrorOnFailure(reader.EnterContainer(containerType)); + ReturnErrorOnFailure(reader.Next()); + + if (TLV::TagNumFromTag(reader.GetTag()) == kIdleRetransmitTimeoutTag) + { + uint32_t idleRetransmitTimeout; + ReturnErrorOnFailure(reader.Get(idleRetransmitTimeout)); + Log("Idle Retransmit Timeout", idleRetransmitTimeout); + + CHIP_ERROR err = reader.Next(); + if (err == CHIP_END_OF_TLV) + { + return reader.ExitContainer(containerType); + } + ReturnErrorOnFailure(err); + } + + VerifyOrReturnError(TLV::TagNumFromTag(reader.GetTag()) == kActiveRetransmitTimeoutTag, CHIP_ERROR_INVALID_TLV_TAG); + + uint32_t activeRetransmitTimeout; + ReturnErrorOnFailure(reader.Get(activeRetransmitTimeout)); + Log("Active Retransmit Timeout", activeRetransmitTimeout); + + ReturnErrorOnFailure(reader.ExitContainer(containerType)); + + return CHIP_NO_ERROR; +} + +} // namespace secure_channel +} // namespace trace +} // namespace chip diff --git a/examples/common/tracing/decoder/secure_channel/Decoder.h b/examples/common/tracing/decoder/secure_channel/Decoder.h new file mode 100644 index 00000000000000..3c369667b836e8 --- /dev/null +++ b/examples/common/tracing/decoder/secure_channel/Decoder.h @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#pragma once + +#include + +#include +#include + +namespace chip { +namespace trace { +namespace secure_channel { + +const char * ToProtocolName(); + +const char * ToProtocolMessageTypeName(uint8_t protocolCode); + +CHIP_ERROR LogAsProtocolMessage(uint8_t protocolCode, const uint8_t * data, size_t len); + +} // namespace secure_channel +} // namespace trace +} // namespace chip diff --git a/examples/common/tracing/decoder/udc/Decoder.cpp b/examples/common/tracing/decoder/udc/Decoder.cpp new file mode 100644 index 00000000000000..01fb75a2ab314e --- /dev/null +++ b/examples/common/tracing/decoder/udc/Decoder.cpp @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#include "Decoder.h" + +#include + +namespace { +constexpr const char * kProtocolName = "User Directed Commissioning"; + +constexpr const char * kUnknown = "Unknown"; +constexpr const char * kIdentificationDeclaration = "Identification Declaration"; +} // namespace + +using MessageType = chip::Protocols::UserDirectedCommissioning::MsgType; + +namespace chip { +namespace trace { +namespace udc { + +const char * ToProtocolName() +{ + return kProtocolName; +} + +const char * ToProtocolMessageTypeName(uint8_t protocolCode) +{ + switch (protocolCode) + { + case to_underlying(MessageType::IdentificationDeclaration): + return kIdentificationDeclaration; + default: + return kUnknown; + } +} + +CHIP_ERROR LogAsProtocolMessage(uint8_t protocolCode, const uint8_t * data, size_t len) +{ + // TODO Implement messages decoding + + switch (protocolCode) + { + case to_underlying(MessageType::IdentificationDeclaration): + return CHIP_ERROR_NOT_IMPLEMENTED; + default: + return CHIP_ERROR_NOT_IMPLEMENTED; + } +} + +} // namespace udc +} // namespace trace +} // namespace chip diff --git a/examples/common/tracing/decoder/udc/Decoder.h b/examples/common/tracing/decoder/udc/Decoder.h new file mode 100644 index 00000000000000..90801ecce2a231 --- /dev/null +++ b/examples/common/tracing/decoder/udc/Decoder.h @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#pragma once + +#include + +#include +#include + +namespace chip { +namespace trace { +namespace udc { + +const char * ToProtocolName(); + +const char * ToProtocolMessageTypeName(uint8_t protocolCode); + +CHIP_ERROR LogAsProtocolMessage(uint8_t protocolCode, const uint8_t * data, size_t len); + +} // namespace udc +} // namespace trace +} // namespace chip diff --git a/examples/common/tracing/main.cpp b/examples/common/tracing/main.cpp new file mode 100644 index 00000000000000..1a4815b2d54387 --- /dev/null +++ b/examples/common/tracing/main.cpp @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#include "TraceDecoder.h" +#include "TraceDecoderArgumentParser.h" + +#include +#include + +int main(int argc, char * argv[]) +{ + CHIP_ERROR err = CHIP_NO_ERROR; + + err = chip::Platform::MemoryInit(); + if (CHIP_NO_ERROR != err) + { + ChipLogError(NotSpecified, "Platform::MemoryInit() failure: %s", chip::ErrorStr(err)); + return EXIT_FAILURE; + } + + VerifyOrReturnError(CHIP_NO_ERROR == TraceDecoderArgumentParser::GetInstance().ParseArguments(argc, argv), EXIT_FAILURE); + + auto decoder = chip::trace::TraceDecoder(); + decoder.SetOptions(TraceDecoderArgumentParser::GetInstance().options); + + err = decoder.ReadFile(TraceDecoderArgumentParser::GetInstance().logFile); + if (CHIP_NO_ERROR != err) + { + ChipLogError(NotSpecified, "Can not decode file: %s. Error: %s", TraceDecoderArgumentParser::GetInstance().logFile, + chip::ErrorStr(err)); + return EXIT_FAILURE; + } + + chip::Platform::MemoryShutdown(); + return EXIT_SUCCESS; +} diff --git a/examples/common/tracing/third_party/connectedhomeip b/examples/common/tracing/third_party/connectedhomeip new file mode 120000 index 00000000000000..11a54ed360106c --- /dev/null +++ b/examples/common/tracing/third_party/connectedhomeip @@ -0,0 +1 @@ +../../../../ \ No newline at end of file diff --git a/examples/chip-tool-darwin/.gn b/examples/darwin-framework-tool/.gn similarity index 100% rename from examples/chip-tool-darwin/.gn rename to examples/darwin-framework-tool/.gn diff --git a/examples/chip-tool-darwin/BUILD.gn b/examples/darwin-framework-tool/BUILD.gn similarity index 76% rename from examples/chip-tool-darwin/BUILD.gn rename to examples/darwin-framework-tool/BUILD.gn index 890a97f43e42a7..f543b83c0c4690 100644 --- a/examples/chip-tool-darwin/BUILD.gn +++ b/examples/darwin-framework-tool/BUILD.gn @@ -23,19 +23,26 @@ assert(chip_build_tools) config("config") { include_dirs = [ ".", - "${chip_root}/zzz_generated/chip-tool-darwin", + "${chip_root}/zzz_generated/darwin-framework-tool", "${chip_root}/examples/chip-tool/commands/clusters/ComplexArgument.h", ] - defines = [ "CONFIG_ENABLE_YAML_TESTS=${config_enable_yaml_tests}" ] + defines = [ + "CONFIG_ENABLE_YAML_TESTS=${config_enable_yaml_tests}", + "CONFIG_USE_INTERACTIVE_MODE=${config_use_interactive_mode}", + ] cflags = [ "-Wconversion", "-fobjc-arc", ] + + if (config_use_interactive_mode) { + libs = [ "readline" ] + } } -executable("chip-tool-darwin") { +executable("darwin-framework-tool") { sources = [ "${chip_root}/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.cpp", "commands/clusters/ClusterCommandBridge.h", @@ -46,6 +53,8 @@ executable("chip-tool-darwin") { "commands/common/CHIPCommandStorageDelegate.mm", "commands/common/CHIPToolKeypair.mm", "commands/pairing/Commands.h", + "commands/pairing/OpenCommissioningWindowCommand.h", + "commands/pairing/OpenCommissioningWindowCommand.mm", "commands/pairing/PairingCommandBridge.mm", "commands/pairing/PairingDelegateBridge.mm", "commands/storage/Commands.h", @@ -53,8 +62,12 @@ executable("chip-tool-darwin") { "main.mm", ] + if (config_use_interactive_mode) { + sources += [ "commands/interactive/InteractiveCommands.mm" ] + } + if (config_enable_yaml_tests) { - sources += [ "${chip_root}/zzz_generated/chip-tool-darwin/zap-generated/cluster/CHIPTestClustersObjc.mm" ] + sources += [ "${chip_root}/zzz_generated/darwin-framework-tool/zap-generated/cluster/CHIPTestClustersObjc.mm" ] } deps = [ diff --git a/examples/chip-tool-darwin/README.md b/examples/darwin-framework-tool/README.md similarity index 85% rename from examples/chip-tool-darwin/README.md rename to examples/darwin-framework-tool/README.md index be2e5d60c04f63..833749bea25a99 100644 --- a/examples/chip-tool-darwin/README.md +++ b/examples/darwin-framework-tool/README.md @@ -1,4 +1,4 @@ -# Matter chip-tool-darwin +# Matter darwin-framework-tool An example application that uses Matter to send messages to a Matter server. @@ -20,15 +20,15 @@ background on build prerequisites. Building the example application is quite straightforward. ``` -scripts/examples/gn_build_example.sh examples/chip-tool-darwin SOME-PATH/ +scripts/examples/gn_build_example.sh examples/darwin-framework-tool SOME-PATH/ ``` -which puts the binary at `SOME-PATH/chip-tool-darwin`. +which puts the binary at `SOME-PATH/darwin-framework-tool`. ## Using the Client to commission a device In order to send commands to a device, it must be commissioned with the client. -chip-tool-darwin currently only supports commissioning and remembering one +darwin-framework-tool currently only supports commissioning and remembering one device at a time. The configuration state is stored in `/tmp/chip_tool_config.ini`; deleting this and other `.ini` files in `/tmp` can sometimes resolve issues due to stale configuration. @@ -43,14 +43,14 @@ and choose the pairing mode. The command below will pair devices with the provided IP, discriminator and setup code. - $ chip-tool-darwin pairing ethernet {NODE_ID_TO_ASSIGN} 20202021 3840 {IP_ADDRESS} + $ darwin-framework-tool pairing ethernet {NODE_ID_TO_ASSIGN} 20202021 3840 {IP_ADDRESS} In this case, the device will be assigned node id `${NODE_ID_TO_ASSIGN}` (which must be a decimal number or a 0x-prefixed hex number). ### Forget the currently-commissioned device - $ chip-tool-darwin pairing unpair + $ darwin-framework-tool pairing unpair ## Using the Client to Send Matter Commands @@ -59,7 +59,7 @@ the target cluster name, the target command name as well as an endpoint id. The endpoint id must be between 1 and 240. - $ chip-tool-darwin onoff on 1 + $ darwin-framework-tool onoff on 1 The client will send a single command packet and then exit. @@ -68,13 +68,13 @@ The client will send a single command packet and then exit. To get the list of supported clusters, run the built executable without any arguments. - $ chip-tool-darwin + $ darwin-framework-tool Example output: ```bash Usage: - ./chip-tool-darwin cluster_name command_name [param1 param2 ...] + ./darwin-framework-tool cluster_name command_name [param1 param2 ...] +-------------------------------------------------------------------------------------+ | Clusters: | @@ -99,18 +99,18 @@ Usage: To get the list of commands for a specific cluster, run the built executable with the target cluster name. - $ chip-tool-darwin onoff + $ darwin-framework-tool onoff ### How to get the list of supported attributes for a specific cluster To the the list of attributes for a specific cluster, run the built executable with the target cluster name and the `read` command name. - $ chip-tool-darwin onoff read + $ darwin-framework-tool onoff read ### How to get the list of parameters for a command To get the list of parameters for a specific command, run the built executable with the target cluster name and the target command name - $ chip-tool-darwin onoff on + $ darwin-framework-tool onoff on diff --git a/examples/chip-tool-darwin/args.gni b/examples/darwin-framework-tool/args.gni similarity index 100% rename from examples/chip-tool-darwin/args.gni rename to examples/darwin-framework-tool/args.gni diff --git a/examples/chip-tool-darwin/build_overrides b/examples/darwin-framework-tool/build_overrides similarity index 100% rename from examples/chip-tool-darwin/build_overrides rename to examples/darwin-framework-tool/build_overrides diff --git a/examples/chip-tool-darwin/commands/clusters/ClusterCommandBridge.h b/examples/darwin-framework-tool/commands/clusters/ClusterCommandBridge.h similarity index 100% rename from examples/chip-tool-darwin/commands/clusters/ClusterCommandBridge.h rename to examples/darwin-framework-tool/commands/clusters/ClusterCommandBridge.h diff --git a/examples/chip-tool-darwin/commands/clusters/ModelCommandBridge.h b/examples/darwin-framework-tool/commands/clusters/ModelCommandBridge.h similarity index 94% rename from examples/chip-tool-darwin/commands/clusters/ModelCommandBridge.h rename to examples/darwin-framework-tool/commands/clusters/ModelCommandBridge.h index 0f7a80f600ea94..adb1d21dece650 100644 --- a/examples/chip-tool-darwin/commands/clusters/ModelCommandBridge.h +++ b/examples/darwin-framework-tool/commands/clusters/ModelCommandBridge.h @@ -34,6 +34,10 @@ class ModelCommand : public CHIPCommandBridge AddArgument("endpoint-id", 0, UINT16_MAX, &mEndPointId); } + void Shutdown() override; + + void Cleanup() override { ModelCommand::Shutdown(); } + /////////// CHIPCommand Interface ///////// CHIP_ERROR RunCommand() override; chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(10); } diff --git a/examples/chip-tool-darwin/commands/clusters/ModelCommandBridge.mm b/examples/darwin-framework-tool/commands/clusters/ModelCommandBridge.mm similarity index 97% rename from examples/chip-tool-darwin/commands/clusters/ModelCommandBridge.mm rename to examples/darwin-framework-tool/commands/clusters/ModelCommandBridge.mm index 1838033f9f8732..8a27391324cdc5 100644 --- a/examples/chip-tool-darwin/commands/clusters/ModelCommandBridge.mm +++ b/examples/darwin-framework-tool/commands/clusters/ModelCommandBridge.mm @@ -49,3 +49,5 @@ }]; return CHIP_NO_ERROR; } + +void ModelCommand::Shutdown() { ResetArguments(); } diff --git a/examples/chip-tool-darwin/commands/clusters/ReportCommandBridge.h b/examples/darwin-framework-tool/commands/clusters/ReportCommandBridge.h similarity index 85% rename from examples/chip-tool-darwin/commands/clusters/ReportCommandBridge.h rename to examples/darwin-framework-tool/commands/clusters/ReportCommandBridge.h index ceb9a17642dbbd..17baa322ddc581 100644 --- a/examples/chip-tool-darwin/commands/clusters/ReportCommandBridge.h +++ b/examples/darwin-framework-tool/commands/clusters/ReportCommandBridge.h @@ -132,35 +132,50 @@ class SubscribeAttribute : public ModelCommand { params.keepPreviousSubscriptions = mKeepSubscriptions.HasValue() ? [NSNumber numberWithBool:mKeepSubscriptions.Value()] : nil; [device subscribeAttributeWithEndpointId:[NSNumber numberWithUnsignedShort:endpointId] - clusterId:[NSNumber numberWithUnsignedInteger:mClusterId] - attributeId:[NSNumber numberWithUnsignedInteger:mAttributeId] - minInterval:[NSNumber numberWithUnsignedInteger:mMinInterval] - maxInterval:[NSNumber numberWithUnsignedInteger:mMaxInterval] - params:params - clientQueue:callbackQueue - reportHandler:^( - NSArray *> * _Nullable values, NSError * _Nullable error) { - if (values) { - for (id item in values) { - NSLog(@"Response Item: %@", [item description]); - } - } - if (error || !mWait) { - SetCommandExitStatus(error); - } - } - subscriptionEstablished:nil]; + clusterId:[NSNumber numberWithUnsignedInteger:mClusterId] + attributeId:[NSNumber numberWithUnsignedInteger:mAttributeId] + minInterval:[NSNumber numberWithUnsignedInteger:mMinInterval] + maxInterval:[NSNumber numberWithUnsignedInteger:mMaxInterval] + params:params + clientQueue:callbackQueue + reportHandler:^(NSArray *> * _Nullable values, NSError * _Nullable error) { + if (values) { + for (id item in values) { + NSLog(@"Response Item: %@", [item description]); + } + } + if (error || !mWait) { + SetCommandExitStatus(error); + } + } + subscriptionEstablished:^() { + mSubscriptionEstablished = YES; + }]; return CHIP_NO_ERROR; } + chip::System::Clock::Timeout GetWaitDuration() const override + { + return chip::System::Clock::Seconds16(mWait ? UINT16_MAX : 10); + } + protected: chip::Optional mKeepSubscriptions; chip::Optional mFabricFiltered; + bool mSubscriptionEstablished = NO; uint16_t mMinInterval; uint16_t mMaxInterval; bool mWait; + void Shutdown() override + { + mSubscriptionEstablished = NO; + ModelCommand::Shutdown(); + } + + bool DeferInteractiveCleanup() override { return mSubscriptionEstablished; } + private: chip::ClusterId mClusterId; chip::AttributeId mAttributeId; @@ -211,6 +226,7 @@ class SubscribeEvent : public ModelCommand { } } subscriptionEstablished:^() { + mSubscriptionEstablished = YES; }]; return CHIP_NO_ERROR; @@ -224,6 +240,7 @@ class SubscribeEvent : public ModelCommand { protected: chip::Optional mKeepSubscriptions; chip::Optional mEventNumber; + bool mSubscriptionEstablished = NO; uint16_t mMinInterval; uint16_t mMaxInterval; bool mWait; diff --git a/examples/chip-tool-darwin/commands/clusters/WriteAttributeCommandBridge.h b/examples/darwin-framework-tool/commands/clusters/WriteAttributeCommandBridge.h similarity index 100% rename from examples/chip-tool-darwin/commands/clusters/WriteAttributeCommandBridge.h rename to examples/darwin-framework-tool/commands/clusters/WriteAttributeCommandBridge.h diff --git a/examples/chip-tool-darwin/commands/common/CHIPCommandBridge.h b/examples/darwin-framework-tool/commands/common/CHIPCommandBridge.h similarity index 79% rename from examples/chip-tool-darwin/commands/common/CHIPCommandBridge.h rename to examples/darwin-framework-tool/commands/common/CHIPCommandBridge.h index 5557cb66b7a0ca..632f67dfbe0f8f 100644 --- a/examples/chip-tool-darwin/commands/common/CHIPCommandBridge.h +++ b/examples/darwin-framework-tool/commands/common/CHIPCommandBridge.h @@ -45,7 +45,6 @@ class CHIPCommandBridge : public Command void SetCommandExitStatus(CHIP_ERROR status) { mCommandExitStatus = status; - ShutdownCommissioner(); StopWaiting(); } @@ -76,6 +75,22 @@ class CHIPCommandBridge : public Command // if failure). void LogNSError(const char * logString, NSError * error); + // Clean up any resources allocated by the command. Some commands may hold + // on to resources after Shutdown(), but Cleanup() will guarantee those are + // cleaned up. + virtual void Cleanup() {} + + // If true, skip calling Cleanup() when in interactive mode, so the command + // can keep doing work as needed. Cleanup() will be called when quitting + // interactive mode. This method will be called before Shutdown, so it can + // use member values that Shutdown will normally reset. + virtual bool DeferInteractiveCleanup() { return NO; } + + // Execute any deferred cleanups. Used when exiting interactive mode. + void ExecuteDeferredCleanups(); + + static std::set sDeferredCleanups; + private: CHIP_ERROR InitializeCommissioner(std::string key, chip::FabricId fabricId, const chip::Credentials::AttestationTrustStore * trustStore); @@ -87,8 +102,11 @@ class CHIPCommandBridge : public Command CHIP_ERROR StartWaiting(chip::System::Clock::Timeout seconds); void StopWaiting(); + CHIP_ERROR MaybeSetUpStack(); + CHIP_ERROR MaybeTearDownStack(); + // Our three controllers: alpha, beta, gamma. - std::map mControllers; + static std::map mControllers; // The current controller; the one the current command should be using. CHIPDeviceController * mCurrentController; diff --git a/examples/chip-tool-darwin/commands/common/CHIPCommandBridge.mm b/examples/darwin-framework-tool/commands/common/CHIPCommandBridge.mm similarity index 84% rename from examples/chip-tool-darwin/commands/common/CHIPCommandBridge.mm rename to examples/darwin-framework-tool/commands/common/CHIPCommandBridge.mm index b5d8a6c1d0051b..551400c4f68bbf 100644 --- a/examples/chip-tool-darwin/commands/common/CHIPCommandBridge.mm +++ b/examples/darwin-framework-tool/commands/common/CHIPCommandBridge.mm @@ -27,10 +27,36 @@ const uint16_t kListenPort = 5541; static CHIPToolPersistentStorageDelegate * storage = nil; +std::set CHIPCommandBridge::sDeferredCleanups; +std::map CHIPCommandBridge::mControllers; CHIP_ERROR CHIPCommandBridge::Run() { ChipLogProgress(chipTool, "Running Command"); + ReturnErrorOnFailure(MaybeSetUpStack()); + SetIdentity(mCommissionerName.HasValue() ? mCommissionerName.Value() : kIdentityAlpha); + ReturnLogErrorOnFailure(RunCommand()); + ReturnLogErrorOnFailure(StartWaiting(GetWaitDuration())); + + bool deferCleanup = (IsInteractive() && DeferInteractiveCleanup()); + + Shutdown(); + + if (deferCleanup) { + sDeferredCleanups.insert(this); + } else { + Cleanup(); + } + ReturnErrorOnFailure(MaybeTearDownStack()); + + return CHIP_NO_ERROR; +} + +CHIP_ERROR CHIPCommandBridge::MaybeSetUpStack() +{ + if (IsInteractive()) { + return CHIP_NO_ERROR; + } NSData * ipk; CHIPToolKeypair * nocSigner = [[CHIPToolKeypair alloc] init]; storage = [[CHIPToolPersistentStorageDelegate alloc] init]; @@ -76,15 +102,19 @@ mControllers[identities[i]] = controller; } - // If no commissioner name passed in, default to alpha. - SetIdentity(mCommissionerName.HasValue() ? mCommissionerName.Value() : kIdentityAlpha); - - ReturnLogErrorOnFailure(RunCommand()); - ReturnLogErrorOnFailure(StartWaiting(GetWaitDuration())); - return CHIP_NO_ERROR; } +CHIP_ERROR CHIPCommandBridge::MaybeTearDownStack() +{ + CHIP_ERROR err; + if (IsInteractive()) { + return CHIP_NO_ERROR; + } + err = ShutdownCommissioner(); + return err; +} + void CHIPCommandBridge::SetIdentity(const char * identity) { std::string name = std::string(identity); @@ -116,7 +146,6 @@ CHIP_ERROR CHIPCommandBridge::StartWaiting(chip::System::Clock::Timeout duration) { - chip::DeviceLayer::PlatformMgr().StartEventLoopTask(); auto waitingUntil = std::chrono::system_clock::now() + std::chrono::duration_cast(duration); { std::unique_lock lk(cvWaitingForResponseMutex); @@ -124,7 +153,6 @@ mCommandExitStatus = CHIP_ERROR_TIMEOUT; } } - LogErrorOnFailure(chip::DeviceLayer::PlatformMgr().StopEventLoopTask()); return mCommandExitStatus; } @@ -133,7 +161,7 @@ { { std::lock_guard lk(cvWaitingForResponseMutex); - mWaitingForResponse = false; + mWaitingForResponse = NO; } cvWaitingForResponse.notify_all(); } @@ -156,3 +184,11 @@ ChipLogError(chipTool, "%s: %s", logString, chip::ErrorStr(err)); } } + +void CHIPCommandBridge::ExecuteDeferredCleanups() +{ + for (auto * cmd : sDeferredCleanups) { + cmd->Cleanup(); + } + sDeferredCleanups.clear(); +} diff --git a/examples/chip-tool-darwin/commands/common/CHIPCommandStorageDelegate.h b/examples/darwin-framework-tool/commands/common/CHIPCommandStorageDelegate.h similarity index 100% rename from examples/chip-tool-darwin/commands/common/CHIPCommandStorageDelegate.h rename to examples/darwin-framework-tool/commands/common/CHIPCommandStorageDelegate.h diff --git a/examples/chip-tool-darwin/commands/common/CHIPCommandStorageDelegate.mm b/examples/darwin-framework-tool/commands/common/CHIPCommandStorageDelegate.mm similarity index 100% rename from examples/chip-tool-darwin/commands/common/CHIPCommandStorageDelegate.mm rename to examples/darwin-framework-tool/commands/common/CHIPCommandStorageDelegate.mm diff --git a/examples/chip-tool-darwin/commands/common/CHIPToolKeypair.h b/examples/darwin-framework-tool/commands/common/CHIPToolKeypair.h similarity index 100% rename from examples/chip-tool-darwin/commands/common/CHIPToolKeypair.h rename to examples/darwin-framework-tool/commands/common/CHIPToolKeypair.h diff --git a/examples/chip-tool-darwin/commands/common/CHIPToolKeypair.mm b/examples/darwin-framework-tool/commands/common/CHIPToolKeypair.mm similarity index 100% rename from examples/chip-tool-darwin/commands/common/CHIPToolKeypair.mm rename to examples/darwin-framework-tool/commands/common/CHIPToolKeypair.mm diff --git a/examples/darwin-framework-tool/commands/interactive/Commands.h b/examples/darwin-framework-tool/commands/interactive/Commands.h new file mode 100644 index 00000000000000..59a06b6a60fe5b --- /dev/null +++ b/examples/darwin-framework-tool/commands/interactive/Commands.h @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#pragma once + +#include "../common/CHIPCommandBridge.h" +#include + +#include "InteractiveCommands.h" + +void registerCommandsInteractive(Commands & commands) +{ + const char * clusterName = "interactive"; + + commands_list clusterCommands = { +#if CONFIG_USE_INTERACTIVE_MODE + make_unique(&commands), +#endif // CONFIG_USE_INTERACTIVE_MODE + }; + + commands.Register(clusterName, clusterCommands); +} diff --git a/examples/darwin-framework-tool/commands/interactive/InteractiveCommands.h b/examples/darwin-framework-tool/commands/interactive/InteractiveCommands.h new file mode 100644 index 00000000000000..98347747f64fc6 --- /dev/null +++ b/examples/darwin-framework-tool/commands/interactive/InteractiveCommands.h @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#pragma once + +#include "../common/CHIPCommandBridge.h" +#include "commands/common/Commands.h" + +#include "InteractiveCommands.h" + +class Commands; + +class InteractiveStartCommand : public CHIPCommandBridge +{ +public: + InteractiveStartCommand(Commands * commandsHandler) : CHIPCommandBridge("start"), mHandler(commandsHandler) {} + + CHIP_ERROR RunCommand() override; + + chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(0); } + +private: + bool ParseCommand(char * command); + Commands * mHandler = nullptr; +}; diff --git a/examples/darwin-framework-tool/commands/interactive/InteractiveCommands.mm b/examples/darwin-framework-tool/commands/interactive/InteractiveCommands.mm new file mode 100644 index 00000000000000..3ffe41c7744f94 --- /dev/null +++ b/examples/darwin-framework-tool/commands/interactive/InteractiveCommands.mm @@ -0,0 +1,127 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ + +#include "InteractiveCommands.h" + +#include +#include +#include +#include + +char kInteractiveModeName[] = ""; +constexpr const char * kInteractiveModePrompt = ">>> "; +constexpr uint8_t kInteractiveModeArgumentsMaxLength = 32; +constexpr const char * kInteractiveModeHistoryFilePath = "/tmp/darwin_framework_tool_history"; +constexpr const char * kInteractiveModeStopCommand = "quit()"; + +namespace { + +bool gIsCommandRunning = NO; + +void ClearLine() +{ + printf("\r\x1B[0J"); // Move cursor to the beginning of the line and clear from cursor to end of the screen +} + +void ENFORCE_FORMAT(3, 0) LoggingCallback(const char * module, uint8_t category, const char * msg, va_list args) +{ + ClearLine(); + chip::Logging::Platform::LogV(module, category, msg, args); + ClearLine(); + + if (gIsCommandRunning == NO) { + rl_forced_update_display(); + } +} +} // namespace + +char * GetCommand(char * command) +{ + if (command != nullptr) { + free(command); + command = nullptr; + } + + command = readline(kInteractiveModePrompt); + + // Do not save empty lines + if (command != nullptr && *command) { + add_history(command); + write_history(kInteractiveModeHistoryFilePath); + } + + return command; +} + +CHIP_ERROR InteractiveStartCommand::RunCommand() +{ + read_history(kInteractiveModeHistoryFilePath); + + // Logs needs to be redirected in order to refresh the screen appropriately when something + // is dumped to stdout while the user is typing a command. + chip::Logging::SetLogRedirectCallback(LoggingCallback); + + char * command = nullptr; + while (YES) { + command = GetCommand(command); + if (command != nullptr && !ParseCommand(command)) { + break; + } + } + + SetCommandExitStatus(CHIP_NO_ERROR); + return CHIP_NO_ERROR; +} + +bool InteractiveStartCommand::ParseCommand(char * command) +{ + if (strcmp(command, kInteractiveModeStopCommand) == 0) { + ExecuteDeferredCleanups(); + return NO; + } + + char * args[kInteractiveModeArgumentsMaxLength]; + args[0] = kInteractiveModeName; + int argsCount = 1; + std::string arg; + + std::stringstream ss(command); + while (ss >> std::quoted(arg)) { + if (argsCount == kInteractiveModeArgumentsMaxLength) { + gIsCommandRunning = YES; + ChipLogError(chipTool, "Too many arguments. Ignoring."); + gIsCommandRunning = NO; + return YES; + } + + char * carg = new char[arg.size() + 1]; + strcpy(carg, arg.c_str()); + args[argsCount++] = carg; + } + + ClearLine(); + gIsCommandRunning = YES; + mHandler->RunInteractive(argsCount, args); + gIsCommandRunning = NO; + + // Do not delete arg[0] + while (--argsCount) + delete[] args[argsCount]; + + return YES; +} diff --git a/examples/chip-tool-darwin/commands/pairing/Commands.h b/examples/darwin-framework-tool/commands/pairing/Commands.h similarity index 71% rename from examples/chip-tool-darwin/commands/pairing/Commands.h rename to examples/darwin-framework-tool/commands/pairing/Commands.h index 38f23e2a3e286f..1fed642addae64 100644 --- a/examples/chip-tool-darwin/commands/pairing/Commands.h +++ b/examples/darwin-framework-tool/commands/pairing/Commands.h @@ -18,6 +18,7 @@ #pragma once +#include "OpenCommissioningWindowCommand.h" #include "PairingCommandBridge.h" class PairCode : public PairingCommandBridge @@ -26,6 +27,18 @@ class PairCode : public PairingCommandBridge PairCode() : PairingCommandBridge("code", PairingMode::Code, PairingNetworkType::None) {} }; +class PairCodeWifi : public PairingCommandBridge +{ +public: + PairCodeWifi() : PairingCommandBridge("code-wifi", PairingMode::Code, PairingNetworkType::WiFi) {} +}; + +class PairCodeThread : public PairingCommandBridge +{ +public: + PairCodeThread() : PairingCommandBridge("code-thread", PairingMode::Code, PairingNetworkType::Thread) {} +}; + class PairWithIPAddress : public PairingCommandBridge { public: @@ -55,8 +68,10 @@ void registerCommandsPairing(Commands & commands) const char * clusterName = "Pairing"; commands_list clusterCommands = { - make_unique(), make_unique(), make_unique(), make_unique(), - make_unique(), + make_unique(), make_unique(), + make_unique(), make_unique(), + make_unique(), make_unique(), + make_unique(), make_unique(), }; commands.Register(clusterName, clusterCommands); diff --git a/examples/darwin-framework-tool/commands/pairing/OpenCommissioningWindowCommand.h b/examples/darwin-framework-tool/commands/pairing/OpenCommissioningWindowCommand.h new file mode 100644 index 00000000000000..c5af318e841f35 --- /dev/null +++ b/examples/darwin-framework-tool/commands/pairing/OpenCommissioningWindowCommand.h @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#pragma once + +#include "../common/CHIPCommandBridge.h" + +class OpenCommissioningWindowCommand : public CHIPCommandBridge +{ +public: + OpenCommissioningWindowCommand() : CHIPCommandBridge("open-commissioning-window") + { + AddArgument("node-id", 0, UINT64_MAX, &mNodeId, "Node to open a commissionging window on."); + AddArgument("option", 0, 1, &mCommissioningWindowOption, + "1 to use Enhanced Commissioning Method.\n 0 to use Basic Commissioning Method."); + AddArgument("window-timeout", 0, UINT16_MAX, &mCommissioningWindowTimeoutMs, + "Time, in seconds, before the commissioning window closes."); + AddArgument("iteration", chip::kSpake2p_Min_PBKDF_Iterations, chip::kSpake2p_Max_PBKDF_Iterations, &mIteration, + "Number of PBKDF iterations to use to derive the verifier. Ignored if 'option' is 0."); + AddArgument("discriminator", 0, 4096, &mDiscriminator, "Discriminator to use for advertising. Ignored if 'option' is 0."); + AddArgument("timeout", 0, UINT16_MAX, &mTimeout, "Time, in seconds, before this command is considered to have timed out."); + } + +protected: + /////////// CHIPCommandBridge Interface ///////// + CHIP_ERROR RunCommand() override; + // We issue multiple data model operations for this command, and the default + // timeout for those is 10 seconds, so default to 20 seconds. + chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(mTimeout.ValueOr(20)); } + + chip::NodeId mNodeId; + uint8_t mCommissioningWindowOption; + uint16_t mCommissioningWindowTimeoutMs; + uint32_t mIteration; + uint16_t mDiscriminator; + + chip::Optional mTimeout; + + // TODO: We should not need these members if we got sane callbacks from the + // framework when the commissioning window is open. + dispatch_queue_t mWorkQueue; + dispatch_source_t mTimer; +}; diff --git a/examples/darwin-framework-tool/commands/pairing/OpenCommissioningWindowCommand.mm b/examples/darwin-framework-tool/commands/pairing/OpenCommissioningWindowCommand.mm new file mode 100644 index 00000000000000..e7f97bca379b0d --- /dev/null +++ b/examples/darwin-framework-tool/commands/pairing/OpenCommissioningWindowCommand.mm @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#import + +#include "OpenCommissioningWindowCommand.h" + +CHIP_ERROR OpenCommissioningWindowCommand::RunCommand() +{ + auto * controller = CurrentCommissioner(); + NSError * error; + __block NSString * pairingCode; + if (mCommissioningWindowOption == 0) { + [controller openPairingWindow:mNodeId duration:mCommissioningWindowTimeoutMs error:&error]; + } else { + pairingCode = [controller openPairingWindowWithPIN:mNodeId + duration:mCommissioningWindowTimeoutMs + discriminator:mDiscriminator + setupPIN:arc4random() + error:&error]; + } + + if (error != nil) { + SetCommandExitStatus(error); + return CHIP_NO_ERROR; + } + + // TODO: Those should be async operations and we should not claim to + // be done until they complete. As things stand, we have no idea + // how to tell when we're done, so just set a timer for slightly + // less than our command timeout to call SetCommandExitStatus. + mWorkQueue = dispatch_queue_create("com.chip.open_commissioning_window", DISPATCH_QUEUE_SERIAL); + mTimer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, mWorkQueue); + auto * self = this; + dispatch_source_set_event_handler(mTimer, ^{ + dispatch_source_cancel(mTimer); + mTimer = nil; + mWorkQueue = nil; + if (pairingCode != nil) { + ChipLogProgress(chipTool, "Setup code: %s\n", [pairingCode UTF8String]); + } + self->SetCommandExitStatus(CHIP_NO_ERROR); + }); + dispatch_source_set_timer( + mTimer, dispatch_time(DISPATCH_TIME_NOW, (GetWaitDuration().count() - 2000) * NSEC_PER_MSEC), DISPATCH_TIME_FOREVER, 0); + dispatch_resume(mTimer); + + return CHIP_NO_ERROR; +} diff --git a/examples/chip-tool-darwin/commands/pairing/PairingCommandBridge.h b/examples/darwin-framework-tool/commands/pairing/PairingCommandBridge.h similarity index 100% rename from examples/chip-tool-darwin/commands/pairing/PairingCommandBridge.h rename to examples/darwin-framework-tool/commands/pairing/PairingCommandBridge.h diff --git a/examples/chip-tool-darwin/commands/pairing/PairingCommandBridge.mm b/examples/darwin-framework-tool/commands/pairing/PairingCommandBridge.mm similarity index 100% rename from examples/chip-tool-darwin/commands/pairing/PairingCommandBridge.mm rename to examples/darwin-framework-tool/commands/pairing/PairingCommandBridge.mm diff --git a/examples/chip-tool-darwin/commands/pairing/PairingDelegateBridge.h b/examples/darwin-framework-tool/commands/pairing/PairingDelegateBridge.h similarity index 100% rename from examples/chip-tool-darwin/commands/pairing/PairingDelegateBridge.h rename to examples/darwin-framework-tool/commands/pairing/PairingDelegateBridge.h diff --git a/examples/chip-tool-darwin/commands/pairing/PairingDelegateBridge.mm b/examples/darwin-framework-tool/commands/pairing/PairingDelegateBridge.mm similarity index 100% rename from examples/chip-tool-darwin/commands/pairing/PairingDelegateBridge.mm rename to examples/darwin-framework-tool/commands/pairing/PairingDelegateBridge.mm diff --git a/examples/chip-tool-darwin/commands/storage/Commands.h b/examples/darwin-framework-tool/commands/storage/Commands.h similarity index 100% rename from examples/chip-tool-darwin/commands/storage/Commands.h rename to examples/darwin-framework-tool/commands/storage/Commands.h diff --git a/examples/chip-tool-darwin/commands/storage/StorageManagementCommand.h b/examples/darwin-framework-tool/commands/storage/StorageManagementCommand.h similarity index 100% rename from examples/chip-tool-darwin/commands/storage/StorageManagementCommand.h rename to examples/darwin-framework-tool/commands/storage/StorageManagementCommand.h diff --git a/examples/chip-tool-darwin/commands/storage/StorageManagementCommand.mm b/examples/darwin-framework-tool/commands/storage/StorageManagementCommand.mm similarity index 100% rename from examples/chip-tool-darwin/commands/storage/StorageManagementCommand.mm rename to examples/darwin-framework-tool/commands/storage/StorageManagementCommand.mm diff --git a/examples/chip-tool-darwin/commands/tests/TestCommandBridge.h b/examples/darwin-framework-tool/commands/tests/TestCommandBridge.h similarity index 79% rename from examples/chip-tool-darwin/commands/tests/TestCommandBridge.h rename to examples/darwin-framework-tool/commands/tests/TestCommandBridge.h index 42c15e097f048b..4e5c870225ae0e 100644 --- a/examples/chip-tool-darwin/commands/tests/TestCommandBridge.h +++ b/examples/darwin-framework-tool/commands/tests/TestCommandBridge.h @@ -190,20 +190,14 @@ class TestCommandBridge : public CHIPCommandBridge, Exit("Unexpected deletion of pairing"); } - void PairingComplete(chip::NodeId nodeId, NSError * _Nullable error) + void PairingComplete(chip::NodeId nodeId) { - CHIP_ERROR err = [CHIPError errorToCHIPErrorCode:error]; - if (err != CHIP_NO_ERROR) { - Exit("Pairing completed with error", err); - return; - } - CHIPDeviceController * controller = CurrentCommissioner(); VerifyOrReturn(controller != nil, Exit("No current commissioner")); NSError * commissionError = nil; [controller commissionDevice:nodeId commissioningParams:[[CHIPCommissioningParameters alloc] init] error:&commissionError]; - err = [CHIPError errorToCHIPErrorCode:commissionError]; + CHIP_ERROR err = [CHIPError errorToCHIPErrorCode:commissionError]; if (err != CHIP_NO_ERROR) { Exit("Failed to kick off commissioning", err); return; @@ -256,16 +250,56 @@ class TestCommandBridge : public CHIPCommandBridge, return ConstraintsChecker::CheckConstraintIsHexString(itemName, value, expectHexString); } + template bool CheckConstraintContains(const char * _Nonnull itemName, const NSArray * _Nonnull current, T expected) + { + for (id currentElement in current) { + if ([currentElement isEqualToNumber:@(expected)]) { + return true; + } + } + + Exit(std::string(itemName) + " expect the value " + std::to_string(expected) + " but the list does not contains it."); + return false; + } + + template bool CheckConstraintExcludes(const char * _Nonnull itemName, const NSArray * _Nonnull current, T expected) + { + for (id currentElement in current) { + if ([currentElement isEqualToNumber:@(expected)]) { + Exit(std::string(itemName) + " does not expect the value " + std::to_string(expected) + + " but the list contains it."); + return false; + } + } + + return true; + } + bool CheckConstraintNotValue( - const char * _Nonnull itemName, const NSString * _Nonnull current, const NSString * _Nonnull expected) + const char * _Nonnull itemName, const NSString * _Nullable current, const NSString * _Nullable expected) { + if (current == nil && expected == nil) { + Exit(std::string(itemName) + " got unexpected value. Both values are nil."); + return false; + } + if ((current == nil) != (expected == nil)) { + return true; + } const chip::CharSpan currentValue([current UTF8String], [current lengthOfBytesUsingEncoding:NSUTF8StringEncoding]); const chip::CharSpan expectedValue([expected UTF8String], [expected lengthOfBytesUsingEncoding:NSUTF8StringEncoding]); return ConstraintsChecker::CheckConstraintNotValue(itemName, currentValue, expectedValue); } - bool CheckConstraintNotValue(const char * _Nonnull itemName, const NSData * _Nonnull current, const NSData * _Nonnull expected) + bool CheckConstraintNotValue( + const char * _Nonnull itemName, const NSData * _Nullable current, const NSData * _Nullable expected) { + if (current == nil && expected == nil) { + Exit(std::string(itemName) + " got unexpected value. Both values are nil."); + return false; + } + if ((current == nil) != (expected == nil)) { + return true; + } const chip::ByteSpan currentValue(static_cast([current bytes]), [current length]); const chip::ByteSpan expectedValue(static_cast([expected bytes]), [expected length]); return ConstraintsChecker::CheckConstraintNotValue(itemName, currentValue, expectedValue); @@ -289,7 +323,7 @@ class TestCommandBridge : public CHIPCommandBridge, } template - bool CheckConstraintNotValue(const char * _Nonnull itemName, const NSNumber * _Nonnull current, T expected) + bool CheckConstraintNotValue(const char * _Nonnull itemName, const NSNumber * _Nullable current, T expected) { return CheckConstraintNotValue(itemName, current, @(expected)); } @@ -300,6 +334,53 @@ class TestCommandBridge : public CHIPCommandBridge, return CheckConstraintNotValue(itemName, currentValue, @(expected)); } + using ConstraintsChecker::CheckConstraintMinValue; + + // Used when the minValue is a saved variable, since ConstraintsChecker does + // not expect Core Foundation types. + template ::value, int> = 0> + bool CheckConstraintMinValue(const char * _Nonnull itemName, T current, const NSNumber * _Nonnull expected) + { + return ConstraintsChecker::CheckConstraintMinValue(itemName, current, [expected longLongValue]); + } + + template ::value, int> = 0> + bool CheckConstraintMinValue(const char * _Nonnull itemName, T current, const NSNumber * _Nonnull expected) + { + return ConstraintsChecker::CheckConstraintMinValue(itemName, current, [expected unsignedLongLongValue]); + } + + using ConstraintsChecker::CheckConstraintMaxValue; + + // Used when the maxValue is a saved variable, since ConstraintsChecker does + // not expect Core Foundation types. + template ::value, int> = 0> + bool CheckConstraintMaxValue(const char * _Nonnull itemName, T current, const NSNumber * _Nonnull expected) + { + return ConstraintsChecker::CheckConstraintMaxValue(itemName, current, [expected longLongValue]); + } + + template ::value, int> = 0> + bool CheckConstraintMaxValue(const char * _Nonnull itemName, T current, const NSNumber * _Nonnull expected) + { + return ConstraintsChecker::CheckConstraintMaxValue(itemName, current, [expected unsignedLongLongValue]); + } + + bool CheckConstraintHasValue(const char * _Nonnull itemName, id _Nullable current, bool shouldHaveValue) + { + if (shouldHaveValue && (current == nil)) { + Exit(std::string(itemName) + " expected to have a value but doesn't"); + return false; + } + + if (!shouldHaveValue && (current != nil)) { + Exit(std::string(itemName) + " not expected to have a value but does"); + return false; + } + + return true; + } + bool CheckValueAsString(const char * _Nonnull itemName, const id _Nonnull current, const NSString * _Nonnull expected) { NSString * data = current; @@ -403,7 +484,14 @@ NS_ASSUME_NONNULL_BEGIN - (void)onPairingComplete:(NSError * _Nullable)error { if (_active) { - _commandBridge->PairingComplete(_deviceId, error); + if (error != nil) { + _active = NO; + NSLog(@"Pairing complete with error"); + CHIP_ERROR err = [CHIPError errorToCHIPErrorCode:error]; + _commandBridge->OnStatusUpdate([self convertToStatusIB:err]); + } else { + _commandBridge->PairingComplete(_deviceId); + } } } diff --git a/examples/chip-tool-darwin/entitlements/codesign.py b/examples/darwin-framework-tool/entitlements/codesign.py similarity index 89% rename from examples/chip-tool-darwin/entitlements/codesign.py rename to examples/darwin-framework-tool/entitlements/codesign.py index 07a972212562d6..a23f9c39497cc5 100644 --- a/examples/chip-tool-darwin/entitlements/codesign.py +++ b/examples/darwin-framework-tool/entitlements/codesign.py @@ -34,7 +34,8 @@ def get_identity(): "No valid identity has been found. Application will run without entitlements.") exit(0) - identity = re.search(r'\b[0-9a-fA-F]{40}\b', command_result) + command_result = command_result.replace("\\n", "\n") + identity = re.search(r'\b[0-9a-fA-F]{40}\b(?![^\n]*\(CSSMERR_TP_CERT_EXPIRED\))', command_result) if identity is None: print( "No valid identity has been found. Application will run without entitlements.") @@ -57,8 +58,8 @@ def codesign(args): if __name__ == '__main__': parser = argparse.ArgumentParser( - description='Codesign the chip-tool-darwin binary') - parser.add_argument('--entitlements_path', default='entitlements/chip-tool-darwin.entitlements', + description='Codesign the darwin-framework-tool binary') + parser.add_argument('--entitlements_path', default='entitlements/darwin-framework-tool.entitlements', help='Set the entitlements for codesign', required=True) parser.add_argument( '--log_path', help='Output log file destination', required=True) diff --git a/examples/chip-tool-darwin/entitlements/chip-tool-darwin.entitlements b/examples/darwin-framework-tool/entitlements/darwin-framework-tool.entitlements similarity index 100% rename from examples/chip-tool-darwin/entitlements/chip-tool-darwin.entitlements rename to examples/darwin-framework-tool/entitlements/darwin-framework-tool.entitlements diff --git a/examples/chip-tool-darwin/main.mm b/examples/darwin-framework-tool/main.mm similarity index 92% rename from examples/chip-tool-darwin/main.mm rename to examples/darwin-framework-tool/main.mm index 1d78c781596fe4..53d12e4b8d9032 100644 --- a/examples/chip-tool-darwin/main.mm +++ b/examples/darwin-framework-tool/main.mm @@ -17,9 +17,8 @@ */ #include "commands/common/Commands.h" - +#include "commands/interactive/Commands.h" #include "commands/pairing/Commands.h" - #include "commands/storage/Commands.h" #include @@ -29,6 +28,7 @@ int main(int argc, const char * argv[]) { Commands commands; registerCommandsPairing(commands); + registerCommandsInteractive(commands); registerCommandsStorage(commands); registerCommandsTests(commands); registerClusters(commands); diff --git a/examples/chip-tool-darwin/templates/commands.zapt b/examples/darwin-framework-tool/templates/commands.zapt similarity index 96% rename from examples/chip-tool-darwin/templates/commands.zapt rename to examples/darwin-framework-tool/templates/commands.zapt index 6ad1b9f1bc3005..55eaf9e419546f 100644 --- a/examples/chip-tool-darwin/templates/commands.zapt +++ b/examples/darwin-framework-tool/templates/commands.zapt @@ -56,7 +56,7 @@ public: uint16_t __block responsesNeeded = repeatCount; while (repeatCount--) { - [cluster {{asLowerCamelCase name}}With{{#if (hasArguments)}}Params:params completionHandler:{{else}}CompletionHandler:{{/if}} + [cluster {{asLowerCamelCase name}}WithParams:params completionHandler: {{#if hasSpecificResponse}} ^(CHIP{{asUpperCamelCase clusterName}}Cluster{{asUpperCamelCase responseName}}Params * _Nullable values, NSError * _Nullable error) { NSLog(@"Values: %@", values); @@ -221,8 +221,9 @@ public: params.fabricFiltered = mFabricFiltered.HasValue() ? [NSNumber numberWithBool:mFabricFiltered.Value()] : nil; [cluster subscribe{{>attribute}}WithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval] maxInterval:[NSNumber numberWithUnsignedInt:mMaxInterval] - params:params - subscriptionEstablished: nullptr reportHandler:^({{asObjectiveCClass type parent.name}} * _Nullable value, NSError * _Nullable error) { + params:params + subscriptionEstablished:^(){ mSubscriptionEstablished=YES; } + reportHandler:^({{asObjectiveCClass type parent.name}} * _Nullable value, NSError * _Nullable error) { NSLog(@"{{asUpperCamelCase parent.name}}.{{asUpperCamelCase name}} response %@", [value description]); if (error || !mWait){ SetCommandExitStatus(error); @@ -231,12 +232,6 @@ public: return CHIP_NO_ERROR; } - - chip::System::Clock::Timeout GetWaitDuration() const override - { - return chip::System::Clock::Seconds16(mWait ? UINT16_MAX : 10); - } - }; {{/if}} diff --git a/examples/chip-tool-darwin/templates/helper.js b/examples/darwin-framework-tool/templates/helper.js similarity index 100% rename from examples/chip-tool-darwin/templates/helper.js rename to examples/darwin-framework-tool/templates/helper.js diff --git a/examples/chip-tool-darwin/templates/partials/decodable_value.zapt b/examples/darwin-framework-tool/templates/partials/decodable_value.zapt similarity index 100% rename from examples/chip-tool-darwin/templates/partials/decodable_value.zapt rename to examples/darwin-framework-tool/templates/partials/decodable_value.zapt diff --git a/examples/chip-tool-darwin/templates/templates.json b/examples/darwin-framework-tool/templates/templates.json similarity index 100% rename from examples/chip-tool-darwin/templates/templates.json rename to examples/darwin-framework-tool/templates/templates.json diff --git a/examples/chip-tool-darwin/templates/tests/CHIPTestClustersObjc-src.zapt b/examples/darwin-framework-tool/templates/tests/CHIPTestClustersObjc-src.zapt similarity index 100% rename from examples/chip-tool-darwin/templates/tests/CHIPTestClustersObjc-src.zapt rename to examples/darwin-framework-tool/templates/tests/CHIPTestClustersObjc-src.zapt diff --git a/examples/chip-tool-darwin/templates/tests/CHIPTestClustersObjc.zapt b/examples/darwin-framework-tool/templates/tests/CHIPTestClustersObjc.zapt similarity index 100% rename from examples/chip-tool-darwin/templates/tests/CHIPTestClustersObjc.zapt rename to examples/darwin-framework-tool/templates/tests/CHIPTestClustersObjc.zapt diff --git a/examples/chip-tool-darwin/templates/tests/commands.zapt b/examples/darwin-framework-tool/templates/tests/commands.zapt similarity index 100% rename from examples/chip-tool-darwin/templates/tests/commands.zapt rename to examples/darwin-framework-tool/templates/tests/commands.zapt diff --git a/examples/chip-tool-darwin/templates/tests/partials/check_test_value.zapt b/examples/darwin-framework-tool/templates/tests/partials/check_test_value.zapt similarity index 87% rename from examples/chip-tool-darwin/templates/tests/partials/check_test_value.zapt rename to examples/darwin-framework-tool/templates/tests/partials/check_test_value.zapt index dec8b888ff692c..16847487714118 100644 --- a/examples/chip-tool-darwin/templates/tests/partials/check_test_value.zapt +++ b/examples/darwin-framework-tool/templates/tests/partials/check_test_value.zapt @@ -38,7 +38,12 @@ {{else}} VerifyOrReturn(CheckValue{{#if (isString type)}}AsString{{/if}}("{{label}}", {{actual}}, {{~#if (chip_tests_variables_has expected)}}{{expected}} - {{~else if (isOctetString type)}}[[NSData alloc] initWithBytes:"{{octetStringEscapedForCLiteral expected}}" length:{{expected.length}}] + {{~else if (isOctetString type)}} + {{~#if (isHexString expected)}} + [[NSData alloc] initWithBytes:"{{octetStringFromHexString expected}}" length:{{octetStringLengthFromHexString expected}}] + {{else}} + [[NSData alloc] initWithBytes:"{{octetStringEscapedForCLiteral expected}}" length:{{expected.length}}] + {{/if}} {{~else if (isCharString type)}}@"{{expected}}" {{else if (chip_tests_config_has expected)}}m{{asUpperCamelCase expected}}.HasValue() ? m{{asUpperCamelCase expected}}.Value() : {{asTypedLiteral (chip_tests_config_get_default_value expected) (chip_tests_config_get_type expected)}} {{~else}}{{asTypedExpressionFromObjectiveC expected type}} diff --git a/examples/darwin-framework-tool/templates/tests/partials/checks/maybeCheckExpectedConstraints.zapt b/examples/darwin-framework-tool/templates/tests/partials/checks/maybeCheckExpectedConstraints.zapt new file mode 100644 index 00000000000000..29a0930f90772b --- /dev/null +++ b/examples/darwin-framework-tool/templates/tests/partials/checks/maybeCheckExpectedConstraints.zapt @@ -0,0 +1,62 @@ +{{#if hasExpectedConstraints}} + {{~#*inline "item"}}{{asLowerCamelCase name}}{{/inline}} + + {{~#if isOptional}} + {{~#if (hasProperty expectedConstraints "hasValue")}}VerifyOrReturn(CheckConstraintHasValue("{{>item}}", {{>actualValue}}, {{expectedConstraints.hasValue}}));{{/if}} + if ({{>actualValue}} != nil) { + {{else if isNullable}} + if ({{>actualValue}} != nil) { + {{/if}} + + {{#if (hasProperty expectedConstraints "type")}}VerifyOrReturn(CheckConstraintType("{{>item}}", "", "{{expectedConstraints.type}}"));{{/if}} + + {{~#if (hasProperty expectedConstraints "format")}}VerifyOrReturn(CheckConstraintFormat("{{>item}}", "", "{{expectedConstraints.format}}"));{{/if}} + + {{~#if (hasProperty expectedConstraints "startsWith")}}VerifyOrReturn(CheckConstraintStartsWith("{{>item}}", {{>actualValue}}, "{{expectedConstraints.startsWith}}"));{{/if}} + + {{~#if (hasProperty expectedConstraints "endsWith")}}VerifyOrReturn(CheckConstraintEndsWith("{{>item}}", {{>actualValue}}, "{{expectedConstraints.endsWith}}"));{{/if}} + + {{~#if (hasProperty expectedConstraints "isUpperCase")}}VerifyOrReturn(CheckConstraintIsUpperCase("{{>item}}", {{>actualValue}}, {{expectedConstraints.isUpperCase}}));{{/if}} + + {{~#if (hasProperty expectedConstraints "isLowerCase")}}VerifyOrReturn(CheckConstraintIsLowerCase("{{>item}}", {{>actualValue}}, {{expectedConstraints.isLowerCase}}));{{/if}} + + {{~#if (hasProperty expectedConstraints "isHexString")}}VerifyOrReturn(CheckConstraintIsHexString("{{>item}}", {{>actualValue}}, {{expectedConstraints.isHexString}}));{{/if}} + + {{~#if (hasProperty expectedConstraints "minLength")}}VerifyOrReturn(CheckConstraintMinLength("{{>item}}", [{{>actualValue}} length], {{expectedConstraints.minLength}}));{{/if}} + + {{~#if (hasProperty expectedConstraints "maxLength")}}VerifyOrReturn(CheckConstraintMaxLength("{{>item}}", [{{>actualValue}} length], {{expectedConstraints.maxLength}}));{{/if}} + + {{~#if (hasProperty expectedConstraints "minValue")}} + VerifyOrReturn(CheckConstraintMinValue<{{chipType}}>("{{>item}}", [{{>actualValue}} {{asObjectiveCNumberType "" type true}}Value], {{asTypedLiteral expectedConstraints.minValue type}})); + {{/if}} + + {{~#if (hasProperty expectedConstraints "maxValue")}} + VerifyOrReturn(CheckConstraintMaxValue<{{chipType}}>("{{>item}}", [{{>actualValue}} {{asObjectiveCNumberType "" type true}}Value], {{asTypedLiteral expectedConstraints.maxValue type}})); + {{/if}} + + {{~#if (hasProperty expectedConstraints "contains")}} + {{#chip_tests_iterate_expected_list expectedConstraints.contains}} + VerifyOrReturn(CheckConstraintContains("{{asLowerCamelCase name}}", {{>actualValue}}, {{asTypedLiteral value type}})); + {{/chip_tests_iterate_expected_list}} + {{/if}} + + {{~#if (hasProperty expectedConstraints "excludes")}} + {{#chip_tests_iterate_expected_list expectedConstraints.excludes}} + VerifyOrReturn(CheckConstraintExcludes("{{asLowerCamelCase name}}", {{>actualValue}}, {{asTypedLiteral value type}})); + {{/chip_tests_iterate_expected_list}} + {{/if}} + + {{~#if isOptional}} + } + {{else if isNullable}} + } + {{/if}} + + {{~#if (hasProperty expectedConstraints "notValue")}} + {{#if (isLiteralNull expectedConstraints.notValue)}} + VerifyOrReturn(CheckValueNonNull("{{>item}}", {{>actualValue}})); + {{else}} + VerifyOrReturn(CheckConstraintNotValue("{{>item}}", {{>actualValue}}, {{asTypedLiteral expectedConstraints.notValue type}})); + {{/if}} + {{/if}} +{{/if}} diff --git a/examples/chip-tool-darwin/templates/tests/partials/test_cluster.zapt b/examples/darwin-framework-tool/templates/tests/partials/test_cluster.zapt similarity index 75% rename from examples/chip-tool-darwin/templates/tests/partials/test_cluster.zapt rename to examples/darwin-framework-tool/templates/tests/partials/test_cluster.zapt index 67a76abd765afa..77abd2f0a024b2 100644 --- a/examples/chip-tool-darwin/templates/tests/partials/test_cluster.zapt +++ b/examples/darwin-framework-tool/templates/tests/partials/test_cluster.zapt @@ -209,47 +209,13 @@ class {{filename}}: public TestCommandBridge {{>check_test_value actual="actualValue" expected=expectedValue cluster=../cluster}} } {{/if}} - {{#if hasExpectedConstraints}} - {{~#*inline "item"}}{{asLowerCamelCase name}}{{/inline}} - {{#if (hasProperty expectedConstraints "type")}}VerifyOrReturn(CheckConstraintType("{{>item}}", "", "{{expectedConstraints.type}}"));{{/if}} - {{~#if (hasProperty expectedConstraints "format")}}VerifyOrReturn(CheckConstraintFormat("{{>item}}", "", "{{expectedConstraints.format}}"));{{/if}} - {{~#if (hasProperty expectedConstraints "startsWith")}}VerifyOrReturn(CheckConstraintStartsWith("{{>item}}", {{>actualValue}}, "{{expectedConstraints.startsWith}}"));{{/if}} - {{~#if (hasProperty expectedConstraints "endsWith")}}VerifyOrReturn(CheckConstraintEndsWith("{{>item}}", {{>actualValue}}, "{{expectedConstraints.endsWith}}"));{{/if}} - {{~#if (hasProperty expectedConstraints "isUpperCase")}}VerifyOrReturn(CheckConstraintIsUpperCase("{{>item}}", {{>actualValue}}, {{expectedConstraints.isUpperCase}}));{{/if}} - {{~#if (hasProperty expectedConstraints "isLowerCase")}}VerifyOrReturn(CheckConstraintIsLowerCase("{{>item}}", {{>actualValue}}, {{expectedConstraints.isLowerCase}}));{{/if}} - {{~#if (hasProperty expectedConstraints "isHexString")}}VerifyOrReturn(CheckConstraintIsHexString("{{>item}}", {{>actualValue}}, {{expectedConstraints.isHexString}}));{{/if}} - {{~#if (hasProperty expectedConstraints "minLength")}}VerifyOrReturn(CheckConstraintMinLength("{{>item}}", [{{>actualValue}} length], {{expectedConstraints.minLength}}));{{/if}} - {{~#if (hasProperty expectedConstraints "maxLength")}}VerifyOrReturn(CheckConstraintMaxLength("{{>item}}", [{{>actualValue}} length], {{expectedConstraints.maxLength}}));{{/if}} - {{~#if (hasProperty expectedConstraints "minValue")}} - if ({{>actualValue}} != nil) { - VerifyOrReturn(CheckConstraintMinValue<{{chipType}}>("{{>item}}", [{{>actualValue}} {{asObjectiveCNumberType "" type true}}Value], {{asTypedLiteral expectedConstraints.minValue type}})); - } - {{/if}} - {{~#if (hasProperty expectedConstraints "maxValue")}} - if ({{>actualValue}} != nil) { - VerifyOrReturn(CheckConstraintMaxValue<{{chipType}}>("{{>item}}", [{{>actualValue}} {{asObjectiveCNumberType "" type true}}Value], {{asTypedLiteral expectedConstraints.maxValue type}})); - } - {{/if}} - {{~#if (hasProperty expectedConstraints "notValue")}} - {{#if (isLiteralNull expectedConstraints.notValue)}} - VerifyOrReturn(CheckValueNonNull("{{>item}}", {{>actualValue}})); - {{else}} - if ({{>actualValue}} != nil) { - {{#if (isString type)}} - VerifyOrReturn(CheckConstraintNotValue("{{>item}}", {{>actualValue}}, {{asTypedLiteral expectedConstraints.notValue type}})); - {{else}} - VerifyOrReturn(CheckConstraintNotValue("{{>item}}", {{>actualValue}}, {{asTypedLiteral expectedConstraints.notValue type}})); - {{/if}} - } - {{/if}} + {{>maybeCheckExpectedConstraints}} + {{#if saveAs}} + { + {{saveAs}} = {{>actualValue}}; + } {{/if}} - {{/if}} - {{#if saveAs}} - { - {{saveAs}} = {{>actualValue}}; - } - {{/if}} - {{/chip_tests_item_response_parameters}} + {{/chip_tests_item_response_parameters}} {{#unless async}} NextTest(); diff --git a/examples/chip-tool-darwin/templates/tests/partials/test_value.zapt b/examples/darwin-framework-tool/templates/tests/partials/test_value.zapt similarity index 92% rename from examples/chip-tool-darwin/templates/tests/partials/test_value.zapt rename to examples/darwin-framework-tool/templates/tests/partials/test_value.zapt index 846c75ac96a980..716e557f399221 100644 --- a/examples/chip-tool-darwin/templates/tests/partials/test_value.zapt +++ b/examples/darwin-framework-tool/templates/tests/partials/test_value.zapt @@ -46,7 +46,11 @@ {{#if (isCharString type)}} @"{{definedValue}}"; {{else if (isOctetString type)}} + {{~#if (isHexString definedValue)}} + [[NSData alloc] initWithBytes:"{{octetStringFromHexString definedValue}}" length:{{octetStringLengthFromHexString definedValue}}]; + {{else}} [[NSData alloc] initWithBytes:"{{octetStringEscapedForCLiteral definedValue}}" length:{{definedValue.length}}]; + {{/if}} {{else}} [NSNumber numberWith{{asObjectiveCNumberType definedValue type false}}:{{asTypedExpressionFromObjectiveC definedValue type}}]; {{/if}} diff --git a/examples/chip-tool-darwin/templates/tests/templates.json b/examples/darwin-framework-tool/templates/tests/templates.json similarity index 93% rename from examples/chip-tool-darwin/templates/tests/templates.json rename to examples/darwin-framework-tool/templates/tests/templates.json index aab4af5cd3f79f..9311d32dd66062 100644 --- a/examples/chip-tool-darwin/templates/tests/templates.json +++ b/examples/darwin-framework-tool/templates/tests/templates.json @@ -38,6 +38,10 @@ { "name": "check_test_value", "path": "partials/check_test_value.zapt" + }, + { + "name": "maybeCheckExpectedConstraints", + "path": "partials/checks/maybeCheckExpectedConstraints.zapt" } ], "templates": [ diff --git a/examples/chip-tool-darwin/templates/tests/tests.js b/examples/darwin-framework-tool/templates/tests/tests.js similarity index 77% rename from examples/chip-tool-darwin/templates/tests/tests.js rename to examples/darwin-framework-tool/templates/tests/tests.js index 35826ba3d3ff51..7e2defdcc22f02 100644 --- a/examples/chip-tool-darwin/templates/tests/tests.js +++ b/examples/darwin-framework-tool/templates/tests/tests.js @@ -45,6 +45,18 @@ function getTests() { // TODO: TestGroupMessaging does not work on Darwin for now. tests.disable('TestGroupMessaging'); + // TODO: Test_TC_DIAG_TH_NW_1_1 does not work on Darwin for now. + tests.disable('Test_TC_DIAG_TH_NW_1_1'); + + // TODO: Test_TC_DIAG_TH_NW_1_2 does not work on Darwin for now. + tests.disable('Test_TC_DIAG_TH_NW_1_2'); + + // TODO: Test_TC_DIAG_TH_NW_2_2 does not work on Darwin for now. + tests.disable('Test_TC_DIAG_TH_NW_2_2'); + + // TODO: Test_TC_DIAG_TH_NW_2_3 does not work on Darwin for now. + tests.disable('Test_TC_DIAG_TH_NW_2_3'); + return tests; } diff --git a/examples/chip-tool-darwin/third_party/connectedhomeip b/examples/darwin-framework-tool/third_party/connectedhomeip similarity index 100% rename from examples/chip-tool-darwin/third_party/connectedhomeip rename to examples/darwin-framework-tool/third_party/connectedhomeip diff --git a/examples/ipv6only-app/esp32/README.md b/examples/ipv6only-app/esp32/README.md deleted file mode 100644 index 41c6d5f2ae3374..00000000000000 --- a/examples/ipv6only-app/esp32/README.md +++ /dev/null @@ -1,129 +0,0 @@ -# CHIP ESP32 IPV6 Only Example Application - -This application implements ESP32 wifi control to support IPV6 tests. - -Once connected the application acts as a UDP echo server and will echo udp -messages it receives, this can be used to test for disconnect events. - -- [CHIP ESP32 IPV6 Only Example Application](#chip-esp32-ipv6-only-example-application) - - [Building the Example Application](#building-the-example-application) - - [To build the application, follow these steps:](#to-build-the-application-follow-these-steps) - - [Testing the Example Application](#testing-the-example-application) - ---- - -## Building the Example Application - -Building the example application requires the use of the Espressif ESP32 IoT -Development Framework and the xtensa-esp32-elf toolchain. - -The VSCode devcontainer has these components pre-installed, so you can skip this -step. To install these components manually, follow these steps: - -- Clone the Espressif ESP-IDF and checkout - [v4.4.1 release](https://github.com/espressif/esp-idf/releases/tag/v4.4.1) - - ``` - $ mkdir ${HOME}/tools - $ cd ${HOME}/tools - $ git clone https://github.com/espressif/esp-idf.git - $ cd esp-idf - $ git checkout v4.4.1 - $ git submodule update --init - $ ./install.sh - ``` - -- Install ninja-build - - ``` - $ sudo apt-get install ninja-build - ``` - -### To build the application, follow these steps: - -Currently building in VSCode _and_ deploying from native is not supported, so -make sure the IDF_PATH has been exported(See the manual setup steps above). - -- Setting up the environment - - ``` - $ cd ${HOME}/tools/esp-idf - $ ./install.sh - $ . ./export.sh - $ cd {path-to-connectedhomeip} - ``` - - To download and install packages. - - ``` - $ source ./scripts/bootstrap.sh - $ source ./scripts/activate.sh - ``` - - If packages are already installed then simply activate them. - - ``` - $ source ./scripts/activate.sh - ``` - -- Select IDF Target - - ``` - $ idf.py set-target esp32(or esp32c3) - ``` - -- Configuration Options - - To choose from the different configuration options, run menuconfig - - ``` - $ idf.py menuconfig - ``` - - This example uses UART0 for serial communication. You can change this through - `PW RPC Example Configuration`. As a result, the console has been shifted to UART1 - You can change this through `Component config` -> `Common ESP-related` -> - `UART for console output` - -- Build the demo application. - - $ idf.py build - -- After building the application, to flash it outside of VSCode, connect your - device via USB. Then run the following command to flash the demo application - onto the device and then monitor its output. If necessary, replace - `/dev/tty.SLAB_USBtoUART`(MacOS) with the correct USB device name for your - system(like `/dev/ttyUSB0` on Linux). Note that sometimes you might have to - press and hold the `boot` button on the device while it's trying to connect - before flashing. For ESP32-DevKitC devices this is labeled in the - [functional description diagram](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/get-started-devkitc.html#functional-description). - - ``` - $ idf.py flash -p /dev/tty.SLAB_USBtoUART - ``` - - Note: Some users might have to install the - [VCP driver](https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers) - before the device shows up on `/dev/tty`. - -## Testing the Example Application - -Build or install the [rpc console](../../common/pigweed/rpc_console/README.md) - -Start the console: - - ``` - $ chip-console --device /dev/ttyUSB0 -b 115200 - ``` - -An example flow of performing a scan, connecting, and getting the IPv6 address: - - ``` - scan = rpcs.chip.rpc.WiFi.StartScan(pw_rpc_timeout_s=5) - ap = next(filter(lambda a: b"SSID\000" in a.ssid, next(scan.responses()).aps)) - - connect = protos.chip.rpc.ConnectionData(ssid=ap.ssid,security_type=ap.security_type,secret=b"PASSWORD") - rpcs.chip.rpc.WiFi.Connect(connect, pw_rpc_timeout_s=10) - - rpcs.chip.rpc.WiFi.GetIP6Address() - ``` diff --git a/examples/ipv6only-app/esp32/include/wifi_service.h b/examples/ipv6only-app/esp32/include/wifi_service.h deleted file mode 100644 index 12dc0e9a2d0f46..00000000000000 --- a/examples/ipv6only-app/esp32/include/wifi_service.h +++ /dev/null @@ -1,163 +0,0 @@ -/* - * - * 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. - */ - -#pragma once - -#include "esp_event.h" -#include "esp_log.h" -#include "esp_netif.h" -#include "esp_system.h" -#include "esp_wifi.h" -#include "freertos/FreeRTOS.h" -#include "freertos/semphr.h" -#include "pw_status/status.h" -#include "pw_status/try.h" -#include "wifi_service/wifi_service.rpc.pb.h" - -namespace chip { -namespace rpc { - -class WiFi final : public pw_rpc::nanopb::WiFi::Service -{ -public: - // Singleton - static WiFi & Instance() { return instance_; } - - // Initalize the wifi station - pw::Status Init(); - - // Blocks the calling thread until wifi connection is completed successfully. - // NOTE: Currently only supports blocking a single thread. - void BlockUntilWiFiConnected() { xSemaphoreTake(wifi_connected_semaphore_, portMAX_DELAY); } - - // The following functions are the RPC handlers - - pw::Status GetChannel(const pw_protobuf_Empty & request, chip_rpc_Channel & response) - { - uint8_t channel = 0; - wifi_second_chan_t second; - PW_TRY(EspToPwStatus(esp_wifi_get_channel(&channel, &second))); - response.channel = channel; - return pw::OkStatus(); - } - - pw::Status GetSsid(const pw_protobuf_Empty & request, chip_rpc_Ssid & response) - { - wifi_config_t config; - PW_TRY(EspToPwStatus(esp_wifi_get_config(WIFI_IF_STA, &config))); - size_t size = std::min(sizeof(response.ssid.bytes), sizeof(config.sta.ssid)); - memcpy(response.ssid.bytes, config.sta.ssid, sizeof(response.ssid.bytes)); - response.ssid.size = size; - return pw::OkStatus(); - } - - pw::Status GetState(const pw_protobuf_Empty & request, chip_rpc_State & response) - { - wifi_ap_record_t ap_info; - esp_err_t err = esp_wifi_sta_get_ap_info(&ap_info); - PW_TRY(EspToPwStatus(err)); - response.connected = (err != ESP_ERR_WIFI_NOT_CONNECT); - return pw::OkStatus(); - } - - pw::Status GetMacAddress(const pw_protobuf_Empty & request, chip_rpc_MacAddress & response) - { - uint8_t mac[6]; - PW_TRY(EspToPwStatus(esp_wifi_get_mac(WIFI_IF_STA, mac))); - sprintf(response.mac_address, "%02x:%02x:%02x:%02x:%02x:%02x", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); - return pw::OkStatus(); - } - - pw::Status GetWiFiInterface(const pw_protobuf_Empty & request, chip_rpc_WiFiInterface & response) - { - wifi_ap_record_t ap_info; - PW_TRY(EspToPwStatus(esp_wifi_sta_get_ap_info(&ap_info))); - sprintf(response.interface, "STA"); - return pw::OkStatus(); - } - - pw::Status GetIP4Address(const pw_protobuf_Empty & request, chip_rpc_IP4Address & response) - { - esp_netif_ip_info_t ip_info; - PW_TRY(EspToPwStatus(esp_netif_get_ip_info(esp_netif_, &ip_info))); - sprintf(response.address, IPSTR, IP2STR(&ip_info.ip)); - return pw::OkStatus(); - } - - pw::Status GetIP6Address(const pw_protobuf_Empty & request, chip_rpc_IP6Address & response) - { - esp_ip6_addr_t ip6{ 0 }; - PW_TRY(EspToPwStatus(esp_netif_get_ip6_linklocal(esp_netif_, &ip6))); - sprintf(response.address, IPV6STR, IPV62STR(ip6)); - return pw::OkStatus(); - } - - // NOTE: Currently this is blocking, it can be made non-blocking if needed - // but would require another worker thread to handle the scanning. - void StartScan(const chip_rpc_ScanConfig & request, ServerWriter & writer); - - pw::Status StopScan(const pw_protobuf_Empty & request, pw_protobuf_Empty & response) - { - esp_wifi_scan_stop(); - return pw::OkStatus(); - } - - pw::Status Connect(const chip_rpc_ConnectionData & request, chip_rpc_ConnectionResult & response); - - pw::Status Disconnect(const pw_protobuf_Empty & request, pw_protobuf_Empty & response) - { - PW_TRY(EspToPwStatus(esp_wifi_disconnect())); - return pw::OkStatus(); - } - -private: - static WiFi instance_; - esp_netif_t * esp_netif_ = nullptr; - SemaphoreHandle_t wifi_connected_semaphore_; - - static constexpr pw::Status EspToPwStatus(esp_err_t err) - { - switch (err) - { - case ESP_OK: - return pw::OkStatus(); - case ESP_ERR_WIFI_NOT_INIT: - return pw::Status::FailedPrecondition(); - case ESP_ERR_INVALID_ARG: - return pw::Status::InvalidArgument(); - case ESP_ERR_ESP_NETIF_INVALID_PARAMS: - return pw::Status::InvalidArgument(); - case ESP_ERR_WIFI_IF: - return pw::Status::NotFound(); - case ESP_ERR_WIFI_NOT_CONNECT: - return pw::Status::FailedPrecondition(); - case ESP_ERR_WIFI_NOT_STARTED: - return pw::Status::FailedPrecondition(); - case ESP_ERR_WIFI_CONN: - return pw::Status::Internal(); - case ESP_FAIL: - return pw::Status::Internal(); - default: - return pw::Status::Unknown(); - } - } - - static void WiFiEventHandler(void * arg, esp_event_base_t event_base, int32_t event_id, void * event_data); -}; - -} // namespace rpc -} // namespace chip diff --git a/examples/ipv6only-app/esp32/main/CMakeLists.txt b/examples/ipv6only-app/esp32/main/CMakeLists.txt deleted file mode 100644 index 853edf5628e99c..00000000000000 --- a/examples/ipv6only-app/esp32/main/CMakeLists.txt +++ /dev/null @@ -1,59 +0,0 @@ -# -# Copyright (c) 2021 Project CHIP Authors -# All rights reserved. -# -# 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. - -idf_component_register(INCLUDE_DIRS - "${CMAKE_CURRENT_LIST_DIR}" - "${CMAKE_CURRENT_LIST_DIR}/../include" - "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/platform/esp32/pw_sys_io/public" - "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/platform/esp32" - "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/common/pigweed" - "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/common/pigweed/esp32" - "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/lib/support" - "${IDF_PATH}/components/freertos/include/freertos" - - SRC_DIRS - "${CMAKE_CURRENT_LIST_DIR}" - "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/platform/esp32" - "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/common/pigweed" - "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/common/pigweed/esp32" - PRIV_REQUIRES bt chip) - -get_filename_component(CHIP_ROOT ${CMAKE_SOURCE_DIR}/third_party/connectedhomeip REALPATH) -set(PIGWEED_ROOT "${CHIP_ROOT}/third_party/pigweed/repo") -include(${PIGWEED_ROOT}/pw_build/pigweed.cmake) -include(${PIGWEED_ROOT}/pw_protobuf_compiler/proto.cmake) -set(dir_pw_third_party_nanopb "${CHIP_ROOT}/third_party/nanopb/repo" CACHE STRING "" FORCE) - -pw_proto_library(wifi_service - SOURCES - ${CHIP_ROOT}/examples/common/pigweed/protos/wifi_service.proto - INPUTS - ${CHIP_ROOT}/examples/common/pigweed/protos/wifi_service.options - PREFIX - wifi_service - DEPS - pw_protobuf.common_protos - STRIP_PREFIX - ${CHIP_ROOT}/examples/common/pigweed/protos -) - -target_link_libraries(${COMPONENT_LIB} PUBLIC - wifi_service.nanopb_rpc - pw_checksum - pw_hdlc - pw_log - pw_rpc.server -) diff --git a/examples/ipv6only-app/esp32/main/Kconfig.projbuild b/examples/ipv6only-app/esp32/main/Kconfig.projbuild deleted file mode 100644 index eaa289dfc60e12..00000000000000 --- a/examples/ipv6only-app/esp32/main/Kconfig.projbuild +++ /dev/null @@ -1,39 +0,0 @@ -menu "PW RPC Example Configuration" - -depends on ENABLE_PW_RPC - config EXAMPLE_UART_PORT_NUM - int "UART port number" - range 0 2 if IDF_TARGET_ESP32 - range 0 1 if IDF_TARGET_ESP32C3 - default 0 - help - UART communication port number for the example. - See UART documentation for available port numbers. - - config EXAMPLE_UART_BAUD_RATE - int "UART communication speed" - range 1200 115200 - default 115200 - help - UART communication speed for Modbus example. - - config EXAMPLE_UART_RXD - int "UART RXD pin number" - range 0 34 if IDF_TARGET_ESP32 - range 0 19 if IDF_TARGET_ESP32C3 - default 5 - help - GPIO number for UART RX pin. See UART documentation for more information - about available pin numbers for UART. - - config EXAMPLE_UART_TXD - int "UART TXD pin number" - range 0 34 if IDF_TARGET_ESP32 - range 0 19 if IDF_TARGET_ESP32C3 - default 4 - help - GPIO number for UART TX pin. See UART documentation for more information - about available pin numbers for UART. - - -endmenu diff --git a/examples/ipv6only-app/esp32/main/main.cpp b/examples/ipv6only-app/esp32/main/main.cpp deleted file mode 100644 index 608350a38ad053..00000000000000 --- a/examples/ipv6only-app/esp32/main/main.cpp +++ /dev/null @@ -1,152 +0,0 @@ -/* - * - * 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. - */ - -#include "PigweedLoggerMutex.h" -#include "RpcService.h" -#include "freertos/FreeRTOS.h" -#include "freertos/task.h" -#include "nvs_flash.h" -#include "pw_rpc/server.h" -#include "wifi_service.h" - -#include "lwip/err.h" -#include "lwip/sockets.h" -#include "lwip/sys.h" - -namespace { - -const char * TAG = "ipv6only"; - -constexpr size_t kUdpBufferSize = 512; - -constexpr size_t kRpcStackSizeBytes = (6 * 1024); -constexpr uint8_t kRpcTaskPriority = 5; -constexpr size_t kTestStackSizeBytes = (8 * 1024); -constexpr uint8_t kTestTaskPriority = 5; - -TaskHandle_t rpcTaskHandle; -TaskHandle_t testTaskHandle; - -void UdpReceiver(void * pvParameters) -{ - int portno; // port to listen on - struct sockaddr_in6 serveraddr; // server's addr - char buf[kUdpBufferSize]; // rx message buf - char * hostaddrp; // dotted decimal host addr string - int optval; // flag value for setsockopt - int n; // message byte size - int sockfd = 0; - socklen_t clientlen; // byte size of client's address - struct sockaddr_in6 clientaddr; // client addr - - while (1) - { - // Start the udp server after the wifi is connectd. - chip::rpc::WiFi::Instance().BlockUntilWiFiConnected(); - ESP_LOGI(TAG, "UDP server starting"); - - portno = 8765; - // socket: create the parent socket - sockfd = socket(AF_INET6, SOCK_DGRAM, 0); - if (sockfd < 0) - { - ESP_LOGE(TAG, "ERROR opening socket"); - assert(0); - return; - } - - // setsockopt: Handy debugging trick that lets - // us rerun the server immediately after we kill it; - // otherwise we have to wait about 20 secs. - // Eliminates "ERROR on binding: Address already in use" error. - optval = 1; - setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, static_cast(&optval), sizeof(int)); - - // build the server's Internet address - memset(&serveraddr, 0, sizeof(serveraddr)); - serveraddr.sin6_len = sizeof(serveraddr); - serveraddr.sin6_family = AF_INET6; - serveraddr.sin6_addr = in6addr_any; - serveraddr.sin6_port = htons((unsigned short) portno); - - // bind: associate the parent socket with a port - if (bind(sockfd, reinterpret_cast(&serveraddr), sizeof(serveraddr)) < 0) - { - ESP_LOGE(TAG, "ERROR on binding"); - assert(0); - vTaskDelete(NULL); - } - - ESP_LOGI(TAG, "UDP server bound to port %d", portno); - - // main loop: wait for a datagram, then respond - clientlen = sizeof(clientaddr); - wifi_ap_record_t ap_info; - fd_set readset; - while (ESP_OK == esp_wifi_sta_get_ap_info(&ap_info)) - { - // recvfrom: receive a UDP datagram from a client - memset(buf, 0, sizeof(buf)); - - FD_ZERO(&readset); - FD_SET(sockfd, &readset); - - int select_err = select(sockfd + 1, &readset, nullptr, nullptr, nullptr); - if (select_err < 0) - continue; - - n = recvfrom(sockfd, buf, kUdpBufferSize, 0, reinterpret_cast(&clientaddr), &clientlen); - if (n < 0) - continue; - // Echo back - n = sendto(sockfd, buf, n, 0, reinterpret_cast(&clientaddr), clientlen); - } - } - // Never returns -} - -void RegisterServices(pw::rpc::Server & server) -{ - server.RegisterService(chip::rpc::WiFi::Instance()); -} - -void RunRpcService(void *) -{ - ::chip::rpc::Start(RegisterServices, &::chip::rpc::logger_mutex); -} - -} // namespace - -extern "C" void app_main() -{ - PigweedLogger::init(); - - // Initialize NVS - esp_err_t ret = nvs_flash_init(); - if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) - { - ESP_ERROR_CHECK(nvs_flash_erase()); - ret = nvs_flash_init(); - } - ESP_ERROR_CHECK(ret); - - ESP_LOGI(TAG, "WiFi Init: %s", pw_StatusString(chip::rpc::WiFi::Instance().Init())); - ESP_LOGI(TAG, "----------- chip-esp32-ipv6-example starting -----------"); - - xTaskCreate(RunRpcService, "RPC", kRpcStackSizeBytes / sizeof(StackType_t), nullptr, kRpcTaskPriority, &rpcTaskHandle); - xTaskCreate(UdpReceiver, "TestTask", kTestStackSizeBytes / sizeof(StackType_t), nullptr, kTestTaskPriority, &testTaskHandle); -} diff --git a/examples/ipv6only-app/esp32/main/wifi_service.cpp b/examples/ipv6only-app/esp32/main/wifi_service.cpp deleted file mode 100644 index 3b51c44eac891a..00000000000000 --- a/examples/ipv6only-app/esp32/main/wifi_service.cpp +++ /dev/null @@ -1,341 +0,0 @@ -/* - * - * 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. - */ -#include "wifi_service.h" - -#include "freertos/FreeRTOS.h" -#include "freertos/event_groups.h" -#include "pw_containers/flat_map.h" - -namespace chip { -namespace rpc { - -namespace { - -const char * TAG = "ipv6only"; - -constexpr pw::containers::FlatMap kChannelToFreqMap({ { - { 1, 2412 }, { 2, 2417 }, { 3, 2422 }, { 4, 2427 }, { 5, 2432 }, { 6, 2437 }, { 7, 2442 }, { 8, 2447 }, - { 9, 2452 }, { 10, 2457 }, { 11, 2462 }, { 12, 2467 }, { 13, 2472 }, { 14, 2484 }, { 32, 5160 }, { 34, 5170 }, - { 36, 5180 }, { 38, 5190 }, { 40, 5200 }, { 42, 5210 }, { 44, 5220 }, { 46, 5230 }, { 48, 5240 }, { 50, 5250 }, - { 52, 5260 }, { 54, 5270 }, { 56, 5280 }, { 58, 5290 }, { 60, 5300 }, { 62, 5310 }, { 64, 5320 }, { 68, 5340 }, - { 96, 5480 }, { 100, 5500 }, { 102, 5510 }, { 104, 5520 }, { 106, 5530 }, { 108, 5540 }, { 110, 5550 }, { 112, 5560 }, - { 114, 5570 }, { 116, 5580 }, { 118, 5590 }, { 120, 5600 }, { 122, 5610 }, { 124, 5620 }, { 126, 5630 }, { 128, 5640 }, - { 132, 5660 }, { 134, 5670 }, { 136, 5680 }, { 138, 5690 }, { 140, 5700 }, { 142, 5710 }, { 144, 5720 }, { 149, 5745 }, - { 151, 5755 }, { 153, 5765 }, { 155, 5775 }, { 157, 5785 }, { 159, 5795 }, { 161, 5805 }, { 165, 5825 }, { 169, 5845 }, - { 173, 5865 }, { 183, 4915 }, { 184, 4920 }, { 185, 4925 }, { 187, 4935 }, { 188, 4940 }, { 189, 4945 }, { 192, 4960 }, - { 196, 4980 }, -} }); - -// Class handles the event handlers needed for station startup. -// Creating the object will register all handlers needed, destroying will -// unregister. The object is only needed during initialization, after the station -// is up it is safe to destroy this object. -class WiFiInitStationEventHandler -{ -public: - WiFiInitStationEventHandler() - { - handler_context_.event_group = xEventGroupCreate(); - esp_event_handler_register(WIFI_EVENT, ESP_EVENT_ANY_ID, &EventHandler, &handler_context_); - } - - ~WiFiInitStationEventHandler() - { - vEventGroupDelete(handler_context_.event_group); - esp_event_handler_unregister(WIFI_EVENT, ESP_EVENT_ANY_ID, &EventHandler); - } - - pw::Status WaitForStationUp() - { - EventBits_t bits = xEventGroupWaitBits(handler_context_.event_group, kWiFiStationUpBit, pdFALSE, pdFALSE, portMAX_DELAY); - if (!(bits & kWiFiStationUpBit)) - { - return pw::Status::Unknown(); - } - return pw::OkStatus(); - } - -private: - static constexpr uint8_t kWiFiStationUpBit = BIT0; - struct HandlerContext - { - size_t retry_count = 0; - uint8_t error_code = 0; - EventGroupHandle_t event_group; - } handler_context_; - - static void EventHandler(void * arg, esp_event_base_t event_base, int32_t event_id, void * event_data) - { - HandlerContext * context = static_cast(arg); - if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_START) - { - ESP_LOGI(TAG, "EVENT: WIFI_EVENT_STATION_START"); - xEventGroupSetBits(context->event_group, kWiFiStationUpBit); - } - } -}; - -// Class handles the event handlers needed for wifi connection. -// Creating the object will register all handlers needed, destroying will -// unregister. The object is only needed during connection, once connected -// is up it is safe to destroy this object. -class WiFiConnectionEventHandler -{ -public: - WiFiConnectionEventHandler(esp_netif_t * esp_netif) - { - handler_context_.esp_netif = esp_netif; - handler_context_.event_group = xEventGroupCreate(); - esp_event_handler_register(WIFI_EVENT, ESP_EVENT_ANY_ID, &EventHandler, &handler_context_); - esp_event_handler_register(IP_EVENT, IP_EVENT_STA_GOT_IP, &EventHandler, &handler_context_); - esp_event_handler_register(IP_EVENT, IP_EVENT_GOT_IP6, &EventHandler, &handler_context_); - } - - ~WiFiConnectionEventHandler() - { - esp_event_handler_unregister(WIFI_EVENT, ESP_EVENT_ANY_ID, &EventHandler); - esp_event_handler_unregister(WIFI_EVENT, ESP_EVENT_ANY_ID, &EventHandler); - esp_event_handler_unregister(IP_EVENT, IP_EVENT_STA_GOT_IP, &EventHandler); - esp_event_handler_unregister(IP_EVENT, IP_EVENT_GOT_IP6, &EventHandler); - vEventGroupDelete(handler_context_.event_group); - } - - // Waits for the events to determine if connected successfully. - pw::Status WaitForConnection(chip_rpc_ConnectionResult * result) - { - EventBits_t bits = xEventGroupWaitBits(handler_context_.event_group, kWiFiFailBit | kWiFiIpv6ConnectedBit, pdFALSE, pdFALSE, - portMAX_DELAY); - if (bits & kWiFiIpv6ConnectedBit) - { - result->error = chip_rpc_CONNECTION_ERROR_OK; - } - else if (bits & kWiFiFailBit) - { - result->error = handler_context_.error_code; - return pw::Status::Unavailable(); - } - else - { - ESP_LOGE(TAG, "UNEXPECTED EVENT"); - return pw::Status::Unknown(); - } - return pw::OkStatus(); - } - -private: - static constexpr size_t kWiFiConnectRetryMax = 5; - static constexpr uint8_t kWiFiIpv6ConnectedBit = BIT0; - static constexpr uint8_t kWiFiIpv4ConnectedBit = BIT1; - static constexpr uint8_t kWiFiFailBit = BIT2; - - struct HandlerContext - { - size_t retry_count = 0; - enum _chip_rpc_CONNECTION_ERROR error_code; - EventGroupHandle_t event_group; - esp_netif_t * esp_netif; - } handler_context_; - - static void EventHandler(void * arg, esp_event_base_t event_base, int32_t event_id, void * event_data) - { - HandlerContext * context = static_cast(arg); - if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_DISCONNECTED) - { - ESP_LOGI(TAG, "EVENT: WIFI_EVENT_STA_DISCONNECTED, reason: %d", - (static_cast(event_data))->reason); - if (context->retry_count < kWiFiConnectRetryMax) - { - esp_wifi_connect(); - context->retry_count++; - ESP_LOGI(TAG, "retry to connect to the AP"); - } - else - { - context->error_code = - static_cast<_chip_rpc_CONNECTION_ERROR>((static_cast(event_data))->reason); - xEventGroupSetBits(context->event_group, kWiFiFailBit); - } - } - else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_CONNECTED) - { - ESP_ERROR_CHECK(esp_netif_create_ip6_linklocal(context->esp_netif)); - ESP_LOGI(TAG, "Connected, link local address created"); - } - else if (event_base == IP_EVENT && event_id == IP_EVENT_STA_GOT_IP) - { - auto * event = static_cast(event_data); - ESP_LOGI(TAG, "got ip4: " IPSTR, IP2STR(&event->ip_info.ip)); - xEventGroupSetBits(context->event_group, kWiFiIpv4ConnectedBit); - } - else if (event_base == IP_EVENT && event_id == IP_EVENT_GOT_IP6) - { - auto * event = static_cast(event_data); - ESP_LOGI(TAG, "got ip6: " IPV6STR, IPV62STR(event->ip6_info.ip)); - xEventGroupSetBits(context->event_group, kWiFiIpv6ConnectedBit); - } - } -}; - -// These are potentially large objects for the scan results. -constexpr size_t kScanRecordsMax = sizeof(chip_rpc_ScanResults().aps) / sizeof(chip_rpc_ScanResult); -chip_rpc_ScanResults out_scan_records; -wifi_ap_record_t scan_records[kScanRecordsMax] = { 0 }; - -} // namespace - -WiFi WiFi::instance_; - -pw::Status WiFi::Init() -{ - wifi_connected_semaphore_ = xSemaphoreCreateBinary(); - PW_TRY(EspToPwStatus(esp_netif_init())); - PW_TRY(EspToPwStatus(esp_event_loop_create_default())); - esp_netif_ = esp_netif_create_default_wifi_sta(); - PW_TRY(EspToPwStatus(esp_netif_dhcpc_stop(esp_netif_))); - - WiFiInitStationEventHandler event_handler; - - wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); - PW_TRY(EspToPwStatus(esp_wifi_init(&cfg))); - PW_TRY(EspToPwStatus(esp_wifi_set_mode(WIFI_MODE_STA))); - PW_TRY(EspToPwStatus(esp_wifi_start())); - - PW_TRY(event_handler.WaitForStationUp()); - return pw::OkStatus(); -} - -pw::Status WiFi::Connect(const chip_rpc_ConnectionData & request, chip_rpc_ConnectionResult & response) -{ - wifi_config_t wifi_config { - .sta = { - /* Setting a password implies station will connect to all security modes including WEP/WPA. - * However these modes are deprecated and not advisable to be used. Incase your Access point - * doesn't support WPA2, these mode can be enabled by commenting below line */ - .threshold = { - .authmode = static_cast(request.security_type), - }, - - .pmf_cfg = { - .capable = true, - .required = false - }, - }, - }; - memcpy(wifi_config.sta.ssid, request.ssid.bytes, - std::min(sizeof(wifi_config.sta.ssid), static_cast(request.ssid.size))); - memcpy(wifi_config.sta.password, request.secret.bytes, - std::min(sizeof(wifi_config.sta.password), static_cast(request.secret.size))); - - WiFiConnectionEventHandler event_handler(esp_netif_); - PW_TRY(EspToPwStatus(esp_wifi_set_config(WIFI_IF_STA, &wifi_config))); - esp_err_t err = esp_wifi_connect(); - - if (ESP_ERR_WIFI_SSID == err) - { - ESP_LOGI(TAG, "AP not found SSID:%s", wifi_config.sta.ssid); - response.error = chip_rpc_CONNECTION_ERROR_NO_AP_FOUND; - return pw::Status::NotFound(); - } - if (pw::Status status = event_handler.WaitForConnection(&response); status.ok()) - { - ESP_LOGI(TAG, "connected to ap SSID:%s password:%s", wifi_config.sta.ssid, wifi_config.sta.password); - xSemaphoreGive(wifi_connected_semaphore_); - } - else - { - ESP_LOGI(TAG, "Failed to connect to SSID:%s, password:%s", wifi_config.sta.ssid, wifi_config.sta.password); - return status; - } - return pw::OkStatus(); -} - -void WiFi::StartScan(const chip_rpc_ScanConfig & request, ServerWriter & writer) -{ - wifi_scan_config_t scan_config{ 0 }; - if (request.ssid_count != 0) - { - scan_config.ssid = const_cast(reinterpret_cast(request.ssid[0].bytes)); - } - if (request.bssid_count != 0) - { - scan_config.bssid = const_cast(reinterpret_cast(request.bssid[0].bytes)); - } - scan_config.channel = request.channel; - scan_config.show_hidden = request.show_hidden; - scan_config.scan_type = static_cast(request.active_scan); - if (request.active_scan) - { - scan_config.scan_time.active.min = request.scan_time_min_ms; - scan_config.scan_time.active.max = request.scan_time_max_ms; - } - else - { - scan_config.scan_time.passive = request.scan_time_min_ms; - } - - auto err = esp_wifi_scan_start(&scan_config, true /* block */); - if (ESP_OK != err) - { - ESP_LOGI(TAG, "Error starting scan: %d", err); - return; - } - - // Output scan results - uint16_t num_scan_records = kScanRecordsMax; - err = esp_wifi_scan_get_ap_records(&num_scan_records, scan_records); - if (ESP_OK != err) - { - ESP_LOGI(TAG, "Error getting scanned APs: %d", err); - num_scan_records = 0; - } - ESP_LOGI(TAG, "%d", num_scan_records); - out_scan_records.aps_count = num_scan_records; - - for (size_t i = 0; i < num_scan_records; ++i) - { - memcpy(out_scan_records.aps[i].ssid.bytes, scan_records[i].ssid, sizeof(out_scan_records.aps[i].ssid.bytes)); - out_scan_records.aps[i].ssid.size = sizeof(out_scan_records.aps[i].ssid.bytes); - memcpy(out_scan_records.aps[i].bssid.bytes, scan_records[i].bssid, sizeof(out_scan_records.aps[i].bssid.bytes)); - out_scan_records.aps[i].bssid.size = sizeof(out_scan_records.aps[i].bssid.bytes); - out_scan_records.aps[i].security_type = static_cast(scan_records[i].authmode); - out_scan_records.aps[i].channel = scan_records[i].primary; - auto found_channel = kChannelToFreqMap.find(scan_records[i].primary); - out_scan_records.aps[i].frequency = (found_channel ? found_channel->second : 0); - out_scan_records.aps[i].signal = scan_records[i].rssi; - } - writer.Write(out_scan_records); - writer.Finish(); -} - -void WiFi::WiFiEventHandler(void * arg, esp_event_base_t event_base, int32_t event_id, void * event_data) -{ - if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_DISCONNECTED) - { - ESP_LOGI(TAG, "******** DISCONNECTED FROM AP *********"); - esp_event_handler_unregister(WIFI_EVENT, WIFI_EVENT_STA_DISCONNECTED, &WiFiEventHandler); - esp_event_handler_unregister(IP_EVENT, IP_EVENT_GOT_IP6, &WiFiEventHandler); - } - else if (event_base == IP_EVENT && event_id == IP_EVENT_GOT_IP6) - { - // This is in case not only link-local address is provided - auto * event = static_cast(event_data); - ESP_LOGI(TAG, "got ip6 :" IPV6STR, IPV62STR(event->ip6_info.ip)); - } -} - -} // namespace rpc -} // namespace chip diff --git a/examples/light-switch-app/efr32/BUILD.gn b/examples/light-switch-app/efr32/BUILD.gn index 0a1e68b0874082..402faaeca9a70c 100644 --- a/examples/light-switch-app/efr32/BUILD.gn +++ b/examples/light-switch-app/efr32/BUILD.gn @@ -60,6 +60,9 @@ declare_args() { # Disable LCD on supported devices disable_lcd = false + + # Argument to Disable IPv4 for wifi(rs911) + chip_disable_wifi_ipv4 = false } declare_args() { @@ -215,6 +218,10 @@ efr32_executable("light_switch_app") { sources += [ "${examples_plat_dir}/OTAConfig.cpp" ] } + if (chip_disable_wifi_ipv4) { + defines += [ "WIFI_IPV4_DISABLED" ] + } + # WiFi Settings if (chip_enable_wifi) { if (use_rs911x) { diff --git a/examples/light-switch-app/efr32/args.gni b/examples/light-switch-app/efr32/args.gni index 96b6262f50b93e..348e8e012098ae 100644 --- a/examples/light-switch-app/efr32/args.gni +++ b/examples/light-switch-app/efr32/args.gni @@ -23,3 +23,4 @@ chip_enable_ota_requestor = true pw_log_BACKEND = "${chip_root}/src/lib/support/pw_log_chip" pw_assert_BACKEND = "$dir_pw_assert_log" chip_enable_openthread = true +pw_rpc_CONFIG = "$dir_pw_rpc:disable_global_mutex" diff --git a/examples/light-switch-app/efr32/src/AppTask.cpp b/examples/light-switch-app/efr32/src/AppTask.cpp index d7da5a17ea4d24..fe982497bd6245 100644 --- a/examples/light-switch-app/efr32/src/AppTask.cpp +++ b/examples/light-switch-app/efr32/src/AppTask.cpp @@ -240,7 +240,7 @@ CHIP_ERROR AppTask::Init() } // Print setup info on LCD if available -#ifdef DISPLAY_ENABLED +#ifdef QR_CODE_ENABLED // Create buffer for QR code that can fit max size and null terminator. char qrCodeBuffer[chip::QRCodeBasicSetupPayloadGenerator::kMaxQRCodeBase38RepresentationLength + 1]; chip::MutableCharSpan QRCode(qrCodeBuffer); @@ -255,7 +255,7 @@ CHIP_ERROR AppTask::Init() } #else PrintOnboardingCodes(chip::RendezvousInformationFlag(chip::RendezvousInformationFlag::kBLE)); -#endif +#endif // QR_CODE_ENABLED return err; } diff --git a/examples/light-switch-app/light-switch-common/light-switch-app.matter b/examples/light-switch-app/light-switch-common/light-switch-app.matter index 1c7012fd25b73f..5b089349467146 100644 --- a/examples/light-switch-app/light-switch-common/light-switch-app.matter +++ b/examples/light-switch-app/light-switch-common/light-switch-app.matter @@ -629,8 +629,16 @@ server cluster GeneralDiagnostics = 51 { readonly attribute ENUM8 activeHardwareFaults[] = 5; readonly attribute ENUM8 activeRadioFaults[] = 6; readonly attribute ENUM8 activeNetworkFaults[] = 7; + readonly attribute boolean testEventTriggersEnabled = 8; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + + request struct TestEventTriggerRequest { + OCTET_STRING enableKey = 0; + INT64U eventTrigger = 1; + } + + command TestEventTrigger(TestEventTriggerRequest): DefaultSuccess = 0; } server cluster GroupKeyManagement = 63 { @@ -1160,6 +1168,7 @@ server cluster OperationalCredentials = 62 { kInvalidNOC = 3; kMissingCsr = 4; kTableFull = 5; + kInvalidAdminSubject = 6; kInsufficientPrivilege = 8; kFabricConflict = 9; kLabelConflict = 10; @@ -1200,13 +1209,14 @@ server cluster OperationalCredentials = 62 { request struct CSRRequestRequest { OCTET_STRING CSRNonce = 0; + optional boolean isForUpdateNOC = 1; } request struct AddNOCRequest { OCTET_STRING NOCValue = 0; optional OCTET_STRING ICACValue = 1; OCTET_STRING IPKValue = 2; - NODE_ID caseAdminNode = 3; + Int64u caseAdminSubject = 3; VENDOR_ID adminVendorId = 4; } @@ -1227,10 +1237,6 @@ server cluster OperationalCredentials = 62 { OCTET_STRING rootCertificate = 0; } - request struct RemoveTrustedRootCertificateRequest { - OCTET_STRING trustedRootIdentifier = 0; - } - response struct AttestationResponse = 1 { OCTET_STRING attestationElements = 0; OCTET_STRING signature = 1; @@ -1259,7 +1265,6 @@ server cluster OperationalCredentials = 62 { command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } client cluster Scenes = 5 { @@ -1371,12 +1376,16 @@ client cluster Scenes = 5 { } server cluster SoftwareDiagnostics = 52 { + bitmap SoftwareDiagnosticsFeature : BITMAP32 { + kWaterMarks = 0x1; + } + struct ThreadMetrics { int64u id = 0; - char_string<8> name = 1; - int32u stackFreeCurrent = 2; - int32u stackFreeMinimum = 3; - int32u stackSize = 4; + optional char_string<8> name = 1; + optional int32u stackFreeCurrent = 2; + optional int32u stackFreeMinimum = 3; + optional int32u stackSize = 4; } info event SoftwareFault = 0 { @@ -1513,7 +1522,7 @@ server cluster ThreadNetworkDiagnostics = 53 { } readonly attribute nullable int16u channel = 0; - readonly attribute nullable enum8 routingRole = 1; + readonly attribute nullable RoutingRole routingRole = 1; readonly attribute nullable char_string<16> networkName = 2; readonly attribute nullable int16u panId = 3; readonly attribute nullable int64u extendedPanId = 4; @@ -1521,11 +1530,11 @@ server cluster ThreadNetworkDiagnostics = 53 { readonly attribute int64u overrunCount = 6; readonly attribute NeighborTable neighborTableList[] = 7; readonly attribute RouteTable routeTableList[] = 8; - readonly attribute int32u partitionId = 9; - readonly attribute int8u weighting = 10; - readonly attribute int8u dataVersion = 11; - readonly attribute int8u stableDataVersion = 12; - readonly attribute int8u leaderRouterId = 13; + readonly attribute nullable int32u partitionId = 9; + readonly attribute nullable int8u weighting = 10; + readonly attribute nullable int8u dataVersion = 11; + readonly attribute nullable int8u stableDataVersion = 12; + readonly attribute nullable int8u leaderRouterId = 13; readonly attribute int16u detachedRoleCount = 14; readonly attribute int16u childRoleCount = 15; readonly attribute int16u routerRoleCount = 16; @@ -1568,12 +1577,12 @@ server cluster ThreadNetworkDiagnostics = 53 { readonly attribute int32u rxErrSecCount = 53; readonly attribute int32u rxErrFcsCount = 54; readonly attribute int32u rxErrOtherCount = 55; - readonly attribute int64u activeTimestamp = 56; - readonly attribute int64u pendingTimestamp = 57; - readonly attribute int32u delay = 58; - readonly attribute SecurityPolicy securityPolicy[] = 59; - readonly attribute octet_string<4> channelMask = 60; - readonly attribute OperationalDatasetComponents operationalDatasetComponents[] = 61; + readonly attribute nullable int64u activeTimestamp = 56; + readonly attribute nullable int64u pendingTimestamp = 57; + readonly attribute nullable int32u delay = 58; + readonly attribute nullable SecurityPolicy securityPolicy = 59; + readonly attribute nullable octet_string<4> channelMask = 60; + readonly attribute nullable OperationalDatasetComponents operationalDatasetComponents = 61; readonly attribute NetworkFault activeNetworkFaultsList[] = 62; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -1678,8 +1687,8 @@ server cluster WiFiNetworkDiagnostics = 54 { command ResetCounts(): DefaultSuccess = 0; } - endpoint 0 { + device type rootdevice = 22; binding cluster OtaSoftwareUpdateProvider; server cluster Descriptor { @@ -1794,6 +1803,7 @@ endpoint 0 { callback attribute activeHardwareFaults; callback attribute activeRadioFaults; callback attribute activeNetworkFaults; + callback attribute testEventTriggersEnabled; ram attribute featureMap; ram attribute clusterRevision default = 1; } @@ -1808,67 +1818,67 @@ endpoint 0 { } server cluster ThreadNetworkDiagnostics { - ram attribute channel; - ram attribute routingRole; - ram attribute networkName; - ram attribute panId; - ram attribute extendedPanId; - ram attribute meshLocalPrefix; - ram attribute overrunCount; + callback attribute channel; + callback attribute routingRole; + callback attribute networkName; + callback attribute panId; + callback attribute extendedPanId; + callback attribute meshLocalPrefix; + callback attribute overrunCount; callback attribute neighborTableList; callback attribute routeTableList; - ram attribute partitionId; - ram attribute weighting; - ram attribute dataVersion; - ram attribute stableDataVersion; - ram attribute leaderRouterId; - ram attribute detachedRoleCount; - ram attribute childRoleCount; - ram attribute routerRoleCount; - ram attribute leaderRoleCount; - ram attribute attachAttemptCount; - ram attribute partitionIdChangeCount; - ram attribute betterPartitionAttachAttemptCount; - ram attribute parentChangeCount; - ram attribute txTotalCount; - ram attribute txUnicastCount; - ram attribute txBroadcastCount; - ram attribute txAckRequestedCount; - ram attribute txAckedCount; - ram attribute txNoAckRequestedCount; - ram attribute txDataCount; - ram attribute txDataPollCount; - ram attribute txBeaconCount; - ram attribute txBeaconRequestCount; - ram attribute txOtherCount; - ram attribute txRetryCount; - ram attribute txDirectMaxRetryExpiryCount; - ram attribute txIndirectMaxRetryExpiryCount; - ram attribute txErrCcaCount; - ram attribute txErrAbortCount; - ram attribute txErrBusyChannelCount; - ram attribute rxTotalCount; - ram attribute rxUnicastCount; - ram attribute rxBroadcastCount; - ram attribute rxDataCount; - ram attribute rxDataPollCount; - ram attribute rxBeaconCount; - ram attribute rxBeaconRequestCount; - ram attribute rxOtherCount; - ram attribute rxAddressFilteredCount; - ram attribute rxDestAddrFilteredCount; - ram attribute rxDuplicatedCount; - ram attribute rxErrNoFrameCount; - ram attribute rxErrUnknownNeighborCount; - ram attribute rxErrInvalidSrcAddrCount; - ram attribute rxErrSecCount; - ram attribute rxErrFcsCount; - ram attribute rxErrOtherCount; - ram attribute activeTimestamp; - ram attribute pendingTimestamp; - ram attribute delay; + callback attribute partitionId; + callback attribute weighting; + callback attribute dataVersion; + callback attribute stableDataVersion; + callback attribute leaderRouterId; + callback attribute detachedRoleCount; + callback attribute childRoleCount; + callback attribute routerRoleCount; + callback attribute leaderRoleCount; + callback attribute attachAttemptCount; + callback attribute partitionIdChangeCount; + callback attribute betterPartitionAttachAttemptCount; + callback attribute parentChangeCount; + callback attribute txTotalCount; + callback attribute txUnicastCount; + callback attribute txBroadcastCount; + callback attribute txAckRequestedCount; + callback attribute txAckedCount; + callback attribute txNoAckRequestedCount; + callback attribute txDataCount; + callback attribute txDataPollCount; + callback attribute txBeaconCount; + callback attribute txBeaconRequestCount; + callback attribute txOtherCount; + callback attribute txRetryCount; + callback attribute txDirectMaxRetryExpiryCount; + callback attribute txIndirectMaxRetryExpiryCount; + callback attribute txErrCcaCount; + callback attribute txErrAbortCount; + callback attribute txErrBusyChannelCount; + callback attribute rxTotalCount; + callback attribute rxUnicastCount; + callback attribute rxBroadcastCount; + callback attribute rxDataCount; + callback attribute rxDataPollCount; + callback attribute rxBeaconCount; + callback attribute rxBeaconRequestCount; + callback attribute rxOtherCount; + callback attribute rxAddressFilteredCount; + callback attribute rxDestAddrFilteredCount; + callback attribute rxDuplicatedCount; + callback attribute rxErrNoFrameCount; + callback attribute rxErrUnknownNeighborCount; + callback attribute rxErrInvalidSrcAddrCount; + callback attribute rxErrSecCount; + callback attribute rxErrFcsCount; + callback attribute rxErrOtherCount; + callback attribute activeTimestamp; + callback attribute pendingTimestamp; + callback attribute delay; callback attribute securityPolicy; - ram attribute channelMask; + callback attribute channelMask; callback attribute operationalDatasetComponents; callback attribute activeNetworkFaultsList; ram attribute featureMap default = 0x000F; @@ -1952,8 +1962,8 @@ endpoint 0 { ram attribute clusterRevision default = 1; } } - endpoint 1 { + device type onofflightswitch = 259; binding cluster Identify; binding cluster Scenes; binding cluster OnOff; diff --git a/examples/light-switch-app/light-switch-common/light-switch-app.zap b/examples/light-switch-app/light-switch-common/light-switch-app.zap index e5b192c4b10850..70fe778341a154 100644 --- a/examples/light-switch-app/light-switch-common/light-switch-app.zap +++ b/examples/light-switch-app/light-switch-common/light-switch-app.zap @@ -2612,7 +2612,16 @@ "define": "GENERAL_DIAGNOSTICS_CLUSTER", "side": "server", "enabled": 1, - "commands": [], + "commands": [ + { + "name": "TestEventTrigger", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], "attributes": [ { "name": "NetworkInterfaces", @@ -2742,6 +2751,22 @@ "maxInterval": 65534, "reportableChange": 0 }, + { + "name": "TestEventTriggersEnabled", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "false", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "FeatureMap", "code": 65532, @@ -2971,7 +2996,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -2985,9 +3010,9 @@ "code": 1, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "RoutingRole", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3003,7 +3028,7 @@ "side": "server", "type": "char_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", @@ -3019,7 +3044,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3035,7 +3060,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -3051,7 +3076,7 @@ "side": "server", "type": "octet_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3067,7 +3092,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -3115,7 +3140,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3131,7 +3156,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3147,7 +3172,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3163,7 +3188,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3179,7 +3204,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3195,7 +3220,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3211,7 +3236,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3227,7 +3252,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3243,7 +3268,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3259,7 +3284,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3275,7 +3300,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3291,7 +3316,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3307,7 +3332,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3323,7 +3348,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3339,7 +3364,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3355,7 +3380,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3371,7 +3396,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3387,7 +3412,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3403,7 +3428,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3419,7 +3444,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3435,7 +3460,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3451,7 +3476,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3467,7 +3492,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3483,7 +3508,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3499,7 +3524,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3515,7 +3540,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3531,7 +3556,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3547,7 +3572,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3563,7 +3588,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3579,7 +3604,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3595,7 +3620,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3611,7 +3636,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3627,7 +3652,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3643,7 +3668,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3659,7 +3684,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3675,7 +3700,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3691,7 +3716,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3707,7 +3732,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3723,7 +3748,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3739,7 +3764,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3755,7 +3780,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3771,7 +3796,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3787,7 +3812,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3803,7 +3828,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3819,7 +3844,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3835,7 +3860,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3851,7 +3876,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3867,7 +3892,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -3883,7 +3908,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -3899,7 +3924,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3913,7 +3938,7 @@ "code": 59, "mfgCode": null, "side": "server", - "type": "array", + "type": "SecurityPolicy", "included": 1, "storageOption": "External", "singleton": 0, @@ -3931,7 +3956,7 @@ "side": "server", "type": "octet_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3945,7 +3970,7 @@ "code": 61, "mfgCode": null, "side": "server", - "type": "array", + "type": "OperationalDatasetComponents", "included": 1, "storageOption": "External", "singleton": 0, @@ -4783,14 +4808,6 @@ "source": "client", "incoming": 1, "outgoing": 1 - }, - { - "name": "RemoveTrustedRootCertificate", - "code": 12, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 } ], "attributes": [ @@ -6382,7 +6399,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0x01", "reportable": 1, "minInterval": 1, "maxInterval": 65534, diff --git a/examples/light-switch-app/nrfconnect/main/AppTask.cpp b/examples/light-switch-app/nrfconnect/main/AppTask.cpp index 5f2888bb156182..f8dfd2d63d4750 100644 --- a/examples/light-switch-app/nrfconnect/main/AppTask.cpp +++ b/examples/light-switch-app/nrfconnect/main/AppTask.cpp @@ -22,6 +22,7 @@ #include "LightSwitch.h" #include "ThreadUtil.h" +#include #include #include #include @@ -38,8 +39,8 @@ #endif #include -#include -#include +#include +#include using namespace ::chip; using namespace ::chip::app; @@ -80,6 +81,8 @@ k_timer sFunctionTimer; k_timer sDimmerPressKeyTimer; k_timer sDimmerTimer; +chip::DeviceLayer::DeviceInfoProviderImpl gExampleDeviceInfoProvider; + } /* namespace */ AppTask AppTask::sAppTask; @@ -153,10 +156,7 @@ CHIP_ERROR AppTask::Init() // Initialize DFU #ifdef CONFIG_MCUMGR_SMP_BT GetDFUOverSMP().Init(RequestSMPAdvertisingStart); -#ifndef CONFIG_CHIP_OTA_REQUESTOR - // When OTA Requestor is enabled, it is responsible for confirming new images. GetDFUOverSMP().ConfirmNewImage(); -#endif #endif // Print initial configs @@ -164,9 +164,10 @@ CHIP_ERROR AppTask::Init() static chip::CommonCaseDeviceServerInitParams initParams; ReturnErrorOnFailure(initParams.InitializeStaticResourcesBeforeServerInit()); ReturnErrorOnFailure(Server::GetInstance().Init(initParams)); -#if CONFIG_CHIP_OTA_REQUESTOR - InitBasicOTARequestor(); -#endif + + gExampleDeviceInfoProvider.SetStorageDelegate(&Server::GetInstance().GetPersistentStorage()); + chip::DeviceLayer::SetDeviceInfoProvider(&gExampleDeviceInfoProvider); + ConfigurationMgr().LogDeviceConfig(); PrintOnboardingCodes(RendezvousInformationFlags(RendezvousInformationFlag::kBLE)); @@ -385,6 +386,14 @@ void AppTask::ChipEventHandler(const ChipDeviceEvent * aEvent, intptr_t /* arg * sIsThreadEnabled = ConnectivityMgr().IsThreadEnabled(); UpdateStatusLED(); break; + case DeviceEventType::kThreadConnectivityChange: +#if CONFIG_CHIP_OTA_REQUESTOR + if (aEvent->ThreadConnectivityChange.Result == kConnectivity_Established) + { + InitBasicOTARequestor(); + } +#endif + break; default: if ((ConnectivityMgr().NumBLEConnections() == 0) && (!sIsThreadProvisioned || !sIsThreadEnabled)) { diff --git a/examples/light-switch-app/nrfconnect/main/BindingHandler.cpp b/examples/light-switch-app/nrfconnect/main/BindingHandler.cpp index 9cf98455d66ede..678e48df31b674 100644 --- a/examples/light-switch-app/nrfconnect/main/BindingHandler.cpp +++ b/examples/light-switch-app/nrfconnect/main/BindingHandler.cpp @@ -21,7 +21,7 @@ #include "ShellCommands.h" #endif -#include +#include LOG_MODULE_DECLARE(app, CONFIG_MATTER_LOG_LEVEL); using namespace chip; diff --git a/examples/light-switch-app/nrfconnect/main/main.cpp b/examples/light-switch-app/nrfconnect/main/main.cpp index 87098ff4b3e5d3..e463898978fb91 100644 --- a/examples/light-switch-app/nrfconnect/main/main.cpp +++ b/examples/light-switch-app/nrfconnect/main/main.cpp @@ -18,7 +18,7 @@ #include "AppTask.h" -#include +#include LOG_MODULE_REGISTER(app, CONFIG_MATTER_LOG_LEVEL); diff --git a/examples/light-switch-app/telink/CMakeLists.txt b/examples/light-switch-app/telink/CMakeLists.txt index 3368eb6a9ac567..1b28131ca7b41c 100755 --- a/examples/light-switch-app/telink/CMakeLists.txt +++ b/examples/light-switch-app/telink/CMakeLists.txt @@ -65,7 +65,6 @@ target_sources(app PRIVATE ${CHIP_ROOT}/src/app/util/attribute-storage.cpp ${CHIP_ROOT}/src/app/util/attribute-table.cpp ${CHIP_ROOT}/src/app/util/binding-table.cpp - ${CHIP_ROOT}/src/app/util/client-api.cpp ${CHIP_ROOT}/src/app/util/ember-compatibility-functions.cpp ${CHIP_ROOT}/src/app/util/ember-print.cpp ${CHIP_ROOT}/src/app/util/error-mapping.cpp diff --git a/examples/light-switch-app/telink/include/AppTask.h b/examples/light-switch-app/telink/include/AppTask.h index 70abb978d2cdc1..b682884b30155d 100755 --- a/examples/light-switch-app/telink/include/AppTask.h +++ b/examples/light-switch-app/telink/include/AppTask.h @@ -56,11 +56,14 @@ class AppTask void DispatchEvent(AppEvent * event); + static void UpdateStatusLED(); static void SwitchActionButtonEventHandler(void); static void FactoryResetButtonEventHandler(void); static void StartThreadButtonEventHandler(void); static void StartBleAdvButtonEventHandler(void); + static void ChipEventHandler(const chip::DeviceLayer::ChipDeviceEvent * event, intptr_t arg); + static void FactoryResetHandler(AppEvent * aEvent); static void StartThreadHandler(AppEvent * aEvent); static void SwitchActionEventHandler(AppEvent * aEvent); diff --git a/examples/light-switch-app/telink/prj.conf b/examples/light-switch-app/telink/prj.conf index 1d55aabce7cdac..c7946f01819c34 100755 --- a/examples/light-switch-app/telink/prj.conf +++ b/examples/light-switch-app/telink/prj.conf @@ -24,6 +24,10 @@ CONFIG_GPIO=y # enable PWM CONFIG_PWM=y +# OpenThread configs +CONFIG_OPENTHREAD_MTD=y +CONFIG_OPENTHREAD_FTD=n + # Default OpenThread network settings CONFIG_OPENTHREAD_PANID=4660 CONFIG_OPENTHREAD_CHANNEL=15 diff --git a/examples/light-switch-app/telink/src/AppTask.cpp b/examples/light-switch-app/telink/src/AppTask.cpp index 8078ac9fff1b6f..8b8bac4ed2d878 100755 --- a/examples/light-switch-app/telink/src/AppTask.cpp +++ b/examples/light-switch-app/telink/src/AppTask.cpp @@ -86,6 +86,8 @@ CHIP_ERROR AppTask::Init() LEDWidget::InitGpio(SYSTEM_STATE_LED_PORT); sStatusLED.Init(SYSTEM_STATE_LED_PIN); + UpdateStatusLED(); + InitButtons(); // Init ZCL Data Model and start server @@ -108,6 +110,11 @@ CHIP_ERROR AppTask::Init() PrintOnboardingCodes(chip::RendezvousInformationFlags(chip::RendezvousInformationFlag::kBLE)); + // Add CHIP event handler and start CHIP thread. + // Note that all the initialization code should happen prior to this point to avoid data races + // between the main and the CHIP threads. + PlatformMgr().AddEventHandler(ChipEventHandler, 0); + ret = ConnectivityMgr().SetBLEDeviceName("TelinkSwitch"); if (ret != CHIP_NO_ERROR) { @@ -140,37 +147,6 @@ CHIP_ERROR AppTask::StartApp() ret = k_msgq_get(&sAppEventQueue, &event, K_NO_WAIT); } - // Collect connectivity and configuration state from the CHIP stack. Because the - // CHIP event loop is being run in a separate task, the stack must be locked - // while these values are queried. However we use a non-blocking lock request - // (TryLockChipStack()) to avoid blocking other UI activities when the CHIP - // task is busy (e.g. with a long crypto operation). - - if (PlatformMgr().TryLockChipStack()) - { - sIsThreadProvisioned = ConnectivityMgr().IsThreadProvisioned(); - sIsThreadEnabled = ConnectivityMgr().IsThreadEnabled(); - sIsThreadAttached = ConnectivityMgr().IsThreadAttached(); - sHaveBLEConnections = (ConnectivityMgr().NumBLEConnections() != 0); - PlatformMgr().UnlockChipStack(); - } - - if (sIsThreadProvisioned && sIsThreadEnabled) - { - if (sIsThreadAttached) - { - sStatusLED.Blink(950, 50); - } - else - { - sStatusLED.Blink(100, 100); - } - } - else - { - sStatusLED.Blink(50, 950); - } - sStatusLED.Animate(); } } @@ -273,6 +249,52 @@ void AppTask::StartBleAdvHandler(AppEvent * aEvent) } } +void AppTask::UpdateStatusLED() +{ + if (sIsThreadProvisioned && sIsThreadEnabled) + { + if (sIsThreadAttached) + { + sStatusLED.Blink(950, 50); + } + else + { + sStatusLED.Blink(100, 100); + } + } + else + { + sStatusLED.Blink(50, 950); + } +} + +void AppTask::ChipEventHandler(const ChipDeviceEvent * event, intptr_t /* arg */) +{ + switch (event->Type) + { + case DeviceEventType::kCHIPoBLEAdvertisingChange: + sHaveBLEConnections = ConnectivityMgr().NumBLEConnections() != 0; + UpdateStatusLED(); + break; + case DeviceEventType::kThreadStateChange: + sIsThreadProvisioned = ConnectivityMgr().IsThreadProvisioned(); + sIsThreadEnabled = ConnectivityMgr().IsThreadEnabled(); + sIsThreadAttached = ConnectivityMgr().IsThreadAttached(); + UpdateStatusLED(); + break; + case DeviceEventType::kThreadConnectivityChange: +#if CONFIG_CHIP_OTA_REQUESTOR + if (event->ThreadConnectivityChange.Result == kConnectivity_Established) + { + InitBasicOTARequestor(); + } +#endif + break; + default: + break; + } +} + void AppTask::ActionInitiated(AppTask::Action_t aAction, int32_t aActor) {} void AppTask::ActionCompleted(AppTask::Action_t aAction, int32_t aActor) diff --git a/examples/light-switch-app/telink/src/main.cpp b/examples/light-switch-app/telink/src/main.cpp index 24f15f95490503..9c61b313f87569 100755 --- a/examples/light-switch-app/telink/src/main.cpp +++ b/examples/light-switch-app/telink/src/main.cpp @@ -64,7 +64,13 @@ int main(void) goto exit; } +#ifdef CONFIG_OPENTHREAD_MTD_SED + err = ConnectivityMgr().SetThreadDeviceType(ConnectivityManager::kThreadDeviceType_SleepyEndDevice); +#elif CONFIG_OPENTHREAD_MTD err = ConnectivityMgr().SetThreadDeviceType(ConnectivityManager::kThreadDeviceType_MinimalEndDevice); +#else + err = ConnectivityMgr().SetThreadDeviceType(ConnectivityManager::kThreadDeviceType_Router); +#endif if (err != CHIP_NO_ERROR) { LOG_ERR("ConnectivityMgr().SetThreadDeviceType() failed"); diff --git a/examples/lighting-app/ameba/chip_main.cmake b/examples/lighting-app/ameba/chip_main.cmake index 6ba0531e97f357..ecdc70c49c25d2 100755 --- a/examples/lighting-app/ameba/chip_main.cmake +++ b/examples/lighting-app/ameba/chip_main.cmake @@ -19,6 +19,7 @@ list( ${chip_dir}/src/app/clusters/ota-requestor/DefaultOTARequestorDriver.cpp ${chip_dir}/src/app/clusters/ota-requestor/DefaultOTARequestorStorage.cpp ${chip_dir}/src/app/clusters/ota-requestor/ota-requestor-server.cpp + ${chip_dir}/examples/platform/ameba/ota/OTAInitializer.cpp ) endif (matter_enable_ota_requestor) @@ -36,6 +37,8 @@ list( ${chip_dir}/examples/lighting-app/ameba/main/Globals.cpp ${chip_dir}/examples/lighting-app/ameba/main/LEDWidget.cpp ${chip_dir}/examples/lighting-app/ameba/main/DsoHack.cpp + + ${chip_dir}/examples/providers/DeviceInfoProviderImpl.cpp ) add_library( @@ -59,6 +62,8 @@ target_include_directories( ${chip_dir}/examples/lighting-app/lighting-common ${chip_dir}/examples/lighting-app/lighting-common/include ${chip_dir}/examples/lighting-app/ameba/main/include + ${chip_dir}/examples/platform/ameba + ${chip_dir}/examples/providers ${chip_dir_output}/gen/include ${chip_dir}/src/include/ ${chip_dir}/src/lib/ @@ -84,14 +89,6 @@ list( -DMATTER_LIGHTING_APP=1 ) -if (matter_enable_ota_requestor) -list( - APPEND chip_main_flags - - -DCONFIG_ENABLE_OTA_REQUESTOR=1 -) -endif (matter_enable_ota_requestor) - list( APPEND chip_main_cpp_flags diff --git a/examples/lighting-app/ameba/main/DeviceCallbacks.cpp b/examples/lighting-app/ameba/main/DeviceCallbacks.cpp index cb023f73b6ea87..754a79651b7063 100644 --- a/examples/lighting-app/ameba/main/DeviceCallbacks.cpp +++ b/examples/lighting-app/ameba/main/DeviceCallbacks.cpp @@ -37,6 +37,10 @@ #include #include +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR +#include +#endif + static const char * TAG = "app-devicecallbacks"; using namespace ::chip; @@ -47,7 +51,15 @@ using namespace ::chip::DeviceManager; using namespace ::chip::Logging; uint32_t identifyTimerCount; -constexpr uint32_t kIdentifyTimerDelayMS = 250; +constexpr uint32_t kIdentifyTimerDelayMS = 250; +constexpr uint32_t kInitOTARequestorDelaySec = 3; + +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR +void InitOTARequestorHandler(System::Layer * systemLayer, void * appState) +{ + OTAInitializer::Instance().InitOTARequestor(); +} +#endif void DeviceCallbacks::DeviceEventCallback(const ChipDeviceEvent * event, intptr_t arg) { @@ -76,6 +88,10 @@ void DeviceCallbacks::DeviceEventCallback(const ChipDeviceEvent * event, intptr_ void DeviceCallbacks::OnInternetConnectivityChange(const ChipDeviceEvent * event) { +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR + static bool isOTAInitialized = false; +#endif + if (event->InternetConnectivityChange.IPv4 == kConnectivity_Established) { printf("IPv4 Server ready..."); @@ -89,6 +105,15 @@ void DeviceCallbacks::OnInternetConnectivityChange(const ChipDeviceEvent * event { printf("IPv6 Server ready..."); chip::app::DnssdServer::Instance().StartServer(); +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR + // Init OTA requestor only when we have gotten IPv6 address + if (!isOTAInitialized) + { + chip::DeviceLayer::SystemLayer().StartTimer(chip::System::Clock::Seconds32(kInitOTARequestorDelaySec), + InitOTARequestorHandler, nullptr); + isOTAInitialized = true; + } +#endif } else if (event->InternetConnectivityChange.IPv6 == kConnectivity_Lost) { diff --git a/examples/lighting-app/ameba/main/chipinterface.cpp b/examples/lighting-app/ameba/main/chipinterface.cpp index 6ef8940aaacfc3..6ba9aa4a21686c 100644 --- a/examples/lighting-app/ameba/main/chipinterface.cpp +++ b/examples/lighting-app/ameba/main/chipinterface.cpp @@ -22,6 +22,7 @@ #include "Globals.h" #include "LEDWidget.h" #include "Server.h" +#include #include "chip_porting.h" #include @@ -42,16 +43,6 @@ #include -#if CONFIG_ENABLE_OTA_REQUESTOR -#include "app/clusters/ota-requestor/DefaultOTARequestorStorage.h" -#include -#include -#include -#include -#include -#include -#endif - using namespace ::chip; using namespace ::chip::Credentials; using namespace ::chip::DeviceManager; @@ -84,55 +75,7 @@ void NetWorkCommissioningInstInit() #endif static DeviceCallbacks EchoCallbacks; - -#if CONFIG_ENABLE_OTA_REQUESTOR -DefaultOTARequestor gRequestorCore; -DefaultOTARequestorStorage gRequestorStorage; -ExtendedOTARequestorDriver gRequestorUser; -BDXDownloader gDownloader; -AmebaOTAImageProcessor gImageProcessor; -chip::ota::DefaultOTARequestorUserConsent gUserConsentProvider; -static chip::ota::UserConsentState gUserConsentState = chip::ota::UserConsentState::kGranted; -#endif - -#if CONFIG_ENABLE_OTA_REQUESTOR -extern "C" void amebaQueryImageCmdHandler() -{ - ChipLogProgress(DeviceLayer, "Calling amebaQueryImageCmdHandler"); - PlatformMgr().ScheduleWork([](intptr_t) { GetRequestorInstance()->TriggerImmediateQuery(); }); -} - -extern "C" void amebaApplyUpdateCmdHandler() -{ - ChipLogProgress(DeviceLayer, "Calling amebaApplyUpdateCmdHandler"); - PlatformMgr().ScheduleWork([](intptr_t) { GetRequestorInstance()->ApplyUpdate(); }); -} - -static void InitOTARequestor(void) -{ - // Initialize and interconnect the Requestor and Image Processor objects -- START - SetRequestorInstance(&gRequestorCore); - - gRequestorStorage.Init(Server::GetInstance().GetPersistentStorage()); - - // Set server instance used for session establishment - gRequestorCore.Init(Server::GetInstance(), gRequestorStorage, gRequestorUser, gDownloader); - - gImageProcessor.SetOTADownloader(&gDownloader); - - // Connect the Downloader and Image Processor objects - gDownloader.SetImageProcessorDelegate(&gImageProcessor); - gRequestorUser.Init(&gRequestorCore, &gImageProcessor); - - if (gUserConsentState != chip::ota::UserConsentState::kUnknown) - { - gUserConsentProvider.SetUserConsentState(gUserConsentState); - gRequestorUser.SetUserConsentDelegate(&gUserConsentProvider); - } - - // Initialize and interconnect the Requestor and Image Processor objects -- END -} -#endif // CONFIG_ENABLE_OTA_REQUESTOR +chip::DeviceLayer::DeviceInfoProviderImpl gExampleDeviceInfoProvider; void OnIdentifyStart(Identify *) { @@ -176,15 +119,13 @@ static void InitServer(intptr_t context) static chip::CommonCaseDeviceServerInitParams initParams; (void) initParams.InitializeStaticResourcesBeforeServerInit(); chip::Server::GetInstance().Init(initParams); + gExampleDeviceInfoProvider.SetStorageDelegate(&Server::GetInstance().GetPersistentStorage()); + chip::DeviceLayer::SetDeviceInfoProvider(&gExampleDeviceInfoProvider); // Initialize device attestation config SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider()); NetWorkCommissioningInstInit(); -#if CONFIG_ENABLE_OTA_REQUESTOR - InitOTARequestor(); -#endif - if (RTW_SUCCESS != wifi_is_connected_to_ap()) { // QR code will be used with CHIP Tool diff --git a/examples/lighting-app/bouffalolab/bl602/README.md b/examples/lighting-app/bouffalolab/bl602/README.md index 8cb3295646a644..2810808d155393 100644 --- a/examples/lighting-app/bouffalolab/bl602/README.md +++ b/examples/lighting-app/bouffalolab/bl602/README.md @@ -1,73 +1,148 @@ -#CHIP BL602 Lighting Example +# BL602 -## Build +This example functions as a wifi light bulb device type, with on/off +capabilities. The steps were verified on BL602-IoT-DVK-3S board. -- Install some additional tools(likely already present for CHIP developers): +BL602-IoT-DVK-3S + - #Linux \$ sudo apt-get install git libwebkitgtk-1.0-0 ninja-build +## Initial setup - #Mac OS X \$ brew install ninja +- Setting up the environment on ubuntu 20.04 or 18.04 -* Build the example application: +``` +$ sudo apt-get update +$ sudo apt-get upgrade +$ sudo apt-get install git gcc g++ python pkg-config libssl-dev libdbus-1-dev libglib2.0-dev libavahi-client-dev ninja-build python3-venv python3-dev python3-pip unzip libgirepository1.0-dev libcairo2-dev bluez avahi-daemon +$ sudo apt-get install pi-bluetooth (if not raspberry pi, sudo apt-get install bluetooth) +$ reboot - `connectedhomeip$ ./scripts/build/build_examples.py --target bl602-lighting build` +``` -Generated files +- Clone and initialize the connectedhomeip repo - ``` - connectedhomeip/out/lighting_app_bl602/chip-bl602-lighting-example.bin - ``` +``` +git clone https://github.com/project-chip/connectedhomeip.git +cd connectedhomeip +git submodule update --init --recursive +``` -- To delete generated executable, libraries and object files use: +- Install packets - ``` - $ cd ~/connectedhomeip/ - $ rm -rf out/ - ``` +``` +$ cd {path-to-connectedhomeip} +connectedhomeip$ source ./scripts/bootstrap.sh +connectedhomeip$ source ./scripts/activate.sh -## Flash +``` -- Download [FLASH_TOOL](https://dev.bouffalolab.com/download/). +## Build the image -### Setting up Python Controller +- Build the example application: -Once BL602 is up and running, we need to set up a device controller to perform -commissioning and cluster control. + `connectedhomeip$ ./scripts/build/build_examples.py --target bl602-light build` -- Set up python controller. + Generated files - ``` - $ cd {path-to-connectedhomeip} - $ ./scripts/build_python.sh -m platform - ``` + `connectedhomeip/out/bl602-light/chip-bl602-lighting-example.bin` -- Execute the controller. + - To delete generated executable, libraries and object files use: - ``` - $ source ./out/python_env/bin/activate - $ chip-device-ctrl - ``` + ``` + $ cd ~/connectedhomeip/ + $ rm -rf out/ + ``` -### Commissioning over BLE +## Flash the board -- Establish the secure session over BLE. BLE is the default mode in the - application and is configurable through menuconfig. +- Download [Bouffalo Lab Dev Cube](https://dev.bouffalolab.com/download/). - ``` - - chip-device-ctrl > ble-scan - - chip-device-ctrl > set-pairing-wifi-credential TESTSSID P455W4RD - - chip-device-ctrl > connect -ble 3904 20202021 135246 + Log in to the site as a guest. - Parameters: - 1. Discriminator: 3904 - 2. Setup-pin-code: 20202021 - 3. Node ID: Optional. - If not passed in this command, then it is auto-generated by the controller and displayed in the output of connect. - The same value should be used in the next commands. - We have chosen a random node ID which is 135246. - 4. TESTSSID : Wi-Fi SSID - 5. P455W4RD : Wi-Fi Password - ``` + + + + +run the software : + + + + + +The following picture shows the burning interface. To download the firmware, you +need to enter the download mode: press and hold the Boot (IO8) pin of the +development board, press the **RST** button, and then release the Boot button to +enter the burning and downloading mode. + + + +Notice: Latest version Bouffalolab dev cube is recommended. + +Factory Params: +`BouffaloLabDevCube-1.7.2-linux-x86/chips/bl602/device_tree/bl_factory_params_IoTKitA_40M.dts` + +Partition Table: +`BouffaloLabDevCube-1.7.2-linux-x86/chips/bl602/partition/partition_cfg_2M.toml` + +Boot2 Bin: +`BouffaloLabDevCube-1.7.2-linux-x86/chips/bl602/builtin_imgs/boot2_iap_v5.5/boot2_iap_release.bin` + +Firmware Bin: `connectedhomeip/out/bl602-light/chip-bl602-lighting-example.bin` + +Partition Table: + +1. FW: The size of FW size0 must be larger than the bin size, we can do it by + reducing the size of FW size1 and media partition size0. + +COM Port: + +``` + ls -la /dev/ttyUSB* +``` + +select the big one. + +## Validate the example + +1.The device should present itself as a USB serial device on your computer. You +may look it up in `/dev/`: + +``` +ls -la /dev/tty* +``` + +You can open the serial console. For example, if the device is at `/dev/USB1`: + +``` +picocom -b 2000000 /dev/ttyUSB1 +``` + +To reset the board, press the **RST** button. And you will see the log from the +demo board. + +## Commission a device using chip-tool + +To initiate a client commissioning request to a device, run the built executable +and choose the pairing mode. + +#### Commissioning over BLE + +Run the built executable and pass it the discriminator and pairing code of the +remote device, as well as the network credentials to use. + +The command below uses the default values hard-coded into the debug versions of +the BL602 lighting-app to commission it onto a Wi-Fi network: + +``` +$ sudo ./chip-tool pairing ble-wifi 1 ${SSID} ${PASSWORD} 20202021 3840 + + Parameters: + 1. Discriminator: 3840 + 2. Setup-pin-code: 20202021 + 3. Node ID: 1 + 4. SSID : Wi-Fi SSID + 5. PASSWORD : Wi-Fi Password +``` ### Cluster control @@ -75,16 +150,8 @@ commissioning and cluster control. the OnOff attribute. This allows you to toggle a parameter implemented by the device to be On or Off. - `chip-device-ctrl > zcl OnOff On 135246 1 1` - `chip-device-ctrl > zcl OnOff Off 135246 1 1` - -- Use the LevelControl cluster commands to control the CurrentLevel attribute. - This allows you to control the brightness of the led. - - `chip-device-ctrl > zcl LevelControl MoveToLevel 135246 1 1 level=10 transitionTime=0 optionMask=0 optionOverride=0` + `$ sudo ./chip-tool onoff on 1 1` -- Use the ColorControl cluster commands to control the CurrentHue and - CurrentSaturation attribute. +- Use ColorControl cluster command to control the color attributes: - `chip-device-ctrl > zcl ColorControl MoveToHue 135246 1 1 hue=100 direction=0 transitionTime=0 optionsMask=0 optionsOverride=0` - `chip-device-ctrl > zcl ColorControl MoveToSaturation 135245 1 1 saturation=200 transitionTime=0 optionsMask=0 optionsOverride=0` + `$ sudo ./chip-tool colorcontrol move-to-hue-and-saturation 240 100 0 0 0 1 1` diff --git a/examples/lighting-app/bouffalolab/bl602/include/CHIPProjectConfig.h b/examples/lighting-app/bouffalolab/bl602/include/CHIPProjectConfig.h index 432da6a471750a..2be12f7d113334 100644 --- a/examples/lighting-app/bouffalolab/bl602/include/CHIPProjectConfig.h +++ b/examples/lighting-app/bouffalolab/bl602/include/CHIPProjectConfig.h @@ -42,7 +42,7 @@ #ifndef CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE #define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE 20202021 #endif -#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR 0xF40 +#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR 0xF00 // For convenience, Chip Security Test Mode can be enabled and the // requirement for authentication in various protocols can be disabled. diff --git a/examples/lighting-app/bouffalolab/bl602/src/AppTask.cpp b/examples/lighting-app/bouffalolab/bl602/src/AppTask.cpp index 905d6124f1bac2..a67ca012b56438 100644 --- a/examples/lighting-app/bouffalolab/bl602/src/AppTask.cpp +++ b/examples/lighting-app/bouffalolab/bl602/src/AppTask.cpp @@ -137,8 +137,26 @@ void AppTask::AppTaskMain(void * pvParameter) log_info("App Task entered\r\n"); - sWiFiNetworkCommissioningInstance.Init(); - chip::Server::GetInstance().Init(); + err = sWiFiNetworkCommissioningInstance.Init(); + if (CHIP_NO_ERROR != err) + { + log_error("Network commissioning failed, err:%d \r\n", err); + } + + chip::CommonCaseDeviceServerInitParams initParams; + err = initParams.InitializeStaticResourcesBeforeServerInit(); + if (CHIP_NO_ERROR != err) + { + log_error("Resources Init failed, err:%d \r\n", err); + return; + } + + err = chip::Server::GetInstance().Init(initParams); + if (CHIP_NO_ERROR != err) + { + log_error("Server Init failed, err:%d \r\n", err); + return; + } // Initialize device attestation config SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider()); diff --git a/examples/lighting-app/bouffalolab/bl602/src/LEDWidget.cpp b/examples/lighting-app/bouffalolab/bl602/src/LEDWidget.cpp index b79f5b64b6e400..0dab8b76bf7283 100644 --- a/examples/lighting-app/bouffalolab/bl602/src/LEDWidget.cpp +++ b/examples/lighting-app/bouffalolab/bl602/src/LEDWidget.cpp @@ -83,8 +83,9 @@ static void showRGB(uint8_t red, uint8_t green, uint8_t blue) level = (blue * 10000) / UINT8_MAX; log_info("blue level: %d\r\n", level); - pwmB.port = 2; - pwmB.config.pin = 17; + pwmB.port = 2; + // not use debug port + // pwmB.config.pin = 17; pwmB.config.duty_cycle = level; // duty_cycle range is 0~10000 correspond to 0~100% pwmB.config.freq = 1000; hosal_pwm_init(&pwmB); diff --git a/examples/lighting-app/bouffalolab/bl602/src/main.cpp b/examples/lighting-app/bouffalolab/bl602/src/main.cpp index 9f0cc914fb8095..eaa1e35821f298 100644 --- a/examples/lighting-app/bouffalolab/bl602/src/main.cpp +++ b/examples/lighting-app/bouffalolab/bl602/src/main.cpp @@ -68,16 +68,6 @@ app::Clusters::NetworkCommissioning::Instance sWiFiNetworkCommissioningInstance(0 /* Endpoint Id */, &(NetworkCommissioning::BLWiFiDriver::GetInstance())); } // namespace -static void InitServer(intptr_t context) -{ - chip::Server::GetInstance().Init(); - - // Initialize device attestation config - SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider()); - - sWiFiNetworkCommissioningInstance.Init(); -} - extern "C" int main() { InitPlatform(); diff --git a/examples/lighting-app/cyw30739/BUILD.gn b/examples/lighting-app/cyw30739/BUILD.gn index e29a615a8ae7eb..86d7342430b378 100644 --- a/examples/lighting-app/cyw30739/BUILD.gn +++ b/examples/lighting-app/cyw30739/BUILD.gn @@ -20,6 +20,7 @@ import("${cyw30739_sdk_build_root}/cyw30739_executable.gni") import("${cyw30739_sdk_build_root}/cyw30739_sdk.gni") cyw30739_project_dir = "${chip_root}/examples/lighting-app/cyw30739" +examples_plat_dir = "${chip_root}/examples/platform/cyw30739" declare_args() { setupPinCode = 20202021 @@ -29,7 +30,10 @@ declare_args() { cyw30739_sdk("sdk") { sources = [ "${cyw30739_project_dir}/include/CHIPProjectConfig.h" ] - include_dirs = [ "${cyw30739_project_dir}/include" ] + include_dirs = [ + "${cyw30739_project_dir}/include", + "${examples_plat_dir}", + ] defines = [ "CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE=${setupPinCode}", @@ -51,11 +55,19 @@ cyw30739_executable("lighting_app") { deps = [ ":sdk", "${chip_root}/examples/lighting-app/lighting-common", + "${chip_root}/examples/providers:device_info_provider", "${chip_root}/examples/shell/shell_common:shell_common", "${chip_root}/src/lib", ] include_dirs = [ "include" ] + + if (chip_enable_ota_requestor) { + sources += [ + "${examples_plat_dir}/OTAConfig.cpp", + "${examples_plat_dir}/OTAConfig.h", + ] + } } group("cyw30739") { diff --git a/examples/lighting-app/cyw30739/args.gni b/examples/lighting-app/cyw30739/args.gni index 8361c808a27a37..267c1db9b56817 100644 --- a/examples/lighting-app/cyw30739/args.gni +++ b/examples/lighting-app/cyw30739/args.gni @@ -18,3 +18,10 @@ import("${chip_root}/src/platform/CYW30739/args.gni") cyw30739_sdk_target = get_label_info(":sdk", "label_no_toolchain") chip_openthread_ftd = true + +chip_enable_ota_requestor = true + +chip_error_logging = false +chip_progress_logging = false +chip_detail_logging = false +chip_automation_logging = false diff --git a/examples/lighting-app/cyw30739/include/LightingManager.h b/examples/lighting-app/cyw30739/include/LightingManager.h index 0ce5b5c4073bfa..917bb37c023c63 100644 --- a/examples/lighting-app/cyw30739/include/LightingManager.h +++ b/examples/lighting-app/cyw30739/include/LightingManager.h @@ -55,10 +55,10 @@ class LightingManager typedef void (*Callback_fn_initiated)(Actor_t, Action_t, uint8_t); typedef void (*Callback_fn_completed)(Action_t); void SetCallbacks(Callback_fn_initiated aActionInitiated_CB, Callback_fn_completed aActionCompleted_CB); + void WriteClusterLevel(uint8_t value); private: void WriteClusterState(uint8_t value); - void WriteClusterLevel(uint8_t value); friend LightingManager & LightMgr(void); State_t mState; diff --git a/examples/lighting-app/cyw30739/src/ButtonHandler.cpp b/examples/lighting-app/cyw30739/src/ButtonHandler.cpp index 10c24a4b785440..c8665dfe492797 100644 --- a/examples/lighting-app/cyw30739/src/ButtonHandler.cpp +++ b/examples/lighting-app/cyw30739/src/ButtonHandler.cpp @@ -20,11 +20,15 @@ #include #include +#include +#include #include #include #include #include +using namespace chip::app::Clusters; + /****************************************************** * Macros ******************************************************/ @@ -56,7 +60,7 @@ wiced_result_t app_button_init(void) memset(app_buttons, 0, (sizeof(button_manager_button_t) * APP_MAX_BUTTON_DEF)); app_button_configurations[ON_OFF_BUTTON].button = PLATFORM_BUTTON_1; - app_button_configurations[ON_OFF_BUTTON].button_event_mask = BUTTON_CLICK_EVENT; + app_button_configurations[ON_OFF_BUTTON].button_event_mask = BUTTON_CLICK_EVENT | BUTTON_HOLDING_EVENT; app_buttons[ON_OFF_BUTTON].configuration = &app_button_configurations[ON_OFF_BUTTON]; result = wiced_button_manager_init(&app_button_manager, &app_button_manager_configuration, app_buttons, 1); @@ -71,7 +75,7 @@ wiced_result_t app_button_init(void) void app_button_event_handler(const button_manager_button_t * button_mgr, button_manager_event_t event, button_manager_button_state_t state) { - + uint8_t attributeValue; if (button_mgr[0].configuration->button == PLATFORM_BUTTON_1 && event == BUTTON_CLICK_EVENT && state == BUTTON_STATE_RELEASED) { if (LightMgr().IsLightOn()) @@ -85,4 +89,11 @@ void app_button_event_handler(const button_manager_button_t * button_mgr, button LightMgr().InitiateAction(LightingManager::ACTOR_BUTTON, LightingManager::ON_ACTION, 0); } } + else if (button_mgr[0].configuration->button == PLATFORM_BUTTON_1 && event == BUTTON_HOLDING_EVENT) + { + // update the current occupancy here for hardcoded endpoint 1 + OccupancySensing::Attributes::Occupancy::Get(1, &attributeValue); + printf("Button Holding Toggle: %d -> %d\n", attributeValue, !attributeValue); + OccupancySensing::Attributes::Occupancy::Set(1, !attributeValue); + } } diff --git a/examples/lighting-app/cyw30739/src/ZclCallbacks.cpp b/examples/lighting-app/cyw30739/src/ZclCallbacks.cpp index bbb4e91ba68e3a..ba9eb4056d3b72 100644 --- a/examples/lighting-app/cyw30739/src/ZclCallbacks.cpp +++ b/examples/lighting-app/cyw30739/src/ZclCallbacks.cpp @@ -20,6 +20,7 @@ #include "LightingManager.h" #include #include +#include using namespace chip; using namespace chip::app::Clusters; @@ -32,7 +33,7 @@ void emberAfBasicClusterInitCallback(EndpointId endpoint) uint8_t dayOfMonth; char cString[16] = "00000000"; - if (ConfigurationMgr().GetManufacturingDate(year, month, dayOfMonth) == CHIP_NO_ERROR) + if (GetDeviceInstanceInfoProvider()->GetManufacturingDate(year, month, dayOfMonth) == CHIP_NO_ERROR) { snprintf(cString, sizeof(cString), "%04u%02u%02u", year, month, dayOfMonth); } @@ -62,6 +63,17 @@ void MatterPostAttributeChangeCallback(const app::ConcreteAttributePath & attrib return; } break; + case Identify::Id: + if (attributePath.mAttributeId == Identify::Attributes::IdentifyTime::Id) + { + uint16_t identifyTime; + if (EMBER_ZCL_STATUS_SUCCESS == Identify::Attributes::IdentifyTime::Get(attributePath.mEndpointId, &identifyTime)) + { + ChipLogProgress(Zcl, "IdentifyTime %u", identifyTime); + return; + } + } + break; default: printf("Unhandled cluster ID: 0x%04lx\n", attributePath.mClusterId); return; diff --git a/examples/lighting-app/cyw30739/src/main.cpp b/examples/lighting-app/cyw30739/src/main.cpp index 97fbd3ede97602..6c606e5c9dc1f2 100644 --- a/examples/lighting-app/cyw30739/src/main.cpp +++ b/examples/lighting-app/cyw30739/src/main.cpp @@ -16,16 +16,22 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +#include + #include #include #include +#include #include +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR +#include +#endif +#include #include #include #include #include #include -#include #include #include #include @@ -37,6 +43,7 @@ using namespace ::chip::Credentials; using namespace ::chip::DeviceLayer; using namespace ::chip::Shell; +static chip::DeviceLayer::DeviceInfoProviderImpl gExampleDeviceInfoProvider; static void InitApp(intptr_t args); static void EventHandler(const ChipDeviceEvent * event, intptr_t arg); static void HandleThreadStateChangeEvent(const ChipDeviceEvent * event); @@ -47,6 +54,13 @@ static wiced_led_config_t chip_lighting_led_config = { .bright = 50, }; +static Identify gIdentify = { + chip::EndpointId{ 1 }, + [](Identify *) { ChipLogProgress(Zcl, "onIdentifyStart"); }, + [](Identify *) { ChipLogProgress(Zcl, "onIdentifyStop"); }, + EMBER_ZCL_IDENTIFY_IDENTIFY_TYPE_VISIBLE_LED, +}; + APPLICATION_START() { CHIP_ERROR err; @@ -141,9 +155,16 @@ void InitApp(intptr_t args) chip::Server::GetInstance().Init(initParams); SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider()); + gExampleDeviceInfoProvider.SetStorageDelegate(&chip::Server::GetInstance().GetPersistentStorage()); + chip::DeviceLayer::SetDeviceInfoProvider(&gExampleDeviceInfoProvider); LightMgr().Init(); LightMgr().SetCallbacks(LightManagerCallback, NULL); + LightMgr().WriteClusterLevel(254); + +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR + OTAConfig::Init(); +#endif } void EventHandler(const ChipDeviceEvent * event, intptr_t arg) diff --git a/examples/lighting-app/efr32/BUILD.gn b/examples/lighting-app/efr32/BUILD.gn index e82be7a6cb5a03..341582d0287321 100644 --- a/examples/lighting-app/efr32/BUILD.gn +++ b/examples/lighting-app/efr32/BUILD.gn @@ -60,6 +60,9 @@ declare_args() { # Disable LCD on supported devices disable_lcd = false + + # Argument to Disable IPv4 for wifi(rs911) + chip_disable_wifi_ipv4 = false } declare_args() { @@ -214,6 +217,10 @@ efr32_executable("lighting_app") { sources += [ "${examples_plat_dir}/OTAConfig.cpp" ] } + if (chip_disable_wifi_ipv4) { + defines += [ "WIFI_IPV4_DISABLED" ] + } + # WiFi Settings if (chip_enable_wifi) { if (use_rs911x) { diff --git a/examples/lighting-app/efr32/args.gni b/examples/lighting-app/efr32/args.gni index 96b6262f50b93e..348e8e012098ae 100644 --- a/examples/lighting-app/efr32/args.gni +++ b/examples/lighting-app/efr32/args.gni @@ -23,3 +23,4 @@ chip_enable_ota_requestor = true pw_log_BACKEND = "${chip_root}/src/lib/support/pw_log_chip" pw_assert_BACKEND = "$dir_pw_assert_log" chip_enable_openthread = true +pw_rpc_CONFIG = "$dir_pw_rpc:disable_global_mutex" diff --git a/examples/lighting-app/efr32/include/LightingManager.h b/examples/lighting-app/efr32/include/LightingManager.h index 3aa9871e919074..6d286faa30ef96 100644 --- a/examples/lighting-app/efr32/include/LightingManager.h +++ b/examples/lighting-app/efr32/include/LightingManager.h @@ -25,6 +25,7 @@ #include "FreeRTOS.h" #include "timers.h" // provides FreeRTOS timer support +#include #include @@ -58,6 +59,8 @@ class LightingManager typedef void (*Callback_fn_completed)(Action_t); void SetCallbacks(Callback_fn_initiated aActionInitiated_CB, Callback_fn_completed aActionCompleted_CB); + static void OnTriggerOffWithEffect(OnOffEffect * effect); + private: friend LightingManager & LightMgr(void); State_t mState; @@ -68,6 +71,7 @@ class LightingManager bool mAutoTurnOff; uint32_t mAutoTurnOffDuration; bool mAutoTurnOffTimerArmed; + bool mOffEffectArmed; void CancelTimer(void); void StartTimer(uint32_t aTimeoutMs); @@ -75,6 +79,7 @@ class LightingManager static void TimerEventHandler(TimerHandle_t xTimer); static void AutoTurnOffTimerEventHandler(AppEvent * aEvent); static void ActuatorMovementTimerEventHandler(AppEvent * aEvent); + static void OffEffectTimerEventHandler(AppEvent * aEvent); static LightingManager sLight; }; diff --git a/examples/lighting-app/efr32/src/AppTask.cpp b/examples/lighting-app/efr32/src/AppTask.cpp index 040f0c715cdf38..7e1e8d9a811e82 100644 --- a/examples/lighting-app/efr32/src/AppTask.cpp +++ b/examples/lighting-app/efr32/src/AppTask.cpp @@ -160,52 +160,6 @@ Identify gIdentify = { OnTriggerIdentifyEffect, }; -/********************************************************** - * OffWithEffect Callbacks - *********************************************************/ - -void OnTriggerOffWithEffect(OnOffEffect * effect) -{ - chip::app::Clusters::OnOff::OnOffEffectIdentifier effectId = effect->mEffectIdentifier; - uint8_t effectVariant = effect->mEffectVariant; - - // Uses print outs until we can support the effects - if (effectId == EMBER_ZCL_ON_OFF_EFFECT_IDENTIFIER_DELAYED_ALL_OFF) - { - if (effectVariant == EMBER_ZCL_ON_OFF_DELAYED_ALL_OFF_EFFECT_VARIANT_FADE_TO_OFF_IN_0P8_SECONDS) - { - ChipLogProgress(Zcl, "EMBER_ZCL_ON_OFF_DELAYED_ALL_OFF_EFFECT_VARIANT_FADE_TO_OFF_IN_0P8_SECONDS"); - } - else if (effectVariant == EMBER_ZCL_ON_OFF_DELAYED_ALL_OFF_EFFECT_VARIANT_NO_FADE) - { - ChipLogProgress(Zcl, "EMBER_ZCL_ON_OFF_DELAYED_ALL_OFF_EFFECT_VARIANT_NO_FADE"); - } - else if (effectVariant == - EMBER_ZCL_ON_OFF_DELAYED_ALL_OFF_EFFECT_VARIANT_50_PERCENT_DIM_DOWN_IN_0P8_SECONDS_THEN_FADE_TO_OFF_IN_12_SECONDS) - { - ChipLogProgress(Zcl, - "EMBER_ZCL_ON_OFF_DELAYED_ALL_OFF_EFFECT_VARIANT_50_PERCENT_DIM_DOWN_IN_0P8_SECONDS_THEN_FADE_TO_OFF_" - "IN_12_SECONDS"); - } - } - else if (effectId == EMBER_ZCL_ON_OFF_EFFECT_IDENTIFIER_DYING_LIGHT) - { - if (effectVariant == - EMBER_ZCL_ON_OFF_DYING_LIGHT_EFFECT_VARIANT_20_PERCENTER_DIM_UP_IN_0P5_SECONDS_THEN_FADE_TO_OFF_IN_1_SECOND) - { - ChipLogProgress( - Zcl, "EMBER_ZCL_ON_OFF_DYING_LIGHT_EFFECT_VARIANT_20_PERCENTER_DIM_UP_IN_0P5_SECONDS_THEN_FADE_TO_OFF_IN_1_SECOND"); - } - } -} - -OnOffEffect gEffect = { - chip::EndpointId{ 1 }, - OnTriggerOffWithEffect, - EMBER_ZCL_ON_OFF_EFFECT_IDENTIFIER_DELAYED_ALL_OFF, - static_cast(EMBER_ZCL_ON_OFF_DELAYED_ALL_OFF_EFFECT_VARIANT_FADE_TO_OFF_IN_0P8_SECONDS), -}; - } // namespace using namespace chip::TLV; @@ -284,7 +238,7 @@ CHIP_ERROR AppTask::Init() ConfigurationMgr().LogDeviceConfig(); // Print setup info on LCD if available -#ifdef DISPLAY_ENABLED +#if QR_CODE_ENABLED // Create buffer for QR code that can fit max size and null terminator. char qrCodeBuffer[chip::QRCodeBasicSetupPayloadGenerator::kMaxQRCodeBase38RepresentationLength + 1]; chip::MutableCharSpan QRCode(qrCodeBuffer); @@ -299,7 +253,7 @@ CHIP_ERROR AppTask::Init() } #else PrintOnboardingCodes(chip::RendezvousInformationFlag(chip::RendezvousInformationFlag::kBLE)); -#endif +#endif // QR_CODE_ENABLED return err; } diff --git a/examples/lighting-app/efr32/src/LightingManager.cpp b/examples/lighting-app/efr32/src/LightingManager.cpp index 3857a0d50e7fe5..47791911ea7308 100644 --- a/examples/lighting-app/efr32/src/LightingManager.cpp +++ b/examples/lighting-app/efr32/src/LightingManager.cpp @@ -23,8 +23,6 @@ #include "AppTask.h" #include -#include - using namespace chip; using namespace ::chip::DeviceLayer; @@ -32,6 +30,21 @@ LightingManager LightingManager::sLight; TimerHandle_t sLightTimer; +namespace { + +/********************************************************** + * OffWithEffect Callbacks + *********************************************************/ + +OnOffEffect gEffect = { + chip::EndpointId{ 1 }, + LightMgr().OnTriggerOffWithEffect, + EMBER_ZCL_ON_OFF_EFFECT_IDENTIFIER_DELAYED_ALL_OFF, + static_cast(EMBER_ZCL_ON_OFF_DELAYED_ALL_OFF_EFFECT_VARIANT_FADE_TO_OFF_IN_0P8_SECONDS), +}; + +} // namespace + CHIP_ERROR LightingManager::Init() { // Create FreeRTOS sw timer for light timer. @@ -58,6 +71,7 @@ CHIP_ERROR LightingManager::Init() mAutoTurnOffTimerArmed = false; mAutoTurnOff = false; mAutoTurnOffDuration = 0; + mOffEffectArmed = false; return CHIP_NO_ERROR; } @@ -94,13 +108,13 @@ bool LightingManager::InitiateAction(int32_t aActor, Action_t aAction) State_t new_state; // Initiate Turn On/Off Action only when the previous one is complete. - if (mState == kState_OffCompleted && aAction == ON_ACTION) + if (((mState == kState_OffCompleted) || mOffEffectArmed) && aAction == ON_ACTION) { action_initiated = true; new_state = kState_OnInitiated; } - else if (mState == kState_OnCompleted && aAction == OFF_ACTION) + else if (mState == kState_OnCompleted && aAction == OFF_ACTION && mOffEffectArmed == false) { action_initiated = true; @@ -118,6 +132,12 @@ bool LightingManager::InitiateAction(int32_t aActor, Action_t aAction) CancelTimer(); } + if (mOffEffectArmed && new_state == kState_OnInitiated) + { + CancelTimer(); + mOffEffectArmed = false; + } + StartTimer(ACTUATOR_MOVEMENT_PERIOS_MS); // Since the timer started successfully, update the state and trigger callback @@ -174,6 +194,10 @@ void LightingManager::TimerEventHandler(TimerHandle_t xTimer) { event.Handler = AutoTurnOffTimerEventHandler; } + else if (light->mOffEffectArmed) + { + event.Handler = OffEffectTimerEventHandler; + } else { event.Handler = ActuatorMovementTimerEventHandler; @@ -184,7 +208,7 @@ void LightingManager::TimerEventHandler(TimerHandle_t xTimer) void LightingManager::AutoTurnOffTimerEventHandler(AppEvent * aEvent) { LightingManager * light = static_cast(aEvent->TimerEvent.Context); - int32_t actor = 0; + int32_t actor = AppEvent::kEventType_Timer; // Make sure auto turn off timer is still armed. if (!light->mAutoTurnOffTimerArmed) @@ -199,6 +223,24 @@ void LightingManager::AutoTurnOffTimerEventHandler(AppEvent * aEvent) light->InitiateAction(actor, OFF_ACTION); } +void LightingManager::OffEffectTimerEventHandler(AppEvent * aEvent) +{ + LightingManager * light = static_cast(aEvent->TimerEvent.Context); + int32_t actor = AppEvent::kEventType_Timer; + + // Make sure auto turn off timer is still armed. + if (!light->mOffEffectArmed) + { + return; + } + + light->mOffEffectArmed = false; + + EFR32_LOG("OffEffect completed"); + + light->InitiateAction(actor, OFF_ACTION); +} + void LightingManager::ActuatorMovementTimerEventHandler(AppEvent * aEvent) { Action_t actionCompleted = INVALID_ACTION; @@ -234,3 +276,47 @@ void LightingManager::ActuatorMovementTimerEventHandler(AppEvent * aEvent) } } } + +void LightingManager::OnTriggerOffWithEffect(OnOffEffect * effect) +{ + chip::app::Clusters::OnOff::OnOffEffectIdentifier effectId = effect->mEffectIdentifier; + uint8_t effectVariant = effect->mEffectVariant; + uint32_t offEffectDuration = 0; + + // Temporary print outs and delay to test OffEffect behaviour + // Until dimming is supported for dev boards. + if (effectId == EMBER_ZCL_ON_OFF_EFFECT_IDENTIFIER_DELAYED_ALL_OFF) + { + if (effectVariant == EMBER_ZCL_ON_OFF_DELAYED_ALL_OFF_EFFECT_VARIANT_FADE_TO_OFF_IN_0P8_SECONDS) + { + offEffectDuration = 800; + ChipLogProgress(Zcl, "EMBER_ZCL_ON_OFF_DELAYED_ALL_OFF_EFFECT_VARIANT_FADE_TO_OFF_IN_0P8_SECONDS"); + } + else if (effectVariant == EMBER_ZCL_ON_OFF_DELAYED_ALL_OFF_EFFECT_VARIANT_NO_FADE) + { + offEffectDuration = 800; + ChipLogProgress(Zcl, "EMBER_ZCL_ON_OFF_DELAYED_ALL_OFF_EFFECT_VARIANT_NO_FADE"); + } + else if (effectVariant == + EMBER_ZCL_ON_OFF_DELAYED_ALL_OFF_EFFECT_VARIANT_50_PERCENT_DIM_DOWN_IN_0P8_SECONDS_THEN_FADE_TO_OFF_IN_12_SECONDS) + { + offEffectDuration = 12800; + ChipLogProgress(Zcl, + "EMBER_ZCL_ON_OFF_DELAYED_ALL_OFF_EFFECT_VARIANT_50_PERCENT_DIM_DOWN_IN_0P8_SECONDS_THEN_FADE_TO_OFF_" + "IN_12_SECONDS"); + } + } + else if (effectId == EMBER_ZCL_ON_OFF_EFFECT_IDENTIFIER_DYING_LIGHT) + { + if (effectVariant == + EMBER_ZCL_ON_OFF_DYING_LIGHT_EFFECT_VARIANT_20_PERCENTER_DIM_UP_IN_0P5_SECONDS_THEN_FADE_TO_OFF_IN_1_SECOND) + { + offEffectDuration = 1500; + ChipLogProgress( + Zcl, "EMBER_ZCL_ON_OFF_DYING_LIGHT_EFFECT_VARIANT_20_PERCENTER_DIM_UP_IN_0P5_SECONDS_THEN_FADE_TO_OFF_IN_1_SECOND"); + } + } + + LightMgr().mOffEffectArmed = true; + LightMgr().StartTimer(offEffectDuration); +} diff --git a/examples/lighting-app/esp32/main/main.cpp b/examples/lighting-app/esp32/main/main.cpp index 748ad7ea67588c..28a6f8bf9f75e8 100644 --- a/examples/lighting-app/esp32/main/main.cpp +++ b/examples/lighting-app/esp32/main/main.cpp @@ -32,6 +32,7 @@ using namespace ::chip; using namespace ::chip::DeviceManager; +using namespace ::chip::DeviceLayer; LEDWidget AppLED; diff --git a/examples/lighting-app/esp32/sdkconfig.defaults.esp32h2 b/examples/lighting-app/esp32/sdkconfig.defaults.esp32h2 index ee5067a140571e..3a6d8da8ff4033 100644 --- a/examples/lighting-app/esp32/sdkconfig.defaults.esp32h2 +++ b/examples/lighting-app/esp32/sdkconfig.defaults.esp32h2 @@ -65,5 +65,9 @@ CONFIG_ESP32H2_RTC_CLK_CAL_CYCLES=576 # FreeRTOS should use legacy API CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY=y +# Disable STA and AP for ESP32H2 +CONFIG_ENABLE_WIFI_STATION=n +CONFIG_ENABLE_WIFI_AP=n + # Enable OTA Requestor CONFIG_ENABLE_OTA_REQUESTOR=y diff --git a/examples/lighting-app/lighting-common/lighting-app.matter b/examples/lighting-app/lighting-common/lighting-app.matter index e9be0c6640002f..2d2773162d0210 100644 --- a/examples/lighting-app/lighting-common/lighting-app.matter +++ b/examples/lighting-app/lighting-common/lighting-app.matter @@ -642,8 +642,16 @@ server cluster GeneralDiagnostics = 51 { readonly attribute ENUM8 activeHardwareFaults[] = 5; readonly attribute ENUM8 activeRadioFaults[] = 6; readonly attribute ENUM8 activeNetworkFaults[] = 7; + readonly attribute boolean testEventTriggersEnabled = 8; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + + request struct TestEventTriggerRequest { + OCTET_STRING enableKey = 0; + INT64U eventTrigger = 1; + } + + command TestEventTrigger(TestEventTriggerRequest): DefaultSuccess = 0; } server cluster GroupKeyManagement = 63 { @@ -1250,6 +1258,7 @@ server cluster OperationalCredentials = 62 { kInvalidNOC = 3; kMissingCsr = 4; kTableFull = 5; + kInvalidAdminSubject = 6; kInsufficientPrivilege = 8; kFabricConflict = 9; kLabelConflict = 10; @@ -1290,13 +1299,14 @@ server cluster OperationalCredentials = 62 { request struct CSRRequestRequest { OCTET_STRING CSRNonce = 0; + optional boolean isForUpdateNOC = 1; } request struct AddNOCRequest { OCTET_STRING NOCValue = 0; optional OCTET_STRING ICACValue = 1; OCTET_STRING IPKValue = 2; - NODE_ID caseAdminNode = 3; + Int64u caseAdminSubject = 3; VENDOR_ID adminVendorId = 4; } @@ -1317,10 +1327,6 @@ server cluster OperationalCredentials = 62 { OCTET_STRING rootCertificate = 0; } - request struct RemoveTrustedRootCertificateRequest { - OCTET_STRING trustedRootIdentifier = 0; - } - response struct AttestationResponse = 1 { OCTET_STRING attestationElements = 0; OCTET_STRING signature = 1; @@ -1349,16 +1355,19 @@ server cluster OperationalCredentials = 62 { command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } server cluster SoftwareDiagnostics = 52 { + bitmap SoftwareDiagnosticsFeature : BITMAP32 { + kWaterMarks = 0x1; + } + struct ThreadMetrics { int64u id = 0; - char_string<8> name = 1; - int32u stackFreeCurrent = 2; - int32u stackFreeMinimum = 3; - int32u stackSize = 4; + optional char_string<8> name = 1; + optional int32u stackFreeCurrent = 2; + optional int32u stackFreeMinimum = 3; + optional int32u stackSize = 4; } info event SoftwareFault = 0 { @@ -1495,7 +1504,7 @@ server cluster ThreadNetworkDiagnostics = 53 { } readonly attribute nullable int16u channel = 0; - readonly attribute nullable enum8 routingRole = 1; + readonly attribute nullable RoutingRole routingRole = 1; readonly attribute nullable char_string<16> networkName = 2; readonly attribute nullable int16u panId = 3; readonly attribute nullable int64u extendedPanId = 4; @@ -1503,11 +1512,11 @@ server cluster ThreadNetworkDiagnostics = 53 { readonly attribute int64u overrunCount = 6; readonly attribute NeighborTable neighborTableList[] = 7; readonly attribute RouteTable routeTableList[] = 8; - readonly attribute int32u partitionId = 9; - readonly attribute int8u weighting = 10; - readonly attribute int8u dataVersion = 11; - readonly attribute int8u stableDataVersion = 12; - readonly attribute int8u leaderRouterId = 13; + readonly attribute nullable int32u partitionId = 9; + readonly attribute nullable int8u weighting = 10; + readonly attribute nullable int8u dataVersion = 11; + readonly attribute nullable int8u stableDataVersion = 12; + readonly attribute nullable int8u leaderRouterId = 13; readonly attribute int16u detachedRoleCount = 14; readonly attribute int16u childRoleCount = 15; readonly attribute int16u routerRoleCount = 16; @@ -1550,12 +1559,12 @@ server cluster ThreadNetworkDiagnostics = 53 { readonly attribute int32u rxErrSecCount = 53; readonly attribute int32u rxErrFcsCount = 54; readonly attribute int32u rxErrOtherCount = 55; - readonly attribute int64u activeTimestamp = 56; - readonly attribute int64u pendingTimestamp = 57; - readonly attribute int32u delay = 58; - readonly attribute SecurityPolicy securityPolicy[] = 59; - readonly attribute octet_string<4> channelMask = 60; - readonly attribute OperationalDatasetComponents operationalDatasetComponents[] = 61; + readonly attribute nullable int64u activeTimestamp = 56; + readonly attribute nullable int64u pendingTimestamp = 57; + readonly attribute nullable int32u delay = 58; + readonly attribute nullable SecurityPolicy securityPolicy = 59; + readonly attribute nullable octet_string<4> channelMask = 60; + readonly attribute nullable OperationalDatasetComponents operationalDatasetComponents = 61; readonly attribute NetworkFault activeNetworkFaultsList[] = 62; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -1660,8 +1669,8 @@ server cluster WiFiNetworkDiagnostics = 54 { command ResetCounts(): DefaultSuccess = 0; } - endpoint 0 { + device type rootdevice = 22; binding cluster OtaSoftwareUpdateProvider; server cluster Groups { @@ -1776,6 +1785,7 @@ endpoint 0 { callback attribute activeHardwareFaults; callback attribute activeRadioFaults; callback attribute activeNetworkFaults; + callback attribute testEventTriggersEnabled; ram attribute featureMap; ram attribute clusterRevision default = 1; } @@ -1790,67 +1800,67 @@ endpoint 0 { } server cluster ThreadNetworkDiagnostics { - ram attribute channel; - ram attribute routingRole; - ram attribute networkName; - ram attribute panId; - ram attribute extendedPanId; - ram attribute meshLocalPrefix; - ram attribute overrunCount; + callback attribute channel; + callback attribute routingRole; + callback attribute networkName; + callback attribute panId; + callback attribute extendedPanId; + callback attribute meshLocalPrefix; + callback attribute overrunCount; callback attribute neighborTableList; callback attribute routeTableList; - ram attribute partitionId; - ram attribute weighting; - ram attribute dataVersion; - ram attribute stableDataVersion; - ram attribute leaderRouterId; - ram attribute detachedRoleCount; - ram attribute childRoleCount; - ram attribute routerRoleCount; - ram attribute leaderRoleCount; - ram attribute attachAttemptCount; - ram attribute partitionIdChangeCount; - ram attribute betterPartitionAttachAttemptCount; - ram attribute parentChangeCount; - ram attribute txTotalCount; - ram attribute txUnicastCount; - ram attribute txBroadcastCount; - ram attribute txAckRequestedCount; - ram attribute txAckedCount; - ram attribute txNoAckRequestedCount; - ram attribute txDataCount; - ram attribute txDataPollCount; - ram attribute txBeaconCount; - ram attribute txBeaconRequestCount; - ram attribute txOtherCount; - ram attribute txRetryCount; - ram attribute txDirectMaxRetryExpiryCount; - ram attribute txIndirectMaxRetryExpiryCount; - ram attribute txErrCcaCount; - ram attribute txErrAbortCount; - ram attribute txErrBusyChannelCount; - ram attribute rxTotalCount; - ram attribute rxUnicastCount; - ram attribute rxBroadcastCount; - ram attribute rxDataCount; - ram attribute rxDataPollCount; - ram attribute rxBeaconCount; - ram attribute rxBeaconRequestCount; - ram attribute rxOtherCount; - ram attribute rxAddressFilteredCount; - ram attribute rxDestAddrFilteredCount; - ram attribute rxDuplicatedCount; - ram attribute rxErrNoFrameCount; - ram attribute rxErrUnknownNeighborCount; - ram attribute rxErrInvalidSrcAddrCount; - ram attribute rxErrSecCount; - ram attribute rxErrFcsCount; - ram attribute rxErrOtherCount; - ram attribute activeTimestamp; - ram attribute pendingTimestamp; - ram attribute delay; + callback attribute partitionId; + callback attribute weighting; + callback attribute dataVersion; + callback attribute stableDataVersion; + callback attribute leaderRouterId; + callback attribute detachedRoleCount; + callback attribute childRoleCount; + callback attribute routerRoleCount; + callback attribute leaderRoleCount; + callback attribute attachAttemptCount; + callback attribute partitionIdChangeCount; + callback attribute betterPartitionAttachAttemptCount; + callback attribute parentChangeCount; + callback attribute txTotalCount; + callback attribute txUnicastCount; + callback attribute txBroadcastCount; + callback attribute txAckRequestedCount; + callback attribute txAckedCount; + callback attribute txNoAckRequestedCount; + callback attribute txDataCount; + callback attribute txDataPollCount; + callback attribute txBeaconCount; + callback attribute txBeaconRequestCount; + callback attribute txOtherCount; + callback attribute txRetryCount; + callback attribute txDirectMaxRetryExpiryCount; + callback attribute txIndirectMaxRetryExpiryCount; + callback attribute txErrCcaCount; + callback attribute txErrAbortCount; + callback attribute txErrBusyChannelCount; + callback attribute rxTotalCount; + callback attribute rxUnicastCount; + callback attribute rxBroadcastCount; + callback attribute rxDataCount; + callback attribute rxDataPollCount; + callback attribute rxBeaconCount; + callback attribute rxBeaconRequestCount; + callback attribute rxOtherCount; + callback attribute rxAddressFilteredCount; + callback attribute rxDestAddrFilteredCount; + callback attribute rxDuplicatedCount; + callback attribute rxErrNoFrameCount; + callback attribute rxErrUnknownNeighborCount; + callback attribute rxErrInvalidSrcAddrCount; + callback attribute rxErrSecCount; + callback attribute rxErrFcsCount; + callback attribute rxErrOtherCount; + callback attribute activeTimestamp; + callback attribute pendingTimestamp; + callback attribute delay; callback attribute securityPolicy; - ram attribute channelMask; + callback attribute channelMask; callback attribute operationalDatasetComponents; callback attribute activeNetworkFaultsList; ram attribute featureMap default = 0x000F; @@ -1934,8 +1944,8 @@ endpoint 0 { ram attribute clusterRevision default = 1; } } - endpoint 1 { + device type dimmablelight = 257; server cluster Identify { ram attribute identifyTime; @@ -1963,7 +1973,7 @@ endpoint 1 { server cluster LevelControl { persist attribute currentLevel default = 0x01; ram attribute remainingTime; - ram attribute minLevel; + ram attribute minLevel default = 0x01; ram attribute maxLevel default = 0xFE; ram attribute currentFrequency; ram attribute minFrequency; diff --git a/examples/lighting-app/lighting-common/lighting-app.zap b/examples/lighting-app/lighting-common/lighting-app.zap index 1032aac7eda48b..546409132af503 100644 --- a/examples/lighting-app/lighting-common/lighting-app.zap +++ b/examples/lighting-app/lighting-common/lighting-app.zap @@ -2629,7 +2629,16 @@ "define": "GENERAL_DIAGNOSTICS_CLUSTER", "side": "server", "enabled": 1, - "commands": [], + "commands": [ + { + "name": "TestEventTrigger", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], "attributes": [ { "name": "NetworkInterfaces", @@ -2759,6 +2768,22 @@ "maxInterval": 65534, "reportableChange": 0 }, + { + "name": "TestEventTriggersEnabled", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "false", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "FeatureMap", "code": 65532, @@ -2988,7 +3013,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3002,9 +3027,9 @@ "code": 1, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "RoutingRole", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3020,7 +3045,7 @@ "side": "server", "type": "char_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", @@ -3036,7 +3061,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3052,7 +3077,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -3068,7 +3093,7 @@ "side": "server", "type": "octet_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3084,7 +3109,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -3132,7 +3157,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3148,7 +3173,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3164,7 +3189,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3180,7 +3205,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3196,7 +3221,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3212,7 +3237,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3228,7 +3253,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3244,7 +3269,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3260,7 +3285,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3276,7 +3301,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3292,7 +3317,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3308,7 +3333,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3324,7 +3349,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3340,7 +3365,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3356,7 +3381,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3372,7 +3397,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3388,7 +3413,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3404,7 +3429,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3420,7 +3445,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3436,7 +3461,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3452,7 +3477,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3468,7 +3493,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3484,7 +3509,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3500,7 +3525,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3516,7 +3541,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3532,7 +3557,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3548,7 +3573,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3564,7 +3589,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3580,7 +3605,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3596,7 +3621,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3612,7 +3637,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3628,7 +3653,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3644,7 +3669,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3660,7 +3685,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3676,7 +3701,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3692,7 +3717,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3708,7 +3733,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3724,7 +3749,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3740,7 +3765,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3756,7 +3781,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3772,7 +3797,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3788,7 +3813,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3804,7 +3829,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3820,7 +3845,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3836,7 +3861,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3852,7 +3877,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3868,7 +3893,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3884,7 +3909,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -3900,7 +3925,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -3916,7 +3941,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3930,7 +3955,7 @@ "code": 59, "mfgCode": null, "side": "server", - "type": "array", + "type": "SecurityPolicy", "included": 1, "storageOption": "External", "singleton": 0, @@ -3948,7 +3973,7 @@ "side": "server", "type": "octet_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3962,7 +3987,7 @@ "code": 61, "mfgCode": null, "side": "server", - "type": "array", + "type": "OperationalDatasetComponents", "included": 1, "storageOption": "External", "singleton": 0, @@ -4800,14 +4825,6 @@ "source": "client", "incoming": 1, "outgoing": 1 - }, - { - "name": "RemoveTrustedRootCertificate", - "code": 12, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 } ], "attributes": [ @@ -6207,7 +6224,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0x01", "reportable": 1, "minInterval": 1, "maxInterval": 65534, diff --git a/examples/lighting-app/nrfconnect/CMakeLists.txt b/examples/lighting-app/nrfconnect/CMakeLists.txt index 2fddf8e453a8d6..961ae6ff5afb86 100644 --- a/examples/lighting-app/nrfconnect/CMakeLists.txt +++ b/examples/lighting-app/nrfconnect/CMakeLists.txt @@ -91,6 +91,7 @@ set(PIGWEED_ROOT "${CHIP_ROOT}/third_party/pigweed/repo") include(${PIGWEED_ROOT}/pw_build/pigweed.cmake) include(${PIGWEED_ROOT}/pw_protobuf_compiler/proto.cmake) +pw_set_module_config(pw_rpc_CONFIG pw_rpc.disable_global_mutex_config) pw_set_backend(pw_log pw_log_basic) pw_set_backend(pw_assert pw_assert_log) pw_set_backend(pw_sys_io pw_sys_io.nrfconnect) diff --git a/examples/lighting-app/nrfconnect/boards/nrf52840dk_nrf52840.overlay b/examples/lighting-app/nrfconnect/boards/nrf52840dk_nrf52840.overlay index d8784e3714a921..96f955afe880cf 100644 --- a/examples/lighting-app/nrfconnect/boards/nrf52840dk_nrf52840.overlay +++ b/examples/lighting-app/nrfconnect/boards/nrf52840dk_nrf52840.overlay @@ -41,15 +41,31 @@ pwmleds { pwm_led1: pwm_led_1 { - pwms = < &pwm0 0xe >; + pwms = <&pwm0 1 PWM_MSEC(20) PWM_POLARITY_INVERTED>; }; }; }; &pwm0 { - /delete-property/ ch0-pin; - /delete-property/ ch0-inverted; - ch1-pin = < 0xe >; - ch1-inverted; + pinctrl-0 = <&pwm0_default_alt>; + pinctrl-1 = <&pwm0_sleep_alt>; + pinctrl-names = "default", "sleep"; +}; + +&pinctrl { + pwm0_default_alt: pwm0_default_alt { + group1 { + psels = ; + nordic,invert; + }; + }; + + pwm0_sleep_alt: pwm0_sleep_alt { + group1 { + psels = ; + low-power-enable; + }; + }; + }; diff --git a/examples/lighting-app/nrfconnect/boards/nrf5340dk_nrf5340_cpuapp.overlay b/examples/lighting-app/nrfconnect/boards/nrf5340dk_nrf5340_cpuapp.overlay index 01794dc6524a33..1e1fc11fa67052 100644 --- a/examples/lighting-app/nrfconnect/boards/nrf5340dk_nrf5340_cpuapp.overlay +++ b/examples/lighting-app/nrfconnect/boards/nrf5340dk_nrf5340_cpuapp.overlay @@ -31,7 +31,7 @@ pwmleds { compatible = "pwm-leds"; pwm_led1: pwm_led_1 { - pwms = < &pwm0 0x1d >; + pwms = < &pwm0 1 PWM_MSEC(20) PWM_POLARITY_INVERTED>; }; }; @@ -82,8 +82,24 @@ }; &pwm0 { - /delete-property/ ch0-pin; - /delete-property/ ch0-inverted; - ch1-pin = < 0x1d >; - ch1-inverted; + pinctrl-0 = <&pwm0_default_alt>; + pinctrl-1 = <&pwm0_sleep_alt>; + pinctrl-names = "default", "sleep"; +}; + +&pinctrl { + pwm0_default_alt: pwm0_default_alt { + group1 { + psels = ; + nordic,invert; + }; + }; + + pwm0_sleep_alt: pwm0_sleep_alt { + group1 { + psels = ; + low-power-enable; + }; + }; + }; diff --git a/examples/lighting-app/nrfconnect/main/AppTask.cpp b/examples/lighting-app/nrfconnect/main/AppTask.cpp index 9301570459d4a7..a108dc1b4bf89b 100644 --- a/examples/lighting-app/nrfconnect/main/AppTask.cpp +++ b/examples/lighting-app/nrfconnect/main/AppTask.cpp @@ -45,8 +45,8 @@ #endif #include -#include -#include +#include +#include LOG_MODULE_DECLARE(app, CONFIG_MATTER_LOG_LEVEL); @@ -78,9 +78,10 @@ LEDWidget sStatusLED; LEDWidget sIdentifyLED; LEDWidget sUnusedLED; -bool sIsThreadProvisioned = false; -bool sIsThreadEnabled = false; -bool sHaveBLEConnections = false; +const struct pwm_dt_spec sLightPwmDevice = PWM_DT_SPEC_GET(DT_ALIAS(pwm_led1)); +bool sIsThreadProvisioned = false; +bool sIsThreadEnabled = false; +bool sHaveBLEConnections = false; chip::DeviceLayer::DeviceInfoProviderImpl gExampleDeviceInfoProvider; @@ -142,7 +143,7 @@ CHIP_ERROR AppTask::Init() uint8_t maxLightLevel = kDefaultMaxLevel; Clusters::LevelControl::Attributes::MaxLevel::Get(kLightEndpointId, &maxLightLevel); - int ret = mPWMDevice.Init(LIGHTING_PWM_DEVICE, LIGHTING_PWM_CHANNEL, minLightLevel, maxLightLevel, maxLightLevel); + int ret = mPWMDevice.Init(&sLightPwmDevice, minLightLevel, maxLightLevel, maxLightLevel); if (ret != 0) { return chip::System::MapErrorZephyr(ret); @@ -164,10 +165,7 @@ CHIP_ERROR AppTask::Init() #ifdef CONFIG_MCUMGR_SMP_BT // Initialize DFU over SMP GetDFUOverSMP().Init(RequestSMPAdvertisingStart); -#ifndef CONFIG_CHIP_OTA_REQUESTOR - // When OTA Requestor is enabled, it is responsible for confirming new images. GetDFUOverSMP().ConfirmNewImage(); -#endif #endif // Initialize CHIP server @@ -176,13 +174,11 @@ CHIP_ERROR AppTask::Init() static chip::CommonCaseDeviceServerInitParams initParams; (void) initParams.InitializeStaticResourcesBeforeServerInit(); + ReturnErrorOnFailure(chip::Server::GetInstance().Init(initParams)); + gExampleDeviceInfoProvider.SetStorageDelegate(&Server::GetInstance().GetPersistentStorage()); chip::DeviceLayer::SetDeviceInfoProvider(&gExampleDeviceInfoProvider); - ReturnErrorOnFailure(chip::Server::GetInstance().Init(initParams)); -#if CONFIG_CHIP_OTA_REQUESTOR - InitBasicOTARequestor(); -#endif ConfigurationMgr().LogDeviceConfig(); PrintOnboardingCodes(chip::RendezvousInformationFlags(chip::RendezvousInformationFlag::kBLE)); @@ -492,6 +488,14 @@ void AppTask::ChipEventHandler(const ChipDeviceEvent * event, intptr_t /* arg */ sIsThreadEnabled = ConnectivityMgr().IsThreadEnabled(); UpdateStatusLED(); break; + case DeviceEventType::kThreadConnectivityChange: +#if CONFIG_CHIP_OTA_REQUESTOR + if (event->ThreadConnectivityChange.Result == kConnectivity_Established) + { + InitBasicOTARequestor(); + } +#endif + break; default: break; } diff --git a/examples/lighting-app/nrfconnect/main/include/AppConfig.h b/examples/lighting-app/nrfconnect/main/include/AppConfig.h index 31430a5609ac75..cf6c580dc8a81c 100644 --- a/examples/lighting-app/nrfconnect/main/include/AppConfig.h +++ b/examples/lighting-app/nrfconnect/main/include/AppConfig.h @@ -30,8 +30,6 @@ #define BLE_ADVERTISEMENT_START_BUTTON_MASK DK_BTN4_MSK #define SYSTEM_STATE_LED DK_LED1 // led0 in device tree -#define LIGHTING_PWM_DEVICE DEVICE_DT_GET(DT_PWMS_CTLR(DT_ALIAS(pwm_led1))) -#define LIGHTING_PWM_CHANNEL DT_PWMS_CHANNEL(DT_ALIAS(pwm_led1)) // Time it takes in ms for the simulated actuator to move from one state to another. #define ACTUATOR_MOVEMENT_PERIOS_MS 2000 diff --git a/examples/lighting-app/nrfconnect/main/main.cpp b/examples/lighting-app/nrfconnect/main/main.cpp index 0b718e25fa2e84..9a487fcc8c2895 100644 --- a/examples/lighting-app/nrfconnect/main/main.cpp +++ b/examples/lighting-app/nrfconnect/main/main.cpp @@ -20,15 +20,15 @@ #include -#include +#include #ifdef CONFIG_CHIP_PW_RPC #include "Rpc.h" #endif #if DT_NODE_HAS_COMPAT(DT_CHOSEN(zephyr_console), zephyr_cdc_acm_uart) -#include -#include +#include +#include #endif LOG_MODULE_REGISTER(app, CONFIG_MATTER_LOG_LEVEL); diff --git a/examples/lighting-app/nxp/k32w/k32w0/README.md b/examples/lighting-app/nxp/k32w/k32w0/README.md index 0667e6ea940b7f..51385c7d0edba2 100644 --- a/examples/lighting-app/nxp/k32w/k32w0/README.md +++ b/examples/lighting-app/nxp/k32w/k32w0/README.md @@ -27,9 +27,16 @@ network. - [Detokenizer script](#detokenizer) - [Notes](#detokenizer-notes) - [Known issues](#detokenizer-known-issues) -- [OTA](#ota) - [Writing the SSBL](#ssbl) - [Writing the PSECT](#psect) - - [Writing the application](#appwrite) - [OTA Testing](#otatesting) - - [Known issues](#otaissues) +- [Tinycrypt ECC operations](#tinycrypt) + - [Building steps](#tinycrypt-building-steps) +- [OTA](#ota) + + - [Writing the SSBL](#ssbl) + - [Writing the PSECT](#psect) + - [Writing the application](#appwrite) + - [OTA Testing](#otatesting) + - [Known issues](#otaissues) + @@ -182,18 +189,17 @@ user@ubuntu:~/Desktop/git/connectedhomeip$ export NXP_K32W061_SDK_ROOT=/home/use user@ubuntu:~/Desktop/git/connectedhomeip$ ./third_party/nxp/k32w0_sdk/sdk_fixes/patch_k32w_sdk.sh user@ubuntu:~/Desktop/git/connectedhomeip$ source ./scripts/activate.sh user@ubuntu:~/Desktop/git/connectedhomeip$ cd examples/lighting-app/nxp/k32w/k32w0 -user@ubuntu:~/Desktop/git/connectedhomeip/examples/lighting-app/nxp/k32w/k32w0$ gn gen out/debug --args="k32w0_sdk_root=\"${NXP_K32W061_SDK_ROOT}\" chip_with_OM15082=1 chip_with_ot_cli=0 is_debug=false chip_crypto=\"mbedtls\" chip_with_se05x=0" +user@ubuntu:~/Desktop/git/connectedhomeip/examples/lighting-app/nxp/k32w/k32w0$ gn gen out/debug --args="k32w0_sdk_root=\"${NXP_K32W061_SDK_ROOT}\" chip_with_OM15082=1 chip_with_ot_cli=0 is_debug=false chip_crypto=\"mbedtls\" chip_with_se05x=0 mbedtls_use_tinycrypt=true chip_pw_tokenizer_logging=true mbedtls_repo=\"//third_party/connectedhomeip/third_party/nxp/libs/mbedtls\"" user@ubuntu:~/Desktop/git/connectedhomeip/examples/lighting-app/nxp/k32w/k32w0$ ninja -C out/debug user@ubuntu:~/Desktop/git/connectedhomeip/examples/lighting-app/nxp/k32w/k32w0$ $NXP_K32W061_SDK_ROOT/tools/imagetool/sign_images.sh out/debug/ ``` - with Secure element Exactly the same steps as above but set chip_with_se05x=1 in the gn command - and add arguments chip_pw_tokenizer_logging=true chip_enable_ota_requestor=false + and add argument chip_enable_ota_requestor=false -Note that options chip_pw_tokenizer_logging=true and -chip_enable_ota_requestor=false are required for building with Secure Element. -These can be changed if building without Secure Element +Note that option chip_enable_ota_requestor=false are required for building with +Secure Element. These can be changed if building without Secure Element Note that "patch_k32w_sdk.sh" script must be run for patching the K32W061 SDK 2.6.4. @@ -299,6 +305,25 @@ If run, closed and rerun with the serial option on the same serial port, the detokenization script will get stuck and not show any logs. The solution is to unplug and plug the board and then rerun the script. + + +## Tinycrypt ECC operations + + + +### Building steps + +Note: This solution is temporary. + +In order to use the tinycrypt ecc operations, use the following build arguments: + +- Build without Secure element (_chip_with_se05x=0_), with tinycrypt enabled + (_mbedtls_use_tinycrypt=true_) and with the `NXPmicro/mbedtls` library + (_mbedtls_repo=`\"//third_party/connectedhomeip/third_party/nxp/libs/mbedtls\"`_). + +To disable tinycrypt ecc operations, simply build without +_mbedtls_use_tinycrypt=true_ and without _mbedtls_repo_. + ## OTA diff --git a/examples/lighting-app/nxp/k32w/k32w0/main/AppTask.cpp b/examples/lighting-app/nxp/k32w/k32w0/main/AppTask.cpp index 4e8d5c5fb6cec4..8d120eb6c5abaa 100644 --- a/examples/lighting-app/nxp/k32w/k32w0/main/AppTask.cpp +++ b/examples/lighting-app/nxp/k32w/k32w0/main/AppTask.cpp @@ -28,6 +28,8 @@ #include #include +#include + #include #include #include @@ -95,8 +97,6 @@ static OTAImageProcessorImpl gImageProcessor; constexpr uint16_t requestedOtaBlockSize = 1024; #endif -extern bool shouldReset; - CHIP_ERROR AppTask::StartAppTask() { CHIP_ERROR err = CHIP_NO_ERROR; @@ -184,12 +184,27 @@ CHIP_ERROR AppTask::Init() return err; } +void LockOpenThreadTask(void) +{ + chip::DeviceLayer::ThreadStackMgr().LockThreadStack(); +} + +void UnlockOpenThreadTask(void) +{ + chip::DeviceLayer::ThreadStackMgr().UnlockThreadStack(); +} + void AppTask::InitServer(intptr_t arg) { static chip::CommonCaseDeviceServerInitParams initParams; (void) initParams.InitializeStaticResourcesBeforeServerInit(); // Init ZCL Data Model and start server + chip::Inet::EndPointStateOpenThread::OpenThreadEndpointInitParam nativeParams; + nativeParams.lockCb = LockOpenThreadTask; + nativeParams.unlockCb = UnlockOpenThreadTask; + nativeParams.openThreadInstancePtr = chip::DeviceLayer::ThreadStackMgrImpl().OTInstance(); + initParams.endpointNativeParams = static_cast(&nativeParams); VerifyOrDie((chip::Server::GetInstance().Init(initParams)) == CHIP_NO_ERROR); } @@ -690,13 +705,6 @@ void AppTask::OTAResumeEventHandler(AppEvent * aEvent) } } -extern "C" void vApplicationIdleHook(void) -{ -#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR - OTA_TransactionResume(); -#endif -} - void AppTask::PostEvent(const AppEvent * aEvent) { if (sAppEventQueue != NULL) @@ -753,3 +761,10 @@ void AppTask::UpdateDeviceStateInternal(intptr_t arg) /* set the device state */ sLightLED.Set(onoffAttrValue); } + +extern "C" void OTAIdleActivities(void) +{ +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR + OTA_TransactionResume(); +#endif +} diff --git a/examples/lighting-app/p6/BUILD.gn b/examples/lighting-app/p6/BUILD.gn index 6af9db2bffd8b8..fddb3e14405e60 100644 --- a/examples/lighting-app/p6/BUILD.gn +++ b/examples/lighting-app/p6/BUILD.gn @@ -17,6 +17,7 @@ import("//build_overrides/chip.gni") import("//build_overrides/p6.gni") import("${build_root}/config/defaults.gni") +import("${chip_root}/src/platform/device.gni") import("${p6_sdk_build_root}/p6_executable.gni") import("${p6_sdk_build_root}/p6_sdk.gni") @@ -34,6 +35,50 @@ declare_args() { # Monitor & log memory usage at runtime. enable_heap_monitoring = false + + # Build update app + build_update_image = false +} + +config("p6_ota_config") { + ldflags = [ "-T/" + rebase_path( + "${chip_root}/third_party/p6/p6_sdk/ota/cy8c6xxa_cm4_dual_ota_int.ld", + "/", + "${p6_project_dir}") ] + + ldflags += [ "-Wl,--defsym,MCUBOOT_HEADER_SIZE=0x400,--defsym,MCUBOOT_BOOTLOADER_SIZE=0x18000,--defsym,CY_BOOT_PRIMARY_1_SIZE=0x1C0000" ] + + defines = [ + "P6_OTA", + "OTA_SUPPORT ", + "OTA_USE_EXTERNAL_FLASH", + "CY_BOOT_USE_EXTERNAL_FLASH", + "MCUBOOT_HEADER_SIZE=0x400", + "MCUBOOT_MAX_IMG_SECTORS=3584", + "CY_BOOT_SCRATCH_SIZE=0x00004000", + "MCUBOOT_BOOTLOADER_SIZE=0x00018000", + "CY_BOOT_BOOTLOADER_SIZE=0x00018000", + "CY_BOOT_PRIMARY_1_START=0x00018000", + "CY_BOOT_PRIMARY_1_SIZE=0x1C0000", + "CY_BOOT_SECONDARY_1_START=0x00000000", + "CY_BOOT_SECONDARY_1_SIZE=0x001C0000", + "CY_FLASH_ERASE_VALUE=0xFF", + "MCUBOOT_IMAGE_NUMBER=1", + "MCUBOOT_SLOT_SIZE=0x1C0000", + "MCUBOOT_SCRATCH_SIZE=0x4000", + "MCUBOOT_SECTOR_SIZE = 512", + "APP_VERSION_MAJOR=1", + "APP_VERSION_MINOR=0", + "APP_VERSION_BUILD=0", + "MCUBOOT_OVERWRITE_ONLY", + "CY_ENABLE_XIP_PROGRAM", + ] + + if (build_update_image) { + defines += [ "CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION=2" ] + } else { + defines += [ "CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION=1" ] + } } p6_sdk_sources("lighting_app_sdk_sources") { @@ -50,8 +95,28 @@ p6_sdk_sources("lighting_app_sdk_sources") { ] sources = [ "${p6_project_dir}/include/CHIPProjectConfig.h" ] - public_configs = [ "${chip_root}/third_party/p6:p6_sdk_config" ] + + if (chip_enable_ota_requestor) { + sources += [ + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/bootutil/src/bootutil_misc.c", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/cy_flash_map.c", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/cy_flash_psoc6.c", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/cy_smif_psoc6.c", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/mem_config/mem_config_sfdp.c", + ] + include_dirs += [ + "${chip_root}/third_party/p6/p6_sdk/ota/config", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/mem_config/", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/include/", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/include/flash_map_backend/", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/sysflash/", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/bootutil/include", + ] + public_configs += [ ":p6_ota_config" ] + } } p6_executable("lighting_app") { diff --git a/examples/lighting-app/p6/README.md b/examples/lighting-app/p6/README.md index c7327703c346fb..45d536e0cc40a7 100644 --- a/examples/lighting-app/p6/README.md +++ b/examples/lighting-app/p6/README.md @@ -13,6 +13,7 @@ An example showing the use of Matter on the Infineon CY8CKIT-062S2-43012 board. - [Commissioning over BLE](#commissioning-over-ble) - [Notes](#notes) - [Cluster control](#cluster-control) + - [OTA Software Update](#ota-software-update)
@@ -134,3 +135,9 @@ commands. These power cycle the BlueTooth hardware and disable BR/EDR mode. Press `USER_BTN1` on the board to toggle between Light ON and OFF states. Light ON and OFF can be observed with 'LED9' on the board. This LED is configured with `LIGHT_LED` in `include/AppConfig.h`. + +## OTA Software Update + +For the description of Software Update process with infineon P6 example +applications see +[Infineon P6 OTA Software Update](../../../docs/guides/infineon_p6_software_update.md) diff --git a/examples/lighting-app/p6/include/AppTask.h b/examples/lighting-app/p6/include/AppTask.h index cf8feffb2c7f08..54345a456d3beb 100644 --- a/examples/lighting-app/p6/include/AppTask.h +++ b/examples/lighting-app/p6/include/AppTask.h @@ -49,6 +49,7 @@ class AppTask void PostEvent(const AppEvent * event); void ButtonEventHandler(uint8_t btnIdx, uint8_t btnAction); + void InitOTARequestor(); private: friend AppTask & GetAppTask(void); diff --git a/examples/lighting-app/p6/include/CHIPProjectConfig.h b/examples/lighting-app/p6/include/CHIPProjectConfig.h index 9e3dca035ea178..885a051297072e 100644 --- a/examples/lighting-app/p6/include/CHIPProjectConfig.h +++ b/examples/lighting-app/p6/include/CHIPProjectConfig.h @@ -66,14 +66,14 @@ #define CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_REVISION 1 /** - * CHIP_DEVICE_CONFIG_DEVICE_FIRMWARE_REVISION_STRING + * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING * - * A string identifying the firmware revision running on the device. - * CHIP service currently expects the firmware version to be in the format + * A string identifying the software version running on the device. + * CHIP service currently expects the software version to be in the format * {MAJOR_VERSION}.0d{MINOR_VERSION} */ -#ifndef CHIP_DEVICE_CONFIG_DEVICE_FIRMWARE_REVISION_STRING -#define CHIP_DEVICE_CONFIG_DEVICE_FIRMWARE_REVISION_STRING "0.1ALPHA" +#ifndef CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING +#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING "0.1ALPHA" #endif /** * CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE diff --git a/examples/lighting-app/p6/ota_base_build.sh b/examples/lighting-app/p6/ota_base_build.sh new file mode 100755 index 00000000000000..5cdaf4d274d11c --- /dev/null +++ b/examples/lighting-app/p6/ota_base_build.sh @@ -0,0 +1,8 @@ +OUT_DIR=out/lighting-app/ +ANYCLOUD_DIR=third_party/p6/p6_sdk/libs/anycloud-ota/ + +scripts/examples/gn_p6_example.sh examples/lighting-app/p6 "$OUT_DIR" chip_enable_ota_requestor=true + +mv "$OUT_DIR"/chip-p6-lighting-example.hex "$OUT_DIR"/chip-p6-lighting-example.unsigned.hex + +./"$ANYCLOUD_DIR"/scripts/sign_script.bash "$OUT_DIR"/ chip-p6-lighting-example python3 arm-none-eabi-objcopy "-O ihex" "" "$ANYCLOUD_DIR"/source/mcuboot/scripts/ imgtool_v1.7.0/imgtool.py create 0xFF 0x400 3584 1.0.0 0x00018000 0x001C0000 arm-none-eabi-objcopy "" diff --git a/examples/lighting-app/p6/ota_update_build.sh b/examples/lighting-app/p6/ota_update_build.sh new file mode 100755 index 00000000000000..1c5c301429b5e0 --- /dev/null +++ b/examples/lighting-app/p6/ota_update_build.sh @@ -0,0 +1,14 @@ +OUT_DIR=out/lighting-app-ota +ANYCLOUD_DIR=third_party/p6/p6_sdk/libs/anycloud-ota/ + +./scripts/examples/gn_p6_example.sh examples/lighting-app/p6 "$OUT_DIR" chip_enable_ota_requestor=true build_update_image=true + +mv "$OUT_DIR"/chip-p6-lighting-example.hex "$OUT_DIR"/chip-p6-lighting-example.unsigned.hex + +./"$ANYCLOUD_DIR"/scripts/sign_script.bash "$OUT_DIR"/ chip-p6-lighting-example python3 arm-none-eabi-objcopy "-O ihex" "" "$ANYCLOUD_DIR"/source/mcuboot/scripts/ imgtool_v1.7.0/imgtool.py sign 0xFF 0x400 3584 1.0.0 0x00018000 0x001C0000 arm-none-eabi-objcopy "-k $ANYCLOUD_DIR/source/mcuboot/keys/cypress-test-ec-p256.pem" + +if [ -f "$OUT_DIR"/chip-p6-lighting-example.ota ]; then + rm "$OUT_DIR"/chip-p6-lighting-example.ota +fi + +src/app/ota_image_tool.py create -v 0xFFF1 -p 0x8000 -vn 2 -vs "2.0" -da sha256 "$OUT_DIR"/chip-p6-lighting-example.bin "$OUT_DIR"/chip-p6-lighting-example.ota diff --git a/examples/lighting-app/p6/src/AppTask.cpp b/examples/lighting-app/p6/src/AppTask.cpp index 55e2aa3ee9cd29..7bbcf55019a710 100644 --- a/examples/lighting-app/p6/src/AppTask.cpp +++ b/examples/lighting-app/p6/src/AppTask.cpp @@ -41,6 +41,33 @@ #include #include +/* OTA related includes */ +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR +#include +#include +#include +#include +#include +extern "C" { +#include "cy_smif_psoc6.h" +} +using chip::BDXDownloader; +using chip::CharSpan; +using chip::DefaultOTARequestor; +using chip::FabricIndex; +using chip::GetRequestorInstance; +using chip::NodeId; +using chip::OTADownloader; +using chip::OTAImageProcessorImpl; +using chip::System::Layer; + +using namespace ::chip; +using namespace chip::TLV; +using namespace ::chip::Credentials; +using namespace ::chip::DeviceLayer; +using namespace ::chip::System; + +#endif #define FACTORY_RESET_TRIGGER_TIMEOUT 3000 #define FACTORY_RESET_CANCEL_WINDOW_TIMEOUT 3000 #define APP_TASK_STACK_SIZE (4096) @@ -66,6 +93,15 @@ StaticQueue_t sAppEventQueueStruct; StackType_t appStack[APP_TASK_STACK_SIZE / sizeof(StackType_t)]; StaticTask_t appTaskStruct; + +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR +DefaultOTARequestor gRequestorCore; +DefaultOTARequestorStorage gRequestorStorage; +DefaultOTARequestorDriver gRequestorUser; +BDXDownloader gDownloader; +OTAImageProcessorImpl gImageProcessor; +#endif + } // namespace using namespace ::chip; @@ -94,6 +130,9 @@ static void InitServer(intptr_t context) // Initialize device attestation config SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider()); +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR + GetAppTask().InitOTARequestor(); +#endif } CHIP_ERROR AppTask::StartAppTask() @@ -113,7 +152,14 @@ CHIP_ERROR AppTask::StartAppTask() CHIP_ERROR AppTask::Init() { CHIP_ERROR err = CHIP_NO_ERROR; - +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR + int rc = boot_set_confirmed(); + if (rc != 0) + { + P6_LOG("boot_set_confirmed failed"); + appError(CHIP_ERROR_WELL_UNINITIALIZED); + } +#endif // Register the callback to init the MDNS server when connectivity is available PlatformMgr().AddEventHandler( [](const ChipDeviceEvent * event, intptr_t arg) { @@ -147,7 +193,7 @@ CHIP_ERROR AppTask::Init() appError(APP_ERROR_CREATE_TIMER_FAILED); } NetWorkCommissioningInstInit(); - P6_LOG("Current Firmware Version: %s", CHIP_DEVICE_CONFIG_DEVICE_FIRMWARE_REVISION_STRING); + P6_LOG("Current Firmware Version: %s", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING); err = LightMgr().Init(); if (err != CHIP_NO_ERROR) { @@ -523,3 +569,38 @@ void AppTask::UpdateClusterState(intptr_t context) P6_LOG("ERR: updating on/off %x", status); } } +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR +void AppTask::InitOTARequestor() +{ + CHIP_ERROR err = CHIP_NO_ERROR; + SetRequestorInstance(&gRequestorCore); + gRequestorStorage.Init(chip::Server::GetInstance().GetPersistentStorage()); + gRequestorCore.Init(chip::Server::GetInstance(), gRequestorStorage, gRequestorUser, gDownloader); + gImageProcessor.SetOTADownloader(&gDownloader); + gDownloader.SetImageProcessorDelegate(&gImageProcessor); + gRequestorUser.Init(&gRequestorCore, &gImageProcessor); + + uint32_t savedSoftwareVersion; + err = ConfigurationMgr().GetSoftwareVersion(savedSoftwareVersion); + if (err != CHIP_NO_ERROR) + { + P6_LOG("Can't get saved software version"); + appError(err); + } + + if (savedSoftwareVersion != CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION) + { + ConfigurationMgr().StoreSoftwareVersion(CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION); + + P6_LOG("Confirming update to version: %u", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION); + chip::OTARequestorInterface * requestor = chip::GetRequestorInstance(); + if (requestor != nullptr) + { + requestor->NotifyUpdateApplied(); + } + } + + P6_LOG("Current Software Version: %u", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION); + P6_LOG("Current Firmware Version String: %s", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING); +} +#endif diff --git a/examples/lighting-app/p6/src/main.cpp b/examples/lighting-app/p6/src/main.cpp index a38d25811c2e1e..8e4105b8f79356 100644 --- a/examples/lighting-app/p6/src/main.cpp +++ b/examples/lighting-app/p6/src/main.cpp @@ -34,6 +34,7 @@ #include #include "AppConfig.h" +#include "cyhal_wdt.h" #include "init_p6Platform.h" #include @@ -98,7 +99,14 @@ static void main_task(void * pvParameters) P6_LOG("PlatformMgr().InitChipStack() failed"); appError(ret); } - chip::DeviceLayer::ConnectivityMgr().SetBLEDeviceName("P6_LIGHT"); + + ret = chip::DeviceLayer::ConnectivityMgr().SetBLEDeviceName("P6_LIGHT"); + if (ret != CHIP_NO_ERROR) + { + P6_LOG("ConnectivityMgr().SetBLEDeviceName() failed"); + appError(ret); + } + P6_LOG("Starting Platform Manager Event Loop"); ret = PlatformMgr().StartEventLoopTask(); if (ret != CHIP_NO_ERROR) @@ -123,7 +131,12 @@ static void main_task(void * pvParameters) int main(void) { init_p6Platform(); - +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR + // Clear watchdog timer (started by bootloader) so that it doesn't trigger a reset + cyhal_wdt_t wdt_obj; + cyhal_wdt_init(&wdt_obj, cyhal_wdt_get_max_timeout_ms()); + cyhal_wdt_free(&wdt_obj); +#endif #ifdef HEAP_MONITORING MemMonitoring::startHeapMonitoring(); #endif diff --git a/examples/lighting-app/telink/CMakeLists.txt b/examples/lighting-app/telink/CMakeLists.txt index 8a0e97020e68fb..bea297558d59f5 100644 --- a/examples/lighting-app/telink/CMakeLists.txt +++ b/examples/lighting-app/telink/CMakeLists.txt @@ -65,7 +65,6 @@ target_sources(app PRIVATE ${CHIP_ROOT}/src/app/util/attribute-storage.cpp ${CHIP_ROOT}/src/app/util/attribute-table.cpp ${CHIP_ROOT}/src/app/util/binding-table.cpp - ${CHIP_ROOT}/src/app/util/client-api.cpp ${CHIP_ROOT}/src/app/util/ember-compatibility-functions.cpp ${CHIP_ROOT}/src/app/util/ember-print.cpp ${CHIP_ROOT}/src/app/util/error-mapping.cpp diff --git a/examples/lighting-app/telink/include/AppTask.h b/examples/lighting-app/telink/include/AppTask.h index d660ea20fbe0c2..d926c5286f41f3 100644 --- a/examples/lighting-app/telink/include/AppTask.h +++ b/examples/lighting-app/telink/include/AppTask.h @@ -46,11 +46,14 @@ class AppTask void DispatchEvent(AppEvent * event); + static void UpdateStatusLED(); static void LightingActionButtonEventHandler(void); static void FactoryResetButtonEventHandler(void); static void StartThreadButtonEventHandler(void); static void StartBleAdvButtonEventHandler(void); + static void ChipEventHandler(const chip::DeviceLayer::ChipDeviceEvent * event, intptr_t arg); + static void FactoryResetHandler(AppEvent * aEvent); static void StartThreadHandler(AppEvent * aEvent); static void LightingActionEventHandler(AppEvent * aEvent); diff --git a/examples/lighting-app/telink/prj.conf b/examples/lighting-app/telink/prj.conf index 8ed7a7bbea6d8c..93670fc50320f6 100644 --- a/examples/lighting-app/telink/prj.conf +++ b/examples/lighting-app/telink/prj.conf @@ -24,6 +24,10 @@ CONFIG_GPIO=y # enable PWM CONFIG_PWM=y +# OpenThread configs +CONFIG_OPENTHREAD_MTD=y +CONFIG_OPENTHREAD_FTD=n + # Default OpenThread network settings CONFIG_OPENTHREAD_PANID=4660 CONFIG_OPENTHREAD_CHANNEL=15 diff --git a/examples/lighting-app/telink/src/AppTask.cpp b/examples/lighting-app/telink/src/AppTask.cpp index f2e370faae8f17..18a99610cdbab8 100644 --- a/examples/lighting-app/telink/src/AppTask.cpp +++ b/examples/lighting-app/telink/src/AppTask.cpp @@ -86,6 +86,8 @@ CHIP_ERROR AppTask::Init() LEDWidget::InitGpio(SYSTEM_STATE_LED_PORT); sStatusLED.Init(SYSTEM_STATE_LED_PIN); + UpdateStatusLED(); + InitButtons(); // Init lighting manager @@ -109,6 +111,11 @@ CHIP_ERROR AppTask::Init() ConfigurationMgr().LogDeviceConfig(); PrintOnboardingCodes(chip::RendezvousInformationFlags(chip::RendezvousInformationFlag::kBLE)); + // Add CHIP event handler and start CHIP thread. + // Note that all the initialization code should happen prior to this point to avoid data races + // between the main and the CHIP threads. + PlatformMgr().AddEventHandler(ChipEventHandler, 0); + ret = ConnectivityMgr().SetBLEDeviceName("TelinkLight"); if (ret != CHIP_NO_ERROR) { @@ -141,37 +148,6 @@ CHIP_ERROR AppTask::StartApp() ret = k_msgq_get(&sAppEventQueue, &event, K_NO_WAIT); } - // Collect connectivity and configuration state from the CHIP stack. Because the - // CHIP event loop is being run in a separate task, the stack must be locked - // while these values are queried. However we use a non-blocking lock request - // (TryLockChipStack()) to avoid blocking other UI activities when the CHIP - // task is busy (e.g. with a long crypto operation). - - if (PlatformMgr().TryLockChipStack()) - { - sIsThreadProvisioned = ConnectivityMgr().IsThreadProvisioned(); - sIsThreadEnabled = ConnectivityMgr().IsThreadEnabled(); - sIsThreadAttached = ConnectivityMgr().IsThreadAttached(); - sHaveBLEConnections = (ConnectivityMgr().NumBLEConnections() != 0); - PlatformMgr().UnlockChipStack(); - } - - if (sIsThreadProvisioned && sIsThreadEnabled) - { - if (sIsThreadAttached) - { - sStatusLED.Blink(950, 50); - } - else - { - sStatusLED.Blink(100, 100); - } - } - else - { - sStatusLED.Blink(50, 950); - } - sStatusLED.Animate(); } } @@ -282,6 +258,52 @@ void AppTask::StartBleAdvHandler(AppEvent * aEvent) } } +void AppTask::UpdateStatusLED() +{ + if (sIsThreadProvisioned && sIsThreadEnabled) + { + if (sIsThreadAttached) + { + sStatusLED.Blink(950, 50); + } + else + { + sStatusLED.Blink(100, 100); + } + } + else + { + sStatusLED.Blink(50, 950); + } +} + +void AppTask::ChipEventHandler(const ChipDeviceEvent * event, intptr_t /* arg */) +{ + switch (event->Type) + { + case DeviceEventType::kCHIPoBLEAdvertisingChange: + sHaveBLEConnections = ConnectivityMgr().NumBLEConnections() != 0; + UpdateStatusLED(); + break; + case DeviceEventType::kThreadStateChange: + sIsThreadProvisioned = ConnectivityMgr().IsThreadProvisioned(); + sIsThreadEnabled = ConnectivityMgr().IsThreadEnabled(); + sIsThreadAttached = ConnectivityMgr().IsThreadAttached(); + UpdateStatusLED(); + break; + case DeviceEventType::kThreadConnectivityChange: +#if CONFIG_CHIP_OTA_REQUESTOR + if (event->ThreadConnectivityChange.Result == kConnectivity_Established) + { + InitBasicOTARequestor(); + } +#endif + break; + default: + break; + } +} + void AppTask::ActionInitiated(LightingManager::Action_t aAction, int32_t aActor) { if (aAction == LightingManager::ON_ACTION) diff --git a/examples/lighting-app/telink/src/main.cpp b/examples/lighting-app/telink/src/main.cpp index 7be656e3ed355d..28c080dc0bdc0f 100644 --- a/examples/lighting-app/telink/src/main.cpp +++ b/examples/lighting-app/telink/src/main.cpp @@ -64,7 +64,11 @@ int main(void) goto exit; } +#ifdef CONFIG_OPENTHREAD_MTD err = ConnectivityMgr().SetThreadDeviceType(ConnectivityManager::kThreadDeviceType_MinimalEndDevice); +#else + err = ConnectivityMgr().SetThreadDeviceType(ConnectivityManager::kThreadDeviceType_Router); +#endif if (err != CHIP_NO_ERROR) { LOG_ERR("ConnectivityMgr().SetThreadDeviceType() failed"); diff --git a/examples/lighting-app/tizen/README.md b/examples/lighting-app/tizen/README.md index 29ac1c818da311..f2707b0e3f318f 100644 --- a/examples/lighting-app/tizen/README.md +++ b/examples/lighting-app/tizen/README.md @@ -1,5 +1,80 @@ # CHIP Tizen Lighting Example +## Building binary + +Activating environment + +```sh +source ./scripts/activate.sh +``` + +Generating tizen-arm-light + +```sh +gn gen --check \ + --fail-on-unused-args \ + --export-compile-commands \ + --root=$PW_PROJECT_ROOT/examples/lighting-app/tizen \ + "--args=target_os=\"tizen\" target_cpu=\"arm\" tizen_sdk_root=\"$TIZEN_SDK_ROOT\" tizen_sdk_sysroot=\"$TIZEN_SDK_SYSROOT\"" \ + $PW_PROJECT_ROOT/out/tizen-arm-light +``` + +Building tizen-arm-light + +```sh +ninja -C $PW_PROJECT_ROOT/out/tizen-arm-light +``` + +## Preparing Tizen SDK certificate + +For packaging the Tizen APP, there is a need to generate an author certificate +and security profile using the commands described below. Change password and +author data as needed. + +```sh +$TIZEN_SDK_ROOT/tools/ide/bin/tizen certificate \ + --alias=CHIP \ + --name=CHIP \ + --email=chip@tizen.org \ + --password=chiptizen + +$TIZEN_SDK_ROOT/tools/ide/bin/tizen security-profiles add \ + --active \ + --name=CHIP \ + --author=$HOME/tizen-sdk-data/keystore/author/author.p12 \ + --password=chiptizen +``` + +This is only _one-time action_. To regenerate the author certificate and +security profile, you have to remove files from the `$HOME` directory using +specified commands: + +```sh +rm -r \ + $HOME/tizen-sdk-data \ + $HOME/.tizen-cli-config \ + $HOME/.secretsdb +``` + +After that, normally call scripts to generate the author certificate and +security profile mentioned previously. + +### Important + +Regenerating the author certificate and security profile makes it necessary to +remove the previously installed Tizen app. You can't reinstall an application on +the Tizen device with a different certificate. + +```sh +pkgcmd -u -n org.tizen.matter.example.lighting +``` + +## Packaging APP + +```sh +ninja -C $PW_PROJECT_ROOT/out/tizen-arm-light chip-lighting-app:tpk +``` + ## Installing TPK Upload TPK package to device under test (DUT). Install it with `pkgcmd` as diff --git a/examples/lighting-app/tizen/tizen-manifest.xml b/examples/lighting-app/tizen/tizen-manifest.xml index da0af28a2d254d..86aa047bba3390 100644 --- a/examples/lighting-app/tizen/tizen-manifest.xml +++ b/examples/lighting-app/tizen/tizen-manifest.xml @@ -7,6 +7,11 @@ http://tizen.org/privilege/bluetooth http://tizen.org/privilege/internet + http://tizen.org/privilege/network.get + true + true true + true + true diff --git a/examples/lock-app/cyw30739/BUILD.gn b/examples/lock-app/cyw30739/BUILD.gn index c08ce53069bbfb..87f0e15e92bff3 100644 --- a/examples/lock-app/cyw30739/BUILD.gn +++ b/examples/lock-app/cyw30739/BUILD.gn @@ -20,6 +20,7 @@ import("${cyw30739_sdk_build_root}/cyw30739_executable.gni") import("${cyw30739_sdk_build_root}/cyw30739_sdk.gni") cyw30739_project_dir = "${chip_root}/examples/lock-app/cyw30739" +examples_plat_dir = "${chip_root}/examples/platform/cyw30739" declare_args() { setupPinCode = 20202021 @@ -29,7 +30,10 @@ declare_args() { cyw30739_sdk("sdk") { sources = [ "${cyw30739_project_dir}/include/CHIPProjectConfig.h" ] - include_dirs = [ "${cyw30739_project_dir}/include" ] + include_dirs = [ + "${cyw30739_project_dir}/include", + "${examples_plat_dir}", + ] defines = [ "CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE=${setupPinCode}", @@ -42,8 +46,8 @@ cyw30739_executable("lock_app") { sources = [ "src/AppShellCommands.cpp", - "src/BoltLockManager.cpp", "src/ButtonHandler.cpp", + "src/LockManager.cpp", "src/ZclCallbacks.cpp", "src/main.cpp", ] @@ -51,12 +55,19 @@ cyw30739_executable("lock_app") { deps = [ ":sdk", "${chip_root}/examples/lock-app/lock-common", + "${chip_root}/examples/providers:device_info_provider", "${chip_root}/examples/shell/shell_common:shell_common", "${chip_root}/src/lib", - "${chip_root}/third_party/openthread/repo:libopenthread-ftd", ] include_dirs = [ "include" ] + + if (chip_enable_ota_requestor) { + sources += [ + "${examples_plat_dir}/OTAConfig.cpp", + "${examples_plat_dir}/OTAConfig.h", + ] + } } group("cyw30739") { diff --git a/examples/lock-app/cyw30739/args.gni b/examples/lock-app/cyw30739/args.gni index 149f7d42b18b5f..267c1db9b56817 100644 --- a/examples/lock-app/cyw30739/args.gni +++ b/examples/lock-app/cyw30739/args.gni @@ -16,3 +16,12 @@ import("//build_overrides/chip.gni") import("${chip_root}/src/platform/CYW30739/args.gni") cyw30739_sdk_target = get_label_info(":sdk", "label_no_toolchain") + +chip_openthread_ftd = true + +chip_enable_ota_requestor = true + +chip_error_logging = false +chip_progress_logging = false +chip_detail_logging = false +chip_automation_logging = false diff --git a/examples/lock-app/cyw30739/include/AppEvent.h b/examples/lock-app/cyw30739/include/AppEvent.h new file mode 100644 index 00000000000000..60583eba2c2123 --- /dev/null +++ b/examples/lock-app/cyw30739/include/AppEvent.h @@ -0,0 +1,52 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2018 Nest Labs, Inc. + * All rights reserved. + * + * 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. + */ + +#pragma once + +#include + +struct AppEvent +{ + enum AppEventTypes + { + kEventType_Button = 0, + kEventType_Timer, + kEventType_Lock, + kEventType_Install, + }; + + uint16_t Type; + + union + { + struct + { + uint8_t Action; + } ButtonEvent; + struct + { + void * Context; + } TimerEvent; + struct + { + uint8_t Action; + int32_t Actor; + } LockEvent; + }; +}; diff --git a/examples/lock-app/cyw30739/include/BoltLockManager.h b/examples/lock-app/cyw30739/include/BoltLockManager.h deleted file mode 100644 index 08cf1ccf0488a1..00000000000000 --- a/examples/lock-app/cyw30739/include/BoltLockManager.h +++ /dev/null @@ -1,86 +0,0 @@ -/* - * - * Copyright (c) 2019 Google LLC. - * All rights reserved. - * - * 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. - */ - -#pragma once - -#include -#include -#include - -class BoltLockManager -{ -public: - enum Action_t - { - LOCK_ACTION = 0, - UNLOCK_ACTION, - - INVALID_ACTION - } Action; - - enum State_t - { - kState_LockingInitiated = 0, - kState_LockingCompleted, - kState_UnlockingInitiated, - kState_UnlockingCompleted, - } State; - - enum Actor_t - { - ACTOR_ZCL_CMD = 0, - ACTOR_APP_CMD, - ACTOR_BUTTON, - } Actor; - - CHIP_ERROR Init(); - bool IsUnlocked(); - void EnableAutoRelock(bool aOn); - void SetAutoLockDuration(uint32_t aDurationInSecs); - bool IsActionInProgress(); - bool InitiateAction(int32_t aActor, Action_t aAction); - - typedef void (*Callback_fn_initiated)(Action_t, int32_t aActor); - typedef void (*Callback_fn_completed)(Action_t); - void SetCallbacks(Callback_fn_initiated aActionInitiated_CB, Callback_fn_completed aActionCompleted_CB); - -private: - friend BoltLockManager & BoltLockMgr(void); - State_t mState; - - Callback_fn_initiated mActionInitiated_CB; - Callback_fn_completed mActionCompleted_CB; - - bool mAutoRelock; - uint32_t mAutoLockDuration; - bool mAutoLockTimerArmed; - - void CancelTimer(void); - void StartTimer(uint32_t aTimeoutMs); - - static void TimerEventHandler(WICED_TIMER_PARAM_TYPE cb_params); - static int AutoReLockTimerEventHandler(void * aEvent); - static int ActuatorMovementTimerEventHandler(void * aEvent); - - static BoltLockManager sLock; -}; - -inline BoltLockManager & BoltLockMgr(void) -{ - return BoltLockManager::sLock; -} diff --git a/examples/lock-app/cyw30739/include/LockManager.h b/examples/lock-app/cyw30739/include/LockManager.h new file mode 100644 index 00000000000000..596e5e9f42d035 --- /dev/null +++ b/examples/lock-app/cyw30739/include/LockManager.h @@ -0,0 +1,119 @@ +/* + * + * Copyright (c) 2019 Google LLC. + * All rights reserved. + * + * 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. + */ + +#pragma once + +#include "AppEvent.h" +#include +#include +#include +#include +#include +#include + +using namespace ::chip; + +#define DOOR_LOCK_MAX_CREDENTIAL_SIZE 8 + +static constexpr size_t DOOR_LOCK_CREDENTIAL_INFO_MAX_DATA_SIZE = 20; + +class LockManager +{ +public: + enum Action_t + { + LOCK_ACTION = 0, + UNLOCK_ACTION, + + INVALID_ACTION + } Action; + + enum State_t + { + kState_LockInitiated = 0, + kState_LockCompleted, + kState_UnlockInitiated, + kState_UnlockCompleted, + } State; + + enum Actor_t + { + ACTOR_ZCL_CMD = 0, + ACTOR_APP_CMD, + ACTOR_BUTTON, + } Actor; + + CHIP_ERROR Init(chip::app::DataModel::Nullable state, + uint8_t maxNumberOfCredentialsPerUser); + bool NextState(); + bool IsActionInProgress(); + bool InitiateAction(int32_t aActor, Action_t aAction); + + typedef void (*Callback_fn_initiated)(Action_t, int32_t aActor); + typedef void (*Callback_fn_completed)(Action_t); + void SetCallbacks(Callback_fn_initiated aActionInitiated_CB, Callback_fn_completed aActionCompleted_CB); + + bool Lock(chip::EndpointId endpointId, const Optional & pin, DlOperationError & err); + bool Unlock(chip::EndpointId endpointId, const Optional & pin, DlOperationError & err); + + bool GetUser(uint16_t userIndex, EmberAfPluginDoorLockUserInfo & user) const; + bool SetUser(uint16_t userIndex, chip::FabricIndex creator, chip::FabricIndex modifier, const chip::CharSpan & userName, + uint32_t uniqueId, DlUserStatus userStatus, DlUserType usertype, DlCredentialRule credentialRule, + const DlCredential * credentials, size_t totalCredentials); + + bool GetCredential(chip::EndpointId endpointId, uint16_t credentialIndex, DlCredentialType credentialType, + EmberAfPluginDoorLockCredentialInfo & credential) const; + + bool SetCredential(chip::EndpointId endpointId, uint16_t credentialIndex, DlCredentialStatus credentialStatus, + DlCredentialType credentialType, const chip::ByteSpan & credentialData); + + bool setLockState(chip::EndpointId endpointId, DlLockState lockState, const Optional & pin, + DlOperationError & err); + const char * lockStateToString(DlLockState lockState) const; + + bool ReadConfigValues(); + +private: + friend LockManager & LockMgr(); + chip::EndpointId mEndpointId; + State_t mState; + + Callback_fn_initiated mActionInitiated_CB; + Callback_fn_completed mActionCompleted_CB; + + void CancelTimer(void); + void StartTimer(uint32_t aTimeoutMs); + + static void TimerEventHandler(WICED_TIMER_PARAM_TYPE cb_params); + static int ActuatorMovementTimerEventHandler(void * aEvent); + + EmberAfPluginDoorLockUserInfo mLockUser; + EmberAfPluginDoorLockCredentialInfo mLockCredentials; + + char mUserName[DOOR_LOCK_MAX_USER_NAME_SIZE]; + uint8_t mCredentialData[DOOR_LOCK_MAX_CREDENTIAL_SIZE]; + chip::Platform::ScopedMemoryBuffer mCredentials; + uint8_t mMaxCredentialsPerUser; + + static LockManager sLock; +}; + +inline LockManager & LockMgr() +{ + return LockManager::sLock; +} diff --git a/examples/lock-app/cyw30739/src/AppShellCommands.cpp b/examples/lock-app/cyw30739/src/AppShellCommands.cpp index e086f0189637b7..beb21c26c4c023 100644 --- a/examples/lock-app/cyw30739/src/AppShellCommands.cpp +++ b/examples/lock-app/cyw30739/src/AppShellCommands.cpp @@ -17,7 +17,7 @@ * limitations under the License. */ -#include +#include #include #include @@ -65,25 +65,25 @@ CHIP_ERROR AppCommandLockHandler(int argc, char * argv[]) { if (argc == 0) { - streamer_printf(streamer_get(), "The lock is %s\n", BoltLockMgr().IsUnlocked() ? "unlocked" : "locked"); + streamer_printf(streamer_get(), "The lock is %s\n", LockMgr().NextState() ? "unlocked" : "locked"); } else if (strcmp(argv[0], "on") == 0) { streamer_printf(streamer_get(), "Lock ...\n"); - BoltLockMgr().InitiateAction(BoltLockManager::ACTOR_APP_CMD, BoltLockManager::LOCK_ACTION); + LockMgr().InitiateAction(LockManager::ACTOR_APP_CMD, LockManager::LOCK_ACTION); } else if (strcmp(argv[0], "off") == 0) { streamer_printf(streamer_get(), "Unlock ...\n"); - BoltLockMgr().InitiateAction(BoltLockManager::ACTOR_BUTTON, BoltLockManager::UNLOCK_ACTION); + LockMgr().InitiateAction(LockManager::ACTOR_BUTTON, LockManager::UNLOCK_ACTION); } else if (strcmp(argv[0], "toggle") == 0) { streamer_printf(streamer_get(), "Toggling the lock ...\n"); - if (BoltLockMgr().IsUnlocked()) - BoltLockMgr().InitiateAction(BoltLockManager::ACTOR_APP_CMD, BoltLockManager::LOCK_ACTION); + if (LockMgr().NextState()) + LockMgr().InitiateAction(LockManager::ACTOR_APP_CMD, LockManager::LOCK_ACTION); else - BoltLockMgr().InitiateAction(BoltLockManager::ACTOR_BUTTON, BoltLockManager::UNLOCK_ACTION); + LockMgr().InitiateAction(LockManager::ACTOR_BUTTON, LockManager::UNLOCK_ACTION); } else { diff --git a/examples/lock-app/cyw30739/src/BoltLockManager.cpp b/examples/lock-app/cyw30739/src/BoltLockManager.cpp deleted file mode 100644 index 7796fe64696166..00000000000000 --- a/examples/lock-app/cyw30739/src/BoltLockManager.cpp +++ /dev/null @@ -1,219 +0,0 @@ -/* - * - * Copyright (c) 2020 Project CHIP Authors - * Copyright (c) 2019 Google LLC. - * All rights reserved. - * - * 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. - */ - -#include "BoltLockManager.h" -#include "wiced_bt_event.h" - -BoltLockManager BoltLockManager::sLock; - -wiced_timer_t sLockTimer; - -CHIP_ERROR BoltLockManager::Init() -{ - wiced_result_t result; - - // Create wiced timer for lock timer. - result = wiced_init_timer(&sLockTimer, TimerEventHandler, (WICED_TIMER_PARAM_TYPE) this, WICED_MILLI_SECONDS_TIMER); - if (result != WICED_BT_SUCCESS) - { - printf("sLockTimer timer create failed"); - return APP_ERROR_INIT_TIMER_FAILED; - } - - mState = kState_UnlockingCompleted; - mAutoLockTimerArmed = false; - mAutoRelock = false; - mAutoLockDuration = 0; - - return CHIP_NO_ERROR; -} - -void BoltLockManager::SetCallbacks(Callback_fn_initiated aActionInitiated_CB, Callback_fn_completed aActionCompleted_CB) -{ - mActionInitiated_CB = aActionInitiated_CB; - mActionCompleted_CB = aActionCompleted_CB; -} - -bool BoltLockManager::IsActionInProgress() -{ - return (mState == kState_LockingInitiated || mState == kState_UnlockingInitiated); -} - -bool BoltLockManager::IsUnlocked() -{ - return (mState == kState_UnlockingCompleted); -} - -void BoltLockManager::EnableAutoRelock(bool aOn) -{ - mAutoRelock = aOn; -} - -void BoltLockManager::SetAutoLockDuration(uint32_t aDurationInSecs) -{ - mAutoLockDuration = aDurationInSecs; -} - -bool BoltLockManager::InitiateAction(int32_t aActor, Action_t aAction) -{ - bool action_initiated = false; - State_t new_state; - - // Initiate Lock/Unlock Action only when the previous one is complete. - if (mState == kState_LockingCompleted && aAction == UNLOCK_ACTION) - { - action_initiated = true; - - new_state = kState_UnlockingInitiated; - } - else if (mState == kState_UnlockingCompleted && aAction == LOCK_ACTION) - { - action_initiated = true; - - new_state = kState_LockingInitiated; - } - - if (action_initiated) - { - if (mAutoLockTimerArmed && new_state == kState_LockingInitiated) - { - // If auto lock timer has been armed and someone initiates locking, - // cancel the timer and continue as normal. - mAutoLockTimerArmed = false; - - CancelTimer(); - } - - StartTimer(ACTUATOR_MOVEMENT_PERIOS_MS); - - // Since the timer started successfully, update the state and trigger callback - mState = new_state; - - if (mActionInitiated_CB) - { - mActionInitiated_CB(aAction, aActor); - } - } - - return action_initiated; -} - -void BoltLockManager::StartTimer(uint32_t aTimeoutMs) -{ - if (wiced_is_timer_in_use(&sLockTimer)) - { - printf("app timer already started!\n"); - CancelTimer(); - } - - if (wiced_start_timer(&sLockTimer, aTimeoutMs) != WICED_BT_SUCCESS) - { - printf("sLockTimer timer start() failed\n"); - return; - } -} - -void BoltLockManager::CancelTimer(void) -{ - if (wiced_stop_timer(&sLockTimer) != WICED_BT_SUCCESS) - { - printf("Lock timer timer stop() failed\n"); - return; - } -} - -void BoltLockManager::TimerEventHandler(WICED_TIMER_PARAM_TYPE cb_params) -{ - BoltLockManager * lock = reinterpret_cast(cb_params); - int (*fn)(void *); - - // The timer event handler will be called in the context of the timer task - // once sLockTimer expires. Post an event to apptask queue with the actual handler - // so that the event can be handled in the context of the apptask. - if (lock->mAutoLockTimerArmed) - { - fn = AutoReLockTimerEventHandler; - } - else - { - fn = ActuatorMovementTimerEventHandler; - } - - if (wiced_app_event_serialize(fn, (void *) lock) != WICED_TRUE) - { - printf("wiced_app_event_serialize failed\n"); - } -} - -int BoltLockManager::AutoReLockTimerEventHandler(void * data) -{ - BoltLockManager * lock = reinterpret_cast(data); - int32_t actor = 0; - - // Make sure auto lock timer is still armed. - if (!lock->mAutoLockTimerArmed) - { - return 0; - } - - lock->mAutoLockTimerArmed = false; - - printf("Auto Re-Lock has been triggered!\n"); - - lock->InitiateAction(actor, LOCK_ACTION); - - return 0; -} - -int BoltLockManager::ActuatorMovementTimerEventHandler(void * data) -{ - BoltLockManager * lock = reinterpret_cast(data); - Action_t actionCompleted = INVALID_ACTION; - - if (lock->mState == kState_LockingInitiated) - { - lock->mState = kState_LockingCompleted; - actionCompleted = LOCK_ACTION; - } - else if (lock->mState == kState_UnlockingInitiated) - { - lock->mState = kState_UnlockingCompleted; - actionCompleted = UNLOCK_ACTION; - } - - if (actionCompleted != INVALID_ACTION) - { - if (lock->mActionCompleted_CB) - { - lock->mActionCompleted_CB(actionCompleted); - } - - if (lock->mAutoRelock && actionCompleted == UNLOCK_ACTION) - { - // Start the timer for auto relock - lock->StartTimer(lock->mAutoLockDuration * 1000); - - lock->mAutoLockTimerArmed = true; - - printf("Auto Re-lock enabled. Will be triggered in %lu seconds\n", lock->mAutoLockDuration); - } - } - - return 0; -} diff --git a/examples/lock-app/cyw30739/src/ButtonHandler.cpp b/examples/lock-app/cyw30739/src/ButtonHandler.cpp index 47c37a7c2c65db..94f85a1b6259ab 100644 --- a/examples/lock-app/cyw30739/src/ButtonHandler.cpp +++ b/examples/lock-app/cyw30739/src/ButtonHandler.cpp @@ -18,8 +18,8 @@ * limitations under the License. */ -#include #include +#include #include #include #include @@ -73,18 +73,34 @@ void app_button_event_handler(const button_manager_button_t * button_mgr, button { // printf("app_button_event_handler. button=%d, event=%d, state=%d\n", button_mgr[ON_OFF_BUTTON].configuration->button, event, // state); - + bool initiated = false; + LockManager::Action_t action; + int32_t actor; + CHIP_ERROR err = CHIP_NO_ERROR; if (button_mgr[0].configuration->button == PLATFORM_BUTTON_1 && event == BUTTON_CLICK_EVENT && state == BUTTON_STATE_RELEASED) { - if (BoltLockMgr().IsUnlocked()) + if (LockMgr().NextState() == true) { - printf("Button Toggle:Lock\n"); - BoltLockMgr().InitiateAction(BoltLockManager::ACTOR_BUTTON, BoltLockManager::LOCK_ACTION); + action = LockManager::LOCK_ACTION; } else { - printf("Button Toggle:Unlock\n"); - BoltLockMgr().InitiateAction(BoltLockManager::ACTOR_BUTTON, BoltLockManager::UNLOCK_ACTION); + action = LockManager::UNLOCK_ACTION; + } + actor = AppEvent::kEventType_Button; + } + else + { + err = CHIP_ERROR_UNEXPECTED_EVENT; + } + + if (err == CHIP_NO_ERROR) + { + initiated = LockMgr().InitiateAction(LockManager::ACTOR_BUTTON, action); + + if (!initiated) + { + printf("Action is already in progress or active."); } } } diff --git a/examples/lock-app/cyw30739/src/LockManager.cpp b/examples/lock-app/cyw30739/src/LockManager.cpp new file mode 100644 index 00000000000000..d5af8592543829 --- /dev/null +++ b/examples/lock-app/cyw30739/src/LockManager.cpp @@ -0,0 +1,423 @@ +/* + * + * Copyright (c) 2020 Project CHIP Authors + * Copyright (c) 2019 Google LLC. + * All rights reserved. + * + * 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. + */ + +#include "LockManager.h" +#include "wiced_bt_event.h" +#include +#include + +using namespace chip::DeviceLayer::Internal; + +LockManager LockManager::sLock; + +wiced_timer_t sLockTimer; + +CHIP_ERROR LockManager::Init(chip::app::DataModel::Nullable state, + uint8_t maxNumberOfCredentialsPerUser) +{ + // Allocate buffer for credentials + if (!mCredentials.Alloc(maxNumberOfCredentialsPerUser)) + { + printf("Failed to allocate array for lock credentials"); + return CHIP_ERROR_NO_MEMORY; + } + mMaxCredentialsPerUser = maxNumberOfCredentialsPerUser; + + wiced_result_t result; + + // Create wiced timer for lock timer. + result = wiced_init_timer(&sLockTimer, TimerEventHandler, (WICED_TIMER_PARAM_TYPE) this, WICED_MILLI_SECONDS_TIMER); + if (result != WICED_BT_SUCCESS) + { + printf("sLockTimer timer create failed"); + return APP_ERROR_INIT_TIMER_FAILED; + } + + if (state.Value() == DlLockState::kUnlocked) + mState = kState_UnlockCompleted; + else + mState = kState_LockCompleted; + + return CHIP_NO_ERROR; +} + +bool LockManager::ReadConfigValues() +{ + size_t outLen; + CYW30739Config::ReadConfigValueBin(CYW30739Config::kConfigKey_LockUser, reinterpret_cast(&mLockUser), + sizeof(EmberAfPluginDoorLockUserInfo), outLen); + CYW30739Config::ReadConfigValueBin(CYW30739Config::kConfigKey_Credential, reinterpret_cast(&mLockCredentials), + sizeof(EmberAfPluginDoorLockCredentialInfo), outLen); + + CYW30739Config::ReadConfigValueStr(CYW30739Config::kConfigKey_LockUserName, mUserName, DOOR_LOCK_USER_NAME_BUFFER_SIZE, outLen); + + CYW30739Config::ReadConfigValueBin(CYW30739Config::kConfigKey_CredentialData, mCredentialData, sizeof(mCredentialData), outLen); + + CYW30739Config::ReadConfigValueBin(CYW30739Config::kConfigKey_UserCredentials, reinterpret_cast(mCredentials.Get()), + sizeof(DlCredential), outLen); + + return true; +} + +void LockManager::SetCallbacks(Callback_fn_initiated aActionInitiated_CB, Callback_fn_completed aActionCompleted_CB) +{ + mActionInitiated_CB = aActionInitiated_CB; + mActionCompleted_CB = aActionCompleted_CB; +} + +bool LockManager::IsActionInProgress() +{ + return (mState == kState_LockInitiated || mState == kState_UnlockInitiated); +} + +bool LockManager::NextState() +{ + return (mState == kState_UnlockCompleted); +} + +bool LockManager::InitiateAction(int32_t aActor, Action_t aAction) +{ + bool action_initiated = false; + State_t new_state; + + // Initiate Lock/Unlock Action only when the previous one is complete. + if (mState == kState_LockCompleted && aAction == UNLOCK_ACTION) + { + action_initiated = true; + + new_state = kState_UnlockInitiated; + } + else if (mState == kState_UnlockCompleted && aAction == LOCK_ACTION) + { + action_initiated = true; + + new_state = kState_LockInitiated; + } + + if (action_initiated) + { + + StartTimer(ACTUATOR_MOVEMENT_PERIOS_MS); + + // Since the timer started successfully, update the state and trigger callback + mState = new_state; + + if (mActionInitiated_CB) + { + mActionInitiated_CB(aAction, aActor); + } + } + + return action_initiated; +} + +void LockManager::StartTimer(uint32_t aTimeoutMs) +{ + if (wiced_is_timer_in_use(&sLockTimer)) + { + printf("app timer already started!\n"); + CancelTimer(); + } + + if (wiced_start_timer(&sLockTimer, aTimeoutMs) != WICED_BT_SUCCESS) + { + printf("sLockTimer timer start() failed\n"); + return; + } +} + +void LockManager::CancelTimer(void) +{ + if (wiced_stop_timer(&sLockTimer) != WICED_BT_SUCCESS) + { + printf("Lock timer timer stop() failed\n"); + return; + } +} + +void LockManager::TimerEventHandler(WICED_TIMER_PARAM_TYPE cb_params) +{ + LockManager * lock = reinterpret_cast(cb_params); + int (*fn)(void *); + + // The timer event handler will be called in the context of the timer task + // once sLockTimer expires. Post an event to apptask queue with the actual handler + // so that the event can be handled in the context of the apptask. + fn = ActuatorMovementTimerEventHandler; + + if (wiced_app_event_serialize(fn, (void *) lock) != WICED_TRUE) + { + printf("wiced_app_event_serialize failed\n"); + } +} + +int LockManager::ActuatorMovementTimerEventHandler(void * data) +{ + Action_t actionCompleted = INVALID_ACTION; + + LockManager * lock = reinterpret_cast(data); + + if (lock->mState == kState_LockInitiated) + { + lock->mState = kState_LockCompleted; + actionCompleted = LOCK_ACTION; + } + else if (lock->mState == kState_UnlockInitiated) + { + lock->mState = kState_UnlockCompleted; + actionCompleted = UNLOCK_ACTION; + } + + if (actionCompleted != INVALID_ACTION) + { + if (lock->mActionCompleted_CB) + { + lock->mActionCompleted_CB(actionCompleted); + } + } + + return 0; +} + +bool LockManager::Lock(chip::EndpointId endpointId, const Optional & pin, DlOperationError & err) +{ + return setLockState(endpointId, DlLockState::kLocked, pin, err); +} + +bool LockManager::Unlock(chip::EndpointId endpointId, const Optional & pin, DlOperationError & err) +{ + return setLockState(endpointId, DlLockState::kUnlocked, pin, err); +} + +bool LockManager::GetUser(uint16_t userIndex, EmberAfPluginDoorLockUserInfo & user) const +{ + // chip::ByteSpan credentialData(mLockCredentials.credentialData, mLockCredentials.credentialDataSize); + ChipLogProgress(Zcl, "Door Lock App: LockManager::GetUser [endpoint=%d,userIndex=%hu]", mEndpointId, userIndex); + + const auto & userInDb = mLockUser; + user.userStatus = userInDb.userStatus; + if (DlUserStatus::kAvailable == user.userStatus) + { + ChipLogDetail(Zcl, "Found unoccupied user [endpoint=%d]", mEndpointId); + return true; + } + + user.userName = chip::CharSpan(userInDb.userName.data(), userInDb.userName.size()); + user.credentials = chip::Span(userInDb.credentials.data(), userInDb.credentials.size()); + user.userUniqueId = userInDb.userUniqueId; + user.userType = userInDb.userType; + user.credentialRule = userInDb.credentialRule; + user.createdBy = userInDb.createdBy; + user.lastModifiedBy = userInDb.lastModifiedBy; + + ChipLogDetail(Zcl, + "Found occupied user " + "[endpoint=%d,name=\"%.*s\",credentialsCount=%u,uniqueId=%lx,type=%u,credentialRule=%u," + "createdBy=%d,lastModifiedBy=%d]", + mEndpointId, static_cast(user.userName.size()), user.userName.data(), user.credentials.size(), + user.userUniqueId, to_underlying(user.userType), to_underlying(user.credentialRule), user.createdBy, + user.lastModifiedBy); + + return true; +} + +bool LockManager::SetUser(uint16_t userIndex, chip::FabricIndex creator, chip::FabricIndex modifier, + const chip::CharSpan & userName, uint32_t uniqueId, DlUserStatus userStatus, DlUserType usertype, + DlCredentialRule credentialRule, const DlCredential * credentials, size_t totalCredentials) +{ + ChipLogProgress(Zcl, + "Door Lock App: LockManager::SetUser " + "[endpoint=%d,userIndex=%d,creator=%d,modifier=%d,userName=%s,uniqueId=%ld " + "userStatus=%u,userType=%u,credentialRule=%u,credentials=%p,totalCredentials=%u]", + mEndpointId, userIndex, creator, modifier, userName.data(), uniqueId, to_underlying(userStatus), + to_underlying(usertype), to_underlying(credentialRule), credentials, totalCredentials); + + auto & userInStorage = mLockUser; + + if (userName.size() > DOOR_LOCK_MAX_USER_NAME_SIZE) + { + ChipLogError(Zcl, "Cannot set user - user name is too long [endpoint=%d,index=%d]", mEndpointId, userIndex); + return false; + } + + if (totalCredentials > mMaxCredentialsPerUser) + { + ChipLogError(Zcl, "Cannot set user - total number of credentials is too big [endpoint=%d,index=%d,totalCredentials=%u]", + mEndpointId, userIndex, totalCredentials); + return false; + } + + chip::Platform::CopyString(mUserName, userName); + mUserName[userName.size()] = 0; + userInStorage.userName = chip::CharSpan(mUserName, userName.size()); + userInStorage.userUniqueId = uniqueId; + userInStorage.userStatus = userStatus; + userInStorage.userType = usertype; + userInStorage.credentialRule = credentialRule; + userInStorage.lastModifiedBy = modifier; + userInStorage.createdBy = creator; + + for (size_t i = 0; i < totalCredentials; ++i) + { + mCredentials[i] = credentials[i]; + mCredentials[i].CredentialType = 1; + mCredentials[i].CredentialIndex = i + 1; + } + + userInStorage.credentials = chip::Span(mCredentials.Get(), totalCredentials); + + // Save user information in NVM flash + CYW30739Config::WriteConfigValueBin(CYW30739Config::kConfigKey_LockUser, reinterpret_cast(&userInStorage), + sizeof(EmberAfPluginDoorLockUserInfo)); + + CYW30739Config::WriteConfigValueBin(CYW30739Config::kConfigKey_UserCredentials, + reinterpret_cast(mCredentials.Get()), sizeof(DlCredential)); + + CYW30739Config::WriteConfigValueStr(CYW30739Config::kConfigKey_LockUserName, mUserName, sizeof(userName.size())); + + ChipLogProgress(Zcl, "Successfully set the user [mEndpointId=%d,index=%d]", mEndpointId, userIndex); + + return true; +} + +bool LockManager::GetCredential(chip::EndpointId endpointId, uint16_t credentialIndex, DlCredentialType credentialType, + EmberAfPluginDoorLockCredentialInfo & credential) const +{ + ChipLogProgress(Zcl, "Lock App: LockManager::GetCredential [credentialType=%u]", to_underlying(credentialType)); + + const auto & credentialInStorage = mLockCredentials; + + credential.status = credentialInStorage.status; + if (DlCredentialStatus::kAvailable == credential.status) + { + ChipLogDetail(Zcl, "Found unoccupied credential "); + return true; + } + credential.credentialType = credentialInStorage.credentialType; + credential.credentialData = credentialInStorage.credentialData; + + ChipLogDetail(Zcl, "Found occupied credential [type=%u,dataSize=%u]", to_underlying(credential.credentialType), + credential.credentialData.size()); + + return true; +} + +bool LockManager::SetCredential(chip::EndpointId endpointId, uint16_t credentialIndex, DlCredentialStatus credentialStatus, + DlCredentialType credentialType, const chip::ByteSpan & credentialData) +{ + ChipLogProgress(Zcl, + "Door Lock App: LockManager::SetCredential " + "[credentialStatus=%u,credentialType=%u,credentialDataSize=%u]", + to_underlying(credentialStatus), to_underlying(credentialType), credentialData.size()); + + auto & credentialInStorage = mLockCredentials; + if (credentialData.size() > DOOR_LOCK_CREDENTIAL_INFO_MAX_DATA_SIZE) + { + ChipLogError(Zcl, + "Cannot get the credential - data size exceeds limit " + "[dataSize=%u,maxDataSize=%u]", + credentialData.size(), DOOR_LOCK_CREDENTIAL_INFO_MAX_DATA_SIZE); + return false; + } + credentialInStorage.status = credentialStatus; + credentialInStorage.credentialType = credentialType; + + memcpy(mCredentialData, credentialData.data(), credentialData.size()); + mCredentialData[credentialData.size()] = 0; + + credentialInStorage.credentialData = chip::ByteSpan{ mCredentialData, credentialData.size() }; + + // Save user information in NVM flash + CYW30739Config::WriteConfigValueBin(CYW30739Config::kConfigKey_Credential, + reinterpret_cast(&credentialInStorage), + sizeof(EmberAfPluginDoorLockCredentialInfo)); + + CYW30739Config::WriteConfigValueBin(CYW30739Config::kConfigKey_CredentialData, + reinterpret_cast(&mCredentialData), credentialData.size()); + + ChipLogProgress(Zcl, "Successfully set the credential [credentialType=%u]", to_underlying(credentialType)); + + return true; +} + +const char * LockManager::lockStateToString(DlLockState lockState) const +{ + switch (lockState) + { + case DlLockState::kNotFullyLocked: + return "Not Fully Locked"; + case DlLockState::kLocked: + return "Locked"; + case DlLockState::kUnlocked: + return "Unlocked"; + } + + return "Unknown"; +} + +bool LockManager::setLockState(chip::EndpointId endpointId, DlLockState lockState, const Optional & pin, + DlOperationError & err) +{ + DlLockState curState = DlLockState::kLocked; + if (mState == kState_UnlockCompleted) + curState = DlLockState::kUnlocked; + + if (curState == lockState) + { + ChipLogDetail(Zcl, "Door Lock App: door is already locked, set lock state to \"%s\" [endpointId=%d]", + lockStateToString(lockState), mEndpointId); + } + + if (!pin.HasValue()) + { + ChipLogDetail(Zcl, "Door Lock App: PIN code is not specified, setting door lock state to \"%s\" [endpointId=%d]", + lockStateToString(lockState), mEndpointId); + curState = lockState; + + return true; + } + + // Check the PIN code + for (uint8_t i; i < 10; i++) + { + if (mLockCredentials.credentialType != DlCredentialType::kPin || mLockCredentials.status == DlCredentialStatus::kAvailable) + { + continue; + } + + if (mLockCredentials.credentialData.data_equal(pin.Value())) + { + ChipLogDetail(Zcl, + "Lock App: specified PIN code was found in the database, setting lock state to \"%s\" [endpointId=%d]", + lockStateToString(lockState), mEndpointId); + + curState = lockState; + + return true; + } + } + + ChipLogDetail(Zcl, + "Door Lock App: specified PIN code was not found in the database, ignoring command to set lock state to \"%s\" " + "[endpointId=%d]", + lockStateToString(lockState), mEndpointId); + + err = DlOperationError::kInvalidCredential; + return false; +} diff --git a/examples/lock-app/cyw30739/src/ZclCallbacks.cpp b/examples/lock-app/cyw30739/src/ZclCallbacks.cpp index 35db42f3482d4a..ecbc2f78804b24 100644 --- a/examples/lock-app/cyw30739/src/ZclCallbacks.cpp +++ b/examples/lock-app/cyw30739/src/ZclCallbacks.cpp @@ -17,9 +17,11 @@ * limitations under the License. */ -#include +#include "LockManager.h" #include +#include #include +#include using namespace chip; using namespace chip::app::Clusters; @@ -32,7 +34,7 @@ void emberAfBasicClusterInitCallback(EndpointId endpoint) uint8_t dayOfMonth; char cString[16] = "00000000"; - if (ConfigurationMgr().GetManufacturingDate(year, month, dayOfMonth) == CHIP_NO_ERROR) + if (GetDeviceInstanceInfoProvider()->GetManufacturingDate(year, month, dayOfMonth) == CHIP_NO_ERROR) { snprintf(cString, sizeof(cString), "%04u%02u%02u", year, month, dayOfMonth); } @@ -45,12 +47,12 @@ void MatterPostAttributeChangeCallback(const app::ConcreteAttributePath & attrib { switch (attributePath.mClusterId) { - case OnOff::Id: - if (attributePath.mAttributeId == OnOff::Attributes::OnOff::Id) + case DoorLock::Id: + if (attributePath.mAttributeId == DoorLock::Attributes::LockState::Id) { + ChipLogProgress(Zcl, "Door lock cluster: " ChipLogFormatMEI, ChipLogValueMEI(attributePath.mClusterId)); printf("ZCL OnOff -> %u\n", *value); - BoltLockMgr().InitiateAction(BoltLockManager::ACTOR_ZCL_CMD, - (*value) ? BoltLockManager::LOCK_ACTION : BoltLockManager::UNLOCK_ACTION); + LockMgr().InitiateAction(LockManager::ACTOR_ZCL_CMD, (*value) ? LockManager::LOCK_ACTION : LockManager::UNLOCK_ACTION); return; } break; @@ -61,3 +63,80 @@ void MatterPostAttributeChangeCallback(const app::ConcreteAttributePath & attrib printf("ERROR clusterId: 0x%04lx, unknown attribute ID: 0x%04lx\n", attributePath.mClusterId, attributePath.mAttributeId); } + +bool emberAfPluginDoorLockOnDoorLockCommand(chip::EndpointId endpointId, const Optional & pinCode, DlOperationError & err) +{ + ChipLogProgress(Zcl, "Door Lock App: Lock Command endpoint=%d", endpointId); + bool status = LockMgr().Lock(endpointId, pinCode, err); + if (status == true) + { + LockMgr().InitiateAction(AppEvent::kEventType_Lock, LockManager::LOCK_ACTION); + } + return status; +} + +bool emberAfPluginDoorLockOnDoorUnlockCommand(chip::EndpointId endpointId, const Optional & pinCode, + DlOperationError & err) +{ + ChipLogProgress(Zcl, "Door Lock App: Unlock Command endpoint=%d", endpointId); + bool status = LockMgr().Unlock(endpointId, pinCode, err); + if (status == true) + { + LockMgr().InitiateAction(AppEvent::kEventType_Lock, LockManager::UNLOCK_ACTION); + } + + return status; +} + +bool emberAfPluginDoorLockGetCredential(chip::EndpointId endpointId, uint16_t credentialIndex, DlCredentialType credentialType, + EmberAfPluginDoorLockCredentialInfo & credential) +{ + return LockMgr().GetCredential(endpointId, credentialIndex, credentialType, credential); +} + +bool emberAfPluginDoorLockSetCredential(chip::EndpointId endpointId, uint16_t credentialIndex, DlCredentialStatus credentialStatus, + DlCredentialType credentialType, const chip::ByteSpan & credentialData) +{ + return LockMgr().SetCredential(endpointId, credentialIndex, credentialStatus, credentialType, credentialData); +} + +bool emberAfPluginDoorLockGetUser(chip::EndpointId endpointId, uint16_t userIndex, EmberAfPluginDoorLockUserInfo & user) +{ + return LockMgr().GetUser(userIndex, user); +} + +bool emberAfPluginDoorLockSetUser(chip::EndpointId endpointId, uint16_t userIndex, chip::FabricIndex creator, + chip::FabricIndex modifier, const chip::CharSpan & userName, uint32_t uniqueId, + DlUserStatus userStatus, DlUserType usertype, DlCredentialRule credentialRule, + const DlCredential * credentials, size_t totalCredentials) +{ + + return LockMgr().SetUser(userIndex, creator, modifier, userName, uniqueId, userStatus, usertype, credentialRule, credentials, + totalCredentials); +} + +// TODO: These functions will be supported by door-lock-server in the future. These are set to return failure until implemented. +DlStatus emberAfPluginDoorLockGetSchedule(chip::EndpointId endpointId, uint8_t weekdayIndex, uint16_t userIndex, + EmberAfPluginDoorLockWeekDaySchedule & schedule) +{ + return DlStatus::kFailure; +} + +DlStatus emberAfPluginDoorLockGetSchedule(chip::EndpointId endpointId, uint8_t yearDayIndex, uint16_t userIndex, + EmberAfPluginDoorLockYearDaySchedule & schedule) +{ + return DlStatus::kFailure; +} + +DlStatus emberAfPluginDoorLockSetSchedule(chip::EndpointId endpointId, uint8_t weekdayIndex, uint16_t userIndex, + DlScheduleStatus status, DlDaysMaskMap daysMask, uint8_t startHour, uint8_t startMinute, + uint8_t endHour, uint8_t endMinute) +{ + return DlStatus::kFailure; +} + +DlStatus emberAfPluginDoorLockSetSchedule(chip::EndpointId endpointId, uint8_t yearDayIndex, uint16_t userIndex, + DlScheduleStatus status, uint32_t localStartTime, uint32_t localEndTime) +{ + return DlStatus::kFailure; +} diff --git a/examples/lock-app/cyw30739/src/main.cpp b/examples/lock-app/cyw30739/src/main.cpp index e1681600146c69..61ec55e3ef35a3 100644 --- a/examples/lock-app/cyw30739/src/main.cpp +++ b/examples/lock-app/cyw30739/src/main.cpp @@ -16,17 +16,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +#include + #include -#include #include #include +#include +#include #include +#include +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR +#include +#endif +#include #include #include #include #include #include -#include #include #include #include @@ -34,16 +41,25 @@ #include #include +using chip::app::Clusters::DoorLock::DlLockState; +using chip::app::Clusters::DoorLock::DlOperationError; +using chip::app::Clusters::DoorLock::DlOperationSource; + +using namespace chip; +using namespace ::chip::DeviceLayer::Internal; + using namespace ::chip::Credentials; using namespace ::chip::DeviceLayer; using namespace ::chip::Shell; wiced_bool_t syncClusterToButtonAction = false; +static chip::DeviceLayer::DeviceInfoProviderImpl gExampleDeviceInfoProvider; +static void InitApp(intptr_t args); static void EventHandler(const ChipDeviceEvent * event, intptr_t arg); static void HandleThreadStateChangeEvent(const ChipDeviceEvent * event); -static void ActionInitiated(BoltLockManager::Action_t aAction, int32_t aActor); -static void ActionCompleted(BoltLockManager::Action_t aAction); +static void ActionInitiated(LockManager::Action_t aAction, int32_t aActor); +static void ActionCompleted(LockManager::Action_t aAction); static void WriteClusterState(uint8_t value); #ifndef _countof @@ -129,6 +145,24 @@ APPLICATION_START() } #endif + PlatformMgr().ScheduleWork(InitApp, 0); + + const int ret = Engine::Root().Init(); + if (!chip::ChipError::IsSuccess(ret)) + { + printf("ERROR Shell Init %d\n", ret); + } + cmd_ping_init(); + RegisterAppShellCommands(); + Engine::Root().RunMainLoop(); + + assert(!wiced_rtos_check_for_stack_overflow()); +} + +void InitApp(intptr_t args) +{ + ConfigurationMgr().LogDeviceConfig(); + PlatformMgrImpl().AddEventHandler(EventHandler, 0); /* Start CHIP datamodel server */ @@ -137,27 +171,37 @@ APPLICATION_START() chip::Server::GetInstance().Init(initParams); SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider()); + gExampleDeviceInfoProvider.SetStorageDelegate(&chip::Server::GetInstance().GetPersistentStorage()); + chip::DeviceLayer::SetDeviceInfoProvider(&gExampleDeviceInfoProvider); - err = BoltLockMgr().Init(); - if (err != CHIP_NO_ERROR) + // Initial lock state + chip::app::DataModel::Nullable state; + chip::EndpointId endpointId{ 1 }; + chip::DeviceLayer::PlatformMgr().LockChipStack(); + chip::app::Clusters::DoorLock::Attributes::LockState::Get(endpointId, state); + + uint8_t maxCredentialsPerUser = 0; + if (!DoorLockServer::Instance().GetNumberOfCredentialsSupportedPerUser(endpointId, maxCredentialsPerUser)) { - printf("BoltLockMgr().Init() failed\n"); + ChipLogError(Zcl, + "Unable to get number of credentials supported per user when initializing lock endpoint, defaulting to 5 " + "[endpointId=%d]", + endpointId); + maxCredentialsPerUser = 5; } + chip::DeviceLayer::PlatformMgr().UnlockChipStack(); - BoltLockMgr().SetCallbacks(ActionInitiated, ActionCompleted); - - ConfigurationMgr().LogDeviceConfig(); - - const int ret = streamer_init(streamer_get()); - if (!chip::ChipError::IsSuccess(ret)) + CHIP_ERROR err = LockMgr().Init(state, maxCredentialsPerUser); + if (err != CHIP_NO_ERROR) { - printf("ERROR streamer_init %d\n", ret); + printf("LockMgr().Init() failed\n"); } - cmd_ping_init(); - RegisterAppShellCommands(); - Engine::Root().RunMainLoop(); - assert(!wiced_rtos_check_for_stack_overflow()); + LockMgr().SetCallbacks(ActionInitiated, ActionCompleted); + +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR + OTAConfig::Init(); +#endif } void EventHandler(const ChipDeviceEvent * event, intptr_t arg) @@ -174,57 +218,71 @@ void EventHandler(const ChipDeviceEvent * event, intptr_t arg) void HandleThreadStateChangeEvent(const ChipDeviceEvent * event) {} -void ActionInitiated(BoltLockManager::Action_t aAction, int32_t aActor) +void ActionInitiated(LockManager::Action_t aAction, int32_t aActor) { // If the action has been initiated by the lock, update the bolt lock trait // and start flashing the LEDs rapidly to indicate action initiation. - if (aAction == BoltLockManager::LOCK_ACTION) + if (aAction == LockManager::LOCK_ACTION) { printf("Lock Action has been initiated\n"); } - else if (aAction == BoltLockManager::UNLOCK_ACTION) + else if (aAction == LockManager::UNLOCK_ACTION) { printf("Unlock Action has been initiated\n"); } - if (aActor == BoltLockManager::ACTOR_BUTTON) + if (aActor == LockManager::ACTOR_BUTTON) { syncClusterToButtonAction = true; } - wiced_led_manager_enable_led(PLATFORM_LED_2); + // Action initiated, update the light led + if (aAction == LockManager::LOCK_ACTION) + { + printf("Lock Action has been initiated"); + wiced_led_manager_disable_led(PLATFORM_LED_2); + } + else if (aAction == LockManager::UNLOCK_ACTION) + { + printf("Unlock Action has been initiated"); + wiced_led_manager_enable_led(PLATFORM_LED_2); + } +} + +void UpdateClusterState(intptr_t context) +{ + bool unlocked = LockMgr().NextState(); + DlLockState newState = unlocked ? DlLockState::kUnlocked : DlLockState::kLocked; + + DlOperationSource source = DlOperationSource::kUnspecified; + + // write the new lock value + EmberAfStatus status = + DoorLockServer::Instance().SetLockState(1, newState, source) ? EMBER_ZCL_STATUS_SUCCESS : EMBER_ZCL_STATUS_FAILURE; + + if (status != EMBER_ZCL_STATUS_SUCCESS) + { + printf("ERR: updating lock state %x", status); + } } -void ActionCompleted(BoltLockManager::Action_t aAction) +void ActionCompleted(LockManager::Action_t aAction) { // if the action has been completed by the lock, update the bolt lock trait. // Turn on the lock LED if in a LOCKED state OR // Turn off the lock LED if in an UNLOCKED state. - if (aAction == BoltLockManager::LOCK_ACTION) + if (aAction == LockManager::LOCK_ACTION) { printf("Lock Action has been completed\n"); - wiced_led_manager_enable_led(PLATFORM_LED_1); } - else if (aAction == BoltLockManager::UNLOCK_ACTION) + else if (aAction == LockManager::UNLOCK_ACTION) { printf("Unlock Action has been completed\n"); - wiced_led_manager_disable_led(PLATFORM_LED_1); } if (syncClusterToButtonAction) { - WriteClusterState(!BoltLockMgr().IsUnlocked()); + chip::DeviceLayer::PlatformMgr().ScheduleWork(UpdateClusterState, reinterpret_cast(nullptr)); syncClusterToButtonAction = false; } - - wiced_led_manager_disable_led(PLATFORM_LED_2); -} - -void WriteClusterState(uint8_t value) -{ - const EmberAfStatus status = chip::app::Clusters::OnOff::Attributes::OnOff::Set(1, value); - if (status != EMBER_ZCL_STATUS_SUCCESS) - { - printf("Error WriteServerAttribute 0x%02x\n", status); - } } diff --git a/examples/lock-app/efr32/BUILD.gn b/examples/lock-app/efr32/BUILD.gn index b4f746235f262f..50ebd01f436152 100644 --- a/examples/lock-app/efr32/BUILD.gn +++ b/examples/lock-app/efr32/BUILD.gn @@ -60,6 +60,9 @@ declare_args() { # Disable LCD on supported devices disable_lcd = false + + # Argument to Disable IPv4 for wifi(rs911) + chip_disable_wifi_ipv4 = false } declare_args() { @@ -216,6 +219,10 @@ efr32_executable("lock_app") { sources += [ "${examples_plat_dir}/OTAConfig.cpp" ] } + if (chip_disable_wifi_ipv4) { + defines += [ "WIFI_IPV4_DISABLED" ] + } + # WiFi Settings if (chip_enable_wifi) { if (use_rs911x) { diff --git a/examples/lock-app/efr32/args.gni b/examples/lock-app/efr32/args.gni index de1a2fd4f0e9f4..66670784404334 100644 --- a/examples/lock-app/efr32/args.gni +++ b/examples/lock-app/efr32/args.gni @@ -23,3 +23,4 @@ chip_enable_ota_requestor = true chip_enable_openthread = true pw_log_BACKEND = "${chip_root}/src/lib/support/pw_log_chip" pw_assert_BACKEND = "$dir_pw_assert_log" +pw_rpc_CONFIG = "$dir_pw_rpc:disable_global_mutex" diff --git a/examples/lock-app/efr32/include/LockManager.h b/examples/lock-app/efr32/include/LockManager.h index ba2deb7007ce04..a97d7f4bb3b8bf 100644 --- a/examples/lock-app/efr32/include/LockManager.h +++ b/examples/lock-app/efr32/include/LockManager.h @@ -31,7 +31,13 @@ using namespace ::chip; +// Currently up to 10 users are support on the EFR32 platform +#define DOOR_LOCK_MAX_USERS 10 #define DOOR_LOCK_MAX_CREDENTIAL_SIZE 8 +#define MININUM_USER_INDEX 1 +#define MINIMUM_CREDENTIAL_INDEX 1 +#define MAX_CREDENTIAL_PER_USER 10 +#define MAX_CREDENTIALS 50 static constexpr size_t DOOR_LOCK_CREDENTIAL_INFO_MAX_DATA_SIZE = 20; @@ -55,7 +61,7 @@ class LockManager } State; CHIP_ERROR Init(chip::app::DataModel::Nullable state, - uint8_t maxNumberOfCredentialsPerUser); + uint8_t maxNumberOfCredentialsPerUser, uint16_t numberOfSupportedUsers); bool NextState(); bool IsActionInProgress(); bool InitiateAction(int32_t aActor, Action_t aAction); @@ -67,16 +73,16 @@ class LockManager bool Lock(chip::EndpointId endpointId, const Optional & pin, DlOperationError & err); bool Unlock(chip::EndpointId endpointId, const Optional & pin, DlOperationError & err); - bool GetUser(uint16_t userIndex, EmberAfPluginDoorLockUserInfo & user) const; - bool SetUser(uint16_t userIndex, chip::FabricIndex creator, chip::FabricIndex modifier, const chip::CharSpan & userName, - uint32_t uniqueId, DlUserStatus userStatus, DlUserType usertype, DlCredentialRule credentialRule, - const DlCredential * credentials, size_t totalCredentials); + bool GetUser(chip::EndpointId endpointId, uint16_t userIndex, EmberAfPluginDoorLockUserInfo & user) const; + bool SetUser(chip::EndpointId endpointId, uint16_t userIndex, chip::FabricIndex creator, chip::FabricIndex modifier, + const chip::CharSpan & userName, uint32_t uniqueId, DlUserStatus userStatus, DlUserType usertype, + DlCredentialRule credentialRule, const DlCredential * credentials, size_t totalCredentials); bool GetCredential(chip::EndpointId endpointId, uint16_t credentialIndex, DlCredentialType credentialType, EmberAfPluginDoorLockCredentialInfo & credential) const; - bool SetCredential(chip::EndpointId endpointId, uint16_t credentialIndex, DlCredentialStatus credentialStatus, - DlCredentialType credentialType, const chip::ByteSpan & credentialData); + bool SetCredential(chip::EndpointId endpointId, uint16_t credentialIndex, chip::FabricIndex creator, chip::FabricIndex modifier, + DlCredentialStatus credentialStatus, DlCredentialType credentialType, const chip::ByteSpan & credentialData); bool setLockState(chip::EndpointId endpointId, DlLockState lockState, const Optional & pin, DlOperationError & err); @@ -99,13 +105,15 @@ class LockManager static void AutoLockTimerEventHandler(AppEvent * aEvent); static void ActuatorMovementTimerEventHandler(AppEvent * aEvent); - EmberAfPluginDoorLockUserInfo mLockUser; - EmberAfPluginDoorLockCredentialInfo mLockCredentials; + EmberAfPluginDoorLockUserInfo mLockUsers[DOOR_LOCK_MAX_USERS]; + EmberAfPluginDoorLockCredentialInfo mLockCredentials[MAX_CREDENTIALS]; - char mUserName[DOOR_LOCK_MAX_USER_NAME_SIZE]; - uint8_t mCredentialData[DOOR_LOCK_MAX_CREDENTIAL_SIZE]; - chip::Platform::ScopedMemoryBuffer mCredentials; uint8_t mMaxCredentialsPerUser; + uint16_t mMaxUsers; + + char mUserNames[ArraySize(mLockUsers)][DOOR_LOCK_MAX_USER_NAME_SIZE]; + uint8_t mCredentialData[MAX_CREDENTIALS][DOOR_LOCK_MAX_CREDENTIAL_SIZE]; + chip::Platform::ScopedMemoryBuffer mCredentials[MAX_CREDENTIAL_PER_USER]; static LockManager sLock; }; diff --git a/examples/lock-app/efr32/src/AppTask.cpp b/examples/lock-app/efr32/src/AppTask.cpp index 2df296d38e49fb..d3cc7e9a6f17d6 100644 --- a/examples/lock-app/efr32/src/AppTask.cpp +++ b/examples/lock-app/efr32/src/AppTask.cpp @@ -245,9 +245,18 @@ CHIP_ERROR AppTask::Init() endpointId); maxCredentialsPerUser = 5; } + + uint16_t numberOfSupportedUsers = 0; + if (!DoorLockServer::Instance().GetNumberOfUserSupported(endpointId, numberOfSupportedUsers)) + { + ChipLogError(Zcl, + "Unable to get number of supported users when initializing lock endpoint, defaulting to 10 [endpointId=%d]", + endpointId); + numberOfSupportedUsers = 10; + } chip::DeviceLayer::PlatformMgr().UnlockChipStack(); - err = LockMgr().Init(state, maxCredentialsPerUser); + err = LockMgr().Init(state, maxCredentialsPerUser, numberOfSupportedUsers); if (err != CHIP_NO_ERROR) { EFR32_LOG("LockMgr().Init() failed"); @@ -275,7 +284,7 @@ CHIP_ERROR AppTask::Init() ConfigurationMgr().LogDeviceConfig(); // Print setup info on LCD if available -#ifdef DISPLAY_ENABLED +#ifdef QR_CODE_ENABLED // Create buffer for QR code that can fit max size and null terminator. char qrCodeBuffer[chip::QRCodeBasicSetupPayloadGenerator::kMaxQRCodeBase38RepresentationLength + 1]; chip::MutableCharSpan QRCode(qrCodeBuffer); @@ -290,7 +299,7 @@ CHIP_ERROR AppTask::Init() } #else PrintOnboardingCodes(chip::RendezvousInformationFlag(chip::RendezvousInformationFlag::kBLE)); -#endif +#endif // QR_CODE_ENABLED return err; } diff --git a/examples/lock-app/efr32/src/LockManager.cpp b/examples/lock-app/efr32/src/LockManager.cpp index 1d2d30559a24d6..6398ff3f6f5483 100644 --- a/examples/lock-app/efr32/src/LockManager.cpp +++ b/examples/lock-app/efr32/src/LockManager.cpp @@ -22,6 +22,7 @@ #include "AppConfig.h" #include "AppTask.h" #include +#include #include #include @@ -32,16 +33,28 @@ TimerHandle_t sLockTimer; using namespace ::chip::DeviceLayer::Internal; CHIP_ERROR LockManager::Init(chip::app::DataModel::Nullable state, - uint8_t maxNumberOfCredentialsPerUser) + uint8_t maxNumberOfCredentialsPerUser, uint16_t numberOfSupportedUsers) { - // Allocate buffer for credentials - if (!mCredentials.Alloc(maxNumberOfCredentialsPerUser)) + for (uint8_t i = 0; i < ArraySize(mLockUsers); i++) { - EFR32_LOG("Failed to allocate array for lock credentials"); - return APP_ERROR_ALLOCATION_FAILED; + // Allocate buffer for credentials + if (!mCredentials[i].Alloc(maxNumberOfCredentialsPerUser)) + { + EFR32_LOG("Failed to allocate array for lock credentials"); + return APP_ERROR_ALLOCATION_FAILED; + } } + mMaxCredentialsPerUser = maxNumberOfCredentialsPerUser; + mMaxUsers = numberOfSupportedUsers; + if (mMaxUsers > DOOR_LOCK_MAX_USERS) + { + EFR32_LOG("Max number of users is greater than %d, the maximum amount of users currently supported on this platform", + DOOR_LOCK_MAX_USERS); + return APP_ERROR_ALLOCATION_FAILED; + } + // Create FreeRTOS sw timer for lock timer. sLockTimer = xTimerCreate("lockTmr", // Just a text name, not used by the RTOS kernel 1, // == default timer period (mS) @@ -67,17 +80,20 @@ CHIP_ERROR LockManager::Init(chip::app::DataModel::Nullable(&mLockUser), - sizeof(EmberAfPluginDoorLockUserInfo), outLen); + EFR32Config::ReadConfigValueBin(EFR32Config::kConfigKey_LockUser, reinterpret_cast(&mLockUsers), + sizeof(EmberAfPluginDoorLockUserInfo) * ArraySize(mLockUsers), outLen); + EFR32Config::ReadConfigValueBin(EFR32Config::kConfigKey_Credential, reinterpret_cast(&mLockCredentials), - sizeof(EmberAfPluginDoorLockCredentialInfo), outLen); + sizeof(EmberAfPluginDoorLockCredentialInfo) * ArraySize(mLockCredentials), outLen); - EFR32Config::ReadConfigValueStr(EFR32Config::kConfigKey_LockUserName, mUserName, DOOR_LOCK_USER_NAME_BUFFER_SIZE, outLen); + EFR32Config::ReadConfigValueBin(EFR32Config::kConfigKey_LockUserName, reinterpret_cast(mUserNames), + sizeof(mUserNames), outLen); - EFR32Config::ReadConfigValueBin(EFR32Config::kConfigKey_CredentialData, mCredentialData, sizeof(mCredentialData), outLen); + EFR32Config::ReadConfigValueBin(EFR32Config::kConfigKey_CredentialData, reinterpret_cast(mCredentialData), + sizeof(mCredentialData), outLen); - EFR32Config::ReadConfigValueBin(EFR32Config::kConfigKey_UserCredentials, reinterpret_cast(mCredentials.Get()), - sizeof(DlCredential), outLen); + EFR32Config::ReadConfigValueBin(EFR32Config::kConfigKey_UserCredentials, reinterpret_cast(mCredentials[0].Get()), + sizeof(DlCredential) * mMaxUsers * mMaxCredentialsPerUser, outLen); return true; } @@ -212,39 +228,46 @@ bool LockManager::Unlock(chip::EndpointId endpointId, const Optional(userInDb.credentials.data(), userInDb.credentials.size()); + user.credentials = chip::Span(mCredentials[adjustedUserIndex].Get(), userInDb.credentials.size()); user.userUniqueId = userInDb.userUniqueId; user.userType = userInDb.userType; user.credentialRule = userInDb.credentialRule; - user.createdBy = userInDb.createdBy; - user.lastModifiedBy = userInDb.lastModifiedBy; + // So far there's no way to actually create the credential outside Matter, so here we always set the creation/modification + // source to Matter + user.creationSource = DlAssetSource::kMatterIM; + user.createdBy = userInDb.createdBy; + user.modificationSource = DlAssetSource::kMatterIM; + user.lastModifiedBy = userInDb.lastModifiedBy; ChipLogDetail(Zcl, "Found occupied user " "[endpoint=%d,name=\"%.*s\",credentialsCount=%u,uniqueId=%lx,type=%u,credentialRule=%u," "createdBy=%d,lastModifiedBy=%d]", - mEndpointId, static_cast(user.userName.size()), user.userName.data(), user.credentials.size(), + endpointId, static_cast(user.userName.size()), user.userName.data(), user.credentials.size(), user.userUniqueId, to_underlying(user.userType), to_underlying(user.credentialRule), user.createdBy, user.lastModifiedBy); return true; } -bool LockManager::SetUser(uint16_t userIndex, chip::FabricIndex creator, chip::FabricIndex modifier, +bool LockManager::SetUser(chip::EndpointId endpointId, uint16_t userIndex, chip::FabricIndex creator, chip::FabricIndex modifier, const chip::CharSpan & userName, uint32_t uniqueId, DlUserStatus userStatus, DlUserType usertype, DlCredentialRule credentialRule, const DlCredential * credentials, size_t totalCredentials) { @@ -252,27 +275,29 @@ bool LockManager::SetUser(uint16_t userIndex, chip::FabricIndex creator, chip::F "Door Lock App: LockManager::SetUser " "[endpoint=%d,userIndex=%d,creator=%d,modifier=%d,userName=%s,uniqueId=%ld " "userStatus=%u,userType=%u,credentialRule=%u,credentials=%p,totalCredentials=%u]", - mEndpointId, userIndex, creator, modifier, userName.data(), uniqueId, to_underlying(userStatus), + endpointId, userIndex, creator, modifier, userName.data(), uniqueId, to_underlying(userStatus), to_underlying(usertype), to_underlying(credentialRule), credentials, totalCredentials); - auto & userInStorage = mLockUser; + uint16_t adjustedUserIndex = userIndex - 1; + + // door-lock-server checks for valid user index + auto & userInStorage = mLockUsers[adjustedUserIndex]; if (userName.size() > DOOR_LOCK_MAX_USER_NAME_SIZE) { - ChipLogError(Zcl, "Cannot set user - user name is too long [endpoint=%d,index=%d]", mEndpointId, userIndex); + ChipLogError(Zcl, "Cannot set user - user name is too long [endpoint=%d,index=%d]", endpointId, adjustedUserIndex); return false; } if (totalCredentials > mMaxCredentialsPerUser) { ChipLogError(Zcl, "Cannot set user - total number of credentials is too big [endpoint=%d,index=%d,totalCredentials=%u]", - mEndpointId, userIndex, totalCredentials); + endpointId, adjustedUserIndex, totalCredentials); return false; } - chip::Platform::CopyString(mUserName, userName); - mUserName[userName.size()] = 0; - userInStorage.userName = chip::CharSpan(mUserName, userName.size()); + chip::Platform::CopyString(mUserNames[adjustedUserIndex], userName); + userInStorage.userName = chip::CharSpan(mUserNames[adjustedUserIndex], userName.size()); userInStorage.userUniqueId = uniqueId; userInStorage.userStatus = userStatus; userInStorage.userType = usertype; @@ -282,23 +307,25 @@ bool LockManager::SetUser(uint16_t userIndex, chip::FabricIndex creator, chip::F for (size_t i = 0; i < totalCredentials; ++i) { - mCredentials[i] = credentials[i]; - mCredentials[i].CredentialType = 1; - mCredentials[i].CredentialIndex = i + 1; + mCredentials[adjustedUserIndex][i] = credentials[i]; + mCredentials[adjustedUserIndex][i].CredentialType = 1; + mCredentials[adjustedUserIndex][i].CredentialIndex = i + 1; } - userInStorage.credentials = chip::Span(mCredentials.Get(), totalCredentials); + userInStorage.credentials = chip::Span(mCredentials[adjustedUserIndex].Get(), totalCredentials); // Save user information in NVM flash - EFR32Config::WriteConfigValueBin(EFR32Config::kConfigKey_LockUser, reinterpret_cast(&userInStorage), - sizeof(EmberAfPluginDoorLockUserInfo)); + EFR32Config::WriteConfigValueBin(EFR32Config::kConfigKey_LockUser, reinterpret_cast(&mLockUsers), + sizeof(EmberAfPluginDoorLockUserInfo) * mMaxUsers); - EFR32Config::WriteConfigValueBin(EFR32Config::kConfigKey_UserCredentials, reinterpret_cast(mCredentials.Get()), - sizeof(DlCredential)); + EFR32Config::WriteConfigValueBin(EFR32Config::kConfigKey_UserCredentials, + reinterpret_cast(mCredentials[adjustedUserIndex].Get()), + sizeof(DlCredential) * totalCredentials); - EFR32Config::WriteConfigValueStr(EFR32Config::kConfigKey_LockUserName, mUserName, sizeof(userName.size())); + EFR32Config::WriteConfigValueBin(EFR32Config::kConfigKey_LockUserName, reinterpret_cast(mUserNames), + sizeof(mUserNames)); - ChipLogProgress(Zcl, "Successfully set the user [mEndpointId=%d,index=%d]", mEndpointId, userIndex); + ChipLogProgress(Zcl, "Successfully set the user [mEndpointId=%d,index=%d]", endpointId, adjustedUserIndex); return true; } @@ -306,11 +333,18 @@ bool LockManager::SetUser(uint16_t userIndex, chip::FabricIndex creator, chip::F bool LockManager::GetCredential(chip::EndpointId endpointId, uint16_t credentialIndex, DlCredentialType credentialType, EmberAfPluginDoorLockCredentialInfo & credential) const { - ChipLogProgress(Zcl, "Lock App: LockManager::GetCredential [credentialType=%u]", to_underlying(credentialType)); - const auto & credentialInStorage = mLockCredentials; + uint16_t adjustedCredentialIndex = credentialIndex - 1; + + ChipLogProgress(Zcl, "Lock App: LockManager::GetCredential [credentialType=%u], credentialIndex=%d", + to_underlying(credentialType), adjustedCredentialIndex); + + // door-lock-server checks for valid credential index + const auto & credentialInStorage = mLockCredentials[adjustedCredentialIndex]; credential.status = credentialInStorage.status; + ChipLogDetail(Zcl, "CredentialStatus: %d, CredentialIndex: %d ", (int) credential.status, adjustedCredentialIndex); + if (DlCredentialStatus::kAvailable == credential.status) { ChipLogDetail(Zcl, "Found unoccupied credential "); @@ -318,6 +352,12 @@ bool LockManager::GetCredential(chip::EndpointId endpointId, uint16_t credential } credential.credentialType = credentialInStorage.credentialType; credential.credentialData = credentialInStorage.credentialData; + credential.createdBy = credentialInStorage.createdBy; + credential.lastModifiedBy = credentialInStorage.lastModifiedBy; + // So far there's no way to actually create the credential outside Matter, so here we always set the creation/modification + // source to Matter + credential.creationSource = DlAssetSource::kMatterIM; + credential.modificationSource = DlAssetSource::kMatterIM; ChipLogDetail(Zcl, "Found occupied credential [type=%u,dataSize=%u]", to_underlying(credential.credentialType), credential.credentialData.size()); @@ -325,15 +365,20 @@ bool LockManager::GetCredential(chip::EndpointId endpointId, uint16_t credential return true; } -bool LockManager::SetCredential(chip::EndpointId endpointId, uint16_t credentialIndex, DlCredentialStatus credentialStatus, - DlCredentialType credentialType, const chip::ByteSpan & credentialData) +bool LockManager::SetCredential(chip::EndpointId endpointId, uint16_t credentialIndex, chip::FabricIndex creator, + chip::FabricIndex modifier, DlCredentialStatus credentialStatus, DlCredentialType credentialType, + const chip::ByteSpan & credentialData) { ChipLogProgress(Zcl, "Door Lock App: LockManager::SetCredential " - "[credentialStatus=%u,credentialType=%u,credentialDataSize=%u]", - to_underlying(credentialStatus), to_underlying(credentialType), credentialData.size()); + "[credentialStatus=%u,credentialType=%u,credentialDataSize=%u,creator=%d,modifier=%d]", + to_underlying(credentialStatus), to_underlying(credentialType), credentialData.size(), creator, modifier); + + uint16_t adjustedCredentialIndex = credentialIndex - 1; + + // door-lock-server checks for valid credential index + auto & credentialInStorage = mLockCredentials[adjustedCredentialIndex]; - auto & credentialInStorage = mLockCredentials; if (credentialData.size() > DOOR_LOCK_CREDENTIAL_INFO_MAX_DATA_SIZE) { ChipLogError(Zcl, @@ -344,18 +389,18 @@ bool LockManager::SetCredential(chip::EndpointId endpointId, uint16_t credential } credentialInStorage.status = credentialStatus; credentialInStorage.credentialType = credentialType; + credentialInStorage.createdBy = creator; + credentialInStorage.lastModifiedBy = modifier; - memcpy(mCredentialData, credentialData.data(), credentialData.size()); - mCredentialData[credentialData.size()] = 0; - - credentialInStorage.credentialData = chip::ByteSpan{ mCredentialData, credentialData.size() }; + memcpy(mCredentialData[adjustedCredentialIndex], credentialData.data(), credentialData.size()); + credentialInStorage.credentialData = chip::ByteSpan{ mCredentialData[adjustedCredentialIndex], credentialData.size() }; - // Save user information in NVM flash - EFR32Config::WriteConfigValueBin(EFR32Config::kConfigKey_Credential, reinterpret_cast(&credentialInStorage), - sizeof(EmberAfPluginDoorLockCredentialInfo)); + // Save credential information in NVM flash + EFR32Config::WriteConfigValueBin(EFR32Config::kConfigKey_Credential, reinterpret_cast(&mLockCredentials), + sizeof(EmberAfPluginDoorLockCredentialInfo) * mMaxCredentialsPerUser); EFR32Config::WriteConfigValueBin(EFR32Config::kConfigKey_CredentialData, reinterpret_cast(&mCredentialData), - credentialData.size()); + sizeof(mCredentialData)); ChipLogProgress(Zcl, "Successfully set the credential [credentialType=%u]", to_underlying(credentialType)); @@ -384,31 +429,52 @@ bool LockManager::setLockState(chip::EndpointId endpointId, DlLockState lockStat if (mState == kState_UnlockCompleted) curState = DlLockState::kUnlocked; - if (curState == lockState) + if ((curState == lockState) && (curState == DlLockState::kLocked)) { ChipLogDetail(Zcl, "Door Lock App: door is already locked, ignoring command to set lock state to \"%s\" [endpointId=%d]", - lockStateToString(lockState), mEndpointId); - return false; + lockStateToString(lockState), endpointId); + return true; + } + else if ((curState == lockState) && (curState == DlLockState::kUnlocked)) + { + ChipLogDetail(Zcl, + "Door Lock App: door is already unlocked, ignoring command to set unlock state to \"%s\" [endpointId=%d]", + lockStateToString(lockState), endpointId); + return true; } + // Check the RequirePINforRemoteOperation attribute + bool requirePin = false; + // chip::app::Clusters::DoorLock::Attributes::RequirePINforRemoteOperation::Get(endpointId, &requirePin); + + // If a pin code is not given if (!pin.HasValue()) { - ChipLogDetail(Zcl, "Door Lock App: PIN code is not specified, setting door lock state to \"%s\" [endpointId=%d]", - lockStateToString(lockState), mEndpointId); + ChipLogDetail(Zcl, "Door Lock App: PIN code is not specified, but it is required [endpointId=%d]", mEndpointId); curState = lockState; - return true; + // If a pin code is not required + if (!requirePin) + { + ChipLogDetail(Zcl, "Door Lock App: setting door lock state to \"%s\" [endpointId=%d]", lockStateToString(lockState), + endpointId); + curState = lockState; + return true; + } + + return false; } // Check the PIN code - for (uint8_t i; i < 10; i++) + for (uint8_t i = 0; i < mMaxCredentialsPerUser; i++) { - if (mLockCredentials.credentialType != DlCredentialType::kPin || mLockCredentials.status == DlCredentialStatus::kAvailable) + if (mLockCredentials[i].credentialType != DlCredentialType::kPin || + mLockCredentials[i].status == DlCredentialStatus::kAvailable) { continue; } - if (mLockCredentials.credentialData.data_equal(pin.Value())) + if (mLockCredentials[i].credentialData.data_equal(pin.Value())) { ChipLogDetail(Zcl, "Lock App: specified PIN code was found in the database, setting lock state to \"%s\" [endpointId=%d]", diff --git a/examples/lock-app/efr32/src/ZclCallbacks.cpp b/examples/lock-app/efr32/src/ZclCallbacks.cpp index daf244afb477bf..8fb775956a4c30 100644 --- a/examples/lock-app/efr32/src/ZclCallbacks.cpp +++ b/examples/lock-app/efr32/src/ZclCallbacks.cpp @@ -90,15 +90,17 @@ bool emberAfPluginDoorLockGetCredential(chip::EndpointId endpointId, uint16_t cr return LockMgr().GetCredential(endpointId, credentialIndex, credentialType, credential); } -bool emberAfPluginDoorLockSetCredential(chip::EndpointId endpointId, uint16_t credentialIndex, DlCredentialStatus credentialStatus, +bool emberAfPluginDoorLockSetCredential(chip::EndpointId endpointId, uint16_t credentialIndex, chip::FabricIndex creator, + chip::FabricIndex modifier, DlCredentialStatus credentialStatus, DlCredentialType credentialType, const chip::ByteSpan & credentialData) { - return LockMgr().SetCredential(endpointId, credentialIndex, credentialStatus, credentialType, credentialData); + return LockMgr().SetCredential(endpointId, credentialIndex, creator, modifier, credentialStatus, credentialType, + credentialData); } bool emberAfPluginDoorLockGetUser(chip::EndpointId endpointId, uint16_t userIndex, EmberAfPluginDoorLockUserInfo & user) { - return LockMgr().GetUser(userIndex, user); + return LockMgr().GetUser(endpointId, userIndex, user); } bool emberAfPluginDoorLockSetUser(chip::EndpointId endpointId, uint16_t userIndex, chip::FabricIndex creator, @@ -107,8 +109,8 @@ bool emberAfPluginDoorLockSetUser(chip::EndpointId endpointId, uint16_t userInde const DlCredential * credentials, size_t totalCredentials) { - return LockMgr().SetUser(userIndex, creator, modifier, userName, uniqueId, userStatus, usertype, credentialRule, credentials, - totalCredentials); + return LockMgr().SetUser(endpointId, userIndex, creator, modifier, userName, uniqueId, userStatus, usertype, credentialRule, + credentials, totalCredentials); } // TODO: These functions will be supported by door-lock-server in the future. These are set to return failure until implemented. diff --git a/examples/lock-app/esp32/CMakeLists.txt b/examples/lock-app/esp32/CMakeLists.txt index 19a85fb5c992d7..3bcab4dbab199e 100644 --- a/examples/lock-app/esp32/CMakeLists.txt +++ b/examples/lock-app/esp32/CMakeLists.txt @@ -42,6 +42,8 @@ idf_build_set_property(COMPILE_OPTIONS "-Wno-error=maybe-uninitialized" APPEND) if (CONFIG_ENABLE_PW_RPC) get_filename_component(CHIP_ROOT ./third_party/connectedhomeip REALPATH) include(third_party/connectedhomeip/third_party/pigweed/repo/pw_build/pigweed.cmake) + +pw_set_module_config(pw_rpc_CONFIG pw_rpc.disable_global_mutex_config) pw_set_backend(pw_log pw_log_basic) pw_set_backend(pw_assert pw_assert_log) pw_set_backend(pw_sys_io pw_sys_io.esp32) diff --git a/examples/lock-app/linux/include/LockEndpoint.h b/examples/lock-app/linux/include/LockEndpoint.h index bee91e7265239f..503d08fab6679c 100644 --- a/examples/lock-app/linux/include/LockEndpoint.h +++ b/examples/lock-app/linux/include/LockEndpoint.h @@ -36,6 +36,7 @@ struct LockUserInfo struct LockCredentialInfo; struct WeekDaysScheduleInfo; struct YearDayScheduleInfo; +struct HolidayScheduleInfo; static constexpr size_t DOOR_LOCK_CREDENTIAL_INFO_MAX_DATA_SIZE = 20; @@ -43,17 +44,21 @@ class LockEndpoint { public: LockEndpoint(chip::EndpointId endpointId, uint16_t numberOfLockUsersSupported, uint16_t numberOfCredentialsSupported, - uint8_t weekDaySchedulesPerUser, uint8_t yearDaySchedulesPerUser, uint8_t numberOfCredentialsPerUser) : + uint8_t weekDaySchedulesPerUser, uint8_t yearDaySchedulesPerUser, uint8_t numberOfCredentialsPerUser, + uint8_t numberOfHolidaySchedules) : mEndpointId{ endpointId }, mLockState{ DlLockState::kLocked }, mLockUsers(numberOfLockUsersSupported), mLockCredentials(numberOfCredentialsSupported + 1), mWeekDaySchedules(numberOfLockUsersSupported, std::vector(weekDaySchedulesPerUser)), - mYearDaySchedules(numberOfLockUsersSupported, std::vector(yearDaySchedulesPerUser)) + mYearDaySchedules(numberOfLockUsersSupported, std::vector(yearDaySchedulesPerUser)), + mHolidaySchedules(numberOfHolidaySchedules) { for (auto & lockUser : mLockUsers) { lockUser.credentials.reserve(numberOfCredentialsPerUser); } + + DoorLockServer::Instance().SetLockState(endpointId, mLockState); } inline chip::EndpointId GetEndpointId() const { return mEndpointId; } @@ -74,10 +79,14 @@ class LockEndpoint DlStatus GetSchedule(uint8_t weekDayIndex, uint16_t userIndex, EmberAfPluginDoorLockWeekDaySchedule & schedule); DlStatus GetSchedule(uint8_t yearDayIndex, uint16_t userIndex, EmberAfPluginDoorLockYearDaySchedule & schedule); + DlStatus GetSchedule(uint8_t holidayIndex, EmberAfPluginDoorLockHolidaySchedule & schedule); + DlStatus SetSchedule(uint8_t weekDayIndex, uint16_t userIndex, DlScheduleStatus status, DlDaysMaskMap daysMask, uint8_t startHour, uint8_t startMinute, uint8_t endHour, uint8_t endMinute); DlStatus SetSchedule(uint8_t yearDayIndex, uint16_t userIndex, DlScheduleStatus status, uint32_t localStartTime, uint32_t localEndTime); + DlStatus SetSchedule(uint8_t holidayIndex, DlScheduleStatus status, uint32_t localStartTime, uint32_t localEndTime, + DlOperatingMode operatingMode); private: bool setLockState(DlLockState lockState, const Optional & pin, DlOperationError & err); @@ -92,6 +101,7 @@ class LockEndpoint std::vector mLockCredentials; std::vector> mWeekDaySchedules; std::vector> mYearDaySchedules; + std::vector mHolidaySchedules; }; struct LockCredentialInfo @@ -115,3 +125,9 @@ struct YearDayScheduleInfo DlScheduleStatus status; EmberAfPluginDoorLockYearDaySchedule schedule; }; + +struct HolidayScheduleInfo +{ + DlScheduleStatus status; + EmberAfPluginDoorLockHolidaySchedule schedule; +}; diff --git a/examples/lock-app/linux/include/LockManager.h b/examples/lock-app/linux/include/LockManager.h index 56c5535fee095b..9631796e2b7d82 100644 --- a/examples/lock-app/linux/include/LockManager.h +++ b/examples/lock-app/linux/include/LockManager.h @@ -49,10 +49,14 @@ class LockManager EmberAfPluginDoorLockWeekDaySchedule & schedule); DlStatus GetSchedule(chip::EndpointId endpointId, uint8_t yearDayIndex, uint16_t userIndex, EmberAfPluginDoorLockYearDaySchedule & schedule); + DlStatus GetSchedule(chip::EndpointId endpointId, uint8_t holidayIndex, EmberAfPluginDoorLockHolidaySchedule & schedule); + DlStatus SetSchedule(chip::EndpointId endpointId, uint8_t weekDayIndex, uint16_t userIndex, DlScheduleStatus status, DlDaysMaskMap daysMask, uint8_t startHour, uint8_t startMinute, uint8_t endHour, uint8_t endMinute); DlStatus SetSchedule(chip::EndpointId endpointId, uint8_t yearDayIndex, uint16_t userIndex, DlScheduleStatus status, uint32_t localStartTime, uint32_t localEndTime); + DlStatus SetSchedule(chip::EndpointId endpointId, uint8_t holidayIndex, DlScheduleStatus status, uint32_t localStartTime, + uint32_t localEndTime, DlOperatingMode operatingMode); static LockManager & Instance(); diff --git a/examples/lock-app/linux/src/LockEndpoint.cpp b/examples/lock-app/linux/src/LockEndpoint.cpp index 404fecebff0913..605fb1dd2f5537 100644 --- a/examples/lock-app/linux/src/LockEndpoint.cpp +++ b/examples/lock-app/linux/src/LockEndpoint.cpp @@ -55,8 +55,12 @@ bool LockEndpoint::GetUser(uint16_t userIndex, EmberAfPluginDoorLockUserInfo & u user.userUniqueId = userInDb.userUniqueId; user.userType = userInDb.userType; user.credentialRule = userInDb.credentialRule; - user.createdBy = userInDb.createdBy; - user.lastModifiedBy = userInDb.lastModifiedBy; + // So far there's no way to actually create the credential outside the matter, so here we always set the creation/modification + // source to Matter + user.creationSource = DlAssetSource::kMatterIM; + user.createdBy = userInDb.createdBy; + user.modificationSource = DlAssetSource::kMatterIM; + user.lastModifiedBy = userInDb.lastModifiedBy; ChipLogDetail(Zcl, "Found occupied user " @@ -151,8 +155,12 @@ bool LockEndpoint::GetCredential(uint16_t credentialIndex, DlCredentialType cred } credential.credentialType = credentialInStorage.credentialType; credential.credentialData = chip::ByteSpan(credentialInStorage.credentialData, credentialInStorage.credentialDataSize); - credential.createdBy = credentialInStorage.createdBy; - credential.lastModifiedBy = credentialInStorage.modifiedBy; + // So far there's no way to actually create the credential outside the matter, so here we always set the creation/modification + // source to Matter + credential.creationSource = DlAssetSource::kMatterIM; + credential.createdBy = credentialInStorage.createdBy; + credential.modificationSource = DlAssetSource::kMatterIM; + credential.lastModifiedBy = credentialInStorage.modifiedBy; ChipLogDetail(Zcl, "Found occupied credential [endpoint=%d,index=%u,type=%u,dataSize=%u,createdBy=%u,modifiedBy=%u]", mEndpointId, credentialIndex, to_underlying(credential.credentialType), @@ -294,6 +302,40 @@ DlStatus LockEndpoint::SetSchedule(uint8_t yearDayIndex, uint16_t userIndex, DlS return DlStatus::kSuccess; } +DlStatus LockEndpoint::GetSchedule(uint8_t holidayIndex, EmberAfPluginDoorLockHolidaySchedule & schedule) +{ + if (0 == holidayIndex || holidayIndex > mHolidaySchedules.size()) + { + return DlStatus::kFailure; + } + + const auto & scheduleInStorage = mHolidaySchedules[holidayIndex - 1]; + if (DlScheduleStatus::kAvailable == scheduleInStorage.status) + { + return DlStatus::kNotFound; + } + + schedule = scheduleInStorage.schedule; + return DlStatus::kSuccess; +} + +DlStatus LockEndpoint::SetSchedule(uint8_t holidayIndex, DlScheduleStatus status, uint32_t localStartTime, uint32_t localEndTime, + DlOperatingMode operatingMode) +{ + if (0 == holidayIndex || holidayIndex > mHolidaySchedules.size()) + { + return DlStatus::kFailure; + } + + auto & scheduleInStorage = mHolidaySchedules[holidayIndex - 1]; + scheduleInStorage.schedule.localStartTime = localStartTime; + scheduleInStorage.schedule.localEndTime = localEndTime; + scheduleInStorage.schedule.operatingMode = operatingMode; + scheduleInStorage.status = status; + + return DlStatus::kSuccess; +} + bool LockEndpoint::setLockState(DlLockState lockState, const Optional & pin, DlOperationError & err) { if (!pin.HasValue()) diff --git a/examples/lock-app/linux/src/LockManager.cpp b/examples/lock-app/linux/src/LockManager.cpp index 2858be79db2f74..630738796a2b49 100644 --- a/examples/lock-app/linux/src/LockManager.cpp +++ b/examples/lock-app/linux/src/LockManager.cpp @@ -89,15 +89,25 @@ bool LockManager::InitEndpoint(chip::EndpointId endpointId) numberOfYearDaySchedulesPerUser = 10; } + uint8_t numberOfHolidaySchedules = 0; + if (!DoorLockServer::Instance().GetNumberOfHolidaySchedulesSupported(endpointId, numberOfHolidaySchedules)) + { + ChipLogError( + Zcl, + "Unable to get number of supported holiday schedules when initializing lock endpoint, defaulting to 10 [endpointId=%d]", + endpointId); + numberOfHolidaySchedules = 10; + } + mEndpoints.emplace_back(endpointId, numberOfSupportedUsers, numberOfSupportedCredentials, numberOfWeekDaySchedulesPerUser, - numberOfYearDaySchedulesPerUser, numberOfCredentialsSupportedPerUser); + numberOfYearDaySchedulesPerUser, numberOfCredentialsSupportedPerUser, numberOfHolidaySchedules); ChipLogProgress(Zcl, "Initialized new lock door endpoint " "[id=%d,users=%d,credentials=%d,weekDaySchedulesPerUser=%d,yearDaySchedulesPerUser=%d," - "numberOfCredentialsSupportedPerUser=%d]", + "numberOfCredentialsSupportedPerUser=%d,holidaySchedules=%d]", endpointId, numberOfSupportedUsers, numberOfSupportedCredentials, numberOfWeekDaySchedulesPerUser, - numberOfYearDaySchedulesPerUser, numberOfCredentialsSupportedPerUser); + numberOfYearDaySchedulesPerUser, numberOfCredentialsSupportedPerUser, numberOfHolidaySchedules); return true; } @@ -227,6 +237,32 @@ DlStatus LockManager::SetSchedule(chip::EndpointId endpointId, uint8_t yearDayIn return lockEndpoint->SetSchedule(yearDayIndex, userIndex, status, localStartTime, localEndTime); } +DlStatus LockManager::GetSchedule(chip::EndpointId endpointId, uint8_t holidayIndex, + EmberAfPluginDoorLockHolidaySchedule & schedule) +{ + auto lockEndpoint = getEndpoint(endpointId); + if (nullptr == lockEndpoint) + { + ChipLogError(Zcl, "Unable to get the holiday schedule - endpoint does not exist or not initialized [endpointId=%d]", + endpointId); + return DlStatus::kFailure; + } + return lockEndpoint->GetSchedule(holidayIndex, schedule); +} + +DlStatus LockManager::SetSchedule(chip::EndpointId endpointId, uint8_t holidayIndex, DlScheduleStatus status, + uint32_t localStartTime, uint32_t localEndTime, DlOperatingMode operatingMode) +{ + auto lockEndpoint = getEndpoint(endpointId); + if (nullptr == lockEndpoint) + { + ChipLogError(Zcl, "Unable to set the holiday schedule - endpoint does not exist or not initialized [endpointId=%d]", + endpointId); + return DlStatus::kFailure; + } + return lockEndpoint->SetSchedule(holidayIndex, status, localStartTime, localEndTime, operatingMode); +} + LockEndpoint * LockManager::getEndpoint(chip::EndpointId endpointId) { for (auto & mEndpoint : mEndpoints) diff --git a/examples/lock-app/linux/src/ZCLDoorLockCallbacks.cpp b/examples/lock-app/linux/src/ZCLDoorLockCallbacks.cpp index ae696ef58c7d86..b5ef3a760d64dc 100644 --- a/examples/lock-app/linux/src/ZCLDoorLockCallbacks.cpp +++ b/examples/lock-app/linux/src/ZCLDoorLockCallbacks.cpp @@ -56,6 +56,12 @@ DlStatus emberAfPluginDoorLockGetSchedule(chip::EndpointId endpointId, uint8_t w return LockManager::Instance().GetSchedule(endpointId, weekdayIndex, userIndex, schedule); } +DlStatus emberAfPluginDoorLockGetSchedule(chip::EndpointId endpointId, uint8_t holidayIndex, + EmberAfPluginDoorLockHolidaySchedule & schedule) +{ + return LockManager::Instance().GetSchedule(endpointId, holidayIndex, schedule); +} + DlStatus emberAfPluginDoorLockSetSchedule(chip::EndpointId endpointId, uint8_t weekdayIndex, uint16_t userIndex, DlScheduleStatus status, DlDaysMaskMap daysMask, uint8_t startHour, uint8_t startMinute, uint8_t endHour, uint8_t endMinute) @@ -76,6 +82,12 @@ DlStatus emberAfPluginDoorLockGetSchedule(chip::EndpointId endpointId, uint8_t y return LockManager::Instance().GetSchedule(endpointId, yearDayIndex, userIndex, schedule); } +DlStatus emberAfPluginDoorLockSetSchedule(chip::EndpointId endpointId, uint8_t holidayIndex, DlScheduleStatus status, + uint32_t localStartTime, uint32_t localEndTime, DlOperatingMode operatingMode) +{ + return LockManager::Instance().SetSchedule(endpointId, holidayIndex, status, localStartTime, localEndTime, operatingMode); +} + void MatterPostAttributeChangeCallback(const chip::app::ConcreteAttributePath & attributePath, uint8_t type, uint16_t size, uint8_t * value) { diff --git a/examples/lock-app/lock-common/lock-app.matter b/examples/lock-app/lock-common/lock-app.matter index 1fd3d998899224..5cd6c2ca19741e 100644 --- a/examples/lock-app/lock-common/lock-app.matter +++ b/examples/lock-app/lock-common/lock-app.matter @@ -388,16 +388,6 @@ server cluster DoorLock = 257 { kNotSupported = 255; } - bitmap DlAlarmMask : BITMAP16 { - kLockingMechanismJammed = 0x1; - kLockResetToFactoryDefaults = 0x2; - kReserved = 0x4; - kRFModulePowerCycled = 0x8; - kWrongCodeEntryLimit = 0x10; - kFrontEscutcheonRemovedFromMain = 0x20; - kForcedDoorOpenUnderDoorLockedCondition = 0x40; - } - bitmap DlCredentialRuleMask : BITMAP8 { kSingle = 0x1; kDual = 0x2; @@ -587,6 +577,7 @@ server cluster DoorLock = 257 { readonly attribute int16u numberOfRFIDUsersSupported = 19; readonly attribute int8u numberOfWeekDaySchedulesSupportedPerUser = 20; readonly attribute int8u numberOfYearDaySchedulesSupportedPerUser = 21; + readonly attribute int8u numberOfHolidaySchedulesSupported = 22; readonly attribute int8u maxPINCodeLength = 23; readonly attribute int8u minPINCodeLength = 24; readonly attribute int8u maxRFIDCodeLength = 25; @@ -602,7 +593,6 @@ server cluster DoorLock = 257 { attribute access(write: manage) boolean enablePrivacyModeButton = 43; attribute access(write: administer) int8u wrongCodeEntryLimit = 48; attribute access(write: administer) int8u userCodeTemporaryDisableTime = 49; - attribute access(write: administer) boolean requirePINforRemoteOperation = 51; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -656,6 +646,21 @@ server cluster DoorLock = 257 { INT16U userIndex = 1; } + request struct SetHolidayScheduleRequest { + INT8U holidayIndex = 0; + epoch_s localStartTime = 1; + epoch_s localEndTime = 2; + DlOperatingMode operatingMode = 3; + } + + request struct GetHolidayScheduleRequest { + INT8U holidayIndex = 0; + } + + request struct ClearHolidayScheduleRequest { + INT8U holidayIndex = 0; + } + request struct SetUserRequest { DlDataOperationType operationType = 0; INT16U userIndex = 1; @@ -710,6 +715,14 @@ server cluster DoorLock = 257 { optional epoch_s localEndTime = 4; } + response struct GetHolidayScheduleResponse = 18 { + INT8U holidayIndex = 0; + DlStatus status = 1; + optional epoch_s localStartTime = 2; + optional epoch_s localEndTime = 3; + optional DlOperatingMode operatingMode = 4; + } + response struct GetUserResponse = 28 { INT16U userIndex = 0; nullable CHAR_STRING userName = 1; @@ -746,6 +759,9 @@ server cluster DoorLock = 257 { command access(invoke: administer) SetYearDaySchedule(SetYearDayScheduleRequest): DefaultSuccess = 14; command access(invoke: administer) GetYearDaySchedule(GetYearDayScheduleRequest): GetYearDayScheduleResponse = 15; command access(invoke: administer) ClearYearDaySchedule(ClearYearDayScheduleRequest): DefaultSuccess = 16; + command access(invoke: administer) SetHolidaySchedule(SetHolidayScheduleRequest): DefaultSuccess = 17; + command access(invoke: administer) GetHolidaySchedule(GetHolidayScheduleRequest): GetHolidayScheduleResponse = 18; + command access(invoke: administer) ClearHolidaySchedule(ClearHolidayScheduleRequest): DefaultSuccess = 19; timed command access(invoke: administer) SetUser(SetUserRequest): DefaultSuccess = 26; command access(invoke: administer) GetUser(GetUserRequest): GetUserResponse = 27; timed command access(invoke: administer) ClearUser(ClearUserRequest): DefaultSuccess = 29; @@ -935,8 +951,16 @@ server cluster GeneralDiagnostics = 51 { readonly attribute ENUM8 activeHardwareFaults[] = 5; readonly attribute ENUM8 activeRadioFaults[] = 6; readonly attribute ENUM8 activeNetworkFaults[] = 7; + readonly attribute boolean testEventTriggersEnabled = 8; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + + request struct TestEventTriggerRequest { + OCTET_STRING enableKey = 0; + INT64U eventTrigger = 1; + } + + command TestEventTrigger(TestEventTriggerRequest): DefaultSuccess = 0; } server cluster Groups = 4 { @@ -1360,6 +1384,7 @@ server cluster OperationalCredentials = 62 { kInvalidNOC = 3; kMissingCsr = 4; kTableFull = 5; + kInvalidAdminSubject = 6; kInsufficientPrivilege = 8; kFabricConflict = 9; kLabelConflict = 10; @@ -1400,13 +1425,14 @@ server cluster OperationalCredentials = 62 { request struct CSRRequestRequest { OCTET_STRING CSRNonce = 0; + optional boolean isForUpdateNOC = 1; } request struct AddNOCRequest { OCTET_STRING NOCValue = 0; optional OCTET_STRING ICACValue = 1; OCTET_STRING IPKValue = 2; - NODE_ID caseAdminNode = 3; + Int64u caseAdminSubject = 3; VENDOR_ID adminVendorId = 4; } @@ -1427,10 +1453,6 @@ server cluster OperationalCredentials = 62 { OCTET_STRING rootCertificate = 0; } - request struct RemoveTrustedRootCertificateRequest { - OCTET_STRING trustedRootIdentifier = 0; - } - response struct AttestationResponse = 1 { OCTET_STRING attestationElements = 0; OCTET_STRING signature = 1; @@ -1459,7 +1481,6 @@ server cluster OperationalCredentials = 62 { command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } server cluster PowerSource = 47 { @@ -1547,12 +1568,16 @@ server cluster PowerSourceConfiguration = 46 { } server cluster SoftwareDiagnostics = 52 { + bitmap SoftwareDiagnosticsFeature : BITMAP32 { + kWaterMarks = 0x1; + } + struct ThreadMetrics { int64u id = 0; - char_string<8> name = 1; - int32u stackFreeCurrent = 2; - int32u stackFreeMinimum = 3; - int32u stackSize = 4; + optional char_string<8> name = 1; + optional int32u stackFreeCurrent = 2; + optional int32u stackFreeMinimum = 3; + optional int32u stackSize = 4; } info event SoftwareFault = 0 { @@ -1654,7 +1679,7 @@ server cluster ThreadNetworkDiagnostics = 53 { } readonly attribute nullable int16u channel = 0; - readonly attribute nullable enum8 routingRole = 1; + readonly attribute nullable RoutingRole routingRole = 1; readonly attribute nullable char_string<16> networkName = 2; readonly attribute nullable int16u panId = 3; readonly attribute nullable int64u extendedPanId = 4; @@ -1662,11 +1687,11 @@ server cluster ThreadNetworkDiagnostics = 53 { readonly attribute int64u overrunCount = 6; readonly attribute NeighborTable neighborTableList[] = 7; readonly attribute RouteTable routeTableList[] = 8; - readonly attribute int32u partitionId = 9; - readonly attribute int8u weighting = 10; - readonly attribute int8u dataVersion = 11; - readonly attribute int8u stableDataVersion = 12; - readonly attribute int8u leaderRouterId = 13; + readonly attribute nullable int32u partitionId = 9; + readonly attribute nullable int8u weighting = 10; + readonly attribute nullable int8u dataVersion = 11; + readonly attribute nullable int8u stableDataVersion = 12; + readonly attribute nullable int8u leaderRouterId = 13; readonly attribute int16u detachedRoleCount = 14; readonly attribute int16u childRoleCount = 15; readonly attribute int16u routerRoleCount = 16; @@ -1709,12 +1734,12 @@ server cluster ThreadNetworkDiagnostics = 53 { readonly attribute int32u rxErrSecCount = 53; readonly attribute int32u rxErrFcsCount = 54; readonly attribute int32u rxErrOtherCount = 55; - readonly attribute int64u activeTimestamp = 56; - readonly attribute int64u pendingTimestamp = 57; - readonly attribute int32u delay = 58; - readonly attribute SecurityPolicy securityPolicy[] = 59; - readonly attribute octet_string<4> channelMask = 60; - readonly attribute OperationalDatasetComponents operationalDatasetComponents[] = 61; + readonly attribute nullable int64u activeTimestamp = 56; + readonly attribute nullable int64u pendingTimestamp = 57; + readonly attribute nullable int32u delay = 58; + readonly attribute nullable SecurityPolicy securityPolicy = 59; + readonly attribute nullable octet_string<4> channelMask = 60; + readonly attribute nullable OperationalDatasetComponents operationalDatasetComponents = 61; readonly attribute NetworkFault activeNetworkFaultsList[] = 62; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -1819,8 +1844,8 @@ server cluster WiFiNetworkDiagnostics = 54 { command ResetCounts(): DefaultSuccess = 0; } - endpoint 0 { + device type rootdevice = 22; binding cluster OtaSoftwareUpdateProvider; server cluster Descriptor { @@ -1944,6 +1969,7 @@ endpoint 0 { callback attribute activeHardwareFaults; callback attribute activeRadioFaults; callback attribute activeNetworkFaults; + callback attribute testEventTriggersEnabled; ram attribute featureMap; ram attribute clusterRevision default = 1; } @@ -1958,67 +1984,67 @@ endpoint 0 { } server cluster ThreadNetworkDiagnostics { - ram attribute channel; - ram attribute routingRole; - ram attribute networkName; - ram attribute panId; - ram attribute extendedPanId; - ram attribute meshLocalPrefix; - ram attribute overrunCount; + callback attribute channel; + callback attribute routingRole; + callback attribute networkName; + callback attribute panId; + callback attribute extendedPanId; + callback attribute meshLocalPrefix; + callback attribute overrunCount; callback attribute neighborTableList; callback attribute routeTableList; - ram attribute partitionId; - ram attribute weighting; - ram attribute dataVersion; - ram attribute stableDataVersion; - ram attribute leaderRouterId; - ram attribute detachedRoleCount; - ram attribute childRoleCount; - ram attribute routerRoleCount; - ram attribute leaderRoleCount; - ram attribute attachAttemptCount; - ram attribute partitionIdChangeCount; - ram attribute betterPartitionAttachAttemptCount; - ram attribute parentChangeCount; - ram attribute txTotalCount; - ram attribute txUnicastCount; - ram attribute txBroadcastCount; - ram attribute txAckRequestedCount; - ram attribute txAckedCount; - ram attribute txNoAckRequestedCount; - ram attribute txDataCount; - ram attribute txDataPollCount; - ram attribute txBeaconCount; - ram attribute txBeaconRequestCount; - ram attribute txOtherCount; - ram attribute txRetryCount; - ram attribute txDirectMaxRetryExpiryCount; - ram attribute txIndirectMaxRetryExpiryCount; - ram attribute txErrCcaCount; - ram attribute txErrAbortCount; - ram attribute txErrBusyChannelCount; - ram attribute rxTotalCount; - ram attribute rxUnicastCount; - ram attribute rxBroadcastCount; - ram attribute rxDataCount; - ram attribute rxDataPollCount; - ram attribute rxBeaconCount; - ram attribute rxBeaconRequestCount; - ram attribute rxOtherCount; - ram attribute rxAddressFilteredCount; - ram attribute rxDestAddrFilteredCount; - ram attribute rxDuplicatedCount; - ram attribute rxErrNoFrameCount; - ram attribute rxErrUnknownNeighborCount; - ram attribute rxErrInvalidSrcAddrCount; - ram attribute rxErrSecCount; - ram attribute rxErrFcsCount; - ram attribute rxErrOtherCount; - ram attribute activeTimestamp; - ram attribute pendingTimestamp; - ram attribute delay; + callback attribute partitionId; + callback attribute weighting; + callback attribute dataVersion; + callback attribute stableDataVersion; + callback attribute leaderRouterId; + callback attribute detachedRoleCount; + callback attribute childRoleCount; + callback attribute routerRoleCount; + callback attribute leaderRoleCount; + callback attribute attachAttemptCount; + callback attribute partitionIdChangeCount; + callback attribute betterPartitionAttachAttemptCount; + callback attribute parentChangeCount; + callback attribute txTotalCount; + callback attribute txUnicastCount; + callback attribute txBroadcastCount; + callback attribute txAckRequestedCount; + callback attribute txAckedCount; + callback attribute txNoAckRequestedCount; + callback attribute txDataCount; + callback attribute txDataPollCount; + callback attribute txBeaconCount; + callback attribute txBeaconRequestCount; + callback attribute txOtherCount; + callback attribute txRetryCount; + callback attribute txDirectMaxRetryExpiryCount; + callback attribute txIndirectMaxRetryExpiryCount; + callback attribute txErrCcaCount; + callback attribute txErrAbortCount; + callback attribute txErrBusyChannelCount; + callback attribute rxTotalCount; + callback attribute rxUnicastCount; + callback attribute rxBroadcastCount; + callback attribute rxDataCount; + callback attribute rxDataPollCount; + callback attribute rxBeaconCount; + callback attribute rxBeaconRequestCount; + callback attribute rxOtherCount; + callback attribute rxAddressFilteredCount; + callback attribute rxDestAddrFilteredCount; + callback attribute rxDuplicatedCount; + callback attribute rxErrNoFrameCount; + callback attribute rxErrUnknownNeighborCount; + callback attribute rxErrInvalidSrcAddrCount; + callback attribute rxErrSecCount; + callback attribute rxErrFcsCount; + callback attribute rxErrOtherCount; + callback attribute activeTimestamp; + callback attribute pendingTimestamp; + callback attribute delay; callback attribute securityPolicy; - ram attribute channelMask; + callback attribute channelMask; callback attribute operationalDatasetComponents; callback attribute activeNetworkFaultsList; ram attribute featureMap default = 0x000F; @@ -2088,8 +2114,8 @@ endpoint 0 { ram attribute clusterRevision default = 1; } } - endpoint 1 { + device type doorlock = 10; server cluster Identify { ram attribute identifyTime; @@ -2144,6 +2170,7 @@ endpoint 1 { ram attribute numberOfRFIDUsersSupported default = 10; ram attribute numberOfWeekDaySchedulesSupportedPerUser default = 10; ram attribute numberOfYearDaySchedulesSupportedPerUser default = 10; + ram attribute numberOfHolidaySchedulesSupported default = 10; ram attribute maxPINCodeLength default = 8; ram attribute minPINCodeLength default = 6; ram attribute maxRFIDCodeLength default = 20; @@ -2159,8 +2186,7 @@ endpoint 1 { ram attribute enablePrivacyModeButton; ram attribute wrongCodeEntryLimit default = 3; ram attribute userCodeTemporaryDisableTime default = 10; - ram attribute requirePINforRemoteOperation; - ram attribute featureMap default = 0x113; + ram attribute featureMap default = 0x133; ram attribute clusterRevision default = 6; } } diff --git a/examples/lock-app/lock-common/lock-app.zap b/examples/lock-app/lock-common/lock-app.zap index 04a7905e06bf85..c4ce3db3e46ad9 100755 --- a/examples/lock-app/lock-common/lock-app.zap +++ b/examples/lock-app/lock-common/lock-app.zap @@ -2797,7 +2797,16 @@ "define": "GENERAL_DIAGNOSTICS_CLUSTER", "side": "server", "enabled": 1, - "commands": [], + "commands": [ + { + "name": "TestEventTrigger", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], "attributes": [ { "name": "NetworkInterfaces", @@ -2927,6 +2936,22 @@ "maxInterval": 65534, "reportableChange": 0 }, + { + "name": "TestEventTriggersEnabled", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "false", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "FeatureMap", "code": 65532, @@ -3156,7 +3181,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3170,9 +3195,9 @@ "code": 1, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "RoutingRole", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3188,7 +3213,7 @@ "side": "server", "type": "char_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", @@ -3204,7 +3229,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3220,7 +3245,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -3236,7 +3261,7 @@ "side": "server", "type": "octet_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3252,7 +3277,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -3300,7 +3325,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3316,7 +3341,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3332,7 +3357,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3348,7 +3373,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3364,7 +3389,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3380,7 +3405,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3396,7 +3421,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3412,7 +3437,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3428,7 +3453,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3444,7 +3469,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3460,7 +3485,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3476,7 +3501,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3492,7 +3517,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3508,7 +3533,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3524,7 +3549,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3540,7 +3565,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3556,7 +3581,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3572,7 +3597,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3588,7 +3613,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3604,7 +3629,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3620,7 +3645,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3636,7 +3661,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3652,7 +3677,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3668,7 +3693,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3684,7 +3709,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3700,7 +3725,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3716,7 +3741,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3732,7 +3757,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3748,7 +3773,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3764,7 +3789,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3780,7 +3805,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3796,7 +3821,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3812,7 +3837,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3828,7 +3853,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3844,7 +3869,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3860,7 +3885,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3876,7 +3901,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3892,7 +3917,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3908,7 +3933,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3924,7 +3949,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3940,7 +3965,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3956,7 +3981,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3972,7 +3997,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3988,7 +4013,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4004,7 +4029,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4020,7 +4045,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4036,7 +4061,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4052,7 +4077,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -4068,7 +4093,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -4084,7 +4109,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4098,7 +4123,7 @@ "code": 59, "mfgCode": null, "side": "server", - "type": "array", + "type": "SecurityPolicy", "included": 1, "storageOption": "External", "singleton": 0, @@ -4116,7 +4141,7 @@ "side": "server", "type": "octet_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4130,7 +4155,7 @@ "code": 61, "mfgCode": null, "side": "server", - "type": "array", + "type": "OperationalDatasetComponents", "included": 1, "storageOption": "External", "singleton": 0, @@ -4915,14 +4940,6 @@ "source": "client", "incoming": 1, "outgoing": 1 - }, - { - "name": "RemoveTrustedRootCertificate", - "code": 12, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 } ], "attributes": [ @@ -7133,6 +7150,30 @@ "incoming": 1, "outgoing": 0 }, + { + "name": "SetHolidaySchedule", + "code": 17, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GetHolidaySchedule", + "code": 18, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ClearHolidaySchedule", + "code": 19, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, { "name": "SetUser", "code": 26, @@ -7225,6 +7266,14 @@ "incoming": 0, "outgoing": 1 }, + { + "name": "GetHolidayScheduleResponse", + "code": 18, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, { "name": "GetUserResponse", "code": 28, @@ -7363,22 +7412,6 @@ "maxInterval": 65534, "reportableChange": 0 }, - { - "name": "NumberOfLogRecordsSupported", - "code": 16, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, { "name": "NumberOfTotalUsersSupported", "code": 17, @@ -7465,11 +7498,11 @@ "mfgCode": null, "side": "server", "type": "int8u", - "included": 0, + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "10", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -7571,22 +7604,6 @@ "maxInterval": 65534, "reportableChange": 0 }, - { - "name": "EnableLogging", - "code": 32, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 0, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, { "name": "Language", "code": 33, @@ -7833,7 +7850,7 @@ "mfgCode": null, "side": "server", "type": "boolean", - "included": 1, + "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, @@ -7859,134 +7876,6 @@ "maxInterval": 65534, "reportableChange": 0 }, - { - "name": "AlarmMask", - "code": 64, - "mfgCode": null, - "side": "server", - "type": "DlAlarmMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0xFFFF", - "reportable": 0, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "KeypadOperationEventMask", - "code": 65, - "mfgCode": null, - "side": "server", - "type": "DlKeypadOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0xFFFF", - "reportable": 0, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "RemoteOperationEventMask", - "code": 66, - "mfgCode": null, - "side": "server", - "type": "DlRemoteOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0xFFFF", - "reportable": 0, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "ManualOperationEventMask", - "code": 67, - "mfgCode": null, - "side": "server", - "type": "DlManualOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0xFFFF", - "reportable": 0, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "RFIDOperationEventMask", - "code": 68, - "mfgCode": null, - "side": "server", - "type": "DlRFIDOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0xFFFF", - "reportable": 0, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "KeypadProgrammingEventMask", - "code": 69, - "mfgCode": null, - "side": "server", - "type": "DlKeypadOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0xFFFF", - "reportable": 0, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "RemoteProgrammingEventMask", - "code": 70, - "mfgCode": null, - "side": "server", - "type": "DlRemoteProgrammingEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0xFFFF", - "reportable": 0, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "RFIDProgrammingEventMask", - "code": 71, - "mfgCode": null, - "side": "server", - "type": "DlRFIDProgrammingEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0xFFFF", - "reportable": 0, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, { "name": "GeneratedCommandList", "code": 65528, @@ -8045,7 +7934,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x113", + "defaultValue": "0x133", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -8193,5 +8082,6 @@ "endpointVersion": 1, "deviceIdentifier": 10 } - ] + ], + "log": [] } \ No newline at end of file diff --git a/examples/lock-app/nrfconnect/main/AppTask.cpp b/examples/lock-app/nrfconnect/main/AppTask.cpp index 94d5c298913c2e..5917cfe34a8d95 100644 --- a/examples/lock-app/nrfconnect/main/AppTask.cpp +++ b/examples/lock-app/nrfconnect/main/AppTask.cpp @@ -22,6 +22,7 @@ #include "LEDWidget.h" #include "ThreadUtil.h" +#include #include #include #include @@ -41,8 +42,8 @@ #endif #include -#include -#include +#include +#include using namespace ::chip; using namespace ::chip::app; @@ -72,6 +73,8 @@ bool sIsThreadProvisioned = false; bool sIsThreadEnabled = false; bool sHaveBLEConnections = false; +chip::DeviceLayer::DeviceInfoProviderImpl gExampleDeviceInfoProvider; + } // namespace AppTask AppTask::sAppTask; @@ -145,10 +148,7 @@ CHIP_ERROR AppTask::Init() #ifdef CONFIG_MCUMGR_SMP_BT // Initialize DFU over SMP GetDFUOverSMP().Init(RequestSMPAdvertisingStart); -#ifndef CONFIG_CHIP_OTA_REQUESTOR - // When OTA Requestor is enabled, it is responsible for confirming new images. GetDFUOverSMP().ConfirmNewImage(); -#endif #endif // Initialize CHIP server @@ -157,9 +157,9 @@ CHIP_ERROR AppTask::Init() (void) initParams.InitializeStaticResourcesBeforeServerInit(); ReturnErrorOnFailure(chip::Server::GetInstance().Init(initParams)); -#if CONFIG_CHIP_OTA_REQUESTOR - InitBasicOTARequestor(); -#endif + + gExampleDeviceInfoProvider.SetStorageDelegate(&Server::GetInstance().GetPersistentStorage()); + chip::DeviceLayer::SetDeviceInfoProvider(&gExampleDeviceInfoProvider); ConfigurationMgr().LogDeviceConfig(); PrintOnboardingCodes(chip::RendezvousInformationFlags(chip::RendezvousInformationFlag::kBLE)); @@ -458,6 +458,14 @@ void AppTask::ChipEventHandler(const ChipDeviceEvent * event, intptr_t /* arg */ sIsThreadEnabled = ConnectivityMgr().IsThreadEnabled(); UpdateStatusLED(); break; + case DeviceEventType::kThreadConnectivityChange: +#if CONFIG_CHIP_OTA_REQUESTOR + if (event->ThreadConnectivityChange.Result == kConnectivity_Established) + { + InitBasicOTARequestor(); + } +#endif + break; default: break; } diff --git a/examples/lock-app/nrfconnect/main/include/BoltLockManager.h b/examples/lock-app/nrfconnect/main/include/BoltLockManager.h index feb320b4e70ae1..deeff6024de5a3 100644 --- a/examples/lock-app/nrfconnect/main/include/BoltLockManager.h +++ b/examples/lock-app/nrfconnect/main/include/BoltLockManager.h @@ -21,7 +21,7 @@ #include -#include +#include #include diff --git a/examples/lock-app/nrfconnect/main/include/CHIPProjectConfig.h b/examples/lock-app/nrfconnect/main/include/CHIPProjectConfig.h index 3a6d7ab9f27f28..bfa54151bad46d 100644 --- a/examples/lock-app/nrfconnect/main/include/CHIPProjectConfig.h +++ b/examples/lock-app/nrfconnect/main/include/CHIPProjectConfig.h @@ -31,4 +31,4 @@ #define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE 20202021 #define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR 0xF00 -#define CHIP_DEVICE_CONFIG_SED_IDLE_INTERVAL 2000_ms32 +#define CHIP_DEVICE_CONFIG_SED_IDLE_INTERVAL 20000_ms32 diff --git a/examples/lock-app/nrfconnect/main/main.cpp b/examples/lock-app/nrfconnect/main/main.cpp index 1867a549b5b005..a20f86082131a4 100644 --- a/examples/lock-app/nrfconnect/main/main.cpp +++ b/examples/lock-app/nrfconnect/main/main.cpp @@ -19,7 +19,7 @@ #include "AppTask.h" -#include +#include LOG_MODULE_REGISTER(app, CONFIG_MATTER_LOG_LEVEL); diff --git a/examples/lock-app/nxp/k32w/k32w0/main/AppTask.cpp b/examples/lock-app/nxp/k32w/k32w0/main/AppTask.cpp index 2572cdd35a2698..015784f6d6e8dd 100644 --- a/examples/lock-app/nxp/k32w/k32w0/main/AppTask.cpp +++ b/examples/lock-app/nxp/k32w/k32w0/main/AppTask.cpp @@ -28,6 +28,8 @@ #include #include +#include + #include #include #include @@ -162,12 +164,27 @@ CHIP_ERROR AppTask::Init() return err; } +void LockOpenThreadTask(void) +{ + chip::DeviceLayer::ThreadStackMgr().LockThreadStack(); +} + +void UnlockOpenThreadTask(void) +{ + chip::DeviceLayer::ThreadStackMgr().UnlockThreadStack(); +} + void AppTask::InitServer(intptr_t arg) { static chip::CommonCaseDeviceServerInitParams initParams; (void) initParams.InitializeStaticResourcesBeforeServerInit(); // Init ZCL Data Model and start server + chip::Inet::EndPointStateOpenThread::OpenThreadEndpointInitParam nativeParams; + nativeParams.lockCb = LockOpenThreadTask; + nativeParams.unlockCb = UnlockOpenThreadTask; + nativeParams.openThreadInstancePtr = chip::DeviceLayer::ThreadStackMgrImpl().OTInstance(); + initParams.endpointNativeParams = static_cast(&nativeParams); VerifyOrDie((chip::Server::GetInstance().Init(initParams)) == CHIP_NO_ERROR); } @@ -739,3 +756,5 @@ void AppTask::UpdateClusterStateInternal(intptr_t arg) ChipLogError(NotSpecified, "ERR: updating on/off %x", status); } } + +extern "C" void OTAIdleActivities(void) {} diff --git a/examples/lock-app/nxp/k32w/k32w0/main/include/app_config.h b/examples/lock-app/nxp/k32w/k32w0/main/include/app_config.h index 1d0ff5a16b17d2..cfed43e850c4bc 100644 --- a/examples/lock-app/nxp/k32w/k32w0/main/include/app_config.h +++ b/examples/lock-app/nxp/k32w/k32w0/main/include/app_config.h @@ -34,8 +34,8 @@ #define APP_BUTTON_PUSH 1 -#define LOCK_STATE_LED LED1 -#define SYSTEM_STATE_LED LED2 +#define LOCK_STATE_LED LED2 +#define SYSTEM_STATE_LED LED1 // Time it takes in ms for the simulated actuator to move from one // state to another. diff --git a/examples/lock-app/p6/BUILD.gn b/examples/lock-app/p6/BUILD.gn index fe3caebba8fc3e..f7eb7fb05fe233 100644 --- a/examples/lock-app/p6/BUILD.gn +++ b/examples/lock-app/p6/BUILD.gn @@ -17,6 +17,7 @@ import("//build_overrides/chip.gni") import("//build_overrides/p6.gni") import("${build_root}/config/defaults.gni") +import("${chip_root}/src/platform/device.gni") import("${p6_sdk_build_root}/p6_executable.gni") import("${p6_sdk_build_root}/p6_sdk.gni") @@ -31,8 +32,51 @@ declare_args() { # PIN code for PASE session establishment. setup_pin_code = 20202021 + + # Build update app + build_update_image = false } +config("p6_ota_config") { + ldflags = [ "-T/" + rebase_path( + "${chip_root}/third_party/p6/p6_sdk/ota/cy8c6xxa_cm4_dual_ota_int.ld", + "/", + "${p6_project_dir}") ] + + ldflags += [ "-Wl,--defsym,MCUBOOT_HEADER_SIZE=0x400,--defsym,MCUBOOT_BOOTLOADER_SIZE=0x18000,--defsym,CY_BOOT_PRIMARY_1_SIZE=0x1C0000" ] + + defines = [ + "P6_OTA", + "OTA_SUPPORT ", + "OTA_USE_EXTERNAL_FLASH", + "CY_BOOT_USE_EXTERNAL_FLASH", + "MCUBOOT_HEADER_SIZE=0x400", + "MCUBOOT_MAX_IMG_SECTORS=3584", + "CY_BOOT_SCRATCH_SIZE=0x00004000", + "MCUBOOT_BOOTLOADER_SIZE=0x00018000", + "CY_BOOT_BOOTLOADER_SIZE=0x00018000", + "CY_BOOT_PRIMARY_1_START=0x00018000", + "CY_BOOT_PRIMARY_1_SIZE=0x1C0000", + "CY_BOOT_SECONDARY_1_START=0x00000000", + "CY_BOOT_SECONDARY_1_SIZE=0x001C0000", + "CY_FLASH_ERASE_VALUE=0xFF", + "MCUBOOT_IMAGE_NUMBER=1", + "MCUBOOT_SLOT_SIZE=0x1C0000", + "MCUBOOT_SCRATCH_SIZE=0x4000", + "MCUBOOT_SECTOR_SIZE = 512", + "APP_VERSION_MAJOR=1", + "APP_VERSION_MINOR=0", + "APP_VERSION_BUILD=0", + "MCUBOOT_OVERWRITE_ONLY", + "CY_ENABLE_XIP_PROGRAM", + ] + + if (build_update_image) { + defines += [ "CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION=2" ] + } else { + defines += [ "CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION=1" ] + } +} p6_sdk_sources("lock_app_sdk_sources") { include_dirs = [ "${chip_root}/src/platform/P6", @@ -49,6 +93,27 @@ p6_sdk_sources("lock_app_sdk_sources") { sources = [ "${p6_project_dir}/include/CHIPProjectConfig.h" ] public_configs = [ "${chip_root}/third_party/p6:p6_sdk_config" ] + + if (chip_enable_ota_requestor) { + sources += [ + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/bootutil/src/bootutil_misc.c", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/cy_flash_map.c", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/cy_flash_psoc6.c", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/cy_smif_psoc6.c", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/mem_config/mem_config_sfdp.c", + ] + include_dirs += [ + "${chip_root}/third_party/p6/p6_sdk/ota/config", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/mem_config/", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/include/", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/include/flash_map_backend/", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/sysflash/", + "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/bootutil/include", + ] + public_configs += [ ":p6_ota_config" ] + } } p6_executable("lock_app") { diff --git a/examples/lock-app/p6/README.md b/examples/lock-app/p6/README.md index acfa2bb2a37e74..36b1ed1a158ed4 100644 --- a/examples/lock-app/p6/README.md +++ b/examples/lock-app/p6/README.md @@ -13,6 +13,7 @@ An example showing the use of Matter on the Infineon CY8CKIT-062S2-43012 board. - [Commissioning over BLE](#commissioning-over-ble) - [Notes](#notes) - [Cluster control](#cluster-control) + - [OTA Software Update](#ota-software-update)
@@ -134,3 +135,9 @@ commands. These power cycle the BlueTooth hardware and disable BR/EDR mode. Press `USER_BTN1` on the board to toggle between lock and unlock states. The Lock/Unlock status of door can be observed with 'LED9' on the board. This LED is configured with `LOCK_STATE_LED` in `include/AppConfig.h`. + +## OTA Software Update + +For the description of Software Update process with infineon P6 example +applications see +[Infineon P6 OTA Software Update](../../../docs/guides/infineon_p6_software_update.md) diff --git a/examples/lock-app/p6/include/AppTask.h b/examples/lock-app/p6/include/AppTask.h index 854d70efdb9744..3e50921a76cff2 100644 --- a/examples/lock-app/p6/include/AppTask.h +++ b/examples/lock-app/p6/include/AppTask.h @@ -50,6 +50,7 @@ class AppTask void ButtonEventHandler(uint8_t btnIdx, uint8_t btnAction); void UpdateClusterState(void); + void InitOTARequestor(); private: friend AppTask & GetAppTask(void); diff --git a/examples/lock-app/p6/ota_base_build.sh b/examples/lock-app/p6/ota_base_build.sh new file mode 100755 index 00000000000000..7ab6e27ec17fab --- /dev/null +++ b/examples/lock-app/p6/ota_base_build.sh @@ -0,0 +1,8 @@ +OUT_DIR=out/lock-app/ +ANYCLOUD_DIR=third_party/p6/p6_sdk/libs/anycloud-ota/ + +scripts/examples/gn_p6_example.sh examples/lock-app/p6 "$OUT_DIR" chip_enable_ota_requestor=true + +mv "$OUT_DIR"/chip-p6-lock-example.hex "$OUT_DIR"/chip-p6-lock-example.unsigned.hex + +./"$ANYCLOUD_DIR"/scripts/sign_script.bash "$OUT_DIR"/ chip-p6-lock-example python3 arm-none-eabi-objcopy "-O ihex" "" "$ANYCLOUD_DIR"/source/mcuboot/scripts/ imgtool_v1.7.0/imgtool.py create 0xFF 0x400 3584 1.0.0 0x00018000 0x001C0000 arm-none-eabi-objcopy "" diff --git a/examples/lock-app/p6/ota_update_build.sh b/examples/lock-app/p6/ota_update_build.sh new file mode 100755 index 00000000000000..ac5d674cd67115 --- /dev/null +++ b/examples/lock-app/p6/ota_update_build.sh @@ -0,0 +1,14 @@ +OUT_DIR=out/lock-app-ota +ANYCLOUD_DIR=third_party/p6/p6_sdk/libs/anycloud-ota/ + +./scripts/examples/gn_p6_example.sh examples/lock-app/p6 "$OUT_DIR" chip_enable_ota_requestor=true build_update_image=true + +mv "$OUT_DIR"/chip-p6-lock-example.hex "$OUT_DIR"/chip-p6-lock-example.unsigned.hex + +./"$ANYCLOUD_DIR"/scripts/sign_script.bash "$OUT_DIR"/ chip-p6-lock-example python3 arm-none-eabi-objcopy "-O ihex" "" "$ANYCLOUD_DIR"/source/mcuboot/scripts/ imgtool_v1.7.0/imgtool.py sign 0xFF 0x400 3584 1.0.0 0x00018000 0x001C0000 arm-none-eabi-objcopy "-k $ANYCLOUD_DIR/source/mcuboot/keys/cypress-test-ec-p256.pem" + +if [ -f "$OUT_DIR"/chip-p6-lock-example.ota ]; then + rm "$OUT_DIR"/chip-p6-lock-example.ota +fi + +src/app/ota_image_tool.py create -v 0xFFF1 -p 0x8000 -vn 2 -vs "2.0" -da sha256 "$OUT_DIR"/chip-p6-lock-example.bin "$OUT_DIR"/chip-p6-lock-example.ota diff --git a/examples/lock-app/p6/src/AppTask.cpp b/examples/lock-app/p6/src/AppTask.cpp index 3dbff0e7d47b03..fdd6052c39de59 100644 --- a/examples/lock-app/p6/src/AppTask.cpp +++ b/examples/lock-app/p6/src/AppTask.cpp @@ -40,6 +40,33 @@ #include #include +/* OTA related includes */ +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR +#include +#include +#include +#include +#include +extern "C" { +#include "cy_smif_psoc6.h" +} +using chip::BDXDownloader; +using chip::CharSpan; +using chip::DefaultOTARequestor; +using chip::FabricIndex; +using chip::GetRequestorInstance; +using chip::NodeId; +using chip::OTADownloader; +using chip::OTAImageProcessorImpl; +using chip::System::Layer; + +using namespace ::chip; +using namespace chip::TLV; +using namespace ::chip::Credentials; +using namespace ::chip::DeviceLayer; +using namespace ::chip::System; + +#endif #define FACTORY_RESET_TRIGGER_TIMEOUT 3000 #define FACTORY_RESET_CANCEL_WINDOW_TIMEOUT 3000 #define APP_TASK_STACK_SIZE (4096) @@ -63,6 +90,15 @@ bool sHaveBLEConnections = false; StackType_t appStack[APP_TASK_STACK_SIZE / sizeof(StackType_t)]; StaticTask_t appTaskStruct; + +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR +DefaultOTARequestor gRequestorCore; +DefaultOTARequestorStorage gRequestorStorage; +DefaultOTARequestorDriver gRequestorUser; +BDXDownloader gDownloader; +OTAImageProcessorImpl gImageProcessor; +#endif + } // namespace using namespace ::chip; @@ -92,6 +128,9 @@ static void InitServer(intptr_t context) // Initialize device attestation config SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider()); +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR + GetAppTask().InitOTARequestor(); +#endif } CHIP_ERROR AppTask::StartAppTask() @@ -111,7 +150,14 @@ CHIP_ERROR AppTask::StartAppTask() CHIP_ERROR AppTask::Init() { CHIP_ERROR err = CHIP_NO_ERROR; - +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR + int rc = boot_set_confirmed(); + if (rc != 0) + { + P6_LOG("boot_set_confirmed failed"); + appError(CHIP_ERROR_WELL_UNINITIALIZED); + } +#endif // Register the callback to init the MDNS server when connectivity is available PlatformMgr().AddEventHandler( [](const ChipDeviceEvent * event, intptr_t arg) { @@ -524,3 +570,39 @@ void vApplicationStackOverflowHook(TaskHandle_t pxTask, char * pcTaskName) function is called if a stack overflow is detected. */ printf("ERROR: stack overflow with task %s\r\n", pcTaskName); } + +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR +void AppTask::InitOTARequestor() +{ + CHIP_ERROR err = CHIP_NO_ERROR; + SetRequestorInstance(&gRequestorCore); + gRequestorStorage.Init(chip::Server::GetInstance().GetPersistentStorage()); + gRequestorCore.Init(chip::Server::GetInstance(), gRequestorStorage, gRequestorUser, gDownloader); + gImageProcessor.SetOTADownloader(&gDownloader); + gDownloader.SetImageProcessorDelegate(&gImageProcessor); + gRequestorUser.Init(&gRequestorCore, &gImageProcessor); + + uint32_t savedSoftwareVersion; + err = ConfigurationMgr().GetSoftwareVersion(savedSoftwareVersion); + if (err != CHIP_NO_ERROR) + { + P6_LOG("Can't get saved software version"); + appError(err); + } + + if (savedSoftwareVersion != CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION) + { + ConfigurationMgr().StoreSoftwareVersion(CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION); + + P6_LOG("Confirming update to version: %u", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION); + chip::OTARequestorInterface * requestor = chip::GetRequestorInstance(); + if (requestor != nullptr) + { + requestor->NotifyUpdateApplied(); + } + } + + P6_LOG("Current Software Version: %u", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION); + P6_LOG("Current Software Version String: %s", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING); +} +#endif diff --git a/examples/lock-app/p6/src/main.cpp b/examples/lock-app/p6/src/main.cpp index 9c213eeb8137fa..6b4e07c16b30c2 100644 --- a/examples/lock-app/p6/src/main.cpp +++ b/examples/lock-app/p6/src/main.cpp @@ -34,6 +34,7 @@ #include #include "AppConfig.h" +#include "cyhal_wdt.h" #include "init_p6Platform.h" #include @@ -95,7 +96,14 @@ static void main_task(void * pvParameters) P6_LOG("PlatformMgr().InitChipStack() failed"); appError(ret); } - chip::DeviceLayer::ConnectivityMgr().SetBLEDeviceName("P6_LOCK"); + + ret = chip::DeviceLayer::ConnectivityMgr().SetBLEDeviceName("P6_LOCK"); + if (ret != CHIP_NO_ERROR) + { + P6_LOG("ConnectivityMgr().SetBLEDeviceName() failed"); + appError(ret); + } + P6_LOG("Starting Platform Manager Event Loop"); ret = PlatformMgr().StartEventLoopTask(); if (ret != CHIP_NO_ERROR) @@ -120,6 +128,12 @@ static void main_task(void * pvParameters) int main(void) { init_p6Platform(); +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR + // Clear watchdog timer (started by bootloader) so that it doesn't trigger a reset + cyhal_wdt_t wdt_obj; + cyhal_wdt_init(&wdt_obj, cyhal_wdt_get_max_timeout_ms()); + cyhal_wdt_free(&wdt_obj); +#endif P6_LOG("==================================================\r\n"); P6_LOG("chip-p6-lock-example starting\r\n"); diff --git a/examples/log-source-app/log-source-common/log-source-app.matter b/examples/log-source-app/log-source-common/log-source-app.matter index 41e3b2295736da..27160f8d1f08c7 100644 --- a/examples/log-source-app/log-source-common/log-source-app.matter +++ b/examples/log-source-app/log-source-common/log-source-app.matter @@ -315,6 +315,7 @@ server cluster OperationalCredentials = 62 { kInvalidNOC = 3; kMissingCsr = 4; kTableFull = 5; + kInvalidAdminSubject = 6; kInsufficientPrivilege = 8; kFabricConflict = 9; kLabelConflict = 10; @@ -347,13 +348,14 @@ server cluster OperationalCredentials = 62 { request struct CSRRequestRequest { OCTET_STRING CSRNonce = 0; + optional boolean isForUpdateNOC = 1; } request struct AddNOCRequest { OCTET_STRING NOCValue = 0; optional OCTET_STRING ICACValue = 1; OCTET_STRING IPKValue = 2; - NODE_ID caseAdminNode = 3; + Int64u caseAdminSubject = 3; VENDOR_ID adminVendorId = 4; } @@ -398,7 +400,6 @@ server cluster OperationalCredentials = 62 { command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; } - endpoint 0 { binding cluster DiagnosticLogs; diff --git a/examples/log-source-app/log-source-common/log-source-app.zap b/examples/log-source-app/log-source-common/log-source-app.zap index 73399a75a46d32..4da01a3120774b 100644 --- a/examples/log-source-app/log-source-common/log-source-app.zap +++ b/examples/log-source-app/log-source-common/log-source-app.zap @@ -1899,46 +1899,6 @@ "incoming": 1, "outgoing": 1 }, - { - "name": "GetLogRecord", - "code": 4, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "SetPINCode", - "code": 5, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "GetPINCode", - "code": 6, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "ClearPINCode", - "code": 7, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "ClearAllPINCodes", - "code": 8, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, { "name": "SetWeekDaySchedule", "code": 11, @@ -2010,54 +1970,6 @@ "source": "client", "incoming": 1, "outgoing": 1 - }, - { - "name": "SetUserType", - "code": 20, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "GetUserType", - "code": 21, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "SetRFIDCode", - "code": 22, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "GetRFIDCode", - "code": 23, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "ClearRFIDCode", - "code": 24, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "ClearAllRFIDCodes", - "code": 25, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 } ], "attributes": [ @@ -2152,22 +2064,6 @@ "maxInterval": 65344, "reportableChange": 0 }, - { - "name": "EnableLogging", - "code": 32, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x00", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, { "name": "Language", "code": 33, @@ -2392,134 +2288,6 @@ "maxInterval": 65344, "reportableChange": 0 }, - { - "name": "AlarmMask", - "code": 64, - "mfgCode": null, - "side": "server", - "type": "DlAlarmMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "KeypadOperationEventMask", - "code": 65, - "mfgCode": null, - "side": "server", - "type": "DlKeypadOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RemoteOperationEventMask", - "code": 66, - "mfgCode": null, - "side": "server", - "type": "DlRemoteOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "ManualOperationEventMask", - "code": 67, - "mfgCode": null, - "side": "server", - "type": "DlManualOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RFIDOperationEventMask", - "code": 68, - "mfgCode": null, - "side": "server", - "type": "DlRFIDOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "KeypadProgrammingEventMask", - "code": 69, - "mfgCode": null, - "side": "server", - "type": "DlKeypadOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RemoteProgrammingEventMask", - "code": 70, - "mfgCode": null, - "side": "server", - "type": "DlRemoteProgrammingEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RFIDProgrammingEventMask", - "code": 71, - "mfgCode": null, - "side": "server", - "type": "DlRFIDProgrammingEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, { "name": "ClusterRevision", "code": 65533, diff --git a/examples/ota-provider-app/ota-provider-common/OTAProviderExample.cpp b/examples/ota-provider-app/ota-provider-common/OTAProviderExample.cpp index 2e7b9f35470834..28658b9578c28b 100644 --- a/examples/ota-provider-app/ota-provider-common/OTAProviderExample.cpp +++ b/examples/ota-provider-app/ota-provider-common/OTAProviderExample.cpp @@ -296,9 +296,14 @@ void OTAProviderExample::SendQueryImageResponse(app::CommandHandler * commandObj } } + // Delay action time is only applicable when the provider is busy + if (mQueryImageStatus == OTAQueryStatus::kBusy) + { + response.delayedActionTime.Emplace(mDelayedQueryActionTimeSec); + } + // Set remaining fields common to all status types response.status = mQueryImageStatus; - response.delayedActionTime.Emplace(mDelayedQueryActionTimeSec); if (mUserConsentNeeded && requestorCanConsent) { response.userConsentNeeded.Emplace(true); diff --git a/examples/ota-provider-app/ota-provider-common/ota-provider-app.matter b/examples/ota-provider-app/ota-provider-common/ota-provider-app.matter index 848319ce2e7725..aafc6c5134704b 100644 --- a/examples/ota-provider-app/ota-provider-common/ota-provider-app.matter +++ b/examples/ota-provider-app/ota-provider-common/ota-provider-app.matter @@ -138,6 +138,42 @@ server cluster AccessControl = 31 { readonly attribute int16u clusterRevision = 65533; } +server cluster AdministratorCommissioning = 60 { + enum CommissioningWindowStatus : ENUM8 { + kWindowNotOpen = 0; + kEnhancedWindowOpen = 1; + kBasicWindowOpen = 2; + } + + enum StatusCode : ENUM8 { + kBusy = 1; + kPAKEParameterError = 2; + kWindowNotOpen = 3; + } + + readonly attribute int8u windowStatus = 0; + readonly attribute fabric_idx adminFabricIndex = 1; + readonly attribute int16u adminVendorId = 2; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct OpenCommissioningWindowRequest { + INT16U commissioningTimeout = 0; + OCTET_STRING PAKEVerifier = 1; + INT16U discriminator = 2; + INT32U iterations = 3; + OCTET_STRING salt = 4; + } + + request struct OpenBasicCommissioningWindowRequest { + INT16U commissioningTimeout = 0; + } + + timed command access(invoke: administer) OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; + timed command access(invoke: administer) OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; + timed command access(invoke: administer) RevokeCommissioning(): DefaultSuccess = 2; +} + server cluster Basic = 40 { struct CapabilityMinimaStruct { int16u caseSessionsPerFabric = 0; @@ -246,6 +282,173 @@ server cluster GeneralCommissioning = 48 { command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4; } +server cluster GeneralDiagnostics = 51 { + enum BootReasonType : ENUM8 { + kUnspecified = 0; + kPowerOnReboot = 1; + kBrownOutReset = 2; + kSoftwareWatchdogReset = 3; + kHardwareWatchdogReset = 4; + kSoftwareUpdateCompleted = 5; + kSoftwareReset = 6; + } + + enum HardwareFaultType : ENUM8 { + kUnspecified = 0; + kRadio = 1; + kSensor = 2; + kResettableOverTemp = 3; + kNonResettableOverTemp = 4; + kPowerSource = 5; + kVisualDisplayFault = 6; + kAudioOutputFault = 7; + kUserInterfaceFault = 8; + kNonVolatileMemoryError = 9; + kTamperDetected = 10; + } + + enum InterfaceType : ENUM8 { + kUnspecified = 0; + kWiFi = 1; + kEthernet = 2; + kCellular = 3; + kThread = 4; + } + + enum NetworkFaultType : ENUM8 { + kUnspecified = 0; + kHardwareFailure = 1; + kNetworkJammed = 2; + kConnectionFailed = 3; + } + + enum RadioFaultType : ENUM8 { + kUnspecified = 0; + kWiFiFault = 1; + kCellularFault = 2; + kThreadFault = 3; + kNFCFault = 4; + kBLEFault = 5; + kEthernetFault = 6; + } + + struct NetworkInterfaceType { + char_string<32> name = 0; + boolean isOperational = 1; + nullable boolean offPremiseServicesReachableIPv4 = 2; + nullable boolean offPremiseServicesReachableIPv6 = 3; + octet_string<8> hardwareAddress = 4; + octet_string IPv4Addresses[] = 5; + octet_string IPv6Addresses[] = 6; + InterfaceType type = 7; + } + + critical event HardwareFaultChange = 0 { + HardwareFaultType current[] = 0; + HardwareFaultType previous[] = 1; + } + + critical event RadioFaultChange = 1 { + RadioFaultType current[] = 0; + RadioFaultType previous[] = 1; + } + + critical event NetworkFaultChange = 2 { + NetworkFaultType current[] = 0; + NetworkFaultType previous[] = 1; + } + + critical event BootReason = 3 { + BootReasonType bootReason = 0; + } + + readonly attribute NetworkInterfaceType networkInterfaces[] = 0; + readonly attribute int16u rebootCount = 1; + readonly attribute int64u upTime = 2; + readonly attribute int32u totalOperationalHours = 3; + readonly attribute enum8 bootReasons = 4; + readonly attribute ENUM8 activeHardwareFaults[] = 5; + readonly attribute ENUM8 activeRadioFaults[] = 6; + readonly attribute ENUM8 activeNetworkFaults[] = 7; + readonly attribute boolean testEventTriggersEnabled = 8; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct TestEventTriggerRequest { + OCTET_STRING enableKey = 0; + INT64U eventTrigger = 1; + } + + command TestEventTrigger(TestEventTriggerRequest): DefaultSuccess = 0; +} + +server cluster GroupKeyManagement = 63 { + enum GroupKeySecurityPolicy : ENUM8 { + kTrustFirst = 0; + kCacheAndSync = 1; + } + + struct GroupKeyMapStruct { + group_id groupId = 1; + int16u groupKeySetID = 2; + fabric_idx fabricIndex = 254; + } + + struct GroupInfoMapStruct { + group_id groupId = 1; + endpoint_no endpoints[] = 2; + optional char_string<16> groupName = 3; + fabric_idx fabricIndex = 254; + } + + struct GroupKeySetStruct { + int16u groupKeySetID = 0; + GroupKeySecurityPolicy groupKeySecurityPolicy = 1; + nullable octet_string<16> epochKey0 = 2; + nullable epoch_us epochStartTime0 = 3; + nullable octet_string<16> epochKey1 = 4; + nullable epoch_us epochStartTime1 = 5; + nullable octet_string<16> epochKey2 = 6; + nullable epoch_us epochStartTime2 = 7; + } + + attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; + readonly attribute GroupInfoMapStruct groupTable[] = 1; + readonly attribute int16u maxGroupsPerFabric = 2; + readonly attribute int16u maxGroupKeysPerFabric = 3; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct KeySetWriteRequest { + GroupKeySetStruct groupKeySet = 0; + } + + request struct KeySetReadRequest { + INT16U groupKeySetID = 0; + } + + request struct KeySetRemoveRequest { + INT16U groupKeySetID = 0; + } + + request struct KeySetReadAllIndicesRequest { + INT16U groupKeySetIDs[] = 0; + } + + response struct KeySetReadResponse = 2 { + GroupKeySetStruct groupKeySet = 0; + } + + response struct KeySetReadAllIndicesResponse = 5 { + INT16U groupKeySetIDs[] = 0; + } + + command access(invoke: administer) KeySetWrite(KeySetWriteRequest): DefaultSuccess = 0; + command access(invoke: administer) KeySetRead(KeySetReadRequest): KeySetReadResponse = 1; + command access(invoke: administer) KeySetRemove(KeySetRemoveRequest): DefaultSuccess = 3; + command access(invoke: administer) KeySetReadAllIndices(KeySetReadAllIndicesRequest): KeySetReadAllIndicesResponse = 4; +} + server cluster LocalizationConfiguration = 43 { attribute char_string<35> activeLocale = 0; readonly attribute CHAR_STRING supportedLocales[] = 1; @@ -461,6 +664,7 @@ server cluster OperationalCredentials = 62 { kInvalidNOC = 3; kMissingCsr = 4; kTableFull = 5; + kInvalidAdminSubject = 6; kInsufficientPrivilege = 8; kFabricConflict = 9; kLabelConflict = 10; @@ -501,16 +705,22 @@ server cluster OperationalCredentials = 62 { request struct CSRRequestRequest { OCTET_STRING CSRNonce = 0; + optional boolean isForUpdateNOC = 1; } request struct AddNOCRequest { OCTET_STRING NOCValue = 0; optional OCTET_STRING ICACValue = 1; OCTET_STRING IPKValue = 2; - NODE_ID caseAdminNode = 3; + Int64u caseAdminSubject = 3; VENDOR_ID adminVendorId = 4; } + request struct UpdateNOCRequest { + OCTET_STRING NOCValue = 0; + optional OCTET_STRING ICACValue = 1; + } + request struct UpdateFabricLabelRequest { CHAR_STRING label = 0; } @@ -547,6 +757,7 @@ server cluster OperationalCredentials = 62 { command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4; command access(invoke: administer) AddNOC(AddNOCRequest): NOCResponse = 6; + command access(invoke: administer) UpdateNOC(UpdateNOCRequest): NOCResponse = 7; command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; @@ -586,8 +797,8 @@ server cluster UserLabel = 65 { readonly attribute int16u clusterRevision = 65533; } - endpoint 0 { + device type rootdevice = 22; binding cluster AccessControl; server cluster AccessControl { @@ -669,6 +880,28 @@ endpoint 0 { ram attribute clusterRevision default = 1; } + server cluster GeneralDiagnostics { + callback attribute networkInterfaces; + callback attribute rebootCount; + callback attribute upTime; + callback attribute totalOperationalHours; + callback attribute bootReasons; + callback attribute activeHardwareFaults; + callback attribute activeRadioFaults; + callback attribute activeNetworkFaults; + callback attribute testEventTriggersEnabled; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster AdministratorCommissioning { + callback attribute windowStatus; + callback attribute adminFabricIndex; + callback attribute adminVendorId; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + server cluster OperationalCredentials { callback attribute NOCs; callback attribute fabrics; @@ -680,6 +913,15 @@ endpoint 0 { ram attribute clusterRevision default = 1; } + server cluster GroupKeyManagement { + callback attribute groupKeyMap; + callback attribute groupTable; + callback attribute maxGroupsPerFabric; + callback attribute maxGroupKeysPerFabric; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + server cluster FixedLabel { callback attribute labelList; ram attribute featureMap; diff --git a/examples/ota-provider-app/ota-provider-common/ota-provider-app.zap b/examples/ota-provider-app/ota-provider-common/ota-provider-app.zap index ad244aaa64ecd0..d84c220ba91135 100644 --- a/examples/ota-provider-app/ota-provider-common/ota-provider-app.zap +++ b/examples/ota-provider-app/ota-provider-common/ota-provider-app.zap @@ -267,6 +267,539 @@ } ] }, + { + "name": "Group Key Management", + "code": 63, + "mfgCode": null, + "define": "GROUP_KEY_MANAGEMENT_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "KeySetWrite", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "KeySetRead", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "KeySetRemove", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "KeySetReadAllIndices", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Group Key Management", + "code": 63, + "mfgCode": null, + "define": "GROUP_KEY_MANAGEMENT_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "KeySetReadResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "KeySetReadAllIndicesResponse", + "code": 5, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "GroupKeyMap", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "GroupTable", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MaxGroupsPerFabric", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxGroupKeysPerFabric", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "General Diagnostics", + "code": 51, + "mfgCode": null, + "define": "GENERAL_DIAGNOSTICS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "General Diagnostics", + "code": 51, + "mfgCode": null, + "define": "GENERAL_DIAGNOSTICS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "TestEventTrigger", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "NetworkInterfaces", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RebootCount", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "UpTime", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "TotalOperationalHours", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BootReasons", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ActiveHardwareFaults", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ActiveRadioFaults", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ActiveNetworkFaults", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "TestEventTriggersEnabled", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "false", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "AdministratorCommissioning", + "code": 60, + "mfgCode": null, + "define": "ADMINISTRATOR_COMMISSIONING_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "OpenCommissioningWindow", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "OpenBasicCommissioningWindow", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RevokeCommissioning", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [] + }, + { + "name": "AdministratorCommissioning", + "code": 60, + "mfgCode": null, + "define": "ADMINISTRATOR_COMMISSIONING_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "WindowStatus", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AdminFabricIndex", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "fabric_idx", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AdminVendorId", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, { "name": "Scenes", "code": 5, @@ -2226,6 +2759,14 @@ "incoming": 1, "outgoing": 1 }, + { + "name": "UpdateNOC", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, { "name": "UpdateFabricLabel", "code": 9, @@ -2612,46 +3153,6 @@ "incoming": 1, "outgoing": 1 }, - { - "name": "GetLogRecord", - "code": 4, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "SetPINCode", - "code": 5, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "GetPINCode", - "code": 6, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "ClearPINCode", - "code": 7, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "ClearAllPINCodes", - "code": 8, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, { "name": "SetWeekDaySchedule", "code": 11, @@ -2723,54 +3224,6 @@ "source": "client", "incoming": 1, "outgoing": 1 - }, - { - "name": "SetUserType", - "code": 20, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "GetUserType", - "code": 21, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "SetRFIDCode", - "code": 22, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "GetRFIDCode", - "code": 23, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "ClearRFIDCode", - "code": 24, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "ClearAllRFIDCodes", - "code": 25, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 } ], "attributes": [ @@ -2865,22 +3318,6 @@ "maxInterval": 65344, "reportableChange": 0 }, - { - "name": "EnableLogging", - "code": 32, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x00", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, { "name": "Language", "code": 33, @@ -3105,134 +3542,6 @@ "maxInterval": 65344, "reportableChange": 0 }, - { - "name": "AlarmMask", - "code": 64, - "mfgCode": null, - "side": "server", - "type": "DlAlarmMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "KeypadOperationEventMask", - "code": 65, - "mfgCode": null, - "side": "server", - "type": "DlKeypadOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RemoteOperationEventMask", - "code": 66, - "mfgCode": null, - "side": "server", - "type": "DlRemoteOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "ManualOperationEventMask", - "code": 67, - "mfgCode": null, - "side": "server", - "type": "DlManualOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RFIDOperationEventMask", - "code": 68, - "mfgCode": null, - "side": "server", - "type": "DlRFIDOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "KeypadProgrammingEventMask", - "code": 69, - "mfgCode": null, - "side": "server", - "type": "DlKeypadOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RemoteProgrammingEventMask", - "code": 70, - "mfgCode": null, - "side": "server", - "type": "DlRemoteProgrammingEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RFIDProgrammingEventMask", - "code": 71, - "mfgCode": null, - "side": "server", - "type": "DlRFIDProgrammingEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, { "name": "ClusterRevision", "code": 65533, @@ -4629,4 +4938,4 @@ "deviceIdentifier": 22 } ] -} \ No newline at end of file +} diff --git a/examples/ota-requestor-app/ameba/chip_main.cmake b/examples/ota-requestor-app/ameba/chip_main.cmake index bebe861e8f8809..885eaa13f8ddca 100644 --- a/examples/ota-requestor-app/ameba/chip_main.cmake +++ b/examples/ota-requestor-app/ameba/chip_main.cmake @@ -27,6 +27,9 @@ list( ${chip_dir}/src/app/clusters/ota-requestor/DefaultOTARequestorDriver.cpp ${chip_dir}/src/app/clusters/ota-requestor/DefaultOTARequestorStorage.cpp ${chip_dir}/src/app/clusters/ota-requestor/ota-requestor-server.cpp + ${chip_dir}/examples/platform/ameba/ota/OTAInitializer.cpp + + ${chip_dir}/examples/providers/DeviceInfoProviderImpl.cpp ) add_library( @@ -58,10 +61,10 @@ target_include_directories( ${chip_dir}/src/controller/data_model ${chip_dir}/third_party/nlio/repo/include/ ${chip_dir}/third_party/nlunit-test/repo/src - ${chip_dir}/src/app/clusters/ota-requestor ${chip_dir}/examples/ota-requestor-app/ameba/main/include - + ${chip_dir}/examples/platform/ameba + ${chip_dir}/examples/providers ${sdk_root}/component/soc/realtek/amebad/fwlib/include ) diff --git a/examples/ota-requestor-app/ameba/main/DeviceCallbacks.cpp b/examples/ota-requestor-app/ameba/main/DeviceCallbacks.cpp index 8f18f730999cde..2db5f21cee2c85 100644 --- a/examples/ota-requestor-app/ameba/main/DeviceCallbacks.cpp +++ b/examples/ota-requestor-app/ameba/main/DeviceCallbacks.cpp @@ -36,6 +36,9 @@ #include #include #include +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR +#include +#endif #include "Globals.h" #include "LEDWidget.h" @@ -50,7 +53,15 @@ using namespace ::chip::DeviceManager; using namespace ::chip::Logging; uint32_t identifyTimerCount; -constexpr uint32_t kIdentifyTimerDelayMS = 250; +constexpr uint32_t kIdentifyTimerDelayMS = 250; +constexpr uint32_t kInitOTARequestorDelaySec = 3; + +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR +void InitOTARequestorHandler(System::Layer * systemLayer, void * appState) +{ + OTAInitializer::Instance().InitOTARequestor(); +} +#endif void DeviceCallbacks::DeviceEventCallback(const ChipDeviceEvent * event, intptr_t arg) { @@ -97,6 +108,9 @@ void DeviceCallbacks::PostAttributeChangeCallback(EndpointId endpointId, Cluster void DeviceCallbacks::OnInternetConnectivityChange(const ChipDeviceEvent * event) { +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR + static bool isOTAInitialized = false; +#endif if (event->InternetConnectivityChange.IPv4 == kConnectivity_Established) { ChipLogProgress(DeviceLayer, "IPv4 Server ready..."); @@ -110,6 +124,15 @@ void DeviceCallbacks::OnInternetConnectivityChange(const ChipDeviceEvent * event { ChipLogProgress(DeviceLayer, "IPv6 Server ready..."); chip::app::DnssdServer::Instance().StartServer(); +#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR + // Init OTA requestor only when we have gotten IPv6 address + if (!isOTAInitialized) + { + chip::DeviceLayer::SystemLayer().StartTimer(chip::System::Clock::Seconds32(kInitOTARequestorDelaySec), + InitOTARequestorHandler, nullptr); + isOTAInitialized = true; + } +#endif } else if (event->InternetConnectivityChange.IPv6 == kConnectivity_Lost) { diff --git a/examples/ota-requestor-app/ameba/main/chipinterface.cpp b/examples/ota-requestor-app/ameba/main/chipinterface.cpp index 983a340a5ebaef..76517f6866c976 100644 --- a/examples/ota-requestor-app/ameba/main/chipinterface.cpp +++ b/examples/ota-requestor-app/ameba/main/chipinterface.cpp @@ -20,6 +20,7 @@ #include "CHIPDeviceManager.h" #include "DeviceCallbacks.h" #include "chip_porting.h" +#include #include #include @@ -33,27 +34,14 @@ #include #include -#include -#include -#include -#include -#include -#include -#include - void * __dso_handle = 0; -using chip::AmebaOTAImageProcessor; -using chip::BDXDownloader; using chip::ByteSpan; -using chip::DefaultOTARequestor; using chip::EndpointId; using chip::FabricIndex; -using chip::GetRequestorInstance; using chip::NodeId; using chip::OnDeviceConnected; using chip::OnDeviceConnectionFailure; -using chip::OTADownloader; using chip::PeerId; using chip::Server; using chip::VendorId; @@ -86,51 +74,7 @@ void NetWorkCommissioningInstInit() } static DeviceCallbacks EchoCallbacks; - -DefaultOTARequestor gRequestorCore; -DefaultOTARequestorStorage gRequestorStorage; -ExtendedOTARequestorDriver gRequestorUser; -BDXDownloader gDownloader; -AmebaOTAImageProcessor gImageProcessor; -chip::ota::DefaultOTARequestorUserConsent gUserConsentProvider; -static chip::ota::UserConsentState gUserConsentState = chip::ota::UserConsentState::kGranted; - -extern "C" void amebaQueryImageCmdHandler() -{ - ChipLogProgress(DeviceLayer, "Calling amebaQueryImageCmdHandler"); - PlatformMgr().ScheduleWork([](intptr_t) { GetRequestorInstance()->TriggerImmediateQuery(); }); -} - -extern "C" void amebaApplyUpdateCmdHandler() -{ - ChipLogProgress(DeviceLayer, "Calling amebaApplyUpdateCmdHandler"); - PlatformMgr().ScheduleWork([](intptr_t) { GetRequestorInstance()->ApplyUpdate(); }); -} - -static void InitOTARequestor(void) -{ - // Initialize and interconnect the Requestor and Image Processor objects -- START - SetRequestorInstance(&gRequestorCore); - - gRequestorStorage.Init(chip::Server::GetInstance().GetPersistentStorage()); - - // Set server instance used for session establishment - gRequestorCore.Init(chip::Server::GetInstance(), gRequestorStorage, gRequestorUser, gDownloader); - - gImageProcessor.SetOTADownloader(&gDownloader); - - // Connect the Downloader and Image Processor objects - gDownloader.SetImageProcessorDelegate(&gImageProcessor); - gRequestorUser.Init(&gRequestorCore, &gImageProcessor); - - if (gUserConsentState != chip::ota::UserConsentState::kUnknown) - { - gUserConsentProvider.SetUserConsentState(gUserConsentState); - gRequestorUser.SetUserConsentDelegate(&gUserConsentProvider); - } - - // Initialize and interconnect the Requestor and Image Processor objects -- END -} +chip::DeviceLayer::DeviceInfoProviderImpl gExampleDeviceInfoProvider; static void InitServer(intptr_t context) { @@ -138,12 +82,12 @@ static void InitServer(intptr_t context) static chip::CommonCaseDeviceServerInitParams initParams; (void) initParams.InitializeStaticResourcesBeforeServerInit(); chip::Server::GetInstance().Init(initParams); + gExampleDeviceInfoProvider.SetStorageDelegate(&Server::GetInstance().GetPersistentStorage()); + chip::DeviceLayer::SetDeviceInfoProvider(&gExampleDeviceInfoProvider); // Initialize device attestation config SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider()); NetWorkCommissioningInstInit(); - - InitOTARequestor(); } extern "C" void ChipTest(void) diff --git a/examples/ota-requestor-app/cyw30739/BUILD.gn b/examples/ota-requestor-app/cyw30739/BUILD.gn index c4154a12aa32e0..b1ea6fde6aa876 100644 --- a/examples/ota-requestor-app/cyw30739/BUILD.gn +++ b/examples/ota-requestor-app/cyw30739/BUILD.gn @@ -20,6 +20,7 @@ import("${cyw30739_sdk_build_root}/cyw30739_executable.gni") import("${cyw30739_sdk_build_root}/cyw30739_sdk.gni") cyw30739_project_dir = "${chip_root}/examples/ota-requestor-app/cyw30739" +examples_plat_dir = "${chip_root}/examples/platform/cyw30739" declare_args() { setupPinCode = 20202021 @@ -29,7 +30,10 @@ declare_args() { cyw30739_sdk("sdk") { sources = [ "${cyw30739_project_dir}/include/CHIPProjectConfig.h" ] - include_dirs = [ "${cyw30739_project_dir}/include" ] + include_dirs = [ + "${cyw30739_project_dir}/include", + "${examples_plat_dir}", + ] defines = [ "CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE=${setupPinCode}", @@ -50,6 +54,13 @@ cyw30739_executable("ota_requestor_app") { ] include_dirs = [ "include" ] + + if (chip_enable_ota_requestor) { + sources += [ + "${examples_plat_dir}/OTAConfig.cpp", + "${examples_plat_dir}/OTAConfig.h", + ] + } } group("cyw30739") { diff --git a/examples/ota-requestor-app/cyw30739/args.gni b/examples/ota-requestor-app/cyw30739/args.gni index 28971944353082..8eda8fb616b4aa 100644 --- a/examples/ota-requestor-app/cyw30739/args.gni +++ b/examples/ota-requestor-app/cyw30739/args.gni @@ -19,8 +19,4 @@ cyw30739_sdk_target = get_label_info(":sdk", "label_no_toolchain") chip_openthread_ftd = true -# Disable progress logging to fit in flash -chip_progress_logging = false -chip_error_logging = false - chip_enable_ota_requestor = true diff --git a/examples/ota-requestor-app/cyw30739/src/main.cpp b/examples/ota-requestor-app/cyw30739/src/main.cpp index ca59a73f31cf7c..6dedd85ef62fe2 100644 --- a/examples/ota-requestor-app/cyw30739/src/main.cpp +++ b/examples/ota-requestor-app/cyw30739/src/main.cpp @@ -16,22 +16,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +#include + #include -#include -#include -#include -#include +#include #include #include #include #include #include -#include -#include #include #include #include -#include #include #include @@ -42,12 +38,6 @@ using namespace chip::Shell; static void InitApp(intptr_t args); -DefaultOTARequestor gRequestorCore; -DefaultOTARequestorStorage gRequestorStorage; -DeviceLayer::DefaultOTARequestorDriver gRequestorUser; -BDXDownloader gDownloader; -OTAImageProcessorImpl gImageProcessor; - APPLICATION_START() { CHIP_ERROR err; @@ -130,21 +120,5 @@ void InitApp(intptr_t args) SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider()); - // Initialize and interconnect the Requestor and Image Processor objects -- START - SetRequestorInstance(&gRequestorCore); - - gRequestorStorage.Init(chip::Server::GetInstance().GetPersistentStorage()); - gRequestorCore.Init(chip::Server::GetInstance(), gRequestorStorage, gRequestorUser, gDownloader); - gRequestorUser.Init(&gRequestorCore, &gImageProcessor); - - gImageProcessor.SetOTADownloader(&gDownloader); - - // Connect the Downloader and Image Processor objects - gDownloader.SetImageProcessorDelegate(&gImageProcessor); - // Initialize and interconnect the Requestor and Image Processor objects -- END - - if (!wiced_ota_fw_upgrade_init(NULL, NULL, NULL)) - { - ChipLogError(SoftwareUpdate, "wiced_ota_fw_upgrade_init"); - } + OTAConfig::Init(); } diff --git a/examples/ota-requestor-app/efr32/src/AppTask.cpp b/examples/ota-requestor-app/efr32/src/AppTask.cpp index 31f819f77e7540..6562e0bd43f0fe 100644 --- a/examples/ota-requestor-app/efr32/src/AppTask.cpp +++ b/examples/ota-requestor-app/efr32/src/AppTask.cpp @@ -171,7 +171,7 @@ CHIP_ERROR AppTask::Init() ConfigurationMgr().LogDeviceConfig(); // Print setup info on LCD if available -#ifdef DISPLAY_ENABLED +#ifdef QR_CODE_ENABLED // Create buffer for QR code that can fit max size and null terminator. char qrCodeBuffer[chip::QRCodeBasicSetupPayloadGenerator::kMaxQRCodeBase38RepresentationLength + 1]; chip::MutableCharSpan QRCode(qrCodeBuffer); @@ -186,7 +186,7 @@ CHIP_ERROR AppTask::Init() } #else PrintOnboardingCodes(chip::RendezvousInformationFlag(chip::RendezvousInformationFlag::kBLE)); -#endif +#endif // QR_CODE_ENABLED // Initialize OTA components InitOTARequestor(); diff --git a/examples/ota-requestor-app/esp32/CMakeLists.txt b/examples/ota-requestor-app/esp32/CMakeLists.txt index 7edf64a69941d5..6768daa80b1651 100644 --- a/examples/ota-requestor-app/esp32/CMakeLists.txt +++ b/examples/ota-requestor-app/esp32/CMakeLists.txt @@ -27,7 +27,8 @@ set(EXTRA_COMPONENT_DIRS ) project(chip-ota-requestor-app) -idf_build_set_property(CXX_COMPILE_OPTIONS "-std=gnu++14;-Os;-DLWIP_IPV6_SCOPES=0;-DCHIP_HAVE_CONFIG_H" APPEND) +# C++17 is required for RPC build. +idf_build_set_property(CXX_COMPILE_OPTIONS "-std=gnu++17;-Os;-DLWIP_IPV6_SCOPES=0;-DCHIP_HAVE_CONFIG_H" APPEND) idf_build_set_property(C_COMPILE_OPTIONS "-Os;-DLWIP_IPV6_SCOPES=0" APPEND) # For the C3, project_include.cmake sets -Wno-format, but does not clear various # flags that depend on -Wformat @@ -39,4 +40,24 @@ idf_build_set_property(COMPILE_OPTIONS "-Wno-format-nonliteral;-Wno-format-secur # See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80635 idf_build_set_property(COMPILE_OPTIONS "-Wno-error=maybe-uninitialized" APPEND) +if (CONFIG_ENABLE_PW_RPC) +get_filename_component(CHIP_ROOT ./third_party/connectedhomeip REALPATH) +include(third_party/connectedhomeip/third_party/pigweed/repo/pw_build/pigweed.cmake) + +pw_set_module_config(pw_rpc_CONFIG pw_rpc.disable_global_mutex_config) +pw_set_backend(pw_log pw_log_basic) +pw_set_backend(pw_assert pw_assert_log) +pw_set_backend(pw_sys_io pw_sys_io.esp32) + +add_subdirectory(third_party/connectedhomeip/third_party/pigweed/repo) +add_subdirectory(third_party/connectedhomeip/third_party/nanopb/repo) +add_subdirectory(third_party/connectedhomeip/examples/platform/esp32/pw_sys_io) + +get_target_property(_target_cxx_flags pw_build.cpp17 INTERFACE_COMPILE_OPTIONS) +list(REMOVE_ITEM _target_cxx_flags $<$:-std=c++17>) +list(APPEND _target_cxx_flags $<$:-std=gnu++17>) +set_target_properties(pw_build.cpp17 PROPERTIES INTERFACE_COMPILE_OPTIONS "${_target_cxx_flags}") +endif(CONFIG_ENABLE_PW_RPC) + + flashing_script() diff --git a/examples/ota-requestor-app/esp32/README.md b/examples/ota-requestor-app/esp32/README.md index 513c070578a088..7c093cb6967a4e 100644 --- a/examples/ota-requestor-app/esp32/README.md +++ b/examples/ota-requestor-app/esp32/README.md @@ -78,3 +78,30 @@ config options for setting software version. Matter OTA image can also be generated using [ota_image_tool.py](https://github.com/project-chip/connectedhomeip/blob/master/src/app/ota_image_tool.py) script. + +## Using the RPC console + +Enable RPCs in the build using menuconfig: + + $ idf.py menuconfig + +Enable the RPC library: + + Component config → CHIP Core → General Options → Enable Pigweed PRC library + +After flashing a build with RPCs enabled you can use the rpc console to send +commands to the device. + +Build or install the [rpc console](../../common/pigweed/rpc_console/README.md) + +- Start the console + +``` + chip-console --device /dev/ttyUSB0 +``` + +- From within the console you can then invoke rpcs: + +``` + rpcs.chip.rpc.Device.TriggerOta() +``` diff --git a/examples/ota-requestor-app/esp32/main/CMakeLists.txt b/examples/ota-requestor-app/esp32/main/CMakeLists.txt index a21d42949bef0d..bd2ac14dfcdd3c 100644 --- a/examples/ota-requestor-app/esp32/main/CMakeLists.txt +++ b/examples/ota-requestor-app/esp32/main/CMakeLists.txt @@ -16,12 +16,14 @@ # # # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) -idf_component_register(PRIV_INCLUDE_DIRS +set(PRIV_INCLUDE_DIRS_LIST "${CMAKE_CURRENT_LIST_DIR}/include" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/zzz_generated/ota-requestor-app/" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/platform/esp32" - SRC_DIRS +) + +set(SRC_DIRS_LIST "${CMAKE_CURRENT_LIST_DIR}" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/zzz_generated/ota-requestor-app/zap-generated" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/zzz_generated/app-common/app-common/zap-generated/attributes" @@ -53,10 +55,135 @@ idf_component_register(PRIV_INCLUDE_DIRS "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/platform/esp32/ota" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/platform/esp32/route_hook" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/platform/esp32/common" - PRIV_REQUIRES chip QRCode bt console app_update) +) + +set(PRIV_REQUIRES_LIST chip QRCode bt console app_update) + +if (CONFIG_ENABLE_PW_RPC) +# Append additional directories for RPC build +set(PRIV_INCLUDE_DIRS_LIST "${PRIV_INCLUDE_DIRS_LIST}" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/platform/esp32/pw_sys_io/public" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/common" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/common/pigweed" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/common/pigweed/esp32" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/lib/support" + "${IDF_PATH}/components/freertos/include/freertos" +) +set(SRC_DIRS_LIST "${SRC_DIRS_LIST}" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/platform/esp32" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/common/pigweed" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/examples/common/pigweed/esp32" +) +endif (CONFIG_ENABLE_PW_RPC) -set_property(TARGET ${COMPONENT_LIB} PROPERTY CXX_STANDARD 14) +idf_component_register(PRIV_INCLUDE_DIRS ${PRIV_INCLUDE_DIRS_LIST} + SRC_DIRS ${SRC_DIRS_LIST} + PRIV_REQUIRES ${PRIV_REQUIRES_LIST}) + +set_property(TARGET ${COMPONENT_LIB} PROPERTY CXX_STANDARD 17) target_compile_options(${COMPONENT_LIB} PRIVATE "-DLWIP_IPV6_SCOPES=0" "-DCHIP_HAVE_CONFIG_H") target_compile_options(${COMPONENT_LIB} PUBLIC "-DCHIP_ADDRESS_RESOLVE_IMPL_INCLUDE_HEADER=" ) + +if (CONFIG_ENABLE_PW_RPC) + +get_filename_component(CHIP_ROOT ${CMAKE_SOURCE_DIR}/third_party/connectedhomeip REALPATH) + +set(PIGWEED_ROOT "${CHIP_ROOT}/third_party/pigweed/repo") +include(${PIGWEED_ROOT}/pw_build/pigweed.cmake) +include(${PIGWEED_ROOT}/pw_protobuf_compiler/proto.cmake) +set(dir_pw_third_party_nanopb "${CHIP_ROOT}/third_party/nanopb/repo" CACHE STRING "" FORCE) + +pw_proto_library(attributes_service + SOURCES + ${CHIP_ROOT}/examples/common/pigweed/protos/attributes_service.proto + INPUTS + ${CHIP_ROOT}/examples/common/pigweed/protos/attributes_service.options + PREFIX + attributes_service + STRIP_PREFIX + ${CHIP_ROOT}/examples/common/pigweed/protos + DEPS + pw_protobuf.common_protos +) + +pw_proto_library(button_service + SOURCES + ${CHIP_ROOT}/examples/common/pigweed/protos/button_service.proto + PREFIX + button_service + STRIP_PREFIX + ${CHIP_ROOT}/examples/common/pigweed/protos + DEPS + pw_protobuf.common_protos +) + +pw_proto_library(descriptor_service + SOURCES + ${CHIP_ROOT}/examples/common/pigweed/protos/descriptor_service.proto + PREFIX + descriptor_service + STRIP_PREFIX + ${CHIP_ROOT}/examples/common/pigweed/protos + DEPS + pw_protobuf.common_protos +) + +pw_proto_library(device_service + SOURCES + ${CHIP_ROOT}/examples/common/pigweed/protos/device_service.proto + INPUTS + ${CHIP_ROOT}/examples/common/pigweed/protos/device_service.options + PREFIX + device_service + STRIP_PREFIX + ${CHIP_ROOT}/examples/common/pigweed/protos + DEPS + pw_protobuf.common_protos +) + +pw_proto_library(wifi_service + SOURCES + ${CHIP_ROOT}/examples/common/pigweed/protos/wifi_service.proto + INPUTS + ${CHIP_ROOT}/examples/common/pigweed/protos/wifi_service.options + PREFIX + wifi_service + DEPS + pw_protobuf.common_protos + STRIP_PREFIX + ${CHIP_ROOT}/examples/common/pigweed/protos +) + +target_link_libraries(${COMPONENT_LIB} PUBLIC + attributes_service.nanopb_rpc + button_service.nanopb_rpc + descriptor_service.nanopb_rpc + device_service.nanopb_rpc + wifi_service.nanopb_rpc + pw_checksum + pw_hdlc + pw_log + pw_rpc.server + pw_trace_tokenized + pw_trace_tokenized.trace_buffer + pw_trace_tokenized.rpc_service + pw_trace_tokenized.protos.nanopb_rpc +) + +target_link_options(${COMPONENT_LIB} + PUBLIC + "-T${PIGWEED_ROOT}/pw_tokenizer/pw_tokenizer_linker_sections.ld" +) + +target_compile_options(${COMPONENT_LIB} PRIVATE + "-DPW_RPC_ATTRIBUTE_SERVICE=1" + "-DPW_RPC_BUTTON_SERVICE=1" + "-DPW_RPC_DESCRIPTOR_SERVICE=1" + "-DPW_RPC_DEVICE_SERVICE=1" + "-DPW_RPC_TRACING_SERVICE=1" + "-DPW_RPC_WIFI_SERVICE=1" + "-DPW_TRACE_BACKEND_SET=1") + +endif (CONFIG_ENABLE_PW_RPC) diff --git a/examples/ota-requestor-app/esp32/main/Kconfig.projbuild b/examples/ota-requestor-app/esp32/main/Kconfig.projbuild index a563d7b2ae46ce..bd6973f4996cd2 100644 --- a/examples/ota-requestor-app/esp32/main/Kconfig.projbuild +++ b/examples/ota-requestor-app/esp32/main/Kconfig.projbuild @@ -45,3 +45,41 @@ menu "Demo" default 8 if RENDEZVOUS_MODE_ETHERNET endmenu + +menu "PW RPC Debug channel" +depends on ENABLE_PW_RPC + config EXAMPLE_UART_PORT_NUM + int "UART port number" + range 0 2 if IDF_TARGET_ESP32 + range 0 1 if IDF_TARGET_ESP32C3 + default 0 + help + UART communication port number for the example. + See UART documentation for available port numbers. + + config EXAMPLE_UART_BAUD_RATE + int "UART communication speed" + range 1200 115200 + default 115200 + help + UART communication speed for Modbus example. + + config EXAMPLE_UART_RXD + int "UART RXD pin number" + range 0 34 if IDF_TARGET_ESP32 + range 0 19 if IDF_TARGET_ESP32C3 + default 5 + help + GPIO number for UART RX pin. See UART documentation for more information + about available pin numbers for UART. + + config EXAMPLE_UART_TXD + int "UART TXD pin number" + range 0 34 if IDF_TARGET_ESP32 + range 0 19 if IDF_TARGET_ESP32C3 + default 4 + help + GPIO number for UART TX pin. See UART documentation for more information + about available pin numbers for UART. + +endmenu \ No newline at end of file diff --git a/examples/ota-requestor-app/esp32/main/main.cpp b/examples/ota-requestor-app/esp32/main/main.cpp index 4b04f6f499db23..26ccbcf25684ec 100644 --- a/examples/ota-requestor-app/esp32/main/main.cpp +++ b/examples/ota-requestor-app/esp32/main/main.cpp @@ -32,6 +32,12 @@ #include +#include "OTAImageProcessorImpl.h" + +#if CONFIG_ENABLE_PW_RPC +#include "Rpc.h" +#endif + using namespace ::chip; using namespace ::chip::System; using namespace ::chip::DeviceManager; @@ -49,6 +55,10 @@ static void InitServer(intptr_t context) extern "C" void app_main() { +#if CONFIG_ENABLE_PW_RPC + chip::rpc::Init(); +#endif + ESP_LOGI(TAG, "OTA Requester!"); /* Print chip information */ diff --git a/examples/ota-requestor-app/esp32/sdkconfig_rpc.defaults b/examples/ota-requestor-app/esp32/sdkconfig_rpc.defaults new file mode 100644 index 00000000000000..350613d6118874 --- /dev/null +++ b/examples/ota-requestor-app/esp32/sdkconfig_rpc.defaults @@ -0,0 +1,65 @@ +# +# Copyright (c) 2020 Project CHIP Authors +# Copyright (c) 2018 Nest Labs, Inc. +# All rights reserved. +# +# 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. +# +# Description: +# Some useful defaults for the demo app configuration. +# + + +# Default to 921600 baud when flashing and monitoring device +CONFIG_ESPTOOLPY_BAUD_921600B=y +CONFIG_ESPTOOLPY_BAUD=921600 +CONFIG_ESPTOOLPY_COMPRESSED=y +CONFIG_ESPTOOLPY_MONITOR_BAUD_115200B=y +CONFIG_ESPTOOLPY_MONITOR_BAUD=115200 + +#enable BT +CONFIG_BT_ENABLED=y +CONFIG_BT_NIMBLE_ENABLED=y + +#enable lwip ipv6 autoconfig +CONFIG_LWIP_IPV6_AUTOCONFIG=y + +# Use a custom partition table +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_PARTITION_TABLE_FILENAME="partitions.csv" + +# Add RTC memory to system heap +CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP=y + +# Product id +CONFIG_DEVICE_VENDOR_ID=0xFFF1 +CONFIG_DEVICE_PRODUCT_ID=0x8008 + +# Main task needs a bit more stack than the default +# default is 3584, bump this up to 4k. +CONFIG_ESP_MAIN_TASK_STACK_SIZE=4096 + +# Serial Flasher config +CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y +CONFIG_ESPTOOLPY_FLASHSIZE="4MB" + +# Enable OTA Requestor +CONFIG_ENABLE_OTA_REQUESTOR=y +CONFIG_DEVICE_SOFTWARE_VERSION_NUMBER=2 + +# PW RPC Debug channel +CONFIG_EXAMPLE_UART_PORT_NUM=0 +CONFIG_EXAMPLE_UART_BAUD_RATE=115200 +CONFIG_EXAMPLE_UART_RXD=3 +CONFIG_EXAMPLE_UART_TXD=1 +CONFIG_ENABLE_PW_RPC=y \ No newline at end of file diff --git a/examples/ota-requestor-app/linux/README.md b/examples/ota-requestor-app/linux/README.md index a306eb1e3899dd..f14d5fa7cdf094 100644 --- a/examples/ota-requestor-app/linux/README.md +++ b/examples/ota-requestor-app/linux/README.md @@ -212,7 +212,7 @@ scripts/examples/gn_build_example.sh examples/ota-provider-app/linux/ out chip_c **Run the OTA Provider application** ``` -out/chip-ota-provider-app --discriminator 22 --secured-device-port 5565 --KVS /tmp/chip_kvs_provider --filepath /tmp/test.bin +out/chip-ota-provider-app --discriminator 22 --secured-device-port 5565 --KVS /tmp/chip_kvs_provider --filepath /tmp/ota-image.bin ``` #### In terminal 2: @@ -270,7 +270,7 @@ scripts/examples/gn_build_example.sh examples/ota-provider-app/linux/ out chip_c **Run the OTA Provider application** ``` -out/chip-ota-provider-app --discriminator 22 --secured-device-port 5565 --KVS /tmp/chip_kvs_provider --filepath /tmp/test.bin +out/chip-ota-provider-app --discriminator 22 --secured-device-port 5565 --KVS /tmp/chip_kvs_provider --filepath /tmp/ota-image.bin ``` #### In terminal 2: @@ -304,7 +304,7 @@ out/chip-tool pairing onnetwork-long 0x1234567890 20202021 18 **Write to the DefaultOTAProviders attribute** ``` -out/chip-tool otasoftwareupdaterequestor write default-ota-providers '[{"fabricIndex": 1, "providerNodeID": 3735928559, "endpoint": 0}]' 0x0000001234567890 0 +out/chip-tool otasoftwareupdaterequestor write default-ota-providers '[{"providerNodeID": 3735928559, "endpoint": 0}]' 0x1234567890 0 ``` Every 60 seconds from when the OTA Requestor application has launched, the OTA @@ -319,48 +319,108 @@ structs. Each entry in this list is a default OTA Provider per fabric. There can not be more than one entry containing the same fabric. To add more than one entry to the `DefaultOTAProviders` attribute, the OTA -Requestor app must be commissioned on multiple fabrics. This can be done as -specified below: +Requestor app must be commissioned into multiple fabrics. At least one OTA +Provider app should be commissioned into each corresponding fabric that the OTA +Requestor app had been commissioned into. -**Build and run the OTA Requestor application** +The following example has two OTA Provider apps, each commissioned into a +different fabric (alpha and beta) and one OTA Requestor app commissioned into +both alpha and beta fabrics. + +### In terminal 1: + +**Build the OTA Provider application** + +``` +scripts/examples/gn_build_example.sh examples/ota-provider-app/linux/ out chip_config_network_layer_ble=false +``` + +**Run the first OTA Provider application** + +``` +out/chip-ota-provider-app --discriminator 22 --secured-device-port 5565 --KVS /tmp/chip_kvs_provider --filepath /tmp/ota-image.bin +``` + +### In terminal 2: + +**Run the second OTA Provider application** + +``` +out/chip-ota-provider-app --discriminator 23 --secured-device-port 5566 --KVS /tmp/chip_kvs_provider2 --filepath /tmp/ota-image2.bin +``` + +### In terminal 3: + +**Build the OTA Requestor application** ``` scripts/examples/gn_build_example.sh examples/ota-requestor-app/linux/ out chip_config_network_layer_ble=false -out/chip-ota-requestor-app --discriminator 18 --secured-device-port 5560 --KVS /tmp/chip_kvs_requestor --otaDownloadPath /tmp/test.bin ``` -**Commission to the first fabric** +**Run the OTA Requestor application** ``` -out/chip-tool pairing onnetwork-long 0x1234567890 20202021 18 +out/chip-ota-requestor-app --discriminator 18 --secured-device-port 5560 --KVS /tmp/chip_kvs_requestor --periodicQueryTimeout 10 ``` -**Open Basic Commissioning Window** +### In terminal 4: + +**Commission the first OTA Provider into the first fabric (alpha)** ``` -out/chip-tool administratorcommissioning open-basic-commissioning-window 600 0x1234567890 0 --timedInteractionTimeoutMs 600 +out/chip-tool pairing onnetwork-long 0xC0FFEE 20202021 22 ``` -**Commission to the second fabric** +**Commission the second OTA Provider into the second fabric (beta)** ``` -out/chip-tool pairing onnetwork-long 0x858 20202021 18 --commissioner-name beta +out/chip-tool pairing onnetwork-long 0xB0BA 20202021 23 --commissioner-name beta ``` -For all operations, specify which fabric to use by passing in -`--commissioner-name`. The supported values are alpha, beta, and gamma. By -default, if none is supplied, alpha is used. +**Commission the OTA Requestor application into the first fabric (alpha)** + +``` +out/chip-tool pairing onnetwork-long 0xDEB 20202021 18 +``` + +**Open Basic Commissioning Window for the OTA Requestor application** + +``` +out/chip-tool administratorcommissioning open-basic-commissioning-window 600 0xDEB 0 --timedInteractionTimeoutMs 600 +``` + +**Commission the OTA Requestor application into the second fabric (beta)** + +``` +out/chip-tool pairing onnetwork-long 0xB0B 20202021 18 --commissioner-name beta +``` -**Write/Read DefaultOTAProviders on first fabric** +**Write/Read DefaultOTAProviders on the first fabric (alpha)** ``` -out/chip-tool otasoftwareupdaterequestor write default-ota-providers '[{"fabricIndex": 1, "providerNodeID": 3735928559, "endpoint": 0}]' 0x0000001234567890 0 -out/chip-tool otasoftwareupdaterequestor read default-ota-providers 0x1234567890 0 +out/chip-tool otasoftwareupdaterequestor write default-ota-providers '[{"providerNodeID": 12648430, "endpoint": 0}]' 0xDEB 0 +out/chip-tool otasoftwareupdaterequestor read default-ota-providers 0xDEB 0 ``` -**Write/Read DefaultOTAProviders on second fabric** +**Write/Read DefaultOTAProviders on second fabric (beta)** ``` -out/chip-tool otasoftwareupdaterequestor write default-ota-providers '[{"fabricIndex": 2, "providerNodeID": 1, "endpoint": 0}]' 0x858 0 --commissioner-name beta -out/chip-tool otasoftwareupdaterequestor read default-ota-providers 0x858 0 --commissioner-name beta +out/chip-tool otasoftwareupdaterequestor write default-ota-providers '[{"providerNodeID": 45242, "endpoint": 0}]' 0xB0B 0 --commissioner-name beta +out/chip-tool otasoftwareupdaterequestor read default-ota-providers 0xB0B 0 --commissioner-name beta ``` + +**Write ACL for the first OTA Provider application** + +``` +out/chip-tool accesscontrol write acl '[{"privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, {"privilege": 3, "authMode": 2, "subjects": null, "targets": [{"cluster": 41, "endpoint": null, "deviceType": null}]}]' 0xC0FFEE 0 +``` + +**Write ACL for the second OTA Provider application** + +``` +out/chip-tool accesscontrol write acl '[{"privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, {"privilege": 3, "authMode": 2, "subjects": null, "targets": [{"cluster": 41, "endpoint": null, "deviceType": null}]}]' 0xB0BA 0 --commissioner-name beta +``` + +NOTE: For all operations, specify which fabric to use by passing in +`--commissioner-name`. The supported values are alpha, beta, and gamma. By +default, if none is supplied, alpha is used. diff --git a/examples/ota-requestor-app/linux/main.cpp b/examples/ota-requestor-app/linux/main.cpp index 4aa4a96bb051c2..7507e201646da9 100644 --- a/examples/ota-requestor-app/linux/main.cpp +++ b/examples/ota-requestor-app/linux/main.cpp @@ -17,11 +17,13 @@ */ #include "AppMain.h" +#include #include #include #include #include #include +#include #include using chip::BDXDownloader; @@ -43,7 +45,9 @@ using chip::Callback::Callback; using chip::System::Layer; using chip::Transport::PeerAddress; using namespace chip; +using namespace chip::app; using namespace chip::ArgParser; +using namespace chip::DeviceLayer; using namespace chip::Messaging; using namespace chip::app::Clusters::OtaSoftwareUpdateProvider::Commands; @@ -117,6 +121,33 @@ OptionSet cmdLineOptions = { OptionSet * allOptions[] = { &cmdLineOptions, nullptr }; +// Network commissioning +namespace { +constexpr EndpointId kNetworkCommissioningEndpointMain = 0; +constexpr EndpointId kNetworkCommissioningEndpointSecondary = 0xFFFE; + +// This file is being used by platforms other than Linux, so we need this check to disable related features since we only +// implemented them on linux. +#if CHIP_DEVICE_LAYER_TARGET_LINUX +#if CHIP_DEVICE_CONFIG_ENABLE_THREAD +NetworkCommissioning::LinuxThreadDriver sLinuxThreadDriver; +Clusters::NetworkCommissioning::Instance sThreadNetworkCommissioningInstance(kNetworkCommissioningEndpointMain, + &sLinuxThreadDriver); +#endif // CHIP_DEVICE_CONFIG_ENABLE_THREAD +#if CHIP_DEVICE_CONFIG_ENABLE_WPA +NetworkCommissioning::LinuxWiFiDriver sLinuxWiFiDriver; +Clusters::NetworkCommissioning::Instance sWiFiNetworkCommissioningInstance(kNetworkCommissioningEndpointSecondary, + &sLinuxWiFiDriver); +#endif // CHIP_DEVICE_CONFIG_ENABLE_WPA +NetworkCommissioning::LinuxEthernetDriver sLinuxEthernetDriver; +Clusters::NetworkCommissioning::Instance sEthernetNetworkCommissioningInstance(kNetworkCommissioningEndpointMain, + &sLinuxEthernetDriver); +#else // CHIP_DEVICE_LAYER_TARGET_LINUX +Clusters::NetworkCommissioning::NullNetworkDriver sNullNetworkDriver; +Clusters::NetworkCommissioning::Instance sNullNetworkCommissioningInstance(kNetworkCommissioningEndpointMain, &sNullNetworkDriver); +#endif // CHIP_DEVICE_LAYER_TARGET_LINUX +} // namespace + bool CustomOTARequestorDriver::CanConsent() { return gRequestorCanConsent.ValueOr(DeviceLayer::ExtendedOTARequestorDriver::CanConsent()); @@ -126,11 +157,15 @@ void CustomOTARequestorDriver::UpdateDownloaded() { if (gAutoApplyImage) { - // Let the default driver take further action to apply the image + // Let the default driver take further action to apply the image. + // All member variables will be implicitly reset upon loading into the new image. DefaultOTARequestorDriver::UpdateDownloaded(); } else { + // Download complete but we're not going to apply image, so reset provider retry counter. + mProviderRetryCount = 0; + // Reset to put the state back to idle to allow the next OTA update to occur gRequestorCore.Reset(); } @@ -164,6 +199,68 @@ static void InitOTARequestor(void) } } +static void InitNetworkCommissioning(void) +{ + (void) kNetworkCommissioningEndpointMain; + // Enable secondary endpoint only when we need it, this should be applied to all platforms. + emberAfEndpointEnableDisable(kNetworkCommissioningEndpointSecondary, false); + +#if CHIP_DEVICE_LAYER_TARGET_LINUX + const bool kThreadEnabled = { +#if CHIP_DEVICE_CONFIG_ENABLE_THREAD + LinuxDeviceOptions::GetInstance().mThread +#else + false +#endif // CHIP_DEVICE_CONFIG_ENABLE_THREAD + }; + + const bool kWiFiEnabled = { +#if CHIP_DEVICE_CONFIG_ENABLE_WPA + LinuxDeviceOptions::GetInstance().mWiFi +#else + false +#endif // CHIP_DEVICE_CONFIG_ENABLE_WPA + }; + + if (kThreadEnabled && kWiFiEnabled) + { +#if CHIP_DEVICE_CONFIG_ENABLE_THREAD + sThreadNetworkCommissioningInstance.Init(); +#endif // CHIP_DEVICE_CONFIG_ENABLE_THREAD +#if CHIP_DEVICE_CONFIG_ENABLE_WPA + sWiFiNetworkCommissioningInstance.Init(); +#endif // CHIP_DEVICE_CONFIG_ENABLE_WPA + // Only enable secondary endpoint for network commissioning cluster when both WiFi and Thread are enabled. + emberAfEndpointEnableDisable(kNetworkCommissioningEndpointSecondary, true); + } + else if (kThreadEnabled) + { +#if CHIP_DEVICE_CONFIG_ENABLE_THREAD + sThreadNetworkCommissioningInstance.Init(); +#endif // CHIP_DEVICE_CONFIG_ENABLE_THREAD + } + else if (kWiFiEnabled) + { +#if CHIP_DEVICE_CONFIG_ENABLE_WPA + // If we only enable WiFi on this device, "move" WiFi instance to main NetworkCommissioning cluster endpoint. + sWiFiNetworkCommissioningInstance.~Instance(); + new (&sWiFiNetworkCommissioningInstance) + Clusters::NetworkCommissioning::Instance(kNetworkCommissioningEndpointMain, &sLinuxWiFiDriver); + sWiFiNetworkCommissioningInstance.Init(); +#endif // CHIP_DEVICE_CONFIG_ENABLE_WPA + } + else +#endif // CHIP_DEVICE_LAYER_TARGET_LINUX + { +#if CHIP_DEVICE_LAYER_TARGET_LINUX + sEthernetNetworkCommissioningInstance.Init(); +#else + // Use NullNetworkCommissioningInstance to disable the network commissioning functions. + sNullNetworkCommissioningInstance.Init(); +#endif // CHIP_DEVICE_LAYER_TARGET_LINUX + } +} + bool HandleOptions(const char * aProgram, OptionSet * aOptions, int aIdentifier, const char * aName, const char * aValue) { bool retval = true; @@ -229,6 +326,8 @@ void ApplicationInit() { // Initialize all OTA download components InitOTARequestor(); + // Initialize Network Commissioning instances + InitNetworkCommissioning(); } int main(int argc, char * argv[]) diff --git a/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.matter b/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.matter index 650331e4bcdb22..4364dd66e2926a 100644 --- a/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.matter +++ b/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.matter @@ -216,6 +216,173 @@ server cluster GeneralCommissioning = 48 { command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4; } +server cluster GeneralDiagnostics = 51 { + enum BootReasonType : ENUM8 { + kUnspecified = 0; + kPowerOnReboot = 1; + kBrownOutReset = 2; + kSoftwareWatchdogReset = 3; + kHardwareWatchdogReset = 4; + kSoftwareUpdateCompleted = 5; + kSoftwareReset = 6; + } + + enum HardwareFaultType : ENUM8 { + kUnspecified = 0; + kRadio = 1; + kSensor = 2; + kResettableOverTemp = 3; + kNonResettableOverTemp = 4; + kPowerSource = 5; + kVisualDisplayFault = 6; + kAudioOutputFault = 7; + kUserInterfaceFault = 8; + kNonVolatileMemoryError = 9; + kTamperDetected = 10; + } + + enum InterfaceType : ENUM8 { + kUnspecified = 0; + kWiFi = 1; + kEthernet = 2; + kCellular = 3; + kThread = 4; + } + + enum NetworkFaultType : ENUM8 { + kUnspecified = 0; + kHardwareFailure = 1; + kNetworkJammed = 2; + kConnectionFailed = 3; + } + + enum RadioFaultType : ENUM8 { + kUnspecified = 0; + kWiFiFault = 1; + kCellularFault = 2; + kThreadFault = 3; + kNFCFault = 4; + kBLEFault = 5; + kEthernetFault = 6; + } + + struct NetworkInterfaceType { + char_string<32> name = 0; + boolean isOperational = 1; + nullable boolean offPremiseServicesReachableIPv4 = 2; + nullable boolean offPremiseServicesReachableIPv6 = 3; + octet_string<8> hardwareAddress = 4; + octet_string IPv4Addresses[] = 5; + octet_string IPv6Addresses[] = 6; + InterfaceType type = 7; + } + + critical event HardwareFaultChange = 0 { + HardwareFaultType current[] = 0; + HardwareFaultType previous[] = 1; + } + + critical event RadioFaultChange = 1 { + RadioFaultType current[] = 0; + RadioFaultType previous[] = 1; + } + + critical event NetworkFaultChange = 2 { + NetworkFaultType current[] = 0; + NetworkFaultType previous[] = 1; + } + + critical event BootReason = 3 { + BootReasonType bootReason = 0; + } + + readonly attribute NetworkInterfaceType networkInterfaces[] = 0; + readonly attribute int16u rebootCount = 1; + readonly attribute int64u upTime = 2; + readonly attribute int32u totalOperationalHours = 3; + readonly attribute enum8 bootReasons = 4; + readonly attribute ENUM8 activeHardwareFaults[] = 5; + readonly attribute ENUM8 activeRadioFaults[] = 6; + readonly attribute ENUM8 activeNetworkFaults[] = 7; + readonly attribute boolean testEventTriggersEnabled = 8; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct TestEventTriggerRequest { + OCTET_STRING enableKey = 0; + INT64U eventTrigger = 1; + } + + command TestEventTrigger(TestEventTriggerRequest): DefaultSuccess = 0; +} + +server cluster GroupKeyManagement = 63 { + enum GroupKeySecurityPolicy : ENUM8 { + kTrustFirst = 0; + kCacheAndSync = 1; + } + + struct GroupKeyMapStruct { + group_id groupId = 1; + int16u groupKeySetID = 2; + fabric_idx fabricIndex = 254; + } + + struct GroupInfoMapStruct { + group_id groupId = 1; + endpoint_no endpoints[] = 2; + optional char_string<16> groupName = 3; + fabric_idx fabricIndex = 254; + } + + struct GroupKeySetStruct { + int16u groupKeySetID = 0; + GroupKeySecurityPolicy groupKeySecurityPolicy = 1; + nullable octet_string<16> epochKey0 = 2; + nullable epoch_us epochStartTime0 = 3; + nullable octet_string<16> epochKey1 = 4; + nullable epoch_us epochStartTime1 = 5; + nullable octet_string<16> epochKey2 = 6; + nullable epoch_us epochStartTime2 = 7; + } + + attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; + readonly attribute GroupInfoMapStruct groupTable[] = 1; + readonly attribute int16u maxGroupsPerFabric = 2; + readonly attribute int16u maxGroupKeysPerFabric = 3; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct KeySetWriteRequest { + GroupKeySetStruct groupKeySet = 0; + } + + request struct KeySetReadRequest { + INT16U groupKeySetID = 0; + } + + request struct KeySetRemoveRequest { + INT16U groupKeySetID = 0; + } + + request struct KeySetReadAllIndicesRequest { + INT16U groupKeySetIDs[] = 0; + } + + response struct KeySetReadResponse = 2 { + GroupKeySetStruct groupKeySet = 0; + } + + response struct KeySetReadAllIndicesResponse = 5 { + INT16U groupKeySetIDs[] = 0; + } + + command access(invoke: administer) KeySetWrite(KeySetWriteRequest): DefaultSuccess = 0; + command access(invoke: administer) KeySetRead(KeySetReadRequest): KeySetReadResponse = 1; + command access(invoke: administer) KeySetRemove(KeySetRemoveRequest): DefaultSuccess = 3; + command access(invoke: administer) KeySetReadAllIndices(KeySetReadAllIndicesRequest): KeySetReadAllIndicesResponse = 4; +} + server cluster LocalizationConfiguration = 43 { attribute char_string<35> activeLocale = 0; readonly attribute CHAR_STRING supportedLocales[] = 1; @@ -500,6 +667,7 @@ server cluster OperationalCredentials = 62 { kInvalidNOC = 3; kMissingCsr = 4; kTableFull = 5; + kInvalidAdminSubject = 6; kInsufficientPrivilege = 8; kFabricConflict = 9; kLabelConflict = 10; @@ -540,13 +708,14 @@ server cluster OperationalCredentials = 62 { request struct CSRRequestRequest { OCTET_STRING CSRNonce = 0; + optional boolean isForUpdateNOC = 1; } request struct AddNOCRequest { OCTET_STRING NOCValue = 0; optional OCTET_STRING ICACValue = 1; OCTET_STRING IPKValue = 2; - NODE_ID caseAdminNode = 3; + Int64u caseAdminSubject = 3; VENDOR_ID adminVendorId = 4; } @@ -567,10 +736,6 @@ server cluster OperationalCredentials = 62 { OCTET_STRING rootCertificate = 0; } - request struct RemoveTrustedRootCertificateRequest { - OCTET_STRING trustedRootIdentifier = 0; - } - response struct AttestationResponse = 1 { OCTET_STRING attestationElements = 0; OCTET_STRING signature = 1; @@ -599,7 +764,6 @@ server cluster OperationalCredentials = 62 { command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } server cluster TimeFormatLocalization = 44 { @@ -636,8 +800,8 @@ server cluster UserLabel = 65 { readonly attribute int16u clusterRevision = 65533; } - endpoint 0 { + device type rootdevice = 22; binding cluster OtaSoftwareUpdateProvider; server cluster AccessControl { @@ -723,6 +887,20 @@ endpoint 0 { ram attribute clusterRevision default = 1; } + server cluster GeneralDiagnostics { + callback attribute networkInterfaces; + callback attribute rebootCount; + callback attribute upTime; + callback attribute totalOperationalHours; + callback attribute bootReasons; + callback attribute activeHardwareFaults; + callback attribute activeRadioFaults; + callback attribute activeNetworkFaults; + callback attribute testEventTriggersEnabled; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + server cluster AdministratorCommissioning { callback attribute windowStatus; callback attribute adminFabricIndex; @@ -742,6 +920,15 @@ endpoint 0 { ram attribute clusterRevision default = 1; } + server cluster GroupKeyManagement { + callback attribute groupKeyMap; + callback attribute groupTable; + callback attribute maxGroupsPerFabric; + callback attribute maxGroupKeysPerFabric; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + server cluster FixedLabel { callback attribute labelList; ram attribute featureMap; @@ -754,5 +941,21 @@ endpoint 0 { ram attribute clusterRevision default = 1; } } +endpoint 65534 { + device type anonymousEndpointType = 61442; + + server cluster NetworkCommissioning { + callback attribute maxNetworks; + callback attribute networks; + callback attribute scanMaxTimeSeconds; + callback attribute connectMaxTimeSeconds; + callback attribute interfaceEnabled; + callback attribute lastNetworkingStatus; + callback attribute lastNetworkID; + callback attribute lastConnectErrorValue; + callback attribute featureMap; + callback attribute clusterRevision default = 1; + } +} diff --git a/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.zap b/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.zap index 7a7b58fa9f1e25..0eb046b497c634 100644 --- a/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.zap +++ b/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.zap @@ -2241,6 +2241,229 @@ } ] }, + { + "name": "General Diagnostics", + "code": 51, + "mfgCode": null, + "define": "GENERAL_DIAGNOSTICS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "General Diagnostics", + "code": 51, + "mfgCode": null, + "define": "GENERAL_DIAGNOSTICS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "TestEventTrigger", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "NetworkInterfaces", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RebootCount", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "UpTime", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "TotalOperationalHours", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BootReasons", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ActiveHardwareFaults", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ActiveRadioFaults", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ActiveNetworkFaults", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "TestEventTriggersEnabled", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "false", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, { "name": "AdministratorCommissioning", "code": 60, @@ -2438,14 +2661,6 @@ "source": "client", "incoming": 1, "outgoing": 1 - }, - { - "name": "RemoveTrustedRootCertificate", - "code": 12, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 } ], "attributes": [ @@ -2640,54 +2855,238 @@ ] }, { - "name": "Fixed Label", - "code": 64, + "name": "Group Key Management", + "code": 63, "mfgCode": null, - "define": "FIXED_LABEL_CLUSTER", + "define": "GROUP_KEY_MANAGEMENT_CLUSTER", "side": "client", "enabled": 0, - "commands": [], - "attributes": [] - }, - { - "name": "Fixed Label", - "code": 64, - "mfgCode": null, - "define": "FIXED_LABEL_CLUSTER", - "side": "server", - "enabled": 1, - "commands": [], - "attributes": [ + "commands": [ { - "name": "label list", + "name": "KeySetWrite", "code": 0, "mfgCode": null, - "side": "server", - "type": "array", - "included": 1, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "KeySetRead", + "code": 1, "mfgCode": null, - "side": "server", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "KeySetRemove", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "KeySetReadAllIndices", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Group Key Management", + "code": 63, + "mfgCode": null, + "define": "GROUP_KEY_MANAGEMENT_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "KeySetReadResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "KeySetReadAllIndicesResponse", + "code": 5, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "GroupKeyMap", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "GroupTable", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MaxGroupsPerFabric", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxGroupKeysPerFabric", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Fixed Label", + "code": 64, + "mfgCode": null, + "define": "FIXED_LABEL_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [] + }, + { + "name": "Fixed Label", + "code": 64, + "mfgCode": null, + "define": "FIXED_LABEL_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "label list", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { @@ -2809,46 +3208,6 @@ "incoming": 1, "outgoing": 1 }, - { - "name": "GetLogRecord", - "code": 4, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "SetPINCode", - "code": 5, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "GetPINCode", - "code": 6, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "ClearPINCode", - "code": 7, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "ClearAllPINCodes", - "code": 8, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, { "name": "SetWeekDaySchedule", "code": 11, @@ -2920,60 +3279,12 @@ "source": "client", "incoming": 1, "outgoing": 1 - }, - { - "name": "SetUserType", - "code": 20, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, + } + ], + "attributes": [ { - "name": "GetUserType", - "code": 21, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "SetRFIDCode", - "code": 22, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "GetRFIDCode", - "code": 23, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "ClearRFIDCode", - "code": 24, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "ClearAllRFIDCodes", - "code": 25, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "ClusterRevision", - "code": 65533, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "client", "type": "int16u", @@ -3062,22 +3373,6 @@ "maxInterval": 65344, "reportableChange": 0 }, - { - "name": "EnableLogging", - "code": 32, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x00", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, { "name": "Language", "code": 33, @@ -3302,134 +3597,6 @@ "maxInterval": 65344, "reportableChange": 0 }, - { - "name": "AlarmMask", - "code": 64, - "mfgCode": null, - "side": "server", - "type": "DlAlarmMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "KeypadOperationEventMask", - "code": 65, - "mfgCode": null, - "side": "server", - "type": "DlKeypadOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RemoteOperationEventMask", - "code": 66, - "mfgCode": null, - "side": "server", - "type": "DlRemoteOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "ManualOperationEventMask", - "code": 67, - "mfgCode": null, - "side": "server", - "type": "DlManualOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RFIDOperationEventMask", - "code": 68, - "mfgCode": null, - "side": "server", - "type": "DlRFIDOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "KeypadProgrammingEventMask", - "code": 69, - "mfgCode": null, - "side": "server", - "type": "DlKeypadOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RemoteProgrammingEventMask", - "code": 70, - "mfgCode": null, - "side": "server", - "type": "DlRemoteProgrammingEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RFIDProgrammingEventMask", - "code": 71, - "mfgCode": null, - "side": "server", - "type": "DlRFIDProgrammingEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, { "name": "ClusterRevision", "code": 65533, @@ -4813,6 +4980,350 @@ ] } ] + }, + { + "name": "Anonymous Endpoint Type", + "deviceTypeName": "MA-secondary-network-commissioning", + "deviceTypeCode": 61442, + "deviceTypeProfileId": 259, + "clusters": [ + { + "name": "Network Commissioning", + "code": 49, + "mfgCode": null, + "define": "NETWORK_COMMISSIONING_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ScanNetworks", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "AddOrUpdateWiFiNetwork", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "AddOrUpdateThreadNetwork", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveNetwork", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ConnectNetwork", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ReorderNetwork", + "code": 8, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Network Commissioning", + "code": 49, + "mfgCode": null, + "define": "NETWORK_COMMISSIONING_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "ScanNetworksResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "NetworkConfigResponse", + "code": 5, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ConnectNetworkResponse", + "code": 7, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "MaxNetworks", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Networks", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ScanMaxTimeSeconds", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ConnectMaxTimeSeconds", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "InterfaceEnabled", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LastNetworkingStatus", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "NetworkCommissioningStatus", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LastNetworkID", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "octet_string", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LastConnectErrorValue", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int32s", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + } + ] } ], "endpoints": [ @@ -4824,6 +5335,16 @@ "networkId": 0, "endpointVersion": 1, "deviceIdentifier": 22 + }, + { + "endpointTypeName": "Anonymous Endpoint Type", + "endpointTypeIndex": 1, + "profileId": 259, + "endpointId": 65534, + "networkId": 0, + "endpointVersion": 1, + "deviceIdentifier": 61442 } - ] + ], + "log": [] } \ No newline at end of file diff --git a/examples/ota-requestor-app/p6/BUILD.gn b/examples/ota-requestor-app/p6/BUILD.gn index f628f7780c0748..7701ca1c5e8a41 100644 --- a/examples/ota-requestor-app/p6/BUILD.gn +++ b/examples/ota-requestor-app/p6/BUILD.gn @@ -40,9 +40,10 @@ declare_args() { } config("p6_ota_config") { - ldflags = [ "-T/" + rebase_path("src/cy8c6xxa_cm4_dual_ota_int.ld", - "/", - "${p6_project_dir}") ] + ldflags = [ "-T/" + rebase_path( + "${chip_root}/third_party/p6/p6_sdk/ota/cy8c6xxa_cm4_dual_ota_int.ld", + "/", + "${p6_project_dir}") ] ldflags += [ "-Wl,--defsym,MCUBOOT_HEADER_SIZE=0x400,--defsym,MCUBOOT_BOOTLOADER_SIZE=0x18000,--defsym,CY_BOOT_PRIMARY_1_SIZE=0x1C0000" ] @@ -87,7 +88,7 @@ p6_sdk_sources("ota_requestor_app_sdk_sources") { "${chip_root}/src/platform/P6", "${p6_project_dir}/include", "${examples_plat_dir}", - "${p6_project_dir}/config", + "${chip_root}/third_party/p6/p6_sdk/ota/config", "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/", "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/mem_config/", "${chip_root}/third_party/p6/p6_sdk/libs/anycloud-ota/source/mcuboot/cy_flash_pal/include/", diff --git a/examples/ota-requestor-app/p6/include/AppTask.h b/examples/ota-requestor-app/p6/include/AppTask.h index 43d448ed06b51c..c460807f997c84 100644 --- a/examples/ota-requestor-app/p6/include/AppTask.h +++ b/examples/ota-requestor-app/p6/include/AppTask.h @@ -47,6 +47,7 @@ class AppTask void PostEvent(const AppEvent * event); void ButtonEventHandler(uint8_t btnIdx, uint8_t btnAction); + void InitOTARequestor(); private: friend AppTask & GetAppTask(void); diff --git a/examples/ota-requestor-app/p6/include/CHIPProjectConfig.h b/examples/ota-requestor-app/p6/include/CHIPProjectConfig.h index 30140dc83620d7..c3ef134be2a110 100644 --- a/examples/ota-requestor-app/p6/include/CHIPProjectConfig.h +++ b/examples/ota-requestor-app/p6/include/CHIPProjectConfig.h @@ -66,14 +66,14 @@ #define CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_REVISION 1 /** - * CHIP_DEVICE_CONFIG_DEVICE_FIRMWARE_REVISION_STRING + * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING * - * A string identifying the firmware revision running on the device. - * CHIP service currently expects the firmware version to be in the format + * A string identifying the software version running on the device. + * CHIP service currently expects the software version to be in the format * {MAJOR_VERSION}.0d{MINOR_VERSION} */ -#ifndef CHIP_DEVICE_CONFIG_DEVICE_FIRMWARE_REVISION_STRING -#define CHIP_DEVICE_CONFIG_DEVICE_FIRMWARE_REVISION_STRING "0.1ALPHA" +#ifndef CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING +#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING "0.1ALPHA" #endif /** * CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE diff --git a/examples/ota-requestor-app/p6/matter-psoc6-mcuboot-bootloader.hex b/examples/ota-requestor-app/p6/matter-psoc6-mcuboot-bootloader.hex deleted file mode 100644 index a8ae0bf328eb65..00000000000000 --- a/examples/ota-requestor-app/p6/matter-psoc6-mcuboot-bootloader.hex +++ /dev/null @@ -1,4099 +0,0 @@ -:020000041000EA -:1000000000000208070500100D000000690500103F -:1000100000000000000000000000000000000000E0 -:100020000000000000000000000000006505001056 -:1000300000000000000000006505001065050010CC -:1000400065050010650500106505001065050010C8 -:1000500065050010650500106505001065050010B8 -:1000600065050010650500106505001065050010A8 -:100070006505001065050010650500106505001098 -:1000800010B5064C2378002B07D1054B002B02D06E -:10009000044800E000BF0123237010BD740700086E -:1000A00000000000DCF60010044B10B5002B03D05C -:1000B0000349044800E000BF10BDC0460000000036 -:1000C00078070008DCF6001010B500F07DF800F0AD -:1000D00007F800F069F800F01FF800F029F810BDEB -:1000E00010B50021012007F059F94D22002101200F -:1000F00007F092F80021012007F00EF900210020FE -:1001000007F04CF900220021002007F085F80021BB -:10011000002007F001F910BD10B5002200212F20AA -:1001200007F0C0F800220121052007F0BBF810BD40 -:1001300010B5134C134A0021200004F0AFFD124A01 -:100140000121200004F0AAFD104C114A00212000DA -:1001500004F0A4FD0F4A0121200004F09FFD0E4C85 -:100160000E4A0421200004F099FD0D4A06212000CA -:1001700004F094FD0B4A0721200004F08FFD10BD10 -:1001800000003140FCDF001030E000108002314000 -:1001900094DF0010C8DF00100003314060DF001062 -:1001A0002CDF0010F8DE0010034B332203495A50B5 -:1001B00003495A507047C0460000304008200000F4 -:1001C00010200000FEE7000030B583B0962100202B -:1001D00008F048F808F00CF800281BD1774AFF23F4 -:1001E0001B02D4583F231C4007F0F2FF002806D022 -:1001F000012007F0DBFF714B9B6C002B25DB6F4A66 -:10020000FF231B02D45007F07BFA07F06DFA0120A0 -:1002100007F08EFA012008F005FD08F0A1FC08F0B7 -:1002200087FD08F06FFD0021002007F0FFF9002096 -:1002300007F086F9012007F067F9002007F0E2F8DF -:100240005F4B1A683F23D45C06E00620FFF7BAFF35 -:10025000200007F0BBFC013C002CF9D1002101205B -:1002600007F09EFA002007F0CFF9002800D189E0BE -:1002700007F054FB0021002007F092FA0021002033 -:1002800007F0A4F94F4C002500950023002200211F -:10029000200004F055FC00950023002201212000DD -:1002A00004F04EFC484807F0FFF9002800D075E044 -:1002B000012007F017F9002007F042F9012007F0AC -:1002C00023F9002007F09EF80021012007F068FACA -:1002D0000021002007F064FA0021022007F060FAF4 -:1002E0000021032007F05CFA0021042007F058FAEF -:1002F0000021052007F054FA344807F02DFB0028B0 -:100300004FD1334807F0F6FB00284DD101210020E2 -:1003100007F05CF90021002007F088F92D49012041 -:1003200007F07AFC002842D12B49012007F00AFD92 -:1003300000283FD10021022007F048F901210220C6 -:1003400007F074F9022007F00DF907F0BFF800205C -:1003500007F088F8002007F09DF807F0ABF80020C0 -:1003600008F0F4FC012007F06BF807F0BDF901205C -:1003700007F0DEF99021002007F074FF00F01AF971 -:1003800003B030BD07F03AFA1223FF33984200D091 -:100390006EE70121002007F019F969E70520FFF752 -:1003A00011FF0420FFF70EFF0420FFF70BFF0320CF -:1003B000FFF708FF0320FFF705FFC04600002740B6 -:1003C000D45F01080000314040420F00C0E100103E -:1003D000400D0300D4E100101027000010B503F019 -:1003E00059F9054C200004F055FB200004F052FBA5 -:1003F000012002F04FFE10BD8002314010B584682C -:1004000003681B89E418094B1B68DB68382201214B -:1004100007480AF0B5F80A21064803F01DF9FFF76E -:10042000DDFF200000F082F910BDC046EC0100089D -:10043000DCE100100000654010B584B0FFF744FE19 -:1004400062B6E120400203F0E9F8264C2368DB683D -:100450001022012124480AF093F82368DB68222245 -:10046000012122480AF08CF8012002F0C1FD041E8F -:100470000DD11C4B1B68DB682E2201211C480AF0A1 -:100480007FF8002C0BD0002008F032FAFBE7154B68 -:100490001B68D8682200174909F0FEFFF1E701A8A0 -:1004A00000F086FF00280FD10E4B1B68DB682F225F -:1004B000012111480AF064F8FA20000102F0BAFFA5 -:1004C00001A8FFF79BFFDEE7064B1B68DB683222C3 -:1004D00001210A480AF054F80A21094803F0BCF83F -:1004E000D1E7C046EC01000818E200102CE2001031 -:1004F00050E2001080E20010C4E20010F4E20010AC -:10050000000065407047FFF7FDFF72B60F4C104DBD -:10051000AC4209DA21686268A368043B02DBC85870 -:10052000D050FAE70C34F3E70A490B4A0020521A7C -:1005300002DD043A8850FCDC084809490860BFF332 -:100540004F8F00F075F8FFF777FFFEE7E8F6001031 -:1005500000F70010740700087C6001080000000824 -:1005600008ED00E0FEE7FEE700B504207146084212 -:1005700002D0EFF3098001E0EFF30880043007F0C8 -:1005800059FEFEE7000000000230800803D0013071 -:100590000238FCD1C046C0467047EFF3108072B6F7 -:1005A000704780F31088704710B5002004F0C2FD3A -:1005B00010BD704710B5002007F0EAFC041E00D102 -:1005C00010BD144B186006F0AFFF411C200008F06E -:1005D00035FC0400104B186006F026FF411C20007B -:1005E00008F02CFC04000D4B1860013C0C49200065 -:1005F00008F024FC01300B4B1870FA218900200010 -:1006000008F01CFC0130084B1860C003074B186051 -:10061000D6E7C04684000008880000088000000873 -:1006200040420F0094000008900000088C00000871 -:1006300010B5234803F036F8224CB022D200A3585C -:100640005B005B08A350E02189006358302083439E -:10065000635080235B04A3501B4B1C4AE2500433BD -:10066000A0229201E2501A4BFF22E25008F098FBC0 -:10067000C0225200A35801218B43A350FFF799FFDA -:10068000FFF798FF134B1B68BA20195ACA00521A79 -:10069000196A8C4662440021D1601A6A185AC30054 -:1006A0001B1AD31859600C4A8031032004F09AFDBC -:1006B0000A4804F0F3FB0A4804F048FC10BDC046A9 -:1006C000F8ED001000002640840500000100020043 -:1006D0008C050000D45F010820070008900700087F -:1006E00028E30010034A90235B01D35803201840ED -:1006F0007047C0460000204010B5FFF74EFF084C81 -:10070000902149016358074A1A40074B134363502D -:10071000034B5B68DB06FBD5FFF743FF10BDC0460C -:1007200000002040FCFF00000100FA0570B5040045 -:10073000830500D001BEFFF730FF0500FFF7D2FFB1 -:10074000032813D00B4B802292009C509020400134 -:100750001A5809491140094A0A431A50054B5B6867 -:10076000DB06FBD52800FFF71CFF70BDFFF7C4FFB9 -:10077000E8E7C04600002040FCFF00000300FA0547 -:1007800000B583B0130001AA1370012301F055FADC -:1007900003B000BD10B509F00DFF10BD04280AD04C -:1007A000052804D101394B1E994108007047401AB1 -:1007B00043425841FAE70120F8E710B582B00C0037 -:1007C000C0B201A901F07EFF002803D0012420005F -:1007D00002B010BD2100019801F094FA04000198C4 -:1007E00001F084FFF3E710B5040001F015FA0100F1 -:1007F00001222000FFF7C4FF10BD10B5040001F076 -:1008000007FA010001222000FFF7BAFF10BD000027 -:1008100030B583B004000E2A10D80E2915D8120165 -:100820000A436B46DD1DDA7101F0FBF9010001237B -:100830002A00200001F001FA03B030BD9C21064BD4 -:10084000064A8900064809F009FE9C21054B034A27 -:100850008900034809F002FE5CE30010CCE40010BC -:1008600070E30010B8E3001010B582B004000191ED -:1008700001F0DCF90100042301AA200001F0DDF9F8 -:1008800002B010BD30B589B006A90120FFF795FF71 -:10089000002800D08CE004A90230FFF78EFF04008E -:1008A000444B1B68D86806AB1B78012B28D0032B60 -:1008B00024D0414B06AA51789578D27802920195BE -:1008C00000913E4A3E4909F0E7FD3A4B1B68D86863 -:1008D00004AB1B78012B17D0032B13D0364B04AA83 -:1008E00051789578D278029201950091354A344931 -:1008F00009F0D2FD002C11D0FF2057E0324BD9E790 -:10090000324BD7E7304BEAE7304BE8E72B79042B43 -:1009100028D006AA9278934224D00134022C3CD8E5 -:1009200063001B195B002A4AD51806A90978D05C18 -:10093000FFF734FF0028F0D004AB19786878FFF790 -:100940002DFF0028E9D0AB78042B03D006AAD2787B -:100950009342E2D1EB78042BD8D004AAD278934208 -:10096000DBD1D3E7134B1B68D8686B79022B07D018 -:10097000032B10D0042B01D0164A02E0164A00E0E7 -:10098000164A174909F088FD6879831EDBB2022BED -:100990000CD9FF200AE0134AF3E7064B1B68DB681B -:1009A00017220121104809F0EBFD012009B030BDEC -:1009B000FF20FBE7EC010008CCE300100CE4001082 -:1009C00030E4001074E40010D8E30010D0E300100D -:1009D000F4E40010F0E3001004E40010E0E3001081 -:1009E0009CE40010E8E30010B4E4001070B50500CA -:1009F000002915D001235B422878584004090F22B2 -:100A00001040094E80008359634018091A40920033 -:100A100093594340013901350029EDD1D84370BDC8 -:100A200001235B42FAE7C04608E50010F0B5CE4668 -:100A3000474680B5A7B0140099462E9F2F9B984635 -:100A4000684602F0B9FC0021684602F0BAFC319B0E -:100A5000002B02D0329B002B07DC2389E2689446EE -:100A600063446689F618002513E01A003199684638 -:100A700002F0B5FCF1E723003A002900484601F0F6 -:100A800037FE002811D122003900684602F0A7FC89 -:100A90002D19B54204D2741B4445ECD94446EAE70B -:100AA0003099684602F0A7FC002027B0C0BCB946C8 -:100AB000B046F0BDF0B59FB017001D002C4B1E686E -:100AC000279B0493269B039306AB0293259B0193DC -:100AD000249B00932B00FFF7A9FF041E3DD1289B08 -:100AE000002B04D0202206A9180009F071FD002374 -:100AF0000093204B2A00390016A801F00FFD041EB8 -:100B00002BD11CAB72226A441DA916A801F07CFDF2 -:100B1000002821DB1CDC1CA909881029F1D17223D3 -:100B20006B441B88202B20D10EAA1D99280001F0B0 -:100B3000DFFD071E17D120220EA906A8FFF72AFE07 -:100B400006000D4B1B6801248342DAD03C0004E010 -:100B500063425C41E4B200E00400002C00D13400A8 -:100B600020001FB0F0BD0400F7E701246442F7E75E -:100B700098000008FFFF00001009000810B50B4B9B -:100B800002689A420FD1C2680389D843824202D8D0 -:100B9000D418012000E00020002805D08B68A34273 -:100BA00002D8002000E0002010BDC0463DB8F396FA -:100BB000F0B585B005000C000192002001F098FE10 -:100BC000C0B203A901F07EFD002806D001270398DA -:100BD00001F08CFD380005B0F0BD2C236343EB1809 -:100BE0001A89DE689619042302AA3100039801F0DD -:100BF0007FFD071E26D12C214C432D196C8902AB99 -:100C00001A88134B9A420DD0002C1DD102AB1A88C2 -:100C1000104B9A421AD1331902AA52889B18019A92 -:100C20001360D4E702AB59888C4201D00327CEE78A -:100C30008919042302AA039801F05AFD0028E5D07F -:100C40000127C4E70127C2E70327C0E70327BEE760 -:100C5000086900000769000010B582B004000800B0 -:100C6000E02212010192012906D002290FD00729A2 -:100C700010D1E26D603401E0626A283401A901F00C -:100C800085FE002801D1019B236002B010BD226DBA -:100C90005434F3E70120F8E710B5006A01F018FEBC -:100CA00010BD70B504000121FFF7D6FF002802D067 -:100CB0000125280070BD02212000FFF7CDFF00288C -:100CC00001D00125F5E707212000FFF7C5FF051E2C -:100CD00001D00125EDE72000FFF7DEFFA066E8E781 -:100CE000F0B583B004000F00002001F001FEC0B297 -:100CF00001A901F0E7FC061E1AD1019801F008FED7 -:100D00000500019801F0F2FC2C21794361180023C1 -:100D1000032B05D8CA5C954208D10133DBB2F7E753 -:100D20000123002B07D0300003B0F0BD0023F8E70B -:100D300001267642F7E701267642F4E700B587B050 -:100D4000130000220492039202920132FF320192B8 -:100D5000044A00920A0000210020FFF7ABFE07B012 -:100D600000BDC046805D0108F0B585B005000C00EF -:100D70000192244B1F68002001F0BAFDC0B203A904 -:100D800001F0A0FC002802D0380005B0F0BD2C30E6 -:100D900060432E1821002800FFF7A2FF00282BD067 -:100DA0003369D90601D5012727E0019B039A310059 -:100DB0002800FFF7C3FF0700039D29003000FFF75D -:100DC000DDFE002803D0104B1B68BB4215D0002C61 -:100DD0000AD10E4B1B68D868002C0BD10C4A0D4968 -:100DE00009F05AFB012708E0AA680021280001F059 -:100DF00015FDEEE7084AF2E70127039801F076FCBB -:100E0000C2E7C0469800000810090008EC0100087D -:100E100054E500105CE5001048E5001070B50500D1 -:100E20000E000020FFF72EFD0400022805D0042844 -:100E300003D0032801D0200070BD3200012128001A -:100E4000FFF792FF044B1B688342F4D0012801D0C6 -:100E50000524F0E70400EEE710090008F8B50600E5 -:100E60000D0017000024012C11DC2C226243B21863 -:100E70003B002100300000F0D9FB002801D10134F3 -:100E8000F1E7002C04DD002D02D1002000E000205D -:100E9000F8BD002383718360C36001334371036035 -:100EA0000371C37170474379012B01D00020704753 -:100EB0000368012B01D00020F9E70379012B01D051 -:100EC0000020F4E70120F2E730B583B005000C0004 -:100ED0000023009301930800FFF7E5FF002830D0BE -:100EE000204B2A689A4212D01E4BEA6A9A421BD0C3 -:100EF000019B009A934200D90093009BA360009A43 -:100F00002100280000F0D2FD002003B030BD6A4669 -:100F100000212800FFF74CFE0028E5D0124B134AB1 -:100F20001349144809F09AFA01AA01212800FFF791 -:100F30003FFE0028DCD00C4B0C4A0F490D4809F04D -:100F40008DFA21000831002001F000F8002802D1BC -:100F5000A3680093D3E7044B044A0849054809F005 -:100F60007DFAC0463DB8F39688E50010C8E600104B -:100F70003604000090E500104D0400006D040000F0 -:100F800070B504000D00FFF79FFF002812D1EB7928 -:100F90006422A354033BDBB2012B11D9EB79022B62 -:100FA00017D0042B15D0032B13D06423E35CFF2B45 -:100FB00018D070BD124B134A1349144809F04EFA69 -:100FC000002000F011FA0028E8D06423FF22E25448 -:100FD000E4E7002000F0F4F90028E6D06423FF22C3 -:100FE000E254E2E70A4B1B68DB680E220121094844 -:100FF00009F0C6FA084B034A0849044809F02EFADA -:1010000088E50010D8E600109605000090E5001075 -:10101000EC010008D0E50010E0E50010AE0500008E -:1010200070B50400FFF750FF002814D16423E55C7D -:10103000EB1EDBB2012B14D9022D03D0042D01D0FD -:10104000032D07D1002000F0BBF9002802D0642353 -:10105000FF22E25470BD084B084A0949094809F0CB -:10106000FDF9002000F0C0F90028E5D06423FF223C -:10107000E254FF25E2E7C04688E50010B4E6001020 -:101080005305000090E5001070B504000D00FFF757 -:1010900008FE00280FD1002200212000FFF7DEFE0D -:1010A000002814D1200000F0CDFB00281AD16423C1 -:1010B0000122E2540AE0344B1B68D868E022120196 -:1010C000324909F0E9F964230122E25470BD2E4B44 -:1010D0001B68D86800222E4909F0DEF9642301223A -:1010E000E254F3E72800FFF7D4FE2900200001F0C6 -:1010F00001F8002814D12800FFF7D5FE00281AD0E7 -:10110000EB79012B34D02A0001212000FFF72CFEBF -:10111000204B1B68834232D064230522E254D5E77A -:10112000194B1B68D86800221B4909F0B5F96423E4 -:101130000122E254CAE729002000FFF721FF00281E -:101140000AD12A0000212000FFF788FE002809D1DB -:1011500064230122E254B9E7104B114A11491248A5 -:1011600009F07CF90D4B0E4A10490F4809F076F949 -:1011700029002000FFF752FE6423E054A6E7EA7935 -:101180006423E254A2E7C046EC010008E4E5001045 -:101190002CE60010100900085CE6001088E500103D -:1011A000F4E600105306000090E500105906000018 -:1011B00010B501F033FB10BDF8B5DE4657464E467C -:1011C0004546E0B58946924698460A9B9B460B9E4B -:1011D000002512E04346E9182300124A484601F070 -:1011E00087FA002819D15B46E91823000D4A5046BA -:1011F00001F0BEFA002812D12D19B54206D2741B97 -:101200008023DB009C42E5D91C00E3E70020F0BC12 -:10121000BB46B246A946A046F8BD0120F7E701202B -:10122000F5E7C04680090008F0B5C64600B584B0B1 -:1012300004000E004E4B1B6898466C22002109F0FA -:10124000D0F94C4B63624C4B23654C4BE365012753 -:101250007F420025012D14D82900002001F048FB11 -:101260002C21694320316118C0B201F02BFA071E0E -:1012700001D10135EEE7424B424A4349434809F068 -:10128000EDF869462000FFF7FFFE6423E35C6A4641 -:10129000D371042B18D8022B21D2012B2BD164231C -:1012A000E35CFF2B2BD0012B37D1394B22689A42BC -:1012B0003BD0384B1B68D86800232200364909F020 -:1012C000EBF80327002549E0052B14D1002000F09E -:1012D0008BF8071EE3D06423FF22E254DFE7694660 -:1012E0002000FFF79DFE071ED9D0254B254A2B492C -:1012F000264809F0B3F86423FF22E254CFE7254BD8 -:101300001B68DB680E220121254809F039F9254BBD -:101310001C4A25491D4809F0A1F86A460021200011 -:10132000FFF79CFD071EC0D0CCE7102200216846C5 -:1013300009F057F9236A5B783371236A5B68B360FD -:1013400034601A4B1B689846BCE70122521B2C23C1 -:101350005343E318186A01F0C9F90135012DF4D996 -:10136000002F00D14746380004B080BCB846F0BD1D -:1013700098000008800D0008807D000880ED0008BE -:1013800088E5001014E70010D406000090E5001076 -:101390003DB8F396EC0100088CE60010140700003D -:1013A000D0E50010E0E500102B0700001009000850 -:1013B00010B501000148FFF737FF10BD1409000800 -:1013C00010B582B001A9012001F07CF9002803D0FA -:1013D0000124200002B010BD0198FFF704FA0400B8 -:1013E000019801F083F9F4E710B584B003A9012056 -:1013F00001F068F9002803D00124200004B010BDDA -:1014000001A9039800F07EFC041E0CD101ABDB782F -:10141000032B03D0039801F069F9EEE70398FFF777 -:10142000ECF90400F6E70124F4E70000F0B5CE463D -:1014300000B582B00C0016001D00526AC300D758D8 -:101440001368FF1A0138C0001258D31A99462B6846 -:10145000012B15D1EB68022B0CD00899300000F05D -:101460008BFD00282AD12A000899300000F0EAFDFF -:1014700000282AD10999300000F07EFD00282BD1E8 -:10148000220039000898FFF793FE00282BD1019421 -:1014900000974B46089A11003000FFF78DFE002898 -:1014A00028D12900300000F0E9FB2B6801332B60C4 -:1014B000002826D102B080BCB946F0BD5421144B9F -:1014C000144AFF31144808F0C9FFAB21104B114AF0 -:1014D0004900114808F0C2FFAD210D4B0D4A4900EB -:1014E0000D4808F0BBFFAF21094B0A4A49000A48E2 -:1014F00008F0B4FF6221064B064AFF31064808F0A7 -:10150000ADFFB321024B034A4900034808F0A6FF90 -:1015100088E50010CCE8001024E70010F0B5CE46B6 -:10152000474680B583B00F0015001C00566AC30003 -:10153000F2583368D21A90460138C0003658F61A6D -:101540002A6D11581368CB1A99462279012A07D0BF -:101550002379022B32D003B0C0BCB946B046F0BDEF -:101560003A0031000A98FFF723FE002818D10197AE -:1015700000964B460A9A0B992800FFF71DFE00289B -:1015800015D12100280000F079FB022323710028E7 -:10159000DED08021224B234AFF31234808F05EFF32 -:1015A0007A211F4B1F4AFF311F4808F057FFBE2109 -:1015B0001B4B1C4A49001C4808F050FF3A004946A2 -:1015C0000B98FFF7F5FD00281CD101974B460093BF -:1015D00043460B9A0A992800FFF7EEFD002818D120 -:1015E0002100280000F04AFB236801332360012317 -:1015F00023710028AFD08C21094B0A4AFF310A48D9 -:1016000008F02CFFC221064B064A4900064808F0A4 -:1016100025FF8821024B034AFF31034808F01EFFD3 -:1016200088E50010B8E8001024E7001070B582B01B -:1016300016001C1E3AD0436A5D686379012B12D0F4 -:10164000022B19D00025002001F052F9C0B201A9E7 -:1016500001F038F8002830D00125019801F046F853 -:10166000280002B070BD002922D11D4B1B682268E2 -:101670009A42E8D80025E6E72368012B08D9184AE2 -:101680001268934204D8002914D100250131DAE709 -:10169000012B01D00025D6E7002900D00025012923 -:1016A000D1D12379022BCED10021CCE70025CAE786 -:1016B0000025C8E700250021C5E7202332002900C6 -:1016C000019801F015F8051E08D1002CC5D032682C -:1016D000044B9A42C1D001256D42BEE70125BCE70B -:1016E0009C0000083DB8F396F0B5DE4657464E46DE -:1016F0004546E0B589B006000591049200230393A6 -:101700000378032B00D182E000F095FAE0252D014B -:1017100000239A460133019300239B46013B9946DF -:101720000023029380464F460BE06B1E9B460292BD -:101730001AE0019BA34202D001239C46E244013DF2 -:101740000194002D1DDD30784346E918013901234D -:1017500006AA073200F086FE041E5ADB06ABDA79D1 -:10176000531EDBB2012BE0D9300001F0D1F806ABFB -:1017700007331B789842DCD07A1CE0D12F0003930A -:10178000DDE7B9465346012B24DC049908310020DB -:1017900000F0DCFB041E2BD1049B9E6805998F6E24 -:1017A0003900300007F04AFB05003900300007F02F -:1017B000CBFB4B1E99416918484601302AD0894518 -:1017C0001CDA0123049A537113004A461A60039AE3 -:1017D0001A711FE0134B1B68DB6825220121124898 -:1017E00008F0CEFE114B124AC221124808F036FE14 -:1017F000114B0F4AC8210F4808F030FE0223049A0B -:10180000537113005A461A60029A1A7102E00724B3 -:1018100000E00124200009B0F0BCBB46B246A94656 -:10182000A046F0BDEC0100086CE70010E0E50010F8 -:1018300010E9001024E7001088E500100068484314 -:101840007047000070B5856A446DAC4202D0631CDD -:10185000AB4213D1E0231B019D4219D80023002184 -:10186000A34229D2DA00416A89184968066DB44654 -:10187000624452688A4215D10133F1E7194B1B6863 -:10188000DB683A220121184808F07AFE002012E0B5 -:10189000144B1B68DB6831220121144808F070FEEC -:1018A000002008E00F4B1B68DB682E220121104846 -:1018B00008F066FE002070BDAC4211D2426ADB0027 -:1018C000D3185B68994201D10120F4E7054B1B68EE -:1018D000DB682E220121064808F052FE0020EAE7CC -:1018E0000120E8E7EC01000894E70010D0E70010C1 -:1018F00004E8001070B586B004A90120FEF75DFF72 -:10190000041E25D11D4B1B68D86804AB1B78012B26 -:1019100027D0032B23D01A4B04AD6A78A978EE7830 -:10192000029601910092174A174908F0B5FD2B78ED -:10193000012B02D1AB78032B15D0104B1B68DB6851 -:1019400019220121114808F01BFE200006B070BDCD -:1019500030210F4B0F4AFF310F4808F07FFD0F4B2E -:10196000DAE70F4BD8E7054B1B68DB682122012122 -:101970000C4808F005FE0224E7E7C046EC01000829 -:10198000CCE3001034E8001030E400107CE80010D4 -:1019900088E50010FCE8001024E70010D8E30010F0 -:1019A000D0E3001058E80010F0B589B005900C00A5 -:1019B0001500334962681140324A914202D12268CF -:1019C000012A01D009B0F0BD06A91800FEF7F5FE06 -:1019D000002834D12C4B1B68D86806AB1B78012B30 -:1019E00036D0032B32D0294B06AF7A78B978FE78FF -:1019F000029601910092264A264908F04DFD3B7857 -:101A0000032BDFD12900059800F0B6FA002821D178 -:101A10002800FEF7F2FE002823D1A1682800FEF777 -:101A200023FF002824D1280000F010F90028C9D095 -:101A3000B821194B194AFF31194808F00FFDD4217C -:101A4000154B164A4900164808F008FD154BCBE720 -:101A5000154BC9E7D721104B104A4900104808F030 -:101A6000FDFCB2210C4B0D4AFF310D4808F0F6FC8D -:101A7000DA21094B094A4900094808F0EFFCC04641 -:101A800000FF00FF00010004EC010008CCE300109F -:101A900098E8001030E4001088E50010ECE8001031 -:101AA00024E70010D8E30010D0E30010F0B5C646DC -:101AB00000B584B080460E00354B00211960436AA2 -:101AC0005F680023DB19324D29684C1C2C6093425F -:101AD000F8D303A9012000F0F5FD002812D102A9D6 -:101AE000022000F0EFFD002813D10223029A3100FA -:101AF0004046FFF759FF7379012B11D00223737110 -:101B0000012429E0D821234B234AFF31234808F040 -:101B1000A5FCED211F4B204A4900204808F09EFCFF -:101B20001B4B1C6800E0013C002C11D0184B1B68BB -:101B300032689B1A0133A342F5D3029B0193039BA6 -:101B400000933300424639002000FFF76FFCEAE7BC -:101B500001233360D2E701340D4B1B68A3420DD340 -:101B60003368A342F7D8029B0193039B0093330091 -:101B7000424639002000FFF7D1FCECE7039800F063 -:101B8000B5FD029800F0B2FD04B080BCB846F0BDCF -:101B90009C00000888E50010E0E8001024E7001031 -:101BA000012800D170470220FCE7000010B5102288 -:101BB000044908F0FFFC002801D0022010BD0120DC -:101BC000FCE7C046E4E4001030B585B00D0001200C -:101BD00000F078FD041E02D0200005B030BD1023B7 -:101BE0006A460949012000F03DFC041E07D110227D -:101BF0000649684608F0DEFC002800D10400286889 -:101C000000F074FDE8E7C04684110000E4E4001031 -:101C1000004870478311000010B5FFF7F9FF013845 -:101C200010BD10B5FFF7F8FF013810BD10B5FFF774 -:101C3000F8FF043810BD0020704710B5007800F0A0 -:101C40009FFB002800D110BD0120FCE710B50078F3 -:101C50001023044A044900F093FB002800D110BD72 -:101C60000120FCE7E4E400108411000010B5C36D0E -:101C700059689020800107F0E1F810BD30B583B0BD -:101C80000C0001A9012000F01DFD002806D0012450 -:101C9000019800F02BFD200003B030BD0198FFF744 -:101CA000CAFF050001212000FFF7C8FD291863794C -:101CB000012B0ED023790133DBB26A460332137055 -:101CC000019B1878012300F05BFB041EE0D0012487 -:101CD000DEE72379F1E7F0B5C64600B580460F0090 -:101CE0001600002400E00134B44207D23D5D4046B6 -:101CF00000F00EFE8542F6D0002000E0012080BCFE -:101D0000B846F0BDF0B5DE4657464E464546E0B50E -:101D100089B004000E0002A9072000F0D3FC051EC4 -:101D200008D00127380009B0F0BCBB46B246A9462E -:101D3000A046F0BD2078102304AA834900F092FB4E -:101D4000002800DAEEE0102204A90298FFF7C3FF92 -:101D5000071E00DAE8E001286FD004A8FFF726FF8D -:101D600030700023994698462000FFF75AFF010083 -:101D70002078012302AA073200F074FB002800DA61 -:101D8000D4E0012202ABD91D0298FFF7A4FF00287E -:101D900000DACDE002AB07331B780F221A407270D5 -:101DA0001B093371012801D0042A03D90123737060 -:101DB000002333712000FFF72FFF01002078B71CAC -:101DC00001233A0000F04EFB002800DAB2E00122C5 -:101DD00039000298FFF77FFF002800DAACE0012805 -:101DE00063D0B078FFF7DCFEB0702000FFF710FF83 -:101DF00082462078F31C9B4601235A46514600F048 -:101E000031FB002800DA99E0012259460298FFF7D9 -:101E100062FF071E00DA93E0012849D0F078FFF74F -:101E2000BFFEF0704B46002B00D18BE010224146E4 -:101E3000200000F0F3FC070074E7032333702378DD -:101E4000022B05D0062B03D00023994698468BE73A -:101E5000A36810225242944663449846102304AA71 -:101E60004146200000F06EFD8146031E00DA59E76E -:101E700001280DD004A8FFF799FEC0B230700128E8 -:101E80000BD04B46002B00DA4CE7012399466BE759 -:101E9000023333700023994666E72078102304AAA2 -:101EA000294900F06DFA8146EBE70323B3709CE704 -:101EB0000323F3702378052B25D021D8012B22D0C2 -:101EC000022B00D02EE7A3681822524294466344A6 -:101ED000984601235A464146200000F033FD031E78 -:101EE000019000DA1EE7012811D0F078FFF758FEC4 -:101EF000C0B2F07002280DD1019B002B96DA11E7D9 -:101F0000062BE0D00EE7B378012B8BD1DBE7023351 -:101F1000F37087E7207801235A46514600F030FAE3 -:101F20000190E9E70127FDE60127FBE60127F9E635 -:101F30000127F7E60127F5E60127F3E60127F1E699 -:101F40000127EFE62F00EDE68411000030B583B0E5 -:101F50000C0001A9FFF738FE002801D003B030BD06 -:101F6000019D2800FFF762FE01002878042322006B -:101F700000F078FAF2E70000F0B5CE46474680B5AB -:101F800083B007008946294B1B68D8680A7828491E -:101F900008F082FA01A9072000F094FB002806D07F -:101FA0000124200003B0C0BCB946B046F0BD0021FA -:101FB00000F09EFC04000121002000F099FC4B463B -:101FC0001B78A34201D083422ED1180000F048F9BB -:101FD00080463800FFF74AFE441E0025FA6DE300F4 -:101FE000D3185E6819681368C91A41443200019811 -:101FF000FFF7DEF8002811D1013CAD1990239B01B9 -:102000009D42EBD34B46996840394022484600F048 -:1020100005FC0400019800F069FBC2E7054B064A85 -:102020000649074808F01AFA0124BAE7EC0100084B -:1020300028E9001088E50010C0E90010190200002E -:102040004CE9001030B583B00C0015006946022041 -:10205000FEF7B3FB002814D1E979012917D16B46AB -:10206000DB78012B1FD0A9682000FEF7FDFB0028BC -:1020700024D12000FFF7EAFD002825D1002003B07D -:1020800030BD144B144A1549154808F0E7F90022F1 -:102090002000FEF7BDFB0028E1D00E4B0E4A11498F -:1020A0000F4808F0DBF92000FEF7A7FB0028DAD084 -:1020B000084B094A0C490A4808F0D0F9054B064A72 -:1020C0000A49074808F0CAF9024B034A084904487C -:1020D00008F0C4F988E50010ACE900103E020000E9 -:1020E0004CE9001042020000470200004B020000D1 -:1020F0005602000070B584B005000E00FFF7FAFB31 -:10210000041EF06008D0022809D103A9012000F0C4 -:10211000D9FA002809D00124200004B070BD1E4B5C -:102120001E4A1F491F4808F099F902A9072000F02C -:10213000C9FA002801D00124EEE7320029000398F3 -:10214000FFF7D2FA041E19D10398FFF76AFD0100C8 -:1021500001236A460732012000F084F901226B4610 -:10216000D91D0298FFF7B7FD002813DB01280CD01A -:102170006B46DA790F231340F3710400039800F0E3 -:10218000B5FA029800F0B2FAC6E76B460122DA719E -:102190002000EDE70124BFE7E0E5001098E900101A -:1021A0006F0200004CE9001010B5FA21490006F05A -:1021B00045FE10BD10B5FFF7F7FF400210BD10B58A -:1021C000FEF714FC10BD000070B5204CA5440400BF -:1021D0000E001D000132839201A9072000F072FA5F -:1021E000002805D00124200084239B009D4470BD5D -:1021F000FA225200290002A808F0EAF9839B809392 -:10220000134B1B687F93FE21490002A8FFF7D7FFFD -:1022100082908190012E10D00136F1008919490277 -:10222000091980239B0002AA019800F0A1FA041E5C -:1022300005D1019800F05AFAD5E70026EDE7054BE5 -:10224000054AE921054808F009F9C046F0FDFFFFFD -:10225000C4EA001088E500107CEA0010DCE90010F8 -:10226000012804D0022804D190208001704700206A -:10227000FCE701204042F9E7F0B5DE4657464E46FE -:102280004546E0B5394CA54481460191029205A925 -:10229000072000F017FA061E63D100250023984698 -:1022A00000279A4603930CE0859B9B46FE2149003C -:1022B00006A8FFF784FF584518D001239C46E24446 -:1022C0000135012D19D8EC00641964024C448023B7 -:1022D0009B0006AA2100059800F00AFA002842D1C6 -:1022E000234B839A9A42DFD00137E9E7849B9845D4 -:1022F000E6D82E0098460394E2E7022F11D0534609 -:10230000022B1CD101267642059800F0EFF930002F -:1023100087239B009D44F0BCBB46B246A946A0461D -:10232000F0BD0023029A1360059800F0F1FA010055 -:10233000FA225200019808F054F90126E4E7029BC2 -:1023400042461A60FA235B00019A0399059800F04F -:10235000CFF90028D8D0074B074AAB21074808F02F -:102360007DF80126D3E70126D1E7C046E4FDFFFF53 -:10237000AFBEADDE88E50010ACEA0010DCE900106D -:10238000F0B5CE46474680B5FFB007000C00914639 -:102390001E00FA214900200006F0D6FD0D0032197A -:1023A0002A4B9A420DD83800FFF75AFF071E0FDB61 -:1023B0002000FFF7FFFEC719002398460120404286 -:1023C00026E00E21224B234AFF31234808F046F82D -:1023D0001221224B1F4AFF311F4808F03FF85A1BB9 -:1023E000280068444946414408F0F2F86B467D9A5B -:1023F00021003800FFF7E8FE002818D1F53EFF3E27 -:1024000080239B009C4667440C3B9C46E04400258F -:10241000002E15DD7DAA69463800FFF72DFF041E4A -:102420000CDBFA235B009E42D9DC3200D8E72E2178 -:102430000B4B084AFF31084808F010F801204042D1 -:102440007FB0C0BCB946B046F0BDC0469411000094 -:1024500028EA001098EA0010DCE9001054EA0010A5 -:1024600088E50010F0B5C64600B5FEB005000E00C8 -:1024700090461C00FA214900300006F065FD0F006F -:10248000A219214B9A420AD82800FFF7E9FE051E3F -:102490000CDB3000FFF78EFE451900261DE0AA2157 -:1024A0001A4B1B4A49001B4807F0D8FFAC211A4BB6 -:1024B000174A4900174807F0D1FF22003900694444 -:1024C0004346981908F084F8F53CFF3C80239B00B4 -:1024D0009C466544F536FF360027002C0CDD7DAAAE -:1024E00069462800FFF7C8FE00280ADBFA235B00D4 -:1024F0009C42E2DDDA1BE1E700207EB080BCB846FA -:10250000F0BD01204042F8E79411000028EA0010D5 -:1025100064EA0010DCE9001054EA0010F0B5D64679 -:102520004F464646C0B582B004000D0017009946DC -:102530000AAA13789A46002845D0002947D0002FD0 -:1025400049D00E89CB689C466644042301AA310019 -:10255000380000F0CDF88046002840D101AB1A8841 -:10256000274B9A421FD06B89002B40D101AB1A88B0 -:10257000244B9A423FD1256067604B4623815346E6 -:10258000A3726B899B19E3606B899B1901AA52881E -:102590009B18636104362661404602B0E0BCBA462F -:1025A000B146A846F0BD6B8901AA51888B421AD169 -:1025B00089190423380000F09BF80028D6D00123A5 -:1025C0005B429846E8E701235B429846E4E7012333 -:1025D0005B429846E0E701235B429846DCE7012333 -:1025E0005B429846D8E701235B429846D4E7012333 -:1025F0005B429846D0E701235B429846CCE7C04651 -:102600000869000007690000F0B583B004000F00FE -:1026100016001D00002848D00368002B48D04368EE -:10262000002B20D1012040423BE0042301AA216974 -:10263000606800F05DF800283DD1A37A002B03D03C -:102640002369E268934239D223891D4A934218D004 -:1026500001AA1288934214D001AB5B882269944688 -:102660006344043323612369626993421BD2226865 -:102670005289002AD9D0E2689A42D6D10433236124 -:10268000D3E7002D02D001AB1B882B8023690433D4 -:102690003B6001AB5B88338022699446634404331A -:1026A000236103B0F0BD0120FBE701204042F8E7C1 -:1026B00001204042F5E701204042F2E70120F0E727 -:1026C000FFFF000010B5002200E001329300064C2D -:1026D0001B59002B05D01C788442F6D10B600020DA -:1026E00001E00120404210BDA0000008704700003A -:1026F00070B5150044688C4214D9CA18944218D990 -:10270000611842787F2A1BD052B2002A1EDB0124B6 -:102710006442114B1B68D8682200104907F0BCFEC8 -:10272000200070BD20210E4B0E4AFF310E4807F0ED -:1027300095FE90210D4B0B4A49000B4807F08EFE89 -:102740001A00280007F044FF0024E9E72A0000F0FF -:102750006FF9041EE4D0DCE7EC01000844EB001044 -:10276000C8EA001098EC0010DCEA00102CEB001016 -:10277000F8B5150044688C420CD9CA18944210D997 -:10278000641842787F2A13D052B2002A34DB012029 -:102790004042F8BDA3211B4B1B4A49001B4807F0D0 -:1027A0005DFE48211A4B184AFF31184807F056FEC3 -:1027B000DA0506D1E205D00D002A09D15F0A06002C -:1027C00017E0A921134B104A4900104807F046FEB4 -:1027D0005421114B0C4AFF310C4807F03FFE2900F1 -:1027E000200002F017F980239B009C466444654456 -:1027F0000136BE42F3D3CCE72A00210000F040F9B5 -:10280000C7E7C046C8EA001084EC0010DCEA0010FC -:102810002CEB00106CEB00108CEB001070B5836893 -:10282000934211D38B4216D9541845685B199C42C8 -:1028300018D26D18531941787F291AD049B200294E -:1028400034DB0120404270BDBC211B4B1B4A4900B8 -:102850001B4807F003FE7A211A4B184AFF3118482B -:1028600007F0FCFDBD21184B144A4900144807F03D -:10287000F5FD6D0A6D025B0A5B029D4212D05B1B87 -:102880005C0A0020002CDED0013C6002401902F0FE -:1028900087F80028F6D094210C4B084AFF310848ED -:1028A00007F0DCFD280002F07BF8CCE711002800DF -:1028B00000F00EF9C7E7C046B8EB001070EC00104E -:1028C000DCEA0010CCEB0010E0EB001008EC00108C -:1028D00010B543787F2B08D05BB2002B02DB0120C0 -:1028E000404210BD00F0C6FBFBE780208000F8E707 -:1028F000012908D0022908D0002902D00120404235 -:1029000070470120FCE70220FAE70320F8E7000007 -:1029100010B543787F2B0BD05BB2002B02DAFF207F -:10292000C0B210BD034B044A0449054807F096FDA8 -:102930000020F5E724EC001058EC00101F02000006 -:10294000DCEA0010F8B5CE46474680B50700904651 -:102950001E00FFF7CDFE814600280FD10024B442AF -:1029600009D243461D5D3800FFF7D2FF854208D1EA -:102970000134E4B2F3E70123994602E001235B420C -:1029800099464846C0BCB946B046F8BDF8B50E00F9 -:102990001500002200E00132930020495B58002B13 -:1029A00004D019788142F6D11C0000E01C00002BF5 -:1029B0002ED063787F2B11D05BB2002B2BDA00F086 -:1029C00061FB0700A368D8190138390006F036FA10 -:1029D000336883420BD36268002414E0072802D1D5 -:1029E0008027BF00EEE700F04DFB0700EAE70C4B45 -:1029F0000C4A0D490D4807F031FDE300EB185F600C -:102A00001A60D21901348442F7D330600020F8BD37 -:102A100001204042FBE701204042F8E7A000000807 -:102A20002CEC001040EC001072020000DCEA0010F8 -:102A3000F0B5C64600B582B00E0017001C00437802 -:102A40007F20184000F0AEFA0500E8231B069C46E4 -:102A5000664400F0AFFA804600F0B0FA01900094AE -:102A60003B0032002900404604F0F6F9002804D16A -:102A7000002002B080BCB846F0BD01204042F8E71B -:102A8000F0B5C64600B582B00E0017001C004378B2 -:102A90007F20184000F086FA0500E8231B069C46BC -:102AA000664400F087FA804600F088FA01900094AE -:102AB0003B0032002900404604F048FA002804D1C7 -:102AC000002002B080BCB846F0BD01204042F8E7CB -:102AD000F0B583B00500002000F064FA0400E8239C -:102AE0001B06E818A3699D696D42054000F062FA73 -:102AF0000600A3699F6900F061FA00903B002A007C -:102B00002100300004F0C0FA002802D1002003B0F8 -:102B1000F0BD01204042FAE7F0B5C64600B58C682A -:102B20000A688423C3580F252B40073DED1A230064 -:102B3000AC4226D92B0024E055782D021678354377 -:102B4000D678360697783F043E4335439827C551DB -:102B500055792D0216793543A846D67936069579EA -:102B60002D042E4345463543C551D218E41A84231B -:102B7000C3580F252B40073DED1A2300AC4200D966 -:102B80002B00002B00D183E0082BD5D0012B24D0C3 -:102B9000022B26D0032B2BD0042B33D0052B3ED079 -:102BA000062B4CD0072B5DD053781B0215782B4396 -:102BB000D5782D069678360435432B4398268351D5 -:102BC00053791B0215792B43D5792D0697793F044C -:102BD0003D432B4383510823C7E716789025465180 -:102BE000C3E755782D021678354394268551BCE706 -:102BF00055782D0216783543942685519678902580 -:102C00004651B2E755782D0216783543D678360608 -:102C100097783F043E43354398268551A5E755787C -:102C20002D0216783543D678360697783F043E4312 -:102C300035439826855116799025465195E7557864 -:102C40002D0216783543D678360697783F043E43F2 -:102C500035439826855155792D02167935439426AA -:102C6000855182E755782D0216783543D678360699 -:102C700097783F043E4335439826855155792D0278 -:102C800016793543942685519679902546516CE7FF -:102C90000A608C60002C0CD1F924E4000359012255 -:102CA000934303518A61CB69002B02D0CB69012089 -:102CB000984780BCB846F0BDF8B50E004C69CA68AC -:102CC000C423C3580F21194023008C421CD90B0088 -:102CD0001AE0D825415911700F0A57700F0C9770E0 -:102CE000090ED17045591571290A5171290C91713C -:102CF0002D0ED571D218E41AC423C3580F251D40D8 -:102D00002300AC4200D92B00002B6DD0082BE0D063 -:102D1000012B1ED0022B20D0032B24D0042B2BD030 -:102D2000052B33D0062B3ED0072B4BD0D821435850 -:102D300013701D0A55701D0C95701B0ED3704358EF -:102D40001371190A5171190C91711B0ED37108235B -:102D5000D0E7D02141581170CCE7D42141581170EF -:102D6000090A5170C6E7D42141581170090A5170FF -:102D7000D02141589170BDE7D821415811700D0AFA -:102D800055700D0C9570090ED170B3E7D8214158DC -:102D900011700D0A55700D0C9570090ED170D0216F -:102DA00041581171A6E7D821415811700D0A55708C -:102DB0000D0C9570090ED170D42141581171090A7A -:102DC000517197E7D821415811700D0A55700D0CBB -:102DD0009570090ED170D42141581171090A5171B1 -:102DE000D0214158917185E7F2607461002C0DD1BA -:102DF000F922D200835802218B4383500323B3610D -:102E0000336A002B02D0336A032098477461F8BDFF -:102E100010B5264A264BD358DA070DD49A0716D494 -:102E20005A071FD5234B05229A61204AF823DB005D -:102E30000421D150D35809E01C4C1E492000FFF753 -:102E40006BFEF823DB000122E250E35810BD174C63 -:102E500018492000FFF730FFF823DB000222E25080 -:102E6000E358F3E71A0709D5124B06229A610F4A75 -:102E7000F823DB000821D150D358E7E7DA0609D55B -:102E80000C4B07229A61094AF823DB001021D1502C -:102E9000D358DBE79B06D9D5064B08229A61034A33 -:102EA000F823DB002021D150D358CFE70000424067 -:102EB000CC070000805E010810B52E4C2E4A03217D -:102EC000200001F0EBFE11220321200001F00CFE96 -:102ED0002A4A0421200001F0E1FE112204212000F1 -:102EE00001F002FE264A0521200001F0D7FE112242 -:102EF0000521200001F0F8FD224A0621200001F002 -:102F0000CDFE11220621200001F0EEFD1E4A072110 -:102F1000200001F0C3FE11220721200001F0E4FD92 -:102F20000021022004F052FB0221022004F07EFB6B -:102F3000022004F017FB1549154805F0BBF8FA22EA -:102F4000144B92001449154802F040FD041E0FD1A5 -:102F50000F4B00229B5E002B06DB1F2213401E3A04 -:102F60009A4013000E4A13600A490C4802F00CFF05 -:102F7000200010BD8005314044ED001010ED001020 -:102F8000DCEC0010A8EC001078ED0010112E001001 -:102F9000E4010008805E0108ACED00100000424032 -:102FA00000E100E0024B1B685B688000C05870477E -:102FB000385F0108004870470000424000487047F1 -:102FC000805E010810B50400FFF776FF002800D0EE -:102FD00010BD044B1C60044A2100044803F02EFE7F -:102FE000F6E7C046385F0108805E010800004240F5 -:102FF00070B51D4B5B68032831D00AD8012811D069 -:10300000022803D11B6802221A700EE00120404200 -:1030100024E0042803D11B6808221A7005E001206F -:1030200040421BE01B6801221A7001380F4A43001E -:10303000191889008C581918890051184D680E7A92 -:103040000B4A16722900200001F028FE32002900E8 -:10305000200001F049FD0448FFF7B4FF70BD1B6874 -:1030600004221A70E1E7C046D40100088C01000870 -:10307000E4000008024B5B681B689B69586A704754 -:10308000D4010008024B5B681B689B699869704714 -:10309000D401000870B504001D4D280003F040FB6A -:1030A0002B685B005B082B60022004F073FA194B5D -:1030B00000229B5E002B0BDB1F2213401E3A9A401E -:1030C0001300154980228B50BFF34F8FBFF36F8FD2 -:1030D000104B59880020185E04F0BAFF013C6000D4 -:1030E000001980000D4BC05801F0D4FC0C4C20009E -:1030F00001F0D0FC200001F0CDFC200001F0CAFC62 -:10310000200001F0C7FC200001F0C4FC70BDC046E7 -:1031100000004240E401000800E100E08C010008EA -:1031200080053140074BC200D05A9B1859889A88B5 -:10313000DB88084310431843C0B2431E9841C0B215 -:103140007047C046845F010870B515000024002C4C -:1031500002D0124C200070BDA3005B195B00104A26 -:103160009A5A6B000F4E9B5B9A4201D30134EEE7F3 -:1031700000230B704C700C4B03602000FFF7D2FF54 -:10318000002807D00649A20055196D006B5A01337B -:103190006B52DFE7044800F0FDFBF3E7011000008D -:1031A000845F0108BCED00100000104070B50600FF -:1031B0000D004C78A3009B185B0010495B5A002B54 -:1031C00004D0A400A4186400013B63526878FFF7A0 -:1031D000A9FF002800D070BD094B1B68002B05D04B -:1031E0003368002B05DB01232B70F4E700F026FB8E -:1031F000F6E7300000F014FCF5E7C046845F0108F4 -:10320000D85F010870B504000D0000280BD0211D07 -:103210002A002000FFF798FF002800D1A571434243 -:103220005841C0B270BD01BEF1E710B5002803D00F -:103230000379002B02D010BD01BEF9E782790100AD -:1032400001C9FFF7B3FFF6E730B583B005000C0006 -:10325000002801D0002901D103B030BD0321684608 -:10326000FFF7D0FF002803D16846FFF7DEFFF3E742 -:103270000098A3B2074A11682D228A5C1F2A04D83D -:103280000022290000F07AFCEEE70022290000F07D -:1032900003FDE9E7D45F010810B5041E01D0002941 -:1032A00000D110BDFFF7D0FF03212000FFF7AAFFD8 -:1032B000F7E7000070B505000C1E22D0002B23D0CC -:1032C000006816490E682D21715C1F2911D8210054 -:1032D00000F05EFD00281AD12868104B1A682D23D3 -:1032E000D35C1F2B09D8210000F008FE002811D163 -:1032F00070BD210000F0D6FEECE7210000F060FF79 -:10330000F4E701204042F3E701204042F0E70120CA -:103310004042EDE701204042EAE7C046D45F0108A1 -:1033200070B5002913D0002A14D0CC68002C14D01A -:1033300000680D4C25682D242C5D1F2C04D800F04E -:10334000F3FD00280CD170BD00F050FFF9E701201B -:103350004042F8E701204042F5E701204042F2E711 -:1033600001204042EFE7C046D45F010810B50029B4 -:1033700013D0002A14D0CB68002B14D000680D4B5A -:103380001C682D23E35C1F2B04D800F019FE0028D5 -:103390000CD110BD01F0C6F8F9E701204042F8E772 -:1033A00001204042F5E701204042F2E7012040427F -:1033B000EFE7C046D45F010810B59821FFF76CFF16 -:1033C00010BD10B50B0001000831002B05D1022201 -:1033D00003003833FFF76EFF10BD0122F8E710B588 -:1033E0000C00131E01D1002010BD01000831220085 -:1033F000FFF796FFF8E710B50A0001000831FFF764 -:10340000B5FF10BD10B50549C02252008B580120F0 -:1034100003438B5005F008FD10BDC0460000264058 -:103420000349C02252008B58012083438B507047C0 -:103430000000264070B50400421E304B9A4256D818 -:103440002F4B1B78002B55D12D4B01221A702D4B81 -:103450001B78002B0ED0FFF7E3FF2B4B1C800023C3 -:103460000C2B1FD89900294A52185288A24212D90F -:103470000133F5E7264D8032FF32AB580126334346 -:10348000AB5005F0D1FCE122D200AB58B343AB50B6 -:103490001C4B1E70DFE70A001C49525AA24202D997 -:1034A000140000E00C231B4A1370FF251D40280068 -:1034B00005F0A0FC2004000C06F02CFE164A174B69 -:1034C00005F06AFF05F07EFE82B211235B1B01202E -:1034D0009840101A80B20E4AC2235B00D358C0181D -:1034E00080B205F06FFCFFF78DFF002070BD01205A -:1034F0004042FBE701204042F8E7C0466F1700005A -:10350000905F0108915F01088E5F0108C4ED001013 -:10351000000026408C5F010833DFC14F1C409F3FF5 -:10352000064AD0239B00D05803E0044AD0239B00D6 -:10353000D058431CF9D0C0B27047C0460000654067 -:1035400010B50400002003E02100034801F0E8FE6C -:103550000028F9D010BDC0460000654070B50600D7 -:103560000D00002102F0AAF80021012003F016FF4F -:10357000040004F01DFDE9004B08C01805F05EFCD6 -:10358000421E002C08D0002C0CD0326880231B0671 -:1035900013433360200070BD0021012003F03CFE86 -:1035A0000400F0E70021012003F0B6FE0400ECE780 -:1035B00070B50C001600002901D0002509E0002597 -:1035C000280070BD2078094B1870FFF7B9FF01344F -:1035D0000135B542F4DA23780A2BF3D1034B1B787B -:1035E0000D2BEFD00D20FFF7ABFFEBE7D05F01080D -:1035F00070B50C001600002901D0002503E000255D -:10360000280070BD0134B542FADAFFF789FF207057 -:1036100001350A28F4D00D28F4D1F1E710B50400E3 -:103620000A4A0B490B4801F08FFE002808D00028F9 -:1036300005D1084A116880231B060B43136010BD97 -:1036400021000448FFF78AFFF1E7C046945F0108B4 -:10365000B8DE00100000654070B505000C0007E002 -:103660000B4B1B689800C0184000FCF78DFF013C15 -:10367000002C0BD082229200AB58DB05DB0DA95841 -:10368000C90B01220A409B18002BE9D170BDC0462E -:103690009000000810B5024801F0DEFF10BDC046E2 -:1036A00000006540014B18607047C046D45F0108B8 -:1036B000F0B51F001D4B1E68002E2DD0B36B1B18DC -:1036C0001B68346D2418E41A631E9C41E3B29C46C7 -:1036D000B368C41825680F242C40062CF8D81306AC -:1036E000F26882183B43136063460B4313D00F4BC1 -:1036F0001B689B68C3181B68DB03F8D50C4B1A6862 -:103700002D23D35C1F2B09D8084B1B681B681B1883 -:103710001B681B06F8D4F0BD3300D2E7034B1B68CF -:103720001B681B181B68002BF8D1F4E7D85F010851 -:10373000D45F010810B50400E0239B05802200211E -:10374000FFF7B6FFD0239B05802200212000FFF762 -:10375000AFFFC0239B05802200212000FFF7A8FFB8 -:10376000B0239B05802200212000FFF7A1FFA023AA -:103770009B05802200212000FFF79AFF90239B05E4 -:10378000802200212000FFF793FF80239B058022E9 -:1037900000212000FFF78CFFE0235B058022002141 -:1037A0002000FFF785FFC0235B0580220021200059 -:1037B000FFF77EFFA0235B05802200212000FFF79A -:1037C00077FF80235B05802200212000FFF770FF38 -:1037D000C0231B05802200212000FFF769FF802302 -:1037E0001B05802200212000FFF762FF8023DB04FD -:1037F000802200212000FFF75BFF002380220021B0 -:103800002000FFF755FF0B4B1B689B080A4A116805 -:103810002D228A5C1F2A0AD80C229340F02292059E -:103820001343802200212000FFF742FF10BD0D222C -:10383000F3E7C046DC5F0108D45F0108054B1A6856 -:103840002D23D35C1F2B03D8034A044B1A60704707 -:10385000034AFAE7D45F0108B8EE0010D85F010808 -:103860000CEF0010F0B583B01400444B1B68002B24 -:1038700075D0002918D0002973D0002C73D0802275 -:103880001202944200D972E080225201944239D04F -:1038900021D88022D200944236D00ED98022120143 -:1038A000944216D1782225E0002AE4D11A6D11182D -:1038B000334A1268D46CA400DDE78022520094429F -:1038C00024D00132FF32944201D17E2212E02D4DEC -:1038D0004AE02C4D48E08022D201944218D0802248 -:1038E0001202944201D1002204E08022920194420B -:1038F0003FD16022224D2E682D25765D1F2E09D9DD -:10390000671E08E07022F5E77C22F3E77F22F1E7EB -:103910004022EFE71C4F01910D003D4039422AD172 -:103920001F2E02D91202194942509B6B1B18019A93 -:103930001A60A308124A11682D228A5C1F2A0CD82B -:103940000C2293401A00F0239B0513438022002190 -:10395000FFF7AEFE0E4B1C6006E00D22F1E7094DAD -:1039600002E0084D00E0074D280003B0F0BD054D12 -:10397000FAE7044DF8E7034DF6E7C046D85F0108C3 -:10398000D45F01080B003200FF3F000088140000E4 -:10399000DC5F010810B50400FFF750FF1A4B1A68EE -:1039A0002D23D35C1F2B10D8184B2360184B1B689A -:1039B0005B6B1B1901221A60164B1B68002B16D07B -:1039C0002000FFF7B7FE002010BD2368124A134005 -:1039D00023600F4B1B685B681B19104A1A60226832 -:1039E00080231B06134323600323A360DEE7084BF9 -:1039F0001B68196D6118044B1B68DA6C920020007B -:103A0000FFF730FFDCE7C046D45F01080300008009 -:103A1000D85F0108DC5F0108FFFFFE7F01000200A4 -:103A2000084B1A682D23D35C1F2B06D80023036094 -:103A3000054B00221A60002070470023036083605A -:103A4000F6E7C046D45F0108DC5F010870B50D4C95 -:103A50002568AC68241826680F243440042CF6D856 -:103A6000EC680419084D2560064C2568ED68451979 -:103A700029602168C96841180A602268D2688018E4 -:103A8000036070BDD85F01081002004270B50F4C92 -:103A90002568AC68241826680C242642F7D1EC6807 -:103AA00004190B4D2560094C2568ED6845192960FE -:103AB0002168C96841180A602268D26882181360B8 -:103AC0002368DB68C018049B036070BDD85F0108E1 -:103AD0001032004370B51D0004AB1E78084A14680C -:103AE000A3681A1812681307F8D409060223B34012 -:103AF00019430123AB40E26880181943016070BD8F -:103B0000D85F010830B51D000B4A1468A3681A1865 -:103B100012681307F8D409060323049A9340194343 -:103B20000223039A934019430123AB40E2688018B3 -:103B30001943016030BDC046D85F010810B582B09E -:103B4000040008001100002B01D102B010BD0200DA -:103B50002000FFF77BFF08230093043B0022502145 -:103B60002000FFF7B7FF044B1B681B681B191B687D -:103B7000DB06F8D4E9E7C046D85F010810B582B08B -:103B8000040010001A1E01D102B010BD0300200075 -:103B9000FFF75CFF0C230093043B0022512120001F -:103BA000FFF798FF034B1B681B681B191B68DB069C -:103BB000F8D4E9E7D85F0108F0B5002B00D1F0BDDB -:103BC0001E00314C2568AC68241827680F243C403F -:103BD000042CF6D8862464010459002CFADBEC6826 -:103BE00004192A4D2560284D2C68E46804192260C8 -:103BF0002A68D26882181660234A1468A2681218CC -:103C000015680F222A40042AF6D8E2688218204C50 -:103C100014601D4C2268D268821811602268D26834 -:103C2000821816600EE0184A11688A681218146823 -:103C30000F222240062AF6D8CA6882181549116058 -:103C4000103B9BB20F2BEED8002B07D10E4B1B68FD -:103C50001B681B181B68002BF8D1B0E70A4A1168D3 -:103C60008A68121814680F222240062AF6D81B040C -:103C7000C02212021343CA68821808210B43802114 -:103C8000C9050B431360E1E7D85F01080800007124 -:103C90000C00007008C01040F0B5002B00D1F0BD42 -:103CA0001F00264C2568AC68241826680F24344071 -:103CB000042CF6D8EC680419214D25601F4D2C68A2 -:103CC000E468041921602968C96841180F600F2B46 -:103CD00014D91A490C68A16809180D680F212940E8 -:103CE0000629F6D8E168411886256D03154384241A -:103CF000E4052C430C60103B9BB2E8E7002B07D196 -:103D00000E4B1B681B681B181B68002BF8D1C6E7FD -:103D10000A490C68A16809180D680F212940062975 -:103D2000F6D81B04C02109020B43E16841181A436D -:103D30008423DB051A430A60E2E7C046D85F010826 -:103D40000C00007010B582B004000B0011000722B7 -:103D500058680240C020800022501A699B69009276 -:103D60002000FFF793FE0C230193043B0093043BD8 -:103D700000224C212000FFF7C5FE044B1B681B6886 -:103D80001B191B685B07F8D402B010BDD85F01088F -:103D900010B5002B01D0002900D101BE062A00D9A0 -:103DA00098E090004C4C205887468B6018004030BB -:103DB000086154338B610A6000234B60474BCB6230 -:103DC0004023CB602C3B4B614B622D33FF33CB61E7 -:103DD000002010BD8B6018004030086160338B619B -:103DE0000A6001234B603E4BCB624023CB60203BFB -:103DF0004B61043B4B62E433CB610020E9E78B600D -:103E000018004030086160338B610A6001234B6009 -:103E1000344BCB624023CB60203B4B614B62E033A1 -:103E2000CB610020D5E78B60180080300861C0337B -:103E30008B610A6002234B602B4BCB628023CB60EB -:103E4000403B4B61103B4B62A0239B00CB610020A9 -:103E5000BFE78B60180080300861C0338B610A6057 -:103E600002234B60214BCB628023CB60403B4B61F4 -:103E70004B62A0239B00CB610020AAE78B60180057 -:103E800080300861C0338B610A6002234B60184B9D -:103E9000CB628023CB60403B4B61243B4B62A02331 -:103EA0009B00CB61002094E78B6018008030086194 -:103EB000C0338B610A6002234B600E4BCB628023C0 -:103EC000CB60403B4B61203B4B62A0239B00CB610E -:103ED00000207EE708487CE760EF00107CEF0010D0 -:103EE00090EF0010B0EF0010D0EF001010F00010B5 -:103EF00050F0001090F000100B00320010B50A1EB8 -:103F00000ED000238B620B624B69002B01D1054858 -:103F100010BD0969D26A9BB2FFF710FE0020F7E7D7 -:103F20000048F5E70B003200F0B5D6464F4646464E -:103F3000C0B581460E001700002931D0002A31D0CB -:103F4000CA689046002A2FD0002B34D00A6AD218B3 -:103F50000A628C6A1D0014E043461B1B9A46B36834 -:103F6000191953469BB23A004846FFF7E7FDB2687D -:103F700031004846FFF7E6FE4346E41A2D19574440 -:103F800000242B199845E7D9B362002D0DD0B168F4 -:103F90000919ABB23A004846FFF7D0FD002504E00E -:103FA000064D02E0054D00E0044D2800E0BCBA4695 -:103FB000B146A846F0BD1D00F7E7C0460B00320031 -:103FC000F0B5DE4657464E464546E0B583B0009014 -:103FD0000E00140000295FD0002A5FD00D698B68A5 -:103FE0009846CF688B6A9A460B6ADB009946802F09 -:103FF0002DD038230193802342465146535401313A -:104000004144BBB29B4652469B1A9BB2013B9BB2BA -:1040100000220098FFF7B2FD019B53451AD93B1FC0 -:104020004A46120E4146CA544B461A0CFB1ECA544D -:104030004B461A0ABB1ECA54013F4A46CA5542465D -:1040400031000098FFF77EFE706A80081BE0702345 -:104050000193D0E742463100009B9A461800FFF7D3 -:1040600071FE5B46002241465046FFF787FDD6E7CA -:10407000EB782370AB7863706B78A3702B78E37068 -:104080000434043501380028F2D103B0F0BCBB463B -:10409000B246A946A046F0BD0148F6E70048F4E75D -:1040A0000B00320010B5002B01D0002900D101BE59 -:1040B000062A00D970E09000384C205887468B6063 -:1040C00040330B610A6069234B60354BCB62402360 -:1040D000CB602C3B4B614B62002010BD8B604033AA -:1040E0000B610A606A234B602E4BCB624023CB608E -:1040F000203B4B614B620020EFE78B6040330B614C -:104100000A606A234B60284BCB624023CB60203B84 -:104110004B61043B4B620020DFE78B6080330B6117 -:104120000A606B234B60214BCB628023CB60403B0A -:104130004B614B620020D0E78B6080330B610A60DB -:104140006B234B601A4BCB628023CB60403B4B61AF -:10415000103B4B620020C0E78B6080330B610A602C -:104160006B234B60134BCB628023CB60403B4B6196 -:10417000203B4B620020B0E78B6080330B610A600C -:104180006B234B600C4BCB628023CB60403B4B617D -:10419000243B4B620020A0E708489EE7D0F00010C7 -:1041A000ECF0001020F1001000F1001080F1001080 -:1041B00040F1001000F20010C0F100100B003200BE -:1041C00010B50A1E0ED000238B620B624B69002BC8 -:1041D00001D1054810BD0969D26A9BB2FFF7ECFC1A -:1041E0000020F7E70048F5E70B003200F0B5D646AF -:1041F0004F464646C0B504009146002900D180E1F3 -:10420000002A00D17FE1CE68002E00D17DE1002B95 -:1042100005D11800E0BCBA46B146A846F0BD0A6A0E -:10422000D01808628D6ABA480768BA68101902681F -:104230000F2010400628F6D8F8682018C827FF0578 -:104240000760B34800680068001900680028F8D1CA -:104250000A6990464A699446AD480768BA681019D9 -:1042600002680F2010400428F6D8F8682018A94FDB -:104270000760A74F3868C068201842460260386857 -:10428000C0682018624602604A699446A0480768E0 -:10429000BA68101902680F2010400628F6D8F8688E -:1042A0002018CC27FF05624617430760984800682E -:1042B0000068201802689246002AF7D194480268E4 -:1042C0009068001907680F2038400628F6D8D06893 -:1042D0002018CA22D2050260002D48D18C480268FD -:1042E0009068001907680F2038400428F6D8862007 -:1042F000400120580028FADBD0682018864A026066 -:10430000834A94461068C06820184A460260624694 -:104310001268D268A21813605A19964257D8721BB5 -:1043200090467B4A10688268121917680F223A403B -:10433000062AF6D82A02C068201847461743CC221E -:10434000D2053A4302604A689046714A1068826812 -:10435000121917680F223A40062AF6D8C268A21826 -:10436000404600061060AD1B5B195546D4E78A68CD -:104370009046674802689068001907680F20384027 -:104380000428F6D8D0682018624A0260604A106893 -:10439000C0682018474607601068C068201805608C -:1043A0005B4802689068001907680F2038400628AB -:1043B000F6D8D0682018CC22D2052A43026054488F -:1043C00000680068201800680028F8D186E78A6233 -:1043D000002B4ED18D6A002D64D10E694D694C4B76 -:1043E0001A6893681B1918680F230340042BF6D82A -:1043F000D368E318494A1A60454A1368DB68E31832 -:104400001E601368DB68E3181D60414B1A689368EF -:104410001B1918680F230340062BF6D8D368E3183E -:10442000CA22D2051A604869394B1A6893681B1969 -:1044300019680F230B40062BF6D8D368E318CE2259 -:10444000D20502431A60324B1B681B68E3181868D8 -:104450000028F8D12E4B1A6893681B1919680F238E -:104460000B40062BF6D8D368E418CA23DB0523607B -:10447000D0E6274A10688268121916680F22324067 -:10448000062AF6D82D02C268A2182B43CC25ED05CA -:104490002B4313601E4B1B681B68E3181B68002B23 -:1044A000F8D197E78E681A4B1A6893681B19186839 -:1044B0000F230340042BF6D8D368E318174A1A6079 -:1044C000134A1368DB68E3181E601368DB68E3189F -:1044D0001D608D6A0E4B1A6893681B1918680F23AC -:1044E0000340062BF6D8D368E318CE22D2052A4320 -:1044F0001A60074B1B681B68E3181B68002BF8D178 -:104500006BE7074886E6064884E6054882E6C0462B -:10451000D85F010808000070080000710C000070EE -:104520000B003200F0B5DE4657464E464546E0B534 -:1045300083B003000192002900D198E1002A00D144 -:1045400097E1CC688E6A0D6A6A0F9346ED00802C65 -:1045500000D171E138229446C7480768BA68D0187C -:1045600002680F2010400628F6D8F8681818C827E7 -:10457000FF050760C04800680068C0180068002890 -:10458000F8D10A6991464A699046BB480768BA68FB -:10459000D01802680F2010400428F6D8F8681818C0 -:1045A000B64A0260B44A92461068C06818184A4673 -:1045B000026052461068C0681818424602604A6994 -:1045C0009146AD480768BA68D01802680F201040BD -:1045D0000628F6D8F8681818CC22D2054F4617439B -:1045E0000760A54800680068181800680028F8D11E -:1045F000A1480768BA68D01802680F201040062842 -:10460000F6D8F8681818CA27FF0507608A68904628 -:1046100099480768BA68D01802680F20104004282B -:10462000F6D8F8681818954F0760934F3868C06837 -:104630001818424602603868C068181806608E482C -:104640000768BA68D01802680F2010400628F6D80C -:10465000F8681818CC27FF053743076086480068BC -:104660000068181800680028F8D183480768BA68FD -:10467000D01802680F2010400628F6D83202914662 -:10468000F8681818802290464A4647463A439146B1 -:10469000D022D20590464A4647463A430260B44586 -:1046A00000D8CCE0621F94465A46D2B29046724877 -:1046B0000668B268D01807680F2038400628F6D878 -:1046C00062461702F068181842461743D026F605CE -:1046D00037430760221F90462A0E944666480668B4 -:1046E000B268D01807680F2038400628F6D842462E -:1046F0001002F6689E1962461043D027FF05384322 -:104700003060E21E9046280CC2B294465A480668B1 -:10471000B268D01807680F2038400628F6D84246FD -:104720001002F6689E1962461043D027FF053843F1 -:104730003060A21E9046280AC2B294464E480668CF -:10474000B268D01807680F2038400628F6D84246CD -:104750001002F6689E1962461043D027FF053843C1 -:104760003060013CEAB2944643480668B268D0180B -:1047700007680F2038400628F6D82502F068181878 -:1047800062461543D024E405254305604E683A4847 -:104790000468A268D01805680F2028400628F6D8BB -:1047A000E068181836060660334800680068181874 -:1047B00000680028F8D14F6A2F4C2568AA68D418E1 -:1047C00026680F243440042CF6D8EC681C192C4DB4 -:1047D0002560294D2C68E4681C19019A22602A681A -:1047E000D2689A181760244A1468A268D21815680B -:1047F0000F222A40062AF6D8E2689A18CA24E4054D -:1048000014604D6A1C4A11688A68D21814680F2215 -:104810002240062AF6D8CA689A18CE21C90529432B -:104820001160184A9A58002AFBDB03B0F0BCBB4663 -:10483000B246A946A046F0BD702294468CE64A686E -:1048400090460D480668B268D01807680F203840B7 -:104850000628F6D8F068181842461606066006487C -:1048600000680068181800680028F8D11AE70648A0 -:10487000DBE70548D9E7C046D85F010808000070AB -:104880000C000070F01000000B003200C005434225 -:104890005841C0B270470000A0231B0698422AD09E -:1048A00014D8802829D008D980235B0098422AD0C8 -:1048B0001B4B984209D01B4807E010281FD0402806 -:1048C00001D1194801E000281BD17047174B9842CD -:1048D0001BD007D9164B98421ED0164B98421DD1BB -:1048E0001548F2E7154B984211D0154B984211D15B -:1048F000A420C003E9E70020E7E71248E5E71248F3 -:10490000E3E70848E1E70648DFE71048DDE7A020D5 -:10491000C003DAE70348D8E70D48D6E70148D4E7F3 -:1049200006005200FF00520002005000030000F099 -:10493000040000F0050000F003005200090000A090 -:10494000010000F00500520001005000010052007B -:104950000200520010B50F4B1A683323D35C002BB2 -:1049600000D101BE0B4B1C68BC23E358226A94465D -:1049700063441B68002B0BDB074B1868FFF78CFFA9 -:10498000636801229A6063689B68002BFBD110BDAD -:104990000248FCE7D45F0108E05F01080200500014 -:1049A00010B50400FFF772FF002801D1134810BDB5 -:1049B000FBF700FE124B134A1A605C6000229A60FB -:1049C000DA60114B1A685423D35C002B10D003F02B -:1049D000FCFAFA21890004F031FA01000B4804F0D6 -:1049E0002DFA0B4BC1188020400009F05DFADEE77C -:1049F00080200021400009F057FAD8E70600520055 -:104A0000E05F01080001001CD45F010860F5900020 -:104A10009808000070B504000D00FFF737FF00286C -:104A200027D0002D27D0FBF7C5FD144B144A1A6080 -:104A300000225A609C60DD60124B1A685223D35CDE -:104A4000002B10D003F0C1FAFA21890004F0F6F926 -:104A500001000D4804F0F2F90C4BC1188020400011 -:104A600009F022FA06E080200021400009F01CFA3B -:104A700000E0074870BD0648FCE7C046E05F01085B -:104A800000010005D45F0108C0EA210148260000AA -:104A90000600520030B5134A11688B69C31ADB094E -:104AA00049691B01C91800230360812415682C5D26 -:104AB00004192360822415682C5D04192360832463 -:104AC00015682C5D04192360802415682C5D041979 -:104AD0002360836114688422A25C801803600B60E9 -:104AE0004B6030BDD45F010810B5072900D901BE65 -:104AF0001F2314009C4300D001BE104B1B689C690F -:104B0000001BC0095B690001181803290AD8046852 -:104B1000C9001F238B409C431F231A408A40224315 -:104B2000026010BD04394468C9001F238B409C43B8 -:104B30001F231A408A4022434260F2E7D45F0108F3 -:104B4000F8B506000C0015001F0006AB1A780729FF -:104B500000D901BE0F232900994303D1012D01D0B3 -:104B6000092D00D101BE012F00D901BE1F23110064 -:104B7000994300D001BE21003000FFF7B5FF336834 -:104B800001210A00A24093433940A14019433160FA -:104B9000074B1A688123D05C86193268A400723BE7 -:104BA0001900A1408A432B40A34013433360F8BD52 -:104BB000D45F0108072900D901BE012A00D901BE2E -:104BC00001238B40002A01D1436070478360FCE7DA -:104BD00030B50400072900D901BE0F231000984307 -:104BE00003D1012A01D0092A00D101BE8900074B57 -:104BF00018688123C05C00190468723B1D008D4059 -:104C0000AC4313408B402343036030BDD45F0108A5 -:104C100030B50300072900D901BE012A00D901BE21 -:104C2000074804688220205CC018046801231D0026 -:104C30008D40AC4313408B402343036030BDC046DE -:104C4000D45F010830B5082900D901BE012A00D976 -:104C500001BE846901231D008D40AC4313408B408D -:104C60002343836130BD000030B50300082900D91B -:104C700001BE032A00D901BE49000748046880200C -:104C8000205CC018046803231D008D40AC43134012 -:104C90008B402343036030BDD45F0108F8B5CE4696 -:104CA000474680B507000E001400002800D1B1E08F -:104CB000002A00D1B0E0072900D901BE2368012BEA -:104CC00000D901BE63680F221900914303D1012B63 -:104CD00001D0092B00D101BE237A1F22934300D0BB -:104CE00001BEE368032B00D901BE2369012B00D963 -:104CF00001BE6369012B00D901BE236A012B00D9D3 -:104D000001BE636A012B00D901BEA36A012B00D941 -:104D100001BEE36A032B00D901BE236B072B00D928 -:104D200001BEE369032B00D901BEA369012B00D9A1 -:104D300001BE01252B00B3407000103003229146C4 -:104D4000110081400B439C46344B984683234146D7 -:104D50000968C95CC9190B68624693439C46A369FC -:104D60002B40B340624613439C46E2694B461340D6 -:104D70001A008240634613430B60626831003800BA -:104D8000FFF726FF227A31003800FFF7ADFEE26818 -:104D900031003800FFF768FF226931003800FFF763 -:104DA00051FF626931003800FFF732FF43461A684D -:104DB0008423D25CBA1810687B3398469843236AE0 -:104DC0001D40636A5B009C46022361460B401D4305 -:104DD000A36A9B009C46042361460B402B43E16A77 -:104DE000C90018250D402B43216B4D014146294038 -:104DF0000B43B100FE25AD0029408B4003431360F7 -:104E0000226831003800FFF7D5FE0020C0BCB9464B -:104E1000B046F8BD0248F9E70148F7E7D45F01085A -:104E200001005A00084B1A68BC23D3581B181B6892 -:104E3000002B07DA0B0C00D001BE0904090C4160FD -:104E4000002070470148FCE7D45F010801008A0098 -:104E50000368002B08DAC2600B0C00D001BE090405 -:104E6000090C8160002070470048FCE701008A00BF -:104E700000290BD0074B1A68BC23D3581B181B689A -:104E8000002B05DAC3680B600020704701BEF1E714 -:104E90000148FAE7D45F010801008A00034B1B6850 -:104EA000002B00D07047014B1860FBE7046001083D -:104EB00070B5040023480068002840D021480568E8 -:104EC0002C2060432818FF2425001D4005601E0A81 -:104ED000344044601B0C83601B4B1C683323E35C31 -:104EE0009D4200D301BE184B1C68BA23E35A6B43A2 -:104EF000256AAC466344036143683425645DA3427C -:104F000000D301BE104C2468246A80335B01E4188E -:104F1000446183681D0C00D001BE1D0C00D001BE91 -:104F20001B041D0C2B43A360C2610162002383613B -:104F3000049B002B02D000229B5E838170BD01BECA -:104F4000BCE7C04604600108D45F0108F0B58FB02B -:104F5000041E44D06368032B00D901BEE36A002B12 -:104F60003FD0236B002B3ED007AA1300210061C95C -:104F700061C321C921C302AE230014333100A1CB88 -:104F8000A1C121CB21C10821535E0CAD2B80174B51 -:104F90001B681B8F079989B25B186B80089B0D9368 -:104FA0000B9B0A980095A26AE16AFFF781FF069BB6 -:104FB0000598002200920021FFF77AFF216B28005C -:104FC00003F078F80022AB5E002B06DB1F221340B3 -:104FD0001E3A9A401300064A13600FB0F0BD01BE9E -:104FE000B8E701BEBDE701BEBEE7C046D45F010819 -:104FF00000E100E0F0B504000800002A2DD01C49B3 -:10500000096800292BD01A4909682C256C430C1912 -:105010004543491901263500486885402D046068DC -:1050200086402769002F1CD0886900281BD13F6863 -:10503000002F1ADA17683F043F0C17603D431560D4 -:105040002569EA6001228A614B622369320C00D033 -:1050500001BE3604360C9E60F0BD01BECFE701BE36 -:10506000D1E70448F8E70448F6E70348F4E7C04608 -:105070000460010804028A0007028A0070B582B049 -:1050800004000023019300282BD02369002B2AD091 -:105090006369002B29D0236A002B28D06369DD685F -:1050A0002A0C0BD012041A601B682069204B1A6866 -:1050B000BC23D3581B181B68002B1ADB2D042A0CA9 -:1050C000002D0AD063691A601B68636A002B2AD01E -:1050D0009847002363620023A36163691B6802B0E1 -:1050E00070BD01BED1E701BED2E701BED3E701BE6C -:1050F000D4E701A9FFF7BCFE00280ED10198026891 -:10510000160CFF231340E2699A4207D99B00226ADA -:10511000D358002B02D0984700E0002631002069C8 -:10512000FFF780FECAE7A36A002BD4D09847D2E7E6 -:10513000D45F010810B50200064B1B68002B07D096 -:10514000044B18682C235343C018FFF797FF10BD7A -:1051500001BEF5E70460010870B50C001D4B1A682C -:105160003323D35C834230D9002930D00B68DB066F -:1051700001D019482AE03323D35C984200D301BE02 -:10518000144B1B681D6ABA229B5A58432D18134EA4 -:1051900035602368DA080021606805F022FA0021F2 -:1051A0002800FFF73FFE306822000021FFF750FE85 -:1051B000002801D00A4809E0084B18680021FFF7D1 -:1051C00031FE002802D0064800E0034870BD0248C6 -:1051D000FCE7C046D45F010803018A0008600108AB -:1051E00001018A0010B50B00002A05D0002A1DD04D -:1051F000002B15D10E4810BD0029F7D10D4A1168BA -:1052000033228A5C904200D301BE0A4A11680A6ABE -:10521000BA24095B4843121807490A601800EAE7F4 -:1052200006490B604A60FFF797FFE4E70048E2E7B2 -:1052300003018A00D45F01080860010830070008F4 -:10524000F0B5C64600B50C00194B1B68DE68336824 -:1052500083422BD947091F23184001258540002987 -:1052600018D000239846124B18680368002B17DAF1 -:105270007368BF00DF193B681D420FD0AB433B6032 -:1052800000250021FFF7CEFD002C0BD0280080BCAC -:10529000B846F0BDFBF781F98046E4E7054DF0E73D -:1052A000054DF1E74046FBF77CF9EFE7034DEDE7ED -:1052B00008600108020188000301880004018A00D7 -:1052C0000A4B1B68DB681A6882420BD941091F220E -:1052D00010401E3A8240586889000B581A4203D089 -:1052E000034800E0034870470348FCE708600108F2 -:1052F0000101880004018A0000018800074B1B6837 -:105300009B6CC340DB0700D401BE044B1B681B69C8 -:1053100010308002C3580F2018407047D45F010836 -:1053200003681B050CD5802282239B00C358DB0534 -:10533000DB0D934206D090239B00C15001207047A3 -:105340004022F1E70020FAE7F0B5002800D16CE137 -:10535000002900D16BE10B78022B00D901BE4B7BF9 -:10536000023BDBB2062B00D901BE8B7B002B04D0A5 -:10537000022B02D0032B00D001BE2123CB5C012BDA -:1053800000D901BE2823CB5C012B00D901BE0B78CC -:10539000012B07D98B7F002B09D04B68013B062BD3 -:1053A00005D903E04B68083B082B00D901BE8B6888 -:1053B000053B042B00D901BE4B69FF2B00D901BE70 -:1053C0008B69FF2B00D901BE8B7C002B06D00B789C -:1053D000002B02D18B68092B74D001BE964B4C6B0D -:1053E0001C4200D001BE954BCC6B1C4200D001BECC -:1053F0000B78022B6AD04B685D1E0B7F002B6AD0A6 -:1054000080235B028C68082C67D880242401234306 -:105410000F242C4023438024A404234303600C6BFB -:1054200003681B055BD580239C4200D301BE8C6BB7 -:1054300003681B0555D580239C4200D301BE4C6AEE -:1054400003681B054FD580239C4200D301BE0B7817 -:105450001B06C024A404234003644B7F002B44D0CC -:1054600040238C7C002C42D08024E40023430C7C1D -:10547000002C3ED08024640023434C7C002C3AD086 -:105480008024A4002343CC6A013C2404F0252D038E -:105490002C4023434D7B013D07242C4023438D7B2F -:1054A0002D0130242C40234383640B7B002B24D01C -:1054B00080246400CB7B002B21D10B78022B46D0BB -:1054C00000231EE08B7B002B88D086E78B7F002B90 -:1054D00091D1002591E7002394E7002497E740232A -:1054E000A2E74023A8E74023AEE70023B9E7002462 -:1054F000BCE70024C0E70024C4E70024DAE78023E7 -:105500009B001C438B685D1E0F231D402C43C0264F -:10551000B6008451FF244D692C408D692D04FF276E -:105520003F043D402C43C425AD004451CC6A85590D -:105530002B4003339C4201D3102C00D901BECB7FFA -:10554000002B07D00B78012B5FD0002503E08023D0 -:105550009B00D6E700254C7B013C072323402B43CF -:105560008D7B2D0130242C40234343640B7B002B87 -:105570004ED080256D008B685C1E0F2323402B438B -:105580000C78012C46D0002423438024A40003512E -:10559000FF230C6B2340C124A40003512023CB5CC8 -:1055A000002B3AD080239B0421240C5D012C36D0A3 -:1055B0000024234328240C5D012C33D000242343F2 -:1055C000FF244D6A25402B4303658B6B1C408123D0 -:1055D0009B00C4501A4B4C6B23401A4C03511A4B7E -:1055E000CC6B2340194C0351002A22D00023536076 -:1055F00013609360D3601362D3625363897F303347 -:10560000D154134B93630020F0BD80256D00A2E7B9 -:105610000025B0E780246402B6E70023C4E78024B5 -:105620006404C6E780246402C9E70A48ECE7094835 -:10563000EAE70020E8E7C04692F4FFFF8CF8FFFF9E -:105640006D0B0000C80F000073070000880F0000FA -:10565000EFCDAB000160AA00114B03600F3B036468 -:10566000002383640822FF32C021890042500431A4 -:1056700043500C31435043641139FF394250FD32DD -:1056800083500365074A8350074A8350074A835073 -:10569000074A8350074A8350074A83507047C046E1 -:1056A0000F000003C80E0000880E0000C80F0000A5 -:1056B000880F0000080F0000480F000003685B001F -:1056C0005B080360002904D000234B600B600B6271 -:1056D000CB627047F0B5C64600B58C680A68842373 -:1056E000C3580F252B40073DED1A2300AC4226D9A5 -:1056F0002B0024E055782D0216783543D6783606EF -:1057000097783F043E4335439827C55155792D027C -:1057100016793543A846D679360695792D042E4359 -:1057200045463543C551D218E41A8423C3580F2582 -:105730002B40073DED1A2300AC4200D92B00002B73 -:1057400000D183E0082BD5D0012B24D0022B26D00A -:10575000032B2BD0042B33D0052B3ED0062B4CD063 -:10576000072B5DD053781B0215782B43D5782D0677 -:105770009678360435432B439826835153791B0280 -:1057800015792B43D5792D0697793F043D432B435B -:1057900083510823C7E7167890254651C3E755780B -:1057A0002D021678354394268551BCE755782D0295 -:1057B0001678354394268551967890254651B2E760 -:1057C00055782D0216783543D678360697783F04FB -:1057D0003E43354398268551A5E755782D02167826 -:1057E0003543D678360697783F043E4335439826AE -:1057F000855116799025465195E755782D021678F2 -:105800003543D678360697783F043E43354398268D -:10581000855155792D02167935439426855182E7B5 -:1058200055782D0216783543D678360697783F049A -:105830003E4335439826855155792D0216793543D7 -:10584000942685519679902546516CE70A608C60C4 -:10585000002C0CD1F924E400035901229343035195 -:105860008A61CB69002B02D0CB690120984780BCAC -:10587000B846F0BDF8B50E004C69CA68C423C358D9 -:105880000F21194023008C421CD90B001AE0D825A7 -:10589000415911700F0A57700F0C9770090ED17093 -:1058A00045591571290A5171290C91712D0ED57127 -:1058B000D218E41AC423C3580F251D402300AC425C -:1058C00000D92B00002B6DD0082BE0D0012B1ED06F -:1058D000022B20D0032B24D0042B2BD0052B33D02C -:1058E000062B3ED0072B4BD0D821435813701D0AEE -:1058F00055701D0C95701B0ED37043581371190A07 -:105900005171190C91711B0ED3710823D0E7D0216E -:1059100041581170CCE7D42141581170090A5170D7 -:10592000C6E7D42141581170090A5170D02141585D -:105930009170BDE7D821415811700D0A55700D0CBA -:105940009570090ED170B3E7D821415811700D0A36 -:1059500055700D0C9570090ED170D0214158117100 -:10596000A6E7D821415811700D0A55700D0C95709D -:10597000090ED170D42141581171090A517197E76C -:10598000D821415811700D0A55700D0C9570090EF3 -:10599000D170D42141581171090A5171D021415857 -:1059A000917185E7F2607461002C0DD1F922D2006B -:1059B000835802218B4383500323B361336A002B46 -:1059C00002D0336A032098477461F8BD10B50028EF -:1059D00032D0002932D0002B32D05A62F922D200C4 -:1059E00083580324A34383500B78012B00D901BEB5 -:1059F0000B7A032B00D901BE4B68072B00D901BEDF -:105A00000B7B012B00D901BE01230A6813408A6871 -:105A10001203C024A401224013434A681204E02464 -:105A2000E40222401343CA681206802149040A4056 -:105A300013430360002010BD0248FCE70148FAE769 -:105A40000048F8E70400B2004B1EDBB2012B04D97A -:105A5000042902D0082900D001BE032A00D901BEC2 -:105A6000042920D008D801290DD002291AD1882371 -:105A70001B019C4660440AE0082913D198231B01AE -:105A80009C46604403E080231B019C466044002840 -:105A900008D0036806490B401204C02189020A405D -:105AA0001A430260704790231B019C466044EEE756 -:105AB000FFFFFCFFF8B5DE4657464E464546E0B5CB -:105AC000070008009A460AAB40CB1B789B460CABFC -:105AD0001B78111FC9B2FA2900D801BE59460439F2 -:105AE000C9B2FA2900D801BE591EC9B2012904D988 -:105AF000042B02D0082B00D001BE002E02D051464C -:105B000000291CD0002E02D05946FF2919D01B02B3 -:105B1000F02109010B4099460E9B5D6A1104C022D9 -:105B2000920211404B4619430143002E0BD10D9BAD -:105B3000DA07120C11433965002400200CE001BE85 -:105B4000E0E701BEE3E70022F4E703433B650134ED -:105B5000E4B2002D1FD128002100B44225D2164BFB -:105B6000984222D07B6C0422100018401A42F0D1D7 -:105B700053465B5C4A46134398465A461204C02378 -:105B80009B021A40434613430131B142DDD30D9AC3 -:105B9000D007000CD9E7012002F008FB013D002DE1 -:105BA00001D00020D8E70448D6E7F0BCBB46B24697 -:105BB000A946A046F8BDC0460200B20070B58AB042 -:105BC0000500181FC0B2FA2800D801BE002A34D040 -:105BD000686C042634000440064231D11B04C02006 -:105BE00080020340501E0004000C03438020C002CA -:105BF00003432B65002925D00E9B5E6A009102921B -:105C00000023079302330693200006E0012002F0F0 -:105C1000CDFA013E002E0ED02000069B022B0DD1A6 -:105C2000094B98420AD069462800FFF753FD002E21 -:105C3000ECD13000F1E70448EFE704480AB070BD4A -:105C40000348FBE72000F9E70200B2000400B200BD -:105C50000100B200F0B50400069D181FC0B2FA287A -:105C600000D801BE002A21D0666C042738003040DD -:105C700037421DD11B04C026B6023340561E3604DF -:105C8000360C3343802636033343236500290ED078 -:105C9000E9602A616A61059B2B620423AB61F922EA -:105CA000D200A35802210B43A35000E00148F0BDED -:105CB0000148FCE70400B2000100B20070B58AB0F0 -:105CC0000500181FC0B2FA2800D801BE002A34D03F -:105CD000686C042634000440064231D11B04C02005 -:105CE00080020340501E0004000C03438020000388 -:105CF00003432B65002925D00E9B5E6A0391059214 -:105D00000023089304330693200006E0012002F0EC -:105D10004DFA013E002E0ED02000069B042B0DD123 -:105D2000094B98420AD069462800FFF7A3FD002ED0 -:105D3000ECD13000F1E70448EFE704480AB070BD49 -:105D40000348FBE72000F9E70200B2000400B200BC -:105D50000100B20010B5030000290DD0426C0424EC -:105D600020001040144209D101390904090CC02255 -:105D700012031143196510BD0148FCE70148FAE719 -:105D80000400B2000100B20000230B604B608B6086 -:105D9000CB600B614B618B61026880231B06134350 -:105DA0000360704770B58D69AA682B6AFF26CC68BE -:105DB000B44384600C696442B443C4602D68013DFF -:105DC00003242C404969002901D080214900214346 -:105DD0000162002A33D01468611C67D0FF21214082 -:105DE00014792404C025AD022C40214380242406CC -:105DF0002143016451790904C024A4022140416473 -:105E00009468611C54D0FF212140147B2404C025D8 -:105E1000AD022C4021438024240621438164116972 -:105E2000002905D001391F240C4080210906214397 -:105E3000C164127D1204C02189020A400265002B50 -:105E400033D019684A1C35D0FF220A401979090459 -:105E5000C024A40221400A43802109060A430266A5 -:105E60005A791204C02189020A40426699684A1C84 -:105E700022D0FF220A40197B0904C024A402214039 -:105E80000A43802109060A4382661A69002A05D05E -:105E9000013A1F211140802212060A43C2661B7D6F -:105EA0001B04C02292021340036770BD0021A0E7CB -:105EB0000021B3E70022D2E70022E5E770B5050034 -:105EC00008220026002000E008328B790133DB0035 -:105ED000934216D3FF232B408C5CA342F4D12C0AAF -:105EE000FF2323408C18E479A342EDD18B185B7813 -:105EF000B342E9D38C18A478012CE5D11E00100020 -:105F0000E2E770BD70B50C0015001E00FFF7D6FF6C -:105F100000280BD021180B79AB704B796B708B7903 -:105F20002B70CB789B003360002070BD0048FCE7ED -:105F30008000B2008278520803231340012B07D05F -:105F4000022B07D0002B01D0002070470320FCE774 -:105F50000420FAE70420F8E70200407900021379F0 -:105F60001843D3791B069279120413431843002B6C -:105F700002DB0130C0087047033880231B0618433A -:105F8000F9E7437A0B6000230B7102334B71037AFC -:105F90005B0908D1013B8B60027A1F2313400B6120 -:105FA00002230B757047FF238B60FD3B0B73F3E7F8 -:105FB000C37A0B6000230B714B71837A5B0908D1A4 -:105FC000013B8B60827A1F2313400B6102230B7508 -:105FD0007047FF238B6000230B73F3E7C37B0B60D9 -:105FE00000230B7101334B71837B5B0908D1013BAB -:105FF0008B60827B1F2313400B6101230B7570475D -:10600000FF238B60FE3B0B73F3E7437B0B600023A6 -:106010000B714B71037B5B0908D1013B8B60027BE9 -:106020001F2313400B6101230B757047FF238B6007 -:1060300000230B73F3E703230B6000230B714B71F9 -:10604000012252428A600B610B75704710B50B003C -:106050001100012B0DD0032B09D00123002B12D0EE -:1060600083789A0607D45B0609D4FF2010BD00236D -:10607000F4E70023F2E7FFF784FF0520F6E7FFF7D8 -:1060800097FF0420F2E78378DA0605D4DB0707D40C -:10609000FFF7D1FF0120E9E7FFF7A0FF0320E5E7C5 -:1060A000FFF7B3FF0220E1E70068052907D8890060 -:1060B0000D4B5B589F46830601D5EC231360704758 -:1060C000C306FCD56C231360F9E70307F7D5BC239F -:1060D0001360F4E74307F2D53C231360EFE783072F -:1060E000EDD50C231360EAE740F200102823C35CCF -:1060F0001B09012098407047F0B5C64600B54F6AAD -:106100001B38430898460F263E400021002411E02A -:10611000012800D11024701C013363434D00AC46AC -:106120008C446546AD00AC46944443435B006046F6 -:1061300083600131032917D8CB005B1A3800D8409F -:106140000509430A032018401F232B40022809D0C9 -:1061500003D80028DCD10124DDE70328DBD1FA24B1 -:10616000A400D8E78024D6E7434658004044850081 -:106170000C3D5219906880BCB846F0BD10B5446A19 -:10618000816A4A0F032313400A0E1F2111400F2278 -:106190002240022B11D00BD8002B11D0012B11D192 -:1061A00080204000531C013148435843400010BD3B -:1061B000032B09D1FA200002F4E7FA200001F1E7ED -:1061C0001020EFE70020EDE70020EBE7836A190AD3 -:1061D0001F2001400F221A409B0406D408230132DD -:1061E000481C58435043400070474023F7E70623BC -:1061F00003600023037170470423036000230371CD -:10620000704702230360002303714371012252424D -:1062100082600373036103757047122303600023D8 -:10622000037143710122524282600373036103755B -:1062300070473423036000230371437101225242EB -:106240008260037303610233037570473E2303606A -:10625000002202713C3B437101214942816003737A -:1062600002610375704710B50368042922D009D86C -:106270000139C9B2022904D85B062BD51000FFF7FB -:10628000CCFF10BD0529FCD1D90507D4190609D4C6 -:106290005B060BD51000FFF7C0FFF2E71000FFF719 -:1062A000D5FFEEE71000FFF7C4FFEAE71000FFF7A5 -:1062B000A8FFE6E7190605D45B0607D51000FFF72F -:1062C000ACFFDEE71000FFF7B4FFDAE71000FFF7DE -:1062D00098FFD6E71000FFF794FFD2E7052303608D -:1062E0000023037170470000C36A002B10D0036BBA -:1062F000002B0FD00023026B13713A33CA5C1209D2 -:10630000333B1340052B0ED89B00154AD3589F46AC -:1063100001BEECE701BEEDE701235B42C363026B04 -:106320001360C26A136070470223C363036B0122C8 -:106330001A60C36A34321A60F5E74023C363036B03 -:1063400001221A60C36A04321A60ECE78023C36337 -:10635000036B3E221A60C36A01321A60E3E7C0464B -:1063600058F2001060230360002303717047F0B5FA -:1063700005000368042B07D01D200B5CFF2B2BD1DD -:10638000222828D80230F8E74369012040421860EB -:106390004B785B080F261E400023042B07D80124EE -:1063A0009C4030002040844201D00133F5E7032BAC -:1063B0001FD81F1D0020032807D8061D44002418DD -:1063C000A4008E5D16550130F5E76A69C95D11605C -:1063D00058001D3005E00020002802D06B690A5CDF -:1063E0001A60002806D000236A6913716A69537124 -:1063F00003E000206B69FF221A71F0BD70B5002226 -:1064000000240FE023001C33C65C53009B189B0044 -:10641000CB180125B5405D6025001D35455D1D701B -:1064200002340132032AEDD970BD10B5013B9C182E -:106430000855000A002BF9D110BD10B50400002347 -:10644000002003E00002E25C104301338B42F9D3E9 -:1064500010BD000030B587B004001D004B062AD4E3 -:106460001648CB0725D58B0710D5D368002B0DD048 -:106470001A7919780A9B0493012303930295FE333A -:106480000193002300932000FFF714FB0B4B98426D -:1064900001D000280DD10A9B049301230393029598 -:1064A000FE330193002300930022B7212000FFF761 -:1064B00001FB07B030BD0020D3E7C0468000B2002A -:1064C00030B587B004000800150019000C9B049338 -:1064D00000230393029001930B9B00930A9B0022DD -:1064E0002000FFF7E7FA002801D007B030BD0C9B71 -:1064F00000930023012229002000FFF7DFFBF4E7CF -:10650000F0B5DE4657464E464546E0B589B00590A3 -:106510000D0090469B4612AB1B789A4600230693CB -:106520005D4E002400273000139B99462DE0032088 -:1065300000E00420002108E00020FBE72218521AA6 -:10654000AA18D67806AA565401318842F6D84A4687 -:106550000292019006AA0092172202A98C46624478 -:1065600051460598FFF7ACFF00280BD17F00FBB226 -:10657000172202A98C4662441778049A17407A1EA3 -:1065800097411F430834444531D82B5D9B0716D4EF -:10659000631CEB5CE21CAA5C0492172202A98C46E5 -:1065A0006244002111702A1992789209012ABED002 -:1065B000022ABED0002ABFD05A461068BAE70600A9 -:1065C000002E16D0002E5CD12B199B780133DBB244 -:1065D00004935A46D364012B5BD93700B24600239B -:1065E00005961E00A8462500149B994617E02B4EE1 -:1065F000E6E742462B195B78BB42E3D02B199B7828 -:1066000002339B00E418A242F4D2244EDAE7E3609E -:106610005168380002F012FC60600136F6B2049B4B -:106620009E422DD2BA440435434658195B5D0F2172 -:10663000194001220023114207D15200D2B2013386 -:10664000DBB2042BF7D9154A059207683F0A0137D8 -:106650003F02B2005946096D8C58524622605A00DA -:10666000D3189B004A46D2184946CB5CA360936876 -:1066700023615368BB42CAD9E76001236360CCE75A -:10668000059E300009B0F0BCBB46B246A946A04604 -:10669000F0BD014EF5E7C0460600B2000700B200AB -:1066A000F0B587B006000D0010000E9C0A7909783D -:1066B00004940027039702936B79019303230093BB -:1066C00003003000FFF7F6F9002801D007B0F0BD55 -:1066D00029693000FFF73EFB0028F7D12B7D01949C -:1066E000002200920C9A0D993000FFF7B3FA061EB3 -:1066F000ECD1656A06E0012001F058FD013D002D56 -:106700000AD03000A369032BE0D0044B9842DDD0BF -:10671000002DF0D12800F5E70048F3E70200B200B1 -:1067200010B5002134E00B001033DB0100221A50B9 -:10673000CB01C318184C1C192260184C1C1922607C -:10674000822424011C192260842424011C19226043 -:10675000134C1C192260134C1C192260124C1C197A -:106760002260852424011C192260862424011C191E -:1067700022600E4C1C1922600D4C1C1922600D4C1D -:106780001C19226087242401A44663441A60013145 -:106790000329C8D910BDC046080800000C08000035 -:1067A00044080000480800004C080000640800008D -:1067B000680800006C08000010B586B00B001400DB -:1067C0008A69D16800290ED00A79097804940124D5 -:1067D00003941B780293FF23019300230093FFF798 -:1067E00069F906B010BD0148FBE7C0468000B20061 -:1067F00030B587B004000800150019000A9B049307 -:106800000023039302780292FF2201920093002258 -:106810002000FFF74FF9002801D007B030BD0A9BD8 -:1068200000930023012229002000FFF747FAF4E734 -:1068300010B584B00F236B4401241C708C69A36ACB -:10684000002B0DD01B7800920F226A44FFF7D0FF77 -:10685000002805D1A36B0F226A4411780B401370F6 -:106860000F236B441878431E9841C0B204B010BD8A -:10687000F0B5002808D085696B6893421DD92E6D4C -:10688000002E03D0002004E001BEF4E70C4813E022 -:106890000130EB6C83420ED98300F458E3686768DB -:1068A0007B432768BC466344BA42F1D39A42EFD295 -:1068B0000C60002000E00248F0BD0248FCE7C04642 -:1068C0000600B2000400B200F0B58BB006900C00D8 -:1068D00015000793002928D0002D30D0A6697769CC -:1068E0000023099331682800FFF7A7FD020009A9DA -:1068F0002000FFF7BDFF002F1BD03A79FF2A1AD0E6 -:10690000104B984219D0002811D1099B197A079B86 -:106910000493012303932378029301923368009335 -:106920002B000698FFF7C6F80AE001BED4E73978D5 -:10693000EDE7054804E0044802E0034800E00148B0 -:106940000BB0F0BD0400B2008000B200F0B5DE462E -:1069500057464E464546E0B5C9B005000C00160046 -:106960009946002913D02EAAAE4B19881180997828 -:1069700091702DAA19881180997891702CAA198884 -:1069800011809B789370636B9846002305E001BEED -:10699000E9E72FA90022CA540133632BF9D94A46EB -:1069A00031002800FFF750F84346002B13D0529BCC -:1069B00002932FAB01933823009333002EAA414654 -:1069C0002800FFF76DFE071E06D12FAB9B79062B23 -:1069D00002D9954F07E0944F002F04D12FAB1B78BD -:1069E000532B08D0904F380049B0F0BCBB46B2469C -:1069F000A946A046F0BD2FAB5B78462B01D08A4F4D -:106A0000F1E72FAB9B78442B01D0874FEBE72FABFF -:106A1000DB78502B01D0844FE5E72FAB1B79052B9A -:106A200000D8FCE02FAB5B79012B01D07E4FDAE779 -:106A3000049704AB2DAA2FA97C48FFF763FA0597AA -:106A400005AB2CAA2FA97A48FFF75CFA794B98423C -:106A500000D1A0E000230693FF2006AB2EAA2FA9A9 -:106A60000002FFF74FFA071EBDD1A368002B00D12B -:106A700095E0E368002B00D193E02369002B00D15F -:106A800091E06369002B00D18FE0E369002B00D116 -:106A90008DE0236A002B00D18BE0A36A002B00D18C -:106AA00089E0529B02932FAB9A460193069B009379 -:106AB00033002EAA41462800FFF7F2FD070020A967 -:106AC0005046FFF79BFC5046FFF734FA20605046D3 -:106AD000FFF742FA60605046FFF708FB6062E0682B -:106AE000FFF785FB2069FFF787FB0123A363A06AFB -:106AF000FFF7F4FB51462000FFF7F6FBE069FFF7D4 -:106B000031FC5046FFF73AFB60645046FFF75EFBEE -:106B1000A064A3689B461A0049465046FFF796FAC0 -:106B200081462368042B48D0206AFFF76AFB20AA1D -:106B30002FA92000FFF71BFC002809D0431E2FA916 -:106B4000CA5C01239340A36120AAFFF7D5FA206411 -:106B5000236D002B00D146E7529B02932FAB01938C -:106B6000059B009333002CAA41462800FFF798FDAF -:106B7000071E00D037E720AB0293529B019300968B -:106B80002300059A2FA92800FFF7BAFC2A4B984248 -:106B900041D0070027E70023E36423655AE701BEDD -:106BA00067E701BE69E701BE6BE701BE6DE701BEA5 -:106BB0006FE701BE71E701BE73E752463833D15C1F -:106BC000529B0093330022002800FFF743FC071E6E -:106BD00003D0002F0FD00120B0E7529B029307ABE8 -:106BE0000193049B009333002DAA41462800FFF730 -:106BF00057FD0700EDE75A46494607A8FFF754FA44 -:106C0000226A494607A8FFF72EFB20AA07A9200001 -:106C1000FFF7ADFB90E70023E3642365E3E6024F53 -:106C2000E1E6C04670F200100500B20084FF0000EB -:106C300081FF00008000B2000600B200F0B5DE4621 -:106C400057464E464546E0B583B0061E904600D1F5 -:106C5000ACE0002900D1B1E04F68002F00D1AFE0D7 -:106C6000002A00D1AEE00B689946002B03D0002526 -:106C700000239A465DE0544899E001BE70E0524816 -:106C800007E0082B04D198231B019B46B3440CE07A -:106C90004D485346002B00D189E0B2200004184330 -:106CA00085E080231B019B46B3445B46002B00D14B -:106CB0007AE01B68454A1340227A1204C0218902F7 -:106CC0000A4013435A4613606368042210001840B8 -:106CD0001A4257D1A3691B68013B032B00D901BE9F -:106CE000002825D163689B0722D52169E06802F05E -:106CF0002BF9002900D001BE236980225202934261 -:106D000002D35A1E1A4200D001BE21005846FFF796 -:106D100049F80223FF3362681340227A1204C0212B -:106D200089020A4013438022120613435A46136015 -:106D30000135A94536D9AB00FC58002CF8D0227893 -:106D4000531EDBB2012B04D9042A02D0082A00D03A -:106D500001BE237A032B00D901BEA369002B8CD07E -:106D60002378042B09D08CD8012B9AD0022B86D102 -:106D700088231B019B46B34497E790231B019B4646 -:106D8000B34492E7237A2278A1694046009030000C -:106D9000FFF7DCFD00289DD00823AB4052461A4384 -:106DA000924697E7002074E7074872E7064803B069 -:106DB000F0BCBB46B246A946A046F0BD0248F6E785 -:106DC0000148F4E70048F2E70400B200FFFFFCFFCF -:106DD000F0B5D6464F464646C0B507008846140073 -:106DE00099469608194B9A4203D8002E08D10126DD -:106DF00006E0174E04E0A41B00281CD0002C1AD07B -:106E0000FA218900300002F019F88246FA2189003F -:106E1000300002F099F88DB2504601F0D1F9280007 -:106E200001F0D2F94A4641463800FFF701FDB4426D -:106E3000E1D80024E0E7002805D10020E0BCBA46F4 -:106E4000B146A846F0BD0348F8E7C04603093D0037 -:106E500040420F000200B200F0B5DE4657464E46F3 -:106E60004546E0B589B082460F0090469946129C8F -:106E7000139B9B460023079300290BD04B46002B06 -:106E80000AD0BA69956843461B195268934205D8DF -:106E90002D4817E001BEF1E701BEF2E72A4809B02C -:106EA000F0BCBB46B246A946A046F0BD002802D1C0 -:106EB000296900293AD100283CD00028EFD1A41B31 -:106EC000B044B144002CEAD0260080235B029C42EF -:106ED00000D91E00BB691B68002207A94046FFF7C6 -:106EE000A4FABB692A7929785846049000200390B7 -:106EF00038780290687901901B68009307AB504680 -:106F0000FEF7D8FD0028D1D1A9684B1CCED02A7B32 -:106F1000C9B25B4604930023039338780290FF20A4 -:106F2000019000935046FEF7C5FDBFE75046FEF7BF -:106F300011FFC0E72B7D5A46009232004946504669 -:106F4000FEF7BCFEB9E7C0460400B200F0B5DE466D -:106F500057464E464546E0B589B082460F001600BA -:106F60009846129D00230793002910D04346002B1A -:106F70000FD0BA69536A9946136A9B4673195268CF -:106F8000934208D83F483B004F46994618E001BE5F -:106F9000ECE701BEEDE73B4809B0F0BCBB46B246AA -:106FA000A946A046F0BD2C00139A49465046FFF76B -:106FB00003FC00280FD00028EED1A04436192D1B69 -:106FC000002DE9D03900300001F0BEFF6B18BB4244 -:106FD000E9D37C1AE8E74B469B691B68002207A9A6 -:106FE0003000FFF722FA4B469B695A461279594600 -:106FF0000978139804900020039048460078029086 -:107000005846407901901B68009307AB5046FEF745 -:1070100051FD002803D15B4699684B1C12D1002812 -:1070200003D15B46196900291DD100281FD0002813 -:10703000C1D14B469B699A6C139B49465046FFF75A -:10704000C7FEB8E75B461A7BC9B2139B04930023C3 -:107050000393484600780290FF2001900093504629 -:10706000FEF728FDDBE75046FEF774FEDDE75B46E2 -:107070001B7D139A0092220041465046FEF79EFD6A -:10708000D5E7C0460400B200F0B5DE4657464E468E -:107090004546E0B587B007000E0015000093109A32 -:1070A0009046EB18013B01930023059304930029BC -:1070B00048D0B3699B469B699A465B461B6C02931A -:1070C0005B465B68019A93423ED80023994603933E -:1070D000504C504B9C4200D194E04B46E81A51462C -:1070E00001F032FF002900D08BE0039B019A93420C -:1070F00044D3484B9C4200D184E0019B4A46981AF5 -:107100000130514601F020FF002943D1009B002BA4 -:1071100078D02A0004A93000FFF7AAFB041E6AD128 -:10712000049A13690293D3689A46116853685246C9 -:1071300053435B18013B9946019B4B452ED2019B63 -:1071400099462BE001BEB4E72A0004A93000FFF7FE -:107150008FFB041E0AD1049B1A689146DA68924696 -:107160005B6853434B44013B039302E00023994681 -:107170000393009B9A45ACD9264CAAE704A930009A -:10718000FFF776FB041EB4D1049B1A689146DB68B6 -:107190009A46AEE71F4C35E0002CB7D14D45B5D22D -:1071A000424631003800FFF707FB041EF4D15B466E -:1071B0001B68002205A92800FFF737F9434605AAF6 -:1071C00031003800FFF780FB041EE5D1029B5A0115 -:1071D000D21A92009C466244D200434631003800E5 -:1071E000FFF7F6FD009B534508D9554452469B1ABC -:1071F00000930400D0E7019B9946CFE70094040078 -:1072000084E7044C200007B0F0BCBB46B246A94658 -:10721000A046F0BD0400B20010B5002814D1072923 -:107220002ED8FF2A2ED81A4B186883687824005B62 -:107230001B188900C9180B68164803401206120C67 -:107240001A430A60002002E0012801D0124810BD54 -:107250000F2919D880235B029A4217D20C4B186869 -:1072600083687A24005B1B188900C9180B680B48D7 -:10727000034012020A4802401A430A600020E6E76F -:107280000548E4E70448E2E70348E0E70248DEE7B0 -:10729000D45F0108FF00FFFF01004A00FF0000FF6C -:1072A00000FFFF0030B51A4B1B6842241C5D84426E -:1072B00028D9032928D8002901D1072A0FD9012963 -:1072C00005D0022906D0032907D012481BE00F2A57 -:1072D00005D9F6E7032A02D9F5E7002A16D1752465 -:1072E0001D5DA940723CAC40214074241C5D2240CD -:1072F0009B680A43C02189008C4660448000C250CC -:10730000002000E0034830BD0248FCE70148FAE7EE -:10731000D45F010801004A00F0B5032835D80028E1 -:1073200001D107290FD9012805D0022806D003284A -:1073300007D0184828E00F2905D9F6E7032902D914 -:10734000F5E7002923D1144B1C687723E35C032263 -:1073500015009D402B007425655D7626A65D2F00E7 -:10736000B7403B437526A65DB040B240104018437D -:10737000294008438021090608438023DB00A268D6 -:10738000D050A268D3580020F0BD0248FCE7014865 -:10739000FAE7C04601004A00D45F010810B503288F -:1073A00028D8002801D107290FD9012805D00228A3 -:1073B00006D0032807D011481BE00F2905D9F6E7AE -:1073C000032902D9F5E7002916D10D4B1A68752358 -:1073D000D45CA040723BA34018407423D35C194096 -:1073E000926801438020C00501438023DB00D15017 -:1073F000002010BD0148FCE70048FAE701004A0000 -:10740000D45F0108064B1B681A6888215B58D218A4 -:10741000136804490B400002034313607047C046E1 -:10742000D45F0108FF00FFFF044B1A68136888212E -:1074300052589B181868000AC0B27047D45F010800 -:10744000012800D901BE054A136805490B40000216 -:10745000C021890008401843106070470000274091 -:10746000FFFCFFFF10B5074B984200D901BE06494B -:10747000064A8B58064C2340024C20401843885043 -:1074800010BDC046010300000000264004050000B6 -:10749000FEFCFFFF10B50449044A8B58044C2340FE -:1074A000000403438B5010BD00002640040500007B -:1074B000FFFF00FF0349044A885880231B0603434B -:1074C0008B50704700002640040500000349044A21 -:1074D0008B585B005B088B507047C046000026400D -:1074E0000405000010B50300032800D901BE054CB7 -:1074F000A021C900605803229043134018436050F4 -:1075000010BDC04600002640064B1B681A68882143 -:107510005B58D21813681B021B0A00060343136052 -:107520007047C046D45F0108044B1A68136888216D -:1075300052589B181868000E7047C046D45F010867 -:10754000064B1B681A688C215B58D21813680449D3 -:107550000B400002034313607047C046D45F01082C -:10756000FF00FFFF084B1A684023D35C834209D910 -:10757000064AE0308000815880231B060B4383506D -:10758000002070470248FCE7D45F01080000264055 -:1075900001004A0000280ED0094B1A684023D35C32 -:1075A00083420AD9074AE030800083585B005B08B9 -:1075B0008350002070470448FCE70348FAE7C046C0 -:1075C000D45F01080000264001004A0010B50B4BB3 -:1075D0001A684023D35C83420CD90F290CD8084C7D -:1075E000E030800003590F229343114019430151A9 -:1075F000002010BD0348FCE70248FAE7D45F010809 -:107600000000264001004A00064B1A684023D35C64 -:10761000834200D801BEE0308000034BC3580F20E6 -:1076200018407047D45F01080000264010B50C4B8D -:107630001A684023D35C83420DD903290DD8094C25 -:10764000E03080000359302293430901114019436F -:107650000151002010BD0448FCE70348FAE7C0468A -:10766000D45F01080000264001004A00074B1A6859 -:107670004023D35C834200D801BEE0308000044B3D -:10768000C3581B09032018407047C046D45F010847 -:1076900000002640034B1B6904201840431E9841FC -:1076A000C0B270470000274010B504000A4A1368B2 -:1076B00008210B43136003E0012000F077FD013C3B -:1076C000FFF7E8FF002801D1002CF5D1002C01D0F4 -:1076D000002010BD0148FCE70000274002004A00DE -:1076E00000207047002070470349044A88588023CF -:1076F0001B0603438B507047000026400C0500001A -:10770000084AC0235B00D3580122100018401A42D7 -:1077100006D10449044A8B585B005B088B507047C4 -:107720000248FCE7000026400C05000003004A0068 -:10773000064A074BD35801229343002800D1002268 -:1077400013430249024A8B507047C046000026404E -:107750000C050000014B18687047C0460C6001081A -:10776000084AA623DB00D25803231340032B06D07C -:10777000044AA623DB00D35801201840704702209A -:10778000FCE7C0460000264010B5FFF7E9FF0228DD -:1077900001D0002010BD014B1868FBE71060010804 -:1077A000134B1A683E23D35C83421DD9042904D9A4 -:1077B0004B1EFF3B9BB2132B18D8FF290CD91F235C -:1077C00019400C4A0300C0339B009950D030800010 -:1077D00004238350002008E007231940D0308000A4 -:1077E000044BC150002000E0034870470248FCE70A -:1077F000D45F01080000264001004A0003000C4A43 -:1078000011683E228A5C824200D801BE1A00D03242 -:1078100092000849505807221040042800D07047B1 -:10782000C0339B005B581B300340E1301843F6E740 -:10783000D45F01080000264010B52A4B1A683E2389 -:10784000D35C834200D801BEFFF7D8FF88235B00DA -:10785000984231D012D802282BD004D903280BD15A -:10786000FFF73EFF3CE0002839D0012802D1FFF7A6 -:1078700071FF35E0002033E0002031E089235B0018 -:10788000984229D01423FF33984206D1164A174B49 -:10789000D358002B1DDB002022E01223FF33984237 -:1078A00005D1FFF7F7FE002810D1002018E00020D6 -:1078B00016E0FFF769FF13E00B4A0D4BD358002B7E -:1078C00001DB00200CE08020000209E080200002A3 -:1078D00006E08020000203E0FFF704FF00E0054817 -:1078E00010BDC046D45F0108000026403C050000E2 -:1078F0000C05000000127A00024AB023DB00D058C9 -:10790000C00F704700002640034AB223DB00D35863 -:10791000012018407047C046000026400B4BB120A4 -:10792000C0001A580A491140802292050A431A5091 -:10793000B021C9005A58520052085A5005495A58A5 -:10794000520052085A5000207047C046000026409E -:10795000FFFFFFCF8C05000070B5041E00D175E05D -:10796000FFF7CAFF002800D074E08023DB02226802 -:107970009A4200D301BE23689B039B0BE279002A45 -:1079800000D165E08022520413433349B022D20073 -:107990008B50A28880239B019A4200D301BE22898A -:1079A00080239B009A4200D301BEA388DB04DB0C3A -:1079B0002289120429490A4013432749284A8B5037 -:1079C000A37A0F2B00D901BEE37A0F2B00D901BE99 -:1079D000A28980239B019A4200D301BEA27A0F2381 -:1079E0001340E17A0901FF220A401343A2891202DF -:1079F0001C490A401343A27B1207C02189050A4093 -:107A000013431549B122D2008B50A379042B00D91E -:107A100001BE228A80239B009A4200D301BE0E48F9 -:107A200011494358114A1340A2791202E025ED0092 -:107A30002A401343435043580D4A1340228A1204EC -:107A4000064C224013434350002070BD01BE87E71F -:107A5000002299E70748F8E7000026400000FF01F0 -:107A60008405000000FF1F008C050000FFF8FFFFE9 -:107A7000FFFF00FE03004A0010B5002832D01A496B -:107A8000B023DB00CB589A03920B02608022520491 -:107A900013405A1E9341C371144BCB58DA04D20CD5 -:107AA00082801B0CDB05DB0D0381B123DB00CB588F -:107AB0000F2214001C4084721C092240C2721A0A50 -:107AC000D204D20C82811B0F032213408373084B14 -:107AD000CB58190A04320A4082711B0CDB05DB0DFE -:107AE000038210BD01BECAE70000264084050000E5 -:107AF0008C05000070B505002649274A8858802368 -:107B00001B0603438B502C0003E0012000F04EFBCA -:107B1000013C204AB223DB00D3585B0701D4002C80 -:107B2000F3D11C48B121C90043581C4A1A40802394 -:107B30009B0513434350002D01D0002C0CD0154958 -:107B4000B022D200885880231B0603438B5003E0E9 -:107B5000012000F02BFB013CFFF7D6FE002801D1ED -:107B6000002CF5D1002D01D0002C0ED00949B122F6 -:107B7000D2008858C0239B0503438B50002D02D0B0 -:107B8000002C05D00025280070BDFFF7C7FEF5E7E3 -:107B9000034DF8E7000026408C050000FFFFFFCFF3 -:107BA00002004A000138074B1A683F23D35C834226 -:107BB00000D801BE8130FF308000034BC058C00F99 -:107BC0007047C046D45F01080000264070B50138F8 -:107BD0000D4B1A683F23D35C834201D80B4870BD1C -:107BE0000B4D8130FF30840063590A4A1A408023CC -:107BF0009B0513436351012000F0D8FA63595B00E1 -:107C00005B0863510020EAE7D45F010801004A00E5 -:107C100000002640FFFFFFCFF8B504000D002F4BFA -:107C20001A683F23D35C834201D22D48F8BDFFF789 -:107C3000B9FF002845D1AA78931EDBB20E2B42D89B -:107C40006B78002B41D0122B41D82F783E00E97879 -:107C5000002932D0133086423BD300292FD0382060 -:107C6000864238D8013C2879022816D07F20384037 -:107C70001B02F8267601334003431204F820400328 -:107C800002401A43C90680231B05194011432300F3 -:107C90008133FF339B00134A995012498134FF34DA -:107CA000A4006358104A13402A791207C0208005A7 -:107CB0000240134363500020B8E71620CBE7702042 -:107CC000CEE70A48B2E70648B0E70548AEE7044801 -:107CD000ACE70348AAE70248A8E7C046D45F01081A -:107CE00001004A0000002640FFFFFFCF03004A00CA -:107CF0000138114B1A683F23D35C83421AD9813073 -:107D0000FF3080000D4BC3587F221A400A70180ABA -:107D10001F2210404870180C02408A708022120501 -:107D20001A40501E8241CA701B0F032213400B7170 -:107D3000002070470248FCE7D45F0108000026409D -:107D400001004A0070B50D00461E294B1A683F23FA -:107D5000D35CB34249D9274933008133FF339B00B9 -:107D600058588022120602435A502C0003E001208A -:107D700000F01CFA013C33009133FF339B001D4A95 -:107D80009B58DB0701D4002CF1D1002D01D0002C31 -:107D900017D033008133FF339B00164A9A58120FD5 -:107DA00003231340022B01D0002070BD114A8136FD -:107DB000FF36B600B158C0239B050B43B3500020DB -:107DC000F3E70C4C8136FF36B60033590A4A1A40A5 -:107DD00080239B0513433351012000F0E7F9335909 -:107DE0005B005B0833510548DFE70548DDE7C04627 -:107DF000D45F010800002640FFFFFFCF02004A00C9 -:107E000001004A00F0B587B01422002101A802F059 -:107E1000E8FB01A8FFF730FEFFF76EFD002807D052 -:107E200001AB9B7B022B01D0012302E0002300E089 -:107E3000002301AA019E94882000D279002A1FD035 -:107E40000225002B1ED000281DD00020FFF7F4FCD7 -:107E500032000023002101F087F906000F002A00FC -:107E600000232000002101F07FF902000B00CC0765 -:107E70004008204349088019794101F055F902E092 -:107E80000125DEE7002007B0F0BD0000F0B585B0A9 -:107E900004002E4B1B683F229A5C002A53D0002816 -:107EA00052D03E229B5C834200D801BE274B1A6809 -:107EB0003F23D35CA34201D2002045E005220021EC -:107EC00002A802F08EFB02A92000FFF711FF20009C -:107ED000FFF768FE002807D002AB1B79022B01D008 -:107EE000012302E0002300E0002302AA167857785D -:107EF00038009578002B24D0002F25D0002D01D1FB -:107F0000280021E02000FFF797FC32000023002129 -:107F100001F02AF9009001912A0000233800002185 -:107F200001F022F902000B00CC0740082043490869 -:107F3000009C019D24184D412000290001F0F4F817 -:107F400002E0002000E0002005B0F0BDD45F010891 -:107F500010B504000D4B1A683E23D35C834200D851 -:107F600001BE002C09D0094B1A683F23D35CA34201 -:107F700008D22000FFF760FC10BDFFF743FF002888 -:107F8000FAD1F6E72000FFF781FFF8E7D45F010898 -:107F900070B50600FFF76AFB05000124844030003D -:107FA000FFF732FBFFF7D4FF64082018E84070BDEC -:107FB00010B50020FFF7ECFF0400FFF7B5FA411CF5 -:107FC0004808001900F03AFF10BD10B5FFF7F0FFA8 -:107FD0000400FFF729FA411C4808001900F02EFFA1 -:107FE00010BD000030B5194B1B682C229A5C1F2A6B -:107FF00015D884080722250095432A1E22D1033272 -:108000001040C000FC3282401B682033A4001B19C2 -:108010001C688140614011406140196012E03C22BF -:108020009A5E0BB29A420ED007230340074A1268A9 -:10803000126880200006184380239B019C466144FF -:108040008900885030BD01BEEEE7C046D45F01080C -:1080500010B50A4B1B682C229A5C1F2A0AD91A6891 -:1080600080239B019C46614489008B585B005B0820 -:108070008B5010BD998FFFF7B5FFFAE7D45F010869 -:10808000094B9A68094B9A4204D010308000084B83 -:10809000C0587047002905D01030044A8300985812 -:1080A0009950F6E701BEF7E700ED00E00000000898 -:1080B00000000010F0B5C64600B582B0041E019164 -:1080C0004FD04368032B00D901BE0023E05E002897 -:1080D00025DA254E0023E25E6168002A24DB93083E -:1080E000224DC0339B005859804603273A40D200A6 -:1080F000FF208446070097404046B84307008901A7 -:1081000060460840904038435851194B9A68194BC3 -:108110009A4220D0300002B080BCB846F0BD6188E1 -:10812000FFF760FF0026D5E70F231340083B9B08AD -:1081300006339B000E48844663445F680320024078 -:10814000D200FC3005009540AF43890108409040C3 -:1081500038435860D9E70023E05E0199FFF790FFAC -:10816000D8E7014ED6E7C0460100560000E100E026 -:1081700000ED00E00000000810B5040006E0084B28 -:108180001868F8F701FA074B9C46644480231B02E9 -:108190009C42F4D8044B18686043F8F7F5F910BD19 -:1081A0008C0000080080FFFF9000000810B5034B12 -:1081B0001B785843F8F7E8F910BDC0469400000852 -:1081C00010B5FFF7D9FF10BD10B5FFF7EFFF10BDD9 -:1081D000054B802212069A649B6C002B01DB002069 -:1081E00070470248FCE7C0460000274003004600F5 -:1081F0000D4B8022120198585B68FF221A4202D070 -:108200008023DB021843084A084BD3581B0402D0D2 -:1082100080235B021843044A044BD3581B0C02D042 -:1082200080239B021843704700002640040800008A -:10823000FEE7000010B50A4B0268DA6142681A6274 -:1082400082685A62C2689A620269DA6242691A6393 -:1082500082695A63C2699A63FFF7EAFF10BDC0469C -:1082600038070008F0B5C64600B5002833D01923FA -:108270008B429B415B42314C22681668AC27D25B33 -:10828000B61832680325AA432B401A433260266889 -:108290003268F65B92191768294E374017602768D5 -:1082A0003A689046AE229446BF5A3A004244176854 -:1082B000AF433B431360226813686446125B9B180C -:1082C0001A6832401A60002807D010291DD92129C8 -:1082D00027D801221AE06423CAE7184B1B685522ED -:1082E0009A5C8A421FD256229A5C8A421DD2572239 -:1082F0009A5C8A421BD258229A5C8A4219D259222D -:108300009B5C8B4217D3553A00E000220B4B1B6855 -:1083100059680B680F20834313430B6080BCB84639 -:10832000F0BD0222F2E70022F0E70122EEE702228E -:10833000ECE70322EAE70522E8E7C046D45F01083C -:10834000FFFCFFFFB0235B055B78002B04D0B0235C -:108350005B055878C0B270472120FCE7B0235B056D -:108360009B899BB2002B04D0B0235B05988980B217 -:10837000704780204000FBE770B5FFF7EFFF8023D8 -:108380005B0098421AD0B0204005174BC358174ADB -:108390001340174C21680A689C25495952181168E6 -:1083A000C025AD0029400B43136022681368A0214B -:1083B00052589B180F4A82581A6070BD0C4B1A68AD -:1083C00011689C20125889180A680F24A2439A3811 -:1083D00002430A601B681A68A0215B58D218136810 -:1083E000A34303431360E8E748180000FFFCFFFFC6 -:1083F000D45F01084418000070B5FFF7AFFF802379 -:108400005B0098421AD0B0204005134BC358134A62 -:108410001340134C21680A689C2549595218116869 -:10842000C025AD0029400B43136022681368A021CA -:1084300052589B180B4A82581A6070BD084B1A6834 -:1084400013689C2152589B181A68074911408022D2 -:10845000D2010A431A60F0E750180000FFFCFFFF4A -:10846000D45F01084C180000FF8FFFFF10B5FFF725 -:1084700075FF80235B00984212D0B02252050F4B4B -:10848000D3580F4A13400F4A11680A689C200958B4 -:1084900052181168C020800001400B43136010BDCA -:1084A000084B1A6813689C2152589B181A68064991 -:1084B0001140C022D2010A431A60F0E71C180000E4 -:1084C000FFFCFFFFD45F0108FF8FFFFF70B5FFF7D0 -:1084D00045FF80235B0098421BD0B0204005184B1D -:1084E000C358184A1340184C21680A689C254959FA -:1084F00052181168C025AD0029400B431360226853 -:108500001368A02152589B18C122520182581A6048 -:1085100070BD0D4B1A6811689C20125889180A68A2 -:108520000F24A243993802430A601B681A68A021ED -:108530005B58D2181368A34303431360E8E7C046AF -:1085400024180000FFFCFFFFD45F010870B5204B2A -:108550001A6813689C2152589B181C68C02000019F -:108560000440FFF7FBFE80235B0098421FD01849B0 -:10857000086803689C2280581B181868154D28400D -:1085800018600868036880581B181D68C0263601EB -:108590003000A04305431D6009680B688A589B188A -:1085A00018683040001B431E9841C0B270BD0020C7 -:1085B000FCF7A4FE0400FFF7C5FE222803D8002C18 -:1085C00003D10120F2E70120F0E70020EEE7C046EA -:1085D000D45F0108FFF3FFFF70B584B006000D0003 -:1085E000022804D9042802D0032800D001BE6B1E43 -:1085F000DBB2012B04D9042D02D0082D00D001BE1E -:10860000B300294A9C58042D1FD0012D1FD0022DE4 -:1086100033D026006469002CFBD1002034E064696B -:10862000002C18D0214B984213D0A3682B42F6D1CE -:10863000E3681A6802925B6801930393290002A819 -:10864000236898471A4B1C60E9E70020E8E7002000 -:10865000E6E7012DE9D1012D01D004B070BD134B27 -:10866000984204D0B600134B0022F250F5E7B60052 -:108670000F4B1A680F4BF250EFE70D4B1E68002EA0 -:10868000CBD03669C9E73669002EE6D0B3682B42F5 -:10869000F9D1F3681A6802925B6801930393290089 -:1086A00002A833689847EEE754600108FF004200D3 -:1086B000506001083C600108F0B5C64600B50700EF -:1086C000012800D901BEFFF73DFE85B2FFF746FE47 -:1086D00006000020FCF712FE041E17D180235B0069 -:1086E0009E4201D02A4C12E0222D42D8294B1B6811 -:1086F000586829494358294A134098463A06802326 -:108700005B041A4043461343435000E0204C80234F -:108710005B009E422FD080235B009E4225D01D4BE4 -:108720001A683323D35C002B00D101BE194B1B68A0 -:108730001D6A80235B009E4220D0002F24D0184A5F -:1087400001212800FCF784FB00280ED1114B1A6888 -:10875000BC23D3585B191B68002BF7DBEB681B0E9F -:108760001B06A0221206934210D0200080BCB846FF -:10877000F0BD074CCBE7222DD1D8CCE7002F01D09C -:10878000084ADDE7084ADBE7084AD9E70400ECE7D6 -:1087900004004200D45F010818F00000FFFFFFFE54 -:1087A0000300000C01010030010000300100000C4A -:1087B00000283DD01F4B1B6888229A5819688C46A8 -:1087C0006244126802628C229A5819688C4662448C -:1087D0001268426246229A5C002A28D0E0229968F8 -:1087E0008A58D20623D5DA68F223DB01D358036016 -:1087F000104B1B68F022D201D9688A5842600E4A99 -:10880000D9688A5882600D4AD9688A58C2600C4A71 -:10881000D9688A5802610B4AD9688A5842610A4A63 -:10882000D9688A588261DA68084BD358C3617047A7 -:1088300001BEBFE7D45F010804780000087800009B -:108840000C78000010780000147800001878000000 -:1088500010B500283BD01F4B19680A6888240959B5 -:108860005218016A116019680A68043409595218CB -:10887000416A11601B6846229A5C002A26D0E022D9 -:1088800099688A58D20621D5F022D201D968446865 -:108890008C50114AD96884688C50104AD968C468D1 -:1088A0008C500F4AD96804698C500E4AD9684469C3 -:1088B0008C500D4AD96884698C500C4AD968C469B7 -:1088C0008C50DA680168F223DB01D15010BD01BE83 -:1088D000C1E7C046D45F01080478000008780000B2 -:1088E0000C78000010780000147800001878000060 -:1088F000F0B5C64600B50700FFF724FD0500012FBF -:1089000000D901BE7E4B5B68002B00D187E00121BE -:108910000120FFF761FE041E72D1F7F73EFE06004C -:10892000774B5B68002B03D004210120FFF754FE36 -:10893000744B1A68136ABA21515ACA00521A9B180A -:108940001A68002AF4DADB68DA0000D569E08020D2 -:10895000800518436B4B1B68BA215D5AEA00521B15 -:108960001D6AAC466244D060585AC200121A186A96 -:1089700084466244002050601A6A595ACB005B1A40 -:10898000D3185B68FFF7EAFC80235B00984200D1B4 -:108990007FE05C4B1A683323D35C002B00D101BE0F -:1089A000584B1A68116ABC23D3585B181B68002BFC -:1089B00000DB72E0544C534B1A68136ABA21515AC7 -:1089C000CA00521A9B181A68002AF4DADD68EB0014 -:1089D00000D581E04D4B1D404A4B1B68BA21585AC7 -:1089E000C200121A186A84466244D5601A6A595A3B -:1089F000CB005B1AD31800225A603000F7F7D1FD84 -:108A0000002C00D06DE03E4B5B68002B03D00821AA -:108A10000120FFF7E1FD200080BCB846F0BD002436 -:108A20007BE71B0F1B0798463948FFF7C1FE212D36 -:108A300018D0344D2B68196888229B58C9180B68C8 -:108A400034480340783213430B6029680B688C2547 -:108A500049595B18196801400A431A602C4B424679 -:108A6000134374E7274D2B68196888229B58C9184F -:108A70000B68284803409022120113430B602968B9 -:108A80000B688C2549595B18196801400A431A6024 -:108A9000E4E7380005F000FA8DE73323D35C012BBF -:108AA00000D801BE174B1968BA23CA5A0B6A9C46F4 -:108AB0006244BC23CB589B181B68002B0ADB164A68 -:108AC000136904210B431361012F01D030BF72E7FA -:108AD00020BF70E70C4C6EE728010009FFF7B8FED5 -:108AE00078E7074B5B68002B03D002210120FFF7DA -:108AF00073FD054B9C4200D18DE7084C8BE7C046C7 -:108B000054600108D45F010805004200FFFFFFDF49 -:108B100014600108FF00FFFF00ED00E0FF004200CD -:108B2000074A084BD3581F200340B0214905E822CB -:108B3000D200885CC01A431E9841C0B27047C0463C -:108B4000000026401CFF0000044B186880231B0413 -:108B5000184043425841C0B27047C046000026400A -:108B600010B5FFF7F1FF002810D01C4A13681C490C -:108B70000B4013600820FFF719FB6423174A1268A3 -:108B8000002A09DB002B07D0013BF7E7134A1368E3 -:108B900014490B401360EDE7002B01D1124810BDC2 -:108BA0000E4A136811490B4013600120FFF7FEFACB -:108BB000FFF7CAFF002801D10020F0E7FFF7B0FF60 -:108BC000012801D00020EAE7B0225205084BD15815 -:108BD000024A084BD1500020E1E7C0460000264081 -:108BE000FFFFFBACFFFFFBAD02004200FFFFFFFBFE -:108BF00010180000307F000010B5FFF7A5FF002817 -:108C000008D0054B054A10681840C01A4342584125 -:108C1000C0B210BD024BF5E700000453000026402F -:108C200000000452F8B50400012800D901BEFFF786 -:108C30008DFC002802D12D4D2800F8BDF7F7ADFCC2 -:108C40000600002C14D12A4A2A4B0021D150B02210 -:108C50005205E823DB00D75CFFB20120FFF72CFDB3 -:108C6000051E02D0002D2AD11DE0FFF785FBF9E794 -:108C7000FFF7C2FF002826D01D4A1E4B5021D150BD -:108C8000B02252051C4BD75CFFB219491B4A8B58C6 -:108C90001F208343143803438B500838FFF786FAAC -:108CA000FFF7AAFB00251248144943581F2293439B -:108CB0003A4013434350002C0DD1FFF7D7FB30004F -:108CC000F7F76FFCB8E7B02252050D4BD158084AB0 -:108CD000084BD150D4E70720FFF768FAFFF7F6FBFF -:108CE0000020FFF7E9FC0500E9E7C0460300420069 -:108CF00000002640307F0000410700001CFF0000FC -:108D000010180000084B5A6C120AFF2313403A2B2C -:108D100000D0704704494B6C044A1A40E8239B0179 -:108D200013434B64F5E7C04600002740FFC5FFDF53 -:108D300004494B6C044A1A40E8239B0113434B64DB -:108D40007047C04600002740FF00FFFF042810D0F6 -:108D500000060B4B1A681368A42152589B18C022B6 -:108D6000920410401860074A1368A0398B431360BF -:108D70007047044A136804210B431360F8E7C046A8 -:108D8000D45F010810E000E0044AC0235B00D05823 -:108D9000800F431E9841C0B27047C0460000264075 -:108DA0000749C02252008B589B009B088020C005B9 -:108DB00003438B50885880231B0603438B50704716 -:108DC0000000264010B5040080235B02984200D3C7 -:108DD00001BEFFF7D9FF002809D1054AC4235B0073 -:108DE000D058000C00042404240C0443D45010BDBB -:108DF0000000264010B504000F2800D901BEFFF77F -:108E0000C3FF00280BD10649C42252008B580548E5 -:108E100003402404F020000304401C438C5010BD88 -:108E200000002640FFFFF0FF034AE023DB000121A2 -:108E3000D150D3587047C046000026400022430856 -:108E40008B4274D303098B425FD3030A8B4244D312 -:108E5000030B8B4228D3030C8B420DD3FF22090254 -:108E600012BA030C8B4202D31212090265D0030B13 -:108E70008B4219D300E0090AC30B8B4201D3CB0309 -:108E8000C01A5241830B8B4201D38B03C01A52414B -:108E9000430B8B4201D34B03C01A5241030B8B424D -:108EA00001D30B03C01A5241C30A8B4201D3CB0238 -:108EB000C01A5241830A8B4201D38B02C01A52411D -:108EC000430A8B4201D34B02C01A5241030A8B4220 -:108ED00001D30B02C01A5241CDD2C3098B4201D338 -:108EE000CB01C01A524183098B4201D38B01C01AB6 -:108EF000524143098B4201D34B01C01A524103092D -:108F00008B4201D30B01C01A5241C3088B4201D3DB -:108F1000CB00C01A524183088B4201D38B00C01A88 -:108F2000524143088B4201D34B00C01A5241411AAF -:108F300000D20146524110467047FFE701B50020BC -:108F400000F0F0F802BDC0460029F7D076E7704780 -:108F500003460B437FD4002243088B4274D303099A -:108F60008B425FD3030A8B4244D3030B8B4228D33B -:108F7000030C8B420DD3FF22090212BA030C8B4261 -:108F800002D31212090265D0030B8B4219D300E001 -:108F9000090AC30B8B4201D3CB03C01A5241830B86 -:108FA0008B4201D38B03C01A5241430B8B4201D336 -:108FB0004B03C01A5241030B8B4201D30B03C01A5F -:108FC0005241C30A8B4201D3CB02C01A5241830AD9 -:108FD0008B4201D38B02C01A5241430A8B4201D308 -:108FE0004B02C01A5241030A8B4201D30B02C01A32 -:108FF0005241CDD2C3098B4201D3CB01C01A524199 -:1090000083098B4201D38B01C01A524143098B4221 -:1090100001D34B01C01A524103098B4201D30B010A -:10902000C01A5241C3088B4201D3CB00C01A52412F -:1090300083088B4201D38B00C01A524143088B42F4 -:1090400001D34B00C01A5241411A00D2014652418D -:10905000104670475DE0CA0F00D04942031000D3AC -:109060004042534000229C4603098B422DD3030A01 -:109070008B4212D3FC22890112BA030A8B420CD311 -:10908000890192118B4208D3890192118B4204D33A -:1090900089013AD0921100E08909C3098B4201D3BA -:1090A000CB01C01A524183098B4201D38B01C01AF4 -:1090B000524143098B4201D34B01C01A524103096B -:1090C0008B4201D30B01C01A5241C3088B4201D31A -:1090D000CB00C01A524183088B4201D38B00C01AC7 -:1090E0005241D9D243088B4201D34B00C01A52419E -:1090F000411A00D20146634652415B10104601D32B -:109100004042002B00D54942704763465B1000D3B4 -:10911000404201B5002000F005F802BD0029F8D05A -:1091200016E770477047C046002B11D1002A0FD1B7 -:10913000002900D1002802D00021C943080007B44B -:10914000024802A14018029003BDC046D9FFFFFFAC -:1091500003B4684601B5029800F052F8019B9E46A0 -:1091600002B00CBC7047C046F0B5CE46474680B54D -:10917000070099463B0C9C4613041B0C1D000E0077 -:1091800061460004140C000C45434B4360436143AB -:10919000C0182C0C20188C46834203D980235B0214 -:1091A0009846C444494679437243030C63442D04F2 -:1091B0002D0CC918000440198918C0BCB946B04626 -:1091C000F0BDC04670B500220C4B04000D0001F04C -:1091D00005F8002804D12000290000F065FF70BDCB -:1091E000064B00222000290000F0CCFB00F05CFFC1 -:1091F00080231B069C466044F1E7C0460000E04126 -:10920000F0B557464E464546DE46E0B504000D0033 -:109210009246994683B08B4230D82DD0494650466D -:1092200001F004F829000600200000F0FFFF331AC7 -:109230009846203B9B4633D45A4653469340424679 -:109240001F00534693401E00AF423AD8AF4200D1B0 -:1092500078E05B46A41BBD41002B00DA75E00022DC -:1092600000230092019301235A4693400193012366 -:1092700042469340009328E08242CFD90022002347 -:10928000009201930C9B002B01D01C605D60009844 -:10929000019903B0F0BCBB46B246A946A046F0BD5A -:1092A000424620239B1A5246DA40414613004A4662 -:1092B0008A40170042461F43534693401E00AF4268 -:1092C000C4D900220023009201934346002BD9D039 -:1092D000FB0772081A4346467B080EE0AB4201D1F9 -:1092E000A2420CD8A41A9D41012024196D410021ED -:1092F000013E24184D41002E06D0AB42EED9013E6E -:1093000024196D41002EF8D1009801995B4600198F -:109310006941002B24DB2B005A464446D3402A00E7 -:10932000E2401C005B461500002B2ADB26009E4015 -:10933000330026004746BE403200801A9941009013 -:1093400001919FE7A342BCD883E742462023002136 -:109350009B1A0022009101920122DA40019286E7D5 -:10936000424620239B1A2A0046469A402300F34097 -:10937000444613432A00E2401C005B461500002BC4 -:10938000D4DA42462F002023260097409B1ADE4065 -:109390003B003343CDE7C046F0B557464E46454601 -:1093A000DE46E0B5814605000C03480092461F00EA -:1093B00085B0240B400DCE0F002800D156E1D44BD0 -:1093C000984200D172E16B0FE4001C4380231B0420 -:1093D00023439846CF4BED009B4600239946834498 -:1093E00000933C037B005046240B5B0DFF0F002BCA -:1093F00000D11FE1C64A934200D162E1C549420F44 -:109400008C46E40059461443802263441204CB1A6C -:1094100014439B46C200002033007B409A464B46D3 -:109420000F2B27D8BC499B00CB589F46B246009BC8 -:10943000022B16D0032B00D18EE2012B00D0D9E0F5 -:1094400000230024002552461B052343D207134363 -:109450002800190005B0F0BCBB46B246A946A0469C -:10946000F0BD00240025AA4BEDE7BA46A046150042 -:109470000090DCE7444500D2C7E100D1C2E10123FE -:109480005B429C462E0040460025E3442302140E16 -:109490001C431B0C994623041F0C120249460092E0 -:1094A0000197FFF751FD02007A430B04310C80460F -:1094B00019438A4207D901235B429C460919E044BB -:1094C0008C4200D807E2881A4946FFF73DFD09049F -:1094D0008C4631046646019A090C4243030031432D -:1094E0008A4204D90919013B8C4200D8EDE1881A5F -:1094F000424612041A4390464146009B0E041B0C40 -:109500001F000293009B360C1B04190C0B007343C5 -:10951000120C7E43039151437A431F0CBC467618CC -:109520006644B14203D9802149028C466244310C21 -:109530008A1831041E04360C8E19904202D312D1BF -:10954000B54210D24346591E009B9C4665441F00FD -:109550009D429B415B421B19C018844200D2A0E18E -:1095600000D19BE18846AE1BB542AD41801A6D42E9 -:10957000401B844200D1D5E14946FFF7E5FC019A42 -:109580000B044243310C050019438A4200D96CE1B7 -:10959000881A4946FFF7D8FC019A36044243090469 -:1095A000360C03000E43B24200D953E10398B61AB9 -:1095B00002002D041D43029F2B041B0C5A437B43C6 -:1095C0009C46290C4843130C8444634479439842D5 -:1095D00003D98020400284466144180C12041B0405 -:1095E000120C41189B188E4200D2FFE000D1FAE025 -:1095F00001231D43494A5A44002A00DCAAE06B07B4 -:1096000000D03DE1ED084346DB0106D54246444B20 -:109610001A4090468022D2005A44424B9A4200DDC2 -:109620001FE743465B071D43434652055C02240B7C -:10963000530D08E75246224300D17BE0002C00D1B5 -:10964000FAE0200000F0D4FD02000B3A1D230100D7 -:109650009B1A52460839DA408C40144352468A40DD -:10966000314B58449B4683440020D5E64B46234368 -:10967000984644D0002C00D1CEE0200000F0B8FD88 -:10968000010002000B391D235B1A49461000D94026 -:10969000083884400B004D462343984685402348B4 -:1096A000831A9B460023994600939AE64B46234330 -:1096B00098461DD108239946063B00258346009312 -:1096C0008FE65246224309D1022349461943184BDB -:1096D00089469C4600240220E3449DE603234A4633 -:1096E0001A43134B91469C4652460320E34493E6AB -:1096F0000C239946093BA0468346009371E6042358 -:10970000994600239B4601330025009369E6C04635 -:10971000FF07000001FCFFFF74F20010FF030000D0 -:10972000FFFFFFFEFE070000F30300000DFCFFFF3C -:1097300001F8FFFF4946012319438946002401200F -:109740006AE6002380249A4600258A4B24037AE6A1 -:1097500001256D4201239B1A382B00DD70E61F2B7B -:1097600000DCBFE01F2149428A1A4146D1400A006D -:10977000202B04D04146804B5B4499400D436B1E27 -:109780009D4107232A431D0000241540134200D1A8 -:10979000D4E00F2100231140042900D1CBE0111D9A -:1097A0009142924152429B180A00190200D4C2E031 -:1097B00001230024002546E6802341461B0319426D -:1097C00008D01C4206D11C432403BA461500694B3D -:1097D000240B38E68024434624031C432403B2466A -:1097E000644B240B2FE6002B00D103E7A619681E5B -:1097F000A64200D28DE08E4200D2A3E000D1B3E0B9 -:109800000500F5E6AA4200D939E64346DE075808C6 -:109810006B081E43ED0739E6484600F0E9FC0100FD -:109820000200153120321C2900DC2CE74B46083899 -:1098300083400025984632E700F0DAFC03001A0066 -:10984000153220301C2A00DC00E75446083B002279 -:109850009C4005E73619013BB44200D9A6E6B24266 -:1098600000D8A3E6831E3619A0E60919013D8C42F3 -:1098700000D98DE68A4200D88AE6851E091987E656 -:109880000F232B40042B00D1BCE605235B42AB42E7 -:109890009B4104355B42ED089844B4E6AF4200D9E1 -:1098A00060E6824204D800D05CE6AE4200D859E6B9 -:1098B00002235B429C46009BE0449C4665449D42DB -:1098C0009B415B421B19C0184DE68A4200D80EE648 -:1098D000831E09190BE68A4200D8F4E5831E9846D8 -:1098E0000919F0E52549280059448D4042468A402F -:1098F000691E8D414146D840D94002432A430B009E -:10990000510700D151E70F211140042900D046E74B -:109910004BE705008E4200D06AE6009A934200D0E1 -:1099200066E667E6164A5A44002A00DC10E701237F -:109930000025984467E65D075B021C0BD2080023F4 -:10994000154380E50098023D42008242BF417F42BC -:109950003C1936190092DDE78024434624031C435A -:109960002403044B240B6EE5009A9A42EAD30500C7 -:10997000D3E7C046FF0700003E0400001E040000BD -:10998000FF030000F8B557464E464546DE46E0B5B3 -:109990001E0017004A000B03520D5B0A9046420F4F -:1099A0001A43CD0FCD4C3103C300944670007A0F9B -:1099B000490AFF009A46B946400DF60F1143A042EE -:1099C00000D1B1E001225640B346B54200D188E053 -:1099D0004246121A002A00DCAEE0002800D1C1E0A5 -:1099E000BE48804500D151E1802000040143382A5F -:1099F00000DD7BE11F2A00DDEEE120203E00801A21 -:109A00000C00D640D140874062468440521A781EEE -:109A10008741944634432743DC1BA3429B41624663 -:109A20005B42D31A99464B461B0200D418E14B46C1 -:109A30005802430A99464B46002B00D137E148466D -:109A400000F0D6FB010008392023220048465B1AAB -:109A5000DA4088408C4043461043884500DD36E1BB -:109A6000C91A4B1C1F2B00DDEAE020222600D21A67 -:109A700001009440DE40D84000239140621E944192 -:109A80008146984631430C43630709D00F23234096 -:109A9000042B05D0231DA342A4416442A1441C0011 -:109AA0004B461B0200D4DEE041468C4B013199420B -:109AB00000D1E7E04B468A48E40803401800490516 -:109AC0005B07400223434A0D040B1205ED072243B6 -:109AD0002A4318001100F0BCBB46B246A946A04676 -:109AE000F8BD4246121A002A52DD002800D19CE03F -:109AF000A04500D1CAE0802000040143382A00DDDF -:109B000049E11F2A00DC97E110000E002038C64012 -:109B1000202A04D04020821A91400F43B9464C4677 -:109B2000621E944134433AE10A003A4328D0B346D6 -:109B3000B5422BD06B4A4244002A5DD0424644468F -:109B4000821A002C00D0F5E065461D4300D19CE14F -:109B5000551E012A00D1FBE1604CA24200D1BDE1BB -:109B60002A00F0E00800384300D1C3E0501E012A6B -:109B700000D1A8E1594CA24200D187E0020036E7AB -:109B800001225640B346B54200D021E7554A42442F -:109B9000002A00D1B5E042464446821A002C00D18A -:109BA00038E14E4EB04200D1DEE1802664463604F4 -:109BB0003443A446382A00DD96E11F2A00DD24E262 -:109BC0002026B41AA24664465646B440A1461C005C -:109BD0004E46D440264334005646B3405E1EB34141 -:109BE0001C436346D340C918E419BC42BF417F42BD -:109BF000B94680468944D8E040463B4C013020427B -:109C000000D0B4E04046002800D044E1604618434C -:109C100000D190E10800384300D0AAE16146DB089A -:109C200049070B436146CC0827E00800384361D060 -:109C3000501E012A00D139E1A24227D002005DE77F -:109C400002001F39CA401100202B03D04022D31A32 -:109C500098400443631E9C410023994698460C4358 -:109C6000630700D012E74B464A46E4085B072343EC -:109C7000D408424619498A420ED024035205240BC7 -:109C8000520D22E70A00002400231EE7DB0862468B -:109C9000520713436246D4081A00224300D1FCE164 -:109CA00080221203144324030C4A240B0DE72000E6 -:109CB00000F09EFA010018311F2900DCC4E60838C4 -:109CC0008440434620000024884500DCC8E6044A5E -:109CD0005B1A104098468146D6E6C046FF07000052 -:109CE000FFFF7FFF01F8FFFFFE0700000F437A1E12 -:109CF000974191E66146DB0849070B436146CC0872 -:109D0000B8E74046D34C0130204200D0A2E04046A4 -:109D1000002800D001E16046184300D15EE1080050 -:109D2000384300D05FE16146DB0849070B436146D9 -:109D3000CC08A2E7C84DA84200D1CFE080256446F8 -:109D40002D042C43A446382A56DC1F2A00DDD1E01E -:109D500020251E00AD1A6446AB40AC40D6405D1EC7 -:109D6000AB41344323436446D440091B49E0604679 -:109D7000DC1B461AA34280414042814630004E46D9 -:109D8000801B8146000276D44B46234300D052E626 -:109D90000024002571E739430C00621E9441E41849 -:109DA0009C429B415B42634499464B461B0200D454 -:109DB00056E701239C46A84BE044984538D04B46D3 -:109DC000A648012203401800630814401C43C3073F -:109DD0001C434308994657E610000E002038C64041 -:109DE000202A04D04020821A91400F43B9464F46A2 -:109DF0007A1E974137430FE662461A4313005A1EF4 -:109E00009341FC1AA742BF417F42CB1B99465D4656 -:109E1000804608E666461E4300D1BEE0561E012A73 -:109E200000D109E18C4CA24200D119E13200C1E617 -:109E300042460024002348E620200C00801A3E0001 -:109E400087408440D640781E8741D14034433C430C -:109E50008C44A4E7804A904200D1E9E0DF199F4298 -:109E60009B4161445B42C918CC077F084B08994667 -:109E700080463C43F4E6FC1AA742BF4163467F425A -:109E8000C91ACB1B99465D46D5E5FF084B075D46D1 -:109E90003B43CC08EEE662461A4300D082E00B005A -:109EA0003B431BD1802400252403F9E6DC199C42A6 -:109EB0009B41614489465B4299444B461B0244D412 -:109EC00001239846CCE6DC1B6246A3429B41511A13 -:109ED0005B42CB1A994601239846A4E5FF084B073D -:109EE0005D463B43CC08D7E662461A431400631E26 -:109EF0009C4179E615006446203DEC40A046202AAE -:109F000005D040256446AA1A944023439A465446F5 -:109F1000631E9C414346234373E762461A4323D0A2 -:109F20000A003A4300D0A0E06246DB085207134320 -:109F30006246D408B0E60B003B4300D128E7FF0897 -:109F40004B075D463B43CC0897E60223984636E72D -:109F5000FC1AA742BF4163467F42C91ACB1B9946F0 -:109F600001235D4698465EE54B07FF083B43CC085E -:109F700092E6DC1B6046A342B641401A7642801B43 -:109F80008146000260D5FC1AA742BF4163467F426A -:109F9000C91ACB1B99465D4676E5FF084B073B4344 -:109FA000CC0867E60A00DB083A4300D16FE6624658 -:109FB000520713436246D40880221203144207D08A -:109FC000C808104204D15D460400FB0849070B4352 -:109FD0005A0FDB00DB08520713435DE64B07FF080F -:109FE0003B43CC0849E6DC199C429B4161448946CD -:109FF0005B4299444B461B0200D431E64A46174B5C -:10A000001A400123914698462AE616006446203EEF -:10A01000F440A046202A05D040266446B21A944057 -:10A0200023439A465446631E9C4143461C43DBE54A -:10A0300002000024002348E5DC19BC42BF41614412 -:10A0400089467F42B94438E74B46234300D19FE617 -:10A0500006E6C046FE070000FF070000FFFF7FFF87 -:10A06000FF084B073B43CC0816E66246DB08520765 -:10A0700013436246D40880221203144207D0C80852 -:10A08000104204D15D460400FB0849070B435A0FF8 -:10A09000DB005207DB081343FEE50023014A1C00E6 -:10A0A00013E5C046FF0700000A0030B5134C53000B -:10A0B00009030500090B00205B0DD20FA34204DD4C -:10A0C0000F48834202DD0F4BD01830BD8020400383 -:10A0D00001430D48C01A1F2808DD0C48C31AD94097 -:10A0E0000B005842002AF0D11800EEE7084CC5409A -:10A0F000A446634499400B002B43F2E7FE030000A3 -:10A100001D040000FFFFFF7F330400001304000064 -:10A11000EDFBFFFF70B5002816D0C317C5185D40D2 -:10A12000C40F280000F064F8114A121A0A2816DC3D -:10A1300003002E0015339E400B23181AC54052050C -:10A140002D032D0B530D03E00024002300250026D2 -:10A150001B052B43E40723433000190070BD0B3867 -:10A16000854052052D0300262D0B530DF0E7C04608 -:10A170001E0400008446100062468C4619006346A7 -:10A1800000E0C0461FB500F005F9002801D4002109 -:10A19000C8421FBD10B500F055F84042013010BD57 -:10A1A00010B500F0F7F8002801DB002010BD0120F9 -:10A1B00010BDC04610B500F0EDF8002801DD00200C -:10A1C00010BD012010BDC04610B500F07DF800287C -:10A1D00001DC002010BD012010BDC04610B500F00C -:10A1E00073F8002801DA002010BD012010BDC04620 -:10A1F0001C2101231B04984201D3000C10391B0AB7 -:10A20000984201D3000A08391B09984201D300097A -:10A21000043902A2105C40187047C04604030202D1 -:10A2200001010101000000000000000010B500293C -:10A2300003D1FFF7DDFF203002E00800FFF7D8FF71 -:10A2400010BDC046F0B54E464546DE4657469046E0 -:10A25000E0B517001A03120B0500844619480E03D7 -:10A260004C0091465A00DB0F9B46360B640DC90F1C -:10A27000520D844219D0824210D0012094420ED156 -:10A280004E450CD10120C44509D1594517D0002CA9 -:10A2900005D130002843431E984100E00120F0BC66 -:10A2A000BB46B246A946A046F0BD330001202B4371 -:10A2B000F5D1A242F3D14B463B43F0D1E2E7002077 -:10A2C000EDE7C046FF070000F0B54746CE46040064 -:10A2D000180016001B031B0B2D4D4A00994680B534 -:10A2E00043000F03A446B0463F0B520DC90F5B0D50 -:10A2F000C00FAA4221D0AB4213D0002A22D13C4346 -:10A30000002B02D14D462E4322D0002C10D081428A -:10A3100022D00220013908400138C0BCB946B046FD -:10A32000F0BD4D462E4329D1002AF0D13C43EED159 -:10A330000028F2D101204042EFE73D0025431DD126 -:10A340009342EED0002BE2D14C462643DFD1E0E72A -:10A350000020002CE1D0DCE79A420ADCE8DB4F4524 -:10A36000D7D80ED000204F45D7D20029E2D0080020 -:10A37000D3E74342584140000138CEE70220404233 -:10A38000CBE7C445C5D80020C445C6D2EDE7C046DA -:10A39000FF070000F0B54746CE460400180016003F -:10A3A0001B031B0B2C4D4A00994680B543000F033D -:10A3B000A446B0463F0B520DC90F5B0DC00FAA4219 -:10A3C0000DD0AB4210D0002A27D13C43002B11D135 -:10A3D0004D462E430ED10020002C15D00EE03D003E -:10A3E000254310D1934218D14D462E430BD1002A5C -:10A3F00002D13C43002C0BD0814214D00220013901 -:10A400000840013800E00220C0BCB946B046F0BDAB -:10A410000028F9D101204042F6E7002BECD14C4650 -:10A420002643E9D1EAE79A4204DD4342584140001D -:10A430000138E9E79A42EBDB4F45DFD806D0002030 -:10A440004F45E1D20029E5D00800DDE7C445D5D865 -:10A450000020C445D8D2F5E7FF07000030B514004E -:10A460001A00094B05001B6885B0D868074B002C03 -:10A4700001D1074B1C00019300912B000549029468 -:10A4800000F00AF801F07CF8EC010008B4F20010CA -:10A49000EFF20010C1F200100EB403B5010003ABDF -:10A4A000044804CB0068019300F0DAF902B008BC5C -:10A4B00003B01847EC010008F7B553430500170037 -:10A4C000089C01910093002804D08369002B01D1DE -:10A4D00002F030F8274B9C4225D16C68636EDB0795 -:10A4E00005D4A3899B0502D4A06D00F057F8A38979 -:10A4F0001B0722D52369002B1FD00026009B9E42FC -:10A5000022D0019B995DA368013BA360002B04DA74 -:10A51000A269934226DB0A2924D023685A1C2260B0 -:10A5200019700136EAE7144B9C4201D1AC68D5E7BB -:10A53000124B9C42D2D1EC68D0E72100280000F0F9 -:10A54000A7FF0026B042D8D0636EDB0705D4A389ED -:10A550009B0502D4A06D00F022F839003000FEF710 -:10A560006DFCFEBD2200280000F03CFF431CD8D14A -:10A57000EAE7C046F0F4001010F50010D0F4001027 -:10A5800007B5009313000A00010002480068FFF7B6 -:10A5900093FF0EBDEC01000870477047704770478D -:10A5A00010B5034B0100186800F0BCF810BDC046A0 -:10A5B000EC01000830B500240139A24201D100208D -:10A5C00005E0035D01340D5DAB42F6D0581B30BD94 -:10A5D000002310B59A4200D110BDCC5CC4540133A5 -:10A5E000F8E703008218934200D1704719700133D5 -:10A5F000F9E770B5130C0D0C1ED1002B0CD189B2EC -:10A6000094B24C43210000F08DF8051E1BD02200AF -:10A610000021FFF7E6FF16E01D1C0B1C92B289B269 -:10A620009CB25143ABB263430C0C1C19220C07D1F2 -:10A63000240489B20C43E5E7002B01D1131CEDE79C -:10A640000C2300250360280070BD000070B50500D4 -:10A65000002910D00C1F2368002B00DAE418280012 -:10A6600002F096F81D4A1368002B05D16360146050 -:10A67000280002F095F870BDA34208D9216860183F -:10A680008342F3D118685B6841182160EEE71A0035 -:10A690005B68002B01D0A342F9D911685018A04281 -:10A6A0000BD120680918501811608342E0D1186856 -:10A6B0005B68411811605360DAE7A04202D90C23AD -:10A6C0002B60D5E721686018834203D118685B6866 -:10A6D0004118216063605460CAE7C0466C6001089D -:10A6E00070B50F4E0D0031680400002902D100F052 -:10A6F0005FFE30602900200000F05AFE431C0AD0A3 -:10A700000323C51C9D43A84207D0291A200000F04E -:10A710004FFE431C01D101256D42280070BDC0468B -:10A7200070600108F7B50322CB1C93430833060081 -:10A730001F000C2B32D20C27B94231D8300002F066 -:10A7400027F8324D2B681C00002C2ED13900300028 -:10A75000FFF7C6FF0400431C1ED12C682500002D06 -:10A760004AD123682900E3183000019300F020FE4D -:10A77000019B834243D123680337FF1A03239F437E -:10A7800008370C2F00D20C2739003000FFF7A8FF44 -:10A79000431C34D02368DF19276013E0002BCBDA89 -:10A7A0000C23002533602800FEBD2268D11B20D475 -:10A7B0000B2917D9E2192760A34211D12A606368D7 -:10A7C000116053603000250001F0EAFF07220B35CD -:10A7D000231D9543EA1A9D42E5D05B1BA350E2E797 -:10A7E0005A60ECE76268A34201D12A60EAE75A6046 -:10A7F000E8E723006468A7E72C006D68AFE70C2347 -:10A800003000336001F0CCFFCDE7C0466C6001083A -:10A81000936810B5013B9360002B04DA9469A3425E -:10A8200007DB0A2905D01368581C1060197008004E -:10A8300010BD00F0D7FD0100F9E7F8B506000F00E4 -:10A840001400D518AC4201D1002007E021783A006D -:10A850003000FFF7DDFF0134431CF3D1F8BD0000E9 -:10A86000F0B5A1B006000C001F000392002804D030 -:10A870008369002B01D101F05DFE8E4B9C421CD1FF -:10A880007468636EDB0705D4A3899B0502D4A06DB1 -:10A89000FFF784FEA3891B0702D52369002B1DD176 -:10A8A0002100300000F0F4FD002817D0636EDB07B4 -:10A8B0000DD50120404221B0F0BD7F4B9C4201D11B -:10A8C000B468DEE77D4B9C42DBD1F468D9E7A3890D -:10A8D0009B05EED4A06DFFF762FEEAE7002308AD0A -:10A8E0006B6120336B761033AB760797039F3B7811 -:10A8F000002B01D0252B4ED1039BFB1A0593039B04 -:10A900009F420DD0059B21003000039AFFF795FF71 -:10A91000431C00D1B5E06A69059B944663446B61B2 -:10A920003B78002B00D1ACE001227B1C0393002379 -:10A9300052426A6004A9543252182B60EB60AB603B -:10A940001370AB65039B052219785D4801F014FF75 -:10A95000039B5F1C002820D12A68D30604D553230B -:10A9600004A95B1820211970130704D5532304A9E7 -:10A970005B182B211970039B1B782A2B16D0002102 -:10A98000EB68039F3A78781C303A8446092A4FD9FD -:10A99000002911D117E00137A9E7494B2A68C01AED -:10A9A0000123834013432B600397CBE7079B191DBB -:10A9B0001B680791002B01DB0B9304E05B42EB600B -:10A9C000022313432B603B782E2B0AD17B782A2B52 -:10A9D00037D1079B02371A1D1B680792002B2DDB0E -:10A9E000099303223978374801F0C6FE002807D0C2 -:10A9F000344B2A68C01A40238340134301372B602D -:10AA000039787B1C062230480393297601F0B4FE86 -:10AA1000002845D02D4B002B27D10722079B073359 -:10AA20009343083307936B69049A9B186B615DE746 -:10AA30000A214B4367469B180939A3E701235B4270 -:10AA4000CEE700231A0001376B603978781C303963 -:10AA50008446092903D9002BC3D00992C1E70A23F0 -:10AA60005A4367465218093BEFE707AB00932200B1 -:10AA700029003000164B00F0D7F80490049B0133F6 -:10AA8000D1D1636EDB0705D4A3899B0502D4A06DE9 -:10AA9000FFF785FDA3895B0600D50AE70D980AE755 -:10AAA00007AB0093220029003000094B00F06EFB39 -:10AAB000E3E7C046F0F4001010F50010D0F40010E9 -:10AAC000F4F20010FAF20010FEF2001029AC0010AF -:10AAD0003BA80010F0B51E00002314008BB09E426E -:10AAE00004DA8021090673181E002D23129A149F80 -:10AAF0001370202303229F43462F07D03B00453B82 -:10AB000059424B411099013ACB18109309AB049369 -:10AB100008AB0393139B00920293109B22000193B6 -:10AB2000330000F0BFFD0500472F02D1119BDB076A -:10AB300028D5109BEB180793462F14D12B78302B78 -:10AB40000CD10022002320003100FFF723FB002856 -:10AB500004D10123109A9B1A139A1360139B079A2E -:10AB60001B68D31807930022002320003100FFF751 -:10AB700011FB002801D0079B09933022099B0799FC -:10AB80008B4206D32800099B159A5B1B13600BB000 -:10AB9000F0BD591C09911A70F0E7F0B5831C87B01D -:10ABA000039305000C002B230270002901DA4C42AC -:10ABB00002336B70092C31DD0A2704ABDE1D200047 -:10ABC00039000196FEF7AAFA013E303120003170BB -:10ABD00039000294FEF7BCF9029B0400632BEEDC03 -:10ABE000019B30349A1E13000399147004A8073097 -:10ABF00098420ED804AB073300209A4204D804AB25 -:10AC00000930C018019BC01A039B1818401B07B0DD -:10AC1000F0BD1878013308700131E7E73023E418FC -:10AC2000AB70281DEC70F1E7F0B595B00C000992FF -:10AC30001E001A9D070001F01DFD036818000C930B -:10AC400000F0C8FB00231293237E07220A93236897 -:10AC50000E900D930D992B68C90547D59B1893430A -:10AC60001A0008322A601A685B68A264E364012251 -:10AC7000A36CE56C0B936B005B080F930B98A74BD1 -:10AC80000F99524203F076F8002831D10122A34BEC -:10AC90000B980F995242FFF78DFA002828D1002215 -:10ACA000002329000B98FFF77BFA002803D023002C -:10ACB0002D2243331A700A9B994D472B00D9994D89 -:10ACC00003230D9A236101339A43002322600B93DF -:10ACD000099B21003800009613AA00F0E7F9431CF5 -:10ACE00000D0A2E00120404215B0F0BD0733B6E726 -:10ACF0000B9A2B001000290003F03CF800280BD021 -:10AD0000002D03DA23002D2243331A700A9B864D4F -:10AD1000472BD5D9854DD3E720220A996368914303 -:10AD20000F915A1C49D10733636080230D9ADB00D1 -:10AD300013430022069212AA05920A9A08A90492C5 -:10AD400011AA03922322236001936368521802928E -:10AD5000009338002B000B9AFFF7BCFE0F9B0500F9 -:10AD60001199472B08D1CB1C02DB6368994248DD5F -:10AD70000A9B023BDBB20A930A9B652B24D8200076 -:10AD80001A00013950301191FFF707FF129A0B900A -:10AD900013182361012A02DC2268D20701D501338E -:10ADA0002361232308AA9B181B78002B00D18FE76F -:10ADB00023002D2243331A708AE70F9A472AB4D111 -:10ADC000002BB2D10133AFE70A9B662B1BD163681E -:10ADD00000290DDD2161002B02D12268D20702D5A6 -:10ADE000013359182161119BA36500230B93D8E708 -:10ADF000002B03D101222168114200D09A1C22614C -:10AE0000F1E767230A93119B129A934206DB2268AB -:10AE10002361D207E7D501332361E4E70121002B49 -:10AE200001DC4918C91A5218E9E72268530507D40A -:10AE300023692A0038000999B047431C28D151E7FB -:10AE40000A9B652B00D8E1E0A06CE16C0022002396 -:10AE5000FFF7A0F9002831D001233800344A0999BE -:10AE6000B047431C00D13DE7119B129A934202DB8D -:10AE70002368DB070CD538000E9B0C9A0999B04764 -:10AE80000025431C00D12DE7129B013BAB420ADC9D -:10AE900023689B0700D506E1139BE068984200DB1E -:10AEA00022E7180020E722000123380009991A320E -:10AEB000B047431C00D115E70135E5E7119B002B96 -:10AEC00038DC012338001A4A0999B047431C00D1E5 -:10AED00008E7119B129A134302D12368DB07D7D5E9 -:10AEE0000E9B38000C9A0999B047431C00D1F9E633 -:10AEF00000230A93119B0A9A5B42934201DC129B46 -:10AF000097E722000123380009991A32B047431C01 -:10AF100000D1E7E60A9B0133EBE7C046FFFFEF7F76 -:10AF200005F3001009F300100DF3001011F30010E9 -:10AF300015F30010129AA36D0A929A4200DD0A934B -:10AF40000A9B002B3CDC00230D930A9BDB43DB17A1 -:10AF50000F93A36D0F9A0B930A9B13400B9AD31A6E -:10AF60000D9A934234DC119B129A93423DDB236885 -:10AF7000DB073AD4129A0B9B1199D31A521A0A92F0 -:10AF80009A4200DD0A930A9B002B36DC0A9B0025BF -:10AF9000DB43DB170B93119A129B0B999B1A0A9AAE -:10AFA0000A409B1AAB4200DC72E722000123380002 -:10AFB00009991A32B047431C00D193E60135EAE7FC -:10AFC0000A9B2A0038000999B047431CBBD189E687 -:10AFD00022000123380009991A32B047431C00D1DE -:10AFE00080E60D9B01330D93B3E70E9B38000C9A5E -:10AFF0000999B047431CBDD174E60B9B3800EA1891 -:10B0000009990A9BB047431CC0D16BE6129B012BE8 -:10B0100002DC01231A4234D001232A0038000999A6 -:10B02000B047431C00D15DE60E9B38000C9A09998D -:10B03000B047431C00D155E6A06CE16C0022002310 -:10B04000FFF7A8F800281AD1129B6A1C013B3800B0 -:10B050000999B047431C0ED144E622000123380071 -:10B0600009991A32B047431C00D13BE60135129BC7 -:10B07000013BAB42F1DC22000B9B5032DAE60025AB -:10B08000F5E72A00E3E72200012338000999193285 -:10B09000B047431C00D125E60135E368139A9B1A9B -:10B0A000AB42F0DCF8E60025F7E7C046F7B515003F -:10B0B00001938A680B690C000090934200DA130038 -:10B0C00022002B6043321278002A01D001332B601A -:10B0D00023689B0602D52B6802332B602268062367 -:10B0E00017001F401A4227D0230043331B785A1EF3 -:10B0F00093412268920630D4220001990098089E5C -:10B100004332B047431C25D0062320682A68E168F3 -:10B1100000250340042B03D18D1AEB43DB171D40A0 -:10B12000A3682269934201DD9B1AED180027BD42F6 -:10B1300020D1002010E00137E3682A689B1ABB4247 -:10B14000D2DD2200012301990098089E1932B047F0 -:10B15000431CF0D101204042FEBD3020E1184331B4 -:10B16000087021005A1C45310978A2184332023375 -:10B170001170C1E72200012301990098089E1A323C -:10B18000B047431CE6D00137D1E70000F0B58BB0E3 -:10B1900006920A0043320793059004920A7E0C003F -:10B1A000109B782A07D8622A09D8002A00D1C1E06A -:10B1B000582A00D18CE026004236327022E010007E -:10B1C00063381528F7D802F023F816001F00F6FFA1 -:10B1D000F6FFF6FFF6FF1F00F6FFF6FFF6FFF6FF9D -:10B1E000A80036009A00F6FFF6FFB900F6FF360019 -:10B1F000F6FFF6FF9E0026001A684236111D196000 -:10B20000136833700123A7E0086819680A1D050652 -:10B210000BD50D681A60002D03DA2D23049A6D42B8 -:10B220001370614B0A2703931BE00D681A604106F7 -:10B23000F1D52DB2EFE70D681968081D18602E06CC -:10B2400001D50D6803E06D06FBD50D68ADB2564B18 -:10B25000082703936F2A00D00237230000224333CC -:10B260001A706368A360002B03DB042221689143FA -:10B270002160002D02D1049E002B0CD0049E2800DA -:10B280003900FDF761FE039B013E5B5C33702B00D0 -:10B2900005009F42F3D9082F09D12368DB0706D5A3 -:10B2A00063682269934202DC3023013E3370049BC1 -:10B2B0009B1B2361079B210000930598069B09AA0D -:10B2C000FFF7F4FE431C4CD1012040420BB0F0BD0F -:10B2D00045310A70344A03921A68216820CA1A60FC -:10B2E000080616D5CB0702D5202319432160102765 -:10B2F000002DB2D1202322689A432260ADE720229C -:10B3000009680A4322602200782145321170274AD9 -:10B31000E1E74806E6D5ADB2E4E71A680D68101D0E -:10B320004969186013682E0601D5196002E06D06A0 -:10B33000FBD519800023049E2361BBE71A68111D09 -:10B340001960166800213000626801F015FA0028C3 -:10B3500001D0801B6060636823610023049A13702E -:10B36000A8E72369320006990598079DA847431C62 -:10B37000AAD023689B0715D4099BE0689842A5DAF8 -:10B380001800A3E72200012306990598079E1932A9 -:10B39000B047431C98D00135E368099A9B1AAB4229 -:10B3A000F0DCE9E70025F7E717F3001028F30010B9 -:10B3B000002370B5064D040008002B6002F04EFD1E -:10B3C000431C03D12B68002B00D0236070BDC04606 -:10B3D000746001080023C25C0133002AFBD1581EAF -:10B3E00070470000F8B505000E001400002804D0D6 -:10B3F0008369002B01D101F09DF8224B9C422ED194 -:10B400006C68A369A360A3891B0732D52369002B4D -:10B410002FD023682269F7B2981A6369F6B2834283 -:10B4200005DC2100280000F0E3FF002827D1A368F5 -:10B430000130013BA36023685A1C22601F706369BE -:10B44000834204D0A389DB0707D50A2E05D121004A -:10B45000280000F0CDFF002811D13000F8BD0A4BC4 -:10B460009C4201D1AC68CCE7084B9C42C9D1EC6846 -:10B47000C7E72100280000F00BF80028C9D00126FA -:10B480007642EAE7F0F4001010F50010D0F4001056 -:10B49000374B70B51D6806000C00002D05D0AB6958 -:10B4A000002B02D1280001F045F8324B9C420FD10D -:10B4B0006C680C23E25E93B211072DD4D90611D427 -:10B4C00009230120336037331343A381404270BD09 -:10B4D000294B9C4201D1AC68EBE7284B9C42E8D158 -:10B4E000EC68E6E75B0713D5616B002908D0230001 -:10B4F0004433994202D03000FFF7A8F80023636379 -:10B500002422A3899343A3810023636023692360DA -:10B510000823A2891343A3812369002B0BD1A02107 -:10B520008022A389890092000B40934203D021001E -:10B53000300001F0CBF80C22A35E01201A0099B272 -:10B54000024003420FD00022A26062695242A2610F -:10B55000002022698242BAD10A06B8D5402213439C -:10B56000A3810138B3E7880700D46269A260EFE7DE -:10B57000EC010008F0F4001010F50010D0F40010F9 -:10B58000062010B501F0DAFC012002F075FCF0B5E0 -:10B5900006000B69326987B0002003919A4265DB8F -:10B5A000013B9C0000930B00143305931B1904937B -:10B5B0003300143302931C19049B27681B6838005E -:10B5C0005D1C29000193FDF739FC0190AF4224D3A3 -:10B5D0000025AC460298059F08CF019A99B25143C5 -:10B5E0001B0C534349190A0C9B18026889B292B28A -:10B5F0006244521A01681D0C090C9BB2CB1A11143B -:10B600005B18191492B21B041A43049B8C4604C0A5 -:10B61000BB42E1D22368002B30D03000039901F007 -:10B620004BFB002821DB30000024019B03990133F0 -:10B63000019314301431036820C99AB21419AAB2C4 -:10B64000A21A1B0C2D0C14145B1B1B191C1492B298 -:10B650001B04134308C0049B8B42ECD2009B029A4C -:10B660009B00D3181A68002A15D0019807B0F0BDC6 -:10B670002368002B06D1009B013B0093029B043CF6 -:10B68000A342F5D3009B3361C7E71A68002A06D1AD -:10B69000009A013A0092029A043B9A42F5D3009B29 -:10B6A0003361E2E7F0B59DB002920393029B039CE5 -:10B6B00008930994446A0700259D002C0ED11020A0 -:10B6C000FEF76EFF021E786204D1EA21C74BC8481C -:10B6D000FEF7C4FE446084600460C4607B6A19683D -:10B6E00000290AD05A68012393404A608B603800D1 -:10B6F00001F0A2F800227B6A1A60039B002B20DA7B -:10B7000001232B60039B5B005B080993099DB94BE8 -:10B71000B84A2B40934217D1B74B249A28031360A1 -:10B72000029B000B184301D100F0BFFDB348269BDC -:10B730000690002B02D0B24B269A136006981DB0DB -:10B74000F0BD00232B60E1E7089B099C1293139442 -:10B750001298139900220023FEF71CFD041E09D045 -:10B760000123249A1360A74B0693269B002BE5D058 -:10B77000A54BE1E71AAB01931BAB00933800129A7B -:10B78000139B01F04DFB6E000590760D00D17CE01F -:10B7900012981399139B9D4A1B031B0B1A4311000C -:10B7A0009B4B1894F61800229A4BFEF7EBF89A4A36 -:10B7B0009A4B02F073F89A4A9A4B01F033FD040059 -:10B7C00030000D00FEF7A6FC974A984B02F066F891 -:10B7D00002000B002000290001F024FD04000D00F0 -:10B7E000FEF762FC00220290002320002900FEF7F1 -:10B7F000D7FC00280BD00298FEF78CFC2B0022000F -:10B80000FEF7C8FC43425841029B1B1A02930123D6 -:10B810001693029B162B0FD812981399DA00844BBB -:10B820009B181A685B68FEF7BBFC002849D0029B96 -:10B83000013B0293002316931A9B9E1B00230A933D -:10B840003300013B0D9304D501239B1B0A93002376 -:10B850000D93029B002B36DB029A0D9B94466344AA -:10B860000D93002315920E93229B0124092B64D87B -:10B87000052B02DD0024043B2293229B981E032803 -:10B8800064D801F0BBFC293836581A9B1B9A9E18C5 -:10B89000684BF218202A0FDD40239B1A9D40664B0F -:10B8A0000298F318D840284302F082FA0123634C2F -:10B8B000013E0919189376E7202302989B1A9840B5 -:10B8C000F2E71690B8E70A9B029A9B1A0A93534232 -:10B8D0000E9300231593C7E700230F93239B0C932C -:10B8E0000793002B13DC01231A000C930793239278 -:10B8F0000DE00123F1E70023239A0F939446029B66 -:10B9000063440C9301330793002B00DC01230022D6 -:10B91000786A426004321500143541689D4219D995 -:10B92000380000F045FF0690002817D1D52102000D -:10B93000434B4900CBE60123DEE700230F9422931B -:10B94000013B0C93079300221333D0E701230F939D -:10B95000023BF6E7013141605200DCE77B6A069A60 -:10B960001A60079B0E2B00D9EBE0002C00D1E8E019 -:10B97000029B002B68DD1A000F212D4B0A40D200DC -:10B980009B181D685E68029B1C1102231093029B8A -:10B99000DB050BD52B4B0C401A6A5B6A1298139986 -:10B9A000FDF7FAFC0323089009911093254B14939B -:10B9B000002C08D1089809992A003300FDF7ECFC07 -:10B9C000089009915CE001231C420BD0109B2800D9 -:10B9D00001331093149B31001A685B6801F05EFF1D -:10B9E00005000E00149B64100833E0E747F40010D4 -:10B9F0005EF400100000F07F0F27000043F40010F9 -:10BA000046F4001015F3001016F300100000F03F8C -:10BA100001FCFFFF0000F83F61436F63A787D23F3F -:10BA2000B3C8608B288AC63FFB799F501344D33F2D -:10BA3000C8F500103204000012040000000010FEDF -:10BA4000BCF40010A0F5001002231093029B002B01 -:10BA500016D0129813995C420F23B64A2340DB009C -:10BA6000D3181A685B6801F019FF012600230890BB -:10BA70000991B14D2411002C00D094E0002B9FD1EE -:10BA8000169B002B00D19BE0089C099D0022200002 -:10BA90002900AA4BFEF784FB002800D190E0079B09 -:10BAA000002B00D18CE00C9B002B46DD029B00227A -:10BAB000200029005E1EA24B01F0F0FE109B0890B2 -:10BAC0000991013310930C9B1098089C099D1493C5 -:10BAD000FEF720FB22002B0001F0E0FE0022994B34 -:10BAE00001F0A0FB10901191109A119B08920993FC -:10BAF000954A119B9446634417930993149B002B1A -:10BB000061D1002220002900904BFDF73BFF089AED -:10BB1000179B04000D00FEF757FB002800D0AFE292 -:10BB20008B481199844661440B0020002900089A33 -:10BB3000FEF736FB002800D09FE2129B139C08936F -:10BB400009941B9B002B00DA72E1029A0E2A00DD99 -:10BB50006EE1784BD2009B185C681B680A930B94CB -:10BB6000239B002B00DBF7E0079B002B00DDF3E0BD -:10BB700000D082E20A980B990022744B01F08EFEED -:10BB8000089A099BFEF72AFB079E3500002800D083 -:10BB900059E2069B069A0133089331231370029BE6 -:10BBA0000133029354E2344207D0109B01331093C7 -:10BBB0002A686B6801F072FE3300641008355AE79A -:10BBC000029E079B80E7149B0F995A1E594BD20087 -:10BBD0009B181A685B68002951D000205D49FDF769 -:10BBE000DBFB089A099BFDF7CDFE069A069B94465F -:10BBF0001793149B1090119163441993290020000E -:10BC0000FEF752FA1490FEF785FA02000B002000AE -:10BC10002900FDF7B7FE179B179A01330893149B71 -:10BC2000040030331370109A119B0D00FEF7B8FA20 -:10BC3000002875D122002B0000204049FDF7A2FE0C -:10BC4000109A119BFEF7ACFA002800D0D2E0199BA5 -:10BC5000089A934200D170E7109811990022384B4E -:10BC600001F01CFE364B109011910022200029009B -:10BC700001F014FE089B04000D001793BEE708981E -:10BC8000099901F00BFE069A069B94460893149BB3 -:10BC9000109011916344199329002000FEF704FAD3 -:10BCA0001790FEF737FA02000B0020002900FDF77D -:10BCB00069FE179B089A303313701300199A0133E9 -:10BCC00004000D00089393422CD110981199069A04 -:10BCD000149B94466344002208931E4B01F0A2FA81 -:10BCE00002000B0020002900FEF76EFA002800D0A9 -:10BCF00080E0109A119B00201649FDF743FE0200D8 -:10BD00000B0020002900FEF74BFA002800D114E7B1 -:10BD1000089B1A00013A08921278302AF8D008934A -:10BD2000029655E00022064B01F0B8FD04000D001C -:10BD3000B2E7C046C8F50010A0F500100000F03FC3 -:10BD40000000244000001C400000C0FC0000144023 -:10BD50000000C07C0000E03F079B069E013B9B1952 -:10BD60000C93089C099D0A9A0B9B20002900FDF763 -:10BD700013FBFEF799F90790FEF7CCF90A9A0B9B93 -:10BD800001F08CFD02000B0020002900FDF7FAFDF8 -:10BD90003300079A013630321A700C9A08969A428C -:10BDA00039D102000B0001F03DFA0A9A0B9B040006 -:10BDB0000D00FEF709FA00281BD10A9A0B9B200000 -:10BDC0002900FEF7E7F9002802D0079BDB0710D413 -:10BDD0003800059900F030FD0023089A029813708E -:10BDE000249B01301860269B002B00D1A6E41A602A -:10BDF000A4E4029E089B0893013B1A78392A06D1D5 -:10BE0000069A9A42F7D13022069901360A701A78BA -:10BE100001321A7084E70022AA4B01F03FFD002294 -:10BE2000002304000D00FEF7B5F900289BD0CFE7F2 -:10BE30000F9D0E9E0A9C002D12D0229A012A66DCCC -:10BE4000189A002A5DD0A04A9B180A9A0121D2189C -:10BE50000A920D9A3800D3180D9300F09DFD05004D -:10BE6000002C0EDD0D9B002B0BDD0D9A2300944260 -:10BE700000DD13000A9AE41AD21A0A920D9AD31A14 -:10BE80000D930E9B002B1FD00F9B002B54D0002E28 -:10BE900011DD29003200380000F044FE059A01004F -:10BEA0000500380000F08EFD05991490380000F070 -:10BEB000C3FC149B05930E9B9A1BB34204D038001D -:10BEC000059900F02FFE05900121380000F064FD77 -:10BED000159B0600002B31DD1A000100380000F030 -:10BEE00021FE229B0600012B2DDD00230E933369DA -:10BEF00003339B00F318586800F006FD2023181A3E -:10BF000039E036231A9A0E9E0A9C9B1A9DE7079BDE -:10BF10005E1E0E9BB34207DB9E1B079B0A9C002BF9 -:10BF200093DAE41A002390E70E9B159AF31AD318BC -:10BF30000E9615930026F0E70E9AC0E700230E93A5 -:10BF4000229B012B13DC00230E93089B002B0ED1A8 -:10BF5000099B1B030BD15D4B099A134207D00A9B27 -:10BF600001330A930D9B01330D9301230E93159B0F -:10BF70000120002BBBD10D9B1F221818030013407A -:10BF8000104246D00132D21A042A3FDD1C22D31AB5 -:10BF90000A9AE418D2180A920D9AD3180D930A9BA4 -:10BFA000002B05DD1A003800059900F017FE0590FA -:10BFB0000D9B002B05DD31001A00380000F00EFE4D -:10BFC0000600169B002B26D03100059800F074FE69 -:10BFD000002820DA029B0A22013B0293380000234A -:10BFE000059900F04DFC0F9B0590002B00D166E1F8 -:10BFF000002329000A22380000F042FC0C9B0500B7 -:10C00000002B47DC229B022B0DDC43E0042AC6D028 -:10C0100013001C33BCE7079B002B35DC229B022B53 -:10C0200032DD079B0C930C9B002B0CD131000522B9 -:10C03000380000F025FC06000100059800F03CFEE9 -:10C04000002800DDA5E5239BDB430293069B0893B4 -:10C0500000243100380000F0EFFB002D00D1B7E6DE -:10C06000002C05D0AC4203D02100380000F0E4FBE6 -:10C070002900380000F0E0FBAAE600263500E2E7E0 -:10C080000296149E350084E50F9B002B00D1CEE074 -:10C09000079B0C93002C05DD29002200380000F0DE -:10C0A0009DFD05000E9B2800002B22D038006968FA -:10C0B00000F07EFB041E0FD10200054B0549FFF77F -:10C0C00006FBC04600002440330400000000F07F5F -:10C0D000BCF40010EA02000029002B690C319A1C04 -:10C0E00092000C30FEF774FA01222100380000F0B3 -:10C0F00075FD069B0C9A0A93013B9B1801222C00AC -:10C1000005001493089B13400F9331000598FFF727 -:10C110003EFA0300210030330D900598079300F09C -:10C12000CBFD2A000E903100380000F0E1FDC3681D -:10C130000890109301230C93109B002B04D1010055 -:10C14000059800F0B9FD0C903800089900F074FBD8 -:10C150000A9B0C9A01330893229B13430F9A1343B3 -:10C160000CD1079B392B26D00E9B002B02DD0D9B9B -:10C17000313307930A9B079A1A706AE70E9B002BCC -:10C1800004DB229A13430F9A13431FD10C9B002BFD -:10C19000F0DD05990122380000F020FD3100059006 -:10C1A00000F08AFD002803DCE4D1079BDB07E1D522 -:10C1B000079B392BDBD139230A9A1370089B08930C -:10C1C000013B1A78392A68D00132D5E70C9B002B45 -:10C1D00007DD079B392BEED0079B0A9A01331370BA -:10C1E00037E70A9B079A1A70149B0A9A93423ED02B -:10C1F00000230A220599380000F042FB0023059035 -:10C200000A2221003800AC4206D100F039FB0400BC -:10C210000500089B0A9378E700F032FB2900040030 -:10C2200000230A22380000F02BFB0500F1E7079BF2 -:10C230000C93002431000598FFF7A9F9069B3030D4 -:10C2400018550C9B01340790A34207DD00230A22F6 -:10C250003800059900F014FB0590EBE70C9B0120DA -:10C26000002B00DD18000024069B1B18089305997D -:10C270000122380000F0B2FC3100059000F01CFDF6 -:10C2800000289BDC02D1079BDB0797D4089B08930F -:10C29000013B1A78302AFAD0DBE6069A9A428ED110 -:10C2A000029B01330293312399E7094B269A0693A7 -:10C2B000084B002A01D0FFF73FFAFFF73FFA0C9B2B -:10C2C000002BB6DC229B022B00DDACE6B1E7C046BA -:10C2D0003AF4001042F40010F7B58B8905000C0009 -:10C2E0001A075FD44A68002A04DC0A6C002A01DCC1 -:10C2F0000020FEBDE76A002FFAD0002280212E68C0 -:10C300002A601A0049010A400B4234D0606DA389AB -:10C310005B0706D56368C01A636B002B01D0236CE2 -:10C32000C01A0200216A00232800E76AB847A189E1 -:10C33000431C06D12B681D2B31D82C4ADA40D30779 -:10C340002DD50023636023692360CB0405D5431CEE -:10C3500002D12B68002B00D16065616B2E60002933 -:10C36000C6D023004433994202D02800FEF76EF96C -:10C3700000206063BDE701232800216AB847431C01 -:10C38000C5D12B68002BC2D01D2B01D0162B01D19B -:10C390002E60ADE74023A2891343A381A9E7402380 -:10C3A0000B43FAE70F69002FA2D00A680F60D21B77 -:10C3B000019200229B0700D14A69A260019B002BD9 -:10C3C00000DC95E73A002800019B216AA66AB04785 -:10C3D000002806DC40230120A28940421343A381A8 -:10C3E00087E7019B3F181B1A0193E7E701004020F4 -:10C3F0000B6970B505000C00002B02D10025280048 -:10C4000070BD002804D08369002B01D100F092F8A0 -:10C41000144B9C421BD16C680C22A35E002BEDD008 -:10C42000626ED20704D49B0502D4A06DFEF7B6F865 -:10C4300028002100FFF750FF636E0500DB07DED404 -:10C44000A3899B05DBD4A06DFEF7A9F8D7E7064BBF -:10C450009C4201D1AC68DFE7044B9C42DCD1EC6824 -:10C46000DAE7C046F0F4001010F50010D0F4001028 -:10C47000002310B50400036043608360818143663C -:10C480001900C28103614361836108225C30FEF7B9 -:10C49000A8F8054B24626362044BA362044BE36279 -:10C4A000044B236310BDC0467DCF0010A5CF001004 -:10C4B000DDCF001009D0001010B5024900F0BAF825 -:10C4C00010BDC0467DD0001070B568254A1E55438A -:10C4D0000E0029007431FEF725F9041E08D0002152 -:10C4E0002A00016046600C30A0606832FEF779F8DF -:10C4F000200070BD10B50248FEF750F810BDC046D0 -:10C500006960010810B50248FEF749F810BDC04641 -:10C510006960010810B50248FEF740F810BDC0463A -:10C520006A60010810B50248FEF739F810BDC04630 -:10C530006A60010813B50400FFF7ECFFA369002B44 -:10C5400002D0FFF7EFFF13BDA364E3642365134B31 -:10C55000134A1B68A2620193A34201D10123A36184 -:10C56000200000F01FF86060200000F01BF8A060C1 -:10C57000200000F017F800220421E0606068FFF757 -:10C5800077FF01220921A068FFF772FF0222122122 -:10C59000E068FFF76DFF0123A361D2E7F0F200101E -:10C5A000B9C40010F8B50700FFF7A4FF1F4B1868C7 -:10C5B0008369002B01D1FFF7BDFF3E004836B46808 -:10C5C0007368013B04D53368002B22D03668F6E748 -:10C5D0000C22A55E002D1AD12000154B5830E360C7 -:10C5E0006566FDF7D9FFFFF78DFF200008222900BF -:10C5F0002560A560656025616561A5615C30FDF71A -:10C60000F0FF6563A563A564E5642000F8BD6834A8 -:10C61000D7E704213800FFF757FF041E3060D5D15B -:10C62000FFF770FF0C233B60EFE7C046F0F200100D -:10C630000100FFFFF7B50400060000270191483410 -:10C640006368A5680093009B013B009304D52468B0 -:10C65000002CF5D13800FEBDAB89012B08D90E2284 -:10C66000AB5E013304D029003000019B984707439B -:10C670006835E8E7004870474003000870B50E00D1 -:10C680001D000E23C95E140096B0002908DA0C22A2 -:10C69000B35E00222A601B0611D48023DB000FE06A -:10C6A0006A4600F05FFD0028F1DBF02301991B02D0 -:10C6B0001940054BC9184B4259412960EDE7402309 -:10C6C0000020236016B070BD00E0FFFFF7B5022622 -:10C6D0008B8905000C00334206D0230047332360CA -:10C6E000236101236361F7BD6A4601ABFFF7C6FF13 -:10C6F000009907002800FEF715F8002808D10C2241 -:10C70000A35E9A05EFD4032293431E43A681E4E778 -:10C710000F4BAB628023A28920601343A381009B4F -:10C7200020616361019B002B0DD028000E23E15E88 -:10C7300000F02AFD002806D00322A38993431A00A3 -:10C7400001231343A381A0890743A781CBE7C046F8 -:10C75000B9C4001082B0002900D101A9101E06D072 -:10C76000002B06D013780B601078431E984102B05E -:10C77000704702204042FAE7C9B28218904201D1C4 -:10C780000020704703788B42FBD00130F6E70000B1 -:10C7900010B50248FDF702FF10BDC04668600108F1 -:10C7A00010B50248FDF7FBFE10BDC04668600108E9 -:10C7B00070B5456A06000C00002D0ED11020FDF763 -:10C7C000EFFE021E706204D16621194B1948FDF775 -:10C7D00045FE456085600560C560756AEB68002BA5 -:10C7E00013D0736AA200DB689B181868002818D160 -:10C7F00001210D00A5406A1D30009200FDF7F9FEF1 -:10C8000000280CD0446085600DE021220421300016 -:10C81000FDF7EFFE736AE860DB68002BE1D10020D2 -:10C8200070BD02681A6000230361C360F8E7C04668 -:10C8300047F400103AF5001070B5466A05000C0088 -:10C84000002E0ED11020FDF7ABFE021E686204D14F -:10C850008A21094B0948FDF701FE466086600660A3 -:10C86000C660002C07D06B6A6268DB6892009B1878 -:10C870001A6822601C6070BD47F400103AF5001081 -:10C88000F7B50E0001900C001D0000200F69143652 -:10C890003368013099B251431B0C534349190D0CB5 -:10C8A0005B191D0C89B21B045B1808C68742EFDCBC -:10C8B000002D22D0A368BB4219DC63680198591C83 -:10C8C000FFF776FF061E05D10200B5210C4B0D487F -:10C8D000FDF7C4FD210023690C319A1C92000C3035 -:10C8E000FDF776FE21000198FFF7A6FF34003B1DFF -:10C8F0009B00E3185D607B1C23612000FEBDC046E9 -:10C90000BCF400103AF500100300020C0020824233 -:10C9100001D11B0410301A0E01D108301B021A0F6E -:10C9200001D104301B019A0F01D102309B00002B72 -:10C9300003DB01305B0000D4202070470368020055 -:10C940000721180008400B420DD0063900200B4289 -:10C9500005D10230034203D0CB400800136070477A -:10C960009B081360FBE799B2002901D110201B0C32 -:10C97000D9B2002901D108301B0A190701D10430AE -:10C980001B09990701D102309B08D907E9D401306E -:10C990005B08E6D12020E2E710B50C000121FFF78B -:10C9A00007FF002806D1A0210200044B04484900DB -:10C9B000FDF754FD01234461036110BDBCF4001078 -:10C9C0003AF50010F0B50B69140012690D0089B03A -:10C9D000934201DA25000C002F6926696968BB19AA -:10C9E0000293AB68BA19934200DA0131FFF7E0FE17 -:10C9F0000190002806D15E210200484B4848FF31D3 -:10CA0000FDF72CFD019B002214339C46BB199B00B3 -:10CA100063440393634603998B422CD32B0022007B -:10CA20001433BF0014320693B600DB190493931934 -:10CA30000793042305932B00049915330092994220 -:10CA400005D34B1B153B9B0801339B000593079BAC -:10CA5000009A9A4211D3029B002B06DD039B043BF4 -:10CA600003931B680093002B53D0019B029A18007C -:10CA70001A6109B0F0BD04C3CDE7009B1B6898B2F2 -:10CA800000281BD067460024069E02CE3A688BB26F -:10CA9000434392B29B181B190C0C44433A68110C87 -:10CAA00061181C0C09190C0C9BB209040B4308C734 -:10CAB000049BB342E9D86346059A9C50009B1B68CF -:10CAC0001E0C20D063462C00604600271B681434DF -:10CAD00022689BB291B271430268120C8918CF1977 -:10CAE00039040B43036002CC4368090C71439BB2C9 -:10CAF0003F0CCB18049ADB191F0C0430A242E7D874 -:10CB0000624605995350009B0433009304239C44D0 -:10CB10009DE7029B013B02939DE7C046BCF40010D9 -:10CB20003AF50010F7B50323150007000E001A4070 -:10CB30001D4208D02549013A920052580023310085 -:10CB4000FFF79EFE0600AD103DD07C6A002C0FD191 -:10CB50001020FDF725FD021E786205D1D7211C4B60 -:10CB60001C484900FDF77AFC446084600460C4609E -:10CB70007B6A9C680193002C08D138001649FFF7A6 -:10CB80000BFF019B040098600023036001231D42FA -:10CB90000AD0310022003800FFF714FF3100019065 -:10CBA0003800FFF749FE019E6D100CD02068002868 -:10CBB00007D1220021003800FFF704FF0023206086 -:10CBC00003600400E2E73000FEBDC04690F60010AE -:10CBD00047F400103AF5001071020000F0B50C00A7 -:10CBE00017002369551187B0EB18029301330193A5 -:10CBF0004968A3680490019A934210DB0498FFF7F8 -:10CC0000D7FD0023020006001900143298420CD10F -:10CC1000DA210200264B2748FF31FDF71FFC0131C6 -:10CC20005B00E8E7980011500133AB42FADBEB43BD -:10CC3000DB171D401F2123003800AD005519226964 -:10CC400014339200084084469A180F422AD00131CA -:10CC5000091A05910021039567461868B8400143F9 -:10CC6000039802C002CB03900598C1409A42F3D8C2 -:10CC7000200015300423824204D3131B153B9B086C -:10CC800001339B00E950002902D0029B023301933B -:10CC9000019B0498013B21003361FFF7CDFD30007B -:10CCA00007B0F0BD02CB02C59A42FBD8F0E7C04600 -:10CCB000BCF400103AF5001002690B6930B50400AD -:10CCC000D01A9A420DD19B0014341431E218C918BD -:10CCD000043A043915680B689D4203D001209D4237 -:10CCE00003D330BD9442F3D3FBE74042F9E70000A1 -:10CCF000F0B50E0007001100300087B01400FFF7F8 -:10CD0000DBFF051E10D101003800FFF751FD021EA8 -:10CD100004D1404B40494148FDF7A0FB0123456148 -:10CD20000361100007B0F0BD01230193002804DB6C -:10CD3000230034001E000023019338006168FFF7D0 -:10CD400037FD021E03D19021324B8900E3E7019B9E -:10CD50000027C360206914340194019B84001B19CF -:10CD60003400029333691434990063180393130059 -:10CD700014339C460593019B0493049B02CC20CB67 -:10CD80000493ABB2DF198BB2FB1A090C2D0C6D1A90 -:10CD900019146D1861462F149BB22D042B4308C142 -:10CDA000039B8C46A342E8D83100039C1531042331 -:10CDB0008C4204D3A31B153B9B0801339B000199B4 -:10CDC000CC1805992600CB189C4602998E4210D3A8 -:10CDD000029EE11E00258E4204D3310003310C1B5C -:10CDE000A408A5005B19043B196800290FD0106145 -:10CDF00097E702CE8DB2ED190F0C291479180F1494 -:10CE0000ADB209040D43614620C18C46DDE701380F -:10CE1000E9E7C046BCF40010320200003AF5001009 -:10CE2000F7B5012114001E00089FFFF7C1FC051E85 -:10CE300005D10200264B27492748FDF70FFB330396 -:10CE400076001B0B760D24D10193002C27D0684669 -:10CE50000094FFF773FD009C00281ED0019B202149 -:10CE60001A00091A8A40C34022436A610193019C57 -:10CE7000AC61631E9C4101342C61002E18D0174B0D -:10CE8000F61835233618181A099B3E6018602800DA -:10CE9000FEBD802252031343D6E76C61E7E701A889 -:10CEA000FFF74CFD0124019B2C616B612030E4E70E -:10CEB0000B4BC0180B4B3860E3189B00EB185869FC -:10CEC000FFF722FD6401099B241A1C60DFE7C046BE -:10CED000BCF400100A0300003AF50010CDFBFFFF80 -:10CEE000CEFBFFFFFFFFFF3F70B504000D001F29C1 -:10CEF00004D9162303600120404270BD436C002B0F -:10CF000004D08A009B181A68002A08D1200000F07B -:10CF100031F82A000100200000F01AF8EDE70020A7 -:10CF2000012AEAD0511C03D1162301302360E4E723 -:10CF3000002428001C6090472000DEE710B5034B5A -:10CF400001001868FFF7D0FF10BDC046EC010008D3 -:10CF5000002370B5064D0400080011002B6000F09E -:10CF60006DFF431C03D12B68002B00D0236070BDE4 -:10CF70007460010810B500F051FF10BD70B50C00D1 -:10CF80000E25495F00F026F9002803DB636D1B18AE -:10CF9000636570BDA389024A1340A381F9E7C046C7 -:10CFA000FFEFFFFFF8B51F008B8905000C0016008E -:10CFB000DB0505D50E23C95E0022022300F0F6F83A -:10CFC000A389054A28001340A38132000E23E15EA5 -:10CFD0003B0000F02DF8F8BDFFEFFFFF70B50C002F -:10CFE0000E25495F00F0E2F8A389421C03D1054AEF -:10CFF0001340A38170BD802252011343A381606559 -:10D00000F8E7C046FFEFFFFF10B50E23C95E00F042 -:10D0100023F810BD0300081E05D0FF2A04D98A2278 -:10D0200001201A604042704701200A70FBE70000AF -:10D0300070B50400080011001A000023054D2B6094 -:10D04000F6F7B6FA431C03D12B68002B00D02360FF -:10D0500070BDC04674600108002370B5064D040021 -:10D0600008002B6000F0CAFE431C03D12B68002B84 -:10D0700000D0236070BDC0467460010870B5050023 -:10D080000C1E02D10026300070BD002804D0836938 -:10D09000002B01D1FFF74EFA2F4B9C4217D16C6841 -:10D0A000636EDB0705D4A3899B0502D4A06DFDF751 -:10D0B00075FA0C22A35E002B13D1626E01331600A9 -:10D0C0001E401A42DED1A06DFDF769FADBE7234B63 -:10D0D0009C4201D1AC68E3E7214B9C42E0D1EC6873 -:10D0E000DEE721002800FFF7F7F8236B0600002B8E -:10D0F00006D02800216A9847002801DA01267642E6 -:10D10000A3891B0603D528002169FDF79FFA616BEF -:10D11000002908D023004433994202D02800FDF7AB -:10D1200095FA00236363A16C002904D02800FDF761 -:10D130008DFA0023A364FFF7DDF90023A381636E5A -:10D14000DB0702D4A06DFDF72AFAA06DFDF725FAE2 -:10D15000FFF7D8F997E7C046F0F4001010F500107B -:10D16000D0F40010002370B5064D04000800110033 -:10D170002B6000F04BFE431C03D12B68002B00D02A -:10D18000236070BD74600108002370B5064D040073 -:10D1900008002B6000F04AFE431C03D12B68002BD3 -:10D1A00000D0236070BDC0467460010870B50400F3 -:10D1B000080011001A000023054D2B6000F046FE08 -:10D1C000431C03D12B68002B00D0236070BDC046E8 -:10D1D0007460010870B50400080011001A000023F3 -:10D1E000054D2B60F6F704FA431C03D12B68002B86 -:10D1F00000D0236070BDC0467460010802B471465F -:10D2000049084900095C49008E4402BC7047C04689 -:10D2100003B47146490840004900095E49008E4444 -:10D2200003BC7047F0B54F464646D6460D00040095 -:10D23000C0B51F0011002803620F400A10437A0096 -:10D24000520DE3003C039146640AFA0F4F0F6E0043 -:10D2500027439246B846760DED0FC900954200D19E -:10D2600099E04C46341BA446002C00DC7CE04A4686 -:10D27000002A00D1B8E0C54A964200D11CE18022C4 -:10D280003C0012041443A0466246382A00DD61E1E6 -:10D290001F2A00DDCCE164462022121B4446944044 -:10D2A0000F00A14664469140E7404C464A1E91411A -:10D2B0003C43424621436446E240801A5C1AA34242 -:10D2C0009B415F42C71B3B0200D4D0E07F027F0A34 -:10D2D000002F00D1FFE03800FCF78AFF0100083979 -:10D2E000202322005B1A8F40DA408C401743B14262 -:10D2F00000DAFFE0891B4B1C1F2B00DDA8E0202279 -:10D300003900D21A200094409140D840621E9441C6 -:10D31000DF40002601430C43630709D00F2323405D -:10D32000042B05D0231DA342A44164423F191C00D5 -:10D330003B0200D49EE0954B01369E4200D1B7E0FF -:10D34000934AE40817407B0771057F0223433F0B94 -:10D350004A0D12053A43ED072A4318001100E0BCBC -:10D36000BA46B146A846F0BD002C4BD04C46A41B93 -:10D37000A446002E00D023E104001C4300D1AFE1FD -:10D380006246541E012A00D115E2804DAC4500D101 -:10D39000C8E1A4461BE14A46B21A9446002A00DCC2 -:10D3A000ACE04A46002A43D0784A964200D1AFE129 -:10D3B00080223C0012041443A0466246382A67DCEF -:10D3C0001F2A00DC5FE14746203AD7406246202A08 -:10D3D00005D064464022121B4446944021434A1E15 -:10D3E00091410C003C4357E03A000A4300D105E16B -:10D3F0002200013A012C00D182E1644CA4455BD0AB -:10D40000944641E7634C771C274200D0C4E00400F7 -:10D410001C43002E00D069E1002C00D1BFE144463E -:10D420000C4300D0D0E14207DB081343C00829E0D9 -:10D430003A000A4300D170E162466446013A012C89 -:10D4400000D1E0E0514CA44500D161E19446B4E73D -:10D450003A001F39CA401100202B03D04022D31AB2 -:10D460009F403C43631E9C41002700260C436307FA -:10D4700000D053E7B446E4087B072343F808434A47 -:10D4800094451DD06246070352053F0B520D60E7DD -:10D4900044460C43621E9441E4189C429B415F4207 -:10D4A0003F183B02E3D5394B01369E4200D0B5E030 -:10D4B0003200002700234CE74207DB081343C00873 -:10D4C0001A00024300D1E1E180273F0307433F03F5 -:10D4D0002E4A3F0B3DE72000FCF78AFE0100183181 -:10D4E0001F2900DCFCE60838844027000024B142F4 -:10D4F00000DBFFE6264A761A17400DE7002A2FD0F8 -:10D500004A46921B9446002E00D1ADE01F4A914539 -:10D5100000D10FE18022120410436246382A00DD58 -:10D520000FE11F2A00DD80E1644620221E00121B4D -:10D530006746040093409440FE405A1E9341F840D1 -:10D5400034431C43804464188C42BF417F424E46A2 -:10D550004744A6E742460A4311004A1E9141ADE600 -:10D560000C4C721C224200D0A1E002001A43002E93 -:10D5700000D0FAE0002A00D145E13A000A4300D089 -:10D5800046E14207DB081343C0087BE7FF070000C2 -:10D59000FFFF7FFFFE07000047465C1AC21BA34245 -:10D5A000BF417F42B94617004A46BF1A3A0200D52A -:10D5B0008DE023003B4300D08AE60020002561E790 -:10D5C000B44CA14500D1ADE080242404204364463E -:10D5D000382C3DDC62461F2C00DDB7E020251E0004 -:10D5E0002D1B0400AB40AC40D640D04042465D1EEF -:10D5F000AB413443121A904623432CE04207DB0828 -:10D600001343C0083BE75C189C429B4140445B428B -:10D61000C71801263B0200D429E702269E4A630868 -:10D620001740012214401C43FB071C437F0873E68C -:10D630004446203AD4406246202A05D0674640221C -:10D64000D21B4746974039434A1E9141214335E654 -:10D650000343581E8341CC1AA142BF4143467F4237 -:10D6600055464E46DF1B2EE602001A4300D1BDE0B0 -:10D6700062466446013A012C00D1E5E0854CA445A0 -:10D6800058D0944649E764462022121B44469440F1 -:10D690000F00A14664469140E7404C464A1E914126 -:10D6A0003C4342460C436146CA408018F4E6794C3C -:10D6B000A24200D1FDE6591899429B4140445F4285 -:10D6C000C719FC07490816000C437F08CFE6CC1A9F -:10D6D000A142BF4143467F42181A5546C71BF7E592 -:10D6E000C9087B0755460B43F808C8E6002C00D054 -:10D6F00081E043460B4315D1802000250003E3E67B -:10D700005C1AA3429B41C71B5B420126FF1ADAE564 -:10D710004207DB081343C008D2E64207DB08134385 -:10D72000C008ACE643464246C9085B0755460B4372 -:10D73000D008C5E6434642465B07C9080B43D008FC -:10D74000BEE603431C00631E9C41FCE60200203C35 -:10D75000E24014006246202A03D04025AD1AA840BA -:10D760000343581E8341234375E7002AE2D03A0061 -:10D770000A43CDD04207DB0813438022C0081203BE -:10D78000104206D0FC08144203D12000CB087A07CF -:10D7900013435A0FDB005207DB08134390E643465E -:10D7A0000B4300D109E743464246C9085B0755468B -:10D7B0000B43D00866E6CC1AA14289413F1A494280 -:10D7C000554601267F1A7EE542465C1A871AA34217 -:10D7D00092415242BF1A3A023DD5CC1AA142894128 -:10D7E000434649421F1A55467F1A95E57B07C908EB -:10D7F0000B43F80843E64446DB080C4330D14207AC -:10D800001343C0085CE67B07C9080B43F80839E6F8 -:10D810005C189C429B4140445B42C7183B0200D4C9 -:10D8200025E61D4B01261F4021E60400203AD44086 -:10D830006246202A04D040226646921B9040034351 -:10D840005A1E93411C437EE65C188C428941404439 -:10D8500049424718DDE623003B4300D1ADE606E62A -:10D86000440723438024C0082403204208D04246B2 -:10D87000D608264204D155463000CB0851070B4349 -:10D880005A0FDB00DB085207134319E60023014A55 -:10D890001F005EE5FF070000FFFF7FFFF0B5574662 -:10D8A0004E464546DE46E0B598460C034B00060062 -:10D8B000924687B0240B5B0DCF0F002B00D15CE1AB -:10D8C000D94A934200D175E1420FE400144380220B -:10D8D00012041443D54AC5009446634400930023C0 -:10D8E00099469B46434642461E03D20F5B00504674 -:10D8F0009046360B5B0D00D120E1CB4A934200D11C -:10D9000062E1CA49420F8C4600996344F6008C4696 -:10D91000164380229C44120463461643C200002032 -:10D9200000930099434601318C4649467B40019360 -:10D930000F2926D8BE4B890059588F46434601937C -:10D940003400150083465B46022B16D0032B00D112 -:10D9500003E2012B00D0CDE0002200240025019B32 -:10D9600012052243DB071A432800110007B0F0BC60 -:10D97000BB46B246A946A046F0BD00240025AA4AEF -:10D98000EDE7280C2D042D0C2B00110C1204120CA9 -:10D990005343984613002F00434399464F434F4447 -:10D9A000BB4647460B003F0CBA464343DA4402935A -:10D9B000D14504D980277F02B9464B440293534690 -:10D9C0001B0C9B4653461F0443461B041B0C9846E6 -:10D9D0003B0043440493330C3604360C9846330022 -:10D9E00043439946434643432F009A464346774371 -:10D9F0005D43380C4D444519A94503D980235B028A -:10DA00009946CA443F04280C3F0C2D04ED19270CFD -:10DA10002404240C0300200050437A4391463A002A -:10DA200053440593030C9A464A4361434944514485 -:10DA3000AB44894503D980235B0299464A440004DC -:10DA40000B0C000C0904091820009946434670434A -:10DA50005C437E435F43030C9846A41944444A4404 -:10DA60000397A64204D980235B0298464744039754 -:10DA70002304029E9A46059B5E449846AE42AD4101 -:10DA800076188E4289410004000C504440446D4297 -:10DA90004719B846934649428946C344D9449842F7 -:10DAA0008041A845AD4193459241894589416D42E8 -:10DAB00040422843240C524249420A43039B001926 -:10DAC0008018C7184B46DC0D049B75021D436A1E67 -:10DAD00095414B46F60D7F0235435A023C431543B0 -:10DAE000FB0100D41CE101216A080D401543E20747 -:10DAF000154364084F496144002900DCB0E06B071E -:10DB000009D00F222A40042A05D02A1DAA42AD417D -:10DB10006D4264191500E30104D58021464AC9000D -:10DB200014406144454A914200DD26E76207ED0852 -:10DB3000640249051543240B4A0D10E7524632434F -:10DB400000D17FE0002E00D1DCE03000FCF750FB7C -:10DB500002000B3A1D2301009B1A52460839DA4095 -:10DB60008E40164352468A40009B3549181A0300DE -:10DB70008C46634400200093D3E6250005434AD039 -:10DB8000002C00D1B0E02000FCF732FB01000200C5 -:10DB90000B391D2310005B1A310035000838844012 -:10DBA000D94085400C432648831A009300239946A8 -:10DBB0009B4697E60500254326D1082200930223C1 -:10DBC000002491469B468DE65246009B324310D17D -:10DBD000154900268C4663444946009302231943A5 -:10DBE000894602209DE65B460197022B00D0ADE6F8 -:10DBF000C3E60D4A0320944663444A460093032338 -:10DC00001A43914652468CE60C22009303230500EA -:10DC100091469B4666E60423994600230093013310 -:10DC200000249B465EE6C046FF07000001FCFFFFA4 -:10DC30009CF60010FF030000FFFFFFFEFE07000040 -:10DC40000DFCFFFF494601231943894600260120A8 -:10DC500067E6002380240025434A019324037EE6DF -:10DC60000120401A382800DD76E61F285BDD1F22E0 -:10DC700023005242511ACB401900202803D03B4ABE -:10DC80006244944025436A1E95412A000A430721B5 -:10DC90000D000024154011425BD00F2100241140DB -:10DCA000042953D0111D914292415242A4180A00F6 -:10DCB00023024BD501220024002550E680231B03BC -:10DCC0001C4209D01E4207D133431C0343461500B2 -:10DCD000240B254A019342E68022120314432403B5 -:10DCE000214A240B01973AE6FCF782FA0100020070 -:10DCF000153120321C2900DC4BE7340008380025A0 -:10DD0000844050E7FCF774FA03001A001532203003 -:10DD10001C2A00DC1EE75646083B00229E4023E7F3 -:10DD2000009B9C46E6E61249220061442E008D408D -:10DD30008A40C640691E8D4132432A43C44053077E -:10DD4000B6D00F2111400429ACD1B1E765076402B8 -:10DD5000240BD2081543002201E68022120314434B -:10DD60002403014A240BFAE5FF0700003E040000EB -:10DD70001E04000070B505000C481C0316005B0073 -:10DD80000A034900120B490D240B5B0D814208D098 -:10DD9000064A0020934203D120003043431E98419D -:10DDA00070BD01202A43FBD1F2E7C046FF07000007 -:10DDB00010B5041E10D0FCF71BFA0F4B1B1A0A28D3 -:10DDC00011DC0B222100121AD14015300A035B0529 -:10DDD0008440120B5B0D01E0002300221B0513435E -:10DDE0002000190010BD22000B3882405B05120391 -:10DDF0000024120B5B0DF1E71E04000058220120E5 -:10DE0000014B40421A60704774600108582201209B -:10DE1000014B40421A60704774600108582201208B -:10DE2000014B40421A607047746001085822024B4F -:10DE300000201A607047C046746001085822012013 -:10DE4000014B40421A60704774600108582201205B -:10DE5000014B40421A60704774600108044A030095 -:10DE60001068002802D0C318136070470148FAE711 -:10DE70007860010880600108FEE7C046F8B5C0463A -:10DE8000F8BC08BC9E467047F8B5C046F8BC08BC54 -:10DE90009E4670470000000001B40248844601BC61 -:10DEA000604700BF0906000801B40248844601BC6F -:10DEB000604700BFA5040008000000000800000043 -:10DEC0000800000000020000000000000000000048 -:10DED0000000000000000000000000000000000042 -:10DEE000000000000B0000003F00000000000000E8 -:10DEF0003F00000000000000010000000B000000D7 -:10DF00001D000000000000000000000000000000F4 -:10DF10000000000001000000000000000000000000 -:10DF200000000000000000000000000001000000F0 -:10DF30000A0000001D0000000000000000000000BA -:10DF400000000000000000000100000000000000D0 -:10DF500000000000000000000000000000000000C1 -:10DF600001000000060000001D000000000000008D -:10DF700000000000000000000000000001000000A0 -:10DF80000000000000000000000000000000000091 -:10DF90000000000001000000080000001200000066 -:10DFA0000000000000000000000000000000000071 -:10DFB0000100000000000000000000000000000060 -:10DFC000000000000000000001000000060000004A -:10DFD000120000000000000000000000000000002F -:10DFE0000000000001000000000000000000000030 -:10DFF0000000000000000000000000000100000020 -:10E000000000000000000000000000000000000010 -:10E0100000000000000000000100000000000000FF -:10E0200000000000000000000000000000000000F0 -:10E0300001000000000000000000000000000000DF -:10E0400000000000000000000000000001000000CF -:10E0500000000000000000000000000000000000C0 -:10E0600000000000010000000300000000000000AC -:10E0700000000018000000040000000058E100103B -:10E080006000000000000000FFFFFFFF0000000034 -:10E090000000000000000000DC00000000000000A4 -:10E0A000FFFFFFFF00000000000000000000000074 -:10E0B0003400000000000000FFFFFFFF020000002E -:10E0C0000000000002000000EC0000000002000060 -:10E0D0000100000002000000040000000200000037 -:10E0E0003500000000000000FFFFFFFF00000000FF -:10E0F000000000000000000005000000000000001B -:10E10000FFFFFFFF00000000000000000000000013 -:10E110000400000000000000FFFFFFFF00000000FF -:10E1200000000000000000000600000000000000E9 -:10E13000FFFFFFFF000000000000000000000000E3 -:10E140000100000000000000FFFFFFFF00000000D2 -:10E1500000000000000000000400000000000004B7 -:10E16000C8E0001028E1001010E1001098E0001055 -:10E170000000040080E00010B0E000100002000089 -:10E18000F8E00010E0E0001040E1001000000000A6 -:10E190000100000002000000280A0000E00407005F -:10E1A0001405000000000000000000000100000055 -:10E1B000BCE10010020000001400000064E0001048 -:10E1C000F4010000140004010A000905080003001E -:10E1D0006301000024010200000000005B494E467C -:10E1E0005D205374617274696E6720557365722087 -:10E1F0004170706C69636174696F6E206F6E20434B -:10E200004D342E20506C6561736520776169742EE2 -:10E210002E2E0A0D000000005B494E465D201B5B60 -:10E22000324A1B5B3B480A0D000000005B494E462A -:10E230005D204D4355626F6F7420426F6F746C6F39 -:10E240006164657220537461727465640A0D000024 -:10E250005B494E465D2045787465726E616C204D59 -:10E26000656D6F727920696E697469616C697A6530 -:10E2700064207573696E6720534644500A0D000090 -:10E280005B4552525D2045787465726E616C204D1D -:10E29000656D6F727920696E697469616C697A6104 -:10E2A00074696F6E207573696E6720534644502001 -:10E2B0004641494C45443A203078253032780A0DA1 -:10E2C000000000005B494E465D2055736572204199 -:10E2D00070706C69636174696F6E2076616C6964DB -:10E2E00061746564207375636365737366756C6CC4 -:10E2F000790A0D005B494E465D204D4355626F6FB4 -:10E300007420426F6F746C6F6164657220666F7504 -:10E310006E64206E6F20626F6F7461626C6520693D -:10E320006D6167650A0D0000030000000100000038 -:10E330000100000000000000050360000400000070 -:10E340000100000000000000010000000604600061 -:10E3500008000000F0080008A905001028696D6198 -:10E3600067655F6E756D29203C203078460000009F -:10E370002E2E2F6D74625F7368617265642F6D63FA -:10E3800075626F6F742F76312E372E302D63797052 -:10E39000726573732F626F6F742F626F6F74757411 -:10E3A000696C2F7372632F626F6F747574696C5F21 -:10E3B0006D6973632E63000028737761705F7479F1 -:10E3C000706529203C2030784600000062616400BE -:10E3D000676F6F6400000000756E73657400000065 -:10E3E00074657374000000007065726D00000000B9 -:10E3F0004255473B2063616E2774206861707065E9 -:10E400006E0000007265766572740000626F6F7452 -:10E410005F737761705F747970655F6D756C746937 -:10E420003A205072696D61727920696D616765008B -:10E430005B494E465D2025733A206D616769633DF7 -:10E4400025732C20737761705F747970653D307827 -:10E4500025782C20636F70795F646F6E653D30782E -:10E4600025782C20696D6167655F6F6B3D3078257D -:10E47000780A0D00626F6F745F737761705F7479F3 -:10E4800070655F6D756C74693A205365636F6E6477 -:10E4900061727920696D6167650000005B494E46D5 -:10E4A0005D205377617020747970653A2025730A76 -:10E4B0000D0000005B494E465D205377617020746B -:10E4C0007970653A206E6F6E650A0D00626F6F7429 -:10E4D0005F77726974655F737761705F696E666F8D -:10E4E0000000000077C295F360D2EF7F3552500FE5 -:10E4F0002CB679800401040304020401040104031E -:10E500000103030401040000000000006FC75E1057 -:10E51000DE8EBD20B149E330BC1D7B41D3DA2551ED -:10E520006293C6610D549871783BF68217FCA892ED -:10E53000A6B54BA2C97215B2C4268DC3ABE1D3D325 -:10E540001AA830E3756F6EF37365636F6E64617262 -:10E55000790000007072696D617279005B455252FA -:10E560005D20496D61676520696E207468652025AE -:10E570007320736C6F74206973206E6F74207661E2 -:10E580006C6964210A0D00007263203D3D2030005B -:10E590002E2E2F6D74625F7368617265642F6D63D8 -:10E5A00075626F6F742F76312E372E302D63797030 -:10E5B000726573732F626F6F742F626F6F747574EF -:10E5C000696C2F7372632F6C6F616465722E6300C8 -:10E5D0005B4552525D2070616E6963210A0D000037 -:10E5E000300000005B57524E5D204661696C6564E7 -:10E5F0002072656164696E6720736563746F7273FE -:10E600003B20424F4F545F4D41585F494D475F5348 -:10E610004543544F52533D2564202D20746F6F2085 -:10E62000736D616C6C3F0A0D000000005B57524E29 -:10E630005D204661696C65642072656164696E671E -:10E6400020696D61676520686561646572733B2050 -:10E65000496D6167653D25750A0D00005B57524E97 -:10E660005D204661696C65642072656164696E67EE -:10E6700020626F6F74207374617475733B20496DF1 -:10E680006167653D25750A0D000000005B4552522B -:10E690005D2062616420696D616765206D616769F5 -:10E6A00063203078256C783B20496D6167653D2596 -:10E6B000750A0D00626F6F745F706572666F726DC0 -:10E6C0005F75706461746500626F6F745F7377610A -:10E6D000705F696D61676500626F6F745F636F6D16 -:10E6E000706C6574655F7061727469616C5F73777B -:10E6F00061700000626F6F745F7072657061726547 -:10E700005F696D6167655F666F725F757064617484 -:10E7100065000000636F6E746578745F626F6F747C -:10E720005F676F002E2E2F6D74625F736861726574 -:10E73000642F6D6375626F6F742F76312E372E30B4 -:10E740002D637970726573732F626F6F742F626FB0 -:10E750006F747574696C2F7372632F737761705F58 -:10E760007374617475732E63000000005B45525230 -:10E770005D20446574656374656420696E636F6EC3 -:10E7800073697374656E7420737461747573210A90 -:10E790000D0000005B57524E5D2043616E6E6F743A -:10E7A00020757067726164653A206E6F7420612015 -:10E7B000636F6D70617469626C6520616D6F756EF9 -:10E7C00074206F6620736563746F72730A0D0000A6 -:10E7D0005B57524E5D2043616E6E6F74207570679B -:10E7E000726164653A206D6F726520736563746F42 -:10E7F0007273207468616E20616C6C6F7765640A57 -:10E800000D0000005B57524E5D2043616E6E6F74C9 -:10E8100020757067726164653A206E6F7420736151 -:10E820006D6520736563746F72206C61796F7574A8 -:10E830000A0D0000737761705F7374617475735FA4 -:10E84000736F757263653A205072696D61727920D9 -:10E85000696D6167650000005B494E465D20426F4F -:10E860006F7420736F757263653A207072696D61A1 -:10E87000727920736C6F740A0D0000005B494E467C -:10E880005D20426F6F7420736F757263653A206EFE -:10E890006F6E650A0D00000066697875705F7265BD -:10E8A000766572743A205365636F6E646172792085 -:10E8B000696D616765000000626F6F745F737761F7 -:10E8C000705F736563746F7273000000626F6F74C2 -:10E8D0005F6D6F76655F736563746F725F757000EF -:10E8E000737761705F72756E0000000066697875FD -:10E8F000705F7265766572740000000073776170F6 -:10E900005F7374617475735F736F75726365000014 -:10E91000737761705F726561645F7374617475733E -:10E920005F627974657300005B494E465D204572F5 -:10E930006173696E6720747261696C65723B2066F1 -:10E94000615F69643D25640A0D0000002E2E2F6D65 -:10E9500074625F7368617265642F6D6375626F6F57 -:10E96000742F76312E372E302D6379707265737364 -:10E970002F626F6F742F626F6F747574696C2F7371 -:10E9800072632F737761705F7374617475735F6DF9 -:10E990006973632E63000000737761705F72656155 -:10E9A000645F737461747573000000007377617045 -:10E9B0005F7374617475735F696E69740000000041 -:10E9C000737761705F65726173655F747261696CA2 -:10E9D00065725F736563746F727300002E2E2F6D06 -:10E9E00074625F7368617265642F6D6375626F6FC7 -:10E9F000742F76312E372E302D63797072657373D4 -:10EA00002F626F6F742F626F6F747574696C2F73E0 -:10EA100072632F737761705F7374617475735F7065 -:10EA20006172742E63000000286F666673202B20CD -:10EA30006C656E29203C3D20424F4F545F53574137 -:10EA4000505F5354415455535F445F53495A455F97 -:10EA500052415700696E69745F6F666673203E3D70 -:10EA600020300000737761705F7374617475735F39 -:10EA70007265747269657665000000007377617075 -:10EA80005F7374617475735F77726974655F7265C3 -:10EA9000636F726400000000737761705F7374616C -:10EAA0007475735F7570646174650000737761706D -:10EAB0005F7374617475735F726561645F726563BF -:10EAC0006F726400AFBEADDE6F6666203C2066618B -:10EAD0002D3E66615F6F6666000000002E2E2F6D72 -:10EAE00074625F7368617265642F6D6375626F6FC6 -:10EAF000742F76312E372E302D63797072657373D3 -:10EB00002F626F6F742F637970726573732F6379DF -:10EB10005F666C6173685F70616C2F63795F666CB0 -:10EB20006173685F6D61702E630000006F66662020 -:10EB30002B206C656E203C2066612D3E66615F6F08 -:10EB4000666600005B4552525D20466C617368202A -:10EB5000617265612072656164206572726F722CEA -:10EB6000207263203D2025640A0D000021286C6579 -:10EB70006E20252043595F464C4153485F53495A04 -:10EB8000454F465F524F57290000000021287772F9 -:10EB90006974655F73746172745F61646472202567 -:10EBA0002043595F464C4153485F53495A454F46AD -:10EBB0005F524F57290000006C656E203C3D206677 -:10EBC000612D3E66615F73697A6500006F6666203D -:10EBD0003C2066612D3E66615F73697A65000000C6 -:10EBE0006F6666202B206C656E203C2066612D3E92 -:10EBF00066615F6F6666202B2066612D3E66615FF1 -:10EC000073697A65000000007263203D3D2043591E -:10EC10005F464C4153485F4452565F53554343450A -:10EC20005353000066616C73650000007365637484 -:10EC30006F72735F6E203C3D202A636E740000008B -:10EC4000666C6173685F617265615F6765745F734D -:10EC50006563746F72730000666C6173685F6172E4 -:10EC600065615F6572617365645F76616C00000069 -:10EC7000666C6173685F617265615F65726173651F -:10EC800000000000666C6173685F617265615F77A8 -:10EC90007269746500000000666C6173685F617280 -:10ECA00065615F7265616400010000000E00000094 -:10ECB0001100000000000000000000000000000043 -:10ECC0000000000001000000000000000000000043 -:10ECD0000000000000000000000000000100000033 -:10ECE0000E00000011000000000000000000000005 -:10ECF0000000000000000000010000000000000013 -:10ED00000000000000000000000000000000000003 -:10ED1000010000000E0000001100000000000000D3 -:10ED200000000000000000000000000001000000E2 -:10ED300000000000000000000000000000000000D3 -:10ED400000000000010000000E00000011000000A3 -:10ED500000000000000000000000000000000000B3 -:10ED600001000000000000000000000000000000A2 -:10ED7000000000000000000001000000060000008C -:10ED80001100000000000000000000000000000072 -:10ED90000000000001000000000000000000000072 -:10EDA0000000000000000000000000000000000063 -:10EDB000010000000100000000000000010001004F -:10EDC00000010001A10FB90BD107DC05E903EE0238 -:10EDD000F5017701FB00BC007E005E003F002F00C4 -:10EDE0002000180010000C000800060004000300BA -:10EDF0000200020001000100000020400000244049 -:10EE000000000040000000000000234000003040EF -:10EE10000000314000009F400000224000001040F0 -:10EE200000009D402020202020101010101D1D806B -:10EE300017007500FF0306020600360410200000CC -:10EE40007FC0000000040000000000000019324BE9 -:10EE5000647D0000000000804000080B10000000EE -:10EE60000000FF012002001F00800004FF081018AE -:10EE7000001000140018001C4044484C50000000D2 -:10EE8000081000000800000004000000041000004A -:10EE90000012000004210000002100000016000004 -:10EEA00040114002C41300138013A01340138813B1 -:10EEB000A81320001C000000040000004000000017 -:10EEC0004400000048000000800000000001000035 -:10EED000100200008802000000040000100400007E -:10EEE00020040000400400004804000080040000EA -:10EEF0008404000090040000C0070000C407000064 -:10EF0000C8070000CC07000000400000041000000B -:10EF1000401000004410000048100000C014000021 -:10EF20000011000018020000980200000014000008 -:10EF300010140000201400004014000048140000C9 -:10EF400080140000841400009014000000010000F0 -:10EF500004010000080100000C0100000080000016 -:10EF6000AA3D0010D43D0010FE3D0010263E0010CA -:10EF7000523E0010A83E00107C3E00100123456761 -:10EF800089ABCDEFFEDCBA9876543210F0E1D2C3F3 -:10EF9000D89E05C107D57C3617DD703039590EF77C -:10EFA000310BC0FF11155868A78FF964A44FFABE42 -:10EFB00067E6096A85AE67BB72F36E3C3AF54FA50A -:10EFC0007F520E518C68059BABD9831F19CDE05B36 -:10EFD0005D9DBBCBD89E05C12A299A6207D57C3698 -:10EFE0005A01599117DD7030D8EC2F1539590EF7A9 -:10EFF00067263367310BC0FF874AB48E11155868F6 -:10F000000D2E0CDBA78FF9641D48B547A44FFABE3F -:10F0100067E6096A08C9BCF385AE67BB3BA7CA842B -:10F0200072F36E3C2BF894FE3AF54FA5F1361D5F56 -:10F030007F520E51D182E6AD8C68059B1F6C3E2B32 -:10F04000ABD9831F6BBD41FB19CDE05B79217E13EA -:10F05000C8373D8CA24D54196699E173D6D4DC892A -:10F06000AEB7FA1D829CFF3214D59D67CF9F2F58F3 -:10F07000692B6D0FA84DD47B736FE3774289C4046D -:10F08000A8859D3FC8361D6AADE61211A192D691A2 -:10F09000942131222CF72BFCA35F559FC2644CC8EE -:10F0A0006BB8932351B1536F19773896BDEA405925 -:10F0B000E23E2896E3FF8EA8251E5EBE9239865357 -:10F0C000FC99012BAAB8852CDC2DB70EA22CC5818A -:10F0D000BE400010FA400010DC4000103841001023 -:10F0E0001A41001058410010784100106745230173 -:10F0F000EFCDAB8998BADCFE10325476C3D2E1F082 -:10F10000C1059ED8367CD5073070DD17F70E59390A -:10F11000FFC00B316858151164F98FA7BEFA4FA4D0 -:10F120006A09E667BB67AE853C6EF372A54FF53A98 -:10F13000510E527F9B05688C1F83D9AB5BE0CD19C4 -:10F14000CBBB9D5DC1059ED8629A292A367CD50726 -:10F150009159015A3070DD17152FECD8F70E593937 -:10F1600067332667FFC00B318EB44A876858151184 -:10F17000DB0C2E0D64F98FA747B5481DBEFA4FA4CE -:10F180006A09E667F3BCC908BB67AE8584CAA73BBA -:10F190003C6EF372FE94F82BA54FF53A5F1D36F1E5 -:10F1A000510E527FADE682D19B05688C2B3E6C1FC1 -:10F1B0001F83D9ABFB41BD6B5BE0CD19137E217979 -:10F1C0008C3D37C819544DA273E1996689DCD4D6B9 -:10F1D0001DFAB7AE32FF9C82679DD514582F9FCF82 -:10F1E0000F6D2B697BD44DA877E36F7304C48942FC -:10F1F0003F9D85A86A1D36C81112E6AD91D692A131 -:10F2000022312194FC2BF72C9F555FA3C84C64C27C -:10F210002393B86B6F53B151963877195940EABDB3 -:10F2200096283EE2A88EFFE3BE5E1E2553863992E5 -:10F230002B0199FC2C85B8AA0EB72DDC81C52CA218 -:10F24000BE600010DE600010D4600010CA600010C4 -:10F25000C0600010B6600010186300102863001032 -:10F260003A6300104C6300102863001028630010FC -:10F27000000000007494001062940010409400108C -:10F280006A940010409400104297001040940010BF -:10F290006A9400106294001062940010429700106B -:10F2A0006A9400102C9400102C9400102C940010E0 -:10F2B000B89700102C2066756E6374696F6E3A20E3 -:10F2C00000617373657274696F6E2022257322204A -:10F2D0006661696C65643A2066696C6520222573F5 -:10F2E000222C206C696E65202564257325730A0025 -:10F2F000F0010008232D302B2000686C4C0065665F -:10F300006745464700494E4600696E66004E414ECD -:10F31000006E616E003000303132333435363738AC -:10F320003941424344454600303132333435363773 -:10F330003839616263646566000020202020202047 -:10F340002020202828282828202020202020202095 -:10F350002020202020202020202088101010101095 -:10F3600010101010101010101010040404040404E5 -:10F3700004040404101010101010104141414141C8 -:10F38000410101010101010101010101010101012D -:10F3900001010101011010101010104242424242BE -:10F3A00042020202020202020202020202020202FD -:10F3B00002020202021010101020000000000000E3 -:10F3C000000000000000000000000000000000003D -:10F3D000000000000000000000000000000000002D -:10F3E000000000000000000000000000000000001D -:10F3F000000000000000000000000000000000000D -:10F4000000000000000000000000000000000000FC -:10F4100000000000000000000000000000000000EC -:10F4200000000000000000000000000000000000DC -:10F4300000000000000000000000496E66696E696F -:10F440007479004E614E005245454E54206D616CFA -:10F450006C6F6320737563636565646564002F6812 -:10F460006F6D652F706172616C6C656C732F746F5A -:10F470006F6C636861696E2F6763632D61726D2DB8 -:10F480006E6F6E652D656162692D31302E332D32C0 -:10F490003032312E30372F7372632F6E65776C697F -:10F4A000622F6E65776C69622F6C6962632F73746B -:10F4B000646C69622F64746F612E630042616C6CCE -:10F4C0006F632073756363656564656400000000A5 -:10F4D000000000000000000000000000000000002C -:10F4E000000000000000000000000000000000001C -:10F4F000000000000000000000000000000000000C -:10F5000000000000000000000000000000000000FB -:10F5100000000000000000000000000000000000EB -:10F5200000000000000000000000000000000000DB -:10F530004300504F534958002E002F686F6D652FC0 -:10F54000706172616C6C656C732F746F6F6C636843 -:10F5500061696E2F6763632D61726D2D6E6F6E65CD -:10F560002D656162692D31302E332D323032312ECE -:10F5700030372F7372632F6E65776C69622F6E65FB -:10F58000776C69622F6C6962632F7374646C696253 -:10F590002F6D707265632E63000000000000000094 -:10F5A0000080E03779C34143176E05B5B5B893467F -:10F5B000F5F93FE9034F384D321D30F94877825A4B -:10F5C0003CBF737FDD4F1575000000000000F03F69 -:10F5D000000000000000244000000000000059402E -:10F5E0000000000000408F40000000000088C34081 -:10F5F00000000000006AF8400000000080842E41F6 -:10F6000000000000D01263410000000084D7974141 -:10F610000000000065CDCD41000000205FA0024247 -:10F62000000000E876483742000000A2941A6D42BC -:10F63000000040E59C30A2420000901EC4BCD642AF -:10F6400000003426F56B0C430080E03779C341435A -:10F6500000A0D8855734764300C84E676DC1AB43D0 -:10F66000003D9160E458E143408CB5781DAF1544EE -:10F6700050EFE2D6E41A4B4492D54D06CFF08044C9 -:10F68000F64AE1C7022DB544B49DD9794378EA44DE -:10F6900005000000190000007D00000082D9001064 -:10F6A00040D9001040D900103CD9001046D90010B4 -:10F6B00046D9001052DC00103CD9001046D9001089 -:10F6C00052DC001046D900103CD90010E6DB0010D7 -:10F6D000E6DB0010E6DB0010BCDC001000000000E0 -:08F6E000209BFF7F01000000E8 -:10F6E80000000010000000088000000008F700106B -:08F6F80080000008A0060000DC -:08F7000074070008085901001C -:10F7080000093D0000127A0000093D000000D00702 -:10F71800A00F000004000000FFFFFFFFFFFFFFFF36 -:10F72800B4000008C0000008CC000008D800000899 -:10F7380000000000007F00000000001000800100B1 -:10F74800017F00000080011000001C000280000002 -:10F758000000001800001C00077F000000801D103A -:10F768000048000001000000060000001100000031 -:10F778000000000000000000000000000000000081 -:10F788000100000000000000000000000000000070 -:10F79800000000000000000004000000000000005D -:10F7A800F05E0108545F01083C5F0108C05E010873 -:10F7B80000000000A85E0108D85E010800000000F3 -:10F7C800085F0108205F01086C5F0108BC010008A0 -:10F7D8000000000000000000000000000000000021 -:10F7E8000000000000000000000000000100000010 -:10F7F80004000000000000000000001800000000E5 -:10F8080000000000180100086C0100088005314064 -:10F8180002000000110000008005314001000000D6 -:10F8280011000000800531400000000011000000B8 -:10F838000006314004000000110000005A000000DA -:10F8480000000000FFFFFFFF0000000008000000AC -:10F85800000000000100000088010008000000000E -:10F86800000000000700A00001000000F0010008EF -:10F8780000000000F0F4001010F50010D0F40010A3 -:10F888000000000000000000000000000000000070 -:10F898000000000000000000000000000000000060 -:10F8A8000000000000000000000000000000000050 -:10F8B8000000000000000000000000000000000040 -:10F8C8000000000000000000000000000000000030 -:10F8D80043000000000000000000000000000000DD -:10F8E8000000000000000000000000000000000010 -:10F8F80043000000000000000000000000000000BD -:10F9080000000000000000000000000000000000EF -:10F91800430000000000000000000000000000009C -:10F9280000000000000000000000000000000000CF -:10F93800430000000000000000000000000000007C -:10F9480000000000000000000000000000000000AF -:10F95800430000000000000000000000000000005C -:10F96800000000000000000000000000000000008F -:10F97800430000000000000000000000000000003C -:10F98800000000000000000000000000000000006F -:10F99800430000000000000000000000000000001C -:10F9A800000000000000000000000000000000004F -:10F9B80015D0001055C700100000000039F30010E2 -:10F9C80038F50010EFF20010EFF20010EFF200101F -:10F9D800EFF20010EFF20010EFF20010EFF200105B -:10F9E800EFF20010EFF20010FFFFFFFFFFFFFFFF35 -:10F9F800FFFFFFFFFFFF000001004153434949009B -:10FA080000000000000000000000000000000000EE -:10FA18000000000000000000000041534349490075 -:10FA280000000000000000000000000000000000CE -:10FA3800000000000000000000000000A900001005 -:10FA48008100001010B50004440B002827D0144B87 -:10FA58001A68136ABA21515ACA00521A9B181B68AD -:10FA6800002BF4DA0F4B3E221A600F4B0F4A1A6034 -:10FA78000F4BA322D200062199500E4A9C509B5846 -:10FA8800074B1A68136AB431515ACA00521A9B18A4 -:10FA980000225A60064A074BD358002BFADA10BDE9 -:10FAA800D45F010804012640080126401E1F0000FB -:10FAB800000026401C05000010B54378FF2B00D03D -:10FAC80010BD00F035F9124B1A683323D35C032BB1 -:10FAD80000D801BE0E4B1A68136ABA21515A4A005F -:10FAE80052189B18DB680B4A13600B4A00211160FF -:10FAF80001310A4A11605A68094B1A6013680B43AE -:10FB080013601368DB07FCD400F03AF9D8E7C04665 -:10FB1800D45F010800600108F45F0108F85F01087C -:10FB2800FC5F0108F0B583B0009001914D4B1A6855 -:10FB38003323D35C002B00D101BE4A4B1B681F6ADC -:10FB4800BC229C58E4196C3A9B5C002B69D000F0ED -:10FB5800E7F8060003280ED000F0EAF80500424A4C -:10FB6800424BD358002B3DDB414C032E52D028008A -:10FB780000F006F96DE03B4B1A683323D35C062B83 -:10FB880000D801BE374B1968BA23CA5A53009A18CD -:10FB980052000B6A9C466244BC23CB589B181B68D6 -:10FBA800002B5BDB002000F0DBF8324B984257D08B -:10FBB800314B1A6800230021012000F0D9F8051EF6 -:10FBC80002D02B4C45E00135002000F0C9F8294B44 -:10FBD800984202D0294B9D42F5D9284B9D42BBD96A -:10FBE800234C36E0264A0121380000F0A9F8002805 -:10FBF80001D01F4CB9E70198FFF724FF009B002BA9 -:10FC080006D02368002BFCDB00F0C2F80400ACE748 -:10FC18001C4CAAE70121002000F09AF80028F9D12D -:10FC2800A5E700F085F80600154A0121380000F024 -:10FC380087F8002809D1009B002B0DD02368002BE2 -:10FC4800FCDB00F0A5F8040000E0094C300000F0EF -:10FC580097F8200003B0F0BD0A4CF7E7044CF8E72A -:10FC6800034CF6E7D45F0108000026401C0500009D -:10FC78000500520001018800F05F0108EF49020009 -:10FC8800E05F010801005000F0B5C64600B51C4B06 -:10FC98001B6859681B4A136904242343136101280C -:10FCA8002CD030BF86235B00CB58002B23D1164CB9 -:10FCB8002768164BA320C0001E58154A90461568A1 -:10FCC800144A226006241C503E2042461060124A04 -:10FCD800063098500D4A104BD358002BFADA862379 -:10FCE8005B000E4ACA50084B1F60084AA323DB007A -:10FCF800D650074B1D6080BCB846F0BD20BFD1E789 -:10FD0800D45F010800ED00E008012640000026400D -:10FD1800040126401E1F00001C050000AAAAAAAA6A -:10FD280001B40248844601BC604700BFE5060010E4 -:10FD380001B40248844601BC604700BF9B0500101F -:10FD480001B40248844601BC604700BF514E001010 -:10FD580001B40248844601BC604700BF415200100C -:10FD680001B40248844601BC604700BFC15200107C -:10FD780001B40248844601BC604700BFF54F00103B -:10FD880001B40248844601BC604700BFA3050010C7 -:10FD980001B40248844601BC604700BF55490010C1 -:10FDA800000000000000000000000000000000004B -:08FDB800000000000000000043 -:020000041600E4 -:08080000ACE100100000000053 -:107C0000FC01000020122101000000000008001605 -:107C10000000001000000000000000000000000054 -:107C20000000000000000000000000000000000054 -:107C30000000000000000000000000000000000044 -:107C40000000000000000000000000000000000034 -:107C50000000000000000000000000000000000024 -:107C60000000000000000000000000000000000014 -:107C70000000000000000000000000000000000004 -:107C800000000000000000000000000000000000F4 -:107C900000000000000000000000000000000000E4 -:107CA00000000000000000000000000000000000D4 -:107CB00000000000000000000000000000000000C4 -:107CC00000000000000000000000000000000000B4 -:107CD00000000000000000000000000000000000A4 -:107CE0000000000000000000000000000000000094 -:107CF0000000000000000000000000000000000084 -:107D00000000000000000000000000000000000073 -:107D10000000000000000000000000000000000063 -:107D20000000000000000000000000000000000053 -:107D30000000000000000000000000000000000043 -:107D40000000000000000000000000000000000033 -:107D50000000000000000000000000000000000023 -:107D60000000000000000000000000000000000013 -:107D70000000000000000000000000000000000003 -:107D800000000000000000000000000000000000F3 -:107D900000000000000000000000000000000000E3 -:107DA00000000000000000000000000000000000D3 -:107DB00000000000000000000000000000000000C3 -:107DC00000000000000000000000000000000000B3 -:107DD00000000000000000000000000000000000A3 -:107DE0000000000000000000000000000000000093 -:107DF0000000000000000000C20200000000B33BD1 -:0400000510000507DB -:00000001FF diff --git a/examples/ota-requestor-app/p6/ota_update_build.sh b/examples/ota-requestor-app/p6/ota_update_build.sh index 8dbe33869b2ed8..825b1db6457318 100755 --- a/examples/ota-requestor-app/p6/ota_update_build.sh +++ b/examples/ota-requestor-app/p6/ota_update_build.sh @@ -6,3 +6,9 @@ ANYCLOUD_DIR=third_party/p6/p6_sdk/libs/anycloud-ota/ mv "$OUT_DIR"/chip-p6-ota-requestor-example.hex "$OUT_DIR"/chip-p6-ota-requestor-example.unsigned.hex ./"$ANYCLOUD_DIR"/scripts/sign_script.bash "$OUT_DIR" chip-p6-ota-requestor-example python3 arm-none-eabi-objcopy "-O ihex" "" "$ANYCLOUD_DIR"/source/mcuboot/scripts/ imgtool_v1.7.0/imgtool.py sign 0xFF 0x400 3584 1.0.0 0x00018000 0x001C0000 arm-none-eabi-objcopy "-k $ANYCLOUD_DIR/source/mcuboot/keys/cypress-test-ec-p256.pem" + +if [ -f "$OUT_DIR"/chip-p6-ota-requestor-example.ota ]; then + rm "$OUT_DIR"/chip-p6-ota-requestor-example.ota +fi + +src/app/ota_image_tool.py create -v 0xFFF1 -p 0x8000 -vn 2 -vs "2.0" -da sha256 "$OUT_DIR"/chip-p6-ota-requestor-example.bin "$OUT_DIR"/chip-p6-ota-requestor-example.ota diff --git a/examples/ota-requestor-app/p6/src/AppTask.cpp b/examples/ota-requestor-app/p6/src/AppTask.cpp index 6eeb14cf3e10f5..a0507142cf0af4 100644 --- a/examples/ota-requestor-app/p6/src/AppTask.cpp +++ b/examples/ota-requestor-app/p6/src/AppTask.cpp @@ -121,6 +121,7 @@ static void InitServer(intptr_t context) // Initialize device attestation config SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider()); + GetAppTask().InitOTARequestor(); } CHIP_ERROR AppTask::StartAppTask() @@ -188,36 +189,6 @@ CHIP_ERROR AppTask::Init() ConfigurationMgr().LogDeviceConfig(); - SetRequestorInstance(&gRequestorCore); - gRequestorStorage.Init(chip::Server::GetInstance().GetPersistentStorage()); - gRequestorCore.Init(chip::Server::GetInstance(), gRequestorStorage, gRequestorUser, gDownloader); - gImageProcessor.SetOTADownloader(&gDownloader); - gDownloader.SetImageProcessorDelegate(&gImageProcessor); - gRequestorUser.Init(&gRequestorCore, &gImageProcessor); - - uint32_t savedSoftwareVersion; - err = ConfigurationMgr().GetSoftwareVersion(savedSoftwareVersion); - if (err != CHIP_NO_ERROR) - { - P6_LOG("Can't get saved software version"); - appError(err); - } - - if (savedSoftwareVersion != CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION) - { - ConfigurationMgr().StoreSoftwareVersion(CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION); - - P6_LOG("Confirming update to version: %u", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION); - chip::OTARequestorInterface * requestor = chip::GetRequestorInstance(); - if (requestor != nullptr) - { - requestor->NotifyUpdateApplied(); - } - } - - P6_LOG("Current Software Version: %u", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION); - P6_LOG("Current Firmware Version: %s", CHIP_DEVICE_CONFIG_DEVICE_FIRMWARE_REVISION_STRING); - // Print setup info PrintOnboardingCodes(chip::RendezvousInformationFlag(chip::RendezvousInformationFlag::kBLE)); @@ -473,3 +444,37 @@ void OnTriggerUpdateTimerHandler(Layer * systemLayer, void * appState) DefaultOTARequestor * req = static_cast(GetRequestorInstance()); req->TriggerImmediateQuery(); } + +void AppTask::InitOTARequestor() +{ + CHIP_ERROR err = CHIP_NO_ERROR; + SetRequestorInstance(&gRequestorCore); + gRequestorStorage.Init(chip::Server::GetInstance().GetPersistentStorage()); + gRequestorCore.Init(chip::Server::GetInstance(), gRequestorStorage, gRequestorUser, gDownloader); + gImageProcessor.SetOTADownloader(&gDownloader); + gDownloader.SetImageProcessorDelegate(&gImageProcessor); + gRequestorUser.Init(&gRequestorCore, &gImageProcessor); + + uint32_t savedSoftwareVersion; + err = ConfigurationMgr().GetSoftwareVersion(savedSoftwareVersion); + if (err != CHIP_NO_ERROR) + { + P6_LOG("Can't get saved software version"); + appError(err); + } + + if (savedSoftwareVersion != CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION) + { + ConfigurationMgr().StoreSoftwareVersion(CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION); + + P6_LOG("Confirming update to version: %u", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION); + chip::OTARequestorInterface * requestor = chip::GetRequestorInstance(); + if (requestor != nullptr) + { + requestor->NotifyUpdateApplied(); + } + } + + P6_LOG("Current Software Version: %u", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION); + P6_LOG("Current Firmware Version String: %s", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING); +} diff --git a/examples/pigweed-app/ameba/chip_main.cmake b/examples/pigweed-app/ameba/chip_main.cmake index 41761651d828a7..8ece704a50ae56 100644 --- a/examples/pigweed-app/ameba/chip_main.cmake +++ b/examples/pigweed-app/ameba/chip_main.cmake @@ -16,6 +16,7 @@ include(${pigweed_dir}/pw_protobuf_compiler/proto.cmake) set(dir_pw_third_party_nanopb "${chip_dir}/third_party/nanopb/repo" CACHE STRING "" FORCE) +pw_set_module_config(pw_rpc_CONFIG pw_rpc.disable_global_mutex_config) pw_set_backend(pw_log pw_log_basic) pw_set_backend(pw_assert pw_assert_log) pw_set_backend(pw_sys_io pw_sys_io.ameba) @@ -99,4 +100,3 @@ add_custom_command( POST_BUILD COMMAND cp lib${chip_main}.a ${CMAKE_CURRENT_SOURCE_DIR}/lib/application ) - diff --git a/examples/pigweed-app/efr32/args.gni b/examples/pigweed-app/efr32/args.gni index 3f19ce687e94f2..eb9d28234cc6eb 100644 --- a/examples/pigweed-app/efr32/args.gni +++ b/examples/pigweed-app/efr32/args.gni @@ -19,3 +19,4 @@ import("${chip_root}/src/platform/EFR32/args.gni") efr32_sdk_target = get_label_info(":sdk", "label_no_toolchain") cpp_standard = "gnu++17" +pw_rpc_CONFIG = "$dir_pw_rpc:disable_global_mutex" diff --git a/examples/pigweed-app/esp32/CMakeLists.txt b/examples/pigweed-app/esp32/CMakeLists.txt index ad34f915f981d1..b28ce191bf3312 100644 --- a/examples/pigweed-app/esp32/CMakeLists.txt +++ b/examples/pigweed-app/esp32/CMakeLists.txt @@ -44,6 +44,7 @@ set(PIGWEED_ROOT "${CHIP_ROOT}/third_party/pigweed/repo") include(${PIGWEED_ROOT}/pw_build/pigweed.cmake) include(${PIGWEED_ROOT}/pw_protobuf_compiler/proto.cmake) +pw_set_module_config(pw_rpc_CONFIG pw_rpc.disable_global_mutex_config) pw_set_backend(pw_log pw_log_basic) pw_set_backend(pw_assert pw_assert_log) pw_set_backend(pw_sys_io pw_sys_io.esp32) diff --git a/examples/pigweed-app/nrfconnect/CMakeLists.txt b/examples/pigweed-app/nrfconnect/CMakeLists.txt index 20be593146793d..d3fd816033eb4f 100644 --- a/examples/pigweed-app/nrfconnect/CMakeLists.txt +++ b/examples/pigweed-app/nrfconnect/CMakeLists.txt @@ -50,6 +50,7 @@ link_libraries($) include(${PIGWEED_ROOT}/pw_build/pigweed.cmake) include(${PIGWEED_ROOT}/pw_protobuf_compiler/proto.cmake) +pw_set_module_config(pw_rpc_CONFIG pw_rpc.disable_global_mutex_config) pw_set_backend(pw_log pw_log_basic) pw_set_backend(pw_assert pw_assert_log) pw_set_backend(pw_sys_io pw_sys_io.nrfconnect) diff --git a/examples/pigweed-app/nrfconnect/main/main.cpp b/examples/pigweed-app/nrfconnect/main/main.cpp index e74b61652641f2..78c6212929e8c7 100644 --- a/examples/pigweed-app/nrfconnect/main/main.cpp +++ b/examples/pigweed-app/nrfconnect/main/main.cpp @@ -26,7 +26,7 @@ #include "pw_sys_io_nrfconnect/init.h" #include -#include +#include LOG_MODULE_REGISTER(app, CONFIG_MATTER_LOG_LEVEL); diff --git a/examples/placeholder/linux/apps/app1/config.matter b/examples/placeholder/linux/apps/app1/config.matter index 4025109d541cf2..832f9ca426152c 100644 --- a/examples/placeholder/linux/apps/app1/config.matter +++ b/examples/placeholder/linux/apps/app1/config.matter @@ -786,8 +786,16 @@ server cluster GeneralDiagnostics = 51 { readonly attribute ENUM8 activeHardwareFaults[] = 5; readonly attribute ENUM8 activeRadioFaults[] = 6; readonly attribute ENUM8 activeNetworkFaults[] = 7; + readonly attribute boolean testEventTriggersEnabled = 8; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + + request struct TestEventTriggerRequest { + OCTET_STRING enableKey = 0; + INT64U eventTrigger = 1; + } + + command TestEventTrigger(TestEventTriggerRequest): DefaultSuccess = 0; } server cluster Groups = 4 { @@ -1540,6 +1548,7 @@ client cluster OperationalCredentials = 62 { kInvalidNOC = 3; kMissingCsr = 4; kTableFull = 5; + kInvalidAdminSubject = 6; kInsufficientPrivilege = 8; kFabricConflict = 9; kLabelConflict = 10; @@ -1573,13 +1582,14 @@ client cluster OperationalCredentials = 62 { request struct CSRRequestRequest { OCTET_STRING CSRNonce = 0; + optional boolean isForUpdateNOC = 1; } request struct AddNOCRequest { OCTET_STRING NOCValue = 0; optional OCTET_STRING ICACValue = 1; OCTET_STRING IPKValue = 2; - NODE_ID caseAdminNode = 3; + Int64u caseAdminSubject = 3; VENDOR_ID adminVendorId = 4; } @@ -1600,10 +1610,6 @@ client cluster OperationalCredentials = 62 { OCTET_STRING rootCertificate = 0; } - request struct RemoveTrustedRootCertificateRequest { - OCTET_STRING trustedRootIdentifier = 0; - } - command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4; @@ -1612,7 +1618,6 @@ client cluster OperationalCredentials = 62 { command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } server cluster OperationalCredentials = 62 { @@ -1623,6 +1628,7 @@ server cluster OperationalCredentials = 62 { kInvalidNOC = 3; kMissingCsr = 4; kTableFull = 5; + kInvalidAdminSubject = 6; kInsufficientPrivilege = 8; kFabricConflict = 9; kLabelConflict = 10; @@ -1656,13 +1662,14 @@ server cluster OperationalCredentials = 62 { request struct CSRRequestRequest { OCTET_STRING CSRNonce = 0; + optional boolean isForUpdateNOC = 1; } request struct AddNOCRequest { OCTET_STRING NOCValue = 0; optional OCTET_STRING ICACValue = 1; OCTET_STRING IPKValue = 2; - NODE_ID caseAdminNode = 3; + Int64u caseAdminSubject = 3; VENDOR_ID adminVendorId = 4; } @@ -1683,10 +1690,6 @@ server cluster OperationalCredentials = 62 { OCTET_STRING rootCertificate = 0; } - request struct RemoveTrustedRootCertificateRequest { - OCTET_STRING trustedRootIdentifier = 0; - } - response struct AttestationResponse = 1 { OCTET_STRING attestationElements = 0; OCTET_STRING signature = 1; @@ -1715,7 +1718,6 @@ server cluster OperationalCredentials = 62 { command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } server cluster PowerSource = 47 { @@ -2083,12 +2085,16 @@ server cluster Scenes = 5 { } server cluster SoftwareDiagnostics = 52 { + bitmap SoftwareDiagnosticsFeature : BITMAP32 { + kWaterMarks = 0x1; + } + struct ThreadMetrics { int64u id = 0; - char_string<8> name = 1; - int32u stackFreeCurrent = 2; - int32u stackFreeMinimum = 3; - int32u stackSize = 4; + optional char_string<8> name = 1; + optional int32u stackFreeCurrent = 2; + optional int32u stackFreeMinimum = 3; + optional int32u stackSize = 4; } info event SoftwareFault = 0 { @@ -2572,8 +2578,8 @@ server cluster WindowCovering = 258 { command GoToTiltPercentage(GoToTiltPercentageRequest): DefaultSuccess = 8; } - endpoint 0 { + device type anonymousEndpointType = 65280; binding cluster OnOff; binding cluster GeneralCommissioning; binding cluster Switch; @@ -2716,6 +2722,7 @@ endpoint 0 { callback attribute activeHardwareFaults; callback attribute activeRadioFaults; callback attribute activeNetworkFaults; + callback attribute testEventTriggersEnabled; ram attribute featureMap; ram attribute clusterRevision default = 1; } @@ -2989,8 +2996,8 @@ endpoint 0 { ram attribute clusterRevision default = 1; } } - endpoint 1 { + device type anonymousEndpointType = 258; binding cluster OnOff; server cluster Identify { diff --git a/examples/placeholder/linux/apps/app1/config.zap b/examples/placeholder/linux/apps/app1/config.zap index 0239f84b9ba953..8ad332d5c6c6ab 100644 --- a/examples/placeholder/linux/apps/app1/config.zap +++ b/examples/placeholder/linux/apps/app1/config.zap @@ -2130,7 +2130,16 @@ "define": "GENERAL_DIAGNOSTICS_CLUSTER", "side": "server", "enabled": 1, - "commands": [], + "commands": [ + { + "name": "TestEventTrigger", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], "attributes": [ { "name": "NetworkInterfaces", @@ -2260,6 +2269,22 @@ "maxInterval": 65534, "reportableChange": 0 }, + { + "name": "TestEventTriggersEnabled", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "false", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "FeatureMap", "code": 65532, @@ -3343,14 +3368,6 @@ "source": "client", "incoming": 1, "outgoing": 1 - }, - { - "name": "RemoveTrustedRootCertificate", - "code": 12, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 } ], "attributes": [ @@ -4729,14 +4746,6 @@ "source": "client", "incoming": 0, "outgoing": 1 - }, - { - "name": "GetRelayStatusLog", - "code": 4, - "mfgCode": null, - "source": "client", - "incoming": 0, - "outgoing": 1 } ], "attributes": [ @@ -4773,14 +4782,6 @@ "source": "server", "incoming": 1, "outgoing": 0 - }, - { - "name": "GetRelayStatusLogResponse", - "code": 1, - "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 0 } ], "attributes": [ diff --git a/examples/placeholder/linux/apps/app2/config.matter b/examples/placeholder/linux/apps/app2/config.matter index 4025109d541cf2..832f9ca426152c 100644 --- a/examples/placeholder/linux/apps/app2/config.matter +++ b/examples/placeholder/linux/apps/app2/config.matter @@ -786,8 +786,16 @@ server cluster GeneralDiagnostics = 51 { readonly attribute ENUM8 activeHardwareFaults[] = 5; readonly attribute ENUM8 activeRadioFaults[] = 6; readonly attribute ENUM8 activeNetworkFaults[] = 7; + readonly attribute boolean testEventTriggersEnabled = 8; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + + request struct TestEventTriggerRequest { + OCTET_STRING enableKey = 0; + INT64U eventTrigger = 1; + } + + command TestEventTrigger(TestEventTriggerRequest): DefaultSuccess = 0; } server cluster Groups = 4 { @@ -1540,6 +1548,7 @@ client cluster OperationalCredentials = 62 { kInvalidNOC = 3; kMissingCsr = 4; kTableFull = 5; + kInvalidAdminSubject = 6; kInsufficientPrivilege = 8; kFabricConflict = 9; kLabelConflict = 10; @@ -1573,13 +1582,14 @@ client cluster OperationalCredentials = 62 { request struct CSRRequestRequest { OCTET_STRING CSRNonce = 0; + optional boolean isForUpdateNOC = 1; } request struct AddNOCRequest { OCTET_STRING NOCValue = 0; optional OCTET_STRING ICACValue = 1; OCTET_STRING IPKValue = 2; - NODE_ID caseAdminNode = 3; + Int64u caseAdminSubject = 3; VENDOR_ID adminVendorId = 4; } @@ -1600,10 +1610,6 @@ client cluster OperationalCredentials = 62 { OCTET_STRING rootCertificate = 0; } - request struct RemoveTrustedRootCertificateRequest { - OCTET_STRING trustedRootIdentifier = 0; - } - command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4; @@ -1612,7 +1618,6 @@ client cluster OperationalCredentials = 62 { command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } server cluster OperationalCredentials = 62 { @@ -1623,6 +1628,7 @@ server cluster OperationalCredentials = 62 { kInvalidNOC = 3; kMissingCsr = 4; kTableFull = 5; + kInvalidAdminSubject = 6; kInsufficientPrivilege = 8; kFabricConflict = 9; kLabelConflict = 10; @@ -1656,13 +1662,14 @@ server cluster OperationalCredentials = 62 { request struct CSRRequestRequest { OCTET_STRING CSRNonce = 0; + optional boolean isForUpdateNOC = 1; } request struct AddNOCRequest { OCTET_STRING NOCValue = 0; optional OCTET_STRING ICACValue = 1; OCTET_STRING IPKValue = 2; - NODE_ID caseAdminNode = 3; + Int64u caseAdminSubject = 3; VENDOR_ID adminVendorId = 4; } @@ -1683,10 +1690,6 @@ server cluster OperationalCredentials = 62 { OCTET_STRING rootCertificate = 0; } - request struct RemoveTrustedRootCertificateRequest { - OCTET_STRING trustedRootIdentifier = 0; - } - response struct AttestationResponse = 1 { OCTET_STRING attestationElements = 0; OCTET_STRING signature = 1; @@ -1715,7 +1718,6 @@ server cluster OperationalCredentials = 62 { command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } server cluster PowerSource = 47 { @@ -2083,12 +2085,16 @@ server cluster Scenes = 5 { } server cluster SoftwareDiagnostics = 52 { + bitmap SoftwareDiagnosticsFeature : BITMAP32 { + kWaterMarks = 0x1; + } + struct ThreadMetrics { int64u id = 0; - char_string<8> name = 1; - int32u stackFreeCurrent = 2; - int32u stackFreeMinimum = 3; - int32u stackSize = 4; + optional char_string<8> name = 1; + optional int32u stackFreeCurrent = 2; + optional int32u stackFreeMinimum = 3; + optional int32u stackSize = 4; } info event SoftwareFault = 0 { @@ -2572,8 +2578,8 @@ server cluster WindowCovering = 258 { command GoToTiltPercentage(GoToTiltPercentageRequest): DefaultSuccess = 8; } - endpoint 0 { + device type anonymousEndpointType = 65280; binding cluster OnOff; binding cluster GeneralCommissioning; binding cluster Switch; @@ -2716,6 +2722,7 @@ endpoint 0 { callback attribute activeHardwareFaults; callback attribute activeRadioFaults; callback attribute activeNetworkFaults; + callback attribute testEventTriggersEnabled; ram attribute featureMap; ram attribute clusterRevision default = 1; } @@ -2989,8 +2996,8 @@ endpoint 0 { ram attribute clusterRevision default = 1; } } - endpoint 1 { + device type anonymousEndpointType = 258; binding cluster OnOff; server cluster Identify { diff --git a/examples/placeholder/linux/apps/app2/config.zap b/examples/placeholder/linux/apps/app2/config.zap index 0239f84b9ba953..8ad332d5c6c6ab 100644 --- a/examples/placeholder/linux/apps/app2/config.zap +++ b/examples/placeholder/linux/apps/app2/config.zap @@ -2130,7 +2130,16 @@ "define": "GENERAL_DIAGNOSTICS_CLUSTER", "side": "server", "enabled": 1, - "commands": [], + "commands": [ + { + "name": "TestEventTrigger", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], "attributes": [ { "name": "NetworkInterfaces", @@ -2260,6 +2269,22 @@ "maxInterval": 65534, "reportableChange": 0 }, + { + "name": "TestEventTriggersEnabled", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "false", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "FeatureMap", "code": 65532, @@ -3343,14 +3368,6 @@ "source": "client", "incoming": 1, "outgoing": 1 - }, - { - "name": "RemoveTrustedRootCertificate", - "code": 12, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 } ], "attributes": [ @@ -4729,14 +4746,6 @@ "source": "client", "incoming": 0, "outgoing": 1 - }, - { - "name": "GetRelayStatusLog", - "code": 4, - "mfgCode": null, - "source": "client", - "incoming": 0, - "outgoing": 1 } ], "attributes": [ @@ -4773,14 +4782,6 @@ "source": "server", "incoming": 1, "outgoing": 0 - }, - { - "name": "GetRelayStatusLogResponse", - "code": 1, - "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 0 } ], "attributes": [ diff --git a/examples/platform/ameba/ota/OTAInitializer.cpp b/examples/platform/ameba/ota/OTAInitializer.cpp new file mode 100644 index 00000000000000..50dd3d050a7db2 --- /dev/null +++ b/examples/platform/ameba/ota/OTAInitializer.cpp @@ -0,0 +1,67 @@ +/* + * + * Copyright (c) 2022 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. + */ + +#include "OTAInitializer.h" +#include "app/clusters/ota-requestor/DefaultOTARequestorStorage.h" +#include +#include +#include +#include +#include +#include + +using namespace chip; +using namespace chip::DeviceLayer; + +namespace { +DefaultOTARequestor gRequestorCore; +DefaultOTARequestorStorage gRequestorStorage; +ExtendedOTARequestorDriver gRequestorUser; +BDXDownloader gDownloader; +AmebaOTAImageProcessor gImageProcessor; +chip::ota::DefaultOTARequestorUserConsent gUserConsentProvider; +static chip::ota::UserConsentState gUserConsentState = chip::ota::UserConsentState::kGranted; +} // namespace + +extern "C" void amebaQueryImageCmdHandler() +{ + ChipLogProgress(DeviceLayer, "Calling amebaQueryImageCmdHandler"); + PlatformMgr().ScheduleWork([](intptr_t) { GetRequestorInstance()->TriggerImmediateQuery(); }); +} + +extern "C" void amebaApplyUpdateCmdHandler() +{ + ChipLogProgress(DeviceLayer, "Calling amebaApplyUpdateCmdHandler"); + PlatformMgr().ScheduleWork([](intptr_t) { GetRequestorInstance()->ApplyUpdate(); }); +} + +void OTAInitializer::InitOTARequestor(void) +{ + SetRequestorInstance(&gRequestorCore); + gRequestorStorage.Init(chip::Server::GetInstance().GetPersistentStorage()); + // Set server instance used for session establishment + gRequestorCore.Init(chip::Server::GetInstance(), gRequestorStorage, gRequestorUser, gDownloader); + gImageProcessor.SetOTADownloader(&gDownloader); + // Connect the Downloader and Image Processor objects + gDownloader.SetImageProcessorDelegate(&gImageProcessor); + gRequestorUser.Init(&gRequestorCore, &gImageProcessor); + if (gUserConsentState != chip::ota::UserConsentState::kUnknown) + { + gUserConsentProvider.SetUserConsentState(gUserConsentState); + gRequestorUser.SetUserConsentDelegate(&gUserConsentProvider); + } +} diff --git a/examples/platform/ameba/ota/OTAInitializer.h b/examples/platform/ameba/ota/OTAInitializer.h new file mode 100644 index 00000000000000..f678c80a780c00 --- /dev/null +++ b/examples/platform/ameba/ota/OTAInitializer.h @@ -0,0 +1,27 @@ +/* + * + * Copyright (c) 2022 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. + */ + +class OTAInitializer +{ +public: + static OTAInitializer & Instance(void) + { + static OTAInitializer sInitOTA; + return sInitOTA; + } + void InitOTARequestor(void); +}; diff --git a/examples/platform/bouffalolab/bl602/doc/images/bl602_iot_3S_v2.jpg b/examples/platform/bouffalolab/bl602/doc/images/bl602_iot_3S_v2.jpg new file mode 100755 index 00000000000000..2506a1e2aa3901 Binary files /dev/null and b/examples/platform/bouffalolab/bl602/doc/images/bl602_iot_3S_v2.jpg differ diff --git a/examples/platform/bouffalolab/bl602/doc/images/dev-cube-home.png b/examples/platform/bouffalolab/bl602/doc/images/dev-cube-home.png new file mode 100755 index 00000000000000..6988dc3dc050d0 Binary files /dev/null and b/examples/platform/bouffalolab/bl602/doc/images/dev-cube-home.png differ diff --git a/examples/platform/bouffalolab/bl602/doc/images/dev-cube-iot.png b/examples/platform/bouffalolab/bl602/doc/images/dev-cube-iot.png new file mode 100644 index 00000000000000..c7898b331d0bf9 Binary files /dev/null and b/examples/platform/bouffalolab/bl602/doc/images/dev-cube-iot.png differ diff --git a/examples/platform/bouffalolab/bl602/doc/images/dev-cube.png b/examples/platform/bouffalolab/bl602/doc/images/dev-cube.png new file mode 100755 index 00000000000000..518a972ddfc608 Binary files /dev/null and b/examples/platform/bouffalolab/bl602/doc/images/dev-cube.png differ diff --git a/examples/platform/bouffalolab/bl602/doc/images/image-dev-cube.png b/examples/platform/bouffalolab/bl602/doc/images/image-dev-cube.png new file mode 100755 index 00000000000000..2e7ceff5c2430f Binary files /dev/null and b/examples/platform/bouffalolab/bl602/doc/images/image-dev-cube.png differ diff --git a/examples/platform/bouffalolab/bl602/doc/images/image-web-login.png b/examples/platform/bouffalolab/bl602/doc/images/image-web-login.png new file mode 100755 index 00000000000000..d8d610dd30549f Binary files /dev/null and b/examples/platform/bouffalolab/bl602/doc/images/image-web-login.png differ diff --git a/examples/platform/bouffalolab/bl602/doc/images/image-web.png b/examples/platform/bouffalolab/bl602/doc/images/image-web.png new file mode 100755 index 00000000000000..02e07b2fffa3b3 Binary files /dev/null and b/examples/platform/bouffalolab/bl602/doc/images/image-web.png differ diff --git a/examples/platform/cyw30739/OTAConfig.cpp b/examples/platform/cyw30739/OTAConfig.cpp new file mode 100644 index 00000000000000..cf3553d23a9850 --- /dev/null +++ b/examples/platform/cyw30739/OTAConfig.cpp @@ -0,0 +1,54 @@ +/* + * + * Copyright (c) 2021 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#include "OTAConfig.h" + +#include +#include +#include +#include +#include +#include + +namespace OTAConfig { + +// Global OTA objects +chip::DefaultOTARequestor gRequestorCore; +chip::DefaultOTARequestorStorage gRequestorStorage; +chip::DeviceLayer::DefaultOTARequestorDriver gRequestorUser; +chip::BDXDownloader gDownloader; +chip::OTAImageProcessorImpl gImageProcessor; + +void Init() +{ + // Initialize and interconnect the Requestor and Image Processor objects -- START + SetRequestorInstance(&gRequestorCore); + + gRequestorStorage.Init(chip::Server::GetInstance().GetPersistentStorage()); + gRequestorCore.Init(chip::Server::GetInstance(), gRequestorStorage, gRequestorUser, gDownloader); + + gRequestorUser.Init(&gRequestorCore, &gImageProcessor); + + gImageProcessor.SetOTADownloader(&gDownloader); + + // Connect the Downloader and Image Processor objects + gDownloader.SetImageProcessorDelegate(&gImageProcessor); + // Initialize and interconnect the Requestor and Image Processor objects -- END +} + +} // namespace OTAConfig diff --git a/examples/platform/cyw30739/OTAConfig.h b/examples/platform/cyw30739/OTAConfig.h new file mode 100644 index 00000000000000..220b50d35cbbe2 --- /dev/null +++ b/examples/platform/cyw30739/OTAConfig.h @@ -0,0 +1,25 @@ +/* + * + * Copyright (c) 2021 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#pragma once + +namespace OTAConfig { + +void Init(); + +} // namespace OTAConfig diff --git a/examples/platform/cyw30739/project_include/OpenThreadConfig.h b/examples/platform/cyw30739/project_include/OpenThreadConfig.h index eb6006f52d5cfe..a6d9c265a245f7 100644 --- a/examples/platform/cyw30739/project_include/OpenThreadConfig.h +++ b/examples/platform/cyw30739/project_include/OpenThreadConfig.h @@ -29,6 +29,7 @@ #define OPENTHREAD_CONFIG_LOG_LEVEL OT_LOG_LEVEL_CRIT #endif +#define OPENTHREAD_CONFIG_HEAP_EXTERNAL_ENABLE 1 #define OPENTHREAD_CONFIG_PLATFORM_ASSERT_MANAGEMENT 1 #define OPENTHREAD_CONFIG_SRP_CLIENT_BUFFERS_MAX_HOST_ADDRESSES 4 #define OPENTHREAD_CONFIG_TCP_ENABLE 0 diff --git a/examples/platform/efr32/OTAConfig.cpp b/examples/platform/efr32/OTAConfig.cpp index f3601247f4d2ee..8f42f6951e1cdc 100644 --- a/examples/platform/efr32/OTAConfig.cpp +++ b/examples/platform/efr32/OTAConfig.cpp @@ -21,19 +21,6 @@ #include "platform/bootloader/api/application_properties.h" #include -#define BOOTLOADER_SUPPORT_CERTIFICATES 1 -#define APPLICATION_CERTIFICATE_VERSION (1UL) - -#if defined(BOOTLOADER_SUPPORT_CERTIFICATES) -const ApplicationCertificate_t sl_app_certificate = { - .structVersion = APPLICATION_CERTIFICATE_VERSION, - .flags = { 0U }, - .key = { 0U }, - .version = 0, - .signature = { 0U }, -}; -#endif - // Header used for building the image GBL file #define APP_PROPERTIES_VERSION 1 #define APP_PROPERTIES_ID \ @@ -71,15 +58,11 @@ __attribute__((used)) ApplicationProperties_t sl_app_properties = { /// Unique ID (e.g. UUID/GUID) for the product this application is built for .productId = APP_PROPERTIES_ID, }, -#if defined(BOOTLOADER_SUPPORT_CERTIFICATES) - // If certificate based boot chain is enabled, the bootloader binary will be provided with - // a certificate that does not contain any key. - // A valid certificate needs to be injected to the bootloader images using Simplicity Commander. - // Simplicity Commander will replace this certificate. - .cert = (ApplicationCertificate_t *)&sl_app_certificate, -#else + + /// Pointer to information about the certificate .cert = NULL, -#endif + + /// Pointer to Long Token Data Section .longTokenSectionAddress = NULL, }; diff --git a/examples/platform/efr32/heap_4_silabs.c b/examples/platform/efr32/heap_4_silabs.c index 98680cbeb296f6..03dddf4322519d 100644 --- a/examples/platform/efr32/heap_4_silabs.c +++ b/examples/platform/efr32/heap_4_silabs.c @@ -442,6 +442,16 @@ size_t xPortGetMinimumEverFreeHeapSize(void) { return xMinimumEverFreeBytesRemaining; } + +void xPortResetHeapMinimumEverFreeHeapSize(void) +{ + taskENTER_CRITICAL(); + { + xMinimumEverFreeBytesRemaining = xFreeBytesRemaining; + } + taskEXIT_CRITICAL(); +} + /*-----------------------------------------------------------*/ void vPortInitialiseBlocks(void) diff --git a/examples/platform/efr32/heap_4_silabs.h b/examples/platform/efr32/heap_4_silabs.h index 7873db896297c4..ed773f59f0a33c 100644 --- a/examples/platform/efr32/heap_4_silabs.h +++ b/examples/platform/efr32/heap_4_silabs.h @@ -42,6 +42,8 @@ extern "C" { void * pvPortCalloc(size_t num, size_t size); void * pvPortRealloc(void * pv, size_t size); +void xPortResetHeapMinimumEverFreeHeapSize(void); + #ifdef __cplusplus } #endif diff --git a/examples/platform/efr32/ldscripts/efr32mg12.ld b/examples/platform/efr32/ldscripts/efr32mg12.ld index 9dba3e1ded84e2..0851b5ffdf6a60 100644 --- a/examples/platform/efr32/ldscripts/efr32mg12.ld +++ b/examples/platform/efr32/ldscripts/efr32mg12.ld @@ -255,6 +255,7 @@ SECTIONS KEEP(*(.simee*)) } > FLASH + /* Last page of flash is reserved for the manufacturing token space */ linker_nvm_end = __main_flash_end__ - 2048; linker_nvm_begin = linker_nvm_end - SIZEOF(.nvm); linker_nvm_size = SIZEOF(.nvm); diff --git a/examples/platform/efr32/ldscripts/efr32mg24.ld b/examples/platform/efr32/ldscripts/efr32mg24.ld index 06bfc7c1842170..7b19dbea1bc03f 100644 --- a/examples/platform/efr32/ldscripts/efr32mg24.ld +++ b/examples/platform/efr32/ldscripts/efr32mg24.ld @@ -255,7 +255,8 @@ SECTIONS KEEP(*(.simee*)) } > FLASH - linker_nvm_end = __main_flash_end__; + /* Last page of flash is reserved for the manufacturing token space */ + linker_nvm_end = __main_flash_end__ - 8192; linker_nvm_begin = linker_nvm_end - SIZEOF(.nvm); linker_nvm_size = SIZEOF(.nvm); __nvm3Base = linker_nvm_begin; diff --git a/examples/platform/efr32/matter_config.cpp b/examples/platform/efr32/matter_config.cpp index 6f5b0747cdabe2..b892620acf3b9f 100644 --- a/examples/platform/efr32/matter_config.cpp +++ b/examples/platform/efr32/matter_config.cpp @@ -25,7 +25,7 @@ #include -#if SILABS_WIFI +#ifdef SL_WIFI #include "wfx_host_events.h" #endif /* RS911X_WIFI */ @@ -142,7 +142,7 @@ CHIP_ERROR EFR32MatterConfig::InitMatter(const char * appName) EFR32_LOG("Starting Platform Manager Event Loop"); ReturnErrorOnFailure(PlatformMgr().StartEventLoopTask()); -#if SILABS_WIFI +#ifdef SL_WIFI InitWiFi(); #endif // Init Matter OTA @@ -157,7 +157,7 @@ CHIP_ERROR EFR32MatterConfig::InitMatter(const char * appName) return CHIP_NO_ERROR; } -#if SILABS_WIFI +#ifdef SL_WIFI void EFR32MatterConfig::InitWiFi(void) { #ifdef WF200_WIFI @@ -176,7 +176,7 @@ void EFR32MatterConfig::InitWiFi(void) */ #endif } -#endif // SILABS_WIFI +#endif // SL_WIFI // ================================================================================ // FreeRTOS Callbacks diff --git a/examples/platform/esp32/PigweedLogger.cpp b/examples/platform/esp32/PigweedLogger.cpp index 84140f580e90fb..39851850bfa34c 100644 --- a/examples/platform/esp32/PigweedLogger.cpp +++ b/examples/platform/esp32/PigweedLogger.cpp @@ -90,8 +90,9 @@ extern "C" void __wrap_esp_log_write(esp_log_level_t level, const char * tag, co { va_list v; va_start(v, format); + #ifndef CONFIG_LOG_DEFAULT_LEVEL_NONE - if (uartInitialised) + if (uartInitialised && level <= CONFIG_LOG_MAXIMUM_LEVEL) { char formattedMsg[CHIP_CONFIG_LOG_MESSAGE_MAX_SIZE]; size_t len = vsnprintf(formattedMsg, sizeof formattedMsg, format, v); @@ -102,6 +103,7 @@ extern "C" void __wrap_esp_log_write(esp_log_level_t level, const char * tag, co PigweedLogger::putString(formattedMsg, len); } #endif + va_end(v); } diff --git a/examples/platform/esp32/common/CommonDeviceCallbacks.cpp b/examples/platform/esp32/common/CommonDeviceCallbacks.cpp index d641fe7a9a6889..ddc25a14c90d07 100644 --- a/examples/platform/esp32/common/CommonDeviceCallbacks.cpp +++ b/examples/platform/esp32/common/CommonDeviceCallbacks.cpp @@ -17,12 +17,17 @@ */ #include "CommonDeviceCallbacks.h" +#if CONFIG_BT_ENABLED #include "esp_bt.h" +#if CONFIG_BT_NIMBLE_ENABLED +#include "esp_nimble_hci.h" +#include "nimble/nimble_port.h" +#endif // CONFIG_BT_NIMBLE_ENABLED +#endif // CONFIG_BT_ENABLED + #include "esp_err.h" #include "esp_heap_caps.h" #include "esp_log.h" -#include "esp_nimble_hci.h" -#include "nimble/nimble_port.h" #include "route_hook/esp_route_hook.h" #include #include diff --git a/examples/platform/esp32/common/Esp32AppServer.cpp b/examples/platform/esp32/common/Esp32AppServer.cpp index 2d8e42dd603793..ee3dbdd31df218 100644 --- a/examples/platform/esp32/common/Esp32AppServer.cpp +++ b/examples/platform/esp32/common/Esp32AppServer.cpp @@ -19,6 +19,7 @@ #include "Esp32AppServer.h" #include "CHIPDeviceManager.h" #include +#include #include #include #include @@ -31,6 +32,7 @@ using namespace chip; using namespace chip::Credentials; using namespace chip::DeviceLayer; + namespace { #if CHIP_DEVICE_CONFIG_ENABLE_WIFI app::Clusters::NetworkCommissioning::Instance @@ -67,7 +69,7 @@ void Esp32AppServer::Init(AppDelegate * sAppDelegate) if (chip::DeviceLayer::ConnectivityMgr().IsThreadProvisioned() && (chip::Server::GetInstance().GetFabricTable().FabricCount() != 0)) { - ESP_LOGI(TAG, "Thread has been provisioned, publish the dns service now"); + ESP_LOGI("ESP32AppServer", "Thread has been provisioned, publish the dns service now"); chip::app::DnssdServer::Instance().StartServer(); } #endif diff --git a/examples/platform/linux/AppMain.cpp b/examples/platform/linux/AppMain.cpp index 7d50fd5e2a8501..c00a500c589423 100644 --- a/examples/platform/linux/AppMain.cpp +++ b/examples/platform/linux/AppMain.cpp @@ -63,6 +63,7 @@ #endif #if CHIP_CONFIG_TRANSPORT_TRACE_ENABLED +#include "TraceDecoder.h" #include "TraceHandlers.h" #endif // CHIP_CONFIG_TRANSPORT_TRACE_ENABLED @@ -100,10 +101,6 @@ LinuxCommissionableDataProvider gCommissionableDataProvider; chip::DeviceLayer::DeviceInfoProviderImpl gExampleDeviceInfoProvider; -#if CHIP_CONFIG_TRANSPORT_TRACE_ENABLED -chip::trace::TraceStream * gTraceStream = nullptr; -#endif // CHIP_CONFIG_TRANSPORT_TRACE_ENABLED - void EventHandler(const DeviceLayer::ChipDeviceEvent * event, intptr_t arg) { (void) arg; @@ -113,69 +110,9 @@ void EventHandler(const DeviceLayer::ChipDeviceEvent * event, intptr_t arg) } } -// when the shell is enabled, don't intercept signals since it prevents the user from -// using expected commands like CTRL-C to quit the application. (see issue #17845) -#if !defined(ENABLE_CHIP_SHELL) -void OnSignalHandler(int signum) -{ - ChipLogDetail(DeviceLayer, "Caught signal %d", signum); - - // The BootReason attribute SHALL indicate the reason for the Node’s most recent boot, the real usecase - // for this attribute is embedded system. In Linux simulation, we use different signals to tell the current - // running process to terminate with different reasons. - BootReasonType bootReason = BootReasonType::kUnspecified; - switch (signum) - { - case SIGVTALRM: - bootReason = BootReasonType::kPowerOnReboot; - break; - case SIGALRM: - bootReason = BootReasonType::kBrownOutReset; - break; - case SIGILL: - bootReason = BootReasonType::kSoftwareWatchdogReset; - break; - case SIGTRAP: - bootReason = BootReasonType::kHardwareWatchdogReset; - break; - case SIGIO: - bootReason = BootReasonType::kSoftwareUpdateCompleted; - break; - case SIGINT: - bootReason = BootReasonType::kSoftwareReset; - break; - default: - IgnoreUnusedVariable(bootReason); - ChipLogError(NotSpecified, "Unhandled signal: Should never happens"); - chipDie(); - break; - } - - Server::GetInstance().DispatchShutDownAndStopEventLoop(); -} - -void SetupSignalHandlers() -{ - // sigaction is not used here because Tsan interceptors seems to - // never dispatch the signals on darwin. - signal(SIGALRM, OnSignalHandler); - signal(SIGVTALRM, OnSignalHandler); - signal(SIGILL, OnSignalHandler); - signal(SIGTRAP, OnSignalHandler); - signal(SIGTERM, OnSignalHandler); - signal(SIGIO, OnSignalHandler); - signal(SIGINT, OnSignalHandler); -} -#endif // !defined(ENABLE_CHIP_SHELL) - void Cleanup() { #if CHIP_CONFIG_TRANSPORT_TRACE_ENABLED - if (gTraceStream != nullptr) - { - delete gTraceStream; - gTraceStream = nullptr; - } chip::trace::DeInitTrace(); #endif // CHIP_CONFIG_TRANSPORT_TRACE_ENABLED @@ -245,6 +182,11 @@ int ChipLinuxAppInit(int argc, char * const argv[], OptionSet * customOptions) LinuxDeviceOptions::GetInstance()); SuccessOrExit(err); + if (LinuxDeviceOptions::GetInstance().payload.rendezvousInformation.HasAny()) + { + rendezvousFlags = LinuxDeviceOptions::GetInstance().payload.rendezvousInformation; + } + err = GetPayloadContents(LinuxDeviceOptions::GetInstance().payload, rendezvousFlags); SuccessOrExit(err); @@ -277,17 +219,25 @@ int ChipLinuxAppInit(int argc, char * const argv[], OptionSet * customOptions) if (LinuxDeviceOptions::GetInstance().traceStreamFilename.HasValue()) { const char * traceFilename = LinuxDeviceOptions::GetInstance().traceStreamFilename.Value().c_str(); - gTraceStream = new chip::trace::TraceStreamFile(traceFilename); + auto traceStream = new chip::trace::TraceStreamFile(traceFilename); + chip::trace::AddTraceStream(traceStream); } else if (LinuxDeviceOptions::GetInstance().traceStreamToLogEnabled) { - gTraceStream = new chip::trace::TraceStreamLog(); + auto traceStream = new chip::trace::TraceStreamLog(); + chip::trace::AddTraceStream(traceStream); } - chip::trace::InitTrace(); - if (gTraceStream != nullptr) + + if (LinuxDeviceOptions::GetInstance().traceStreamDecodeEnabled) { - chip::trace::SetTraceStream(gTraceStream); + chip::trace::TraceDecoderOptions options; + options.mEnableProtocolInteractionModelResponse = false; + + chip::trace::TraceDecoder * decoder = new chip::trace::TraceDecoder(); + decoder->SetOptions(options); + chip::trace::AddTraceStream(decoder); } + chip::trace::InitTrace(); #endif // CHIP_CONFIG_TRANSPORT_TRACE_ENABLED #if CONFIG_NETWORK_LAYER_BLE @@ -344,7 +294,6 @@ void ChipLinuxAppMainLoop() // use a different service port to make testing possible with other sample devices running on same host initParams.operationalServicePort = LinuxDeviceOptions::GetInstance().securedDevicePort; initParams.userDirectedCommissioningPort = LinuxDeviceOptions::GetInstance().unsecuredCommissionerPort; - ; #endif // CHIP_DEVICE_CONFIG_ENABLE_BOTH_COMMISSIONER_AND_COMMISSIONEE initParams.interfaceId = LinuxDeviceOptions::GetInstance().interfaceId; @@ -375,10 +324,6 @@ void ChipLinuxAppMainLoop() #endif // defined(ENABLE_CHIP_SHELL) #endif // CHIP_DEVICE_CONFIG_ENABLE_BOTH_COMMISSIONER_AND_COMMISSIONEE -#if !defined(ENABLE_CHIP_SHELL) - SetupSignalHandlers(); -#endif // !defined(ENABLE_CHIP_SHELL) - ApplicationInit(); DeviceLayer::PlatformMgr().RunEventLoop(); diff --git a/examples/platform/linux/BUILD.gn b/examples/platform/linux/BUILD.gn index 71586b0e614ec7..640d5230b9e2cf 100644 --- a/examples/platform/linux/BUILD.gn +++ b/examples/platform/linux/BUILD.gn @@ -39,6 +39,8 @@ source_set("app-main") { "LinuxCommissionableDataProvider.h", "Options.cpp", "Options.h", + "testing/CustomCSRResponse.cpp", + "testing/CustomCSRResponse.h", ] defines = [] @@ -60,7 +62,8 @@ source_set("app-main") { ] if (chip_enable_transport_trace) { - public_deps += [ "${chip_root}/examples/common/tracing:trace_handlers" ] + public_deps += + [ "${chip_root}/examples/common/tracing:trace_handlers_decoder" ] } public_configs = [ ":app-main-config" ] diff --git a/examples/platform/linux/CommissionerMain.cpp b/examples/platform/linux/CommissionerMain.cpp index f7b6ae73650e72..816c3563122e3d 100644 --- a/examples/platform/linux/CommissionerMain.cpp +++ b/examples/platform/linux/CommissionerMain.cpp @@ -136,6 +136,7 @@ CHIP_ERROR InitCommissioner(uint16_t commissionerPort, uint16_t udcListenPort) ReturnErrorOnFailure(gOpCredsIssuer.Initialize(gServerStorage)); // No need to explicitly set the UDC port since we will use default + ChipLogProgress(Support, " ----- UDC listening on port %d", udcListenPort); ReturnErrorOnFailure(gCommissioner.SetUdcListenPort(udcListenPort)); // Initialize device attestation verifier @@ -223,8 +224,6 @@ class PairingCommand : public Controller::DevicePairingDelegate void OnPairingDeleted(CHIP_ERROR error) override; void OnCommissioningComplete(NodeId deviceId, CHIP_ERROR error) override; - CHIP_ERROR UpdateNetworkAddress(); - private: #if CHIP_DEVICE_CONFIG_APP_PLATFORM_ENABLED static void OnDeviceConnectedFn(void * context, chip::OperationalDeviceProxy * device); @@ -238,12 +237,6 @@ class PairingCommand : public Controller::DevicePairingDelegate PairingCommand gPairingCommand; NodeId gRemoteId = kTestDeviceNodeId; -CHIP_ERROR PairingCommand::UpdateNetworkAddress() -{ - ChipLogProgress(AppServer, "Mdns: Updating NodeId: %" PRIx64 " ...", gRemoteId); - return gCommissioner.UpdateDevice(gRemoteId); -} - void PairingCommand::OnStatusUpdate(DevicePairingDelegate::Status status) { switch (status) @@ -266,11 +259,6 @@ void PairingCommand::OnPairingComplete(CHIP_ERROR err) else { ChipLogProgress(AppServer, "Pairing Failure: %s", ErrorStr(err)); - // For some devices, it may take more time to appear on the network and become discoverable - // over DNS-SD, so don't give up on failure and restart the address update. Note that this - // will not be repeated endlessly as each chip-tool command has a timeout (in the case of - // the `pairing` command it equals 120s). - // UpdateNetworkAddress(); } } diff --git a/examples/platform/linux/Options.cpp b/examples/platform/linux/Options.cpp index 08614a8f98d343..c8bae87c377e14 100644 --- a/examples/platform/linux/Options.cpp +++ b/examples/platform/linux/Options.cpp @@ -39,28 +39,36 @@ LinuxDeviceOptions gDeviceOptions; // Follow the code style of command line arguments in case we need to add more options in the future. enum { - kDeviceOption_BleDevice = 0x1000, - kDeviceOption_WiFi = 0x1001, - kDeviceOption_Thread = 0x1002, - kDeviceOption_Version = 0x1003, - kDeviceOption_VendorID = 0x1004, - kDeviceOption_ProductID = 0x1005, - kDeviceOption_CustomFlow = 0x1006, - kDeviceOption_Capabilities = 0x1007, - kDeviceOption_Discriminator = 0x1008, - kDeviceOption_Passcode = 0x1009, - kDeviceOption_SecuredDevicePort = 0x100a, - kDeviceOption_SecuredCommissionerPort = 0x100b, - kDeviceOption_UnsecuredCommissionerPort = 0x100c, - kDeviceOption_Command = 0x100d, - kDeviceOption_PICS = 0x100e, - kDeviceOption_KVS = 0x100f, - kDeviceOption_InterfaceId = 0x1010, - kDeviceOption_Spake2pVerifierBase64 = 0x1011, - kDeviceOption_Spake2pSaltBase64 = 0x1012, - kDeviceOption_Spake2pIterations = 0x1013, - kDeviceOption_TraceFile = 0x1014, - kDeviceOption_TraceLog = 0x1015, + kDeviceOption_BleDevice = 0x1000, + kDeviceOption_WiFi = 0x1001, + kDeviceOption_Thread = 0x1002, + kDeviceOption_Version = 0x1003, + kDeviceOption_VendorID = 0x1004, + kDeviceOption_ProductID = 0x1005, + kDeviceOption_CustomFlow = 0x1006, + kDeviceOption_Capabilities = 0x1007, + kDeviceOption_Discriminator = 0x1008, + kDeviceOption_Passcode = 0x1009, + kDeviceOption_SecuredDevicePort = 0x100a, + kDeviceOption_SecuredCommissionerPort = 0x100b, + kDeviceOption_UnsecuredCommissionerPort = 0x100c, + kDeviceOption_Command = 0x100d, + kDeviceOption_PICS = 0x100e, + kDeviceOption_KVS = 0x100f, + kDeviceOption_InterfaceId = 0x1010, + kDeviceOption_Spake2pVerifierBase64 = 0x1011, + kDeviceOption_Spake2pSaltBase64 = 0x1012, + kDeviceOption_Spake2pIterations = 0x1013, + kDeviceOption_TraceFile = 0x1014, + kDeviceOption_TraceLog = 0x1015, + kDeviceOption_TraceDecode = 0x1016, + kOptionCSRResponseCSRIncorrectType = 0x1017, + kOptionCSRResponseCSRNonceIncorrectType = 0x1018, + kOptionCSRResponseCSRNonceTooLong = 0x1019, + kOptionCSRResponseCSRNonceInvalid = 0x101a, + kOptionCSRResponseNOCSRElementsTooLong = 0x101b, + kOptionCSRResponseAttestationSignatureIncorrectType = 0x101c, + kOptionCSRResponseAttestationSignatureInvalid = 0x101d, }; constexpr unsigned kAppUsageLength = 64; @@ -95,7 +103,15 @@ OptionDef sDeviceOptionDefs[] = { #if CHIP_CONFIG_TRANSPORT_TRACE_ENABLED { "trace_file", kArgumentRequired, kDeviceOption_TraceFile }, { "trace_log", kArgumentRequired, kDeviceOption_TraceLog }, + { "trace_decode", kArgumentRequired, kDeviceOption_TraceDecode }, #endif // CHIP_CONFIG_TRANSPORT_TRACE_ENABLED + { "cert_error_csr_incorrect_type", kNoArgument, kOptionCSRResponseCSRIncorrectType }, + { "cert_error_csr_nonce_incorrect_type", kNoArgument, kOptionCSRResponseCSRNonceIncorrectType }, + { "cert_error_csr_nonce_too_long", kNoArgument, kOptionCSRResponseCSRNonceTooLong }, + { "cert_error_csr_nonce_invalid", kNoArgument, kOptionCSRResponseCSRNonceInvalid }, + { "cert_error_nocsrelements_too_long", kNoArgument, kOptionCSRResponseNOCSRElementsTooLong }, + { "cert_error_attestation_signature_incorrect_type", kNoArgument, kOptionCSRResponseAttestationSignatureIncorrectType }, + { "cert_error_attestation_signature_invalid", kNoArgument, kOptionCSRResponseAttestationSignatureInvalid }, {} }; @@ -178,7 +194,23 @@ const char * sDeviceOptionHelp = " Output trace data to the provided file.\n" " --trace_log <1/0>\n" " A value of 1 enables traces to go to the log, 0 disables this (default 0).\n" + " --trace_decode <1/0>\n" + " A value of 1 enables traces decoding, 0 disables this (default 0).\n" #endif // CHIP_CONFIG_TRANSPORT_TRACE_ENABLED + " --cert_error_csr_incorrect_type\n" + " Configure the CSRResponse to be built with an invalid CSR type.\n" + " --cert_error_csr_nonce_incorrect_type\n" + " Configure the CSRResponse to be built with an invalid CSRNonce type.\n" + " --cert_error_csr_nonce_too_long\n" + " Configure the CSRResponse to be built with a CSRNonce that is longer than expected.\n" + " --cert_error_csr_nonce_invalid\n" + " Configure the CSRResponse to be built with a CSRNonce that does not match the CSRNonce from the CSRRequest.\n" + " --cert_error_nocsrelements_too_long\n" + " Configure the CSRResponse to contains an NOCSRElements larger than the allowed RESP_MAX.\n" + " --cert_error_attestation_signature_incorrect_type\n" + " Configure the CSRResponse to be build with an invalid AttestationSignature type.\n" + " --cert_error_attestation_signature_invalid\n" + " Configure the CSRResponse to be build with an AttestationSignature that does not match what is expected.\n" "\n"; bool Base64ArgToVector(const char * arg, size_t maxSize, std::vector & outVector) @@ -374,8 +406,36 @@ bool HandleOption(const char * aProgram, OptionSet * aOptions, int aIdentifier, LinuxDeviceOptions::GetInstance().traceStreamToLogEnabled = true; } break; + case kDeviceOption_TraceDecode: + if (atoi(aValue) != 0) + { + LinuxDeviceOptions::GetInstance().traceStreamDecodeEnabled = true; + } + break; #endif // CHIP_CONFIG_TRANSPORT_TRACE_ENABLED + case kOptionCSRResponseCSRIncorrectType: + LinuxDeviceOptions::GetInstance().mCSRResponseOptions.csrIncorrectType = true; + break; + case kOptionCSRResponseCSRNonceIncorrectType: + LinuxDeviceOptions::GetInstance().mCSRResponseOptions.csrNonceIncorrectType = true; + break; + case kOptionCSRResponseCSRNonceTooLong: + LinuxDeviceOptions::GetInstance().mCSRResponseOptions.csrNonceTooLong = true; + break; + case kOptionCSRResponseCSRNonceInvalid: + LinuxDeviceOptions::GetInstance().mCSRResponseOptions.csrNonceInvalid = true; + break; + case kOptionCSRResponseNOCSRElementsTooLong: + LinuxDeviceOptions::GetInstance().mCSRResponseOptions.nocsrElementsTooLong = true; + break; + case kOptionCSRResponseAttestationSignatureIncorrectType: + LinuxDeviceOptions::GetInstance().mCSRResponseOptions.attestationSignatureIncorrectType = true; + break; + case kOptionCSRResponseAttestationSignatureInvalid: + LinuxDeviceOptions::GetInstance().mCSRResponseOptions.attestationSignatureInvalid = true; + break; + default: PrintArgError("%s: INTERNAL ERROR: Unhandled option: %s\n", aProgram, aName); retval = false; diff --git a/examples/platform/linux/Options.h b/examples/platform/linux/Options.h index 4f55f6f7f54e7a..56a95b772cafd8 100644 --- a/examples/platform/linux/Options.h +++ b/examples/platform/linux/Options.h @@ -35,6 +35,7 @@ #include #include +#include struct LinuxDeviceOptions { @@ -53,9 +54,11 @@ struct LinuxDeviceOptions const char * PICS = nullptr; const char * KVS = nullptr; chip::Inet::InterfaceId interfaceId = chip::Inet::InterfaceId::Null(); + bool traceStreamDecodeEnabled = false; bool traceStreamToLogEnabled = false; chip::Optional traceStreamFilename; chip::Credentials::DeviceAttestationCredentialsProvider * dacProvider = nullptr; + chip::CSRResponseOptions mCSRResponseOptions; static LinuxDeviceOptions & GetInstance(); }; diff --git a/examples/platform/linux/testing/CustomCSRResponse.cpp b/examples/platform/linux/testing/CustomCSRResponse.cpp new file mode 100644 index 00000000000000..39f7e9d2cad6c7 --- /dev/null +++ b/examples/platform/linux/testing/CustomCSRResponse.cpp @@ -0,0 +1,165 @@ +/* + * + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#include "Options.h" + +#include +#include +#include +#include +#include + +using namespace chip; +using namespace chip::app; +using namespace chip::app::Clusters::OperationalCredentials::Commands; + +constexpr size_t kMaxResponseLength = 900; +constexpr size_t kCSRNonceLength = 32; + +namespace { + +CHIP_ERROR ConstructCustomNOCSRElements(TLV::TLVWriter & writer, TLV::Tag tag, const ByteSpan & nocsrElements, + CSRResponseOptions & options) +{ + ByteSpan csr; + ByteSpan csrNonce; + ByteSpan vendorReserved1; + ByteSpan vendorReserved2; + ByteSpan vendorReserved3; + ReturnErrorOnFailure( + Credentials::DeconstructNOCSRElements(nocsrElements, csr, csrNonce, vendorReserved1, vendorReserved2, vendorReserved3)); + + // Add 10 bytes of possible overhead to allow the generation of content longer than the allowed maximum of RESP_MAX. + // 10 has been choosen to leave enough space for the possible TLV overhead when adding the additional data. + uint8_t nocsrElementsData[kMaxResponseLength + 10]; + MutableByteSpan nocsrElementsSpan(nocsrElementsData); + + TLV::TLVType outerContainerType = TLV::kTLVType_NotSpecified; + TLV::TLVWriter tlvWriter; + tlvWriter.Init(nocsrElementsSpan); + + ReturnErrorOnFailure(tlvWriter.StartContainer(TLV::AnonymousTag(), TLV::kTLVType_Structure, outerContainerType)); + + // Update CSR + if (options.csrIncorrectType) + { + ReturnErrorOnFailure(tlvWriter.Put(TLV::ContextTag(1), true)); + } + else + { + ReturnErrorOnFailure(tlvWriter.Put(TLV::ContextTag(1), csr)); + } + + // Update CSRNonce + if (options.csrNonceIncorrectType) + { + ReturnErrorOnFailure(tlvWriter.Put(TLV::ContextTag(2), true)); + } + else if (options.csrNonceInvalid) + { + uint8_t csrNonceInvalid[kCSRNonceLength] = {}; + memcpy(csrNonceInvalid, csrNonce.data(), csrNonce.size()); + std::reverse(csrNonceInvalid, csrNonceInvalid + sizeof(csrNonceInvalid)); + ReturnErrorOnFailure(tlvWriter.Put(TLV::ContextTag(2), ByteSpan(csrNonceInvalid))); + } + else if (options.csrNonceTooLong) + { + uint8_t csrNonceTooLong[kCSRNonceLength + 1] = {}; + memcpy(csrNonceTooLong, csrNonce.data(), csrNonce.size()); + ReturnErrorOnFailure(tlvWriter.Put(TLV::ContextTag(2), ByteSpan(csrNonceTooLong))); + } + else + { + ReturnErrorOnFailure(tlvWriter.Put(TLV::ContextTag(2), csrNonce)); + } + + // Add vendorReserved1 if present + if (!vendorReserved1.empty()) + { + ReturnErrorOnFailure(tlvWriter.Put(TLV::ContextTag(3), vendorReserved1)); + } + + // Add vendorReserved2 if present + if (!vendorReserved2.empty()) + { + ReturnErrorOnFailure(tlvWriter.Put(TLV::ContextTag(4), vendorReserved2)); + } + + // Add vendorReserved3 if present + if (!vendorReserved3.empty()) + { + ReturnErrorOnFailure(tlvWriter.Put(TLV::ContextTag(5), vendorReserved3)); + } + + // Add additional data + if (options.nocsrElementsTooLong) + { + size_t len = kMaxResponseLength - tlvWriter.GetLengthWritten(); + ReturnLogErrorOnFailure(tlvWriter.Put(TLV::ContextTag(6), ByteSpan(nocsrElementsData, len))); + } + + ReturnErrorOnFailure(tlvWriter.EndContainer(outerContainerType)); + ReturnErrorOnFailure(tlvWriter.Finalize()); + + return DataModel::Encode(writer, tag, nocsrElementsSpan.SubSpan(0, tlvWriter.GetLengthWritten())); +} + +CHIP_ERROR ConstructCustomAttestationSignature(TLV::TLVWriter & writer, TLV::Tag tag, const ByteSpan & attestationSignature, + CSRResponseOptions & options) +{ + if (options.attestationSignatureIncorrectType) + { + return DataModel::Encode(writer, tag, true); + } + + if (options.attestationSignatureInvalid) + { + uint8_t invalidAttestationSignature[Crypto::kP256_ECDSA_Signature_Length_Raw] = {}; + memcpy(invalidAttestationSignature, attestationSignature.data(), attestationSignature.size()); + std::reverse(invalidAttestationSignature, invalidAttestationSignature + sizeof(invalidAttestationSignature)); + return DataModel::Encode(writer, tag, ByteSpan(invalidAttestationSignature)); + } + + return DataModel::Encode(writer, tag, attestationSignature); +} + +} // namespace + +namespace chip { +namespace app { +namespace DataModel { + +template <> +CHIP_ERROR Encode(TLV::TLVWriter & writer, TLV::Tag tag, const CSRResponse::Type & responseData) +{ + auto tag1 = TLV::ContextTag(to_underlying(CSRResponse::Fields::kNOCSRElements)); + auto tag2 = TLV::ContextTag(to_underlying(CSRResponse::Fields::kAttestationSignature)); + auto options = LinuxDeviceOptions::GetInstance().mCSRResponseOptions; + + TLV::TLVType outer; + ReturnErrorOnFailure(writer.StartContainer(tag, TLV::kTLVType_Structure, outer)); + ReturnErrorOnFailure(ConstructCustomNOCSRElements(writer, tag1, responseData.NOCSRElements, options)); + ReturnErrorOnFailure(ConstructCustomAttestationSignature(writer, tag2, responseData.attestationSignature, options)); + ReturnErrorOnFailure(writer.EndContainer(outer)); + + return CHIP_NO_ERROR; +} + +} // namespace DataModel +} // namespace app +} // namespace chip diff --git a/examples/platform/linux/testing/CustomCSRResponse.h b/examples/platform/linux/testing/CustomCSRResponse.h new file mode 100644 index 00000000000000..5de00b0646ae6d --- /dev/null +++ b/examples/platform/linux/testing/CustomCSRResponse.h @@ -0,0 +1,32 @@ +/* + * + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +namespace chip { + +struct CSRResponseOptions +{ + bool csrIncorrectType = false; + bool csrNonceIncorrectType = false; + bool csrNonceTooLong = false; + bool csrNonceInvalid = false; + bool nocsrElementsTooLong = false; + bool attestationSignatureIncorrectType = false; + bool attestationSignatureInvalid = false; +}; + +} // namespace chip diff --git a/examples/platform/nrfconnect/Rpc.cpp b/examples/platform/nrfconnect/Rpc.cpp index b9e1ae666f8be7..14cced6d5b1062 100644 --- a/examples/platform/nrfconnect/Rpc.cpp +++ b/examples/platform/nrfconnect/Rpc.cpp @@ -22,9 +22,9 @@ #include "PigweedLoggerMutex.h" #include "pigweed/RpcService.h" #include "pw_sys_io_nrfconnect/init.h" -#include +#include -#include +#include LOG_MODULE_DECLARE(app, CONFIG_MATTER_LOG_LEVEL); diff --git a/examples/platform/nrfconnect/Rpc.h b/examples/platform/nrfconnect/Rpc.h index e5375eeb17b31c..f0aeaf45b61fba 100644 --- a/examples/platform/nrfconnect/Rpc.h +++ b/examples/platform/nrfconnect/Rpc.h @@ -18,7 +18,7 @@ #pragma once -#include +#include namespace chip { namespace rpc { diff --git a/examples/platform/nrfconnect/pw_sys_io/sys_io_nrfconnect.cc b/examples/platform/nrfconnect/pw_sys_io/sys_io_nrfconnect.cc index e23a006dd6359c..3781eaa738d45f 100644 --- a/examples/platform/nrfconnect/pw_sys_io/sys_io_nrfconnect.cc +++ b/examples/platform/nrfconnect/pw_sys_io/sys_io_nrfconnect.cc @@ -20,10 +20,10 @@ #include "console/console.h" #include "pw_sys_io/sys_io.h" #include -#include +#include #ifdef CONFIG_USB -#include +#include #endif extern "C" void pw_sys_io_Init() diff --git a/examples/platform/nrfconnect/util/DFUOverSMP.cpp b/examples/platform/nrfconnect/util/DFUOverSMP.cpp index 03c491b3460bee..c4b496d575fc26 100644 --- a/examples/platform/nrfconnect/util/DFUOverSMP.cpp +++ b/examples/platform/nrfconnect/util/DFUOverSMP.cpp @@ -21,10 +21,10 @@ #error "DFUOverSMP requires MCUMGR module configs enabled" #endif -#include #include -#include #include +#include +#include #include diff --git a/examples/platform/nrfconnect/util/DFUTrigger.cpp b/examples/platform/nrfconnect/util/DFUTrigger.cpp index b1c14bc792409c..c287e56097fd6b 100644 --- a/examples/platform/nrfconnect/util/DFUTrigger.cpp +++ b/examples/platform/nrfconnect/util/DFUTrigger.cpp @@ -20,8 +20,8 @@ #error "The command for triggerring the DFU is available for nRF52840 Dongle only" #endif -#include -#include +#include +#include namespace { constexpr const char * kGPIOController = "GPIO_0"; diff --git a/examples/platform/nrfconnect/util/LEDWidget.cpp b/examples/platform/nrfconnect/util/LEDWidget.cpp index 703460eb5bf7e4..eca7765ab0a0d9 100644 --- a/examples/platform/nrfconnect/util/LEDWidget.cpp +++ b/examples/platform/nrfconnect/util/LEDWidget.cpp @@ -20,7 +20,7 @@ #include "LEDWidget.h" #include -#include +#include static LEDWidget::LEDWidgetStateUpdateHandler sStateUpdateCallback; diff --git a/examples/platform/nrfconnect/util/OTAUtil.cpp b/examples/platform/nrfconnect/util/OTAUtil.cpp index ed7b2368ce098a..4addd5c30a7d30 100644 --- a/examples/platform/nrfconnect/util/OTAUtil.cpp +++ b/examples/platform/nrfconnect/util/OTAUtil.cpp @@ -52,6 +52,8 @@ OTAImageProcessorImpl & GetOTAImageProcessor() void InitBasicOTARequestor() { + VerifyOrReturn(GetRequestorInstance() == nullptr); + OTAImageProcessorImpl & imageProcessor = GetOTAImageProcessor(); imageProcessor.SetOTADownloader(&sBDXDownloader); sBDXDownloader.SetImageProcessorDelegate(&imageProcessor); diff --git a/examples/platform/nrfconnect/util/PWMDevice.cpp b/examples/platform/nrfconnect/util/PWMDevice.cpp index 929f538f792819..43e3600a15cec9 100644 --- a/examples/platform/nrfconnect/util/PWMDevice.cpp +++ b/examples/platform/nrfconnect/util/PWMDevice.cpp @@ -22,24 +22,23 @@ #include -#include -#include -#include +#include +#include +#include LOG_MODULE_DECLARE(app, CONFIG_MATTER_LOG_LEVEL); -int PWMDevice::Init(const device * aPWMDevice, uint32_t aPWMChannel, uint8_t aMinLevel, uint8_t aMaxLevel, uint8_t aDefaultLevel) +int PWMDevice::Init(const pwm_dt_spec * aPWMDevice, uint8_t aMinLevel, uint8_t aMaxLevel, uint8_t aDefaultLevel) { - mState = kState_On; - mMinLevel = aMinLevel; - mMaxLevel = aMaxLevel; - mLevel = aDefaultLevel; - mPwmDevice = aPWMDevice; - mPwmChannel = aPWMChannel; - - if (!device_is_ready(mPwmDevice)) + mState = kState_On; + mMinLevel = aMinLevel; + mMaxLevel = aMaxLevel; + mLevel = aDefaultLevel; + mPwmDevice = aPWMDevice; + + if (!device_is_ready(mPwmDevice->dev)) { - LOG_ERR("PWM device %s is not ready", mPwmDevice->name); + LOG_ERR("PWM device %s is not ready", mPwmDevice->dev->name); return -ENODEV; } @@ -124,9 +123,9 @@ void PWMDevice::Set(bool aOn) void PWMDevice::UpdateLight() { - constexpr uint32_t kPwmWidthUs = 20000u; const uint8_t maxEffectiveLevel = mMaxLevel - mMinLevel; const uint8_t effectiveLevel = mState == kState_On ? chip::min(mLevel - mMinLevel, maxEffectiveLevel) : 0; - pwm_pin_set_usec(mPwmDevice, mPwmChannel, kPwmWidthUs, kPwmWidthUs * effectiveLevel / maxEffectiveLevel, 0); + pwm_set_pulse_dt(mPwmDevice, + static_cast(static_cast(mPwmDevice->period) * effectiveLevel / maxEffectiveLevel)); } diff --git a/examples/platform/nrfconnect/util/PigweedLogger.cpp b/examples/platform/nrfconnect/util/PigweedLogger.cpp index ed08e7af12784d..6aae4a062a6f05 100644 --- a/examples/platform/nrfconnect/util/PigweedLogger.cpp +++ b/examples/platform/nrfconnect/util/PigweedLogger.cpp @@ -24,11 +24,11 @@ * needs to use HDLC/UART for another purpose like the RPC server. */ -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include #include diff --git a/examples/platform/nrfconnect/util/ThreadUtil.cpp b/examples/platform/nrfconnect/util/ThreadUtil.cpp index 5ca7b5874acaf2..b3564d8cbf80de 100644 --- a/examples/platform/nrfconnect/util/ThreadUtil.cpp +++ b/examples/platform/nrfconnect/util/ThreadUtil.cpp @@ -23,7 +23,7 @@ #include #include -#include +#include #include diff --git a/examples/platform/nrfconnect/util/include/DFUOverSMP.h b/examples/platform/nrfconnect/util/include/DFUOverSMP.h index 846a8a13394ee9..c6c04b474b8f68 100644 --- a/examples/platform/nrfconnect/util/include/DFUOverSMP.h +++ b/examples/platform/nrfconnect/util/include/DFUOverSMP.h @@ -25,7 +25,7 @@ #include -#include +#include typedef void (*DFUOverSMPRestartAdvertisingHandler)(void); diff --git a/examples/platform/nrfconnect/util/include/LEDWidget.h b/examples/platform/nrfconnect/util/include/LEDWidget.h index 7c76c49810157f..4859bc9bf048df 100644 --- a/examples/platform/nrfconnect/util/include/LEDWidget.h +++ b/examples/platform/nrfconnect/util/include/LEDWidget.h @@ -20,7 +20,7 @@ #include -#include +#include class LEDWidget { diff --git a/examples/platform/nrfconnect/util/include/PWMDevice.h b/examples/platform/nrfconnect/util/include/PWMDevice.h index d83a45d92e982b..250383efa93c0e 100644 --- a/examples/platform/nrfconnect/util/include/PWMDevice.h +++ b/examples/platform/nrfconnect/util/include/PWMDevice.h @@ -18,7 +18,8 @@ #pragma once #include -#include +#include +#include class PWMDevice { @@ -40,21 +41,21 @@ class PWMDevice using PWMCallback = void (*)(Action_t, int32_t); - int Init(const device * aPWMDevice, uint32_t aPWMChannel, uint8_t aMinLevel, uint8_t aMaxLevel, uint8_t aDefaultLevel = 0); + int Init(const pwm_dt_spec * aPWMDevice, uint8_t aMinLevel, uint8_t aMaxLevel, uint8_t aDefaultLevel = 0); bool IsTurnedOn() const { return mState == kState_On; } uint8_t GetLevel() const { return mLevel; } uint8_t GetMinLevel() const { return mMinLevel; } uint8_t GetMaxLevel() const { return mMaxLevel; } bool InitiateAction(Action_t aAction, int32_t aActor, uint8_t * aValue); void SetCallbacks(PWMCallback aActionInitiatedClb, PWMCallback aActionCompletedClb); - const device * GetDevice() { return mPwmDevice; } + const device * GetDevice() { return mPwmDevice->dev; } private: State_t mState; uint8_t mMinLevel; uint8_t mMaxLevel; uint8_t mLevel; - const device * mPwmDevice; + const pwm_dt_spec * mPwmDevice; uint32_t mPwmChannel; PWMCallback mActionInitiatedClb; diff --git a/examples/platform/nrfconnect/util/include/PigweedLogger.h b/examples/platform/nrfconnect/util/include/PigweedLogger.h index 69d011a0c4c8c2..ac106231802e50 100644 --- a/examples/platform/nrfconnect/util/include/PigweedLogger.h +++ b/examples/platform/nrfconnect/util/include/PigweedLogger.h @@ -17,7 +17,7 @@ #pragma once -#include +#include namespace PigweedLogger { diff --git a/examples/platform/nxp/k32w/k32w0/app/ldscripts/chip-k32w061-linker.ld b/examples/platform/nxp/k32w/k32w0/app/ldscripts/chip-k32w061-linker.ld index 3bb149e142b48c..3bb028d183d9dd 100644 --- a/examples/platform/nxp/k32w/k32w0/app/ldscripts/chip-k32w061-linker.ld +++ b/examples/platform/nxp/k32w/k32w0/app/ldscripts/chip-k32w061-linker.ld @@ -211,9 +211,9 @@ SECTIONS _etext = .; - .heap_controller (COPY): + .heap_packet_buffer (COPY): { - *(.ll_exchange_mem) + *(.bss._ZN4chip6System12PacketBuffer11sBufferPoolE) __HeapBase = .; _heap = .; KEEP(*(.heap*)) diff --git a/examples/platform/nxp/k32w/k32w0/app/project_include/OpenThreadConfig.h b/examples/platform/nxp/k32w/k32w0/app/project_include/OpenThreadConfig.h index f59258a294be03..667574786bb91e 100644 --- a/examples/platform/nxp/k32w/k32w0/app/project_include/OpenThreadConfig.h +++ b/examples/platform/nxp/k32w/k32w0/app/project_include/OpenThreadConfig.h @@ -22,40 +22,80 @@ * */ +#include "openthread-core-k32w061-config.h" + #pragma once // Disable the Nxp-supplied OpenThread logging facilities // and use the facilities provided by the Device Layer // (see src/platform/K32W/Logging.cpp). +#undef OPENTHREAD_CONFIG_LOG_OUTPUT #define OPENTHREAD_CONFIG_LOG_OUTPUT OPENTHREAD_CONFIG_LOG_OUTPUT_APP // When operating in a less than ideal RF environment, having a more forgiving configuration // of OpenThread makes thread a great deal more reliable. -#define OPENTHREAD_CONFIG_TMF_ADDRESS_QUERY_MAX_RETRY_DELAY 120 // default is 28800 +#undef OPENTHREAD_CONFIG_TMF_ADDRESS_QUERY_MAX_RETRY_DELAY +#define OPENTHREAD_CONFIG_TMF_ADDRESS_QUERY_MAX_RETRY_DELAY 120 // default is 28800 + +#undef OPENTHREAD_CONFIG_MAC__DEFAULT_MAX_FRAME_RETRIES_DIRECT #define OPENTHREAD_CONFIG_MAC__DEFAULT_MAX_FRAME_RETRIES_DIRECT 15 // default is 3 + +#undef OPENTHREAD_CONFIG_MAC_DEFAULT_MAX_FRAME_RETRIES_INDIRECT #define OPENTHREAD_CONFIG_MAC_DEFAULT_MAX_FRAME_RETRIES_INDIRECT 1 // default is 0 -#define OPENTHREAD_CONFIG_MAC_MAX_TX_ATTEMPTS_INDIRECT_POLLS 16 // default is 4 + +#undef OPENTHREAD_CONFIG_MAC_MAX_TX_ATTEMPTS_INDIRECT_POLLS +#define OPENTHREAD_CONFIG_MAC_MAX_TX_ATTEMPTS_INDIRECT_POLLS 16 // default is 4 // Enable periodic parent search to speed up finding a better parent. -#define OPENTHREAD_CONFIG_PARENT_SEARCH_ENABLE 1 // default is 0 -#define OPENTHREAD_CONFIG_PARENT_SEARCH_RSS_THRESHOLD -45 // default is -65 +#undef OPENTHREAD_CONFIG_PARENT_SEARCH_ENABLE +#define OPENTHREAD_CONFIG_PARENT_SEARCH_ENABLE 1 // default is 0 + +#undef OPENTHREAD_CONFIG_PARENT_SEARCH_RSS_THRESHOLD +#define OPENTHREAD_CONFIG_PARENT_SEARCH_RSS_THRESHOLD -45 // default is -65 + +#undef OPENTHREAD_CONFIG_MLE_INFORM_PREVIOUS_PARENT_ON_REATTACH #define OPENTHREAD_CONFIG_MLE_INFORM_PREVIOUS_PARENT_ON_REATTACH 1 // default is 0 // Use smaller maximum interval to speed up reattaching. +#undef OPENTHREAD_CONFIG_MLE_ATTACH_BACKOFF_MAXIMUM_INTERVAL #define OPENTHREAD_CONFIG_MLE_ATTACH_BACKOFF_MAXIMUM_INTERVAL (60 * 10 * 1000) // default 1200000 ms // disable unused features +#undef OPENTHREAD_CONFIG_COAP_API_ENABLE #define OPENTHREAD_CONFIG_COAP_API_ENABLE 0 + +#undef OPENTHREAD_CONFIG_JOINER_ENABLE #define OPENTHREAD_CONFIG_JOINER_ENABLE 0 + +#undef OPENTHREAD_CONFIG_COMMISSIONER_ENABLE #define OPENTHREAD_CONFIG_COMMISSIONER_ENABLE 0 + +#undef OPENTHREAD_CONFIG_UDP_FORWARD_ENABLE #define OPENTHREAD_CONFIG_UDP_FORWARD_ENABLE 0 + +#undef OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE #define OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE 0 + +#undef OPENTHREAD_CONFIG_DHCP6_CLIENT_ENABLE #define OPENTHREAD_CONFIG_DHCP6_CLIENT_ENABLE 0 + +#undef OPENTHREAD_CONFIG_DHCP6_SERVER_ENABLE #define OPENTHREAD_CONFIG_DHCP6_SERVER_ENABLE 0 + +#undef OPENTHREAD_CONFIG_TCP_ENABLE #define OPENTHREAD_CONFIG_TCP_ENABLE 0 +#undef OPENTHREAD_CONFIG_MLE_LINK_METRICS_SUBJECT_ENABLE +#define OPENTHREAD_CONFIG_MLE_LINK_METRICS_SUBJECT_ENABLE 0 + +#undef OPENTHREAD_CONFIG_MLE_LINK_METRICS_INITIATOR_ENABLE +#define OPENTHREAD_CONFIG_MLE_LINK_METRICS_INITIATOR_ENABLE 0 + +#undef OPENTHREAD_CONFIG_NUM_MESSAGE_BUFFERS #define OPENTHREAD_CONFIG_NUM_MESSAGE_BUFFERS 44 +#undef OPENTHREAD_CONFIG_PLATFORM_CSL_UNCERT + //#define OPENTHREAD_CONFIG_LOG_LEVEL OT_LOG_LEVEL_DEBG // Use the NXP-supplied default platform configuration for remainder @@ -64,4 +104,3 @@ // NB: This file gets included during the build of OpenThread. Hence // it cannot use "openthread" in the path to the included file. // -#include "openthread-core-k32w061-config.h" diff --git a/examples/platform/nxp/k32w/k32w0/app/support/FreeRtosHooks.c b/examples/platform/nxp/k32w/k32w0/app/support/FreeRtosHooks.c index 0884a8f261f226..5bdb70c6ee21fc 100644 --- a/examples/platform/nxp/k32w/k32w0/app/support/FreeRtosHooks.c +++ b/examples/platform/nxp/k32w/k32w0/app/support/FreeRtosHooks.c @@ -27,6 +27,7 @@ #include #include +#include "PDM.h" #include "PWR_Interface.h" #include "TimersManager.h" #include "board.h" @@ -52,6 +53,8 @@ #define APP_DBG_LOG(...) #endif +#define PDM_MAX_WRITES_INFINITE 0xFF + static inline void mutex_init(mbedtls_threading_mutex_t * p_mutex) { assert(p_mutex != NULL); @@ -217,6 +220,7 @@ void vPortSuppressTicksAndSleep(TickType_t xExpectedIdleTime) OSA_InterruptEnable(); } +#endif /* (cPWR_UsePowerDownMode) && (configUSE_TICKLESS_IDLE != 0) */ static void BOARD_ActionOnIdle(void) { @@ -228,9 +232,11 @@ static void BOARD_ActionOnIdle(void) #endif } +extern void OTAIdleActivities(void); + void vApplicationIdleHook(void) { + PDM_vIdleTask(PDM_MAX_WRITES_INFINITE); + OTAIdleActivities(); BOARD_ActionOnIdle(); } - -#endif /* (cPWR_UsePowerDownMode) && (configUSE_TICKLESS_IDLE != 0) */ diff --git a/examples/platform/nxp/k32w/k32w0/args.gni b/examples/platform/nxp/k32w/k32w0/args.gni index 747d22ba2ad90e..954fad9a2faee2 100644 --- a/examples/platform/nxp/k32w/k32w0/args.gni +++ b/examples/platform/nxp/k32w/k32w0/args.gni @@ -32,3 +32,6 @@ chip_system_project_config_include = "" chip_system_config_provide_statistics = false chip_with_nlfaultinjection = true + +chip_system_config_use_open_thread_inet_endpoints = true +chip_with_lwip = false diff --git a/examples/platform/tizen/TizenServiceAppMain.cpp b/examples/platform/tizen/TizenServiceAppMain.cpp index 4b5df762d8254e..06f90928b99c9a 100644 --- a/examples/platform/tizen/TizenServiceAppMain.cpp +++ b/examples/platform/tizen/TizenServiceAppMain.cpp @@ -84,13 +84,16 @@ void TizenServiceAppMain::AppTerminated() void TizenServiceAppMain::AppControl(app_control_h app_control) { ChipLogProgress(NotSpecified, "Tizen app control"); - - mLinuxArgs.Parse(mArgc > 0 ? mArgv[0] : nullptr, app_control); - if (ChipLinuxAppInit(mLinuxArgs.argc(), const_cast(mLinuxArgs.argv())) != 0) + if (!initialized) { - service_app_exit(); - return; + mLinuxArgs.Parse(mArgc > 0 ? mArgv[0] : nullptr, app_control); + if (ChipLinuxAppInit(mLinuxArgs.argc(), const_cast(mLinuxArgs.argv())) != 0) + { + service_app_exit(); + return; + } + + mLinuxThread = std::thread(ChipLinuxAppMainLoop); + initialized = true; } - - mLinuxThread = std::thread(ChipLinuxAppMainLoop); } diff --git a/examples/platform/tizen/TizenServiceAppMain.h b/examples/platform/tizen/TizenServiceAppMain.h index 92846c109e73a9..20f889e94a8b63 100644 --- a/examples/platform/tizen/TizenServiceAppMain.h +++ b/examples/platform/tizen/TizenServiceAppMain.h @@ -44,4 +44,5 @@ class TizenServiceAppMain char ** mArgv = nullptr; OptionsProxy mLinuxArgs; std::thread mLinuxThread; + bool initialized = false; }; diff --git a/examples/pump-app/cc13x2x7_26x2x7/main/AppTask.cpp b/examples/pump-app/cc13x2x7_26x2x7/main/AppTask.cpp index c6b05762d495e5..4aed41ba0cb718 100644 --- a/examples/pump-app/cc13x2x7_26x2x7/main/AppTask.cpp +++ b/examples/pump-app/cc13x2x7_26x2x7/main/AppTask.cpp @@ -379,8 +379,10 @@ void AppTask::DispatchEvent(AppEvent * aEvent) case AppEvent::kEventType_ButtonLeft: if (AppEvent::kAppEventButtonType_Clicked == aEvent->ButtonEvent.Type) { - // Post event for demonstration purposes - sAppTask.PostEvents(); + // Post event for demonstration purposes, we must ensure that the + // LogEvent is called in the right context which is the Matter mainloop + // thru ScheduleWork() + chip::DeviceLayer::PlatformMgr().ScheduleWork(sAppTask.PostEvents, reinterpret_cast(nullptr)); // Toggle BLE advertisements if (!ConnectivityMgr().IsBLEAdvertisingEnabled()) @@ -467,7 +469,7 @@ void AppTask::UpdateClusterState(void) void AppTask::UpdateCluster(intptr_t context) { EmberStatus status; - BitFlags pumpStatus; + BitMask pumpStatus; ChipLogProgress(NotSpecified, "Update Cluster State"); @@ -608,7 +610,7 @@ void AppTask::UpdateCluster(intptr_t context) } } -void AppTask::PostEvents() +void AppTask::PostEvents(intptr_t context) { // Example on posting events - here we post the general fault event on endpoints with PCC Server enabled for (auto endpoint : EnabledEndpointsWithServerCluster(PumpConfigurationAndControl::Id)) diff --git a/examples/pump-app/cc13x2x7_26x2x7/main/CHIPDeviceManager.cpp b/examples/pump-app/cc13x2x7_26x2x7/main/CHIPDeviceManager.cpp index 82b2b0b1ba5567..9c1894abc0bd80 100644 --- a/examples/pump-app/cc13x2x7_26x2x7/main/CHIPDeviceManager.cpp +++ b/examples/pump-app/cc13x2x7_26x2x7/main/CHIPDeviceManager.cpp @@ -64,28 +64,27 @@ CHIP_ERROR CHIPDeviceManager::Init(CHIPDeviceManagerCallbacks * cb) } // namespace DeviceManager } // namespace chip -void MatterPostAttributeChangeCallback(const chip::app::ConcreteAttributePath & attributePath, uint8_t mask, uint8_t type, - uint16_t size, uint8_t * value) +void MatterPostAttributeChangeCallback(const chip::app::ConcreteAttributePath & attributePath, uint8_t type, uint16_t size, + uint8_t * value) { chip::DeviceManager::CHIPDeviceManagerCallbacks * cb = chip::DeviceManager::CHIPDeviceManager::GetInstance().GetCHIPDeviceManagerCallbacks(); if (cb != nullptr) { - cb->PostAttributeChangeCallback(attributePath.mEndpointId, attributePath.mClusterId, attributePath.mAttributeId, mask, type, - size, value); + cb->PostAttributeChangeCallback(attributePath.mEndpointId, attributePath.mClusterId, attributePath.mAttributeId, type, size, + value); } } chip::Protocols::InteractionModel::Status MatterPreAttributeChangeCallback(const chip::app::ConcreteAttributePath & attributePath, - uint8_t mask, uint8_t type, uint16_t size, - uint8_t * value) + uint8_t type, uint16_t size, uint8_t * value) { chip::DeviceManager::CHIPDeviceManagerCallbacks * cb = chip::DeviceManager::CHIPDeviceManager::GetInstance().GetCHIPDeviceManagerCallbacks(); if (cb != nullptr) { - return cb->PreAttributeChangeCallback(attributePath.mEndpointId, attributePath.mClusterId, attributePath.mAttributeId, mask, - type, size, value); + return cb->PreAttributeChangeCallback(attributePath.mEndpointId, attributePath.mClusterId, attributePath.mAttributeId, type, + size, value); } return chip::Protocols::InteractionModel::Status::Success; diff --git a/examples/pump-app/cc13x2x7_26x2x7/main/DeviceCallbacks.cpp b/examples/pump-app/cc13x2x7_26x2x7/main/DeviceCallbacks.cpp index b08e55033b74a6..f29ce063f5c8e4 100644 --- a/examples/pump-app/cc13x2x7_26x2x7/main/DeviceCallbacks.cpp +++ b/examples/pump-app/cc13x2x7_26x2x7/main/DeviceCallbacks.cpp @@ -73,8 +73,7 @@ void DeviceCallbacks::DeviceEventCallback(const ChipDeviceEvent * event, intptr_ break; case DeviceEventType::kCommissioningComplete: - PLAT_LOG("Commissioning complete (%x,%d)", event->CommissioningComplete.PeerNodeId, - event->CommissioningComplete.PeerFabricIndex); + PLAT_LOG("Commissioning complete for fabric 0x%x", event->CommissioningComplete.fabricIndex); break; case DeviceEventType::kOperationalNetworkEnabled: @@ -106,8 +105,8 @@ void DeviceCallbacks::DeviceEventCallback(const ChipDeviceEvent * event, intptr_ chip::Protocols::InteractionModel::Status DeviceCallbacks::PreAttributeChangeCallback(chip::EndpointId endpointId, chip::ClusterId clusterId, - chip::AttributeId attributeId, uint8_t mask, - uint8_t type, uint16_t size, uint8_t * value) + chip::AttributeId attributeId, uint8_t type, + uint16_t size, uint8_t * value) { PLAT_LOG("PreAttributeChangeCallback - Cluster ID: '0x%04x', EndPoint ID: '0x%02x', Attribute ID: '0x%04x'", clusterId, endpointId, attributeId); @@ -131,8 +130,8 @@ chip::Protocols::InteractionModel::Status DeviceCallbacks::PreAttributeChangeCal return chip::Protocols::InteractionModel::Status::Success; } -void DeviceCallbacks::PostAttributeChangeCallback(EndpointId endpointId, ClusterId clusterId, AttributeId attributeId, uint8_t mask, - uint8_t type, uint16_t size, uint8_t * value) +void DeviceCallbacks::PostAttributeChangeCallback(EndpointId endpointId, ClusterId clusterId, AttributeId attributeId, uint8_t type, + uint16_t size, uint8_t * value) { PLAT_LOG("PostAttributeChangeCallback - Cluster ID: '0x%04x', EndPoint ID: '0x%02x', Attribute ID: '0x%04x'", clusterId, endpointId, attributeId); diff --git a/examples/pump-app/cc13x2x7_26x2x7/main/include/AppTask.h b/examples/pump-app/cc13x2x7_26x2x7/main/include/AppTask.h index 9e0d3e84d7071a..7fd3f38ff6f0d5 100644 --- a/examples/pump-app/cc13x2x7_26x2x7/main/include/AppTask.h +++ b/examples/pump-app/cc13x2x7_26x2x7/main/include/AppTask.h @@ -64,7 +64,7 @@ class AppTask static void ButtonLeftEventHandler(Button_Handle handle, Button_EventMask events); static void ButtonRightEventHandler(Button_Handle handle, Button_EventMask events); static void TimerEventHandler(void * p_context); - static void PostEvents(); + static void PostEvents(intptr_t context); enum Function_t { diff --git a/examples/pump-app/cc13x2x7_26x2x7/main/include/CHIPDeviceManager.h b/examples/pump-app/cc13x2x7_26x2x7/main/include/CHIPDeviceManager.h index 343f10d68a62b2..01703fe335b6af 100644 --- a/examples/pump-app/cc13x2x7_26x2x7/main/include/CHIPDeviceManager.h +++ b/examples/pump-app/cc13x2x7_26x2x7/main/include/CHIPDeviceManager.h @@ -72,7 +72,7 @@ class DLL_EXPORT CHIPDeviceManagerCallbacks * @param value pointer to the new value */ virtual void PostAttributeChangeCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, chip::AttributeId attributeId, - uint8_t mask, uint8_t type, uint16_t size, uint8_t * value) + uint8_t type, uint16_t size, uint8_t * value) {} /** * @brief @@ -91,8 +91,8 @@ class DLL_EXPORT CHIPDeviceManagerCallbacks */ virtual chip::Protocols::InteractionModel::Status PreAttributeChangeCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, - chip::AttributeId attributeId, uint8_t mask, - uint8_t type, uint16_t size, uint8_t * value) + chip::AttributeId attributeId, uint8_t type, + uint16_t size, uint8_t * value) { return chip::Protocols::InteractionModel::Status::Success; } diff --git a/examples/pump-app/cc13x2x7_26x2x7/main/include/DeviceCallbacks.h b/examples/pump-app/cc13x2x7_26x2x7/main/include/DeviceCallbacks.h index 1fab37b71313a3..c200460d0b46c6 100644 --- a/examples/pump-app/cc13x2x7_26x2x7/main/include/DeviceCallbacks.h +++ b/examples/pump-app/cc13x2x7_26x2x7/main/include/DeviceCallbacks.h @@ -35,10 +35,10 @@ class DeviceCallbacks : public chip::DeviceManager::CHIPDeviceManagerCallbacks virtual void DeviceEventCallback(const chip::DeviceLayer::ChipDeviceEvent * event, intptr_t arg); virtual chip::Protocols::InteractionModel::Status PreAttributeChangeCallback(chip::EndpointId endpointId, chip::ClusterId clusterId, - chip::AttributeId attributeId, uint8_t mask, - uint8_t type, uint16_t size, uint8_t * value); + chip::AttributeId attributeId, uint8_t type, + uint16_t size, uint8_t * value); virtual void PostAttributeChangeCallback(chip::EndpointId endpointId, chip::ClusterId clusterId, chip::AttributeId attributeId, - uint8_t mask, uint8_t type, uint16_t size, uint8_t * value); + uint8_t type, uint16_t size, uint8_t * value); private: void OnInternetConnectivityChange(const chip::DeviceLayer::ChipDeviceEvent * event); diff --git a/examples/pump-app/nrfconnect/main/AppTask.cpp b/examples/pump-app/nrfconnect/main/AppTask.cpp index abb9f8f2b65857..b101418cad4ebf 100644 --- a/examples/pump-app/nrfconnect/main/AppTask.cpp +++ b/examples/pump-app/nrfconnect/main/AppTask.cpp @@ -22,6 +22,7 @@ #include "PumpManager.h" #include "ThreadUtil.h" +#include #include #include #include @@ -41,8 +42,8 @@ #endif #include -#include -#include +#include +#include using namespace ::chip; using namespace ::chip::app::Clusters; @@ -73,6 +74,8 @@ bool sIsThreadProvisioned = false; bool sIsThreadEnabled = false; bool sHaveBLEConnections = false; +chip::DeviceLayer::DeviceInfoProviderImpl gExampleDeviceInfoProvider; + } // namespace AppTask AppTask::sAppTask; @@ -141,10 +144,7 @@ CHIP_ERROR AppTask::Init() #ifdef CONFIG_MCUMGR_SMP_BT // Initialize DFU over SMP GetDFUOverSMP().Init(RequestSMPAdvertisingStart); -#ifndef CONFIG_CHIP_OTA_REQUESTOR - // When OTA Requestor is enabled, it is responsible for confirming new images. GetDFUOverSMP().ConfirmNewImage(); -#endif #endif // Initialize CHIP server @@ -153,9 +153,10 @@ CHIP_ERROR AppTask::Init() (void) initParams.InitializeStaticResourcesBeforeServerInit(); ReturnErrorOnFailure(chip::Server::GetInstance().Init(initParams)); -#if CONFIG_CHIP_OTA_REQUESTOR - InitBasicOTARequestor(); -#endif + + gExampleDeviceInfoProvider.SetStorageDelegate(&Server::GetInstance().GetPersistentStorage()); + chip::DeviceLayer::SetDeviceInfoProvider(&gExampleDeviceInfoProvider); + ConfigurationMgr().LogDeviceConfig(); PrintOnboardingCodes(chip::RendezvousInformationFlags(chip::RendezvousInformationFlag::kBLE)); @@ -467,6 +468,14 @@ void AppTask::ChipEventHandler(const ChipDeviceEvent * event, intptr_t /* arg */ sIsThreadEnabled = ConnectivityMgr().IsThreadEnabled(); UpdateStatusLED(); break; + case DeviceEventType::kThreadConnectivityChange: +#if CONFIG_CHIP_OTA_REQUESTOR + if (event->ThreadConnectivityChange.Result == kConnectivity_Established) + { + InitBasicOTARequestor(); + } +#endif + break; default: break; } diff --git a/examples/pump-app/nrfconnect/main/PumpManager.cpp b/examples/pump-app/nrfconnect/main/PumpManager.cpp index 0e13b861c23eca..e7c0b6240c554b 100644 --- a/examples/pump-app/nrfconnect/main/PumpManager.cpp +++ b/examples/pump-app/nrfconnect/main/PumpManager.cpp @@ -22,8 +22,8 @@ #include "AppConfig.h" #include "AppTask.h" -#include -#include +#include +#include LOG_MODULE_DECLARE(app, CONFIG_MATTER_LOG_LEVEL); diff --git a/examples/pump-app/nrfconnect/main/main.cpp b/examples/pump-app/nrfconnect/main/main.cpp index 1867a549b5b005..a20f86082131a4 100644 --- a/examples/pump-app/nrfconnect/main/main.cpp +++ b/examples/pump-app/nrfconnect/main/main.cpp @@ -19,7 +19,7 @@ #include "AppTask.h" -#include +#include LOG_MODULE_REGISTER(app, CONFIG_MATTER_LOG_LEVEL); diff --git a/examples/pump-app/pump-common/pump-app.matter b/examples/pump-app/pump-common/pump-app.matter index 2f223d56cc141c..f9f71aafd60633 100644 --- a/examples/pump-app/pump-common/pump-app.matter +++ b/examples/pump-app/pump-common/pump-app.matter @@ -1,11 +1,6 @@ // This IDL was generated automatically by ZAP. // It is for view/code review purposes only. -struct LabelStruct { - char_string<16> label = 0; - char_string<16> value = 1; -} - server cluster AccessControl = 31 { enum AuthMode : ENUM8 { kPase = 1; @@ -67,6 +62,8 @@ server cluster AccessControl = 31 { readonly attribute int16u subjectsPerAccessControlEntry = 2; readonly attribute int16u targetsPerAccessControlEntry = 3; readonly attribute int16u accessControlEntriesPerFabric = 4; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -88,6 +85,9 @@ server cluster AdministratorCommissioning = 60 { readonly attribute int8u windowStatus = 0; readonly attribute fabric_idx adminFabricIndex = 1; readonly attribute int16u adminVendorId = 2; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -144,10 +144,27 @@ server cluster Basic = 40 { readonly attribute long_char_string<256> productURL = 13; readonly attribute char_string<64> productLabel = 14; readonly attribute char_string<32> serialNumber = 15; - attribute access(write: manage) boolean localConfigDisabled = 16; - readonly attribute boolean reachable = 17; - readonly attribute char_string<32> uniqueID = 18; readonly attribute CapabilityMinimaStruct capabilityMinima = 19; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster Binding = 30 { + struct TargetStruct { + optional node_id node = 1; + optional group_id group = 2; + optional endpoint_no endpoint = 3; + optional cluster_id cluster = 4; + fabric_idx fabricIndex = 254; + } + + attribute TargetStruct binding[] = 0; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; } @@ -162,60 +179,9 @@ server cluster Descriptor = 29 { readonly attribute CLUSTER_ID serverList[] = 1; readonly attribute CLUSTER_ID clientList[] = 2; readonly attribute ENDPOINT_NO partsList[] = 3; - readonly attribute bitmap32 featureMap = 65532; - readonly attribute int16u clusterRevision = 65533; -} - -server cluster DiagnosticLogs = 50 { - enum LogsIntent : ENUM8 { - kEndUserSupport = 0; - kNetworkDiag = 1; - kCrashLogs = 2; - } - - enum LogsStatus : ENUM8 { - kSuccess = 0; - kExhausted = 1; - kNoLogs = 2; - kBusy = 3; - kDenied = 4; - } - - enum LogsTransferProtocol : ENUM8 { - kResponsePayload = 0; - kBdx = 1; - } - - readonly attribute bitmap32 featureMap = 65532; - readonly attribute int16u clusterRevision = 65533; - - request struct RetrieveLogsRequestRequest { - LogsIntent intent = 0; - LogsTransferProtocol requestedProtocol = 1; - OCTET_STRING transferFileDesignator = 2; - } - - response struct RetrieveLogsResponse = 1 { - LogsStatus status = 0; - OCTET_STRING content = 1; - epoch_s timeStamp = 2; - INT32U timeSinceBoot = 3; - } - - command RetrieveLogsRequest(RetrieveLogsRequestRequest): RetrieveLogsResponse = 0; -} - -server cluster FixedLabel = 64 { - readonly attribute LabelStruct labelList[] = 0; - readonly attribute bitmap32 featureMap = 65532; - readonly attribute int16u clusterRevision = 65533; -} - -client cluster FlowMeasurement = 1028 { - readonly attribute nullable int16u measuredValue = 0; - readonly attribute nullable int16u minMeasuredValue = 1; - readonly attribute nullable int16u maxMeasuredValue = 2; - readonly attribute int16u tolerance = 3; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; } @@ -225,6 +191,9 @@ server cluster FlowMeasurement = 1028 { readonly attribute nullable int16u minMeasuredValue = 1; readonly attribute nullable int16u maxMeasuredValue = 2; readonly attribute int16u tolerance = 3; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; } @@ -253,6 +222,9 @@ server cluster GeneralCommissioning = 48 { readonly attribute RegulatoryLocationType regulatoryConfig = 2; readonly attribute RegulatoryLocationType locationCapability = 3; readonly attribute boolean supportsConcurrentConnection = 4; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -369,14 +341,19 @@ server cluster GeneralDiagnostics = 51 { readonly attribute NetworkInterfaceType networkInterfaces[] = 0; readonly attribute int16u rebootCount = 1; - readonly attribute int64u upTime = 2; - readonly attribute int32u totalOperationalHours = 3; - readonly attribute enum8 bootReasons = 4; - readonly attribute ENUM8 activeHardwareFaults[] = 5; - readonly attribute ENUM8 activeRadioFaults[] = 6; - readonly attribute ENUM8 activeNetworkFaults[] = 7; + readonly attribute boolean testEventTriggersEnabled = 8; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + + request struct TestEventTriggerRequest { + OCTET_STRING enableKey = 0; + INT64U eventTrigger = 1; + } + + command TestEventTrigger(TestEventTriggerRequest): DefaultSuccess = 0; } server cluster GroupKeyManagement = 63 { @@ -413,6 +390,9 @@ server cluster GroupKeyManagement = 63 { readonly attribute GroupInfoMapStruct groupTable[] = 1; readonly attribute int16u maxGroupsPerFabric = 2; readonly attribute int16u maxGroupKeysPerFabric = 3; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -446,62 +426,6 @@ server cluster GroupKeyManagement = 63 { command access(invoke: administer) KeySetReadAllIndices(KeySetReadAllIndicesRequest): KeySetReadAllIndicesResponse = 4; } -server cluster Groups = 4 { - readonly attribute bitmap8 nameSupport = 0; - readonly attribute bitmap32 featureMap = 65532; - readonly attribute int16u clusterRevision = 65533; - - request struct AddGroupRequest { - group_id groupId = 0; - CHAR_STRING groupName = 1; - } - - request struct ViewGroupRequest { - group_id groupId = 0; - } - - request struct GetGroupMembershipRequest { - group_id groupList[] = 0; - } - - request struct RemoveGroupRequest { - group_id groupId = 0; - } - - request struct AddGroupIfIdentifyingRequest { - group_id groupId = 0; - CHAR_STRING groupName = 1; - } - - response struct AddGroupResponse = 0 { - ENUM8 status = 0; - group_id groupId = 1; - } - - response struct ViewGroupResponse = 1 { - ENUM8 status = 0; - group_id groupId = 1; - CHAR_STRING groupName = 2; - } - - response struct GetGroupMembershipResponse = 2 { - nullable INT8U capacity = 0; - group_id groupList[] = 1; - } - - response struct RemoveGroupResponse = 3 { - ENUM8 status = 0; - group_id groupId = 1; - } - - command access(invoke: manage) AddGroup(AddGroupRequest): AddGroupResponse = 0; - command ViewGroup(ViewGroupRequest): ViewGroupResponse = 1; - command GetGroupMembership(GetGroupMembershipRequest): GetGroupMembershipResponse = 2; - command access(invoke: manage) RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3; - command access(invoke: manage) RemoveAllGroups(): DefaultSuccess = 4; - command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5; -} - server cluster Identify = 3 { enum IdentifyEffectIdentifier : ENUM8 { kBlink = 0; @@ -527,6 +451,9 @@ server cluster Identify = 3 { attribute int16u identifyTime = 0; readonly attribute enum8 identifyType = 1; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -534,13 +461,7 @@ server cluster Identify = 3 { INT16U identifyTime = 0; } - request struct TriggerEffectRequest { - IdentifyEffectIdentifier effectIdentifier = 0; - IdentifyEffectVariant effectVariant = 1; - } - command access(invoke: manage) Identify(IdentifyRequest): DefaultSuccess = 0; - command access(invoke: manage) TriggerEffect(TriggerEffectRequest): DefaultSuccess = 64; } server cluster LevelControl = 8 { @@ -561,19 +482,13 @@ server cluster LevelControl = 8 { } readonly attribute int8u currentLevel = 0; - readonly attribute int16u remainingTime = 1; readonly attribute int8u minLevel = 2; readonly attribute int8u maxLevel = 3; - readonly attribute int16u currentFrequency = 4; - readonly attribute int16u minFrequency = 5; - readonly attribute int16u maxFrequency = 6; attribute bitmap8 options = 15; - attribute int16u onOffTransitionTime = 16; attribute nullable int8u onLevel = 17; - attribute nullable int16u onTransitionTime = 18; - attribute nullable int16u offTransitionTime = 19; - attribute nullable int8u defaultMoveRate = 20; - attribute access(write: manage) nullable int8u startUpCurrentLevel = 16384; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -630,13 +545,6 @@ server cluster LevelControl = 8 { command StopWithOnOff(): DefaultSuccess = 7; } -server cluster LocalizationConfiguration = 43 { - attribute char_string<35> activeLocale = 0; - readonly attribute CHAR_STRING supportedLocales[] = 1; - readonly attribute bitmap32 featureMap = 65532; - readonly attribute int16u clusterRevision = 65533; -} - server cluster NetworkCommissioning = 49 { enum NetworkCommissioningStatus : ENUM8 { kSuccess = 0; @@ -709,6 +617,9 @@ server cluster NetworkCommissioning = 49 { readonly attribute access(read: administer) nullable NetworkCommissioningStatus lastNetworkingStatus = 5; readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6; readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -717,12 +628,6 @@ server cluster NetworkCommissioning = 49 { optional INT64U breadcrumb = 1; } - request struct AddOrUpdateWiFiNetworkRequest { - OCTET_STRING ssid = 0; - OCTET_STRING credentials = 1; - optional INT64U breadcrumb = 2; - } - request struct AddOrUpdateThreadNetworkRequest { OCTET_STRING operationalDataset = 0; optional INT64U breadcrumb = 1; @@ -764,7 +669,6 @@ server cluster NetworkCommissioning = 49 { } command access(invoke: administer) ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; - command access(invoke: administer) AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; command access(invoke: administer) AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; command access(invoke: administer) RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; command access(invoke: administer) ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; @@ -862,6 +766,12 @@ server cluster OtaSoftwareUpdateRequestor = 42 { kDelayedOnUserConsent = 8; } + struct ProviderLocation { + node_id providerNodeID = 1; + endpoint_no endpoint = 2; + fabric_idx fabricIndex = 254; + } + info event StateTransition = 0 { OTAUpdateStateEnum previousState = 0; OTAUpdateStateEnum newState = 1; @@ -881,9 +791,13 @@ server cluster OtaSoftwareUpdateRequestor = 42 { nullable INT64S platformCode = 3; } + attribute ProviderLocation defaultOtaProviders[] = 0; readonly attribute boolean updatePossible = 1; readonly attribute OTAUpdateStateEnum updateState = 2; readonly attribute nullable int8u updateStateProgress = 3; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -936,30 +850,15 @@ server cluster OnOff = 6 { } readonly attribute boolean onOff = 0; - readonly attribute boolean globalSceneControl = 16384; - attribute int16u onTime = 16385; - attribute int16u offWaitTime = 16386; - attribute access(write: manage) nullable OnOffStartUpOnOff startUpOnOff = 16387; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; - request struct OffWithEffectRequest { - OnOffEffectIdentifier effectId = 0; - OnOffDelayedAllOffEffectVariant effectVariant = 1; - } - - request struct OnWithTimedOffRequest { - OnOffControl onOffControl = 0; - int16u onTime = 1; - int16u offWaitTime = 2; - } - command Off(): DefaultSuccess = 0; command On(): DefaultSuccess = 1; command Toggle(): DefaultSuccess = 2; - command OffWithEffect(OffWithEffectRequest): DefaultSuccess = 64; - command OnWithRecallGlobalScene(): DefaultSuccess = 65; - command OnWithTimedOff(OnWithTimedOffRequest): DefaultSuccess = 66; } server cluster OperationalCredentials = 62 { @@ -970,6 +869,7 @@ server cluster OperationalCredentials = 62 { kInvalidNOC = 3; kMissingCsr = 4; kTableFull = 5; + kInvalidAdminSubject = 6; kInsufficientPrivilege = 8; kFabricConflict = 9; kLabelConflict = 10; @@ -997,6 +897,9 @@ server cluster OperationalCredentials = 62 { readonly attribute int8u commissionedFabrics = 3; readonly attribute OCTET_STRING trustedRootCertificates[] = 4; readonly attribute fabric_idx currentFabricIndex = 5; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -1010,13 +913,14 @@ server cluster OperationalCredentials = 62 { request struct CSRRequestRequest { OCTET_STRING CSRNonce = 0; + optional boolean isForUpdateNOC = 1; } request struct AddNOCRequest { OCTET_STRING NOCValue = 0; optional OCTET_STRING ICACValue = 1; OCTET_STRING IPKValue = 2; - NODE_ID caseAdminNode = 3; + Int64u caseAdminSubject = 3; VENDOR_ID adminVendorId = 4; } @@ -1037,10 +941,6 @@ server cluster OperationalCredentials = 62 { OCTET_STRING rootCertificate = 0; } - request struct RemoveTrustedRootCertificateRequest { - OCTET_STRING trustedRootIdentifier = 0; - } - response struct AttestationResponse = 1 { OCTET_STRING attestationElements = 0; OCTET_STRING signature = 1; @@ -1069,25 +969,6 @@ server cluster OperationalCredentials = 62 { command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; -} - -client cluster PressureMeasurement = 1027 { - bitmap PressureFeature : BITMAP32 { - kExt = 0x1; - } - - readonly attribute nullable int16s measuredValue = 0; - readonly attribute nullable int16s minMeasuredValue = 1; - readonly attribute nullable int16s maxMeasuredValue = 2; - readonly attribute int16u tolerance = 3; - readonly attribute nullable int16s scaledValue = 16; - readonly attribute nullable int16s minScaledValue = 17; - readonly attribute nullable int16s maxScaledValue = 18; - readonly attribute int16u scaledTolerance = 19; - readonly attribute int8s scale = 20; - readonly attribute bitmap32 featureMap = 65532; - readonly attribute int16u clusterRevision = 65533; } server cluster PressureMeasurement = 1027 { @@ -1104,6 +985,9 @@ server cluster PressureMeasurement = 1027 { readonly attribute nullable int16s maxScaledValue = 18; readonly attribute int16u scaledTolerance = 19; readonly attribute int8s scale = 20; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; } @@ -1211,146 +1095,9 @@ server cluster PumpConfigurationAndControl = 512 { attribute access(write: manage) nullable int32u lifetimeEnergyConsumed = 23; attribute access(write: manage) PumpOperationMode operationMode = 32; attribute access(write: manage) PumpControlMode controlMode = 33; - readonly attribute bitmap32 featureMap = 65532; - readonly attribute int16u clusterRevision = 65533; -} - -server cluster Scenes = 5 { - bitmap ScenesCopyMode : BITMAP8 { - kCopyAllScenes = 0x1; - } - - struct ExtensionFieldSet { - cluster_id clusterId = 0; - AttributeValuePair attributeValueList[] = 1; - } - - struct AttributeValuePair { - optional attrib_id attributeId = 0; - int8u attributeValue[] = 1; - } - - readonly attribute int8u sceneCount = 0; - readonly attribute int8u currentScene = 1; - readonly attribute group_id currentGroup = 2; - readonly attribute boolean sceneValid = 3; - readonly attribute bitmap8 nameSupport = 4; - readonly attribute bitmap32 featureMap = 65532; - readonly attribute int16u clusterRevision = 65533; - - request struct AddSceneRequest { - group_id groupId = 0; - INT8U sceneId = 1; - INT16U transitionTime = 2; - CHAR_STRING sceneName = 3; - ExtensionFieldSet extensionFieldSets[] = 4; - } - - request struct ViewSceneRequest { - group_id groupId = 0; - INT8U sceneId = 1; - } - - request struct RemoveSceneRequest { - group_id groupId = 0; - INT8U sceneId = 1; - } - - request struct RemoveAllScenesRequest { - group_id groupId = 0; - } - - request struct StoreSceneRequest { - group_id groupId = 0; - INT8U sceneId = 1; - } - - request struct RecallSceneRequest { - group_id groupId = 0; - INT8U sceneId = 1; - optional nullable INT16U transitionTime = 2; - } - - request struct GetSceneMembershipRequest { - group_id groupId = 0; - } - - response struct AddSceneResponse = 0 { - ENUM8 status = 0; - group_id groupId = 1; - INT8U sceneId = 2; - } - - response struct ViewSceneResponse = 1 { - ENUM8 status = 0; - group_id groupId = 1; - INT8U sceneId = 2; - optional INT16U transitionTime = 3; - optional CHAR_STRING sceneName = 4; - optional ExtensionFieldSet extensionFieldSets[] = 5; - } - - response struct RemoveSceneResponse = 2 { - ENUM8 status = 0; - group_id groupId = 1; - INT8U sceneId = 2; - } - - response struct RemoveAllScenesResponse = 3 { - ENUM8 status = 0; - group_id groupId = 1; - } - - response struct StoreSceneResponse = 4 { - ENUM8 status = 0; - group_id groupId = 1; - INT8U sceneId = 2; - } - - response struct GetSceneMembershipResponse = 6 { - ENUM8 status = 0; - nullable INT8U capacity = 1; - group_id groupId = 2; - optional INT8U sceneList[] = 3; - } - - command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0; - command ViewScene(ViewSceneRequest): ViewSceneResponse = 1; - command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2; - command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3; - command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4; - command RecallScene(RecallSceneRequest): DefaultSuccess = 5; - command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6; -} - -server cluster SoftwareDiagnostics = 52 { - struct ThreadMetrics { - int64u id = 0; - char_string<8> name = 1; - int32u stackFreeCurrent = 2; - int32u stackFreeMinimum = 3; - int32u stackSize = 4; - } - - info event SoftwareFault = 0 { - SoftwareFaultStruct softwareFault = 0; - } - - readonly attribute ThreadMetrics threadMetrics[] = 0; - readonly attribute int64u currentHeapFree = 1; - readonly attribute int64u currentHeapUsed = 2; - readonly attribute int64u currentHeapHighWatermark = 3; - readonly attribute bitmap32 featureMap = 65532; - readonly attribute int16u clusterRevision = 65533; - - command ResetWatermarks(): DefaultSuccess = 0; -} - -client cluster TemperatureMeasurement = 1026 { - readonly attribute nullable int16s measuredValue = 0; - readonly attribute nullable int16s minMeasuredValue = 1; - readonly attribute nullable int16s maxMeasuredValue = 2; - readonly attribute int16u tolerance = 3; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; } @@ -1360,6 +1107,9 @@ server cluster TemperatureMeasurement = 1026 { readonly attribute nullable int16s minMeasuredValue = 1; readonly attribute nullable int16s maxMeasuredValue = 2; readonly attribute int16u tolerance = 3; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; } @@ -1449,156 +1199,43 @@ server cluster ThreadNetworkDiagnostics = 53 { } readonly attribute nullable int16u channel = 0; - readonly attribute nullable enum8 routingRole = 1; + readonly attribute nullable RoutingRole routingRole = 1; readonly attribute nullable char_string<16> networkName = 2; readonly attribute nullable int16u panId = 3; readonly attribute nullable int64u extendedPanId = 4; readonly attribute nullable octet_string<17> meshLocalPrefix = 5; - readonly attribute int64u overrunCount = 6; readonly attribute NeighborTable neighborTableList[] = 7; readonly attribute RouteTable routeTableList[] = 8; - readonly attribute int32u partitionId = 9; - readonly attribute int8u weighting = 10; - readonly attribute int8u dataVersion = 11; - readonly attribute int8u stableDataVersion = 12; - readonly attribute int8u leaderRouterId = 13; - readonly attribute int16u detachedRoleCount = 14; - readonly attribute int16u childRoleCount = 15; - readonly attribute int16u routerRoleCount = 16; - readonly attribute int16u leaderRoleCount = 17; - readonly attribute int16u attachAttemptCount = 18; - readonly attribute int16u partitionIdChangeCount = 19; - readonly attribute int16u betterPartitionAttachAttemptCount = 20; - readonly attribute int16u parentChangeCount = 21; - readonly attribute int32u txTotalCount = 22; - readonly attribute int32u txUnicastCount = 23; - readonly attribute int32u txBroadcastCount = 24; - readonly attribute int32u txAckRequestedCount = 25; - readonly attribute int32u txAckedCount = 26; - readonly attribute int32u txNoAckRequestedCount = 27; - readonly attribute int32u txDataCount = 28; - readonly attribute int32u txDataPollCount = 29; - readonly attribute int32u txBeaconCount = 30; - readonly attribute int32u txBeaconRequestCount = 31; - readonly attribute int32u txOtherCount = 32; - readonly attribute int32u txRetryCount = 33; - readonly attribute int32u txDirectMaxRetryExpiryCount = 34; - readonly attribute int32u txIndirectMaxRetryExpiryCount = 35; - readonly attribute int32u txErrCcaCount = 36; - readonly attribute int32u txErrAbortCount = 37; - readonly attribute int32u txErrBusyChannelCount = 38; - readonly attribute int32u rxTotalCount = 39; - readonly attribute int32u rxUnicastCount = 40; - readonly attribute int32u rxBroadcastCount = 41; - readonly attribute int32u rxDataCount = 42; - readonly attribute int32u rxDataPollCount = 43; - readonly attribute int32u rxBeaconCount = 44; - readonly attribute int32u rxBeaconRequestCount = 45; - readonly attribute int32u rxOtherCount = 46; - readonly attribute int32u rxAddressFilteredCount = 47; - readonly attribute int32u rxDestAddrFilteredCount = 48; - readonly attribute int32u rxDuplicatedCount = 49; - readonly attribute int32u rxErrNoFrameCount = 50; - readonly attribute int32u rxErrUnknownNeighborCount = 51; - readonly attribute int32u rxErrInvalidSrcAddrCount = 52; - readonly attribute int32u rxErrSecCount = 53; - readonly attribute int32u rxErrFcsCount = 54; - readonly attribute int32u rxErrOtherCount = 55; - readonly attribute int64u activeTimestamp = 56; - readonly attribute int64u pendingTimestamp = 57; - readonly attribute int32u delay = 58; - readonly attribute SecurityPolicy securityPolicy[] = 59; - readonly attribute octet_string<4> channelMask = 60; - readonly attribute OperationalDatasetComponents operationalDatasetComponents[] = 61; + readonly attribute nullable int32u partitionId = 9; + readonly attribute nullable int8u weighting = 10; + readonly attribute nullable int8u dataVersion = 11; + readonly attribute nullable int8u stableDataVersion = 12; + readonly attribute nullable int8u leaderRouterId = 13; + readonly attribute nullable SecurityPolicy securityPolicy = 59; + readonly attribute nullable octet_string<4> channelMask = 60; + readonly attribute nullable OperationalDatasetComponents operationalDatasetComponents = 61; readonly attribute NetworkFault activeNetworkFaultsList[] = 62; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; command ResetCounts(): DefaultSuccess = 0; } -server cluster TimeFormatLocalization = 44 { - enum CalendarType : ENUM8 { - kBuddhist = 0; - kChinese = 1; - kCoptic = 2; - kEthiopian = 3; - kGregorian = 4; - kHebrew = 5; - kIndian = 6; - kIslamic = 7; - kJapanese = 8; - kKorean = 9; - kPersian = 10; - kTaiwanese = 11; - } - - enum HourFormat : ENUM8 { - k12hr = 0; - k24hr = 1; - } - - attribute HourFormat hourFormat = 0; - attribute CalendarType activeCalendarType = 1; - readonly attribute CalendarType supportedCalendarTypes[] = 2; - readonly attribute bitmap32 featureMap = 65532; - readonly attribute int16u clusterRevision = 65533; -} - -server cluster UnitLocalization = 45 { - enum TempUnit : ENUM8 { - kFahrenheit = 0; - kCelsius = 1; - kKelvin = 2; - } - - bitmap UnitLocalizationFeature : BITMAP32 { - kTemperatureUnit = 0x1; - } - - attribute TempUnit temperatureUnit = 0; - readonly attribute bitmap32 featureMap = 65532; - readonly attribute int16u clusterRevision = 65533; -} - -server cluster UserLabel = 65 { - attribute access(write: manage) LabelStruct labelList[] = 0; - readonly attribute bitmap32 featureMap = 65532; - readonly attribute int16u clusterRevision = 65533; -} - - endpoint 0 { + device type pump = 22; binding cluster OtaSoftwareUpdateProvider; - server cluster Identify { - ram attribute identifyTime; - ram attribute identifyType; - ram attribute featureMap; - ram attribute clusterRevision default = 4; - } - - server cluster Groups { - ram attribute nameSupport; - ram attribute featureMap; - ram attribute clusterRevision default = 4; - } - - server cluster Scenes { - ram attribute sceneCount; - ram attribute currentScene; - ram attribute currentGroup; - ram attribute sceneValid; - ram attribute nameSupport; - ram attribute featureMap; - ram attribute clusterRevision default = 4; - } - server cluster Descriptor { callback attribute deviceList; callback attribute serverList; callback attribute clientList; callback attribute partsList; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; ram attribute featureMap; callback attribute clusterRevision default = 1; } @@ -1609,6 +1246,8 @@ endpoint 0 { callback attribute subjectsPerAccessControlEntry default = 4; callback attribute targetsPerAccessControlEntry default = 3; callback attribute accessControlEntriesPerFabric default = 3; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; callback attribute attributeList; ram attribute featureMap; ram attribute clusterRevision default = 1; @@ -1631,49 +1270,35 @@ endpoint 0 { callback attribute productURL; callback attribute productLabel; callback attribute serialNumber; - persist attribute localConfigDisabled; - ram attribute reachable default = 1; - callback attribute uniqueID; callback attribute capabilityMinima; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; ram attribute featureMap; ram attribute clusterRevision default = 1; } server cluster OtaSoftwareUpdateRequestor { + callback attribute defaultOtaProviders; ram attribute updatePossible default = 1; ram attribute updateState; ram attribute updateStateProgress; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; ram attribute featureMap; ram attribute clusterRevision default = 1; } - server cluster LocalizationConfiguration { - persist attribute activeLocale default = "en-US"; - callback attribute supportedLocales; - ram attribute featureMap; - ram attribute clusterRevision default = 1; - } - - server cluster TimeFormatLocalization { - persist attribute hourFormat; - persist attribute activeCalendarType; - callback attribute supportedCalendarTypes; - ram attribute featureMap; - ram attribute clusterRevision default = 1; - } - - server cluster UnitLocalization { - persist attribute temperatureUnit; - ram attribute featureMap default = 0x1; - ram attribute clusterRevision default = 1; - } - server cluster GeneralCommissioning { ram attribute breadcrumb; callback attribute basicCommissioningInfo; callback attribute regulatoryConfig; callback attribute locationCapability; callback attribute supportsConcurrentConnection default = 1; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; ram attribute featureMap default = 6; ram attribute clusterRevision default = 1; } @@ -1687,102 +1312,46 @@ endpoint 0 { ram attribute lastNetworkingStatus; ram attribute lastNetworkID; ram attribute lastConnectErrorValue; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; ram attribute featureMap default = 2; ram attribute clusterRevision default = 1; } - server cluster DiagnosticLogs { - ram attribute featureMap; - ram attribute clusterRevision default = 1; - } - server cluster GeneralDiagnostics { callback attribute networkInterfaces; callback attribute rebootCount; - callback attribute upTime; - callback attribute totalOperationalHours; - callback attribute bootReasons; - callback attribute activeHardwareFaults; - callback attribute activeRadioFaults; - callback attribute activeNetworkFaults; + callback attribute testEventTriggersEnabled; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; ram attribute featureMap; ram attribute clusterRevision default = 1; } - server cluster SoftwareDiagnostics { - callback attribute threadMetrics; - callback attribute currentHeapFree; - callback attribute currentHeapUsed; - callback attribute currentHeapHighWatermark; - ram attribute featureMap default = 1; - ram attribute clusterRevision default = 1; - } - server cluster ThreadNetworkDiagnostics { - ram attribute channel; - ram attribute routingRole; - ram attribute networkName; - ram attribute panId; - ram attribute extendedPanId; - ram attribute meshLocalPrefix; - ram attribute overrunCount; + callback attribute channel; + callback attribute routingRole; + callback attribute networkName; + callback attribute panId; + callback attribute extendedPanId; + callback attribute meshLocalPrefix; callback attribute neighborTableList; callback attribute routeTableList; - ram attribute partitionId; - ram attribute weighting; - ram attribute dataVersion; - ram attribute stableDataVersion; - ram attribute leaderRouterId; - ram attribute detachedRoleCount; - ram attribute childRoleCount; - ram attribute routerRoleCount; - ram attribute leaderRoleCount; - ram attribute attachAttemptCount; - ram attribute partitionIdChangeCount; - ram attribute betterPartitionAttachAttemptCount; - ram attribute parentChangeCount; - ram attribute txTotalCount; - ram attribute txUnicastCount; - ram attribute txBroadcastCount; - ram attribute txAckRequestedCount; - ram attribute txAckedCount; - ram attribute txNoAckRequestedCount; - ram attribute txDataCount; - ram attribute txDataPollCount; - ram attribute txBeaconCount; - ram attribute txBeaconRequestCount; - ram attribute txOtherCount; - ram attribute txRetryCount; - ram attribute txDirectMaxRetryExpiryCount; - ram attribute txIndirectMaxRetryExpiryCount; - ram attribute txErrCcaCount; - ram attribute txErrAbortCount; - ram attribute txErrBusyChannelCount; - ram attribute rxTotalCount; - ram attribute rxUnicastCount; - ram attribute rxBroadcastCount; - ram attribute rxDataCount; - ram attribute rxDataPollCount; - ram attribute rxBeaconCount; - ram attribute rxBeaconRequestCount; - ram attribute rxOtherCount; - ram attribute rxAddressFilteredCount; - ram attribute rxDestAddrFilteredCount; - ram attribute rxDuplicatedCount; - ram attribute rxErrNoFrameCount; - ram attribute rxErrUnknownNeighborCount; - ram attribute rxErrInvalidSrcAddrCount; - ram attribute rxErrSecCount; - ram attribute rxErrFcsCount; - ram attribute rxErrOtherCount; - ram attribute activeTimestamp; - ram attribute pendingTimestamp; - ram attribute delay; + callback attribute partitionId; + callback attribute weighting; + callback attribute dataVersion; + callback attribute stableDataVersion; + callback attribute leaderRouterId; callback attribute securityPolicy; - ram attribute channelMask; + callback attribute channelMask; callback attribute operationalDatasetComponents; callback attribute activeNetworkFaultsList; - ram attribute featureMap default = 0x000F; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; + ram attribute featureMap; ram attribute clusterRevision default = 1; } @@ -1790,7 +1359,10 @@ endpoint 0 { callback attribute windowStatus; callback attribute adminFabricIndex default = 1; callback attribute adminVendorId; - ram attribute featureMap; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; + ram attribute featureMap default = 1; ram attribute clusterRevision default = 1; } @@ -1801,6 +1373,9 @@ endpoint 0 { callback attribute commissionedFabrics; callback attribute trustedRootCertificates; callback attribute currentFabricIndex; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; ram attribute featureMap; ram attribute clusterRevision default = 1; } @@ -1810,55 +1385,46 @@ endpoint 0 { callback attribute groupTable; callback attribute maxGroupsPerFabric; callback attribute maxGroupKeysPerFabric; - ram attribute featureMap; - ram attribute clusterRevision default = 1; - } - - server cluster FixedLabel { - callback attribute labelList; - ram attribute featureMap; - ram attribute clusterRevision default = 1; - } - - server cluster UserLabel { - callback attribute labelList; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; ram attribute featureMap; ram attribute clusterRevision default = 1; } } - endpoint 1 { - binding cluster TemperatureMeasurement; - binding cluster PressureMeasurement; - binding cluster FlowMeasurement; + device type pump = 771; binding cluster OccupancySensing; + server cluster Identify { + ram attribute identifyTime; + ram attribute identifyType default = 0x2; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; + ram attribute featureMap; + ram attribute clusterRevision default = 2; + } + server cluster OnOff { ram attribute onOff; - ram attribute globalSceneControl default = 1; - ram attribute onTime; - ram attribute offWaitTime; - ram attribute startUpOnOff; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; ram attribute featureMap; ram attribute clusterRevision default = 4; } server cluster LevelControl { ram attribute currentLevel; - ram attribute remainingTime; ram attribute minLevel; - ram attribute maxLevel default = 0xFE; - ram attribute currentFrequency; - ram attribute minFrequency; - ram attribute maxFrequency; + ram attribute maxLevel default = 0xC8; ram attribute options; - ram attribute onOffTransitionTime; - ram attribute onLevel default = 0xFE; - ram attribute onTransitionTime; - ram attribute offTransitionTime; - ram attribute defaultMoveRate; - ram attribute startUpCurrentLevel; - ram attribute featureMap; + ram attribute onLevel; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; + ram attribute featureMap default = 1; ram attribute clusterRevision default = 5; } @@ -1867,10 +1433,22 @@ endpoint 1 { callback attribute serverList; callback attribute clientList; callback attribute partsList; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; ram attribute featureMap; callback attribute clusterRevision default = 1; } + server cluster Binding { + callback attribute binding; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + server cluster PumpConfigurationAndControl { ram attribute maxPressure; ram attribute maxSpeed; @@ -1895,6 +1473,9 @@ endpoint 1 { ram attribute lifetimeEnergyConsumed; ram attribute operationMode; ram attribute controlMode; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; ram attribute featureMap; ram attribute clusterRevision default = 3; } @@ -1904,6 +1485,9 @@ endpoint 1 { ram attribute minMeasuredValue default = 0x8000; ram attribute maxMeasuredValue default = 0x8000; ram attribute tolerance; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; ram attribute featureMap; ram attribute clusterRevision default = 4; } @@ -1918,6 +1502,9 @@ endpoint 1 { ram attribute maxScaledValue; ram attribute scaledTolerance; ram attribute scale; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; ram attribute featureMap; ram attribute clusterRevision default = 3; } @@ -1927,6 +1514,9 @@ endpoint 1 { ram attribute minMeasuredValue; ram attribute maxMeasuredValue; ram attribute tolerance; + callback attribute generatedCommandList; + callback attribute acceptedCommandList; + callback attribute attributeList; ram attribute featureMap; ram attribute clusterRevision default = 3; } diff --git a/examples/pump-app/pump-common/pump-app.zap b/examples/pump-app/pump-common/pump-app.zap index 7116895e54a480..6e2e2d7e2f2630 100644 --- a/examples/pump-app/pump-common/pump-app.zap +++ b/examples/pump-app/pump-common/pump-app.zap @@ -69,7 +69,7 @@ "mfgCode": null, "define": "IDENTIFY_CLUSTER", "side": "server", - "enabled": 1, + "enabled": 0, "commands": [], "attributes": [ { @@ -251,7 +251,7 @@ "mfgCode": null, "define": "GROUPS_CLUSTER", "side": "server", - "enabled": 1, + "enabled": 0, "commands": [ { "name": "AddGroupResponse", @@ -482,7 +482,7 @@ "mfgCode": null, "define": "SCENES_CLUSTER", "side": "server", - "enabled": 1, + "enabled": 0, "commands": [ { "name": "AddSceneResponse", @@ -858,7 +858,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -874,7 +874,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -890,7 +890,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -1072,7 +1072,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -1088,7 +1088,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -1471,7 +1471,7 @@ "mfgCode": null, "side": "server", "type": "boolean", - "included": 1, + "included": 0, "storageOption": "NVM", "singleton": 1, "bounded": 0, @@ -1487,7 +1487,7 @@ "mfgCode": null, "side": "server", "type": "boolean", - "included": 1, + "included": 0, "storageOption": "RAM", "singleton": 1, "bounded": 0, @@ -1503,7 +1503,7 @@ "mfgCode": null, "side": "server", "type": "char_string", - "included": 1, + "included": 0, "storageOption": "External", "singleton": 1, "bounded": 0, @@ -1535,7 +1535,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 1, "bounded": 0, @@ -1551,7 +1551,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 1, "bounded": 0, @@ -1567,7 +1567,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 1, "bounded": 0, @@ -1740,7 +1740,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -1804,7 +1804,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -1820,7 +1820,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -1836,7 +1836,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -1896,7 +1896,7 @@ "mfgCode": null, "define": "LOCALIZATION_CONFIGURATION_CLUSTER", "side": "server", - "enabled": 1, + "enabled": 0, "commands": [], "attributes": [ { @@ -2029,7 +2029,7 @@ "mfgCode": null, "define": "TIME_FORMAT_LOCALIZATION_CLUSTER", "side": "server", - "enabled": 1, + "enabled": 0, "commands": [], "attributes": [ { @@ -2178,7 +2178,7 @@ "mfgCode": null, "define": "UNIT_LOCALIZATION_CLUSTER", "side": "server", - "enabled": 1, + "enabled": 0, "commands": [], "attributes": [ { @@ -2467,7 +2467,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -2483,7 +2483,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -2499,7 +2499,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -2564,7 +2564,7 @@ "code": 2, "mfgCode": null, "source": "client", - "incoming": 1, + "incoming": 0, "outgoing": 0 }, { @@ -2803,7 +2803,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -2819,7 +2819,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -2835,7 +2835,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -2879,13 +2879,23 @@ } ] }, + { + "name": "Diagnostic Logs", + "code": 50, + "mfgCode": null, + "define": "DIAGNOSTIC_LOGS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [] + }, { "name": "Diagnostic Logs", "code": 50, "mfgCode": null, "define": "DIAGNOSTIC_LOGS_CLUSTER", "side": "server", - "enabled": 1, + "enabled": 0, "commands": [ { "name": "RetrieveLogsRequest", @@ -3037,7 +3047,16 @@ "define": "GENERAL_DIAGNOSTICS_CLUSTER", "side": "server", "enabled": 1, - "commands": [], + "commands": [ + { + "name": "TestEventTrigger", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], "attributes": [ { "name": "NetworkInterfaces", @@ -3077,7 +3096,7 @@ "mfgCode": null, "side": "server", "type": "int64u", - "included": 1, + "included": 0, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -3093,7 +3112,7 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, + "included": 0, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -3109,7 +3128,7 @@ "mfgCode": null, "side": "server", "type": "enum8", - "included": 1, + "included": 0, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -3125,7 +3144,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 1, + "included": 0, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -3141,7 +3160,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 1, + "included": 0, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -3157,7 +3176,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 1, + "included": 0, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -3167,13 +3186,29 @@ "maxInterval": 65534, "reportableChange": 0 }, + { + "name": "TestEventTriggersEnabled", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "false", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "GeneratedCommandList", "code": 65528, "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -3189,7 +3224,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -3205,7 +3240,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -3291,7 +3326,7 @@ "mfgCode": null, "define": "SOFTWARE_DIAGNOSTICS_CLUSTER", "side": "server", - "enabled": 1, + "enabled": 0, "commands": [], "attributes": [ { @@ -3492,7 +3527,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3506,9 +3541,9 @@ "code": 1, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "RoutingRole", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3524,7 +3559,7 @@ "side": "server", "type": "char_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", @@ -3540,7 +3575,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3556,7 +3591,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -3572,7 +3607,7 @@ "side": "server", "type": "octet_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3587,8 +3622,8 @@ "mfgCode": null, "side": "server", "type": "int64u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -3636,7 +3671,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3652,7 +3687,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3668,7 +3703,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3684,7 +3719,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3700,7 +3735,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3715,8 +3750,8 @@ "mfgCode": null, "side": "server", "type": "int16u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3731,8 +3766,8 @@ "mfgCode": null, "side": "server", "type": "int16u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3747,8 +3782,8 @@ "mfgCode": null, "side": "server", "type": "int16u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3763,8 +3798,8 @@ "mfgCode": null, "side": "server", "type": "int16u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3779,8 +3814,8 @@ "mfgCode": null, "side": "server", "type": "int16u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3795,8 +3830,8 @@ "mfgCode": null, "side": "server", "type": "int16u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3811,8 +3846,8 @@ "mfgCode": null, "side": "server", "type": "int16u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3827,8 +3862,8 @@ "mfgCode": null, "side": "server", "type": "int16u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3843,8 +3878,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3859,8 +3894,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3875,8 +3910,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3891,8 +3926,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3907,8 +3942,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3923,8 +3958,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3939,8 +3974,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3955,8 +3990,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3971,8 +4006,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3987,8 +4022,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4003,8 +4038,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4019,8 +4054,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4035,8 +4070,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4051,8 +4086,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4067,8 +4102,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4083,8 +4118,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4099,8 +4134,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4115,8 +4150,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4131,8 +4166,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4147,8 +4182,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4163,8 +4198,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4179,8 +4214,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4195,8 +4230,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4211,8 +4246,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4227,8 +4262,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4243,8 +4278,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4259,8 +4294,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4275,8 +4310,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4291,8 +4326,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4307,8 +4342,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4323,8 +4358,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4339,8 +4374,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4355,8 +4390,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4371,8 +4406,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4387,8 +4422,8 @@ "mfgCode": null, "side": "server", "type": "int64u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -4403,8 +4438,8 @@ "mfgCode": null, "side": "server", "type": "int64u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -4419,8 +4454,8 @@ "mfgCode": null, "side": "server", "type": "int32u", - "included": 1, - "storageOption": "RAM", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4434,7 +4469,7 @@ "code": 59, "mfgCode": null, "side": "server", - "type": "array", + "type": "SecurityPolicy", "included": 1, "storageOption": "External", "singleton": 0, @@ -4452,7 +4487,7 @@ "side": "server", "type": "octet_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4466,7 +4501,7 @@ "code": 61, "mfgCode": null, "side": "server", - "type": "array", + "type": "OperationalDatasetComponents", "included": 1, "storageOption": "External", "singleton": 0, @@ -4499,7 +4534,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -4515,7 +4550,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -4531,7 +4566,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -4551,7 +4586,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x000F", + "defaultValue": "0x0000", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -4706,7 +4741,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -4722,7 +4757,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -4738,7 +4773,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -4758,7 +4793,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -4853,14 +4888,6 @@ "source": "client", "incoming": 1, "outgoing": 1 - }, - { - "name": "RemoveTrustedRootCertificate", - "code": 12, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 } ], "attributes": [ @@ -5042,7 +5069,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -5058,7 +5085,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -5074,7 +5101,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -5290,7 +5317,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -5306,7 +5333,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -5322,7 +5349,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -5382,7 +5409,7 @@ "mfgCode": null, "define": "FIXED_LABEL_CLUSTER", "side": "server", - "enabled": 1, + "enabled": 0, "commands": [], "attributes": [ { @@ -5499,7 +5526,7 @@ "mfgCode": null, "define": "USER_LABEL_CLUSTER", "side": "server", - "enabled": 1, + "enabled": 0, "commands": [], "attributes": [ { @@ -5608,6 +5635,148 @@ "deviceTypeCode": 771, "deviceTypeProfileId": 2457, "clusters": [ + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "Identify", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [] + }, + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "identify time", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "identify type", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x2", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, { "name": "On/Off", "code": 6, @@ -5645,7 +5814,7 @@ "code": 64, "mfgCode": null, "source": "client", - "incoming": 1, + "incoming": 0, "outgoing": 0 }, { @@ -5653,7 +5822,7 @@ "code": 65, "mfgCode": null, "source": "client", - "incoming": 1, + "incoming": 0, "outgoing": 0 }, { @@ -5661,7 +5830,7 @@ "code": 66, "mfgCode": null, "source": "client", - "incoming": 1, + "incoming": 0, "outgoing": 0 } ], @@ -5715,7 +5884,7 @@ "mfgCode": null, "side": "server", "type": "boolean", - "included": 1, + "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, @@ -5731,7 +5900,7 @@ "mfgCode": null, "side": "server", "type": "int16u", - "included": 1, + "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, @@ -5747,7 +5916,7 @@ "mfgCode": null, "side": "server", "type": "int16u", - "included": 1, + "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, @@ -5763,7 +5932,7 @@ "mfgCode": null, "side": "server", "type": "OnOffStartUpOnOff", - "included": 1, + "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, @@ -5779,7 +5948,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -5795,7 +5964,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -5811,7 +5980,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -5978,7 +6147,7 @@ "mfgCode": null, "side": "server", "type": "int16u", - "included": 1, + "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, @@ -6014,7 +6183,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0xFE", + "defaultValue": "0xC8", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -6026,7 +6195,7 @@ "mfgCode": null, "side": "server", "type": "int16u", - "included": 1, + "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, @@ -6042,7 +6211,7 @@ "mfgCode": null, "side": "server", "type": "int16u", - "included": 1, + "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, @@ -6058,7 +6227,7 @@ "mfgCode": null, "side": "server", "type": "int16u", - "included": 1, + "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, @@ -6090,7 +6259,7 @@ "mfgCode": null, "side": "server", "type": "int16u", - "included": 1, + "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, @@ -6110,7 +6279,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0xFE", + "defaultValue": null, "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -6122,7 +6291,7 @@ "mfgCode": null, "side": "server", "type": "int16u", - "included": 1, + "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, @@ -6138,7 +6307,7 @@ "mfgCode": null, "side": "server", "type": "int16u", - "included": 1, + "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, @@ -6154,7 +6323,7 @@ "mfgCode": null, "side": "server", "type": "int8u", - "included": 1, + "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, @@ -6170,7 +6339,7 @@ "mfgCode": null, "side": "server", "type": "int8u", - "included": 1, + "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, @@ -6186,7 +6355,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -6202,7 +6371,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -6218,7 +6387,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -6238,7 +6407,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -6368,7 +6537,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -6384,7 +6553,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -6400,7 +6569,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -6444,6 +6613,123 @@ } ] }, + { + "name": "Binding", + "code": 30, + "mfgCode": null, + "define": "BINDING_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [], + "attributes": [] + }, + { + "name": "Binding", + "code": 30, + "mfgCode": null, + "define": "BINDING_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [], + "attributes": [ + { + "name": "Binding", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, { "name": "Pump Configuration and Control", "code": 512, @@ -6698,7 +6984,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, @@ -6714,7 +7000,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, @@ -6730,7 +7016,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, @@ -6854,7 +7140,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -6870,7 +7156,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -6886,7 +7172,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -6936,7 +7222,7 @@ "mfgCode": null, "define": "TEMP_MEASUREMENT_CLUSTER", "side": "client", - "enabled": 1, + "enabled": 0, "commands": [], "attributes": [ { @@ -7040,7 +7326,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, @@ -7052,7 +7338,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -7068,7 +7354,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -7084,7 +7370,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -7134,7 +7420,7 @@ "mfgCode": null, "define": "PRESSURE_MEASUREMENT_CLUSTER", "side": "client", - "enabled": 1, + "enabled": 0, "commands": [], "attributes": [ { @@ -7238,7 +7524,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, @@ -7302,7 +7588,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, @@ -7330,7 +7616,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -7346,7 +7632,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -7362,7 +7648,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -7412,7 +7698,7 @@ "mfgCode": null, "define": "FLOW_MEASUREMENT_CLUSTER", "side": "client", - "enabled": 1, + "enabled": 0, "commands": [], "attributes": [ { @@ -7516,7 +7802,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 0, "maxInterval": 65344, @@ -7528,7 +7814,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -7544,7 +7830,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -7560,7 +7846,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, diff --git a/examples/pump-controller-app/nrfconnect/main/AppTask.cpp b/examples/pump-controller-app/nrfconnect/main/AppTask.cpp index 923c9001f4389a..1a0aa8202bbdfd 100644 --- a/examples/pump-controller-app/nrfconnect/main/AppTask.cpp +++ b/examples/pump-controller-app/nrfconnect/main/AppTask.cpp @@ -22,6 +22,7 @@ #include "PumpManager.h" #include "ThreadUtil.h" +#include #include #include #include @@ -41,8 +42,8 @@ #endif #include -#include -#include +#include +#include using namespace ::chip; using namespace ::chip::app; @@ -70,6 +71,8 @@ bool sIsThreadProvisioned = false; bool sIsThreadEnabled = false; bool sHaveBLEConnections = false; +chip::DeviceLayer::DeviceInfoProviderImpl gExampleDeviceInfoProvider; + } // namespace AppTask AppTask::sAppTask; @@ -138,10 +141,7 @@ CHIP_ERROR AppTask::Init() #ifdef CONFIG_MCUMGR_SMP_BT // Initialize DFU over SMP GetDFUOverSMP().Init(RequestSMPAdvertisingStart); -#ifndef CONFIG_CHIP_OTA_REQUESTOR - // When OTA Requestor is enabled, it is responsible for confirming new images. GetDFUOverSMP().ConfirmNewImage(); -#endif #endif // Initialize CHIP server @@ -150,9 +150,9 @@ CHIP_ERROR AppTask::Init() (void) initParams.InitializeStaticResourcesBeforeServerInit(); ReturnErrorOnFailure(chip::Server::GetInstance().Init(initParams)); -#if CONFIG_CHIP_OTA_REQUESTOR - InitBasicOTARequestor(); -#endif + + gExampleDeviceInfoProvider.SetStorageDelegate(&Server::GetInstance().GetPersistentStorage()); + chip::DeviceLayer::SetDeviceInfoProvider(&gExampleDeviceInfoProvider); ConfigurationMgr().LogDeviceConfig(); PrintOnboardingCodes(chip::RendezvousInformationFlags(chip::RendezvousInformationFlag::kBLE)); @@ -464,6 +464,14 @@ void AppTask::ChipEventHandler(const ChipDeviceEvent * event, intptr_t /* arg */ sIsThreadEnabled = ConnectivityMgr().IsThreadEnabled(); UpdateStatusLED(); break; + case DeviceEventType::kThreadConnectivityChange: +#if CONFIG_CHIP_OTA_REQUESTOR + if (event->ThreadConnectivityChange.Result == kConnectivity_Established) + { + InitBasicOTARequestor(); + } +#endif + break; default: break; } diff --git a/examples/pump-controller-app/nrfconnect/main/PumpManager.cpp b/examples/pump-controller-app/nrfconnect/main/PumpManager.cpp index c61a2a4a56e4aa..a7f654baeeead6 100644 --- a/examples/pump-controller-app/nrfconnect/main/PumpManager.cpp +++ b/examples/pump-controller-app/nrfconnect/main/PumpManager.cpp @@ -22,8 +22,8 @@ #include "AppConfig.h" #include "AppTask.h" -#include -#include +#include +#include LOG_MODULE_DECLARE(app, CONFIG_MATTER_LOG_LEVEL); diff --git a/examples/pump-controller-app/nrfconnect/main/main.cpp b/examples/pump-controller-app/nrfconnect/main/main.cpp index 1867a549b5b005..a20f86082131a4 100644 --- a/examples/pump-controller-app/nrfconnect/main/main.cpp +++ b/examples/pump-controller-app/nrfconnect/main/main.cpp @@ -19,7 +19,7 @@ #include "AppTask.h" -#include +#include LOG_MODULE_REGISTER(app, CONFIG_MATTER_LOG_LEVEL); diff --git a/examples/pump-controller-app/pump-controller-common/pump-controller-app.matter b/examples/pump-controller-app/pump-controller-common/pump-controller-app.matter index 80bd05ca663bc1..bd4f0b6618d76a 100644 --- a/examples/pump-controller-app/pump-controller-common/pump-controller-app.matter +++ b/examples/pump-controller-app/pump-controller-common/pump-controller-app.matter @@ -367,11 +367,19 @@ server cluster GeneralDiagnostics = 51 { readonly attribute ENUM8 activeHardwareFaults[] = 5; readonly attribute ENUM8 activeRadioFaults[] = 6; readonly attribute ENUM8 activeNetworkFaults[] = 7; + readonly attribute boolean testEventTriggersEnabled = 8; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + + request struct TestEventTriggerRequest { + OCTET_STRING enableKey = 0; + INT64U eventTrigger = 1; + } + + command TestEventTrigger(TestEventTriggerRequest): DefaultSuccess = 0; } server cluster GroupKeyManagement = 63 { @@ -856,6 +864,7 @@ server cluster OperationalCredentials = 62 { kInvalidNOC = 3; kMissingCsr = 4; kTableFull = 5; + kInvalidAdminSubject = 6; kInsufficientPrivilege = 8; kFabricConflict = 9; kLabelConflict = 10; @@ -896,13 +905,14 @@ server cluster OperationalCredentials = 62 { request struct CSRRequestRequest { OCTET_STRING CSRNonce = 0; + optional boolean isForUpdateNOC = 1; } request struct AddNOCRequest { OCTET_STRING NOCValue = 0; optional OCTET_STRING ICACValue = 1; OCTET_STRING IPKValue = 2; - NODE_ID caseAdminNode = 3; + Int64u caseAdminSubject = 3; VENDOR_ID adminVendorId = 4; } @@ -923,10 +933,6 @@ server cluster OperationalCredentials = 62 { OCTET_STRING rootCertificate = 0; } - request struct RemoveTrustedRootCertificateRequest { - OCTET_STRING trustedRootIdentifier = 0; - } - response struct AttestationResponse = 1 { OCTET_STRING attestationElements = 0; OCTET_STRING signature = 1; @@ -955,7 +961,6 @@ server cluster OperationalCredentials = 62 { command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } client cluster PressureMeasurement = 1027 { @@ -1060,12 +1065,16 @@ client cluster PumpConfigurationAndControl = 512 { } server cluster SoftwareDiagnostics = 52 { + bitmap SoftwareDiagnosticsFeature : BITMAP32 { + kWaterMarks = 0x1; + } + struct ThreadMetrics { int64u id = 0; - char_string<8> name = 1; - int32u stackFreeCurrent = 2; - int32u stackFreeMinimum = 3; - int32u stackSize = 4; + optional char_string<8> name = 1; + optional int32u stackFreeCurrent = 2; + optional int32u stackFreeMinimum = 3; + optional int32u stackSize = 4; } info event SoftwareFault = 0 { @@ -1174,7 +1183,7 @@ server cluster ThreadNetworkDiagnostics = 53 { } readonly attribute nullable int16u channel = 0; - readonly attribute nullable enum8 routingRole = 1; + readonly attribute nullable RoutingRole routingRole = 1; readonly attribute nullable char_string<16> networkName = 2; readonly attribute nullable int16u panId = 3; readonly attribute nullable int64u extendedPanId = 4; @@ -1182,11 +1191,11 @@ server cluster ThreadNetworkDiagnostics = 53 { readonly attribute int64u overrunCount = 6; readonly attribute NeighborTable neighborTableList[] = 7; readonly attribute RouteTable routeTableList[] = 8; - readonly attribute int32u partitionId = 9; - readonly attribute int8u weighting = 10; - readonly attribute int8u dataVersion = 11; - readonly attribute int8u stableDataVersion = 12; - readonly attribute int8u leaderRouterId = 13; + readonly attribute nullable int32u partitionId = 9; + readonly attribute nullable int8u weighting = 10; + readonly attribute nullable int8u dataVersion = 11; + readonly attribute nullable int8u stableDataVersion = 12; + readonly attribute nullable int8u leaderRouterId = 13; readonly attribute int16u detachedRoleCount = 14; readonly attribute int16u childRoleCount = 15; readonly attribute int16u routerRoleCount = 16; @@ -1229,12 +1238,12 @@ server cluster ThreadNetworkDiagnostics = 53 { readonly attribute int32u rxErrSecCount = 53; readonly attribute int32u rxErrFcsCount = 54; readonly attribute int32u rxErrOtherCount = 55; - readonly attribute int64u activeTimestamp = 56; - readonly attribute int64u pendingTimestamp = 57; - readonly attribute int32u delay = 58; - readonly attribute SecurityPolicy securityPolicy[] = 59; - readonly attribute octet_string<4> channelMask = 60; - readonly attribute OperationalDatasetComponents operationalDatasetComponents[] = 61; + readonly attribute nullable int64u activeTimestamp = 56; + readonly attribute nullable int64u pendingTimestamp = 57; + readonly attribute nullable int32u delay = 58; + readonly attribute nullable SecurityPolicy securityPolicy = 59; + readonly attribute nullable octet_string<4> channelMask = 60; + readonly attribute nullable OperationalDatasetComponents operationalDatasetComponents = 61; readonly attribute NetworkFault activeNetworkFaultsList[] = 62; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -1292,8 +1301,8 @@ server cluster UserLabel = 65 { readonly attribute int16u clusterRevision = 65533; } - endpoint 0 { + device type rootdevice = 22; binding cluster OtaSoftwareUpdateProvider; server cluster Identify { @@ -1423,6 +1432,7 @@ endpoint 0 { callback attribute activeHardwareFaults; callback attribute activeRadioFaults; callback attribute activeNetworkFaults; + callback attribute testEventTriggersEnabled; callback attribute generatedCommandList; callback attribute acceptedCommandList; callback attribute attributeList; @@ -1440,67 +1450,67 @@ endpoint 0 { } server cluster ThreadNetworkDiagnostics { - ram attribute channel; - ram attribute routingRole; - ram attribute networkName; - ram attribute panId; - ram attribute extendedPanId; - ram attribute meshLocalPrefix; - ram attribute overrunCount; + callback attribute channel; + callback attribute routingRole; + callback attribute networkName; + callback attribute panId; + callback attribute extendedPanId; + callback attribute meshLocalPrefix; + callback attribute overrunCount; callback attribute neighborTableList; callback attribute routeTableList; - ram attribute partitionId; - ram attribute weighting; - ram attribute dataVersion; - ram attribute stableDataVersion; - ram attribute leaderRouterId; - ram attribute detachedRoleCount; - ram attribute childRoleCount; - ram attribute routerRoleCount; - ram attribute leaderRoleCount; - ram attribute attachAttemptCount; - ram attribute partitionIdChangeCount; - ram attribute betterPartitionAttachAttemptCount; - ram attribute parentChangeCount; - ram attribute txTotalCount; - ram attribute txUnicastCount; - ram attribute txBroadcastCount; - ram attribute txAckRequestedCount; - ram attribute txAckedCount; - ram attribute txNoAckRequestedCount; - ram attribute txDataCount; - ram attribute txDataPollCount; - ram attribute txBeaconCount; - ram attribute txBeaconRequestCount; - ram attribute txOtherCount; - ram attribute txRetryCount; - ram attribute txDirectMaxRetryExpiryCount; - ram attribute txIndirectMaxRetryExpiryCount; - ram attribute txErrCcaCount; - ram attribute txErrAbortCount; - ram attribute txErrBusyChannelCount; - ram attribute rxTotalCount; - ram attribute rxUnicastCount; - ram attribute rxBroadcastCount; - ram attribute rxDataCount; - ram attribute rxDataPollCount; - ram attribute rxBeaconCount; - ram attribute rxBeaconRequestCount; - ram attribute rxOtherCount; - ram attribute rxAddressFilteredCount; - ram attribute rxDestAddrFilteredCount; - ram attribute rxDuplicatedCount; - ram attribute rxErrNoFrameCount; - ram attribute rxErrUnknownNeighborCount; - ram attribute rxErrInvalidSrcAddrCount; - ram attribute rxErrSecCount; - ram attribute rxErrFcsCount; - ram attribute rxErrOtherCount; - ram attribute activeTimestamp; - ram attribute pendingTimestamp; - ram attribute delay; + callback attribute partitionId; + callback attribute weighting; + callback attribute dataVersion; + callback attribute stableDataVersion; + callback attribute leaderRouterId; + callback attribute detachedRoleCount; + callback attribute childRoleCount; + callback attribute routerRoleCount; + callback attribute leaderRoleCount; + callback attribute attachAttemptCount; + callback attribute partitionIdChangeCount; + callback attribute betterPartitionAttachAttemptCount; + callback attribute parentChangeCount; + callback attribute txTotalCount; + callback attribute txUnicastCount; + callback attribute txBroadcastCount; + callback attribute txAckRequestedCount; + callback attribute txAckedCount; + callback attribute txNoAckRequestedCount; + callback attribute txDataCount; + callback attribute txDataPollCount; + callback attribute txBeaconCount; + callback attribute txBeaconRequestCount; + callback attribute txOtherCount; + callback attribute txRetryCount; + callback attribute txDirectMaxRetryExpiryCount; + callback attribute txIndirectMaxRetryExpiryCount; + callback attribute txErrCcaCount; + callback attribute txErrAbortCount; + callback attribute txErrBusyChannelCount; + callback attribute rxTotalCount; + callback attribute rxUnicastCount; + callback attribute rxBroadcastCount; + callback attribute rxDataCount; + callback attribute rxDataPollCount; + callback attribute rxBeaconCount; + callback attribute rxBeaconRequestCount; + callback attribute rxOtherCount; + callback attribute rxAddressFilteredCount; + callback attribute rxDestAddrFilteredCount; + callback attribute rxDuplicatedCount; + callback attribute rxErrNoFrameCount; + callback attribute rxErrUnknownNeighborCount; + callback attribute rxErrInvalidSrcAddrCount; + callback attribute rxErrSecCount; + callback attribute rxErrFcsCount; + callback attribute rxErrOtherCount; + callback attribute activeTimestamp; + callback attribute pendingTimestamp; + callback attribute delay; callback attribute securityPolicy; - ram attribute channelMask; + callback attribute channelMask; callback attribute operationalDatasetComponents; callback attribute activeNetworkFaultsList; ram attribute featureMap default = 0x000F; @@ -1547,8 +1557,8 @@ endpoint 0 { ram attribute clusterRevision default = 1; } } - endpoint 1 { + device type pumpcontroller = 772; binding cluster OnOff; binding cluster PumpConfigurationAndControl; binding cluster TemperatureMeasurement; diff --git a/examples/pump-controller-app/pump-controller-common/pump-controller-app.zap b/examples/pump-controller-app/pump-controller-common/pump-controller-app.zap index ef6444dfa09193..bba5c5c3e46aef 100644 --- a/examples/pump-controller-app/pump-controller-common/pump-controller-app.zap +++ b/examples/pump-controller-app/pump-controller-common/pump-controller-app.zap @@ -2983,7 +2983,16 @@ "define": "GENERAL_DIAGNOSTICS_CLUSTER", "side": "server", "enabled": 1, - "commands": [], + "commands": [ + { + "name": "TestEventTrigger", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], "attributes": [ { "name": "NetworkInterfaces", @@ -3113,6 +3122,22 @@ "maxInterval": 65534, "reportableChange": 0 }, + { + "name": "TestEventTriggersEnabled", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "false", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "GeneratedCommandList", "code": 65528, @@ -3438,7 +3463,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3452,9 +3477,9 @@ "code": 1, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "RoutingRole", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3470,7 +3495,7 @@ "side": "server", "type": "char_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", @@ -3486,7 +3511,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3502,7 +3527,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -3518,7 +3543,7 @@ "side": "server", "type": "octet_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3534,7 +3559,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -3582,7 +3607,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3598,7 +3623,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3614,7 +3639,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3630,7 +3655,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3646,7 +3671,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3662,7 +3687,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3678,7 +3703,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3694,7 +3719,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3710,7 +3735,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3726,7 +3751,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3742,7 +3767,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3758,7 +3783,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3774,7 +3799,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3790,7 +3815,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3806,7 +3831,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3822,7 +3847,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3838,7 +3863,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3854,7 +3879,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3870,7 +3895,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3886,7 +3911,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3902,7 +3927,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3918,7 +3943,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3934,7 +3959,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3950,7 +3975,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3966,7 +3991,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3982,7 +4007,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3998,7 +4023,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4014,7 +4039,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4030,7 +4055,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4046,7 +4071,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4062,7 +4087,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4078,7 +4103,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4094,7 +4119,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4110,7 +4135,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4126,7 +4151,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4142,7 +4167,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4158,7 +4183,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4174,7 +4199,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4190,7 +4215,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4206,7 +4231,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4222,7 +4247,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4238,7 +4263,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4254,7 +4279,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4270,7 +4295,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4286,7 +4311,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4302,7 +4327,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4318,7 +4343,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4334,7 +4359,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -4350,7 +4375,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -4366,7 +4391,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4380,7 +4405,7 @@ "code": 59, "mfgCode": null, "side": "server", - "type": "array", + "type": "SecurityPolicy", "included": 1, "storageOption": "External", "singleton": 0, @@ -4398,7 +4423,7 @@ "side": "server", "type": "octet_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4412,7 +4437,7 @@ "code": 61, "mfgCode": null, "side": "server", - "type": "array", + "type": "OperationalDatasetComponents", "included": 1, "storageOption": "External", "singleton": 0, @@ -4799,14 +4824,6 @@ "source": "client", "incoming": 1, "outgoing": 1 - }, - { - "name": "RemoveTrustedRootCertificate", - "code": 12, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 } ], "attributes": [ diff --git a/examples/shell/cc13x2x7_26x2x7/BUILD.gn b/examples/shell/cc13x2x7_26x2x7/BUILD.gn index 6f2a97d401f582..1b4716017365b7 100644 --- a/examples/shell/cc13x2x7_26x2x7/BUILD.gn +++ b/examples/shell/cc13x2x7_26x2x7/BUILD.gn @@ -36,6 +36,7 @@ ti_sysconfig("sysconfig") { sources = [ "chip.syscfg" ] outputs = [ + "ti_devices_config.c", "ti_radio_config.c", "ti_radio_config.h", "ti_drivers_config.c", diff --git a/examples/shell/cc13x2x7_26x2x7/args.gni b/examples/shell/cc13x2x7_26x2x7/args.gni index 2966155edeb06a..ecf4ca2ff281c9 100644 --- a/examples/shell/cc13x2x7_26x2x7/args.gni +++ b/examples/shell/cc13x2x7_26x2x7/args.gni @@ -31,7 +31,7 @@ chip_enable_ota_requestor = false chip_openthread_ftd = false # Disable CHIP Logging -chip_progress_logging = false +#chip_progress_logging = false chip_detail_logging = false chip_automation_logging = false diff --git a/examples/shell/cc13x2x7_26x2x7/chip.syscfg b/examples/shell/cc13x2x7_26x2x7/chip.syscfg index 32701817cf1a0c..4523f5456f7531 100644 --- a/examples/shell/cc13x2x7_26x2x7/chip.syscfg +++ b/examples/shell/cc13x2x7_26x2x7/chip.syscfg @@ -69,8 +69,7 @@ for(var setting in ccfgSettings) CCFG[setting] = ccfgSettings[setting]; } -// Disable CCFG generation, this is added by the BIM project -CCFG.enableCodeGeneration = false; +CCFG.enableCodeGeneration = true; /* NVS */ NVS1.$name = "CONFIG_NVSINTERNAL"; diff --git a/examples/shell/cc13x2x7_26x2x7/main/AppTask.cpp b/examples/shell/cc13x2x7_26x2x7/main/AppTask.cpp index 7f5e892f6dfa84..b1411b6b6707da 100644 --- a/examples/shell/cc13x2x7_26x2x7/main/AppTask.cpp +++ b/examples/shell/cc13x2x7_26x2x7/main/AppTask.cpp @@ -96,7 +96,7 @@ CHIP_ERROR AppTask::Init() ; } - ret = ConnectivityMgr().SetThreadDeviceType(ConnectivityManager::kThreadDeviceType_Router); + ret = ConnectivityMgr().SetThreadDeviceType(ConnectivityManager::kThreadDeviceType_MinimalEndDevice); if (ret != CHIP_NO_ERROR) { while (1) diff --git a/examples/shell/nxp/k32w/k32w0/main/AppTask.cpp b/examples/shell/nxp/k32w/k32w0/main/AppTask.cpp index 89b0e14eb59717..efb0ccdadeaaf5 100644 --- a/examples/shell/nxp/k32w/k32w0/main/AppTask.cpp +++ b/examples/shell/nxp/k32w/k32w0/main/AppTask.cpp @@ -28,6 +28,8 @@ #include #include +#include + #include "Keyboard.h" #include "LED.h" #include "LEDWidget.h" @@ -69,6 +71,16 @@ CHIP_ERROR AppTask::StartAppTask() return err; } +void LockOpenThreadTask(void) +{ + chip::DeviceLayer::ThreadStackMgr().LockThreadStack(); +} + +void UnlockOpenThreadTask(void) +{ + chip::DeviceLayer::ThreadStackMgr().UnlockThreadStack(); +} + CHIP_ERROR AppTask::Init() { CHIP_ERROR err = CHIP_NO_ERROR; @@ -76,6 +88,11 @@ CHIP_ERROR AppTask::Init() // Init ZCL Data Model and start server static chip::CommonCaseDeviceServerInitParams initParams; (void) initParams.InitializeStaticResourcesBeforeServerInit(); + chip::Inet::EndPointStateOpenThread::OpenThreadEndpointInitParam nativeParams; + nativeParams.lockCb = LockOpenThreadTask; + nativeParams.unlockCb = UnlockOpenThreadTask; + nativeParams.openThreadInstancePtr = chip::DeviceLayer::ThreadStackMgrImpl().OTInstance(); + initParams.endpointNativeParams = static_cast(&nativeParams); chip::Server::GetInstance().Init(initParams); // Initialize device attestation config @@ -434,3 +451,5 @@ void AppTask::DispatchEvent(AppEvent * aEvent) K32W_LOG("Event received with no handler. Dropping event."); } } + +extern "C" void OTAIdleActivities(void) {} diff --git a/examples/shell/nxp/k32w/k32w0/main/main.cpp b/examples/shell/nxp/k32w/k32w0/main/main.cpp index 196623359aaffd..2cb58a3b34f660 100644 --- a/examples/shell/nxp/k32w/k32w0/main/main.cpp +++ b/examples/shell/nxp/k32w/k32w0/main/main.cpp @@ -50,7 +50,7 @@ extern InitFunc __init_array_start; extern InitFunc __init_array_end; /* needed for FreeRtos Heap 4 */ -uint8_t __attribute__((section(".heap"))) ucHeap[0xF000]; +uint8_t __attribute__((section(".heap"))) ucHeap[HEAP_SIZE]; extern "C" unsigned int sleep(unsigned int seconds) { diff --git a/examples/temperature-measurement-app/esp32/main/temperature-measurement.matter b/examples/temperature-measurement-app/esp32/main/temperature-measurement.matter index d0c19c463b3cdf..5a5c5da7c76e32 100644 --- a/examples/temperature-measurement-app/esp32/main/temperature-measurement.matter +++ b/examples/temperature-measurement-app/esp32/main/temperature-measurement.matter @@ -223,6 +223,8 @@ server cluster EthernetNetworkDiagnostics = 55 { readonly attribute int64u timeSinceReset = 8; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + + command ResetCounts(): DefaultSuccess = 0; } server cluster FixedLabel = 64 { @@ -377,8 +379,83 @@ server cluster GeneralDiagnostics = 51 { readonly attribute ENUM8 activeHardwareFaults[] = 5; readonly attribute ENUM8 activeRadioFaults[] = 6; readonly attribute ENUM8 activeNetworkFaults[] = 7; + readonly attribute boolean testEventTriggersEnabled = 8; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + + request struct TestEventTriggerRequest { + OCTET_STRING enableKey = 0; + INT64U eventTrigger = 1; + } + + command TestEventTrigger(TestEventTriggerRequest): DefaultSuccess = 0; +} + +server cluster GroupKeyManagement = 63 { + enum GroupKeySecurityPolicy : ENUM8 { + kTrustFirst = 0; + kCacheAndSync = 1; + } + + struct GroupKeyMapStruct { + group_id groupId = 1; + int16u groupKeySetID = 2; + fabric_idx fabricIndex = 254; + } + + struct GroupInfoMapStruct { + group_id groupId = 1; + endpoint_no endpoints[] = 2; + optional char_string<16> groupName = 3; + fabric_idx fabricIndex = 254; + } + + struct GroupKeySetStruct { + int16u groupKeySetID = 0; + GroupKeySecurityPolicy groupKeySecurityPolicy = 1; + nullable octet_string<16> epochKey0 = 2; + nullable epoch_us epochStartTime0 = 3; + nullable octet_string<16> epochKey1 = 4; + nullable epoch_us epochStartTime1 = 5; + nullable octet_string<16> epochKey2 = 6; + nullable epoch_us epochStartTime2 = 7; + } + + attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; + readonly attribute GroupInfoMapStruct groupTable[] = 1; + readonly attribute int16u maxGroupsPerFabric = 2; + readonly attribute int16u maxGroupKeysPerFabric = 3; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct KeySetWriteRequest { + GroupKeySetStruct groupKeySet = 0; + } + + request struct KeySetReadRequest { + INT16U groupKeySetID = 0; + } + + request struct KeySetRemoveRequest { + INT16U groupKeySetID = 0; + } + + request struct KeySetReadAllIndicesRequest { + INT16U groupKeySetIDs[] = 0; + } + + response struct KeySetReadResponse = 2 { + GroupKeySetStruct groupKeySet = 0; + } + + response struct KeySetReadAllIndicesResponse = 5 { + INT16U groupKeySetIDs[] = 0; + } + + command access(invoke: administer) KeySetWrite(KeySetWriteRequest): DefaultSuccess = 0; + command access(invoke: administer) KeySetRead(KeySetReadRequest): KeySetReadResponse = 1; + command access(invoke: administer) KeySetRemove(KeySetRemoveRequest): DefaultSuccess = 3; + command access(invoke: administer) KeySetReadAllIndices(KeySetReadAllIndicesRequest): KeySetReadAllIndicesResponse = 4; } server cluster LocalizationConfiguration = 43 { @@ -524,6 +601,7 @@ server cluster OperationalCredentials = 62 { kInvalidNOC = 3; kMissingCsr = 4; kTableFull = 5; + kInvalidAdminSubject = 6; kInsufficientPrivilege = 8; kFabricConflict = 9; kLabelConflict = 10; @@ -564,13 +642,14 @@ server cluster OperationalCredentials = 62 { request struct CSRRequestRequest { OCTET_STRING CSRNonce = 0; + optional boolean isForUpdateNOC = 1; } request struct AddNOCRequest { OCTET_STRING NOCValue = 0; optional OCTET_STRING ICACValue = 1; OCTET_STRING IPKValue = 2; - NODE_ID caseAdminNode = 3; + Int64u caseAdminSubject = 3; VENDOR_ID adminVendorId = 4; } @@ -591,10 +670,6 @@ server cluster OperationalCredentials = 62 { OCTET_STRING rootCertificate = 0; } - request struct RemoveTrustedRootCertificateRequest { - OCTET_STRING trustedRootIdentifier = 0; - } - response struct AttestationResponse = 1 { OCTET_STRING attestationElements = 0; OCTET_STRING signature = 1; @@ -623,10 +698,13 @@ server cluster OperationalCredentials = 62 { command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } server cluster SoftwareDiagnostics = 52 { + bitmap SoftwareDiagnosticsFeature : BITMAP32 { + kWaterMarks = 0x1; + } + info event SoftwareFault = 0 { SoftwareFaultStruct softwareFault = 0; } @@ -755,8 +833,8 @@ server cluster WiFiNetworkDiagnostics = 54 { readonly attribute int16u clusterRevision = 65533; } - endpoint 0 { + device type rootdevice = 22; server cluster Descriptor { callback attribute deviceList; @@ -861,6 +939,7 @@ endpoint 0 { callback attribute activeHardwareFaults; callback attribute activeRadioFaults; callback attribute activeNetworkFaults; + callback attribute testEventTriggersEnabled; ram attribute featureMap; ram attribute clusterRevision default = 1; } @@ -922,6 +1001,15 @@ endpoint 0 { ram attribute clusterRevision default = 1; } + server cluster GroupKeyManagement { + callback attribute groupKeyMap; + callback attribute groupTable; + callback attribute maxGroupsPerFabric; + callback attribute maxGroupKeysPerFabric; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + server cluster FixedLabel { callback attribute labelList; ram attribute featureMap; @@ -934,8 +1022,8 @@ endpoint 0 { ram attribute clusterRevision default = 1; } } - endpoint 1 { + device type tempsensor = 770; server cluster Descriptor { callback attribute deviceList; diff --git a/examples/temperature-measurement-app/esp32/main/temperature-measurement.zap b/examples/temperature-measurement-app/esp32/main/temperature-measurement.zap index 3a584a7f7d78df..eb56cfbf3dfac0 100644 --- a/examples/temperature-measurement-app/esp32/main/temperature-measurement.zap +++ b/examples/temperature-measurement-app/esp32/main/temperature-measurement.zap @@ -1919,7 +1919,16 @@ "define": "GENERAL_DIAGNOSTICS_CLUSTER", "side": "server", "enabled": 1, - "commands": [], + "commands": [ + { + "name": "TestEventTrigger", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], "attributes": [ { "name": "NetworkInterfaces", @@ -2049,6 +2058,22 @@ "maxInterval": 65534, "reportableChange": 0 }, + { + "name": "TestEventTriggersEnabled", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "false", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "FeatureMap", "code": 65532, @@ -2469,7 +2494,7 @@ "code": 0, "mfgCode": null, "source": "client", - "incoming": 0, + "incoming": 1, "outgoing": 1 } ], @@ -2893,14 +2918,6 @@ "source": "client", "incoming": 1, "outgoing": 1 - }, - { - "name": "RemoveTrustedRootCertificate", - "code": 12, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 } ], "attributes": [ @@ -3094,6 +3111,190 @@ } ] }, + { + "name": "Group Key Management", + "code": 63, + "mfgCode": null, + "define": "GROUP_KEY_MANAGEMENT_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "KeySetWrite", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "KeySetRead", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "KeySetRemove", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "KeySetReadAllIndices", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Group Key Management", + "code": 63, + "mfgCode": null, + "define": "GROUP_KEY_MANAGEMENT_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "KeySetReadResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "KeySetReadAllIndicesResponse", + "code": 5, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "GroupKeyMap", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "GroupTable", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MaxGroupsPerFabric", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxGroupKeysPerFabric", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, { "name": "Fixed Label", "code": 64, @@ -4372,4 +4573,4 @@ "deviceIdentifier": 770 } ] -} \ No newline at end of file +} diff --git a/examples/thermostat/linux/main.cpp b/examples/thermostat/linux/main.cpp index e5d92f58448819..1816ec7bb9be9f 100644 --- a/examples/thermostat/linux/main.cpp +++ b/examples/thermostat/linux/main.cpp @@ -42,20 +42,6 @@ bool emberAfBasicClusterMfgSpecificPingCallback(chip::app::CommandHandler * comm return true; } -// MatterPreAttributeChangeCallback() is called for every cluster. -// As of 8/17/21 cluster specific PreAttributeChangeCalbacks are not yet implemented. - -Protocols::InteractionModel::Status MatterPreAttributeChangeCallback(const ConcreteAttributePath & attributePath, uint8_t mask, - uint8_t type, uint16_t size, uint8_t * value) -{ - Protocols::InteractionModel::Status status = Protocols::InteractionModel::Status::Success; - if (attributePath.mClusterId == chip::app::Clusters::Thermostat::Id) - { - status = MatterThermostatClusterServerPreAttributeChangedCallback(attributePath, type, size, value); - } - return status; -} - void OnIdentifyStart(Identify *) { ChipLogProgress(Zcl, "OnIdentifyStart"); diff --git a/examples/thermostat/thermostat-common/thermostat.matter b/examples/thermostat/thermostat-common/thermostat.matter index cc59feb3e0aea7..6dcea48abc753b 100644 --- a/examples/thermostat/thermostat-common/thermostat.matter +++ b/examples/thermostat/thermostat-common/thermostat.matter @@ -391,8 +391,16 @@ server cluster GeneralDiagnostics = 51 { readonly attribute ENUM8 activeHardwareFaults[] = 5; readonly attribute ENUM8 activeRadioFaults[] = 6; readonly attribute ENUM8 activeNetworkFaults[] = 7; + readonly attribute boolean testEventTriggersEnabled = 8; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + + request struct TestEventTriggerRequest { + OCTET_STRING enableKey = 0; + INT64U eventTrigger = 1; + } + + command TestEventTrigger(TestEventTriggerRequest): DefaultSuccess = 0; } server cluster GroupKeyManagement = 63 { @@ -761,6 +769,7 @@ server cluster OperationalCredentials = 62 { kInvalidNOC = 3; kMissingCsr = 4; kTableFull = 5; + kInvalidAdminSubject = 6; kInsufficientPrivilege = 8; kFabricConflict = 9; kLabelConflict = 10; @@ -801,13 +810,14 @@ server cluster OperationalCredentials = 62 { request struct CSRRequestRequest { OCTET_STRING CSRNonce = 0; + optional boolean isForUpdateNOC = 1; } request struct AddNOCRequest { OCTET_STRING NOCValue = 0; optional OCTET_STRING ICACValue = 1; OCTET_STRING IPKValue = 2; - NODE_ID caseAdminNode = 3; + Int64u caseAdminSubject = 3; VENDOR_ID adminVendorId = 4; } @@ -828,10 +838,6 @@ server cluster OperationalCredentials = 62 { OCTET_STRING rootCertificate = 0; } - request struct RemoveTrustedRootCertificateRequest { - OCTET_STRING trustedRootIdentifier = 0; - } - response struct AttestationResponse = 1 { OCTET_STRING attestationElements = 0; OCTET_STRING signature = 1; @@ -860,7 +866,6 @@ server cluster OperationalCredentials = 62 { command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } server cluster Scenes = 5 { @@ -972,12 +977,16 @@ server cluster Scenes = 5 { } server cluster SoftwareDiagnostics = 52 { + bitmap SoftwareDiagnosticsFeature : BITMAP32 { + kWaterMarks = 0x1; + } + struct ThreadMetrics { int64u id = 0; - char_string<8> name = 1; - int32u stackFreeCurrent = 2; - int32u stackFreeMinimum = 3; - int32u stackSize = 4; + optional char_string<8> name = 1; + optional int32u stackFreeCurrent = 2; + optional int32u stackFreeMinimum = 3; + optional int32u stackSize = 4; } info event SoftwareFault = 0 { @@ -1099,20 +1108,10 @@ server cluster Thermostat = 513 { ThermostatScheduleTransition transitions[] = 3; } - response struct GetRelayStatusLogResponse = 1 { - INT16U timeOfDay = 0; - BITMAP8 relayStatus = 1; - INT16S localTemperature = 2; - INT8U humidityInPercentage = 3; - INT16S setpoint = 4; - INT16U unreadEntries = 5; - } - command SetpointRaiseLower(SetpointRaiseLowerRequest): DefaultSuccess = 0; command access(invoke: manage) SetWeeklySchedule(SetWeeklyScheduleRequest): DefaultSuccess = 1; command GetWeeklySchedule(GetWeeklyScheduleRequest): GetWeeklyScheduleResponse = 2; command access(invoke: manage) ClearWeeklySchedule(): DefaultSuccess = 3; - command GetRelayStatusLog(): GetRelayStatusLogResponse = 4; } server cluster ThreadNetworkDiagnostics = 53 { @@ -1200,7 +1199,7 @@ server cluster ThreadNetworkDiagnostics = 53 { } readonly attribute nullable int16u channel = 0; - readonly attribute nullable enum8 routingRole = 1; + readonly attribute nullable RoutingRole routingRole = 1; readonly attribute nullable char_string<16> networkName = 2; readonly attribute nullable int16u panId = 3; readonly attribute nullable int64u extendedPanId = 4; @@ -1208,11 +1207,11 @@ server cluster ThreadNetworkDiagnostics = 53 { readonly attribute int64u overrunCount = 6; readonly attribute NeighborTable neighborTableList[] = 7; readonly attribute RouteTable routeTableList[] = 8; - readonly attribute int32u partitionId = 9; - readonly attribute int8u weighting = 10; - readonly attribute int8u dataVersion = 11; - readonly attribute int8u stableDataVersion = 12; - readonly attribute int8u leaderRouterId = 13; + readonly attribute nullable int32u partitionId = 9; + readonly attribute nullable int8u weighting = 10; + readonly attribute nullable int8u dataVersion = 11; + readonly attribute nullable int8u stableDataVersion = 12; + readonly attribute nullable int8u leaderRouterId = 13; readonly attribute int16u detachedRoleCount = 14; readonly attribute int16u childRoleCount = 15; readonly attribute int16u routerRoleCount = 16; @@ -1255,12 +1254,12 @@ server cluster ThreadNetworkDiagnostics = 53 { readonly attribute int32u rxErrSecCount = 53; readonly attribute int32u rxErrFcsCount = 54; readonly attribute int32u rxErrOtherCount = 55; - readonly attribute int64u activeTimestamp = 56; - readonly attribute int64u pendingTimestamp = 57; - readonly attribute int32u delay = 58; - readonly attribute SecurityPolicy securityPolicy[] = 59; - readonly attribute octet_string<4> channelMask = 60; - readonly attribute OperationalDatasetComponents operationalDatasetComponents[] = 61; + readonly attribute nullable int64u activeTimestamp = 56; + readonly attribute nullable int64u pendingTimestamp = 57; + readonly attribute nullable int32u delay = 58; + readonly attribute nullable SecurityPolicy securityPolicy = 59; + readonly attribute nullable octet_string<4> channelMask = 60; + readonly attribute nullable OperationalDatasetComponents operationalDatasetComponents = 61; readonly attribute NetworkFault activeNetworkFaultsList[] = 62; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -1377,8 +1376,8 @@ server cluster WiFiNetworkDiagnostics = 54 { readonly attribute int16u clusterRevision = 65533; } - endpoint 0 { + device type rootdevice = 22; server cluster Identify { ram attribute identifyTime; @@ -1500,6 +1499,7 @@ endpoint 0 { callback attribute activeHardwareFaults; callback attribute activeRadioFaults; callback attribute activeNetworkFaults; + callback attribute testEventTriggersEnabled; ram attribute featureMap; ram attribute clusterRevision default = 1; } @@ -1514,67 +1514,67 @@ endpoint 0 { } server cluster ThreadNetworkDiagnostics { - ram attribute channel; - ram attribute routingRole; - ram attribute networkName; - ram attribute panId; - ram attribute extendedPanId; - ram attribute meshLocalPrefix; - ram attribute overrunCount; + callback attribute channel; + callback attribute routingRole; + callback attribute networkName; + callback attribute panId; + callback attribute extendedPanId; + callback attribute meshLocalPrefix; + callback attribute overrunCount; callback attribute neighborTableList; callback attribute routeTableList; - ram attribute partitionId; - ram attribute weighting; - ram attribute dataVersion; - ram attribute stableDataVersion; - ram attribute leaderRouterId; - ram attribute detachedRoleCount; - ram attribute childRoleCount; - ram attribute routerRoleCount; - ram attribute leaderRoleCount; - ram attribute attachAttemptCount; - ram attribute partitionIdChangeCount; - ram attribute betterPartitionAttachAttemptCount; - ram attribute parentChangeCount; - ram attribute txTotalCount; - ram attribute txUnicastCount; - ram attribute txBroadcastCount; - ram attribute txAckRequestedCount; - ram attribute txAckedCount; - ram attribute txNoAckRequestedCount; - ram attribute txDataCount; - ram attribute txDataPollCount; - ram attribute txBeaconCount; - ram attribute txBeaconRequestCount; - ram attribute txOtherCount; - ram attribute txRetryCount; - ram attribute txDirectMaxRetryExpiryCount; - ram attribute txIndirectMaxRetryExpiryCount; - ram attribute txErrCcaCount; - ram attribute txErrAbortCount; - ram attribute txErrBusyChannelCount; - ram attribute rxTotalCount; - ram attribute rxUnicastCount; - ram attribute rxBroadcastCount; - ram attribute rxDataCount; - ram attribute rxDataPollCount; - ram attribute rxBeaconCount; - ram attribute rxBeaconRequestCount; - ram attribute rxOtherCount; - ram attribute rxAddressFilteredCount; - ram attribute rxDestAddrFilteredCount; - ram attribute rxDuplicatedCount; - ram attribute rxErrNoFrameCount; - ram attribute rxErrUnknownNeighborCount; - ram attribute rxErrInvalidSrcAddrCount; - ram attribute rxErrSecCount; - ram attribute rxErrFcsCount; - ram attribute rxErrOtherCount; - ram attribute activeTimestamp; - ram attribute pendingTimestamp; - ram attribute delay; + callback attribute partitionId; + callback attribute weighting; + callback attribute dataVersion; + callback attribute stableDataVersion; + callback attribute leaderRouterId; + callback attribute detachedRoleCount; + callback attribute childRoleCount; + callback attribute routerRoleCount; + callback attribute leaderRoleCount; + callback attribute attachAttemptCount; + callback attribute partitionIdChangeCount; + callback attribute betterPartitionAttachAttemptCount; + callback attribute parentChangeCount; + callback attribute txTotalCount; + callback attribute txUnicastCount; + callback attribute txBroadcastCount; + callback attribute txAckRequestedCount; + callback attribute txAckedCount; + callback attribute txNoAckRequestedCount; + callback attribute txDataCount; + callback attribute txDataPollCount; + callback attribute txBeaconCount; + callback attribute txBeaconRequestCount; + callback attribute txOtherCount; + callback attribute txRetryCount; + callback attribute txDirectMaxRetryExpiryCount; + callback attribute txIndirectMaxRetryExpiryCount; + callback attribute txErrCcaCount; + callback attribute txErrAbortCount; + callback attribute txErrBusyChannelCount; + callback attribute rxTotalCount; + callback attribute rxUnicastCount; + callback attribute rxBroadcastCount; + callback attribute rxDataCount; + callback attribute rxDataPollCount; + callback attribute rxBeaconCount; + callback attribute rxBeaconRequestCount; + callback attribute rxOtherCount; + callback attribute rxAddressFilteredCount; + callback attribute rxDestAddrFilteredCount; + callback attribute rxDuplicatedCount; + callback attribute rxErrNoFrameCount; + callback attribute rxErrUnknownNeighborCount; + callback attribute rxErrInvalidSrcAddrCount; + callback attribute rxErrSecCount; + callback attribute rxErrFcsCount; + callback attribute rxErrOtherCount; + callback attribute activeTimestamp; + callback attribute pendingTimestamp; + callback attribute delay; callback attribute securityPolicy; - ram attribute channelMask; + callback attribute channelMask; callback attribute operationalDatasetComponents; callback attribute activeNetworkFaultsList; ram attribute featureMap default = 0x000F; @@ -1651,8 +1651,8 @@ endpoint 0 { ram attribute clusterRevision default = 1; } } - endpoint 1 { + device type thermostat = 769; binding cluster Identify; server cluster Identify { diff --git a/examples/thermostat/thermostat-common/thermostat.zap b/examples/thermostat/thermostat-common/thermostat.zap index d7b13ba55eb57c..5ea5c518e31326 100644 --- a/examples/thermostat/thermostat-common/thermostat.zap +++ b/examples/thermostat/thermostat-common/thermostat.zap @@ -2437,7 +2437,16 @@ "define": "GENERAL_DIAGNOSTICS_CLUSTER", "side": "server", "enabled": 1, - "commands": [], + "commands": [ + { + "name": "TestEventTrigger", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], "attributes": [ { "name": "NetworkInterfaces", @@ -2567,6 +2576,22 @@ "maxInterval": 65534, "reportableChange": 0 }, + { + "name": "TestEventTriggersEnabled", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "false", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "FeatureMap", "code": 65532, @@ -2760,7 +2785,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -2774,9 +2799,9 @@ "code": 1, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "RoutingRole", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -2792,7 +2817,7 @@ "side": "server", "type": "char_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", @@ -2808,7 +2833,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2824,7 +2849,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -2840,7 +2865,7 @@ "side": "server", "type": "octet_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -2856,7 +2881,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -2904,7 +2929,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -2920,7 +2945,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -2936,7 +2961,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -2952,7 +2977,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -2968,7 +2993,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -2984,7 +3009,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3000,7 +3025,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3016,7 +3041,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3032,7 +3057,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3048,7 +3073,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3064,7 +3089,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3080,7 +3105,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3096,7 +3121,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3112,7 +3137,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3128,7 +3153,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3144,7 +3169,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3160,7 +3185,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3176,7 +3201,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3192,7 +3217,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3208,7 +3233,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3224,7 +3249,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3240,7 +3265,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3256,7 +3281,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3272,7 +3297,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3288,7 +3313,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3304,7 +3329,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3320,7 +3345,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3336,7 +3361,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3352,7 +3377,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3368,7 +3393,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3384,7 +3409,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3400,7 +3425,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3416,7 +3441,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3432,7 +3457,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3448,7 +3473,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3464,7 +3489,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3480,7 +3505,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3496,7 +3521,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3512,7 +3537,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3528,7 +3553,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3544,7 +3569,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3560,7 +3585,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3576,7 +3601,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3592,7 +3617,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3608,7 +3633,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3624,7 +3649,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3640,7 +3665,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3656,7 +3681,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -3672,7 +3697,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -3688,7 +3713,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3702,7 +3727,7 @@ "code": 59, "mfgCode": null, "side": "server", - "type": "array", + "type": "SecurityPolicy", "included": 1, "storageOption": "External", "singleton": 0, @@ -3720,7 +3745,7 @@ "side": "server", "type": "octet_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3734,7 +3759,7 @@ "code": 61, "mfgCode": null, "side": "server", - "type": "array", + "type": "OperationalDatasetComponents", "included": 1, "storageOption": "External", "singleton": 0, @@ -4612,14 +4637,6 @@ "source": "client", "incoming": 1, "outgoing": 1 - }, - { - "name": "RemoveTrustedRootCertificate", - "code": 12, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 } ], "attributes": [ @@ -5085,46 +5102,6 @@ "incoming": 1, "outgoing": 1 }, - { - "name": "GetLogRecord", - "code": 4, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "SetPINCode", - "code": 5, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "GetPINCode", - "code": 6, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "ClearPINCode", - "code": 7, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "ClearAllPINCodes", - "code": 8, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, { "name": "SetWeekDaySchedule", "code": 11, @@ -5196,54 +5173,6 @@ "source": "client", "incoming": 1, "outgoing": 1 - }, - { - "name": "SetUserType", - "code": 20, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "GetUserType", - "code": 21, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "SetRFIDCode", - "code": 22, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "GetRFIDCode", - "code": 23, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "ClearRFIDCode", - "code": 24, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "ClearAllRFIDCodes", - "code": 25, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 } ], "attributes": [ @@ -5338,22 +5267,6 @@ "maxInterval": 65344, "reportableChange": 0 }, - { - "name": "EnableLogging", - "code": 32, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x00", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, { "name": "Language", "code": 33, @@ -5435,139 +5348,11 @@ "reportableChange": 0 }, { - "name": "DefaultConfigurationRegister", - "code": 39, - "mfgCode": null, - "side": "server", - "type": "DlDefaultConfigurationRegister", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x00", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "EnableLocalProgramming", - "code": 40, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x01", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "EnableOneTouchLocking", - "code": 41, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x00", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "EnableInsideStatusLED", - "code": 42, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x00", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "EnablePrivacyModeButton", - "code": 43, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x00", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "WrongCodeEntryLimit", - "code": 48, - "mfgCode": null, - "side": "server", - "type": "int8u", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x00", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "UserCodeTemporaryDisableTime", - "code": 49, - "mfgCode": null, - "side": "server", - "type": "int8u", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x00", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "SendPINOverTheAir", - "code": 50, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x00", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RequirePINforRemoteOperation", - "code": 51, + "name": "DefaultConfigurationRegister", + "code": 39, "mfgCode": null, "side": "server", - "type": "boolean", + "type": "DlDefaultConfigurationRegister", "included": 0, "storageOption": "RAM", "singleton": 0, @@ -5579,128 +5364,128 @@ "reportableChange": 0 }, { - "name": "AlarmMask", - "code": 64, + "name": "EnableLocalProgramming", + "code": 40, "mfgCode": null, "side": "server", - "type": "DlAlarmMask", + "type": "boolean", "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0x01", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "KeypadOperationEventMask", - "code": 65, + "name": "EnableOneTouchLocking", + "code": 41, "mfgCode": null, "side": "server", - "type": "DlKeypadOperationEventMask", + "type": "boolean", "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0x00", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "RemoteOperationEventMask", - "code": 66, + "name": "EnableInsideStatusLED", + "code": 42, "mfgCode": null, "side": "server", - "type": "DlRemoteOperationEventMask", + "type": "boolean", "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0x00", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ManualOperationEventMask", - "code": 67, + "name": "EnablePrivacyModeButton", + "code": 43, "mfgCode": null, "side": "server", - "type": "DlManualOperationEventMask", + "type": "boolean", "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0x00", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "RFIDOperationEventMask", - "code": 68, + "name": "WrongCodeEntryLimit", + "code": 48, "mfgCode": null, "side": "server", - "type": "DlRFIDOperationEventMask", + "type": "int8u", "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0x00", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "KeypadProgrammingEventMask", - "code": 69, + "name": "UserCodeTemporaryDisableTime", + "code": 49, "mfgCode": null, "side": "server", - "type": "DlKeypadOperationEventMask", + "type": "int8u", "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0x00", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "RemoteProgrammingEventMask", - "code": 70, + "name": "SendPINOverTheAir", + "code": 50, "mfgCode": null, "side": "server", - "type": "DlRemoteProgrammingEventMask", + "type": "boolean", "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0x00", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, { - "name": "RFIDProgrammingEventMask", - "code": 71, + "name": "RequirePINforRemoteOperation", + "code": 51, "mfgCode": null, "side": "server", - "type": "DlRFIDProgrammingEventMask", + "type": "boolean", "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0x00", "reportable": 1, "minInterval": 0, "maxInterval": 65344, @@ -7224,7 +7009,7 @@ }, { "name": "Test Cluster", - "code": 1295, + "code": 4294048773, "mfgCode": null, "define": "TEST_CLUSTER", "side": "client", @@ -7276,7 +7061,7 @@ }, { "name": "Test Cluster", - "code": 1295, + "code": 4294048773, "mfgCode": null, "define": "TEST_CLUSTER", "side": "server", @@ -10035,46 +9820,6 @@ "incoming": 1, "outgoing": 1 }, - { - "name": "GetLogRecord", - "code": 4, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "SetPINCode", - "code": 5, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "GetPINCode", - "code": 6, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "ClearPINCode", - "code": 7, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "ClearAllPINCodes", - "code": 8, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, { "name": "SetWeekDaySchedule", "code": 11, @@ -10146,54 +9891,6 @@ "source": "client", "incoming": 1, "outgoing": 1 - }, - { - "name": "SetUserType", - "code": 20, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "GetUserType", - "code": 21, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "SetRFIDCode", - "code": 22, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "GetRFIDCode", - "code": 23, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "ClearRFIDCode", - "code": 24, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "ClearAllRFIDCodes", - "code": 25, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 } ], "attributes": [ @@ -10288,22 +9985,6 @@ "maxInterval": 65344, "reportableChange": 0 }, - { - "name": "EnableLogging", - "code": 32, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x00", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, { "name": "Language", "code": 33, @@ -10528,134 +10209,6 @@ "maxInterval": 65344, "reportableChange": 0 }, - { - "name": "AlarmMask", - "code": 64, - "mfgCode": null, - "side": "server", - "type": "DlAlarmMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "KeypadOperationEventMask", - "code": 65, - "mfgCode": null, - "side": "server", - "type": "DlKeypadOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RemoteOperationEventMask", - "code": 66, - "mfgCode": null, - "side": "server", - "type": "DlRemoteOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "ManualOperationEventMask", - "code": 67, - "mfgCode": null, - "side": "server", - "type": "DlManualOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RFIDOperationEventMask", - "code": 68, - "mfgCode": null, - "side": "server", - "type": "DlRFIDOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "KeypadProgrammingEventMask", - "code": 69, - "mfgCode": null, - "side": "server", - "type": "DlKeypadOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RemoteProgrammingEventMask", - "code": 70, - "mfgCode": null, - "side": "server", - "type": "DlRemoteProgrammingEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RFIDProgrammingEventMask", - "code": 71, - "mfgCode": null, - "side": "server", - "type": "DlRFIDProgrammingEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, { "name": "ClusterRevision", "code": 65533, @@ -11429,14 +10982,6 @@ "source": "client", "incoming": 1, "outgoing": 1 - }, - { - "name": "GetRelayStatusLog", - "code": 4, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 } ], "attributes": [ @@ -11473,14 +11018,6 @@ "source": "server", "incoming": 1, "outgoing": 1 - }, - { - "name": "GetRelayStatusLogResponse", - "code": 1, - "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 1 } ], "attributes": [ @@ -14553,7 +14090,7 @@ }, { "name": "Test Cluster", - "code": 1295, + "code": 4294048773, "mfgCode": null, "define": "TEST_CLUSTER", "side": "client", @@ -14597,7 +14134,7 @@ }, { "name": "Test Cluster", - "code": 1295, + "code": 4294048773, "mfgCode": null, "define": "TEST_CLUSTER", "side": "server", @@ -14974,4 +14511,4 @@ "deviceIdentifier": 769 } ] -} \ No newline at end of file +} diff --git a/examples/tv-app/android/App/common-api/src/main/java/com/matter/tv/app/api/MatterIntentConstants.java b/examples/tv-app/android/App/common-api/src/main/java/com/matter/tv/app/api/MatterIntentConstants.java index 4ee15e4a84c496..d5e95061b6f6c5 100644 --- a/examples/tv-app/android/App/common-api/src/main/java/com/matter/tv/app/api/MatterIntentConstants.java +++ b/examples/tv-app/android/App/common-api/src/main/java/com/matter/tv/app/api/MatterIntentConstants.java @@ -17,4 +17,7 @@ public class MatterIntentConstants { public static final String EXTRA_DIRECTIVE_RESPONSE_PENDING_INTENT = "EXTRA_DIRECTIVE_RESPONSE_PENDING_INTENT"; + + public static final String EXTRA_COMMAND_ID = "EXTRA_COMMAND_ID"; + public static final String EXTRA_CLUSTER_ID = "EXTRA_CLUSTER_ID"; } diff --git a/examples/tv-app/android/App/content-app/src/main/AndroidManifest.xml b/examples/tv-app/android/App/content-app/src/main/AndroidManifest.xml index 9ba74639750d1d..e9fa3b028f6f58 100644 --- a/examples/tv-app/android/App/content-app/src/main/AndroidManifest.xml +++ b/examples/tv-app/android/App/content-app/src/main/AndroidManifest.xml @@ -18,7 +18,7 @@ android:theme="@style/Theme.ContentApp"> - + - diff --git a/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/MainActivity.java b/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/MainActivity.java index fbeed33502a439..2fb375dbed5c93 100644 --- a/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/MainActivity.java +++ b/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/MainActivity.java @@ -7,6 +7,7 @@ import com.matter.tv.server.fragments.ContentAppFragment; import com.matter.tv.server.fragments.QrCodeFragment; import com.matter.tv.server.fragments.TerminalFragment; +import com.matter.tv.server.service.MatterServant; import java.util.LinkedHashMap; public class MainActivity extends AppCompatActivity { @@ -18,13 +19,13 @@ public class MainActivity extends AppCompatActivity { Fragment selectedFragment = null; switch (item.getItemId()) { case R.id.content_app: - selectedFragment = new ContentAppFragment(); + selectedFragment = ContentAppFragment.newInstance(); break; case R.id.qr_code: - selectedFragment = new QrCodeFragment(); + selectedFragment = QrCodeFragment.newInstance(); break; case R.id.terminal: - selectedFragment = new TerminalFragment(); + selectedFragment = TerminalFragment.newInstance(); break; } @@ -40,6 +41,10 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); + // MainActivity is needed to launch dialog prompt + // in UserPrompter + MatterServant.get().setActivity(this); + BottomNavigationView bottomNavigationView = findViewById(R.id.bottom_navigation); bottomNavigationView.setOnItemSelectedListener(navListener); diff --git a/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/MatterCommissioningPrompter.java b/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/MatterCommissioningPrompter.java new file mode 100644 index 00000000000000..2e9c36a3dafb81 --- /dev/null +++ b/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/MatterCommissioningPrompter.java @@ -0,0 +1,141 @@ +package com.matter.tv.server; + +import static androidx.core.content.ContextCompat.getSystemService; + +import android.app.Activity; +import android.app.NotificationChannel; +import android.app.NotificationManager; +import android.os.Build; +import android.util.Log; +import android.widget.EditText; +import androidx.appcompat.app.AlertDialog; +import androidx.core.app.NotificationCompat; +import com.tcl.chip.tvapp.UserPrompter; +import com.tcl.chip.tvapp.UserPrompterResolver; + +public class MatterCommissioningPrompter extends UserPrompterResolver implements UserPrompter { + + private Activity activity; + private NotificationManager notificationManager; + private final String CHANNEL_ID = "MatterCommissioningPrompter.CHANNEL"; + private final int SUCCESS_ID = 0; + private final int FAIL_ID = 1; + + public MatterCommissioningPrompter(Activity activity) { + this.activity = activity; + this.createNotificationChannel(); + } + + public void promptForCommissionOkPermission( + int vendorId, int productId, String commissioneeName) { + // TODO: find app by vendorId and productId + Log.d( + TAG, + "Received prompt for OK permission vendor id:" + + vendorId + + " productId:" + + productId + + ". Commissionee: " + + commissioneeName); + AlertDialog.Builder builder = new AlertDialog.Builder(activity); + + builder + .setMessage(commissioneeName + " is requesting permission to cast to this device, approve?") + .setTitle("Allow access to " + commissioneeName) + .setPositiveButton( + "Ok", + (dialog, which) -> { + OnPromptAccepted(); + }) + .setNegativeButton( + "Cancel", + (dialog, which) -> { + OnPromptDeclined(); + }) + .create() + .show(); + } + + @Override + public void promptForCommissionPinCode(int vendorId, int productId, String commissioneeName) { + // TODO: find app by vendorId and productId + Log.d( + TAG, + "Received prompt for PIN code vendor id:" + + vendorId + + " productId:" + + productId + + ". Commissionee: " + + commissioneeName); + EditText editText = new EditText(activity); + AlertDialog.Builder builder = new AlertDialog.Builder(activity); + + builder + .setMessage("Please enter PIN displayed in casting app.") + .setTitle("Allow access to " + commissioneeName) + .setView(editText) + .setPositiveButton( + "Ok", + (dialog, which) -> { + String pinCode = editText.getText().toString(); + OnPinCodeEntered(Integer.parseInt(pinCode)); + }) + .setNegativeButton( + "Cancel", + (dialog, which) -> { + OnPinCodeDeclined(); + }) + .create() + .show(); + } + + public void promptCommissioningSucceeded(int vendorId, int productId, String commissioneeName) { + Log.d( + TAG, + "Received prompt for success vendor id:" + + vendorId + + " productId:" + + productId + + ". Commissionee: " + + commissioneeName); + NotificationCompat.Builder builder = + new NotificationCompat.Builder(activity, CHANNEL_ID) + .setSmallIcon(R.drawable.ic_baseline_check_24) + .setContentTitle("Connection Complete") + .setContentText( + "Success. " + + commissioneeName + + " can now cast to this device. Visit settings to manage access control for casting.") + .setPriority(NotificationCompat.PRIORITY_DEFAULT); + + notificationManager.notify(SUCCESS_ID, builder.build()); + } + + public void promptCommissioningFailed(String commissioneeName, String error) { + Log.d(TAG, "Received prompt for failure Commissionee: " + commissioneeName); + NotificationCompat.Builder builder = + new NotificationCompat.Builder(activity, CHANNEL_ID) + .setSmallIcon(R.drawable.ic_baseline_clear_24) + .setContentTitle("Connection Failed") + .setContentText("Failed. " + commissioneeName + " experienced error: " + error + ".") + .setPriority(NotificationCompat.PRIORITY_DEFAULT); + + notificationManager.notify(FAIL_ID, builder.build()); + } + + private void createNotificationChannel() { + // Create the NotificationChannel, but only on API 26+ because + // the NotificationChannel class is new and not in the support library + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + CharSequence name = "MatterPromptNotificationChannel"; + String description = "Matter Channel for sending notifications"; + int importance = NotificationManager.IMPORTANCE_DEFAULT; + NotificationChannel channel = new NotificationChannel(CHANNEL_ID, name, importance); + channel.setDescription(description); + // Register the channel with the system; you can't change the importance + // or other notification behaviors after this + this.notificationManager = getSystemService(activity, NotificationManager.class); + notificationManager.createNotificationChannel(channel); + } + } +} diff --git a/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/fragments/ContentAppFragment.java b/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/fragments/ContentAppFragment.java index 89b8804af3677d..c99045fc3ddc28 100644 --- a/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/fragments/ContentAppFragment.java +++ b/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/fragments/ContentAppFragment.java @@ -40,12 +40,9 @@ public ContentAppFragment() { * Use this factory method to create a new instance of this fragment using the provided * parameters. * - * @param param1 Parameter 1. - * @param param2 Parameter 2. * @return A new instance of fragment SettingsFragment. */ - // TODO: Rename and change types and number of parameters - public static ContentAppFragment newInstance(String param1, String param2) { + public static ContentAppFragment newInstance() { ContentAppFragment fragment = new ContentAppFragment(); Bundle args = new Bundle(); fragment.setArguments(args); diff --git a/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/fragments/QrCodeFragment.java b/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/fragments/QrCodeFragment.java index 8ab6e03a0fa542..04b17bd322e955 100644 --- a/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/fragments/QrCodeFragment.java +++ b/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/fragments/QrCodeFragment.java @@ -35,12 +35,9 @@ public QrCodeFragment() { * Use this factory method to create a new instance of this fragment using the provided * parameters. * - * @param param1 Parameter 1. - * @param param2 Parameter 2. * @return A new instance of fragment QrCodeFragment. */ - // TODO: Rename and change types and number of parameters - public static QrCodeFragment newInstance(String param1, String param2) { + public static QrCodeFragment newInstance() { QrCodeFragment fragment = new QrCodeFragment(); Bundle args = new Bundle(); fragment.setArguments(args); diff --git a/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/fragments/TerminalFragment.java b/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/fragments/TerminalFragment.java index 2962e5ce04c890..24045ce6f8c46f 100644 --- a/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/fragments/TerminalFragment.java +++ b/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/fragments/TerminalFragment.java @@ -25,12 +25,9 @@ public TerminalFragment() { * Use this factory method to create a new instance of this fragment using the provided * parameters. * - * @param param1 Parameter 1. - * @param param2 Parameter 2. * @return A new instance of fragment CommssionerFragment. */ - // TODO: Rename and change types and number of parameters - public static TerminalFragment newInstance(String param1, String param2) { + public static TerminalFragment newInstance() { TerminalFragment fragment = new TerminalFragment(); Bundle args = new Bundle(); fragment.setArguments(args); @@ -63,10 +60,7 @@ public void onResume() { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); - builder.setMessage(message).setTitle("Command response:"); - - AlertDialog dialog = builder.create(); - dialog.show(); + builder.setMessage(message).setTitle("Response").create().show(); }); } } diff --git a/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/handlers/ContentAppEndpointManagerImpl.java b/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/handlers/ContentAppEndpointManagerImpl.java index 035e7cd84e8c44..56575545883a32 100644 --- a/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/handlers/ContentAppEndpointManagerImpl.java +++ b/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/handlers/ContentAppEndpointManagerImpl.java @@ -16,14 +16,15 @@ public ContentAppEndpointManagerImpl(Context context) { this.context = context; } - public String sendCommand(int endpointId, String commandPayload) { + public String sendCommand(int endpointId, int clusterId, int commandId, String commandPayload) { Log.d(TAG, "Received a command for endpointId " + endpointId + ". Message " + commandPayload); for (ContentApp app : ContentAppDiscoveryService.getReceiverInstance().getDiscoveredContentApps().values()) { if (app.getEndpointId() == endpointId) { Log.d( TAG, "Sending a command for endpointId " + endpointId + ". Message " + commandPayload); - ContentAppAgentService.sendCommand(context, app.getAppName(), commandPayload); + return ContentAppAgentService.sendCommand( + context, app.getAppName(), clusterId, commandId, commandPayload); } } return "Success"; diff --git a/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/service/ContentAppAgentService.java b/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/service/ContentAppAgentService.java index b1799990f99575..ccc72e4a9221b2 100644 --- a/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/service/ContentAppAgentService.java +++ b/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/service/ContentAppAgentService.java @@ -11,6 +11,7 @@ import androidx.annotation.Nullable; import com.matter.tv.app.api.IMatterAppAgent; import com.matter.tv.app.api.MatterIntentConstants; +import java.util.concurrent.TimeUnit; public class ContentAppAgentService extends Service { @@ -20,6 +21,8 @@ public class ContentAppAgentService extends Service { public static final String EXTRA_RESPONSE_RECEIVING_PACKAGE = "EXTRA_RESPONSE_RECEIVING_PACKAGE"; public static final String EXTRA_RESPONSE_ID = "EXTRA_RESPONSE_ID"; + private static ResponseRegistry responseRegistry = new ResponseRegistry(); + private final IBinder appAgentBinder = new IMatterAppAgent.Stub() { @Override @@ -51,23 +54,34 @@ public IBinder onBind(final Intent intent) { return null; } - public static void sendCommand(Context context, String packageName, String payload) { + public static String sendCommand( + Context context, String packageName, int clusterId, int commandId, String payload) { Intent in = new Intent(MatterIntentConstants.ACTION_MATTER_COMMAND); Bundle extras = new Bundle(); extras.putByteArray(MatterIntentConstants.EXTRA_COMMAND_PAYLOAD, payload.getBytes()); + extras.putInt(MatterIntentConstants.EXTRA_COMMAND_ID, commandId); + extras.putInt(MatterIntentConstants.EXTRA_CLUSTER_ID, clusterId); in.putExtras(extras); in.setPackage(packageName); int flags = Intent.FLAG_INCLUDE_STOPPED_PACKAGES; flags |= Intent.FLAG_RECEIVER_FOREGROUND; in.setFlags(flags); + int messageId = responseRegistry.getNextMessageCounter(); in.putExtra( MatterIntentConstants.EXTRA_DIRECTIVE_RESPONSE_PENDING_INTENT, - getPendingIntentForResponse(context, packageName, "0")); + getPendingIntentForResponse(context, packageName, messageId)); context.sendBroadcast(in); + responseRegistry.waitForMessage(messageId, 10, TimeUnit.SECONDS); + String response = responseRegistry.readAndRemoveResponse(messageId); + if (response == null) { + response = ""; + } + Log.d(TAG, "Response " + response + " being returned for message " + messageId); + return response; } private static PendingIntent getPendingIntentForResponse( - final Context context, final String targetPackage, final String responseId) { + final Context context, final String targetPackage, final int responseId) { Intent ackBackIntent = new Intent(ACTION_MATTER_RESPONSE); ackBackIntent.setClass(context, ContentAppAgentService.class); ackBackIntent.putExtra(EXTRA_RESPONSE_RECEIVING_PACKAGE, targetPackage); @@ -78,16 +92,13 @@ private static PendingIntent getPendingIntentForResponse( @Override public int onStartCommand(final Intent intent, final int flags, final int startId) { - Log.d(TAG, "onStartCommand"); - if (intent != null && ACTION_MATTER_RESPONSE.equals(intent.getAction())) { - Log.d( - TAG, - "Command response " - + new String(intent.getByteArrayExtra(MatterIntentConstants.EXTRA_RESPONSE_PAYLOAD))); - // Send the response back to the client. + String response = + new String(intent.getByteArrayExtra(MatterIntentConstants.EXTRA_RESPONSE_PAYLOAD)); + int messageId = intent.getIntExtra(EXTRA_RESPONSE_ID, Integer.MAX_VALUE); + Log.d(TAG, "Response " + response + " received for message " + messageId); + responseRegistry.receivedMessageResponse(messageId, response); } - return START_NOT_STICKY; } } diff --git a/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/service/MatterServant.java b/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/service/MatterServant.java index 574aadb0313ca4..bd11cb5c525d8f 100644 --- a/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/service/MatterServant.java +++ b/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/service/MatterServant.java @@ -17,6 +17,7 @@ */ package com.matter.tv.server.service; +import android.app.Activity; import android.content.Context; import android.util.Log; import androidx.annotation.NonNull; @@ -25,15 +26,18 @@ import chip.platform.AndroidChipPlatform; import chip.platform.ChipMdnsCallbackImpl; import chip.platform.DiagnosticDataProviderImpl; +import chip.platform.NsdManagerServiceBrowser; import chip.platform.NsdManagerServiceResolver; import chip.platform.PreferencesConfigurationManager; import chip.platform.PreferencesKeyValueStoreManager; +import com.matter.tv.server.MatterCommissioningPrompter; import com.matter.tv.server.handlers.ContentAppEndpointManagerImpl; import com.matter.tv.server.model.ContentApp; import com.tcl.chip.tvapp.ChannelManagerStub; import com.tcl.chip.tvapp.Clusters; import com.tcl.chip.tvapp.ContentLaunchManagerStub; import com.tcl.chip.tvapp.DACProviderStub; +import com.tcl.chip.tvapp.DeviceEventProvider; import com.tcl.chip.tvapp.KeypadInputManagerStub; import com.tcl.chip.tvapp.LevelManagerStub; import com.tcl.chip.tvapp.LowPowerManagerStub; @@ -65,6 +69,7 @@ public static MatterServant get() { } private Context context; + private Activity activity; public void init(@NonNull Context context) { @@ -112,7 +117,15 @@ public void init(@NonNull Context context) { } }); mTvApp.setDACProvider(new DACProviderStub()); - + mTvApp.setUserPrompter(new MatterCommissioningPrompter(activity)); + + mTvApp.setChipDeviceEventProvider( + new DeviceEventProvider() { + @Override + public void onCommissioningComplete() { + Log.d("lz", "onCommissioningComplete: "); + } + }); Context applicationContext = context.getApplicationContext(); AndroidChipPlatform chipPlatform = new AndroidChipPlatform( @@ -120,6 +133,7 @@ public void init(@NonNull Context context) { new PreferencesKeyValueStoreManager(applicationContext), new PreferencesConfigurationManager(applicationContext), new NsdManagerServiceResolver(applicationContext), + new NsdManagerServiceBrowser(applicationContext), new ChipMdnsCallbackImpl(), new DiagnosticDataProviderImpl(applicationContext)); @@ -131,7 +145,7 @@ public void init(@NonNull Context context) { chipAppServer = new ChipAppServer(); chipAppServer.startApp(); - mTvApp.postServerInit(); + mTvApp.postServerInit(new ContentAppEndpointManagerImpl(context)); } public void restart() { @@ -144,6 +158,10 @@ public void toggleOnOff() { mIsOn = !mIsOn; } + public void setActivity(Activity activity) { + this.activity = activity; + } + public void sendCustomCommand(String customCommand) { Log.i(MatterServant.class.getName(), customCommand); // TODO: insert logic ot send custom command here diff --git a/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/service/ResponseRegistry.java b/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/service/ResponseRegistry.java new file mode 100644 index 00000000000000..9c1ebc0c0b6031 --- /dev/null +++ b/examples/tv-app/android/App/platform-app/src/main/java/com/matter/tv/server/service/ResponseRegistry.java @@ -0,0 +1,58 @@ +package com.matter.tv.server.service; + +import android.util.Log; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; + +public class ResponseRegistry { + + private static final String TAG = "ResponseRegistry"; + + private AtomicInteger messageCounter = new AtomicInteger(); + + private Map responses = new ConcurrentHashMap<>(); + + private Map latches = new ConcurrentHashMap<>(); + + public int getNextMessageCounter() { + int counter = messageCounter.incrementAndGet(); + // MAX_VALUE used for error scenarios + if (counter == Integer.MAX_VALUE) { + counter = messageCounter.incrementAndGet(); + } + latches.put(counter, new CountDownLatch(1)); + return counter; + } + + public void waitForMessage(int counter, long timeout, TimeUnit unit) { + CountDownLatch latch = latches.get(counter); + if (latch == null) { + return; + } + try { + if (!latch.await(timeout, unit)) { + Log.i(TAG, "Timed out while waiting for response for message " + counter); + } + } catch (InterruptedException e) { + Log.i(TAG, "Interrupted while waiting for response for message " + counter); + } + } + + public void receivedMessageResponse(int counter, String response) { + CountDownLatch latch = latches.remove(counter); + if (latch == null) { + // no point adding response to memory if no one is going to read it. + return; + } + responses.put(counter, response); + latch.countDown(); + } + + public String readAndRemoveResponse(int counter) { + // caller should manage null values + return responses.remove(counter); + } +} diff --git a/examples/tv-app/android/App/platform-app/src/main/res/drawable/ic_baseline_check_24.xml b/examples/tv-app/android/App/platform-app/src/main/res/drawable/ic_baseline_check_24.xml new file mode 100644 index 00000000000000..0432fa69bb7908 --- /dev/null +++ b/examples/tv-app/android/App/platform-app/src/main/res/drawable/ic_baseline_check_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/examples/tv-app/android/App/platform-app/src/main/res/drawable/ic_baseline_clear_24.xml b/examples/tv-app/android/App/platform-app/src/main/res/drawable/ic_baseline_clear_24.xml new file mode 100644 index 00000000000000..16d6d37dd9f765 --- /dev/null +++ b/examples/tv-app/android/App/platform-app/src/main/res/drawable/ic_baseline_clear_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/examples/tv-app/android/BUILD.gn b/examples/tv-app/android/BUILD.gn index 5267c38cb0f217..e478c946d3b9d7 100644 --- a/examples/tv-app/android/BUILD.gn +++ b/examples/tv-app/android/BUILD.gn @@ -48,6 +48,8 @@ shared_library("jni") { "java/ContentAppCommandDelegate.h", "java/ContentLauncherManager.cpp", "java/ContentLauncherManager.h", + "java/DeviceCallbacks.cpp", + "java/DeviceCallbacks.h", "java/JNIDACProvider.cpp", "java/JNIDACProvider.h", "java/KeypadInputManager.cpp", @@ -60,6 +62,10 @@ shared_library("jni") { "java/MediaInputManager.h", "java/MediaPlaybackManager.cpp", "java/MediaPlaybackManager.h", + "java/MyUserPrompter-JNI.cpp", + "java/MyUserPrompter-JNI.h", + "java/MyUserPrompterResolver-JNI.cpp", + "java/MyUserPrompterResolver-JNI.h", "java/OnOffManager.cpp", "java/OnOffManager.h", "java/TVApp-JNI.cpp", @@ -72,6 +78,7 @@ shared_library("jni") { "${chip_root}/examples/tv-app/tv-common", "${chip_root}/src/app/server/java:jni", "${chip_root}/src/lib", + "${chip_root}/src/lib/support/jsontlv", "${chip_root}/third_party/inipp", ] @@ -102,7 +109,6 @@ android_library("java") { "java/src/com/tcl/chip/tvapp/ChannelManagerStub.java", "java/src/com/tcl/chip/tvapp/Clusters.java", "java/src/com/tcl/chip/tvapp/ContentAppEndpointManager.java", - "java/src/com/tcl/chip/tvapp/ContentAppEndpointManagerStub.java", "java/src/com/tcl/chip/tvapp/ContentLaunchBrandingInformation.java", "java/src/com/tcl/chip/tvapp/ContentLaunchManager.java", "java/src/com/tcl/chip/tvapp/ContentLaunchManagerStub.java", @@ -110,6 +116,7 @@ android_library("java") { "java/src/com/tcl/chip/tvapp/ContentLaunchSearchParameter.java", "java/src/com/tcl/chip/tvapp/DACProvider.java", "java/src/com/tcl/chip/tvapp/DACProviderStub.java", + "java/src/com/tcl/chip/tvapp/DeviceEventProvider.java", "java/src/com/tcl/chip/tvapp/KeypadInputManager.java", "java/src/com/tcl/chip/tvapp/KeypadInputManagerStub.java", "java/src/com/tcl/chip/tvapp/LevelManager.java", @@ -126,6 +133,8 @@ android_library("java") { "java/src/com/tcl/chip/tvapp/OnOffManagerStub.java", "java/src/com/tcl/chip/tvapp/TvApp.java", "java/src/com/tcl/chip/tvapp/TvAppCallback.java", + "java/src/com/tcl/chip/tvapp/UserPrompter.java", + "java/src/com/tcl/chip/tvapp/UserPrompterResolver.java", "java/src/com/tcl/chip/tvapp/WakeOnLanManager.java", "java/src/com/tcl/chip/tvapp/WakeOnLanManagerStub.java", ] diff --git a/examples/tv-app/android/java/AppImpl.cpp b/examples/tv-app/android/java/AppImpl.cpp index e1bed97c35296c..a0564d2efc3832 100644 --- a/examples/tv-app/android/java/AppImpl.cpp +++ b/examples/tv-app/android/java/AppImpl.cpp @@ -21,11 +21,13 @@ #include "AppImpl.h" +#include "ContentAppCommandDelegate.h" #include #include #include #include #include +#include #include #include #include @@ -46,60 +48,6 @@ using namespace chip; using namespace chip::AppPlatform; -#if CHIP_DEVICE_CONFIG_ENABLE_BOTH_COMMISSIONER_AND_COMMISSIONEE -class MyUserPrompter : public UserPrompter -{ - // tv should override this with a dialog prompt - inline void PromptForCommissionOKPermission(uint16_t vendorId, uint16_t productId, const char * commissioneeName) override - { - /* - * Called to prompt the user for consent to allow the given commissioneeName/vendorId/productId to be commissioned. - * For example "[commissioneeName] is requesting permission to cast to this TV, approve?" - * - * If user responds with OK then implementor should call CommissionerRespondOk(); - * If user responds with Cancel then implementor should call CommissionerRespondCancel(); - * - */ - GetCommissionerDiscoveryController()->Ok(); - - /** - * For Demo: Launch Prime Video App - */ - return; - } - - // tv should override this with a dialog prompt - inline void PromptForCommissionPincode(uint16_t vendorId, uint16_t productId, const char * commissioneeName) override - { - /* - * Called to prompt the user to enter the setup pincode displayed by the given commissioneeName/vendorId/productId to be - * commissioned. For example "Please enter pin displayed in casting app." - * - * If user enters with pin then implementor should call CommissionerRespondPincode(uint32_t pincode); - * If user responds with Cancel then implementor should call CommissionerRespondCancel(); - */ - - GetCommissionerDiscoveryController()->CommissionWithPincode(20202021); // dummy pin code - - /** - * For Demo: Launch Prime Video App - */ - return; - } - - // tv should override this with a dialog prompt - inline void PromptCommissioningSucceeded(uint16_t vendorId, uint16_t productId, const char * commissioneeName) override - { - return; - } - - // tv should override this with a dialog prompt - inline void PromptCommissioningFailed(const char * commissioneeName, CHIP_ERROR error) override { return; } -}; - -MyUserPrompter gMyUserPrompter; -#endif // CHIP_DEVICE_CONFIG_ENABLE_BOTH_COMMISSIONER_AND_COMMISSIONEE - #if CHIP_DEVICE_CONFIG_APP_PLATFORM_ENABLED class MyPincodeService : public PincodeService { @@ -382,12 +330,12 @@ ContentApp * ContentAppFactoryImpl::LoadContentApp(const CatalogVendorApp & vend { auto & app = mContentApps.at(i); - ChipLogProgress(DeviceLayer, " Looking next=%s ", app.GetApplicationBasicDelegate()->GetCatalogVendorApp()->applicationId); - if (app.GetApplicationBasicDelegate()->GetCatalogVendorApp()->Matches(vendorApp)) + ChipLogProgress(DeviceLayer, " Looking next=%s ", app->GetApplicationBasicDelegate()->GetCatalogVendorApp()->applicationId); + if (app->GetApplicationBasicDelegate()->GetCatalogVendorApp()->Matches(vendorApp)) { - ContentAppPlatform::GetInstance().AddContentApp(&app, &contentAppEndpoint, Span(gDataVersions[i]), + ContentAppPlatform::GetInstance().AddContentApp(app, &contentAppEndpoint, Span(gDataVersions[i]), Span(gContentAppDeviceType)); - return &app; + return app; } } ChipLogProgress(DeviceLayer, "LoadContentAppByAppId NOT FOUND catalogVendorId=%d applicationId=%s ", vendorApp.catalogVendorId, @@ -396,13 +344,13 @@ ContentApp * ContentAppFactoryImpl::LoadContentApp(const CatalogVendorApp & vend return nullptr; } -EndpointId ContentAppFactoryImpl::AddContentApp(ContentAppImpl & app) +EndpointId ContentAppFactoryImpl::AddContentApp(ContentAppImpl * app) { DataVersion dataVersionBuf[ArraySize(contentAppClusters)]; - EndpointId epId = ContentAppPlatform::GetInstance().AddContentApp(&app, &contentAppEndpoint, Span(dataVersionBuf), + EndpointId epId = ContentAppPlatform::GetInstance().AddContentApp(app, &contentAppEndpoint, Span(dataVersionBuf), Span(gContentAppDeviceType)); ChipLogProgress(DeviceLayer, "ContentAppFactoryImpl AddContentApp endpoint returned %d. Endpoint set %d", epId, - app.GetEndpointId()); + app->GetEndpointId()); mContentApps.push_back(app); return epId; } @@ -434,9 +382,9 @@ void ContentAppFactoryImpl::SendTestMessage(EndpointId epId, const char * messag ChipLogProgress(DeviceLayer, "ContentAppFactoryImpl SendTestMessage called with message %s & endpointId %d", message, epId); for (size_t i = 0; i < mContentApps.size(); ++i) { - ContentAppImpl app = mContentApps.at(i); - ChipLogProgress(DeviceLayer, "ContentAppFactoryImpl checking app with endpointId %d", app.ContentApp::GetEndpointId()); - if (app.GetEndpointId() == epId) + ContentAppImpl * app = mContentApps.at(i); + ChipLogProgress(DeviceLayer, "ContentAppFactoryImpl checking app with endpointId %d", app->GetEndpointId()); + if (app->GetEndpointId() == epId) { ChipLogProgress(DeviceLayer, "ContentAppFactoryImpl SendTestMessage endpoint found"); app::ConcreteCommandPath commandPath(epId, app::Clusters::ContentLauncher::Id, @@ -445,8 +393,8 @@ void ContentAppFactoryImpl::SendTestMessage(EndpointId epId, const char * messag app::CommandHandler commandHandler(&callback); CommandResponseHelper helper(&commandHandler, commandPath); chip::app::Clusters::ContentLauncher::Structs::BrandingInformation::Type branding; - app.GetContentLauncherDelegate()->HandleLaunchUrl(helper, CharSpan::fromCharString(message), - CharSpan::fromCharString("Temp Display"), branding); + app->GetContentLauncherDelegate()->HandleLaunchUrl(helper, CharSpan::fromCharString(message), + CharSpan::fromCharString("Temp Display"), branding); } } } @@ -456,19 +404,29 @@ void ContentAppFactoryImpl::SendTestMessage(EndpointId epId, const char * messag #endif // CHIP_DEVICE_CONFIG_APP_PLATFORM_ENABLED -CHIP_ERROR InitVideoPlayerPlatform() +CHIP_ERROR InitVideoPlayerPlatform(JNIMyUserPrompter * userPrompter, jobject contentAppEndpointManager) { #if CHIP_DEVICE_CONFIG_APP_PLATFORM_ENABLED ContentAppPlatform::GetInstance().SetupAppPlatform(); ContentAppPlatform::GetInstance().SetContentAppFactory(&gFactory); + + ChipLogProgress(AppServer, "Starting registration of command handler delegates"); + for (size_t i = 0; i < ArraySize(contentAppClusters); i++) + { + ContentAppCommandDelegate * delegate = + new ContentAppCommandDelegate(contentAppEndpointManager, contentAppClusters[i].clusterId); + chip::app::InteractionModelEngine::GetInstance()->RegisterCommandHandler(delegate); + ChipLogProgress(AppServer, "Registered command handler delegate for cluster %d", contentAppClusters[i].clusterId); + } + #endif // CHIP_DEVICE_CONFIG_APP_PLATFORM_ENABLED #if CHIP_DEVICE_CONFIG_ENABLE_BOTH_COMMISSIONER_AND_COMMISSIONEE CommissionerDiscoveryController * cdc = GetCommissionerDiscoveryController(); - if (cdc != nullptr) + if (cdc != nullptr && userPrompter != nullptr) { cdc->SetPincodeService(&gMyPincodeService); - cdc->SetUserPrompter(&gMyUserPrompter); + cdc->SetUserPrompter(userPrompter); cdc->SetPostCommissioningListener(&gMyPostCommissioningListener); } @@ -496,13 +454,18 @@ CHIP_ERROR PreServerInit() EndpointId AddContentApp(const char * szVendorName, uint16_t vendorId, const char * szApplicationName, uint16_t productId, const char * szApplicationVersion, jobject manager) { - ContentAppImpl app = - ContentAppImpl(szVendorName, vendorId, szApplicationName, productId, szApplicationVersion, "34567890", manager); +#if CHIP_DEVICE_CONFIG_APP_PLATFORM_ENABLED + ContentAppImpl * app = + new ContentAppImpl(szVendorName, vendorId, szApplicationName, productId, szApplicationVersion, "20202021", manager); ChipLogProgress(DeviceLayer, "AppImpl: AddContentApp vendorId=%d applicationName=%s ", vendorId, szApplicationName); return gFactory.AddContentApp(app); +#endif // CHIP_DEVICE_CONFIG_APP_PLATFORM_ENABLED + return 0; } void SendTestMessage(EndpointId epID, const char * message) { +#if CHIP_DEVICE_CONFIG_APP_PLATFORM_ENABLED gFactory.SendTestMessage(epID, message); +#endif // CHIP_DEVICE_CONFIG_APP_PLATFORM_ENABLED } diff --git a/examples/tv-app/android/java/AppImpl.h b/examples/tv-app/android/java/AppImpl.h index c1631bd80673fa..98a6d61798bc07 100644 --- a/examples/tv-app/android/java/AppImpl.h +++ b/examples/tv-app/android/java/AppImpl.h @@ -42,6 +42,7 @@ #include "ContentAppCommandDelegate.h" #include "KeypadInputManager.h" #include "MediaPlaybackManager.h" +#include "MyUserPrompter-JNI.h" #include #include #include @@ -51,7 +52,7 @@ #include #include -CHIP_ERROR InitVideoPlayerPlatform(); +CHIP_ERROR InitVideoPlayerPlatform(JNIMyUserPrompter * userPrompter, jobject contentAppEndpointManager); CHIP_ERROR PreServerInit(); EndpointId AddContentApp(const char * szVendorName, uint16_t vendorId, const char * szApplicationName, uint16_t productId, const char * szApplicationVersion, jobject manager); @@ -130,7 +131,7 @@ class DLL_EXPORT ContentAppFactoryImpl : public ContentAppFactory // Lookup ContentApp for this catalog id / app id and load it ContentApp * LoadContentApp(const CatalogVendorApp & vendorApp) override; - EndpointId AddContentApp(ContentAppImpl & app); + EndpointId AddContentApp(ContentAppImpl * app); void SendTestMessage(EndpointId epID, const char * message); @@ -142,11 +143,11 @@ class DLL_EXPORT ContentAppFactoryImpl : public ContentAppFactory CHIP_ERROR ConvertToPlatformCatalogVendorApp(const CatalogVendorApp & sourceApp, CatalogVendorApp * destinationApp) override; protected: - std::vector mContentApps{ - ContentAppImpl("Vendor1", 1, "exampleid", 11, "Version1", "34567890", nullptr), - ContentAppImpl("Vendor2", 65521, "exampleString", 32768, "Version2", "20202021", nullptr), - ContentAppImpl("Vendor3", 9050, "App3", 22, "Version3", "20202021", nullptr), - ContentAppImpl("TestSuiteVendor", 1111, "applicationId", 22, "v2", "20202021", nullptr) + std::vector mContentApps{ + new ContentAppImpl("Vendor1", 1, "exampleid", 11, "Version1", "20202021", nullptr), + new ContentAppImpl("Vendor2", 65520, "exampleString", 32768, "Version2", "20202021", nullptr), + new ContentAppImpl("Vendor3", 9050, "App3", 22, "Version3", "20202021", nullptr), + new ContentAppImpl("TestSuiteVendor", 1111, "applicationId", 22, "v2", "20202021", nullptr) }; }; diff --git a/examples/tv-app/android/java/ContentAppCommandDelegate.cpp b/examples/tv-app/android/java/ContentAppCommandDelegate.cpp index a4d23881b6be3f..1cc25f57ee6098 100644 --- a/examples/tv-app/android/java/ContentAppCommandDelegate.cpp +++ b/examples/tv-app/android/java/ContentAppCommandDelegate.cpp @@ -22,14 +22,21 @@ #include "ContentAppCommandDelegate.h" +#include +#include #include #include #include #include +#include +#include namespace chip { namespace AppPlatform { +using CommandHandlerInterface = chip::app::CommandHandlerInterface; +using LaunchResponseType = chip::app::Clusters::ContentLauncher::Commands::LaunchResponse::Type; + const char * ContentAppCommandDelegate::sendCommand(chip::EndpointId epID, std::string commandPayload) { // to support the hardcoded sample apps. @@ -55,5 +62,91 @@ const char * ContentAppCommandDelegate::sendCommand(chip::EndpointId epID, std:: return ret; } +void ContentAppCommandDelegate::InvokeCommand(CommandHandlerInterface::HandlerContext & handlerContext) +{ + if (handlerContext.mRequestPath.mEndpointId >= FIXED_ENDPOINT_COUNT) + { + TLV::TLVReader readerForJson; + readerForJson.Init(handlerContext.mPayload); + + CHIP_ERROR err = CHIP_NO_ERROR; + Json::Value json; + err = TlvToJson(readerForJson, json); + if (err != CHIP_NO_ERROR) + { + // TODO : Add an interface to let the apps know a message came but there was a serialization error. + handlerContext.SetCommandNotHandled(); + return; + } + + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + UtfString jsonString(env, JsonToString(json).c_str()); + + ChipLogProgress(Zcl, "ContentAppCommandDelegate::InvokeCommand send command being called with payload %s", + JsonToString(json).c_str()); + + jstring resp = (jstring) env->CallObjectMethod( + mContentAppEndpointManager, mSendCommandMethod, static_cast(handlerContext.mRequestPath.mEndpointId), + static_cast(handlerContext.mRequestPath.mClusterId), static_cast(handlerContext.mRequestPath.mCommandId), + jsonString.jniValue()); + if (env->ExceptionCheck()) + { + ChipLogError(Zcl, "Java exception in ContentAppCommandDelegate::sendCommand"); + env->ExceptionDescribe(); + env->ExceptionClear(); + FormatResponseData(handlerContext, "{\"value\":{}}"); + return; + } + const char * respStr = env->GetStringUTFChars(resp, 0); + ChipLogProgress(Zcl, "ContentAppCommandDelegate::InvokeCommand got response %s", respStr); + FormatResponseData(handlerContext, respStr); + } + else + { + handlerContext.SetCommandNotHandled(); + } +} + +void ContentAppCommandDelegate::FormatResponseData(CommandHandlerInterface::HandlerContext & handlerContext, const char * response) +{ + Json::Reader reader; + Json::Value resJson; + reader.parse(response, resJson); + Json::Value value = resJson["value"]; + + switch (handlerContext.mRequestPath.mClusterId) + { + case app::Clusters::ContentLauncher::Id: { + LaunchResponseType launchResponse; + if (value["0"].empty()) + { + launchResponse.status = chip::app::Clusters::ContentLauncher::ContentLaunchStatusEnum::kAuthFailed; + } + else + { + launchResponse.status = static_cast(value["0"].asInt()); + if (!value["1"].empty()) + { + launchResponse.data = chip::MakeOptional(CharSpan::fromCharString(value["1"].asCString())); + } + } + handlerContext.mCommandHandler.AddResponseData(handlerContext.mRequestPath, launchResponse); + handlerContext.SetCommandHandled(); + break; + } + + // case app::Clusters::TargetNavigator::Id: + // break; + + // case app::Clusters::MediaPlayback::Id: + // break; + + // case app::Clusters::AccountLogin::Id: + // break; + default: + handlerContext.SetCommandNotHandled(); + } +} + } // namespace AppPlatform } // namespace chip diff --git a/examples/tv-app/android/java/ContentAppCommandDelegate.h b/examples/tv-app/android/java/ContentAppCommandDelegate.h index 2d45906c51049b..908b2e4d1cc0e9 100644 --- a/examples/tv-app/android/java/ContentAppCommandDelegate.h +++ b/examples/tv-app/android/java/ContentAppCommandDelegate.h @@ -22,6 +22,8 @@ #pragma once +#include +#include #include #include #include @@ -29,10 +31,22 @@ namespace chip { namespace AppPlatform { -class ContentAppCommandDelegate +using CommandHandlerInterface = chip::app::CommandHandlerInterface; + +class ContentAppCommandDelegate : public CommandHandlerInterface { public: - ContentAppCommandDelegate(jobject manager) + ContentAppCommandDelegate(jobject manager, ClusterId aClusterId) : CommandHandlerInterface(Optional(), aClusterId) + { + if (manager == nullptr) + { + // To support the existing hardcoded sample apps. + return; + } + InitializeJNIObjects(manager); + }; + + ContentAppCommandDelegate(jobject manager) : CommandHandlerInterface(Optional(), app::Clusters::ContentLauncher::Id) { if (manager == nullptr) @@ -40,7 +54,16 @@ class ContentAppCommandDelegate // To support the existing hardcoded sample apps. return; } + InitializeJNIObjects(manager); + }; + + void InvokeCommand(CommandHandlerInterface::HandlerContext & handlerContext) override; + const char * sendCommand(chip::EndpointId epID, std::string commandPayload); + +private: + void InitializeJNIObjects(jobject manager) + { JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Failed to GetEnvForCurrentThread for ContentAppEndpointManager")); @@ -53,17 +76,16 @@ class ContentAppCommandDelegate ChipLogError(Zcl, "Failed to get ContentAppEndpointManager Java class")); mSendCommandMethod = - env->GetMethodID(ContentAppEndpointManagerClass, "sendCommand", "(ILjava/lang/String;)Ljava/lang/String;"); + env->GetMethodID(ContentAppEndpointManagerClass, "sendCommand", "(IIILjava/lang/String;)Ljava/lang/String;"); if (mSendCommandMethod == nullptr) { ChipLogError(Zcl, "Failed to access ContentAppEndpointManager 'sendCommand' method"); env->ExceptionClear(); } - }; + } - const char * sendCommand(chip::EndpointId epID, std::string commandPayload); + void FormatResponseData(CommandHandlerInterface::HandlerContext & handlerContext, const char * response); -private: jobject mContentAppEndpointManager = nullptr; jmethodID mSendCommandMethod = nullptr; }; diff --git a/examples/tv-app/android/java/DeviceCallbacks.cpp b/examples/tv-app/android/java/DeviceCallbacks.cpp new file mode 100644 index 00000000000000..3388d216c60d67 --- /dev/null +++ b/examples/tv-app/android/java/DeviceCallbacks.cpp @@ -0,0 +1,107 @@ +/* + * + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +/** + * @file DeviceCallbacks.cpp + * + * Implements all the callbacks to the application from the CHIP Stack + * + **/ +#include "DeviceCallbacks.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace ::chip; +using namespace ::chip::Inet; +using namespace ::chip::System; +using namespace ::chip::DeviceLayer; +using namespace ::chip::Logging; +namespace { +void OnPlatformEventWrapper(const chip::DeviceLayer::ChipDeviceEvent * event, intptr_t arg) +{ + DeviceCallbacks * commissionMgr = reinterpret_cast(arg); + commissionMgr->OnPlatformEvent(event); +} +} // namespace +void DeviceCallbacks::NewManager(jobject manager) +{ + ChipLogProgress(AppServer, "TV Android App: set ChipDeviceEvent delegate"); + DeviceCallbacks * mgr = new DeviceCallbacks(); + PlatformMgr().AddEventHandler(OnPlatformEventWrapper, reinterpret_cast(mgr)); + mgr->InitializeWithObjects(manager); +} + +void DeviceCallbacks::InitializeWithObjects(jobject provider) +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + VerifyOrReturn(env != nullptr, ChipLogError(AppServer, "Failed to GetEnvForCurrentThread for DeviceEventProvider")); + + mProvider = env->NewGlobalRef(provider); + VerifyOrReturn(mProvider != nullptr, ChipLogError(AppServer, "Failed to NewGlobalRef DeviceEventProvider")); + jclass deviceEventProviderCls = env->GetObjectClass(mProvider); + VerifyOrReturn(deviceEventProviderCls != nullptr, ChipLogError(AppServer, "Failed to get KeypadInputManager Java class")); + + mCommissioningCompleteMethod = env->GetMethodID(deviceEventProviderCls, "onCommissioningComplete", "()V"); + if (mCommissioningCompleteMethod == nullptr) + { + ChipLogError(AppServer, "Failed to access DeviceEventProvider 'onCommissioningComplete' method"); + env->ExceptionClear(); + } +} + +void DeviceCallbacks::OnPlatformEvent(const ChipDeviceEvent * event) +{ + switch (event->Type) + { + case DeviceEventType::kCommissioningComplete: + OnCommissioningComplete(event); + break; + case DeviceEventType::kSessionEstablished: + OnSessionEstablished(event); + break; + } +} + +void DeviceCallbacks::OnSessionEstablished(const ChipDeviceEvent * event) +{ + if (event->SessionEstablished.IsCommissioner) + { + ChipLogProgress(AppServer, "Commissioner detected!"); + } +} +void DeviceCallbacks::OnCommissioningComplete(const ChipDeviceEvent * event) +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Failed to GetEnvForCurrentThread for DeviceEventProvider")); + env->CallVoidMethod(mProvider, mCommissioningCompleteMethod); + if (env->ExceptionCheck()) + { + ChipLogError(AppServer, "Java exception in DeviceEventProvider::onCommissioningComplete"); + env->ExceptionDescribe(); + env->ExceptionClear(); + } +} diff --git a/examples/tv-app/android/java/DeviceCallbacks.h b/examples/tv-app/android/java/DeviceCallbacks.h new file mode 100644 index 00000000000000..15c336a10a9156 --- /dev/null +++ b/examples/tv-app/android/java/DeviceCallbacks.h @@ -0,0 +1,35 @@ +/* + * + * Copyright (c) 2022 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. + */ +#pragma once + +#include "lib/support/logging/CHIPLogging.h" +#include + +class DeviceCallbacks +{ + +public: + static void NewManager(jobject manager); + void OnPlatformEvent(const chip::DeviceLayer::ChipDeviceEvent * event); + void InitializeWithObjects(jobject manager); + +private: + jobject mProvider = nullptr; + jmethodID mCommissioningCompleteMethod = nullptr; + void OnSessionEstablished(const chip::DeviceLayer::ChipDeviceEvent * event); + void OnCommissioningComplete(const chip::DeviceLayer::ChipDeviceEvent * event); +}; diff --git a/examples/tv-app/android/java/MyUserPrompter-JNI.cpp b/examples/tv-app/android/java/MyUserPrompter-JNI.cpp new file mode 100644 index 00000000000000..29fff989fdff57 --- /dev/null +++ b/examples/tv-app/android/java/MyUserPrompter-JNI.cpp @@ -0,0 +1,223 @@ +/* + * + * Copyright (c) 2022 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. + */ + +#include "MyUserPrompter-JNI.h" +#include +#include +#include +#include +#include + +using namespace chip; + +JNIMyUserPrompter::JNIMyUserPrompter(jobject provider) +{ + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Failed to GetEnvForCurrentThread for JNIMyUserPrompter")); + + mJNIMyUserPrompterObject = env->NewGlobalRef(provider); + VerifyOrReturn(mJNIMyUserPrompterObject != nullptr, ChipLogError(Zcl, "Failed to NewGlobalRef JNIMyUserPrompter")); + + jclass JNIMyUserPrompterClass = env->GetObjectClass(provider); + VerifyOrReturn(JNIMyUserPrompterClass != nullptr, ChipLogError(Zcl, "Failed to get JNIMyUserPrompter Java class")); + + mPromptForCommissionOKPermissionMethod = + env->GetMethodID(JNIMyUserPrompterClass, "promptForCommissionOkPermission", "(IILjava/lang/String;)V"); + if (mPromptForCommissionOKPermissionMethod == nullptr) + { + ChipLogError(Zcl, "Failed to access JNIMyUserPrompter 'promptForCommissionOkPermission' method"); + env->ExceptionClear(); + } + + mPromptForCommissionPincodeMethod = + env->GetMethodID(JNIMyUserPrompterClass, "promptForCommissionPinCode", "(IILjava/lang/String;)V"); + if (mPromptForCommissionPincodeMethod == nullptr) + { + ChipLogError(Zcl, "Failed to access JNIMyUserPrompter 'promptForCommissionPinCode' method"); + env->ExceptionClear(); + } + + mPromptCommissioningSucceededMethod = + env->GetMethodID(JNIMyUserPrompterClass, "promptCommissioningSucceeded", "(IILjava/lang/String;)V"); + if (mPromptCommissioningSucceededMethod == nullptr) + { + ChipLogError(Zcl, "Failed to access JNIMyUserPrompter 'promptCommissioningSucceeded' method"); + env->ExceptionClear(); + } + + mPromptCommissioningFailedMethod = + env->GetMethodID(JNIMyUserPrompterClass, "promptCommissioningFailed", "(Ljava/lang/String;Ljava/lang/String;)V"); + if (mPromptCommissioningFailedMethod == nullptr) + { + ChipLogError(Zcl, "Failed to access JNIMyUserPrompter 'promptCommissioningFailed' method"); + env->ExceptionClear(); + } +} + +/* + * Called to prompt the user for consent to allow the given commissioneeName/vendorId/productId to be commissioned. + * For example "[commissioneeName] is requesting permission to cast to this TV, approve?" + * + * If user responds with OK then implementor calls UserPrompterResolver.OnPromptAccepted; + * If user responds with Cancel then implementor calls calls UserPrompterResolver.OnPromptDeclined(); + * + */ +void JNIMyUserPrompter::PromptForCommissionOKPermission(uint16_t vendorId, uint16_t productId, const char * commissioneeName) +{ + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + std::string stringCommissioneeName(commissioneeName); + + VerifyOrExit(mJNIMyUserPrompterObject != nullptr, err = CHIP_ERROR_INCORRECT_STATE); + VerifyOrExit(mPromptForCommissionOKPermissionMethod != nullptr, err = CHIP_ERROR_INCORRECT_STATE); + VerifyOrExit(env != nullptr, err = CHIP_JNI_ERROR_NO_ENV); + + { + UtfString jniCommissioneeName(env, stringCommissioneeName.data()); + env->ExceptionClear(); + env->CallVoidMethod(mJNIMyUserPrompterObject, mPromptForCommissionOKPermissionMethod, static_cast(vendorId), + static_cast(productId), jniCommissioneeName.jniValue()); + if (env->ExceptionCheck()) + { + ChipLogError(DeviceLayer, "Java exception in PromptForCommissionOKPermission"); + env->ExceptionDescribe(); + env->ExceptionClear(); + err = CHIP_ERROR_INCORRECT_STATE; + goto exit; + } + } + +exit: + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "PromptForCommissionOKPermission error: %s", err.AsString()); + } +} + +/* + * Called to prompt the user to enter the setup pincode displayed by the given commissioneeName/vendorId/productId to be + * commissioned. For example "Please enter pin displayed in casting app." + * + * If user responds with OK then implementor calls UserPrompterResolver.OnPinCodeEntered(); + * If user responds with Cancel then implementor calls UserPrompterResolver.OnPinCodeDeclined(); + * + */ +void JNIMyUserPrompter::PromptForCommissionPincode(uint16_t vendorId, uint16_t productId, const char * commissioneeName) +{ + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + std::string stringCommissioneeName(commissioneeName); + + VerifyOrExit(mJNIMyUserPrompterObject != nullptr, err = CHIP_ERROR_INCORRECT_STATE); + VerifyOrExit(mPromptForCommissionPincodeMethod != nullptr, err = CHIP_ERROR_INCORRECT_STATE); + VerifyOrExit(env != nullptr, err = CHIP_JNI_ERROR_NO_ENV); + + { + UtfString jniCommissioneeName(env, stringCommissioneeName.data()); + env->ExceptionClear(); + env->CallVoidMethod(mJNIMyUserPrompterObject, mPromptForCommissionPincodeMethod, static_cast(vendorId), + static_cast(productId), jniCommissioneeName.jniValue()); + if (env->ExceptionCheck()) + { + ChipLogError(Zcl, "Java exception in PromptForCommissionPincode"); + env->ExceptionDescribe(); + env->ExceptionClear(); + err = CHIP_ERROR_INCORRECT_STATE; + goto exit; + } + } + +exit: + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "PromptForCommissionPincode error: %s", err.AsString()); + } +} + +/* + * Called to notify the user that commissioning succeeded. It can be in form of UI Notification. + */ +void JNIMyUserPrompter::PromptCommissioningSucceeded(uint16_t vendorId, uint16_t productId, const char * commissioneeName) +{ + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + std::string stringCommissioneeName(commissioneeName); + + VerifyOrExit(mJNIMyUserPrompterObject != nullptr, err = CHIP_ERROR_INCORRECT_STATE); + VerifyOrExit(mPromptCommissioningSucceededMethod != nullptr, err = CHIP_ERROR_INCORRECT_STATE); + VerifyOrExit(env != nullptr, err = CHIP_JNI_ERROR_NO_ENV); + + { + UtfString jniCommissioneeName(env, stringCommissioneeName.data()); + env->ExceptionClear(); + env->CallVoidMethod(mJNIMyUserPrompterObject, mPromptCommissioningSucceededMethod, static_cast(vendorId), + static_cast(productId), jniCommissioneeName.jniValue()); + + if (env->ExceptionCheck()) + { + ChipLogError(Zcl, "Java exception in PromptCommissioningSucceeded"); + env->ExceptionDescribe(); + env->ExceptionClear(); + err = CHIP_ERROR_INCORRECT_STATE; + goto exit; + } + } + +exit: + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "PromptCommissioningSucceeded error: %s", err.AsString()); + } +} + +/* + * Called to notify the user that commissioning failed. It can be in form of UI Notification. + */ +void JNIMyUserPrompter::PromptCommissioningFailed(const char * commissioneeName, CHIP_ERROR error) +{ + CHIP_ERROR err = CHIP_NO_ERROR; + JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread(); + std::string stringCommissioneeName(commissioneeName); + + VerifyOrExit(mJNIMyUserPrompterObject != nullptr, err = CHIP_ERROR_INCORRECT_STATE); + VerifyOrExit(mPromptCommissioningFailedMethod != nullptr, err = CHIP_ERROR_INCORRECT_STATE); + VerifyOrExit(env != nullptr, err = CHIP_JNI_ERROR_NO_ENV); + + { + std::string stringError(error.AsString()); + UtfString jniCommissioneeName(env, stringCommissioneeName.data()); + UtfString jniCommissioneeError(env, stringError.data()); + env->ExceptionClear(); + env->CallVoidMethod(mJNIMyUserPrompterObject, mPromptCommissioningFailedMethod, jniCommissioneeName.jniValue(), + jniCommissioneeError.jniValue()); + + if (env->ExceptionCheck()) + { + ChipLogError(Zcl, "Java exception in PromptCommissioningFailed"); + env->ExceptionDescribe(); + env->ExceptionClear(); + err = CHIP_ERROR_INCORRECT_STATE; + goto exit; + } + } + +exit: + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "PromptCommissioningFailed error: %s", err.AsString()); + } +} diff --git a/examples/tv-app/android/java/MyUserPrompter-JNI.h b/examples/tv-app/android/java/MyUserPrompter-JNI.h new file mode 100644 index 00000000000000..cecdcb305643d2 --- /dev/null +++ b/examples/tv-app/android/java/MyUserPrompter-JNI.h @@ -0,0 +1,38 @@ +/* + * + * Copyright (c) 2022 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. + */ +#pragma once + +#include "CommissionerMain.h" +#include "lib/support/logging/CHIPLogging.h" +#include + +class JNIMyUserPrompter : public UserPrompter +{ +public: + JNIMyUserPrompter(jobject prompter); + void PromptForCommissionOKPermission(uint16_t vendorId, uint16_t productId, const char * commissioneeName) override; + void PromptForCommissionPincode(uint16_t vendorId, uint16_t productId, const char * commissioneeName) override; + void PromptCommissioningSucceeded(uint16_t vendorId, uint16_t productId, const char * commissioneeName) override; + void PromptCommissioningFailed(const char * commissioneeName, CHIP_ERROR error) override; + +private: + jobject mJNIMyUserPrompterObject = nullptr; + jmethodID mPromptForCommissionOKPermissionMethod = nullptr; + jmethodID mPromptForCommissionPincodeMethod = nullptr; + jmethodID mPromptCommissioningSucceededMethod = nullptr; + jmethodID mPromptCommissioningFailedMethod = nullptr; +}; diff --git a/examples/tv-app/android/java/MyUserPrompterResolver-JNI.cpp b/examples/tv-app/android/java/MyUserPrompterResolver-JNI.cpp new file mode 100644 index 00000000000000..3c9315d1bae618 --- /dev/null +++ b/examples/tv-app/android/java/MyUserPrompterResolver-JNI.cpp @@ -0,0 +1,62 @@ +/* + * + * Copyright (c) 2022 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. + */ + +#include "MyUserPrompterResolver-JNI.h" +#include "TvApp-JNI.h" +#include +#include +#include +#include +#include + +using namespace chip; + +#define JNI_METHOD(RETURN, METHOD_NAME) \ + extern "C" JNIEXPORT RETURN JNICALL Java_com_tcl_chip_tvapp_UserPrompterResolver_##METHOD_NAME + +JNI_METHOD(void, OnPinCodeEntered)(JNIEnv *, jobject, jint jPinCode) +{ +#if CHIP_DEVICE_CONFIG_ENABLE_BOTH_COMMISSIONER_AND_COMMISSIONEE + uint32_t pinCode = (uint32_t) jPinCode; + ChipLogProgress(Zcl, "OnPinCodeEntered %d", pinCode); + GetCommissionerDiscoveryController()->CommissionWithPincode(pinCode); +#endif +} + +JNI_METHOD(void, OnPinCodeDeclined)(JNIEnv *, jobject) +{ +#if CHIP_DEVICE_CONFIG_ENABLE_BOTH_COMMISSIONER_AND_COMMISSIONEE + ChipLogProgress(Zcl, "OnPinCodeDeclined"); + GetCommissionerDiscoveryController()->Cancel(); +#endif +} + +JNI_METHOD(void, OnPromptAccepted)(JNIEnv *, jobject) +{ +#if CHIP_DEVICE_CONFIG_ENABLE_BOTH_COMMISSIONER_AND_COMMISSIONEE + ChipLogProgress(Zcl, "OnPromptAccepted"); + GetCommissionerDiscoveryController()->Ok(); +#endif +} + +JNI_METHOD(void, OnPromptDeclined)(JNIEnv *, jobject) +{ +#if CHIP_DEVICE_CONFIG_ENABLE_BOTH_COMMISSIONER_AND_COMMISSIONEE + ChipLogProgress(Zcl, "OnPromptDeclined"); + GetCommissionerDiscoveryController()->Cancel(); +#endif +} diff --git a/examples/tv-app/android/java/MyUserPrompterResolver-JNI.h b/examples/tv-app/android/java/MyUserPrompterResolver-JNI.h new file mode 100644 index 00000000000000..2b14ca35873683 --- /dev/null +++ b/examples/tv-app/android/java/MyUserPrompterResolver-JNI.h @@ -0,0 +1,25 @@ +/* + * + * Copyright (c) 2022 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. + */ +#pragma once + +#include "CommissionerMain.h" +#include "lib/support/logging/CHIPLogging.h" +#include + +class JNIMyUserPrompterResolver +{ +}; diff --git a/examples/tv-app/android/java/TVApp-JNI.cpp b/examples/tv-app/android/java/TVApp-JNI.cpp index 2c02e5f24f98c1..455f1d9da19eab 100644 --- a/examples/tv-app/android/java/TVApp-JNI.cpp +++ b/examples/tv-app/android/java/TVApp-JNI.cpp @@ -20,12 +20,14 @@ #include "AppImpl.h" #include "ChannelManager.h" #include "ContentLauncherManager.h" +#include "DeviceCallbacks.h" #include "JNIDACProvider.h" #include "KeypadInputManager.h" #include "LevelManager.h" #include "LowPowerManager.h" #include "MediaInputManager.h" #include "MediaPlaybackManager.h" +#include "MyUserPrompter-JNI.h" #include "OnOffManager.h" #include "WakeOnLanManager.h" #include "credentials/DeviceAttestationCredsProvider.h" @@ -47,6 +49,7 @@ using namespace chip::Credentials; #define JNI_METHOD(RETURN, METHOD_NAME) extern "C" JNIEXPORT RETURN JNICALL Java_com_tcl_chip_tvapp_TvApp_##METHOD_NAME TvAppJNI TvAppJNI::sInstance; +JNIMyUserPrompter * userPrompter = nullptr; void TvAppJNI::InitializeWithObjects(jobject app) { @@ -132,6 +135,11 @@ JNI_METHOD(void, setChannelManager)(JNIEnv *, jobject, jint endpoint, jobject ma ChannelManager::NewManager(endpoint, manager); } +JNI_METHOD(void, setUserPrompter)(JNIEnv *, jobject, jobject prompter) +{ + userPrompter = new JNIMyUserPrompter(prompter); +} + JNI_METHOD(void, setDACProvider)(JNIEnv *, jobject, jobject provider) { if (!chip::Credentials::IsDeviceAttestationCredentialsProviderSet()) @@ -149,12 +157,12 @@ JNI_METHOD(void, preServerInit)(JNIEnv *, jobject app) PreServerInit(); } -JNI_METHOD(void, postServerInit)(JNIEnv *, jobject app) +JNI_METHOD(void, postServerInit)(JNIEnv *, jobject app, jobject contentAppEndpointManager) { chip::DeviceLayer::StackLock lock; ChipLogProgress(Zcl, "TvAppJNI::postServerInit"); - InitVideoPlayerPlatform(); + InitVideoPlayerPlatform(userPrompter, contentAppEndpointManager); } JNI_METHOD(void, setOnOffManager)(JNIEnv *, jobject, jint endpoint, jobject manager) @@ -177,6 +185,11 @@ JNI_METHOD(jboolean, setCurrentLevel)(JNIEnv *, jobject, jint endpoint, jboolean return LevelManager::SetLevel(endpoint, value); } +JNI_METHOD(void, setChipDeviceEventProvider)(JNIEnv *, jobject, jobject provider) +{ + DeviceCallbacks::NewManager(provider); +} + JNI_METHOD(jint, addContentApp) (JNIEnv *, jobject, jstring vendorName, jint vendorId, jstring appName, jint productId, jstring appVersion, jobject manager) { diff --git a/examples/tv-app/android/java/src/com/tcl/chip/tvapp/Clusters.java b/examples/tv-app/android/java/src/com/tcl/chip/tvapp/Clusters.java index 37fd495fcff7e6..e32cff9fb29f90 100644 --- a/examples/tv-app/android/java/src/com/tcl/chip/tvapp/Clusters.java +++ b/examples/tv-app/android/java/src/com/tcl/chip/tvapp/Clusters.java @@ -128,7 +128,7 @@ public class Clusters { public static final int ClusterId_ApplicationLauncher = 0x0000050C; public static final int ClusterId_ApplicationBasic = 0x0000050D; public static final int ClusterId_AccountLogin = 0x0000050E; - public static final int ClusterId_TestCluster = 0x0000050F; + public static final int ClusterId_TestCluster = 0xFFF1FC05; public static final int ClusterId_Messaging = 0x00000703; public static final int ClusterId_ApplianceIdentification = 0x00000B00; public static final int ClusterId_MeterIdentification = 0x00000B01; diff --git a/examples/tv-app/android/java/src/com/tcl/chip/tvapp/ContentAppEndpointManager.java b/examples/tv-app/android/java/src/com/tcl/chip/tvapp/ContentAppEndpointManager.java index 09bf1f0a0f8b54..119ff8bd231f5f 100644 --- a/examples/tv-app/android/java/src/com/tcl/chip/tvapp/ContentAppEndpointManager.java +++ b/examples/tv-app/android/java/src/com/tcl/chip/tvapp/ContentAppEndpointManager.java @@ -2,5 +2,5 @@ public interface ContentAppEndpointManager { - public String sendCommand(int endpointId, String commandPayload); + public String sendCommand(int endpointId, int clusterId, int commandId, String commandPayload); } diff --git a/examples/tv-app/android/java/src/com/tcl/chip/tvapp/ContentAppEndpointManagerStub.java b/examples/tv-app/android/java/src/com/tcl/chip/tvapp/ContentAppEndpointManagerStub.java deleted file mode 100644 index 3de920ef95f938..00000000000000 --- a/examples/tv-app/android/java/src/com/tcl/chip/tvapp/ContentAppEndpointManagerStub.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.tcl.chip.tvapp; - -public class ContentAppEndpointManagerStub implements ContentAppEndpointManager { - - ContentAppEndpointManager delegate; - - public ContentAppEndpointManagerStub(ContentAppEndpointManager delegate) { - this.delegate = delegate; - } - - @Override - public String sendCommand(int endpointId, String commandPayload) { - return delegate.sendCommand(endpointId, commandPayload); - } -} diff --git a/examples/tv-app/android/java/src/com/tcl/chip/tvapp/DeviceEventProvider.java b/examples/tv-app/android/java/src/com/tcl/chip/tvapp/DeviceEventProvider.java new file mode 100644 index 00000000000000..d4e4fd8efff121 --- /dev/null +++ b/examples/tv-app/android/java/src/com/tcl/chip/tvapp/DeviceEventProvider.java @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ +package com.tcl.chip.tvapp; + +public interface DeviceEventProvider { + void onCommissioningComplete(); +} diff --git a/examples/tv-app/android/java/src/com/tcl/chip/tvapp/MediaPlaybackManagerStub.java b/examples/tv-app/android/java/src/com/tcl/chip/tvapp/MediaPlaybackManagerStub.java index 9e7c1d7bdca3ba..1c6a003c31d72e 100755 --- a/examples/tv-app/android/java/src/com/tcl/chip/tvapp/MediaPlaybackManagerStub.java +++ b/examples/tv-app/android/java/src/com/tcl/chip/tvapp/MediaPlaybackManagerStub.java @@ -26,6 +26,11 @@ public class MediaPlaybackManagerStub implements MediaPlaybackManager { private final String TAG = MediaPlaybackManagerStub.class.getSimpleName(); private int endpoint; + private int playbackState = PLAYBACK_STATE_PLAYING; + private int playbackSpeed = 1; + private long playbackPosition = 0; + private long playbackDuration = 5 * 60 * 1000; + private long startTime = 100; public MediaPlaybackManagerStub(int endpoint) { this.endpoint = endpoint; @@ -36,27 +41,27 @@ public long getAttributes(int attributesId) { switch (attributesId) { case ATTRIBUTE_PLAYBACK_STATE: Log.d(TAG, "getAttributes CurrentState at " + endpoint); - return PLAYBACK_STATE_PLAYING; + return playbackState; case ATTRIBUTE_PLAYBACK_START_TIME: Log.d(TAG, "getAttributes StartTime at " + endpoint); - return 100; + return startTime; case ATTRIBUTE_PLAYBACK_DURATION: Log.d(TAG, "getAttributes Duration at " + endpoint); - return 5 * 60 * 1000; + return playbackDuration; case ATTRIBUTE_PLAYBACK_SPEED: Log.d(TAG, "getAttributes SampledPosition PlaybackSpeed at " + endpoint); - return 10000; + return playbackSpeed; case ATTRIBUTE_PLAYBACK_SEEK_RANGE_END: Log.d(TAG, "getAttributes SampledPosition SeekRangeEnd at " + endpoint); - return 5 * 60 * 1000; + return playbackDuration; case ATTRIBUTE_PLAYBACK_SEEK_RANGE_START: Log.d(TAG, "getAttributes SampledPosition SeekRangeStart at " + endpoint); - return 200; + return startTime; } return -1; @@ -64,49 +69,94 @@ public long getAttributes(int attributesId) { @Override public int request(int cmd, long parameter) { + long newPosition; switch (cmd) { case REQUEST_PLAY: Log.d(TAG, "request Play at " + endpoint); + playbackState = PLAYBACK_STATE_PLAYING; + playbackSpeed = 1; + return RESPONSE_STATUS_SUCCESS; case REQUEST_PAUSE: Log.d(TAG, "request pause at " + endpoint); + playbackState = PLAYBACK_STATE_PAUSED; + playbackSpeed = 0; + return RESPONSE_STATUS_SUCCESS; case REQUEST_STOP: Log.d(TAG, "request stop at " + endpoint); + playbackState = PLAYBACK_STATE_NOT_PLAYING; + playbackSpeed = 0; + return RESPONSE_STATUS_SUCCESS; case REQUEST_START_OVER: Log.d(TAG, "request start over at " + endpoint); + playbackPosition = 0; + return RESPONSE_STATUS_SUCCESS; case REQUEST_PREVIOUS: Log.d(TAG, "request previous at " + endpoint); + playbackState = PLAYBACK_STATE_PLAYING; + playbackSpeed = 1; + playbackPosition = 0; + return RESPONSE_STATUS_SUCCESS; case REQUEST_NEXT: Log.d(TAG, "request next at " + endpoint); + playbackState = PLAYBACK_STATE_PLAYING; + playbackSpeed = 1; + playbackPosition = 0; + return RESPONSE_STATUS_SUCCESS; case REQUEST_REWIND: Log.d(TAG, "request rewind at " + endpoint); + playbackState = PLAYBACK_STATE_PLAYING; + playbackSpeed = (playbackSpeed >= 0 ? -1 : playbackSpeed * 2); + return RESPONSE_STATUS_SUCCESS; case REQUEST_FAST_FORWARD: Log.d(TAG, "request fast forward at " + endpoint); + playbackState = PLAYBACK_STATE_PLAYING; + playbackSpeed = (playbackSpeed <= 0 ? 1 : playbackSpeed * 2); + return RESPONSE_STATUS_SUCCESS; case REQUEST_SKIP_FORWARD: Log.d(TAG, "request skip forward " + parameter + " milliseconds at " + endpoint); + newPosition = playbackPosition + parameter; + playbackPosition = + (newPosition > playbackDuration) + ? playbackDuration + : (newPosition >= 0 ? newPosition : 0); + return RESPONSE_STATUS_SUCCESS; case REQUEST_SKIP_BACKWARD: Log.d(TAG, "request skip backward " + parameter + " milliseconds at " + endpoint); + newPosition = playbackPosition - parameter; + playbackPosition = + (newPosition > playbackDuration) + ? playbackDuration + : (newPosition >= 0 ? newPosition : 0); + return RESPONSE_STATUS_SUCCESS; case REQUEST_SEEK: Log.d(TAG, "request seek to " + parameter + " milliseconds at " + endpoint); + + if (parameter > playbackDuration) { + return RESPONSE_STATUS_SEEK_OUT_OF_RANGE; + } else { + playbackPosition = parameter; + } + return RESPONSE_STATUS_SUCCESS; } @@ -115,6 +165,6 @@ public int request(int cmd, long parameter) { @Override public MediaPlaybackPosition getPosition() { - return new MediaPlaybackPosition(3 * 60 * 1000); + return new MediaPlaybackPosition(playbackPosition); } } diff --git a/examples/tv-app/android/java/src/com/tcl/chip/tvapp/TvApp.java b/examples/tv-app/android/java/src/com/tcl/chip/tvapp/TvApp.java index 3b341a2a3ce8af..a7cf235ca46265 100644 --- a/examples/tv-app/android/java/src/com/tcl/chip/tvapp/TvApp.java +++ b/examples/tv-app/android/java/src/com/tcl/chip/tvapp/TvApp.java @@ -41,7 +41,7 @@ private void postClusterInit(int clusterId, int endpoint) { public native void preServerInit(); // called after Matter server is inited - public native void postServerInit(); + public native void postServerInit(ContentAppEndpointManager manager); public native void setKeypadInputManager(int endpoint, KeypadInputManager manager); @@ -67,6 +67,8 @@ private void postClusterInit(int clusterId, int endpoint) { public native void setDACProvider(DACProvider provider); + public native void setChipDeviceEventProvider(DeviceEventProvider provider); + public native int addContentApp( String vendorName, int vendorId, @@ -77,6 +79,8 @@ public native int addContentApp( public native void sendTestMessage(int endpoint, String message); + public native void setUserPrompter(UserPrompter userPrompter); + static { System.loadLibrary("TvApp"); } diff --git a/examples/tv-app/android/java/src/com/tcl/chip/tvapp/UserPrompter.java b/examples/tv-app/android/java/src/com/tcl/chip/tvapp/UserPrompter.java new file mode 100644 index 00000000000000..2eef058de45886 --- /dev/null +++ b/examples/tv-app/android/java/src/com/tcl/chip/tvapp/UserPrompter.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ +package com.tcl.chip.tvapp; + +public interface UserPrompter { + + /* + * Called to prompt the user for consent to allow the given commissioneeName/vendorId/productId to be commissioned. + * For example "[commissioneeName] is requesting permission to cast to this TV, approve?" + * + * If user responds with OK then implementor calls UserPrompterResolver.OnPromptAccepted; + * If user responds with Cancel then implementor calls calls UserPrompterResolver.OnPromptDeclined(); + * + */ + void promptForCommissionOkPermission(int vendorId, int productId, String commissioneeName); + + /* + * Called to prompt the user to enter the setup pincode displayed by the given commissioneeName/vendorId/productId to be + * commissioned. For example "Please enter pin displayed in casting app." + * + * If user responds with OK then implementor calls UserPrompterResolver.OnPinCodeEntered(); + * If user responds with Cancel then implementor calls UserPrompterResolver.OnPinCodeDeclined(); + * + */ + void promptForCommissionPinCode(int vendorId, int productId, String commissioneeName); + + /* + * Called to notify the user that commissioning succeeded. It can be in form of UI Notification. + */ + void promptCommissioningSucceeded(int vendorId, int productId, String commissioneeName); + + /* + * Called to notify the user that commissioning succeeded. It can be in form of UI Notification. + */ + void promptCommissioningFailed(String commissioneeName, String error); +} diff --git a/examples/tv-app/android/java/src/com/tcl/chip/tvapp/UserPrompterResolver.java b/examples/tv-app/android/java/src/com/tcl/chip/tvapp/UserPrompterResolver.java new file mode 100644 index 00000000000000..b3a0ca5f6ed77f --- /dev/null +++ b/examples/tv-app/android/java/src/com/tcl/chip/tvapp/UserPrompterResolver.java @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2022 Project CHIP Authors + * All rights reserved. + * + * 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. + * + */ +package com.tcl.chip.tvapp; + +public class UserPrompterResolver { + + protected static final String TAG = "UserPrompterResolver"; + + public native void OnPinCodeEntered(int pinCode); + + public native void OnPinCodeDeclined(); + + public native void OnPromptAccepted(); + + public native void OnPromptDeclined(); + + static { + System.loadLibrary("TvApp"); + } +} diff --git a/examples/tv-app/linux/include/media-playback/MediaPlaybackManager.cpp b/examples/tv-app/linux/include/media-playback/MediaPlaybackManager.cpp index 64f1960a8476e2..cac5c4c846cd04 100644 --- a/examples/tv-app/linux/include/media-playback/MediaPlaybackManager.cpp +++ b/examples/tv-app/linux/include/media-playback/MediaPlaybackManager.cpp @@ -50,18 +50,20 @@ float MediaPlaybackManager::HandleGetPlaybackSpeed() uint64_t MediaPlaybackManager::HandleGetSeekRangeStart() { - return mPlaybackPosition.position.Value(); + return mStartTime; } uint64_t MediaPlaybackManager::HandleGetSeekRangeEnd() { - return mDuration - mPlaybackPosition.position.Value(); + return mDuration; } void MediaPlaybackManager::HandlePlay(CommandResponseHelper & helper) { // TODO: Insert code here - mCurrentState = PlaybackStateEnum::kPlaying; + mCurrentState = PlaybackStateEnum::kPlaying; + mPlaybackSpeed = 1; + Commands::PlaybackResponse::Type response; response.data = chip::MakeOptional(CharSpan::fromCharString("data response")); response.status = MediaPlaybackStatusEnum::kSuccess; @@ -71,7 +73,9 @@ void MediaPlaybackManager::HandlePlay(CommandResponseHelper & helper) { // TODO: Insert code here - mCurrentState = PlaybackStateEnum::kPaused; + mCurrentState = PlaybackStateEnum::kPaused; + mPlaybackSpeed = 0; + Commands::PlaybackResponse::Type response; response.data = chip::MakeOptional(CharSpan::fromCharString("data response")); response.status = MediaPlaybackStatusEnum::kSuccess; @@ -81,7 +85,10 @@ void MediaPlaybackManager::HandlePause(CommandResponseHelper & helper) { // TODO: Insert code here - mCurrentState = PlaybackStateEnum::kNotPlaying; + mCurrentState = PlaybackStateEnum::kNotPlaying; + mPlaybackSpeed = 0; + mPlaybackPosition = { 0, chip::app::DataModel::Nullable(0) }; + Commands::PlaybackResponse::Type response; response.data = chip::MakeOptional(CharSpan::fromCharString("data response")); response.status = MediaPlaybackStatusEnum::kSuccess; @@ -91,6 +98,9 @@ void MediaPlaybackManager::HandleStop(CommandResponseHelper & helper) { // TODO: Insert code here + mCurrentState = PlaybackStateEnum::kPlaying; + mPlaybackSpeed = (mPlaybackSpeed <= 0 ? 1 : mPlaybackSpeed * 2); + Commands::PlaybackResponse::Type response; response.data = chip::MakeOptional(CharSpan::fromCharString("data response")); response.status = MediaPlaybackStatusEnum::kSuccess; @@ -100,7 +110,10 @@ void MediaPlaybackManager::HandleFastForward(CommandResponseHelper & helper) { // TODO: Insert code here + mCurrentState = PlaybackStateEnum::kPlaying; + mPlaybackSpeed = 1; mPlaybackPosition = { 0, chip::app::DataModel::Nullable(0) }; + Commands::PlaybackResponse::Type response; response.data = chip::MakeOptional(CharSpan::fromCharString("data response")); response.status = MediaPlaybackStatusEnum::kSuccess; @@ -110,7 +123,9 @@ void MediaPlaybackManager::HandlePrevious(CommandResponseHelper & helper) { // TODO: Insert code here - mPlaybackPosition = { 0, chip::app::DataModel::Nullable(0) }; + mCurrentState = PlaybackStateEnum::kPlaying; + mPlaybackSpeed = (mPlaybackSpeed >= 0 ? -1 : mPlaybackSpeed * 2); + Commands::PlaybackResponse::Type response; response.data = chip::MakeOptional(CharSpan::fromCharString("data response")); response.status = MediaPlaybackStatusEnum::kSuccess; @@ -121,7 +136,9 @@ void MediaPlaybackManager::HandleSkipBackward(CommandResponseHelper deltaPositionMilliseconds + ? mPlaybackPosition.position.Value() - deltaPositionMilliseconds + : 0); mPlaybackPosition = { 0, chip::app::DataModel::Nullable(newPosition) }; Commands::PlaybackResponse::Type response; @@ -169,6 +186,10 @@ void MediaPlaybackManager::HandleSeek(CommandResponseHelper & helper) { // TODO: Insert code here + mCurrentState = PlaybackStateEnum::kPlaying; + mPlaybackSpeed = 1; + mPlaybackPosition = { 0, chip::app::DataModel::Nullable(0) }; + Commands::PlaybackResponse::Type response; response.data = chip::MakeOptional(CharSpan::fromCharString("data response")); response.status = MediaPlaybackStatusEnum::kSuccess; @@ -179,6 +200,7 @@ void MediaPlaybackManager::HandleStartOver(CommandResponseHelper(0) }; + Commands::PlaybackResponse::Type response; response.data = chip::MakeOptional(CharSpan::fromCharString("data response")); response.status = MediaPlaybackStatusEnum::kSuccess; diff --git a/examples/tv-app/linux/include/media-playback/MediaPlaybackManager.h b/examples/tv-app/linux/include/media-playback/MediaPlaybackManager.h index 3d583ac837dd0d..78bfb127c72e7a 100644 --- a/examples/tv-app/linux/include/media-playback/MediaPlaybackManager.h +++ b/examples/tv-app/linux/include/media-playback/MediaPlaybackManager.h @@ -52,7 +52,10 @@ class MediaPlaybackManager : public MediaPlaybackDelegate void HandleStartOver(CommandResponseHelper & helper) override; protected: - chip::app::Clusters::MediaPlayback::PlaybackStateEnum mCurrentState; + // NOTE: it does not make sense to have default state of playing with a speed of 0, but + // the CI test cases expect these values, and need to be fixed. + chip::app::Clusters::MediaPlayback::PlaybackStateEnum mCurrentState = + chip::app::Clusters::MediaPlayback::PlaybackStateEnum::kPlaying; PlaybackPositionType mPlaybackPosition = { 0, chip::app::DataModel::Nullable(0) }; float mPlaybackSpeed = 0; uint64_t mStartTime = 0; diff --git a/examples/tv-app/tv-common/tv-app.matter b/examples/tv-app/tv-common/tv-app.matter index 73da3b4d128990..4759b9fbe1cfd9 100644 --- a/examples/tv-app/tv-common/tv-app.matter +++ b/examples/tv-app/tv-common/tv-app.matter @@ -548,6 +548,8 @@ server cluster EthernetNetworkDiagnostics = 55 { readonly attribute int64u timeSinceReset = 8; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + + command ResetCounts(): DefaultSuccess = 0; } server cluster FixedLabel = 64 { @@ -760,8 +762,16 @@ server cluster GeneralDiagnostics = 51 { readonly attribute ENUM8 activeHardwareFaults[] = 5; readonly attribute ENUM8 activeRadioFaults[] = 6; readonly attribute ENUM8 activeNetworkFaults[] = 7; + readonly attribute boolean testEventTriggersEnabled = 8; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + + request struct TestEventTriggerRequest { + OCTET_STRING enableKey = 0; + INT64U eventTrigger = 1; + } + + command TestEventTrigger(TestEventTriggerRequest): DefaultSuccess = 0; } server cluster GroupKeyManagement = 63 { @@ -783,10 +793,52 @@ server cluster GroupKeyManagement = 63 { fabric_idx fabricIndex = 254; } + struct GroupKeySetStruct { + int16u groupKeySetID = 0; + GroupKeySecurityPolicy groupKeySecurityPolicy = 1; + nullable octet_string<16> epochKey0 = 2; + nullable epoch_us epochStartTime0 = 3; + nullable octet_string<16> epochKey1 = 4; + nullable epoch_us epochStartTime1 = 5; + nullable octet_string<16> epochKey2 = 6; + nullable epoch_us epochStartTime2 = 7; + } + attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; readonly attribute GroupInfoMapStruct groupTable[] = 1; + readonly attribute int16u maxGroupsPerFabric = 2; + readonly attribute int16u maxGroupKeysPerFabric = 3; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + + request struct KeySetWriteRequest { + GroupKeySetStruct groupKeySet = 0; + } + + request struct KeySetReadRequest { + INT16U groupKeySetID = 0; + } + + request struct KeySetRemoveRequest { + INT16U groupKeySetID = 0; + } + + request struct KeySetReadAllIndicesRequest { + INT16U groupKeySetIDs[] = 0; + } + + response struct KeySetReadResponse = 2 { + GroupKeySetStruct groupKeySet = 0; + } + + response struct KeySetReadAllIndicesResponse = 5 { + INT16U groupKeySetIDs[] = 0; + } + + command access(invoke: administer) KeySetWrite(KeySetWriteRequest): DefaultSuccess = 0; + command access(invoke: administer) KeySetRead(KeySetReadRequest): KeySetReadResponse = 1; + command access(invoke: administer) KeySetRemove(KeySetRemoveRequest): DefaultSuccess = 3; + command access(invoke: administer) KeySetReadAllIndices(KeySetReadAllIndicesRequest): KeySetReadAllIndicesResponse = 4; } server cluster KeypadInput = 1289 { @@ -1499,6 +1551,7 @@ client cluster OperationalCredentials = 62 { kInvalidNOC = 3; kMissingCsr = 4; kTableFull = 5; + kInvalidAdminSubject = 6; kInsufficientPrivilege = 8; kFabricConflict = 9; kLabelConflict = 10; @@ -1539,13 +1592,14 @@ client cluster OperationalCredentials = 62 { request struct CSRRequestRequest { OCTET_STRING CSRNonce = 0; + optional boolean isForUpdateNOC = 1; } request struct AddNOCRequest { OCTET_STRING NOCValue = 0; optional OCTET_STRING ICACValue = 1; OCTET_STRING IPKValue = 2; - NODE_ID caseAdminNode = 3; + Int64u caseAdminSubject = 3; VENDOR_ID adminVendorId = 4; } @@ -1598,6 +1652,7 @@ server cluster OperationalCredentials = 62 { kInvalidNOC = 3; kMissingCsr = 4; kTableFull = 5; + kInvalidAdminSubject = 6; kInsufficientPrivilege = 8; kFabricConflict = 9; kLabelConflict = 10; @@ -1638,13 +1693,14 @@ server cluster OperationalCredentials = 62 { request struct CSRRequestRequest { OCTET_STRING CSRNonce = 0; + optional boolean isForUpdateNOC = 1; } request struct AddNOCRequest { OCTET_STRING NOCValue = 0; optional OCTET_STRING ICACValue = 1; OCTET_STRING IPKValue = 2; - NODE_ID caseAdminNode = 3; + Int64u caseAdminSubject = 3; VENDOR_ID adminVendorId = 4; } @@ -1665,10 +1721,6 @@ server cluster OperationalCredentials = 62 { OCTET_STRING rootCertificate = 0; } - request struct RemoveTrustedRootCertificateRequest { - OCTET_STRING trustedRootIdentifier = 0; - } - response struct AttestationResponse = 1 { OCTET_STRING attestationElements = 0; OCTET_STRING signature = 1; @@ -1697,7 +1749,6 @@ server cluster OperationalCredentials = 62 { command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } server cluster RelativeHumidityMeasurement = 1029 { @@ -1709,12 +1760,16 @@ server cluster RelativeHumidityMeasurement = 1029 { } server cluster SoftwareDiagnostics = 52 { + bitmap SoftwareDiagnosticsFeature : BITMAP32 { + kWaterMarks = 0x1; + } + struct ThreadMetrics { int64u id = 0; - char_string<8> name = 1; - int32u stackFreeCurrent = 2; - int32u stackFreeMinimum = 3; - int32u stackSize = 4; + optional char_string<8> name = 1; + optional int32u stackFreeCurrent = 2; + optional int32u stackFreeMinimum = 3; + optional int32u stackSize = 4; } info event SoftwareFault = 0 { @@ -1844,7 +1899,7 @@ server cluster ThreadNetworkDiagnostics = 53 { } readonly attribute nullable int16u channel = 0; - readonly attribute nullable enum8 routingRole = 1; + readonly attribute nullable RoutingRole routingRole = 1; readonly attribute nullable char_string<16> networkName = 2; readonly attribute nullable int16u panId = 3; readonly attribute nullable int64u extendedPanId = 4; @@ -1852,11 +1907,11 @@ server cluster ThreadNetworkDiagnostics = 53 { readonly attribute int64u overrunCount = 6; readonly attribute NeighborTable neighborTableList[] = 7; readonly attribute RouteTable routeTableList[] = 8; - readonly attribute int32u partitionId = 9; - readonly attribute int8u weighting = 10; - readonly attribute int8u dataVersion = 11; - readonly attribute int8u stableDataVersion = 12; - readonly attribute int8u leaderRouterId = 13; + readonly attribute nullable int32u partitionId = 9; + readonly attribute nullable int8u weighting = 10; + readonly attribute nullable int8u dataVersion = 11; + readonly attribute nullable int8u stableDataVersion = 12; + readonly attribute nullable int8u leaderRouterId = 13; readonly attribute int16u detachedRoleCount = 14; readonly attribute int16u childRoleCount = 15; readonly attribute int16u routerRoleCount = 16; @@ -1899,12 +1954,12 @@ server cluster ThreadNetworkDiagnostics = 53 { readonly attribute int32u rxErrSecCount = 53; readonly attribute int32u rxErrFcsCount = 54; readonly attribute int32u rxErrOtherCount = 55; - readonly attribute int64u activeTimestamp = 56; - readonly attribute int64u pendingTimestamp = 57; - readonly attribute int32u delay = 58; - readonly attribute SecurityPolicy securityPolicy[] = 59; - readonly attribute octet_string<4> channelMask = 60; - readonly attribute OperationalDatasetComponents operationalDatasetComponents[] = 61; + readonly attribute nullable int64u activeTimestamp = 56; + readonly attribute nullable int64u pendingTimestamp = 57; + readonly attribute nullable int32u delay = 58; + readonly attribute nullable SecurityPolicy securityPolicy = 59; + readonly attribute nullable octet_string<4> channelMask = 60; + readonly attribute nullable OperationalDatasetComponents operationalDatasetComponents = 61; readonly attribute NetworkFault activeNetworkFaultsList[] = 62; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -2027,8 +2082,8 @@ server cluster WiFiNetworkDiagnostics = 54 { readonly attribute int16u clusterRevision = 65533; } - endpoint 0 { + device type rootdevice = 22; binding cluster Binding; binding cluster GeneralCommissioning; binding cluster NetworkCommissioning; @@ -2148,6 +2203,7 @@ endpoint 0 { callback attribute activeHardwareFaults; callback attribute activeRadioFaults; callback attribute activeNetworkFaults; + callback attribute testEventTriggersEnabled; ram attribute featureMap; ram attribute clusterRevision default = 1; } @@ -2162,67 +2218,67 @@ endpoint 0 { } server cluster ThreadNetworkDiagnostics { - ram attribute channel; - ram attribute routingRole; - ram attribute networkName; - ram attribute panId; - ram attribute extendedPanId; - ram attribute meshLocalPrefix; - ram attribute overrunCount; + callback attribute channel; + callback attribute routingRole; + callback attribute networkName; + callback attribute panId; + callback attribute extendedPanId; + callback attribute meshLocalPrefix; + callback attribute overrunCount; callback attribute neighborTableList; callback attribute routeTableList; - ram attribute partitionId; - ram attribute weighting; - ram attribute dataVersion; - ram attribute stableDataVersion; - ram attribute leaderRouterId; - ram attribute detachedRoleCount; - ram attribute childRoleCount; - ram attribute routerRoleCount; - ram attribute leaderRoleCount; - ram attribute attachAttemptCount; - ram attribute partitionIdChangeCount; - ram attribute betterPartitionAttachAttemptCount; - ram attribute parentChangeCount; - ram attribute txTotalCount; - ram attribute txUnicastCount; - ram attribute txBroadcastCount; - ram attribute txAckRequestedCount; - ram attribute txAckedCount; - ram attribute txNoAckRequestedCount; - ram attribute txDataCount; - ram attribute txDataPollCount; - ram attribute txBeaconCount; - ram attribute txBeaconRequestCount; - ram attribute txOtherCount; - ram attribute txRetryCount; - ram attribute txDirectMaxRetryExpiryCount; - ram attribute txIndirectMaxRetryExpiryCount; - ram attribute txErrCcaCount; - ram attribute txErrAbortCount; - ram attribute txErrBusyChannelCount; - ram attribute rxTotalCount; - ram attribute rxUnicastCount; - ram attribute rxBroadcastCount; - ram attribute rxDataCount; - ram attribute rxDataPollCount; - ram attribute rxBeaconCount; - ram attribute rxBeaconRequestCount; - ram attribute rxOtherCount; - ram attribute rxAddressFilteredCount; - ram attribute rxDestAddrFilteredCount; - ram attribute rxDuplicatedCount; - ram attribute rxErrNoFrameCount; - ram attribute rxErrUnknownNeighborCount; - ram attribute rxErrInvalidSrcAddrCount; - ram attribute rxErrSecCount; - ram attribute rxErrFcsCount; - ram attribute rxErrOtherCount; - ram attribute activeTimestamp; - ram attribute pendingTimestamp; - ram attribute delay; + callback attribute partitionId; + callback attribute weighting; + callback attribute dataVersion; + callback attribute stableDataVersion; + callback attribute leaderRouterId; + callback attribute detachedRoleCount; + callback attribute childRoleCount; + callback attribute routerRoleCount; + callback attribute leaderRoleCount; + callback attribute attachAttemptCount; + callback attribute partitionIdChangeCount; + callback attribute betterPartitionAttachAttemptCount; + callback attribute parentChangeCount; + callback attribute txTotalCount; + callback attribute txUnicastCount; + callback attribute txBroadcastCount; + callback attribute txAckRequestedCount; + callback attribute txAckedCount; + callback attribute txNoAckRequestedCount; + callback attribute txDataCount; + callback attribute txDataPollCount; + callback attribute txBeaconCount; + callback attribute txBeaconRequestCount; + callback attribute txOtherCount; + callback attribute txRetryCount; + callback attribute txDirectMaxRetryExpiryCount; + callback attribute txIndirectMaxRetryExpiryCount; + callback attribute txErrCcaCount; + callback attribute txErrAbortCount; + callback attribute txErrBusyChannelCount; + callback attribute rxTotalCount; + callback attribute rxUnicastCount; + callback attribute rxBroadcastCount; + callback attribute rxDataCount; + callback attribute rxDataPollCount; + callback attribute rxBeaconCount; + callback attribute rxBeaconRequestCount; + callback attribute rxOtherCount; + callback attribute rxAddressFilteredCount; + callback attribute rxDestAddrFilteredCount; + callback attribute rxDuplicatedCount; + callback attribute rxErrNoFrameCount; + callback attribute rxErrUnknownNeighborCount; + callback attribute rxErrInvalidSrcAddrCount; + callback attribute rxErrSecCount; + callback attribute rxErrFcsCount; + callback attribute rxErrOtherCount; + callback attribute activeTimestamp; + callback attribute pendingTimestamp; + callback attribute delay; callback attribute securityPolicy; - ram attribute channelMask; + callback attribute channelMask; callback attribute operationalDatasetComponents; callback attribute activeNetworkFaultsList; ram attribute featureMap default = 0x000F; @@ -2283,6 +2339,8 @@ endpoint 0 { server cluster GroupKeyManagement { callback attribute groupKeyMap; callback attribute groupTable; + callback attribute maxGroupsPerFabric; + callback attribute maxGroupKeysPerFabric; ram attribute featureMap; ram attribute clusterRevision default = 1; } @@ -2307,8 +2365,8 @@ endpoint 0 { ram attribute clusterRevision default = 3; } } - endpoint 1 { + device type videoplayer = 35; server cluster OnOff { ram attribute onOff; @@ -2342,7 +2400,7 @@ endpoint 1 { server cluster TargetNavigator { callback attribute targetList; ram attribute currentTarget; - ram attribute featureMap default = 0x0001; + ram attribute featureMap; ram attribute clusterRevision default = 1; } @@ -2402,8 +2460,8 @@ endpoint 1 { ram attribute clusterRevision default = 1; } } - endpoint 2 { + device type speaker = 34; server cluster OnOff { ram attribute onOff; @@ -2439,8 +2497,8 @@ endpoint 2 { callback attribute clusterRevision default = 1; } } - endpoint 3 { + device type contentapplication = 36; server cluster Descriptor { callback attribute deviceList; @@ -2488,8 +2546,8 @@ endpoint 3 { ram attribute clusterRevision default = 1; } } - endpoint 4 { + device type contentapplication = 36; server cluster Descriptor { callback attribute deviceList; @@ -2520,8 +2578,8 @@ endpoint 4 { ram attribute clusterRevision default = 1; } } - endpoint 5 { + device type contentapplication = 36; server cluster Descriptor { callback attribute deviceList; @@ -2540,6 +2598,7 @@ endpoint 5 { callback attribute application; ram attribute status; ram attribute applicationVersion; + callback attribute allowedVendorList; ram attribute featureMap; ram attribute clusterRevision default = 1; } diff --git a/examples/tv-app/tv-common/tv-app.zap b/examples/tv-app/tv-common/tv-app.zap index ec34cc5fad87b8..b1165bbd5c5524 100644 --- a/examples/tv-app/tv-common/tv-app.zap +++ b/examples/tv-app/tv-common/tv-app.zap @@ -2453,7 +2453,16 @@ "define": "GENERAL_DIAGNOSTICS_CLUSTER", "side": "server", "enabled": 1, - "commands": [], + "commands": [ + { + "name": "TestEventTrigger", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], "attributes": [ { "name": "NetworkInterfaces", @@ -2583,6 +2592,22 @@ "maxInterval": 65534, "reportableChange": 0 }, + { + "name": "TestEventTriggersEnabled", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "false", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "FeatureMap", "code": 65532, @@ -2776,7 +2801,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -2790,9 +2815,9 @@ "code": 1, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "RoutingRole", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -2808,7 +2833,7 @@ "side": "server", "type": "char_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", @@ -2824,7 +2849,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2840,7 +2865,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -2856,7 +2881,7 @@ "side": "server", "type": "octet_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -2872,7 +2897,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -2920,7 +2945,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -2936,7 +2961,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -2952,7 +2977,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -2968,7 +2993,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -2984,7 +3009,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3000,7 +3025,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3016,7 +3041,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3032,7 +3057,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3048,7 +3073,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3064,7 +3089,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3080,7 +3105,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3096,7 +3121,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3112,7 +3137,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3128,7 +3153,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3144,7 +3169,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3160,7 +3185,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3176,7 +3201,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3192,7 +3217,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3208,7 +3233,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3224,7 +3249,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3240,7 +3265,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3256,7 +3281,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3272,7 +3297,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3288,7 +3313,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3304,7 +3329,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3320,7 +3345,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3336,7 +3361,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3352,7 +3377,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3368,7 +3393,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3384,7 +3409,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3400,7 +3425,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3416,7 +3441,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3432,7 +3457,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3448,7 +3473,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3464,7 +3489,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3480,7 +3505,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3496,7 +3521,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3512,7 +3537,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3528,7 +3553,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3544,7 +3569,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3560,7 +3585,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3576,7 +3601,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3592,7 +3617,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3608,7 +3633,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3624,7 +3649,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3640,7 +3665,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3656,7 +3681,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3672,7 +3697,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -3688,7 +3713,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -3704,7 +3729,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3718,7 +3743,7 @@ "code": 59, "mfgCode": null, "side": "server", - "type": "array", + "type": "SecurityPolicy", "included": 1, "storageOption": "External", "singleton": 0, @@ -3736,7 +3761,7 @@ "side": "server", "type": "octet_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3750,7 +3775,7 @@ "code": 61, "mfgCode": null, "side": "server", - "type": "array", + "type": "OperationalDatasetComponents", "included": 1, "storageOption": "External", "singleton": 0, @@ -4102,7 +4127,7 @@ "code": 0, "mfgCode": null, "source": "client", - "incoming": 0, + "incoming": 1, "outgoing": 1 } ], @@ -4628,14 +4653,6 @@ "source": "client", "incoming": 1, "outgoing": 1 - }, - { - "name": "RemoveTrustedRootCertificate", - "code": 12, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 } ], "attributes": [ @@ -4836,7 +4853,40 @@ "define": "GROUP_KEY_MANAGEMENT_CLUSTER", "side": "client", "enabled": 0, - "commands": [], + "commands": [ + { + "name": "KeySetWrite", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "KeySetRead", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "KeySetRemove", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "KeySetReadAllIndices", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], "attributes": [ { "name": "ClusterRevision", @@ -4863,7 +4913,24 @@ "define": "GROUP_KEY_MANAGEMENT_CLUSTER", "side": "server", "enabled": 1, - "commands": [], + "commands": [ + { + "name": "KeySetReadResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "KeySetReadAllIndicesResponse", + "code": 5, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], "attributes": [ { "name": "GroupKeyMap", @@ -4897,6 +4964,38 @@ "maxInterval": 65344, "reportableChange": 0 }, + { + "name": "MaxGroupsPerFabric", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxGroupKeysPerFabric", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "FeatureMap", "code": 65532, @@ -5101,46 +5200,6 @@ "incoming": 1, "outgoing": 1 }, - { - "name": "GetLogRecord", - "code": 4, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "SetPINCode", - "code": 5, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "GetPINCode", - "code": 6, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "ClearPINCode", - "code": 7, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "ClearAllPINCodes", - "code": 8, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, { "name": "SetWeekDaySchedule", "code": 11, @@ -5212,54 +5271,6 @@ "source": "client", "incoming": 1, "outgoing": 1 - }, - { - "name": "SetUserType", - "code": 20, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "GetUserType", - "code": 21, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "SetRFIDCode", - "code": 22, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "GetRFIDCode", - "code": 23, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "ClearRFIDCode", - "code": 24, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "ClearAllRFIDCodes", - "code": 25, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 } ], "attributes": [ @@ -5354,22 +5365,6 @@ "maxInterval": 65344, "reportableChange": 0 }, - { - "name": "EnableLogging", - "code": 32, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x00", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, { "name": "Language", "code": 33, @@ -5594,134 +5589,6 @@ "maxInterval": 65344, "reportableChange": 0 }, - { - "name": "AlarmMask", - "code": 64, - "mfgCode": null, - "side": "server", - "type": "DlAlarmMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "KeypadOperationEventMask", - "code": 65, - "mfgCode": null, - "side": "server", - "type": "DlKeypadOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RemoteOperationEventMask", - "code": 66, - "mfgCode": null, - "side": "server", - "type": "DlRemoteOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "ManualOperationEventMask", - "code": 67, - "mfgCode": null, - "side": "server", - "type": "DlManualOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RFIDOperationEventMask", - "code": 68, - "mfgCode": null, - "side": "server", - "type": "DlRFIDOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "KeypadProgrammingEventMask", - "code": 69, - "mfgCode": null, - "side": "server", - "type": "DlKeypadOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RemoteProgrammingEventMask", - "code": 70, - "mfgCode": null, - "side": "server", - "type": "DlRemoteProgrammingEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RFIDProgrammingEventMask", - "code": 71, - "mfgCode": null, - "side": "server", - "type": "DlRFIDProgrammingEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, { "name": "ClusterRevision", "code": 65533, @@ -7256,7 +7123,7 @@ }, { "name": "Test Cluster", - "code": 1295, + "code": 4294048773, "mfgCode": null, "define": "TEST_CLUSTER", "side": "client", @@ -7308,7 +7175,7 @@ }, { "name": "Test Cluster", - "code": 1295, + "code": 4294048773, "mfgCode": null, "define": "TEST_CLUSTER", "side": "server", @@ -8329,7 +8196,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0001", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -9565,7 +9432,7 @@ }, { "name": "Test Cluster", - "code": 1295, + "code": 4294048773, "mfgCode": null, "define": "TEST_CLUSTER", "side": "client", @@ -9617,7 +9484,7 @@ }, { "name": "Test Cluster", - "code": 1295, + "code": 4294048773, "mfgCode": null, "define": "TEST_CLUSTER", "side": "server", @@ -12542,7 +12409,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 0, + "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -12660,5 +12527,6 @@ "endpointVersion": 1, "deviceIdentifier": 36 } - ] -} \ No newline at end of file + ], + "log": [] +} diff --git a/examples/tv-casting-app/android/App/app/src/main/java/com/chip/casting/app/MainActivity.java b/examples/tv-casting-app/android/App/app/src/main/java/com/chip/casting/app/MainActivity.java index 55f3d9b4e2b7b6..afd768a1a20679 100644 --- a/examples/tv-casting-app/android/App/app/src/main/java/com/chip/casting/app/MainActivity.java +++ b/examples/tv-casting-app/android/App/app/src/main/java/com/chip/casting/app/MainActivity.java @@ -11,6 +11,7 @@ import chip.platform.AndroidChipPlatform; import chip.platform.ChipMdnsCallbackImpl; import chip.platform.DiagnosticDataProviderImpl; +import chip.platform.NsdManagerServiceBrowser; import chip.platform.NsdManagerServiceResolver; import chip.platform.PreferencesConfigurationManager; import chip.platform.PreferencesKeyValueStoreManager; @@ -67,6 +68,7 @@ private void initJni() { new PreferencesKeyValueStoreManager(applicationContext), new PreferencesConfigurationManager(applicationContext), new NsdManagerServiceResolver(applicationContext), + new NsdManagerServiceBrowser(applicationContext), new ChipMdnsCallbackImpl(), new DiagnosticDataProviderImpl(applicationContext)); diff --git a/examples/tv-casting-app/darwin/.gitignore b/examples/tv-casting-app/darwin/.gitignore new file mode 100644 index 00000000000000..7648468d4949b3 --- /dev/null +++ b/examples/tv-casting-app/darwin/.gitignore @@ -0,0 +1,166 @@ +### C++ ### +# Prerequisites +*.d + +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll + +# Fortran module files +*.mod +*.smod + +# Compiled Static libraries +*.lai +*.la +*.a +*.lib + +# Executables +*.exe +*.out +*.app + +### Objective-C ### +# Xcode +# +# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore + +## User settings +xcuserdata/ + +## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9) +*.xcscmblueprint +*.xccheckout + +## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4) +build/ +DerivedData/ +*.moved-aside +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 + +## Obj-C/Swift specific +*.hmap + +## App packaging +*.ipa +*.dSYM.zip +*.dSYM + +# CocoaPods +# We recommend against adding the Pods directory to your .gitignore. However +# you should judge for yourself, the pros and cons are mentioned at: +# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control +# Pods/ +# Add this line if you want to avoid checking in source code from the Xcode workspace +# *.xcworkspace + +# Carthage +# Add this line if you want to avoid checking in source code from Carthage dependencies. +# Carthage/Checkouts + +Carthage/Build/ + +# fastlane +# It is recommended to not store the screenshots in the git repo. +# Instead, use fastlane to re-generate the screenshots whenever they are needed. +# For more information about the recommended setup visit: +# https://docs.fastlane.tools/best-practices/source-control/#source-control + +fastlane/report.xml +fastlane/Preview.html +fastlane/screenshots/**/*.png +fastlane/test_output + +# Code Injection +# After new code Injection tools there's a generated folder /iOSInjectionProject +# https://github.com/johnno1962/injectionforxcode + +iOSInjectionProject/ + +### Objective-C Patch ### + +### Swift ### +# Xcode +# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore + + + + + + +## Playgrounds +timeline.xctimeline +playground.xcworkspace + +# Swift Package Manager +# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. +# Packages/ +# Package.pins +# Package.resolved +# *.xcodeproj +# Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata +# hence it is not needed unless you have added a package configuration file to your project +# .swiftpm + +.build/ + +# CocoaPods +# We recommend against adding the Pods directory to your .gitignore. However +# you should judge for yourself, the pros and cons are mentioned at: +# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control +# Pods/ +# Add this line if you want to avoid checking in source code from the Xcode workspace +# *.xcworkspace + +# Carthage +# Add this line if you want to avoid checking in source code from Carthage dependencies. +# Carthage/Checkouts + + +# Accio dependency management +Dependencies/ +.accio/ + +# fastlane +# It is recommended to not store the screenshots in the git repo. +# Instead, use fastlane to re-generate the screenshots whenever they are needed. +# For more information about the recommended setup visit: +# https://docs.fastlane.tools/best-practices/source-control/#source-control + + +# Code Injection +# After new code Injection tools there's a generated folder /iOSInjectionProject +# https://github.com/johnno1962/injectionforxcode + + +### Xcode ### + +## Xcode 8 and earlier + +### Xcode Patch ### +*.xcodeproj/* +!*.xcodeproj/project.pbxproj +!*.xcodeproj/xcshareddata/ +!*.xcworkspace/contents.xcworkspacedata +/*.gcno +**/xcshareddata/WorkspaceSettings.xcsettings + diff --git a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/ViewController.m b/examples/tv-casting-app/darwin/TvCasting/MatterBridge/CastingServerBridge.h similarity index 67% rename from examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/ViewController.m rename to examples/tv-casting-app/darwin/TvCasting/MatterBridge/CastingServerBridge.h index 8d070158ac42e7..712128353db3cb 100644 --- a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/ViewController.m +++ b/examples/tv-casting-app/darwin/TvCasting/MatterBridge/CastingServerBridge.h @@ -15,18 +15,18 @@ * limitations under the License. */ -#import "ViewController.h" +#import -@interface ViewController () +#ifndef CastingServerBridge_h +#define CastingServerBridge_h -@end +@interface CastingServerBridge : NSObject -@implementation ViewController ++ (CastingServerBridge *)getSharedInstance; -- (void)viewDidLoad -{ - [super viewDidLoad]; - // Do any additional setup after loading the view. -} +// TBD: placeholder will be replaced with true CastingServer functions +- (int)add:(int)a secondNum:(int)b; @end + +#endif /* CastingServerBridge_h */ diff --git a/examples/tv-casting-app/darwin/TvCasting/MatterBridge/CastingServerBridge.mm b/examples/tv-casting-app/darwin/TvCasting/MatterBridge/CastingServerBridge.mm new file mode 100644 index 00000000000000..05635ac19caf26 --- /dev/null +++ b/examples/tv-casting-app/darwin/TvCasting/MatterBridge/CastingServerBridge.mm @@ -0,0 +1,62 @@ +/** + * + * Copyright (c) 2020-2022 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. + */ + +#import "CastingServerBridge.h" +#import "CastingServer.h" + +#include +#include + +@implementation CastingServerBridge + ++ (CastingServerBridge *)getSharedInstance +{ + static CastingServerBridge * instance = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + instance = [[self alloc] init]; + }); + return instance; +} + +- (instancetype)init +{ + if (self = [super init]) { + CHIP_ERROR err = chip::Platform::MemoryInit(); + if (err != CHIP_NO_ERROR) { + ChipLogError(AppServer, "MemoryInit failed: %s", ErrorStr(err)); + return nil; + } + + err = chip::DeviceLayer::PlatformMgr().InitChipStack(); + if (err != CHIP_NO_ERROR) { + ChipLogError(AppServer, "InitChipStack failed: %s", ErrorStr(err)); + return nil; + } + + CastingServer::GetInstance()->Init(); + } + return self; +} + +// TBD: placeholder will be replaced with true CastingServer functions +- (int)add:(int)a secondNum:(int)b +{ + return a + b; +} + +@end diff --git a/examples/tv-casting-app/darwin/darwin/ViewController.h b/examples/tv-casting-app/darwin/TvCasting/MatterBridge/TvCasting-Bridging-Header.h similarity index 88% rename from examples/tv-casting-app/darwin/darwin/ViewController.h rename to examples/tv-casting-app/darwin/TvCasting/MatterBridge/TvCasting-Bridging-Header.h index e122b5c9ad9c0c..ed7fd614f2beae 100644 --- a/examples/tv-casting-app/darwin/darwin/ViewController.h +++ b/examples/tv-casting-app/darwin/TvCasting/MatterBridge/TvCasting-Bridging-Header.h @@ -15,8 +15,8 @@ * limitations under the License. */ -#import +// +// TvCasting's Public headers exposed to Swift +// -@interface ViewController : UIViewController - -@end +#import "CastingServerBridge.h" diff --git a/examples/tv-casting-app/darwin/TvCasting/README.md b/examples/tv-casting-app/darwin/TvCasting/README.md new file mode 100644 index 00000000000000..4b4d44fdc40133 --- /dev/null +++ b/examples/tv-casting-app/darwin/TvCasting/README.md @@ -0,0 +1,80 @@ +# Matter TV Casting iOS App Example + +This is a Matter TV Casting iOS app that can be used to cast content to a TV. +This app discovers TVs on the local network that act as commissioners, lets the +user select one, sends the TV a User Directed Commissioning request, enters +commissioning mode, advertises itself as a Commissionable Node and gets +commissioned. Then it allows the user to send Matter ContentLauncher commands to +the TV. + +--- + +- [Matter TV Casting iOS App Example](#matter-tv-casting-ios-app-example) + - [Building the Application](#building-the-application) + - [Compilation Fixes](#compilation-fixes) + - [Installing the Application](#installing-the-application) + +--- + +## Building the Application + +Matter TV Casting iOS App Example can be built with the latest Xcode releases. + +- Open the `TvCastingDarwin.xcworkspace` file located in + `examples/tv-casting-app/darwin` with Xcode. + +- Then select the `TvCasting` scheme at the top. + +- Running the `TvCasting` scheme in Xcode (select the scheme and then hit the + "play button" to "run" the scheme) will attempt to compile the application + and then install it to the connected iOS device selected in the scheme. + +Because we do not share a developer group, directly running this scheme will +fail with missing signing configuration errors. + +You need to update the Project configuration for TvCasting app to use your +Personal Developer account and a unique Bundle ID. + +### Compilation Fixes + +Before you can run the `TvCasting` scheme, you need to amend the +`project.pbxproj` file for the TvCasting app project. The file is located here +`examples/tv-casting-app/darwin/TvCasting/TvCasting.xcodeproj/project.pbxproj`. + +You can choose to amend this file via Xcode directly or manually with any text +editor. This Readme will focus on doing it via Xcode. + +- With the `TvCastingDarwin.xcworkspace` loaded, you should see 1 project on + the left side pane in Xcode. `TvCasting` + +- Selecting `TvCasting` should bring up the project configuration view in + Xcode. Next, select the `Signing & Capabilities` tab. + +- Perform the following steps to enable building TvCasting app: + + 1. Ensure "Automatically manage signing" is checked + + 2. Select your Personal Team in the "Team" dropdown. + + 3. Change the bundle identifier from `com.matter.TvCasting` to something + unique, like `com.matter.TvCasting-username`. These bundle IDs get + reserved for a short amount of time and so it's best to use something + only you might think of to avoid conflicts (you'll see that the default + bundle ID does not work if you skip this step). + + 4. Confirm that the Signing Certificate now says "Apple Development: + " + +Now you can install TvCasting app to your connected iOS device by clicking on +the "Play"/Run icon. + +## Installing the Application + +The first time you install this application to your iOS device, Xcode will not +be able to launch it. This is because iOS prevents arbitrary developer apps from +running prior to user consent. To give this application consent, navigate to +`Settings->General->VPN & Device Management` and give TvCasting app permission +to run. + +Now you can launch the application from the Home screen or from Xcode by hitting +the run button once more. diff --git a/examples/tv-casting-app/darwin/TvCasting/TvCasting.xcodeproj/project.pbxproj b/examples/tv-casting-app/darwin/TvCasting/TvCasting.xcodeproj/project.pbxproj new file mode 100644 index 00000000000000..a417f366f7203f --- /dev/null +++ b/examples/tv-casting-app/darwin/TvCasting/TvCasting.xcodeproj/project.pbxproj @@ -0,0 +1,513 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 55; + objects = { + +/* Begin PBXBuildFile section */ + 3C75075C284B080900D7DB3A /* libmbedtls.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3C75075B284B07E800D7DB3A /* libmbedtls.a */; settings = {ATTRIBUTES = (Required, ); }; }; + 3C9ACC05284ABF4000718B2D /* libTvCastingCommon.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3C9ACC04284ABF2F00718B2D /* libTvCastingCommon.a */; }; + 3CC0E8FA2841DD3400EC6A18 /* TvCastingApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CC0E8F92841DD3400EC6A18 /* TvCastingApp.swift */; }; + 3CC0E8FC2841DD3400EC6A18 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CC0E8FB2841DD3400EC6A18 /* ContentView.swift */; }; + 3CC0E8FE2841DD3500EC6A18 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3CC0E8FD2841DD3500EC6A18 /* Assets.xcassets */; }; + 3CC0E9012841DD3500EC6A18 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3CC0E9002841DD3500EC6A18 /* Preview Assets.xcassets */; }; + 3CC0E90A2841DD7000EC6A18 /* CastingServerBridge.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3CC0E9092841DD7000EC6A18 /* CastingServerBridge.mm */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 3C75075B284B07E800D7DB3A /* libmbedtls.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmbedtls.a; path = lib/libmbedtls.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 3C75075E284C1DF800D7DB3A /* TvCasting.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = TvCasting.entitlements; sourceTree = ""; }; + 3C9ACC04284ABF2F00718B2D /* libTvCastingCommon.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTvCastingCommon.a; path = lib/libTvCastingCommon.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 3CC0E8F62841DD3400EC6A18 /* TvCasting.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TvCasting.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 3CC0E8F92841DD3400EC6A18 /* TvCastingApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TvCastingApp.swift; sourceTree = ""; }; + 3CC0E8FB2841DD3400EC6A18 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + 3CC0E8FD2841DD3500EC6A18 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 3CC0E9002841DD3500EC6A18 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; + 3CC0E9082841DD6F00EC6A18 /* TvCasting-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "TvCasting-Bridging-Header.h"; sourceTree = ""; }; + 3CC0E9092841DD7000EC6A18 /* CastingServerBridge.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = CastingServerBridge.mm; sourceTree = ""; }; + 3CC0E90B2841DD8500EC6A18 /* CastingServerBridge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CastingServerBridge.h; sourceTree = ""; }; + 3CC0E90C2841DECC00EC6A18 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 3CC0E8F32841DD3400EC6A18 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 3C9ACC05284ABF4000718B2D /* libTvCastingCommon.a in Frameworks */, + 3C75075C284B080900D7DB3A /* libmbedtls.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 3C9ACC02284ABBD600718B2D /* Frameworks */ = { + isa = PBXGroup; + children = ( + 3C75075B284B07E800D7DB3A /* libmbedtls.a */, + 3C9ACC04284ABF2F00718B2D /* libTvCastingCommon.a */, + ); + name = Frameworks; + sourceTree = ""; + }; + 3CC0E8ED2841DD3400EC6A18 = { + isa = PBXGroup; + children = ( + 3CC0E90C2841DECC00EC6A18 /* README.md */, + 3CC0E8F82841DD3400EC6A18 /* TvCasting */, + 3CC0E9072841DD4B00EC6A18 /* MatterBridge */, + 3CC0E8F72841DD3400EC6A18 /* Products */, + 3C9ACC02284ABBD600718B2D /* Frameworks */, + ); + sourceTree = ""; + }; + 3CC0E8F72841DD3400EC6A18 /* Products */ = { + isa = PBXGroup; + children = ( + 3CC0E8F62841DD3400EC6A18 /* TvCasting.app */, + ); + name = Products; + sourceTree = ""; + }; + 3CC0E8F82841DD3400EC6A18 /* TvCasting */ = { + isa = PBXGroup; + children = ( + 3C75075E284C1DF800D7DB3A /* TvCasting.entitlements */, + 3CC0E8F92841DD3400EC6A18 /* TvCastingApp.swift */, + 3CC0E8FB2841DD3400EC6A18 /* ContentView.swift */, + 3CC0E8FD2841DD3500EC6A18 /* Assets.xcassets */, + 3CC0E8FF2841DD3500EC6A18 /* Preview Content */, + ); + path = TvCasting; + sourceTree = ""; + }; + 3CC0E8FF2841DD3500EC6A18 /* Preview Content */ = { + isa = PBXGroup; + children = ( + 3CC0E9002841DD3500EC6A18 /* Preview Assets.xcassets */, + ); + path = "Preview Content"; + sourceTree = ""; + }; + 3CC0E9072841DD4B00EC6A18 /* MatterBridge */ = { + isa = PBXGroup; + children = ( + 3CC0E9092841DD7000EC6A18 /* CastingServerBridge.mm */, + 3CC0E9082841DD6F00EC6A18 /* TvCasting-Bridging-Header.h */, + 3CC0E90B2841DD8500EC6A18 /* CastingServerBridge.h */, + ); + path = MatterBridge; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 3C75075D284BD20000D7DB3A /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 3CC0E8F52841DD3400EC6A18 /* TvCasting */ = { + isa = PBXNativeTarget; + buildConfigurationList = 3CC0E9042841DD3500EC6A18 /* Build configuration list for PBXNativeTarget "TvCasting" */; + buildPhases = ( + 3C9ACC012849D55B00718B2D /* Run Script */, + 3C75075D284BD20000D7DB3A /* Headers */, + 3CC0E8F22841DD3400EC6A18 /* Sources */, + 3CC0E8F32841DD3400EC6A18 /* Frameworks */, + 3CC0E8F42841DD3400EC6A18 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = TvCasting; + productName = TvCasting; + productReference = 3CC0E8F62841DD3400EC6A18 /* TvCasting.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 3CC0E8EE2841DD3400EC6A18 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 1320; + LastUpgradeCheck = 1320; + TargetAttributes = { + 3CC0E8F52841DD3400EC6A18 = { + CreatedOnToolsVersion = 13.2.1; + LastSwiftMigration = 1320; + }; + }; + }; + buildConfigurationList = 3CC0E8F12841DD3400EC6A18 /* Build configuration list for PBXProject "TvCasting" */; + compatibilityVersion = "Xcode 13.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 3CC0E8ED2841DD3400EC6A18; + productRefGroup = 3CC0E8F72841DD3400EC6A18 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 3CC0E8F52841DD3400EC6A18 /* TvCasting */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 3CC0E8F42841DD3400EC6A18 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3CC0E9012841DD3500EC6A18 /* Preview Assets.xcassets in Resources */, + 3CC0E8FE2841DD3500EC6A18 /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3C9ACC012849D55B00718B2D /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "./chip_xcode_build_connector.sh\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 3CC0E8F22841DD3400EC6A18 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3CC0E90A2841DD7000EC6A18 /* CastingServerBridge.mm in Sources */, + 3CC0E8FC2841DD3400EC6A18 /* ContentView.swift in Sources */, + 3CC0E8FA2841DD3400EC6A18 /* TvCastingApp.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 3CC0E9022841DD3500EC6A18 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + CHIP_HAVE_CONFIG_H, + "DEBUG=1", + "CHIP_ADDRESS_RESOLVE_IMPL_INCLUDE_HEADER=", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.2; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 3CC0E9032841DD3500EC6A18 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = CHIP_HAVE_CONFIG_H; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.2; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 3CC0E9052841DD3500EC6A18 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CHIP_ROOT = "$(PROJECT_DIR)/../../../.."; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = TvCasting/TvCasting.entitlements; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_ASSET_PATHS = "\"TvCasting/Preview Content\""; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_PREVIEWS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + CHIP_HAVE_CONFIG_H, + "CHIP_ADDRESS_RESOLVE_IMPL_INCLUDE_HEADER=", + "DEBUG=1", + "$(inherited)", + ); + GENERATE_INFOPLIST_FILE = YES; + HEADER_SEARCH_PATHS = ( + "${CHIP_ROOT}/examples/tv-casting-app/tv-casting-common/include", + "$(CHIP_ROOT)/src", + "$(CHIP_ROOT)/src/include", + "$(CHIP_ROOT)/src/lib", + "$(CHIP_ROOT)/src/app", + "$(CHIP_ROOT)/config/ios", + "$(CHIP_ROOT)/src/darwin/Framework/CHIP/", + "$(CHIP_ROOT)/src/app/util", + "$(CHIP_ROOT)/third_party/nlassert/repo/include", + "$(CHIP_ROOT)/third_party/nlio/repo/include", + "$(TEMP_DIR)/out/gen/include", + "$(CHIP_ROOT)/zzz_generated/", + "$(CHIP_ROOT)/zzz_generated/app-common", + "$(CHIP_ROOT)/zzz_generated/controller-clusters", + ); + INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchScreen_Generation = YES; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = "$(TEMP_DIR)/out/lib"; + MARKETING_VERSION = 1.0; + ONLY_ACTIVE_ARCH = YES; + OTHER_CFLAGS = ( + "-Wformat", + "-Wformat-nonliteral", + "-Wformat-security", + ); + "OTHER_LDFLAGS[arch=*]" = ( + "-framework", + CoreData, + "-framework", + Foundation, + "-framework", + CoreBluetooth, + "-lnetwork", + "-Wl,-unexported_symbol,\"__Z*\"", + ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "-framework", + IOKit, + "-lnetwork", + "-framework", + CoreBluetooth, + "-framework", + CoreData, + "-Wl,-unexported_symbol,\"__Z*\"", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.matter.TvCasting; + PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OBJC_BRIDGING_HEADER = "MatterBridge/TvCasting-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 3CC0E9062841DD3500EC6A18 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CHIP_ROOT = "$(PROJECT_DIR)/../../../.."; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = TvCasting/TvCasting.entitlements; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_ASSET_PATHS = "\"TvCasting/Preview Content\""; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_PREVIEWS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + CHIP_HAVE_CONFIG_H, + "CHIP_ADDRESS_RESOLVE_IMPL_INCLUDE_HEADER=", + "$(inherited)", + ); + GENERATE_INFOPLIST_FILE = YES; + HEADER_SEARCH_PATHS = ( + "${CHIP_ROOT}/examples/tv-casting-app/tv-casting-common/include", + "$(CHIP_ROOT)/src", + "$(CHIP_ROOT)/src/include", + "$(CHIP_ROOT)/src/lib", + "$(CHIP_ROOT)/src/app", + "$(CHIP_ROOT)/config/ios", + "$(CHIP_ROOT)/src/darwin/Framework/CHIP/", + "$(CHIP_ROOT)/src/app/util", + "$(CHIP_ROOT)/third_party/nlassert/repo/include", + "$(CHIP_ROOT)/third_party/nlio/repo/include", + "$(TEMP_DIR)/out/gen/include", + "$(CHIP_ROOT)/zzz_generated/", + "$(CHIP_ROOT)/zzz_generated/app-common", + "$(CHIP_ROOT)/zzz_generated/controller-clusters", + ); + INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchScreen_Generation = YES; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = "$(TEMP_DIR)/out/lib"; + MARKETING_VERSION = 1.0; + ONLY_ACTIVE_ARCH = YES; + OTHER_CFLAGS = ( + "-Wformat", + "-Wformat-nonliteral", + "-Wformat-security", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.matter.TvCasting; + PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OBJC_BRIDGING_HEADER = "MatterBridge/TvCasting-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 3CC0E8F12841DD3400EC6A18 /* Build configuration list for PBXProject "TvCasting" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3CC0E9022841DD3500EC6A18 /* Debug */, + 3CC0E9032841DD3500EC6A18 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 3CC0E9042841DD3500EC6A18 /* Build configuration list for PBXNativeTarget "TvCasting" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3CC0E9052841DD3500EC6A18 /* Debug */, + 3CC0E9062841DD3500EC6A18 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 3CC0E8EE2841DD3400EC6A18 /* Project object */; +} diff --git a/examples/tv-casting-app/darwin/TvCasting/TvCasting.xcodeproj/xcshareddata/xcschemes/TvCasting.xcscheme b/examples/tv-casting-app/darwin/TvCasting/TvCasting.xcodeproj/xcshareddata/xcschemes/TvCasting.xcscheme new file mode 100644 index 00000000000000..d09946d0f6a346 --- /dev/null +++ b/examples/tv-casting-app/darwin/TvCasting/TvCasting.xcodeproj/xcshareddata/xcschemes/TvCasting.xcscheme @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/tv-casting-app/darwin/darwin/Assets.xcassets/AccentColor.colorset/Contents.json b/examples/tv-casting-app/darwin/TvCasting/TvCasting/Assets.xcassets/AccentColor.colorset/Contents.json similarity index 100% rename from examples/tv-casting-app/darwin/darwin/Assets.xcassets/AccentColor.colorset/Contents.json rename to examples/tv-casting-app/darwin/TvCasting/TvCasting/Assets.xcassets/AccentColor.colorset/Contents.json diff --git a/examples/tv-casting-app/darwin/darwin/Assets.xcassets/AppIcon.appiconset/Contents.json b/examples/tv-casting-app/darwin/TvCasting/TvCasting/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from examples/tv-casting-app/darwin/darwin/Assets.xcassets/AppIcon.appiconset/Contents.json rename to examples/tv-casting-app/darwin/TvCasting/TvCasting/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/examples/tv-casting-app/darwin/darwin/Assets.xcassets/Contents.json b/examples/tv-casting-app/darwin/TvCasting/TvCasting/Assets.xcassets/Contents.json similarity index 100% rename from examples/tv-casting-app/darwin/darwin/Assets.xcassets/Contents.json rename to examples/tv-casting-app/darwin/TvCasting/TvCasting/Assets.xcassets/Contents.json diff --git a/examples/tv-casting-app/darwin/darwin/main.m b/examples/tv-casting-app/darwin/TvCasting/TvCasting/ContentView.swift similarity index 64% rename from examples/tv-casting-app/darwin/darwin/main.m rename to examples/tv-casting-app/darwin/TvCasting/TvCasting/ContentView.swift index 17c6551eaa5408..737ea26a856383 100644 --- a/examples/tv-casting-app/darwin/darwin/main.m +++ b/examples/tv-casting-app/darwin/TvCasting/TvCasting/ContentView.swift @@ -15,15 +15,17 @@ * limitations under the License. */ -#import "AppDelegate.h" -#import +import SwiftUI -int main(int argc, char * argv[]) -{ - NSString * appDelegateClassName; - @autoreleasepool { - // Setup code that might create autoreleased objects goes here. - appDelegateClassName = NSStringFromClass([AppDelegate class]); +struct ContentView: View { + var body: some View { + Text("Hello tv-casting-common C++, from Objective-C, from Swift! Sum: " + String(CastingServerBridge.getSharedInstance().add(5, secondNum: 6))) + .padding() + } +} + +struct ContentView_Previews: PreviewProvider { + static var previews: some View { + ContentView() } - return UIApplicationMain(argc, argv, nil, appDelegateClassName); } diff --git a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/Assets.xcassets/Contents.json b/examples/tv-casting-app/darwin/TvCasting/TvCasting/Preview Content/Preview Assets.xcassets/Contents.json similarity index 100% rename from examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/Assets.xcassets/Contents.json rename to examples/tv-casting-app/darwin/TvCasting/TvCasting/Preview Content/Preview Assets.xcassets/Contents.json diff --git a/examples/tv-casting-app/darwin/TvCasting/TvCasting/TvCasting.entitlements b/examples/tv-casting-app/darwin/TvCasting/TvCasting/TvCasting.entitlements new file mode 100644 index 00000000000000..7a2230dc331daf --- /dev/null +++ b/examples/tv-casting-app/darwin/TvCasting/TvCasting/TvCasting.entitlements @@ -0,0 +1,12 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.network.client + + com.apple.security.network.server + + + diff --git a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/ViewController.h b/examples/tv-casting-app/darwin/TvCasting/TvCasting/TvCastingApp.swift similarity index 82% rename from examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/ViewController.h rename to examples/tv-casting-app/darwin/TvCasting/TvCasting/TvCastingApp.swift index e122b5c9ad9c0c..27dce5b63f55f1 100644 --- a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/ViewController.h +++ b/examples/tv-casting-app/darwin/TvCasting/TvCasting/TvCastingApp.swift @@ -15,8 +15,13 @@ * limitations under the License. */ -#import +import SwiftUI -@interface ViewController : UIViewController - -@end +@main +struct TvCastingApp: App { + var body: some Scene { + WindowGroup { + ContentView() + } + } +} diff --git a/examples/tv-casting-app/darwin/TvCasting/chip_xcode_build_connector.sh b/examples/tv-casting-app/darwin/TvCasting/chip_xcode_build_connector.sh new file mode 100755 index 00000000000000..d5ec1edcb4c206 --- /dev/null +++ b/examples/tv-casting-app/darwin/TvCasting/chip_xcode_build_connector.sh @@ -0,0 +1,162 @@ +#!/usr/bin/env bash + +# +# Copyright (c) 2022 Project CHIP Authors +# All rights reserved. +# +# 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. +# + +# This script connects Xcode's "Run Script" build phase to a build of CHIP for Apple's environments. +# +# Conventions used in this script: +# * Variables in upper case supplied by Xcode (or other executor), are exported to subprocesses, or +# are upper-case elsewhere in CHIP scripts (e.g. CHIP_ROOT is only used locally, +# but is all uppper). Variables defined herein and used locally are lower-case +# + +here=$(cd "${0%/*}" && pwd) +me=${0##*/} + +CHIP_ROOT=$(cd "$here/../../../.." && pwd) + +die() { + echo "$me: *** ERROR: $*" + exit 1 +} + +# lotsa debug output :-) +set -ex + +# helpful debugging, save off environment that Xcode gives us, can source it to +# retry/repro failures from a bash terminal +mkdir -p "$TEMP_DIR" +export >"$TEMP_DIR/env.sh" + +declare -a defines=() +# lots of environment variables passed by Xcode to this script +read -r -a defines <<<"$GCC_PREPROCESSOR_DEFINITIONS" + +declare target_defines= +for define in "${defines[@]}"; do + + # skip over those that GN does for us + case "$define" in + CHIP_HAVE_CONFIG_H) + continue + ;; + esac + target_defines+=,\"${define//\"/\\\"}\" +done +target_defines=[${target_defines:1}] + +declare target_cpu= +case $PLATFORM_PREFERRED_ARCH in + i386) + target_cpu=x86 + ;; + x86_64) + target_cpu=x64 + ;; + armv7) + target_cpu=arm + ;; + arm64) + target_cpu=arm64 + ;; + *) + echo >&2 + ;; +esac + +declare target_cflags='"-target","'"$PLATFORM_PREFERRED_ARCH"'-'"$LLVM_TARGET_TRIPLE_VENDOR"'-'"$LLVM_TARGET_TRIPLE_OS_VERSION"'"' + +read -r -a archs <<<"$ARCHS" + +for arch in "${archs[@]}"; do + target_cflags+=',"-arch","'"$arch"'"' +done + +[[ $ENABLE_BITCODE == YES ]] && { + target_cflags+=',"-flto"' +} + +declare -a args=( + 'default_configs_cosmetic=[]' # suppress colorization + 'chip_crypto="mbedtls"' + 'chip_build_tools=false' + 'chip_build_tests=false' + 'target_cpu="'"$target_cpu"'"' + 'target_defines='"$target_defines" + 'target_cflags=['"$target_cflags"']' + 'build_tv_casting_common_a=true' +) + +[[ $CONFIGURATION != Debug* ]] && args+='is_debug=true' + +[[ $PLATFORM_FAMILY_NAME != macOS ]] && { + args+=( + 'target_os="ios"' + 'import("//config/ios/args.gni")' + ) +} + +[[ $PLATFORM_FAMILY_NAME == macOS ]] && { + args+=( + 'target_os="mac"' + ) +} + +# search current (or $2) and its parent directories until +# a name match is found, which is output on stdout +find_in_ancestors() { + declare to_find="${1}" + declare dir="${2:-$(pwd)}" + + while [[ ! -e ${dir}/${to_find} && -n ${dir} ]]; do + dir=${dir%/*} + done + + if [[ ! -e ${dir}/${to_find} ]]; then + printf 'error: find_in_ancestors: %s not found\n' "$to_find" >&2 + return 1 + fi + printf '%s\n' "$dir/$to_find" +} + +# actual build stuff +( + cd "$CHIP_ROOT" # pushd and popd because we need the env vars from activate + + if ENV=$(find_in_ancestors chip_xcode_build_connector_env.sh 2>/dev/null); then + . "$ENV" + fi + + # there are environments where these bits are unwanted, unnecessary, or impossible + [[ -n $CHIP_NO_SUBMODULES ]] || git submodule update --init + if [[ -z $CHIP_NO_ACTIVATE ]]; then + # first run bootstrap/activate in an external env to build everything + env -i PW_ENVSETUP_NO_BANNER=1 PW_ENVSETUP_QUIET=1 bash -c '. scripts/activate.sh' + set +ex + # now source activate for env vars + PW_ENVSETUP_NO_BANNER=1 PW_ENVSETUP_QUIET=1 . scripts/activate.sh + set -ex + fi + + # put build intermediates in TEMP_DIR + cd "$TEMP_DIR" + + # gnerate and build + gn --root="$CHIP_ROOT" gen --check out --args="${args[*]}" + ninja -v -C out +) diff --git a/examples/tv-casting-app/darwin/Darwin.xcworkspace/contents.xcworkspacedata b/examples/tv-casting-app/darwin/TvCastingDarwin.xcworkspace/contents.xcworkspacedata similarity index 61% rename from examples/tv-casting-app/darwin/Darwin.xcworkspace/contents.xcworkspacedata rename to examples/tv-casting-app/darwin/TvCastingDarwin.xcworkspace/contents.xcworkspacedata index 084bb6822bc300..b38c76bf17c560 100644 --- a/examples/tv-casting-app/darwin/Darwin.xcworkspace/contents.xcworkspacedata +++ b/examples/tv-casting-app/darwin/TvCastingDarwin.xcworkspace/contents.xcworkspacedata @@ -2,6 +2,6 @@ + location = "group:TvCasting/TvCasting.xcodeproj"> diff --git a/examples/tv-casting-app/darwin/Darwin.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/tv-casting-app/darwin/TvCastingDarwin.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from examples/tv-casting-app/darwin/Darwin.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to examples/tv-casting-app/darwin/TvCastingDarwin.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/examples/tv-casting-app/darwin/darwin.xcodeproj/project.pbxproj b/examples/tv-casting-app/darwin/darwin.xcodeproj/project.pbxproj deleted file mode 100644 index f2027a6b29c9a2..00000000000000 --- a/examples/tv-casting-app/darwin/darwin.xcodeproj/project.pbxproj +++ /dev/null @@ -1,587 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - 3CB8D82227962E3E00BA4D5D /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CB8D82127962E3E00BA4D5D /* AppDelegate.m */; }; - 3CB8D82527962E3E00BA4D5D /* SceneDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CB8D82427962E3E00BA4D5D /* SceneDelegate.m */; }; - 3CB8D82827962E3E00BA4D5D /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CB8D82727962E3E00BA4D5D /* ViewController.m */; }; - 3CB8D82B27962E3E00BA4D5D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3CB8D82927962E3E00BA4D5D /* Main.storyboard */; }; - 3CB8D82D27962E4800BA4D5D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3CB8D82C27962E4800BA4D5D /* Assets.xcassets */; }; - 3CB8D83027962E4800BA4D5D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3CB8D82E27962E4800BA4D5D /* LaunchScreen.storyboard */; }; - 3CB8D83327962E4800BA4D5D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CB8D83227962E4800BA4D5D /* main.m */; }; - 3CB8D83D27962E4900BA4D5D /* darwinTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CB8D83C27962E4900BA4D5D /* darwinTests.m */; }; - 3CB8D84827962E4900BA4D5D /* darwinUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CB8D84727962E4900BA4D5D /* darwinUITests.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 3CB8D83927962E4900BA4D5D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 3CB8D81527962E3E00BA4D5D /* Project object */; - proxyType = 1; - remoteGlobalIDString = 3CB8D81C27962E3E00BA4D5D; - remoteInfo = darwin; - }; - 3CB8D84427962E4900BA4D5D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 3CB8D81527962E3E00BA4D5D /* Project object */; - proxyType = 1; - remoteGlobalIDString = 3CB8D81C27962E3E00BA4D5D; - remoteInfo = darwin; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 3CB8D81D27962E3E00BA4D5D /* darwin.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = darwin.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 3CB8D82027962E3E00BA4D5D /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - 3CB8D82127962E3E00BA4D5D /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 3CB8D82327962E3E00BA4D5D /* SceneDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SceneDelegate.h; sourceTree = ""; }; - 3CB8D82427962E3E00BA4D5D /* SceneDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SceneDelegate.m; sourceTree = ""; }; - 3CB8D82627962E3E00BA4D5D /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; - 3CB8D82727962E3E00BA4D5D /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; - 3CB8D82A27962E3E00BA4D5D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 3CB8D82C27962E4800BA4D5D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 3CB8D82F27962E4800BA4D5D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 3CB8D83127962E4800BA4D5D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 3CB8D83227962E4800BA4D5D /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 3CB8D83827962E4900BA4D5D /* darwinTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = darwinTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 3CB8D83C27962E4900BA4D5D /* darwinTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = darwinTests.m; sourceTree = ""; }; - 3CB8D83E27962E4900BA4D5D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 3CB8D84327962E4900BA4D5D /* darwinUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = darwinUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 3CB8D84727962E4900BA4D5D /* darwinUITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = darwinUITests.m; sourceTree = ""; }; - 3CB8D84927962E4900BA4D5D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 3CB8D81A27962E3E00BA4D5D /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 3CB8D83527962E4900BA4D5D /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 3CB8D84027962E4900BA4D5D /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 3CB8D81427962E3E00BA4D5D = { - isa = PBXGroup; - children = ( - 3CB8D81F27962E3E00BA4D5D /* darwin */, - 3CB8D83B27962E4900BA4D5D /* darwinTests */, - 3CB8D84627962E4900BA4D5D /* darwinUITests */, - 3CB8D81E27962E3E00BA4D5D /* Products */, - ); - sourceTree = ""; - }; - 3CB8D81E27962E3E00BA4D5D /* Products */ = { - isa = PBXGroup; - children = ( - 3CB8D81D27962E3E00BA4D5D /* darwin.app */, - 3CB8D83827962E4900BA4D5D /* darwinTests.xctest */, - 3CB8D84327962E4900BA4D5D /* darwinUITests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - 3CB8D81F27962E3E00BA4D5D /* darwin */ = { - isa = PBXGroup; - children = ( - 3CB8D82027962E3E00BA4D5D /* AppDelegate.h */, - 3CB8D82127962E3E00BA4D5D /* AppDelegate.m */, - 3CB8D82327962E3E00BA4D5D /* SceneDelegate.h */, - 3CB8D82427962E3E00BA4D5D /* SceneDelegate.m */, - 3CB8D82627962E3E00BA4D5D /* ViewController.h */, - 3CB8D82727962E3E00BA4D5D /* ViewController.m */, - 3CB8D82927962E3E00BA4D5D /* Main.storyboard */, - 3CB8D82C27962E4800BA4D5D /* Assets.xcassets */, - 3CB8D82E27962E4800BA4D5D /* LaunchScreen.storyboard */, - 3CB8D83127962E4800BA4D5D /* Info.plist */, - 3CB8D83227962E4800BA4D5D /* main.m */, - ); - path = darwin; - sourceTree = ""; - }; - 3CB8D83B27962E4900BA4D5D /* darwinTests */ = { - isa = PBXGroup; - children = ( - 3CB8D83C27962E4900BA4D5D /* darwinTests.m */, - 3CB8D83E27962E4900BA4D5D /* Info.plist */, - ); - path = darwinTests; - sourceTree = ""; - }; - 3CB8D84627962E4900BA4D5D /* darwinUITests */ = { - isa = PBXGroup; - children = ( - 3CB8D84727962E4900BA4D5D /* darwinUITests.m */, - 3CB8D84927962E4900BA4D5D /* Info.plist */, - ); - path = darwinUITests; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 3CB8D81C27962E3E00BA4D5D /* darwin */ = { - isa = PBXNativeTarget; - buildConfigurationList = 3CB8D84C27962E4900BA4D5D /* Build configuration list for PBXNativeTarget "darwin" */; - buildPhases = ( - 3CB8D81927962E3E00BA4D5D /* Sources */, - 3CB8D81A27962E3E00BA4D5D /* Frameworks */, - 3CB8D81B27962E3E00BA4D5D /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = darwin; - productName = darwin; - productReference = 3CB8D81D27962E3E00BA4D5D /* darwin.app */; - productType = "com.apple.product-type.application"; - }; - 3CB8D83727962E4900BA4D5D /* darwinTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 3CB8D84F27962E4900BA4D5D /* Build configuration list for PBXNativeTarget "darwinTests" */; - buildPhases = ( - 3CB8D83427962E4900BA4D5D /* Sources */, - 3CB8D83527962E4900BA4D5D /* Frameworks */, - 3CB8D83627962E4900BA4D5D /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 3CB8D83A27962E4900BA4D5D /* PBXTargetDependency */, - ); - name = darwinTests; - productName = darwinTests; - productReference = 3CB8D83827962E4900BA4D5D /* darwinTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 3CB8D84227962E4900BA4D5D /* darwinUITests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 3CB8D85227962E4900BA4D5D /* Build configuration list for PBXNativeTarget "darwinUITests" */; - buildPhases = ( - 3CB8D83F27962E4900BA4D5D /* Sources */, - 3CB8D84027962E4900BA4D5D /* Frameworks */, - 3CB8D84127962E4900BA4D5D /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 3CB8D84527962E4900BA4D5D /* PBXTargetDependency */, - ); - name = darwinUITests; - productName = darwinUITests; - productReference = 3CB8D84327962E4900BA4D5D /* darwinUITests.xctest */; - productType = "com.apple.product-type.bundle.ui-testing"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 3CB8D81527962E3E00BA4D5D /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 1240; - TargetAttributes = { - 3CB8D81C27962E3E00BA4D5D = { - CreatedOnToolsVersion = 12.4; - }; - 3CB8D83727962E4900BA4D5D = { - CreatedOnToolsVersion = 12.4; - TestTargetID = 3CB8D81C27962E3E00BA4D5D; - }; - 3CB8D84227962E4900BA4D5D = { - CreatedOnToolsVersion = 12.4; - TestTargetID = 3CB8D81C27962E3E00BA4D5D; - }; - }; - }; - buildConfigurationList = 3CB8D81827962E3E00BA4D5D /* Build configuration list for PBXProject "darwin" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 3CB8D81427962E3E00BA4D5D; - productRefGroup = 3CB8D81E27962E3E00BA4D5D /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 3CB8D81C27962E3E00BA4D5D /* darwin */, - 3CB8D83727962E4900BA4D5D /* darwinTests */, - 3CB8D84227962E4900BA4D5D /* darwinUITests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 3CB8D81B27962E3E00BA4D5D /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 3CB8D83027962E4800BA4D5D /* LaunchScreen.storyboard in Resources */, - 3CB8D82D27962E4800BA4D5D /* Assets.xcassets in Resources */, - 3CB8D82B27962E3E00BA4D5D /* Main.storyboard in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 3CB8D83627962E4900BA4D5D /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 3CB8D84127962E4900BA4D5D /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 3CB8D81927962E3E00BA4D5D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 3CB8D82827962E3E00BA4D5D /* ViewController.m in Sources */, - 3CB8D82227962E3E00BA4D5D /* AppDelegate.m in Sources */, - 3CB8D83327962E4800BA4D5D /* main.m in Sources */, - 3CB8D82527962E3E00BA4D5D /* SceneDelegate.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 3CB8D83427962E4900BA4D5D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 3CB8D83D27962E4900BA4D5D /* darwinTests.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 3CB8D83F27962E4900BA4D5D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 3CB8D84827962E4900BA4D5D /* darwinUITests.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 3CB8D83A27962E4900BA4D5D /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 3CB8D81C27962E3E00BA4D5D /* darwin */; - targetProxy = 3CB8D83927962E4900BA4D5D /* PBXContainerItemProxy */; - }; - 3CB8D84527962E4900BA4D5D /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 3CB8D81C27962E3E00BA4D5D /* darwin */; - targetProxy = 3CB8D84427962E4900BA4D5D /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 3CB8D82927962E3E00BA4D5D /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 3CB8D82A27962E3E00BA4D5D /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - 3CB8D82E27962E4800BA4D5D /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 3CB8D82F27962E4800BA4D5D /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 3CB8D84A27962E4900BA4D5D /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 14.4; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 3CB8D84B27962E4900BA4D5D /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 14.4; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 3CB8D84D27962E4900BA4D5D /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_STYLE = Automatic; - INFOPLIST_FILE = darwin/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = darwin.darwin; - PRODUCT_NAME = "$(TARGET_NAME)"; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 3CB8D84E27962E4900BA4D5D /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_STYLE = Automatic; - INFOPLIST_FILE = darwin/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = darwin.darwin; - PRODUCT_NAME = "$(TARGET_NAME)"; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - 3CB8D85027962E4900BA4D5D /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - INFOPLIST_FILE = darwinTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.4; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = darwin.darwinTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/darwin.app/darwin"; - }; - name = Debug; - }; - 3CB8D85127962E4900BA4D5D /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - INFOPLIST_FILE = darwinTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.4; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = darwin.darwinTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/darwin.app/darwin"; - }; - name = Release; - }; - 3CB8D85327962E4900BA4D5D /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - INFOPLIST_FILE = darwinUITests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = darwin.darwinUITests; - PRODUCT_NAME = "$(TARGET_NAME)"; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = darwin; - }; - name = Debug; - }; - 3CB8D85427962E4900BA4D5D /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - INFOPLIST_FILE = darwinUITests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = darwin.darwinUITests; - PRODUCT_NAME = "$(TARGET_NAME)"; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = darwin; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 3CB8D81827962E3E00BA4D5D /* Build configuration list for PBXProject "darwin" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3CB8D84A27962E4900BA4D5D /* Debug */, - 3CB8D84B27962E4900BA4D5D /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 3CB8D84C27962E4900BA4D5D /* Build configuration list for PBXNativeTarget "darwin" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3CB8D84D27962E4900BA4D5D /* Debug */, - 3CB8D84E27962E4900BA4D5D /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 3CB8D84F27962E4900BA4D5D /* Build configuration list for PBXNativeTarget "darwinTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3CB8D85027962E4900BA4D5D /* Debug */, - 3CB8D85127962E4900BA4D5D /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 3CB8D85227962E4900BA4D5D /* Build configuration list for PBXNativeTarget "darwinUITests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3CB8D85327962E4900BA4D5D /* Debug */, - 3CB8D85427962E4900BA4D5D /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 3CB8D81527962E3E00BA4D5D /* Project object */; -} diff --git a/examples/tv-casting-app/darwin/darwin/AppDelegate.m b/examples/tv-casting-app/darwin/darwin/AppDelegate.m deleted file mode 100644 index 2c2c939aa49403..00000000000000 --- a/examples/tv-casting-app/darwin/darwin/AppDelegate.m +++ /dev/null @@ -1,51 +0,0 @@ -/** - * - * Copyright (c) 2020-2022 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. - */ - -#import "AppDelegate.h" - -@interface AppDelegate () - -@end - -@implementation AppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions -{ - // Override point for customization after application launch. - return YES; -} - -#pragma mark - UISceneSession lifecycle - -- (UISceneConfiguration *)application:(UIApplication *)application - configurationForConnectingSceneSession:(UISceneSession *)connectingSceneSession - options:(UISceneConnectionOptions *)options -{ - // Called when a new scene session is being created. - // Use this method to select a configuration to create the new scene with. - return [[UISceneConfiguration alloc] initWithName:@"Default Configuration" sessionRole:connectingSceneSession.role]; -} - -- (void)application:(UIApplication *)application didDiscardSceneSessions:(NSSet *)sceneSessions -{ - // Called when the user discards a scene session. - // If any sessions were discarded while the application was not running, this will be called shortly after - // application:didFinishLaunchingWithOptions. Use this method to release any resources that were specific to the discarded - // scenes, as they will not return. -} - -@end diff --git a/examples/tv-casting-app/darwin/darwin/Base.lproj/LaunchScreen.storyboard b/examples/tv-casting-app/darwin/darwin/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index 865e9329f3767a..00000000000000 --- a/examples/tv-casting-app/darwin/darwin/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/tv-casting-app/darwin/darwin/Base.lproj/Main.storyboard b/examples/tv-casting-app/darwin/darwin/Base.lproj/Main.storyboard deleted file mode 100644 index 808a21ce779bae..00000000000000 --- a/examples/tv-casting-app/darwin/darwin/Base.lproj/Main.storyboard +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/tv-casting-app/darwin/darwin/Info.plist b/examples/tv-casting-app/darwin/darwin/Info.plist deleted file mode 100644 index 72bf2c4f5985f3..00000000000000 --- a/examples/tv-casting-app/darwin/darwin/Info.plist +++ /dev/null @@ -1,66 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - $(PRODUCT_BUNDLE_PACKAGE_TYPE) - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIApplicationSceneManifest - - UIApplicationSupportsMultipleScenes - - UISceneConfigurations - - UIWindowSceneSessionRoleApplication - - - UISceneConfigurationName - Default Configuration - UISceneDelegateClassName - SceneDelegate - UISceneStoryboardFile - Main - - - - - UIApplicationSupportsIndirectInputEvents - - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/examples/tv-casting-app/darwin/darwin/SceneDelegate.m b/examples/tv-casting-app/darwin/darwin/SceneDelegate.m deleted file mode 100644 index 9a34646685879c..00000000000000 --- a/examples/tv-casting-app/darwin/darwin/SceneDelegate.m +++ /dev/null @@ -1,68 +0,0 @@ -/** - * - * Copyright (c) 2020-2022 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. - */ - -#import "SceneDelegate.h" - -@interface SceneDelegate () - -@end - -@implementation SceneDelegate - -- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions -{ - // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. - // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. - // This delegate does not imply the connecting scene or session are new (see - // `application:configurationForConnectingSceneSession` instead). -} - -- (void)sceneDidDisconnect:(UIScene *)scene -{ - // Called as the scene is being released by the system. - // This occurs shortly after the scene enters the background, or when its session is discarded. - // Release any resources associated with this scene that can be re-created the next time the scene connects. - // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` - // instead). -} - -- (void)sceneDidBecomeActive:(UIScene *)scene -{ - // Called when the scene has moved from an inactive state to an active state. - // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. -} - -- (void)sceneWillResignActive:(UIScene *)scene -{ - // Called when the scene will move from an active state to an inactive state. - // This may occur due to temporary interruptions (ex. an incoming phone call). -} - -- (void)sceneWillEnterForeground:(UIScene *)scene -{ - // Called as the scene transitions from the background to the foreground. - // Use this method to undo the changes made on entering the background. -} - -- (void)sceneDidEnterBackground:(UIScene *)scene -{ - // Called as the scene transitions from the foreground to the background. - // Use this method to save data, release shared resources, and store enough scene-specific state information - // to restore the scene back to its current state. -} - -@end diff --git a/examples/tv-casting-app/darwin/darwinTests/Info.plist b/examples/tv-casting-app/darwin/darwinTests/Info.plist deleted file mode 100644 index 64d65ca495770b..00000000000000 --- a/examples/tv-casting-app/darwin/darwinTests/Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - $(PRODUCT_BUNDLE_PACKAGE_TYPE) - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - - diff --git a/examples/tv-casting-app/darwin/darwinTests/darwinTests.m b/examples/tv-casting-app/darwin/darwinTests/darwinTests.m deleted file mode 100644 index 81f43c1ecb8eca..00000000000000 --- a/examples/tv-casting-app/darwin/darwinTests/darwinTests.m +++ /dev/null @@ -1,50 +0,0 @@ -/** - * - * Copyright (c) 2020-2022 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. - */ - -#import - -@interface darwinTests : XCTestCase - -@end - -@implementation darwinTests - -- (void)setUp -{ - // Put setup code here. This method is called before the invocation of each test method in the class. -} - -- (void)tearDown -{ - // Put teardown code here. This method is called after the invocation of each test method in the class. -} - -- (void)testExample -{ - // This is an example of a functional test case. - // Use XCTAssert and related functions to verify your tests produce the correct results. -} - -- (void)testPerformanceExample -{ - // This is an example of a performance test case. - [self measureBlock:^ { - // Put the code you want to measure the time of here. - }]; -} - -@end diff --git a/examples/tv-casting-app/darwin/darwinUITests/Info.plist b/examples/tv-casting-app/darwin/darwinUITests/Info.plist deleted file mode 100644 index 64d65ca495770b..00000000000000 --- a/examples/tv-casting-app/darwin/darwinUITests/Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - $(PRODUCT_BUNDLE_PACKAGE_TYPE) - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - - diff --git a/examples/tv-casting-app/darwin/darwinUITests/darwinUITests.m b/examples/tv-casting-app/darwin/darwinUITests/darwinUITests.m deleted file mode 100644 index 2f127dda433ad7..00000000000000 --- a/examples/tv-casting-app/darwin/darwinUITests/darwinUITests.m +++ /dev/null @@ -1,63 +0,0 @@ -/** - * - * Copyright (c) 2020-2022 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. - */ - -#import - -@interface darwinUITests : XCTestCase - -@end - -@implementation darwinUITests - -- (void)setUp -{ - // Put setup code here. This method is called before the invocation of each test method in the class. - - // In UI tests it is usually best to stop immediately when a failure occurs. - self.continueAfterFailure = NO; - - // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they - // run. The setUp method is a good place to do this. -} - -- (void)tearDown -{ - // Put teardown code here. This method is called after the invocation of each test method in the class. -} - -- (void)testExample -{ - // UI tests must launch the application that they test. - XCUIApplication * app = [[XCUIApplication alloc] init]; - [app launch]; - - // Use recording to get started writing UI tests. - // Use XCTAssert and related functions to verify your tests produce the correct results. -} - -- (void)testLaunchPerformance -{ - if (@available(macOS 10.15, iOS 13.0, tvOS 13.0, *)) { - // This measures how long it takes to launch your application. - [self measureWithMetrics:@[ [[XCTApplicationLaunchMetric alloc] init] ] - block:^{ - [[[XCUIApplication alloc] init] launch]; - }]; - } -} - -@end diff --git a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp.xcodeproj/project.pbxproj b/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp.xcodeproj/project.pbxproj deleted file mode 100644 index 755ed4003980f6..00000000000000 --- a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp.xcodeproj/project.pbxproj +++ /dev/null @@ -1,587 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - 3CB8D86627962FD100BA4D5D /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CB8D86527962FD100BA4D5D /* AppDelegate.m */; }; - 3CB8D86927962FD100BA4D5D /* SceneDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CB8D86827962FD100BA4D5D /* SceneDelegate.m */; }; - 3CB8D86C27962FD100BA4D5D /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CB8D86B27962FD100BA4D5D /* ViewController.m */; }; - 3CB8D86F27962FD100BA4D5D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3CB8D86D27962FD100BA4D5D /* Main.storyboard */; }; - 3CB8D87127962FDA00BA4D5D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3CB8D87027962FDA00BA4D5D /* Assets.xcassets */; }; - 3CB8D87427962FDA00BA4D5D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3CB8D87227962FDA00BA4D5D /* LaunchScreen.storyboard */; }; - 3CB8D87727962FDA00BA4D5D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CB8D87627962FDA00BA4D5D /* main.m */; }; - 3CB8D88127962FDA00BA4D5D /* iOSTVCastingAppTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CB8D88027962FDA00BA4D5D /* iOSTVCastingAppTests.m */; }; - 3CB8D88C27962FDB00BA4D5D /* iOSTVCastingAppUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CB8D88B27962FDB00BA4D5D /* iOSTVCastingAppUITests.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 3CB8D87D27962FDA00BA4D5D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 3CB8D85927962FD100BA4D5D /* Project object */; - proxyType = 1; - remoteGlobalIDString = 3CB8D86027962FD100BA4D5D; - remoteInfo = iOSTVCastingApp; - }; - 3CB8D88827962FDB00BA4D5D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 3CB8D85927962FD100BA4D5D /* Project object */; - proxyType = 1; - remoteGlobalIDString = 3CB8D86027962FD100BA4D5D; - remoteInfo = iOSTVCastingApp; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 3CB8D86127962FD100BA4D5D /* iOSTVCastingApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iOSTVCastingApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 3CB8D86427962FD100BA4D5D /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - 3CB8D86527962FD100BA4D5D /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 3CB8D86727962FD100BA4D5D /* SceneDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SceneDelegate.h; sourceTree = ""; }; - 3CB8D86827962FD100BA4D5D /* SceneDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SceneDelegate.m; sourceTree = ""; }; - 3CB8D86A27962FD100BA4D5D /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; - 3CB8D86B27962FD100BA4D5D /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; - 3CB8D86E27962FD100BA4D5D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 3CB8D87027962FDA00BA4D5D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 3CB8D87327962FDA00BA4D5D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 3CB8D87527962FDA00BA4D5D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 3CB8D87627962FDA00BA4D5D /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 3CB8D87C27962FDA00BA4D5D /* iOSTVCastingAppTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = iOSTVCastingAppTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 3CB8D88027962FDA00BA4D5D /* iOSTVCastingAppTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = iOSTVCastingAppTests.m; sourceTree = ""; }; - 3CB8D88227962FDA00BA4D5D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 3CB8D88727962FDB00BA4D5D /* iOSTVCastingAppUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = iOSTVCastingAppUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 3CB8D88B27962FDB00BA4D5D /* iOSTVCastingAppUITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = iOSTVCastingAppUITests.m; sourceTree = ""; }; - 3CB8D88D27962FDB00BA4D5D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 3CB8D85E27962FD100BA4D5D /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 3CB8D87927962FDA00BA4D5D /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 3CB8D88427962FDB00BA4D5D /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 3CB8D85827962FD100BA4D5D = { - isa = PBXGroup; - children = ( - 3CB8D86327962FD100BA4D5D /* iOSTVCastingApp */, - 3CB8D87F27962FDA00BA4D5D /* iOSTVCastingAppTests */, - 3CB8D88A27962FDB00BA4D5D /* iOSTVCastingAppUITests */, - 3CB8D86227962FD100BA4D5D /* Products */, - ); - sourceTree = ""; - }; - 3CB8D86227962FD100BA4D5D /* Products */ = { - isa = PBXGroup; - children = ( - 3CB8D86127962FD100BA4D5D /* iOSTVCastingApp.app */, - 3CB8D87C27962FDA00BA4D5D /* iOSTVCastingAppTests.xctest */, - 3CB8D88727962FDB00BA4D5D /* iOSTVCastingAppUITests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - 3CB8D86327962FD100BA4D5D /* iOSTVCastingApp */ = { - isa = PBXGroup; - children = ( - 3CB8D86427962FD100BA4D5D /* AppDelegate.h */, - 3CB8D86527962FD100BA4D5D /* AppDelegate.m */, - 3CB8D86727962FD100BA4D5D /* SceneDelegate.h */, - 3CB8D86827962FD100BA4D5D /* SceneDelegate.m */, - 3CB8D86A27962FD100BA4D5D /* ViewController.h */, - 3CB8D86B27962FD100BA4D5D /* ViewController.m */, - 3CB8D86D27962FD100BA4D5D /* Main.storyboard */, - 3CB8D87027962FDA00BA4D5D /* Assets.xcassets */, - 3CB8D87227962FDA00BA4D5D /* LaunchScreen.storyboard */, - 3CB8D87527962FDA00BA4D5D /* Info.plist */, - 3CB8D87627962FDA00BA4D5D /* main.m */, - ); - path = iOSTVCastingApp; - sourceTree = ""; - }; - 3CB8D87F27962FDA00BA4D5D /* iOSTVCastingAppTests */ = { - isa = PBXGroup; - children = ( - 3CB8D88027962FDA00BA4D5D /* iOSTVCastingAppTests.m */, - 3CB8D88227962FDA00BA4D5D /* Info.plist */, - ); - path = iOSTVCastingAppTests; - sourceTree = ""; - }; - 3CB8D88A27962FDB00BA4D5D /* iOSTVCastingAppUITests */ = { - isa = PBXGroup; - children = ( - 3CB8D88B27962FDB00BA4D5D /* iOSTVCastingAppUITests.m */, - 3CB8D88D27962FDB00BA4D5D /* Info.plist */, - ); - path = iOSTVCastingAppUITests; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 3CB8D86027962FD100BA4D5D /* iOSTVCastingApp */ = { - isa = PBXNativeTarget; - buildConfigurationList = 3CB8D89027962FDB00BA4D5D /* Build configuration list for PBXNativeTarget "iOSTVCastingApp" */; - buildPhases = ( - 3CB8D85D27962FD100BA4D5D /* Sources */, - 3CB8D85E27962FD100BA4D5D /* Frameworks */, - 3CB8D85F27962FD100BA4D5D /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = iOSTVCastingApp; - productName = iOSTVCastingApp; - productReference = 3CB8D86127962FD100BA4D5D /* iOSTVCastingApp.app */; - productType = "com.apple.product-type.application"; - }; - 3CB8D87B27962FDA00BA4D5D /* iOSTVCastingAppTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 3CB8D89327962FDB00BA4D5D /* Build configuration list for PBXNativeTarget "iOSTVCastingAppTests" */; - buildPhases = ( - 3CB8D87827962FDA00BA4D5D /* Sources */, - 3CB8D87927962FDA00BA4D5D /* Frameworks */, - 3CB8D87A27962FDA00BA4D5D /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 3CB8D87E27962FDA00BA4D5D /* PBXTargetDependency */, - ); - name = iOSTVCastingAppTests; - productName = iOSTVCastingAppTests; - productReference = 3CB8D87C27962FDA00BA4D5D /* iOSTVCastingAppTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 3CB8D88627962FDB00BA4D5D /* iOSTVCastingAppUITests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 3CB8D89627962FDB00BA4D5D /* Build configuration list for PBXNativeTarget "iOSTVCastingAppUITests" */; - buildPhases = ( - 3CB8D88327962FDB00BA4D5D /* Sources */, - 3CB8D88427962FDB00BA4D5D /* Frameworks */, - 3CB8D88527962FDB00BA4D5D /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 3CB8D88927962FDB00BA4D5D /* PBXTargetDependency */, - ); - name = iOSTVCastingAppUITests; - productName = iOSTVCastingAppUITests; - productReference = 3CB8D88727962FDB00BA4D5D /* iOSTVCastingAppUITests.xctest */; - productType = "com.apple.product-type.bundle.ui-testing"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 3CB8D85927962FD100BA4D5D /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 1240; - TargetAttributes = { - 3CB8D86027962FD100BA4D5D = { - CreatedOnToolsVersion = 12.4; - }; - 3CB8D87B27962FDA00BA4D5D = { - CreatedOnToolsVersion = 12.4; - TestTargetID = 3CB8D86027962FD100BA4D5D; - }; - 3CB8D88627962FDB00BA4D5D = { - CreatedOnToolsVersion = 12.4; - TestTargetID = 3CB8D86027962FD100BA4D5D; - }; - }; - }; - buildConfigurationList = 3CB8D85C27962FD100BA4D5D /* Build configuration list for PBXProject "iOSTVCastingApp" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 3CB8D85827962FD100BA4D5D; - productRefGroup = 3CB8D86227962FD100BA4D5D /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 3CB8D86027962FD100BA4D5D /* iOSTVCastingApp */, - 3CB8D87B27962FDA00BA4D5D /* iOSTVCastingAppTests */, - 3CB8D88627962FDB00BA4D5D /* iOSTVCastingAppUITests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 3CB8D85F27962FD100BA4D5D /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 3CB8D87427962FDA00BA4D5D /* LaunchScreen.storyboard in Resources */, - 3CB8D87127962FDA00BA4D5D /* Assets.xcassets in Resources */, - 3CB8D86F27962FD100BA4D5D /* Main.storyboard in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 3CB8D87A27962FDA00BA4D5D /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 3CB8D88527962FDB00BA4D5D /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 3CB8D85D27962FD100BA4D5D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 3CB8D86C27962FD100BA4D5D /* ViewController.m in Sources */, - 3CB8D86627962FD100BA4D5D /* AppDelegate.m in Sources */, - 3CB8D87727962FDA00BA4D5D /* main.m in Sources */, - 3CB8D86927962FD100BA4D5D /* SceneDelegate.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 3CB8D87827962FDA00BA4D5D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 3CB8D88127962FDA00BA4D5D /* iOSTVCastingAppTests.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 3CB8D88327962FDB00BA4D5D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 3CB8D88C27962FDB00BA4D5D /* iOSTVCastingAppUITests.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 3CB8D87E27962FDA00BA4D5D /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 3CB8D86027962FD100BA4D5D /* iOSTVCastingApp */; - targetProxy = 3CB8D87D27962FDA00BA4D5D /* PBXContainerItemProxy */; - }; - 3CB8D88927962FDB00BA4D5D /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 3CB8D86027962FD100BA4D5D /* iOSTVCastingApp */; - targetProxy = 3CB8D88827962FDB00BA4D5D /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 3CB8D86D27962FD100BA4D5D /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 3CB8D86E27962FD100BA4D5D /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - 3CB8D87227962FDA00BA4D5D /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 3CB8D87327962FDA00BA4D5D /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 3CB8D88E27962FDB00BA4D5D /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 14.4; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 3CB8D88F27962FDB00BA4D5D /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 14.4; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 3CB8D89127962FDB00BA4D5D /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_STYLE = Automatic; - INFOPLIST_FILE = iOSTVCastingApp/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = darwin.iOSTVCastingApp; - PRODUCT_NAME = "$(TARGET_NAME)"; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 3CB8D89227962FDB00BA4D5D /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_STYLE = Automatic; - INFOPLIST_FILE = iOSTVCastingApp/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = darwin.iOSTVCastingApp; - PRODUCT_NAME = "$(TARGET_NAME)"; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - 3CB8D89427962FDB00BA4D5D /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - INFOPLIST_FILE = iOSTVCastingAppTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.4; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = darwin.iOSTVCastingAppTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/iOSTVCastingApp.app/iOSTVCastingApp"; - }; - name = Debug; - }; - 3CB8D89527962FDB00BA4D5D /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - INFOPLIST_FILE = iOSTVCastingAppTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.4; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = darwin.iOSTVCastingAppTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/iOSTVCastingApp.app/iOSTVCastingApp"; - }; - name = Release; - }; - 3CB8D89727962FDB00BA4D5D /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - INFOPLIST_FILE = iOSTVCastingAppUITests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = darwin.iOSTVCastingAppUITests; - PRODUCT_NAME = "$(TARGET_NAME)"; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = iOSTVCastingApp; - }; - name = Debug; - }; - 3CB8D89827962FDB00BA4D5D /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - INFOPLIST_FILE = iOSTVCastingAppUITests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = darwin.iOSTVCastingAppUITests; - PRODUCT_NAME = "$(TARGET_NAME)"; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = iOSTVCastingApp; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 3CB8D85C27962FD100BA4D5D /* Build configuration list for PBXProject "iOSTVCastingApp" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3CB8D88E27962FDB00BA4D5D /* Debug */, - 3CB8D88F27962FDB00BA4D5D /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 3CB8D89027962FDB00BA4D5D /* Build configuration list for PBXNativeTarget "iOSTVCastingApp" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3CB8D89127962FDB00BA4D5D /* Debug */, - 3CB8D89227962FDB00BA4D5D /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 3CB8D89327962FDB00BA4D5D /* Build configuration list for PBXNativeTarget "iOSTVCastingAppTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3CB8D89427962FDB00BA4D5D /* Debug */, - 3CB8D89527962FDB00BA4D5D /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 3CB8D89627962FDB00BA4D5D /* Build configuration list for PBXNativeTarget "iOSTVCastingAppUITests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3CB8D89727962FDB00BA4D5D /* Debug */, - 3CB8D89827962FDB00BA4D5D /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 3CB8D85927962FD100BA4D5D /* Project object */; -} diff --git a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/AppDelegate.m b/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/AppDelegate.m deleted file mode 100644 index 2c2c939aa49403..00000000000000 --- a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/AppDelegate.m +++ /dev/null @@ -1,51 +0,0 @@ -/** - * - * Copyright (c) 2020-2022 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. - */ - -#import "AppDelegate.h" - -@interface AppDelegate () - -@end - -@implementation AppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions -{ - // Override point for customization after application launch. - return YES; -} - -#pragma mark - UISceneSession lifecycle - -- (UISceneConfiguration *)application:(UIApplication *)application - configurationForConnectingSceneSession:(UISceneSession *)connectingSceneSession - options:(UISceneConnectionOptions *)options -{ - // Called when a new scene session is being created. - // Use this method to select a configuration to create the new scene with. - return [[UISceneConfiguration alloc] initWithName:@"Default Configuration" sessionRole:connectingSceneSession.role]; -} - -- (void)application:(UIApplication *)application didDiscardSceneSessions:(NSSet *)sceneSessions -{ - // Called when the user discards a scene session. - // If any sessions were discarded while the application was not running, this will be called shortly after - // application:didFinishLaunchingWithOptions. Use this method to release any resources that were specific to the discarded - // scenes, as they will not return. -} - -@end diff --git a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/Assets.xcassets/AccentColor.colorset/Contents.json b/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/Assets.xcassets/AccentColor.colorset/Contents.json deleted file mode 100644 index b246f6b1e23f13..00000000000000 --- a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/Assets.xcassets/AccentColor.colorset/Contents.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "colors": [ - { - "idiom": "universal" - } - ], - "info": { - "author": "xcode", - "version": 1 - } -} diff --git a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/Assets.xcassets/AppIcon.appiconset/Contents.json b/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 1cfd7dc1e5d63d..00000000000000 --- a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "images": [ - { - "idiom": "iphone", - "scale": "2x", - "size": "20x20" - }, - { - "idiom": "iphone", - "scale": "3x", - "size": "20x20" - }, - { - "idiom": "iphone", - "scale": "2x", - "size": "29x29" - }, - { - "idiom": "iphone", - "scale": "3x", - "size": "29x29" - }, - { - "idiom": "iphone", - "scale": "2x", - "size": "40x40" - }, - { - "idiom": "iphone", - "scale": "3x", - "size": "40x40" - }, - { - "idiom": "iphone", - "scale": "2x", - "size": "60x60" - }, - { - "idiom": "iphone", - "scale": "3x", - "size": "60x60" - }, - { - "idiom": "ipad", - "scale": "1x", - "size": "20x20" - }, - { - "idiom": "ipad", - "scale": "2x", - "size": "20x20" - }, - { - "idiom": "ipad", - "scale": "1x", - "size": "29x29" - }, - { - "idiom": "ipad", - "scale": "2x", - "size": "29x29" - }, - { - "idiom": "ipad", - "scale": "1x", - "size": "40x40" - }, - { - "idiom": "ipad", - "scale": "2x", - "size": "40x40" - }, - { - "idiom": "ipad", - "scale": "1x", - "size": "76x76" - }, - { - "idiom": "ipad", - "scale": "2x", - "size": "76x76" - }, - { - "idiom": "ipad", - "scale": "2x", - "size": "83.5x83.5" - }, - { - "idiom": "ios-marketing", - "scale": "1x", - "size": "1024x1024" - } - ], - "info": { - "author": "xcode", - "version": 1 - } -} diff --git a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/Base.lproj/LaunchScreen.storyboard b/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index 865e9329f3767a..00000000000000 --- a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/Base.lproj/Main.storyboard b/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/Base.lproj/Main.storyboard deleted file mode 100644 index 808a21ce779bae..00000000000000 --- a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/Base.lproj/Main.storyboard +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/Info.plist b/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/Info.plist deleted file mode 100644 index 72bf2c4f5985f3..00000000000000 --- a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/Info.plist +++ /dev/null @@ -1,66 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - $(PRODUCT_BUNDLE_PACKAGE_TYPE) - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIApplicationSceneManifest - - UIApplicationSupportsMultipleScenes - - UISceneConfigurations - - UIWindowSceneSessionRoleApplication - - - UISceneConfigurationName - Default Configuration - UISceneDelegateClassName - SceneDelegate - UISceneStoryboardFile - Main - - - - - UIApplicationSupportsIndirectInputEvents - - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/SceneDelegate.m b/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/SceneDelegate.m deleted file mode 100644 index 9a34646685879c..00000000000000 --- a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingApp/SceneDelegate.m +++ /dev/null @@ -1,68 +0,0 @@ -/** - * - * Copyright (c) 2020-2022 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. - */ - -#import "SceneDelegate.h" - -@interface SceneDelegate () - -@end - -@implementation SceneDelegate - -- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions -{ - // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. - // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. - // This delegate does not imply the connecting scene or session are new (see - // `application:configurationForConnectingSceneSession` instead). -} - -- (void)sceneDidDisconnect:(UIScene *)scene -{ - // Called as the scene is being released by the system. - // This occurs shortly after the scene enters the background, or when its session is discarded. - // Release any resources associated with this scene that can be re-created the next time the scene connects. - // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` - // instead). -} - -- (void)sceneDidBecomeActive:(UIScene *)scene -{ - // Called when the scene has moved from an inactive state to an active state. - // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. -} - -- (void)sceneWillResignActive:(UIScene *)scene -{ - // Called when the scene will move from an active state to an inactive state. - // This may occur due to temporary interruptions (ex. an incoming phone call). -} - -- (void)sceneWillEnterForeground:(UIScene *)scene -{ - // Called as the scene transitions from the background to the foreground. - // Use this method to undo the changes made on entering the background. -} - -- (void)sceneDidEnterBackground:(UIScene *)scene -{ - // Called as the scene transitions from the foreground to the background. - // Use this method to save data, release shared resources, and store enough scene-specific state information - // to restore the scene back to its current state. -} - -@end diff --git a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingAppTests/Info.plist b/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingAppTests/Info.plist deleted file mode 100644 index 64d65ca495770b..00000000000000 --- a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingAppTests/Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - $(PRODUCT_BUNDLE_PACKAGE_TYPE) - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - - diff --git a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingAppTests/iOSTVCastingAppTests.m b/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingAppTests/iOSTVCastingAppTests.m deleted file mode 100644 index 5c352f79ccfce1..00000000000000 --- a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingAppTests/iOSTVCastingAppTests.m +++ /dev/null @@ -1,50 +0,0 @@ -/** - * - * Copyright (c) 2020-2022 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. - */ - -#import - -@interface iOSTVCastingAppTests : XCTestCase - -@end - -@implementation iOSTVCastingAppTests - -- (void)setUp -{ - // Put setup code here. This method is called before the invocation of each test method in the class. -} - -- (void)tearDown -{ - // Put teardown code here. This method is called after the invocation of each test method in the class. -} - -- (void)testExample -{ - // This is an example of a functional test case. - // Use XCTAssert and related functions to verify your tests produce the correct results. -} - -- (void)testPerformanceExample -{ - // This is an example of a performance test case. - [self measureBlock:^ { - // Put the code you want to measure the time of here. - }]; -} - -@end diff --git a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingAppUITests/Info.plist b/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingAppUITests/Info.plist deleted file mode 100644 index 64d65ca495770b..00000000000000 --- a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingAppUITests/Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - $(PRODUCT_BUNDLE_PACKAGE_TYPE) - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - - diff --git a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingAppUITests/iOSTVCastingAppUITests.m b/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingAppUITests/iOSTVCastingAppUITests.m deleted file mode 100644 index 1c5cbeeb8b12a3..00000000000000 --- a/examples/tv-casting-app/darwin/iOSTVCastingApp/iOSTVCastingAppUITests/iOSTVCastingAppUITests.m +++ /dev/null @@ -1,63 +0,0 @@ -/** - * - * Copyright (c) 2020-2022 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. - */ - -#import - -@interface iOSTVCastingAppUITests : XCTestCase - -@end - -@implementation iOSTVCastingAppUITests - -- (void)setUp -{ - // Put setup code here. This method is called before the invocation of each test method in the class. - - // In UI tests it is usually best to stop immediately when a failure occurs. - self.continueAfterFailure = NO; - - // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they - // run. The setUp method is a good place to do this. -} - -- (void)tearDown -{ - // Put teardown code here. This method is called after the invocation of each test method in the class. -} - -- (void)testExample -{ - // UI tests must launch the application that they test. - XCUIApplication * app = [[XCUIApplication alloc] init]; - [app launch]; - - // Use recording to get started writing UI tests. - // Use XCTAssert and related functions to verify your tests produce the correct results. -} - -- (void)testLaunchPerformance -{ - if (@available(macOS 10.15, iOS 13.0, tvOS 13.0, *)) { - // This measures how long it takes to launch your application. - [self measureWithMetrics:@[ [[XCTApplicationLaunchMetric alloc] init] ] - block:^{ - [[[XCUIApplication alloc] init] launch]; - }]; - } -} - -@end diff --git a/examples/tv-casting-app/tv-casting-common/BUILD.gn b/examples/tv-casting-app/tv-casting-common/BUILD.gn index 55b523dcd705d5..10ef81c9104434 100644 --- a/examples/tv-casting-app/tv-casting-common/BUILD.gn +++ b/examples/tv-casting-app/tv-casting-common/BUILD.gn @@ -15,6 +15,7 @@ import("//build_overrides/chip.gni") import("${chip_root}/src/app/chip_data_model.gni") +import("${chip_root}/src/lib/lib.gni") config("config") { include_dirs = [ @@ -53,7 +54,8 @@ chip_data_model("tv-casting-common") { deps = [ "${chip_root}/third_party/jsoncpp" ] if (chip_enable_transport_trace) { - public_deps = [ "${chip_root}/examples/common/tracing:trace_handlers" ] + public_deps = + [ "${chip_root}/examples/common/tracing:trace_handlers_decoder" ] } public_configs = [ ":config" ] @@ -63,3 +65,15 @@ chip_data_model("tv-casting-common") { is_server = true } + +static_library("tvCastingCommon") { + public_deps = [ "${chip_root}/examples/tv-casting-app/tv-casting-common" ] + + cflags = [ "-Wconversion" ] + + output_name = "libTvCastingCommon" + + output_dir = "${root_out_dir}/lib" + + complete_static_lib = true +} diff --git a/examples/tv-casting-app/tv-casting-common/commands/common/CHIPCommand.cpp b/examples/tv-casting-app/tv-casting-common/commands/common/CHIPCommand.cpp index 78f6066ae3b68c..a6034cb1969686 100644 --- a/examples/tv-casting-app/tv-casting-common/commands/common/CHIPCommand.cpp +++ b/examples/tv-casting-app/tv-casting-common/commands/common/CHIPCommand.cpp @@ -41,11 +41,11 @@ void CHIPCommand::StartTracing() if (mTraceFile.HasValue()) { - chip::trace::SetTraceStream(new chip::trace::TraceStreamFile(mTraceFile.Value())); + chip::trace::AddTraceStream(new chip::trace::TraceStreamFile(mTraceFile.Value())); } else if (mTraceLog.HasValue() && mTraceLog.Value()) { - chip::trace::SetTraceStream(new chip::trace::TraceStreamLog()); + chip::trace::AddTraceStream(new chip::trace::TraceStreamLog()); } #endif // CHIP_CONFIG_TRANSPORT_TRACE_ENABLED } diff --git a/examples/tv-casting-app/tv-casting-common/src/CastingServer.cpp b/examples/tv-casting-app/tv-casting-common/src/CastingServer.cpp index 111a8101d81d27..7b97d976ad3831 100644 --- a/examples/tv-casting-app/tv-casting-common/src/CastingServer.cpp +++ b/examples/tv-casting-app/tv-casting-common/src/CastingServer.cpp @@ -233,7 +233,7 @@ void CastingServer::DeviceEventCallback(const DeviceLayer::ChipDeviceEvent * eve else if (event->Type == DeviceLayer::DeviceEventType::kCommissioningComplete) { CHIP_ERROR err = CastingServer::GetInstance()->GetTargetVideoPlayerInfo()->Initialize( - event->CommissioningComplete.PeerNodeId, event->CommissioningComplete.PeerFabricIndex); + event->CommissioningComplete.nodeId, event->CommissioningComplete.fabricIndex); CastingServer::GetInstance()->mCommissioningCompleteCallback(err); } diff --git a/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter b/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter index acd364b3e8f50c..f3dd20e6668137 100644 --- a/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter +++ b/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter @@ -684,8 +684,16 @@ server cluster GeneralDiagnostics = 51 { readonly attribute ENUM8 activeHardwareFaults[] = 5; readonly attribute ENUM8 activeRadioFaults[] = 6; readonly attribute ENUM8 activeNetworkFaults[] = 7; + readonly attribute boolean testEventTriggersEnabled = 8; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + + request struct TestEventTriggerRequest { + OCTET_STRING enableKey = 0; + INT64U eventTrigger = 1; + } + + command TestEventTrigger(TestEventTriggerRequest): DefaultSuccess = 0; } server cluster GroupKeyManagement = 63 { @@ -769,74 +777,6 @@ server cluster Groups = 4 { command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5; } -server cluster IasZone = 1280 { - enum IasEnrollResponseCode : ENUM8 { - kSuccess = 0; - kNotSupported = 1; - kNoEnrollPermit = 2; - kTooManyZones = 3; - } - - enum IasZoneType : ENUM16 { - kStandardCie = 0; - kMotionSensor = 13; - kContactSwitch = 21; - kFireSensor = 40; - kWaterSensor = 42; - kGasSensor = 43; - kPersonalEmergencyDevice = 44; - kVibrationMovementSensor = 45; - kRemoteControl = 271; - kKeyFob = 277; - kKeypad = 541; - kStandardWarningDevice = 549; - kGlassBreakSensor = 550; - kCarbonMonoxideSensor = 551; - kSecurityRepeater = 553; - kInvalidZoneType = 65535; - } - - bitmap IasZoneStatus : BITMAP16 { - kAlarm1 = 0x1; - kAlarm2 = 0x2; - kTamper = 0x4; - kBattery = 0x8; - kSupervisionReports = 0x10; - kRestoreReports = 0x20; - kTrouble = 0x40; - kAc = 0x80; - kTest = 0x100; - kBatteryDefect = 0x200; - } - - readonly attribute enum8 zoneState = 0; - readonly attribute enum16 zoneType = 1; - readonly attribute bitmap16 zoneStatus = 2; - attribute node_id iasCieAddress = 16; - readonly attribute int8u zoneId = 17; - readonly attribute bitmap32 featureMap = 65532; - readonly attribute int16u clusterRevision = 65533; - - request struct ZoneEnrollResponseRequest { - IasEnrollResponseCode enrollResponseCode = 0; - INT8U zoneId = 1; - } - - response struct ZoneStatusChangeNotification = 0 { - IasZoneStatus zoneStatus = 0; - BITMAP8 extendedStatus = 1; - INT8U zoneId = 2; - INT16U delay = 3; - } - - response struct ZoneEnrollRequest = 1 { - IasZoneType zoneType = 0; - INT16U manufacturerCode = 1; - } - - command ZoneEnrollResponse(ZoneEnrollResponseRequest): DefaultSuccess = 0; -} - server cluster Identify = 3 { enum IdentifyEffectIdentifier : ENUM8 { kBlink = 0; @@ -1554,6 +1494,7 @@ server cluster OperationalCredentials = 62 { kInvalidNOC = 3; kMissingCsr = 4; kTableFull = 5; + kInvalidAdminSubject = 6; kInsufficientPrivilege = 8; kFabricConflict = 9; kLabelConflict = 10; @@ -1594,13 +1535,14 @@ server cluster OperationalCredentials = 62 { request struct CSRRequestRequest { OCTET_STRING CSRNonce = 0; + optional boolean isForUpdateNOC = 1; } request struct AddNOCRequest { OCTET_STRING NOCValue = 0; optional OCTET_STRING ICACValue = 1; OCTET_STRING IPKValue = 2; - NODE_ID caseAdminNode = 3; + Int64u caseAdminSubject = 3; VENDOR_ID adminVendorId = 4; } @@ -1621,10 +1563,6 @@ server cluster OperationalCredentials = 62 { OCTET_STRING rootCertificate = 0; } - request struct RemoveTrustedRootCertificateRequest { - OCTET_STRING trustedRootIdentifier = 0; - } - response struct AttestationResponse = 1 { OCTET_STRING attestationElements = 0; OCTET_STRING signature = 1; @@ -1653,7 +1591,6 @@ server cluster OperationalCredentials = 62 { command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } server cluster Scenes = 5 { @@ -1765,12 +1702,16 @@ server cluster Scenes = 5 { } server cluster SoftwareDiagnostics = 52 { + bitmap SoftwareDiagnosticsFeature : BITMAP32 { + kWaterMarks = 0x1; + } + struct ThreadMetrics { int64u id = 0; - char_string<8> name = 1; - int32u stackFreeCurrent = 2; - int32u stackFreeMinimum = 3; - int32u stackSize = 4; + optional char_string<8> name = 1; + optional int32u stackFreeCurrent = 2; + optional int32u stackFreeMinimum = 3; + optional int32u stackSize = 4; } info event SoftwareFault = 0 { @@ -1845,7 +1786,7 @@ client cluster TargetNavigator = 1285 { command NavigateTarget(NavigateTargetRequest): NavigateTargetResponse = 0; } -server cluster TestCluster = 1295 { +server cluster TestCluster = 4294048773 { enum SimpleEnum : ENUM8 { kUnspecified = 0; kValueA = 1; @@ -1888,8 +1829,8 @@ server cluster TestCluster = 1295 { } struct TestListStructOctet { - int64u fabricIndex = 0; - octet_string<32> operationalCert = 1; + int64u member1 = 0; + octet_string<32> member2 = 1; } info event TestEvent = 1 { @@ -2021,7 +1962,7 @@ server cluster ThreadNetworkDiagnostics = 53 { } readonly attribute nullable int16u channel = 0; - readonly attribute nullable enum8 routingRole = 1; + readonly attribute nullable RoutingRole routingRole = 1; readonly attribute nullable char_string<16> networkName = 2; readonly attribute nullable int16u panId = 3; readonly attribute nullable int64u extendedPanId = 4; @@ -2029,11 +1970,11 @@ server cluster ThreadNetworkDiagnostics = 53 { readonly attribute int64u overrunCount = 6; readonly attribute NeighborTable neighborTableList[] = 7; readonly attribute RouteTable routeTableList[] = 8; - readonly attribute int32u partitionId = 9; - readonly attribute int8u weighting = 10; - readonly attribute int8u dataVersion = 11; - readonly attribute int8u stableDataVersion = 12; - readonly attribute int8u leaderRouterId = 13; + readonly attribute nullable int32u partitionId = 9; + readonly attribute nullable int8u weighting = 10; + readonly attribute nullable int8u dataVersion = 11; + readonly attribute nullable int8u stableDataVersion = 12; + readonly attribute nullable int8u leaderRouterId = 13; readonly attribute int16u detachedRoleCount = 14; readonly attribute int16u childRoleCount = 15; readonly attribute int16u routerRoleCount = 16; @@ -2076,12 +2017,12 @@ server cluster ThreadNetworkDiagnostics = 53 { readonly attribute int32u rxErrSecCount = 53; readonly attribute int32u rxErrFcsCount = 54; readonly attribute int32u rxErrOtherCount = 55; - readonly attribute int64u activeTimestamp = 56; - readonly attribute int64u pendingTimestamp = 57; - readonly attribute int32u delay = 58; - readonly attribute SecurityPolicy securityPolicy[] = 59; - readonly attribute octet_string<4> channelMask = 60; - readonly attribute OperationalDatasetComponents operationalDatasetComponents[] = 61; + readonly attribute nullable int64u activeTimestamp = 56; + readonly attribute nullable int64u pendingTimestamp = 57; + readonly attribute nullable int32u delay = 58; + readonly attribute nullable SecurityPolicy securityPolicy = 59; + readonly attribute nullable octet_string<4> channelMask = 60; + readonly attribute nullable OperationalDatasetComponents operationalDatasetComponents = 61; readonly attribute NetworkFault activeNetworkFaultsList[] = 62; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -2204,8 +2145,8 @@ server cluster WiFiNetworkDiagnostics = 54 { readonly attribute int16u clusterRevision = 65533; } - endpoint 0 { + device type rootdevice = 22; server cluster Descriptor { callback attribute deviceList; @@ -2321,6 +2262,7 @@ endpoint 0 { callback attribute activeHardwareFaults; callback attribute activeRadioFaults; callback attribute activeNetworkFaults; + callback attribute testEventTriggersEnabled; ram attribute featureMap; ram attribute clusterRevision default = 1; } @@ -2335,67 +2277,67 @@ endpoint 0 { } server cluster ThreadNetworkDiagnostics { - ram attribute channel; - ram attribute routingRole; - ram attribute networkName; - ram attribute panId; - ram attribute extendedPanId; - ram attribute meshLocalPrefix; - ram attribute overrunCount; + callback attribute channel; + callback attribute routingRole; + callback attribute networkName; + callback attribute panId; + callback attribute extendedPanId; + callback attribute meshLocalPrefix; + callback attribute overrunCount; callback attribute neighborTableList; callback attribute routeTableList; - ram attribute partitionId; - ram attribute weighting; - ram attribute dataVersion; - ram attribute stableDataVersion; - ram attribute leaderRouterId; - ram attribute detachedRoleCount; - ram attribute childRoleCount; - ram attribute routerRoleCount; - ram attribute leaderRoleCount; - ram attribute attachAttemptCount; - ram attribute partitionIdChangeCount; - ram attribute betterPartitionAttachAttemptCount; - ram attribute parentChangeCount; - ram attribute txTotalCount; - ram attribute txUnicastCount; - ram attribute txBroadcastCount; - ram attribute txAckRequestedCount; - ram attribute txAckedCount; - ram attribute txNoAckRequestedCount; - ram attribute txDataCount; - ram attribute txDataPollCount; - ram attribute txBeaconCount; - ram attribute txBeaconRequestCount; - ram attribute txOtherCount; - ram attribute txRetryCount; - ram attribute txDirectMaxRetryExpiryCount; - ram attribute txIndirectMaxRetryExpiryCount; - ram attribute txErrCcaCount; - ram attribute txErrAbortCount; - ram attribute txErrBusyChannelCount; - ram attribute rxTotalCount; - ram attribute rxUnicastCount; - ram attribute rxBroadcastCount; - ram attribute rxDataCount; - ram attribute rxDataPollCount; - ram attribute rxBeaconCount; - ram attribute rxBeaconRequestCount; - ram attribute rxOtherCount; - ram attribute rxAddressFilteredCount; - ram attribute rxDestAddrFilteredCount; - ram attribute rxDuplicatedCount; - ram attribute rxErrNoFrameCount; - ram attribute rxErrUnknownNeighborCount; - ram attribute rxErrInvalidSrcAddrCount; - ram attribute rxErrSecCount; - ram attribute rxErrFcsCount; - ram attribute rxErrOtherCount; - ram attribute activeTimestamp; - ram attribute pendingTimestamp; - ram attribute delay; + callback attribute partitionId; + callback attribute weighting; + callback attribute dataVersion; + callback attribute stableDataVersion; + callback attribute leaderRouterId; + callback attribute detachedRoleCount; + callback attribute childRoleCount; + callback attribute routerRoleCount; + callback attribute leaderRoleCount; + callback attribute attachAttemptCount; + callback attribute partitionIdChangeCount; + callback attribute betterPartitionAttachAttemptCount; + callback attribute parentChangeCount; + callback attribute txTotalCount; + callback attribute txUnicastCount; + callback attribute txBroadcastCount; + callback attribute txAckRequestedCount; + callback attribute txAckedCount; + callback attribute txNoAckRequestedCount; + callback attribute txDataCount; + callback attribute txDataPollCount; + callback attribute txBeaconCount; + callback attribute txBeaconRequestCount; + callback attribute txOtherCount; + callback attribute txRetryCount; + callback attribute txDirectMaxRetryExpiryCount; + callback attribute txIndirectMaxRetryExpiryCount; + callback attribute txErrCcaCount; + callback attribute txErrAbortCount; + callback attribute txErrBusyChannelCount; + callback attribute rxTotalCount; + callback attribute rxUnicastCount; + callback attribute rxBroadcastCount; + callback attribute rxDataCount; + callback attribute rxDataPollCount; + callback attribute rxBeaconCount; + callback attribute rxBeaconRequestCount; + callback attribute rxOtherCount; + callback attribute rxAddressFilteredCount; + callback attribute rxDestAddrFilteredCount; + callback attribute rxDuplicatedCount; + callback attribute rxErrNoFrameCount; + callback attribute rxErrUnknownNeighborCount; + callback attribute rxErrInvalidSrcAddrCount; + callback attribute rxErrSecCount; + callback attribute rxErrFcsCount; + callback attribute rxErrOtherCount; + callback attribute activeTimestamp; + callback attribute pendingTimestamp; + callback attribute delay; callback attribute securityPolicy; - ram attribute channelMask; + callback attribute channelMask; callback attribute operationalDatasetComponents; callback attribute activeNetworkFaultsList; ram attribute featureMap default = 0x000F; @@ -2472,8 +2414,8 @@ endpoint 0 { ram attribute clusterRevision default = 1; } } - endpoint 1 { + device type videoplayer = 35; binding cluster OnOff; binding cluster LevelControl; binding cluster Descriptor; @@ -2584,16 +2526,6 @@ endpoint 1 { ram attribute clusterRevision default = 1; } - server cluster IasZone { - ram attribute zoneState; - ram attribute zoneType; - ram attribute zoneStatus; - ram attribute iasCieAddress; - ram attribute zoneId default = 0xff; - ram attribute featureMap; - ram attribute clusterRevision default = 2; - } - server cluster WakeOnLan { ram attribute MACAddress; ram attribute featureMap; @@ -2625,8 +2557,8 @@ endpoint 1 { ram attribute clusterRevision default = 1; } } - endpoint 2 { + device type occupancysensor = 263; server cluster OnOff { ram attribute onOff; diff --git a/examples/tv-casting-app/tv-casting-common/tv-casting-app.zap b/examples/tv-casting-app/tv-casting-common/tv-casting-app.zap index f8d4f6162b4119..165f9758427177 100644 --- a/examples/tv-casting-app/tv-casting-common/tv-casting-app.zap +++ b/examples/tv-casting-app/tv-casting-common/tv-casting-app.zap @@ -2404,7 +2404,16 @@ "define": "GENERAL_DIAGNOSTICS_CLUSTER", "side": "server", "enabled": 1, - "commands": [], + "commands": [ + { + "name": "TestEventTrigger", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], "attributes": [ { "name": "NetworkInterfaces", @@ -2534,6 +2543,22 @@ "maxInterval": 65534, "reportableChange": 0 }, + { + "name": "TestEventTriggersEnabled", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "false", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "FeatureMap", "code": 65532, @@ -2727,7 +2752,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -2741,9 +2766,9 @@ "code": 1, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "RoutingRole", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -2759,7 +2784,7 @@ "side": "server", "type": "char_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", @@ -2775,7 +2800,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2791,7 +2816,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -2807,7 +2832,7 @@ "side": "server", "type": "octet_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -2823,7 +2848,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -2871,7 +2896,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -2887,7 +2912,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -2903,7 +2928,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -2919,7 +2944,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -2935,7 +2960,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -2951,7 +2976,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2967,7 +2992,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2983,7 +3008,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -2999,7 +3024,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3015,7 +3040,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3031,7 +3056,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3047,7 +3072,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3063,7 +3088,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3079,7 +3104,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3095,7 +3120,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3111,7 +3136,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3127,7 +3152,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3143,7 +3168,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3159,7 +3184,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3175,7 +3200,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3191,7 +3216,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3207,7 +3232,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3223,7 +3248,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3239,7 +3264,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3255,7 +3280,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3271,7 +3296,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3287,7 +3312,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3303,7 +3328,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3319,7 +3344,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3335,7 +3360,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3351,7 +3376,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3367,7 +3392,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3383,7 +3408,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3399,7 +3424,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3415,7 +3440,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3431,7 +3456,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3447,7 +3472,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3463,7 +3488,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3479,7 +3504,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3495,7 +3520,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3511,7 +3536,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3527,7 +3552,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3543,7 +3568,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3559,7 +3584,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3575,7 +3600,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3591,7 +3616,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3607,7 +3632,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3623,7 +3648,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -3639,7 +3664,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -3655,7 +3680,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3669,7 +3694,7 @@ "code": 59, "mfgCode": null, "side": "server", - "type": "array", + "type": "SecurityPolicy", "included": 1, "storageOption": "External", "singleton": 0, @@ -3687,7 +3712,7 @@ "side": "server", "type": "octet_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3701,7 +3726,7 @@ "code": 61, "mfgCode": null, "side": "server", - "type": "array", + "type": "OperationalDatasetComponents", "included": 1, "storageOption": "External", "singleton": 0, @@ -4579,14 +4604,6 @@ "source": "client", "incoming": 1, "outgoing": 1 - }, - { - "name": "RemoveTrustedRootCertificate", - "code": 12, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 } ], "attributes": [ @@ -5137,22 +5154,6 @@ "maxInterval": 65344, "reportableChange": 0 }, - { - "name": "EnableLogging", - "code": 32, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x00", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, { "name": "Language", "code": 33, @@ -5377,134 +5378,6 @@ "maxInterval": 65344, "reportableChange": 0 }, - { - "name": "AlarmMask", - "code": 64, - "mfgCode": null, - "side": "server", - "type": "DlAlarmMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "KeypadOperationEventMask", - "code": 65, - "mfgCode": null, - "side": "server", - "type": "DlKeypadOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RemoteOperationEventMask", - "code": 66, - "mfgCode": null, - "side": "server", - "type": "DlRemoteOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "ManualOperationEventMask", - "code": 67, - "mfgCode": null, - "side": "server", - "type": "DlManualOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RFIDOperationEventMask", - "code": 68, - "mfgCode": null, - "side": "server", - "type": "DlRFIDOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "KeypadProgrammingEventMask", - "code": 69, - "mfgCode": null, - "side": "server", - "type": "DlKeypadOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RemoteProgrammingEventMask", - "code": 70, - "mfgCode": null, - "side": "server", - "type": "DlRemoteProgrammingEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RFIDProgrammingEventMask", - "code": 71, - "mfgCode": null, - "side": "server", - "type": "DlRFIDProgrammingEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, { "name": "ClusterRevision", "code": 65533, @@ -7023,7 +6896,7 @@ }, { "name": "Test Cluster", - "code": 1295, + "code": 4294048773, "mfgCode": null, "define": "TEST_CLUSTER", "side": "client", @@ -7075,7 +6948,7 @@ }, { "name": "Test Cluster", - "code": 1295, + "code": 4294048773, "mfgCode": null, "define": "TEST_CLUSTER", "side": "server", @@ -11213,14 +11086,6 @@ "source": "client", "incoming": 0, "outgoing": 1 - }, - { - "name": "GetRelayStatusLog", - "code": 4, - "mfgCode": null, - "source": "client", - "incoming": 0, - "outgoing": 1 } ], "attributes": [ @@ -11257,14 +11122,6 @@ "source": "server", "incoming": 1, "outgoing": 1 - }, - { - "name": "GetRelayStatusLogResponse", - "code": 1, - "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 0 } ], "attributes": [ @@ -14370,7 +14227,7 @@ }, { "name": "Test Cluster", - "code": 1295, + "code": 4294048773, "mfgCode": null, "define": "TEST_CLUSTER", "side": "client", @@ -14414,7 +14271,7 @@ }, { "name": "Test Cluster", - "code": 1295, + "code": 4294048773, "mfgCode": null, "define": "TEST_CLUSTER", "side": "server", @@ -16134,22 +15991,6 @@ "maxInterval": 65344, "reportableChange": 0 }, - { - "name": "EnableLogging", - "code": 32, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x00", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, { "name": "Language", "code": 33, @@ -16374,134 +16215,6 @@ "maxInterval": 65344, "reportableChange": 0 }, - { - "name": "AlarmMask", - "code": 64, - "mfgCode": null, - "side": "server", - "type": "DlAlarmMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "KeypadOperationEventMask", - "code": 65, - "mfgCode": null, - "side": "server", - "type": "DlKeypadOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RemoteOperationEventMask", - "code": 66, - "mfgCode": null, - "side": "server", - "type": "DlRemoteOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "ManualOperationEventMask", - "code": 67, - "mfgCode": null, - "side": "server", - "type": "DlManualOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RFIDOperationEventMask", - "code": 68, - "mfgCode": null, - "side": "server", - "type": "DlRFIDOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "KeypadProgrammingEventMask", - "code": 69, - "mfgCode": null, - "side": "server", - "type": "DlKeypadOperationEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RemoteProgrammingEventMask", - "code": 70, - "mfgCode": null, - "side": "server", - "type": "DlRemoteProgrammingEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "RFIDProgrammingEventMask", - "code": 71, - "mfgCode": null, - "side": "server", - "type": "DlRFIDProgrammingEventMask", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, { "name": "ClusterRevision", "code": 65533, @@ -18034,4 +17747,4 @@ "deviceIdentifier": 263 } ] -} \ No newline at end of file +} diff --git a/examples/window-app/common/src/WindowApp.cpp b/examples/window-app/common/src/WindowApp.cpp index a9d357eea42e6c..0cada84b7b046c 100644 --- a/examples/window-app/common/src/WindowApp.cpp +++ b/examples/window-app/common/src/WindowApp.cpp @@ -294,8 +294,8 @@ void WindowApp::DispatchEvent(const WindowApp::Event & event) void WindowApp::DispatchEventAttributeChange(chip::EndpointId endpoint, chip::AttributeId attribute) { Cover * cover = GetCover(endpoint); - chip::BitFlags mode; - chip::BitFlags configStatus; + chip::BitMask mode; + chip::BitMask configStatus; if (nullptr == cover) { @@ -426,7 +426,7 @@ void WindowApp::Cover::Init(chip::EndpointId endpoint) TypeSet(endpoint, Type::kTiltBlindLiftAndTilt); // Attribute: Id 7 ConfigStatus - chip::BitFlags configStatus = ConfigStatusGet(endpoint); + chip::BitMask configStatus = ConfigStatusGet(endpoint); configStatus.Set(ConfigStatus::kLiftEncoderControlled); configStatus.Set(ConfigStatus::kTiltEncoderControlled); configStatus.Set(ConfigStatus::kOnlineReserved); @@ -438,7 +438,7 @@ void WindowApp::Cover::Init(chip::EndpointId endpoint) EndProductTypeSet(endpoint, EndProductType::kInteriorBlind); // Attribute: Id 24 Mode - chip::BitFlags mode; + chip::BitMask mode; mode.Clear(Mode::kMotorDirectionReversed); mode.Clear(Mode::kMaintenanceMode); mode.Clear(Mode::kCalibrationMode); diff --git a/examples/window-app/common/window-app.matter b/examples/window-app/common/window-app.matter index 28166b8d99580e..e60eb56acf245a 100644 --- a/examples/window-app/common/window-app.matter +++ b/examples/window-app/common/window-app.matter @@ -358,11 +358,19 @@ server cluster GeneralDiagnostics = 51 { readonly attribute ENUM8 activeHardwareFaults[] = 5; readonly attribute ENUM8 activeRadioFaults[] = 6; readonly attribute ENUM8 activeNetworkFaults[] = 7; + readonly attribute boolean testEventTriggersEnabled = 8; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; + + request struct TestEventTriggerRequest { + OCTET_STRING enableKey = 0; + INT64U eventTrigger = 1; + } + + command TestEventTrigger(TestEventTriggerRequest): DefaultSuccess = 0; } server cluster GroupKeyManagement = 63 { @@ -822,6 +830,7 @@ server cluster OperationalCredentials = 62 { kInvalidNOC = 3; kMissingCsr = 4; kTableFull = 5; + kInvalidAdminSubject = 6; kInsufficientPrivilege = 8; kFabricConflict = 9; kLabelConflict = 10; @@ -865,13 +874,14 @@ server cluster OperationalCredentials = 62 { request struct CSRRequestRequest { OCTET_STRING CSRNonce = 0; + optional boolean isForUpdateNOC = 1; } request struct AddNOCRequest { OCTET_STRING NOCValue = 0; optional OCTET_STRING ICACValue = 1; OCTET_STRING IPKValue = 2; - NODE_ID caseAdminNode = 3; + Int64u caseAdminSubject = 3; VENDOR_ID adminVendorId = 4; } @@ -892,10 +902,6 @@ server cluster OperationalCredentials = 62 { OCTET_STRING rootCertificate = 0; } - request struct RemoveTrustedRootCertificateRequest { - OCTET_STRING trustedRootIdentifier = 0; - } - response struct AttestationResponse = 1 { OCTET_STRING attestationElements = 0; OCTET_STRING signature = 1; @@ -924,7 +930,6 @@ server cluster OperationalCredentials = 62 { command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } server cluster PowerSource = 47 { @@ -1115,12 +1120,16 @@ client cluster Scenes = 5 { } server cluster SoftwareDiagnostics = 52 { + bitmap SoftwareDiagnosticsFeature : BITMAP32 { + kWaterMarks = 0x1; + } + struct ThreadMetrics { int64u id = 0; - char_string<8> name = 1; - int32u stackFreeCurrent = 2; - int32u stackFreeMinimum = 3; - int32u stackSize = 4; + optional char_string<8> name = 1; + optional int32u stackFreeCurrent = 2; + optional int32u stackFreeMinimum = 3; + optional int32u stackSize = 4; } info event SoftwareFault = 0 { @@ -1222,7 +1231,7 @@ server cluster ThreadNetworkDiagnostics = 53 { } readonly attribute nullable int16u channel = 0; - readonly attribute nullable enum8 routingRole = 1; + readonly attribute nullable RoutingRole routingRole = 1; readonly attribute nullable char_string<16> networkName = 2; readonly attribute nullable int16u panId = 3; readonly attribute nullable int64u extendedPanId = 4; @@ -1230,11 +1239,11 @@ server cluster ThreadNetworkDiagnostics = 53 { readonly attribute int64u overrunCount = 6; readonly attribute NeighborTable neighborTableList[] = 7; readonly attribute RouteTable routeTableList[] = 8; - readonly attribute int32u partitionId = 9; - readonly attribute int8u weighting = 10; - readonly attribute int8u dataVersion = 11; - readonly attribute int8u stableDataVersion = 12; - readonly attribute int8u leaderRouterId = 13; + readonly attribute nullable int32u partitionId = 9; + readonly attribute nullable int8u weighting = 10; + readonly attribute nullable int8u dataVersion = 11; + readonly attribute nullable int8u stableDataVersion = 12; + readonly attribute nullable int8u leaderRouterId = 13; readonly attribute int16u detachedRoleCount = 14; readonly attribute int16u childRoleCount = 15; readonly attribute int16u routerRoleCount = 16; @@ -1277,12 +1286,12 @@ server cluster ThreadNetworkDiagnostics = 53 { readonly attribute int32u rxErrSecCount = 53; readonly attribute int32u rxErrFcsCount = 54; readonly attribute int32u rxErrOtherCount = 55; - readonly attribute int64u activeTimestamp = 56; - readonly attribute int64u pendingTimestamp = 57; - readonly attribute int32u delay = 58; - readonly attribute SecurityPolicy securityPolicy[] = 59; - readonly attribute octet_string<4> channelMask = 60; - readonly attribute OperationalDatasetComponents operationalDatasetComponents[] = 61; + readonly attribute nullable int64u activeTimestamp = 56; + readonly attribute nullable int64u pendingTimestamp = 57; + readonly attribute nullable int32u delay = 58; + readonly attribute nullable SecurityPolicy securityPolicy = 59; + readonly attribute nullable octet_string<4> channelMask = 60; + readonly attribute nullable OperationalDatasetComponents operationalDatasetComponents = 61; readonly attribute NetworkFault activeNetworkFaultsList[] = 62; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -1496,8 +1505,12 @@ server cluster WindowCovering = 258 { } readonly attribute Type type = 0; + readonly attribute int16u physicalClosedLimitLift = 1; + readonly attribute int16u physicalClosedLimitTilt = 2; readonly attribute nullable int16u currentPositionLift = 3; readonly attribute nullable int16u currentPositionTilt = 4; + readonly attribute int16u numberOfActuationsLift = 5; + readonly attribute int16u numberOfActuationsTilt = 6; readonly attribute ConfigStatus configStatus = 7; readonly attribute nullable Percent currentPositionLiftPercentage = 8; readonly attribute nullable Percent currentPositionTiltPercentage = 9; @@ -1541,8 +1554,8 @@ server cluster WindowCovering = 258 { command GoToTiltPercentage(GoToTiltPercentageRequest): DefaultSuccess = 8; } - endpoint 0 { + device type windowcovering = 22; binding cluster OtaSoftwareUpdateProvider; server cluster Descriptor { @@ -1687,6 +1700,7 @@ endpoint 0 { callback attribute activeHardwareFaults; callback attribute activeRadioFaults; callback attribute activeNetworkFaults; + callback attribute testEventTriggersEnabled; callback attribute generatedCommandList; callback attribute acceptedCommandList; callback attribute attributeList; @@ -1704,67 +1718,67 @@ endpoint 0 { } server cluster ThreadNetworkDiagnostics { - ram attribute channel; - ram attribute routingRole; - ram attribute networkName; - ram attribute panId; - ram attribute extendedPanId; - ram attribute meshLocalPrefix; - ram attribute overrunCount; + callback attribute channel; + callback attribute routingRole; + callback attribute networkName; + callback attribute panId; + callback attribute extendedPanId; + callback attribute meshLocalPrefix; + callback attribute overrunCount; callback attribute neighborTableList; callback attribute routeTableList; - ram attribute partitionId; - ram attribute weighting; - ram attribute dataVersion; - ram attribute stableDataVersion; - ram attribute leaderRouterId; - ram attribute detachedRoleCount; - ram attribute childRoleCount; - ram attribute routerRoleCount; - ram attribute leaderRoleCount; - ram attribute attachAttemptCount; - ram attribute partitionIdChangeCount; - ram attribute betterPartitionAttachAttemptCount; - ram attribute parentChangeCount; - ram attribute txTotalCount; - ram attribute txUnicastCount; - ram attribute txBroadcastCount; - ram attribute txAckRequestedCount; - ram attribute txAckedCount; - ram attribute txNoAckRequestedCount; - ram attribute txDataCount; - ram attribute txDataPollCount; - ram attribute txBeaconCount; - ram attribute txBeaconRequestCount; - ram attribute txOtherCount; - ram attribute txRetryCount; - ram attribute txDirectMaxRetryExpiryCount; - ram attribute txIndirectMaxRetryExpiryCount; - ram attribute txErrCcaCount; - ram attribute txErrAbortCount; - ram attribute txErrBusyChannelCount; - ram attribute rxTotalCount; - ram attribute rxUnicastCount; - ram attribute rxBroadcastCount; - ram attribute rxDataCount; - ram attribute rxDataPollCount; - ram attribute rxBeaconCount; - ram attribute rxBeaconRequestCount; - ram attribute rxOtherCount; - ram attribute rxAddressFilteredCount; - ram attribute rxDestAddrFilteredCount; - ram attribute rxDuplicatedCount; - ram attribute rxErrNoFrameCount; - ram attribute rxErrUnknownNeighborCount; - ram attribute rxErrInvalidSrcAddrCount; - ram attribute rxErrSecCount; - ram attribute rxErrFcsCount; - ram attribute rxErrOtherCount; - ram attribute activeTimestamp; - ram attribute pendingTimestamp; - ram attribute delay; + callback attribute partitionId; + callback attribute weighting; + callback attribute dataVersion; + callback attribute stableDataVersion; + callback attribute leaderRouterId; + callback attribute detachedRoleCount; + callback attribute childRoleCount; + callback attribute routerRoleCount; + callback attribute leaderRoleCount; + callback attribute attachAttemptCount; + callback attribute partitionIdChangeCount; + callback attribute betterPartitionAttachAttemptCount; + callback attribute parentChangeCount; + callback attribute txTotalCount; + callback attribute txUnicastCount; + callback attribute txBroadcastCount; + callback attribute txAckRequestedCount; + callback attribute txAckedCount; + callback attribute txNoAckRequestedCount; + callback attribute txDataCount; + callback attribute txDataPollCount; + callback attribute txBeaconCount; + callback attribute txBeaconRequestCount; + callback attribute txOtherCount; + callback attribute txRetryCount; + callback attribute txDirectMaxRetryExpiryCount; + callback attribute txIndirectMaxRetryExpiryCount; + callback attribute txErrCcaCount; + callback attribute txErrAbortCount; + callback attribute txErrBusyChannelCount; + callback attribute rxTotalCount; + callback attribute rxUnicastCount; + callback attribute rxBroadcastCount; + callback attribute rxDataCount; + callback attribute rxDataPollCount; + callback attribute rxBeaconCount; + callback attribute rxBeaconRequestCount; + callback attribute rxOtherCount; + callback attribute rxAddressFilteredCount; + callback attribute rxDestAddrFilteredCount; + callback attribute rxDuplicatedCount; + callback attribute rxErrNoFrameCount; + callback attribute rxErrUnknownNeighborCount; + callback attribute rxErrInvalidSrcAddrCount; + callback attribute rxErrSecCount; + callback attribute rxErrFcsCount; + callback attribute rxErrOtherCount; + callback attribute activeTimestamp; + callback attribute pendingTimestamp; + callback attribute delay; callback attribute securityPolicy; - ram attribute channelMask; + callback attribute channelMask; callback attribute operationalDatasetComponents; callback attribute activeNetworkFaultsList; ram attribute featureMap default = 0x000F; @@ -1852,8 +1866,8 @@ endpoint 0 { ram attribute clusterRevision default = 1; } } - endpoint 1 { + device type windowcovering = 514; binding cluster Scenes; server cluster Identify { @@ -1879,9 +1893,13 @@ endpoint 1 { } server cluster WindowCovering { - ram attribute type; + ram attribute type default = 0x08; + ram attribute physicalClosedLimitLift default = 0xFFFF; + ram attribute physicalClosedLimitTilt default = 0xFFFF; persist attribute currentPositionLift; persist attribute currentPositionTilt; + persist attribute numberOfActuationsLift; + persist attribute numberOfActuationsTilt; persist attribute configStatus default = 0x03; persist attribute currentPositionLiftPercentage; persist attribute currentPositionTiltPercentage; @@ -1901,8 +1919,8 @@ endpoint 1 { ram attribute clusterRevision default = 5; } } - endpoint 2 { + device type windowcovering = 514; binding cluster Scenes; server cluster Groups { @@ -1921,9 +1939,13 @@ endpoint 2 { } server cluster WindowCovering { - ram attribute type; + ram attribute type default = 0x08; + ram attribute physicalClosedLimitLift default = 0xFFFF; + ram attribute physicalClosedLimitTilt default = 0xFFFF; persist attribute currentPositionLift; persist attribute currentPositionTilt; + persist attribute numberOfActuationsLift; + persist attribute numberOfActuationsTilt; persist attribute configStatus default = 0x03; persist attribute currentPositionLiftPercentage; persist attribute currentPositionTiltPercentage; diff --git a/examples/window-app/common/window-app.zap b/examples/window-app/common/window-app.zap index 5a13ecd1eb7706..adaaac10092916 100644 --- a/examples/window-app/common/window-app.zap +++ b/examples/window-app/common/window-app.zap @@ -2979,7 +2979,16 @@ "define": "GENERAL_DIAGNOSTICS_CLUSTER", "side": "server", "enabled": 1, - "commands": [], + "commands": [ + { + "name": "TestEventTrigger", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], "attributes": [ { "name": "NetworkInterfaces", @@ -3109,6 +3118,22 @@ "maxInterval": 65534, "reportableChange": 0 }, + { + "name": "TestEventTriggersEnabled", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "false", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "GeneratedCommandList", "code": 65528, @@ -3386,7 +3411,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3400,9 +3425,9 @@ "code": 1, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "RoutingRole", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3418,7 +3443,7 @@ "side": "server", "type": "char_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", @@ -3434,7 +3459,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3450,7 +3475,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -3466,7 +3491,7 @@ "side": "server", "type": "octet_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3482,7 +3507,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -3530,7 +3555,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3546,7 +3571,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3562,7 +3587,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3578,7 +3603,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3594,7 +3619,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -3610,7 +3635,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3626,7 +3651,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3642,7 +3667,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3658,7 +3683,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3674,7 +3699,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3690,7 +3715,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3706,7 +3731,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3722,7 +3747,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3738,7 +3763,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3754,7 +3779,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3770,7 +3795,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3786,7 +3811,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3802,7 +3827,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3818,7 +3843,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3834,7 +3859,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3850,7 +3875,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3866,7 +3891,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3882,7 +3907,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3898,7 +3923,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3914,7 +3939,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3930,7 +3955,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3946,7 +3971,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3962,7 +3987,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3978,7 +4003,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -3994,7 +4019,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4010,7 +4035,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4026,7 +4051,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4042,7 +4067,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4058,7 +4083,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4074,7 +4099,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4090,7 +4115,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4106,7 +4131,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4122,7 +4147,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4138,7 +4163,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4154,7 +4179,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4170,7 +4195,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4186,7 +4211,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4202,7 +4227,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4218,7 +4243,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4234,7 +4259,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4250,7 +4275,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4266,7 +4291,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4282,7 +4307,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -4298,7 +4323,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -4314,7 +4339,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4328,7 +4353,7 @@ "code": 59, "mfgCode": null, "side": "server", - "type": "array", + "type": "SecurityPolicy", "included": 1, "storageOption": "External", "singleton": 0, @@ -4346,7 +4371,7 @@ "side": "server", "type": "octet_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -4360,7 +4385,7 @@ "code": 61, "mfgCode": null, "side": "server", - "type": "array", + "type": "OperationalDatasetComponents", "included": 1, "storageOption": "External", "singleton": 0, @@ -5248,14 +5273,6 @@ "source": "client", "incoming": 1, "outgoing": 1 - }, - { - "name": "RemoveTrustedRootCertificate", - "code": 12, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 } ], "attributes": [ @@ -7448,7 +7465,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -7462,9 +7479,9 @@ "code": 1, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "RoutingRole", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -7480,7 +7497,7 @@ "side": "server", "type": "char_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0", @@ -7496,7 +7513,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -7512,7 +7529,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -7528,7 +7545,7 @@ "side": "server", "type": "octet_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -7544,7 +7561,7 @@ "side": "server", "type": "int64u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000000000000000", @@ -7592,7 +7609,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -7608,7 +7625,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -7624,7 +7641,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -7640,7 +7657,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -7656,7 +7673,7 @@ "side": "server", "type": "int8u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -7672,7 +7689,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -7688,7 +7705,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -7704,7 +7721,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -7720,7 +7737,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -7736,7 +7753,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -7752,7 +7769,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -7768,7 +7785,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -7784,7 +7801,7 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -7800,7 +7817,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -7816,7 +7833,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -7832,7 +7849,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -7848,7 +7865,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -7864,7 +7881,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -7880,7 +7897,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -7896,7 +7913,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -7912,7 +7929,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -7928,7 +7945,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -7944,7 +7961,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -7960,7 +7977,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -7976,7 +7993,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -7992,7 +8009,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -8008,7 +8025,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -8024,7 +8041,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -8040,7 +8057,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -8056,7 +8073,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -8072,7 +8089,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -8088,7 +8105,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -8104,7 +8121,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -8120,7 +8137,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -8136,7 +8153,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -8152,7 +8169,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -8168,7 +8185,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -8184,7 +8201,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -8200,7 +8217,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -8216,7 +8233,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -8232,7 +8249,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -8248,7 +8265,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -8264,7 +8281,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -8280,7 +8297,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -8296,7 +8313,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -8312,7 +8329,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "NVM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -8328,7 +8345,7 @@ "side": "server", "type": "int32u", "included": 1, - "storageOption": "NVM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -8342,7 +8359,7 @@ "code": 59, "mfgCode": null, "side": "server", - "type": "array", + "type": "SecurityPolicy", "included": 1, "storageOption": "External", "singleton": 0, @@ -8360,7 +8377,7 @@ "side": "server", "type": "octet_string", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "0x0000", @@ -8374,7 +8391,7 @@ "code": 61, "mfgCode": null, "side": "server", - "type": "array", + "type": "OperationalDatasetComponents", "included": 1, "storageOption": "External", "singleton": 0, @@ -8538,7 +8555,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0x08", "reportable": 1, "minInterval": 0, "maxInterval": 65344, @@ -8550,14 +8567,30 @@ "mfgCode": null, "side": "server", "type": "int16u", - "included": 0, + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0xFFFF", "reportable": 1, "minInterval": 0, - "maxInterval": 65344, + "maxInterval": 65535, + "reportableChange": 0 + }, + { + "name": "PhysicalClosedLimitTilt", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFFFF", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65535, "reportableChange": 0 }, { @@ -8592,6 +8625,38 @@ "maxInterval": 65344, "reportableChange": 0 }, + { + "name": "NumberOfActuationsLift", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65535, + "reportableChange": 0 + }, + { + "name": "NumberOfActuationsTilt", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65535, + "reportableChange": 0 + }, { "name": "ConfigStatus", "code": 7, @@ -10124,12 +10189,44 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0x08", "reportable": 1, "minInterval": 0, "maxInterval": 65344, "reportableChange": 0 }, + { + "name": "PhysicalClosedLimitLift", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFFFF", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65535, + "reportableChange": 0 + }, + { + "name": "PhysicalClosedLimitTilt", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFFFF", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65535, + "reportableChange": 0 + }, { "name": "CurrentPositionLift", "code": 3, @@ -10162,6 +10259,38 @@ "maxInterval": 65344, "reportableChange": 0 }, + { + "name": "NumberOfActuationsLift", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65535, + "reportableChange": 0 + }, + { + "name": "NumberOfActuationsTilt", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65535, + "reportableChange": 0 + }, { "name": "ConfigStatus", "code": 7, @@ -10469,4 +10598,4 @@ } ], "log": [] -} +} \ No newline at end of file diff --git a/examples/window-app/efr32/BUILD.gn b/examples/window-app/efr32/BUILD.gn index 221838c0a14ffc..33ea182d5316a7 100644 --- a/examples/window-app/efr32/BUILD.gn +++ b/examples/window-app/efr32/BUILD.gn @@ -53,6 +53,9 @@ declare_args() { # Disable LCD on supported devices disable_lcd = false + + # Argument to Disable IPv4 for wifi(rs911) + chip_disable_wifi_ipv4 = false } declare_args() { @@ -203,6 +206,10 @@ efr32_executable("window_app") { sources += [ "${examples_plat_dir}/OTAConfig.cpp" ] } + if (chip_disable_wifi_ipv4) { + defines += [ "WIFI_IPV4_DISABLED" ] + } + # WiFi Settings if (chip_enable_wifi) { if (use_rs911x) { diff --git a/examples/window-app/nrfconnect/README.md b/examples/window-app/nrfconnect/README.md index 526a19004bf8bd..4f6ce47c8f74cb 100644 --- a/examples/window-app/nrfconnect/README.md +++ b/examples/window-app/nrfconnect/README.md @@ -111,6 +111,20 @@ requests to start sending the update packages. An OTA Requestor is a node that wants to download a new firmware image and sends requests to an OTA Provider to start the update process. +#### Simple Management Protocol + +Simple Management Protocol (SMP) is a basic transfer encoding that is used for +device management purposes, including application image management. SMP supports +using different transports, such as Bluetooth LE, UDP, or serial USB/UART. + +In this example, the Matter device runs the SMP Server to download the +application update image using the Bluetooth LE transport. + +See the +[Building with Device Firmware Upgrade support](#building-with-device-firmware-upgrade-support) +section to learn how to enable SMP and use it for the DFU purpose in this +example. + #### Bootloader MCUboot is a secure bootloader used for swapping firmware images of different @@ -394,6 +408,14 @@ For example, use the following command for `nrf52840dk_nrf52840`: Support for DFU using Matter OTA is enabled by default. +To enable DFU over Bluetooth LE, run the following command with _build-target_ +replaced with the build target name of the Nordic Semiconductor kit you are +using (for example `nrf52840dk_nrf52840`): + + ``` + $ west build -b build-target -- -DCONFIG_CHIP_DFU_OVER_BT_SMP=y + ``` + To completely disable support for DFU, run the following command with _build-target_ replaced with the build target name of the Nordic Semiconductor kit you are using (for example `nrf52840dk_nrf52840`): diff --git a/examples/window-app/nrfconnect/boards/nrf52840dk_nrf52840.overlay b/examples/window-app/nrfconnect/boards/nrf52840dk_nrf52840.overlay index b16a44113b8aef..00c7b57a192e28 100644 --- a/examples/window-app/nrfconnect/boards/nrf52840dk_nrf52840.overlay +++ b/examples/window-app/nrfconnect/boards/nrf52840dk_nrf52840.overlay @@ -18,7 +18,10 @@ chosen { nordic,pm-ext-flash = &mx25r64; }; +}; + +/ { /* * In some default configurations within the nRF Connect SDK, * e.g. on nRF52840, the chosen zephyr,entropy node is &cryptocell. @@ -30,9 +33,8 @@ }; /* - * By default, PWM module is only configured for led0 (LED1 on the board). - * The window-app, however, uses LED2 to show the state of the window cover, - * by using the LED's brightness level. + * Configure LED2 and LED3 to show the state of the + * window cover,by using the LED's brightness level. */ aliases { pwm-led1 = &pwm_led1; @@ -41,10 +43,10 @@ pwmleds { pwm_led1: pwm_led_1 { - pwms = < &pwm0 0xe >; + pwms = <&pwm0 1 PWM_MSEC(20) PWM_POLARITY_INVERTED>; }; pwm_led2: pwm_led_2 { - pwms = < &pwm1 0xf >; + pwms = <&pwm0 2 PWM_MSEC(20) PWM_POLARITY_INVERTED>; }; }; }; @@ -73,14 +75,23 @@ }; &pwm0 { - /delete-property/ ch0-pin; - /delete-property/ ch0-inverted; - ch1-pin = < 0xe >; - ch1-inverted; + pinctrl-0 = <&pwm0_default_alt>; + pinctrl-1 = <&pwm0_sleep_alt>; + pinctrl-names = "default", "sleep"; }; -&pwm1 { - status = "okay"; - ch1-pin = < 0xf >; - ch1-inverted; +&pinctrl { + pwm0_default_alt: pwm0_default_alt { + group1 { + psels = , ; + nordic,invert; + }; + }; + + pwm0_sleep_alt: pwm0_sleep_alt { + group1 { + psels = , ; + low-power-enable; + }; + }; }; diff --git a/examples/window-app/nrfconnect/boards/nrf5340dk_nrf5340_cpuapp.overlay b/examples/window-app/nrfconnect/boards/nrf5340dk_nrf5340_cpuapp.overlay index 88368b93afe890..4b450586a3baa5 100644 --- a/examples/window-app/nrfconnect/boards/nrf5340dk_nrf5340_cpuapp.overlay +++ b/examples/window-app/nrfconnect/boards/nrf5340dk_nrf5340_cpuapp.overlay @@ -20,9 +20,8 @@ }; /* - * By default, PWM module is only configured for led0 (LED1 on the board). - * The lighting-app, however, uses LED2 to show the state of the lighting, - * including its brightness level. + * Configure LED2 and LED3 to show the state of the + * window cover,by using the LED's brightness level. */ aliases { pwm-led1 = &pwm_led1; @@ -32,10 +31,10 @@ pwmleds { compatible = "pwm-leds"; pwm_led1: pwm_led_1 { - pwms = < &pwm0 0x1d >; + pwms = <&pwm0 1 PWM_MSEC(20) PWM_POLARITY_INVERTED>; }; pwm_led2: pwm_led_2 { - pwms = < &pwm1 0x1e >; + pwms = <&pwm0 2 PWM_MSEC(20) PWM_POLARITY_INVERTED>; }; }; @@ -82,9 +81,9 @@ }; }; }; - }; + /* Disable unused peripherals to reduce power consumption */ &adc { status = "disabled"; @@ -103,14 +102,23 @@ }; &pwm0 { - /delete-property/ ch0-pin; - /delete-property/ ch0-inverted; - ch1-pin = < 0x1d >; - ch1-inverted; + pinctrl-0 = <&pwm0_default_alt>; + pinctrl-1 = <&pwm0_sleep_alt>; + pinctrl-names = "default", "sleep"; }; -&pwm1 { - status = "okay"; - ch1-pin = < 0x1e >; - ch1-inverted; +&pinctrl { + pwm0_default_alt: pwm0_default_alt { + group1 { + psels = , ; + nordic,invert; + }; + }; + + pwm0_sleep_alt: pwm0_sleep_alt { + group1 { + psels = , ; + low-power-enable; + }; + }; }; diff --git a/examples/window-app/nrfconnect/main/AppTask.cpp b/examples/window-app/nrfconnect/main/AppTask.cpp index 7f186f635bf315..01055a4935f54d 100644 --- a/examples/window-app/nrfconnect/main/AppTask.cpp +++ b/examples/window-app/nrfconnect/main/AppTask.cpp @@ -21,6 +21,8 @@ #include "LEDUtil.h" #include "WindowCovering.h" +#include + #include #include @@ -37,8 +39,8 @@ #endif #include -#include -#include +#include +#include #define FACTORY_RESET_TRIGGER_TIMEOUT 3000 #define FACTORY_RESET_CANCEL_WINDOW_TIMEOUT 3000 @@ -50,9 +52,16 @@ LOG_MODULE_DECLARE(app, CONFIG_MATTER_LOG_LEVEL); K_MSGQ_DEFINE(sAppEventQueue, sizeof(AppEvent), APP_EVENT_QUEUE_SIZE, alignof(AppEvent)); -static LEDWidget sStatusLED; -static UnusedLedsWrapper<1> sUnusedLeds{ { DK_LED4 } }; -static k_timer sFunctionTimer; +namespace { + +LEDWidget sStatusLED; +UnusedLedsWrapper<1> sUnusedLeds{ { DK_LED4 } }; +k_timer sFunctionTimer; + +chip::DeviceLayer::DeviceInfoProviderImpl gExampleDeviceInfoProvider; + +} // namespace + namespace LedConsts { constexpr uint32_t kBlinkRate_ms{ 500 }; namespace StatusLed { @@ -132,15 +141,22 @@ CHIP_ERROR AppTask::Init() k_timer_init(&sFunctionTimer, &AppTask::FunctionTimerTimeoutCallback, nullptr); k_timer_user_data_set(&sFunctionTimer, this); +#ifdef CONFIG_MCUMGR_SMP_BT + /* Initialize DFU over SMP */ + GetDFUOverSMP().Init(RequestSMPAdvertisingStart); + GetDFUOverSMP().ConfirmNewImage(); +#endif + // Initialize CHIP server SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider()); static chip::CommonCaseDeviceServerInitParams initParams; (void) initParams.InitializeStaticResourcesBeforeServerInit(); ReturnErrorOnFailure(chip::Server::GetInstance().Init(initParams)); -#if CONFIG_CHIP_OTA_REQUESTOR - InitBasicOTARequestor(); -#endif + + gExampleDeviceInfoProvider.SetStorageDelegate(&Server::GetInstance().GetPersistentStorage()); + chip::DeviceLayer::SetDeviceInfoProvider(&gExampleDeviceInfoProvider); + ConfigurationMgr().LogDeviceConfig(); PrintOnboardingCodes(chip::RendezvousInformationFlag(chip::RendezvousInformationFlag::kBLE)); @@ -214,6 +230,16 @@ void AppTask::ButtonEventHandler(uint32_t aButtonState, uint32_t aHasChanged) } } +#ifdef CONFIG_MCUMGR_SMP_BT +void AppTask::RequestSMPAdvertisingStart(void) +{ + AppEvent event; + event.Type = AppEvent::Type::StartSMPAdvertising; + event.Handler = [](AppEvent *) { GetDFUOverSMP().StartBLEAdvertising(); }; + PostEvent(&event); +} +#endif + void AppTask::FunctionTimerTimeoutCallback(k_timer * aTimer) { if (!aTimer) @@ -285,7 +311,11 @@ void AppTask::FunctionHandler(AppEvent * aEvent) UpdateStatusLED(); CancelTimer(); - +#ifdef CONFIG_MCUMGR_SMP_BT + GetDFUOverSMP().StartServer(); +#else + LOG_INF("Software update is disabled"); +#endif // Change the function to none selected since factory reset has been canceled. Instance().mMode = OperatingMode::Normal; @@ -475,6 +505,14 @@ void AppTask::ChipEventHandler(const ChipDeviceEvent * aEvent, intptr_t) Instance().mIsThreadEnabled = ConnectivityMgr().IsThreadEnabled(); UpdateStatusLED(); break; + case DeviceEventType::kThreadConnectivityChange: +#if CONFIG_CHIP_OTA_REQUESTOR + if (aEvent->ThreadConnectivityChange.Result == kConnectivity_Established) + { + InitBasicOTARequestor(); + } +#endif + break; default: break; } diff --git a/examples/window-app/nrfconnect/main/WindowCovering.cpp b/examples/window-app/nrfconnect/main/WindowCovering.cpp index f1667045390384..cd4dc07fc127eb 100644 --- a/examples/window-app/nrfconnect/main/WindowCovering.cpp +++ b/examples/window-app/nrfconnect/main/WindowCovering.cpp @@ -23,9 +23,9 @@ #include #include -#include #include -#include +#include +#include LOG_MODULE_DECLARE(app, CONFIG_MATTER_LOG_LEVEL); @@ -33,8 +33,9 @@ using namespace ::chip::Credentials; using namespace ::chip::DeviceLayer; using namespace chip::app::Clusters::WindowCovering; -static k_timer sLiftTimer; -static k_timer sTiltTimer; +static const struct pwm_dt_spec sLiftPwmDevice = PWM_DT_SPEC_GET(DT_ALIAS(pwm_led1)); +static const struct pwm_dt_spec sTiltPwmDevice = PWM_DT_SPEC_GET(DT_ALIAS(pwm_led2)); + static constexpr uint32_t sMoveTimeoutMs{ 200 }; WindowCovering::WindowCovering() @@ -42,32 +43,14 @@ WindowCovering::WindowCovering() mLiftLED.Init(LIFT_STATE_LED); mTiltLED.Init(TILT_STATE_LED); - if (mLiftIndicator.Init(LIFT_PWM_DEVICE, LIFT_PWM_CHANNEL, 0, 255) != 0) + if (mLiftIndicator.Init(&sLiftPwmDevice, 0, 255) != 0) { LOG_ERR("Cannot initialize the lift indicator"); } - if (mTiltIndicator.Init(TILT_PWM_DEVICE, TILT_PWM_CHANNEL, 0, 255) != 0) + if (mTiltIndicator.Init(&sTiltPwmDevice, 0, 255) != 0) { LOG_ERR("Cannot initialize the tilt indicator"); } - - k_timer_init(&sLiftTimer, MoveTimerTimeoutCallback, nullptr); - k_timer_init(&sTiltTimer, MoveTimerTimeoutCallback, nullptr); -} - -void WindowCovering::MoveTimerTimeoutCallback(k_timer * aTimer) -{ - if (!aTimer) - return; - - if (aTimer == &sLiftTimer) - { - chip::DeviceLayer::PlatformMgr().ScheduleWork(DriveCurrentLiftPosition); - } - else if (aTimer == &sTiltTimer) - { - chip::DeviceLayer::PlatformMgr().ScheduleWork(DriveCurrentTiltPosition); - } } void WindowCovering::DriveCurrentLiftPosition(intptr_t) @@ -160,14 +143,29 @@ bool WindowCovering::TargetCompleted(MoveType aMoveType, NPercent100ths aCurrent void WindowCovering::StartTimer(MoveType aMoveType, uint32_t aTimeoutMs) { - if (aMoveType == MoveType::LIFT) + MoveType * moveType = chip::Platform::New(); + VerifyOrReturn(moveType != nullptr); + + *moveType = aMoveType; + (void) chip::DeviceLayer::SystemLayer().StartTimer(chip::System::Clock::Milliseconds32(aTimeoutMs), MoveTimerTimeoutCallback, + reinterpret_cast(moveType)); +} + +void WindowCovering::MoveTimerTimeoutCallback(chip::System::Layer * systemLayer, void * appState) +{ + MoveType * moveType = reinterpret_cast(appState); + VerifyOrReturn(moveType != nullptr); + + if (*moveType == MoveType::LIFT) { - k_timer_start(&sLiftTimer, K_MSEC(sMoveTimeoutMs), K_NO_WAIT); + chip::DeviceLayer::PlatformMgr().ScheduleWork(WindowCovering::DriveCurrentLiftPosition); } - else if (aMoveType == MoveType::TILT) + else if (*moveType == MoveType::TILT) { - k_timer_start(&sTiltTimer, K_MSEC(sMoveTimeoutMs), K_NO_WAIT); + chip::DeviceLayer::PlatformMgr().ScheduleWork(WindowCovering::DriveCurrentTiltPosition); } + + chip::Platform::Delete(moveType); } void WindowCovering::DriveCurrentTiltPosition(intptr_t) diff --git a/examples/window-app/nrfconnect/main/ZclCallbacks.cpp b/examples/window-app/nrfconnect/main/ZclCallbacks.cpp index f8407af3ffb07c..d4a1c541c93bbc 100644 --- a/examples/window-app/nrfconnect/main/ZclCallbacks.cpp +++ b/examples/window-app/nrfconnect/main/ZclCallbacks.cpp @@ -73,7 +73,9 @@ void MatterWindowCoveringClusterServerAttributeChangedCallback(const app::Concre case Attributes::CurrentPositionTiltPercent100ths::Id: WindowCovering::Instance().PositionLEDUpdate(WindowCovering::MoveType::TILT); break; + default: + WindowCovering::Instance().SchedulePostAttributeChange(attributePath.mEndpointId, attributePath.mAttributeId); + break; }; } - WindowCovering::Instance().SchedulePostAttributeChange(attributePath.mEndpointId, attributePath.mAttributeId); } diff --git a/examples/window-app/nrfconnect/main/include/AppConfig.h b/examples/window-app/nrfconnect/main/include/AppConfig.h index 46770401c0e2eb..7dadc1bc572667 100644 --- a/examples/window-app/nrfconnect/main/include/AppConfig.h +++ b/examples/window-app/nrfconnect/main/include/AppConfig.h @@ -29,9 +29,3 @@ #define SYSTEM_STATE_LED DK_LED1 #define LIFT_STATE_LED DK_LED2 #define TILT_STATE_LED DK_LED3 - -#define LIFT_PWM_DEVICE DEVICE_DT_GET(DT_PWMS_CTLR(DT_ALIAS(pwm_led1))) -#define LIFT_PWM_CHANNEL DT_PWMS_CHANNEL(DT_ALIAS(pwm_led1)) - -#define TILT_PWM_DEVICE DEVICE_DT_GET(DT_PWMS_CTLR(DT_ALIAS(pwm_led2))) -#define TILT_PWM_CHANNEL DT_PWMS_CHANNEL(DT_ALIAS(pwm_led2)) diff --git a/examples/window-app/nrfconnect/main/include/CHIPProjectConfig.h b/examples/window-app/nrfconnect/main/include/CHIPProjectConfig.h index df571c7319dd07..de64851584ba9d 100644 --- a/examples/window-app/nrfconnect/main/include/CHIPProjectConfig.h +++ b/examples/window-app/nrfconnect/main/include/CHIPProjectConfig.h @@ -31,8 +31,8 @@ #define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR 0xF00 #ifdef CONFIG_CHIP_THREAD_SSED -#define CHIP_DEVICE_CONFIG_SED_ACTIVE_INTERVAL 1000_ms32 -#define CHIP_DEVICE_CONFIG_SED_IDLE_INTERVAL 1000_ms32 +#define CHIP_DEVICE_CONFIG_SED_ACTIVE_INTERVAL 500_ms32 +#define CHIP_DEVICE_CONFIG_SED_IDLE_INTERVAL 500_ms32 #else #define CHIP_DEVICE_CONFIG_SED_IDLE_INTERVAL 2000_ms32 #endif diff --git a/examples/window-app/nrfconnect/main/include/WindowCovering.h b/examples/window-app/nrfconnect/main/include/WindowCovering.h index 2b5b6ef792d9fd..99868a9fe41bfb 100644 --- a/examples/window-app/nrfconnect/main/include/WindowCovering.h +++ b/examples/window-app/nrfconnect/main/include/WindowCovering.h @@ -69,7 +69,7 @@ class WindowCovering static chip::Percent100ths CalculateSingleStep(MoveType aMoveType); static void DriveCurrentLiftPosition(intptr_t); static void DriveCurrentTiltPosition(intptr_t); - static void MoveTimerTimeoutCallback(k_timer * aTimer); + static void MoveTimerTimeoutCallback(chip::System::Layer * systemLayer, void * appState); static void DoPostAttributeChange(intptr_t aArg); MoveType mCurrentUIMoveType; diff --git a/examples/window-app/nrfconnect/main/main.cpp b/examples/window-app/nrfconnect/main/main.cpp index bb67947911cad1..40233508ccc702 100644 --- a/examples/window-app/nrfconnect/main/main.cpp +++ b/examples/window-app/nrfconnect/main/main.cpp @@ -17,7 +17,7 @@ #include "AppTask.h" -#include +#include LOG_MODULE_REGISTER(app, CONFIG_MATTER_LOG_LEVEL); diff --git a/gn_build.sh b/gn_build.sh index 35fbb41cf23f5b..86e2ff6889c6d3 100755 --- a/gn_build.sh +++ b/gn_build.sh @@ -192,6 +192,20 @@ fi echo +tizen_sdk_args="" + +if [[ -d "${TIZEN_SDK_ROOT}" && -d "${TIZEN_SDK_SYSROOT}" ]]; then + tizen_sdk_args+="tizen_sdk_root=\"$TIZEN_SDK_ROOT\" tizen_sdk_sysroot=\"$TIZEN_SDK_SYSROOT\"" + extra_args+=" $tizen_sdk_args enable_tizen_builds=true" +else + echo + echo "Hint: Set \$TIZEN_SDK_ROOT and \$TIZEN_SDK_SYSROOT to enable building for Tizen" + echo " Required Tizen SDK can be obtained from" + echo " https://developer.tizen.org/development/tizen-studio/download" +fi + +echo + _chip_banner "Build: GN configure" gn --root="$CHIP_ROOT" gen --check --fail-on-unused-args "$CHIP_ROOT/out/debug" --args='target_os="all"'"$extra_args$user_args" diff --git a/integrations/cloudbuild/build-all.yaml b/integrations/cloudbuild/build-all.yaml index b83748bea2db46..c54c43d642fe76 100644 --- a/integrations/cloudbuild/build-all.yaml +++ b/integrations/cloudbuild/build-all.yaml @@ -1,5 +1,5 @@ steps: - - name: "connectedhomeip/chip-build-vscode:0.5.75" + - name: "connectedhomeip/chip-build-vscode:0.5.77" env: - PW_ENVIRONMENT_ROOT=/pwenv args: @@ -12,13 +12,13 @@ steps: path: /pwenv timeout: 900s - - name: "connectedhomeip/chip-build-vscode:0.5.75" + - name: "connectedhomeip/chip-build-vscode:0.5.77" env: - PW_ENVIRONMENT_ROOT=/pwenv args: - >- ./scripts/build/build_examples.py --enable-flashbundle - --target-glob '*' --skip-target-glob '*-tests' build + --target-glob '*' --skip-target-glob '{tizen-*,*-tests}' build --create-archives /workspace/artifacts/ id: CompileAll waitFor: diff --git a/integrations/cloudbuild/chef.yaml b/integrations/cloudbuild/chef.yaml new file mode 100644 index 00000000000000..f70c63976217dd --- /dev/null +++ b/integrations/cloudbuild/chef.yaml @@ -0,0 +1,42 @@ +steps: + - name: "connectedhomeip/chip-build-vscode:0.5.75" + env: + - PW_ENVIRONMENT_ROOT=/pwenv + args: + - "-c" + - source ./scripts/bootstrap.sh + id: Bootstrap + entrypoint: /usr/bin/bash + volumes: + - name: pwenv + path: /pwenv + timeout: 900s + + - name: "connectedhomeip/chip-build-vscode:0.5.75" + env: + - PW_ENVIRONMENT_ROOT=/pwenv + args: + - >- + ./examples/chef/chef.py --build_all + id: CompileAll + waitFor: + - Bootstrap + entrypoint: ./scripts/run_in_build_env.sh + volumes: + - name: pwenv + path: /pwenv + +logsBucket: matter-build-automation-build-logs + +# Global timeout for all steps +timeout: 14400s + +artifacts: + objects: + location: "gs://matter-build-automation-artifacts/$PROJECT_ID/$COMMIT_SHA/" + paths: ["/workspace/artifacts/*.tar.gz"] +# Using higher CPU machines generally speeds up builds, except bootstrap is always +# slow. +options: + machineType: "E2_HIGHCPU_32" + diskSizeGb: 200 diff --git a/integrations/cloudbuild/smoke-test.yaml b/integrations/cloudbuild/smoke-test.yaml index 4b3717b825b905..12325b791124cf 100644 --- a/integrations/cloudbuild/smoke-test.yaml +++ b/integrations/cloudbuild/smoke-test.yaml @@ -1,5 +1,5 @@ steps: - - name: "connectedhomeip/chip-build-vscode:0.5.75" + - name: "connectedhomeip/chip-build-vscode:0.5.77" env: - PW_ENVIRONMENT_ROOT=/pwenv args: @@ -12,7 +12,7 @@ steps: path: /pwenv timeout: 900s - - name: "connectedhomeip/chip-build-vscode:0.5.75" + - name: "connectedhomeip/chip-build-vscode:0.5.77" id: ESP32 env: - PW_ENVIRONMENT_ROOT=/pwenv @@ -28,7 +28,7 @@ steps: - name: pwenv path: /pwenv - - name: "connectedhomeip/chip-build-vscode:0.5.75" + - name: "connectedhomeip/chip-build-vscode:0.5.77" id: NRFConnect env: - PW_ENVIRONMENT_ROOT=/pwenv @@ -45,7 +45,7 @@ steps: - name: pwenv path: /pwenv - - name: "connectedhomeip/chip-build-vscode:0.5.75" + - name: "connectedhomeip/chip-build-vscode:0.5.77" id: EFR32 env: - PW_ENVIRONMENT_ROOT=/pwenv @@ -62,7 +62,7 @@ steps: - name: pwenv path: /pwenv - - name: "connectedhomeip/chip-build-vscode:0.5.75" + - name: "connectedhomeip/chip-build-vscode:0.5.77" id: Linux env: - PW_ENVIRONMENT_ROOT=/pwenv @@ -79,7 +79,7 @@ steps: - name: pwenv path: /pwenv - - name: "connectedhomeip/chip-build-vscode:0.5.75" + - name: "connectedhomeip/chip-build-vscode:0.5.77" id: Android env: - PW_ENVIRONMENT_ROOT=/pwenv diff --git a/integrations/docker/ci-only-images/chip-cirque-device-base/Dockerfile b/integrations/docker/ci-only-images/chip-cirque-device-base/Dockerfile index 1f92ab22b68aa5..d3e330d3d6e388 100644 --- a/integrations/docker/ci-only-images/chip-cirque-device-base/Dockerfile +++ b/integrations/docker/ci-only-images/chip-cirque-device-base/Dockerfile @@ -18,7 +18,7 @@ RUN apt-get update \ && apt-get install --no-install-recommends -y \ avahi-daemon=0.7-4ubuntu7.1 \ avahi-utils=0.7-4ubuntu7.1 \ - ca-certificates=20210119~20.04.2 \ + ca-certificates=20211016~20.04.1 \ dhcpcd5=7.1.0-2build1 \ gdb=9.2-0ubuntu1~20.04.1 \ git=1:2.25.1-1ubuntu3.4 \ diff --git a/integrations/docker/images/chip-build-ameba/Dockerfile b/integrations/docker/images/chip-build-ameba/Dockerfile index 0539b55a1007d7..edf73bd120c59d 100644 --- a/integrations/docker/images/chip-build-ameba/Dockerfile +++ b/integrations/docker/images/chip-build-ameba/Dockerfile @@ -3,7 +3,7 @@ FROM connectedhomeip/chip-build:${VERSION} # Setup Ameba ARG AMEBA_DIR=/opt/ameba -ARG TAG_NAME=ameba_update_2022_05_20 +ARG TAG_NAME=ameba_update_2022_06_06 RUN set -x \ && apt-get update \ && mkdir ${AMEBA_DIR} \ diff --git a/integrations/docker/images/chip-build-nrf-platform/Dockerfile b/integrations/docker/images/chip-build-nrf-platform/Dockerfile index 7b7101e6115cd0..4c8009bbb11cc1 100644 --- a/integrations/docker/images/chip-build-nrf-platform/Dockerfile +++ b/integrations/docker/images/chip-build-nrf-platform/Dockerfile @@ -2,7 +2,7 @@ ARG VERSION=latest FROM connectedhomeip/chip-build:${VERSION} as build # Compatible Nordic Connect SDK revision. -ARG NCS_REVISION=5ea8f7fa91d7315fcc6cd9eb3aa74f9640d0abac +ARG NCS_REVISION=fd5905aa6b04febd99d00dba6c482ac25eb15222 RUN set -x \ && apt-get update \ diff --git a/integrations/docker/images/chip-build-tizen/Dockerfile b/integrations/docker/images/chip-build-tizen/Dockerfile index ba2452b675412c..cd3915b3b0e5d3 100644 --- a/integrations/docker/images/chip-build-tizen/Dockerfile +++ b/integrations/docker/images/chip-build-tizen/Dockerfile @@ -147,13 +147,3 @@ RUN set -x \ # Switch to the non-root user USER $USER_NAME WORKDIR $USER_HOME - -# ------------------------------------------------------------------------------ -# Setup tizen studio CLI -RUN set -x \ - # Generate author certificate - && tizen certificate --alias=CHIP --name=CHIP --email=chip@tizen.org --password=chiptizen \ - # Add new security profile - && tizen security-profiles add --active --name=CHIP --author=$HOME/tizen-sdk-data/keystore/author/author.p12 --password=chiptizen \ - # Cleanup - && : # last line diff --git a/integrations/docker/images/chip-build-vscode/Dockerfile b/integrations/docker/images/chip-build-vscode/Dockerfile index 5feb2ed7bae54c..5bbad09fa8a521 100644 --- a/integrations/docker/images/chip-build-vscode/Dockerfile +++ b/integrations/docker/images/chip-build-vscode/Dockerfile @@ -57,6 +57,15 @@ RUN set -x \ && chmod -R a+w /opt/android/sdk/licenses \ && : # last line +# Required for the Tizen SDK +RUN set -x \ + && apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -fy --no-install-recommends \ + zip \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* \ + && : # last line + ENV AMEBA_PATH=/opt/ameba/ambd_sdk_with_chip_non_NDA ENV ANDROID_HOME=/opt/android/sdk ENV ANDROID_NDK_HOME=/opt/android/android-ndk-r21b @@ -75,8 +84,9 @@ ENV SYSROOT_AARCH64=/opt/ubuntu-21.04-aarch64-sysroot ENV TELINK_ZEPHYR_BASE=/opt/telink/zephyrproject/zephyr ENV TELINK_ZEPHYR_SDK_DIR=/opt/telink/zephyr-sdk-0.13.2 ENV TI_SYSCONFIG_ROOT=/opt/ti/sysconfig_1.11.0 -ENV TIZEN_SDK_ROOT /opt/tizen-sdk -ENV TIZEN_SDK_SYSROOT $TIZEN_SDK_ROOT/platforms/tizen-$TIZEN_VERSION/mobile/rootstraps/mobile-$TIZEN_VERSION-device.core -ENV TIZEN_VERSION 6.0 ENV ZEPHYR_BASE=/opt/NordicSemiconductor/nrfconnect/zephyr ENV ZEPHYR_TOOLCHAIN_VARIANT=gnuarmemb + +ENV TIZEN_VERSION 6.0 +ENV TIZEN_SDK_ROOT /opt/tizen-sdk +ENV TIZEN_SDK_SYSROOT $TIZEN_SDK_ROOT/platforms/tizen-$TIZEN_VERSION/mobile/rootstraps/mobile-$TIZEN_VERSION-device.core diff --git a/integrations/docker/images/chip-build/version b/integrations/docker/images/chip-build/version index c2bc2a700ccca7..db9cb06c063642 100644 --- a/integrations/docker/images/chip-build/version +++ b/integrations/docker/images/chip-build/version @@ -1 +1 @@ -0.5.76 Version bump reason: [Ameba] Save wifi information in persistent storage for autoconnect +0.5.79 Version bump reason: [Ameba] Update ameba SDK to expose xPortResetHeapMinimumEverFreeHeapSize API diff --git a/scripts/build/build/targets.py b/scripts/build/build/targets.py index 7c272bc2beff83..60d66b0b7784f7 100644 --- a/scripts/build/build/targets.py +++ b/scripts/build/build/targets.py @@ -232,19 +232,17 @@ def HostTargets(): # Don't cross compile some builds app_targets.append( target_native.Extend('rpc-console', app=HostApp.RPC_CONSOLE)) - app_targets.append( - target_native.Extend('tv-app', app=HostApp.TV_APP)) - app_targets.append( - target_native.Extend('tv-casting-app', app=HostApp.TV_CASTING_APP)) app_targets.append( target_native.Extend('nl-test-runner', app=HostApp.NL_TEST_RUNNER)) for target in targets: app_targets.append(target.Extend( 'all-clusters', app=HostApp.ALL_CLUSTERS)) + app_targets.append(target.Extend( + 'all-clusters-minimal', app=HostApp.ALL_CLUSTERS_MINIMAL)) if (HostBoard.NATIVE.PlatformName() == 'darwin'): app_targets.append(target.Extend( - 'chip-tool-darwin', app=HostApp.CHIP_TOOL_DARWIN)) + 'darwin-framework-tool', app=HostApp.CHIP_TOOL_DARWIN)) app_targets.append(target.Extend('chip-tool', app=HostApp.CHIP_TOOL)) app_targets.append(target.Extend('thermostat', app=HostApp.THERMOSTAT)) app_targets.append(target.Extend('minmdns', app=HostApp.MIN_MDNS)) @@ -256,13 +254,16 @@ def HostTargets(): app_targets.append(target.Extend( 'ota-requestor', app=HostApp.OTA_REQUESTOR, enable_ble=False)) app_targets.append(target.Extend('python-bindings', app=HostApp.PYTHON_BINDINGS)) + app_targets.append(target.Extend('tv-app', app=HostApp.TV_APP)) + app_targets.append(target.Extend('tv-casting-app', app=HostApp.TV_CASTING)) + app_targets.append(target.Extend('bridge', app=HostApp.BRIDGE)) builder = VariantBuilder() # Possible build variants. Note that number of potential # builds is exponential here builder.AppendVariant(name="same-event-loop", validator=AcceptNameWithSubstrings( - ['-chip-tool', '-chip-tool-darwin']), separate_event_loop=False), + ['-chip-tool', '-darwin-framework-tool']), separate_event_loop=False), builder.AppendVariant(name="no-interactive", validator=AcceptNameWithSubstrings( ['-chip-tool']), interactive_mode=False), builder.AppendVariant(name="ipv6only", enable_ipv4=False), @@ -321,16 +322,30 @@ def Esp32Targets(): yield esp32_target.Extend('c3devkit-all-clusters', board=Esp32Board.C3DevKit, app=Esp32App.ALL_CLUSTERS) + yield esp32_target.Extend('m5stack-all-clusters-minimal', board=Esp32Board.M5Stack, app=Esp32App.ALL_CLUSTERS_MINIMAL) + yield esp32_target.Extend('m5stack-all-clusters-minimal-ipv6only', board=Esp32Board.M5Stack, app=Esp32App.ALL_CLUSTERS_MINIMAL, + enable_ipv4=False) + yield esp32_target.Extend('m5stack-all-clusters-minimal-rpc', board=Esp32Board.M5Stack, app=Esp32App.ALL_CLUSTERS_MINIMAL, + enable_rpcs=True) + yield esp32_target.Extend('m5stack-all-clusters-minimal-rpc-ipv6only', board=Esp32Board.M5Stack, app=Esp32App.ALL_CLUSTERS_MINIMAL, + enable_rpcs=True, enable_ipv4=False) + + yield esp32_target.Extend('c3devkit-all-clusters-minimal', board=Esp32Board.C3DevKit, app=Esp32App.ALL_CLUSTERS_MINIMAL) + devkitc = esp32_target.Extend('devkitc', board=Esp32Board.DevKitC) yield devkitc.Extend('all-clusters', app=Esp32App.ALL_CLUSTERS) yield devkitc.Extend('all-clusters-ipv6only', app=Esp32App.ALL_CLUSTERS, enable_ipv4=False) + yield devkitc.Extend('all-clusters-minimal', app=Esp32App.ALL_CLUSTERS_MINIMAL) + yield devkitc.Extend('all-clusters-minimal-ipv6only', app=Esp32App.ALL_CLUSTERS_MINIMAL, enable_ipv4=False) yield devkitc.Extend('shell', app=Esp32App.SHELL) yield devkitc.Extend('light', app=Esp32App.LIGHT) yield devkitc.Extend('lock', app=Esp32App.LOCK) yield devkitc.Extend('bridge', app=Esp32App.BRIDGE) yield devkitc.Extend('temperature-measurement', app=Esp32App.TEMPERATURE_MEASUREMENT) yield devkitc.Extend('temperature-measurement-rpc', app=Esp32App.TEMPERATURE_MEASUREMENT, enable_rpcs=True) + yield devkitc.Extend('ota-requestor', app=Esp32App.OTA_REQUESTOR) + yield devkitc.Extend('ota-requestor-rpc', app=Esp32App.OTA_REQUESTOR, enable_rpcs=True) yield esp32_target.Extend('qemu-tests', board=Esp32Board.QEMU, app=Esp32App.TESTS) @@ -393,10 +408,12 @@ def NrfTargets(): # Enable nrf52840dongle for all-clusters and lighting app only yield target.Extend('nrf52840dongle-all-clusters', board=NrfBoard.NRF52840DONGLE, app=NrfApp.ALL_CLUSTERS) + yield target.Extend('nrf52840dongle-all-clusters-minimal', board=NrfBoard.NRF52840DONGLE, app=NrfApp.ALL_CLUSTERS_MINIMAL) yield target.Extend('nrf52840dongle-light', board=NrfBoard.NRF52840DONGLE, app=NrfApp.LIGHT) for target in targets: yield target.Extend('all-clusters', app=NrfApp.ALL_CLUSTERS) + yield target.Extend('all-clusters-minimal', app=NrfApp.ALL_CLUSTERS_MINIMAL) yield target.Extend('lock', app=NrfApp.LOCK) yield target.Extend('light', app=NrfApp.LIGHT) yield target.Extend('shell', app=NrfApp.SHELL) @@ -447,6 +464,8 @@ def MbedTargets(): app_targets.append(target.Extend('light', app=MbedApp.LIGHT)) app_targets.append(target.Extend( 'all-clusters', app=MbedApp.ALL_CLUSTERS)) + app_targets.append(target.Extend( + 'all-clusters-minimal', app=MbedApp.ALL_CLUSTERS_MINIMAL)) app_targets.append(target.Extend('pigweed', app=MbedApp.PIGWEED)) app_targets.append(target.Extend('shell', app=MbedApp.SHELL)) @@ -465,6 +484,7 @@ def InfineonTargets(): yield target.Extend('p6-lock', board=InfineonBoard.P6BOARD, app=InfineonApp.LOCK) yield target.Extend('p6-all-clusters', board=InfineonBoard.P6BOARD, app=InfineonApp.ALL_CLUSTERS) + yield target.Extend('p6-all-clusters-minimal', board=InfineonBoard.P6BOARD, app=InfineonApp.ALL_CLUSTERS_MINIMAL) yield target.Extend('p6-light', board=InfineonBoard.P6BOARD, app=InfineonApp.LIGHT) @@ -472,6 +492,7 @@ def AmebaTargets(): ameba_target = Target('ameba', AmebaBuilder) yield ameba_target.Extend('amebad-all-clusters', board=AmebaBoard.AMEBAD, app=AmebaApp.ALL_CLUSTERS) + yield ameba_target.Extend('amebad-all-clusters-minimal', board=AmebaBoard.AMEBAD, app=AmebaApp.ALL_CLUSTERS_MINIMAL) yield ameba_target.Extend('amebad-light', board=AmebaBoard.AMEBAD, app=AmebaApp.LIGHT) yield ameba_target.Extend('amebad-pigweed', board=AmebaBoard.AMEBAD, app=AmebaApp.PIGWEED) @@ -495,6 +516,7 @@ def cc13x2x7_26x2x7Targets(): yield target.Extend('pump', app=cc13x2x7_26x2x7App.PUMP) yield target.Extend('pump-controller', app=cc13x2x7_26x2x7App.PUMP_CONTROLLER) yield target.Extend('all-clusters', app=cc13x2x7_26x2x7App.ALL_CLUSTERS) + yield target.Extend('all-clusters-minimal', app=cc13x2x7_26x2x7App.ALL_CLUSTERS_MINIMAL) yield target.Extend('shell', app=cc13x2x7_26x2x7App.SHELL) @@ -549,11 +571,13 @@ def IMXTargets(): yield target.Extend('lighting-app', app=IMXApp.LIGHT) yield target.Extend('thermostat', app=IMXApp.THERMOSTAT) yield target.Extend('all-clusters-app', app=IMXApp.ALL_CLUSTERS) + yield target.Extend('all-clusters-minimal-app', app=IMXApp.ALL_CLUSTERS_MINIMAL) yield target.Extend('ota-provider-app', app=IMXApp.OTA_PROVIDER) yield target.Extend('chip-tool-release', app=IMXApp.CHIP_TOOL, release=True) yield target.Extend('lighting-app-release', app=IMXApp.LIGHT, release=True) yield target.Extend('thermostat-release', app=IMXApp.THERMOSTAT, release=True) yield target.Extend('all-clusters-app-release', app=IMXApp.ALL_CLUSTERS, release=True) + yield target.Extend('all-clusters-minimal-app-release', app=IMXApp.ALL_CLUSTERS_MINIMAL, release=True) yield target.Extend('ota-provider-app-release', app=IMXApp.OTA_PROVIDER, release=True) diff --git a/scripts/build/builders/ameba.py b/scripts/build/builders/ameba.py index a961ca71df5377..bb743407bada4e 100644 --- a/scripts/build/builders/ameba.py +++ b/scripts/build/builders/ameba.py @@ -24,6 +24,7 @@ class AmebaBoard(Enum): class AmebaApp(Enum): ALL_CLUSTERS = auto() + ALL_CLUSTERS_MINIMAL = auto() LIGHT = auto() PIGWEED = auto() @@ -31,6 +32,8 @@ class AmebaApp(Enum): def ExampleName(self): if self == AmebaApp.ALL_CLUSTERS: return 'all-clusters-app' + elif self == AmebaApp.ALL_CLUSTERS_MINIMAL: + return 'all-clusters-minimal-app' elif self == AmebaApp.LIGHT: return 'lighting-app' elif self == AmebaApp.PIGWEED: @@ -42,6 +45,8 @@ def ExampleName(self): def AppNamePrefix(self): if self == AmebaApp.ALL_CLUSTERS: return 'chip-ameba-all-clusters-app' + elif self == AmebaApp.ALL_CLUSTERS_MINIMAL: + return 'chip-ameba-all-clusters-minimal-app' elif self == AmebaApp.LIGHT: return 'chip-ameba-lighting-app' elif self == AmebaApp.PIGWEED: diff --git a/scripts/build/builders/cc13x2x7_26x2x7.py b/scripts/build/builders/cc13x2x7_26x2x7.py index 9565b5500f6738..99e3ae1d6da320 100644 --- a/scripts/build/builders/cc13x2x7_26x2x7.py +++ b/scripts/build/builders/cc13x2x7_26x2x7.py @@ -23,6 +23,7 @@ class cc13x2x7_26x2x7App(Enum): PUMP = auto() PUMP_CONTROLLER = auto() ALL_CLUSTERS = auto() + ALL_CLUSTERS_MINIMAL = auto() SHELL = auto() def ExampleName(self): @@ -34,6 +35,8 @@ def ExampleName(self): return 'pump-controller-app' elif self == cc13x2x7_26x2x7App.ALL_CLUSTERS: return 'all-clusters-app' + elif self == cc13x2x7_26x2x7App.ALL_CLUSTERS_MINIMAL: + return 'all-clusters-minimal-app' elif self == cc13x2x7_26x2x7App.SHELL: return 'shell' else: @@ -48,6 +51,8 @@ def AppNamePrefix(self): return 'chip-LP_CC2652R7-pump-controller-example' elif self == cc13x2x7_26x2x7App.ALL_CLUSTERS: return 'chip-LP_CC2652R7-all-clusters-example' + elif self == cc13x2x7_26x2x7App.ALL_CLUSTERS_MINIMAL: + return 'chip-LP_CC2652R7-all-clusters-minimal-example' elif self == cc13x2x7_26x2x7App.SHELL: return 'chip-LP_CC2652R7-shell-example' else: @@ -92,7 +97,7 @@ def build_outputs(self): or self.app == cc13x2x7_26x2x7App.PUMP_CONTROLLER): extensions = [".out", ".bin", ".out.map", "-bim.hex"] - elif self.app == cc13x2x7_26x2x7App.ALL_CLUSTERS or self.app == cc13x2x7_26x2x7App.SHELL: + elif self.app == cc13x2x7_26x2x7App.ALL_CLUSTERS or cc13x2x7_26x2x7App.ALL_CLUSTERS_MINIMAL or self.app == cc13x2x7_26x2x7App.SHELL: extensions = [".out", ".out.map"] else: diff --git a/scripts/build/builders/esp32.py b/scripts/build/builders/esp32.py index 8f3f43393d0f2e..053384a3a4273e 100644 --- a/scripts/build/builders/esp32.py +++ b/scripts/build/builders/esp32.py @@ -29,17 +29,21 @@ class Esp32Board(Enum): class Esp32App(Enum): ALL_CLUSTERS = auto() + ALL_CLUSTERS_MINIMAL = auto() LIGHT = auto() LOCK = auto() SHELL = auto() BRIDGE = auto() TEMPERATURE_MEASUREMENT = auto() TESTS = auto() + OTA_REQUESTOR = auto() @property def ExamplePath(self): if self == Esp32App.ALL_CLUSTERS: return 'examples/all-clusters-app' + elif self == Esp32App.ALL_CLUSTERS_MINIMAL: + return 'examples/all-clusters-minimal-app' elif self == Esp32App.LIGHT: return 'examples/lighting-app' elif self == Esp32App.LOCK: @@ -50,6 +54,8 @@ def ExamplePath(self): return 'examples/bridge-app' elif self == Esp32App.TEMPERATURE_MEASUREMENT: return 'examples/temperature-measurement-app' + elif self == Esp32App.OTA_REQUESTOR: + return 'examples/ota-requestor-app' elif self == Esp32App.TESTS: return 'src/test_driver' else: @@ -59,6 +65,8 @@ def ExamplePath(self): def AppNamePrefix(self): if self == Esp32App.ALL_CLUSTERS: return 'chip-all-clusters-app' + elif self == Esp32App.ALL_CLUSTERS_MINIMAL: + return 'chip-all-clusters-minimal-app' elif self == Esp32App.LIGHT: return 'chip-lighting-app' elif self == Esp32App.LOCK: @@ -69,6 +77,8 @@ def AppNamePrefix(self): return 'chip-bridge-app' elif self == Esp32App.TEMPERATURE_MEASUREMENT: return 'chip-temperature-measurement-app' + elif self == Esp32App.OTA_REQUESTOR: + return 'chip-ota-requestor-app' elif self == Esp32App.TESTS: return None else: @@ -85,17 +95,21 @@ def IsCompatible(self, board: Esp32Board): if board == Esp32Board.QEMU: return self == Esp32App.TESTS elif board == Esp32Board.M5Stack: - return self == Esp32App.ALL_CLUSTERS + return self == Esp32App.ALL_CLUSTERS or self == Esp32App.ALL_CLUSTERS_MINIMAL elif board == Esp32Board.C3DevKit: - return self == Esp32App.ALL_CLUSTERS + return self == Esp32App.ALL_CLUSTERS or self == Esp32App.ALL_CLUSTERS_MINIMAL else: return (board == Esp32Board.DevKitC) and (self != Esp32App.TESTS) def DefaultsFileName(board: Esp32Board, app: Esp32App, enable_rpcs: bool): + rpc_enabled_apps = [Esp32App.ALL_CLUSTERS, + Esp32App.ALL_CLUSTERS_MINIMAL, + Esp32App.OTA_REQUESTOR, + Esp32App.TEMPERATURE_MEASUREMENT] if app == Esp32App.TESTS: return 'sdkconfig_qemu.defaults' - elif app != Esp32App.ALL_CLUSTERS and app != Esp32App.TEMPERATURE_MEASUREMENT: + elif app not in rpc_enabled_apps: return 'sdkconfig.defaults' rpc = "_rpc" if enable_rpcs else "" diff --git a/scripts/build/builders/host.py b/scripts/build/builders/host.py index 44e1ed244008cb..3baf39e387e291 100644 --- a/scripts/build/builders/host.py +++ b/scripts/build/builders/host.py @@ -21,6 +21,7 @@ class HostApp(Enum): ALL_CLUSTERS = auto() + ALL_CLUSTERS_MINIMAL = auto() CHIP_TOOL = auto() CHIP_TOOL_DARWIN = auto() THERMOSTAT = auto() @@ -38,14 +39,18 @@ class HostApp(Enum): OTA_REQUESTOR = auto() PYTHON_BINDINGS = auto() NL_TEST_RUNNER = auto() + TV_CASTING = auto() + BRIDGE = auto() def ExamplePath(self): if self == HostApp.ALL_CLUSTERS: return 'all-clusters-app/linux' + elif self == HostApp.ALL_CLUSTERS_MINIMAL: + return 'all-clusters-minimal-app/linux' elif self == HostApp.CHIP_TOOL: return 'chip-tool' elif self == HostApp.CHIP_TOOL_DARWIN: - return 'chip-tool-darwin' + return 'darwin-framework-tool' elif self == HostApp.THERMOSTAT: return 'thermostat/linux' elif self == HostApp.RPC_CONSOLE: @@ -70,6 +75,10 @@ def ExamplePath(self): return '../' elif self == HostApp.NL_TEST_RUNNER: return '../src/test_driver/efr32' + elif self == HostApp.TV_CASTING: + return 'tv-casting-app/linux' + elif self == HostApp.BRIDGE: + return 'bridge-app/linux' else: raise Exception('Unknown app type: %r' % self) @@ -77,12 +86,15 @@ def OutputNames(self): if self == HostApp.ALL_CLUSTERS: yield 'chip-all-clusters-app' yield 'chip-all-clusters-app.map' + elif self == HostApp.ALL_CLUSTERS_MINIMAL: + yield 'chip-all-clusters-minimal-app' + yield 'chip-all-clusters-minimal-app.map' elif self == HostApp.CHIP_TOOL: yield 'chip-tool' yield 'chip-tool.map' elif self == HostApp.CHIP_TOOL_DARWIN: - yield 'chip-tool-darwin' - yield 'chip-tool-darwin.map' + yield 'darwin-framework-tool' + yield 'darwin-framework-tool.map' elif self == HostApp.THERMOSTAT: yield 'thermostat-app' yield 'thermostat-app.map' @@ -128,6 +140,12 @@ def OutputNames(self): yield 'controller/python' # Directory containing WHL files elif self == HostApp.NL_TEST_RUNNER: yield 'chip_nl_test_runner_wheels' + elif self == HostApp.TV_CASTING: + yield 'chip-tv-casting-app' + yield 'chip-tv-casting-app.map' + elif self == HostApp.BRIDGE: + yield 'chip-bridge-app' + yield 'chip-bridge-app.map' else: raise Exception('Unknown app type: %r' % self) diff --git a/scripts/build/builders/imx.py b/scripts/build/builders/imx.py index d920d32bb59e64..9118066f5d0d05 100644 --- a/scripts/build/builders/imx.py +++ b/scripts/build/builders/imx.py @@ -23,6 +23,7 @@ class IMXApp(Enum): LIGHT = auto() THERMOSTAT = auto() ALL_CLUSTERS = auto() + ALL_CLUSTERS_MINIMAL = auto() OTA_PROVIDER = auto() def ExamplePath(self): @@ -34,6 +35,8 @@ def ExamplePath(self): return 'thermostat/linux' if self == IMXApp.ALL_CLUSTERS: return 'all-clusters-app/linux' + if self == IMXApp.ALL_CLUSTERS_MINIMAL: + return 'all-clusters-minimal-app/linux' if self == IMXApp.OTA_PROVIDER: return 'ota-provider-app/linux' @@ -50,6 +53,9 @@ def OutputNames(self): if self == IMXApp.ALL_CLUSTERS: yield 'chip-all-clusters-app' yield 'chip-all-clusters-app.map' + if self == IMXApp.ALL_CLUSTERS_MINIMAL: + yield 'chip-all-clusters-minimal-app' + yield 'chip-all-clusters-minimal-app.map' if self == IMXApp.OTA_PROVIDER: yield 'chip-ota-provider-app' yield 'chip-ota-provider-app.map' diff --git a/scripts/build/builders/infineon.py b/scripts/build/builders/infineon.py index 3324525c6ae3a6..a46cec1a0fa44a 100644 --- a/scripts/build/builders/infineon.py +++ b/scripts/build/builders/infineon.py @@ -22,6 +22,7 @@ class InfineonApp(Enum): LOCK = auto() LIGHT = auto() ALL_CLUSTERS = auto() + ALL_CLUSTERS_MINIMAL = auto() def ExampleName(self): if self == InfineonApp.LOCK: @@ -30,6 +31,8 @@ def ExampleName(self): return 'lighting-app' elif self == InfineonApp.ALL_CLUSTERS: return 'all-clusters-app' + elif self == InfineonApp.ALL_CLUSTERS_MINIMAL: + return 'all-clusters-minimal-app' else: raise Exception('Unknown app type: %r' % self) @@ -40,6 +43,8 @@ def AppNamePrefix(self): return 'chip-p6-lighting-example' elif self == InfineonApp.ALL_CLUSTERS: return 'chip-p6-clusters-example' + elif self == InfineonApp.ALL_CLUSTERS_MINIMAL: + return 'chip-p6-clusters-minimal-example' else: raise Exception('Unknown app type: %r' % self) @@ -48,6 +53,8 @@ def FlashBundleName(self): return 'lock_app.flashbundle.txt' elif self == InfineonApp.ALL_CLUSTERS: return 'clusters_app.flashbundle.txt' + elif self == InfineonApp.ALL_CLUSTERS_MINIMAL: + return 'clusters_minimal_app.flashbundle.txt' elif self == InfineonApp.LIGHT: return 'lighting_app.flashbundle.txt' else: diff --git a/scripts/build/builders/mbed.py b/scripts/build/builders/mbed.py index cc1d999f71eec7..73fc802386207f 100644 --- a/scripts/build/builders/mbed.py +++ b/scripts/build/builders/mbed.py @@ -23,6 +23,7 @@ class MbedApp(Enum): LOCK = auto() LIGHT = auto() ALL_CLUSTERS = auto() + ALL_CLUSTERS_MINIMAL = auto() PIGWEED = auto() SHELL = auto() @@ -34,6 +35,8 @@ def ExampleName(self): return 'lighting-app' elif self == MbedApp.ALL_CLUSTERS: return 'all-clusters-app' + elif self == MbedApp.ALL_CLUSTERS_MINIMAL: + return 'all-clusters-minimal-app' elif self == MbedApp.PIGWEED: return 'pigweed-app' elif self == MbedApp.SHELL: @@ -49,6 +52,8 @@ def AppNamePrefix(self): return 'chip-mbed-lighting-app-example' elif self == MbedApp.ALL_CLUSTERS: return 'chip-mbed-all-clusters-app-example' + elif self == MbedApp.ALL_CLUSTERS_MINIMAL: + return 'chip-mbed-all-clusters-minimal-app-example' elif self == MbedApp.PIGWEED: return 'chip-mbed-pigweed-app-example' elif self == MbedApp.SHELL: diff --git a/scripts/build/builders/nrf.py b/scripts/build/builders/nrf.py index a5a05a2c58abe9..d6e92114cd2540 100644 --- a/scripts/build/builders/nrf.py +++ b/scripts/build/builders/nrf.py @@ -22,6 +22,7 @@ class NrfApp(Enum): ALL_CLUSTERS = auto() + ALL_CLUSTERS_MINIMAL = auto() LIGHT = auto() LOCK = auto() SHELL = auto() @@ -32,6 +33,8 @@ class NrfApp(Enum): def AppPath(self): if self == NrfApp.ALL_CLUSTERS: return 'examples/all-clusters-app' + elif self == NrfApp.ALL_CLUSTERS_MINIMAL: + return 'examples/all-clusters-minimal-app' elif self == NrfApp.LIGHT: return 'examples/lighting-app' elif self == NrfApp.LOCK: @@ -50,6 +53,8 @@ def AppPath(self): def AppNamePrefix(self): if self == NrfApp.ALL_CLUSTERS: return 'chip-nrf-all-clusters-example' + elif self == NrfApp.ALL_CLUSTERS_MINIMAL: + return 'chip-nrf-all-clusters-minimal-example' elif self == NrfApp.LIGHT: return 'chip-nrf-lighting-example' elif self == NrfApp.LOCK: @@ -68,6 +73,8 @@ def AppNamePrefix(self): def _FlashBundlePrefix(self): if self == NrfApp.ALL_CLUSTERS: return 'chip-nrfconnect-all-clusters-example' + elif self == NrfApp.ALL_CLUSTERS_MINIMAL: + return 'chip-nrfconnect-all-clusters-minimal-example' elif self == NrfApp.LIGHT: return 'chip-nrfconnect-lighting-example' elif self == NrfApp.LOCK: @@ -155,7 +162,7 @@ def generate(self): if self.enable_rpcs: flags.append("-DOVERLAY_CONFIG=rpc.overlay") - if self.board == NrfBoard.NRF52840DONGLE and self.app != NrfApp.ALL_CLUSTERS: + if self.board == NrfBoard.NRF52840DONGLE and self.app != NrfApp.ALL_CLUSTERS and self.app != NrfApp.ALL_CLUSTERS_MINIMAL: flags.append("-DCONF_FILE=prj_no_dfu.conf") build_flags = " -- " + " ".join(flags) if len(flags) > 0 else "" diff --git a/scripts/build/builders/tizen.py b/scripts/build/builders/tizen.py index efaf444a8568a4..29d6672ccc19d6 100644 --- a/scripts/build/builders/tizen.py +++ b/scripts/build/builders/tizen.py @@ -105,7 +105,7 @@ def GnBuildArgs(self): 'target_os="tizen"', 'target_cpu="%s"' % self.board.TargetCpuName(), 'tizen_sdk_root="%s"' % os.environ['TIZEN_SDK_ROOT'], - 'sysroot="%s"' % os.environ['TIZEN_SDK_SYSROOT'], + 'tizen_sdk_sysroot="%s"' % os.environ['TIZEN_SDK_SYSROOT'], ] def _generate_flashbundle(self): diff --git a/scripts/build/testdata/all_targets_except_host.txt b/scripts/build/testdata/all_targets_except_host.txt index 3c610bccc78734..77fa5aace8da74 100644 --- a/scripts/build/testdata/all_targets_except_host.txt +++ b/scripts/build/testdata/all_targets_except_host.txt @@ -1,4 +1,5 @@ ameba-amebad-all-clusters +ameba-amebad-all-clusters-minimal ameba-amebad-light ameba-amebad-pigweed android-androidstudio-arm-chip-tool @@ -18,6 +19,7 @@ android-x86-chip-tool android-x86-chip-tvserver bl602-light cc13x2x7_26x2x7-all-clusters +cc13x2x7_26x2x7-all-clusters-minimal cc13x2x7_26x2x7-lock-ftd cc13x2x7_26x2x7-lock-mtd cc13x2x7_26x2x7-pump @@ -140,21 +142,32 @@ efr32-brd4304a-unit-test-with-ota-requestor (NOGLOB: only user requested) efr32-brd4304a-window-covering (NOGLOB: only user requested) efr32-brd4304a-window-covering-with-ota-requestor (NOGLOB: only user requested) esp32-c3devkit-all-clusters +esp32-c3devkit-all-clusters-minimal esp32-devkitc-all-clusters esp32-devkitc-all-clusters-ipv6only +esp32-devkitc-all-clusters-minimal +esp32-devkitc-all-clusters-minimal-ipv6only esp32-devkitc-bridge esp32-devkitc-light esp32-devkitc-lock +esp32-devkitc-ota-requestor +esp32-devkitc-ota-requestor-rpc esp32-devkitc-shell esp32-devkitc-temperature-measurement esp32-devkitc-temperature-measurement-rpc esp32-m5stack-all-clusters esp32-m5stack-all-clusters-ipv6only +esp32-m5stack-all-clusters-minimal +esp32-m5stack-all-clusters-minimal-ipv6only +esp32-m5stack-all-clusters-minimal-rpc +esp32-m5stack-all-clusters-minimal-rpc-ipv6only esp32-m5stack-all-clusters-rpc esp32-m5stack-all-clusters-rpc-ipv6only esp32-qemu-tests imx-all-clusters-app imx-all-clusters-app-release +imx-all-clusters-minimal-app +imx-all-clusters-minimal-app-release imx-chip-tool imx-chip-tool-release imx-lighting-app @@ -164,6 +177,7 @@ imx-ota-provider-app-release imx-thermostat imx-thermostat-release infineon-p6-all-clusters +infineon-p6-all-clusters-minimal infineon-p6-light infineon-p6-lock k32w-light-ota-se (NOGLOB: Only on demand build) @@ -173,6 +187,9 @@ k32w-lock-release k32w-shell-release mbed-CY8CPROTO_062_4343W-all-clusters-debug (NOGLOB: Compile only for debugging purpose - https://os.mbed.com/docs/mbed-os/latest/program-setup/build-profiles-and-rules.html) mbed-CY8CPROTO_062_4343W-all-clusters-develop (NOGLOB: Compile only for debugging purpose - https://os.mbed.com/docs/mbed-os/latest/program-setup/build-profiles-and-rules.html) +mbed-CY8CPROTO_062_4343W-all-clusters-minimal-debug (NOGLOB: Compile only for debugging purpose - https://os.mbed.com/docs/mbed-os/latest/program-setup/build-profiles-and-rules.html) +mbed-CY8CPROTO_062_4343W-all-clusters-minimal-develop (NOGLOB: Compile only for debugging purpose - https://os.mbed.com/docs/mbed-os/latest/program-setup/build-profiles-and-rules.html) +mbed-CY8CPROTO_062_4343W-all-clusters-minimal-release mbed-CY8CPROTO_062_4343W-all-clusters-release mbed-CY8CPROTO_062_4343W-light-debug (NOGLOB: Compile only for debugging purpose - https://os.mbed.com/docs/mbed-os/latest/program-setup/build-profiles-and-rules.html) mbed-CY8CPROTO_062_4343W-light-develop (NOGLOB: Compile only for debugging purpose - https://os.mbed.com/docs/mbed-os/latest/program-setup/build-profiles-and-rules.html) @@ -188,6 +205,7 @@ mbed-CY8CPROTO_062_4343W-shell-develop (NOGLOB: Compile only for debugging purpo mbed-CY8CPROTO_062_4343W-shell-release nrf-native-posix-64-tests nrf-nrf52840dk-all-clusters +nrf-nrf52840dk-all-clusters-minimal nrf-nrf52840dk-light nrf-nrf52840dk-light-rpc nrf-nrf52840dk-lock @@ -195,8 +213,10 @@ nrf-nrf52840dk-pump nrf-nrf52840dk-pump-controller nrf-nrf52840dk-shell nrf-nrf52840dongle-all-clusters +nrf-nrf52840dongle-all-clusters-minimal nrf-nrf52840dongle-light nrf-nrf5340dk-all-clusters +nrf-nrf5340dk-all-clusters-minimal nrf-nrf5340dk-light nrf-nrf5340dk-light-rpc (NOGLOB: Compile failure due to pw_build args not forwarded to proto compiler. https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/66760) nrf-nrf5340dk-lock diff --git a/scripts/build/testdata/build_all_except_host.txt b/scripts/build/testdata/build_all_except_host.txt index 58651d5ab3a641..12ee5aa27f27f5 100644 --- a/scripts/build/testdata/build_all_except_host.txt +++ b/scripts/build/testdata/build_all_except_host.txt @@ -4,6 +4,9 @@ cd "{root}" # Generating ameba-amebad-all-clusters bash -c '$AMEBA_PATH/project/realtek_amebaD_va0_example/GCC-RELEASE/build.sh {root} ninja {out}/ameba-amebad-all-clusters all-clusters-app' +# Generating ameba-amebad-all-clusters-minimal +bash -c '$AMEBA_PATH/project/realtek_amebaD_va0_example/GCC-RELEASE/build.sh {root} ninja {out}/ameba-amebad-all-clusters-minimal all-clusters-minimal-app' + # Generating ameba-amebad-light bash -c '$AMEBA_PATH/project/realtek_amebaD_va0_example/GCC-RELEASE/build.sh {root} ninja {out}/ameba-amebad-light lighting-app' @@ -151,6 +154,9 @@ gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/exa # Generating cc13x2x7_26x2x7-all-clusters gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/cc13x2x7_26x2x7 '--args=ti_sysconfig_root="TEST_TI_SYSCONFIG_ROOT"' {out}/cc13x2x7_26x2x7-all-clusters +# Generating cc13x2x7_26x2x7-all-clusters-minimal +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/cc13x2x7_26x2x7 '--args=ti_sysconfig_root="TEST_TI_SYSCONFIG_ROOT"' {out}/cc13x2x7_26x2x7-all-clusters-minimal + # Generating cc13x2x7_26x2x7-lock-ftd gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/cc13x2x7_26x2x7 '--args=ti_sysconfig_root="TEST_TI_SYSCONFIG_ROOT" chip_openthread_ftd=true' {out}/cc13x2x7_26x2x7-lock-ftd @@ -525,6 +531,17 @@ bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; export SDKCONFIG_DEFAULTS={out}/esp32-c3devkit-all-clusters/sdkconfig.defaults idf.py -C examples/all-clusters-app/esp32 -B {out}/esp32-c3devkit-all-clusters reconfigure' +# Generating esp32-c3devkit-all-clusters-minimal +mkdir -p {out}/esp32-c3devkit-all-clusters-minimal + +cp examples/all-clusters-minimal-app/esp32/sdkconfig_c3devkit.defaults {out}/esp32-c3devkit-all-clusters-minimal/sdkconfig.defaults + +rm -f examples/all-clusters-minimal-app/esp32/sdkconfig + +bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; +export SDKCONFIG_DEFAULTS={out}/esp32-c3devkit-all-clusters-minimal/sdkconfig.defaults +idf.py -C examples/all-clusters-minimal-app/esp32 -B {out}/esp32-c3devkit-all-clusters-minimal reconfigure' + # Generating esp32-devkitc-all-clusters mkdir -p {out}/esp32-devkitc-all-clusters @@ -549,6 +566,30 @@ bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-all-clusters-ipv6only/sdkconfig.defaults idf.py -C examples/all-clusters-app/esp32 -B {out}/esp32-devkitc-all-clusters-ipv6only reconfigure' +# Generating esp32-devkitc-all-clusters-minimal +mkdir -p {out}/esp32-devkitc-all-clusters-minimal + +cp examples/all-clusters-minimal-app/esp32/sdkconfig.defaults {out}/esp32-devkitc-all-clusters-minimal/sdkconfig.defaults + +rm -f examples/all-clusters-minimal-app/esp32/sdkconfig + +bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; +export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-all-clusters-minimal/sdkconfig.defaults +idf.py -C examples/all-clusters-minimal-app/esp32 -B {out}/esp32-devkitc-all-clusters-minimal reconfigure' + +# Generating esp32-devkitc-all-clusters-minimal-ipv6only +mkdir -p {out}/esp32-devkitc-all-clusters-minimal-ipv6only + +cp examples/all-clusters-minimal-app/esp32/sdkconfig.defaults {out}/esp32-devkitc-all-clusters-minimal-ipv6only/sdkconfig.defaults + +rm -f examples/all-clusters-minimal-app/esp32/sdkconfig + +bash -c 'echo -e "\nCONFIG_DISABLE_IPV4=y\n" >>{out}/esp32-devkitc-all-clusters-minimal-ipv6only/sdkconfig.defaults' + +bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; +export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-all-clusters-minimal-ipv6only/sdkconfig.defaults +idf.py -C examples/all-clusters-minimal-app/esp32 -B {out}/esp32-devkitc-all-clusters-minimal-ipv6only reconfigure' + # Generating esp32-devkitc-bridge mkdir -p {out}/esp32-devkitc-bridge @@ -582,6 +623,28 @@ bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-lock/sdkconfig.defaults idf.py -C examples/lock-app/esp32 -B {out}/esp32-devkitc-lock reconfigure' +# Generating esp32-devkitc-ota-requestor +mkdir -p {out}/esp32-devkitc-ota-requestor + +cp examples/ota-requestor-app/esp32/sdkconfig.defaults {out}/esp32-devkitc-ota-requestor/sdkconfig.defaults + +rm -f examples/ota-requestor-app/esp32/sdkconfig + +bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; +export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-ota-requestor/sdkconfig.defaults +idf.py -C examples/ota-requestor-app/esp32 -B {out}/esp32-devkitc-ota-requestor reconfigure' + +# Generating esp32-devkitc-ota-requestor-rpc +mkdir -p {out}/esp32-devkitc-ota-requestor-rpc + +cp examples/ota-requestor-app/esp32/sdkconfig_rpc.defaults {out}/esp32-devkitc-ota-requestor-rpc/sdkconfig.defaults + +rm -f examples/ota-requestor-app/esp32/sdkconfig + +bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; +export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-ota-requestor-rpc/sdkconfig.defaults +idf.py -C examples/ota-requestor-app/esp32 -B {out}/esp32-devkitc-ota-requestor-rpc reconfigure' + # Generating esp32-devkitc-shell mkdir -p {out}/esp32-devkitc-shell @@ -639,6 +702,54 @@ bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; export SDKCONFIG_DEFAULTS={out}/esp32-m5stack-all-clusters-ipv6only/sdkconfig.defaults idf.py -C examples/all-clusters-app/esp32 -B {out}/esp32-m5stack-all-clusters-ipv6only reconfigure' +# Generating esp32-m5stack-all-clusters-minimal +mkdir -p {out}/esp32-m5stack-all-clusters-minimal + +cp examples/all-clusters-minimal-app/esp32/sdkconfig_m5stack.defaults {out}/esp32-m5stack-all-clusters-minimal/sdkconfig.defaults + +rm -f examples/all-clusters-minimal-app/esp32/sdkconfig + +bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; +export SDKCONFIG_DEFAULTS={out}/esp32-m5stack-all-clusters-minimal/sdkconfig.defaults +idf.py -C examples/all-clusters-minimal-app/esp32 -B {out}/esp32-m5stack-all-clusters-minimal reconfigure' + +# Generating esp32-m5stack-all-clusters-minimal-ipv6only +mkdir -p {out}/esp32-m5stack-all-clusters-minimal-ipv6only + +cp examples/all-clusters-minimal-app/esp32/sdkconfig_m5stack.defaults {out}/esp32-m5stack-all-clusters-minimal-ipv6only/sdkconfig.defaults + +rm -f examples/all-clusters-minimal-app/esp32/sdkconfig + +bash -c 'echo -e "\nCONFIG_DISABLE_IPV4=y\n" >>{out}/esp32-m5stack-all-clusters-minimal-ipv6only/sdkconfig.defaults' + +bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; +export SDKCONFIG_DEFAULTS={out}/esp32-m5stack-all-clusters-minimal-ipv6only/sdkconfig.defaults +idf.py -C examples/all-clusters-minimal-app/esp32 -B {out}/esp32-m5stack-all-clusters-minimal-ipv6only reconfigure' + +# Generating esp32-m5stack-all-clusters-minimal-rpc +mkdir -p {out}/esp32-m5stack-all-clusters-minimal-rpc + +cp examples/all-clusters-minimal-app/esp32/sdkconfig_m5stack_rpc.defaults {out}/esp32-m5stack-all-clusters-minimal-rpc/sdkconfig.defaults + +rm -f examples/all-clusters-minimal-app/esp32/sdkconfig + +bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; +export SDKCONFIG_DEFAULTS={out}/esp32-m5stack-all-clusters-minimal-rpc/sdkconfig.defaults +idf.py -C examples/all-clusters-minimal-app/esp32 -B {out}/esp32-m5stack-all-clusters-minimal-rpc reconfigure' + +# Generating esp32-m5stack-all-clusters-minimal-rpc-ipv6only +mkdir -p {out}/esp32-m5stack-all-clusters-minimal-rpc-ipv6only + +cp examples/all-clusters-minimal-app/esp32/sdkconfig_m5stack_rpc.defaults {out}/esp32-m5stack-all-clusters-minimal-rpc-ipv6only/sdkconfig.defaults + +rm -f examples/all-clusters-minimal-app/esp32/sdkconfig + +bash -c 'echo -e "\nCONFIG_DISABLE_IPV4=y\n" >>{out}/esp32-m5stack-all-clusters-minimal-rpc-ipv6only/sdkconfig.defaults' + +bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; +export SDKCONFIG_DEFAULTS={out}/esp32-m5stack-all-clusters-minimal-rpc-ipv6only/sdkconfig.defaults +idf.py -C examples/all-clusters-minimal-app/esp32 -B {out}/esp32-m5stack-all-clusters-minimal-rpc-ipv6only reconfigure' + # Generating esp32-m5stack-all-clusters-rpc mkdir -p {out}/esp32-m5stack-all-clusters-rpc @@ -684,6 +795,16 @@ bash -c ' PKG_CONFIG_PATH="IMX_SDK_ROOT/sysroots/cortexa53-crypto-poky-linux/lib/aarch64-linux-gnu/pkgconfig" \ gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/linux '"'"'--args=target_os="linux" target_cpu="arm64" arm_arch="armv8-a" import("//build_overrides/build.gni") custom_toolchain="${build_root}/toolchain/custom" sysroot="IMX_SDK_ROOT/sysroots/cortexa53-crypto-poky-linux" target_cflags=[ "-DCHIP_DEVICE_CONFIG_WIFI_STATION_IF_NAME=\"mlan0\"", "-DCHIP_DEVICE_CONFIG_LINUX_DHCPC_CMD=\"udhcpc -b -i %s \"" ] target_cc="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc" target_cxx="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-g++" target_ar="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-ar" is_debug=false'"'"' {out}/imx-all-clusters-app-release' +# Generating imx-all-clusters-minimal-app +bash -c ' +PKG_CONFIG_PATH="IMX_SDK_ROOT/sysroots/cortexa53-crypto-poky-linux/lib/aarch64-linux-gnu/pkgconfig" \ + gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/linux '"'"'--args=target_os="linux" target_cpu="arm64" arm_arch="armv8-a" import("//build_overrides/build.gni") custom_toolchain="${build_root}/toolchain/custom" sysroot="IMX_SDK_ROOT/sysroots/cortexa53-crypto-poky-linux" target_cflags=[ "-DCHIP_DEVICE_CONFIG_WIFI_STATION_IF_NAME=\"mlan0\"", "-DCHIP_DEVICE_CONFIG_LINUX_DHCPC_CMD=\"udhcpc -b -i %s \"" ] target_cc="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc" target_cxx="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-g++" target_ar="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-ar"'"'"' {out}/imx-all-clusters-minimal-app' + +# Generating imx-all-clusters-minimal-app-release +bash -c ' +PKG_CONFIG_PATH="IMX_SDK_ROOT/sysroots/cortexa53-crypto-poky-linux/lib/aarch64-linux-gnu/pkgconfig" \ + gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/linux '"'"'--args=target_os="linux" target_cpu="arm64" arm_arch="armv8-a" import("//build_overrides/build.gni") custom_toolchain="${build_root}/toolchain/custom" sysroot="IMX_SDK_ROOT/sysroots/cortexa53-crypto-poky-linux" target_cflags=[ "-DCHIP_DEVICE_CONFIG_WIFI_STATION_IF_NAME=\"mlan0\"", "-DCHIP_DEVICE_CONFIG_LINUX_DHCPC_CMD=\"udhcpc -b -i %s \"" ] target_cc="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc" target_cxx="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-g++" target_ar="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-ar" is_debug=false'"'"' {out}/imx-all-clusters-minimal-app-release' + # Generating imx-chip-tool bash -c ' PKG_CONFIG_PATH="IMX_SDK_ROOT/sysroots/cortexa53-crypto-poky-linux/lib/aarch64-linux-gnu/pkgconfig" \ @@ -727,6 +848,9 @@ PKG_CONFIG_PATH="IMX_SDK_ROOT/sysroots/cortexa53-crypto-poky-linux/lib/aarch64-l # Generating infineon-p6-all-clusters gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/p6 '--args=p6_board="CY8CKIT-062S2-43012"' {out}/infineon-p6-all-clusters +# Generating infineon-p6-all-clusters-minimal +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/p6 '--args=p6_board="CY8CKIT-062S2-43012"' {out}/infineon-p6-all-clusters-minimal + # Generating infineon-p6-light gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/p6 '--args=p6_board="CY8CKIT-062S2-43012"' {out}/infineon-p6-light @@ -770,6 +894,24 @@ mbed-tools configure -t GCC_ARM -m CY8CPROTO_062_4343W -p {root}/examples/all-cl # Generating mbed-CY8CPROTO_062_4343W-all-clusters-develop cmake -S {root}/examples/all-clusters-app/mbed -B {out}/mbed-CY8CPROTO_062_4343W-all-clusters-develop -GNinja -DCMAKE_BUILD_TYPE=develop -DMBED_OS_PATH={root}/third_party/mbed-os/repo -DMBED_OS_POSIX_SOCKET_PATH={root}/third_party/mbed-os-posix-socket/repo +# Generating config mbed-CY8CPROTO_062_4343W-all-clusters-minimal-debug +mbed-tools configure -t GCC_ARM -m CY8CPROTO_062_4343W -p {root}/examples/all-clusters-minimal-app/mbed -o {out}/mbed-CY8CPROTO_062_4343W-all-clusters-minimal-debug --mbed-os-path {root}/third_party/mbed-os/repo + +# Generating mbed-CY8CPROTO_062_4343W-all-clusters-minimal-debug +cmake -S {root}/examples/all-clusters-minimal-app/mbed -B {out}/mbed-CY8CPROTO_062_4343W-all-clusters-minimal-debug -GNinja -DCMAKE_BUILD_TYPE=debug -DMBED_OS_PATH={root}/third_party/mbed-os/repo -DMBED_OS_POSIX_SOCKET_PATH={root}/third_party/mbed-os-posix-socket/repo + +# Generating config mbed-CY8CPROTO_062_4343W-all-clusters-minimal-develop +mbed-tools configure -t GCC_ARM -m CY8CPROTO_062_4343W -p {root}/examples/all-clusters-minimal-app/mbed -o {out}/mbed-CY8CPROTO_062_4343W-all-clusters-minimal-develop --mbed-os-path {root}/third_party/mbed-os/repo + +# Generating mbed-CY8CPROTO_062_4343W-all-clusters-minimal-develop +cmake -S {root}/examples/all-clusters-minimal-app/mbed -B {out}/mbed-CY8CPROTO_062_4343W-all-clusters-minimal-develop -GNinja -DCMAKE_BUILD_TYPE=develop -DMBED_OS_PATH={root}/third_party/mbed-os/repo -DMBED_OS_POSIX_SOCKET_PATH={root}/third_party/mbed-os-posix-socket/repo + +# Generating config mbed-CY8CPROTO_062_4343W-all-clusters-minimal-release +mbed-tools configure -t GCC_ARM -m CY8CPROTO_062_4343W -p {root}/examples/all-clusters-minimal-app/mbed -o {out}/mbed-CY8CPROTO_062_4343W-all-clusters-minimal-release --mbed-os-path {root}/third_party/mbed-os/repo + +# Generating mbed-CY8CPROTO_062_4343W-all-clusters-minimal-release +cmake -S {root}/examples/all-clusters-minimal-app/mbed -B {out}/mbed-CY8CPROTO_062_4343W-all-clusters-minimal-release -GNinja -DCMAKE_BUILD_TYPE=release -DMBED_OS_PATH={root}/third_party/mbed-os/repo -DMBED_OS_POSIX_SOCKET_PATH={root}/third_party/mbed-os-posix-socket/repo + # Generating config mbed-CY8CPROTO_062_4343W-all-clusters-release mbed-tools configure -t GCC_ARM -m CY8CPROTO_062_4343W -p {root}/examples/all-clusters-app/mbed -o {out}/mbed-CY8CPROTO_062_4343W-all-clusters-release --mbed-os-path {root}/third_party/mbed-os/repo @@ -858,6 +1000,11 @@ bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR"; west build --cmake-only -d {out}/nrf-nrf52840dk-all-clusters -b nrf52840dk_nrf52840 {root}/examples/all-clusters-app/nrfconnect' +# Generating nrf-nrf52840dk-all-clusters-minimal +bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; +export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR"; +west build --cmake-only -d {out}/nrf-nrf52840dk-all-clusters-minimal -b nrf52840dk_nrf52840 {root}/examples/all-clusters-minimal-app/nrfconnect' + # Generating nrf-nrf52840dk-light bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR"; @@ -893,6 +1040,11 @@ bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR"; west build --cmake-only -d {out}/nrf-nrf52840dongle-all-clusters -b nrf52840dongle_nrf52840 {root}/examples/all-clusters-app/nrfconnect' +# Generating nrf-nrf52840dongle-all-clusters-minimal +bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; +export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR"; +west build --cmake-only -d {out}/nrf-nrf52840dongle-all-clusters-minimal -b nrf52840dongle_nrf52840 {root}/examples/all-clusters-minimal-app/nrfconnect' + # Generating nrf-nrf52840dongle-light bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR"; @@ -903,6 +1055,11 @@ bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR"; west build --cmake-only -d {out}/nrf-nrf5340dk-all-clusters -b nrf5340dk_nrf5340_cpuapp {root}/examples/all-clusters-app/nrfconnect' +# Generating nrf-nrf5340dk-all-clusters-minimal +bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; +export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR"; +west build --cmake-only -d {out}/nrf-nrf5340dk-all-clusters-minimal -b nrf5340dk_nrf5340_cpuapp {root}/examples/all-clusters-minimal-app/nrfconnect' + # Generating nrf-nrf5340dk-light bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR"; @@ -960,32 +1117,35 @@ source "$ZEPHYR_BASE/zephyr-env.sh"; west build --cmake-only -d {out}/telink-tlsr9518adk80d-light-switch -b tlsr9518adk80d {root}/examples/light-switch-app/telink' # Generating tizen-arm-light -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/tizen '--args=target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-light +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/tizen '--args=target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-light # Generating tizen-arm-light-asan -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/tizen '--args=is_asan=true target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-light-asan +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/tizen '--args=is_asan=true target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-light-asan # Generating tizen-arm-light-no-ble -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/tizen '--args=chip_config_network_layer_ble=false target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-light-no-ble +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/tizen '--args=chip_config_network_layer_ble=false target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-light-no-ble # Generating tizen-arm-light-no-ble-asan -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/tizen '--args=chip_config_network_layer_ble=false is_asan=true target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-light-no-ble-asan +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/tizen '--args=chip_config_network_layer_ble=false is_asan=true target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-light-no-ble-asan # Generating tizen-arm-light-no-ble-no-wifi -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/tizen '--args=chip_config_network_layer_ble=false chip_enable_wifi=false target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-light-no-ble-no-wifi +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/tizen '--args=chip_config_network_layer_ble=false chip_enable_wifi=false target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-light-no-ble-no-wifi # Generating tizen-arm-light-no-ble-no-wifi-asan -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/tizen '--args=chip_config_network_layer_ble=false chip_enable_wifi=false is_asan=true target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-light-no-ble-no-wifi-asan +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/tizen '--args=chip_config_network_layer_ble=false chip_enable_wifi=false is_asan=true target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-light-no-ble-no-wifi-asan # Generating tizen-arm-light-no-wifi -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/tizen '--args=chip_enable_wifi=false target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-light-no-wifi +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/tizen '--args=chip_enable_wifi=false target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-light-no-wifi # Generating tizen-arm-light-no-wifi-asan -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/tizen '--args=chip_enable_wifi=false is_asan=true target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-light-no-wifi-asan +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/tizen '--args=chip_enable_wifi=false is_asan=true target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-light-no-wifi-asan # Building ameba-amebad-all-clusters ninja -C {out}/ameba-amebad-all-clusters +# Building ameba-amebad-all-clusters-minimal +ninja -C {out}/ameba-amebad-all-clusters-minimal + # Building ameba-amebad-light ninja -C {out}/ameba-amebad-light @@ -1257,6 +1417,9 @@ ninja -C {out}/bl602-light # Building cc13x2x7_26x2x7-all-clusters ninja -C {out}/cc13x2x7_26x2x7-all-clusters +# Building cc13x2x7_26x2x7-all-clusters-minimal +ninja -C {out}/cc13x2x7_26x2x7-all-clusters-minimal + # Building cc13x2x7_26x2x7-lock-ftd ninja -C {out}/cc13x2x7_26x2x7-lock-ftd @@ -1627,6 +1790,13 @@ bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; export SDKCONFIG_DEFAULTS={out}/esp32-c3devkit-all-clusters/sdkconfig.defaults idf.py -C examples/all-clusters-app/esp32 -B {out}/esp32-c3devkit-all-clusters build' +rm -f examples/all-clusters-minimal-app/esp32/sdkconfig + +# Building esp32-c3devkit-all-clusters-minimal +bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; +export SDKCONFIG_DEFAULTS={out}/esp32-c3devkit-all-clusters-minimal/sdkconfig.defaults +idf.py -C examples/all-clusters-minimal-app/esp32 -B {out}/esp32-c3devkit-all-clusters-minimal build' + rm -f examples/all-clusters-app/esp32/sdkconfig # Building esp32-devkitc-all-clusters @@ -1641,6 +1811,20 @@ bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-all-clusters-ipv6only/sdkconfig.defaults idf.py -C examples/all-clusters-app/esp32 -B {out}/esp32-devkitc-all-clusters-ipv6only build' +rm -f examples/all-clusters-minimal-app/esp32/sdkconfig + +# Building esp32-devkitc-all-clusters-minimal +bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; +export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-all-clusters-minimal/sdkconfig.defaults +idf.py -C examples/all-clusters-minimal-app/esp32 -B {out}/esp32-devkitc-all-clusters-minimal build' + +rm -f examples/all-clusters-minimal-app/esp32/sdkconfig + +# Building esp32-devkitc-all-clusters-minimal-ipv6only +bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; +export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-all-clusters-minimal-ipv6only/sdkconfig.defaults +idf.py -C examples/all-clusters-minimal-app/esp32 -B {out}/esp32-devkitc-all-clusters-minimal-ipv6only build' + rm -f examples/bridge-app/esp32/sdkconfig # Building esp32-devkitc-bridge @@ -1662,6 +1846,20 @@ bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-lock/sdkconfig.defaults idf.py -C examples/lock-app/esp32 -B {out}/esp32-devkitc-lock build' +rm -f examples/ota-requestor-app/esp32/sdkconfig + +# Building esp32-devkitc-ota-requestor +bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; +export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-ota-requestor/sdkconfig.defaults +idf.py -C examples/ota-requestor-app/esp32 -B {out}/esp32-devkitc-ota-requestor build' + +rm -f examples/ota-requestor-app/esp32/sdkconfig + +# Building esp32-devkitc-ota-requestor-rpc +bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; +export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-ota-requestor-rpc/sdkconfig.defaults +idf.py -C examples/ota-requestor-app/esp32 -B {out}/esp32-devkitc-ota-requestor-rpc build' + rm -f examples/shell/esp32/sdkconfig # Building esp32-devkitc-shell @@ -1697,6 +1895,34 @@ bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; export SDKCONFIG_DEFAULTS={out}/esp32-m5stack-all-clusters-ipv6only/sdkconfig.defaults idf.py -C examples/all-clusters-app/esp32 -B {out}/esp32-m5stack-all-clusters-ipv6only build' +rm -f examples/all-clusters-minimal-app/esp32/sdkconfig + +# Building esp32-m5stack-all-clusters-minimal +bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; +export SDKCONFIG_DEFAULTS={out}/esp32-m5stack-all-clusters-minimal/sdkconfig.defaults +idf.py -C examples/all-clusters-minimal-app/esp32 -B {out}/esp32-m5stack-all-clusters-minimal build' + +rm -f examples/all-clusters-minimal-app/esp32/sdkconfig + +# Building esp32-m5stack-all-clusters-minimal-ipv6only +bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; +export SDKCONFIG_DEFAULTS={out}/esp32-m5stack-all-clusters-minimal-ipv6only/sdkconfig.defaults +idf.py -C examples/all-clusters-minimal-app/esp32 -B {out}/esp32-m5stack-all-clusters-minimal-ipv6only build' + +rm -f examples/all-clusters-minimal-app/esp32/sdkconfig + +# Building esp32-m5stack-all-clusters-minimal-rpc +bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; +export SDKCONFIG_DEFAULTS={out}/esp32-m5stack-all-clusters-minimal-rpc/sdkconfig.defaults +idf.py -C examples/all-clusters-minimal-app/esp32 -B {out}/esp32-m5stack-all-clusters-minimal-rpc build' + +rm -f examples/all-clusters-minimal-app/esp32/sdkconfig + +# Building esp32-m5stack-all-clusters-minimal-rpc-ipv6only +bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; +export SDKCONFIG_DEFAULTS={out}/esp32-m5stack-all-clusters-minimal-rpc-ipv6only/sdkconfig.defaults +idf.py -C examples/all-clusters-minimal-app/esp32 -B {out}/esp32-m5stack-all-clusters-minimal-rpc-ipv6only build' + rm -f examples/all-clusters-app/esp32/sdkconfig # Building esp32-m5stack-all-clusters-rpc @@ -1724,6 +1950,12 @@ ninja -C {out}/imx-all-clusters-app # Building imx-all-clusters-app-release ninja -C {out}/imx-all-clusters-app-release +# Building imx-all-clusters-minimal-app +ninja -C {out}/imx-all-clusters-minimal-app + +# Building imx-all-clusters-minimal-app-release +ninja -C {out}/imx-all-clusters-minimal-app-release + # Building imx-chip-tool ninja -C {out}/imx-chip-tool @@ -1751,6 +1983,9 @@ ninja -C {out}/imx-thermostat-release # Building infineon-p6-all-clusters ninja -C {out}/infineon-p6-all-clusters +# Building infineon-p6-all-clusters-minimal +ninja -C {out}/infineon-p6-all-clusters-minimal + # Building infineon-p6-light ninja -C {out}/infineon-p6-light @@ -1784,6 +2019,24 @@ bash -c 'rm -rf {out}/mbed-CY8CPROTO_062_4343W-all-clusters-develop/chip-*' # Building mbed-CY8CPROTO_062_4343W-all-clusters-develop cmake --build {out}/mbed-CY8CPROTO_062_4343W-all-clusters-develop +# Remove old artifacts mbed-CY8CPROTO_062_4343W-all-clusters-minimal-debug +bash -c 'rm -rf {out}/mbed-CY8CPROTO_062_4343W-all-clusters-minimal-debug/chip-*' + +# Building mbed-CY8CPROTO_062_4343W-all-clusters-minimal-debug +cmake --build {out}/mbed-CY8CPROTO_062_4343W-all-clusters-minimal-debug + +# Remove old artifacts mbed-CY8CPROTO_062_4343W-all-clusters-minimal-develop +bash -c 'rm -rf {out}/mbed-CY8CPROTO_062_4343W-all-clusters-minimal-develop/chip-*' + +# Building mbed-CY8CPROTO_062_4343W-all-clusters-minimal-develop +cmake --build {out}/mbed-CY8CPROTO_062_4343W-all-clusters-minimal-develop + +# Remove old artifacts mbed-CY8CPROTO_062_4343W-all-clusters-minimal-release +bash -c 'rm -rf {out}/mbed-CY8CPROTO_062_4343W-all-clusters-minimal-release/chip-*' + +# Building mbed-CY8CPROTO_062_4343W-all-clusters-minimal-release +cmake --build {out}/mbed-CY8CPROTO_062_4343W-all-clusters-minimal-release + # Remove old artifacts mbed-CY8CPROTO_062_4343W-all-clusters-release bash -c 'rm -rf {out}/mbed-CY8CPROTO_062_4343W-all-clusters-release/chip-*' @@ -1871,6 +2124,9 @@ ctest --build-nocmake -V --output-on-failure --test-dir {out}/nrf-native-posix-6 # Building nrf-nrf52840dk-all-clusters ninja -C {out}/nrf-nrf52840dk-all-clusters +# Building nrf-nrf52840dk-all-clusters-minimal +ninja -C {out}/nrf-nrf52840dk-all-clusters-minimal + # Building nrf-nrf52840dk-light ninja -C {out}/nrf-nrf52840dk-light @@ -1892,12 +2148,18 @@ ninja -C {out}/nrf-nrf52840dk-shell # Building nrf-nrf52840dongle-all-clusters ninja -C {out}/nrf-nrf52840dongle-all-clusters +# Building nrf-nrf52840dongle-all-clusters-minimal +ninja -C {out}/nrf-nrf52840dongle-all-clusters-minimal + # Building nrf-nrf52840dongle-light ninja -C {out}/nrf-nrf52840dongle-light # Building nrf-nrf5340dk-all-clusters ninja -C {out}/nrf-nrf5340dk-all-clusters +# Building nrf-nrf5340dk-all-clusters-minimal +ninja -C {out}/nrf-nrf5340dk-all-clusters-minimal + # Building nrf-nrf5340dk-light ninja -C {out}/nrf-nrf5340dk-light diff --git a/scripts/build/testdata/build_linux_on_x64.txt b/scripts/build/testdata/build_linux_on_x64.txt index 1c78a75b1f434d..b59e03b064805d 100644 --- a/scripts/build/testdata/build_linux_on_x64.txt +++ b/scripts/build/testdata/build_linux_on_x64.txt @@ -11,6 +11,26 @@ bash -c ' PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/linux '"'"'--args=chip_inet_config_enable_ipv4=false target_cpu="arm64" is_clang=true chip_crypto="mbedtls" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-all-clusters-ipv6only' +# Generating linux-arm64-all-clusters-minimal +bash -c ' +PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ + gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/linux '"'"'--args=target_cpu="arm64" is_clang=true chip_crypto="mbedtls" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-all-clusters-minimal' + +# Generating linux-arm64-all-clusters-minimal-ipv6only +bash -c ' +PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ + gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/linux '"'"'--args=chip_inet_config_enable_ipv4=false target_cpu="arm64" is_clang=true chip_crypto="mbedtls" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-all-clusters-minimal-ipv6only' + +# Generating linux-arm64-bridge +bash -c ' +PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ + gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/bridge-app/linux '"'"'--args=target_cpu="arm64" is_clang=true chip_crypto="mbedtls" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-bridge' + +# Generating linux-arm64-bridge-ipv6only +bash -c ' +PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ + gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/bridge-app/linux '"'"'--args=chip_inet_config_enable_ipv4=false target_cpu="arm64" is_clang=true chip_crypto="mbedtls" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-bridge-ipv6only' + # Generating linux-arm64-chip-tool-no-interactive-ipv6only bash -c ' PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ @@ -91,6 +111,26 @@ bash -c ' PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/thermostat/linux '"'"'--args=chip_inet_config_enable_ipv4=false target_cpu="arm64" is_clang=true chip_crypto="mbedtls" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-thermostat-ipv6only' +# Generating linux-arm64-tv-app +bash -c ' +PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ + gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/tv-app/linux '"'"'--args=target_cpu="arm64" is_clang=true chip_crypto="mbedtls" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-tv-app' + +# Generating linux-arm64-tv-app-ipv6only +bash -c ' +PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ + gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/tv-app/linux '"'"'--args=chip_inet_config_enable_ipv4=false target_cpu="arm64" is_clang=true chip_crypto="mbedtls" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-tv-app-ipv6only' + +# Generating linux-arm64-tv-casting-app +bash -c ' +PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ + gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/tv-casting-app/linux '"'"'--args=target_cpu="arm64" is_clang=true chip_crypto="mbedtls" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-tv-casting-app' + +# Generating linux-arm64-tv-casting-app-ipv6only +bash -c ' +PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ + gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/tv-casting-app/linux '"'"'--args=chip_inet_config_enable_ipv4=false target_cpu="arm64" is_clang=true chip_crypto="mbedtls" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-tv-casting-app-ipv6only' + # Generating linux-fake-tests gn gen --check --fail-on-unused-args --export-compile-commands --root={root} '--args=chip_build_tests=true custom_toolchain="//build/toolchain/fake:fake_x64_gcc" chip_link_tests=true chip_device_platform="fake"' {out}/linux-fake-tests @@ -103,6 +143,18 @@ gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/exa # Generating linux-x64-all-clusters-ipv6only gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/linux --args=chip_inet_config_enable_ipv4=false {out}/linux-x64-all-clusters-ipv6only +# Generating linux-x64-all-clusters-minimal +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/linux {out}/linux-x64-all-clusters-minimal + +# Generating linux-x64-all-clusters-minimal-ipv6only +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/linux --args=chip_inet_config_enable_ipv4=false {out}/linux-x64-all-clusters-minimal-ipv6only + +# Generating linux-x64-bridge +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/bridge-app/linux {out}/linux-x64-bridge + +# Generating linux-x64-bridge-ipv6only +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/bridge-app/linux --args=chip_inet_config_enable_ipv4=false {out}/linux-x64-bridge-ipv6only + # Generating linux-x64-chip-cert gn gen --check --fail-on-unused-args --export-compile-commands --root={root} '--args=chip_crypto="openssl"' {out}/linux-x64-chip-cert @@ -187,6 +239,18 @@ ninja -C {out}/linux-arm64-all-clusters # Building linux-arm64-all-clusters-ipv6only ninja -C {out}/linux-arm64-all-clusters-ipv6only +# Building linux-arm64-all-clusters-minimal +ninja -C {out}/linux-arm64-all-clusters-minimal + +# Building linux-arm64-all-clusters-minimal-ipv6only +ninja -C {out}/linux-arm64-all-clusters-minimal-ipv6only + +# Building linux-arm64-bridge +ninja -C {out}/linux-arm64-bridge + +# Building linux-arm64-bridge-ipv6only +ninja -C {out}/linux-arm64-bridge-ipv6only + # Building linux-arm64-chip-tool-no-interactive-ipv6only ninja -C {out}/linux-arm64-chip-tool-no-interactive-ipv6only @@ -235,6 +299,18 @@ ninja -C {out}/linux-arm64-thermostat # Building linux-arm64-thermostat-ipv6only ninja -C {out}/linux-arm64-thermostat-ipv6only +# Building linux-arm64-tv-app +ninja -C {out}/linux-arm64-tv-app + +# Building linux-arm64-tv-app-ipv6only +ninja -C {out}/linux-arm64-tv-app-ipv6only + +# Building linux-arm64-tv-casting-app +ninja -C {out}/linux-arm64-tv-casting-app + +# Building linux-arm64-tv-casting-app-ipv6only +ninja -C {out}/linux-arm64-tv-casting-app-ipv6only + # Building linux-fake-tests ninja -C {out}/linux-fake-tests check @@ -247,6 +323,18 @@ ninja -C {out}/linux-x64-all-clusters # Building linux-x64-all-clusters-ipv6only ninja -C {out}/linux-x64-all-clusters-ipv6only +# Building linux-x64-all-clusters-minimal +ninja -C {out}/linux-x64-all-clusters-minimal + +# Building linux-x64-all-clusters-minimal-ipv6only +ninja -C {out}/linux-x64-all-clusters-minimal-ipv6only + +# Building linux-x64-bridge +ninja -C {out}/linux-x64-bridge + +# Building linux-x64-bridge-ipv6only +ninja -C {out}/linux-x64-bridge-ipv6only + # Building linux-x64-chip-cert ninja -C {out}/linux-x64-chip-cert src/tools/chip-cert diff --git a/scripts/build/testdata/glob_star_targets_except_host.txt b/scripts/build/testdata/glob_star_targets_except_host.txt index e64fd1576b1e61..ea0ca162443490 100644 --- a/scripts/build/testdata/glob_star_targets_except_host.txt +++ b/scripts/build/testdata/glob_star_targets_except_host.txt @@ -1,4 +1,5 @@ ameba-amebad-all-clusters +ameba-amebad-all-clusters-minimal ameba-amebad-light ameba-amebad-pigweed android-androidstudio-arm-chip-tool @@ -18,6 +19,7 @@ android-x86-chip-tool android-x86-chip-tvserver bl602-light cc13x2x7_26x2x7-all-clusters +cc13x2x7_26x2x7-all-clusters-minimal cc13x2x7_26x2x7-lock-ftd cc13x2x7_26x2x7-lock-mtd cc13x2x7_26x2x7-pump @@ -34,21 +36,32 @@ efr32-brd4161a-switch efr32-brd4161a-unit-test efr32-brd4161a-window-covering esp32-c3devkit-all-clusters +esp32-c3devkit-all-clusters-minimal esp32-devkitc-all-clusters esp32-devkitc-all-clusters-ipv6only +esp32-devkitc-all-clusters-minimal +esp32-devkitc-all-clusters-minimal-ipv6only esp32-devkitc-bridge esp32-devkitc-light esp32-devkitc-lock +esp32-devkitc-ota-requestor +esp32-devkitc-ota-requestor-rpc esp32-devkitc-shell esp32-devkitc-temperature-measurement esp32-devkitc-temperature-measurement-rpc esp32-m5stack-all-clusters esp32-m5stack-all-clusters-ipv6only +esp32-m5stack-all-clusters-minimal +esp32-m5stack-all-clusters-minimal-ipv6only +esp32-m5stack-all-clusters-minimal-rpc +esp32-m5stack-all-clusters-minimal-rpc-ipv6only esp32-m5stack-all-clusters-rpc esp32-m5stack-all-clusters-rpc-ipv6only esp32-qemu-tests imx-all-clusters-app imx-all-clusters-app-release +imx-all-clusters-minimal-app +imx-all-clusters-minimal-app-release imx-chip-tool imx-chip-tool-release imx-lighting-app @@ -58,11 +71,13 @@ imx-ota-provider-app-release imx-thermostat imx-thermostat-release infineon-p6-all-clusters +infineon-p6-all-clusters-minimal infineon-p6-light infineon-p6-lock k32w-light-release-no-ota k32w-lock-release k32w-shell-release +mbed-CY8CPROTO_062_4343W-all-clusters-minimal-release mbed-CY8CPROTO_062_4343W-all-clusters-release mbed-CY8CPROTO_062_4343W-light-release mbed-CY8CPROTO_062_4343W-lock-release @@ -70,6 +85,7 @@ mbed-CY8CPROTO_062_4343W-pigweed-release mbed-CY8CPROTO_062_4343W-shell-release nrf-native-posix-64-tests nrf-nrf52840dk-all-clusters +nrf-nrf52840dk-all-clusters-minimal nrf-nrf52840dk-light nrf-nrf52840dk-light-rpc nrf-nrf52840dk-lock @@ -77,8 +93,10 @@ nrf-nrf52840dk-pump nrf-nrf52840dk-pump-controller nrf-nrf52840dk-shell nrf-nrf52840dongle-all-clusters +nrf-nrf52840dongle-all-clusters-minimal nrf-nrf52840dongle-light nrf-nrf5340dk-all-clusters +nrf-nrf5340dk-all-clusters-minimal nrf-nrf5340dk-light nrf-nrf5340dk-lock nrf-nrf5340dk-pump diff --git a/scripts/examples/gn_efr32_example.sh b/scripts/examples/gn_efr32_example.sh index 5b59d796aa3bb0..1c5d3567f9d097 100755 --- a/scripts/examples/gn_efr32_example.sh +++ b/scripts/examples/gn_efr32_example.sh @@ -19,12 +19,21 @@ # Build script for GN EFT32 examples GitHub workflow. set -e -source "$(dirname "$0")/../../scripts/activate.sh" + +if [[ -z "${MATTER_ROOT}" ]]; then + echo "Using default path for Matter root" + CHIP_ROOT="$(dirname "$0")/../.." +else + echo "Using ENV path for Matter root" + CHIP_ROOT="$MATTER_ROOT" +fi + +source "$CHIP_ROOT/scripts/activate.sh" set -x env USE_WIFI=false -CHIP_ROOT="$(dirname "$0")/../.." + USAGE="./scripts/examples/gn_efr32_example.sh []" if [ "$#" == "0" ]; then @@ -128,6 +137,10 @@ else optArgs+="enable_sleepy_device=true chip_openthread_ftd=false " shift ;; + --chip_disable_wifi_ipv4) + optArgs+="chip_disable_wifi_ipv4=true " + shift + ;; *) if [ "$1" =~ *"use_rs911x=true"* ] || [ "$1" =~ *"use_wf200=true"* ]; then USE_WIFI=true diff --git a/scripts/examples/mbed_example.sh b/scripts/examples/mbed_example.sh index c7d6f0adfd19bc..e2120b6bfda17f 100755 --- a/scripts/examples/mbed_example.sh +++ b/scripts/examples/mbed_example.sh @@ -21,7 +21,7 @@ CHIP_ROOT=$PWD SUPPORTED_TOOLCHAIN=(GCC_ARM ARM) SUPPORTED_TARGET_BOARD=(CY8CPROTO_062_4343W) -SUPPORTED_APP=(lock-app lighting-app pigweed-app all-clusters-app shell ota-requestor-app) +SUPPORTED_APP=(lock-app lighting-app pigweed-app all-clusters-app all-clusters-minimal-app shell ota-requestor-app) SUPPORTED_PROFILES=(release develop debug) SUPPORTED_COMMAND=(build flash build-flash) SUPPORTED_TYPE=(simple boot upgrade) diff --git a/scripts/helpers/update_compile_commands.sh b/scripts/helpers/update_compile_commands.sh index 0c07af40ac6c5c..15b03c1799a0d7 100755 --- a/scripts/helpers/update_compile_commands.sh +++ b/scripts/helpers/update_compile_commands.sh @@ -40,3 +40,6 @@ mv "$CHIP_ROOT/out/debug/compile_commands.json" "$CHIP_ROOT/out/debug/compile_co gn --root="$CHIP_ROOT" gen "$CHIP_ROOT/out/debug" --export-compile-commands=efr32_lock_app mv "$CHIP_ROOT/out/debug/compile_commands.json" "$CHIP_ROOT/out/debug/compile_commands.efr32.json" + +gn --root="$CHIP_ROOT" gen "$CHIP_ROOT/out/debug" --export-compile-commands=tizen_lighting_app +mv "$CHIP_ROOT/out/debug/compile_commands.json" "$CHIP_ROOT/out/debug/compile_commands.tizen_arm.json" diff --git a/scripts/idl/BUILD.gn b/scripts/idl/BUILD.gn index 16393d939c59e8..d17697ffb40f1b 100644 --- a/scripts/idl/BUILD.gn +++ b/scripts/idl/BUILD.gn @@ -32,12 +32,15 @@ pw_python_package("idl") { "tests/available_tests.yaml", "tests/inputs/cluster_struct_attribute.matter", "tests/inputs/global_struct_attribute.matter", + "tests/inputs/optional_argument.matter", "tests/inputs/several_clusters.matter", "tests/inputs/simple_attribute.matter", "tests/outputs/cluster_struct_attribute/jni/DemoClusterClient-ReadImpl.cpp", "tests/outputs/cluster_struct_attribute/jni/DemoClusterClient-InvokeSubscribeImpl.cpp", "tests/outputs/global_struct_attribute/jni/DemoClusterClient-ReadImpl.cpp", "tests/outputs/global_struct_attribute/jni/DemoClusterClient-InvokeSubscribeImpl.cpp", + "tests/outputs/optional_argument/jni/MyClusterClient-ReadImpl.cpp", + "tests/outputs/optional_argument/jni/MyClusterClient-InvokeSubscribeImpl.cpp", "tests/outputs/several_clusters/jni/FirstClient-ReadImpl.cpp", "tests/outputs/several_clusters/jni/SecondClient-ReadImpl.cpp", "tests/outputs/several_clusters/jni/ThirdClient-ReadImpl.cpp", diff --git a/scripts/idl/generators/java/ChipClustersCpp.jinja b/scripts/idl/generators/java/ChipClustersCpp.jinja index 22c8bb7f0b91fa..d32f20c9f40c4d 100644 --- a/scripts/idl/generators/java/ChipClustersCpp.jinja +++ b/scripts/idl/generators/java/ChipClustersCpp.jinja @@ -1,14 +1,16 @@ {%- macro encode_optional(target, source, depth, encodable) -%} - if ({{source}} != nullptr) { - jobject optionalValue_{{depth}}; + { + jobject optionalValue_{{depth}} = nullptr; chip::JniReferences::GetInstance().GetOptionalValue({{source}}, optionalValue_{{depth}}); - auto & definedValue_{{depth}} = {{target}}.Emplace(); - {{ encode_value( - "definedValue_{}".format(depth), - "optionalValue_{}".format(depth), - depth+1, - encodable.without_optional() - )}} + if (optionalValue_{{depth}}) { + auto & definedValue_{{depth}} = {{target}}.Emplace(); + {{ encode_value( + "definedValue_{}".format(depth), + "optionalValue_{}".format(depth), + depth+1, + encodable.without_optional() + )}} + } } {%- endmacro %} diff --git a/scripts/idl/lint/__init__.py b/scripts/idl/lint/__init__.py new file mode 100644 index 00000000000000..503bdf4086f77e --- /dev/null +++ b/scripts/idl/lint/__init__.py @@ -0,0 +1,15 @@ +# Copyright (c) 2022 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. + +from .lint_rules_parser import CreateParser diff --git a/scripts/idl/lint/lint_rules_grammar.lark b/scripts/idl/lint/lint_rules_grammar.lark new file mode 100644 index 00000000000000..55a0b61a32994c --- /dev/null +++ b/scripts/idl/lint/lint_rules_grammar.lark @@ -0,0 +1,32 @@ +start: instruction* + +instruction: load_xml|all_endpoint_rule|specific_endpoint_rule + +load_xml: "load" ESCAPED_STRING ";" + +all_endpoint_rule: "all" "endpoints" "{" required_global_attribute* "}" + +specific_endpoint_rule: "endpoint" integer "{" required_server_cluster* "}" + +required_global_attribute: "require" "global" "attribute" id "=" integer ";" + +required_server_cluster: "require" "server" "cluster" (id|POSITIVE_INTEGER|HEX_INTEGER) ";" + +integer: positive_integer | negative_integer + +positive_integer: POSITIVE_INTEGER | HEX_INTEGER +negative_integer: "-" positive_integer + +id: ID + +POSITIVE_INTEGER: /\d+/ +HEX_INTEGER: /0x[A-Fa-f0-9]+/ +ID: /[a-zA-Z_][a-zA-Z0-9_]*/ + +%import common.ESCAPED_STRING +%import common.WS +%import common.C_COMMENT +%import common.CPP_COMMENT +%ignore WS +%ignore C_COMMENT +%ignore CPP_COMMENT diff --git a/scripts/idl/lint/lint_rules_parser.py b/scripts/idl/lint/lint_rules_parser.py new file mode 100755 index 00000000000000..9af6b8c0f05724 --- /dev/null +++ b/scripts/idl/lint/lint_rules_parser.py @@ -0,0 +1,309 @@ +#!/usr/bin/env python + +import logging +import os +import xml.etree.ElementTree + +from dataclasses import dataclass, field +from typing import List, Optional, Mapping +from lark import Lark +from lark.visitors import Transformer, v_args, Discard +import stringcase +import traceback + +try: + from .types import RequiredAttributesRule, AttributeRequirement, ClusterRequirement, RequiredCommandsRule, ClusterCommandRequirement +except: + import sys + + sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)), "..", "..")) + from idl.lint.types import RequiredAttributesRule, AttributeRequirement, ClusterRequirement, RequiredCommandsRule, ClusterCommandRequirement + + +def parseNumberString(n): + if n.startswith('0x'): + return int(n[2:], 16) + else: + return int(n) + + +@dataclass +class RequiredAttribute: + name: str + code: int + + +@dataclass +class RequiredCommand: + name: str + code: int + + +@dataclass +class DecodedCluster: + name: str + code: int + required_attributes: List[RequiredAttribute] + required_commands: List[RequiredCommand] + + +def DecodeClusterFromXml(element: xml.etree.ElementTree.Element): + if element.tag != 'cluster': + logging.error("Not a cluster element: %r" % element) + return None + + # cluster elements contain among other children + # - name (general name for this cluster) + # - code (unique identifier, may be hex or numeric) + # - attribute with side, code and optional attributes + + try: + name = element.find('name').text.replace(' ', '') + required_attributes = [] + required_commands = [] + + for attr in element.findall('attribute'): + if attr.attrib['side'] != 'server': + continue + + if 'optional' in attr.attrib and attr.attrib['optional'] == 'true': + continue + + # when introducing access controls, the content of attributes may either be: + # myName + # or + # myName... + attr_name = attr.text + if attr.find('description') is not None: + attr_name = attr.find('description').text + + required_attributes.append( + RequiredAttribute( + name=attr_name, + code=parseNumberString(attr.attrib['code']) + )) + + for cmd in element.findall('command'): + if cmd.attrib['source'] != 'client': + continue + + if 'optional' in cmd.attrib and cmd.attrib['optional'] == 'true': + continue + + required_commands.append(RequiredCommand(name=cmd.attrib["name"], code=parseNumberString(cmd.attrib['code']))) + + return DecodedCluster( + name=name, + code=parseNumberString(element.find('code').text), + required_attributes=required_attributes, + required_commands=required_commands + ) + except Exception as e: + logging.exception("Failed to decode cluster %r" % element) + return None + + +def ClustersInXmlFile(path: str): + logging.info("Loading XML from %s" % path) + + # root is expected to be just a "configurator" object + configurator = xml.etree.ElementTree.parse(path).getroot() + for child in configurator: + if child.tag != 'cluster': + continue + yield child + + +class LintRulesContext: + """Represents a context for loadint lint rules. + + Handles: + - loading referenced files (matter xml definitions) + - adding linter rules as data is parsed + - Looking up identifiers for various rules + """ + + def __init__(self): + self._required_attributes_rule = RequiredAttributesRule("Required attributes") + self._required_commands_rule = RequiredCommandsRule("Required commands") + + # Map cluster names to the underlying code + self._cluster_codes: Mapping[str, int] = {} + + def GetLinterRules(self): + return [self._required_attributes_rule, self._required_commands_rule] + + def RequireAttribute(self, r: AttributeRequirement): + self._required_attributes_rule.RequireAttribute(r) + + def RequireClusterInEndpoint(self, name: str, code: int): + """Mark that a specific cluster is always required in the given endpoint + """ + if name not in self._cluster_codes: + # Name may be a number. If this can be parsed as a number, accept it anyway + try: + cluster_code = parseNumberString(name) + name = "ID_%s" % name + except ValueError: + logging.error("UNKNOWN cluster name %s" % name) + logging.error("Known names: %s" % (",".join(self._cluster_codes.keys()), )) + return + else: + cluster_code = self._cluster_codes[name] + + self._required_attributes_rule.RequireClusterInEndpoint(ClusterRequirement( + endpoint_id=code, + cluster_code=cluster_code, + cluster_name=name, + )) + + def LoadXml(self, path: str): + """Load XML data from the given path and add it to + internal processing. Adds attribute requirement rules + as needed. + """ + for cluster in ClustersInXmlFile(path): + decoded = DecodeClusterFromXml(cluster) + + if not decoded: + continue + + self._cluster_codes[decoded.name] = decoded.code + + for attr in decoded.required_attributes: + self._required_attributes_rule.RequireAttribute(AttributeRequirement( + code=attr.code, name=attr.name, filter_cluster=decoded.code)) + + for cmd in decoded.required_commands: + self._required_commands_rule.RequireCommand( + ClusterCommandRequirement( + cluster_code=decoded.code, + command_code=cmd.code, + command_name=cmd.name + )) + + +class LintRulesTransformer(Transformer): + """ + A transformer capable to transform data parsed by Lark according to + lint_rules_grammar.lark. + """ + + def __init__(self, file_name: str): + self.context = LintRulesContext() + self.file_name = file_name + + def positive_integer(self, tokens): + """Numbers in the grammar are integers or hex numbers. + """ + if len(tokens) != 1: + raise Error("Unexpected argument counts") + + return parseNumberString(tokens[0].value) + + @v_args(inline=True) + def negative_integer(self, value): + return -value + + @v_args(inline=True) + def integer(self, value): + return value + + def id(self, tokens): + """An id is a string containing an identifier + """ + if len(tokens) != 1: + raise Error("Unexpected argument counts") + return tokens[0].value + + def ESCAPED_STRING(self, s): + # handle escapes, skip the start and end quotes + return s.value[1:-1].encode('utf-8').decode('unicode-escape') + + def start(self, instructions): + # At this point processing is considered done, return all + # linter rules that were found + return self.context.GetLinterRules() + + def instruction(self, instruction): + return Discard + + def all_endpoint_rule(self, attributes): + for attribute in attributes: + self.context.RequireAttribute(attribute) + + return Discard + + @v_args(inline=True) + def load_xml(self, path): + if not os.path.isabs(path): + path = os.path.abspath(os.path.join(os.path.dirname(self.file_name), path)) + + self.context.LoadXml(path) + + @v_args(inline=True) + def required_global_attribute(self, name, code): + return AttributeRequirement(code=code, name=name) + + @v_args(inline=True) + def specific_endpoint_rule(self, code, *names): + for name in names: + self.context.RequireClusterInEndpoint(name, code) + return Discard + + @v_args(inline=True) + def required_server_cluster(self, id): + return id + + +class Parser: + def __init__(self, parser, file_name: str): + self.parser = parser + self.file_name = file_name + + def parse(self): + data = LintRulesTransformer(self.file_name).transform(self.parser.parse(open(self.file_name, "rt").read())) + return data + + +def CreateParser(file_name: str): + """ + Generates a parser that will process a ".matter" file into a IDL + """ + return Parser(Lark.open('lint_rules_grammar.lark', rel_to=__file__, parser='lalr', propagate_positions=True), file_name=file_name) + + +if __name__ == '__main__': + # This Parser is generally not intended to be run as a stand-alone binary. + # The ability to run is for debug and to print out the parsed AST. + import click + import coloredlogs + + # Supported log levels, mapping string values required for argument + # parsing into logging constants + __LOG_LEVELS__ = { + 'debug': logging.DEBUG, + 'info': logging.INFO, + 'warn': logging.WARN, + 'fatal': logging.FATAL, + } + + @click.command() + @click.option( + '--log-level', + default='INFO', + type=click.Choice(__LOG_LEVELS__.keys(), case_sensitive=False), + help='Determines the verbosity of script output.') + @click.argument('filename') + def main(log_level, filename=None): + coloredlogs.install(level=__LOG_LEVELS__[ + log_level], fmt='%(asctime)s %(levelname)-7s %(message)s') + + logging.info("Starting to parse ...") + data = CreateParser(filename).parse() + logging.info("Parse completed") + + logging.info("Data:") + logging.info("%r" % data) + + main() diff --git a/scripts/idl/lint/types.py b/scripts/idl/lint/types.py new file mode 100644 index 00000000000000..85dfbdeacd0bc3 --- /dev/null +++ b/scripts/idl/lint/types.py @@ -0,0 +1,259 @@ +# Copyright (c) 2022 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. + +from idl.matter_idl_types import Idl, ParseMetaData, ClusterSide +from abc import ABC, abstractmethod +from typing import List, Optional +from dataclasses import dataclass, field + + +@dataclass +class LocationInFile: + file_name: str + line: int + column: int + + def __init__(self, file_name: str, meta: ParseMetaData): + self.file_name = file_name + self.line = meta.line + self.column = meta.column + + +@dataclass +class LintError: + """Represents a lint error, potentially at a specific location in a file""" + + message: str + location: Optional[LocationInFile] = field(default=None) + + def __init__(self, text: str, location: Optional[LocationInFile] = None): + self.message = text + if location: + self.message += " at %s:%d:%d" % (location.file_name, location.line, location.column) + + def __str__(self): + return self.message + + +class LintRule(ABC): + """Validates a linter rule on an idl""" + + def __init__(self, name): + self.name = name + + @abstractmethod + def LintIdl(self, idl: Idl) -> List[LintError]: + """Runs the linter on the given IDL and returns back any errors it may find""" + pass + + +@dataclass +class AttributeRequirement: + """Contains information about a required attribute""" + code: int # required attributes are searched by codes + name: str # the name of this attribute. Expect it to be exposed properly + + # Optional filters to apply to specific locations + filter_cluster: Optional[int] = field(default=None) + + +@dataclass +class ClusterRequirement: + endpoint_id: int + cluster_code: int + cluster_name: str + + +class ErrorAccumulatingRule(LintRule): + """Contains a lint error list and helps helpers to add to such a list of rules.""" + + def __init__(self, name): + super(ErrorAccumulatingRule, self).__init__(name) + self._lint_errors = [] + self._idl = None + + def _AddLintError(self, text, location): + self._lint_errors.append(LintError("%s: %s" % (self.name, text), location)) + + def _ParseLocation(self, meta: Optional[ParseMetaData]) -> Optional[LocationInFile]: + """Create a location in the current file that is being parsed. """ + if not meta or not self._idl.parse_file_name: + return None + return LocationInFile(self._idl.parse_file_name, meta) + + def LintIdl(self, idl: Idl) -> List[LintError]: + self._idl = idl + self._lint_errors = [] + self._LintImpl() + return self._lint_errors + + @abstractmethod + def _LintImpl(self): + """Implements actual linting of the IDL. + + Uses the underlying _idl for validation. + """ + pass + + +class RequiredAttributesRule(ErrorAccumulatingRule): + def __init__(self, name): + super(RequiredAttributesRule, self).__init__(name) + # Map attribute code to name + self._mandatory_attributes: List[AttributeRequirement] = [] + self._mandatory_clusters: List[ClusterRequirement] = [] + + def __repr__(self): + result = "RequiredAttributesRule{\n" + + if self._mandatory_attributes: + result += " mandatory_attributes:\n" + for attr in self._mandatory_attributes: + result += " - %r\n" % attr + + if self._mandatory_clusters: + result += " mandatory_clusters:\n" + for cluster in self._mandatory_clusters: + result += " - %r\n" % cluster + + result += "}" + return result + + def RequireAttribute(self, attr: AttributeRequirement): + """Mark an attribute required""" + self._mandatory_attributes.append(attr) + + def RequireClusterInEndpoint(self, requirement: ClusterRequirement): + self._mandatory_clusters.append(requirement) + + def _ServerClusterDefinition(self, name: str, location: Optional[LocationInFile]): + """Finds the server cluster definition with the given name. + + On error returns None and _lint_errors is updated internlly + """ + cluster_definition = [ + c for c in self._idl.clusters if c.name == name and c.side == ClusterSide.SERVER + ] + if not cluster_definition: + self._AddLintError("Cluster definition for %s not found" % cluster.name, location) + return None + + if len(cluster_definition) > 1: + self._AddLintError("Multiple cluster definitions found for %s" % cluster.name, location) + return None + + return cluster_definition[0] + + def _LintImpl(self): + for endpoint in self._idl.endpoints: + + cluster_codes = set() + + for cluster in endpoint.server_clusters: + cluster_definition = self._ServerClusterDefinition(cluster.name, self._ParseLocation(cluster.parse_meta)) + if not cluster_definition: + continue + + cluster_codes.add(cluster_definition.code) + + # Cluster contains enabled attributes by name + # cluster_definition contains the definition of the attributes themseves + # + # Join the two to receive attribute codes + name_to_code_map = {} + for attr in cluster_definition.attributes: + name_to_code_map[attr.definition.name] = attr.definition.code + + attribute_codes = set() + # For all the instantiated attributes, figure out their code + for attr in cluster.attributes: + if attr.name not in name_to_code_map: + self._AddLintError("Could not find attribute defintion (no code) for %s:%s" % + (cluster.name, attr.name), self._ParseLocation(cluster.parse_meta)) + continue + + attribute_codes.add(name_to_code_map[attr.name]) + + # Linting codes now + for check in self._mandatory_attributes: + if check.filter_cluster is not None and check.filter_cluster != cluster_definition.code: + continue + + if check.code not in attribute_codes: + self._AddLintError("EP%d:%s does not expose %s(%d) attribute" % + (endpoint.number, cluster.name, check.name, check.code), self._ParseLocation(cluster.parse_meta)) + + for requirement in self._mandatory_clusters: + if requirement.endpoint_id != endpoint.number: + continue + + if requirement.cluster_code not in cluster_codes: + self._AddLintError("Endpoint %d does not expose cluster %s (%d)" % + (requirement.endpoint_id, requirement.cluster_name, requirement.cluster_code), location=None) + + +@dataclass +class ClusterCommandRequirement: + cluster_code: int + command_code: int + command_name: str + + +class RequiredCommandsRule(ErrorAccumulatingRule): + def __init__(self, name): + super(RequiredCommandsRule, self).__init__(name) + + # Maps cluster id to mandatory cluster requirement + self._mandatory_commands: Maping[int, List[ClusterCommandRequirement]] = {} + + def __repr__(self): + result = "RequiredCommandsRule{\n" + + if self._mandatory_commands: + result += " mandatory_commands:\n" + for key, value in self._mandatory_commands.items(): + result += " - cluster %d:\n" % key + for requirement in value: + result += " - %r\n" % requirement + + result += "}" + return result + + def RequireCommand(self, cmd: ClusterCommandRequirement): + """Mark a command required""" + + if cmd.cluster_code in self._mandatory_commands: + self._mandatory_commands[cmd.cluster_code].append(cmd) + else: + self._mandatory_commands[cmd.cluster_code] = [cmd] + + def _LintImpl(self): + for cluster in self._idl.clusters: + if cluster.side != ClusterSide.SERVER: + continue # only validate server-side: + + if cluster.code not in self._mandatory_commands: + continue # no known mandatory commands + + defined_commands = set([c.code for c in cluster.commands]) + + for requirement in self._mandatory_commands[cluster.code]: + if requirement.command_code in defined_commands: + continue # command exists + + self._AddLintError( + "Cluster %s does not define mandatory command %s(%d)" % ( + cluster.name, requirement.command_name, requirement.command_code), + self._ParseLocation(cluster.parse_meta) + ) diff --git a/scripts/idl/matter_grammar.lark b/scripts/idl/matter_grammar.lark index 41db12546dc59a..3a31d6df0ece60 100644 --- a/scripts/idl/matter_grammar.lark +++ b/scripts/idl/matter_grammar.lark @@ -49,9 +49,10 @@ cluster: cluster_side "cluster"i id "=" positive_integer "{" (enum|bitmap|event| ?cluster_side: "server"i -> server_cluster | "client"i -> client_cluster -endpoint: "endpoint"i positive_integer "{" endpoint_cluster* "}" -?endpoint_cluster: endpoint_cluster_binding | endpoint_server_cluster +endpoint: "endpoint"i positive_integer "{" endpoint_content* "}" +?endpoint_content: endpoint_cluster_binding | endpoint_server_cluster | endpoint_device_type +endpoint_device_type: "device" "type" id "=" positive_integer ";" endpoint_cluster_binding: "binding"i "cluster"i id ";" endpoint_server_cluster: "server"i "cluster"i id "{" endpoint_attribute_instantiation* "}" diff --git a/scripts/idl/matter_idl_parser.py b/scripts/idl/matter_idl_parser.py index 3531c94495de2c..89c73d76966dd8 100755 --- a/scripts/idl/matter_idl_parser.py +++ b/scripts/idl/matter_idl_parser.py @@ -39,6 +39,18 @@ def apply(self, endpoint): endpoint.client_bindings.append(self.name) +class AddDeviceTypeToEndpointTransform: + """Provides an 'apply' method that can be run on endpoints + to add a device type to it + """ + + def __init__(self, device_type: DeviceType): + self.device_type = device_type + + def apply(self, endpoint): + endpoint.device_types.append(self.device_type) + + class MatterIdlTransformer(Transformer): """ A transformer capable to transform data parsed by Lark according to @@ -62,9 +74,11 @@ class MatterIdlTransformer(Transformer): Actual parametes to the methods depend on the rules multiplicity and/or optionality. - """ + def __init__(self, skip_meta): + self.skip_meta = skip_meta + def positive_integer(self, tokens): """Numbers in the grammar are integers or hex numbers. """ @@ -268,9 +282,10 @@ def persist_attribute(self, _): def callback_attribute(self, _): return AttributeStorage.CALLBACK - @v_args(inline=True) - def endpoint_attribute_instantiation(self, storage, id, default=None): - return AttributeInstantiation(name=id, storage=storage, default=default) + @v_args(meta=True, inline=True) + def endpoint_attribute_instantiation(self, meta, storage, id, default=None): + meta = None if self.skip_meta else ParseMetaData(meta) + return AttributeInstantiation(parse_meta=meta, name=id, storage=storage, default=default) def ESCAPED_STRING(self, s): # handle escapes, skip the start and end quotes @@ -311,17 +326,24 @@ def endpoint(self, number, *transforms): return endpoint + @v_args(inline=True) + def endpoint_device_type(self, name, code): + return AddDeviceTypeToEndpointTransform(DeviceType(name=name, code=code)) + @v_args(inline=True) def endpoint_cluster_binding(self, id): return AddBindingToEndpointTransform(id) - @v_args(inline=True) - def endpoint_server_cluster(self, id, *attributes): - return AddServerClusterToEndpointTransform(ServerClusterInstantiation(name=id, attributes=list(attributes))) + @v_args(meta=True, inline=True) + def endpoint_server_cluster(self, meta, id, *attributes): + meta = None if self.skip_meta else ParseMetaData(meta) + return AddServerClusterToEndpointTransform(ServerClusterInstantiation(parse_meta=meta, name=id, attributes=list(attributes))) - @v_args(inline=True) - def cluster(self, side, name, code, *content): - result = Cluster(side=side, name=name, code=code) + @v_args(inline=True, meta=True) + def cluster(self, meta, side, name, code, *content): + meta = None if self.skip_meta else ParseMetaData(meta) + + result = Cluster(parse_meta=meta, side=side, name=name, code=code) for item in content: if type(item) == Enum: @@ -359,11 +381,22 @@ def idl(self, items): return idl -def CreateParser(): +class ParserWithLines: + def __init__(self, parser, skip_meta: bool): + self.parser = parser + self.skip_meta = skip_meta + + def parse(self, file, file_name: str = None): + idl = MatterIdlTransformer(self.skip_meta).transform(self.parser.parse(file)) + idl.parse_file_name = file_name + return idl + + +def CreateParser(skip_meta: bool = False): """ Generates a parser that will process a ".matter" file into a IDL """ - return Lark.open('matter_grammar.lark', rel_to=__file__, start='idl', parser='lalr', transformer=MatterIdlTransformer()) + return ParserWithLines(Lark.open('matter_grammar.lark', rel_to=__file__, start='idl', parser='lalr', propagate_positions=True), skip_meta) if __name__ == '__main__': @@ -394,7 +427,7 @@ def main(log_level, filename=None): log_level], fmt='%(asctime)s %(levelname)-7s %(message)s') logging.info("Starting to parse ...") - data = CreateParser().parse(open(filename).read()) + data = CreateParser().parse(open(filename).read(), file_name=filename) logging.info("Parse completed") logging.info("Data:") diff --git a/scripts/idl/matter_idl_types.py b/scripts/idl/matter_idl_types.py index f56bd5e225f1e8..b2d0e1cfda71d1 100644 --- a/scripts/idl/matter_idl_types.py +++ b/scripts/idl/matter_idl_types.py @@ -1,9 +1,26 @@ import enum +from lark.tree import Meta from dataclasses import dataclass, field from typing import List, Set, Optional, Union +# Information about parsing location for specific items +# Helpful when referencing data items in logs when processing +@dataclass +class ParseMetaData: + line: int + column: int + + def __init__(self, meta: Meta = None, line: int = None, column: int = None): + if meta: + self.line = meta.line + self.column = meta.column + else: + self.line = line + self.column = column + + class FieldAttribute(enum.Enum): OPTIONAL = enum.auto() NULLABLE = enum.auto() @@ -167,6 +184,9 @@ class Cluster: structs: List[Struct] = field(default_factory=list) commands: List[Command] = field(default_factory=list) + # Parsing meta data missing only when skip meta data is requested + parse_meta: Optional[ParseMetaData] = field(default=None) + @dataclass class AttributeInstantiation: @@ -174,16 +194,29 @@ class AttributeInstantiation: storage: AttributeStorage default: Optional[Union[str, int, bool]] = None + # Parsing meta data missing only when skip meta data is requested + parse_meta: Optional[ParseMetaData] = field(default=None) + @dataclass class ServerClusterInstantiation: name: str attributes: List[AttributeInstantiation] = field(default_factory=list) + # Parsing meta data missing only when skip meta data is requested + parse_meta: Optional[ParseMetaData] = field(default=None) + + +@dataclass +class DeviceType: + name: str + code: int + @dataclass class Endpoint: number: int + device_types: List[DeviceType] = field(default_factory=list) server_clusters: List[ServerClusterInstantiation] = field(default_factory=list) client_bindings: List[str] = field(default_factory=list) @@ -195,3 +228,6 @@ class Idl: structs: List[Struct] = field(default_factory=list) clusters: List[Cluster] = field(default_factory=list) endpoints: List[Endpoint] = field(default_factory=list) + + # IDL file name is available only if parsing provides a file name + parse_file_name: Optional[str] = field(default=None) diff --git a/scripts/idl/test_matter_idl_parser.py b/scripts/idl/test_matter_idl_parser.py index 273da932ae8c4f..90cfa4da46c6ee 100755 --- a/scripts/idl/test_matter_idl_parser.py +++ b/scripts/idl/test_matter_idl_parser.py @@ -29,7 +29,7 @@ def parseText(txt): - return CreateParser().parse(txt) + return CreateParser(skip_meta=True).parse(txt) class TestParser(unittest.TestCase): @@ -342,6 +342,20 @@ def test_cluster_event_acl(self): ])]) self.assertEqual(actual, expected) + def test_parsing_metadata_for_cluster(self): + actual = CreateParser(skip_meta=False).parse(""" +server cluster A = 1 { /* Test comment */ } + +// some empty lines and then indented + client cluster B = 2 { } + """) + + expected = Idl(clusters=[ + Cluster(parse_meta=ParseMetaData(line=2, column=1), side=ClusterSide.SERVER, name="A", code=1), + Cluster(parse_meta=ParseMetaData(line=5, column=4), side=ClusterSide.CLIENT, name="B", code=2), + ]) + self.assertEqual(actual, expected) + def test_multiple_clusters(self): actual = parseText(""" server cluster A = 1 { /* Test comment */ } @@ -359,6 +373,9 @@ def test_multiple_clusters(self): def test_endpoints(self): actual = parseText(""" endpoint 12 { + device type foo = 123; + device type bar = 0xFF; + server cluster Foo { } server cluster Bar { } binding cluster Bar; @@ -367,6 +384,10 @@ def test_endpoints(self): """) expected = Idl(endpoints=[Endpoint(number=12, + device_types=[ + DeviceType(name="foo", code=123), + DeviceType(name="bar", code=0xFF), + ], server_clusters=[ ServerClusterInstantiation(name="Foo"), ServerClusterInstantiation(name="Bar"), diff --git a/scripts/idl/tests/available_tests.yaml b/scripts/idl/tests/available_tests.yaml index e0a6c39dc5b88e..107eb0ad4fb42a 100644 --- a/scripts/idl/tests/available_tests.yaml +++ b/scripts/idl/tests/available_tests.yaml @@ -30,3 +30,7 @@ java: jni/FirstClient-InvokeSubscribeImpl.cpp: outputs/several_clusters/jni/FirstClient-InvokeSubscribeImpl.cpp jni/SecondClient-InvokeSubscribeImpl.cpp: outputs/several_clusters/jni/SecondClient-InvokeSubscribeImpl.cpp jni/ThirdClient-InvokeSubscribeImpl.cpp: outputs/several_clusters/jni/ThirdClient-InvokeSubscribeImpl.cpp + + inputs/optional_argument.matter: + jni/MyClusterClient-ReadImpl.cpp: outputs/optional_argument/jni/MyClusterClient-ReadImpl.cpp + jni/MyClusterClient-InvokeSubscribeImpl.cpp: outputs/optional_argument/jni/MyClusterClient-InvokeSubscribeImpl.cpp diff --git a/scripts/idl/tests/inputs/optional_argument.matter b/scripts/idl/tests/inputs/optional_argument.matter new file mode 100644 index 00000000000000..2b14f9a5987b7c --- /dev/null +++ b/scripts/idl/tests/inputs/optional_argument.matter @@ -0,0 +1,7 @@ +client cluster MyCluster = 1 { + request struct FooRequest { + optional OCTET_STRING argument = 0; + } + + command Foo(FooRequest): DefaultSuccess = 0; +} \ No newline at end of file diff --git a/scripts/idl/tests/outputs/optional_argument/jni/MyClusterClient-InvokeSubscribeImpl.cpp b/scripts/idl/tests/outputs/optional_argument/jni/MyClusterClient-InvokeSubscribeImpl.cpp new file mode 100644 index 00000000000000..7c63c12f242f00 --- /dev/null +++ b/scripts/idl/tests/outputs/optional_argument/jni/MyClusterClient-InvokeSubscribeImpl.cpp @@ -0,0 +1,79 @@ +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define JNI_METHOD(RETURN, CLASS_NAME, METHOD_NAME) \ + extern "C" JNIEXPORT RETURN JNICALL Java_chip_devicecontroller_ChipClusters_00024##CLASS_NAME##_##METHOD_NAME + +using namespace chip; +using namespace chip::Controller; + +JNI_METHOD(jlong, MyClusterCluster, initWithDevice)(JNIEnv * env, jobject self, jlong devicePtr, jint endpointId) +{ + chip::DeviceLayer::StackLock lock; + MyClusterCluster * cppCluster = new MyClusterCluster(); + + cppCluster->Associate(reinterpret_cast(devicePtr), endpointId); + return reinterpret_cast(cppCluster); +} + +JNI_METHOD(void, MyClusterCluster, + foo)(JNIEnv * env, jobject self, jlong clusterPtr, jobject callback,jobject argument,jobject timedInvokeTimeoutMs) +{ + chip::DeviceLayer::StackLock lock; + CHIP_ERROR err = CHIP_NO_ERROR; + MyClusterCluster * cppCluster; + + ListFreer listFreer; + chip::app::Clusters::MyCluster::Commands::Foo::Type request; + + std::vector> cleanupByteArrays; + std::vector> cleanupStrings;{ + jobject optionalValue_0 = nullptr; + chip::JniReferences::GetInstance().GetOptionalValue(argument, optionalValue_0); + if (optionalValue_0) { + auto & definedValue_0 = request.argument.Emplace(); + cleanupByteArrays.push_back(chip::Platform::MakeUnique(env, static_cast(optionalValue_0))); + definedValue_0 = cleanupByteArrays.back()->byteSpan(); + } + } + + + std::unique_ptr onSuccess( + Platform::New(callback), Platform::Delete); + std::unique_ptr onFailure(Platform::New(callback), Platform::Delete); + VerifyOrReturn(onSuccess.get() != nullptr, AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error creating native callback", CHIP_ERROR_NO_MEMORY)); + VerifyOrReturn(onFailure.get() != nullptr, AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error creating native callback", CHIP_ERROR_NO_MEMORY)); + + cppCluster = reinterpret_cast(clusterPtr); + VerifyOrReturn(cppCluster != nullptr, AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error getting native cluster", CHIP_ERROR_INCORRECT_STATE)); + + auto successFn = chip::Callback::Callback::FromCancelable(onSuccess->Cancel()); + auto failureFn = chip::Callback::Callback::FromCancelable(onFailure->Cancel()); + + if (timedInvokeTimeoutMs == nullptr) { + err = cppCluster->InvokeCommand(request, onSuccess->mContext, successFn->mCall, failureFn->mCall); + } else { + err = cppCluster->InvokeCommand(request, onSuccess->mContext, successFn->mCall, failureFn->mCall, chip::JniReferences::GetInstance().IntegerToPrimitive(timedInvokeTimeoutMs)); + } + VerifyOrReturn(err == CHIP_NO_ERROR, AndroidClusterExceptions::GetInstance().ReturnIllegalStateException(env, callback, "Error invoking command", CHIP_ERROR_INCORRECT_STATE)); + + onSuccess.release(); + onFailure.release(); +} diff --git a/scripts/idl/tests/outputs/optional_argument/jni/MyClusterClient-ReadImpl.cpp b/scripts/idl/tests/outputs/optional_argument/jni/MyClusterClient-ReadImpl.cpp new file mode 100644 index 00000000000000..6293b92540a107 --- /dev/null +++ b/scripts/idl/tests/outputs/optional_argument/jni/MyClusterClient-ReadImpl.cpp @@ -0,0 +1,14 @@ + +#include + +#include +#include + +#include +#include +#include +#include +#include + +#define JNI_METHOD(RETURN, CLASS_NAME, METHOD_NAME) \ + extern "C" JNIEXPORT RETURN JNICALL Java_chip_devicecontroller_ChipClusters_00024##CLASS_NAME##_##METHOD_NAME \ No newline at end of file diff --git a/scripts/idl_lint.py b/scripts/idl_lint.py new file mode 100755 index 00000000000000..01b8413d8c9fd6 --- /dev/null +++ b/scripts/idl_lint.py @@ -0,0 +1,89 @@ +#!/usr/bin/env python +# Copyright (c) 2022 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. + +import click +import coloredlogs +import enum +import logging +import os +import sys + +from typing import List, Optional + +try: + from idl import matter_idl_parser +except: + sys.path.append(os.path.abspath(os.path.dirname(__file__))) + from idl import matter_idl_parser + +import idl.lint + +# Supported log levels, mapping string values required for argument +# parsing into logging constants +__LOG_LEVELS__ = { + "debug": logging.DEBUG, + "info": logging.INFO, + "warn": logging.WARN, + "fatal": logging.FATAL, +} + + +@click.command() +@click.option( + "--log-level", + default="INFO", + type=click.Choice(__LOG_LEVELS__.keys(), case_sensitive=False), + help="Determines the verbosity of script output", +) +@click.option( + "--rules", + default=os.path.abspath(os.path.join(os.path.dirname(__file__), "rules.matterlint")), + type=click.Path(exists=True), + help="Rules file to use", +) +@click.argument("idl_path", type=click.Path(exists=True)) +def main(log_level, rules, idl_path): + """ + Lints MATTER IDL files (.matter) using given RULES + """ + coloredlogs.install( + level=__LOG_LEVELS__[log_level], fmt="%(asctime)s %(levelname)-7s %(message)s" + ) + + lint_rules = [] + logging.info("Loading rules from %s" % rules) + lint_rules.extend(idl.lint.CreateParser(rules).parse()) + + logging.info("Parsing idl from %s" % idl_path) + idl_tree = matter_idl_parser.CreateParser().parse(open(idl_path, "rt").read(), file_name=idl_path) + + logging.info("Running %d lint rules" % len(lint_rules)) + + errors = [] + for rule in lint_rules: + logging.info(" Running %s" % rule.name) + errors.extend(rule.LintIdl(idl_tree)) + logging.info("Done") + + for e in errors: + logging.error("ERROR: %s" % e) + + if errors: + logging.error("Found %d lint errors" % len(errors)) + sys.exit(1) + + +if __name__ == "__main__": + main() diff --git a/scripts/rules.matterlint b/scripts/rules.matterlint new file mode 100644 index 00000000000000..3c93551496148f --- /dev/null +++ b/scripts/rules.matterlint @@ -0,0 +1,103 @@ +// These are global .matter idl linter rules +// First load data from XML definitions + +load "../src/app/zap-templates/zcl/data-model/chip/access-control-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/access-control-definitions.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/account-login-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/administrator-commissioning-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/application-basic-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/application-launcher-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/audio-output-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/basic-information-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/binding-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/boolean-state-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/bridged-actions-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/bridged-device-basic.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/channel-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/chip-ota.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/chip-types.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/clusters-extensions.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/content-launch-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/descriptor-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/diagnostic-logs-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/door-lock-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/ethernet-network-diagnostics-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/fixed-label-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/flow-measurement-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/general-commissioning-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/general-diagnostics-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/global-attributes.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/group-key-mgmt-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/identify-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/illuminance-measurement-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/keypad-input-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/localization-configuration-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/low-power-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/matter-devices.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/media-input-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/media-playback-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/mode-select-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/network-commissioning-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/onoff-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/operational-credentials-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/power-source-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/power-source-configuration-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/pressure-measurement-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/proxy-configuration-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/proxy-discovery-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/proxy-valid-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/pump-configuration-and-control-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/pwm-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/relative-humidity-measurement-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/scene.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/software-diagnostics-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/switch-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/target-navigator-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/temperature-measurement-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/test-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/thermostat-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/thread-network-diagnostics-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/time-format-localization-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/time-synchronization-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/unit-localization-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/user-label-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/wake-on-lan-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/wifi-network-diagnostics-cluster.xml"; +load "../src/app/zap-templates/zcl/data-model/chip/window-covering.xml"; + +all endpoints { + // These attributes follow a different code path and do not have to be + // present in the .matter file + // + // require global attribute generatedCommandList = 65528; + // require global attribute acceptedCommandList = 65529; + // require global attribute attributeList = 65531; + + require global attribute featureMap = 65532; + require global attribute clusterRevision = 65533; +} + +endpoint 0 { + // Identifiers for clusters are loaded from XML files + // The required clusters are from the spec for RootNode (section 2.1.5 at the moment): + + require server cluster Basic; + require server cluster AccessControl; + require server cluster GroupKeyManagement; + require server cluster GeneralCommissioning; + require server cluster AdministratorCommissioning; + require server cluster OperationalCredentials; + require server cluster GeneralDiagnostics; + + // Required only if !CustomNetworkConfig. + // require server cluster NetworkCommissioning; + + // If Ethernet + // require server cluster EthernetNetworkDiagnostics; + + // If WiFi + // require server cluster WiFiNetworkDiagnostics; + + // If Thread + // require server cluster ThreadNetworkDiagnostics; +} diff --git a/scripts/tests/chiptest/__init__.py b/scripts/tests/chiptest/__init__.py index 0b32c373f70ecf..fbf3fcac09f8ea 100644 --- a/scripts/tests/chiptest/__init__.py +++ b/scripts/tests/chiptest/__init__.py @@ -30,7 +30,7 @@ def AllTests(chip_tool: str): if not name: continue - if name.startswith('TV_'): + if name.startswith('TV_') or name.startswith('Test_TC_MC_'): target = TestTarget.TV elif name.startswith('DL_'): target = TestTarget.LOCK diff --git a/scripts/tests/chiptest/test_definition.py b/scripts/tests/chiptest/test_definition.py index 2883b331a72be7..e672f0787cf7a7 100644 --- a/scripts/tests/chiptest/test_definition.py +++ b/scripts/tests/chiptest/test_definition.py @@ -25,7 +25,6 @@ from random import randrange TEST_NODE_ID = '0x12344321' -DEVELOPMENT_PAA_LIST = './credentials/development/paa-root-certs' class App: @@ -264,16 +263,10 @@ def Run(self, runner, apps_register, paths: ApplicationPaths, pics_file: str): app = apps_register.get('default') app.start() pairing_cmd = tool_cmd + ['pairing', 'code', TEST_NODE_ID, app.setupCode] - if sys.platform != 'darwin': - pairing_cmd.append('--paa-trust-store-path') - pairing_cmd.append(DEVELOPMENT_PAA_LIST) runner.RunSubprocess(pairing_cmd, name='PAIR', dependencies=[apps_register]) test_cmd = tool_cmd + ['tests', self.run_name] + ['--PICS', pics_file] - if sys.platform != 'darwin': - test_cmd.append('--paa-trust-store-path') - test_cmd.append(DEVELOPMENT_PAA_LIST) runner.RunSubprocess( test_cmd, name='TEST', dependencies=[apps_register]) diff --git a/scripts/tools/check_includes_config.py b/scripts/tools/check_includes_config.py index 4d0c640be1a244..5f74d1e64adce8 100644 --- a/scripts/tools/check_includes_config.py +++ b/scripts/tools/check_includes_config.py @@ -111,9 +111,6 @@ 'src/lib/support/CHIPListUtils.h': {'set'}, 'src/platform/DeviceSafeQueue.h': {'queue'}, - # libevent itself is unsuitable for small platforms. - 'src/system/SystemLayerImplLibevent.h': {'list', 'vector'}, - # Only uses for zero-cost types. 'src/system/SystemClock.h': {'chrono'}, 'src/platform/mbed/MbedEventTimeout.h': {'chrono'}, @@ -147,4 +144,8 @@ # Uses platform-define to switch between list and array 'src/lib/dnssd/minimal_mdns/ResponseSender.h': {'list'}, + + # Not really for embedded consumers; uses std::queue to keep track + # of a list of discovered things. + 'src/controller/SetUpCodePairer.h': {'queue'}, } diff --git a/scripts/tools/check_test_pics.py b/scripts/tools/check_test_pics.py index 87dc57628fef8b..facc3dc4478001 100755 --- a/scripts/tools/check_test_pics.py +++ b/scripts/tools/check_test_pics.py @@ -39,6 +39,10 @@ def main(): with open(value_defs, "r") as stream: defined_values = set(map(lambda item: re.sub( value_regexp, "", item.rstrip()), stream.readlines())) + # Remove Comments w/ # and empty lines + for elem in list(defined_values): + if elem.startswith('#') or (elem == ""): + defined_values.discard(elem) with open(pics_yaml, "r") as stream: try: diff --git a/scripts/tools/check_zcl_file_sync.py b/scripts/tools/check_zcl_file_sync.py new file mode 100755 index 00000000000000..50c520a84f0fce --- /dev/null +++ b/scripts/tools/check_zcl_file_sync.py @@ -0,0 +1,72 @@ +#!/usr/bin/env python3 +# +# Copyright (c) 2022 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. +# + +""" +Validates that the json zcl files that are used by the app are in sync. + +Current rule: + - all-clusters app uses an extension on top of the "standard" zcl file. + Ensure that the two fies are in sync EXCEPT the extension. +""" + +import json +import sys +import os +import difflib + + +def main(): + if len(sys.argv) != 2: + print('Please pass CHIP_ROOT as an argument (and only chip root)') + return 1 + + base_name = os.path.join(sys.argv[1], "src", "app", "zap-templates", "zcl", "zcl.json") + ext_name = os.path.join(sys.argv[1], "src", "app", "zap-templates", "zcl", "zcl-with-test-extensions.json") + + base_data = json.load(open(base_name)) + ext_data = json.load(open(ext_name)) + + # ext should be IDENTICAL with base if we add a few things to base: + base_data["xmlRoot"].append("./data-model/test") + base_data["xmlFile"].append("mode-select-extensions.xml") + + # do not care about sorting. mainly do not check if extension xml + # is at the end or in the middle + base_data["xmlFile"].sort() + ext_data["xmlFile"].sort() + + if base_data == ext_data: + return 0 + + print("%s and %s have unexpected differences." % (base_name, ext_name)) + print("Differences between expected and actual:") + + for l in difflib.unified_diff( + json.dumps(ext_data, indent=2).split('\n'), + json.dumps(base_data, indent=2).split('\n'), + fromfile=ext_name, + tofile="", + ): + if l.endswith('\n'): + l = l[:-1] + print(l) + + return 1 + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/scripts/tools/nrfconnect/generate_nrfconnect_chip_factory_data.py b/scripts/tools/nrfconnect/generate_nrfconnect_chip_factory_data.py index 007ae9cb3d92a9..eea02e7f98e0e0 100644 --- a/scripts/tools/nrfconnect/generate_nrfconnect_chip_factory_data.py +++ b/scripts/tools/nrfconnect/generate_nrfconnect_chip_factory_data.py @@ -15,23 +15,61 @@ # limitations under the License. # +from os.path import exists import sys import json import jsonschema import secrets -from random import randint import argparse import subprocess import logging as log import base64 +from cryptography.hazmat.backends import default_backend +from cryptography.hazmat.primitives.serialization import load_der_private_key HEX_PREFIX = "hex:" +PUB_KEY_PREFIX = b'\x04' INVALID_PASSCODES = [00000000, 11111111, 22222222, 33333333, 44444444, 55555555, 66666666, 77777777, 88888888, 99999999, 12345678, 87654321] -def gen_spake2p_params(spake2p_path: str, passcode: int, it: int, salt: str): - """ Generate spake2 params using external spake2p script""" +def get_raw_private_key_der(der_file: str, password: str): + """ Split given der file to get separated key pair consisting of public and private keys. + + Args: + der_file (str): Path to .der file containing public and private keys + password (str): Password to decrypt Keys. It can be None, and then KEY is not encrypted. + + Returns: + hex string: return a hex string containing extracted and decrypted private KEY from given .der file. + """ + try: + with open(der_file, 'rb') as file: + key_data = file.read() + if password is None: + log.warning("KEY password has not been provided. It means that DAC key is not encrypted.") + keys = load_der_private_key(key_data, password, backend=default_backend()) + private_key = keys.private_numbers().private_value.to_bytes(32, byteorder='big') + + return private_key + + except IOError or ValueError: + return None + + +def gen_spake2p_params(spake2p_path: str, passcode: int, it: int, salt: str) -> dict: + """ Generate spake2 params using external spake2p script + + Args: + spake2p_path (str): path to spake2 executable + passcode (int): Pairing passcode using in SPAKE 2 + it (int): Iteration counter for SPAKE2 Verifier generation + salt (str): Salt used to generate SPAKE2 password + + Returns: + dict: dictionary containing passcode, it, salt, and generated Verifier + """ + cmd = [ spake2p_path, 'gen-verifier', '--iteration-count', str(it), @@ -52,8 +90,8 @@ class FactoryDataGenerator: def __init__(self, arguments) -> None: """ - :param arguments: All input arguments parsed using ArgParse - + Args: + arguments (any):All input arguments parsed using ArgParse """ self._args = arguments self._factory_data = list() @@ -71,10 +109,10 @@ def _validate_args(self): self._user_data = json.loads(self._args.user) except json.decoder.JSONDecodeError as e: raise AssertionError("Provided wrong user data, this is not a Json format! {}".format(e)) - assert (not self._args.spake2_verifier or (self._args.passcode and self._args.spake2p_path)), \ + assert (self._args.spake2_verifier or (self._args.passcode and self._args.spake2p_path)), \ "Can not find spake2 verifier, to generate a new one please provide passcode (--passcode) and path to spake2p script (--spake2p_path)" - if not self._args.rd_uid: - log.warning("Can not find rotating device UID in provided arguments list. A new one will be generated.") + assert (self._args.chip_cert_path or (self._args.dac_cert and self._args.pai_cert and self._args.dac_key)), \ + "Can not find paths to DAC or PAI certificates .der files. To generate a new ones please provide a path to chip-cert executable (--chip_cert_path)" assert self._args.output.endswith(".json"), \ "Output path doesn't contain .json file path. ({})".format(self._args.output) assert not (self._args.passcode in INVALID_PASSCODES), \ @@ -96,13 +134,26 @@ def generate_json(self): """ # generate missing data if needed if not self._args.rd_uid: - rd_uid = self._generate_rotating_device_uid() + if self._args.generate_rd_uid: + rd_uid = self._generate_rotating_device_uid() + else: + # rotating device ID unique ID was not provided, so do not store it in factory data. + rd_uid = None else: rd_uid = self._args.rd_uid if not self._args.spake2_verifier: - spake_2_verifier = base64.b64decode(self._generate_spake2_verifier()).hex() + spake_2_verifier = base64.b64decode(self._generate_spake2_verifier()) else: - spake_2_verifier = self._args.spake2_verifier.hex() + spake_2_verifier = base64.b64decode(self._args.spake2_verifier) + + # convert salt to bytestring to be coherent with spake2 verifier type + spake_2_salt = base64.b64decode(self._args.spake2_salt) + + # try to read DAC public and private keys + dac_priv_key = get_raw_private_key_der(self._args.dac_key, self._args.dac_key_password) + if dac_priv_key is None: + log.error("Can not read DAC keys from : {}".format(self._args.dac_key)) + sys.exit(-1) try: json_file = open(self._args.output, "w+") @@ -110,26 +161,30 @@ def generate_json(self): print("Can not create JSON file in this location: {}".format(self._args.output)) sys.exit(-1) with json_file: - # serialize mandatory data + # serialize data self._add_entry("sn", self._args.sn) + self._add_entry("vendor_id", self._args.vendor_id) + self._add_entry("product_id", self._args.product_id) + self._add_entry("vendor_name", self._args.vendor_name) + self._add_entry("product_name", self._args.product_name) self._add_entry("date", self._args.date) self._add_entry("hw_ver", self._args.hw_ver) self._add_entry("hw_ver_str", self._args.hw_ver_str) - self._add_entry("rd_uid", HEX_PREFIX + rd_uid) self._add_entry("dac_cert", self._process_der(self._args.dac_cert)) - self._add_entry("dac_key", self._process_der(self._args.dac_key)) + self._add_entry("dac_key", dac_priv_key) self._add_entry("pai_cert", self._process_der(self._args.pai_cert)) - self._add_entry("cd", self._process_der(self._args.cd)) if self._args.include_passcode: self._add_entry("passcode", self._args.passcode) self._add_entry("spake2_it", self._args.spake2_it) - self._add_entry("spake2_salt", self._args.spake2_salt) - self._add_entry("spake2_verifier", HEX_PREFIX + spake_2_verifier) + self._add_entry("spake2_salt", spake_2_salt) + self._add_entry("spake2_verifier", spake_2_verifier) self._add_entry("discriminator", self._args.discriminator) + if rd_uid: + self._add_entry("rd_uid", rd_uid) + # add user-specific data + self._add_entry("user", self._args.user) factory_data_dict = dict(self._factory_data) - # add user-specific data - factory_data_dict["user"] = self._user_data json_object = json.dumps(factory_data_dict) is_json_valid = True @@ -146,7 +201,9 @@ def generate_json(self): def _add_entry(self, name: str, value: any): """ Add single entry to list of tuples ("key", "value") """ - if value: + if(isinstance(value, bytes) or isinstance(value, bytearray)): + value = HEX_PREFIX + value.hex() + if value or (isinstance(value, int) and value == 0): log.debug("Adding entry '{}' with size {} and type {}".format(name, sys.getsizeof(value), type(value))) self._factory_data.append((name, value)) @@ -158,9 +215,10 @@ def _generate_spake2_verifier(self): def _generate_rotating_device_uid(self): """ If rotating device unique ID has not been provided it should be generated """ + log.warning("Can not find rotating device UID in provided arguments list. A new one will be generated.") rdu = secrets.token_bytes(16) - log.info("\n\nThe new rotate device UID: {}\n".format(rdu.hex())) - return rdu.hex() + log.info("\n\nThe new rotate device UID: {}\n".format(rdu).hex()) + return rdu def _validate_output_json(self, output_json: str): """ @@ -185,7 +243,7 @@ def _process_der(self, path: str): log.debug("Processing der file...") try: with open(path, 'rb') as f: - data = HEX_PREFIX + f.read().hex() + data = f.read() return data except IOError as e: log.error(e) @@ -208,47 +266,82 @@ def allow_any_int(i): return int(i, 0) help="Run this script with DEBUG logging level") parser.add_argument("--include_passcode", action="store_true", help="passcode is used only for generating Spake2 Verifier to include it in factory data add this argument") + parser.add_argument("--overwrite", action="store_true", + help="If output JSON file exist this argument allows to generate new factory data and overwrite it.") # Json known-keys values # mandatory keys mandatory_arguments.add_argument("--sn", type=str, required=True, - help="[ascii string] Provide serial number.") + help="[ascii string] Serial number of a device which can be used to identify \ + the serial number field in the Matter certificate structure. \ + Maximum length of serial number is 20 bytes. \ + Strings longer than 20 bytes will be declined in script") + mandatory_arguments.add_argument("--vendor_id", type=allow_any_int, + help="[int | hex int] Provide Vendor Identification Number") + mandatory_arguments.add_argument("--product_id", type=allow_any_int, + help="[int | hex int] Provide Product Identification Number") + mandatory_arguments.add_argument("--vendor_name", type=str, + help="[string] provide human-readable vendor name") + mandatory_arguments.add_argument("--product_name", type=str, + help="[string] provide human-readable product name") mandatory_arguments.add_argument("--date", type=str, required=True, - help="[ascii string] Provide manufacturing date in format MM.DD.YYYY_GG:MM .") + help="[ascii string] Provide manufacturing date \ + A manufacturing date specifies the date that the Node was manufactured. \ + Used format for providing a manufacturing date is ISO 8601 e.g. YYYY-MM-DD.") mandatory_arguments.add_argument("--hw_ver", type=allow_any_int, required=True, help="[int | hex int] Provide hardware version in int format.") mandatory_arguments.add_argument("--hw_ver_str", type=str, required=True, help="[ascii string] Provide hardware version in string format.") - mandatory_arguments.add_argument("--dac_cert", type=str, required=True, - help="[.der] Provide the path to .der file containing DAC certificate.") - mandatory_arguments.add_argument("--dac_key", type=str, required=True, - help="[.der] Provide the path to .der file containing DAC keys.") - mandatory_arguments.add_argument("--pai_cert", type=str, required=True, - help="[.der] Provide the path to .der file containing PAI certificate.") - mandatory_arguments.add_argument("--cd", type=str, required=True, - help="[.der] Provide the path to .der file containing Certificate Declaration.") - mandatory_arguments.add_argument("--spake2_it", type=allow_any_int, - help="[int | hex int] Provide Spake2 Iteraction Counter.") + mandatory_arguments.add_argument("--spake2_it", type=allow_any_int, required=True, + help="[int | hex int] Provide Spake2 Iteration Counter.") mandatory_arguments.add_argument("--spake2_salt", type=str, required=True, help="[ascii string] Provide Spake2 Salt.") - optional_arguments.add_argument("--discriminator", type=allow_any_int, required=True, - help="[int] Provide BLE pairing discriminator.") + mandatory_arguments.add_argument("--discriminator", type=allow_any_int, required=True, + help="[int] Provide BLE pairing discriminator. \ + A 12-bit value matching the field of the same name in \ + the setup code. Discriminator is used during a discovery process.") + # optional keys + optional_arguments.add_argument("--chip_cert_path", type=str, + help="Generate DAC and PAI certificates instead giving a path to .der files. This option requires a path to chip-cert executable." + "By default You can find spake2p in connectedhomeip/src/tools/chip-cert directory and build it there.") + optional_arguments.add_argument("--dac_cert", type=str, + help="[.der] Provide the path to .der file containing DAC certificate.") + optional_arguments.add_argument("--dac_key", type=str, + help="[.der] Provide the path to .der file containing DAC keys.") + optional_arguments.add_argument("--generate_rd_uid", action="store_true", + help="Generate a new rotating device unique ID, print it out to console output and store it in factory data.") + optional_arguments.add_argument("--dac_key_password", type=str, + help="Provide a password to decode dac key. If dac key is not encrypted do not provide this argument.") + optional_arguments.add_argument("--pai_cert", type=str, + help="[.der] Provide the path to .der file containing PAI certificate.") optional_arguments.add_argument("--rd_uid", type=str, - help="[hex string] Provide the rotating device unique ID. To generate the new rotate device unique ID use --rd_uid_gen.") + help="[hex string] Provide the rotating device unique ID. If this argument is not provided a new rotating device id unique id will be generated.") optional_arguments.add_argument("--passcode", type=allow_any_int, help="[int | hex] Default PASE session passcode. (This is mandatory to generate Spake2 Verifier).") optional_arguments.add_argument("--spake2p_path", type=str, help="[string] Provide a path to spake2p. By default You can find spake2p in connectedhomeip/src/tools/spake2p directory and build it there.") optional_arguments.add_argument("--spake2_verifier", type=str, - help="[hex string] Provide Spake2 Verifier without generating it.") + help="[ascii string] Provide Spake2 Verifier without generating it.") optional_arguments.add_argument("--user", type=str, help="[string] Provide additional user-specific keys in Json format: {'name_1': 'value_1', 'name_2': 'value_2', ... 'name_n', 'value_n'}.") args = parser.parse_args() + if(args.chip_cert_path): + print("Generating DAC and PAI certificates is not supported yet") + if args.verbose: log.basicConfig(format='[%(asctime)s][%(levelname)s] %(message)s', level=log.DEBUG) else: - log.basicConfig(format='[%(asctime)s] %(message)s', level=log.INFO) + log.basicConfig(format='[%(levelname)s] %(message)s', level=log.INFO) + + if(args.chip_cert_path): + log.error("Generating DAC and PAI certificates is not supported yet") + return + + # check if json file already exist + if(exists(args.output) and not args.overwrite): + log.error("Output file: {} already exist, to create a new one add argument '--overwrite'. By default overwriting is disabled".format(args.output)) + return generator = FactoryDataGenerator(args) generator.generate_json() diff --git a/scripts/tools/nrfconnect/nrfconnect_factory_data.schema b/scripts/tools/nrfconnect/nrfconnect_factory_data.schema index 7ec7804d746b84..6d61795f0bc9e1 100644 --- a/scripts/tools/nrfconnect/nrfconnect_factory_data.schema +++ b/scripts/tools/nrfconnect/nrfconnect_factory_data.schema @@ -5,17 +5,20 @@ "type": "object", "required": [ "sn", + "vendor_id", + "product_id", + "vendor_name", + "product_name", "date", "hw_ver", "hw_ver_str", - "rd_uid", "dac_cert", "dac_key", "pai_cert", - "cd", "spake2_it", "spake2_salt", - "spake2_verifier" + "spake2_verifier", + "discriminator" ], "properties": { "sn": { @@ -23,12 +26,32 @@ "type": "string", "maxLength": 32 }, + "vendor_id": { + "description": "Vendor Identifier", + "type": "integer", + "minimum": 0, + "maximum": 65524 + }, + "product_id": { + "description": "Product Identifier", + "type": "integer", + "minimum": 1, + "maximum": 65535 + }, + "vendor_name": { + "description": "human-readable vendor name", + "type": "string", + "maxLength": 32 + }, + "product_name": { + "description": "human-readable product name", + "type": "string", + "maxLength": 32 + }, "date": { - "description": "Manufacturing date according to ISO 8601 in notation YYYYMMDD", + "description": "Manufacturing date according to ISO 8601 in notation YYYY-MM-DD", "type": "string", - "minLength": 8, - "maxLength": 8, - "pattern": "[0-9]{4}[0-1]{1}[0-9]{1}[0-3]{1}[0-9]{1}" + "format": "date" }, "hw_ver": { "description": "Hardware version - integer", @@ -50,19 +73,19 @@ }, "dac_cert": { "description": "DAC certificate in hex-string format", - "type": "string" + "type": "string", + "maxLength": 1204 }, "dac_key": { "description": "DAC Private Key in hex-string format", - "type": "string" + "type": "string", + "minLength": 68, + "maxLength": 68 }, "pai_cert": { "description": "PAI certificate in hex-string format", - "type": "string" - }, - "cd": { - "description": "Certificate Declaration in hex-string format", - "type": "string" + "type": "string", + "maxLength": 1204 }, "passcode": { "description": "A default PASE session passcode", @@ -79,8 +102,8 @@ "spake2_salt": { "description": "A key-derivation function for the Symmetric Password-Authenticated Key Exchange.", "type": "string", - "minLength": 16, - "maxLength": 32 + "minLength": 36, + "maxLength": 68 }, "spake2_verifier": { "description": "A verifier for the Symmetric Password-Authenticated Key Exchange", @@ -93,10 +116,6 @@ "minimum": 0, "maximum": 4095 }, - "fw_info": { - "description": "Information about programmed firmware in TLV format", - "type": "string" - }, "user": { "description": "A user-specific additional data which should be added to factory data. This should be a Json format.", "type": "object" diff --git a/scripts/tools/nrfconnect/nrfconnect_generate_partition.py b/scripts/tools/nrfconnect/nrfconnect_generate_partition.py index e18805400bec08..bb267406427a6d 100644 --- a/scripts/tools/nrfconnect/nrfconnect_generate_partition.py +++ b/scripts/tools/nrfconnect/nrfconnect_generate_partition.py @@ -58,8 +58,6 @@ def generate_cbor(self): if self.__data_to_save: # prepare raw data from Json cbor_data = cbor.dumps(self.__data_to_save) - with open(self._output + "/output.cbor", "w+b") as cbor_output: - cbor.dump(cbor.loads(cbor_data), cbor_output) return cbor_data def create_hex(self, data: bytes): @@ -71,7 +69,7 @@ def create_hex(self, data: bytes): if len(data) > self._length: raise ValueError("generated CBOR file exceeds declared maximum partition size! {} > {}".format(len(data), self._length)) self._ih.putsz(self._offset, data) - self._ih.write_hex_file(self._output + "/output.hex", True) + self._ih.write_hex_file(self._output + ".hex", True) self._data_ready = True return True @@ -83,7 +81,7 @@ def create_bin(self): if not self._data_ready: log.error("Please create hex file first!") return False - self._ih.tobinfile(self._output + "/output.bin") + self._ih.tobinfile(self._output + ".bin") return True @staticmethod @@ -144,25 +142,32 @@ def allow_any_int(i): return int(i, 0) parser.add_argument("-i", "--input", type=str, required=True, help="Path to input .json file") parser.add_argument("-o", "--output", type=str, required=True, - help="Path to DIRECTORY, where .hex, .cbor and .bin files will be stored") + help="Prefix for output file paths, e.g. setting dir/output causes creation of the following files: dir/output.hex, and dir/output.bin") parser.add_argument("--offset", type=allow_any_int, required=True, - help="Partiton offset - a place in device's flash memory, where factory data will be stored") + help="Partition offset - an address in device's NVM memory, where factory data will be stored") parser.add_argument("--size", type=allow_any_int, required=True, help="The maximum partition size") parser.add_argument("-v", "--verbose", action="store_true", help="Run this script with DEBUG logging level") + parser.add_argument("-r", "--raw", action="store_true", + help="Do not print flashing help and other logs, only generate a .hex file. It can be useful when the script is used by other script.") args = parser.parse_args() if args.verbose: log.basicConfig(format='[%(asctime)s][%(levelname)s] %(message)s', level=log.DEBUG) + elif args.raw: + log.basicConfig(format='%(message)s', level=log.ERROR) else: log.basicConfig(format='[%(asctime)s] %(message)s', level=log.INFO) partition_creator = PartitionCreator(args.offset, args.size, args.input, args.output) cbor_data = partition_creator.generate_cbor() try: + if not args.raw: + print("Generating .hex file: {}.hex with offset: {} and size: {}".format(args.output, hex(args.offset), hex(args.size))) if partition_creator.create_hex(cbor_data) and partition_creator.create_bin(): - print_flashing_help() + if not args.raw: + print_flashing_help() except ValueError as e: log.error(e) sys.exit(-1) diff --git a/scripts/tools/zap/convert.py b/scripts/tools/zap/convert.py index 143bd104d91ea1..1181ebe17d989f 100755 --- a/scripts/tools/zap/convert.py +++ b/scripts/tools/zap/convert.py @@ -16,6 +16,7 @@ # import argparse +import json import os import subprocess import sys @@ -66,9 +67,28 @@ def runArgumentsParser(): return zap_file +def detectZclFile(zapFile): + print(f"Searching for zcl file from {zapFile}") + + path = 'src/app/zap-templates/zcl/zcl.json' + + data = json.load(open(zapFile)) + for package in data["package"]: + if package["type"] != "zcl-properties": + continue + + # found the right path, try to figure out the actual path + if package["pathRelativity"] == "relativeToZap": + path = os.path.abspath(os.path.join(os.path.dirname(zapFile), package["path"])) + else: + path = package["path"] + + return getFilePath(path) + + def runConversion(zap_file): templates_file = getFilePath('src/app/zap-templates/app-templates.json') - zcl_file = getFilePath('src/app/zap-templates/zcl/zcl.json') + zcl_file = detectZclFile(zap_file) generator_dir = getDirPath('third_party/zap/repo') os.chdir(generator_dir) diff --git a/scripts/tools/zap/generate.py b/scripts/tools/zap/generate.py index 6d6b0848e3d1ed..72b63a1c7fbb6c 100755 --- a/scripts/tools/zap/generate.py +++ b/scripts/tools/zap/generate.py @@ -58,9 +58,27 @@ def getDirPath(name): return fullpath +def detectZclFile(zapFile): + print(f"Searching for zcl file from {zapFile}") + + path = 'src/app/zap-templates/zcl/zcl.json' + + data = json.load(open(zapFile)) + for package in data["package"]: + if package["type"] != "zcl-properties": + continue + + # found the right path, try to figure out the actual path + if package["pathRelativity"] == "relativeToZap": + path = os.path.abspath(os.path.join(os.path.dirname(zapFile), package["path"])) + else: + path = package["path"] + + return getFilePath(path) + + def runArgumentsParser(): default_templates = 'src/app/zap-templates/app-templates.json' - default_zcl = 'src/app/zap-templates/zcl/zcl.json' default_output_dir = 'zap-generated/' parser = argparse.ArgumentParser( @@ -68,8 +86,8 @@ def runArgumentsParser(): parser.add_argument('zap', help='Path to the application .zap file') parser.add_argument('-t', '--templates', default=default_templates, help='Path to the .zapt templates records to use for generating artifacts (default: "' + default_templates + '")') - parser.add_argument('-z', '--zcl', default=default_zcl, - help='Path to the zcl templates records to use for generating artifacts (default: "' + default_zcl + '")') + parser.add_argument('-z', '--zcl', + help='Path to the zcl templates records to use for generating artifacts (default: autodetect read from zap file)') parser.add_argument('-o', '--output-dir', default=None, help='Output directory for the generated files (default: automatically selected)') args = parser.parse_args() @@ -86,7 +104,12 @@ def runArgumentsParser(): output_dir = '' zap_file = getFilePath(args.zap) - zcl_file = getFilePath(args.zcl) + + if args.zcl: + zcl_file = getFilePath(args.zcl) + else: + zcl_file = detectZclFile(zap_file) + templates_file = getFilePath(args.templates) output_dir = getDirPath(output_dir) diff --git a/scripts/tools/zap/run_zaptool.sh b/scripts/tools/zap/run_zaptool.sh index c219a6cc560339..62a9d3de514bca 100755 --- a/scripts/tools/zap/run_zaptool.sh +++ b/scripts/tools/zap/run_zaptool.sh @@ -45,9 +45,16 @@ CHIP_ROOT="${SCRIPT_PATH%/scripts/tools/zap/run_zaptool.sh}" npm install fi + echo "ARGS: ${ZAP_ARGS[@]}" + + if [[ "${ZAP_ARGS[@]}" == *"/all-clusters-app.zap"* ]]; then + ZCL_FILE="$CHIP_ROOT/src/app/zap-templates/zcl/zcl-with-test-extensions.json" + else + ZCL_FILE="$CHIP_ROOT/src/app/zap-templates/zcl/zcl.json" + fi + node src-script/zap-start.js --logToStdout \ --gen "$CHIP_ROOT/src/app/zap-templates/app-templates.json" \ - --zcl "$CHIP_ROOT/src/app/zap-templates/zcl/zcl.json" \ + --zcl "$ZCL_FILE" \ "${ZAP_ARGS[@]}" - ) diff --git a/scripts/tools/zap/zapfile_formatter.py b/scripts/tools/zap/zapfile_formatter.py index 4240cd284a1c3a..a6a9508aa90d97 100755 --- a/scripts/tools/zap/zapfile_formatter.py +++ b/scripts/tools/zap/zapfile_formatter.py @@ -20,37 +20,83 @@ from typing import List _DEFAULT_CLUSTER_REVISION_ATTRIBUTE = { - "name": "ClusterRevision", - "code": 0xFFFD, - "mfgCode": None, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "1", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 + "entry": { + "name": "ClusterRevision", + "code": 0xFFFD, + "mfgCode": None, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + "clusterCode": None, + "clusterParamKey": "attributes", + "side": "server" } _DEFAULT_FEATURE_MAP_ATTRIBUTE = { - "name": "FeatureMap", - "code": 0xFFFC, - "mfgCode": None, - "side": "server", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 + "entry": { + "name": "FeatureMap", + "code": 0xFFFC, + "mfgCode": None, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + "clusterCode": None, + "clusterParamKey": "attributes", + "side": "server" +} + +_TEST_EVENT_TRIGGERS_ENABLED_ATTRIBUTE = { + "entry": { + "name": "TestEventTriggersEnabled", + "code": 8, + "mfgCode": None, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "false", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + "clusterCode": 51, + "clusterParamKey": "attributes", + "side": "server" +} + +_TEST_EVENT_TRIGGERS_CLIENT_COMMAND = { + "entry": { + "name": "TestEventTrigger", + "code": 0, + "mfgCode": None, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + "clusterCode": 51, + "clusterParamKey": "commands", + "side": "server" } @@ -62,76 +108,111 @@ def handle(self, candidate: object): pass -class ValidateMandatoryServerClusterAttributes(Mutator): - def __init__(self, attribute_entry, add_if_missing, forces_include, replace_if_storage_nvm): - self._attribute_entry = attribute_entry - self._add_if_missing = add_if_missing - self._forces_include = forces_include - self._replace_if_storage_nvm = replace_if_storage_nvm +class ValidateMandatoryClusterParam(Mutator): + def __init__(self, param_details, args): + self._param_entry = param_details["entry"] + self._cluster_specific_code = param_details["clusterCode"] + self._param_key = param_details["clusterParamKey"] + self._cluster_side = param_details["side"] + self._add_if_missing = args.add_missing_cluster_param + self._forces_enable = args.force_enable_cluster_param + self._replace_if_storage_nvm = args.mandatory_attributes_replace_if_storage_nvm super().__init__() - def _addMissingMandatoryAttribute(self, candidate: object): - attributes = candidate.get("attributes", []) + def _addEntry(self, candidate: object): + param_list = candidate.get(self._param_key, []) insert_index = 0 - for attribute in attributes: - attribute_code = attribute.get("code") - if attribute_code is not None and attribute_code > self._attribute_entry[ - "code"]: + for entry in param_list: + code = entry.get("code") + if code is not None and code > self._param_entry["code"]: break insert_index += 1 - # Insert the new attribute in the right place, WITH NO RENUMBERING - new_attrib_list = attributes[0:insert_index] - new_attrib_list.append(self._attribute_entry) - new_attrib_list.extend(attributes[insert_index:]) + # Insert the new entry in the right place, with no renumbering + new_param_list = param_list[0:insert_index] + new_param_list.append(self._param_entry) + new_param_list.extend(param_list[insert_index:]) - # Replace the attribute list with the augmented item - candidate["attributes"] = new_attrib_list + # Replace the param list with the augmented item + candidate[self._param_key] = new_param_list - def handle(self, candidate: object): + def _isCandidateValidCluster(self, candidate: object): if not isinstance(candidate, dict): - return + return False - # We only care about adding mandatory attributes. - if "attributes" not in candidate: - return + # We only care about adding mandatory entires to . + if self._param_key not in candidate: + return False - # If the cluster is not a server or is not enabled we do not enforce adding manidory attribute. + # Valid clusters must have enabled and side. if (("enabled" not in candidate) or ("side" not in candidate)): - return - if (not candidate.get("enabled")) or ("server" - not in candidate.get("side")): + return False + + if self._cluster_side not in candidate.get("side"): + return False + + # Command clusters do not need to be enabled for it to have an effect on auto generated + # files based off of the zap file. + if (self._param_key != "commands") and (not candidate.get("enabled")): + return False + + if self._cluster_specific_code is not None and self._cluster_specific_code != candidate["code"]: + return False + + return True + + def _attributeSpecificChecks(self, param: object, cluster_name): + if not param["included"]: + print("WARNING: param 0x%X(%s) in cluster %s found, but included is false" % + (self._param_entry["code"], self._param_entry["name"], cluster_name)) + if self._forces_enable: + param["included"] = self._param_entry["included"] + + if param["storageOption"] == "NVM": + print("WARNING: param 0x%X(%s) in cluster %s found, but storageOption was NVM" % + (self._param_entry["code"], self._param_entry["name"], cluster_name)) + if self._replace_if_storage_nvm: + param["storageOption"] = self._param_entry["storageOption"] + + def _commandSpecificChecks(self, param: object, cluster_name): + if param["incoming"] != self._param_entry["incoming"]: + print("WARNING: param 0x%X(%s) in cluster %s found, but incoming field isn't correct" % + (self._param_entry["code"], self._param_entry["name"], cluster_name)) + if self._forces_enable: + param["incoming"] = self._param_entry["incoming"] + + if param["outgoing"] != self._param_entry["outgoing"]: + print("WARNING: param 0x%X(%s) in cluster %s found, but outgoing field isn't correct" % + (self._param_entry["code"], self._param_entry["name"], cluster_name)) + if self._forces_enable: + param["outgoing"] = self._param_entry["outgoing"] + + def handle(self, candidate: object): + if not self._isCandidateValidCluster(candidate): return - for attribute in candidate.get("attributes", []): - if attribute["code"] != self._attribute_entry["code"]: + for param in candidate.get(self._param_key, []): + if param["code"] != self._param_entry["code"]: continue - if attribute["name"] != self._attribute_entry["name"]: + if param["name"] != self._param_entry["name"]: print( - "WARNING: attribute 0x%X has mismatching name %s (should be %s)" % - (self._attribute_entry["code"], attribute["name"], - self._attribute_entry["name"])) - - if not attribute["included"]: - print("WARNING: attribute 0x%X(%s) in cluster %s found, but included is false" % - (self._attribute_entry["code"], self._attribute_entry["name"], candidate["name"])) - if self._forces_include: - attribute["included"] = self._attribute_entry["included"] - - if attribute["storageOption"] == "NVM": - print("WARNING: attribute 0x%X(%s) in cluster %s found, but storageOption was NVM" % - (self._attribute_entry["code"], self._attribute_entry["name"], candidate["name"])) - if self._replace_if_storage_nvm: - attribute["storageOption"] = self._attribute_entry["storageOption"] + "WARNING: param 0x%X has mismatching name %s (should be %s)" % + (self._param_entry["code"], param["name"], + self._param_entry["name"])) + + if self._param_key == "attributes": + self._attributeSpecificChecks(param, candidate["name"]) + elif self._param_key == "commands": + self._commandSpecificChecks(param, candidate["name"]) break else: print( - "WARNING: Did not find mandatory attribute %s in cluster %s (0x%X)" % - (self._attribute_entry["name"], candidate["name"], candidate["code"])) + "WARNING: Did not find mandatory param %s in cluster %s (0x%X)" % + (self._param_entry["name"], candidate["name"], candidate["code"])) if self._add_if_missing: - self._addMissingMandatoryAttribute(candidate) + self._addEntry(candidate) def loadZapfile(filename: str): @@ -164,10 +245,10 @@ def setupArgumentsParser(): parser = argparse.ArgumentParser(description='Mutate ZAP files') parser.add_argument('zap_filenames', metavar='zap-filename', type=str, nargs='+', help='zapfiles that need mutating') - parser.add_argument('--mandatory-attributes-add-missing', default=False, action='store_true', - help="Add missing mandatory attributes to server clusters (default: False)") - parser.add_argument('--mandatory-attributes-force-included', default=False, action='store_true', - help="If mandatory attribute is not included, include it (default: False)") + parser.add_argument('--add-missing-cluster-param', default=False, action='store_true', + help="Add missing mandatory cluster parameters (default: False)") + parser.add_argument('--force-enable-cluster-param', default=False, action='store_true', + help="If mandatory cluster paramater is not missing and not enabled, enable it (default: False)") parser.add_argument('--mandatory-attributes-replace-if-storage-nvm', default=False, action='store_true', help="Enforce mandatory attribute use default storage type (default: False)") return parser.parse_args() @@ -177,14 +258,17 @@ def main(): args = setupArgumentsParser() mutators = [] - add_missing_cluster_revision = ValidateMandatoryServerClusterAttributes( - _DEFAULT_CLUSTER_REVISION_ATTRIBUTE, args.mandatory_attributes_add_missing, - args.mandatory_attributes_force_included, args.mandatory_attributes_replace_if_storage_nvm) - add_missing_feature_map = ValidateMandatoryServerClusterAttributes( - _DEFAULT_FEATURE_MAP_ATTRIBUTE, args.mandatory_attributes_add_missing, - args.mandatory_attributes_force_included, args.mandatory_attributes_replace_if_storage_nvm) - - mutators.extend([add_missing_cluster_revision, add_missing_feature_map]) + add_missing_cluster_revision = ValidateMandatoryClusterParam( + _DEFAULT_CLUSTER_REVISION_ATTRIBUTE, args) + add_missing_feature_map = ValidateMandatoryClusterParam( + _DEFAULT_FEATURE_MAP_ATTRIBUTE, args) + add_general_diagnostic_test_event_trigger_enabled = ValidateMandatoryClusterParam( + _TEST_EVENT_TRIGGERS_ENABLED_ATTRIBUTE, args) + add_general_diagnostic_test_event_trigger_command = ValidateMandatoryClusterParam( + _TEST_EVENT_TRIGGERS_CLIENT_COMMAND, args) + + mutators.extend([add_missing_cluster_revision, add_missing_feature_map, + add_general_diagnostic_test_event_trigger_enabled, add_general_diagnostic_test_event_trigger_command]) for zap_filename in args.zap_filenames: body = loadZapfile(zap_filename) diff --git a/scripts/tools/zap_regen_all.py b/scripts/tools/zap_regen_all.py index 894849adf460ed..4fee975ddb6dbc 100755 --- a/scripts/tools/zap_regen_all.py +++ b/scripts/tools/zap_regen_all.py @@ -80,7 +80,7 @@ def setupArgumentsParser(): description='Generate content from ZAP files') parser.add_argument('--type', default='all', choices=['all', 'tests'], help='Choose which content type to generate (default: all)') - parser.add_argument('--tests', default='all', choices=['all', 'chip-tool', 'chip-tool-darwin', 'app1', 'app2'], + parser.add_argument('--tests', default='all', choices=['all', 'chip-tool', 'darwin-framework-tool', 'app1', 'app2'], help='When generating tests only target, Choose which tests to generate (default: all)') parser.add_argument('--dry-run', default=False, action='store_true', help="Don't do any generationl just log what targets would be generated (default: False)") @@ -141,10 +141,10 @@ def getTestsTemplatesTargets(test_target): 'template': 'examples/chip-tool/templates/tests/templates.json', 'output_dir': 'zzz_generated/chip-tool/zap-generated' }, - 'chip-tool-darwin': { + 'darwin-framework-tool': { 'zap': 'src/controller/data_model/controller-clusters.zap', - 'template': 'examples/chip-tool-darwin/templates/tests/templates.json', - 'output_dir': 'zzz_generated/chip-tool-darwin/zap-generated' + 'template': 'examples/darwin-framework-tool/templates/tests/templates.json', + 'output_dir': 'zzz_generated/darwin-framework-tool/zap-generated' } } @@ -180,7 +180,7 @@ def getSpecificTemplatesTargets(): 'src/app/common/templates/templates.json': 'zzz_generated/app-common/app-common/zap-generated', 'src/app/tests/suites/templates/templates.json': 'zzz_generated/app-common/app-common/zap-generated', 'examples/chip-tool/templates/templates.json': 'zzz_generated/chip-tool/zap-generated', - 'examples/chip-tool-darwin/templates/templates.json': 'zzz_generated/chip-tool-darwin/zap-generated', + 'examples/darwin-framework-tool/templates/templates.json': 'zzz_generated/darwin-framework-tool/zap-generated', 'src/controller/python/templates/templates.json': None, 'src/darwin/Framework/CHIP/templates/templates.json': None, 'src/controller/java/templates/templates.json': None, diff --git a/src/android/CHIPTest/app/src/main/java/com/tcl/chip/chiptest/MainActivity.kt b/src/android/CHIPTest/app/src/main/java/com/tcl/chip/chiptest/MainActivity.kt index b969cb9fce1eac..0b914a1745fe99 100644 --- a/src/android/CHIPTest/app/src/main/java/com/tcl/chip/chiptest/MainActivity.kt +++ b/src/android/CHIPTest/app/src/main/java/com/tcl/chip/chiptest/MainActivity.kt @@ -53,6 +53,6 @@ class MainActivity : AppCompatActivity() { }.start() } - AndroidChipPlatform(AndroidBleManager(), PreferencesKeyValueStoreManager(this), PreferencesConfigurationManager(this), NsdManagerServiceResolver(this), ChipMdnsCallbackImpl(), DiagnosticDataProviderImpl(this)) + AndroidChipPlatform(AndroidBleManager(), PreferencesKeyValueStoreManager(this), PreferencesConfigurationManager(this), NsdManagerServiceResolver(this), NsdManagerServiceBrowser(this), ChipMdnsCallbackImpl(), DiagnosticDataProviderImpl(this)) } } diff --git a/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/ChipClient.kt b/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/ChipClient.kt index d4ed41a5347f66..53d62c1b4f39e3 100644 --- a/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/ChipClient.kt +++ b/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/ChipClient.kt @@ -25,6 +25,7 @@ import chip.platform.AndroidBleManager import chip.platform.AndroidChipPlatform import chip.platform.ChipMdnsCallbackImpl import chip.platform.DiagnosticDataProviderImpl +import chip.platform.NsdManagerServiceBrowser import chip.platform.NsdManagerServiceResolver import chip.platform.PreferencesConfigurationManager import chip.platform.PreferencesKeyValueStoreManager @@ -51,7 +52,7 @@ object ChipClient { if (!this::androidPlatform.isInitialized && context != null) { //force ChipDeviceController load jni ChipDeviceController.loadJni() - androidPlatform = AndroidChipPlatform(AndroidBleManager(), PreferencesKeyValueStoreManager(context), PreferencesConfigurationManager(context), NsdManagerServiceResolver(context), ChipMdnsCallbackImpl(), DiagnosticDataProviderImpl(context)) + androidPlatform = AndroidChipPlatform(AndroidBleManager(), PreferencesKeyValueStoreManager(context), PreferencesConfigurationManager(context), NsdManagerServiceResolver(context), NsdManagerServiceBrowser(context), ChipMdnsCallbackImpl(), DiagnosticDataProviderImpl(context)) } return androidPlatform } diff --git a/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/MultiAdminClientFragment.kt b/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/MultiAdminClientFragment.kt index 240553514740ff..ff61638b9bac0b 100644 --- a/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/MultiAdminClientFragment.kt +++ b/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/MultiAdminClientFragment.kt @@ -9,16 +9,17 @@ import androidx.fragment.app.Fragment import androidx.lifecycle.lifecycleScope import chip.devicecontroller.ChipClusters import chip.devicecontroller.ChipDeviceController +import chip.devicecontroller.OpenCommissioningCallback import com.google.chip.chiptool.ChipClient import com.google.chip.chiptool.GenericChipDeviceListener import com.google.chip.chiptool.R import kotlinx.android.synthetic.main.multi_admin_client_fragment.discriminatorEd +import kotlinx.android.synthetic.main.multi_admin_client_fragment.timeoutEd import kotlinx.android.synthetic.main.multi_admin_client_fragment.multiAdminClusterCommandStatus import kotlinx.android.synthetic.main.multi_admin_client_fragment.setupPinCodeEd import kotlinx.android.synthetic.main.multi_admin_client_fragment.view.basicCommissioningMethodBtn import kotlinx.android.synthetic.main.multi_admin_client_fragment.view.enhancedCommissioningMethodBtn import kotlinx.android.synthetic.main.multi_admin_client_fragment.view.revokeBtn -import kotlinx.android.synthetic.main.on_off_client_fragment.* import kotlinx.coroutines.* class MultiAdminClientFragment : Fragment() { @@ -53,8 +54,10 @@ class MultiAdminClientFragment : Fragment() { // TODO: use the discriminator and setupPinCode that was used to commission the device val testDiscriminator = "3840" val testSetupPinCode = 20202021L + val testDuration = 180 discriminatorEd.setText(testDiscriminator) setupPinCodeEd.setText(testSetupPinCode.toString()) + timeoutEd.setText(testDuration.toString()) } inner class ChipControllerCallback : GenericChipDeviceListener() { @@ -78,23 +81,41 @@ class MultiAdminClientFragment : Fragment() { } private suspend fun sendBasicCommissioningCommandClick() { - val testDuration = 100 - deviceController.openPairingWindow( + val testDuration = timeoutEd.text.toString().toInt() + deviceController.openPairingWindowCallback( ChipClient.getConnectedDevicePointer( requireContext(), addressUpdateFragment.deviceId - ), testDuration + ), testDuration, + object:OpenCommissioningCallback { + override fun onError(status: Int, deviceId: Long) { + showMessage("OpenBasicCommissioning Fail! \nDevice ID : $deviceId\nErrorCode : $status") + } + + override fun onSuccess(deviceId: Long, manualPairingCode: String?, qrCode: String?) { + showMessage("OpenBasicCommissioning Success! \n Node ID: $deviceId") + } + } ) } private suspend fun sendEnhancedCommissioningCommandClick() { - val testDuration = 100 + val testDuration = timeoutEd.text.toString().toInt() val testIteration = 1000 val devicePointer = ChipClient.getConnectedDevicePointer(requireContext(), addressUpdateFragment.deviceId) - deviceController.openPairingWindowWithPIN( + deviceController.openPairingWindowWithPINCallback( devicePointer, testDuration, testIteration.toLong(), - discriminatorEd.text.toString().toInt(), setupPinCodeEd.text.toString().toULong().toLong() + discriminatorEd.text.toString().toInt(), setupPinCodeEd.text.toString().toULong().toLong(), + object:OpenCommissioningCallback { + override fun onError(status: Int, deviceId: Long) { + showMessage("OpenCommissioning Fail! \nDevice ID : $deviceId\nErrorCode : $status") + } + + override fun onSuccess(deviceId: Long, manualPairingCode: String?, qrCode: String?) { + showMessage("OpenCommissioning Success! \n Node ID: $deviceId\n\tManual : $manualPairingCode\n\tQRCode : $qrCode") + } + } ) } diff --git a/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/clusterinteraction/ClusterDetailFragment.kt b/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/clusterinteraction/ClusterDetailFragment.kt index 87321a93c40211..5e9769764a5cdc 100644 --- a/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/clusterinteraction/ClusterDetailFragment.kt +++ b/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/clusterinteraction/ClusterDetailFragment.kt @@ -45,6 +45,8 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job import kotlinx.coroutines.cancel import kotlinx.coroutines.launch +import java.util.* +import kotlin.collections.HashMap /** * ClusterDetailFragment allows user to pick cluster, command, specify parameters and see @@ -135,15 +137,15 @@ class ClusterDetailFragment : Fragment() { ) parameterList.forEach { val parameterName = it.clusterParameterNameTv.text.toString() - val castType = - selectedInteractionInfo.commandParameters[parameterName]!!.type - val data = castStringToType(it.clusterParameterData.text.toString(), castType)!! + val parameterType = selectedInteractionInfo.commandParameters[parameterName]!!.type + val parameterUnderlyingType = selectedInteractionInfo.commandParameters[parameterName]!!.underlyingType + val data = castStringToType(it.clusterParameterData.text.toString(), parameterType, parameterUnderlyingType)!! commandArguments[it.clusterParameterNameTv.text.toString()] = data clusterInteractionHistoryList[0].parameterList.add( HistoryParameterInfo( parameterName, data.toString(), - castType + parameterUnderlyingType ) ) } @@ -185,12 +187,13 @@ class ClusterDetailFragment : Fragment() { } } - private fun castStringToType(data: String, type: Class<*>): Any? { + private fun castStringToType(data: String, type: Class<*>, underlyingType: Class<*>): Any? { return when (type) { Int::class.java -> data.toInt() Boolean::class.java -> data.toBoolean() ByteArray::class.java -> data.encodeToByteArray() Long::class.java -> data.toLong() + Optional::class.java -> if (data.isEmpty()) Optional.empty() else Optional.of(castStringToType(data, underlyingType, underlyingType)!!) else -> data } } diff --git a/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/provisioning/AddressCommissioningFragment.kt b/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/provisioning/AddressCommissioningFragment.kt index 23232bd8b15fc1..9bac357a8900c3 100644 --- a/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/provisioning/AddressCommissioningFragment.kt +++ b/src/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/provisioning/AddressCommissioningFragment.kt @@ -5,17 +5,30 @@ import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.AdapterView +import android.widget.ArrayAdapter import androidx.fragment.app.Fragment +import com.google.chip.chiptool.ChipClient import com.google.chip.chiptool.R import com.google.chip.chiptool.setuppayloadscanner.BarcodeFragment import com.google.chip.chiptool.setuppayloadscanner.CHIPDeviceInfo import com.google.chip.chiptool.util.FragmentUtil import kotlinx.android.synthetic.main.address_commissioning_fragment.addressEditText import kotlinx.android.synthetic.main.address_commissioning_fragment.commissionBtn +import kotlinx.android.synthetic.main.address_commissioning_fragment.discoverBtn +import kotlinx.android.synthetic.main.address_commissioning_fragment.discoverListSpinner import kotlinx.android.synthetic.main.address_commissioning_fragment.discriminatorEditText import kotlinx.android.synthetic.main.address_commissioning_fragment.pincodeEditText +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.Job +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch class AddressCommissioningFragment : Fragment() { + private val ipAddressList = ArrayList() + private val scope = CoroutineScope(Dispatchers.Main + Job()) + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -45,6 +58,39 @@ class AddressCommissioningFragment : Fragment() { ) ) } + + discoverBtn.setOnClickListener { _ -> + discoverBtn.isEnabled = false + val deviceController = ChipClient.getDeviceController(requireContext()) + deviceController.discoverCommissionableNodes() + scope.launch { + delay(7000) + updateSpinner() + discoverBtn.isEnabled = true + } + } + } + + private fun updateSpinner() { + val deviceController = ChipClient.getDeviceController(requireContext()) + for(i in 0..10) { + val device = deviceController.getDiscoveredDevice(i) ?: break + ipAddressList.add("${device.ipAddress}, ${device.discriminator}") + } + requireActivity().runOnUiThread { + discoverListSpinner.adapter = + ArrayAdapter(requireContext(), android.R.layout.simple_spinner_dropdown_item, ipAddressList) + discoverListSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { + override fun onItemSelected(parent: AdapterView<*>, view: View, position: Int, id: Long) { + val address = ipAddressList[position].split(",")[0].trim() + val discriminator = ipAddressList[position].split(",")[1].trim() + addressEditText.setText(address) + discriminatorEditText.setText(discriminator) + } + + override fun onNothingSelected(parent: AdapterView<*>) {} + } + } } companion object { diff --git a/src/android/CHIPTool/app/src/main/res/layout/address_commissioning_fragment.xml b/src/android/CHIPTool/app/src/main/res/layout/address_commissioning_fragment.xml index 21fafbd3ff9edf..4ff57d1767d7ed 100644 --- a/src/android/CHIPTool/app/src/main/res/layout/address_commissioning_fragment.xml +++ b/src/android/CHIPTool/app/src/main/res/layout/address_commissioning_fragment.xml @@ -16,6 +16,7 @@ app:layout_constraintTop_toTopOf="parent" /> + + +