| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- [package]
- name = "libthreema"
- version = "0.1.0"
- description = "A suite of protocol implementations, utilities and FFI bindings tailored for Threema clients"
- authors = ["Threema GmbH"]
- license = "AGPL-3.0-only"
- readme = "../README.md"
- edition = "2024"
- repository = "<Insert URL when publishing>"
- keywords = ["threema", "protocol", "messenger", "communication"]
- categories = ["api-bindings", "cryptography"]
- [lib]
- name = "libthreema"
- crate-type = ["lib", "staticlib", "cdylib"]
- [lints]
- workspace = true
- [dependencies]
- aead = { version = "0.5", default-features = false, features = [
- "alloc",
- "rand_core",
- "std",
- ] }
- argon2 = { version = "0.5", default-features = false, features = ["alloc"] }
- blake2 = { version = "0.10", default-features = false, features = [
- "std",
- # "zeroize",
- ] }
- chacha20 = { version = "0.9", features = ["zeroize"] }
- chacha20poly1305 = { version = "0.10", default-features = false, features = [
- "alloc",
- ] }
- cipher = "0.4"
- const_format = { version = "0.2", features = ["rust_1_64"] }
- crypto_secretbox = { version = "0.1", default-features = false, features = [
- "alloc",
- "salsa20",
- ] }
- data-encoding = "2"
- digest = "0.10"
- duplicate = "2"
- ed25519-dalek = "2"
- educe = { version = "0.6", default-features = false, features = ["Debug"] }
- form_urlencoded = "1"
- hmac = { version = "0.12", default-features = false }
- itertools = "0.14"
- libthreema-macros = { path = "../macros" }
- pbkdf2 = "0.12"
- poly1305 = { version = "0.8", default-features = false, features = ["zeroize"] }
- prost = "0.14"
- rand = "0.8"
- regex = "1"
- salsa20 = { version = "0.10", default-features = false, features = [
- "std",
- "zeroize",
- ] }
- scrypt = { version = "0.11", default-features = false }
- serde = { version = "1", features = ["alloc", "derive"] }
- serde_json = "1"
- serde_repr = "0.1"
- sha2 = { version = "0.10", default-features = false, features = [
- "std",
- # "zeroize",
- ] }
- strum = { version = "0.27", features = ["derive"] }
- subtle = { version = "2", features = ["const-generics"] }
- thiserror = "2"
- tracing = "0.1"
- x25519-dalek = { version = "2", features = [
- "reusable_secrets",
- "static_secrets",
- "zeroize",
- ] }
- zeroize = "1"
- # Bindings and CLI
- tracing-subscriber = { version = "0.3", optional = true }
- # Bindings: UniFFI
- uniffi = { version = "0.29", optional = true }
- # Bindings: WASM
- getrandom = { version = "0.2", features = ["js"], optional = true }
- js-sys = { version = "0.3", optional = true }
- serde_bytes = { version = "0.11", optional = true }
- tsify = { version = "0.5", features = ["js"], optional = true }
- wasm-bindgen = { version = "0.2", optional = true }
- web-time = { version = "1", optional = true }
- # CLI
- anyhow = { version = "1", optional = true }
- clap = { version = "4", features = ["cargo", "derive"], optional = true }
- reqwest = { version = "0.12", optional = true }
- [dev-dependencies]
- anyhow = "1"
- assert_matches = "1.5"
- derive_builder = "0.20"
- rstest = "0.26"
- rstest_reuse = "0.7"
- tokio = { version = "1", default-features = false, features = [
- "io-util",
- "macros",
- "net",
- "rt",
- "rt-multi-thread",
- "signal",
- "sync",
- "time",
- ] }
- tracing-subscriber = "0.3"
- [build-dependencies]
- prost-build = "0.14"
- # Bindings: UniFFI
- uniffi = { version = "0.29", features = ["build"], optional = true }
- [features]
- slow_tests = []
- uniffi = ["dep:tracing-subscriber", "dep:uniffi"]
- wasm = [
- "dep:getrandom",
- "dep:js-sys",
- "dep:serde_bytes",
- "dep:tracing-subscriber",
- "dep:tsify",
- "dep:wasm-bindgen",
- "dep:web-time",
- ]
- cli = ["dep:tracing-subscriber", "dep:anyhow", "dep:clap", "dep:reqwest"]
- [[example]]
- name = "csp-e2e-receive"
- path = "examples/bin/csp_e2e_receive.rs"
- required-features = ["cli"]
- [[example]]
- name = "csp-login"
- path = "examples/bin/csp_login.rs"
- required-features = ["cli"]
- [[example]]
- name = "csp-ping-pong"
- path = "examples/bin/csp_ping_pong.rs"
- required-features = ["cli"]
- [[example]]
- name = "d2d-rendezvous"
- path = "examples/bin/d2d_rendezvous.rs"
- required-features = ["cli"]
- [[example]]
- name = "identity-create"
- path = "examples/bin/identity_create.rs"
- required-features = ["cli"]
- [[example]]
- name = "remote-secret"
- path = "examples/bin/remote_secret.rs"
- required-features = ["cli"]
|