fix: build hashes and recovery-phrase entropy come from ethers (closes #758)
build.js and script/lib/package.js hash with sha256 from ethers, with the 0x prefix stripped so the build receipt and SHA256SUMS keep bare lowercase hex. generateMnemonic() takes its 16 bytes of entropy from randomBytes in ethers. The README Crypto policy no longer lists these as exceptions. Model: opus-5-5
This commit is contained in:
1 parent
6d158bf1b1
commit
edef504146
5 files changed
+31
-20
No files matched your search
+13
-2
@@ -1,4 +1,5 @@
|
||||
// The release archives: the zip container, and the self-containment rule.
|
||||
// The release archives: the zip container, the self-containment rule, and the
|
||||
// digest format in release/SHA256SUMS.
|
||||
//
|
||||
// script/package produces one archive per browser and script/lib/package.js
|
||||
// decides what goes in it. The trap that rule exists for is real and specific:
|
||||
@@ -11,12 +12,14 @@
|
||||
// So the packager resolves every reference in the manifest and in every HTML
|
||||
// document, and fails on any that leaves the extension root. These are the
|
||||
// cases for that, plus the archive format itself — new code, and the thing the
|
||||
// artifact is made of.
|
||||
// artifact is made of. One more case checks the digest format in
|
||||
// release/SHA256SUMS.
|
||||
|
||||
const {
|
||||
checkSelfContained,
|
||||
htmlReferences,
|
||||
manifestReferences,
|
||||
sha256,
|
||||
} = require("../script/lib/package");
|
||||
const { readZip, writeZip } = require("../script/lib/zip");
|
||||
|
||||
@@ -142,6 +145,14 @@ describe("archive self-containment", () => {
|
||||
});
|
||||
});
|
||||
|
||||
// release/SHA256SUMS is checked with `sha256sum -c`, which needs the digest
|
||||
// as bare lowercase hex. The expected value is the FIPS 180-2 digest of "abc".
|
||||
test("sha256 prints the digest as sha256sum does", () => {
|
||||
expect(sha256(Buffer.from("abc"))).toBe(
|
||||
"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad",
|
||||
);
|
||||
});
|
||||
|
||||
describe("the zip container", () => {
|
||||
const files = [
|
||||
{ name: "manifest.json", data: Buffer.from('{"a":1}') },
|
||||
|
||||
Reference in new issue
Block a user