[package] name = "cableguard" description = "an implementation of the WireGuard® protocol that uses rich online digital tokens for configuration and mutual authentication" version = "0.90.15" authors = [ "Vicente Aceituno Canal ", "Noah Kennedy ", "Andy Grover ", "Jeff Hiner ", ] license = "BSD-3-Clause" repository = "https://github.com/alanesmizi/cgtun" documentation = "https://docs.rs/cgtun/0.90.15/cgtun/" edition = "2018" [features] default = [] device = ["socket2", "thiserror"] jni-bindings = ["ffi-bindings", "jni"] ffi-bindings = ["tracing-subscriber"] # mocks std::time::Instant with mock_instant mock-instant = ["mock_instant"] [dependencies] serde_json = "1.0" serde = "1.0.163" base64 = "0.13.1" hex = "0.4" untrusted = "0.9.0" libc = "0.2" parking_lot = "0.12" tracing = "0.1.29" tracing-subscriber = { version = "0.3", features = ["fmt"], optional = true } ip_network = "0.4.1" ip_network_table = "0.2.0" ring = "0.17.4" bs58 = "0.5.0" ed25519-dalek = "1.0.1" x25519-dalek = { version = "2.0.0", features = [ "reusable_secrets", "static_secrets", ] } curve25519-dalek = "4.1.1" rand_core = { version = "0.6.3", features = ["getrandom"] } chacha20poly1305 = "^0.10.1" aead = "0.5.0-pre.2" blake2 = "0.10" hmac = "0.12" jni = { version = "0.21.1", optional = true } mock_instant = { version = "0.3.1", optional = true } socket2 = { version = "0.5.4", features = ["all"], optional = true } thiserror = { version = "1", optional = true } reqwest = { version = "0.11.20", features = ["blocking"] } zeroize= "1.5.0" sha2 = "0.10.7" trust-dns-resolver = "0.23.0" chrono = "0.4" regex = "1.9.5" [target.'cfg(unix)'.dependencies] nix = { version = "0.27.1", default-features = false, features = [ "time", "user", ] } [dev-dependencies] etherparse = "0.13.0" tracing-subscriber = "0.3" criterion = { version = "0.5.1", features = ["html_reports"] } [lib] crate-type = ["staticlib", "cdylib", "rlib"]