edgeprotecttools 1.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (422) hide show
  1. edgeprotecttools-1.0.0/CHANGELOG.md +9 -0
  2. edgeprotecttools-1.0.0/EULA +211 -0
  3. edgeprotecttools-1.0.0/LICENSE +165 -0
  4. edgeprotecttools-1.0.0/MANIFEST.in +7 -0
  5. edgeprotecttools-1.0.0/PKG-INFO +247 -0
  6. edgeprotecttools-1.0.0/README.md +207 -0
  7. edgeprotecttools-1.0.0/docs/README_CYW20829.md +722 -0
  8. edgeprotecttools-1.0.0/docs/README_ERRORS.md +24 -0
  9. edgeprotecttools-1.0.0/docs/README_GENERAL.md +528 -0
  10. edgeprotecttools-1.0.0/docs/README_PSOC64.md +785 -0
  11. edgeprotecttools-1.0.0/docs/README_SIGNER_COMBINER.md +999 -0
  12. edgeprotecttools-1.0.0/docs/README_XMC7XXX.md +255 -0
  13. edgeprotecttools-1.0.0/edgeprotecttools.egg-info/PKG-INFO +247 -0
  14. edgeprotecttools-1.0.0/edgeprotecttools.egg-info/SOURCES.txt +420 -0
  15. edgeprotecttools-1.0.0/edgeprotecttools.egg-info/dependency_links.txt +1 -0
  16. edgeprotecttools-1.0.0/edgeprotecttools.egg-info/entry_points.txt +3 -0
  17. edgeprotecttools-1.0.0/edgeprotecttools.egg-info/requires.txt +10 -0
  18. edgeprotecttools-1.0.0/edgeprotecttools.egg-info/top_level.txt +1 -0
  19. edgeprotecttools-1.0.0/pyproject.toml +3 -0
  20. edgeprotecttools-1.0.0/setup.cfg +4 -0
  21. edgeprotecttools-1.0.0/setup.py +80 -0
  22. edgeprotecttools-1.0.0/src/__about__.py +21 -0
  23. edgeprotecttools-1.0.0/src/__init__.py +17 -0
  24. edgeprotecttools-1.0.0/src/__main__.py +25 -0
  25. edgeprotecttools-1.0.0/src/api_common.py +1052 -0
  26. edgeprotecttools-1.0.0/src/api_mxs40sv2.py +261 -0
  27. edgeprotecttools-1.0.0/src/api_mxs40v1.py +420 -0
  28. edgeprotecttools-1.0.0/src/api_traveo_t2g.py +120 -0
  29. edgeprotecttools-1.0.0/src/cli.py +1250 -0
  30. edgeprotecttools-1.0.0/src/cli_creator.py +166 -0
  31. edgeprotecttools-1.0.0/src/cli_mxs40sv2.py +793 -0
  32. edgeprotecttools-1.0.0/src/cli_mxs40v1.py +661 -0
  33. edgeprotecttools-1.0.0/src/cli_traveo_t2g.py +142 -0
  34. edgeprotecttools-1.0.0/src/core/__init__.py +29 -0
  35. edgeprotecttools-1.0.0/src/core/bitops.py +31 -0
  36. edgeprotecttools-1.0.0/src/core/connect_helper.py +146 -0
  37. edgeprotecttools-1.0.0/src/core/cose.py +185 -0
  38. edgeprotecttools-1.0.0/src/core/crc.py +47 -0
  39. edgeprotecttools-1.0.0/src/core/cy_bootloader_map_parser.py +61 -0
  40. edgeprotecttools-1.0.0/src/core/dependecy_validator.py +41 -0
  41. edgeprotecttools-1.0.0/src/core/deprecated.py +31 -0
  42. edgeprotecttools-1.0.0/src/core/entrance_exam_base.py +88 -0
  43. edgeprotecttools-1.0.0/src/core/enums.py +79 -0
  44. edgeprotecttools-1.0.0/src/core/exceptions.py +37 -0
  45. edgeprotecttools-1.0.0/src/core/json_helper.py +43 -0
  46. edgeprotecttools-1.0.0/src/core/json_validator.py +128 -0
  47. edgeprotecttools-1.0.0/src/core/jsonpath.py +56 -0
  48. edgeprotecttools-1.0.0/src/core/key_data.py +60 -0
  49. edgeprotecttools-1.0.0/src/core/key_handlers/__init__.py +130 -0
  50. edgeprotecttools-1.0.0/src/core/key_handlers/ec_handler.py +202 -0
  51. edgeprotecttools-1.0.0/src/core/key_handlers/pem_key.py +105 -0
  52. edgeprotecttools-1.0.0/src/core/key_handlers/rsa_handler.py +462 -0
  53. edgeprotecttools-1.0.0/src/core/key_helper.py +79 -0
  54. edgeprotecttools-1.0.0/src/core/key_validator.py +160 -0
  55. edgeprotecttools-1.0.0/src/core/logging_configurator.py +90 -0
  56. edgeprotecttools-1.0.0/src/core/logging_formatter.py +90 -0
  57. edgeprotecttools-1.0.0/src/core/memory_area.py +22 -0
  58. edgeprotecttools-1.0.0/src/core/memory_map_base.py +94 -0
  59. edgeprotecttools-1.0.0/src/core/mtb_tools_discovery.py +163 -0
  60. edgeprotecttools-1.0.0/src/core/ocd_settings.py +83 -0
  61. edgeprotecttools-1.0.0/src/core/policy_filter_base.py +27 -0
  62. edgeprotecttools-1.0.0/src/core/policy_parser_base.py +134 -0
  63. edgeprotecttools-1.0.0/src/core/policy_validator_base.py +33 -0
  64. edgeprotecttools-1.0.0/src/core/progress_bar.py +25 -0
  65. edgeprotecttools-1.0.0/src/core/project_base.py +299 -0
  66. edgeprotecttools-1.0.0/src/core/provisioning_flows/__init__.py +0 -0
  67. edgeprotecttools-1.0.0/src/core/provisioning_flows/app_loading_flow.py +123 -0
  68. edgeprotecttools-1.0.0/src/core/provisioning_flows/application.py +242 -0
  69. edgeprotecttools-1.0.0/src/core/ram_app_loader_base.py +29 -0
  70. edgeprotecttools-1.0.0/src/core/register_map_base.py +138 -0
  71. edgeprotecttools-1.0.0/src/core/signtool_base.py +161 -0
  72. edgeprotecttools-1.0.0/src/core/status_codes_base.py +46 -0
  73. edgeprotecttools-1.0.0/src/core/strategy_context/__init__.py +24 -0
  74. edgeprotecttools-1.0.0/src/core/strategy_context/cert_strategy_ctx.py +85 -0
  75. edgeprotecttools-1.0.0/src/core/strategy_context/encrypted_programming_strategy_ctx.py +82 -0
  76. edgeprotecttools-1.0.0/src/core/strategy_context/prov_packet_strategy_ctx.py +73 -0
  77. edgeprotecttools-1.0.0/src/core/strategy_context/provisioning_strategy_ctx.py +98 -0
  78. edgeprotecttools-1.0.0/src/core/strops.py +21 -0
  79. edgeprotecttools-1.0.0/src/core/target_builder.py +175 -0
  80. edgeprotecttools-1.0.0/src/core/target_director.py +454 -0
  81. edgeprotecttools-1.0.0/src/core/version_provider.py +159 -0
  82. edgeprotecttools-1.0.0/src/core/voltage_tool.py +31 -0
  83. edgeprotecttools-1.0.0/src/data/cy_bootloader_map.json +42 -0
  84. edgeprotecttools-1.0.0/src/data/global_settings.json +26 -0
  85. edgeprotecttools-1.0.0/src/data/project_settings.json +28 -0
  86. edgeprotecttools-1.0.0/src/execute/__init__.py +0 -0
  87. edgeprotecttools-1.0.0/src/execute/cbor_parser.py +51 -0
  88. edgeprotecttools-1.0.0/src/execute/combine_sign_tool/__init__.py +21 -0
  89. edgeprotecttools-1.0.0/src/execute/combine_sign_tool/command_enum.py +22 -0
  90. edgeprotecttools-1.0.0/src/execute/combine_sign_tool/command_group.py +92 -0
  91. edgeprotecttools-1.0.0/src/execute/combine_sign_tool/command_json_validator.py +47 -0
  92. edgeprotecttools-1.0.0/src/execute/combine_sign_tool/command_parser.py +79 -0
  93. edgeprotecttools-1.0.0/src/execute/combine_sign_tool/command_processor.py +60 -0
  94. edgeprotecttools-1.0.0/src/execute/combine_sign_tool/commands/__init__.py +24 -0
  95. edgeprotecttools-1.0.0/src/execute/combine_sign_tool/commands/command.py +82 -0
  96. edgeprotecttools-1.0.0/src/execute/combine_sign_tool/commands/command_add_signature.py +168 -0
  97. edgeprotecttools-1.0.0/src/execute/combine_sign_tool/commands/command_extract_payload.py +73 -0
  98. edgeprotecttools-1.0.0/src/execute/combine_sign_tool/commands/command_hex_segment.py +99 -0
  99. edgeprotecttools-1.0.0/src/execute/combine_sign_tool/commands/command_merge.py +182 -0
  100. edgeprotecttools-1.0.0/src/execute/combine_sign_tool/commands/command_shift.py +118 -0
  101. edgeprotecttools-1.0.0/src/execute/combine_sign_tool/commands/command_sign.py +189 -0
  102. edgeprotecttools-1.0.0/src/execute/combine_sign_tool/commands/command_subprocess_runner.py +79 -0
  103. edgeprotecttools-1.0.0/src/execute/combine_sign_tool/commands/examples/add-signature.json +33 -0
  104. edgeprotecttools-1.0.0/src/execute/combine_sign_tool/commands/examples/custom-script.json +22 -0
  105. edgeprotecttools-1.0.0/src/execute/combine_sign_tool/commands/examples/extract-payload.json +27 -0
  106. edgeprotecttools-1.0.0/src/execute/combine_sign_tool/commands/examples/hex-segment.json +29 -0
  107. edgeprotecttools-1.0.0/src/execute/combine_sign_tool/commands/examples/merge.json +36 -0
  108. edgeprotecttools-1.0.0/src/execute/combine_sign_tool/commands/examples/shift.json +29 -0
  109. edgeprotecttools-1.0.0/src/execute/combine_sign_tool/commands/examples/sign.json +36 -0
  110. edgeprotecttools-1.0.0/src/execute/combine_sign_tool/schemas/add_signature_schema.json +90 -0
  111. edgeprotecttools-1.0.0/src/execute/combine_sign_tool/schemas/custom_script_schema.json +41 -0
  112. edgeprotecttools-1.0.0/src/execute/combine_sign_tool/schemas/extract_payload_schema.json +60 -0
  113. edgeprotecttools-1.0.0/src/execute/combine_sign_tool/schemas/hex_segment_schema.json +76 -0
  114. edgeprotecttools-1.0.0/src/execute/combine_sign_tool/schemas/merge_schema.json +71 -0
  115. edgeprotecttools-1.0.0/src/execute/combine_sign_tool/schemas/root_schema.json +80 -0
  116. edgeprotecttools-1.0.0/src/execute/combine_sign_tool/schemas/shift_schema.json +75 -0
  117. edgeprotecttools-1.0.0/src/execute/combine_sign_tool/schemas/sign_schema.json +298 -0
  118. edgeprotecttools-1.0.0/src/execute/dfuht_commands/__init__.py +17 -0
  119. edgeprotecttools-1.0.0/src/execute/dfuht_commands/dfuht_packet.py +212 -0
  120. edgeprotecttools-1.0.0/src/execute/dfuht_commands/dfuht_packet_creator.py +96 -0
  121. edgeprotecttools-1.0.0/src/execute/dump.py +53 -0
  122. edgeprotecttools-1.0.0/src/execute/encryptor_aes.py +72 -0
  123. edgeprotecttools-1.0.0/src/execute/image_signing/__init__.py +21 -0
  124. edgeprotecttools-1.0.0/src/execute/image_signing/image.py +363 -0
  125. edgeprotecttools-1.0.0/src/execute/image_signing/image_config_parser.py +46 -0
  126. edgeprotecttools-1.0.0/src/execute/image_signing/merge_tool.py +77 -0
  127. edgeprotecttools-1.0.0/src/execute/image_signing/multi_image_packet.py +216 -0
  128. edgeprotecttools-1.0.0/src/execute/image_signing/sign_tool.py +547 -0
  129. edgeprotecttools-1.0.0/src/execute/image_signing/split_tool.py +59 -0
  130. edgeprotecttools-1.0.0/src/execute/imgtool/__init__.py +17 -0
  131. edgeprotecttools-1.0.0/src/execute/imgtool/boot_record.py +49 -0
  132. edgeprotecttools-1.0.0/src/execute/imgtool/custom_encryptor.py +35 -0
  133. edgeprotecttools-1.0.0/src/execute/imgtool/image.py +661 -0
  134. edgeprotecttools-1.0.0/src/execute/imgtool/keys/__init__.py +105 -0
  135. edgeprotecttools-1.0.0/src/execute/imgtool/keys/ecdsa.py +289 -0
  136. edgeprotecttools-1.0.0/src/execute/imgtool/keys/ecdsa_test.py +101 -0
  137. edgeprotecttools-1.0.0/src/execute/imgtool/keys/ed25519.py +107 -0
  138. edgeprotecttools-1.0.0/src/execute/imgtool/keys/ed25519_test.py +105 -0
  139. edgeprotecttools-1.0.0/src/execute/imgtool/keys/general.py +47 -0
  140. edgeprotecttools-1.0.0/src/execute/imgtool/keys/privatebytes.py +16 -0
  141. edgeprotecttools-1.0.0/src/execute/imgtool/keys/rsa.py +165 -0
  142. edgeprotecttools-1.0.0/src/execute/imgtool/keys/rsa_test.py +117 -0
  143. edgeprotecttools-1.0.0/src/execute/imgtool/keys/x25519.py +109 -0
  144. edgeprotecttools-1.0.0/src/execute/imgtool/main.py +449 -0
  145. edgeprotecttools-1.0.0/src/execute/imgtool/version.py +55 -0
  146. edgeprotecttools-1.0.0/src/execute/jwt.py +146 -0
  147. edgeprotecttools-1.0.0/src/execute/key_reader.py +108 -0
  148. edgeprotecttools-1.0.0/src/execute/keygens/__init__.py +0 -0
  149. edgeprotecttools-1.0.0/src/execute/keygens/aes_keygen.py +50 -0
  150. edgeprotecttools-1.0.0/src/execute/keygens/ec_keygen.py +145 -0
  151. edgeprotecttools-1.0.0/src/execute/keygens/rsa_keygen.py +131 -0
  152. edgeprotecttools-1.0.0/src/execute/programmer/__init__.py +0 -0
  153. edgeprotecttools-1.0.0/src/execute/programmer/base.py +225 -0
  154. edgeprotecttools-1.0.0/src/execute/programmer/dfuht_runner.py +246 -0
  155. edgeprotecttools-1.0.0/src/execute/programmer/dfuht_wrapper.py +250 -0
  156. edgeprotecttools-1.0.0/src/execute/programmer/openocd_server.py +385 -0
  157. edgeprotecttools-1.0.0/src/execute/programmer/openocd_target_map.json +24 -0
  158. edgeprotecttools-1.0.0/src/execute/programmer/openocd_wrapper.py +622 -0
  159. edgeprotecttools-1.0.0/src/execute/programmer/programmer.py +38 -0
  160. edgeprotecttools-1.0.0/src/execute/project_init/__init__.py +17 -0
  161. edgeprotecttools-1.0.0/src/execute/project_init/project_init.py +235 -0
  162. edgeprotecttools-1.0.0/src/execute/silicon_data_reader.py +27 -0
  163. edgeprotecttools-1.0.0/src/main.py +68 -0
  164. edgeprotecttools-1.0.0/src/pkg_globals.py +92 -0
  165. edgeprotecttools-1.0.0/src/pyinstaller_wrapper.py +20 -0
  166. edgeprotecttools-1.0.0/src/targets/__init__.py +124 -0
  167. edgeprotecttools-1.0.0/src/targets/common/__init__.py +0 -0
  168. edgeprotecttools-1.0.0/src/targets/common/dependencies_validation.py +40 -0
  169. edgeprotecttools-1.0.0/src/targets/common/flow_parser.py +101 -0
  170. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/__init__.py +28 -0
  171. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/asset.py +42 -0
  172. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/asset_builder.py +38 -0
  173. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/asset_enums.py +177 -0
  174. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/cert_mxs40sv2.py +167 -0
  175. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/data/__init__.py +17 -0
  176. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/data/ram_app_status_codes.py +183 -0
  177. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/debug_cert/__init__.py +20 -0
  178. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/debug_cert/advanced_validators/__init__.py +17 -0
  179. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/debug_cert/advanced_validators/device_id_validator.py +47 -0
  180. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/debug_cert/debug_cert_mxs40sv2.py +121 -0
  181. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/debug_cert/debug_cert_parser_mxs40sv2.py +135 -0
  182. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/debug_cert/token_advanced_validator.py +31 -0
  183. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/debug_cert/token_template_validator.py +42 -0
  184. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/debug_cert/token_version_verifier.py +48 -0
  185. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/dependencies_validator/__init__.py +22 -0
  186. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/dependencies_validator/access_restrictions_validator.py +50 -0
  187. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/dependencies_validator/encryption_key_validator.py +33 -0
  188. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/dependencies_validator/hci_mode_validator.py +51 -0
  189. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/dependencies_validator/nv_counter_validator.py +84 -0
  190. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/dependencies_validator/pre_build_keys_exist_validator.py +43 -0
  191. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/dependencies_validator/revoke_oem_encryption_validator.py +32 -0
  192. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/dependency_validator_mxs40sv2.py +40 -0
  193. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/enums.py +47 -0
  194. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/image_signing/__init__.py +18 -0
  195. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/image_signing/encrypt_mxv40sv2.py +127 -0
  196. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/image_signing/signtool_mxv40sv2.py +468 -0
  197. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/image_signing/xip_encryptor_mxs40sv2.py +35 -0
  198. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/integrity_exam_mxs40sv2.py +463 -0
  199. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/key_source_mxs40sv2.py +124 -0
  200. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/key_validator_mxs40sv2.py +26 -0
  201. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/nv_counter_calc.py +86 -0
  202. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/policy_validator_mxs40sv2.py +44 -0
  203. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/project_init_mxs40sv2.py +61 -0
  204. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/provisioning/__init__.py +19 -0
  205. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/provisioning/provision_device_mxs40sv2.py +173 -0
  206. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/provisioning/ram_app_loader_mxs40sv2.py +53 -0
  207. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/provisioning/swd_loader_mxs40sv2.py +247 -0
  208. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/schemas/cyw20829_no_secure.json_schema +502 -0
  209. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/schemas/cyw20829_reprovisioning_no_secure.json_schema +54 -0
  210. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/schemas/cyw20829_reprovisioning_secure.json_schema +183 -0
  211. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/schemas/cyw20829_secure.json_schema +589 -0
  212. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/schemas/debug_cert_schema.json +200 -0
  213. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/silicon_data_reader_mxs40sv2.py +104 -0
  214. edgeprotecttools-1.0.0/src/targets/common/mxs40sv2/version_provider_mxs40sv2.py +84 -0
  215. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/__init__.py +32 -0
  216. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/bootloader_provider_mxs40v1.py +86 -0
  217. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/data/__init__.py +17 -0
  218. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/data/mxs40v1_sfb_status_codes.py +387 -0
  219. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/encrypted_programming/__init__.py +17 -0
  220. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/encrypted_programming/aes_cipher.py +73 -0
  221. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/encrypted_programming/aes_header.py +102 -0
  222. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/encrypted_programming/aes_header_strategy.py +134 -0
  223. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/encrypted_programming/ecc_kdf.py +79 -0
  224. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/encrypted_programming/encrypted_programming.py +95 -0
  225. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/entrance_exam/__init__.py +18 -0
  226. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/entrance_exam/exam_cyb06xx7.py +208 -0
  227. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/entrance_exam/exam_mxs40v1.py +222 -0
  228. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/enums.py +33 -0
  229. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/image_cert.py +155 -0
  230. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/json/policy_template.json +168 -0
  231. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/json/schema.json_schema +382 -0
  232. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/key_reader_mxs40v1.py +56 -0
  233. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/key_source_mxs40v1.py +26 -0
  234. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/policy_filter.py +134 -0
  235. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/policy_parser.py +432 -0
  236. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/policy_validator.py +1129 -0
  237. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/prebuilt/cy_pub_key.json +9 -0
  238. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/prebuilt/hsm_state.json +18 -0
  239. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/prebuilt/oem_state.json +18 -0
  240. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/project_init_mxs40v1.py +212 -0
  241. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/provisioning/__init__.py +17 -0
  242. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/provisioning/provision_device_mxs40v1.py +518 -0
  243. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/provisioning/sys_call.py +614 -0
  244. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/provisioning_packet/__init__.py +17 -0
  245. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/provisioning_packet/lib/__init__.py +0 -0
  246. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/provisioning_packet/lib/cyprov_crypto.py +174 -0
  247. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/provisioning_packet/lib/cyprov_customer.py +43 -0
  248. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/provisioning_packet/lib/cyprov_dev.py +88 -0
  249. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/provisioning_packet/lib/cyprov_entity.py +53 -0
  250. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/provisioning_packet/lib/cyprov_hsm.py +88 -0
  251. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/provisioning_packet/lib/cyprov_oem.py +84 -0
  252. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/provisioning_packet/lib/cyprov_types.py +31 -0
  253. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/provisioning_packet/provisioning_packet_mxs40v1.py +228 -0
  254. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/signtool_mxs40v1.py +453 -0
  255. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/silicon_data_parser.py +48 -0
  256. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/silicon_data_reader_mxs40v1.py +77 -0
  257. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/version_provider_mxs40v1.py +212 -0
  258. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/voltage_tool/__init__.py +17 -0
  259. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/voltage_tool/lvd_voltage_picker.py +94 -0
  260. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/voltage_tool/voltage_tool_mxs40v1.py +38 -0
  261. edgeprotecttools-1.0.0/src/targets/common/mxs40v1/x509_mxs40v1.py +263 -0
  262. edgeprotecttools-1.0.0/src/targets/common/policy_parser_primitives.py +104 -0
  263. edgeprotecttools-1.0.0/src/targets/common/policy_validator.py +122 -0
  264. edgeprotecttools-1.0.0/src/targets/common/prebuilt/bootloader_pub_key.json +8 -0
  265. edgeprotecttools-1.0.0/src/targets/common/traveo_t2g/__init__.py +17 -0
  266. edgeprotecttools-1.0.0/src/targets/common/traveo_t2g/signtool_xmc7xxx.py +415 -0
  267. edgeprotecttools-1.0.0/src/targets/cyb06xx5/__init__.py +52 -0
  268. edgeprotecttools-1.0.0/src/targets/cyb06xx5/keys/cy_pub_key.json +9 -0
  269. edgeprotecttools-1.0.0/src/targets/cyb06xx5/maps/__init__.py +0 -0
  270. edgeprotecttools-1.0.0/src/targets/cyb06xx5/maps/memory_map.py +71 -0
  271. edgeprotecttools-1.0.0/src/targets/cyb06xx5/maps/register_map.py +108 -0
  272. edgeprotecttools-1.0.0/src/targets/cyb06xx5/packets/control_dap_cert.json +24 -0
  273. edgeprotecttools-1.0.0/src/targets/cyb06xx5/packets/cy_auth_512k_b0_sample.jwt +1 -0
  274. edgeprotecttools-1.0.0/src/targets/cyb06xx5/packets/ec_key_tmpl.json +4 -0
  275. edgeprotecttools-1.0.0/src/targets/cyb06xx5/packets/entrance_exam.jwt +1 -0
  276. edgeprotecttools-1.0.0/src/targets/cyb06xx5/policy/policy_multi_CM0_CM4.json +179 -0
  277. edgeprotecttools-1.0.0/src/targets/cyb06xx5/policy/policy_multi_CM0_CM4_smif.json +179 -0
  278. edgeprotecttools-1.0.0/src/targets/cyb06xx5/policy/policy_single_CM0_CM4.json +173 -0
  279. edgeprotecttools-1.0.0/src/targets/cyb06xx5/policy/policy_single_CM0_CM4_smif.json +173 -0
  280. edgeprotecttools-1.0.0/src/targets/cyb06xx5/prebuilt/CyBootloader_Release/CypressBootloader_CM0p.hex +2993 -0
  281. edgeprotecttools-1.0.0/src/targets/cyb06xx5/prebuilt/CyBootloader_Release/CypressBootloader_CM0p.jwt +1 -0
  282. edgeprotecttools-1.0.0/src/targets/cyb06xx5/prebuilt/CyBootloader_WithLogs/CypressBootloader_CM0p.hex +3295 -0
  283. edgeprotecttools-1.0.0/src/targets/cyb06xx5/prebuilt/CyBootloader_WithLogs/CypressBootloader_CM0p.jwt +1 -0
  284. edgeprotecttools-1.0.0/src/targets/cyb06xx5/target_builder.py +130 -0
  285. edgeprotecttools-1.0.0/src/targets/cyb06xx7/__init__.py +48 -0
  286. edgeprotecttools-1.0.0/src/targets/cyb06xx7/keys/cy_pub_key.json +9 -0
  287. edgeprotecttools-1.0.0/src/targets/cyb06xx7/maps/__init__.py +0 -0
  288. edgeprotecttools-1.0.0/src/targets/cyb06xx7/maps/memory_map.py +88 -0
  289. edgeprotecttools-1.0.0/src/targets/cyb06xx7/maps/register_map.py +108 -0
  290. edgeprotecttools-1.0.0/src/targets/cyb06xx7/packets/control_dap_cert.json +24 -0
  291. edgeprotecttools-1.0.0/src/targets/cyb06xx7/packets/cy_auth_1m_b0_sample.jwt +1 -0
  292. edgeprotecttools-1.0.0/src/targets/cyb06xx7/packets/ec_key_tmpl.json +4 -0
  293. edgeprotecttools-1.0.0/src/targets/cyb06xx7/packets/entrance_exam.jwt +1 -0
  294. edgeprotecttools-1.0.0/src/targets/cyb06xx7/policy/policy_multi_CM0_CM4.json +174 -0
  295. edgeprotecttools-1.0.0/src/targets/cyb06xx7/policy/policy_multi_CM0_CM4_smif.json +174 -0
  296. edgeprotecttools-1.0.0/src/targets/cyb06xx7/policy/policy_single_CM0_CM4.json +168 -0
  297. edgeprotecttools-1.0.0/src/targets/cyb06xx7/policy/policy_single_CM0_CM4_smif.json +168 -0
  298. edgeprotecttools-1.0.0/src/targets/cyb06xx7/prebuilt/CyBootloader_Release/CypressBootloader_CM0p.hex +3086 -0
  299. edgeprotecttools-1.0.0/src/targets/cyb06xx7/prebuilt/CyBootloader_Release/CypressBootloader_CM0p.jwt +1 -0
  300. edgeprotecttools-1.0.0/src/targets/cyb06xx7/prebuilt/CyBootloader_WithLogs/CypressBootloader_CM0p.hex +3348 -0
  301. edgeprotecttools-1.0.0/src/targets/cyb06xx7/prebuilt/CyBootloader_WithLogs/CypressBootloader_CM0p.jwt +1 -0
  302. edgeprotecttools-1.0.0/src/targets/cyb06xx7/target_builder.py +126 -0
  303. edgeprotecttools-1.0.0/src/targets/cyb06xxa/__init__.py +34 -0
  304. edgeprotecttools-1.0.0/src/targets/cyb06xxa/keys/cy_pub_key.json +9 -0
  305. edgeprotecttools-1.0.0/src/targets/cyb06xxa/maps/__init__.py +0 -0
  306. edgeprotecttools-1.0.0/src/targets/cyb06xxa/maps/memory_map.py +71 -0
  307. edgeprotecttools-1.0.0/src/targets/cyb06xxa/maps/register_map.py +109 -0
  308. edgeprotecttools-1.0.0/src/targets/cyb06xxa/packets/control_dap_cert.json +24 -0
  309. edgeprotecttools-1.0.0/src/targets/cyb06xxa/packets/cy_auth_2m_b0_sample.jwt +1 -0
  310. edgeprotecttools-1.0.0/src/targets/cyb06xxa/packets/ec_key_tmpl.json +4 -0
  311. edgeprotecttools-1.0.0/src/targets/cyb06xxa/packets/entrance_exam.jwt +1 -0
  312. edgeprotecttools-1.0.0/src/targets/cyb06xxa/policy/policy_multi_CM0_CM4_smif_swap.json +195 -0
  313. edgeprotecttools-1.0.0/src/targets/cyb06xxa/policy/policy_multi_CM0_CM4_swap.json +193 -0
  314. edgeprotecttools-1.0.0/src/targets/cyb06xxa/policy/policy_single_CM0_CM4_smif_swap.json +188 -0
  315. edgeprotecttools-1.0.0/src/targets/cyb06xxa/policy/policy_single_CM0_CM4_swap.json +187 -0
  316. edgeprotecttools-1.0.0/src/targets/cyb06xxa/prebuilt/CyBootloader_Release/CypressBootloader_CM0p.hex +3529 -0
  317. edgeprotecttools-1.0.0/src/targets/cyb06xxa/prebuilt/CyBootloader_Release/CypressBootloader_CM0p.jwt +1 -0
  318. edgeprotecttools-1.0.0/src/targets/cyb06xxa/prebuilt/CyBootloader_Release_swap/CypressBootloader_CM0p.hex +3086 -0
  319. edgeprotecttools-1.0.0/src/targets/cyb06xxa/prebuilt/CyBootloader_Release_swap/CypressBootloader_CM0p.jwt +1 -0
  320. edgeprotecttools-1.0.0/src/targets/cyb06xxa/prebuilt/CyBootloader_WithLogs/CypressBootloader_CM0p.hex +3836 -0
  321. edgeprotecttools-1.0.0/src/targets/cyb06xxa/prebuilt/CyBootloader_WithLogs/CypressBootloader_CM0p.jwt +1 -0
  322. edgeprotecttools-1.0.0/src/targets/cyb06xxa/prebuilt/CyBootloader_WithLogs_swap/CypressBootloader_CM0p.hex +3458 -0
  323. edgeprotecttools-1.0.0/src/targets/cyb06xxa/prebuilt/CyBootloader_WithLogs_swap/CypressBootloader_CM0p.jwt +1 -0
  324. edgeprotecttools-1.0.0/src/targets/cyb06xxa/target_builder.py +126 -0
  325. edgeprotecttools-1.0.0/src/targets/cys06xxa/__init__.py +34 -0
  326. edgeprotecttools-1.0.0/src/targets/cys06xxa/keys/cy_pub_key.json +9 -0
  327. edgeprotecttools-1.0.0/src/targets/cys06xxa/packets/control_dap_cert.json +24 -0
  328. edgeprotecttools-1.0.0/src/targets/cys06xxa/packets/cy_auth_2m_s0_sample.jwt +1 -0
  329. edgeprotecttools-1.0.0/src/targets/cys06xxa/packets/ec_key_tmpl.json +4 -0
  330. edgeprotecttools-1.0.0/src/targets/cys06xxa/packets/entrance_exam.jwt +1 -0
  331. edgeprotecttools-1.0.0/src/targets/cys06xxa/policy/policy_multi_CM0_CM4_smif_swap.json +195 -0
  332. edgeprotecttools-1.0.0/src/targets/cys06xxa/policy/policy_multi_CM0_CM4_swap.json +193 -0
  333. edgeprotecttools-1.0.0/src/targets/cys06xxa/policy/policy_single_CM0_CM4_smif_swap.json +188 -0
  334. edgeprotecttools-1.0.0/src/targets/cys06xxa/policy/policy_single_CM0_CM4_swap.json +187 -0
  335. edgeprotecttools-1.0.0/src/targets/cys06xxa/prebuilt/CyBootloader_Release/CypressBootloader_CM0p.hex +3529 -0
  336. edgeprotecttools-1.0.0/src/targets/cys06xxa/prebuilt/CyBootloader_Release/CypressBootloader_CM0p.jwt +1 -0
  337. edgeprotecttools-1.0.0/src/targets/cys06xxa/prebuilt/CyBootloader_Release_swap/CypressBootloader_CM0p.hex +3086 -0
  338. edgeprotecttools-1.0.0/src/targets/cys06xxa/prebuilt/CyBootloader_Release_swap/CypressBootloader_CM0p.jwt +1 -0
  339. edgeprotecttools-1.0.0/src/targets/cys06xxa/prebuilt/CyBootloader_WithLogs/CypressBootloader_CM0p.hex +3836 -0
  340. edgeprotecttools-1.0.0/src/targets/cys06xxa/prebuilt/CyBootloader_WithLogs/CypressBootloader_CM0p.jwt +1 -0
  341. edgeprotecttools-1.0.0/src/targets/cys06xxa/prebuilt/CyBootloader_WithLogs_swap/CypressBootloader_CM0p.hex +3458 -0
  342. edgeprotecttools-1.0.0/src/targets/cys06xxa/prebuilt/CyBootloader_WithLogs_swap/CypressBootloader_CM0p.jwt +1 -0
  343. edgeprotecttools-1.0.0/src/targets/cys06xxa/target_builder.py +21 -0
  344. edgeprotecttools-1.0.0/src/targets/cyw20829/__init__.py +36 -0
  345. edgeprotecttools-1.0.0/src/targets/cyw20829/flows/oem_assets.json +12 -0
  346. edgeprotecttools-1.0.0/src/targets/cyw20829/flows/prov_flows.json +45 -0
  347. edgeprotecttools-1.0.0/src/targets/cyw20829/flows/reprovisioning_assets.json +8 -0
  348. edgeprotecttools-1.0.0/src/targets/cyw20829/keys/pub_hci_0.pem +9 -0
  349. edgeprotecttools-1.0.0/src/targets/cyw20829/keys/pub_hci_1.pem +9 -0
  350. edgeprotecttools-1.0.0/src/targets/cyw20829/packets/apps/prov_oem/config.json +14 -0
  351. edgeprotecttools-1.0.0/src/targets/cyw20829/packets/apps/prov_oem/cyapp_prov_oem_signed_icv0.bin +0 -0
  352. edgeprotecttools-1.0.0/src/targets/cyw20829/packets/apps/prov_oem/info.txt +4 -0
  353. edgeprotecttools-1.0.0/src/targets/cyw20829/packets/apps/reprovisioning/config.json +14 -0
  354. edgeprotecttools-1.0.0/src/targets/cyw20829/packets/apps/reprovisioning/cyapp_reprovisioning_signed_icv0.bin +0 -0
  355. edgeprotecttools-1.0.0/src/targets/cyw20829/packets/apps/reprovisioning/info.txt +4 -0
  356. edgeprotecttools-1.0.0/src/targets/cyw20829/packets/apps/to_rma/config.json +16 -0
  357. edgeprotecttools-1.0.0/src/targets/cyw20829/packets/apps/to_rma/cyapp_to_rma_signed_icv0.bin +0 -0
  358. edgeprotecttools-1.0.0/src/targets/cyw20829/packets/apps/to_rma/info.txt +4 -0
  359. edgeprotecttools-1.0.0/src/targets/cyw20829/packets/debug_cert.json +37 -0
  360. edgeprotecttools-1.0.0/src/targets/cyw20829/packets/rsa_key_tmpl.json +5 -0
  361. edgeprotecttools-1.0.0/src/targets/cyw20829/policy/policy_hci_secure.json +145 -0
  362. edgeprotecttools-1.0.0/src/targets/cyw20829/policy/policy_no_secure.json +138 -0
  363. edgeprotecttools-1.0.0/src/targets/cyw20829/policy/policy_reprovisioning_no_secure.json +17 -0
  364. edgeprotecttools-1.0.0/src/targets/cyw20829/policy/policy_reprovisioning_secure.json +61 -0
  365. edgeprotecttools-1.0.0/src/targets/cyw20829/policy/policy_secure.json +194 -0
  366. edgeprotecttools-1.0.0/src/targets/cyw20829/target_builder.py +39 -0
  367. edgeprotecttools-1.0.0/src/targets/cyw20829_a0/__init__.py +29 -0
  368. edgeprotecttools-1.0.0/src/targets/cyw20829_a0/flows/oem_assets.json +12 -0
  369. edgeprotecttools-1.0.0/src/targets/cyw20829_a0/flows/prov_flows.json +45 -0
  370. edgeprotecttools-1.0.0/src/targets/cyw20829_a0/flows/reprovisioning_assets.json +8 -0
  371. edgeprotecttools-1.0.0/src/targets/cyw20829_a0/keys/pub_hci_0.pem +9 -0
  372. edgeprotecttools-1.0.0/src/targets/cyw20829_a0/keys/pub_hci_1.pem +9 -0
  373. edgeprotecttools-1.0.0/src/targets/cyw20829_a0/maps/__init__.py +0 -0
  374. edgeprotecttools-1.0.0/src/targets/cyw20829_a0/maps/asset_map.py +263 -0
  375. edgeprotecttools-1.0.0/src/targets/cyw20829_a0/maps/memory_map.py +43 -0
  376. edgeprotecttools-1.0.0/src/targets/cyw20829_a0/maps/register_map.py +79 -0
  377. edgeprotecttools-1.0.0/src/targets/cyw20829_a0/maps/reverse_asset_map.py +207 -0
  378. edgeprotecttools-1.0.0/src/targets/cyw20829_a0/packets/apps/prov_oem/config.json +14 -0
  379. edgeprotecttools-1.0.0/src/targets/cyw20829_a0/packets/apps/prov_oem/cyapp_prov_oem_signed_icv0.bin +0 -0
  380. edgeprotecttools-1.0.0/src/targets/cyw20829_a0/packets/apps/prov_oem/info.txt +4 -0
  381. edgeprotecttools-1.0.0/src/targets/cyw20829_a0/packets/apps/reprovisioning/config.json +14 -0
  382. edgeprotecttools-1.0.0/src/targets/cyw20829_a0/packets/apps/reprovisioning/cyapp_reprovisioning_signed_icv0.bin +0 -0
  383. edgeprotecttools-1.0.0/src/targets/cyw20829_a0/packets/apps/reprovisioning/info.txt +4 -0
  384. edgeprotecttools-1.0.0/src/targets/cyw20829_a0/packets/apps/to_rma/config.json +16 -0
  385. edgeprotecttools-1.0.0/src/targets/cyw20829_a0/packets/apps/to_rma/cyapp_to_rma_signed_icv0.bin +0 -0
  386. edgeprotecttools-1.0.0/src/targets/cyw20829_a0/packets/apps/to_rma/info.txt +4 -0
  387. edgeprotecttools-1.0.0/src/targets/cyw20829_a0/packets/debug_cert.json +37 -0
  388. edgeprotecttools-1.0.0/src/targets/cyw20829_a0/packets/rsa_key_tmpl.json +5 -0
  389. edgeprotecttools-1.0.0/src/targets/cyw20829_a0/policy/policy_hci_secure.json +145 -0
  390. edgeprotecttools-1.0.0/src/targets/cyw20829_a0/policy/policy_no_secure.json +138 -0
  391. edgeprotecttools-1.0.0/src/targets/cyw20829_a0/policy/policy_reprovisioning_no_secure.json +17 -0
  392. edgeprotecttools-1.0.0/src/targets/cyw20829_a0/policy/policy_reprovisioning_secure.json +60 -0
  393. edgeprotecttools-1.0.0/src/targets/cyw20829_a0/policy/policy_secure.json +193 -0
  394. edgeprotecttools-1.0.0/src/targets/cyw20829_a0/policy_generator.py +79 -0
  395. edgeprotecttools-1.0.0/src/targets/cyw20829_a0/policy_parser.py +368 -0
  396. edgeprotecttools-1.0.0/src/targets/cyw20829_a0/provisioning_packet.py +182 -0
  397. edgeprotecttools-1.0.0/src/targets/cyw20829_a0/target_builder.py +141 -0
  398. edgeprotecttools-1.0.0/src/targets/cyw89829/__init__.py +29 -0
  399. edgeprotecttools-1.0.0/src/targets/cyw89829/flows/oem_assets.json +12 -0
  400. edgeprotecttools-1.0.0/src/targets/cyw89829/flows/prov_flows.json +45 -0
  401. edgeprotecttools-1.0.0/src/targets/cyw89829/flows/reprovisioning_assets.json +8 -0
  402. edgeprotecttools-1.0.0/src/targets/cyw89829/keys/pub_hci_0.pem +9 -0
  403. edgeprotecttools-1.0.0/src/targets/cyw89829/keys/pub_hci_1.pem +9 -0
  404. edgeprotecttools-1.0.0/src/targets/cyw89829/packets/apps/prov_oem/config.json +14 -0
  405. edgeprotecttools-1.0.0/src/targets/cyw89829/packets/apps/prov_oem/cyapp_prov_oem_signed_icv0.bin +0 -0
  406. edgeprotecttools-1.0.0/src/targets/cyw89829/packets/apps/prov_oem/info.txt +4 -0
  407. edgeprotecttools-1.0.0/src/targets/cyw89829/packets/apps/reprovisioning/config.json +14 -0
  408. edgeprotecttools-1.0.0/src/targets/cyw89829/packets/apps/reprovisioning/cyapp_reprovisioning_signed_icv0.bin +0 -0
  409. edgeprotecttools-1.0.0/src/targets/cyw89829/packets/apps/reprovisioning/info.txt +4 -0
  410. edgeprotecttools-1.0.0/src/targets/cyw89829/packets/apps/to_rma/config.json +16 -0
  411. edgeprotecttools-1.0.0/src/targets/cyw89829/packets/apps/to_rma/cyapp_to_rma_signed_icv0.bin +0 -0
  412. edgeprotecttools-1.0.0/src/targets/cyw89829/packets/apps/to_rma/info.txt +4 -0
  413. edgeprotecttools-1.0.0/src/targets/cyw89829/packets/debug_cert.json +37 -0
  414. edgeprotecttools-1.0.0/src/targets/cyw89829/packets/rsa_key_tmpl.json +5 -0
  415. edgeprotecttools-1.0.0/src/targets/cyw89829/policy/policy_hci_secure.json +145 -0
  416. edgeprotecttools-1.0.0/src/targets/cyw89829/policy/policy_no_secure.json +138 -0
  417. edgeprotecttools-1.0.0/src/targets/cyw89829/policy/policy_reprovisioning_no_secure.json +17 -0
  418. edgeprotecttools-1.0.0/src/targets/cyw89829/policy/policy_reprovisioning_secure.json +61 -0
  419. edgeprotecttools-1.0.0/src/targets/cyw89829/policy/policy_secure.json +194 -0
  420. edgeprotecttools-1.0.0/src/targets/cyw89829/target_builder.py +39 -0
  421. edgeprotecttools-1.0.0/src/targets/xmc7xxx/__init__.py +34 -0
  422. edgeprotecttools-1.0.0/src/targets/xmc7xxx/target_builder.py +104 -0
@@ -0,0 +1,9 @@
1
+ # Changelog
2
+ All notable changes to this project will be documented in this file.
3
+
4
+ ## 1.0.0
5
+ ### Added
6
+ - Backward compatibility with the [CySecureTools 6.1.0](https://github.com/Infineon/cysecuretools) package
7
+ - Support for PSoC Edge 84 device
8
+ - Support for PSoC C3 device
9
+ - Combiner/Signer tool
@@ -0,0 +1,211 @@
1
+ CYPRESS (AN INFINEON COMPANY) END USER LICENSE AGREEMENT
2
+
3
+ PLEASE READ THIS END USER LICENSE AGREEMENT ("Agreement") CAREFULLY BEFORE
4
+ DOWNLOADING, INSTALLING, COPYING, OR USING THIS SOFTWARE AND ACCOMPANYING
5
+ DOCUMENTATION. BY DOWNLOADING, INSTALLING, COPYING OR USING THE SOFTWARE,
6
+ YOU ARE AGREEING TO BE BOUND BY THIS AGREEMENT. IF YOU DO NOT AGREE TO ALL
7
+ OF THE TERMS OF THIS AGREEMENT, PROMPTLY RETURN AND DO NOT USE THE SOFTWARE.
8
+ IF YOU HAVE PURCHASED THIS LICENSE TO THE SOFTWARE, YOUR RIGHT TO RETURN THE
9
+ SOFTWARE EXPIRES 30 DAYS AFTER YOUR PURCHASE AND APPLIES ONLY TO THE ORIGINAL
10
+ PURCHASER.
11
+
12
+ 1. Definitions.
13
+
14
+ "Software" means this software and any accompanying documentation,
15
+ including any upgrades, updates, bug fixes or modified versions provided
16
+ to you by Cypress.
17
+
18
+ "Source Code" means software in human-readable form.
19
+
20
+ "Binary Code" means the software in binary code form such as object code or
21
+ an executable.
22
+
23
+ "Development Tools" means software that is intended to be installed on a
24
+ personal computer and used to create programming code for Firmware,
25
+ Drivers, or Host Applications. Examples of Development Tools are
26
+ Cypress's PSoC Creator software, Cypress's AIROC SDKs, and Cypress's
27
+ ModusToolbox software.
28
+
29
+ "Firmware" means software that executes on a Cypress hardware product.
30
+
31
+ "Driver" means software that enables the use of a Cypress hardware product
32
+ on a particular host operating system such as GNU/Linux, Windows, MacOS,
33
+ Android, and iOS.
34
+
35
+ "Host Application" means software that executes on a device other than a
36
+ Cypress hardware product in order to program, control, or communicate
37
+ with a Cypress hardware product.
38
+
39
+ "inf File" means a hardware setup information file (.inf file) created by
40
+ the Software to allow a Microsoft Windows operating system to install
41
+ the driver for a Cypress hardware product.
42
+
43
+ 2. License. Subject to the terms and conditions of this Agreement, Cypress
44
+ Semiconductor Corporation ("Cypress") and its suppliers grant to you a
45
+ non-exclusive, non-transferable license under their copyright rights:
46
+
47
+ a. to use the Development Tools in object code form solely for the purpose
48
+ of creating Firmware, Drivers, Host Applications, and inf Files for
49
+ Cypress hardware products; and
50
+
51
+ b. (i) if provided in Source Code form, to copy, modify, and compile the
52
+ Firmware Source Code to create Firmware for execution on a Cypress
53
+ hardware product, and
54
+ (ii) to distribute Firmware in binary code form only, only when
55
+ installed onto a Cypress hardware product; and
56
+
57
+ c. (i) if provided in Source Code form, to copy, modify, and compile the
58
+ Driver Source Code to create one or more Drivers to enable the use
59
+ of a Cypress hardware product on a particular host operating
60
+ system, and
61
+ (ii) to distribute the Driver, in binary code form only, only when
62
+ installed on a device that includes the Cypress hardware product
63
+ that the Driver is intended to enable; and
64
+
65
+ d. (i) if provided in Source Code form, to copy, modify, and compile the
66
+ Host Application Source Code to create one or more Host
67
+ Applications to program, control, or communicate with a Cypress
68
+ hardware product, and
69
+ (ii) to distribute Host Applications, in binary code form only, only
70
+ when installed on a device that includes a Cypress hardware product
71
+ that the Host Application is intended to program, control, or
72
+ communicate with; and
73
+
74
+ e. to freely distribute any inf File.
75
+
76
+ Any distribution of Software permitted under this Agreement must be made
77
+ pursuant to your standard end user license agreement used for your proprietary
78
+ (closed source) software products, such end user license agreement to include,
79
+ at a minimum, provisions limiting your licensors' liability and prohibiting
80
+ reverse engineering of the Software, consistent with such provisions in this
81
+ Agreement.
82
+
83
+ 3. Free and Open Source Software. Portions of the Software may be licensed
84
+ under free and/or open source licenses such as the GNU General Public License
85
+ or other licenses from third parties ("Third Party Software"). Third Party
86
+ Software is subject to the applicable license agreement and not this
87
+ Agreement. If you are entitled to receive the source code from Cypress for
88
+ any Third Party Software included with the Software, either the source code
89
+ will be included with the Software or you may obtain the source code at no
90
+ charge from
91
+ <https://www.infineon.com/cms/en/design-support/software/free-and-open-source-software-foss/>.
92
+ The applicable license terms will accompany each source code package. To
93
+ review the license terms applicable to any Third Party Software for which
94
+ Cypress is not required to provide you with source code, please see the
95
+ Software's installation directory on your computer.
96
+
97
+ 4. Proprietary Rights; Ownership. The Software, including all intellectual
98
+ property rights therein, is and will remain the sole and exclusive property of
99
+ Cypress or its suppliers. Cypress retains ownership of the Source Code and
100
+ any compiled version thereof. Subject to Cypress' ownership of the underlying
101
+ Software (including Source Code), you retain ownership of any modifications
102
+ you make to the Source Code. You agree not to remove any Cypress copyright or
103
+ other notices from the Source Code and any modifications thereof. You agree
104
+ to keep the Source Code confidential. Any reproduction, modification,
105
+ translation, compilation, or representation of the Source Code except as
106
+ permitted in Section 2 ("License") is prohibited without the express written
107
+ permission of Cypress. Except as otherwise expressly provided in this
108
+ Agreement, you may not:
109
+ (i) modify, adapt, or create derivative works based upon the Software;
110
+ (ii) copy the Software;
111
+ (iii) except and only to the extent explicitly permitted by applicable
112
+ law despite this limitation, decompile, translate, reverse engineer,
113
+ disassemble or otherwise reduce the Software to human-readable form;
114
+ or
115
+ (iv) use the Software or any sample code other than for the Purpose.
116
+ You hereby covenant that you will not assert any claim that the Software, or
117
+ derivative works thereof created by or for Cypress, infringe any intellectual
118
+ property right owned or controlled by you
119
+
120
+ 5. No Support. Cypress may, but is not required to, provide technical support
121
+ for the Software.
122
+
123
+ 6. Term and Termination. This Agreement is effective until terminated, and
124
+ either party may terminate this Agreement at any time with or without cause.
125
+ This Agreement and your license rights under this Agreement will terminate
126
+ immediately without notice from Cypress if you fail to comply with any
127
+ provision of this Agreement. Upon termination, you must destroy all copies of
128
+ Software in your possession or control. The following paragraphs shall
129
+ survive any termination of this Agreement: "Free and Open Source Software,"
130
+ "Proprietary Rights; Ownership," "Compliance With Law," "Disclaimer,"
131
+ "Limitation of Liability," and "General."
132
+
133
+ 7. Compliance With Law. Each party agrees to comply with all applicable laws,
134
+ rules and regulations in connection with its activities under this Agreement.
135
+ Without limiting the foregoing, the Software may be subject to export control
136
+ laws and regulations of the United States and other countries. You agree to
137
+ comply strictly with all such laws and regulations and acknowledge that you
138
+ have the responsibility to obtain licenses to export, re-export, or import the
139
+ Software.
140
+
141
+ 8. Disclaimer. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, CYPRESS
142
+ MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THE
143
+ SOFTWARE, INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED
144
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Cypress
145
+ reserves the right to make changes to the Software without notice. Cypress
146
+ does not assume any liability arising out of the application or use of
147
+ Software or any product or circuit described in the Software. It is the
148
+ responsibility of the user of the Software to properly design, program, and
149
+ test the functionality and safety of any application made of the Software and
150
+ any resulting product. Cypress does not authorize its Software or products
151
+ for use in any products where a malfunction or failure of the Software or
152
+ Cypress product may reasonably be expected to result in significant property
153
+ damage, injury or death ("High Risk Product"). If you include any Software or
154
+ Cypress product in a High Risk Product, you assume all risk of such use and
155
+ agree to indemnify Cypress and its suppliers against all liability. No
156
+ computing device can be absolutely secure. Therefore, despite security
157
+ measures implemented in Cypress hardware or software products, Cypress does
158
+ not assume any liability arising out of any security breach, such as
159
+ unauthorized access to or use of a Cypress product.
160
+
161
+ 9. Limitation of Liability. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE
162
+ LAW, IN NO EVENT WILL CYPRESS OR ITS SUPPLIERS, RESELLERS, OR DISTRIBUTORS BE
163
+ LIABLE FOR ANY LOST REVENUE, PROFIT, OR DATA, OR FOR SPECIAL, INDIRECT,
164
+ CONSEQUENTIAL, INCIDENTAL, OR PUNITIVE DAMAGES HOWEVER CAUSED AND REGARDLESS
165
+ OF THE THEORY OF LIABILITY, ARISING OUT OF OR RELATED TO THE USE OF OR
166
+ INABILITY TO USE THE SOFTWARE EVEN IF CYPRESS OR ITS SUPPLIERS, RESELLERS, OR
167
+ DISTRIBUTORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. IN NO
168
+ EVENT SHALL CYPRESS' OR ITS SUPPLIERS', RESELLERS', OR DISTRIBUTORS' TOTAL
169
+ LIABILITY TO YOU, WHETHER IN CONTRACT, TORT (INCLUDING NEGLIGENCE), OR
170
+ OTHERWISE, EXCEED THE GREATER OF US$500 OR THE PRICE PAID BY YOU FOR THE
171
+ SOFTWARE. THE FOREGOING LIMITATIONS SHALL APPLY EVEN IF THE ABOVE-STATED
172
+ WARRANTY FAILS OF ITS ESSENTIAL PURPOSE. BECAUSE SOME STATES OR JURISDICTIONS
173
+ DO NOT ALLOW LIMITATION OR EXCLUSION OF CONSEQUENTIAL OR INCIDENTAL DAMAGES,
174
+ ALL OR PORTIONS OF THE ABOVE LIMITATION MAY NOT APPLY TO YOU.
175
+
176
+ 10. Restricted Rights. The Software is commercial computer software as that
177
+ term is described in 48 C.F.R. 252.227-7014(a)(1). If the Software is being
178
+ acquired by or on behalf of the U.S. Government or by a U.S. Government prime
179
+ contractor or subcontractor (at any tier), then the Government's rights in
180
+ Software shall be only those set forth in this Agreement.
181
+
182
+ 11. Personal Information. You agree that information you provide through your
183
+ registration on Cypress IoT Community Forum or other Cypress websites,
184
+ including contact information or other personal information, may be collected
185
+ and used by Cypress consistent with its Data Privacy Policy
186
+ (https://www.infineon.com/cms/en/about-infineon/privacy-policy/), as updated
187
+ or revised from time to time, and may be provided to its third party sales
188
+ representatives, distributors and other entities conducting sales activities
189
+ for Cypress for sales-related and other business purposes.
190
+
191
+ 12. General. This Agreement will bind and inure to the benefit of each
192
+ party's successors and assigns, provided that you may not assign or transfer
193
+ this Agreement, in whole or in part, without Cypress' written consent. This
194
+ Agreement shall be governed by and construed in accordance with the laws of
195
+ the State of California, United States of America, as if performed wholly
196
+ within the state and without giving effect to the principles of conflict of
197
+ law. The parties consent to personal and exclusive jurisdiction of and venue
198
+ in, the state and federal courts within Santa Clara County, California;
199
+ provided however, that nothing in this Agreement will limit Cypress' right to
200
+ bring legal action in any venue in order to protect or enforce its
201
+ intellectual property rights. No failure of either party to exercise or
202
+ enforce any of its rights under this Agreement will act as a waiver of such
203
+ rights. If any portion of this Agreement is found to be void or
204
+ unenforceable, the remaining provisions of this Agreement shall remain in full
205
+ force and effect. This Agreement is the complete and exclusive agreement
206
+ between the parties with respect to the subject matter hereof, superseding and
207
+ replacing any and all prior agreements, communications, and understandings
208
+ (both written and oral) regarding such subject matter. Any notice to Cypress
209
+ will be deemed effective when actually received and must be sent to Cypress
210
+ Semiconductor Corporation, ATTN: Chief Legal Officer, 198 Champion Court, San
211
+ Jose, CA 95134 USA.
@@ -0,0 +1,165 @@
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction, and
10
+ distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by the copyright
13
+ owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all other entities
16
+ that control, are controlled by, or are under common control with that entity.
17
+ For the purposes of this definition, "control" means (i) the power, direct or
18
+ indirect, to cause the direction or management of such entity, whether by
19
+ contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the
20
+ outstanding shares, or (iii) beneficial ownership of such entity.
21
+
22
+ "You" (or "Your") shall mean an individual or Legal Entity exercising
23
+ permissions granted by this License.
24
+
25
+ "Source" form shall mean the preferred form for making modifications, including
26
+ but not limited to software source code, documentation source, and configuration
27
+ files.
28
+
29
+ "Object" form shall mean any form resulting from mechanical transformation or
30
+ translation of a Source form, including but not limited to compiled object code,
31
+ generated documentation, and conversions to other media types.
32
+
33
+ "Work" shall mean the work of authorship, whether in Source or Object form, made
34
+ available under the License, as indicated by a copyright notice that is included
35
+ in or attached to the work (an example is provided in the Appendix below).
36
+
37
+ "Derivative Works" shall mean any work, whether in Source or Object form, that
38
+ is based on (or derived from) the Work and for which the editorial revisions,
39
+ annotations, elaborations, or other modifications represent, as a whole, an
40
+ original work of authorship. For the purposes of this License, Derivative Works
41
+ shall not include works that remain separable from, or merely link (or bind by
42
+ name) to the interfaces of, the Work and Derivative Works thereof.
43
+
44
+ "Contribution" shall mean any work of authorship, including the original version
45
+ of the Work and any modifications or additions to that Work or Derivative Works
46
+ thereof, that is intentionally submitted to Licensor for inclusion in the Work
47
+ by the copyright owner or by an individual or Legal Entity authorized to submit
48
+ on behalf of the copyright owner. For the purposes of this definition,
49
+ "submitted" means any form of electronic, verbal, or written communication sent
50
+ to the Licensor or its representatives, including but not limited to
51
+ communication on electronic mailing lists, source code control systems, and
52
+ issue tracking systems that are managed by, or on behalf of, the Licensor for
53
+ the purpose of discussing and improving the Work, but excluding communication
54
+ that is conspicuously marked or otherwise designated in writing by the copyright
55
+ owner as "Not a Contribution."
56
+
57
+ "Contributor" shall mean Licensor and any individual or Legal Entity on behalf
58
+ of whom a Contribution has been received by Licensor and subsequently
59
+ incorporated within the Work.
60
+
61
+ 2. Grant of Copyright License.
62
+
63
+ Subject to the terms and conditions of this License, each Contributor hereby
64
+ grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
65
+ irrevocable copyright license to reproduce, prepare Derivative Works of,
66
+ publicly display, publicly perform, sublicense, and distribute the Work and such
67
+ Derivative Works in Source or Object form.
68
+
69
+ 3. Grant of Patent License.
70
+
71
+ Subject to the terms and conditions of this License, each Contributor hereby
72
+ grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
73
+ irrevocable (except as stated in this section) patent license to make, have
74
+ made, use, offer to sell, sell, import, and otherwise transfer the Work, where
75
+ such license applies only to those patent claims licensable by such Contributor
76
+ that are necessarily infringed by their Contribution(s) alone or by combination
77
+ of their Contribution(s) with the Work to which such Contribution(s) was
78
+ submitted. If You institute patent litigation against any entity (including a
79
+ cross-claim or counterclaim in a lawsuit) alleging that the Work or a
80
+ Contribution incorporated within the Work constitutes direct or contributory
81
+ patent infringement, then any patent licenses granted to You under this License
82
+ for that Work shall terminate as of the date such litigation is filed.
83
+
84
+ 4. Redistribution.
85
+
86
+ You may reproduce and distribute copies of the Work or Derivative Works thereof
87
+ in any medium, with or without modifications, and in Source or Object form,
88
+ provided that You meet the following conditions:
89
+
90
+ You must give any other recipients of the Work or Derivative Works a copy of
91
+ this License; and
92
+ You must cause any modified files to carry prominent notices stating that You
93
+ changed the files; and
94
+ You must retain, in the Source form of any Derivative Works that You distribute,
95
+ all copyright, patent, trademark, and attribution notices from the Source form
96
+ of the Work, excluding those notices that do not pertain to any part of the
97
+ Derivative Works; and
98
+ If the Work includes a "NOTICE" text file as part of its distribution, then any
99
+ Derivative Works that You distribute must include a readable copy of the
100
+ attribution notices contained within such NOTICE file, excluding those notices
101
+ that do not pertain to any part of the Derivative Works, in at least one of the
102
+ following places: within a NOTICE text file distributed as part of the
103
+ Derivative Works; within the Source form or documentation, if provided along
104
+ with the Derivative Works; or, within a display generated by the Derivative
105
+ Works, if and wherever such third-party notices normally appear. The contents of
106
+ the NOTICE file are for informational purposes only and do not modify the
107
+ License. You may add Your own attribution notices within Derivative Works that
108
+ You distribute, alongside or as an addendum to the NOTICE text from the Work,
109
+ provided that such additional attribution notices cannot be construed as
110
+ modifying the License.
111
+ You may add Your own copyright statement to Your modifications and may provide
112
+ additional or different license terms and conditions for use, reproduction, or
113
+ distribution of Your modifications, or for any such Derivative Works as a whole,
114
+ provided Your use, reproduction, and distribution of the Work otherwise complies
115
+ with the conditions stated in this License.
116
+
117
+ 5. Submission of Contributions.
118
+
119
+ Unless You explicitly state otherwise, any Contribution intentionally submitted
120
+ for inclusion in the Work by You to the Licensor shall be under the terms and
121
+ conditions of this License, without any additional terms or conditions.
122
+ Notwithstanding the above, nothing herein shall supersede or modify the terms of
123
+ any separate license agreement you may have executed with Licensor regarding
124
+ such Contributions.
125
+
126
+ 6. Trademarks.
127
+
128
+ This License does not grant permission to use the trade names, trademarks,
129
+ service marks, or product names of the Licensor, except as required for
130
+ reasonable and customary use in describing the origin of the Work and
131
+ reproducing the content of the NOTICE file.
132
+
133
+ 7. Disclaimer of Warranty.
134
+
135
+ Unless required by applicable law or agreed to in writing, Licensor provides the
136
+ Work (and each Contributor provides its Contributions) on an "AS IS" BASIS,
137
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
138
+ including, without limitation, any warranties or conditions of TITLE,
139
+ NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are
140
+ solely responsible for determining the appropriateness of using or
141
+ redistributing the Work and assume any risks associated with Your exercise of
142
+ permissions under this License.
143
+
144
+ 8. Limitation of Liability.
145
+
146
+ In no event and under no legal theory, whether in tort (including negligence),
147
+ contract, or otherwise, unless required by applicable law (such as deliberate
148
+ and grossly negligent acts) or agreed to in writing, shall any Contributor be
149
+ liable to You for damages, including any direct, indirect, special, incidental,
150
+ or consequential damages of any character arising as a result of this License or
151
+ out of the use or inability to use the Work (including but not limited to
152
+ damages for loss of goodwill, work stoppage, computer failure or malfunction, or
153
+ any and all other commercial damages or losses), even if such Contributor has
154
+ been advised of the possibility of such damages.
155
+
156
+ 9. Accepting Warranty or Additional Liability.
157
+
158
+ While redistributing the Work or Derivative Works thereof, You may choose to
159
+ offer, and charge a fee for, acceptance of support, warranty, indemnity, or
160
+ other liability obligations and/or rights consistent with this License. However,
161
+ in accepting such obligations, You may act only on Your own behalf and on Your
162
+ sole responsibility, not on behalf of any other Contributor, and only if You
163
+ agree to indemnify, defend, and hold each Contributor harmless for any liability
164
+ incurred by, or claims asserted against, such Contributor by reason of your
165
+ accepting any such warranty or additional liability.
@@ -0,0 +1,7 @@
1
+ include README.md
2
+ include CHANGELOG.md
3
+ include EULA
4
+ include LICENSE
5
+ include docs/*
6
+ recursive-include src *
7
+ global-exclude .DS_Store
@@ -0,0 +1,247 @@
1
+ Metadata-Version: 2.1
2
+ Name: edgeprotecttools
3
+ Version: 1.0.0
4
+ Summary: Python tools for provisioning Cypress/Infineon MCUs
5
+ Home-page: https://github.com/Infineon/edgeprotecttools
6
+ Author: Cypress Semiconductor Corporation (an Infineon company)
7
+ License: Apache 2.0
8
+ Classifier: License :: OSI Approved :: Apache Software License
9
+ Classifier: Programming Language :: Python :: 3.8
10
+ Classifier: Programming Language :: Python :: 3.9
11
+ Classifier: Programming Language :: Python :: 3.10
12
+ Classifier: Programming Language :: Python :: 3.11
13
+ Classifier: Programming Language :: Python :: 3.12
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Topic :: Software Development :: Embedded Systems
16
+ Requires-Python: >=3.8
17
+ Description-Content-Type: text/markdown
18
+ License-File: LICENSE
19
+ Requires-Dist: setuptools==69.5.1
20
+ Requires-Dist: cryptography==36.0.1
21
+ Requires-Dist: click==8.0.4
22
+ Requires-Dist: intelhex==2.3.0
23
+ Requires-Dist: python-jose==3.3.0
24
+ Requires-Dist: jsonschema==4.21.1
25
+ Requires-Dist: cbor==1.0.0
26
+ Requires-Dist: cwt==1.5.3
27
+ Requires-Dist: packaging==24.1
28
+ Requires-Dist: lief==0.14.1
29
+
30
+ This package contains security tools for creating keys, creating certificates, signing user applications, and provisioning Cypress/Infineon MCUs.
31
+
32
+ # Table of Contents
33
+ - [HW/SW compatibility](#hwsw-compatibility)
34
+ - [Prerequisites](#prerequisites)
35
+ - [Documentation](#documentation)
36
+ - [Standalone Executable](#standalone-executable)
37
+ - [Installing From Sources](#installing-from-sources)
38
+ - [Supported Devices](#supported-devices)
39
+ - [Interface and Usage](#interface-and-usage)
40
+ - [Logging](#logging)
41
+ - [Known Issues](#known-issues)
42
+ - [Error Handling](#error-handling)
43
+ - [License and Contributions](#license-and-contributions)
44
+
45
+ # HW/SW compatibility
46
+ ## PSoC 64
47
+ <table>
48
+ <thead>
49
+ <tr>
50
+ <td>Target/Kit</td>
51
+ <td>Silicon ID, Silicon Rev., Family ID</td>
52
+ <td>Secure FlashBoot Version</td>
53
+ <td>CyBootloader Version</td>
54
+ </tr>
55
+ </thead>
56
+ <tbody>
57
+ <tr>
58
+ <td colspan="6" style="text-align: center;">512K</td>
59
+ </tr>
60
+ <tr>
61
+ <td>
62
+ cyb06xx5<br>
63
+ cy8cproto&#8209;064b0s3
64
+ </td>
65
+ <td>0xE70D, 0x12, 0x105</td>
66
+ <td>4.0.2.1842</td>
67
+ <td>2.0.1.6441</td>
68
+ </tr>
69
+ <tr>
70
+ <td colspan="6" style="text-align: center;">2M</td>
71
+ </tr>
72
+ <tr>
73
+ <td>
74
+ cyb06xxa<br>
75
+ cy8ckit&#8209;064b0s2&#8209;4343w
76
+ </td>
77
+ <td>0xE470, 0x12, 0x102</td>
78
+ <td>4.0.3.2319</td>
79
+ <td>2.0.2.8102</td>
80
+ </tr>
81
+ <tr>
82
+ <td>
83
+ cys06xxa<br>
84
+ cy8ckit&#8209;064s0s2&#8209;4343w
85
+ </td>
86
+ <td>0xE4A0, 0x12, 0x02</td>
87
+ <td>4.0.3.2319</td>
88
+ <td>2.0.2.8102</td>
89
+ </tr>
90
+ <tr>
91
+ <td colspan="6" style="text-align: center;">1M</td>
92
+ </tr>
93
+ <tr>
94
+ <td>
95
+ cyb06xx7<br>
96
+ cy8cproto&#8209;064s1&#8209;sb<br>
97
+ cy8cproto&#8209;064b0s1&#8209;ble<br>
98
+ cy8cproto&#8209;064b0s1&#8209;ssa
99
+ </td>
100
+ <td>
101
+ 0xE262, 0x24, 0x100
102
+ 0xE261, 0x24, 0x100
103
+ </td>
104
+ <td>4.0.2.1842</td>
105
+ <td>2.0.0.4041</td>
106
+ </tr>
107
+ </tbody>
108
+ </table>
109
+
110
+ ## CYW20829 / CYW89829
111
+ <table>
112
+ <thead>
113
+ <tr>
114
+ <td>Target/Kit</td>
115
+ <td>Silicon ID, Silicon Rev., Family ID</td>
116
+ <td>ROM Boot Version</td>
117
+ <td>RAM Applications Version</td>
118
+ </tr>
119
+ </thead>
120
+ <tbody>
121
+ <tr>
122
+ <td>cyw20829</td>
123
+ <td>0xEB43, 0x21, 0x110</td>
124
+ <td>1.2.0.8334</td>
125
+ <td>1.2.0.3073</td>
126
+ </tr>
127
+ <tr>
128
+ <td>cyw89829</td>
129
+ <td>0xEB47, 0x21, 0x110</td>
130
+ <td>1.2.0.8334</td>
131
+ <td>1.2.0.3073</td>
132
+ </tr>
133
+ </tbody>
134
+ </table>
135
+
136
+ # Prerequisites
137
+ * Python 3.8 - 3.12
138
+ * [Installed Infineon OpenOCD](https://github.com/Infineon/openocd/releases)
139
+ * Ensure the KitProg3 programming mode is **CMSIS-DAP Bulk**
140
+
141
+
142
+ # Documentation
143
+ * [PSoC64 Secure MCU Secure Boot SDK User Guide](https://www.cypress.com/documentation/software-and-drivers/psoc-64-secure-mcu-secure-boot-sdk-user-guide)
144
+ * [Changelog](https://github.com/Infineon/edgeprotecttools/blob/master/CHANGELOG.md)
145
+
146
+ # Standalone Executable
147
+ Edge Protect Tools can be used as a standalone application. The executable can be found in the `tools/edgeprotecttools/bin` directory of the Early Access Pack installation or Edge Protect Security Suite.
148
+
149
+ # Installing From Sources
150
+ 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 Early Access Pack installation or Edge Protect Security Suite.
151
+
152
+ Install Python 3.12 on your computer. You can download it from https://www.python.org/downloads/. Set up the appropriate environment variable(s) for your operating system.
153
+
154
+ ## Installing Package
155
+ Make sure that you have the latest version of pip installed, use
156
+ the following command.
157
+ ```bash
158
+ $ python -m pip install --upgrade pip
159
+ ```
160
+ Run the following command, from the Early Access Pack or Edge Protect Security Suite directory.
161
+ ```bash
162
+ $ python -m pip install tools/edgeprotecttools/src
163
+ ```
164
+
165
+ ## Updating Package
166
+ To update the already installed package, run the following command from the Early Access Pack or Edge Protect Security Suite directory.
167
+ ```bash
168
+ $ python -m pip install --upgrade --force-reinstall tools/edgeprotecttools/src
169
+ ```
170
+
171
+ *Note*: There may be some pip dependency resolver errors. In most cases, these can be safely ignored.
172
+
173
+ *Note*: You can use the following command to show the path to the installed package
174
+ `$ python -m pip show edgeprotecttools`.
175
+
176
+
177
+ # Supported Devices
178
+ Use `device-list` command for output of the supported devices list.
179
+ ```bash
180
+ $ edgeprotecttools device-list
181
+ ```
182
+
183
+
184
+ # Interface and Usage
185
+ For instructions how to use common commands, see [README_GENERAL.md](https://github.com/Infineon/edgeprotecttools/blob/master/docs/README_GENERAL.md).
186
+
187
+ For instructions how to use target-specific commands, see the corresponding readme file in the [docs](https://github.com/Infineon/edgeprotecttools/blob/master/docs) directory.
188
+
189
+
190
+ # Logging
191
+ 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.
192
+
193
+
194
+ # Known Issues
195
+ - Using the policy from CySecureTools 4.0.0 in projects created by CySecureTools 4.1.0 causes the CY_FB_INVALID_IMG_JWT_SIGNATURE error during re-provisioning on PSoC64-2M devices:
196
+ ```
197
+ ...
198
+ ERROR : SFB status: CY_FB_INVALID_IMG_JWT_SIGNATURE: Invalid image certificate signature. Check the log for details
199
+ ```
200
+ _Workaround_:
201
+ 1. Open the policy file.
202
+ 2. Navigate to section 1 of the `boot_upgrade/firmware`.
203
+ 3. Set `boot_auth` and `bootloader_keys` as follows:
204
+ ```
205
+ "boot_auth": [
206
+ 3
207
+ ],
208
+ "bootloader_keys": [
209
+ {
210
+ "kid": 3,
211
+ "key": "../keys/cy_pub_key.json"
212
+ }
213
+ ]
214
+ ```
215
+ - During the installation of the package via _pip_ on Mac OS Big Sur, the following exception is raised:
216
+ ```
217
+ ...
218
+ distutils.errors.DistutilsError: Setup script exited with error: SandboxViolation:
219
+ mkdir('/private/var/root/Library/Caches/com.apple.python/private/tmp/easy_install-y8c1npmz', 511) {}
220
+
221
+ The package setup script has attempted to modify files on your system
222
+ that are not within the EasyInstall build area, and has been aborted.
223
+
224
+ This package cannot be safely installed by EasyInstall, and may not
225
+ support alternate installation locations even if you run its setup
226
+ script by hand. Please inform the package's author and the EasyInstall
227
+ maintainers to find out if a fix or workaround is available.
228
+ ```
229
+ _Solution:_ Upgrade the `pip` package running the following command from the terminal: `python3 -m pip install --upgrade pip`.
230
+
231
+ # Error Handling
232
+ Refer to the guidelines on how to [resolve errors](https://github.com/Infineon/edgeprotecttools/blob/master/docs/README_ERRORS.md).
233
+
234
+ # License and Contributions
235
+ The software is provided under the Apache-2.0 license. Contributions to this project are accepted under the same license.
236
+ This project contains code from other projects. The original license text is included in those source files.
237
+
238
+
239
+ # Changelog
240
+ All notable changes to this project will be documented in this file.
241
+
242
+ ## 1.0.0
243
+ ### Added
244
+ - Backward compatibility with the [CySecureTools 6.1.0](https://github.com/Infineon/cysecuretools) package
245
+ - Support for PSoC Edge 84 device
246
+ - Support for PSoC C3 device
247
+ - Combiner/Signer tool