clients::rdp connects over any caller-dialled TCP stream (direct, proxy or SSH tunnel), upgrades to TLS and logs on with NLA (CredSSP/NTLM), optionally falling back to TLS-only logon for servers without NLA such as xrdp (credentials are passed so they log straight in). The server certificate is pinned through a caller check on its SHA256 fingerprint before any credentials are sent. The desktop decodes into the VNC client's RGBA framebuffer; input (IronRDP's scancode/Unicode/mouse operations), Display Control resizes and the deactivation-reactivation sequence run on the session thread. IronRDP's releases need three vendored patches (vendor/README.md): picky and sspi with their RustCrypto release-candidate pins relaxed so they share russh's stable versions (their own suites, 402 tests, pass against them), and ironrdp-session with two unreleased upstream bitmap fixes (#1486 stride, #1524 RDP6 orientation) without which xrdp desktops render sheared. Verified live against xrdp (scottyhardy/docker-remote-desktop): logon, full desktop rendering, keyboard and mouse input.
39 lines
1.2 KiB
TOML
39 lines
1.2 KiB
TOML
[package]
|
|
name = "ironrdp-session"
|
|
version = "0.11.0"
|
|
readme = "README.md"
|
|
description = "State machines to drive an RDP session"
|
|
edition.workspace = true
|
|
rust-version = "1.89"
|
|
license.workspace = true
|
|
homepage.workspace = true
|
|
repository.workspace = true
|
|
authors.workspace = true
|
|
keywords.workspace = true
|
|
categories.workspace = true
|
|
|
|
[lib]
|
|
doctest = false
|
|
test = false
|
|
|
|
[features]
|
|
default = []
|
|
qoi = ["dep:qoicoubeh", "ironrdp-pdu/qoi"]
|
|
qoiz = ["dep:zstd-safe", "qoi"]
|
|
|
|
[dependencies]
|
|
ironrdp-bulk = { path = "../ironrdp-bulk", version = "0.1" }
|
|
ironrdp-core = { path = "../ironrdp-core", version = "0.2" } # public
|
|
ironrdp-svc = { path = "../ironrdp-svc", version = "0.8" } # public
|
|
ironrdp-dvc = { path = "../ironrdp-dvc", version = "0.8" } # public
|
|
ironrdp-error = { path = "../ironrdp-error", version = "0.2" } # public
|
|
ironrdp-graphics = { path = "../ironrdp-graphics", version = "0.9" } # public
|
|
ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.9", features = ["std"] } # public
|
|
ironrdp-displaycontrol = { path = "../ironrdp-displaycontrol", version = "0.8" }
|
|
tracing = { version = "0.1", features = ["log"] }
|
|
qoicoubeh = { version = "0.5", optional = true }
|
|
zstd-safe = { version = "7.2", optional = true, features = ["std"] }
|
|
|
|
[lints]
|
|
workspace = true
|