d7369646fb
Added remaining-todo document for Teensy 4.1 signer: captures v0.1.1-v0.1.5 fixes, current 20/24 suite score, and next steps for ml-dsa-65 sign hang (NTT correctness in matvec/scalar wrappers) and OTP decrypt mismatch
master
Laan Tungir2026-07-27 19:14:22 -04:00
b1f8076b1d
v0.1.5 - Fixed ml-dsa-65 SHAKE re-squeeze domain separation bug: poly_challenge, poly_eta, and poly_uniform_gamma1 re-absorbed the same seed on buffer exhaustion, producing identical output and potentially hanging the SampleInBall rejection loop; added a monotonic re-squeeze counter to the absorb buffer so each re-squeeze produces fresh bytes; note: ml-dsa-65 sign still hangs because the rejection loop never accepts a candidate — this is a separate NTT-correctness bug in the matvec/scalar multiplication wrappers that requires comparison against a PQClean reference implementation
Laan Tungir2026-07-27 19:07:51 -04:00
314f1c520a
v0.1.4 - Teensy 4.1 PQ stack fixes: moved ml-kem-768 NTT working polys (polyvec_matrix_pointwise 6656B, indcpa enc 9728B, indcpa dec 5120B, poly_mul_negacyclic 1024B) and ml-dsa-65 sign poly c (1024B) + SHAKE out buffers (2688B) from DTCM stack to DMAMEM (RAM2) static workspace; fixed ml-kem-768 keygen crash (verified on hardware); added ml-dsa-65 rejection-loop DMAMEM counter diagnostic; ml-dsa-65 sign no longer crashes but hangs due to pre-existing NTT correctness bug (rejection loop runs to exhaustion) — next milestone is to compare NTT output against host reference
v0.1.5
Laan Tungir2026-07-27 18:46:09 -04:00
ea2f1cd78e
v0.1.3 - Fixed Teensy 4.1 ed25519 sign/verify stack overflow: moved ed_add's 12 gf arrays (1536B), ed_frombytes' 9 gf arrays (1152B), sc_reduce/sc_muladd int64_t x[64] (512B), and ed25519_sign/verify SHA-512 ctx (328B) from DTCM stack to DMAMEM (RAM2) workspace; added persistent crash diagnostics (DMAMEM op marker + stack/heap measurement); full classical+Nostr suite now passes 16/16 in one uninterrupted boot (get_info, secp256k1/ed25519/x25519 pubkeys, schnorr+ecdsa sign/verify, ed25519 sign/verify, x25519 shared secret, derive, nostr pubkey/sign_event, nip04+nip44 round-trips)
v0.1.4
Laan Tungir2026-07-27 16:34:02 -04:00
9282e22b00
v0.1.2 - Teensy 4.1 secp256k1 stack reductions + shared context: reduced WINDOW_A 5->4 (Strauss ecmult tables 8->4 entries, fixes schnorr verify stack overflow) and ECMULT_CONST_GROUP_SIZE 5->4 (ECDH tables 16->8, fixes nip04 crash); added secp256k1_get_shared_context() and reused it in dispatch.cpp ECDSA/schnorr helpers to eliminate per-request secp256k1_context_create/destroy heap fragmentation; reordered test_signer.py to test classical+nostr verbs before PQ verbs and added nostr_sign_event/nip04/nip44 round-trip tests
v0.1.3
Laan Tungir2026-07-27 12:18:38 -04:00
2ba81c4bc8
v0.1.1 - Fixed Teensy 4.1 NIP-04 crash and NIP-44 dispatch bug: reduced secp256k1 ECMULT_CONST_GROUP_SIZE 5->4 to halve ECDH stack usage (~3.5KB->~1.7KB) preventing DTCM stack overflow in secp256k1_ecmult_const during nip04/nip44 ECDH; fixed is_nip44 selector in dispatch.cpp (method[7] was always 'i', digit is at method[9]) so nostr_nip44_* verbs now reach the nip44 implementation instead of silently calling nip04; verified nip04+nip44 round-trip on hardware
v0.1.2
Laan Tungir2026-07-27 07:16:53 -04:00
64fbd5c874
v0.1.0 - CYD firmware v0.0.2: algorithm-based API upgrade (all verbs, all algorithms), vendored Keccak/SHAKE + PSA ed25519/x25519 for IDF v5.4, Web Serial test page, CYD docs, Teensy 4.1 port plan (1TB SDXC OTP pad), brainstorming READMEs for BLE/IR/NFC/FPGA signer concepts
v0.1.1
Laan Tungir2026-07-21 13:16:04 -04:00
ca18e1e42d
v0.0.58 - Added derive verb: HMAC-SHA256(privkey, data) for secp256k1, enabling opaque d-tag derivation via nsigner remote backend without exposing the privkey
v0.1.0
Laan Tungir2026-07-20 19:56:51 -04:00
b3421c3e40
v0.0.57 - Migrated to unified nostr_ prefixed verb names; removed legacy verb aliases (sign_data, ssh_sign, verify_signature, kem_encapsulate, kem_decapsulate, otp_encrypt, otp_decrypt); split get_public_key into algorithm-based get_public_key and role-based nostr_get_public_key; OTP now selected via algorithm:otp instead of curve:otp; consolidated API docs from api.md into README.md
v0.0.58
Laan Tungir2026-07-20 17:29:45 -04:00
96ab9741ef
v0.0.56 - Fix connection display scroll issue: use full screen clear instead of tui_clear_continuous for modal connections view
v0.0.57
Laan Tungir2026-07-20 10:11:09 -04:00
2af12868e2
v0.0.55 - Remove redundant 'Press d for connection instructions' hint line from TUI (already in hotkey menu)
v0.0.56
Laan Tungir2026-07-20 09:55:10 -04:00
a0a5987ffa
v0.0.54 - TUI: show full derivation path in Roles table, move connection instructions to on-demand 'd' hotkey display with spaced transport blocks
v0.0.55
Laan Tungir2026-07-20 09:49:20 -04:00
0b0ec5eb1a
v0.0.53 - Fixed SIGILL crash in multi-listen mode: pfds array was too small (3) for 3 listeners + stdin (4), causing stack buffer overflow
v0.0.54
Laan Tungir2026-07-20 09:13:18 -04:00
0355744103
v0.0.52 - Added api.md with unified verb scheme, fixed TUI status display in README, added TCP/HTTP port auto-increment on EADDRINUSE (up to 5 tries)
v0.0.53
Laan Tungir2026-07-20 09:07:21 -04:00
db274ce487
v0.0.51 - Document memfd_secret as future secret-memory backing in README §2.5 (mlock remains current path; memfd_secret unusable on Qubes Xen guests due to SIGBUS on page materialization)
v0.0.52
Laan Tungir2026-07-19 14:35:00 -04:00
56f37e092d
v0.0.50 - Clean up README: rename 4c.1 to 'Verbs' (no past-tense references), remove section 11 (Implemented adjuncts and future work) and section 12 (Document map)
v0.0.51
Laan Tungir2026-07-19 14:07:04 -04:00
a017dc40e0
v0.0.49 - Added general encrypt/decrypt verbs with curve-based routing (otp, secp256k1 NIP-04/44, x25519, ml-kem-768) and updated README documentation
v0.0.50
Laan Tungir2026-07-19 11:38:44 -04:00
05c055503d
v0.0.48 - Added OTP one-time pad encryption (otp_encrypt/otp_decrypt verbs), HTTP listener mode (--listen http:HOST:PORT), interactive OTP pad auto-scan on USB drives, raised SERVER_MAX_MSG_SIZE to 16MB, updated README with curl examples and current API documentation
v0.0.49
Laan Tungir2026-07-19 11:07:07 -04:00
16a6da817c
Auto-fix Gitea release timestamp via SSH after release creation (workaround for Gitea created_unix=0 bug)
v0.0.47
Laan Tungir2026-07-16 16:30:15 -04:00
1cf541b02d
Fix install script: use git tags API with version sorting instead of releases API (works around Gitea epoch-zero timestamp bug)
Laan Tungir2026-07-16 16:13:11 -04:00
09f3ec2f7c
Fix Gitea release creation: include created_at timestamp to work around Gitea bug where releases get epoch zero timestamp
Laan Tungir2026-07-16 16:10:00 -04:00
c5f1a70658
v0.0.47 - Added post-quantum cryptography (ML-DSA-65, SLH-DSA-128s, ML-KEM-768) and standard ECC (ed25519, x25519) support with algorithm-based API
Laan Tungir2026-07-16 15:14:57 -04:00
6fd7b8ce1f
v0.0.45 - Display qrexec service name (qubes.NsignerRpc) in signer connection info; use human-readable timestamps in activity log; fix static release build by adding miner.c to Dockerfile.alpine-musl
Laan Tungir2026-07-11 19:12:34 -04:00
1b5af2fd33
v0.0.44 - Add JavaScript and Python demo programs (client/demo_javascript.js, client/demo_python.py) demonstrating get_public_key, sign_event, and nip44 encrypt/decrypt via qrexec
v0.0.45
Laan Tungir2026-07-11 15:01:48 -04:00
9b47883330
v0.0.43 - Add C99 demo program (client/demo_c99.c) demonstrating get_public_key, sign_event, and nip44 encrypt/decrypt via qrexec; sync nostr_core_lib with reconnect fix
v0.0.44
Laan Tungir2026-07-11 14:55:16 -04:00
9a8657f663
v0.0.42 - Add C qrexec client example using high-level nostr_signer API with nostr_index selector; sync nostr_core_lib with qrexec transport and index support
v0.0.43
Laan Tungir2026-07-11 14:28:09 -04:00
478c3a569e
v0.0.41 - Fix activity log label for index whitelist denials — shows 'DENIED:index-not-approved' instead of 'DENIED:no-match'
v0.0.42
Laan Tungir2026-07-11 13:57:13 -04:00
10208e5fac
v0.0.40 - Add interactive index whitelist prompt after transport selection — users can restrict nostr_index values without CLI flags
v0.0.41
Laan Tungir2026-07-11 13:46:23 -04:00
922a45ce3a
v0.0.39 - Remove qrexec one-shot (option 4) from interactive transport menu — only persistent listeners remain
v0.0.40
Laan Tungir2026-07-11 13:42:59 -04:00
d28f691aae
v0.0.38 - Add --allow-index whitelist for nostr_index restriction — supports list (1,3,4), range (0-3), mixed (0,2-3), or 'all'
v0.0.39
Laan Tungir2026-07-11 13:11:36 -04:00
2e8ce777d8
v0.0.37 - Add interactive multi-transport selection menu at startup — users can select one or more transports (unix, qrexec bridge, TCP) from a menu instead of memorizing CLI flags
v0.0.38
Laan Tungir2026-07-11 11:31:21 -04:00
8ebdb50789
v0.0.36 - Update README with qrexec bridge docs, update start_nsigner.sh to support qrexec mode and extra args, add setup scripts
v0.0.37
Laan Tungir2026-07-11 11:09:41 -04:00
a39baed82b
v0.0.35 - Update README with qrexec bridge docs, update start_nsigner.sh to support qrexec mode and extra args
v0.0.36
Laan Tungir2026-07-11 11:08:04 -04:00
d15eebb80f
v0.0.34 - Add qrexec bridge subcommand and --bridge-source-trusted flag for persistent-signer qrexec transport
v0.0.35
Laan Tungir2026-07-11 09:37:51 -04:00
fd622dfd60
server: ignore SIGPIPE so abrupt client disconnects don't kill the signer
v0.0.34
Laan Tungir2026-07-08 09:46:42 -04:00
7ffba2b678
v0.0.16 - Implement deny-by-default approval model with on-demand nostr_index derivation and --preapprove CLI flag
v0.0.17
Laan Tungir2026-05-04 18:44:40 -04:00
fac0ce6503
v0.0.13 - Fix selector parsing to use last params element for nostr_index options
v0.0.14
Laan Tungir2026-05-04 08:03:17 -04:00
ae95ae6859
v0.0.12 - Fix release flow: always increment version in -r mode; include startup confirmations and latest-version installer behavior
v0.0.13
Laan Tungir2026-05-04 07:21:30 -04:00
3efb0edb61
v0.0.11 - Improve startup UX messaging and installer defaults: show mnemonic acceptance, readiness state, and auto-resolve latest release version
v0.0.12
Laan Tungir2026-05-04 07:18:27 -04:00
c5fdb1a207
v0.0.11 - Improve startup UX: print version, visible mnemonic entry, retry up to 10 attempts, and support q/x quit
v0.0.11
Laan Tungir2026-05-04 07:02:40 -04:00
28f50a750f
v0.0.10 - Fix ARM64 static release build via buildx/QEMU and arch-aware nostr_core linking
Laan Tungir2026-05-04 05:57:46 -04:00
1dd6630311
v0.0.9 - Add timestamped stdout activity logging for TCP mode and show full .fips signer URL in startup helper
v0.0.10
Laan Tungir2026-05-03 20:37:11 -04:00
252d026991
v0.0.8 - Add FIPS npub-aware approval prompt and simplify qube installer to nsigner-only startup flow
v0.0.9
Laan Tungir2026-05-03 19:50:29 -04:00
f9d7b94962
v0.0.7 - Allow TCP non-loopback IPv4/IPv6 binds for FIPS reachability
v0.0.8
Laan Tungir2026-05-03 11:41:42 -04:00