initial commit
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
CC = clang
|
||||
CFLAGS = -O2 -Wall -Wextra
|
||||
|
||||
BPF_SRC = piggyback.bpf.c
|
||||
BPF_OBJ = piggyback.bpf.o
|
||||
SRV_SRC = piggyback.c
|
||||
SRV_BIN = piggyback
|
||||
CLI_SRC = pb-client.c
|
||||
CLI_BIN = pb-client
|
||||
|
||||
# BPF include paths — adjust if headers are elsewhere
|
||||
BPF_INCLUDES = -I/usr/include/bpf -I/usr/include -I/usr/include/x86_64-linux-gnu
|
||||
|
||||
.PHONY: all clean keygen
|
||||
|
||||
all: $(BPF_OBJ) $(SRV_BIN) $(CLI_BIN)
|
||||
|
||||
# eBPF kernel program — compiled to BPF bytecode
|
||||
$(BPF_OBJ): $(BPF_SRC)
|
||||
$(CC) -O2 -target bpf $(BPF_INCLUDES) -c $< -o $@
|
||||
|
||||
# Server daemon — requires libbpf + libsodium
|
||||
$(SRV_BIN): $(SRV_SRC)
|
||||
$(CC) $(CFLAGS) $< -o $@ -lbpf -lsodium -lpthread
|
||||
|
||||
# Client — requires libssl (OpenSSL) for Mode 2 TLS
|
||||
$(CLI_BIN): $(CLI_SRC)
|
||||
$(CC) $(CFLAGS) $< -o $@ -lssl -lcrypto -lpthread
|
||||
|
||||
# Generate Ed25519 keypair for use with -k flag
|
||||
# Private key: engagement.key (keep offline, never on target)
|
||||
# Public key: engagement.pub.hex (pass to daemon via -k)
|
||||
keygen:
|
||||
@openssl genpkey -algorithm ed25519 -out engagement.key
|
||||
@openssl pkey -in engagement.key -pubout -out engagement.pub
|
||||
@echo ""
|
||||
@echo "Public key hex (pass to daemon with -k):"
|
||||
@openssl pkey -in engagement.key -pubout -outform DER | tail -c 32 | xxd -p | tr -d '\n' | tr 'a-f' 'A-F'
|
||||
@echo ""
|
||||
@echo "Private key: engagement.key — keep offline, never copy to target"
|
||||
|
||||
clean:
|
||||
rm -f $(BPF_OBJ) $(SRV_BIN) $(CLI_BIN) engagement.key engagement.pub
|
||||
Reference in New Issue
Block a user