Skip to content

Commit 9bceea9

Browse files
ying-cssrestyled-commitsankk-css
authored
Updated README and Certificate slot for DAC for OPTIGA Trust M MTR (#32939)
* 1)Added guide for OTA update for psoc6 with trust m * 1)Updated the DAC certificate ID for Trust M MTR 2)Updated the doc for Trust M MTR provisioning * Restyled by prettier-markdown * Update word list to include MTR --------- Co-authored-by: Restyled.io <commits@restyled.io> Co-authored-by: Ank Khandelwal <ank.khandelwal@infineon.com>
1 parent 403852d commit 9bceea9

File tree

4 files changed

+105
-10
lines changed

4 files changed

+105
-10
lines changed

.github/.wordlist.txt

+1
Original file line numberDiff line numberDiff line change
@@ -879,6 +879,7 @@ MoveWithOnOff
879879
MPSL
880880
MRP
881881
MTD
882+
MTR
882883
MTU
883884
Multiband
884885
Multicast
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
# Matter Software Update with Infineon PSoC6 and OPTIGA™ Trust M example applications
2+
3+
The Over The Air (OTA) Software Update functionality can be added to any of the
4+
Infineon PSoC6 example applications by passing the
5+
`chip_enable_ota_requestor=true` option to the build script.
6+
7+
## Running the OTA Download scenario
8+
9+
- An OTA Provider is a node that can respond to the OTA Requestors' queries
10+
about available software updates and share the update packages with them. An
11+
OTA Requestor is any node that needs to be updated and can communicate with
12+
the OTA Provider to fetch applicable software updates. In the procedure
13+
described below, the OTA Provider will be a Linux application and the
14+
example running on the Infineon PSoC6 board will work as the OTA Requestor.
15+
16+
- On a Linux or Darwin platform build the chip-tool and the ota-provider-app
17+
as follows:
18+
19+
This step can be ignored if Test Harness(Raspberry Pi) is used as OTA
20+
Provider.
21+
22+
```
23+
scripts/examples/gn_build_example.sh examples/chip-tool out/
24+
scripts/examples/gn_build_example.sh examples/ota-provider-app/linux out/debug chip_config_network_layer_ble=false
25+
```
26+
27+
- Build the PSoC6 OTA Requestor application with OPTIGA™ Trust M from the
28+
connectedhomeip root dir:
29+
30+
```
31+
$ scripts/build/build_examples.py --enable-flashbundle --target infineon-psoc6-lock-trustm-ota build
32+
$ third_party/infineon/psoc6/psoc6_sdk/ota/ota_base_build.sh out/infineon-psoc6-lock-trustm-ota chip-psoc6-lock-example
33+
```
34+
35+
Note: In order for the Provider to successfully serve the image to a device
36+
during the OTA Software Update process the softwareVersion parameter in the
37+
Provider config file must be greater than the
38+
CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION parameter set in the
39+
application's CHIPProjectConfig.h file.
40+
41+
* Build the PSoC6 OTA Update application with OPTIGA™ Trust M from the
42+
connectedhomeip root dir and create OTA file
43+
44+
```
45+
$ scripts/build/build_examples.py --enable-flashbundle --no-log-timestamps --target infineon-psoc6-lock-trustm-ota-updateimage build
46+
$ third_party/infineon/psoc6/psoc6_sdk/ota/ota_update_build.sh out/infineon-psoc6-lock-trustm-ota-updateimage chip-psoc6-lock-example
47+
```
48+
49+
* Additionally a pre-compiled bootloader must be flashed to the board using
50+
[Cypress Programmer](https://softwaretools.infineon.com/tools/com.ifx.tb.tool.cypressprogrammer).
51+
This image can be found at:
52+
53+
$ ./third_party/infineon/psoc6/psoc6_sdk/ota/matter-psoc6-mcuboot-bootloader.hex
54+
55+
* In a terminal start the Provider app passing to it the path to the Matter
56+
OTA file created in the previous step:(output of ota_update_build step)
57+
58+
```
59+
rm -r /tmp/chip_*
60+
./chip-ota-provider-app --discriminator 3840 --passcode 20202021 -f ../chip-psoc6-lock-example.ota
61+
```
62+
63+
* In a separate terminal run the chip-tool commands to provision the Provider:
64+
65+
```
66+
./chip-tool pairing onnetwork-long 1 20202021 3840
67+
./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
68+
```
69+
70+
Note: If the application device had been previously commissioned press USER
71+
Button2 to factory-reset the device.
72+
73+
* In the chip-tool terminal enter:
74+
75+
```
76+
./chip-tool pairing ble-wifi 2 <WIFI_SSID> <WIFI_PASSWORD> 20202021 3840
77+
```
78+
79+
* Once the commissioning process completes enter:
80+
81+
```
82+
./chip-tool otasoftwareupdaterequestor announce-ota-provider 1 0 0 0 2 0
83+
```
84+
85+
* The application device will connect to the Provider and start the image
86+
download. Status of the transfer can be monitored in the OTA Provider
87+
terminal. Once the image is downloaded the device will reboot into the
88+
downloaded image.

docs/guides/infineon_trustm_provisioning.md

+15-9
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ OPTIGA&trade; Trust M with Matter test device Attestation certificate is needed.
77

88
[Raspberry Pi 4](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/)
99

10-
[OPTIGA™ Trust M S2GO](https://www.infineon.com/cms/en/product/evaluation-boards/s2go-security-optiga-m/)
10+
[OPTIGA™ Trust M MTR](https://www.infineon.com/cms/en/product/evaluation-boards/trust-m-mtr-shield/)
1111

1212
[Shield2Go Adapter for Raspberry Pi](https://www.infineon.com/cms/en/product/evaluation-boards/s2go-adapter-rasp-pi-iot/)
1313
or Jumping Wire
@@ -30,32 +30,38 @@ can be used to perform provisioning by following the steps mentioned below.
3030

3131
```
3232
$ cd linux-optiga-trust-m/
33-
$ ./trustm_installation_aarch64_script.sh
33+
$ git checkout provider_dev
34+
$ git submodule update -f
35+
$ ./provider_installation_script.sh
3436
```
3537

3638
- Run the script to generate Matter test DAC for lock-app using the public key
3739
extracted from the Infineon pre-provisioned Certificate and store it into
38-
0xe0e3
40+
0xE0E0
3941

4042
```
4143
$ cd scripts/matter_provisioning/
42-
$ ./matter_dac_provisioning.sh
44+
$ ./matter_test_provisioning.sh
4345
```
4446

4547
_Note:_
4648

47-
_By running this example matter_dac_provisioning.sh, the steps shown below are
49+
_By running this example matter_test_provisioning.sh, the steps shown below are
4850
executed:_
4951

5052
_Step1: Extract the public key from the Infineon pre-provisioned
51-
Certificate(0xe0e0) using openssl command._
53+
Certificate(0xE0E0) using openssl command._
5254

5355
_Step2: Generate DAC test certificate using the extracted public key, Signed by
5456
[Matter test PAI](https://github.com/project-chip/connectedhomeip/blob/v1.1-branch/credentials/development/attestation/Matter-Development-PAI-FFF1-noPID-Cert.pem)_.
5557
Please note that production devices cannot re-use these test keys/certificates.
5658

5759
_Step3: Write DAC test certificate into OPTIGA&trade; Trust M certificate slot
58-
0xe0e3_
60+
0xE0E0._
5961

60-
_Step4: Write Matter test PAI into OPTIGA&trade; Trust M certificate slot 0xe0e8
61-
and test CD into OPTIGA&trade; Trust M Arbitrary OID 0xf1e0._
62+
_Step4: Write Matter test PAI into OPTIGA&trade; Trust M certificate slot 0xE0E8
63+
and test CD into OPTIGA&trade; Trust M Arbitrary OID 0xF1E0._
64+
65+
For certificate claim and OPTIGA&trade; Trust M MTR provisioning, please refer
66+
to our
67+
[README for Late-stage Provisioning](https://github.com/Infineon/linux-optiga-trust-m/blob/provider_dev/scripts/matter_provisioning/README.md#certificate-claiming)

examples/platform/infineon/trustm/DeviceAttestationCredsExampleTrustM.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232

3333
/* Device attestation key ids for Trust M */
3434
#define DEV_ATTESTATION_KEY_ID 0xE0F0
35-
#define DEV_ATTESTATION_CERT_ID 0xE0E3
35+
#define DEV_ATTESTATION_CERT_ID 0xE0E0
3636
#define PAI_CERT_ID 0xE0E8
3737
#define CERT_DECLARATION_ID 0xF1E0
3838

0 commit comments

Comments
 (0)