libngu PR #61: SHA-256 Hash-DRBG and a full-width reseed API
libngu-pr-61
Latest reviewed change
source content difference between and
The pull-request state changed from Draft to Closed.
Aug 1, 2026
fix: feed full SE digest to PRNG reseed (drop 32-bit truncation)
Coldcard/firmware#691
-Draft
+Closed
scgbckbone
added 4 commits
August 1, 2026 21:56
First lines only. The complete diff is in the timeline below.
- Organisation
- switck
- Evidence role
- Repository pull request
- Published
- not established
- Source changes
- 6
- Detected differences
- 8
- Unreviewed
- 0
- Copies held
- 9
The live upstream proposal after #59 and #60 were closed by their authors on 1 August. Replaces the generator with a SHA-256 Hash-DRBG and requires a reseed seed of at least 32 bytes, rejecting the old four-byte integer call. Coldcard/firmware PR #691 was rewritten to depend on this one.
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
-
The pull-request state changed from Draft to Closed.
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 2 lines
Aug 1, 2026 fix: feed full SE digest to PRNG reseed (drop 32-bit truncation) Coldcard/firmware#691 -Draft +Closed scgbckbone added 4 commits August 1, 2026 21:56Extracted text as captured
Skip to content Navigation Menu Sign in Appearance settings Platform AI CODE CREATION GitHub CopilotWrite better code with AI GitHub Copilot appDirect agents from issue to merge MCP RegistryIntegrate external tools DEVELOPER WORKFLOWS ActionsAutomate any workflow CodespacesInstant dev environments IssuesPlan and track work Code ReviewManage code changes Code QualityEnforce quality at merge APPLICATION SECURITY GitHub Advanced SecurityFind and fix vulnerabilities Code securitySecure your code as you build Secret protectionStop leaks before they start EXPLORE Why GitHub Documentation Blog Changelog Marketplace View all features Solutions BY COMPANY SIZE Enterprises Small and medium teams Startups Nonprofits BY USE CASE App Modernization DevSecOps DevOps CI/CD View all use cases BY INDUSTRY HealthcareExcerpt only. The complete copy is held offline and backs quotations on this site. The original publication remains the canonical public source.
-
The pull request state changed from Open to Merged, and the page rendered additional contributor labels.
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 3 lines
Aug 1, 2026 Copy link Copy Markdown +Contributor Nice! I hadn't noticed cifra already ships a Hash-DRBG; that's a simpler core than the one I wrote in #62. One heads-up from working on the same problem (#62/#63/#64): the backend-selection trap that caused the advisory looks untouched here, with MICROPY_HW_ENABLE_RNG (0), the #ifndef still passes and upstream links its pseudo-random rng_get(), which would then seed this DRBG. That part is what #64 fixes, and it's independent of which DRBG core is used. No attachment to my DRBG core, if this one is preferred, I'm happy to rebase the attestation/gates work on top of it. Closed random: harden entropy backends and state handling #64 -Open +Merged This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters Show hidden charactersExtracted text as captured
Skip to content Navigation Menu Sign inAppearance settings Platform AI CODE CREATION GitHub CopilotWrite better code with AI GitHub Copilot appDirect agents from issue to merge MCP RegistryIntegrate external tools DEVELOPER WORKFLOWS ActionsAutomate any workflow CodespacesInstant dev environments IssuesPlan and track work Code ReviewManage code changes Code QualityEnforce quality at merge APPLICATION SECURITY GitHub Advanced SecurityFind and fix vulnerabilities Code securitySecure your code as you build Secret protectionStop leaks before they start EXPLORE Why GitHub Documentation Blog Changelog Marketplace View all features Solutions BY COMPANY SIZE Enterprises Small and medium teams Startups Nonprofits BY USE CASE App Modernization DevSecOps DevOps CI/CD View all use cases BY INDUSTRY Healthcare Financial servicesExcerpt only. The complete copy is held offline and backs quotations on this site. The original publication remains the canonical public source.
-
The pull request state changed from Open to Closed.
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 2 lines
Closed random: reject two-word entropy cycles #63 -Open +Closed random: harden entropy backends and state handling #64 OpenExtracted text as captured
Skip to content Navigation Menu Sign inAppearance settings Platform AI CODE CREATION GitHub CopilotWrite better code with AI GitHub Copilot appDirect agents from issue to merge MCP RegistryIntegrate external tools DEVELOPER WORKFLOWS ActionsAutomate any workflow CodespacesInstant dev environments IssuesPlan and track work Code ReviewManage code changes Code QualityEnforce quality at merge APPLICATION SECURITY GitHub Advanced SecurityFind and fix vulnerabilities Code securitySecure your code as you build Secret protectionStop leaks before they start EXPLORE Why GitHub Documentation Blog Changelog Marketplace View all features Solutions BY COMPANY SIZE Enterprises Small and medium teams Startups Nonprofits BY USE CASE App Modernization DevSecOps DevOps CI/CD View all use cases BY INDUSTRY Healthcare Financial servicesExcerpt only. The complete copy is held offline and backs quotations on this site. The original publication remains the canonical public source.
-
PR #61 gained a referenced-by section dated Aug 7, 2026: the new PR stack #62 (Closed), #63 (Open) and #64 (Open) now references it.
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 10 lines
into switck:master Aug 5, 2026 +This was referenced Aug 7, 2026 +add HMAC_DRBG (SP 800-90A 10.1.2, SHA-256), verified against NIST CAVP vectors +#62 +Closed +random: reject two-word entropy cycles +#63 +Open +random: harden entropy backends and state handling +#64 +Open This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters Show hidden charactersExtracted text as captured
Skip to content Navigation Menu Sign inAppearance settings Platform AI CODE CREATION GitHub CopilotWrite better code with AI GitHub Copilot appDirect agents from issue to merge MCP RegistryIntegrate external tools DEVELOPER WORKFLOWS ActionsAutomate any workflow CodespacesInstant dev environments IssuesPlan and track work Code ReviewManage code changes Code QualityEnforce quality at merge APPLICATION SECURITY GitHub Advanced SecurityFind and fix vulnerabilities Code securitySecure your code as you build Secret protectionStop leaks before they start EXPLORE Why GitHub Documentation Blog Changelog Marketplace View all features Solutions BY COMPANY SIZE Enterprises Small and medium teams Startups Nonprofits BY USE CASE App Modernization DevSecOps DevOps CI/CD View all use cases BY INDUSTRY Healthcare Financial servicesExcerpt only. The complete copy is held offline and backs quotations on this site. The original publication remains the canonical public source.
-
The pull request status changed from open to merged, showing that its six commits were merged into the upstream master branch on 5 August 2026.
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 16 lines
Insights Replace Yasmarang with SHA-256 Hash-DRBG - #61 #61 -Open -scgbckbone wants to merge 6 commits into +Merged +switck merged 6 commits into switck:masterswitck/libngu:masterfrom scgbckbone:fix/hash-drbgscgbckbone/libngu:fix/hash-drbgCopy head branch name to clipboard +Aug 5, 2026 ConversationCommits6 (6)ChecksFiles changed -Open +Merged Replace Yasmarang with SHA-256 Hash-DRBG#61 -scgbckbone wants to merge 6 commits into +switck merged 6 commits into switck:masterswitck/libngu:masterfrom scgbckbone:fix/hash-drbgscgbckbone/libngu:fix/hash-drbgCopy head branch name to clipboard Conversation Sorry, something went wrong. Uh oh! There was an error while loading. Please reload this page. +switck +merged commit ba22875 +into +switck:master +Aug 5, 2026 This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters Show hidden characters Successfully merging this pull request may close these issues. Uh oh! There was an error while loading. Please reload this page. -4 participants +5 participants Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later. Footer © 2026 GitHub, Inc.Extracted text as captured
Skip to content Navigation Menu Sign inAppearance settings Platform AI CODE CREATION GitHub CopilotWrite better code with AI GitHub Copilot appDirect agents from issue to merge MCP RegistryIntegrate external tools DEVELOPER WORKFLOWS ActionsAutomate any workflow CodespacesInstant dev environments IssuesPlan and track work Code ReviewManage code changes Code QualityEnforce quality at merge APPLICATION SECURITY GitHub Advanced SecurityFind and fix vulnerabilities Code securitySecure your code as you build Secret protectionStop leaks before they start EXPLORE Why GitHub Documentation Blog Changelog Marketplace View all features Solutions BY COMPANY SIZE Enterprises Small and medium teams Startups Nonprofits BY USE CASE App Modernization DevSecOps DevOps CI/CD View all use cases BY INDUSTRY Healthcare Financial servicesExcerpt only. The complete copy is held offline and backs quotations on this site. The original publication remains the canonical public source.
-
A new pull-request comment proposed incorporating Hash_DRBG, including bounds on hash_df requests and wiping stack temporaries.
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 12 lines
a6da5a6 Use mem_clean for secret zeroization 6b2f56e +scgbckbone +commented +Aug 4, 2026 +Copy link +Copy Markdown +Contributor +Author +incorporate Hash_DRBG: bound hash_df request size, wipe stack temporaries ctz/cifra#24 (maybe even by forking cifra) +All reactions +Sorry, something went wrong. +Uh oh! +There was an error while loading. Please reload this page. This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters Show hidden charactersExtracted text as captured
Skip to content Navigation Menu Toggle navigation Sign in Appearance settings Platform AI CODE CREATION GitHub CopilotWrite better code with AI GitHub Copilot appDirect agents from issue to merge MCP RegistryIntegrate external tools DEVELOPER WORKFLOWS ActionsAutomate any workflow CodespacesInstant dev environments IssuesPlan and track work Code ReviewManage code changes Code QualityEnforce quality at merge APPLICATION SECURITY GitHub Advanced SecurityFind and fix vulnerabilities Code securitySecure your code as you build Secret protectionStop leaks before they start EXPLORE Why GitHub Documentation Blog Changelog Marketplace View all features Solutions BY COMPANY SIZE Enterprises Small and medium teams Startups Nonprofits BY USE CASE App Modernization DevSecOps DevOps CI/CD View all use cases BY INDUSTRYExcerpt only. The complete copy is held offline and backs quotations on this site. The original publication remains the canonical public source.
-
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
Skip to content Navigation Menu Toggle navigation Sign in Appearance settings Platform AI CODE CREATION GitHub CopilotWrite better code with AI GitHub Copilot appDirect agents from issue to merge MCP RegistryIntegrate external tools DEVELOPER WORKFLOWS ActionsAutomate any workflow CodespacesInstant dev environments IssuesPlan and track work Code ReviewManage code changes Code QualityEnforce quality at merge APPLICATION SECURITY GitHub Advanced SecurityFind and fix vulnerabilities Code securitySecure your code as you build Secret protectionStop leaks before they start EXPLORE Why GitHub Documentation Blog Changelog Marketplace View all features Solutions BY COMPANY SIZE Enterprises Small and medium teams Startups Nonprofits BY USE CASE App Modernization DevSecOps DevOps CI/CD View all use cases BY INDUSTRYExcerpt only. The complete copy is held offline and backs quotations on this site. The original publication remains the canonical public source.
2 presentation-noise differences. Sidebar, ticker and other page chrome churn that our review classified as not being changes to what the source says.
- +5 -3 Only GitHub header chrome changed. The 'Sign in' and 'Appearance settings' labels split onto separate lines, and the search prompt changed from 'Type / to search' to 'Search/'.
- +3 -23 Only GitHub navigation and search-dialog chrome rendered differently. The pull request content did not change.
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.