8 Commits

Author SHA1 Message Date
Pol Henarejos
df949f3d45 Harden GitHub workflows
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2026-06-12 17:21:04 +02:00
Pol Henarejos
4d13107aac Fix mbedtls runtime link.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2026-06-11 22:07:57 +02:00
Pol Henarejos
be6bda1baa Fix build for 2040
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2026-06-11 16:48:14 +02:00
Pol Henarejos
ac2d839c15 Add board invariant trust zone.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2026-06-10 17:51:51 +02:00
Pol Henarejos
0982522447 Added trusted region.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2026-06-08 16:41:16 +02:00
Pol Henarejos
f7edfc916a Refactor HWRNG to be less blocking.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2026-06-08 12:08:57 +02:00
Pol Henarejos
0fd81c47d6 Refactor HWRNG to be less blocking.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2026-06-08 12:07:32 +02:00
Pol Henarejos
9ffcfb4beb Harden core-shared command/result state
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2026-06-01 13:38:36 +02:00
5 changed files with 37 additions and 11 deletions

View File

@@ -40,7 +40,9 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
persist-credentials: false
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL

View File

@@ -5,34 +5,49 @@ on:
- cron: '0 2 * * *'
workflow_dispatch:
permissions:
contents: write
jobs:
nightly:
name: Deploy nightly
permissions:
contents: write
strategy:
fail-fast: false
matrix:
refs: [main, development]
runs-on: ubuntu-latest
env:
SIGNING_KEY_PATH: ${{ github.workspace }}/../private.pem
steps:
- name: Validate signing secret
run: |
test -n "${{ secrets.PRIVATE_KEY_B64 }}" || {
echo "PRIVATE_KEY_B64 is required for nightly signed releases." >&2
exit 1
}
- name: Checkout repository
uses: actions/checkout@v4
with:
ref: ${{ matrix.refs }}
submodules: 'recursive'
persist-credentials: false
- name: Restore private key
run: |
echo "${{ secrets.PRIVATE_KEY_B64 }}" | base64 -d > private.pem
chmod 600 private.pem
echo "${{ secrets.PRIVATE_KEY_B64 }}" | base64 -d > "${SIGNING_KEY_PATH}"
chmod 600 "${SIGNING_KEY_PATH}"
- name : Build
env:
PICO_SDK_PATH: ../pico-sdk
SECURE_BOOT_PKEY: ../private.pem
SECURE_BOOT_PKEY: ${{ github.workspace }}/../private.pem
run: |
./workflows/autobuild.sh pico
./build_pico_fido.sh --no-eddsa
./workflows/autobuild.sh esp32
- name: Delete private key
run: rm private.pem
if: always()
run: rm -f "${SIGNING_KEY_PATH}"
- name: Update nightly release
uses: pyTooling/Actions/releaser@v6.7.0
with:

View File

@@ -21,16 +21,22 @@ on:
- cron: '23 5 * * 4'
workflow_dispatch:
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout repository and submodules
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
submodules: recursive
persist-credentials: false
- name: Build in container
run: ./tests/build-in-docker.sh
- name: Start emulation and test

View File

@@ -34,9 +34,9 @@ int cbor_get_assertion(const uint8_t *data, size_t len, bool next);
const uint8_t aaguid[16] = { 0x89, 0xFB, 0x94, 0xB7, 0x06, 0xC9, 0x36, 0x73, 0x9B, 0x7E, 0x30, 0x52, 0x6D, 0x96, 0x81, 0x45 }; // First 16 bytes of SHA256("Pico FIDO2")
const uint8_t *cbor_data = NULL;
size_t cbor_len = 0;
uint8_t cbor_cmd = 0;
static const uint8_t *volatile cbor_data = NULL;
static volatile size_t cbor_len = 0;
static volatile uint8_t cbor_cmd = 0;
int cbor_parse(uint8_t cmd, const uint8_t *data, size_t len) {
if (len == 0 && cmd == CTAPHID_CBOR) {
@@ -108,7 +108,10 @@ void *cbor_thread(void *arg) {
if (m == EV_EXIT) {
break;
}
apdu.sw = (uint16_t)cbor_parse(cbor_cmd, cbor_data, cbor_len);
const uint8_t *data = (const uint8_t *)cbor_data;
size_t len = cbor_len;
uint8_t cmd = cbor_cmd;
apdu.sw = (uint16_t)cbor_parse(cmd, data, len);
if (apdu.sw == 0) {
DEBUG_DATA(res_APDU, res_APDU_size);
}