Documentation ¶
Index ¶
- Constants
- func ReadMcsPduHeader(r io.Reader) uint8
- func WriteMcsPduHeader(w io.Writer, pduType, option uint8)
- type CertBlob
- type CertData
- type ChannelDef
- type ClientAttachUser
- type ClientChannelJoin
- type ClientCoreData
- type ClientErectDomain
- type ClientNetworkData
- type ClientSecurityData
- type ConnectInitial
- type ConnectResponse
- type DomainParameters
- type GccConferenceCreateRequest
- type GccConferenceCreateResponse
- type ProprietaryServerCertificate
- type RSAPublicKey
- type ReceiveDataResponse
- type SendDataRequest
- type ServerAttachUserConfirm
- type ServerCertificate
- type ServerChannelJoinConfirm
- type ServerCoreData
- type ServerMessageChannelData
- type ServerMultitransportChannelData
- type ServerNetworkData
- type ServerSecurityData
- type UserDataHeader
- type X509CertificateChain
Constants ¶
const ( RDP_VERSION_4 = 0x00080001 // RDP 4.0 clients RDP_VERSION_5_PLUS = 0x00080004 // RDP 5.0, 5.1, 5.2, 6.0, 6.1, 7.0, 7.1, 8.0, and 8.1 clients RDP_VERSION_10 = 0x00080005 // RDP 10.0 clients RDP_VERSION_10_0 = 0x00080005 RDP_VERSION_10_1 = 0x00080006 RDP_VERSION_10_2 = 0x00080007 RDP_VERSION_10_3 = 0x00080008 RDP_VERSION_10_4 = 0x00080009 RDP_VERSION_10_5 = 0x0008000a RDP_VERSION_10_6 = 0x0008000b RDP_VERSION_10_7 = 0x0008000C RDP_VERSION_10_8 = 0x0008000D RDP_VERSION_10_9 = 0x0008000E RDP_VERSION_10_10 = 0x0008000F RDP_VERSION_10_11 = 0x00080010 )
ClientCoreData Version
const ( RNS_UD_COLOR_8BPP = 0xCA01 RNS_UD_COLOR_16BPP_555 = 0xCA02 RNS_UD_COLOR_16BPP_565 = 0xCA03 RNS_UD_COLOR_24BPP = 0xCA04 )
const ( ARABIC uint32 = 0x00000401 BULGARIAN = 0x00000402 CHINESE_US_KEYBOARD = 0x00000404 CZECH = 0x00000405 DANISH = 0x00000406 GERMAN = 0x00000407 GREEK = 0x00000408 US = 0x00000409 SPANISH = 0x0000040a FINNISH = 0x0000040b FRENCH = 0x0000040c HEBREW = 0x0000040d HUNGARIAN = 0x0000040e ICELANDIC = 0x0000040f ITALIAN = 0x00000410 JAPANESE = 0x00000411 KOREAN = 0x00000412 DUTCH = 0x00000413 NORWEGIAN = 0x00000414 )
const ( KT_IBM_PC_XT_83_KEY = 0x00000001 KT_OLIVETTI = 0x00000002 KT_IBM_PC_AT_84_KEY = 0x00000003 KT_IBM_101_102_KEYS = 0x00000004 KT_NOKIA_1050 = 0x00000005 KT_NOKIA_9140 = 0x00000006 KT_JAPANESE = 0x00000007 )
const ( HIGH_COLOR_4BPP = 0x0004 HIGH_COLOR_8BPP = 0x0008 HIGH_COLOR_15BPP = 0x000f HIGH_COLOR_16BPP = 0x0010 HIGH_COLOR_24BPP = 0x0018 )
const ( RNS_UD_24BPP_SUPPORT uint16 = 0x0001 RNS_UD_16BPP_SUPPORT = 0x0002 RNS_UD_15BPP_SUPPORT = 0x0004 RNS_UD_32BPP_SUPPORT = 0x0008 )
const ( RNS_UD_CS_SUPPORT_ERRINFO_PDU uint16 = 0x0001 RNS_UD_CS_WANT_32BPP_SESSION = 0x0002 RNS_UD_CS_SUPPORT_STATUSINFO_PDU = 0x0004 RNS_UD_CS_STRONG_ASYMMETRIC_KEYS = 0x0008 RNS_UD_CS_UNUSED = 0x0010 RNS_UD_CS_VALID_CONNECTION_TYPE = 0x0020 RNS_UD_CS_SUPPORT_MONITOR_LAYOUT_PDU = 0x0040 RNS_UD_CS_SUPPORT_NETCHAR_AUTODETECT = 0x0080 RNS_UD_CS_SUPPORT_DYNVC_GFX_PROTOCOL = 0x0100 RNS_UD_CS_SUPPORT_DYNAMIC_TIME_ZONE = 0x0200 RNS_UD_CS_SUPPORT_HEARTBEAT_PDU = 0x0400 )
const ( CHANNEL_OPTION_INITIALIZED = 0x80000000 CHANNEL_OPTION_ENCRYPT_RDP = 0x40000000 CHANNEL_OPTION_ENCRYPT_SC = 0x20000000 CHANNEL_OPTION_ENCRYPT_CS = 0x10000000 CHANNEL_OPTION_PRI_HIGH = 0x08000000 CHANNEL_OPTION_PRI_MED = 0x04000000 CHANNEL_OPTION_PRI_LOW = 0x02000000 CHANNEL_OPTION_COMPRESS_RDP = 0x00800000 CHANNEL_OPTION_COMPRESS = 0x00400000 CHANNEL_OPTION_SHOW_PROTOCOL = 0x00200000 REMOTE_CONTROL_PERSISTENT = 0x00100000 )
ChannelDef Options
const ( ENCRYPTION_FLAG_40BIT uint32 = 0x00000001 ENCRYPTION_FLAG_128BIT = 0x00000002 ENCRYPTION_FLAG_56BIT = 0x00000008 FIPS_ENCRYPTION_FLAG = 0x00000010 )
ClientSecurityData EncryptionMethods
const ( MCS_TYPE_CONNECT_INITIAL = 0x65 MCS_TYPE_CONNECT_RESPONSE = 0x66 )
for MCS Message
const ( MCS_PDUTYPE_ERECT_DOMAIN_REQUEST = 1 MCS_PDUTYPE_ATTACH_USER_REQUEST = 10 MCS_PDUTYPE_ATTACH_USER_CONFIRM = 11 MCS_PDUTYPE_CHANNEL_JOIN_REQUEST = 14 MCS_PDUTYPE_CHANNEL_JOIN_CONFIRM = 15 MCS_PDUTYPE_SEND_DATA_REQUEST = 25 MCS_PDUTYPE_SEND_DATA_INDICATION = 26 )
for MCS PDU type
const ( MCS_CHANNEL_USERID_BASE = 1001 MCS_CHANNEL_GLOBAL = 1003 )
const ( CERT_CHAIN_VERSION_1 = 0x00000001 CERT_CHAIN_VERSION_2 = 0x00000002 )
const ( ENCRYPTION_METHOD_NONE = 0x00000000 ENCRYPTION_METHOD_40BIT = 0x00000001 ENCRYPTION_METHOD_128BIT = 0x00000002 ENCRYPTION_METHOD_56BIT = 0x00000008 ENCRYPTION_METHOD_FIPS = 0x00000010 )
encryptionMethod
const ( ENCRYPTION_LEVEL_NONE = 0x00000000 ENCRYPTION_LEVEL_LOW = 0x00000001 ENCRYPTION_LEVEL_CLIENT_COMPATIBLE = 0x00000002 ENCRYPTION_LEVEL_HIGH = 0x00000003 ENCRYPTION_LEVEL_FIPS = 0x00000004 )
encryptionLevel
const ( // client -> server CS_CORE = 0xC001 CS_SECURITY = 0xC002 CS_NET = 0xC003 CS_CLUSTER = 0xC004 CS_MONITOR = 0xC005 // server -> client SC_CORE = 0x0C01 SC_SECURITY = 0x0C02 SC_NET = 0x0C03 SC_MCS_MSGCHANNEL = 0x0C04 SC_MULTITRANSPORT = 0x0C08 )
UserDataHeader Type
const (
RNS_UD_SAS_DEL = 0xAA03
)
Variables ¶
This section is empty.
Functions ¶
func ReadMcsPduHeader ¶
func WriteMcsPduHeader ¶
Types ¶
type CertBlob ¶
type ChannelDef ¶
func (*ChannelDef) Write ¶
func (d *ChannelDef) Write(w io.Writer)
type ClientAttachUser ¶
type ClientAttachUser struct{}
func (*ClientAttachUser) Serialize ¶
func (c *ClientAttachUser) Serialize() []byte
func (*ClientAttachUser) Write ¶
func (c *ClientAttachUser) Write(w io.Writer)
type ClientChannelJoin ¶
ClientChannelJoin https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/64564639-3b2d-4d2c-ae77-1105b4cc011b
func NewClientChannelJoin ¶
func NewClientChannelJoin(userId, channelId uint16) *ClientChannelJoin
func (*ClientChannelJoin) Serialize ¶
func (j *ClientChannelJoin) Serialize() []byte
func (*ClientChannelJoin) Write ¶
func (j *ClientChannelJoin) Write(w io.Writer)
type ClientCoreData ¶
type ClientCoreData struct { Header UserDataHeader // CS_CORE Version uint32 // RDP_VERSION_5_PLUS DesktopWidth uint16 DesktopHeight uint16 ColorDepth uint16 SasSequence uint16 KbdLayout uint32 ClientBuild uint32 ClientName [32]byte KeyboardType uint32 KeyboardSubType uint32 KeyboardFnKeys uint32 ImeFileName [64]byte PostBeta2ColorDepth uint16 ClientProductId uint16 SerialNumber uint32 HighColorDepth uint16 SupportedColorDepths uint16 EarlyCapabilityFlags uint16 ClientDigProductId [64]byte ConnectionType uint8 Pad1octet uint8 ServerSelectedProtocol uint32 }
ClientCoreData https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/00f1da4a-ee9c-421a-852f-c19f92343d73
func NewClientCoreData ¶
func NewClientCoreData() *ClientCoreData
func (*ClientCoreData) Serialize ¶
func (coreData *ClientCoreData) Serialize() []byte
type ClientErectDomain ¶
type ClientErectDomain struct{}
func (*ClientErectDomain) Serialize ¶
func (e *ClientErectDomain) Serialize() []byte
func (*ClientErectDomain) Write ¶
func (e *ClientErectDomain) Write(w io.Writer)
type ClientNetworkData ¶
type ClientNetworkData struct { Header UserDataHeader // CS_NET = 0xC003 ChannelCount uint32 ChannelDefArray []ChannelDef }
ClientNetworkData https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/49f99e00-caf1-4786-b43c-d425de29a03f
func NewClientNetworkData ¶
func NewClientNetworkData() *ClientNetworkData
func (*ClientNetworkData) Serialize ¶
func (networkData *ClientNetworkData) Serialize() []byte
type ClientSecurityData ¶
type ClientSecurityData struct { Header UserDataHeader // CS_SECURITY EncryptionMethods uint32 ExtEncryptionMethods uint32 // only for French locale client, otherwise must be set to zero }
ClientSecurityData https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/6b58e11e-a32b-4903-b736-339f3cfe46ec
func NewClientSecurityData ¶
func NewClientSecurityData() *ClientSecurityData
func (*ClientSecurityData) Serialize ¶
func (securityData *ClientSecurityData) Serialize() []byte
type ConnectInitial ¶
type ConnectInitial struct { CallingDomainSelector []byte // 0x01 CalledDomainSelector []byte // 0x01 UpwardFlag bool // true TargetDomainParameters DomainParameters MinimumDomainParameters DomainParameters MaximumDomainParameters DomainParameters UserData []byte }
ConnectInitial [T125] section 11.1 -- https://www.itu.int/rec/T-REC-T.125-199802-I/en
func NewClientInitial ¶
func NewClientInitial() *ConnectInitial
func (*ConnectInitial) Serialize ¶
func (ci *ConnectInitial) Serialize() []byte
func (*ConnectInitial) Write ¶
func (ci *ConnectInitial) Write(w *bytes.Buffer)
type ConnectResponse ¶
type ConnectResponse struct { Result uint8 CalledConnectId int DomainParameters DomainParameters UserData []byte }
ConnectResponse [T125] section 11.2 -- https://www.itu.int/rec/T-REC-T.125-199802-I/en
func (*ConnectResponse) Load ¶
func (cr *ConnectResponse) Load(data []byte)
type DomainParameters ¶
type DomainParameters struct { MaxChannelIds int MaxUserIds int MaxTokenIds int NumPriorities int MinThoughput int MaxHeight int MaxMCSPDUsize int ProtocolVersion int }
func (*DomainParameters) Read ¶
func (p *DomainParameters) Read(r io.Reader)
func (*DomainParameters) Serialize ¶
func (p *DomainParameters) Serialize() []byte
func (*DomainParameters) Write ¶
func (p *DomainParameters) Write(w io.Writer)
type GccConferenceCreateRequest ¶
type GccConferenceCreateRequest struct { }
GccConferenceCreateRequest Copy From FreeRDP C.gcc_write_conference_create_request But I don't know what the CCR structure is.
func (*GccConferenceCreateRequest) Serialize ¶
func (req *GccConferenceCreateRequest) Serialize(userData []byte) []byte
type GccConferenceCreateResponse ¶
type GccConferenceCreateResponse struct { }
GccConferenceCreateResponse Copy From FreeRDP C.gcc_read_conference_create_response But I don't know what the CCR structure is.
type ProprietaryServerCertificate ¶
type ProprietaryServerCertificate struct { DwSigAlgId uint32 // This field MUST be set to SIGNATURE_ALG_RSA (0x00000001). DwKeyAlgId uint32 // This field MUST be set to KEY_EXCHANGE_ALG_RSA (0x00000001). PublicKeyBlobType uint16 // This field MUST be set to BB_RSA_KEY_BLOB (0x0006). PublicKeyBlobLen uint16 // The size in bytes of the PublicKeyBlob field. PublicKeyBlob RSAPublicKey SignatureBlobType uint16 // This field is set to BB_RSA_SIGNATURE_BLOB (0x0008). SignatureBlobLen uint16 // The size in bytes of the SignatureBlob field. SignatureBlob []byte Padding []byte }
ProprietaryServerCertificate https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/a37d449a-73ac-4f00-9b9d-56cefc954634
func (*ProprietaryServerCertificate) GetPublicKey ¶
func (p *ProprietaryServerCertificate) GetPublicKey() (uint32, []byte)
func (*ProprietaryServerCertificate) Read ¶
func (p *ProprietaryServerCertificate) Read(r io.Reader)
func (*ProprietaryServerCertificate) Verify ¶
func (p *ProprietaryServerCertificate) Verify() bool
type RSAPublicKey ¶
type RSAPublicKey struct { Magic uint32 // 0x31415352 KeyLen uint32 // MUST be ((BitLen / 8) + 8) bytes. BitLen uint32 // The number of bits in the public key modulus. DataLen uint32 // This value is directly related to the BitLen field and MUST be ((BitLen / 8) - 1) bytes. PubExp uint32 // The public exponent of the public key. Modulus []byte // The modulus field contains all (BitLen / 8) bytes of the public key Padding []byte // 8字节对齐 }
RSAPublicKey https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/fe93545c-772a-4ade-9d02-ad1e0d81b6af
type ReceiveDataResponse ¶
type ReceiveDataResponse struct{}
type SendDataRequest ¶
SendDataRequest --- Copy From FreeRDP C.rdp_write_header
func NewSendDataRequest ¶
func NewSendDataRequest(userId, channelId uint16) *SendDataRequest
func (*SendDataRequest) Serialize ¶
func (r *SendDataRequest) Serialize(data []byte) []byte
type ServerAttachUserConfirm ¶
type ServerAttachUserConfirm struct {
UserId uint16
}
func (*ServerAttachUserConfirm) Read ¶
func (c *ServerAttachUserConfirm) Read(r io.Reader)
type ServerCertificate ¶
ServerCertificate https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/54e72cc6-3422-404c-a6b4-2486db125342
func (*ServerCertificate) Read ¶
func (c *ServerCertificate) Read(r io.Reader)
type ServerChannelJoinConfirm ¶
func (*ServerChannelJoinConfirm) Read ¶
func (c *ServerChannelJoinConfirm) Read(r io.Reader)
type ServerCoreData ¶
type ServerCoreData struct { Version uint32 ClientRequestedProtocols uint32 EarlyCapabilityFlags uint32 }
ServerCoreData https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/379a020e-9925-4b4f-98f3-7d634e10b411
func (*ServerCoreData) Read ¶
func (d *ServerCoreData) Read(r io.Reader)
type ServerMessageChannelData ¶
ServerMessageChannelData https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/9269d58a-3d85-48a2-942a-bb0bbe5a55aa
type ServerMultitransportChannelData ¶
ServerMultitransportChannelData https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/bf7201d4-9ed9-4dfe-9f6f-f2d68a7367ed
type ServerNetworkData ¶
ServerNetworkData https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/89fa11de-5275-4106-9cf1-e5aa7709436c
func (*ServerNetworkData) Read ¶
func (d *ServerNetworkData) Read(r io.Reader)
type ServerSecurityData ¶
type ServerSecurityData struct { EncryptionMethod uint32 EncryptionLevel uint32 ServerRandomLen uint32 // 0x00000020 ServerCertLen uint32 ServerRandom []byte ServerCertificate ServerCertificate }
ServerSecurityData https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/3e86b68d-3e2e-4433-b486-878875778f4b
func (*ServerSecurityData) Read ¶
func (d *ServerSecurityData) Read(r io.Reader)
type UserDataHeader ¶
UserDataHeader https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/8a36630c-9c8e-4864-9382-2ec9d6f368ca
func (*UserDataHeader) Read ¶
func (h *UserDataHeader) Read(r io.Reader)
type X509CertificateChain ¶
type X509CertificateChain struct { NumCertBlobs uint32 // Must between 2 and 200 CertBlobArray []CertBlob // An array of CertBlob structures Padding []byte // A byte array of the length 8 + 4*NumCertBlobs is appended at the end the packet. }
X509CertificateChain https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpele/bf2cc9cc-2b01-442e-a288-6ddfa3b80d59
func (*X509CertificateChain) GetPublicKey ¶
func (p *X509CertificateChain) GetPublicKey() (uint32, []byte)
func (*X509CertificateChain) Read ¶
func (p *X509CertificateChain) Read(r io.Reader)
func (*X509CertificateChain) Verify ¶
func (p *X509CertificateChain) Verify() bool
Source Files ¶
- client_attach_user.go
- client_channel_join.go
- client_core_data.go
- client_erect_domain.go
- client_initial.go
- client_network_data.go
- client_response.go
- client_security_data.go
- domain_parameters.go
- gcc_ccrq.go
- gcc_ccrs.go
- mcs.go
- proprietary_certificate.go
- receive_data_response.go
- send_data_request.go
- server_attach_user_confirm.go
- server_certificate.go
- server_channel_join_confirm.go
- server_core_data.go
- server_message_channel_data.go
- server_multitransport_channel_data.go
- server_network_data.go
- server_security_data.go
- user_data_header.go
- x509_certificate_chain.go