Files
nexus/rust/vendor/ironrdp-mstsgu/Cargo.toml
T
Andy Dixon ae2b07db4b feat(rdp): RD Gateway transport (experimental)
RDP profiles can go through a Remote Desktop Gateway (MS-TSGU over an
HTTPS WebSocket) with its own username and password, stored like other
credentials (rdp-gateway-password). The gateway stream is bridged to a
loopback socket so the blocking RDP client uses it like any transport.

IronRDP's gateway crate (0.0.1) is vendored with fixes: it used
ironrdp-tls, which accepts any certificate, before sending Basic
credentials — the gateway is now verified against the web PKI; its
asserts on gateway-supplied lengths are errors instead of panics; and
the server port is passed through. Checked against a self-signed
openssl s_server: the connection is refused ('invalid peer certificate')
before any request or credential is sent. Not tested against a real
gateway; Basic-auth gateways only (no NTLM).
2026-10-12 18:26:45 +01:00

224 lines
5.2 KiB
TOML

# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.
[package]
edition = "2024"
rust-version = "1.89"
name = "ironrdp-mstsgu"
version = "0.0.1"
authors = [
"Devolutions Inc. <infos@devolutions.net>",
"Teleport <goteleport.com>",
]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Terminal Services Gateway Server Protocol"
homepage = "https://github.com/Devolutions/IronRDP"
readme = "README.md"
keywords = [
"rdp",
"remote-desktop",
"network",
"client",
"protocol",
]
categories = ["network-programming"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/Devolutions/IronRDP"
resolver = "2"
# Nexus patch: TLS is always rustls (ring) with web PKI verification; see src/lib.rs.
[features]
default = []
[lib]
name = "ironrdp_mstsgu"
path = "src/lib.rs"
test = false
doctest = false
[dependencies.base64]
version = "0.22"
[dependencies.bitflags]
version = "2.11"
[dependencies.futures-util]
version = "0.3"
[dependencies.http-body-util]
version = "0.1"
[dependencies.hyper]
version = "1.9"
features = [
"client",
"http1",
]
[dependencies.hyper-util]
version = "0.1"
features = ["tokio"]
[dependencies.ironrdp-core]
version = "0.2"
features = ["std"]
[dependencies.ironrdp-error]
version = "0.2"
[dependencies.tokio-rustls]
version = "0.26"
default-features = false
features = ["ring", "tls12"]
[dependencies.webpki-roots]
version = "1"
[dependencies.log]
version = "0.4"
[dependencies.tokio]
version = "1.52"
features = [
"macros",
"rt",
]
[dependencies.tokio-tungstenite]
version = "0.29"
[dependencies.tokio-util]
version = "0.7"
[dependencies.uuid]
version = "1"
features = ["v4"]
[lints.clippy]
alloc_instead_of_core = "warn"
allow_attributes = "warn"
as_conversions = "warn"
as_pointer_underscore = "warn"
as_ptr_cast_mut = "warn"
as_underscore = "warn"
cast_lossless = "warn"
cast_possible_truncation = "warn"
cast_possible_wrap = "warn"
cast_ptr_alignment = "warn"
cast_sign_loss = "warn"
cfg_not_test = "warn"
checked_conversions = "warn"
clone_on_ref_ptr = "warn"
cloned_instead_of_copied = "warn"
collection_is_never_read = "warn"
copy_iterator = "warn"
dbg_macro = "warn"
deref_by_slicing = "warn"
disallowed_script_idents = "warn"
doc_include_without_cfg = "warn"
empty_drop = "warn"
empty_enum_variants_with_brackets = "warn"
expl_impl_clone_on_copy = "warn"
filetype_is_file = "warn"
float_cmp = "warn"
float_cmp_const = "warn"
fn_to_numeric_cast_any = "warn"
get_unwrap = "warn"
implicit_clone = "warn"
infinite_loop = "warn"
inline_always = "warn"
large_futures = "warn"
large_include_file = "warn"
large_stack_frames = "warn"
large_types_passed_by_value = "warn"
lossy_float_literal = "warn"
map_with_unused_argument_over_ranges = "warn"
mem_forget = "warn"
missing_panics_doc = "warn"
missing_safety_doc = "warn"
mixed_read_write_in_expression = "warn"
multiple_inherent_impl = "warn"
multiple_unsafe_ops_per_block = "warn"
needless_raw_strings = "warn"
non_ascii_literal = "warn"
non_zero_suggestions = "warn"
or_fun_call = "warn"
panic = "warn"
partial_pub_fields = "warn"
precedence_bits = "warn"
print_stderr = "warn"
print_stdout = "warn"
ptr_cast_constness = "warn"
pub_without_shorthand = "warn"
range_plus_one = "warn"
rc_buffer = "warn"
rc_mutex = "warn"
redundant_clone = "warn"
redundant_type_annotations = "warn"
renamed_function_params = "warn"
rest_pat_in_fully_bound_structs = "warn"
return_self_not_must_use = "warn"
same_name_method = "warn"
self_named_module_files = "warn"
semicolon_outside_block = "warn"
separated_literal_suffix = "warn"
similar_names = "warn"
std_instead_of_core = "warn"
str_to_string = "warn"
string_add = "warn"
string_lit_chars_any = "warn"
string_slice = "warn"
suspicious_xor_used_as_pow = "warn"
todo = "warn"
trait_duplication_in_bounds = "warn"
transmute_ptr_to_ptr = "warn"
try_err = "warn"
type_repetition_in_bounds = "warn"
undocumented_unsafe_blocks = "warn"
unnecessary_box_returns = "warn"
unnecessary_safety_comment = "warn"
unnecessary_self_imports = "warn"
unused_result_ok = "warn"
unused_self = "warn"
unused_trait_names = "warn"
unwrap_used = "warn"
useless_let_if_seq = "warn"
wildcard_dependencies = "warn"
wildcard_imports = "warn"
[lints.rust]
absolute_paths_not_starting_with_crate = "warn"
ambiguous_negative_literals = "warn"
elided_lifetimes_in_paths = "warn"
invalid_reference_casting = "warn"
keyword_idents = "warn"
macro_use_extern_crate = "warn"
missing_unsafe_on_extern = "warn"
noop_method_call = "warn"
redundant_imports = "warn"
redundant_lifetimes = "warn"
single_use_lifetimes = "warn"
trivial_numeric_casts = "warn"
unit_bindings = "warn"
unreachable_pub = "warn"
unsafe_attr_outside_unsafe = "warn"
unsafe_op_in_unsafe_fn = "warn"
unused_crate_dependencies = "warn"
unused_lifetimes = "warn"
unused_macro_rules = "warn"
unused_qualifications = "warn"
unused_unsafe = "warn"