-
Notifications
You must be signed in to change notification settings - Fork 35
/
Cargo.toml
94 lines (86 loc) · 3.25 KB
/
Cargo.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
[package]
name = "bitwarden"
description = """
Bitwarden Secrets Manager SDK
"""
keywords = ["bitwarden", "secrets-manager"]
version.workspace = true
authors.workspace = true
edition.workspace = true
rust-version.workspace = true
homepage.workspace = true
repository.workspace = true
license-file.workspace = true
[features]
default = ["secrets"]
internal = [
"dep:bitwarden-exporters",
"dep:bitwarden-generators",
] # Internal testing methods
no-memory-hardening = [
"bitwarden-crypto/no-memory-hardening",
] # Disable memory hardening features
uniffi = [
"bitwarden-crypto/uniffi",
"bitwarden-generators/uniffi",
"dep:uniffi",
] # Uniffi bindings
secrets = [] # Secrets manager API
wasm-bindgen = ["chrono/wasmbind"]
[dependencies]
async-trait = ">=0.1.80, <0.2"
base64 = ">=0.21.2, <0.23"
bitwarden-api-api = { workspace = true }
bitwarden-api-identity = { workspace = true }
bitwarden-crypto = { workspace = true }
bitwarden-exporters = { workspace = true, optional = true }
bitwarden-generators = { workspace = true, optional = true }
chrono = { version = ">=0.4.26, <0.5", features = [
"clock",
"serde",
"std",
], default-features = false }
# We don't use this directly (it's used by rand), but we need it here to enable WASM support
getrandom = { version = ">=0.2.9, <0.3", features = ["js"] }
hmac = ">=0.12.1, <0.13"
log = ">=0.4.18, <0.5"
passkey = { git = "https://github.com/bitwarden/passkey-rs", rev = "12da886102707f87ad97e499c857c0857ece0b85" }
rand = ">=0.8.5, <0.9"
reqwest = { version = ">=0.12, <0.13", features = [
"http2",
"json",
], default-features = false }
schemars = { version = ">=0.8.9, <0.9", features = ["uuid1", "chrono"] }
serde = { version = ">=1.0, <2.0", features = ["derive"] }
serde_json = ">=1.0.96, <2.0"
serde_qs = ">=0.12.0, <0.14"
serde_repr = ">=0.1.12, <0.2"
sha1 = ">=0.10.5, <0.11"
sha2 = ">=0.10.6, <0.11"
thiserror = ">=1.0.40, <2.0"
uniffi = { version = "=0.27.2", optional = true, features = ["tokio"] }
uuid = { version = ">=1.3.3, <2.0", features = ["serde"] }
zxcvbn = ">= 2.2.2, <3.0"
[target.'cfg(all(not(target_os = "android"), not(target_arch="wasm32")))'.dependencies]
# By default, we use rustls as the TLS stack and rust-platform-verifier to support user-installed root certificates
# There are a few exceptions to this:
# - WASM doesn't require a TLS stack, as it just uses the browsers/node fetch
# - Android uses webpki-roots for the moment
reqwest = { version = ">=0.12, <0.13", features = [
"rustls-tls-manual-roots",
], default-features = false }
rustls-platform-verifier = "0.2.0"
[target.'cfg(target_os = "android")'.dependencies]
# On android, the use of rustls-platform-verifier is more complicated and going through some changes at the moment, so we fall back to using webpki-roots
# This means that for the moment android won't support self-signed certificates, even if they are included in the OS trust store
reqwest = { version = ">=0.12, <0.13", features = [
"rustls-tls-webpki-roots",
], default-features = false }
[dev-dependencies]
bitwarden-crypto = { workspace = true, features = ["test"] }
rand_chacha = "0.3.1"
tokio = { version = "1.36.0", features = ["rt", "macros"] }
wiremock = "0.6.0"
zeroize = { version = ">=1.7.0, <2.0", features = ["derive", "aarch64"] }
[lints]
workspace = true