44 lines
1.4 KiB
Makefile
44 lines
1.4 KiB
Makefile
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
|