chore(release): prepare for publishing (#748)

This commit is contained in:
devolutionsbot 2025-05-27 11:21:56 -04:00 committed by GitHub
parent 5abd9ff8e0
commit aa6777b56a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
41 changed files with 681 additions and 507 deletions

682
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -6,6 +6,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [[0.5.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-acceptor-v0.4.0...ironrdp-acceptor-v0.5.0)] - 2025-05-27
### <!-- 1 -->Features
- Make the CredsspSequence type public ([5abd9ff8e0](https://github.com/Devolutions/IronRDP/commit/5abd9ff8e0da8ea48c6747526c4b703a39bf4972))
## [[0.4.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-acceptor-v0.3.1...ironrdp-acceptor-v0.4.0)] - 2025-03-12 ## [[0.4.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-acceptor-v0.3.1...ironrdp-acceptor-v0.4.0)] - 2025-03-12
### <!-- 7 -->Build ### <!-- 7 -->Build

View file

@ -1,6 +1,6 @@
[package] [package]
name = "ironrdp-acceptor" name = "ironrdp-acceptor"
version = "0.4.0" version = "0.5.0"
readme = "README.md" readme = "README.md"
description = "State machines to drive an RDP connection acceptance sequence" description = "State machines to drive an RDP connection acceptance sequence"
edition.workspace = true edition.workspace = true
@ -17,10 +17,10 @@ test = false
[dependencies] [dependencies]
ironrdp-core = { path = "../ironrdp-core", version = "0.1", features = ["alloc"] } # public ironrdp-core = { path = "../ironrdp-core", version = "0.1", features = ["alloc"] } # public
ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.4" } # public ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.5" } # public
ironrdp-svc = { path = "../ironrdp-svc", version = "0.3" } # public ironrdp-svc = { path = "../ironrdp-svc", version = "0.4" } # public
ironrdp-connector = { path = "../ironrdp-connector", version = "0.4" } # public ironrdp-connector = { path = "../ironrdp-connector", version = "0.5" } # public
ironrdp-async = { path = "../ironrdp-async", version = "0.4" } # public ironrdp-async = { path = "../ironrdp-async", version = "0.5" } # public
tracing = { version = "0.1", features = ["log"] } tracing = { version = "0.1", features = ["log"] }
[lints] [lints]

View file

@ -6,6 +6,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [[0.2.1](https://github.com/Devolutions/IronRDP/compare/ironrdp-ainput-v0.2.0...ironrdp-ainput-v0.2.1)] - 2025-05-27
### <!-- 7 -->Build
- Bump bitflags from 2.9.0 to 2.9.1 in the patch group across 1 directory (#792) ([87ed315bc2](https://github.com/Devolutions/IronRDP/commit/87ed315bc28fdd2dcfea89b052fa620a7e346e5a))
## [[0.1.3](https://github.com/Devolutions/IronRDP/compare/ironrdp-ainput-v0.1.2...ironrdp-ainput-v0.1.3)] - 2025-03-12 ## [[0.1.3](https://github.com/Devolutions/IronRDP/compare/ironrdp-ainput-v0.1.2...ironrdp-ainput-v0.1.3)] - 2025-03-12
### <!-- 7 -->Build ### <!-- 7 -->Build

View file

@ -1,6 +1,6 @@
[package] [package]
name = "ironrdp-ainput" name = "ironrdp-ainput"
version = "0.2.0" version = "0.3.0"
readme = "README.md" readme = "README.md"
description = "AInput dynamic channel implementation" description = "AInput dynamic channel implementation"
edition.workspace = true edition.workspace = true
@ -17,7 +17,7 @@ test = false
[dependencies] [dependencies]
ironrdp-core = { path = "../ironrdp-core", version = "0.1" } # public ironrdp-core = { path = "../ironrdp-core", version = "0.1" } # public
ironrdp-dvc = { path = "../ironrdp-dvc", version = "0.2" } # public ironrdp-dvc = { path = "../ironrdp-dvc", version = "0.3" } # public
bitflags = "2.9" bitflags = "2.9"
num-derive.workspace = true # TODO: remove num-derive.workspace = true # TODO: remove
num-traits.workspace = true # TODO: remove num-traits.workspace = true # TODO: remove

View file

@ -1,6 +1,6 @@
[package] [package]
name = "ironrdp-async" name = "ironrdp-async"
version = "0.4.0" version = "0.5.0"
readme = "README.md" readme = "README.md"
description = "Provides `Future`s wrapping the IronRDP state machines conveniently" description = "Provides `Future`s wrapping the IronRDP state machines conveniently"
edition.workspace = true edition.workspace = true
@ -16,9 +16,9 @@ doctest = false
test = false test = false
[dependencies] [dependencies]
ironrdp-connector = { path = "../ironrdp-connector", version = "0.4" } # public ironrdp-connector = { path = "../ironrdp-connector", version = "0.5" } # public
ironrdp-core = { path = "../ironrdp-core", version = "0.1", features = ["alloc"] } # public ironrdp-core = { path = "../ironrdp-core", version = "0.1", features = ["alloc"] } # public
ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.4" } # public ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.5" } # public
tracing = { version = "0.1", features = ["log"] } tracing = { version = "0.1", features = ["log"] }
bytes = "1" # public bytes = "1" # public

View file

@ -13,7 +13,6 @@ mod session;
use core::future::Future; use core::future::Future;
use core::pin::Pin; use core::pin::Pin;
pub use ironrdp_connector;
use ironrdp_connector::sspi::generator::NetworkRequest; use ironrdp_connector::sspi::generator::NetworkRequest;
use ironrdp_connector::ConnectorResult; use ironrdp_connector::ConnectorResult;

View file

@ -1,6 +1,6 @@
[package] [package]
name = "ironrdp-blocking" name = "ironrdp-blocking"
version = "0.4.0" version = "0.5.0"
readme = "README.md" readme = "README.md"
description = "Blocking I/O abstraction wrapping the IronRDP state machines conveniently" description = "Blocking I/O abstraction wrapping the IronRDP state machines conveniently"
edition.workspace = true edition.workspace = true
@ -16,9 +16,9 @@ doctest = false
test = false test = false
[dependencies] [dependencies]
ironrdp-connector = { path = "../ironrdp-connector", version = "0.4" } # public ironrdp-connector = { path = "../ironrdp-connector", version = "0.5" } # public
ironrdp-core = { path = "../ironrdp-core", version = "0.1", features = ["alloc"] } # public ironrdp-core = { path = "../ironrdp-core", version = "0.1", features = ["alloc"] } # public
ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.4" } # public ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.5" } # public
tracing = { version = "0.1", features = ["log"] } tracing = { version = "0.1", features = ["log"] }
bytes = "1" # public bytes = "1" # public

View file

@ -30,7 +30,7 @@ native-tls = ["ironrdp-tls/native-tls", "tokio-tungstenite/native-tls"]
[dependencies] [dependencies]
# Protocols # Protocols
ironrdp = { path = "../ironrdp", version = "0.9", features = [ ironrdp = { path = "../ironrdp", version = "0.10", features = [
"session", "session",
"input", "input",
"graphics", "graphics",
@ -43,10 +43,10 @@ ironrdp = { path = "../ironrdp", version = "0.9", features = [
"connector", "connector",
] } ] }
ironrdp-core = { path = "../ironrdp-core", version = "0.1", features = ["alloc"] } ironrdp-core = { path = "../ironrdp-core", version = "0.1", features = ["alloc"] }
ironrdp-cliprdr-native = { path = "../ironrdp-cliprdr-native", version = "0.2" } ironrdp-cliprdr-native = { path = "../ironrdp-cliprdr-native", version = "0.3" }
ironrdp-rdpsnd-native = { path = "../ironrdp-rdpsnd-native", version = "0.2" } ironrdp-rdpsnd-native = { path = "../ironrdp-rdpsnd-native", version = "0.3" }
ironrdp-tls = { path = "../ironrdp-tls", version = "0.1" } ironrdp-tls = { path = "../ironrdp-tls", version = "0.1" }
ironrdp-tokio = { path = "../ironrdp-tokio", version = "0.3", features = ["reqwest"] } ironrdp-tokio = { path = "../ironrdp-tokio", version = "0.4", features = ["reqwest"] }
ironrdp-rdcleanpath.path = "../ironrdp-rdcleanpath" ironrdp-rdcleanpath.path = "../ironrdp-rdcleanpath"
# Windowing and rendering # Windowing and rendering

View file

@ -1,6 +1,6 @@
[package] [package]
name = "ironrdp-cliprdr-native" name = "ironrdp-cliprdr-native"
version = "0.2.0" version = "0.3.0"
readme = "README.md" readme = "README.md"
description = "Native CLIPRDR static channel backend implementations for IronRDP" description = "Native CLIPRDR static channel backend implementations for IronRDP"
edition.workspace = true edition.workspace = true
@ -16,7 +16,7 @@ doctest = false
test = false test = false
[dependencies] [dependencies]
ironrdp-cliprdr = { path = "../ironrdp-cliprdr", version = "0.2" } # public ironrdp-cliprdr = { path = "../ironrdp-cliprdr", version = "0.3" } # public
ironrdp-core = { path = "../ironrdp-core", version = "0.1" } ironrdp-core = { path = "../ironrdp-core", version = "0.1" }
tracing = { version = "0.1", features = ["log"] } tracing = { version = "0.1", features = ["log"] }

View file

@ -6,6 +6,16 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [[0.3.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-cliprdr-v0.2.0...ironrdp-cliprdr-v0.3.0)] - 2025-05-27
### <!-- 1 -->Features
- [**breaking**] Add on_ready() callback (#729) ([4e581e0f47](https://github.com/Devolutions/IronRDP/commit/4e581e0f47593097c16f2dde43cd0ff0976fe73e))
Give a hint to the backend when the channel is actually connected &
ready to process messages.
## [[0.2.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-cliprdr-v0.1.3...ironrdp-cliprdr-v0.2.0)] - 2025-03-12 ## [[0.2.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-cliprdr-v0.1.3...ironrdp-cliprdr-v0.2.0)] - 2025-03-12
### <!-- 7 -->Build ### <!-- 7 -->Build

View file

@ -1,6 +1,6 @@
[package] [package]
name = "ironrdp-cliprdr" name = "ironrdp-cliprdr"
version = "0.2.0" version = "0.3.0"
readme = "README.md" readme = "README.md"
description = "CLIPRDR static channel for clipboard implemented as described in MS-RDPECLIP" description = "CLIPRDR static channel for clipboard implemented as described in MS-RDPECLIP"
edition.workspace = true edition.workspace = true
@ -17,8 +17,8 @@ test = false
[dependencies] [dependencies]
ironrdp-core = { path = "../ironrdp-core", version = "0.1" } # public ironrdp-core = { path = "../ironrdp-core", version = "0.1" } # public
ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.4" } # public ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.5" } # public
ironrdp-svc = { path = "../ironrdp-svc", version = "0.3" } # public ironrdp-svc = { path = "../ironrdp-svc", version = "0.4" } # public
thiserror = "1.0" # FIXME: handwrite the Error trait implementations. thiserror = "1.0" # FIXME: handwrite the Error trait implementations.
tracing = { version = "0.1", features = ["log"] } tracing = { version = "0.1", features = ["log"] }
bitflags = "2.9" bitflags = "2.9"

View file

@ -6,6 +6,30 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [[0.5.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-connector-v0.4.0...ironrdp-connector-v0.5.0)] - 2025-05-27
### <!-- 1 -->Features
- Add no_audio_playback flag to Config struct ([9f0edcc4c9](https://github.com/Devolutions/IronRDP/commit/9f0edcc4c9c49d59cc10de37f920aae073e3dd8a))
Enable audio playback on the client.
### <!-- 4 -->Bug Fixes
- [**breaking**] Fix name of client address field (#754) ([bdde2c76de](https://github.com/Devolutions/IronRDP/commit/bdde2c76ded7315f7bc91d81a0909a1cb827d870))
- Inject socket local address for the client addr (#759) ([712da42ded](https://github.com/Devolutions/IronRDP/commit/712da42dedc193239e457d8270d33cc70bd6a4b9))
We used to inject the resolved target server address, but that is not
what is expected. Server typically ignores this field so this was not a
problem up until now.
### Refactor
- [**breaking**] Add supported codecs in BitmapConfig ([f03ee393a3](https://github.com/Devolutions/IronRDP/commit/f03ee393a36906114b5bcba0e88ebc6869a99785))
## [[0.4.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-connector-v0.3.2...ironrdp-connector-v0.4.0)] - 2025-03-12 ## [[0.4.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-connector-v0.3.2...ironrdp-connector-v0.4.0)] - 2025-03-12
### <!-- 7 -->Build ### <!-- 7 -->Build

View file

@ -1,6 +1,6 @@
[package] [package]
name = "ironrdp-connector" name = "ironrdp-connector"
version = "0.4.0" version = "0.5.0"
readme = "README.md" readme = "README.md"
description = "State machines to drive an RDP connection sequence" description = "State machines to drive an RDP connection sequence"
edition.workspace = true edition.workspace = true
@ -19,10 +19,10 @@ test = false
arbitrary = ["dep:arbitrary"] arbitrary = ["dep:arbitrary"]
[dependencies] [dependencies]
ironrdp-svc = { path = "../ironrdp-svc", version = "0.3" } # public ironrdp-svc = { path = "../ironrdp-svc", version = "0.4" } # public
ironrdp-core = { path = "../ironrdp-core", version = "0.1" } # public ironrdp-core = { path = "../ironrdp-core", version = "0.1" } # public
ironrdp-error = { path = "../ironrdp-error", version = "0.1" } # public ironrdp-error = { path = "../ironrdp-error", version = "0.1" } # public
ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.4", features = ["std"] } # public ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.5", features = ["std"] } # public
arbitrary = { version = "1", features = ["derive"], optional = true } # public arbitrary = { version = "1", features = ["derive"], optional = true } # public
sspi = "0.15" # public sspi = "0.15" # public
url = "2.5" # public url = "2.5" # public

View file

@ -1,6 +1,6 @@
[package] [package]
name = "ironrdp-displaycontrol" name = "ironrdp-displaycontrol"
version = "0.2.0" version = "0.3.0"
readme = "README.md" readme = "README.md"
description = "Display control dynamic channel extension implementation" description = "Display control dynamic channel extension implementation"
edition.workspace = true edition.workspace = true
@ -17,9 +17,9 @@ test = false
[dependencies] [dependencies]
ironrdp-core = { path = "../ironrdp-core", version = "0.1" } # public ironrdp-core = { path = "../ironrdp-core", version = "0.1" } # public
ironrdp-dvc = { path = "../ironrdp-dvc", version = "0.2" } # public ironrdp-dvc = { path = "../ironrdp-dvc", version = "0.3" } # public
ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.4" } # public ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.5" } # public
ironrdp-svc = { path = "../ironrdp-svc", version = "0.3" } # public ironrdp-svc = { path = "../ironrdp-svc", version = "0.4" } # public
tracing = { version = "0.1", features = ["log"] } tracing = { version = "0.1", features = ["log"] }
[lints] [lints]

View file

@ -1,6 +1,6 @@
[package] [package]
name = "ironrdp-dvc" name = "ironrdp-dvc"
version = "0.2.0" version = "0.3.0"
readme = "README.md" readme = "README.md"
description = "DRDYNVC static channel implementation and traits to implement dynamic virtual channels" description = "DRDYNVC static channel implementation and traits to implement dynamic virtual channels"
edition.workspace = true edition.workspace = true
@ -21,8 +21,8 @@ std = []
[dependencies] [dependencies]
ironrdp-core = { path = "../ironrdp-core", version = "0.1", features = ["alloc"] } # public ironrdp-core = { path = "../ironrdp-core", version = "0.1", features = ["alloc"] } # public
ironrdp-svc = { path = "../ironrdp-svc", version = "0.3" } # public ironrdp-svc = { path = "../ironrdp-svc", version = "0.4" } # public
ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.4", features = ["alloc"] } # public ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.5", features = ["alloc"] } # public
tracing = { version = "0.1", features = ["log"] } tracing = { version = "0.1", features = ["log"] }
slab = "0.4" slab = "0.4"

View file

@ -1,6 +1,6 @@
[package] [package]
name = "ironrdp-futures" name = "ironrdp-futures"
version = "0.2.0" version = "0.3.0"
readme = "README.md" readme = "README.md"
description = "`Framed*` traits implementation above futuress traits" description = "`Framed*` traits implementation above futuress traits"
edition.workspace = true edition.workspace = true
@ -17,7 +17,7 @@ test = false
[dependencies] [dependencies]
futures-util = { version = "0.3", features = ["io"] } # public futures-util = { version = "0.3", features = ["io"] } # public
ironrdp-async = { path = "../ironrdp-async", version = "0.4" } # public ironrdp-async = { path = "../ironrdp-async", version = "0.5" } # public
bytes = "1" # public bytes = "1" # public
[lints] [lints]

View file

@ -6,6 +6,15 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [[0.4.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-graphics-v0.3.0...ironrdp-graphics-v0.4.0)] - 2025-05-27
### <!-- 1 -->Features
- Add helper to find diff between images ([20581bb6f1](https://github.com/Devolutions/IronRDP/commit/20581bb6f12561e22031ce0e233daeada836ea67))
Add some helper to find "damaged" regions, as 64x64 tiles.
## [[0.3.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-graphics-v0.2.0...ironrdp-graphics-v0.3.0)] - 2025-03-12 ## [[0.3.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-graphics-v0.2.0...ironrdp-graphics-v0.3.0)] - 2025-03-12
### <!-- 7 -->Build ### <!-- 7 -->Build

View file

@ -1,6 +1,6 @@
[package] [package]
name = "ironrdp-graphics" name = "ironrdp-graphics"
version = "0.3.0" version = "0.4.0"
readme = "README.md" readme = "README.md"
description = "RDP image processing primitives" description = "RDP image processing primitives"
edition.workspace = true edition.workspace = true
@ -20,7 +20,7 @@ bit_field = "0.10"
bitflags = "2.9" bitflags = "2.9"
bitvec = "1.0" bitvec = "1.0"
ironrdp-core = { path = "../ironrdp-core", version = "0.1" } # public ironrdp-core = { path = "../ironrdp-core", version = "0.1" } # public
ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.4", features = ["std"] } # public ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.5", features = ["std"] } # public
byteorder = "1.5" # TODO: remove byteorder = "1.5" # TODO: remove
lazy_static.workspace = true # Legacy crate; prefer std::sync::LazyLock or LazyCell lazy_static.workspace = true # Legacy crate; prefer std::sync::LazyLock or LazyCell
num-derive.workspace = true # TODO: remove num-derive.workspace = true # TODO: remove

View file

@ -1,6 +1,6 @@
[package] [package]
name = "ironrdp-input" name = "ironrdp-input"
version = "0.2.0" version = "0.3.0"
readme = "README.md" readme = "README.md"
description = "Utilities to manage and build RDP input packets" description = "Utilities to manage and build RDP input packets"
edition.workspace = true edition.workspace = true
@ -16,7 +16,7 @@ doctest = false
test = false test = false
[dependencies] [dependencies]
ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.4" } # public ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.5" } # public
bitvec = "1.0" bitvec = "1.0"
smallvec = "1.15" smallvec = "1.15"

View file

@ -6,6 +6,21 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [[0.5.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-pdu-v0.4.0...ironrdp-pdu-v0.5.0)] - 2025-05-27
### <!-- 1 -->Features
- Make client_codecs_capabilities() configurable ([783702962a](https://github.com/Devolutions/IronRDP/commit/783702962a2e842f9d5046ac706048ba124e1401))
- BitmapCodecs struct ([f03ee393a3](https://github.com/Devolutions/IronRDP/commit/f03ee393a36906114b5bcba0e88ebc6869a99785))
### <!-- 4 -->Bug Fixes
- Fix possible out of bound indexing in RFX module (#724) ([9f4e6d410b](https://github.com/Devolutions/IronRDP/commit/9f4e6d410b631d8a6b0c09c2abc0817a83cf042b))
An index bound check was missing in the RFX module. Found by fuzzer.
## [[0.4.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-pdu-v0.3.1...ironrdp-pdu-v0.4.0)] - 2025-03-12 ## [[0.4.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-pdu-v0.3.1...ironrdp-pdu-v0.4.0)] - 2025-03-12
### <!-- 4 -->Bug Fixes ### <!-- 4 -->Bug Fixes

View file

@ -1,6 +1,6 @@
[package] [package]
name = "ironrdp-pdu" name = "ironrdp-pdu"
version = "0.4.0" version = "0.5.0"
readme = "README.md" readme = "README.md"
description = "RDP PDU encoding and decoding" description = "RDP PDU encoding and decoding"
edition.workspace = true edition.workspace = true

View file

@ -1,6 +1,6 @@
[package] [package]
name = "ironrdp-rdpdr-native" name = "ironrdp-rdpdr-native"
version = "0.2.0" version = "0.3.0"
readme = "README.md" readme = "README.md"
description = "Native RDPDR static channel backend implementations for IronRDP" description = "Native RDPDR static channel backend implementations for IronRDP"
edition.workspace = true edition.workspace = true
@ -17,8 +17,8 @@ test = false
[target.'cfg(any(target_os = "macos", target_os = "linux"))'.dependencies] [target.'cfg(any(target_os = "macos", target_os = "linux"))'.dependencies]
ironrdp-core = { path = "../ironrdp-core", version = "0.1" } ironrdp-core = { path = "../ironrdp-core", version = "0.1" }
ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.4" } # public ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.5" } # public
ironrdp-svc = { path = "../ironrdp-svc", version = "0.3" } # public ironrdp-svc = { path = "../ironrdp-svc", version = "0.4" } # public
ironrdp-rdpdr = { path = "../ironrdp-rdpdr", version = "0.2" } # public ironrdp-rdpdr = { path = "../ironrdp-rdpdr", version = "0.3" } # public
nix = { version = "0.29", features = ["fs", "dir"] } nix = { version = "0.29", features = ["fs", "dir"] }
tracing = { version = "0.1", features = ["log"] } tracing = { version = "0.1", features = ["log"] }

View file

@ -6,6 +6,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [[0.3.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-rdpdr-v0.2.0...ironrdp-rdpdr-v0.3.0)] - 2025-05-27
### <!-- 1 -->Features
- Add USER_LOGGEDON flag support ([5e78f91713](https://github.com/Devolutions/IronRDP/commit/5e78f917132a174bdd5d8711beb1744de1bd265a))
## [[0.2.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-rdpdr-v0.1.3...ironrdp-rdpdr-v0.2.0)] - 2025-03-12 ## [[0.2.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-rdpdr-v0.1.3...ironrdp-rdpdr-v0.2.0)] - 2025-03-12
### <!-- 7 -->Build ### <!-- 7 -->Build
@ -13,7 +20,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Bump ironrdp-pdu - Bump ironrdp-pdu
## [[0.1.3](https://github.com/Devolutions/IronRDP/compare/ironrdp-rdpdr-v0.1.2...ironrdp-rdpdr-v0.1.3)] - 2025-03-12 ## [[0.1.3](https://github.com/Devolutions/IronRDP/compare/ironrdp-rdpdr-v0.1.2...ironrdp-rdpdr-v0.1.3)] - 2025-03-12
### <!-- 7 -->Build ### <!-- 7 -->Build

View file

@ -1,6 +1,6 @@
[package] [package]
name = "ironrdp-rdpdr" name = "ironrdp-rdpdr"
version = "0.2.0" version = "0.3.0"
readme = "README.md" readme = "README.md"
description = "RDPDR channel implementation." description = "RDPDR channel implementation."
edition.workspace = true edition.workspace = true
@ -18,8 +18,8 @@ test = false
[dependencies] [dependencies]
ironrdp-core = { path = "../ironrdp-core", version = "0.1" } # public ironrdp-core = { path = "../ironrdp-core", version = "0.1" } # public
ironrdp-error = { path = "../ironrdp-error", version = "0.1" } # public ironrdp-error = { path = "../ironrdp-error", version = "0.1" } # public
ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.4" } # public ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.5" } # public
ironrdp-svc = { path = "../ironrdp-svc", version = "0.3" } # public ironrdp-svc = { path = "../ironrdp-svc", version = "0.4" } # public
tracing = { version = "0.1", features = ["log"] } tracing = { version = "0.1", features = ["log"] }
bitflags = "2.9" bitflags = "2.9"

View file

@ -1,6 +1,6 @@
[package] [package]
name = "ironrdp-rdpsnd-native" name = "ironrdp-rdpsnd-native"
version = "0.2.0" version = "0.3.0"
description = "Native RDPSND static channel backend implementations for IronRDP" description = "Native RDPSND static channel backend implementations for IronRDP"
edition.workspace = true edition.workspace = true
license.workspace = true license.workspace = true
@ -22,7 +22,7 @@ opus = ["dep:opus", "dep:bytemuck"]
anyhow = "1" anyhow = "1"
bytemuck = { version = "1.21", optional = true } bytemuck = { version = "1.21", optional = true }
cpal = "0.15" cpal = "0.15"
ironrdp-rdpsnd = { path = "../ironrdp-rdpsnd", version = "0.4" } # public ironrdp-rdpsnd = { path = "../ironrdp-rdpsnd", version = "0.5" } # public
opus = { version = "0.3", optional = true } opus = { version = "0.3", optional = true }
tracing = { version = "0.1", features = ["log"] } tracing = { version = "0.1", features = ["log"] }

View file

@ -6,6 +6,30 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [[0.5.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-rdpsnd-v0.4.0...ironrdp-rdpsnd-v0.5.0)] - 2025-05-27
### <!-- 1 -->Features
- Add support for client custom flags ([7bd92c0ce5](https://github.com/Devolutions/IronRDP/commit/7bd92c0ce5c686fe18c062b7edfeed46a709fc23))
Client can support various flags, but always set ALIVE.
### <!-- 4 -->Bug Fixes
- Correct TrainingPdu wPackSize field ([abcc42e01f](https://github.com/Devolutions/IronRDP/commit/abcc42e01fda3ce9c8e1739524e0fc73b8778d83))
- Reply to TrainingPdu ([5dcc526f51](https://github.com/Devolutions/IronRDP/commit/5dcc526f513e8083ff335cad3cc80d2effeb7265))
- Lookup the associated format from the client list ([3d7bc28b97](https://github.com/Devolutions/IronRDP/commit/3d7bc28b9764b1f37b038bb2fbb676ec464ee5ee))
- Send client formats that match server (#742) ([a8b9614323](https://github.com/Devolutions/IronRDP/commit/a8b96143236ad457b5241f6a2f8acfaf969472b6))
Windows seems to be confused if the client replies with more formats, or unknown formats (opus).
### Refactor
- [**breaking**] Pass format_no instead of AudioFormat ([4172571e8e](https://github.com/Devolutions/IronRDP/commit/4172571e8e061a6a120643393881b5e37f1e61ab))
## [[0.4.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-rdpsnd-v0.3.1...ironrdp-rdpsnd-v0.4.0)] - 2025-03-12 ## [[0.4.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-rdpsnd-v0.3.1...ironrdp-rdpsnd-v0.4.0)] - 2025-03-12
### <!-- 7 -->Build ### <!-- 7 -->Build

View file

@ -1,6 +1,6 @@
[package] [package]
name = "ironrdp-rdpsnd" name = "ironrdp-rdpsnd"
version = "0.4.0" version = "0.5.0"
readme = "README.md" readme = "README.md"
description = "RDPSND static channel for audio output implemented as described in MS-RDPEA" description = "RDPSND static channel for audio output implemented as described in MS-RDPEA"
edition.workspace = true edition.workspace = true
@ -22,9 +22,9 @@ std = []
[dependencies] [dependencies]
bitflags = "2.9" bitflags = "2.9"
tracing = { version = "0.1", features = ["log"] } tracing = { version = "0.1", features = ["log"] }
ironrdp-svc = { path = "../ironrdp-svc", version = "0.3" } # public ironrdp-svc = { path = "../ironrdp-svc", version = "0.4" } # public
ironrdp-core = { path = "../ironrdp-core", version = "0.1", features = ["alloc"] } ironrdp-core = { path = "../ironrdp-core", version = "0.1", features = ["alloc"] }
ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.4", features = ["alloc"] } # public ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.5", features = ["alloc"] } # public
[lints] [lints]
workspace = true workspace = true

View file

@ -6,6 +6,55 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [[0.6.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-server-v0.5.0...ironrdp-server-v0.6.0)] - 2025-05-27
### <!-- 1 -->Features
- Add stride debug info ([7f57817805](https://github.com/Devolutions/IronRDP/commit/7f578178056282e590179a10cd1eedb8f4d9ad63))
- Add Framebuffer helper struct ([1e87961d16](https://github.com/Devolutions/IronRDP/commit/1e87961d1611ed31f58b407f208295c97c0d2944))
This will hold the updated bitmap data for the whole framebuffer.
- Add BitmapUpdate::sub() ([a76e84d459](https://github.com/Devolutions/IronRDP/commit/a76e84d45927d61e21c27abcfa31c4f0c7a17bbf))
- Implement some Encoder Debug ([137d91ae7a](https://github.com/Devolutions/IronRDP/commit/137d91ae7a096170ada289d420785c8f5de0663b))
- Keep last full-frame/desktop update ([aeb1193674](https://github.com/Devolutions/IronRDP/commit/aeb1193674641846ae1873def8c84a62a59213d5))
It should reflect client drawing state.
In following changes, we will fix it to draw bitmap updates on it, to
keep it up to date.
- Find and send the damaged tiles ([fb3769c4a7](https://github.com/Devolutions/IronRDP/commit/fb3769c4a7fce56e340df8c4b19f7d90cda93e50))
Keep a framebuffer and tile-diff against it, to save from
encoding/sending the same bitmap data regions.
### <!-- 4 -->Bug Fixes
- Use desktop size for RFX channel size (#756) ([806f1d7694](https://github.com/Devolutions/IronRDP/commit/806f1d7694313b1a59842af300a437ae2f6c2463))
- [**breaking**] Remove time_warn! from the public API (#773) ([cc78b1e3dc](https://github.com/Devolutions/IronRDP/commit/cc78b1e3dc1c554dd3fcf6494763caa00ba28ad7))
This is intended to be an internal macro.
### Refactor
- [**breaking**] Drop support for pixelOrder ([db6f4cdb7f](https://github.com/Devolutions/IronRDP/commit/db6f4cdb7f379713979b930e8e1fa1a813ebecc4))
Dealing with multiple formats is sufficiently annoying, there isn't much
need for awkward image layout. This was done for efficiency reason for
bitmap encoding, but bitmap is really inefficient anyway and very few
servers will actually provide bottom to top images (except with GL/GPU
textures, but this is not in scope yet).
- [**breaking**] Use bytes, allowing shareable bitmap data ([3c43fdda76](https://github.com/Devolutions/IronRDP/commit/3c43fdda76f4ef6413db4010471364d6b1be2798))
- [**breaking**] Rename left/top -> x/y ([229070a435](https://github.com/Devolutions/IronRDP/commit/229070a43554927a01541052a819fe3fcd32a913))
## [[0.5.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-server-v0.4.2...ironrdp-server-v0.5.0)] - 2025-03-12 ## [[0.5.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-server-v0.4.2...ironrdp-server-v0.5.0)] - 2025-03-12
### <!-- 7 -->Build ### <!-- 7 -->Build

View file

@ -1,6 +1,6 @@
[package] [package]
name = "ironrdp-server" name = "ironrdp-server"
version = "0.5.0" version = "0.6.0"
readme = "README.md" readme = "README.md"
description = "Extendable skeleton for implementing custom RDP servers" description = "Extendable skeleton for implementing custom RDP servers"
edition.workspace = true edition.workspace = true
@ -29,18 +29,18 @@ anyhow = "1.0"
tokio = { version = "1", features = ["net", "macros", "sync", "rt"] } # public tokio = { version = "1", features = ["net", "macros", "sync", "rt"] } # public
tokio-rustls = "0.26" # public tokio-rustls = "0.26" # public
async-trait = "0.1" async-trait = "0.1"
ironrdp-async = { path = "../ironrdp-async", version = "0.4" } ironrdp-async = { path = "../ironrdp-async", version = "0.5" }
ironrdp-ainput = { path = "../ironrdp-ainput", version = "0.2" } ironrdp-ainput = { path = "../ironrdp-ainput", version = "0.3" }
ironrdp-core = { path = "../ironrdp-core", version = "0.1" } ironrdp-core = { path = "../ironrdp-core", version = "0.1" }
ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.4" } # public ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.5" } # public
ironrdp-svc = { path = "../ironrdp-svc", version = "0.3" } # public ironrdp-svc = { path = "../ironrdp-svc", version = "0.4" } # public
ironrdp-cliprdr = { path = "../ironrdp-cliprdr", version = "0.2" } # public ironrdp-cliprdr = { path = "../ironrdp-cliprdr", version = "0.3" } # public
ironrdp-displaycontrol = { path = "../ironrdp-displaycontrol", version = "0.2" } # public ironrdp-displaycontrol = { path = "../ironrdp-displaycontrol", version = "0.3" } # public
ironrdp-dvc = { path = "../ironrdp-dvc", version = "0.2" } # public ironrdp-dvc = { path = "../ironrdp-dvc", version = "0.3" } # public
ironrdp-tokio = { path = "../ironrdp-tokio", version = "0.3" } ironrdp-tokio = { path = "../ironrdp-tokio", version = "0.4" }
ironrdp-acceptor = { path = "../ironrdp-acceptor", version = "0.4" } # public ironrdp-acceptor = { path = "../ironrdp-acceptor", version = "0.5" } # public
ironrdp-graphics = { path = "../ironrdp-graphics", version = "0.3" } # public ironrdp-graphics = { path = "../ironrdp-graphics", version = "0.4" } # public
ironrdp-rdpsnd = { path = "../ironrdp-rdpsnd", version = "0.4" } # public ironrdp-rdpsnd = { path = "../ironrdp-rdpsnd", version = "0.5" } # public
tracing = { version = "0.1", features = ["log"] } tracing = { version = "0.1", features = ["log"] }
x509-cert = { version = "0.2.5", optional = true } x509-cert = { version = "0.2.5", optional = true }
rustls-pemfile = { version = "2.2.0", optional = true } rustls-pemfile = { version = "2.2.0", optional = true }

View file

@ -6,6 +6,29 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [[0.4.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-session-v0.3.0...ironrdp-session-v0.4.0)] - 2025-05-27
### <!-- 1 -->Features
- [**breaking**] Make DecodedImage Send ([45f66117ba](https://github.com/Devolutions/IronRDP/commit/45f66117ba05170d95b21ec7d97017b44b954f28))
- Add DecodeImage helpers ([cd7a60ba45](https://github.com/Devolutions/IronRDP/commit/cd7a60ba45a0241be4ecf3860ec4f82b431a7ce2))
### <!-- 4 -->Bug Fixes
- Update rectangle when applying None codecs updates (#728) ([a50cd643dc](https://github.com/Devolutions/IronRDP/commit/a50cd643dce9621f314231b7598d2fd31e4718c6))
- Return the correct updated region ([7507a152f1](https://github.com/Devolutions/IronRDP/commit/7507a152f14db594e4067bbc01e243cfba77770f))
"update_rectangle" is set to empty(). The surface updates are then added
by "union". But a union with an empty rectangle at (0,0) is still a
rectangle at (0,0). We end up with big region updates rooted at (0,0)...
- Decrease verbosity of Rfx frame_index ([b31b99eafb](https://github.com/Devolutions/IronRDP/commit/b31b99eafb0aac2a5e5a610af21a4027ae5cd698))
- Decrease verbosity of FastPath header ([f9b6992e74](https://github.com/Devolutions/IronRDP/commit/f9b6992e74abb929f3001e76abaff5d7215e1cb4))
## [[0.3.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-session-v0.2.3...ironrdp-session-v0.3.0)] - 2025-03-12 ## [[0.3.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-session-v0.2.3...ironrdp-session-v0.3.0)] - 2025-03-12
### <!-- 7 -->Build ### <!-- 7 -->Build

View file

@ -1,6 +1,6 @@
[package] [package]
name = "ironrdp-session" name = "ironrdp-session"
version = "0.3.0" version = "0.4.0"
readme = "README.md" readme = "README.md"
description = "State machines to drive an RDP session" description = "State machines to drive an RDP session"
edition.workspace = true edition.workspace = true
@ -17,13 +17,13 @@ test = false
[dependencies] [dependencies]
ironrdp-core = { path = "../ironrdp-core", version = "0.1" } # public ironrdp-core = { path = "../ironrdp-core", version = "0.1" } # public
ironrdp-connector = { path = "../ironrdp-connector", version = "0.4" } # public # TODO: at some point, this dependency could be removed (good for compilation speed) ironrdp-connector = { path = "../ironrdp-connector", version = "0.5" } # public # TODO: at some point, this dependency could be removed (good for compilation speed)
ironrdp-svc = { path = "../ironrdp-svc", version = "0.3" } # public ironrdp-svc = { path = "../ironrdp-svc", version = "0.4" } # public
ironrdp-dvc = { path = "../ironrdp-dvc", version = "0.2" } # public ironrdp-dvc = { path = "../ironrdp-dvc", version = "0.3" } # public
ironrdp-error = { path = "../ironrdp-error", version = "0.1" } # public ironrdp-error = { path = "../ironrdp-error", version = "0.1" } # public
ironrdp-graphics = { path = "../ironrdp-graphics", version = "0.3" } # public ironrdp-graphics = { path = "../ironrdp-graphics", version = "0.4" } # public
ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.4", features = ["std"] } # public ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.5", features = ["std"] } # public
ironrdp-displaycontrol = { path = "../ironrdp-displaycontrol", version = "0.2" } ironrdp-displaycontrol = { path = "../ironrdp-displaycontrol", version = "0.3" }
tracing = { version = "0.1", features = ["log"] } tracing = { version = "0.1", features = ["log"] }
[lints] [lints]

View file

@ -6,6 +6,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [[0.4.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-svc-v0.3.0...ironrdp-svc-v0.4.0)] - 2025-05-27
### <!-- 7 -->Build
- Bump bitflags from 2.9.0 to 2.9.1 in the patch group across 1 directory (#792) ([87ed315bc2](https://github.com/Devolutions/IronRDP/commit/87ed315bc28fdd2dcfea89b052fa620a7e346e5a))
## [[0.3.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-svc-v0.2.0...ironrdp-svc-v0.3.0)] - 2025-03-12 ## [[0.3.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-svc-v0.2.0...ironrdp-svc-v0.3.0)] - 2025-03-12
### <!-- 7 -->Build ### <!-- 7 -->Build

View file

@ -1,6 +1,6 @@
[package] [package]
name = "ironrdp-svc" name = "ironrdp-svc"
version = "0.3.0" version = "0.4.0"
readme = "README.md" readme = "README.md"
description = "IronRDP traits to implement RDP static virtual channels" description = "IronRDP traits to implement RDP static virtual channels"
edition.workspace = true edition.workspace = true
@ -21,7 +21,7 @@ std = []
[dependencies] [dependencies]
ironrdp-core = { path = "../ironrdp-core", version = "0.1" } # public ironrdp-core = { path = "../ironrdp-core", version = "0.1" } # public
ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.4", features = ["alloc", "std"] } # public ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.5", features = ["alloc", "std"] } # public
bitflags = "2.9" bitflags = "2.9"
[lints] [lints]

View file

@ -1,6 +1,6 @@
[package] [package]
name = "ironrdp-tls" name = "ironrdp-tls"
version = "0.1.2" version = "0.1.3"
readme = "README.md" readme = "README.md"
description = "TLS boilerplate common with most IronRDP clients" description = "TLS boilerplate common with most IronRDP clients"
edition.workspace = true edition.workspace = true

View file

@ -6,6 +6,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [[0.4.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-tokio-v0.3.0...ironrdp-tokio-v0.4.0)] - 2025-05-27
### <!-- 1 -->Features
- Add reqwest feature (#734) ([032c38be92](https://github.com/Devolutions/IronRDP/commit/032c38be9229cfd35f0f6fc8eac5cccc960480d3))
## [[0.2.3](https://github.com/Devolutions/IronRDP/compare/ironrdp-tokio-v0.2.2...ironrdp-tokio-v0.2.3)] - 2025-03-12 ## [[0.2.3](https://github.com/Devolutions/IronRDP/compare/ironrdp-tokio-v0.2.2...ironrdp-tokio-v0.2.3)] - 2025-03-12
### <!-- 7 -->Build ### <!-- 7 -->Build

View file

@ -1,6 +1,6 @@
[package] [package]
name = "ironrdp-tokio" name = "ironrdp-tokio"
version = "0.3.0" version = "0.4.0"
readme = "README.md" readme = "README.md"
description = "`Framed*` traits implementation above Tokios traits" description = "`Framed*` traits implementation above Tokios traits"
edition.workspace = true edition.workspace = true
@ -17,11 +17,12 @@ test = false
[features] [features]
default = ["reqwest"] default = ["reqwest"]
reqwest = ["dep:reqwest", "dep:sspi", "dep:url"] reqwest = ["dep:reqwest", "dep:sspi", "dep:url", "dep:ironrdp-connector"]
[dependencies] [dependencies]
bytes = "1" bytes = "1"
ironrdp-async = { path = "../ironrdp-async", version = "0.4" } # public ironrdp-async = { path = "../ironrdp-async", version = "0.5" } # public
ironrdp-connector = { path = "../ironrdp-connector", version = "0.5", optional = true }
tokio = { version = "1", features = ["io-util"] } tokio = { version = "1", features = ["io-util"] }
reqwest = { version = "0.12", optional = true } reqwest = { version = "0.12", optional = true }
sspi = { version = "0.15", features = [ sspi = { version = "0.15", features = [

View file

@ -2,7 +2,7 @@ use core::future::Future;
use core::pin::Pin; use core::pin::Pin;
use std::net::{IpAddr, Ipv4Addr}; use std::net::{IpAddr, Ipv4Addr};
use ironrdp_async::ironrdp_connector::{custom_err, ConnectorResult}; use ironrdp_connector::{custom_err, ConnectorResult};
use reqwest::Client; use reqwest::Client;
use sspi::{Error, ErrorKind}; use sspi::{Error, ErrorKind};
use tokio::io::{AsyncReadExt, AsyncWriteExt}; use tokio::io::{AsyncReadExt, AsyncWriteExt};

View file

@ -1,6 +1,6 @@
[package] [package]
name = "ironrdp" name = "ironrdp"
version = "0.9.1" version = "0.10.0"
readme = "README.md" readme = "README.md"
description = "A meta crate re-exporting IronRDP crates for convenience" description = "A meta crate re-exporting IronRDP crates for convenience"
edition.workspace = true edition.workspace = true
@ -37,23 +37,23 @@ __bench = ["ironrdp-server/__bench"]
[dependencies] [dependencies]
ironrdp-core = { path = "../ironrdp-core", version = "0.1", optional = true } # public ironrdp-core = { path = "../ironrdp-core", version = "0.1", optional = true } # public
ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.4", optional = true } # public ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.5", optional = true } # public
ironrdp-cliprdr = { path = "../ironrdp-cliprdr", version = "0.2", optional = true } # public ironrdp-cliprdr = { path = "../ironrdp-cliprdr", version = "0.3", optional = true } # public
ironrdp-connector = { path = "../ironrdp-connector", version = "0.4", optional = true } # public ironrdp-connector = { path = "../ironrdp-connector", version = "0.5", optional = true } # public
ironrdp-acceptor = { path = "../ironrdp-acceptor", version = "0.4", optional = true } # public ironrdp-acceptor = { path = "../ironrdp-acceptor", version = "0.5", optional = true } # public
ironrdp-session = { path = "../ironrdp-session", version = "0.3", optional = true } # public ironrdp-session = { path = "../ironrdp-session", version = "0.4", optional = true } # public
ironrdp-graphics = { path = "../ironrdp-graphics", version = "0.3", optional = true } # public ironrdp-graphics = { path = "../ironrdp-graphics", version = "0.4", optional = true } # public
ironrdp-input = { path = "../ironrdp-input", version = "0.2", optional = true } # public ironrdp-input = { path = "../ironrdp-input", version = "0.3", optional = true } # public
ironrdp-server = { path = "../ironrdp-server", version = "0.5", optional = true, features = ["helper"] } # public ironrdp-server = { path = "../ironrdp-server", version = "0.6", optional = true, features = ["helper"] } # public
ironrdp-svc = { path = "../ironrdp-svc", version = "0.3", optional = true } # public ironrdp-svc = { path = "../ironrdp-svc", version = "0.4", optional = true } # public
ironrdp-dvc = { path = "../ironrdp-dvc", version = "0.2", optional = true } # public ironrdp-dvc = { path = "../ironrdp-dvc", version = "0.3", optional = true } # public
ironrdp-rdpdr = { path = "../ironrdp-rdpdr", version = "0.2", optional = true } # public ironrdp-rdpdr = { path = "../ironrdp-rdpdr", version = "0.3", optional = true } # public
ironrdp-rdpsnd = { path = "../ironrdp-rdpsnd", version = "0.4", optional = true } # public ironrdp-rdpsnd = { path = "../ironrdp-rdpsnd", version = "0.5", optional = true } # public
ironrdp-displaycontrol = { path = "../ironrdp-displaycontrol", version = "0.2", optional = true } # public ironrdp-displaycontrol = { path = "../ironrdp-displaycontrol", version = "0.3", optional = true } # public
[dev-dependencies] [dev-dependencies]
ironrdp-blocking = { path = "../ironrdp-blocking", version = "0.4.0" } ironrdp-blocking = { path = "../ironrdp-blocking", version = "0.5.0" }
ironrdp-cliprdr-native = { path = "../ironrdp-cliprdr-native", version = "0.2.0" } ironrdp-cliprdr-native = { path = "../ironrdp-cliprdr-native", version = "0.3.0" }
anyhow = "1" anyhow = "1"
async-trait = "0.1" async-trait = "0.1"
image = { version = "0.25.6", default-features = false, features = ["png"] } image = { version = "0.25.6", default-features = false, features = ["png"] }

123
fuzz/Cargo.lock generated
View file

@ -63,9 +63,9 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"
[[package]] [[package]]
name = "base64ct" name = "base64ct"
version = "1.7.1" version = "1.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bb97d56060ee67d285efb8001fec9d2a4c710c32efd2e14b5cbb5ba71930fc2d" checksum = "89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3"
[[package]] [[package]]
name = "bit_field" name = "bit_field"
@ -81,9 +81,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]] [[package]]
name = "bitflags" name = "bitflags"
version = "2.9.0" version = "2.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967"
[[package]] [[package]]
name = "bitvec" name = "bitvec"
@ -114,9 +114,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
[[package]] [[package]]
name = "cc" name = "cc"
version = "1.2.16" version = "1.2.24"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c" checksum = "16595d3be041c03b09d08d0858631facccee9221e579704070e6e9e4915d3bc7"
dependencies = [ dependencies = [
"jobserver", "jobserver",
"libc", "libc",
@ -165,9 +165,9 @@ dependencies = [
[[package]] [[package]]
name = "der" name = "der"
version = "0.7.9" version = "0.7.10"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb"
dependencies = [ dependencies = [
"const-oid", "const-oid",
"der_derive", "der_derive",
@ -242,15 +242,15 @@ dependencies = [
[[package]] [[package]]
name = "flagset" name = "flagset"
version = "0.4.6" version = "0.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b3ea1ec5f8307826a5b71094dd91fc04d4ae75d5709b20ad351c7fb4815c86ec" checksum = "b7ac824320a75a52197e8f2d787f6a38b6718bb6897a35142d749af3c0e8f4fe"
[[package]] [[package]]
name = "flate2" name = "flate2"
version = "1.1.0" version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "11faaf5a5236997af9848be0bef4db95824b1d534ebc64d0f0c6cf3e67bd38dc" checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece"
dependencies = [ dependencies = [
"crc32fast", "crc32fast",
"miniz_oxide", "miniz_oxide",
@ -273,10 +273,22 @@ dependencies = [
] ]
[[package]] [[package]]
name = "ironrdp-cliprdr" name = "getrandom"
version = "0.2.0" version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4"
dependencies = [ dependencies = [
"bitflags 2.9.0", "cfg-if",
"libc",
"r-efi",
"wasi",
]
[[package]]
name = "ironrdp-cliprdr"
version = "0.3.0"
dependencies = [
"bitflags 2.9.1",
"ironrdp-core", "ironrdp-core",
"ironrdp-pdu", "ironrdp-pdu",
"ironrdp-svc", "ironrdp-svc",
@ -302,7 +314,7 @@ dependencies = [
[[package]] [[package]]
name = "ironrdp-displaycontrol" name = "ironrdp-displaycontrol"
version = "0.2.0" version = "0.3.0"
dependencies = [ dependencies = [
"ironrdp-core", "ironrdp-core",
"ironrdp-dvc", "ironrdp-dvc",
@ -313,7 +325,7 @@ dependencies = [
[[package]] [[package]]
name = "ironrdp-dvc" name = "ironrdp-dvc"
version = "0.2.0" version = "0.3.0"
dependencies = [ dependencies = [
"ironrdp-core", "ironrdp-core",
"ironrdp-pdu", "ironrdp-pdu",
@ -352,10 +364,10 @@ dependencies = [
[[package]] [[package]]
name = "ironrdp-graphics" name = "ironrdp-graphics"
version = "0.3.0" version = "0.4.0"
dependencies = [ dependencies = [
"bit_field", "bit_field",
"bitflags 2.9.0", "bitflags 2.9.1",
"bitvec", "bitvec",
"byteorder", "byteorder",
"ironrdp-core", "ironrdp-core",
@ -369,10 +381,10 @@ dependencies = [
[[package]] [[package]]
name = "ironrdp-pdu" name = "ironrdp-pdu"
version = "0.4.0" version = "0.5.0"
dependencies = [ dependencies = [
"bit_field", "bit_field",
"bitflags 2.9.0", "bitflags 2.9.1",
"byteorder", "byteorder",
"der-parser", "der-parser",
"ironrdp-core", "ironrdp-core",
@ -391,9 +403,9 @@ dependencies = [
[[package]] [[package]]
name = "ironrdp-rdpdr" name = "ironrdp-rdpdr"
version = "0.2.0" version = "0.3.0"
dependencies = [ dependencies = [
"bitflags 2.9.0", "bitflags 2.9.1",
"ironrdp-core", "ironrdp-core",
"ironrdp-error", "ironrdp-error",
"ironrdp-pdu", "ironrdp-pdu",
@ -403,9 +415,9 @@ dependencies = [
[[package]] [[package]]
name = "ironrdp-rdpsnd" name = "ironrdp-rdpsnd"
version = "0.4.0" version = "0.5.0"
dependencies = [ dependencies = [
"bitflags 2.9.0", "bitflags 2.9.1",
"ironrdp-core", "ironrdp-core",
"ironrdp-pdu", "ironrdp-pdu",
"ironrdp-svc", "ironrdp-svc",
@ -414,19 +426,20 @@ dependencies = [
[[package]] [[package]]
name = "ironrdp-svc" name = "ironrdp-svc"
version = "0.3.0" version = "0.4.0"
dependencies = [ dependencies = [
"bitflags 2.9.0", "bitflags 2.9.1",
"ironrdp-core", "ironrdp-core",
"ironrdp-pdu", "ironrdp-pdu",
] ]
[[package]] [[package]]
name = "jobserver" name = "jobserver"
version = "0.1.32" version = "0.1.33"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a"
dependencies = [ dependencies = [
"getrandom",
"libc", "libc",
] ]
@ -438,9 +451,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
[[package]] [[package]]
name = "libc" name = "libc"
version = "0.2.171" version = "0.2.172"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa"
[[package]] [[package]]
name = "libfuzzer-sys" name = "libfuzzer-sys"
@ -454,9 +467,9 @@ dependencies = [
[[package]] [[package]]
name = "log" name = "log"
version = "0.4.26" version = "0.4.27"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94"
[[package]] [[package]]
name = "md-5" name = "md-5"
@ -482,9 +495,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
[[package]] [[package]]
name = "miniz_oxide" name = "miniz_oxide"
version = "0.8.5" version = "0.8.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a"
dependencies = [ dependencies = [
"adler2", "adler2",
"simd-adler32", "simd-adler32",
@ -541,9 +554,9 @@ dependencies = [
[[package]] [[package]]
name = "once_cell" name = "once_cell"
version = "1.21.0" version = "1.21.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cde51589ab56b20a6f686b2c68f7a0bd6add753d697abf720d63f8db3ab7b1ad" checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
[[package]] [[package]]
name = "pin-project-lite" name = "pin-project-lite"
@ -576,9 +589,9 @@ dependencies = [
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
version = "1.0.94" version = "1.0.95"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778"
dependencies = [ dependencies = [
"unicode-ident", "unicode-ident",
] ]
@ -592,6 +605,12 @@ dependencies = [
"proc-macro2", "proc-macro2",
] ]
[[package]]
name = "r-efi"
version = "5.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5"
[[package]] [[package]]
name = "radium" name = "radium"
version = "0.7.0" version = "0.7.0"
@ -651,9 +670,9 @@ dependencies = [
[[package]] [[package]]
name = "syn" name = "syn"
version = "2.0.100" version = "2.0.101"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -662,9 +681,9 @@ dependencies = [
[[package]] [[package]]
name = "synstructure" name = "synstructure"
version = "0.13.1" version = "0.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -768,6 +787,24 @@ version = "0.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
[[package]]
name = "wasi"
version = "0.14.2+wasi-0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3"
dependencies = [
"wit-bindgen-rt",
]
[[package]]
name = "wit-bindgen-rt"
version = "0.39.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1"
dependencies = [
"bitflags 2.9.1",
]
[[package]] [[package]]
name = "wyz" name = "wyz"
version = "0.5.1" version = "0.5.1"

View file

@ -38,4 +38,7 @@ extend-ignore-re = [
"cll", "cll",
"CLL", "CLL",
# Commit hashes in CHANGELOG.md files.
"\\b[0-9a-f]{7,40}\\b",
] ]