Compare commits
10 Commits
f609165278
...
c7edfedf94
Author | SHA1 | Date |
---|---|---|
Lance Vick | c7edfedf94 | |
Lance Vick | 7e8eda88f7 | |
Lance Vick | 70161ec6fe | |
Lance Vick | 5736d3001d | |
Lance Vick | 52d13ef407 | |
Lance Vick | fc4d8a3515 | |
Lance Vick | 562f549935 | |
Lance Vick | 1b618c7caf | |
Lance Vick | 200f4d94f6 | |
Lance Vick | db8f90ad47 |
|
@ -1,3 +1,4 @@
|
|||
out/*
|
||||
cache/*
|
||||
.*
|
||||
src/init/target
|
||||
|
|
|
@ -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
311
Makefile
|
@ -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/
|
||||
|
|
28
README.md
28
README.md
|
@ -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
7
TODO
|
@ -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
|
@ -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
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -1,78 +0,0 @@
|
|||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
RqWOFquQERMs0oXdHKc5w55soziCllQ=
|
||||
=GtNR
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
|
@ -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-----
|
|
@ -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"}
|
|
@ -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)
|
||||
};
|
||||
}
|
|
@ -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"
|
|
@ -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"
|
|
@ -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);
|
||||
}
|
|
@ -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();
|
||||
}
|
|
@ -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
|
|
@ -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"
|
|
@ -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"),
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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
|
|
@ -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/*;
|
|
@ -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
|
Loading…
Reference in New Issue