Skip to content

v1.3.4 — for Ledger OS 1.7.x (API level 27)

Choose a tag to compare

@DaisukeFlowers DaisukeFlowers released this 07 Oct 03:10
Immutable release. Only release title and notes can be modified.

Kadena Ledger app v1.3.4 — build for Ledger OS API level 27 (Nano S+ 1.7.0 and newer); devices on OS 1.6.x keep v1.3.3

Built for Ledger OS API level 27 (Nano S+ 1.7.0, Nano X 2.8.0, Stax 1.11.0, Flex 1.7.0, Apex P
1.2.0); no functional change; devices on the previous OS keep using v1.3.3.

Not in Ledger's catalog and not audited by one of Ledger's partners: this is the maintainers' own build, reviewed by the maintainers' own independent-context reviewers, reproducible from source. This API-27 build has not yet had a hardware run; the same code at API 26 (v1.3.3) has.

Changed

  • Built with Ledger's builder image
    ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder@sha256:8a2f13fa687795c6e7548197c94e2e31b15b28523a6e190a129fdd15eaa03660,
    which ships ledger-secure-sdk v27.1.1 (API level 27) for all five devices. v1.3.3 and earlier
    were built with ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder@sha256:036d9fd1a264a068ea20f2d0edc962ecdbf1bf5861ef75215924abd77f93bf29
    (SDK v26.5.0, API level 26), which remains the image for OS 1.6.x devices.
  • The app code is that of v1.3.3; only the version number changes, and the version page reads
    1.3.4. The install parameters are those of v1.3.3 except the API level.
  • One wire-visible difference comes from the SDK: from API level 27 it answers any command that
    arrives while a previous one still awaits its reply with a bare 0x6901, before the app sees
    it. While a signing review waits, GET_VERSION and signing commands therefore get 0x6901 where
    v1.3.3 answered GET_VERSION and refused the rest with 0x6986. Nothing more is accepted.

Testing

  • v1.3.3's code built with the new image reproduces, byte for byte on all five devices, the
    API-level-27 binaries that the public CI built from the v1.3.3 release commit.
  • The unit suite and the full Zemu matrix pass on the API-level-27 binaries, all five models.
    Only the version-page snapshots change (1.3.4). The review-lock test expects 0x6901 for both
    interleaved commands on an API level 27 binary, and now also checks that the approved signature
    of the interrupted review equals the undisturbed one. The emulator image the Zemu package pins
    supports API levels up to 26 and cannot start these binaries, so this run used Speculos v0.27.1,
    which supports API level 27 (Ledger's image ghcr.io/ledgerhq/speculos@sha256:028d1e368244631578537e7ca50b6f13ca2932b5f3fd220627289b559c07a886).
  • Not yet run on a device.

Device hashes (deterministic)

Target Application hash
nanos2 (Nano S+) 03b75bacb5f651c27c27adcc4be525c4bc9f554797a39555ee7dbdc2f69d9d85
nanox 5df77b865b44515a4e82c9c2bf3d7a5a94e2d72dcdb8ff8a69de94ba3fb3165b
stax 8b972b021bce9ab56a37316a85981744aba412492c194a9f140b834d5e500073
flex 60865900d494673d0ed9d8ef783e1796f3214a969e2f8453dd356668f02c6b2d
apex_p 1214d54bba95467395c939840d4379225454920ff937e828371e96e397ed7cee