diff --git a/Cargo.lock b/Cargo.lock index f5fcf347..931342e3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2588,7 +2588,7 @@ dependencies = [ [[package]] name = "ironrdp-pdu" -version = "0.3.1" +version = "0.4.0" dependencies = [ "bit_field", "bitflags 2.9.0", @@ -4379,9 +4379,9 @@ dependencies = [ [[package]] name = "rsa" -version = "0.9.7" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47c75d7c5c6b673e58bf54d8544a9f432e3a925b0e80f7cd3602ab5c50c55519" +checksum = "78928ac1ed176a5ca1d17e578a1825f3d81ca54cf41053a592584b020cfd691b" dependencies = [ "const-oid", "digest", @@ -4924,9 +4924,9 @@ dependencies = [ [[package]] name = "sspi" -version = "0.15.2" +version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1aff64c6ee9aac256167ad86ed0cbfd83c9d622664253fb85199fc5b8dc2e35" +checksum = "1cbcc51fdf01a0dced9834c0c0d549c0d6ffda3065112c52a67f71c69fb106f1" dependencies = [ "async-dnssd", "async-recursion", @@ -6435,9 +6435,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7f4ea97f6f78012141bcdb6a216b2609f0979ada50b20ca5b52dde2eac2bb1" +checksum = "0e97b544156e9bebe1a0ffbc03484fc1ffe3100cbce3ffb17eac35f7cdd7ab36" dependencies = [ "memchr", ] diff --git a/crates/ironrdp-acceptor/Cargo.toml b/crates/ironrdp-acceptor/Cargo.toml index 4289f168..3d89658f 100644 --- a/crates/ironrdp-acceptor/Cargo.toml +++ b/crates/ironrdp-acceptor/Cargo.toml @@ -17,7 +17,7 @@ test = false [dependencies] ironrdp-core = { path = "../ironrdp-core", version = "0.1", features = ["alloc"] } -ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.3" } +ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.4" } ironrdp-svc = { path = "../ironrdp-svc", version = "0.2" } ironrdp-connector = { path = "../ironrdp-connector", version = "0.3" } ironrdp-async = { path = "../ironrdp-async", version = "0.3" } diff --git a/crates/ironrdp-async/Cargo.toml b/crates/ironrdp-async/Cargo.toml index 5932d1fa..9c0be85f 100644 --- a/crates/ironrdp-async/Cargo.toml +++ b/crates/ironrdp-async/Cargo.toml @@ -18,7 +18,7 @@ test = false [dependencies] ironrdp-connector = { path = "../ironrdp-connector", version = "0.3" } ironrdp-core = { path = "../ironrdp-core", version = "0.1", features = ["alloc"] } -ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.3" } +ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.4" } # ironrdp-session = { workspace = "../ironrdp-session", version = "0.2" } tracing = { version = "0.1", features = ["log"] } bytes = "1" diff --git a/crates/ironrdp-blocking/Cargo.toml b/crates/ironrdp-blocking/Cargo.toml index c5fff341..0aa6e0d9 100644 --- a/crates/ironrdp-blocking/Cargo.toml +++ b/crates/ironrdp-blocking/Cargo.toml @@ -19,7 +19,7 @@ test = false bytes = "1" ironrdp-connector = { path = "../ironrdp-connector", version = "0.3" } ironrdp-core = { path = "../ironrdp-core", version = "0.1", features = ["alloc"] } -ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.3" } +ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.4" } # ironrdp-session = { path = "../ironrdp-session", version = "0.2" } tracing = { version = "0.1", features = ["log"] } diff --git a/crates/ironrdp-cliprdr/Cargo.toml b/crates/ironrdp-cliprdr/Cargo.toml index 3423d601..e53f5d9c 100644 --- a/crates/ironrdp-cliprdr/Cargo.toml +++ b/crates/ironrdp-cliprdr/Cargo.toml @@ -17,7 +17,7 @@ test = false [dependencies] ironrdp-core = { path = "../ironrdp-core", version = "0.1" } -ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.3" } +ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.4" } ironrdp-svc = { path = "../ironrdp-svc", version = "0.2" } thiserror = "1.0" tracing = { version = "0.1", features = ["log"] } diff --git a/crates/ironrdp-connector/Cargo.toml b/crates/ironrdp-connector/Cargo.toml index be429762..6eceabc3 100644 --- a/crates/ironrdp-connector/Cargo.toml +++ b/crates/ironrdp-connector/Cargo.toml @@ -22,7 +22,7 @@ arbitrary = ["dep:arbitrary"] ironrdp-svc = { path = "../ironrdp-svc", version = "0.2" } ironrdp-core = { path = "../ironrdp-core", version = "0.1" } ironrdp-error = { path = "../ironrdp-error", version = "0.1" } -ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.3", features = ["std"] } +ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.4", features = ["std"] } arbitrary = { version = "1", features = ["derive"], optional = true } rand_core = { version = "0.6", features = ["std"] } # TODO: dependency injection? sspi = "0.15" diff --git a/crates/ironrdp-displaycontrol/Cargo.toml b/crates/ironrdp-displaycontrol/Cargo.toml index fd519c94..1ddb742d 100644 --- a/crates/ironrdp-displaycontrol/Cargo.toml +++ b/crates/ironrdp-displaycontrol/Cargo.toml @@ -18,7 +18,7 @@ test = false [dependencies] ironrdp-core = { path = "../ironrdp-core", version = "0.1" } ironrdp-dvc = { path = "../ironrdp-dvc", version = "0.1" } -ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.3" } +ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.4" } ironrdp-svc = { path = "../ironrdp-svc", version = "0.2" } tracing = { version = "0.1", features = ["log"] } diff --git a/crates/ironrdp-dvc/Cargo.toml b/crates/ironrdp-dvc/Cargo.toml index 04de9f07..ad9373ce 100644 --- a/crates/ironrdp-dvc/Cargo.toml +++ b/crates/ironrdp-dvc/Cargo.toml @@ -22,7 +22,7 @@ std = [] [dependencies] ironrdp-core = { path = "../ironrdp-core", version = "0.1", features = ["alloc"] } ironrdp-svc = { path = "../ironrdp-svc", version = "0.2" } -ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.3", features = ["alloc"] } +ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.4", features = ["alloc"] } tracing = { version = "0.1", features = ["log"] } slab = "0.4" diff --git a/crates/ironrdp-graphics/Cargo.toml b/crates/ironrdp-graphics/Cargo.toml index 8dbc1fbe..91afcc48 100644 --- a/crates/ironrdp-graphics/Cargo.toml +++ b/crates/ironrdp-graphics/Cargo.toml @@ -20,7 +20,7 @@ bit_field = "0.10" bitflags = "2.4" bitvec = "1.0" ironrdp-core = { path = "../ironrdp-core", version = "0.1" } -ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.3", features = ["std"] } +ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.4", features = ["std"] } byteorder = "1.5" # TODO: remove lazy_static.workspace = true # Legacy crate; prefer std::sync::LazyLock or LazyCell num-derive.workspace = true # TODO: remove diff --git a/crates/ironrdp-input/Cargo.toml b/crates/ironrdp-input/Cargo.toml index 3dd3a7b5..18929cbb 100644 --- a/crates/ironrdp-input/Cargo.toml +++ b/crates/ironrdp-input/Cargo.toml @@ -16,7 +16,7 @@ doctest = false test = false [dependencies] -ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.3" } +ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.4" } bitvec = "1.0" smallvec = "1.13" diff --git a/crates/ironrdp-pdu/CHANGELOG.md b/crates/ironrdp-pdu/CHANGELOG.md index c905cc7e..84ab37e2 100644 --- a/crates/ironrdp-pdu/CHANGELOG.md +++ b/crates/ironrdp-pdu/CHANGELOG.md @@ -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). +## [[0.4.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-pdu-v0.3.1...ironrdp-pdu-v0.4.0)] - 2025-03-12 + +### Bug Fixes + +- TS_RFX_CHANNELT width/height SHOULD be within range ([097cdb66f9](https://github.com/Devolutions/IronRDP/commit/097cdb66f965700caeea5659ff7fe4a129b84838)) + + According to the specification, the value does not need to be in the range: + https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdprfx/4060f07e-9d73-454d-841e-131a93aca675 + + (the ironrdp-server can send larger values) + +### Refactor + +- [**breaking**] Remove RfxChannelWidth and RfxChannelHeight structs ([7cb1ac99d1](https://github.com/Devolutions/IronRDP/commit/7cb1ac99d189cdcaa17fa17e51f95be630e9982e)) + ## [[0.3.1](https://github.com/Devolutions/IronRDP/compare/ironrdp-pdu-v0.3.0...ironrdp-pdu-v0.3.1)] - 2025-03-12 ### Build diff --git a/crates/ironrdp-pdu/Cargo.toml b/crates/ironrdp-pdu/Cargo.toml index 2bcdf1c4..54a1befb 100644 --- a/crates/ironrdp-pdu/Cargo.toml +++ b/crates/ironrdp-pdu/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ironrdp-pdu" -version = "0.3.1" +version = "0.4.0" readme = "README.md" description = "RDP PDU encoding and decoding" edition.workspace = true diff --git a/crates/ironrdp-rdpdr-native/Cargo.toml b/crates/ironrdp-rdpdr-native/Cargo.toml index 6911f2b4..ebcfdb57 100644 --- a/crates/ironrdp-rdpdr-native/Cargo.toml +++ b/crates/ironrdp-rdpdr-native/Cargo.toml @@ -17,7 +17,7 @@ test = false [target.'cfg(any(target_os = "macos", target_os = "linux"))'.dependencies] ironrdp-core = { path = "../ironrdp-core", version = "0.1" } -ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.3" } +ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.4" } ironrdp-svc = { path = "../ironrdp-svc", version = "0.2" } ironrdp-rdpdr = { path = "../ironrdp-rdpdr", version = "0.1" } nix = { version = "0.29", features = ["fs", "dir"] } diff --git a/crates/ironrdp-rdpdr/Cargo.toml b/crates/ironrdp-rdpdr/Cargo.toml index 38f64ef7..17bcef87 100644 --- a/crates/ironrdp-rdpdr/Cargo.toml +++ b/crates/ironrdp-rdpdr/Cargo.toml @@ -18,7 +18,7 @@ test = false [dependencies] ironrdp-core = { path = "../ironrdp-core", version = "0.1" } ironrdp-error = { path = "../ironrdp-error", version = "0.1" } -ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.3" } +ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.4" } ironrdp-svc = { path = "../ironrdp-svc", version = "0.2" } tracing = { version = "0.1", features = ["log"] } bitflags = "2.4" diff --git a/crates/ironrdp-rdpsnd/Cargo.toml b/crates/ironrdp-rdpsnd/Cargo.toml index 42e1ae94..76c85c63 100644 --- a/crates/ironrdp-rdpsnd/Cargo.toml +++ b/crates/ironrdp-rdpsnd/Cargo.toml @@ -24,7 +24,7 @@ bitflags = "2.4" tracing = { version = "0.1", features = ["log"] } ironrdp-svc = { path = "../ironrdp-svc", version = "0.2" } ironrdp-core = { path = "../ironrdp-core", version = "0.1", features = ["alloc"] } -ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.3", features = ["alloc"] } +ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.4", features = ["alloc"] } [lints] workspace = true diff --git a/crates/ironrdp-server/Cargo.toml b/crates/ironrdp-server/Cargo.toml index d40b7e7c..4c1a7f53 100644 --- a/crates/ironrdp-server/Cargo.toml +++ b/crates/ironrdp-server/Cargo.toml @@ -32,7 +32,7 @@ async-trait = "0.1" ironrdp-async = { path = "../ironrdp-async", version = "0.3" } ironrdp-ainput = { path = "../ironrdp-ainput", version = "0.1" } ironrdp-core = { path = "../ironrdp-core", version = "0.1" } -ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.3" } +ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.4" } ironrdp-svc = { path = "../ironrdp-svc", version = "0.2" } ironrdp-cliprdr = { path = "../ironrdp-cliprdr", version = "0.1" } ironrdp-displaycontrol = { path = "../ironrdp-displaycontrol", version = "0.1" } diff --git a/crates/ironrdp-session/Cargo.toml b/crates/ironrdp-session/Cargo.toml index 771bc44e..bb79ac09 100644 --- a/crates/ironrdp-session/Cargo.toml +++ b/crates/ironrdp-session/Cargo.toml @@ -22,7 +22,7 @@ ironrdp-svc = { path = "../ironrdp-svc", version = "0.2" } ironrdp-dvc = { path = "../ironrdp-dvc", version = "0.1" } ironrdp-error = { path = "../ironrdp-error", version = "0.1" } ironrdp-graphics = { path = "../ironrdp-graphics", version = "0.2" } -ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.3", features = ["std"] } +ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.4", features = ["std"] } ironrdp-displaycontrol = { path = "../ironrdp-displaycontrol", version = "0.1" } tracing = { version = "0.1", features = ["log"] } diff --git a/crates/ironrdp-svc/Cargo.toml b/crates/ironrdp-svc/Cargo.toml index d6d62a81..05843d2b 100644 --- a/crates/ironrdp-svc/Cargo.toml +++ b/crates/ironrdp-svc/Cargo.toml @@ -21,7 +21,7 @@ std = [] [dependencies] ironrdp-core = { path = "../ironrdp-core", version = "0.1" } -ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.3", features = ["alloc", "std"] } +ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.4", features = ["alloc", "std"] } bitflags = "2.4" [lints] diff --git a/crates/ironrdp/Cargo.toml b/crates/ironrdp/Cargo.toml index b382f322..95abd9db 100644 --- a/crates/ironrdp/Cargo.toml +++ b/crates/ironrdp/Cargo.toml @@ -34,7 +34,7 @@ displaycontrol = ["dep:ironrdp-displaycontrol"] [dependencies] ironrdp-core = { path = "../ironrdp-core", version = "0.1", optional = true } -ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.3", optional = true } +ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.4", optional = true } ironrdp-cliprdr = { path = "../ironrdp-cliprdr", version = "0.1", optional = true } ironrdp-connector = { path = "../ironrdp-connector", version = "0.3", optional = true } ironrdp-acceptor = { path = "../ironrdp-acceptor", version = "0.3", optional = true } diff --git a/fuzz/Cargo.lock b/fuzz/Cargo.lock index 86fd52f1..f0bb0406 100644 --- a/fuzz/Cargo.lock +++ b/fuzz/Cargo.lock @@ -369,7 +369,7 @@ dependencies = [ [[package]] name = "ironrdp-pdu" -version = "0.3.1" +version = "0.4.0" dependencies = [ "bit_field", "bitflags 2.9.0",