Skip to content

Commit

Permalink
feat(core/prodtest): add tamper testing function
Browse files Browse the repository at this point in the history
  • Loading branch information
TychoVrahe committed Feb 28, 2025
1 parent 2c1fe70 commit 935cbc4
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 0 deletions.
1 change: 1 addition & 0 deletions core/SConscript.prodtest
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ SOURCE_PRODTEST = [
'embed/projects/prodtest/cmd/prodtest_reboot.c',
'embed/projects/prodtest/cmd/prodtest_rgbled.c',
'embed/projects/prodtest/cmd/prodtest_sdcard.c',
'embed/projects/prodtest/cmd/prodtest_tamper.c',
'embed/projects/prodtest/cmd/prodtest_sbu.c',
'embed/projects/prodtest/cmd/prodtest_touch.c',
'embed/projects/prodtest/cmd/prodtest_tropic.c',
Expand Down
11 changes: 11 additions & 0 deletions core/embed/projects/prodtest/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -759,6 +759,17 @@ powerctl-hibernate
OK
```

### tamper-read
Reads the state of the tamper detection inputs.
Up to 8 inputs can be read, each represented by a single bit in the response.
A set bit indicates active inputs.

Example:
```
tamper-read
OK 2
```

### tropic-get-riscv-fw-version

Reads the version of the RISC-V firmware. The command returns `OK` followed by the version.
Expand Down
43 changes: 43 additions & 0 deletions core/embed/projects/prodtest/cmd/prodtest_tamper.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
/*
* This file is part of the Trezor project, https://trezor.io/
*
* Copyright (c) SatoshiLabs
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

#ifdef USE_TAMPER

#include <trezor_rtl.h>

#include <rtl/cli.h>
#include <sys/tamper.h>

static void prodtest_tamper_read(cli_t* cli) {
uint8_t val = tamper_external_read();

cli_ok(cli, "%d", val);
}

// clang-format off

PRODTEST_CLI_CMD(
.name = "tamper-read",
.func = prodtest_tamper_read,
.info = "Read current status of external tamper inputs",
.args = ""
);


#endif

0 comments on commit 935cbc4

Please sign in to comment.