Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
873 changes: 452 additions & 421 deletions Cargo.lock

Large diffs are not rendered by default.

24 changes: 24 additions & 0 deletions crates/iron-remote-desktop/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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).


## [[0.8.0](https://github.com/Devolutions/IronRDP/compare/iron-remote-desktop-v0.7.0...iron-remote-desktop-v0.8.0)] - 2026-03-18

### <!-- 1 -->Features

- Expose granular RDCleanPath error details ([#1117](https://github.com/Devolutions/IronRDP/issues/1117)) ([2911124e8f](https://github.com/Devolutions/IronRDP/commit/2911124e8fe6160bc8ba03a574b67077e6d2cca9))

Add RDCleanPathDetails struct to provide detailed error information for
RDCleanPath errors, including HTTP status codes, WSA error codes, and
TLS alert codes.

Allows the web client to distinguish between different types of network
errors (say, WSAEACCES/10013) instead of showing a generic RDCleanpath
error message.

### <!-- 6 -->Documentation

- Establish the MSRV policy (current is 1.89) ([#1157](https://github.com/Devolutions/IronRDP/issues/1157)) ([c10e6ff16c](https://github.com/Devolutions/IronRDP/commit/c10e6ff16cc45f094b24e87ed1d46eb88b4a0419))

The MSRV is the oldest stable Rust release that is at least 6 months
old, bounded by the Rust version available in Debian stable-backports
and Fedora stable.



## [[0.7.0](https://github.com/Devolutions/IronRDP/compare/iron-remote-desktop-v0.6.0...iron-remote-desktop-v0.7.0)] - 2025-09-29

### <!-- 4 -->Bug Fixes
Expand Down
2 changes: 1 addition & 1 deletion crates/iron-remote-desktop/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "iron-remote-desktop"
version = "0.7.0"
version = "0.8.0"
readme = "README.md"
description = "Helper crate for building WASM modules compatible with iron-remote-desktop WebComponent"
edition.workspace = true
Expand Down
28 changes: 28 additions & 0 deletions crates/ironrdp-acceptor/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,34 @@ 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.9.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-acceptor-v0.8.0...ironrdp-acceptor-v0.9.0)] - 2026-03-18

### <!-- 0 -->Security

- Send RDP_NEG_FAILURE on security protocol mismatch ([#1152](https://github.com/Devolutions/IronRDP/issues/1152)) ([02b9f4efbb](https://github.com/Devolutions/IronRDP/commit/02b9f4efbbe634a50efa0601f30e0a2096a6f78e))

When the client and server have no common security protocol, the
acceptor now sends a proper `RDP_NEG_FAILURE` PDU before returning an
error, instead of dropping the TCP connection.

### <!-- 1 -->Features

- Expose received client credentials in AcceptorResult ([#1155](https://github.com/Devolutions/IronRDP/issues/1155)) ([eda32d8acf](https://github.com/Devolutions/IronRDP/commit/eda32d8acffbb2e37d13c790105ff022067f5efb))

### <!-- 4 -->Bug Fixes

- Skip credential check when server credentials are None ([#1150](https://github.com/Devolutions/IronRDP/issues/1150)) ([84015c9467](https://github.com/Devolutions/IronRDP/commit/84015c946731579dfd7a49294b2e55259e4f8d3f))

### <!-- 6 -->Documentation

- Establish the MSRV policy (current is 1.89) ([#1157](https://github.com/Devolutions/IronRDP/issues/1157)) ([c10e6ff16c](https://github.com/Devolutions/IronRDP/commit/c10e6ff16cc45f094b24e87ed1d46eb88b4a0419))

The MSRV is the oldest stable Rust release that is at least 6 months
old, bounded by the Rust version available in Debian stable-backports
and Fedora stable.



## [[0.8.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-acceptor-v0.7.0...ironrdp-acceptor-v0.8.0)] - 2025-12-18

### <!-- 4 -->Bug Fixes
Expand Down
6 changes: 3 additions & 3 deletions crates/ironrdp-acceptor/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "ironrdp-acceptor"
version = "0.8.0"
version = "0.9.0"
readme = "README.md"
description = "State machines to drive an RDP connection acceptance sequence"
edition.workspace = true
Expand All @@ -18,9 +18,9 @@ test = false

[dependencies]
ironrdp-core = { path = "../ironrdp-core", version = "0.1", features = ["alloc"] } # public
ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.7" } # public
ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.8" } # public
ironrdp-svc = { path = "../ironrdp-svc", version = "0.6" } # public
ironrdp-connector = { path = "../ironrdp-connector", version = "0.8" } # public
ironrdp-connector = { path = "../ironrdp-connector", version = "0.9" } # public
ironrdp-async = { path = "../ironrdp-async", version = "0.8" } # public
tracing = { version = "0.1", features = ["log"] }

Expand Down
22 changes: 22 additions & 0 deletions crates/ironrdp-ainput/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,28 @@ 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.5.1](https://github.com/Devolutions/IronRDP/compare/ironrdp-ainput-v0.5.0...ironrdp-ainput-v0.5.1)] - 2026-03-18

### <!-- 4 -->Bug Fixes

- Replace all from_bits_truncate with from_bits_retain ([#1144](https://github.com/Devolutions/IronRDP/issues/1144)) ([353e30ddfd](https://github.com/Devolutions/IronRDP/commit/353e30ddfdaafc897db10b8663e364ef7775a7fd))

from_bits_truncate silently discards unknown bits, which breaks the
encode/decode round-trip property. This matters for fuzzing because a
PDU that decodes and re-encodes should produce identical bytes.
from_bits_retain preserves all bits, including those not yet defined in
our bitflags types, so the round-trip property holds.

### <!-- 6 -->Documentation

- Establish the MSRV policy (current is 1.89) ([#1157](https://github.com/Devolutions/IronRDP/issues/1157)) ([c10e6ff16c](https://github.com/Devolutions/IronRDP/commit/c10e6ff16cc45f094b24e87ed1d46eb88b4a0419))

The MSRV is the oldest stable Rust release that is at least 6 months
old, bounded by the Rust version available in Debian stable-backports
and Fedora stable.



## [[0.2.1](https://github.com/Devolutions/IronRDP/compare/ironrdp-ainput-v0.2.0...ironrdp-ainput-v0.2.1)] - 2025-05-27

### <!-- 7 -->Build
Expand Down
2 changes: 1 addition & 1 deletion crates/ironrdp-ainput/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "ironrdp-ainput"
version = "0.5.0"
version = "0.5.1"
readme = "README.md"
description = "AInput dynamic channel implementation"
edition.workspace = true
Expand Down
12 changes: 12 additions & 0 deletions crates/ironrdp-async/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,18 @@ 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.8.1](https://github.com/Devolutions/IronRDP/compare/ironrdp-async-v0.8.0...ironrdp-async-v0.8.1)] - 2026-03-18

### <!-- 6 -->Documentation

- Establish the MSRV policy (current is 1.89) ([#1157](https://github.com/Devolutions/IronRDP/issues/1157)) ([c10e6ff16c](https://github.com/Devolutions/IronRDP/commit/c10e6ff16cc45f094b24e87ed1d46eb88b4a0419))

The MSRV is the oldest stable Rust release that is at least 6 months
old, bounded by the Rust version available in Debian stable-backports
and Fedora stable.



## [[0.8.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-async-v0.7.0...ironrdp-async-v0.8.0)] - 2025-12-18

### <!-- 4 -->Bug Fixes
Expand Down
6 changes: 3 additions & 3 deletions crates/ironrdp-async/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "ironrdp-async"
version = "0.8.0"
version = "0.8.1"
readme = "README.md"
description = "Provides `Future`s wrapping the IronRDP state machines conveniently"
edition.workspace = true
Expand All @@ -17,9 +17,9 @@ doctest = false
test = false

[dependencies]
ironrdp-connector = { path = "../ironrdp-connector", version = "0.8" } # public
ironrdp-connector = { path = "../ironrdp-connector", version = "0.9" } # public
ironrdp-core = { path = "../ironrdp-core", version = "0.1", features = ["alloc"] } # public
ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.7" } # public
ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.8" } # public
tracing = { version = "0.1", features = ["log"] }
bytes = "1" # public

Expand Down
12 changes: 12 additions & 0 deletions crates/ironrdp-blocking/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,18 @@ 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.8.1](https://github.com/Devolutions/IronRDP/compare/ironrdp-blocking-v0.8.0...ironrdp-blocking-v0.8.1)] - 2026-03-18

### <!-- 6 -->Documentation

- Establish the MSRV policy (current is 1.89) ([#1157](https://github.com/Devolutions/IronRDP/issues/1157)) ([c10e6ff16c](https://github.com/Devolutions/IronRDP/commit/c10e6ff16cc45f094b24e87ed1d46eb88b4a0419))

The MSRV is the oldest stable Rust release that is at least 6 months
old, bounded by the Rust version available in Debian stable-backports
and Fedora stable.



## [[0.8.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-blocking-v0.7.0...ironrdp-blocking-v0.8.0)] - 2025-12-18

### <!-- 4 -->Bug Fixes
Expand Down
6 changes: 3 additions & 3 deletions crates/ironrdp-blocking/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "ironrdp-blocking"
version = "0.8.0"
version = "0.8.1"
readme = "README.md"
description = "Blocking I/O abstraction wrapping the IronRDP state machines conveniently"
edition.workspace = true
Expand All @@ -17,9 +17,9 @@ doctest = false
test = false

[dependencies]
ironrdp-connector = { path = "../ironrdp-connector", version = "0.8" } # public
ironrdp-connector = { path = "../ironrdp-connector", version = "0.9" } # public
ironrdp-core = { path = "../ironrdp-core", version = "0.1", features = ["alloc"] } # public
ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.7" } # public
ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.8" } # public
tracing = { version = "0.1", features = ["log"] }
bytes = "1" # public

Expand Down
19 changes: 19 additions & 0 deletions crates/ironrdp-bulk/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Changelog

All notable changes to this project will be documented in this file.

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.1.1](https://github.com/Devolutions/IronRDP/compare/ironrdp-bulk-v0.1.0...ironrdp-bulk-v0.1.1)] - 2026-03-18

### <!-- 6 -->Documentation

- Establish the MSRV policy (current is 1.89) ([#1157](https://github.com/Devolutions/IronRDP/issues/1157)) ([c10e6ff16c](https://github.com/Devolutions/IronRDP/commit/c10e6ff16cc45f094b24e87ed1d46eb88b4a0419))

The MSRV is the oldest stable Rust release that is at least 6 months
old, bounded by the Rust version available in Debian stable-backports
and Fedora stable.


2 changes: 1 addition & 1 deletion crates/ironrdp-bulk/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "ironrdp-bulk"
version = "0.1.0"
version = "0.1.1"
description = "Bulk compression algorithms (MPPC, XCRUSH, NCRUSH) for IronRDP"
edition.workspace = true
rust-version = "1.89"
Expand Down
16 changes: 16 additions & 0 deletions crates/ironrdp-cliprdr-format/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,22 @@ 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.2.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-cliprdr-format-v0.1.4...ironrdp-cliprdr-format-v0.2.0)] - 2026-03-18

### <!-- 6 -->Documentation

- Establish the MSRV policy (current is 1.89) ([#1157](https://github.com/Devolutions/IronRDP/issues/1157)) ([c10e6ff16c](https://github.com/Devolutions/IronRDP/commit/c10e6ff16cc45f094b24e87ed1d46eb88b4a0419))

The MSRV is the oldest stable Rust release that is at least 6 months
old, bounded by the Rust version available in Debian stable-backports
and Fedora stable.

### Refactor

- [**breaking**] Enable `unwrap_used` clippy correctness lint ([#965](https://github.com/Devolutions/IronRDP/issues/965)) ([630525deae](https://github.com/Devolutions/IronRDP/commit/630525deae92f39bfed53248ab0fec0e71249322))



## [[0.1.4](https://github.com/Devolutions/IronRDP/compare/ironrdp-cliprdr-format-v0.1.3...ironrdp-cliprdr-format-v0.1.4)] - 2025-09-04

### <!-- 7 -->Build
Expand Down
2 changes: 1 addition & 1 deletion crates/ironrdp-cliprdr-format/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "ironrdp-cliprdr-format"
version = "0.1.4"
version = "0.2.0"
readme = "README.md"
description = "CLIPRDR format conversion library"
edition.workspace = true
Expand Down
12 changes: 12 additions & 0 deletions crates/ironrdp-cliprdr-native/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,18 @@ 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.5.1](https://github.com/Devolutions/IronRDP/compare/ironrdp-cliprdr-native-v0.5.0...ironrdp-cliprdr-native-v0.5.1)] - 2026-03-18

### <!-- 6 -->Documentation

- Establish the MSRV policy (current is 1.89) ([#1157](https://github.com/Devolutions/IronRDP/issues/1157)) ([c10e6ff16c](https://github.com/Devolutions/IronRDP/commit/c10e6ff16cc45f094b24e87ed1d46eb88b4a0419))

The MSRV is the oldest stable Rust release that is at least 6 months
old, bounded by the Rust version available in Debian stable-backports
and Fedora stable.



## [[0.5.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-cliprdr-native-v0.4.0...ironrdp-cliprdr-native-v0.5.0)] - 2025-12-18

### <!-- 4 -->Bug Fixes
Expand Down
4 changes: 2 additions & 2 deletions crates/ironrdp-cliprdr-native/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "ironrdp-cliprdr-native"
version = "0.5.0"
version = "0.5.1"
readme = "README.md"
description = "Native CLIPRDR static channel backend implementations for IronRDP"
edition.workspace = true
Expand All @@ -17,7 +17,7 @@ doctest = false
test = false

[dependencies]
ironrdp-cliprdr = { path = "../ironrdp-cliprdr", version = "0.5" } # public
ironrdp-cliprdr = { path = "../ironrdp-cliprdr", version = "0.6" } # public
ironrdp-core = { path = "../ironrdp-core", version = "0.1" }
tracing = { version = "0.1", features = ["log"] }

Expand Down
61 changes: 61 additions & 0 deletions crates/ironrdp-cliprdr/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,67 @@ 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.6.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-cliprdr-v0.5.0...ironrdp-cliprdr-v0.6.0)] - 2026-03-18

### <!-- 1 -->Features

- Add clipboard data locking methods ([#1064](https://github.com/Devolutions/IronRDP/issues/1064)) ([58c3df84bb](https://github.com/Devolutions/IronRDP/commit/58c3df84bb9cafc8669315834cead35a71483c34))

Per [MS-RDPECLIP sections 2.2.4.6 and 2.2.4.7][lock-spec], the Local
Clipboard
Owner may lock the Shared Clipboard Owner's clipboard data before
requesting
file contents to ensure data stability during multi-request transfers.

This enables server implementations to safely request file data from
clients
when handling clipboard paste operations.

---------

- Add request_file_contents method ([#1065](https://github.com/Devolutions/IronRDP/issues/1065)) ([c30fc35a28](https://github.com/Devolutions/IronRDP/commit/c30fc35a28d6218603c1662e98e8b3053bea3aa5))

Per [MS-RDPECLIP section 2.2.5.3][file-contents-spec], the Local
Clipboard Owner
sends File Contents Request PDU to retrieve file data from the Shared
Clipboard
Owner during paste operations.

This enables server implementations to request file contents from
clients,
completing the bidirectional file transfer capability.

- Add SendFileContentsResponse message variant ([#1066](https://github.com/Devolutions/IronRDP/issues/1066)) ([25f81337aa](https://github.com/Devolutions/IronRDP/commit/25f81337aa494af9a21f55f12ec27fd946465cbe))

Adds `SendFileContentsResponse` to `ClipboardMessage` enum, enabling
clipboard
backends to signal when file data is ready to send via
`submit_file_contents()`.

This provides the message-based interface pattern used consistently by
server
implementations for clipboard operations.

### <!-- 4 -->Bug Fixes

- Replace all from_bits_truncate with from_bits_retain ([#1144](https://github.com/Devolutions/IronRDP/issues/1144)) ([353e30ddfd](https://github.com/Devolutions/IronRDP/commit/353e30ddfdaafc897db10b8663e364ef7775a7fd))

from_bits_truncate silently discards unknown bits, which breaks the
encode/decode round-trip property. This matters for fuzzing because a
PDU that decodes and re-encodes should produce identical bytes.
from_bits_retain preserves all bits, including those not yet defined in
our bitflags types, so the round-trip property holds.

### <!-- 6 -->Documentation

- Establish the MSRV policy (current is 1.89) ([#1157](https://github.com/Devolutions/IronRDP/issues/1157)) ([c10e6ff16c](https://github.com/Devolutions/IronRDP/commit/c10e6ff16cc45f094b24e87ed1d46eb88b4a0419))

The MSRV is the oldest stable Rust release that is at least 6 months
old, bounded by the Rust version available in Debian stable-backports
and Fedora stable.



## [[0.5.0](https://github.com/Devolutions/IronRDP/compare/ironrdp-cliprdr-v0.4.0...ironrdp-cliprdr-v0.5.0)] - 2025-12-18

### <!-- 4 -->Bug Fixes
Expand Down
4 changes: 2 additions & 2 deletions crates/ironrdp-cliprdr/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "ironrdp-cliprdr"
version = "0.5.0"
version = "0.6.0"
readme = "README.md"
description = "CLIPRDR static channel for clipboard implemented as described in MS-RDPECLIP"
edition.workspace = true
Expand All @@ -18,7 +18,7 @@ test = false

[dependencies]
ironrdp-core = { path = "../ironrdp-core", version = "0.1" } # public
ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.7" } # public
ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.8" } # public
ironrdp-svc = { path = "../ironrdp-svc", version = "0.6" } # public
tracing = { version = "0.1", features = ["log"] }
bitflags = "2.9"
Expand Down
Loading