This package contains security tools for creating keys, creating certificates, signing user applications, and provisioning Infineon MCUs.
Table of Contents
- Prerequisites
- Standalone Executable
- Installing From Sources
- Supported Devices
- Interface and Usage
- Logging
- Known Issues
- Error Handling
- License and Contributions
Prerequisites
- Python 3.9 - 3.14 if not using the executable.
- Installed Infineon OpenOCD
- Ensure the KitProg3 programming mode is CMSIS-DAP Bulk
Standalone Executable
Edge Protect Tools can be used as a standalone application. The executable can be found in the tools/edgeprotecttools/bin directory of the Edge Protect Security Suite or Early Access Pack installation.
Installing From Sources
Alternatively Edge Protect Tools can be installed from the sources as a Python package. The source code is located in the tools/edgeprotecttools/src directory of the Edge Protect Security Suite or Early Access Pack installation.
Install Python on your computer. You can download it from https://www.python.org/downloads/. Set up the appropriate environment variable(s) for your operating system.
Installing Package
Make sure that you have the latest version of pip installed, use the following command.
$ python -m pip install --upgrade pip
Run the following command, from the Early Access Pack or Edge Protect Security Suite directory.
$ python -m pip install tools/edgeprotecttools/src
Updating Package
To update the already installed package, run the following command from the Early Access Pack or Edge Protect Security Suite directory.
$ python -m pip install --upgrade --force-reinstall tools/edgeprotecttools/src
Note: There may be some pip dependency resolver errors. In most cases, these can be safely ignored.
Note: You can use the following command to show the path to the installed package
$ python -m pip show edgeprotecttools.
Supported Devices
| Device | Documentation |
|---|---|
| PSOC™ 64 Secure MCU | README_PSOC64.md |
| XMC5000, XMC7000 Industrial MCU | README_XMC.md |
| AIROC™ CYW20829/CYW89829 | README_CYW20829_CYW89829.md |
| AIROC™ CYW559xx | README_CYW559XX.md |
| PSOC™ Control C3 | README_PSOCC3.md |
| PSOC™ Control C3 M6/P6 | README_PSOCC3X6.md |
| PSOC™ Control C3 M7/P7, M8/P8 | README_PSOCC3X8.md |
| PSOC™ Edge E81/E82/E83/E84 | README_PSE8X.md |
Use device-list command for output of the supported devices list.
$ edgeprotecttools device-list
Interface and Usage
For instructions how to use common commands, see README_GENERAL.md.
For instructions how to use target-specific commands, see the corresponding readme file in the docs directory.
Logging
Every time the tool is invoked, a new log file is created in the logs directory of the project. By default, the console output has INFO logging severity. The log file contains the DEBUG logging severity.
Known Issues
Installation Failure on macOS Big Sur Using pip
Details
During the installation of the package via pip on macOS Big Sur, the following exception is raised:
...
distutils.errors.DistutilsError: Setup script exited with error: SandboxViolation:
mkdir('/private/var/root/Library/Caches/com.apple.python/private/tmp/easy_install-y8c1npmz', 511) {}
The package setup script has attempted to modify files on your system
that are not within the EasyInstall build area, and has been aborted.
This package cannot be safely installed by EasyInstall, and may not
support alternate installation locations even if you run its setup
script by hand. Please inform the package's author and the EasyInstall
maintainers to find out if a fix or workaround is available.
Resolution
Upgrade the pip package running the following command from the terminal: python3 -m pip install --upgrade pip.
LibraryNotFoundError During Runtime on Ubuntu 24.04
Details
During the runtime of the package on Ubuntu 24.04, the following exception is raised:
oscrypto.errors.LibraryNotFoundError: Error detecting the version of libcrypto
Workaround
Consider using an executable file. See Standalone Executable.
Resolution
Upgrade the oscrypto package running the following command from the terminal: pip install --upgrade --force-reinstall git+https://github.com/wbond/oscrypto.git@d5f3437.
Error Handling
Refer to the guidelines on how to resolve errors.
License and Contributions
The software is provided under the Apache-2.0 license. Contributions to this project are accepted under the same license. This project contains code from other projects. The original license text is included in those source files.
Changelog
All notable changes to this project will be documented in this file.
2.3.0
Added
- Support for PSOC™ Control C3 - PSC3P7xx, PSC3M7xx, PSC3P8xx, PSC3M8xx
Changed
- PSOC™ Control C3 P6/M6: Aligned the default policy DFU configuration and listen-window value with the silicon defaults
2.2.0
Added
- Added native Apple Silicon (ARM) support for the macOS package
- Added configurable DFU transfer data length for serial interfaces; default remains 0x10
2.1.0
Added
- PSOC™ Control C3 P6/M6 support
2.0.0
Added
- PSOC™ Edge E8x B1 revision support
- PSOC™ Edge E8x B1 is now the default revision for pse8xs2 and pse8xs4 target families
- Support for XMC5000 device
1.7.0
Added
- Support for LMS, XMSS, and ML-DSA PQC algorithms (key generation, signing, and verification)
- Added "sign" command for signing any binary data
- PSOC™ Control C3 secure key installation
1.6.1
Changed
- Optimized encryption algorithm for faster processing of large images using ECB cipher mode
1.6.0
Added
- Support for PSOC™ Edge E81, E82, E83, E84 series
- Support for AIROC™ CYW89829 B1 MCU
- Signer/Combiner symbol file feature for variable interpolation
- Intel HEX regions relocation feature
Changed
- PSOC™ Control C3: "listen_window" value from "1 ms" to "2 ms" in "policy_oem_provisioning.json"
- CYW559xx: Align the certificate chain address in the OTA image to a 256-byte boundary
1.5.0
Added
- CYW559xx device erase command
- CYW559xx custom encryption IV
- CYW20829 encryption in NORMAL_NO_SECURE LCS
Changed
- Dropped support for Python 3.8
1.4.0
Added
- Support for AIROC™ CYW20829 revision B1
- Application encryption for AIROC™ CYW559xx
- OTA image generation for AIROC™ CYW559xx
Changed
- PSOC™ Control C3 integrity exam certificate
- Replaced lief package with pyelftools
1.3.0
Added
- X.509 certificates generation and verification
- Device certificate generation for CYW559xx
1.2.0
Added
- Support for PSOC C3 device
- Reading device CSR from CYW559xx
1.1.0
Added
- Support for CYW559xx device
1.0.0
Added
- Backward compatibility with the CySecureTools 6.1.0 package
- Combiner/Signer tool
Metadata
Release files for edgeprotecttools 2.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| edgeprotecttools-2.3.0.tar.gz | 4.9 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| edgeprotecttools-2.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.2 MB
Release files / edgeprotecttools-2.3.0.tar.gz
| Download URL | edgeprotecttools-2.3.0.tar.gz |
|---|---|
| Size | 4.9 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d403f0abd7ddad110e6d7f1b6a256eaa30fb495794f0f0263343b6251079282d
|
|
BLAKE2b-256 checksum How to use checksums |
a6f4402d3f6507b47927a6a0576f3c88a08c135dd255cfa12b83a3891d782071
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.12
|
Release files / edgeprotecttools-2.3.0-py3-none-any.whl
| Download URL | edgeprotecttools-2.3.0-py3-none-any.whl |
|---|---|
| Size | 6.3 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
40fec0ce7ec0f8995d2c23c2c3828def961dd4a8262889161f8a7eba6be40ce6
|
|
BLAKE2b-256 checksum How to use checksums |
07b714b495d4b850ddace5e76e63a1b5a1b2347aa6b3a4b8d0bdebc49153be1c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.12
|