feat: add support for validating asar archives on macOS (#30667)
* feat: add support for validating asar archives on macOS * chore: fix lint * chore: update as per feedback * feat: switch implementation to asar integrity hash checks * feat: make ranged requests work with the asar file validator DataSourceFilter * chore: fix lint * chore: fix missing log include on non-darwin * fix: do not pull block size out of missing optional * fix: match ValidateOrDie symbol on non-darwin * chore: fix up asar specs by repacking archives * fix: maintain integrity chain, do not load file integrity if header integrity was not loaded * debug test * Update node-spec.ts * fix: initialize header_validated_ * chore: update PR per feedback * chore: update per feedback * build: use final asar module * Update fuses.json5
This commit is contained in:
parent
fcad531f2e
commit
57d088517c
35 changed files with 705 additions and 43 deletions
7
typings/internal-ambient.d.ts
vendored
7
typings/internal-ambient.d.ts
vendored
|
@ -63,6 +63,10 @@ declare namespace NodeJS {
|
|||
size: number;
|
||||
unpacked: boolean;
|
||||
offset: number;
|
||||
integrity?: {
|
||||
algorithm: 'SHA256';
|
||||
hash: string;
|
||||
}
|
||||
};
|
||||
|
||||
type AsarFileStat = {
|
||||
|
@ -74,13 +78,12 @@ declare namespace NodeJS {
|
|||
}
|
||||
|
||||
interface AsarArchive {
|
||||
readonly path: string;
|
||||
getFileInfo(path: string): AsarFileInfo | false;
|
||||
stat(path: string): AsarFileStat | false;
|
||||
readdir(path: string): string[] | false;
|
||||
realpath(path: string): string | false;
|
||||
copyFileOut(path: string): string | false;
|
||||
getFd(): number | -1;
|
||||
getFdAndValidateIntegrityLater(): number | -1;
|
||||
}
|
||||
|
||||
interface AsarBinding {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue