Files
Andy Dixon 50c0104d57 feat(core): RDP client on IronRDP
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.
2026-10-12 10:50:24 +01:00

35 lines
2.1 KiB
Plaintext

-----BEGIN CERTIFICATE-----
MIIF7DCCBNSgAwIBAgITfgAAAAj4QosOKRg46QAAAAAACDANBgkqhkiG9w0BAQsF
ADBTMRMwEQYKCZImiZPyLGQBGRYDY29tMRcwFQYKCZImiZPyLGQBGRYHZXhhbXBs
ZTEjMCEGA1UEAxMaZXhhbXBsZS1XSU4tSVZDRjQ4Nk8wM1MtQ0EwHhcNMjMwNjE5
MDkwODU1WhcNMjUwNjE5MDkxODU1WjBNMRMwEQYKCZImiZPyLGQBGRYDY29tMRcw
FQYKCZImiZPyLGQBGRYHZXhhbXBsZTEOMAwGA1UEAxMFVXNlcnMxDTALBgNVBAMT
BHB3MTEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC89JkTzo3zAbjv
AUuicoFICUb7bLQcehCZ+lmrLmjs8eJ5TY8grD/yxLEFCmvly2Hilmjs4+Ecir1s
zZQfZ5CJI+YZ22cKNuGb4lrfDXND+lvHnry47b4nvEXbYjBR9Cj1dyCQ5hdS3PlJ
Vxbui+zbcvN3JUVV5wupXWK0PKzoB/sP+5SOyLub/3QGOJOFZvYvDJQUBoQ3HGBS
lXAzfuXJvjvkMUfB1FaD+XXHGwDJKaHDEmd4qlHHQtslfOgXq7i6rYG3gM42VKRu
By7c1udTR9Mzw42mbKNvkrp87NR+fP0YtAGwtHLkxSpyNu71tzt1vIEkZg9Kqgk3
oYFibu3JAgMBAAGjggK9MIICuTA8BgkrBgEEAYI3FQcELzAtBiUrBgEEAYI3FQiE
wbxjg/SXIIe1lRWE8OQ+h7mXUk6DnepVnL1uAgFkAgECMB8GA1UdJQQYMBYGCisG
AQQBgjcUAgIGCCsGAQUFBwMCMA4GA1UdDwEB/wQEAwIFoDApBgkrBgEEAYI3FQoE
HDAaMAwGCisGAQQBgjcUAgIwCgYIKwYBBQUHAwIwHQYDVR0OBBYEFERdkI6e2JjU
60OG3MWhEcnNMbcaMB8GA1UdIwQYMBaAFEnLXthGACosdnBKTWb6r4Z75rlnMIHg
BgNVHR8EgdgwgdUwgdKggc+ggcyGgclsZGFwOi8vL0NOPWV4YW1wbGUtV0lOLUlW
Q0Y0ODZPMDNTLUNBLENOPVdJTi1JVkNGNDg2TzAzUyxDTj1DRFAsQ049UHVibGlj
JTIwS2V5JTIwU2VydmljZXMsQ049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixE
Qz1leGFtcGxlLERDPWNvbT9jZXJ0aWZpY2F0ZVJldm9jYXRpb25MaXN0P2Jhc2U/
b2JqZWN0Q2xhc3M9Y1JMRGlzdHJpYnV0aW9uUG9pbnQwgcwGCCsGAQUFBwEBBIG/
MIG8MIG5BggrBgEFBQcwAoaBrGxkYXA6Ly8vQ049ZXhhbXBsZS1XSU4tSVZDRjQ4
Nk8wM1MtQ0EsQ049QUlBLENOPVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNl
cnZpY2VzLENOPUNvbmZpZ3VyYXRpb24sREM9ZXhhbXBsZSxEQz1jb20/Y0FDZXJ0
aWZpY2F0ZT9iYXNlP29iamVjdENsYXNzPWNlcnRpZmljYXRpb25BdXRob3JpdHkw
KwYDVR0RBCQwIqAgBgorBgEEAYI3FAIDoBIMEHB3MTFAZXhhbXBsZS5jb20wDQYJ
KoZIhvcNAQELBQADggEBAEjdKUfHodjVNJheABu6TyPL3gL0+S355EMYDpTU6ho0
6+a1IWDbR5vUZMePzc8Ow4DW7V/GybwS8PcDMsK+MsVhLL4KB/uP0BFNUPjHjJno
i1tmt4C5YpqjPW3biFvIOSjtuZ49t1xbkmj9SO2cc8/mOmCI9WN/sX8Y0JXOnD7y
1XE6oQUxKNjEaN7aJ3juvsFsxBhGB8FH2DjOqMLykOlu26lJQCmLBSWoNCWR3J1N
F1Eu/p5VLx6ivM739+AAVT7ZzkPFjBbk4fkmSCw9MGV1Vk8Vp8elMFyD3j1QA1gP
smepITG7yGbxcn8ct4dmvew/73ebjk7YA8WhHVeWKhc=
-----END CERTIFICATE-----