From: Chris Duncan Date: Wed, 24 Sep 2025 06:27:36 +0000 (-0700) Subject: Start converting adpu messages. X-Git-Url: https://git.codecow.com/?a=commitdiff_plain;h=44cf26208a6c55a5c4bf2cb7182dd6fccf2621ae;p=libnemo.git Start converting adpu messages. --- diff --git a/package-lock.json b/package-lock.json index 8d404a1..15cac08 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,8 @@ "version": "0.10.0", "license": "(GPL-3.0-or-later AND MIT AND ISC)", "workspaces": [ - "src/lib/ledger/*" + "src/lib/ledger/ble", + "src/lib/ledger/hid" ], "dependencies": { "@ledgerhq/device-management-kit": "0.9.0", diff --git a/src/lib/ledger/index.ts b/src/lib/ledger/index.ts index d60fbb4..336e23d 100644 --- a/src/lib/ledger/index.ts +++ b/src/lib/ledger/index.ts @@ -1,7 +1,7 @@ //! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-License-Identifier: GPL-3.0-or-later -import { DeviceManagementKit, DeviceManagementKitBuilder } from '@ledgerhq/device-management-kit' +import { ApduBuilder, DeviceManagementKit } from '@ledgerhq/device-management-kit' import { DmkBle } from '@ledgerhq/dmk-ble' import { DmkHid } from '@ledgerhq/dmk-hid' import { Account } from '../account' @@ -131,10 +131,19 @@ export class Ledger { } const account = dec.toBytes(index + HARDENED_OFFSET, 4) const data = new Uint8Array([...this.#DERIVATION_PATH, ...account]) + const apdu = new ApduBuilder({ + ins: this.#ADPU_CODES.account, + cla: this.#ADPU_CODES.class, + p1: show ? 1 : 0, + p2: this.#ADPU_CODES.paramUnused + }).addBufferToData(data).build().getRawApdu() const transport = await this.#transport.create(this.#openTimeout, this.#listenTimeout) - const response = await transport - .send(this.#ADPU_CODES.class, this.#ADPU_CODES.account, show ? 1 : 0, this.#ADPU_CODES.paramUnused, data as Buffer) + const response = await this.#transport + .sendApdu({ + sessionId: '', + apdu + }) .catch((err: any) => dec.toBytes(err.statusCode)) .finally(async () => await transport.close()) as Uint8Array