mirror of
https://github.com/chatmail/core.git
synced 2026-04-05 23:22:11 +03:00
Allow Delta Chat core to work with chatmail servers running on underscore-prefixed domains (e.g. _alice.localchat) which use self-signed TLS certificates. This is mirroring related work on chatmail relays: https://github.com/chatmail/relay/pull/855 Underscore domains with self-signed TLS certs can be used by LXC test containers where obtaining real certificates is not practical. When the domain starts with '_', certificate verification is automatically relaxed for IMAP/SMTP connections, dcaccount QR code handling, and iroh relay endpoints. The Python test suite is adapted to also work against such underscore-domain servers, including cross-core tests with older Delta Chat versions. Note: this PR does not support HTTPS requests with underscore domains. They are not currently needed for working with LXC test containers. 14 files changed, +102/-31 lines (excluding Cargo.lock). Cargo.lock: +606/-11 lines from enabling iroh features needed for connecting to iroh relay endpoint on underscore domains. The added dependencies are unfortunate but best considered when finally upgrading to iroh 1.0 (tm).
218 lines
5.7 KiB
TOML
218 lines
5.7 KiB
TOML
[package]
|
|
name = "deltachat"
|
|
version = "2.46.0-dev"
|
|
edition = "2024"
|
|
license = "MPL-2.0"
|
|
rust-version = "1.88"
|
|
repository = "https://github.com/chatmail/core"
|
|
|
|
[profile.dev]
|
|
debug = 0
|
|
panic = 'abort'
|
|
opt-level = 1
|
|
|
|
[profile.test]
|
|
# Make anyhow `backtrace` feature useful.
|
|
# With `debug = 0` there are no line numbers in the backtrace
|
|
# produced with RUST_BACKTRACE=1.
|
|
debug = 1
|
|
opt-level = 0
|
|
|
|
[profile.fuzz]
|
|
inherits = "test"
|
|
|
|
# Always optimize dependencies.
|
|
# This does not apply to crates in the workspace.
|
|
# <https://doc.rust-lang.org/cargo/reference/profiles.html#overrides>
|
|
[profile.dev.package."*"]
|
|
opt-level = "z"
|
|
|
|
[profile.release]
|
|
lto = true
|
|
panic = 'abort'
|
|
opt-level = "z"
|
|
codegen-units = 1
|
|
strip = true
|
|
|
|
[dependencies]
|
|
deltachat_derive = { path = "./deltachat_derive" }
|
|
deltachat-time = { path = "./deltachat-time" }
|
|
deltachat-contact-tools = { workspace = true }
|
|
format-flowed = { path = "./format-flowed" }
|
|
ratelimit = { path = "./deltachat-ratelimit" }
|
|
|
|
anyhow = { workspace = true }
|
|
async-broadcast = "0.7.2"
|
|
async-channel = { workspace = true }
|
|
async-imap = { version = "0.11.1", default-features = false, features = ["runtime-tokio", "compress"] }
|
|
async-native-tls = { version = "0.6", default-features = false, features = ["runtime-tokio"] }
|
|
async-smtp = { version = "0.10.2", default-features = false, features = ["runtime-tokio"] }
|
|
async_zip = { version = "0.0.18", default-features = false, features = ["deflate", "tokio-fs"] }
|
|
base64 = { workspace = true }
|
|
blake3 = "1.8.2"
|
|
brotli = { version = "8", default-features=false, features = ["std"] }
|
|
bytes = "1"
|
|
chrono = { workspace = true, features = ["alloc", "clock", "std"] }
|
|
colorutils-rs = { version = "0.7.5", default-features = false }
|
|
data-encoding = "2.9.0"
|
|
escaper = "0.1"
|
|
fast-socks5 = "1"
|
|
fd-lock = "4"
|
|
futures-lite = { workspace = true }
|
|
futures = { workspace = true }
|
|
hex = "0.4.0"
|
|
http-body-util = "0.1.3"
|
|
humansize = "2"
|
|
hyper = "1"
|
|
hyper-util = "0.1.16"
|
|
image = { version = "0.25.6", default-features=false, features = ["gif", "jpeg", "ico", "png", "pnm", "webp", "bmp"] }
|
|
iroh-gossip = { version = "0.35", default-features = false, features = ["net"] }
|
|
iroh = { version = "0.35", default-features = false, features = ["test-utils", "metrics"] }
|
|
kamadak-exif = "0.6.1"
|
|
libc = { workspace = true }
|
|
mail-builder = { version = "0.4.4", default-features = false }
|
|
mailparse = { workspace = true }
|
|
mime = "0.3.17"
|
|
num_cpus = "1.17"
|
|
num-derive = "0.4"
|
|
num-traits = { workspace = true }
|
|
parking_lot = "0.12.4"
|
|
percent-encoding = "2.3"
|
|
pgp = { version = "0.19.0", default-features = false }
|
|
pin-project = "1"
|
|
qrcodegen = "1.7.0"
|
|
quick-xml = { version = "0.39", features = ["escape-html"] }
|
|
rand-old = { package = "rand", version = "0.8" }
|
|
rand = { workspace = true }
|
|
regex = { workspace = true }
|
|
rusqlite = { workspace = true, features = ["sqlcipher"] }
|
|
sanitize-filename = { workspace = true }
|
|
sdp = "0.10.0"
|
|
serde_json = { workspace = true }
|
|
serde_urlencoded = "0.7.1"
|
|
serde = { workspace = true, features = ["derive"] }
|
|
sha-1 = "0.10"
|
|
sha2 = "0.10"
|
|
shadowsocks = { version = "1.23.1", default-features = false, features = ["aead-cipher", "aead-cipher-2022"] }
|
|
smallvec = "1.15.1"
|
|
strum = "0.28"
|
|
strum_macros = "0.28"
|
|
tagger = "4.3.4"
|
|
textwrap = "0.16.2"
|
|
thiserror = { workspace = true }
|
|
tokio-io-timeout = "1.2.1"
|
|
tokio-rustls = { version = "0.26.2", default-features = false }
|
|
tokio-stream = { version = "0.1.17", features = ["fs"] }
|
|
astral-tokio-tar = { version = "0.6", default-features = false }
|
|
tokio-util = { workspace = true }
|
|
tokio = { workspace = true, features = ["fs", "rt-multi-thread", "macros"] }
|
|
toml = "0.9"
|
|
tracing = "0.1.41"
|
|
url = "2"
|
|
uuid = { version = "1", features = ["serde", "v4"] }
|
|
walkdir = "2.5.0"
|
|
webpki-roots = "0.26.8"
|
|
|
|
[dev-dependencies]
|
|
anyhow = { workspace = true, features = ["backtrace"] } # Enable `backtrace` feature in tests.
|
|
criterion = { version = "0.8.1", features = ["async_tokio"] }
|
|
futures-lite = { workspace = true }
|
|
log = { workspace = true }
|
|
nu-ansi-term = { workspace = true }
|
|
pretty_assertions = "1.4.1"
|
|
proptest = { version = "1", default-features = false, features = ["std"] }
|
|
tempfile = { workspace = true }
|
|
testdir = "0.9.3"
|
|
tokio = { workspace = true, features = ["rt-multi-thread", "macros"] }
|
|
|
|
[workspace]
|
|
members = [
|
|
"deltachat-ffi",
|
|
"deltachat_derive",
|
|
"deltachat-jsonrpc",
|
|
"deltachat-rpc-server",
|
|
"deltachat-ratelimit",
|
|
"deltachat-repl",
|
|
"deltachat-time",
|
|
"format-flowed",
|
|
"deltachat-contact-tools",
|
|
"fuzz",
|
|
]
|
|
|
|
[[bench]]
|
|
name = "create_account"
|
|
harness = false
|
|
|
|
[[bench]]
|
|
name = "contacts"
|
|
harness = false
|
|
|
|
[[bench]]
|
|
name = "search_msgs"
|
|
harness = false
|
|
|
|
[[bench]]
|
|
name = "receive_emails"
|
|
required-features = ["internals"]
|
|
harness = false
|
|
|
|
[[bench]]
|
|
name = "decrypting"
|
|
required-features = ["internals"]
|
|
harness = false
|
|
|
|
[[bench]]
|
|
name = "get_chat_msgs"
|
|
harness = false
|
|
|
|
[[bench]]
|
|
name = "marknoticed_chat"
|
|
harness = false
|
|
|
|
[[bench]]
|
|
name = "get_chatlist"
|
|
harness = false
|
|
|
|
[[bench]]
|
|
name = "send_events"
|
|
harness = false
|
|
|
|
[workspace.dependencies]
|
|
anyhow = "1"
|
|
async-channel = "2.5.0"
|
|
base64 = "0.22"
|
|
chrono = { version = "0.4.43", default-features = false }
|
|
deltachat-contact-tools = { path = "deltachat-contact-tools" }
|
|
deltachat-jsonrpc = { path = "deltachat-jsonrpc", default-features = false }
|
|
deltachat = { path = ".", default-features = false }
|
|
futures = "0.3.32"
|
|
futures-lite = "2.6.1"
|
|
libc = "0.2"
|
|
log = "0.4"
|
|
mailparse = "0.16.1"
|
|
nu-ansi-term = "0.50"
|
|
num-traits = "0.2"
|
|
rand = "0.9"
|
|
regex = "1.12"
|
|
rusqlite = "0.37"
|
|
sanitize-filename = "0.6"
|
|
serde = "1.0"
|
|
serde_json = "1"
|
|
tempfile = "3.25.0"
|
|
thiserror = "2"
|
|
tokio = "1"
|
|
tokio-util = "0.7.18"
|
|
tracing-subscriber = "0.3"
|
|
yerpc = "0.6.4"
|
|
|
|
[features]
|
|
default = ["vendored"]
|
|
internals = []
|
|
vendored = [
|
|
"rusqlite/bundled-sqlcipher-vendored-openssl",
|
|
"async-native-tls/vendored"
|
|
]
|
|
|
|
[lints.rust]
|
|
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(fuzzing)'] }
|