Connect to the board, choose a key index, fetch a pubkey, sign a kind 1 event, and test NIP-04 / NIP-44 encrypt + decrypt RPCs.
-
-
-
-
- Disconnected
-
-
-
-
-
-
-
Public Key
-
-
-
-
-
-
-
-
-
-
Sign Kind 1 Event
-
-
-
-
-
-
-
-
-
-
-
-
NIP-04 Encrypt
-
-
-
-
-
-
-
-
-
-
-
-
NIP-04 Decrypt
-
-
-
-
-
-
-
-
-
-
-
-
NIP-44 Encrypt
-
-
-
-
-
-
-
-
-
-
-
-
NIP-44 Decrypt
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/firmware/README.md b/firmware/README.md
index 0401d97..672a124 100644
--- a/firmware/README.md
+++ b/firmware/README.md
@@ -46,10 +46,10 @@ CDC path:
./.venv/bin/python ./examples/feather_sign_event.py /dev/ttyACM0
```
-WebUSB path:
+WebUSB / Web Serial path (unified):
-- Open [`examples/feather_webusb_demo.html`](../examples/feather_webusb_demo.html)
-- Connect in Chrome/Edge
+- Open [`usb-test.html`](../usb-test.html) in Chrome/Edge
+- Connect via Web Serial (works for Teensy 4.1 USB CDC, CYD CH340, Feather, etc.)
- Run `get_public_key`
- Confirm pubkey matches CDC result
@@ -58,9 +58,9 @@ WebUSB path:
The CYD has no native USB; its CH340 bridge exposes a serial port. The browser
transport is **Web Serial** (`navigator.serial`), Chromium-only. A full test
page covering every algorithm and verb lives at
-[`examples/cyd_webserial_demo.html`](../examples/cyd_webserial_demo.html):
+[`usb-test.html`](../usb-test.html):
-- Open [`examples/cyd_webserial_demo.html`](../examples/cyd_webserial_demo.html) in Chrome/Edge
+- Open [`usb-test.html`](../usb-test.html) in Chrome/Edge
- Click **Connect Web Serial**, select the CH340 port (`1a86:7523`)
- Exercise each card: `get_public_key` (all 6 algorithms), `sign`/`verify`,
`encapsulate`/`decapsulate`, `derive_shared_secret`, `derive`,
diff --git a/firmware/cyd_esp32_2432s028/README.md b/firmware/cyd_esp32_2432s028/README.md
index 898c728..4afb679 100644
--- a/firmware/cyd_esp32_2432s028/README.md
+++ b/firmware/cyd_esp32_2432s028/README.md
@@ -95,9 +95,9 @@ hardware note below.
The CYD has no native USB; the CH340 bridge exposes a serial port. The browser
transport is **Web Serial** (`navigator.serial`), Chromium-only. A full test
page covering every algorithm and verb lives at
-[`examples/cyd_webserial_demo.html`](../../examples/cyd_webserial_demo.html):
+[`usb-test.html`](../../usb-test.html):
-1. Open [`examples/cyd_webserial_demo.html`](../../examples/cyd_webserial_demo.html) in Chrome/Edge.
+1. Open [`usb-test.html`](../../usb-test.html) in Chrome/Edge.
2. Click **Connect Web Serial**, select the CH340 port (`1a86:7523`).
3. On the CYD touchscreen, enter or generate a mnemonic to reach the "ready" state.
4. Exercise each card: `get_public_key` (all 6 algorithms), `sign`/`verify`,
diff --git a/firmware/teensy41/signer/signer.ino b/firmware/teensy41/signer/signer.ino
index d5ca047..b2e200f 100644
--- a/firmware/teensy41/signer/signer.ino
+++ b/firmware/teensy41/signer/signer.ino
@@ -20,7 +20,7 @@
// each boot. Mirrors CYD_DEBUG_AUTO_GENERATE in
// firmware/cyd_esp32_2432s028/main/main.c. Set to 0 for the normal interactive
// boot flow (show the startup menu, wait for the user to tap Generate/Enter).
-#define DEBUG_AUTO_GENERATE 1
+#define DEBUG_AUTO_GENERATE 0
#include
#include
@@ -507,7 +507,17 @@ void setup() {
} else {
Serial.print("Found ");
Serial.print(n_pads);
- Serial.println(" pad(s), showing selection screen...");
+ Serial.println(" pad(s):");
+ for (int i = 0; i < n_pads; i++) {
+ Serial.print(" [");
+ Serial.print(i);
+ Serial.print("] ");
+ Serial.print(pad_chksums[i]);
+ Serial.print(" (");
+ Serial.print((unsigned long)pad_sizes[i]);
+ Serial.println(" bytes)");
+ }
+ Serial.println("Showing selection screen...");
const char *chksum_ptrs[4];
for (int i = 0; i < n_pads; i++) chksum_ptrs[i] = pad_chksums[i];
char selected[65];
diff --git a/src/main.c b/src/main.c
index 8b2f55f..aa7d05e 100644
--- a/src/main.c
+++ b/src/main.c
@@ -762,8 +762,8 @@ int socket_name_random(char *out, size_t out_len);
/* Version information (auto-updated by build/version tooling) */
#define NSIGNER_VERSION_MAJOR 0
#define NSIGNER_VERSION_MINOR 1
-#define NSIGNER_VERSION_PATCH 7
-#define NSIGNER_VERSION "v0.1.7"
+#define NSIGNER_VERSION_PATCH 8
+#define NSIGNER_VERSION "v0.1.8"
/* NSIGNER_HEADERLESS_DECLS_END */
diff --git a/examples/cyd_webserial_demo.html b/usb-test.html
similarity index 86%
rename from examples/cyd_webserial_demo.html
rename to usb-test.html
index c20ec7a..661cbe1 100644
--- a/examples/cyd_webserial_demo.html
+++ b/usb-test.html
@@ -3,7 +3,7 @@
- n_signer CYD Web Serial Demo
+ n_signer USB Test