graph LR
CLI_Applications["CLI Applications"]
RDP_Protocol_Stack["RDP Protocol Stack"]
RFB_VNC_Protocol_Stack["RFB (VNC) Protocol Stack"]
Security_Cryptography_Module["Security & Cryptography Module"]
Core_Abstractions_Utilities["Core Abstractions & Utilities"]
GUI_Integration_Layer["GUI Integration Layer"]
CLI_Applications -- "uses" --> RDP_Protocol_Stack
CLI_Applications -- "uses" --> RFB_VNC_Protocol_Stack
CLI_Applications -- "uses" --> Core_Abstractions_Utilities
CLI_Applications -- "uses" --> GUI_Integration_Layer
RDP_Protocol_Stack -- "delegates to" --> Security_Cryptography_Module
RDP_Protocol_Stack -- "builds upon" --> Core_Abstractions_Utilities
RDP_Protocol_Stack -- "sends events to" --> Core_Abstractions_Utilities
RFB_VNC_Protocol_Stack -- "builds upon" --> Core_Abstractions_Utilities
RFB_VNC_Protocol_Stack -- "sends events to" --> Core_Abstractions_Utilities
Security_Cryptography_Module -- "provides services to" --> RDP_Protocol_Stack
Core_Abstractions_Utilities -- "provides data/events to" --> CLI_Applications
Core_Abstractions_Utilities -- "provides data/events to" --> GUI_Integration_Layer
GUI_Integration_Layer -- "interacts with" --> Core_Abstractions_Utilities
click RDP_Protocol_Stack href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/rdpy/RDP_Protocol_Stack.md" "Details"
click RFB_VNC_Protocol_Stack href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/rdpy/RFB_VNC_Protocol_Stack.md" "Details"
click Security_Cryptography_Module href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/rdpy/Security_Cryptography_Module.md" "Details"
click Core_Abstractions_Utilities href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/rdpy/Core_Abstractions_Utilities.md" "Details"
click GUI_Integration_Layer href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/rdpy/GUI_Integration_Layer.md" "Details"
The rdpy project is structured around a core set of components designed for interacting with Remote Desktop Protocol (RDP) and Remote Framebuffer (RFB/VNC) services. At its foundation, the Core Abstractions & Utilities component provides essential building blocks, including generic protocol layering and remote session stream (RSS) management, which are leveraged by higher-level components. The RDP Protocol Stack and RFB (VNC) Protocol Stack are central to the application, each encapsulating the complexities of their respective protocols. These protocol stacks build upon the Core Abstractions & Utilities for fundamental operations and send events back to this core layer for processing or relay. The RDP Protocol Stack specifically delegates security-related tasks to the Security & Cryptography Module, which offers cryptographic primitives, NTLM authentication, and X.509 parsing to ensure secure communication. CLI Applications serve as the primary user-facing entry points, orchestrating interactions with both RDP and RFB protocol stacks. These command-line tools utilize the Core Abstractions & Utilities for common functionalities and, in some cases, interact with the GUI Integration Layer for tasks involving visual data processing or display, such as screenshot generation or RSS playback. The GUI Integration Layer itself interacts with the Core Abstractions & Utilities to receive and process data and events for its PyQt4-based graphical interface. This architecture promotes modularity, allowing for independent development and maintenance of protocol implementations, security features, and user interfaces, all unified by a robust core utility layer.
Primary entry points for various command-line utilities, some of which may incorporate or leverage GUI components for specific tasks (e.g., displaying or processing visual data). These applications orchestrate interactions with underlying protocol stacks and core utilities.
Related Classes/Methods:
rdpy-rdpclientrdpy-rdphoneypotrdpy-rdpmitmrdpy-rssplayerrdpy-rdpscreenshotrdpy-vncclientrdpy-vncscreenshot
RDP Protocol Stack [Expand]
Comprehensive implementation of the Remote Desktop Protocol, handling all layers from TPKT to PDU, security negotiations, and licensing.
Related Classes/Methods:
RFB (VNC) Protocol Stack [Expand]
Core implementation of the Remote Framebuffer (RFB) protocol, managing framebuffer updates, input events, and encoding schemes specific to VNC.
Related Classes/Methods:
Security & Cryptography Module [Expand]
Provides essential cryptographic primitives, algorithms, NTLM authentication, and X.509 certificate parsing for secure communication.
Related Classes/Methods:
rdpy.security.rc4rdpy.security.pyDesrdpy.security.x509rdpy.protocol.rdp.nla.ntlmrdpy.protocol.rdp.nla.cssp
Core Abstractions & Utilities [Expand]
A foundational layer offering reusable components and abstractions common across the project, including generic protocol layering and remote session stream (RSS) management.
Related Classes/Methods:
GUI Integration Layer [Expand]
Provides components and logic to integrate rdpy's protocol data and session events with a PyQt4-based graphical user interface.
Related Classes/Methods: