SDK for TESAIoT Dev Kit
API reference & tutorials (ModusToolbox)
Loading...
Searching...
No Matches

Functions

void tesaiot_run_protected_update_isolated_test (void)
 Interactive end-to-end Protected Update against the isolated test slot; blocks on scanf().

Detailed Description

One function: the interactive Protected Update test that runs against the isolated test slot, leaving the live certificate untouched.

Variant
mtb-mpy and mtb-only

Function Documentation

◆ tesaiot_run_protected_update_isolated_test()

void tesaiot_run_protected_update_isolated_test ( void )

Interactive end-to-end Protected Update against the isolated test slot; blocks on scanf().

Run the Protected Update path end to end against the isolated test slot, leaving the live certificate untouched.

Contract
Runs the Protected Update path end to end against the isolated test slot, leaving the live certificate untouched. No template call site exists; the sole real caller is the archived MicroPython optiga.clm_menu() binding (modoptiga.c:1681), which refuses while "optiga not initialized" — the example below is modelled on that guard. Preconditions: optiga_manager_init() and the application opened (in MicroPython, optiga.init() does both and also pauses CM55 touch polling); the ported test creates its own optiga_util_t but never opens the application. Interactive: it blocks on scanf() (tesaiot_protected_update_isolated.c:103) and depends on retarget-io polled stdin on the CM33_NS UART; it returns only when the menu's exit option is chosen — never call it from a task another subsystem waits on. Requires a build with ENABLE_OPTIGA_CLM=1.
Variant
mtb-mpy and mtb-only
Example (authored — no shipped call site)
static void bento_ex_tesaiot_run_protected_update_isolated_test(void)
{
/* Probe that the manager is up. optiga_manager_lock() returns false
* when optiga_manager_init() never ran — and, unlike
* optiga_chip_enter(), never lies about an uninitialised manager. */
return; /* not initialised — refuse to run */
}
optiga_manager_unlock(); /* probe only: one unlock per
* successful lock, and do NOT hold
* the lock across the test */
/* The OPTIGA application must already be open (optiga.init() /
* optiga_trust_open_application()) — manager init alone is not
* enough; the test does not open it for you. */
/* Blocks on the UART menu until the operator exits. Dedicated
* maintenance task only. */
}