/ Cargo.toml
Cargo.toml
 1  [package]
 2  name = "kabashira-efi"
 3  version = "0.1.0"
 4  edition = "2021"
 5  description = "UEFI Swarm client using native EFI_TCP4_PROTOCOL"
 6  license = "MIT OR Apache-2.0"
 7  
 8  [lib]
 9  # Use rlib for binary builds; staticlib is for linking with C code
10  crate-type = ["rlib"]
11  
12  [[bin]]
13  name = "kabashira"
14  path = "src/main.rs"
15  
16  [dependencies]
17  # UEFI bindings
18  r-efi = "5.2"
19  
20  # Crypto - using alloy-primitives for keccak256
21  alloy-primitives = { version = "1.0", default-features = false }
22  
23  # Force generic implementation for const-hex to avoid LLVM UEFI bug
24  const-hex = { version = "1.17", default-features = false, features = ["force-generic"] }
25  
26  # secp256k1 for Ethereum signatures
27  k256 = { version = "0.13", default-features = false, features = ["ecdsa", "arithmetic"] }
28  
29  # Protobuf for Swarm protocol messages
30  prost = { version = "0.13", default-features = false, features = ["prost-derive"] }
31  
32  # Noise protocol (we'll implement XX pattern)
33  # Using x25519-dalek for DH, chacha20poly1305 for AEAD
34  # Note: curve25519-dalek backend is forced via .cargo/config.toml for UEFI
35  x25519-dalek = { version = "2.0", default-features = false, features = ["static_secrets"] }
36  chacha20poly1305 = { version = "0.10", default-features = false, features = ["alloc"] }
37  
38  # SHA256 for Noise (force-soft avoids LLVM UEFI bug)
39  sha2 = { version = "0.10", default-features = false, features = ["force-soft"] }
40  
41  # HKDF for Noise key derivation
42  hkdf = { version = "0.12", default-features = false }
43  
44  # Force soft implementations to avoid LLVM UEFI bugs with SIMD
45  poly1305 = { version = "0.8", default-features = false }
46  
47  # Random number generation (for std tests)
48  rand_core = { version = "0.6", default-features = false }
49  
50  # Heap allocator for UEFI
51  linked_list_allocator = { version = "0.10", default-features = false }
52  
53  [dev-dependencies]
54  rand = "0.8"
55  
56  [features]
57  default = []
58  # Enable std for testing on host
59  std = ["alloy-primitives/std", "k256/std", "prost/std"]
60  
61  [profile.release]
62  opt-level = "z"
63  lto = true
64  codegen-units = 1
65  panic = "abort"
66  
67  [profile.dev]
68  panic = "abort"