46 Commits

Author SHA1 Message Date
harshal.patil
ee35dda699 fix(espsecure): Fixed the keyfile arg of the sign-data command by making it optional 2025-09-23 17:35:22 +05:30
harshal.patil
9a207b1fd9 fix(espsecure): Allow verifying multiple appended ECDSA signatures
- Also extend espsecure's test coverage

Closes https://github.com/espressif/esptool/issues/1120
2025-09-16 11:08:14 +05:30
Radim Karniš
7e535968f5 fix(espsecure): Fix printing key digest in signature info 2025-09-11 09:57:46 +02:00
Peter Dragun
6cfced81f9 fix(espsecure): Extract public key version 1 in RAW format 2025-08-22 12:37:23 +02:00
Peter Dragun
0177d611ac fix(espsecure): Allow signing multiple files in one go 2025-08-22 12:37:23 +02:00
copilot-swe-agent[bot]
206970acf8 refactor: set up and apply pyupgrade ruff rules
Closes https://github.com/espressif/esptool/issues/1115

Closes https://github.com/espressif/esptool/pull/1116
2025-08-14 16:01:17 +02:00
Peter Dragun
3ea646f0ab fix(espsecure): Add support for python-pkcs11 9.0+ 2025-08-06 09:15:52 +02:00
Fu Hanxi
d8ae230e97 fix: stop exit 0 when being called programmatically 2025-08-05 16:08:29 +02:00
Konstantin Kondrashov
4a9a3d8a54 feat(espefuse): Support burning ECDSA_384 keys 2025-07-31 11:17:11 +02:00
Peter Dragun
635cde1ef0 feat: Remove .py suffix from scripts
BREAKING CHANGE:
- The .py suffix is deprecated for the following scripts:
  - esptool
  - espefuse
  - espsecure
  - esp_rfc2217_server
2025-06-24 14:22:28 +02:00
Radim Karniš
905249c1a9 feat(espsecure): Use esptool logger, unify output format of messages 2025-05-07 12:33:52 +02:00
Radim Karniš
e132f6f761 feat(espsecure): Drop ecdsa module, use cryptography instead 2025-04-22 22:20:07 +08:00
Peter Dragun
36325fdf69 feat(espsecure): Unify all commands and options to use dash instead of underscore 2025-03-20 16:05:33 +01:00
Peter Dragun
69950b2722 change(espefuse): Add type annotations for public functions 2025-03-20 15:51:59 +01:00
Peter Dragun
9c7ddc1547 feat(espsecure): Use rich click for CLI parsing 2025-03-20 15:51:59 +01:00
Peter Dragun
d40fefa275 feat(cli): Add click-based CLI interface 2025-02-27 11:54:02 +01:00
Peter Dragun
2e4e77cde2 change: fix issues reported by ruff linter 2025-02-24 10:10:22 +01:00
Radim Karniš
0864e17530 feat(errors): Print errors to STDERR, catch KeyboardInterrupt
BREAKING CHANGE

Closes https://github.com/espressif/esptool/issues/981

Closes https://github.com/espressif/esptool/issues/888

Closes https://github.com/espressif/esptool/issues/934
2025-01-29 10:56:53 +01:00
Konstantin Kondrashov
ef407ed9a0 feat(espsecure): Improves an error message for encrypt_flash_data and decrypt_flash_data
Closes https://github.com/espressif/esp-idf/issues/15115
2024-12-31 17:37:20 +02:00
Dmitriy Astapov
7cc35e4e4d feat(cli): add autocompletions 2024-08-06 11:20:17 +02:00
harshal.patil
f014cad6ec feat(espsecure): Add support for secure boot v2 using ECDSA-P384 signatures 2024-06-06 11:42:35 +05:30
wanlei
ef4d8a7f58 feat(esp32c61): add c61 basic flash support (no_stub) 2024-03-14 15:07:56 +08:00
gnought
2381711ebb fix: close file gracefully in espsecure 2024-01-30 00:05:12 +08:00
laokaiyao
d9a66604ab feat(esp32c5): add target esp32c5 beta3
ROM version: 20230803
2024-01-02 16:39:01 +08:00
Armando
654e62615c feat(esptool): added target to esp32p4 2023-08-02 08:07:57 +00:00
Richard Retanubun
ab25fc1565 feat(espsecure): Allow prompting for HSM PIN in read_hsm_config
If hsm_config does not contain "credentials" the user will be
prompted for the HSM PIN.

This avoids the need to have HSM PINs typed in config files
which is not a good security practice.

ADJUNCT: Updated documentation to reflect new usage

Closes https://github.com/espressif/esptool/pull/900
2023-07-25 09:25:32 +00:00
radim.karnis
37efb1d96f bugfix(espsecure): Print a clear error message if incompatible OpenSSL backend is used
Closes https://github.com/espressif/esptool/issues/878
2023-05-23 10:13:35 +00:00
Roland Dobai
6fbe8dd443 espsecure: Improve error message for incorrect PEM format
Closes https://github.com/espressif/esptool/issues/881
2023-05-18 15:38:06 +02:00
KonstantinKondrashov
56de6b4a56 espefuse: Support burning ECDSA_KEY from pem file
- fix some assert check in test_espefuse.py
- add tests to cover the new functionality
2023-03-21 16:28:51 +00:00
harshal.patil
3770c5c7cc espsecure: import esp_hsm_sign when needed and minor refactoring
- HSM signing interface `esp_hsm_sign` is now imported just when it is needed
- esp_hsm_sign: added a check if LIB file exists
- minor refactoring in espsecure (fixed argparse assignments)
2023-02-09 12:49:09 +00:00
radim.karnis
ea61f8f008 refactor: Comply with black 23.1 style 2023-02-01 15:33:25 +01:00
radim.karnis
57ebe08d7a style: Remove unnecessary shebangs
Closes https://github.com/espressif/esptool/pull/822
2023-01-23 15:23:40 +01:00
harshal.patil
7aa92bab82 espsecure: fix --append_signatures workflow when using an
external Hardware Security Module for signing.
2023-01-16 21:58:35 +00:00
harshal.patil
f2b942d707 espsecure.py: Added an External HSM Signing Interface
Refer the espsecure docs regarding the usage and integration
of esp_hsm_sign with espsecure.py
2023-01-13 14:22:33 +00:00
Steven Macías
1d34837725 Add PKCS#8 identifier. 2023-01-04 14:30:11 +00:00
harshal.patil
a913359d2c feature/espsecure: Added support for pre-calculated signatures.
We can now provide pre-calculated signatures signed using our
own private key for signing application or bootloader binaries.
Pre-calculated signatures and public keys are needed to be provided to
`espsecure.py` for the `sign_data` operation, which verifies the
custom signature using it's corresponding public key and if successful,
generates the signature block.

Usage:

python espsecure.py sign_data --version 2  \
	--pub-key <public_keys> \
	--signature <signatures>  \
	--output <signed_binary>  \
	<datafile>

tests: Also added tests for custom signature signing
test/secure_images/bootloader_unsigned_v2.bin has been replaced by a sector-padded (4K)
test/secure_images/bootloader_unsigned_v2.bin
2022-12-07 10:15:52 +00:00
Emil Lenngren
06aab4a377 espsecure: Run AES-XTS encryption in O(n) instead of O(n^2) time complexity 2022-09-21 15:20:29 +02:00
wuzhenghui
b9c5a74e08 esp32c6: add target esp32c6 (rom version: esp32c6-20220901) 2022-09-13 15:06:49 +08:00
radim.karnis
220c63063a refactor: Remove future imports 2022-06-15 15:45:10 +02:00
wuzhenghui
8a865acbfa bugfix: pad zero to curve len in _microecc_format 2022-06-14 07:41:43 +00:00
Sachin Parekh
1cb8a72e1c espsecure: Fix secure boot v1 key generation
- Add test cases for SB v1 and v2 key generation
2022-05-25 16:27:18 +05:30
radim.karnis
30821a3f93 Make esptool callable as esptool.py even on Unix systems 2022-05-05 22:22:17 +02:00
radim.karnis
c57d11c03d Deprecate Python 2.7, 3.4, 3.5, 3.6 2022-04-20 18:10:12 +02:00
radim.karnis
45f1da954e refactoring: Employ Black code formatting 2022-03-28 23:06:34 +02:00
radim.karnis
07678b5810 refactoring: Separate binary image functions 2022-03-28 23:05:04 +02:00
radim.karnis
513898db2a refactoring: Restructure espefuse and espsecure 2022-03-28 23:05:04 +02:00