Compare commits

...

10 Commits

26 changed files with 790 additions and 5414 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
out/*
cache/*
.*
src/init/target

99
Containerfile Normal file
View File

@ -0,0 +1,99 @@
FROM stagex/rust@sha256:e7a7a152ddf91ba4f2d6e426867c54ab43b76eef3f2a97dd0c3d9234090f3ce8 as rust
FROM stagex/bash@sha256:39c6d22701e58c79548cf0601e72f85bb07bf30608827540e74db30220802430 as bash
FROM stagex/coreutils@sha256:85341b2055493ff8bf3d90c9d4e7a5993e4dd7a1d11a06854f23e0434bb4abaa as coreutils
FROM stagex/findutils@sha256:d0d30ce5d176fe2e40e93f707220ae6f54788ff14972005d1a51961c17f5294b as findutils
FROM stagex/grep@sha256:565d7cc8257d45f19326b3ecbbc2dd3096b4a228977c91f4ed07a265faeb8b05 as grep
FROM stagex/musl@sha256:27ca6026619beae07a1e7096caa7ac41b1403f5c1839ed4ff79b5aee3c409cec as musl
FROM stagex/libunwind@sha256:422fe0a108d9f1253dd9694ce432aa195d49a3b60b1d977aa4e94024c7ac52bf as libunwind
FROM stagex/openssl@sha256:f4e218dba1167008456899c5f19d9e1a1be17d4fc6fb6bb84d41b8eb477fd402 as openssl
FROM stagex/zlib@sha256:d5df909418ef436e3dd23af397ba2b202bd72f45c81b0e161b507adc9e3e9b9c as zlib
FROM stagex/ca-certificates@sha256:70c5136051c748fff0d1399101d082ecc204c1eb29d93da094ccf0d25f341121 as ca-certificates
FROM stagex/binutils@sha256:9cc26e56cdfce106108a0f4c416a27967060d8d07c4da0cbc0e14fa87f7b1dfa as binutils
FROM stagex/pkgconf@sha256:36fc4ed10a6e044d068aa7316e72588dbd365be4eb0271a84cf632521dbd8a09 as pkgconf
FROM stagex/git@sha256:3a2853fa2fa725f7f02565e24f508912b33223e49bed915e55a5d3f85548d190 as git
FROM stagex/gen_initramfs@sha256:66b9b1757dc6f66495d205417d14b79ab25f5b107c5caf609e4d4b9967b6ca6e as gen_initramfs
FROM stagex/eif_build@sha256:561ac95d02f1a5caf1d600cd2dbf487d1bb63450de0af2b528a9b657c66c12a8 as eif_build
FROM stagex/llvm@sha256:9dfc53795c89295da52719959f96df9122e0b921da6283c7bd7a582749545b1d as llvm
FROM stagex/file@sha256:8ce66c0574777bca83c8297b74372e0be7a6cc5d2b7e21061391726ad6d6d406 as file
FROM stagex/gcc@sha256:bb550daddcf95acdce9999e359e3ffb1c497916aea41bdd0cae1d6a5a908b4b9 as gcc
FROM stagex/linux-nitro@sha256:dd38b784ea9f8f0757e549194d078cccde9d6aed46915df2be9086880693fb17 as linux-nitro
FROM scratch as base
ENV TARGET=x86_64-unknown-linux-musl
ENV RUSTFLAGS="-C target-feature=+crt-static"
ENV CARGOFLAGS="--locked --no-default-features --release --target ${TARGET}"
ENV OPENSSL_STATIC=true
COPY --from=bash /bin/bash /bin/sh
COPY --from=coreutils . /
COPY --from=findutils . /
COPY --from=grep . /
COPY --from=musl . /
COPY --from=libunwind . /
COPY --from=openssl . /
COPY --from=zlib . /
COPY --from=ca-certificates . /
COPY --from=binutils . /
COPY --from=pkgconf . /
COPY --from=git . /
COPY --from=rust . /
COPY --from=gen_initramfs . /
COPY --from=eif_build . /
COPY --from=llvm . /
COPY --from=file . /
COPY --from=gcc . /
COPY --from=gcc /usr/lib64/* /usr/lib/
COPY --from=linux-nitro /bzImage .
COPY --from=linux-nitro /nsm.ko .
COPY --from=linux-nitro /linux.config .
RUN mkdir /tmp
ADD . /src
FROM base as build
RUN <<-EOF
set -eux
env -C /src/init cargo build ${CARGOFLAGS}
cp /src/init/target/${TARGET}/release/init /
file /init | grep "static-pie"
EOF
WORKDIR /build_cpio
COPY <<-EOF initramfs.list
file /init init 0755 0 0
file /nsm.ko /nsm.ko 0755 0 0
dir /run 0755 0 0
dir /tmp 0755 0 0
dir /etc 0755 0 0
dir /bin 0755 0 0
dir /sbin 0755 0 0
dir /proc 0755 0 0
dir /sys 0755 0 0
dir /usr 0755 0 0
dir /usr/bin 0755 0 0
dir /usr/sbin 0755 0 0
dir /dev 0755 0 0
dir /dev/shm 0755 0 0
dir /dev/pts 0755 0 0
nod /dev/console 0600 0 0 c 5 1
EOF
ENV KBUILD_BUILD_TIMESTAMP=1
RUN <<-EOF
find . -exec touch -hcd "@0" "{}" +
gen_init_cpio -t 1 initramfs.list > rootfs.cpio
touch -hcd "@0" rootfs.cpio
EOF
WORKDIR /build_eif
RUN eif_build \
--kernel /bzImage \
--kernel_config /linux.config \
--ramdisk /build_cpio/rootfs.cpio \
--pcrs_output /nitro.pcrs \
--output /nitro.eif \
--cmdline 'reboot=k initrd=0x2000000,3228672 root=/dev/ram0 panic=1 pci=off nomodules console=ttyS0 i8042.noaux i8042.nomux i8042.nopnp i8042.dumbkbd'
FROM base as install
WORKDIR /rootfs
COPY --from=build /nitro.eif .
COPY --from=build /nitro.pcrs .
RUN find . -exec touch -hcd "@0" "{}" +
FROM scratch as package
COPY --from=install /rootfs .

311
Makefile
View File

@ -1,295 +1,24 @@
DEBUG := false
OUT_DIR := out
KEY_DIR := keys
SRC_DIR := src
TARGET := local
CACHE_DIR := cache
CONFIG_DIR := config
SRC_DIR := src
USER := $(shell id -g):$(shell id -g)
CPUS := $(shell nproc)
ARCH := x86_64
include $(PWD)/config/global.env
.DEFAULT_GOAL := default
REGISTRY := local
.DEFAULT_GOAL :=
.PHONY: default
default: fetch $(OUT_DIR)/bzImage
default: out/enclaveos.tar
# Clean repo back to initial clone state
.PHONY: clean
clean:
rm -rf cache out
docker image rm -f local/$(NAME)-build
out:
mkdir out
# Launch a shell inside the toolchain container
.PHONY: toolchain-shell
toolchain-shell: $(OUT_DIR)/toolchain.tar
$(call toolchain,root,bash)
# Pin all packages in toolchain container to latest versions
.PHONY: toolchain-update
toolchain-update:
$(call toolchain,root,packages-update )
# Source anything required from the internet to build
.PHONY: fetch
fetch: \
keys \
$(OUT_DIR) \
$(OUT_DIR)/toolchain.tar \
$(CACHE_DIR) \
$(CACHE_DIR)/linux-$(LINUX_VERSION).tar.xz \
$(CACHE_DIR)/linux-$(LINUX_VERSION).tar.sign \
$(CACHE_DIR)/busybox-$(BUSYBOX_VERSION).tar.bz2 \
$(CACHE_DIR)/busybox-$(BUSYBOX_VERSION).tar.bz2.sig \
$(CACHE_DIR)/aws-nitro-enclaves-image-format/.git/HEAD
# Build latest image and run in terminal via Qemu
.PHONY: run
run: default
qemu-system-x86_64 \
-m 512M \
-nographic \
-kernel $(OUT_DIR)/bzImage
# Run ncurses busybox config menu and save output
.PHONY: busybox-config
busybox-config:
rm $(CONFIG_DIR)/debug/busybox.config
make $(CONFIG_DIR)/debug/busybox.config
# Run linux config menu and save output
.PHONY: linux-config
linux-config:
rm $(CONFIG_DIR)/$(TARGET)/linux.config
make $(CONFIG_DIR)/$(TARGET)/linux.config
.PHONY: keys
keys: \
$(KEY_DIR)/$(LINUX_KEY).asc \
$(KEY_DIR)/$(BUSYBOX_KEY).asc
$(KEY_DIR)/$(LINUX_KEY).asc:
$(call fetch_pgp_key,$(LINUX_KEY))
$(KEY_DIR)/$(BUSYBOX_KEY).asc:
$(call fetch_pgp_key,,$(BUSYBOX_KEY))
define fetch_pgp_key
mkdir -p $(KEY_DIR) && \
$(call toolchain,$(USER), " \
for server in \
ha.pool.sks-keyservers.net \
hkp://keyserver.ubuntu.com:80 \
hkp://p80.pool.sks-keyservers.net:80 \
pgp.mit.edu \
; do \
echo "Trying: $${server}"; \
gpg \
--recv-key \
--keyserver "$${server}" \
--keyserver-options timeout=10 \
--recv-keys "$(1)" \
&& break; \
done; \
gpg --export -a $(1) > $(KEY_DIR)/$(1).asc; \
")
endef
$(OUT_DIR):
mkdir -p $(OUT_DIR)
$(CACHE_DIR):
mkdir -p $(CACHE_DIR)
$(CACHE_DIR)/aws-nitro-enclaves-image-format/.git/HEAD:
$(call toolchain,$(USER), " \
cd /cache; \
git clone https://github.com/aws/aws-nitro-enclaves-image-format.git; \
cd aws-nitro-enclaves-image-format; \
git checkout $(AWS_EIF_REF); \
git rev-parse --verify HEAD | grep -q $(AWS_EIF_REF) || { \
echo 'Error: Git ref/branch collision.'; exit 1; \
}; \
")
$(CACHE_DIR)/busybox-$(BUSYBOX_VERSION).tar.bz2.sig:
curl \
--url $(BUSYBOX_SERVER)/busybox-$(BUSYBOX_VERSION).tar.bz2.sig \
--output $(CACHE_DIR)/busybox-$(BUSYBOX_VERSION).tar.bz2.sig
$(CACHE_DIR)/busybox-$(BUSYBOX_VERSION).tar.bz2:
curl \
--url $(BUSYBOX_SERVER)/busybox-$(BUSYBOX_VERSION).tar.bz2 \
--output $(CACHE_DIR)/busybox-$(BUSYBOX_VERSION).tar.bz2
$(CACHE_DIR)/linux-$(LINUX_VERSION).tar.sign:
curl \
--url $(LINUX_SERVER)/linux-$(LINUX_VERSION).tar.sign \
--output $(CACHE_DIR)/linux-$(LINUX_VERSION).tar.sign
$(CACHE_DIR)/linux-$(LINUX_VERSION).tar.xz:
curl \
--url $(LINUX_SERVER)/linux-$(LINUX_VERSION).tar.xz \
--output $(CACHE_DIR)/linux-$(LINUX_VERSION).tar.xz
$(CACHE_DIR)/linux-$(LINUX_VERSION).tar:
xz -d $(CACHE_DIR)/linux-$(LINUX_VERSION).tar.xz
$(CACHE_DIR)/linux-$(LINUX_VERSION): $(CACHE_DIR)/linux-$(LINUX_VERSION).tar
$(call toolchain,$(USER), " \
cd /cache && \
gpg --import /keys/$(LINUX_KEY).asc && \
gpg --verify linux-$(LINUX_VERSION).tar.sign && \
tar xf linux-$(LINUX_VERSION).tar; \
")
$(CACHE_DIR)/busybox-$(BUSYBOX_VERSION):
$(call toolchain,$(USER), " \
cd /cache && \
gpg --import /keys/$(BUSYBOX_KEY).asc && \
gpg --verify busybox-$(BUSYBOX_VERSION).tar.bz2.sig && \
tar -xf busybox-$(BUSYBOX_VERSION).tar.bz2 \
")
$(OUT_DIR)/toolchain.tar:
DOCKER_BUILDKIT=1 \
out/enclaveos.tar: out \
$(shell git ls-files \
src/init \
src/aws \
)
docker build \
--tag local/$(NAME)-build \
--build-arg DEBIAN_HASH=$(DEBIAN_HASH) \
--build-arg RUST_REF=$(RUST_REF) \
--build-arg CARGO_REF=$(CARGO_REF) \
--build-arg CONFIG_DIR=$(CONFIG_DIR) \
--build-arg SCRIPTS_DIR=$(SRC_DIR)/toolchain/scripts \
-f $(SRC_DIR)/toolchain/Dockerfile \
.
docker save "local/$(NAME)-build" -o "$@"
define toolchain
docker load -i $(OUT_DIR)/toolchain.tar
docker run \
--rm \
--tty \
--interactive \
--user=$(1) \
--platform=linux/$(ARCH) \
--volume $(PWD)/$(CONFIG_DIR):/config \
--volume $(PWD)/$(CACHE_DIR):/cache \
--volume $(PWD)/$(KEY_DIR):/keys \
--volume $(PWD)/$(OUT_DIR):/out \
--volume $(PWD)/$(SRC_DIR):/src \
--env GNUPGHOME=/cache/.gnupg \
--env ARCH=$(ARCH) \
--env KBUILD_BUILD_USER=$(KBUILD_BUILD_USER) \
--env KBUILD_BUILD_HOST=$(KBUILD_BUILD_HOST) \
--env KBUILD_BUILD_VERSION=$(KBUILD_BUILD_VERSION) \
--env KBUILD_BUILD_TIMESTAMP=$(KBUILD_BUILD_TIMESTAMP) \
--env KCONFIG_NOTIMESTAMP=$(KCONFIG_NOTIMESTAMP) \
--env SOURCE_DATE_EPOCH=$(SOURCE_DATE_EPOCH) \
local/$(NAME)-build \
bash -c $(2)
endef
$(CONFIG_DIR)/debug/busybox.config:
$(call toolchain,$(USER), " \
cd /cache/busybox-$(BUSYBOX_VERSION) && \
KCONFIG_NOTIMESTAMP=1 make menuconfig && \
cp .config /config/debug/busybox.config; \
")
$(CONFIG_DIR)/$(TARGET)/linux.config:
$(call toolchain,$(USER)," \
cd /cache/linux-$(LINUX_VERSION) && \
make menuconfig && \
cp .config /config/$(TARGET)/linux.config; \
")
$(OUT_DIR)/busybox: \
$(CACHE_DIR)/busybox-$(BUSYBOX_VERSION) \
$(CACHE_DIR)/busybox-$(BUSYBOX_VERSION).tar.bz2 \
$(CACHE_DIR)/busybox-$(BUSYBOX_VERSION).tar.bz2.sig
$(call toolchain,$(USER)," \
cd /cache/busybox-$(BUSYBOX_VERSION) && \
cp /config/debug/busybox.config .config && \
make -j$(CPUS) busybox && \
cp busybox /out/; \
")
$(OUT_DIR)/init:
$(call toolchain,$(USER)," \
gcc \
-static \
-static-libgcc /src/init/init.c \
-o /out/init; \
")
$(CACHE_DIR)/linux-$(LINUX_VERSION)/usr/gen_init_cpio: \
$(CACHE_DIR)/linux-$(LINUX_VERSION) \
$(CACHE_DIR)/linux-$(LINUX_VERSION) \
$(CACHE_DIR)/linux-$(LINUX_VERSION).tar.xz \
$(CACHE_DIR)/linux-$(LINUX_VERSION).tar.sign
$(call toolchain,$(USER)," \
cd /cache/linux-$(LINUX_VERSION) && \
gcc usr/gen_init_cpio.c -o usr/gen_init_cpio \
")
$(OUT_DIR)/eif_build:
$(call toolchain,$(USER)," \
cd /cache/aws-nitro-enclaves-image-format \
&& CARGO_HOME=/cache/cargo cargo build --example eif_build \
&& cp target/debug/examples/eif_build /out; \
")
$(OUT_DIR)/rootfs.cpio: \
$(OUT_DIR)/busybox \
$(OUT_DIR)/init \
$(CACHE_DIR)/linux-$(LINUX_VERSION)/usr/gen_init_cpio
mkdir -p $(CACHE_DIR)/$(TARGET)/rootfs/bin
cp $(CONFIG_DIR)/$(TARGET)/rootfs.list $(CACHE_DIR)/$(TARGET)/rootfs.list
ifeq ($(DEBUG), true)
cp $(OUT_DIR)/init $(CACHE_DIR)/$(TARGET)/rootfs/real_init
cp $(SRC_DIR)/scripts/busybox_init $(CACHE_DIR)/$(TARGET)/rootfs/init
cp $(OUT_DIR)/busybox $(CACHE_DIR)/$(TARGET)/rootfs/bin/
echo "file /bin/busybox /cache/rootfs/bin/busybox 0755 0 0" \
> $(CACHE_DIR)/$(TARGET)/rootfs.list
else
cp $(OUT_DIR)/init $(CACHE_DIR)/$(TARGET)/rootfs/init
endif
$(call toolchain,$(USER)," \
cd /cache/$(TARGET)/rootfs && \
find . -mindepth 1 -execdir touch -hcd "@0" "{}" + && \
find . -mindepth 1 -printf '%P\0' && \
cd /cache/linux-$(LINUX_VERSION) && \
usr/gen_initramfs.sh \
-o /out/rootfs.cpio \
/cache/$(TARGET)/rootfs.list && \
cpio -itv < /out/rootfs.cpio && \
sha256sum /out/rootfs.cpio; \
")
$(OUT_DIR)/bzImage: \
$(OUT_DIR)/rootfs.cpio
$(call toolchain,$(USER)," \
cd /cache/linux-$(LINUX_VERSION) && \
cp /config/$(TARGET)/linux.config .config && \
make olddefconfig && \
make -j$(CPUS) ARCH=$(ARCH) bzImage && \
cp arch/x86_64/boot/bzImage /out/ && \
sha256sum /out/bzImage; \
")
$(OUT_DIR)/nitro.eif: \
$(OUT_DIR)/eif_build \
$(OUT_DIR)/bzImage \
$(OUT_DIR)/rootfs.cpio
$(call toolchain,$(USER)," \
/out/eif_build \
--kernel /out/bzImage \
--kernel_config /config/$(TARGET)/linux.config \
--cmdline "init=/init" \
--ramdisk /out/rootfs.cpio \
--output /out/nitro.eif \
")
--tag $(REGISTRY)/enclaveos \
--progress=plain \
--output "\
type=oci,\
rewrite-timestamp=true,\
force-compression=true,\
name=enclaveos,\
dest=$@" \
-f Containerfile \
src/

View File

@ -1,6 +1,6 @@
# EnclaveOS #
<https://github.com/distrust-foundation/enclaveos>
<https://git.distrust.co/public/enclaveos>
## About ##
@ -16,10 +16,10 @@ security applications.
| Platform | Target | Status | Verified boot Method |
|----------------------------|:-------:|:--------:|:---------------------:|
| Generic/Qemu | generic | working | Safeboot or Heads |
| AWS Nitro Enclaves | aws | building | Nitro attestation API |
| AWS Nitro Enclaves | aws | booting | Nitro attestation API |
| GCP Confidential Compute | gcp | research | vTPM 2.0 attestation |
| Azure Confidential VMs | azure | research | vTPM 2.0 attestation |
| Generic/Qemu | generic | research | vTPM 2.0 attestation |
## Features ##
@ -49,24 +49,6 @@ security applications.
* Docker 20+
* GNU Make
### Examples ###
### Build given target
```
make TARGET=generic
```
### Boot generic image in Qemu
```
make run
```
### Enter shell in toolchain environment
```
make toolchain-shell
```
### Update toolchain depedendency pins
```
make toolchain-update
### Build
```
make

7
TODO
View File

@ -1,7 +0,0 @@
* Optionally link rootfs into kernel based on target
* Fully carve out dedicated nitro target
* Only build nitro with TARGET=nitro
* verify nitro demo actually boots in live enclaves
* have "sign" make target that creates/signs hash manifest of all targets
* compile against musl
* fix kernel cache misses that result in re-pull/rebuild on every build

File diff suppressed because it is too large Load Diff

View File

@ -1,22 +0,0 @@
export NAME = appliance-linux
export BUSYBOX_VERSION = 1.33.2
export LINUX_VERSION = 5.19.6
export SOURCE_DATE_EPOCH = 0
export KBUILD_BUILD_TIMESTAMP = "1970-01-01 00:00:00 UTC"
export KCONFIG_NOTIMESTAMP = 1
export KBUILD_BUILD_USER = root
export KBUILD_BUILD_HOST = QuorumOS
export KBUILD_BUILD_VERSION = 1
export BUSYBOX_SERVER = https://busybox.net/downloads/
export LINUX_SERVER = https://cdn.kernel.org/pub/linux/kernel/v5.x/
export BUSYBOX_KEY = C9E9416F76E610DBD09D040F47B70C55ACC9965B
export LINUX_KEY = 647F28654894E3BD457199BE38DBBDC86092693E
export LINUX_KEYS_REPO = https://git.kernel.org/pub/scm/docs/kernel/pgpkeys.git
# Toolchain
export DEBIAN_HASH = 1b8cc57a5e02f508b814f930e6451fdb27014ad4f64e0b42f46d0eae4c59af96
export AWS_EIF_REF = 485fab0b37c1127347056f163c6cd0ae756f7cd0

File diff suppressed because it is too large Load Diff

View File

@ -1,11 +0,0 @@
dir /dev 0755 0 0
nod /dev/console 0600 0 0 c 5 1
dir /sys 0755 0 0
dir /usr 0755 0 0
dir /etc 0755 0 0
dir /proc 0755 0 0
dir /bin 0755 0 0
dir /sbin 0755 0 0
dir /usr/bin 0755 0 0
dir /usr/sbin 0755 0 0
file /init /cache/local/rootfs/init 0755 0 0

View File

@ -1,299 +0,0 @@
00173e935b277c9236191611df8b77291b4a6053663ad3a27ff9d4c190ffc5ba liblzma5_5.2.5-2.1_amd64.deb
015faa2d7b0a34663b5e6f37a142ac3231889cc6799b47be26c5a4135ff68d40 readline-common_8.2~rc2-2_all.deb
03326473eed54ffa27efae19aa5d6aeb402930968f869f318445513093691d55 libtirpc-dev_1.3.3+ds-1_amd64.deb
03539fd30c509e27101d13a56e52eda9062bdf1aefe337c07ab56def25a13eab libmd0_1.0.4-2_amd64.deb
08f91d5ab508cb254c4c93d004573739d5923deb4acc85a0827c9fb65e9d5afc libfontconfig1_2.13.1-4.4_amd64.deb
09a05a23c5fd5baacd488255a6b0114909210691b830fb951acd276e9bcd632a pkg-config_0.29.2-1_amd64.deb
09e42f8014e2ad0d39cca7ee9101fb1702459e70988235378b84cf0d498967bc libubsan1_12.2.0-1_amd64.deb
0b9826df616838cf8a7e0e43f516ef4a7b3b23f44563b426c0b9a62a7f31a485 krb5-locales_1.20-1_all.deb
0c1d32a47b16533205cbd3c452e33abd7db50856e2aace5826e349e32b83a86d libelf-dev_0.187-1_amd64.deb
0c3a4af0304eb58931375ca6a76b230eef41f862c606004551950b7b2fd70b81 libcc1-0_12.2.0-1_amd64.deb
0c5de122a675f487fb316550e8be1cd7412052466f2beb28542a5758f4d7c3ca libc6_2.34-4_amd64.deb
0ef7093e124c90cd1a82384a4c87a625331b88ce06b37e6f89e8e2d722b3905a gpg-wks-client_2.2.35-3_amd64.deb
0f4280bb0aaf59b74836fb84b7a3ff0467111628c728cc6c0f83719c3345d01b linux-libc-dev_5.18.16-1_amd64.deb
0fd9d625bff6044e2a8b96c18f1dc4b30a4fd54e2d543aa60e634e8d7df81739 findutils_4.9.0-3_amd64.deb
1005be6413f5590d85fb8f061101d32ba46a272c4d488d7ae98f0ddd54e9a07a icu-devtools_71.1-3_amd64.deb
10d5c76e574f1343a058e518642d02a1a6b641d711e5b20a8ab2b5f3f806cc63 libgpg-error0_1.45-2_amd64.deb
1314c3db529bb6623ceae0f9995a862440da7f07fc73ff64b79ff6205276f63c libc-dev-bin_2.34-4_amd64.deb
13653dd127e2875de1c98fe6c203f06e3c9802b6013d9c1bb521bea17cea7f82 libllvm13_1%3a13.0.1-7_amd64.deb
144230a4980f0bd8cec259575336a40238ef701b4a19b7123a85aa37515dc89d curl_7.84.0-2_amd64.deb
14f2bcde86c48df53993d0ac216fa32dc02553ee8103ec5793967c88b11dee47 perl-modules-5.34_5.34.0-5_all.deb
16081fc71a3507102ad2f04535fb64883cb3519bf6e24e5e6a6ab2f98ac43044 git-man_1%3a2.35.1-1_all.deb
18fd1a588beefb62a7dc0f6f8f94aec633ea1ac83bb7ce7d081c07c3b3a10557 adduser_3.128_all.deb
1965310678ec4c089fd803b4aed673a46086ac9432954097d5a78ccb63b218d9 gcc-12_12.2.0-1_amd64.deb
1a7c1212ff903a0a4dbcb0a06ab8cbdbf9533f8b2dc61a6cbfb7654c37b14704 libcbor0.8_0.8.0-2_amd64.deb
1aa11a62089ff8b7fe8023f6cfadab44083a3d8d721806011d7e0a0269493ef1 libsasl2-modules_2.1.28+dfsg-7_amd64.deb
1b6c27131c8b23866fbeb445ad51358040b1370440513285d489f95e201e232a libssl3_3.0.5-2_amd64.deb
1c80c60953146897c3d0070fadba587130915937cdc7d2fbc7d26ccc5cfa3037 libatomic1_12.2.0-1_amd64.deb
1c926241e507c765a58cdff9207302919eb3e3afaa0a73094d8e41797cc6fde3 libgprofng0_2.38.90.20220713-2_amd64.deb
1ebf7272350e82609c5622a84a3628fcd06603b89f710355530b335ab812695a libss2_1.46.5-2_amd64.deb
1f67421437b6eb18669d2868e3e02cb88668683d635198142f48aacc5b397118 fonts-dejavu-core_2.37-2_all.deb
207b539919a47c85bcf738677f0ccf5bbac9844f2d3f158696f518be4c4ba6c4 libyaml-0-2_0.2.5-1_amd64.deb
21bd7574badaa628a1ee15972400047b4f72ac3e3f35b8714f2dd3ac7ad51de4 liblsan0_12.2.0-1_amd64.deb
21eb8b3654dbc251c3f0cc4bd01cae67633443ea5094003379d23f7323eb1ef4 libp11-kit0_0.24.1-1_amd64.deb
22908a6aa15a1aa152cc9cbfc1293d99546c46ea75c441db6db271cae1a39d16 pinentry-curses_1.2.0-2_amd64.deb
22c3769153d9fac7697834b725a48cacb32f1dba1622e18d616ab92cbe1505be libaudit-common_1%3a3.0.7-1_all.deb
242779cf793f2382cb09136e1eaedce76d3b2f34dac892dfa4e60998e960726f libmbedtls14_2.28.1-1_amd64.deb
25167c64262f255d84b774ecf75e6e2a8ad60f938b6f3d97ab58d248922be759 dpkg_1.21.9_amd64.deb
252e2c0c5b9269bc66b80a76cec84e87c7e149b80afe917fd73ce136a46f5460 libsmartcols1_2.38.1-1_amd64.deb
25a9fa2ff192159a729ae2168c5e3daef9119a066642b77991268717cdf6250f libelf1_0.187-1_amd64.deb
262a71d76fc225b3a1676858d96e1c76f93b58b99b68684526c4d3dc380a977f libasan8_12.2.0-1_amd64.deb
26350da95f6bd2252c63758d854c90d6f9f241f2e323e8f50a143e9e705fbf4e fakeroot_1.29-1_amd64.deb
26393dc8852219dc49c2ecdfd1a079afad6e686c36520e9042fb03f1b8403a13 tzdata_2022c-1_all.deb
26925d66bc2a9410429e127b0a2220e433f65fb644233b25d2420c06f0ddd01e perl-base_5.34.0-5_amd64.deb
26f592dc00661838b15365ed3a9e6bddfb6a058d5e814ae758518c1e7baafdae libnghttp2-14_1.49.0-1_amd64.deb
280b9d8464f6c6e4c9b7e34dfed43504bc30266d9394bf7c08c2b2308ad28cb3 libicu71_71.1-3_amd64.deb
295b990652f0eba5120f5e7ce93d66ab390586e31581f058efc6b92f344614e1 libsasl2-2_2.1.28+dfsg-7_amd64.deb
29c6d9e07204de24c5fbd6963e37be8b0ab21092de116c033340d927b1d53f3a libstd-rust-dev_1.59.0+dfsg1-2_amd64.deb
2a46d5a5e9486da11ffeff5740931740d6deae4f92cd6098df060dc5dff1e1c7 libtirpc3_1.3.3+ds-1_amd64.deb
2f9a65994b33339276036bd62e25482095613d0870b5b4059dabfa76cc7e7c2d libc6-dev_2.34-4_amd64.deb
3124a9f95bbb1d7df4c481d424a008dcfc5a49f699deb49ac59de1381636cf25 libsqlite3-0_3.39.2-1_amd64.deb
3288cd76324fee7b1a34b97f6e6bcfc32a889f4f22002d0bd3788d8988eca791 hostname_3.23_amd64.deb
354cc91df20e0ef038dddcd797e9bfda3357c0c435ff6582490ffa12f182fb56 libcap-ng0_0.8.3-1+b1_amd64.deb
35f547174f16e11dccc2b46b88db47d43aceab6cd5eaeed2beaab3364053ef4a libbsd0_0.11.6-1_amd64.deb
375a2a840112220d2a8e4cc63f11c7cab01e0304c57dab62fb7e2c1d7f863ace libicu-dev_71.1-3_amd64.deb
37984b3de79f28d9c2b759f76cfbf9301808d92c0391c9f885931902b84faab4 libudev1_251.3-1_amd64.deb
3a320559c6a531ed3af4442920df8cf4225b4d5713df0a24b52955ae5a634492 cpio_2.13+dfsg-7_amd64.deb
3a8b61891f0ce9bd310088ce2d269d63b5afd88b9196fa4f046fd890faea4a17 libalgorithm-diff-perl_1.201-1_all.deb
3abcd3c75b85f7098a571c333f1f4566198e49129db2fa1bfc1259b04a891aeb cmake_3.24.1-1_amd64.deb
3b464286b9b59e20e30bf9d56df6db1363bae5b5886676a93f51b0b7ff693feb libpfm4_4.11.1+git74-g5140ce5-1_amd64.deb
3d17ce965d47d7b47c8d68b2eec7040faa5a34a5a84e705bdd6c767f5a1e08e7 libffi-dev_3.4.2-4_amd64.deb
3df12923377e83f15a34b1498a797ca8556d28ffc7e68ca638a9da790eb43348 dash_0.5.11+git20210903+057cd650a4ed-8_amd64.deb
3e3ef129b4bf61513144236e15e1b4ec57fa5ae3dc8a72137abdbefb7a63af85 libtirpc-common_1.3.3+ds-1_all.deb
3f185b3b38097dbbfb3115ba99aff17ea6adf4c9dbc8a95c9549ca3fc2357968 libk5crypto3_1.20-1_amd64.deb
3f240b128963b65a5345f10c685407721336dd29e1a21685960d39d7e37a7537 libmpdec3_2.5.1-2_amd64.deb
3fd67605592c41271d02cdcebf8b9c8aaeedcac6d83674df7069ec71a2170fc2 libkrb5-3_1.20-1_amd64.deb
414cb803bbcf0850a629a95b69ea75d300c7d7d588a38c21a229f682926018cd sensible-utils_0.0.17_all.deb
420c9a4d263aad98fddc0316b47294e0a272094296393f7732e9fda8222b7b56 libquadmath0_12.2.0-1_amd64.deb
426a1ca34571a1a0196c1ee4306769461339bd74715409d8a2b03d72d6bd0908 libarchive13_3.6.0-1_amd64.deb
43c90d45f7cf5584108964b919d6c728680d81af5fa70c8fb367d661cef54e8c libnpth0_1.6-3_amd64.deb
4438d0bb9cf4a08bb2ae5a3ec59d23933584e964fc5ed550704d6f73d701636b media-types_8.0.0_all.deb
445f6a723f05fe12eb6a370adff6a8873f444b3c9d94c0307f98e7ddc7ace33d binfmt-support_2.2.2-1_amd64.deb
45922e6e289ffd92f0f92d2bb9159e84236ff202d552a461bf10e5335b3f0261 libnettle8_3.8.1-2_amd64.deb
472066de8c1b1c7d5d93617aa0a9f6bdaefade50cfcb768878b972e1a93d91c7 manpages_5.13-1_all.deb
47ae98ce1b14e15d36f67c14c4a5e26e8e7e156b43634d304d0a8dca488068e3 gpgv_2.2.35-3_amd64.deb
482f6b26d15f40d297e9bb8a92f2b99e80e26265cc674fc6c1129a7d73a082fb python3-pkg-resources_59.6.0-1.2_all.deb
4868d0506adab7f75d2ba65005b04928bdb6c91b194e71a683e35768ea1908ab libgcrypt20_1.10.1-2_amd64.deb
4914489233dbccf83139ee8bff065915982481aa44f3ffcde07a633db5908935 libzstd1_1.5.2+dfsg-1_amd64.deb
4949f65702e64453d78d21df9fcea22412368180ed38dad4f72fa36dcc2a363a rpcsvc-proto_1.4.2-4_amd64.deb
49a9e138fe0ecd814b02e4927c67a6a7dcaa4281dd6f96c51b5e4494716e12fa libpython3.10-stdlib_3.10.6-1_amd64.deb
49af5456836d6f23cf57dcdb1ad3d71f4ba919354189f2ac57a72e3a6df2404a libbrotli1_1.0.9-2+b4_amd64.deb
49e64f0923cdecb2aaf6c93f176c25f63b841da2a501651ae23070f998967aa7 libxpm4_1%3a3.5.12-1_amd64.deb
4ab06b9ce67470579be3112bf2b6b314012f93bfff619580b93a902d6b1221c5 libjsoncpp25_1.9.5-4_amd64.deb
4bd27fa1fbabb5f0aade05791ce76ede777522ea9f2e57178fe7b63ad5b49ac7 libperl5.34_5.34.0-5_amd64.deb
4c5637114e6948bd1fa81bf7aec94303f1d1ee72287024b0a2ce082e6834c89f login_1%3a4.11.1+dfsg1-2_amd64.deb
4eaa56d2d0a0d648f8ecc65acb55a0f8463b695a528562f3608635f8359cd7a2 libkeyutils1_1.6.3-1_amd64.deb
4fc1e3d9b579f5c682ca99a4d45aec08d72a2e6b82b4c2e1bbcb7095466ae96d musl_1.2.3-1_amd64.deb
509f5260dcf607120694d5e1d9a6ca3ae07107fd1a52b603f6da97291642be90 libsepol2_3.4-2_amd64.deb
50f127670642101423061338f191d70a0f38eb0dca1b0142b1bda0595c23a365 gcc_4%3a12.1.0-3_amd64.deb
532252300e9427ba39662f99f06fb730936986804189a54298ef96c2f52bf400 libgd3_2.3.3-6_amd64.deb
5322e79ccfd14c22b55be391dcb03fbddae6e80b71af2de49afb4132867c32a2 git_1%3a2.35.1-1_amd64.deb
5525b9d5eb2093407a2bc41372a72728c84bab3b3b9a9cbefecc76657189c136 gcc-12-base_12.2.0-1_amd64.deb
553169e6a8e1dc94955f10ed4c34f13b4630cb121952c456ea18f2c1820bb660 libitm1_12.2.0-1_amd64.deb
559d0f9757e570fb37e9265c8ee80c8a78cf0a6c2a1ab590a4bdb4f893f385b6 libxml2-dev_2.9.14+dfsg-1+b1_amd64.deb
56beca470dcd9b6d7e6c3c9e9d702101e01e9467e62810a8c357bd7b9c26251d debian-archive-keyring_2021.1.1_all.deb
594083f3588e82b725f2b0532c0fc85f7c9e306fcac26ba4401572d214d90c72 liberror-perl_0.17029-1_all.deb
5a31385f58f98af73bc96fb2420c148c8209a7b4202d6715d8aefa395e0b8d03 liblerc4_4.0.0+ds-1_amd64.deb
5a42f7ea1b271a0da58710bb3c480b358ee216450550223a1f3d93e2163a07d4 bison_2%3a3.8.2+dfsg-1_amd64.deb
5abfc5e67fcb7c0567652f0be9d9a284de6be8a887cedfe0b2e3c13c2d5952ed gnupg-l10n_2.2.35-3_all.deb
5b2d6325b76a18d8ed9a5b7e05479dd3f71eac3c0ddedbce60773140f7cfc594 libpython3-stdlib_3.10.6-1_amd64.deb
5c09d0adf33203deecce9e58e4f184a58a6a61d056d5c89a6b54093c8fd17236 coreutils_8.32-4.1_amd64.deb
5c0f4473acc8a6c2cfbe6aee3459440a40900018bd882cd6749f42b510979f3e libgssapi-krb5-2_1.20-1_amd64.deb
5d26306d12a45a8a03dca473490d56a765b58d61b53146c1c7784903cf59c45d libmpfr6_4.1.0-3_amd64.deb
5de50273ba8e5f95b43a88d76f6e9e226d7db109291274f5823fc062b2818929 gnupg-utils_2.2.35-3_amd64.deb
5e06c307095e1d194d50353e44429c08174b5f3b3687dc5cff2bf8f80601c874 llvm-13-dev_1%3a13.0.1-7_amd64.deb
5e7c67fa74d46a3d8a7eaf179546d0ae1029161f3e21f383c657774bd00b39a8 libgcc-12-dev_12.2.0-1_amd64.deb
60b5434a1298f775fb9f3747f983f61534f1195fd8e8abd640550bdfc15d45cb openssh-client_1%3a9.0p1-1+b1_amd64.deb
61a9c2989db7b699dc179bcaa7beadad9cbcff46cf5f43539769dc0c09aa401d sed_4.8-1_amd64.deb
61d9b501b75a8122a84feaffc11bc1f4664b6bcbb01075bc67ef5c80406d0121 libcrypt-dev_1%3a4.4.28-2_amd64.deb
6284dc963479d1f033cae8800c8b09e0c768f6bda5a3c6f88bf5da067e81800e cmake-data_3.24.1-1_all.deb
634cef139ac9bb92743d9966005c78382c0c25b9b18d8adbd1aadd1044eca3c3 libldap-common_2.5.12+dfsg-2_all.deb
63690b887505729e0b27734dbbf6182820f5478fafdcc34156243d9eb07be45a libalgorithm-merge-perl_0.08-4_all.deb
63c74cdbb24fa25c13ef8aa2023f0e0db80e5da8028f24f1afb730690bf6d331 gpgconf_2.2.35-3_amd64.deb
643553360a38aec081ba2cd3801c8ecacf7c3361b50af20e07a2055f8218ec70 liblocale-gettext-perl_1.07-4+b2_amd64.deb
6445046695964f2dd3932965f99de61bd2e8ac13f219fa64e5946c103c86b989 psmisc_23.5-3_amd64.deb
64f01bff088e35ec84eb02de12e700cd99d8b7c51034e96f5a14cf1c1901e143 libarchive-tools_3.6.0-1_amd64.deb
656f218a54a49038090e15703e673e16a592ec04c6742dd8b6bfb76f0376252c grep_3.7-1_amd64.deb
679db1c4579ec7c61079adeaae8528adeb2e4bf5465baa6c56233b995d714750 libxau6_1%3a1.0.9-1_amd64.deb
68e99f80404f74f38e085cef18cbc3543b3fcc133eb4a518a9be304911a639ad libpng16-16_1.6.37-5_amd64.deb
69deb8a082b270ceea298a692f95932e50b095c4464376630765d58fe63ece4a libmbedcrypto7_2.28.1-1_amd64.deb
6a56dcacea02719f1a7487a12e4672df9d7daf476c204e531649c5f4fb5b4b14 libselinux1_3.4-1+b1_amd64.deb
6b69d3991ca9b6eaf04b568643a1b78018478d07ddf00c7c1e540574c38c7d89 gnupg_2.2.35-3_all.deb
6c19a5d18c8350744581fbd25d5d29e2b7101053e25aafa4e1ffcc2b505b2f1c libxxhash0_0.8.1-1_amd64.deb
6e356fec04533fb809a1d332ac74cd5f10e86841694e2fde69fcb1ef35ecbde5 flex_2.6.4-8_amd64.deb
6e39f36ee51582eaaf130fcedbceee3bc2a4194b3b6459af84086985d3280fe1 mount_2.38.1-1_amd64.deb
6eb0fdd603620d1f9e5885fbaf3c8a040a62be6dd868f4a71b1b793321970feb g++_4%3a12.1.0-3_amd64.deb
6ec5c974d05848d9330eb41bf9c245f927b3330661577bc9382f0c5f96466a43 libfl-dev_2.6.4-8_amd64.deb
704d71b81a836826f44e42dd37c41a00a185f2d71217191896f261fa1bf151df libgit2-1.3_1.3.0+dfsg.1-3_amd64.deb
709af48ec47f12cad6bab88888d43692164fb50442b2429820931ff2d893755f libgomp1_12.2.0-1_amd64.deb
70d356876847a9a540b5bebd02b2141f9de292e7ce17a596cafdecb15c39ba21 libisl23_0.25-1_amd64.deb
7133bab166fa237597ce3b81cbca7c6b4e50e11fd5a8cd2fe07858e4e734183a llvm-13-runtime_1%3a13.0.1-7_amd64.deb
717bce9e382dca16591ce33beb48628f6cedf448ef7a416320581f2736270b70 libseccomp2_2.5.4-1+b1_amd64.deb
72e6734ea2fefb61f510dde2405706b783eae5b57d751806c02e1662163f0ded gpg_2.2.35-3_amd64.deb
734b932d04b437fc8de529a5b289d535f800b0717f437901eea74836c8a84c19 libfido2-1_1.11.0-1+b1_amd64.deb
74a73b7833fddf62be3eeb3b32d508e057f15edcb26acc7ac5f56a85be62245b fontconfig-config_2.13.1-4.4_all.deb
766861923f67326edf97e60f88e296e2618f494564fd076e9ac2574f2dc702d1 libz3-dev_4.8.12-1+b1_amd64.deb
770cb7513fc5370e841a10fe0385a52f892bb2f69ae8298f5569b1c2eb1787de libx11-6_2%3a1.8.1-2_amd64.deb
7912036000b4f42ef528ac6de6277250cf83360a85d900798409441645f0e78b libsasl2-modules-db_2.1.28+dfsg-7_amd64.deb
799f69a7efd64a0ba7f2960a144d942247848e398fb893fd29a668a7fd55d1d2 manpages-dev_5.13-1_all.deb
79ac6e9ca19c483f2e8effcc3401d723dd9dbb3a4ae324714de802adb21a8117 liblz4-1_1.9.3-2_amd64.deb
79c05439977d6ad34207268c2e35e0461dcc74d36607b8899054c96021410a76 cpp-12_12.2.0-1_amd64.deb
7a3ae3e97d0d403a4c54663c0bb48e9341d98822420a4ab808c6dc8e8474558f libcap2_1%3a2.44-1_amd64.deb
7b685f8294487d0573370a7040c4a811c67ac4641d50a0d010a2bb0fcb67eed5 libx11-data_2%3a1.8.1-2_all.deb
7b7533b27f0421177993c7835b6bd8fcdb67b9a48223964d5134639af3b4ae8a emacsen-common_3.0.4_all.deb
7c34f29a0c1aa12f6da1d25ed6de6fe6bbd9e048ee76b3dcb88c5e51fb65507f musl-dev_1.2.3-1_amd64.deb
7ca71c3ea78de3435f1e48d346e2502a8711795a23445ab693f134d21c727606 libncurses-dev_6.3+20220423-2_amd64.deb
7cfb9ca7ad9ef4d4b8e63f299ac6e600a5aaa4d9c717f4618758f1b46c2ebae2 libreadline8_8.2~rc2-2_amd64.deb
7d8650766b07d54b580d754b79ccd4517f0effda562f1743e93c8f1def2f3025 libgmp10_2%3a6.2.1+dfsg1-1_amd64.deb
7e65be476b311eefed916f07576d59996a597359d7a25d7f40de6bd94d9a1277 python3_3.10.6-1_amd64.deb
7eeccad586d6b844f3c493c7f039aec5e54d7ddaf1e0853db55d407a8ed9125c libuv1_1.44.1-2_amd64.deb
7f874c292588ecc10c6d9508bac8273ff9c281cf1c52448ca21dc8a8e9c4a008 libassuan0_2.5.5-4_amd64.deb
7f8f7fe3ead32753166e76fa97cab86f8fad4385bebb65d957b477780317e2b6 sgml-base_1.30_all.deb
7ffdcb820c88bda5314f539ff29dc5dca3559ef6cc6717c52a067718d5f5d014 libattr1_1%3a2.5.1-1_amd64.deb
81d8e0e81996af158f11a7e5db514508d6dd1830313d67d83c4097bfe84d0183 libgpm2_1.20.7-10_amd64.deb
83581000dc6371b90d147f1d3103fbcd6b7745114cb2c2cbfb3eaed3a565ea29 binutils_2.38.90.20220713-2_amd64.deb
835f806c21ae25e39053bd3057051640341b0cf08e1db9746fd82e370d82fa30 libsemanage-common_3.4-1_all.deb
836ac5b0a4c4a258321a5b1cae157ea5d7d4655901b1fd21c939b49b306d4f73 libcrypt1_1%3a4.4.28-2_amd64.deb
8411ad28c28f1d921efad316251b9136ed243721b88dccc4e6457a86b0735c55 llvm-13-tools_1%3a13.0.1-7_amd64.deb
84f03a8373746858357a8341af823d1d1e7d1afb4e63459a73e8f6b9246291fe musl-tools_1.2.3-1_amd64.deb
87c55b36951aed18ef2c357683e15c365713bda6090f15386998b57df433b387 libffi8_3.4.2-4_amd64.deb
88f5814c2578fb33c8f6e9a42eff7f47e2ec4788a1ff389ccf3475c4cbf40ddf libpam-runtime_1.5.2-2_all.deb
89b6ed95f8b523385bc1591095c85583dd22192c1b23ee162e09249cb62c0b87 sysvinit-utils_3.04-1_amd64.deb
89f3bb953b8226d3981fc95db5f8f93bbc7971d0c1ffd37bf5c26b1e159035f9 libpam0g_1.5.2-2_amd64.deb
8a6863649fd11619f6957891c50a63d76f09530f697c6ba6a1ddd54fc33d9d3b perl_5.34.0-5_amd64.deb
8a80e834ebbfd1313d45a3d5a7d018680b943287f0fdd750ed2eddc90027fd6d libmpc3_1.2.1-2_amd64.deb
8aa992756833a5356b3b494c7a52876ca754cc7a73e901e4973c4f46d18f44fb libmbedx509-1_2.28.1-1_amd64.deb
8c62594096046a3c1d99588cde6a2c0e8935d9175033d40fff76998c9f4a3453 libgdbm6_1.23-1+b1_amd64.deb
8c6d49b771530dbe26d7bd060582dc7d2b4eeb603a20789debc1ef4bbbc4ef67 patch_2.7.6-7_amd64.deb
8cc7236d57f5dbbf58fbd1a95960785f2eace6d7e60348aa466fdbc9eb2c49ed libxext6_2%3a1.3.4-1_amd64.deb
8fe1525f25334c3e9e1237cc6b8ba3b6b3089153d71d9f36b79ea46771939b1d publicsuffix_20220811.1734-1_all.deb
9041bbcd48e4f8678ac24a40505987cd9735d0f9fc447d36ce1ccb062539ec82 ninja-build_1.11.0-1_amd64.deb
915a8f426aa277d1f536d4267ac762fbec2aa24328417772c3c4025e977d263b libpam-modules_1.5.2-2_amd64.deb
91bb4073f045541a38ff7332efbe6cf42d5d89727951c29683f97ba07f17d692 libkrb5support0_1.20-1_amd64.deb
946d73440adb68723e3f0d2509784c164a6ea8961e0ddf62e08636f0d5715ca5 cargo_0.57.0-7+b1_amd64.deb
952cfedfe6454efaf085128fb485c71cb637e71c5da235f1cbdeaf8382330a5b libbz2-1.0_1.0.8-5_amd64.deb
9646d69eefce505407bf0437ea12fb7c2d47a3fd4434720ba46b642b6dcfd80f libjbig0_2.1-3.1+b2_amd64.deb
96d563cc493714dd9a33f1d1467c7f611b191223c302a257f6a3f21166fecd5c llvm-13_1%3a13.0.1-7_amd64.deb
98045b047b8f3ccfdd7930983797df3e316112e1cd4d161fc793260e31183b59 libhttp-parser2.9_2.9.4-5_amd64.deb
983ca41d506fa159536cd584118855748763f5f5a3b5949206bee4a62ec0cbf9 libxmuu1_2%3a1.1.3-3_amd64.deb
99c41b8394753b68d16cb702985d611f03a3ee1200de081168021f001e1699d6 libfile-fcntllock-perl_0.22-4_amd64.deb
9af88e94463eb595bbb03aa1f3cae1e35c1a5295212bfdc49015c3d285851a95 libglib2.0-0_2.72.3-1+b1_amd64.deb
9cba5c06a734aa79262059bd9b0374c38f44ecabc7fd256416e60f34368a7db4 dpkg-dev_1.21.9_all.deb
9f8985f120c7a6bd9abed8ac016dc29624f19f91f0699369e4d3940523675695 ncurses-base_6.3+20220423-2_all.deb
9fdc0edfc9fe4b4422a28947ffd8d40a4e05f7a92671c377f3416482566c2a8e libxml2_2.9.14+dfsg-1+b1_amd64.deb
a02a4d83f22a99cf7513a69c66cd0c29641f2e40d07bcd26b3670481774b27a5 gpgsm_2.2.35-3_amd64.deb
a057b04a8fc20d092c9a3b40d4f51f8c7a280fc3fe6b7835e28cf548937a9140 libsystemd0_251.3-1_amd64.deb
a1a83af8cbd854af887b72ad196b1f4af58387815e21ced1000253a116a46e2a make_4.3-4.1_amd64.deb
a22b52106e46fdd6486b3e7af1be010c8fa3c683fc353b5e936c6ccba4d11933 binutils-common_2.38.90.20220713-2_amd64.deb
a39ed5ed88ed0162e3a8907138aada57e58a9c425865c8d6ccfe548bd9ac9b55 libstdc++6_12.2.0-1_amd64.deb
a6abe05f0212df90ae7ac798116f162d6589d8cd8702c84abf7be1932c413ccb libtiff5_4.4.0-4_amd64.deb
a6dd99a52ec937faa20e1617da36b8b27a2ed8bc9300bf7eb8404041ede52200 apt_2.5.2_amd64.deb
a8fcbb686610c65add3d8e650126c0a5f578ed23771035e24e853fef0d148062 m4_1.4.19-1_amd64.deb
a91c913b3f281a8801d7107bcd6cd2c046a913a2dabeaaecb69f67a7a0511944 base-files_12.2_amd64.deb
a97fb10fb003fc0b68b091d52d522bed0205a12a5677b4272da4c5cff0cbc93e libapt-pkg6.0_2.5.2_amd64.deb
a9c8887fd3c7ff8056be74ad0067333e333ef31274dc9e887ee5c0ff8c4826f7 libprocps8_2%3a3.3.17-7+b1_amd64.deb
aac67b1cab6b6cd8020e31dcfade58729fad1720c4a4759efeec92fbc3645847 libstd-rust-1.59_1.59.0+dfsg1-2_amd64.deb
ac2c8bc8bb8d143cc498e909d0ff056329351d134b26f9f0713567cb63283196 gpg-agent_2.2.35-3_amd64.deb
ad97e5263454ac9a3d7d84d106f2cece38c4703588316724c5f8e474b13b67ae base-passwd_3.6.0_amd64.deb
ae68cd6fc293985db0f15d8ecf09175cf8f7c4099e0189c6c0533d025360a2c5 e2fsprogs_1.46.5-2_amd64.deb
ae924c4961cac4e450793f04301ff6d993569915ed87825b14af5d602d3c48bc libncursesw6_6.3+20220423-2_amd64.deb
aeeb0704fe9dd588fc3bb707dc73343f7848518b0c8ff054063707b6a2d68f77 gpg-wks-server_2.2.35-3_amd64.deb
b2635ff3b6c2287a57de8b2cc76cde4f04271c36f47ae51895f49fcb07e4da05 libacl1_2.3.1-1_amd64.deb
b2af34d7bec16958811767c522c14032154ac069dfd335b55189f4d1af8e8ffc libgnutls30_3.7.7-2_amd64.deb
b2b142cadb7a503ca8683af3cee66fa01b8a25a72ebebfef04f5bec67c9ce770 debianutils_5.7-0.3_amd64.deb
b3583c88d3bb23ba8935730c13827204772113eae907d72ab9ec153c1d84df6c libdpkg-perl_1.21.9_all.deb
b3fd7a430e9876c7aba3a5441ae2f130023a832c7a8a8c95dcc0674dbc6f448c libksba8_1.6.0-3_amd64.deb
b415b863678625dee3f3c75bd48b1b9e3b6e11279ebec337904d7f09630d107f libz3-4_4.8.12-1+b1_amd64.deb
b4d5eaf0fd2329d939058dcdca8fe632503843ca88d01f30b8de745e699b913b libjpeg62-turbo_1%3a2.1.2-1_amd64.deb
b50749d9328d2c1481625123e95139aad1ae695b03fd5f10b5fcf028c5aaf7fc python3-pygments_2.12.0+dfsg-2_all.deb
b6d5e74c79e86face1c01bf429c7eb7e4058dcd3284eed042ca385ff94565a30 util-linux_2.38.1-1_amd64.deb
b6f53d5aab69148878d4063b13087d152420f5f7acb3f2452ae67d4658fff7ec passwd_1%3a4.11.1+dfsg1-2_amd64.deb
b7229a09f40a6fdff1cba9f95d60f2aa5423177e96c8847123d828323374dc17 libaudit1_1%3a3.0.7-1+b1_amd64.deb
b84834e5012185985350602fd9b0428b98715a444e66298f8220842790e3c2bf libc-devtools_2.34-4_amd64.deb
b9eb355b585c4c68ea4929972456f0dd6332c95e30be3caa08aaac81cc664a9a libedit2_3.1-20210910-1_amd64.deb
b9f80e9c33836594bf240ad855f52d67df57296a3d28bfb6f217705f9402d4fc libblkid1_2.38.1-1_amd64.deb
baaa4e935c5e3bcd57d4f2f4e7a1ddc67bd4eb8629d98f97a696548849ae01ac bc_1.07.1-3+b1_amd64.deb
baf59abfd9298270867318cc9c6a7ba35f5196daadc485337621e6e19a913bb8 binutils-x86-64-linux-gnu_2.38.90.20220713-2_amd64.deb
bb73e6e11dd177b249e8c74572a3f77737afe9c4e2218cece5175f42198fc0ea libfakeroot_1.29-1_amd64.deb
bb81a188c119cd7fdebae723cbc95887b6c549b2fe4fb7e268a9c8846444da99 libnsl-dev_1.3.0-2_amd64.deb
bbfd38de41898a06326f2a6ce4cc43e8e399f5566381231065b01d70499d5ba5 build-essential_12.9_amd64.deb
bcbc83f391854ea9d50ce2a4101aacf330de3b8b71d81a798faadba14a157f78 mawk_1.3.4.20200120-3.1_amd64.deb
bd111e70d947fe230b92a4acad932de3022573ea25b7023d9c1eafb43e61d178 libmount1_2.38.1-1_amd64.deb
bd8e963c6edcf1c806df97cd73560794c347aa94b9aaaf3b88eea585bb2d2f3c tar_1.34+dfsg-1_amd64.deb
c0161783577d1715c8a8ce101a8a513b14d141187ec3d05146721b0422ee9480 less_590-1_amd64.deb
c0d83437fdb016cb289436f49f28a36be44b3e8f1f2498c7e3a095f709c0d6f8 libnsl2_1.3.0-2_amd64.deb
c10c0e1a24a85f752f3f673059029ffd845ea240751719835ea5e94d6605c45d dirmngr_2.2.35-3_amd64.deb
c2247c54f70fe4897748fcc7d27b762b228d600dd9e33efbae3e425eb4f48640 util-linux-extra_2.38.1-1_amd64.deb
c592cf1e95a590483e31df428c810d4d0c2a15cfdfeb095eb8061f2b652b5845 libexpat1_2.4.8-1_amd64.deb
c7ae8695d19ed7472cda57879207b68d95a0614f6fe68f13a34be06715a45276 libcurl4_7.84.0-2_amd64.deb
c8de08f032eb2a9cfaede7eb6838aa5c857b758c048ce2bc7dba9c4f732ddc1f libpam-modules-bin_1.5.2-2_amd64.deb
cbe97163f8d968b27ce68403787a32d0e1aa1e8bd1301a11ef20a7a5671adc4a diffutils_1%3a3.8-1_amd64.deb
cc6a8974d64157873030c7c61d7c872552ddadf31f6d35b9bc4d69c69eb72ba9 libpcre3_2%3a8.39-14_amd64.deb
cc8b67b342c5743bd8d8960e85f9c2847601266f6a2521c5cfb3bbdc3815a81b libcurl3-gnutls_7.84.0-2_amd64.deb
cd8a308022ca691bca30e4972f6b3ff79dfc45bc617cc812ebaceaaa8ece9e05 libdeflate0_1.12-1_amd64.deb
cdc879d74214741ce39bd271b0e775002833a66a4b50f386d3de63dfb60272a6 bash_5.1-6.1+b1_amd64.deb
cdf8a627f065d6ecdf9a3a135d70cdfec179b552b2b221e5d587a9de7ed66879 libext2fs2_1.46.5-2_amd64.deb
ced32d2c49838a078465aa0857eba01d0193f3803c02fd46ca003290298cd886 libstdc++-12-dev_12.2.0-1_amd64.deb
d05229ce7493922d68421e91f3170b89d9ea248556823191d7477441a5fa8a92 bzip2_1.0.8-5_amd64.deb
d20a3ee34fa84ad8bd381e8be6e9c2c2ea32347cff5e1169c10e978d43f54f24 libssh2-1_1.10.0-3+b1_amd64.deb
d364e4a02ad88a33a213ae69e9840e181d1e52e3e4c3bf5c46d7b81eab63f2f4 python3.10_3.10.6-1_amd64.deb
d37ba2af48eaebcb18210bf12c82d21b02b710c6d25c023d5a43ece7373cb130 libglib2.0-data_2.72.3-1_all.deb
d50716d5824083d667427817d506b45d3f59dc77e1ca52de000f3f62d4918afa libidn2-0_2.3.3-1+b1_amd64.deb
d5aac9efc8192f7b225a3278a86767da8b7680718961f58f40c950dd5a6a12fa libgcc-s1_12.2.0-1_amd64.deb
d617406c8bd4809630075250386153ac4820dabe84c9ba3786c0aa37a27d4c1e libc-bin_2.34-4_amd64.deb
d67bb6da8256863c85866059c8c2b93f1571ed7e2574b007241de35a2f0120d9 openssl_3.0.5-2_amd64.deb
d6819ff5f0cfa010e63fe5e808693f0c9c0090d194db59772791a7444b305cdd libgdbm-compat4_1.23-1+b1_amd64.deb
d716f5b4346ec85bb728f4530abeb1da4a79f696c72d7f774c59ba127c202fa7 libpsl5_0.21.0-1.2_amd64.deb
d788b0a84e37c00a84d005cc2500b732e1031c28b98f24676dfb4bed3702af0e cpp_4%3a12.1.0-3_amd64.deb
d7abcfaa67bc16c4aed960c959ca62849102c8a0a61b9af9a23fcc870ebc3c57 ca-certificates_20211016_all.deb
d7d25c7bb2b4534cc88a54c59b4f34e4d77f94891fab709571f9e9b2df81c91a libctf-nobfd0_2.38.90.20220713-2_amd64.deb
d85f4d2f4f740d09d5f578cf15bbb9b6a912a849047cf807253605d4815745e8 libfreetype6_2.12.1+dfsg-3_amd64.deb
d8c263f47b03a942f2b807187dcc08286f8810c776f18e828dae0cc8b6375da5 libncurses6_6.3+20220423-2_amd64.deb
d9ba48a51fd4734aaaf3a75fd94b6352a02f9eaa88d3bec84cd0b5d3090f9d2a librhash0_1.4.3-3_amd64.deb
da382f4dbc06f61a3710167e5f2aa89de58191aeb8367680ba5be9a5578ac366 libbinutils_2.38.90.20220713-2_amd64.deb
da83cb522f5a75d4a0e8f947b07a777406e4c635d91c9d5a57dcc2c61d648c46 libtasn1-6_4.18.0-4_amd64.deb
dccd79dc7bd1ac89cd1a14c7ac04f0864eff4083ee817816c27b577bfec5d0d1 init-system-helpers_1.64_all.deb
dd026add873483566faefebbd8779a1e5e14ab2e44682ebfe238c3828a2b936b shared-mime-info_2.2-1_amd64.deb
ddc88f2067cbb2feafc8d53bcdf336732b588ab9b05f3fe382d59d9614576535 libalgorithm-diff-xs-perl_0.04-7_amd64.deb
df3e13d08d7010abceb0b89a22c2996a4703089b1475028a6d846cb54b0543a9 rustc_1.59.0+dfsg1-2_amd64.deb
dfc19000244d340e4646d64cc0d8ba553fa252e7af2c97d2227567a2b92772f2 libtsan2_12.2.0-1_amd64.deb
e013a59874dde409f1be902b4e97adb947c09f3f9b9c9f0dcbb8cb9aca609c95 libpython3.10-minimal_3.10.6-1_amd64.deb
e01f1bbc48bce84583ef6a0c40a5b256e35c42f3c9544c719c5c21f1437e435d libcom-err2_1.46.5-2_amd64.deb
e104148eb7a2e1c9908967acc7fe15fff2b4554148cafe046f19fbacc9adeb0f debconf_1.5.79_all.deb
e1200991a4ea7ce2a8f44597c0924aac57183fb9fb8d15fa1e20c9c8f53acdf4 dh-elpa-helper_2.0.10_all.deb
e1f69020dc2c466e421ec6a58406b643be8b5c382abf0f8989011c1d3df91c87 librtmp1_2.4+20151223.gitfa8646d.1-2+b2_amd64.deb
e34c2ee7473f66347858e11eaa37bdbf14428a09c89d8f456f0801f8dcbfaa52 libctf0_2.38.90.20220713-2_amd64.deb
e3a156b87d37e8627a3a003c9a40d0e098bb1cec6938065b8c29dd844a1383b1 libdb5.3_5.3.28+dfsg1-0.10_amd64.deb
e3c31a1d547d9b30d8c2c50bfa6d922fd2f896515ec395bf3ea1c03277b717d6 g++-12_12.2.0-1_amd64.deb
e738d9815996781b6841723d400c9c56249f3e91fd104df717a85506d7959cf9 libssl-dev_3.0.5-2_amd64.deb
e749fd21982b12872f1c8996653f512412a1d5ec02eb574a312bb9cf58945510 libclang-cpp13_1%3a13.0.1-7_amd64.deb
eab0ce628b6e8c89fe375db53987893f245fb8628c9d3acd5b7933b29c2517a3 xz-utils_5.2.5-2.1_amd64.deb
eabec1dde2834f72540d7b93fc5df2625f52611c06d93d61f5cdb12480e0e6a3 gzip_1.12-1_amd64.deb
ebb1e8a210f61f48d95baedb3b03f32996b7e0e0abad1e319075ae2da36e9c6b libtinfo6_6.3+20220423-2_amd64.deb
ebef6bcd777b5c0cc2699926f2159db08433aed07c50cb321fd828b28c5e8d53 ucf_3.0043_all.deb
ecb8536f5fb34543b55bb9dc5f5b14c9dbb4150a7bddb3f2287b7cab6e9d25ef libxdmcp6_1%3a1.1.2-3_amd64.deb
ece91564a9292809d571a35ecf800204d219cdb62e013d38bef186722fbb52cd zlib1g-dev_1%3a1.2.11.dfsg-4.1_amd64.deb
ed2328befa036dcb0455deecb4787c91e48606ebbea28aa329bd2a10adb7b2aa python3-minimal_3.10.6-1_amd64.deb
ed8185c28b2cb519744a5a462dcd720d3b332c9b88a1d0002eac06dc8550cb94 libhogweed6_3.8.1-2_amd64.deb
ee96124248c818f6c3b3a1699da37e513a33a3dc48b4894fb5240a10a902b9e8 libpipeline1_1.5.6-2_amd64.deb
ef4bf98fdc379a5fdf7029f466d0645a15656d9a8c1a9366ea5302b3f2d413be llvm-13-linker-tools_1%3a13.0.1-7_amd64.deb
f113e5be4a1d7655cca4f406c37104bfcdd3e99293567f8ea7a10016217de30b logsave_1.46.5-2_amd64.deb
f1159f9998123cba50774b498d401efe455e480b627829cec2aeabd551278c7f libldap-2.5-0_2.5.12+dfsg-2+b1_amd64.deb
f359b10ccb0f7255b5b844f2404fce44d9a700857515383a8e62987ba0091a7f libwebp7_1.2.2-2+b1_amd64.deb
f3ecb79299b5b8238bfd52bb8b87f2a96514fcc45e58f5635781756ac636f519 bsdutils_1%3a2.38.1-1_amd64.deb
f4213b29b04ccaa13a7a2bc001ef4156c8fb31fc8a1fca6dc7a490fef21092cb libfl2_2.6.4-8_amd64.deb
f444889ad3441758e3a5092418e062da2b0c6a811fdb0c262a6b70cb2518dbde netbase_6.3_all.deb
f499fb0f97de183cfd34a5f03de9c5429fcedd74cc2035534ee4189f2e57b6e3 xdg-user-dirs_0.17-2_amd64.deb
f65abda397a4635788bdf471cc8bbb09c3cfbb6a24d5baca8141ec5ca87404d0 zlib1g_1%3a1.2.11.dfsg-4.1_amd64.deb
f6edf9a9588bfabe7e28f380e790da4c380952e4b36ac60144ddf5fdb91daacf libpcre2-8-0_10.40-1_amd64.deb
f704757e5a1a9605849ac617116e5a0eb2aacea95a047729e73ee996dc45a000 libuuid1_2.38.1-1_amd64.deb
f75c592eedb7418b2bd4b997f1bb644f1699abd0b77d41acb7c45e36648532e3 lsb-base_11.2_all.deb
f8a298f4314336d348dd1d75c86947befd68cc9ed395c14d814ac902e082aff5 libsemanage2_3.4-1+b1_amd64.deb
f9481fca149cef6a3b086d0e6457e0b0037059bb0f168636d248f4492065dc65 libunistring2_1.0-1_amd64.deb
fc8ed8b904c42caa627320bc977b453ebb1d6ebf98a919df9bca1236ae708f12 python3-yaml_5.4.1-1+b2_amd64.deb
fc95c44c32b3d38ce9f348bc3d03108afdb3baf6221c1fa54cbc2ee1197b1a63 python3.10-minimal_3.10.6-1_amd64.deb
fdc61332a3892168f3cc9cfa1fe9cf11a91dc3e0acacbc47cbc50ebaa234cc71 libxcb1_1.15-1_amd64.deb
fde6087b60b57a3ab75c1831947c97fd2206a66d394011c150c79f8e2e28684d procps_2%3a3.3.17-7+b1_amd64.deb
fe6a0db1298f6faef7642e64402e736897a3f9812966969e221baaf8023967b2 libdebconfclient0_0.264_amd64.deb
ff12fc51e092aaae4992317c5f7f26d1e73e6fde4296a8cdfe1b739b51e4b0ab xauth_1%3a1.1.1-1_amd64.deb
ff1d5281131fb36c6da4f3c40a6b75010bf94f2b15fd3497500a1b056d01c63b ncurses-bin_6.3+20220423-2_amd64.deb

View File

@ -1,18 +0,0 @@
git
curl
build-essential
flex
bison
libncurses-dev
bc
libelf-dev
libarchive-tools
libssl-dev
fakeroot
cpio
python3
ninja-build
cmake
musl-tools
cargo
pkg-config

View File

@ -1,317 +0,0 @@
git
curl
build-essential
flex
bison
libncurses-dev
bc
libelf-dev
libarchive-tools
libssl-dev
fakeroot
cpio
python3
ninja-build
cmake
musl-tools
cargo
pkg-config
adduser=3.128
apt=2.5.2
base-files=12.2
base-passwd=3.6.0
bash=5.1-6.1+b1
bc=1.07.1-3+b1
binfmt-support=2.2.2-1
binutils-common=2.38.90.20220713-2
binutils-x86-64-linux-gnu=2.38.90.20220713-2
binutils=2.38.90.20220713-2
bison=2:3.8.2+dfsg-1
bsdutils=1:2.38.1-1
build-essential=12.9
bzip2=1.0.8-5
ca-certificates=20211016
cargo=0.57.0-7+b1
cmake-data=3.24.1-1
cmake=3.24.1-1
coreutils=8.32-4.1
cpio=2.13+dfsg-7
cpp-12=12.2.0-1
cpp=4:12.1.0-3
curl=7.84.0-2
dash=0.5.11+git20210903+057cd650a4ed-8
debconf=1.5.79
debian-archive-keyring=2021.1.1
debianutils=5.7-0.3
dh-elpa-helper=2.0.10
diffutils=1:3.8-1
dirmngr=2.2.35-3
dpkg-dev=1.21.9
dpkg=1.21.9
e2fsprogs=1.46.5-2
emacsen-common=3.0.4
fakeroot=1.29-1
findutils=4.9.0-3
flex=2.6.4-8
fontconfig-config=2.13.1-4.4
fonts-dejavu-core=2.37-2
g++-12=12.2.0-1
g++=4:12.1.0-3
gcc-12-base=12.2.0-1
gcc-12=12.2.0-1
gcc=4:12.1.0-3
git-man=1:2.35.1-1
git=1:2.35.1-1
gnupg-l10n=2.2.35-3
gnupg-utils=2.2.35-3
gnupg=2.2.35-3
gpg-agent=2.2.35-3
gpg-wks-client=2.2.35-3
gpg-wks-server=2.2.35-3
gpg=2.2.35-3
gpgconf=2.2.35-3
gpgsm=2.2.35-3
gpgv=2.2.35-3
grep=3.7-1
gzip=1.12-1
hostname=3.23
icu-devtools=71.1-3
init-system-helpers=1.64
krb5-locales=1.20-1
less=590-1
libacl1=2.3.1-1
libalgorithm-diff-perl=1.201-1
libalgorithm-diff-xs-perl=0.04-7
libalgorithm-merge-perl=0.08-4
libapt-pkg6.0=2.5.2
libarchive-tools=3.6.0-1
libarchive13=3.6.0-1
libasan8=12.2.0-1
libassuan0=2.5.5-4
libatomic1=12.2.0-1
libattr1=1:2.5.1-1
libaudit-common=1:3.0.7-1
libaudit1=1:3.0.7-1+b1
libbinutils=2.38.90.20220713-2
libblkid1=2.38.1-1
libbrotli1=1.0.9-2+b4
libbsd0=0.11.6-1
libbz2-1.0=1.0.8-5
libc-bin=2.34-4
libc-dev-bin=2.34-4
libc-devtools=2.34-4
libc6-dev=2.34-4
libc6=2.34-4
libcap-ng0=0.8.3-1+b1
libcap2=1:2.44-1
libcbor0.8=0.8.0-2
libcc1-0=12.2.0-1
libclang-cpp13=1:13.0.1-7
libcom-err2=1.46.5-2
libcrypt-dev=1:4.4.28-2
libcrypt1=1:4.4.28-2
libctf-nobfd0=2.38.90.20220713-2
libctf0=2.38.90.20220713-2
libcurl3-gnutls=7.84.0-2
libcurl4=7.84.0-2
libdb5.3=5.3.28+dfsg1-0.10
libdebconfclient0=0.264
libdeflate0=1.12-1
libdpkg-perl=1.21.9
libedit2=3.1-20210910-1
libelf-dev=0.187-1
libelf1=0.187-1
liberror-perl=0.17029-1
libexpat1=2.4.8-1
libext2fs2=1.46.5-2
libfakeroot=1.29-1
libffi-dev=3.4.2-4
libffi8=3.4.2-4
libfido2-1=1.11.0-1+b1
libfile-fcntllock-perl=0.22-4
libfl-dev=2.6.4-8
libfl2=2.6.4-8
libfontconfig1=2.13.1-4.4
libfreetype6=2.12.1+dfsg-3
libgcc-12-dev=12.2.0-1
libgcc-s1=12.2.0-1
libgcrypt20=1.10.1-2
libgd3=2.3.3-6
libgdbm-compat4=1.23-1+b1
libgdbm6=1.23-1+b1
libgit2-1.3=1.3.0+dfsg.1-3
libglib2.0-0=2.72.3-1+b1
libglib2.0-data=2.72.3-1
libgmp10=2:6.2.1+dfsg1-1
libgnutls30=3.7.7-2
libgomp1=12.2.0-1
libgpg-error0=1.45-2
libgpm2=1.20.7-10
libgprofng0=2.38.90.20220713-2
libgssapi-krb5-2=1.20-1
libhogweed6=3.8.1-2
libhttp-parser2.9=2.9.4-5
libicu-dev=71.1-3
libicu71=71.1-3
libidn2-0=2.3.3-1+b1
libisl23=0.25-1
libitm1=12.2.0-1
libjbig0=2.1-3.1+b2
libjpeg62-turbo=1:2.1.2-1
libjsoncpp25=1.9.5-4
libk5crypto3=1.20-1
libkeyutils1=1.6.3-1
libkrb5-3=1.20-1
libkrb5support0=1.20-1
libksba8=1.6.0-3
libldap-2.5-0=2.5.12+dfsg-2+b1
libldap-common=2.5.12+dfsg-2
liblerc4=4.0.0+ds-1
libllvm13=1:13.0.1-7
liblocale-gettext-perl=1.07-4+b2
liblsan0=12.2.0-1
liblz4-1=1.9.3-2
liblzma5=5.2.5-2.1
libmbedcrypto7=2.28.1-1
libmbedtls14=2.28.1-1
libmbedx509-1=2.28.1-1
libmd0=1.0.4-2
libmount1=2.38.1-1
libmpc3=1.2.1-2
libmpdec3=2.5.1-2
libmpfr6=4.1.0-3
libncurses-dev=6.3+20220423-2
libncurses6=6.3+20220423-2
libncursesw6=6.3+20220423-2
libnettle8=3.8.1-2
libnghttp2-14=1.49.0-1
libnpth0=1.6-3
libnsl-dev=1.3.0-2
libnsl2=1.3.0-2
libp11-kit0=0.24.1-1
libpam-modules-bin=1.5.2-2
libpam-modules=1.5.2-2
libpam-runtime=1.5.2-2
libpam0g=1.5.2-2
libpcre2-8-0=10.40-1
libpcre3=2:8.39-14
libperl5.34=5.34.0-5
libpfm4=4.11.1+git74-g5140ce5-1
libpipeline1=1.5.6-2
libpng16-16=1.6.37-5
libprocps8=2:3.3.17-7+b1
libpsl5=0.21.0-1.2
libpython3-stdlib=3.10.6-1
libpython3.10-minimal=3.10.6-1
libpython3.10-stdlib=3.10.6-1
libquadmath0=12.2.0-1
libreadline8=8.2~rc2-2
librhash0=1.4.3-3
librtmp1=2.4+20151223.gitfa8646d.1-2+b2
libsasl2-2=2.1.28+dfsg-7
libsasl2-modules-db=2.1.28+dfsg-7
libsasl2-modules=2.1.28+dfsg-7
libseccomp2=2.5.4-1+b1
libselinux1=3.4-1+b1
libsemanage-common=3.4-1
libsemanage2=3.4-1+b1
libsepol2=3.4-2
libsmartcols1=2.38.1-1
libsqlite3-0=3.39.2-1
libss2=1.46.5-2
libssh2-1=1.10.0-3+b1
libssl-dev=3.0.5-2
libssl3=3.0.5-2
libstd-rust-1.59=1.59.0+dfsg1-2
libstd-rust-dev=1.59.0+dfsg1-2
libstdc++-12-dev=12.2.0-1
libstdc++6=12.2.0-1
libsystemd0=251.3-1
libtasn1-6=4.18.0-4
libtiff5=4.4.0-4
libtinfo6=6.3+20220423-2
libtirpc-common=1.3.3+ds-1
libtirpc-dev=1.3.3+ds-1
libtirpc3=1.3.3+ds-1
libtsan2=12.2.0-1
libubsan1=12.2.0-1
libudev1=251.3-1
libunistring2=1.0-1
libuuid1=2.38.1-1
libuv1=1.44.1-2
libwebp7=1.2.2-2+b1
libx11-6=2:1.8.1-2
libx11-data=2:1.8.1-2
libxau6=1:1.0.9-1
libxcb1=1.15-1
libxdmcp6=1:1.1.2-3
libxext6=2:1.3.4-1
libxml2-dev=2.9.14+dfsg-1+b1
libxml2=2.9.14+dfsg-1+b1
libxmuu1=2:1.1.3-3
libxpm4=1:3.5.12-1
libxxhash0=0.8.1-1
libyaml-0-2=0.2.5-1
libz3-4=4.8.12-1+b1
libz3-dev=4.8.12-1+b1
libzstd1=1.5.2+dfsg-1
linux-libc-dev=5.18.16-1
llvm-13-dev=1:13.0.1-7
llvm-13-linker-tools=1:13.0.1-7
llvm-13-runtime=1:13.0.1-7
llvm-13-tools=1:13.0.1-7
llvm-13=1:13.0.1-7
login=1:4.11.1+dfsg1-2
logsave=1.46.5-2
lsb-base=11.2
m4=1.4.19-1
make=4.3-4.1
manpages-dev=5.13-1
manpages=5.13-1
mawk=1.3.4.20200120-3.1
media-types=8.0.0
mount=2.38.1-1
musl-dev=1.2.3-1
musl-tools=1.2.3-1
musl=1.2.3-1
ncurses-base=6.3+20220423-2
ncurses-bin=6.3+20220423-2
netbase=6.3
ninja-build=1.11.0-1
openssh-client=1:9.0p1-1+b1
openssl=3.0.5-2
passwd=1:4.11.1+dfsg1-2
patch=2.7.6-7
perl-base=5.34.0-5
perl-modules-5.34=5.34.0-5
perl=5.34.0-5
pinentry-curses=1.2.0-2
pkg-config=0.29.2-1
procps=2:3.3.17-7+b1
psmisc=23.5-3
publicsuffix=20220811.1734-1
python3-minimal=3.10.6-1
python3-pkg-resources=59.6.0-1.2
python3-pygments=2.12.0+dfsg-2
python3-yaml=5.4.1-1+b2
python3.10-minimal=3.10.6-1
python3.10=3.10.6-1
python3=3.10.6-1
readline-common=8.2~rc2-2
rpcsvc-proto=1.4.2-4
rustc=1.59.0+dfsg1-2
sed=4.8-1
sensible-utils=0.0.17
sgml-base=1.30
shared-mime-info=2.2-1
sysvinit-utils=3.04-1
tar=1.34+dfsg-1
tzdata=2022c-1
ucf=3.0043
util-linux-extra=2.38.1-1
util-linux=2.38.1-1
xauth=1:1.1.1-1
xdg-user-dirs=0.17-2
xz-utils=5.2.5-2.1
zlib1g-dev=1:1.2.11.dfsg-4.1
zlib1g=1:1.2.11.dfsg-4.1

View File

@ -1,78 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
RqWOFquQERMs0oXdHKc5w55soziCllQ=
=GtNR
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -1,23 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQGiBEV/D2cRBACIILILVH2Hw7pTT/wGSx8sV4AiRGqgLrkSYej1o2aV73KYr803
ciaE6cvCv2pA7VVDGNjjA0Qm6z9NLiwOyL6Lxt0X7pv5LPHiGuusuJbo1IlT7Alf
vJS47XNZUKOK+DwTbrnKawEGKJLdANJ3x4aqu1tZI0tle2u42Ek1zgBiiwCg5WIB
LbZbsN9vuvhDXkU5rjA+rtsD/jeV7l4q+F31xboCE6Kixzv1Q+UNeiP+lcncqzOW
CIzh6prPooRqdXokb13OYwfAv1d84Ww2AA93grCAnNHUBomz4iVzpnMsRRxpwMoy
EnVFbutX8Zl1S631IqSKmM237X4cTItUDHABQIqUY4k7xW44UMBb62jYxyekNW6v
yVo5A/4yM8ri1E7AIUAOjoEMuWkBSYxdcq7h1jxh1Rm5QqRejiS7TNejF5EOUSlo
oPx5ijS56JHAvPJZFWu5CU0VUveTcFrv0IhqDuoYNM4uUIh/QIjo06CxBEjgviNs
kYZBwHBIBMGOIj/Vo+xzGQLySDuVxzMpDrUm9gXb49e/5skxSrQpRGVuaXMgVmxh
c2Vua28gPHZkYS5saW51eEBnb29nbGVtYWlsLmNvbT6IYAQTEQIAIAUCRX8PZwIb
AwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEEe3DFWsyZZbExwAoOTGwQOj75Hj
pDbOw99+vhlx8/uUAKCwAaxacnpRFUkhVRBsCYWIC5obf7kBDQRFfw9oEAQAjQyS
MWag/Dxc6G9Em9/2jVG9FQAi+NOPx2EigOUC8wEeErEjwQRN/9xIU8CCncttYfBe
U00b198fSL9axKZIptn0hLAMOruFODBVjVDiOY09M67DfQ47zzTRE9HWst47TgVN
LWdfNljB+wqgvEor4S6WtZpyAcq8f1kOMrX115sAAwUD/2eow67bKR7yGhHw8Me2
HWqUmd8B0+CM5QpfYGOND5p7oKnMLXDu+Q0bma6wbTasQX+urA1UxdXo0EAWrQXr
ttQTF92G6G0Gi5JcMWu2QkgTWiZMr90sY+PMAi3nGnqiJLwHVnlxhKnTSE5JdpcX
cQLJQDYDoJtBBccBUtF0o1z+iEkEGBECAAkFAkV/D2gCGwwACgkQR7cMVazJllvV
igCfbxD3ZRcgCpaZo6gZyXf89oyKCjAAnAiK5h7KxXPrwviUL4K/GlWGGFOA
=2JoA
-----END PGP PUBLIC KEY BLOCK-----

12
src/aws/Cargo.toml Normal file
View File

@ -0,0 +1,12 @@
[package]
name = "aws"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
libc = "0.2.134"
nsm_lib = { git = "https://github.com/aws/aws-nitro-enclaves-nsm-api.git/", branch = "main", package="nsm-lib", optional = false }
nsm_api = { git = "https://github.com/aws/aws-nitro-enclaves-nsm-api.git/", branch = "main", package="aws-nitro-enclaves-nsm-api", optional = false }
system = { path = "../system"}

65
src/aws/src/lib.rs Normal file
View File

@ -0,0 +1,65 @@
use system::{dmesg, SystemError};
// Signal to Nitro hypervisor that booting was successful
fn nitro_heartbeat() {
use system::socket_connect;
use libc::{write, read, close, AF_VSOCK};
let mut buf: [u8; 1] = [0; 1];
buf[0] = 0xB7; // AWS Nitro heartbeat value
let fd = match socket_connect(AF_VSOCK, 9000, 3) {
Ok(f)=> f,
Err(e)=> {
eprintln!("{}", e);
return
},
};
unsafe {
write(fd, buf.as_ptr() as _, 1);
read(fd, buf.as_ptr() as _, 1);
close(fd);
}
dmesg(format!("Sent NSM heartbeat"));
}
// Get entropy sample from Nitro device
pub fn get_entropy(size: usize) -> Result<Vec<u8>, SystemError> {
use nsm_api::api::ErrorCode;
use nsm_lib::{nsm_get_random, nsm_lib_init};
let nsm_fd = nsm_lib_init();
if nsm_fd < 0 {
return Err(SystemError {
message: String::from("Failed to connect to NSM device")
});
};
let mut dest = Vec::with_capacity(size);
while dest.len() < size {
let mut buf = [0u8; 256];
let mut buf_len = buf.len();
let status = unsafe {
nsm_get_random(nsm_fd, buf.as_mut_ptr(), &mut buf_len)
};
match status {
ErrorCode::Success => {
dest.extend_from_slice(&buf);
},
_ => {
return Err(SystemError {
message: String::from("Failed to get entropy from NSM device")
});
}
};
}
Ok(dest)
}
// Initialize nitro device
pub fn init_platform(){
use system::insmod;
// TODO: error handling
nitro_heartbeat();
match insmod("/nsm.ko") {
Ok(())=> dmesg(format!("Loaded nsm.ko")),
Err(e)=> eprintln!("{}", e)
};
}

337
src/init/Cargo.lock generated Normal file
View File

@ -0,0 +1,337 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "autocfg"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
[[package]]
name = "aws"
version = "0.1.0"
dependencies = [
"aws-nitro-enclaves-nsm-api",
"libc",
"nsm-lib",
"system",
]
[[package]]
name = "aws-nitro-enclaves-nsm-api"
version = "0.2.1"
source = "git+https://github.com/aws/aws-nitro-enclaves-nsm-api.git/?branch=main#16eebf7838fa6f399cfffda0049912b936c3a895"
dependencies = [
"libc",
"log",
"nix",
"serde",
"serde_bytes",
"serde_cbor",
]
[[package]]
name = "bitflags"
version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
[[package]]
name = "cbindgen"
version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "485ede05a56152367a6ec586a7425b475d6c3d3838581ff651d2a6e3730a62ef"
dependencies = [
"heck",
"indexmap",
"log",
"proc-macro2",
"quote",
"serde",
"serde_json",
"syn",
"tempfile",
"toml",
]
[[package]]
name = "cc"
version = "1.0.73"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
[[package]]
name = "cfg-if"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "fastrand"
version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
dependencies = [
"instant",
]
[[package]]
name = "half"
version = "1.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
[[package]]
name = "hashbrown"
version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
[[package]]
name = "heck"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
[[package]]
name = "indexmap"
version = "1.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e"
dependencies = [
"autocfg",
"hashbrown",
]
[[package]]
name = "init"
version = "0.1.0"
dependencies = [
"aws",
"libc",
"system",
]
[[package]]
name = "instant"
version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
dependencies = [
"cfg-if",
]
[[package]]
name = "itoa"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc"
[[package]]
name = "libc"
version = "0.2.134"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "329c933548736bc49fd575ee68c89e8be4d260064184389a5b77517cddd99ffb"
[[package]]
name = "log"
version = "0.4.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
dependencies = [
"cfg-if",
]
[[package]]
name = "memoffset"
version = "0.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
dependencies = [
"autocfg",
]
[[package]]
name = "nix"
version = "0.20.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f5e06129fb611568ef4e868c14b326274959aa70ff7776e9d55323531c374945"
dependencies = [
"bitflags",
"cc",
"cfg-if",
"libc",
"memoffset",
]
[[package]]
name = "nsm-lib"
version = "0.2.1"
source = "git+https://github.com/aws/aws-nitro-enclaves-nsm-api.git/?branch=main#16eebf7838fa6f399cfffda0049912b936c3a895"
dependencies = [
"aws-nitro-enclaves-nsm-api",
"cbindgen",
"serde_bytes",
]
[[package]]
name = "proc-macro2"
version = "1.0.46"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94e2ef8dbfc347b10c094890f778ee2e36ca9bb4262e86dc99cd217e35f3470b"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
version = "1.0.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
dependencies = [
"proc-macro2",
]
[[package]]
name = "redox_syscall"
version = "0.2.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
dependencies = [
"bitflags",
]
[[package]]
name = "remove_dir_all"
version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
dependencies = [
"winapi",
]
[[package]]
name = "ryu"
version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09"
[[package]]
name = "serde"
version = "1.0.145"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "728eb6351430bccb993660dfffc5a72f91ccc1295abaa8ce19b27ebe4f75568b"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_bytes"
version = "0.11.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cfc50e8183eeeb6178dcb167ae34a8051d63535023ae38b5d8d12beae193d37b"
dependencies = [
"serde",
]
[[package]]
name = "serde_cbor"
version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2bef2ebfde456fb76bbcf9f59315333decc4fda0b2b44b420243c11e0f5ec1f5"
dependencies = [
"half",
"serde",
]
[[package]]
name = "serde_derive"
version = "1.0.145"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "serde_json"
version = "1.0.86"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41feea4228a6f1cd09ec7a3593a682276702cd67b5273544757dae23c096f074"
dependencies = [
"itoa",
"ryu",
"serde",
]
[[package]]
name = "syn"
version = "1.0.102"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3fcd952facd492f9be3ef0d0b7032a6e442ee9b361d4acc2b1d0c4aaa5f613a1"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]]
name = "system"
version = "0.1.0"
dependencies = [
"libc",
]
[[package]]
name = "tempfile"
version = "3.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4"
dependencies = [
"cfg-if",
"fastrand",
"libc",
"redox_syscall",
"remove_dir_all",
"winapi",
]
[[package]]
name = "toml"
version = "0.5.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7"
dependencies = [
"serde",
]
[[package]]
name = "unicode-ident"
version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3"
[[package]]
name = "winapi"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
dependencies = [
"winapi-i686-pc-windows-gnu",
"winapi-x86_64-pc-windows-gnu",
]
[[package]]
name = "winapi-i686-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
[[package]]
name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"

14
src/init/Cargo.toml Normal file
View File

@ -0,0 +1,14 @@
[package]
name = "init"
version = "0.1.0"
edition = "2021"
[dependencies]
libc = "0.2.134"
aws = { path = "../aws"}
system = { path = "../system"}
[[bin]]
name = "init"
path = "init.rs"

View File

@ -1,9 +0,0 @@
#include <stdio.h>
#include <unistd.h>
int main(int argc, char **argv) {
(void) argc;
(void) argv;
puts("Appliance Linux Sample Init");
sleep(0xFFFFFFFF);
}

59
src/init/init.rs Normal file
View File

@ -0,0 +1,59 @@
use system::{seed_entropy, reboot, freopen, mount, dmesg};
//TODO: Feature flag
use aws::{init_platform, get_entropy};
// Mount common filesystems with conservative permissions
fn init_rootfs() {
use libc::{MS_NOSUID, MS_NOEXEC, MS_NODEV };
let no_dse = MS_NODEV | MS_NOSUID | MS_NOEXEC;
let no_se = MS_NOSUID | MS_NOEXEC;
let args = [
("devtmpfs", "/dev", "devtmpfs", no_se, "mode=0755"),
("devtmpfs", "/dev", "devtmpfs", no_se, "mode=0755"),
("devpts", "/dev/pts", "devpts", no_se, ""),
("shm", "/dev/shm", "tmpfs", no_dse, "mode=0755"),
("proc", "/proc", "proc", no_dse, "hidepid=2"),
("tmpfs", "/run", "tmpfs", no_dse, "mode=0755"),
("tmpfs", "/tmp", "tmpfs", no_dse, ""),
("sysfs", "/sys", "sysfs", no_dse, ""),
("cgroup_root", "/sys/fs/cgroup", "tmpfs", no_dse, "mode=0755"),
];
for (src, target, fstype, flags, data) in args {
match mount(src, target, fstype, flags, data) {
Ok(())=> dmesg(format!("Mounted {}", target)),
Err(e)=> eprintln!("{}", e),
}
}
}
// Initialize console with stdin/stdout/stderr
fn init_console() {
let args = [
("/dev/console", "r", 0),
("/dev/console", "w", 1),
("/dev/console", "w", 2),
];
for (filename, mode, file) in args {
match freopen(filename, mode, file) {
Ok(())=> {},
Err(e)=> eprintln!("{}", e),
}
}
}
fn boot(){
init_rootfs();
init_console();
init_platform();
match seed_entropy(4096, get_entropy) {
Ok(size)=> dmesg(format!("Seeded kernel with entropy: {}", size)),
Err(e)=> eprintln!("{}", e)
};
}
fn main() {
boot();
dmesg("EnclaveOS Booted".to_string());
reboot();
}

View File

@ -1,14 +0,0 @@
#!/bin/busybox sh
busybox mount -t devtmpfs none /dev
busybox mkdir -p /dev/pts
busybox mount -t devpts none /dev/pts
busybox mount -t sysfs none /sys
busybox mount -t proc none /proc
/bin/busybox --install
touch /etc/hosts
touch /etc/fstab
/bin/busybox sh

9
src/system/Cargo.toml Normal file
View File

@ -0,0 +1,9 @@
[package]
name = "system"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
libc = "0.2.134"

169
src/system/src/lib.rs Normal file
View File

@ -0,0 +1,169 @@
use libc::{ c_ulong, c_int, c_void };
use std::{
mem::{zeroed, size_of},
ffi::CString,
fs::File,
os::unix::io::AsRawFd,
fmt,
};
pub struct SystemError {
pub message: String,
}
impl fmt::Display for SystemError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{} {}", boot_time(), self.message)
}
}
// Log dmesg formatted log to console
pub fn dmesg(message: String){
println!("{} {}", boot_time(), message);
}
// Dmesg formatted seconds since boot
pub fn boot_time() -> String {
use libc::{clock_gettime, timespec, CLOCK_BOOTTIME};
let mut t = timespec { tv_sec: 0, tv_nsec: 0 };
unsafe { clock_gettime(CLOCK_BOOTTIME, &mut t as *mut timespec); }
format!("[ {: >4}.{}]", t.tv_sec, t.tv_nsec / 1000).to_string()
}
// Unconditionally reboot the system now
pub fn reboot(){
use libc::{reboot, RB_AUTOBOOT};
unsafe {
reboot(RB_AUTOBOOT);
}
}
// libc::mount casting/error wrapper
pub fn mount(
src: &str,
target: &str,
fstype: &str,
flags: c_ulong,
data: &str,
) -> Result<(), SystemError> {
use libc::mount;
let src_cs = CString::new(src).unwrap();
let fstype_cs = CString::new(fstype).unwrap();
let data_cs = CString::new(data).unwrap();
let target_cs = CString::new(target).unwrap();
if unsafe {
mount(
src_cs.as_ptr(),
target_cs.as_ptr(),
fstype_cs.as_ptr(),
flags,
data_cs.as_ptr() as *const c_void
)
} != 0 {
Err(SystemError { message: format!("Failed to mount: {}", target) })
} else {
Ok(())
}
}
// libc::freopen casting/error wrapper
pub fn freopen(
filename: &str,
mode: &str,
file: c_int,
) -> Result<(), SystemError> {
use libc::{freopen, fdopen};
let filename_cs = CString::new(filename).unwrap();
let mode_cs = CString::new(mode).unwrap();
if unsafe {
freopen(
filename_cs.as_ptr(),
mode_cs.as_ptr(),
fdopen(file, mode_cs.as_ptr() as *const i8)
)
}.is_null() {
Err(SystemError { message: format!("Failed to freopen: {}", filename) })
} else {
Ok(())
}
}
// Insert kernel module into memory
pub fn insmod(path: &str) -> Result<(), SystemError> {
use libc::{syscall, SYS_finit_module};
let file = File::open(path).unwrap();
let fd = file.as_raw_fd();
if unsafe { syscall(SYS_finit_module, fd, &[0u8; 1], 0) } < 0 {
Err(SystemError {
message: format!("Failed to insert kernel module: {}", path)
})
} else {
Ok(())
}
}
// Instantiate a socket
pub fn socket_connect(
family: c_int,
port: u32,
cid: u32,
) -> Result<c_int, SystemError> {
use libc::{connect, socket, sockaddr, sockaddr_vm, SOCK_STREAM};
let fd = unsafe { socket(family, SOCK_STREAM, 0) };
if unsafe {
let mut sa: sockaddr_vm = zeroed();
sa.svm_family = family as _;
sa.svm_port = port;
sa.svm_cid = cid;
connect(
fd,
&sa as *const _ as *mut sockaddr,
size_of::<sockaddr_vm>() as _,
)
} < 0 {
Err(SystemError {
message: format!("Failed to connect to socket: {}", family)
})
} else {
Ok(fd)
}
}
// Seed an entropy sample into the kernel randomness pool.
pub fn seed_entropy(
size: usize,
source: fn(usize) -> Result<Vec<u8>, SystemError>,
) -> Result<usize, SystemError> {
use std::io::Write;
let entropy_sample = match source(size) {
Ok(sample)=> sample,
Err(e)=> { return Err(e) },
};
use std::fs::OpenOptions;
let mut random_fd = match OpenOptions::new()
.read(true)
.write(true)
.open("/dev/urandom")
{
Ok(file) => file,
Err(_) => {
return Err(SystemError {
message: String::from("Failed to open /dev/urandom"),
});
},
};
// 5.10+ kernel entropy pools are made of BLAKE2 hashes fixed at 256 bit
// The RNDADDENTROPY crediting system is now complexity with no gain.
// We just simply write samples to /dev/urandom now.
// See: https://cdn.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.10.119
match random_fd.write_all(&entropy_sample) {
Ok(()) => Ok(entropy_sample.len()),
Err(_) => {
return Err(SystemError {
message: String::from("Failed to write to /dev/urandom"),
});
}
}
}

View File

@ -1,22 +0,0 @@
ARG DEBIAN_HASH
FROM debian@sha256:${DEBIAN_HASH} as build
ENV DEBIAN_FRONTEND=noninteractive \
LANG=C.UTF-8 \
TZ=UTC \
HOME=/home/build \
PATH=/scripts:/usr/sbin:/usr/bin:/sbin:/bin
ARG CONFIG_DIR
ADD ${CONFIG_DIR} /config
ARG SCRIPTS_DIR
ADD ${SCRIPTS_DIR} /scripts
RUN packages-install
#ARG RUST_REF
#RUN build-rust
#ARG CARGO_REF
#RUN build-cargo

View File

@ -1,24 +0,0 @@
#!/usr/bin/env bash
set -e;
ARCH=$(uname -m)
cp /config/toolchain/* /etc/apt/
apt-get update
until apt-get install --download-only --reinstall --allow-downgrades -y $(cat /etc/apt/packages-${ARCH}.list); do
echo "apt install failed. Likely throttled. Retrying in 10 mins...";
sleep 600;
done;
(
cd /var/cache/apt/archives \
&& find . -type f \( -iname \*.deb \) -exec sha256sum {} \; \
| sed 's/.\///g' \
| LC_ALL=C sort
) > /etc/apt/package-hashes-${ARCH}-compare.txt
diff /etc/apt/package-hashes-${ARCH}{,-compare}.txt
apt-get install --allow-downgrades -y $(cat /etc/apt/packages-${ARCH}.list)
rm -rf /var/cache/apt/archives/* /var/lib/apt/lists/* /tmp/* /var/tmp/*;

View File

@ -1,42 +0,0 @@
#!/bin/bash
[ -f /.dockerenv ] || { echo "please run in supplied container"; exit 1; }
set -e
cat /config/toolchain/packages-base.list | sed 's/=.*//g' > /etc/apt/packages.list
snapshot_url="http://snapshot.debian.org/archive/debian"
snapshot_date=$(date +"%Y%m%dT000000Z")
cat <<-EOF > /etc/apt/sources.list
deb http://deb.debian.org/debian bookworm main
deb http://security.debian.org/debian-security bookworm-security main
deb http://deb.debian.org/debian bookworm-updates main
deb [check-valid-until=no] ${snapshot_url}/${snapshot_date} bookworm main
deb [check-valid-until=no] ${snapshot_url}-security/${snapshot_date} bookworm-security main
deb [check-valid-until=no] ${snapshot_url}/${snapshot_date} bookworm-updates main
EOF
ARCH=$(uname -m)
apt-get update
apt-get install -y --download-only --reinstall $( \
dpkg-query \
-W \
-f='${db:Status-Abbrev}\t${binary:Package} - ${binary:Summary}\n' \
| awk -F'\t' '/^ii/ {print $2}' \
| awk '{print $1}' \
)
apt-get install -y --download-only $(cat /config/toolchain/packages-base.list)
( cd /var/cache/apt/archives \
&& find . -type f \( -iname \*.deb \) -exec sha256sum {} \; \
| sed 's/.\///g' \
| LC_ALL=C sort
) > /config/toolchain/package-hashes-${ARCH}.txt
cp /dev/null /etc/apt/packages.list
for deb in /var/cache/apt/archives/*.deb; do
package=$(dpkg-deb -f $deb Package);
version=$(dpkg --info ${deb} | grep "^ Version: " | sed 's/^ Version: //g');
echo "${package}=${version}" >> /config/toolchain/packages-${ARCH}.list;
done