[package]
name = "rtc-dtls"
version.workspace = true
authors.workspace = true
edition.workspace = true
description = "RTC DTLS in Rust"
license.workspace = true
documentation = "https://docs.rs/rtc-dtls"
homepage.workspace = true
repository.workspace = true
keywords.workspace = true
categories.workspace = true

[dependencies]
shared = { workspace = true, default-features = false, features = ["crypto", "replay"] }

bytes = "1.5.0"
byteorder = "1.5.0"
rand_core = "0.6.4"
p256 = { version = "0.13.2", features = ["default", "ecdh", "ecdsa"] }
p384 = "0.13.0"
rand = "0.9"
hmac = "0.12.1"
sec1 = { version = "0.7", features = ["std"] }
sha1 = "0.10.6"
sha2 = "0.10.8"
aes = "0.8.4"
cbc = { version = "0.1.2", features = ["block-padding", "alloc"] }
aes-gcm = "0.10.3"
ccm = "0.5.0"
x25519-dalek = { version = "2.0.1", features = ["static_secrets"] }
x509-parser = "0.16.0"
der-parser = "9.0.0"
rcgen = { version = "0.13.2", features = ["pem", "x509-parser"] }
ring = "0.17.14"
rustls = { version = "0.23.27", default-features = false, features = ["std", "ring"] }
bincode = "1.3.3"
serde = { version = "1.0.197", features = ["derive"] }
subtle = "2.5.0"
log = "0.4.21"
pem = { version = "3.0.3", optional = true }
chacha20poly1305 = "0.10.1"

[dev-dependencies]
local-sync = "0.1.1"
core_affinity = "0.8.1"
chrono = "0.4.35"
env_logger = "0.11.3"
clap = { version = "4.5.2", features = ["derive"] }
anyhow = "1.0.80"
ctrlc = "3.4.4"
futures = "0.3.30"

[features]
pem = ["dep:pem"]

#[[example]]
#name = "dtls_chat_server"
#path = "examples/dtls_chat_server.rs"

#[[example]]
#name = "dtls_echo_server"
#path = "examples/dtls_echo_server.rs"

#[[example]]
#name = "dtls_client"
#path = "examples/dtls_client.rs"

#[[example]]
#name = "dtls_client_selfsign"
#path = "examples/dtls_client_selfsign.rs"

#[[example]]
#name = "dial_psk"
#path = "examples/dial/psk/dial_psk.rs"
#bench = false
#
#[[example]]
#name = "dial_selfsign"
#path = "examples/dial/selfsign/dial_selfsign.rs"
#bench = false
#
#[[example]]
#name = "dial_verify"
#path = "examples/dial/verify/dial_verify.rs"
#bench = false
#
#[[example]]
#name = "listen_psk"
#path = "examples/listen/psk/listen_psk.rs"
#bench = false
#
#[[example]]
#name = "listen_selfsign"
#path = "examples/listen/selfsign/listen_selfsign.rs"
#bench = false
#
#[[example]]
#name = "listen_verify"
#path = "examples/listen/verify/listen_verify.rs"
#bench = false
