Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
154 commits
Select commit Hold shift + click to select a range
264a6e0
refactor(codechecker): add compilation script.
andreondra Feb 2, 2026
0c87bd5
doc(codechecker): move documentation from separate file to main docs.
andreondra Feb 3, 2026
6f4e244
ci(clang_format): check C++ files
medexs Feb 3, 2026
18ff04e
fix(codechecker): typos, small fixes.
andreondra Feb 3, 2026
bed0a9b
doc(codechecker): add info about report output directory
andreondra Feb 3, 2026
c9bd63c
scripts(codechecker): change directory handling
andreondra Feb 3, 2026
c19e808
scripts(codechecker): fixed paths.
andreondra Feb 3, 2026
cbd6866
feat(clang-format): fulfil the TS coding guideline
medexs Feb 3, 2026
3d81c5b
doc(codechecker): added more info about dependencies
andreondra Feb 4, 2026
51c9a18
fix(codechecker): removed output dir from config.
andreondra Feb 4, 2026
4e77bdc
refactor(codechecker): added dep check, remove output dir.
andreondra Feb 4, 2026
9518513
doc(codechecker): missing article
andreondra Feb 4, 2026
3cec711
scripts(codechecker): better error handling.
andreondra Feb 4, 2026
7480ae3
scripts(codechecker): added more dep checks.
andreondra Feb 4, 2026
f7aa1de
scripts(codechecker): support spaces in CALs.
andreondra Feb 4, 2026
6eca09d
scripts(codechecker): disable -u
andreondra Feb 4, 2026
f62b857
fix(tests): fixed application of strict compilation flags.
andreondra Feb 4, 2026
d839a6c
Merge pull request #448 from tropicsquare/ETR01SDK-523-Refactor-clang…
medexs Feb 4, 2026
f9987b7
Merge pull request #449 from tropicsquare/ETR01SDK-544-Fix-strict-com…
andreondra Feb 4, 2026
3a21004
refactor(clang-format): set ColumnLimit to 103, adjust line breaking …
medexs Feb 4, 2026
a9368e8
doc(codechecker): move codechecker below tests, use 'the'
andreondra Feb 4, 2026
ab6a674
Merge pull request #445 from tropicsquare/ETR01SDK-551-Add-compilatio…
andreondra Feb 4, 2026
82df7b9
refactor(lt_l2_api_structs): use TR01_L2_CHUNK_MAX_DATA_SIZE for l3_c…
andreondra Feb 4, 2026
dc42f0d
doc(changelog): moved msg, fixed member name.
andreondra Feb 5, 2026
5279b0b
doc: added warning message about endianness.
andreondra Feb 5, 2026
a3d4f40
ci: update pkg index before installation.
andreondra Feb 5, 2026
f9d3239
ci: use apt-get update in each job
andreondra Feb 5, 2026
a94011b
Merge pull request #450 from tropicsquare/ETR01SDK-553-clang-format-a…
medexs Feb 5, 2026
dab14ee
feat(stm32_f439zi tests): add support for wolfcrypt
medexs Feb 5, 2026
557c038
feat(stm32_l432kc tests): add support for wolfcrypt
medexs Feb 5, 2026
ed5b8dc
Merge pull request #453 from tropicsquare/ETR01SDK-555-CI-for-Valgrin…
andreondra Feb 5, 2026
3699bd0
Merge pull request #452 from tropicsquare/ETR01SDK-185-Big-endian-com…
andreondra Feb 5, 2026
fac2844
fix(stm32f439 tests): type for 'ret' not defined
Feb 5, 2026
5717874
feat(stm32 tests): download wolfssl deps
Feb 5, 2026
97b9c6b
feat(stm32_f439zi tests): add user_settings.h, custom implementation …
Feb 5, 2026
5cb3012
feat(stm32_l432kc tests): add support for wolfcrypt
Feb 5, 2026
36d4d3d
docs(nucleo_f439zi cmake): remove redundant comment regarding wolfcry…
medexs Feb 5, 2026
eb66b9a
docs(nucleo_l439kc cmake): remove redundant comment regarding wolfcry…
medexs Feb 5, 2026
459f20e
refactor(stm32 tests): fix formatting for wolfcrypt files
medexs Feb 5, 2026
78ab4b0
fix(lt_session_start): add response length check
andreondra Feb 6, 2026
2cc1ab7
doc(lt_l2_recv_encrypted_res): enhanced comments
andreondra Feb 6, 2026
aed60a0
doc(lt_l2_send_encrypted_cmd): enhanced comments.
andreondra Feb 6, 2026
cbd2ed0
fix(lt_session_start): use cleanup
andreondra Feb 6, 2026
3cb22d0
fix,doc: typo
andreondra Feb 6, 2026
0c5b632
Merge pull request #455 from tropicsquare/ETR01SDK-429-Check-logic-of…
andreondra Feb 6, 2026
feace33
Merge pull request #451 from tropicsquare/ETR01SDK-430-Check-l3_chunk…
andreondra Feb 6, 2026
6729670
Merge pull request #454 from tropicsquare/ETR01SDK-556-Add-WolfCrypt-…
medexs Feb 6, 2026
a6591d1
test(functional): test lt_init after lt_deinit
medexs Feb 6, 2026
d488c0a
refactor(hal/): don't include libtropic_port.h in HAL headers if not …
medexs Feb 8, 2026
d8a7829
Merge pull request #457 from tropicsquare/ETR01SDK-566-Add-test-that-…
medexs Feb 9, 2026
bc54ea6
examples(linux/spi/full_chain): initial version
andreondra Feb 9, 2026
c2f2f16
doc(tutorials/linux/spi/fullchain): initial version
andreondra Feb 9, 2026
633ade4
fix(examples/usb_devkit): fixed comment in CMakeLists.txt.
andreondra Feb 9, 2026
ce6e717
ci(linux): add FCV example.
andreondra Feb 9, 2026
0fd3a7e
Merge pull request #461 from tropicsquare/ETR01SDK-554-remove-libtrop…
medexs Feb 9, 2026
6dcc7f1
feat(cal/trezor_crypto): add logging messages to AES-GCM.
andreondra Feb 9, 2026
fce00b4
Merge pull request #463 from tropicsquare/fix-usb-devkit-cmakelists-c…
andreondra Feb 10, 2026
c9080bc
fix(trezor_crypto): add libtropic_logging header
andreondra Feb 10, 2026
2d58835
fix(trezor_crypto): made logging clearer
andreondra Feb 10, 2026
01c5b95
fix(trezor_crypto): do not calculate expected len
andreondra Feb 10, 2026
ca89ed8
fix(trezor_crypto): use %u for tag len, compare ciphertext with tag len
andreondra Feb 10, 2026
6e29ff4
fix(lt_init): don't fail if reboot to get app fw is unsuccessful
medexs Feb 6, 2026
5255da4
tests(mock): add test for checking that lt_init succeeds when app fw …
medexs Feb 6, 2026
4d0aa30
Merge pull request #456 from tropicsquare/ETR01SDK-536-Allow-lt_init-…
medexs Feb 11, 2026
5ce961d
feat(lt_secure_memzero.h): move to include/
medexs Feb 11, 2026
5d1e1f9
docs(libtropic_secure_memzero.h): mention that the function is for in…
medexs Feb 11, 2026
f63984c
fix(libtropic_secure_memzero.h): use c++ ifdef guards
medexs Feb 11, 2026
fd1e7e0
fix(changelog): trailing whitespace
medexs Feb 11, 2026
bc70a46
Merge pull request #467 from tropicsquare/ETR01SDK-570-Make-lt_secure…
medexs Feb 11, 2026
875f9fd
fix(stm32): securely wipe secrets when generating random numbers
medexs Feb 8, 2026
c6856e9
refactor(stm32 hal, examples, tests): use lt_secure_memzero, don't us…
medexs Feb 11, 2026
65338ad
Merge pull request #460 from tropicsquare/ETR01SDK-561-use-memzero-af…
medexs Feb 11, 2026
41a116f
refactor(lt_init_tr01_attrs): don't reboot
medexs Feb 11, 2026
53f54ff
refactor(lt_init): handle rebooting before initializing App FW attrib…
medexs Feb 11, 2026
332a17d
docs(lt_test_mock_invalid_app_fw_init): update comments regarding fun…
medexs Feb 11, 2026
24c2b20
fix(contributing.md): fix dead link to tests docs
medexs Feb 11, 2026
f7c8ea4
docs(contributing.md): use comma instead of dash
medexs Feb 12, 2026
b3c1486
Merge pull request #469 from tropicsquare/ETR01SDK-571-Simplify-lt_in…
medexs Feb 12, 2026
8938f98
fix(examples/linux/spi/full_chain): removed URL printing.
andreondra Feb 12, 2026
23ddc6a
doc(changelog): mention full chain verif example.
andreondra Feb 12, 2026
a7331bd
docs(contributing.md): don't mention testing on HW
medexs Feb 12, 2026
eb4f9d9
Merge pull request #470 from tropicsquare/ETR01SDK-572-Fix-dead-docs-…
medexs Feb 12, 2026
98238f8
Merge pull request #466 from tropicsquare/ETR01SDK-354-Figure-out-how…
andreondra Feb 12, 2026
aa24406
Merge pull request #462 from tropicsquare/ETR01SDK-557-Implement-full…
andreondra Feb 12, 2026
2be0953
refactor(lt_l1): fixed SPI logging
andreondra Feb 16, 2026
1e39917
fix(stm32 hals): change type of baudrate_prescaler to uint32_t
medexs Feb 16, 2026
766ca1e
Merge pull request #471 from tropicsquare/ETR01SDK-577-STM32-HAL-fix-…
medexs Feb 16, 2026
c817ba0
refactor: rename print_hex_chunks to print_spi_data_hex
andreondra Feb 16, 2026
1514958
refactor(lt_l1/print_spi_data_hex): added param check, fixed param ty…
andreondra Feb 16, 2026
f1d3932
refactor(print_spi_data_hex): clang-format
andreondra Feb 16, 2026
da38a11
refactor(lt_l1/print_spi_data_hex): add const qualifier
andreondra Feb 16, 2026
d42e57b
feat: Add HAL files for STM32U5xx platform
pavelpolach321 Jan 7, 2026
7a5dadb
doc: Update changelog
pavelpolach321 Jan 7, 2026
8114192
feat: Add gpio check during *csn_low and *csn_high function
pavelpolach321 Jan 8, 2026
5342d90
refactor(stm32u5xx hal): rename files/structures so the HAL is more g…
medexs Feb 9, 2026
4ccb717
fix(stm32u5xx hal): don't init/deinit RNG, don't enable SPI/GPIO CLK
medexs Feb 9, 2026
367c31e
fix(stm32u5xx hal): update SPI and GPIO initialization according to g…
medexs Feb 12, 2026
b5ce1eb
fix(stm32u5xx hal): change type of baudrate_prescaler to uint32_t
Feb 16, 2026
1b56fc3
fix(stm32u5xx hal): set SPI CS pin before calling HAL_GPIO_Init
Feb 16, 2026
2442839
feat(stm32u5xx hal): add secure memory zeroing to lt_port_random_bytes
medexs Feb 16, 2026
9af717c
refactor(stm32u5xx hal): remove unused main.h include
medexs Feb 16, 2026
1218c76
fix(stm32u5xx hal): add libtropic_secure_memzero.h include
Feb 16, 2026
6eaac4e
refactor(libtropic_port_stm32u5xx.h): fix comment indentation
medexs Feb 16, 2026
7856345
Merge pull request #407 from tropicsquare/406-add-hal-for-stm32u535
medexs Feb 17, 2026
9ec22e6
docs: add stm32u5xx series as supported stm32 platform
medexs Feb 17, 2026
9516275
Merge pull request #472 from tropicsquare/ETR01SDK-575-Fix-raw-SPI-da…
andreondra Feb 19, 2026
522149e
docs(stm32u5xx hal): mention it was tested with NUCLEO-U545RE-Q
medexs Feb 19, 2026
23ca17f
Merge pull request #474 from tropicsquare/ETR01SDK-568-Add-HAL-for-ST…
medexs Feb 19, 2026
ccbf662
fix,docs: fix license sentence in doxygen file headers
medexs Feb 19, 2026
ea3f006
Merge pull request #475 from tropicsquare/fix-license-sentence
medexs Feb 19, 2026
1f30d9c
fix: remove tests/functional/stm32/nucleo_u545re_q
medexs Feb 19, 2026
f462049
feat,tests, build(NUCLEO-U545RE-Q): add STM32CubeU5 files
medexs Feb 12, 2026
618f4d6
fix(stm32u5xx hal, nucleo_u545re_q tests): resolve conflict between L…
medexs Feb 13, 2026
57fce74
fix(nucleo_u545re_q tests): define USE_NUCLEO_64
medexs Feb 13, 2026
5298ed4
fix(nucleo_u545re_q): disable pull-up for SCK pin
Feb 13, 2026
67021cc
feat(nucleo_u545re_q tests): add entry script for openocd, call it fr…
Feb 13, 2026
4735212
feat(nucleo_u545re_q tests): don't use LED (conflict with SCK), remov…
Feb 16, 2026
2ef3568
feat(nucleo_u545re_q tests): use HSI CLK routed through PLL to allow …
Feb 16, 2026
e9eef86
refactor(nucleo_u545re_q tests): fix formatting
medexs Feb 16, 2026
3380c41
feat(ts_sw_setup.yml): use openocd version 2026_02_13_b4518ab
Feb 16, 2026
b870d05
fix(nucleo_u545re_q/wolfcrypt_platform.c): name of the RNG handle
Feb 16, 2026
84311b5
fix, refactor(nucleo_u545re_q tests): rename entry openocd script, fi…
Feb 17, 2026
655c8d8
fix,docs(nucleo_u545re_q tests): fix license sentence in doxygen file…
medexs Feb 19, 2026
7e41402
fix(nucleo u545re_q tests): fix copyright notice in main.c
medexs Feb 19, 2026
33f7c6b
doc: Update readme
pavelpolach321 Feb 21, 2026
0d2c4ef
Merge pull request #473 from tropicsquare/ETR01SDK-574-Add-tests-supp…
medexs Feb 23, 2026
8d6670b
feat,docs(linux tutorials): make a new page with list of all linux tu…
medexs Feb 23, 2026
a2e06b4
fix(stm32 tests): disable gdb, telnet and tcl servers when calling op…
Feb 23, 2026
e28a5a4
Merge pull request #479 from tropicsquare/openocd-stm32-tests-disable…
medexs Feb 24, 2026
8839e5b
docs(lt_do_mutable_fw_update): mention that the handle has to be rein…
medexs Feb 24, 2026
49f8ef7
docs(lt_init): apend `()` to `lt_deinit` doxygen comment to fix highl…
medexs Feb 24, 2026
a87b14c
Merge pull request #478 from tropicsquare/ETR01SDK-588-Docs-create-co…
medexs Feb 24, 2026
888dd29
docs(lt_do_mutable_fw_update): typo in functions
medexs Feb 24, 2026
dde9984
doc(logging): mention that logging is enabled only for tests.
andreondra Feb 10, 2026
38745b1
doc(tutorials/model): add Understanding Libtropic tutorial
andreondra Feb 10, 2026
2640c1f
doc(tutorials/model/understanding_libtropic): added info about handle…
andreondra Feb 10, 2026
41af453
doc(tutorials/model/understanding_libtropic): added section about fw
andreondra Feb 10, 2026
3e5fca2
fix,doc(how_to_use): missing dereference on lt_handle.
andreondra Feb 10, 2026
10f084f
doc(tutorials/understanding_libtropic): added more info about CAL,CFP.
andreondra Feb 12, 2026
9d3ce21
refactor(tutorials/model/understanding_libtropic): enhanced text, add…
andreondra Feb 13, 2026
935356e
refactor(tutorials/model/understanding_libtropic): added clarificatio…
andreondra Feb 13, 2026
256e37d
refactor(tutorials/model/understanding_libtropic): small wording fixes.
andreondra Feb 13, 2026
de1ea50
refactor(tutorials/model/understanding_libtropic): fixed links to TRO…
andreondra Feb 17, 2026
a11e268
doc(CHANGELOG): mention new tutorial.
andreondra Feb 27, 2026
21bac68
doc: Update readme
pavelpolach321 Feb 27, 2026
247b2e2
Merge pull request #480 from tropicsquare/ETR01SDK-563-Docs-mention-t…
medexs Feb 27, 2026
e691fa8
doc(understanding_libtropic): add links to options.
andreondra Mar 2, 2026
78055f9
doc(hw_wallet): changed phrasing in introduction
andreondra Mar 2, 2026
8ded973
doc(understanding_libtropic): change phrasing of 1st point of lifecycle.
andreondra Mar 2, 2026
9c88e96
Merge pull request #465 from tropicsquare/ETR01SDK-484-Prepare-tutori…
medexs Mar 2, 2026
91a051a
docs(readme): SImplify Getting started, add link to Tutorials
medexs Mar 2, 2026
b6bec9a
docs(readme): minor corrections
medexs Mar 2, 2026
3af2438
Merge pull request #477 from tropicsquare/ETR01SDK-581-Main-README-fi…
medexs Mar 2, 2026
f80e895
docs(CMakeLists.txt, README.md): release checklist
medexs Mar 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
49 changes: 39 additions & 10 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -1,18 +1,47 @@
# Tested with Ubuntu clang-format version 14.0.0-1ubuntu1.1

BreakBeforeBinaryOperators: All

ColumnLimit: 120

# Language conformance: C11
# Using Cpp as a language is ok here, since there is no separate C formatter.
# It is common to use Cpp for C code formatting in clang-format.
Language: Cpp
Standard: Cpp11
BasedOnStyle: Google

# --- BRACE STYLE ---
# "Functions... opening brace on new line"
# "if, for, while... opening brace on the same line"
BreakBeforeBraces: Stroustrup

# --- INDENTATION & WIDTH ---
ColumnLimit: 103

# "You shall indent the code with 4 spaces"
IndentWidth: 4
TabWidth: 4
UseTab: Never
ContinuationIndentWidth: 4

# --- POINTERS ---
# Google defaults to Left, but guidelines show Right (void *p)
PointerAlignment: Right
DerivePointerAlignment: false

# --- SPECIFIC TROPIC SQUARE RULES ---
# "You shall place braces around the single statement"
# Valid since Clang-Format 15
InsertBraces: true

# "You shall put spaces after... if, switch..."
SpaceBeforeParens: ControlStatements
# "You shall not add spaces around (inside) parenthesized expressions"
SpacesInParentheses: false

# "Space on each side of most binary and ternary operators"
# Note: "SpacesInBinaryOperators" is implicit in Google style, no key needed.
SpaceBeforeAssignmentOperators: true

# # Insert New line at EOF if missing
#InsertNewlineAtEOF: true
# # Set EOL to LF unconditionally
#LineEnding: LF
# Misc Cleanup
SortIncludes: true
IndentCaseLabels: true
# Keep operators at the end of the line
BreakBeforeBinaryOperators: None
# Make breaking at '=' very expensive so it forces breaks inside arguments instead
PenaltyBreakAssignment: 100
10 changes: 8 additions & 2 deletions .github/workflows/clang_format_check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,15 @@ on:
- develop
paths:
- '**.c'
- '**.cpp'
- '**.h'
- '**.hpp'
pull_request:
paths:
- '**.c'
- '**.cpp'
- '**.h'
- '**.hpp'

jobs:
check-format:
Expand All @@ -21,7 +25,9 @@ jobs:
uses: actions/checkout@v4

- name: Install clang-format
run: sudo apt install -y clang-format
run: |
sudo apt-get update
sudo apt-get install -y clang-format

- name: Get files and check format
run: |
Expand All @@ -31,7 +37,7 @@ jobs:
echo "Formatting issue in $f"
exit_code=1
fi
done < <(find . -type f \( -name '*.c' -o -name '*.h' \) ! -path './vendor/*' ! -path './vendor/**' ! -path '*Vendor/*' ! -path '*_deps/*' ! -path './.git/*' -print0)
done < <(find . -type f \( -name '*.c' -o -name '*.cpp' -o -name '*.h' -o -name '*.hpp' \) ! -path './vendor/*' ! -path './vendor/**' ! -path '*Vendor/*' ! -path '*_deps/*' ! -path './.git/*' -print0)

if [ $exit_code -ne 0 ]; then
echo "Clang-format check failed."
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ jobs:

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install cmake build-essential ninja-build
./tests/functional/model/download_deps.sh
./scripts/tropic01_model/install_linux.sh
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/functional_mock_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ jobs:

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install cmake build-essential ninja-build
pip install jsonschema jinja2

Expand Down Expand Up @@ -58,6 +59,7 @@ jobs:

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install cmake build-essential valgrind ninja-build
pip install jsonschema jinja2

Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/integration_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ jobs:

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install cmake build-essential ninja-build
./tests/functional/model/download_deps.sh
./scripts/tropic01_model/install_linux.sh
Expand Down Expand Up @@ -69,6 +70,7 @@ jobs:

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install cmake build-essential valgrind ninja-build
./tests/functional/model/download_deps.sh
./scripts/tropic01_model/install_linux.sh
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/linux_build_examples.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ jobs:

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install cmake build-essential ninja-build
pip3 install jsonschema

Expand All @@ -41,6 +42,10 @@ jobs:
cmake ./ -B build -G Ninja
cd build && ninja

cd ../../full_chain_verification
cmake ./ -B build -G Ninja
cd build && ninja

- name: Build USB Devkit examples
run: |
cd examples/linux/usb_devkit/hello_world
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/model_run_examples.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ jobs:

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install cmake build-essential valgrind ninja-build
./tests/functional/model/download_deps.sh
./scripts/tropic01_model/install_linux.sh
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/release_new_version.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ jobs:

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install doxygen graphviz
pip install -r docs/requirements.txt

Expand Down
1 change: 1 addition & 0 deletions .github/workflows/static_analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ jobs:
steps:
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install cmake build-essential cppcheck

- name: Checkout Repository
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/stm32_build_examples.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ jobs:

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install cmake build-essential ninja-build gcc-arm-none-eabi
pip3 install jsonschema

Expand Down
19 changes: 19 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,25 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [3.2.0]

### Changed
- Renamed `lt_secure_memzero.h` to `libtropic_secure_memzero.h` and moved it to `include/`, so it is available in HAL.

### Added
- Examples: Added full certificate chain verification example for Linux SPI.
- HAL: HAL for STM32U5xx series
- Documentation: new tutorial for the TROPIC01 model - **Understanding Libtropic**.

### Fixed
- Size of `l3_chunk` member of `lt_l2_encrypted_cmd_req_t` and `lt_l2_encrypted_cmd_rsp_t` structs to `TR01_L2_CHUNK_MAX_DATA_SIZE`.
- `hal/`: don't include `libtropic_port.h` in HAL headers if not used.
- `lt_init()` is successful even if TROPIC01 has invalid Application FW, so Libtropic can be used in Start-up Mode.
- STM32: securely wipe secrets when generating random numbers.
- STM32: change type of `baudrate_prescaler` (inside `lt_dev_stm32_nucleo_f439zi_t` and `lt_dev_stm32_nucleo_l432kc_t`) to `uint32_t`.

### Removed

## [3.1.0]

### Changed
Expand Down
5 changes: 3 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ get_directory_property(HAS_PARENT_SCOPE PARENT_DIRECTORY)
###########################################################################

project(libtropic_SDK
VERSION 3.1.0
VERSION 3.2.0
DESCRIPTION "TROPIC01 software development kit"
HOMEPAGE_URL "https://tropicsquare.github.io/libtropic/latest/"
LANGUAGES C)
Expand All @@ -134,7 +134,7 @@ set(SDK_SRCS ${SDK_SRCS}
${CMAKE_CURRENT_SOURCE_DIR}/src/lt_asn1_der.c
${CMAKE_CURRENT_SOURCE_DIR}/src/libtropic_default_sh0_keys.c
${CMAKE_CURRENT_SOURCE_DIR}/src/lt_tr01_attrs.c
${CMAKE_CURRENT_SOURCE_DIR}/src/lt_secure_memzero.c
${CMAKE_CURRENT_SOURCE_DIR}/src/libtropic_secure_memzero.c
)

set(SDK_INCS ${SDK_INCS}
Expand All @@ -143,6 +143,7 @@ set(SDK_INCS ${SDK_INCS}
${CMAKE_CURRENT_SOURCE_DIR}/include/libtropic_port.h
${CMAKE_CURRENT_SOURCE_DIR}/include/libtropic_l2.h
${CMAKE_CURRENT_SOURCE_DIR}/include/libtropic_l3.h
${CMAKE_CURRENT_SOURCE_DIR}/include/libtropic_secure_memzero.h
${CMAKE_CURRENT_SOURCE_DIR}/src/lt_crc16.h
${CMAKE_CURRENT_SOURCE_DIR}/src/lt_port_wrap.h
${CMAKE_CURRENT_SOURCE_DIR}/src/lt_l1.h
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ We love contributions! To make contributing simple for both sides, please:
- Create a branch from the develop branch and do the changes:
- Make sure to follow specifics in our [Coding Style](#coding-style).
- Make sure to use [Code Formatter](#code-formatter), otherwise the PR check will fail and cannot be merged.
- Make sure the branch passes [Tests](https://tropicsquare.github.io/libtropic/latest/for_contributors/functional_tests/) against model -- otherwise, the PR check will fail.
- Make sure the branch passes [functional tests](https://tropicsquare.github.io/libtropic/latest/for_contributors/tests/functional_tests/) against TROPIC01 Model and [functional mock tests](https://tropicsquare.github.io/libtropic/latest/for_contributors/tests/functional_mock_tests/), otherwise, the PR check will fail.
- Make sure to run [Static Analysis](#static-analysis).
- Make sure your [Commit Messages](#commit-messages) follow our guidelines.
- Create pull request.
Expand Down
55 changes: 21 additions & 34 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,59 +2,46 @@

![](https://github.com/tropicsquare/libtropic/actions/workflows/integration_tests.yml/badge.svg) ![](https://github.com/tropicsquare/libtropic/actions/workflows/build_docs_master.yml/badge.svg)

TROPIC01's SDK written in C. Contributors, please follow [guidelines](https://github.com/tropicsquare/libtropic/blob/master/CONTRIBUTING.md).
**Libtropic** is the official C SDK for TROPIC01, **the open and auditable secure element by [Tropic Square](https://tropicsquare.com/)**.

For more information about TROPIC01 chip and its **datasheet** or **User API**, check out developers resources in the [TROPIC01](https://github.com/tropicsquare/tropic01) repository.
The repository provides the library and integration examples for practical evaluation of the chip. For information about particular TROPIC01 part number or for general insights into TROPIC01 design, please follow the link to [TROPIC01](https://github.com/tropicsquare/tropic01) product page.

## Documentation
We recommend using the [Libtropic documentation](https://tropicsquare.github.io/libtropic/latest/) as the source of truth for getting information about Libtropic.
## Getting started

The documentation is generated only for the releases and the version can be switched via the version selector at the top of the page.
Want to learn **TROPIC01** the easy way? See our [Tutorials](https://tropicsquare.github.io/libtropic/latest/tutorials/) and start today!

## Compatibility with TROPIC01 firmware versions
## Firmware compatibility

For the Libtropic library to function correctly with the TROPIC01 secure element, the versions of four key components must be compatible:
For correct operation, these four versions must be compatible:

1. **Libtropic SDK**: The version of this library.
2. **Bootloader FW**: Bootloader firmware running on the TROPIC01's RISC-V CPU after power-up. It cannot be updated.
2. **Application FW**: Application firmware running on the TROPIC01's RISC-V CPU. It can be updated.
3. **SPECT FW**: Firmware running on the TROPIC01's SPECT co-processor. It can be updated.
1. **Libtropic SDK**: Version of this library.
2. **Bootloader FW**: Firmware running on TROPIC01 RISC-V CPU after power-up (cannot be updated).
3. **Application FW**: Firmware running on TROPIC01 RISC-V CPU (can be updated).
4. **SPECT FW**: Firmware running on the TROPIC01 SPECT co-processor (can be updated).

For more information about each of these, refer to the [TROPIC01](https://github.com/tropicsquare/tropic01) repository.
For details, see particular part number in [TROPIC01](https://github.com/tropicsquare/tropic01).

The following table outlines the tested and supported compatibility between released versions:

| Libtropic | Application FW | SPECT FW | Bootloader FW | Tests |
| Libtropic | Application FW | SPECT FW | Bootloader FW | Tests |
|:---------:|:--------------:|:--------:|:-------------:|:------------------:|
| 1.0.0 | 1.0.0 | 1.0.0 | 1.0.1-2.0.1 | :white_check_mark: |
| 2.0.0 | 1.0.0–1.0.1 | 1.0.0 | 2.0.1 | :white_check_mark: |
| 2.0.1 | 1.0.0–1.0.1 | 1.0.0 | 2.0.1 | :white_check_mark: |
| 3.0.0 | 1.0.0–2.0.0 | 1.0.0 | 2.0.1 | :white_check_mark: |
| 3.1.0 | 1.0.0–2.0.0 | 1.0.0 | 2.0.1 | :white_check_mark: |
| 3.2.0 | 1.0.0–2.0.0 | 1.0.0 | 2.0.1 | :white_check_mark: |

> [!WARNING]
> Using mismatched versions of the components may result in unpredictable behavior or errors. It is strongly advised to use the latest compatible versions of all components to ensure proper functionality.

For retrieving firmware versions from TROPIC01 and updating its firmware, refer to the [Tutorials](https://tropicsquare.github.io/libtropic/latest/tutorials/) and select your platform. Follow the instructions for **Chip Identification** and **Firmware Update** example.

## Repository structure
* `CMakeLists.txt` Root CMake project file
* `cmake/` CMake related files
* `cal/` Implementation of Crypto Abstraction Layers (CAL) for supported Cryptographic Functionality Providers (CFP)
* `docs/` [MkDocs](https://www.mkdocs.org/) Documentation deployed [here](https://tropicsquare.github.io/libtropic/latest/)
* `examples/` Example projects for each supported platform
* `hal/` Implementation of Hardware Abstraction Layers (HAL) for supported host platforms
* `include/` Public API header files
* `scripts/` Build and config scripts
* `src/` Library's source files
* `tests/` Functional tests
* `TROPIC01_fw_update_files/` Files used for updating TROPIC01's firmware
* `vendor/` Third party libraries and tools
> Mismatched component versions may cause errors or unpredictable behavior. Use the latest compatible versions whenever possible.

To read firmware versions and update firmware, use the [Tutorials](https://tropicsquare.github.io/libtropic/latest/tutorials/) and follow **Chip Identification** and **Firmware Update**.

## FAQ
We provide the [FAQ](https://tropicsquare.github.io/libtropic/latest/faq/) section in our documentation with frequently asked questions and troubleshooting tips.

See the [FAQ](https://tropicsquare.github.io/libtropic/latest/faq/) for common questions and troubleshooting.

## License

See the [LICENSE.md](LICENSE.md) file in the root of this repository or consult license information at [Tropic Square website](http:/tropicsquare.com/license).
See [LICENSE.md](LICENSE.md) in the repository root, or check the [Tropic Square website](https://tropicsquare.com/license).



Loading