COLDCARD firmware PR #697 patch
coldcard-firmware-pr-697-patch
- Organisation
- Coinkite
- Evidence role
- Repository patch
- Published
- not established
- Source changes
- 0
- Detected differences
- 0
- Unreviewed
- 0
- Copies held
- 1
Patch content for #697. Kept separately from the conversation and review-state capture.
Every check is recorded, including checks that found no text change. A detected edit is therefore bounded between two checks. The publisher's exact save time is not observable from this record. Last checked .
This post is held twice: here, with this project's own note on why it matters, and again as part of the conversation captured at , which is polled for changes. Both copies are the same post; neither is a separate event.
Snapshot and diff bodies for this chain monitor are held in the local evidence archive but withheld from the public site because they can contain the addresses of people who published nothing themselves. Capture times and reviewed change summaries remain available below.
Held captures
-
Recovered from the Internet Archive rather than captured by this project. The row records that third-party provenance separately from captures made by this project.
What changed from the previous capture 0 lines
Extracted text as captured
From 43f7a5cf5acd18a0b3d406de0896a5e2e07a171c Mon Sep 17 00:00:00 2001 From: SashaMIT <[email protected]> Date: Tue, 4 Aug 2026 19:29:00 +0700 Subject: [PATCH] fix: feed full SE hash into ngu.random.reseed rng_seeding previously truncated sha256d(SE1||SE2) to 32 bits before reseed, which also only overwrote one yasmarang state word. Pass the full digest bytes (needs libngu reseed(bytes) from switck/libngu#65). Co-authored-by: Cursor <[email protected]> --- shared/mk4.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/shared/mk4.py b/shared/mk4.py index 3a3e229d3..0f4df9ebf 100644 --- a/shared/mk4.py +++ b/shared/mk4.py @@ -38,15 +38,15 @@ def make_psram_fs(): def rng_seeding(): # seed our RNG with entropy from secure elements - import callgate, ngu, ustruct + import callgate, ngu a = callgate.read_rng(1) # SE1 b = callgate.read_rng(2) # SE2 - n = ngu.hash.sha256d(a+b) - n, = ustruct.unpack('I', n[0:4]) - - ngu.random.reseed(n) + # Pass full sha256d digest. Truncating to 32 bits left most SE entropy + # on the floor and libngu reseed(int) only overwrote one yasmarang word. + # Requires libngu reseed(bytes) support (switck/libngu#65). + ngu.random.reseed(ngu.hash.sha256d(a+b)) def init0():Excerpt only. The complete copy is held offline and backs quotations on this site. The original publication remains the canonical public source.
0 presentation-noise differences. Sidebar, ticker and other page chrome churn that our review classified as not being changes to what the source says.
The excerpts and plain unified diffs above show the text this project held and how it changed. To verify a quotation, compare it against the page itself or against the Internet Archive's copies, which are independent of this project.
Complete captures are held offline rather than mirrored here, so this page shows diffs and excerpts. If a quotation is ever disputed, the full copy can be produced. Ask.
Compare the screenshot or a quotation against the original while it is available.