mirror of
https://github.com/jamesstringer90/appsandbox.git
synced 2026-10-21 18:43:07 -05:00
Run Windows 11 ARM64 guests on macOS over QEMU+HVF, with an ivshmem shared-memory transport carrying every guest channel (agent control, display/VDD, input, audio, clipboard, SSH, 9P) - no guest networking required. - tools/transport: one guest transport API, two backends (PC AF_HYPERV, Mac ivshmem); SPSC ring with an acquire-barrier fix for SSH integrity - tools/ivshmem: our own KMDF ivshmem BAR-mapping driver (no third party) - src/backend_mac: Mac-host ivshmem transport, QEMU VM lifecycle, IDD display consumer, agent/SSH proxies, ISO->disk patcher, Windows create - tools/agent + channel EXEs + tools/vdd: wired to asb_transport - tools/agent_win: staged guest payload (interim, pending JIT pull) - vendor/qemu-ivshmem: vendored QEMU 11.0.1 fork (ivshmem-plain) + LGPL source mirror for the self-contained app bundle - tools/sign/make-release.ps1: use the host-native ARM64 MSBuild so the WDK driver ApiValidator runs (the x86 validator fails on ARM64)
28 lines
788 B
C
28 lines
788 B
C
/*
|
|
* sha1 -- minimal pure-C SHA-1 (no OpenSSL/CommonCrypto dependency).
|
|
* Used to verify WIM resource integrity: every lookup-table entry stores the
|
|
* SHA-1 of the *uncompressed* resource, so decompressor output is validated by
|
|
* hashing it and comparing — a self-contained correctness gate, no external tool.
|
|
*/
|
|
#ifndef ASB_SHA1_H
|
|
#define ASB_SHA1_H
|
|
|
|
#include <stdint.h>
|
|
#include <stddef.h>
|
|
|
|
typedef struct {
|
|
uint32_t h[5];
|
|
uint64_t total; /* total bytes hashed */
|
|
uint8_t buf[64];
|
|
size_t buflen;
|
|
} sha1_ctx;
|
|
|
|
void sha1_init(sha1_ctx *c);
|
|
void sha1_update(sha1_ctx *c, const void *data, size_t len);
|
|
void sha1_final(sha1_ctx *c, uint8_t out[20]);
|
|
|
|
/* One-shot helper. */
|
|
void sha1(const void *data, size_t len, uint8_t out[20]);
|
|
|
|
#endif /* ASB_SHA1_H */
|