-
Notifications
You must be signed in to change notification settings - Fork 19
/
Copy pathCargo.toml
136 lines (121 loc) · 4.5 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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
[package]
name = "sspi"
version = "0.15.1"
edition = "2021"
readme = "README.md"
license = "MIT OR Apache-2.0"
homepage = "https://github.com/devolutions/sspi-rs"
repository = "https://github.com/devolutions/sspi-rs"
authors = ["Devolutions Inc. <[email protected]>"]
description = "A Rust implementation of the Security Support Provider Interface (SSPI) API"
keywords = ["ntlm", "auth", "sspi", "windows", "kerberos"]
[workspace]
resolver = "2"
members = [
"ffi",
"ffi/symbol-rename-macro",
"crates/winscard",
"crates/ffi-types",
]
exclude = [
"tools/wasm-testcompile",
]
[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(fuzzing)'] }
[workspace.dependencies]
uuid = { version = "1.12", default-features = false }
tracing = { version = "0.1", default-features = false }
bitflags = "2.8"
rand = "0.8"
cfg-if = "1"
time = { version = "0.3", default-features = false }
sha1 = { version = "0.10", default-features = false }
num-derive = "0.4"
num-traits = { version = "0.2", default-features = false }
picky = { version = "7.0.0-rc.12", default-features = false }
picky-asn1-der = "0.5"
picky-asn1-x509 = "0.14"
tokio = "1.43"
ffi-types = { path = "crates/ffi-types" }
winscard = { version = "0.2", path = "crates/winscard" }
rsa = { version = "0.9.7", default-features = false }
windows-sys = "0.59"
base64 = "0.22"
whoami = "1.5"
tracing-subscriber = "0.3"
proptest = "1.6"
[features]
default = ["aws-lc-rs"]
# Enable reqwest for HTTP requests.
network_client = ["dep:reqwest", "dep:portpicker", "dep:rustls-native-certs", "__rustls-used"]
# KDC discovery by querying DNS records.
dns_resolver = ["dep:hickory-resolver", "dep:tokio"]
# TSSSP should be used only on Windows as a native CredSSP replacement.
tsssp = ["dep:rustls", "__rustls-used"]
# Turns on Kerberos smart card login (available only on Windows and users WinSCard API).
scard = ["dep:winscard"]
# Use AWS LC as TLS cryptography provider.
aws-lc-rs = ["rustls?/aws-lc-rs", "__install-crypto-provider"]
# Use ring as TLS cryptography provider.
ring = ["rustls?/ring", "reqwest?/rustls-tls-native-roots", "__install-crypto-provider"]
# Internal (PRIVATE!) features. Do not rely on these whatsoever. They may disappear at anytime.
__test-data = []
__rustls-used = ["dep:rustls"]
__install-crypto-provider = []
[dependencies]
bitflags.workspace = true
rand.workspace = true
cfg-if.workspace = true
time = { workspace = true, features = ["std"] }
picky.workspace = true
sha1.workspace = true
num-derive.workspace = true
num-traits = { workspace = true, default-features = true }
picky-asn1-der.workspace = true
picky-asn1-x509 = { workspace = true, features = ["pkcs7"] }
uuid = { workspace = true, features = ["v4"], default-features = true }
# `rt-multi-thread` feature is required for `tokio::task::block_in_place` function.
tokio = { workspace = true, optional = true, features = ["time", "rt", "rt-multi-thread"] }
winscard = { workspace = true, optional = true }
rsa = { workspace = true, features = ["sha1"] }
tracing = { workspace = true, default-features = true }
byteorder = "1.5"
md-5 = "0.10"
md4 = "0.10"
sha2 = "0.10"
hmac = "0.12"
crypto-mac = "0.11"
lazy_static = "1.5"
serde = "1"
serde_derive = "1"
url = "2.5"
oid = "0.2"
picky-krb = "0.9"
picky-asn1 = { version = "0.10", features = ["time_conversion"] }
reqwest = { version = "0.12", optional = true, default-features = false, features = ["blocking", "rustls-tls-no-provider"] }
hickory-resolver = { version = "0.24", optional = true }
portpicker = { version = "0.1", optional = true }
num-bigint-dig = "0.8"
rustls = { version = "0.23", optional = true, default-features = false, features = ["logging", "std", "tls12"] }
rustls-native-certs = { version = "0.8", optional = true }
zeroize = { version = "1.8", features = ["zeroize_derive"] }
async-recursion = "1.1"
[target.'cfg(windows)'.dependencies]
winreg = "0.55"
windows = { version = "0.59", features = [ "Win32_Foundation", "Win32_NetworkManagement_Dns"] }
windows-sys = { workspace = true, features = ["Win32_Security_Cryptography", "Win32_Foundation"] }
[target.'cfg(any(target_os = "macos", target_os = "ios"))'.dependencies]
async-dnssd = "0.5"
futures = "0.3"
tokio = { workspace = true, features = ["time", "rt", "rt-multi-thread"] }
[dev-dependencies]
base64.workspace = true
static_assertions = "1"
whoami.workspace = true
picky = { workspace = true, features = ["x509"] }
tracing-subscriber = { workspace = true, features = ["env-filter"] }
proptest.workspace = true
cfg-if.workspace = true
[[example]]
name = "kerberos"
required-features = ["network_client"]