-
Notifications
You must be signed in to change notification settings - Fork 8
/
opcua_messages.py
114 lines (99 loc) · 33.2 KB
/
opcua_messages.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
from construct import * # construct==2.10.56
from config import *
# Unified Automations Anonymous messages
UNA_HELLO_MSG = b'HELF:\x00\x00\x00\x00\x00\x00\x00\x01\x00\x01\x00\x01\x00\x01\x00\xff\xff?\xff\xff\x01\x00\x00\x1a\x00\x00\x00opc.tcp://127.0.0.1:48010/'
UNA_OPEN_SECURE_CHANNEL = b'OPNF\x84\x00\x00\x00\x00\x00\x00\x00/\x00\x00\x00http://opcfoundation.org/UA/SecurityPolicy#None\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\xbe\x01\x00\x00\xb0V\xaf\x8a9\xd9\xd7\x01\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\xff\xff\xff\xff\x80\xee6\x00'
UNA_CREATE_SESSION = b'MSGFL\x01\x00\x00j@\x81i\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\x00\xcd\x01\x00\x00k\\\xce\x8a9\xd9\xd7\x01\x01\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00A\x00\x00\x00http://industrial.softing.com/OpcUaNetToolkit/dataFEEDOpcUaClient\xff\xff\xff\xff\x02\x16\x00\x00\x00dataFEED OPC UA Client\x01\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00-\x00\x00\x00urn:URIKATZ64A2:UnifiedAutomation:UaServerCpp\x1a\x00\x00\x00opc.tcp://127.0.0.1:48010/\x18\x00\x00\x00dataFEED OPC UA Client 1 \x00\x00\x00\xe1\xc2\xec\xd1d\xe5\xdc\xf4\xdfC\\-\x05Td\x90\xac\xc4v\xe9\x8d \xa0\xe9[\xb5\xe6\xcf\xbey|\\\xff\xff\xff\xff\x00\x00\x00\x00\x00L\xed@\x00\x00@\x00'
UNA_ACTIVATE_SESSION = b'MSGF\x83\x00\x00\x00j@\x81i\x01\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x01\x00\xd3\x01\x02\x00\x00\x0c\xdf_i\xc9\xb6\xd0\x8a9\xd9\xd7\x01\x02\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00en-US\x01\x00A\x01\x01\x1b\x00\x00\x00\x17\x00\x00\x00Anonymous-[0]-None-None\xff\xff\xff\xff\xff\xff\xff\xff'
UNA_CLOSE_SESSION = b'\x4d\x53\x47\x46\x3f\x00\x00\x00\xd8\x1e\x62\x1e\x01\x00\x00\x00\x39\x00\x00\x00\x39\x00\x00\x00\x01\x00\xd9\x01\x02\x00\x00\x9d\x82\x45\x1e\x1c\x32\x2a\x29\x4a\xd6\xd7\x01\x36\x00\x00\x00\xff\x03\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x01'
UNA_CLOSE_CHANNEL = b'\x43\x4c\x4f\x46\x39\x00\x00\x00\xd8\x1e\x62\x1e\x01\x00\x00\x00\x3a\x00\x00\x00\x3a\x00\x00\x00\x01\x00\xc4\x01\x00\x00\x4a\x80\x2a\x29\x4a\xd6\xd7\x01\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00'
# Softing DATAFeed Anonymous messages
SOFTING_HELLO_MSG = b'HELFS\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\x00\x00\xc0\xff?\x00\x00\x00\x00\x003\x00\x00\x00opc.tcp://127.0.0.1:4897/Softing/dataFEEDSIS/Server'
SOFTING_OPEN_SECURE_CHANNEL = b'OPNF\x84\x00\x00\x00\x00\x00\x00\x00/\x00\x00\x00http://opcfoundation.org/UA/SecurityPolicy#None\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\xbe\x01\x00\x00\xb6+\xf9hM\xd9\xd7\x01\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\xff\xff\xff\xff\x80\xee6\x00'
SOFTING_CREATE_SESSION = b'MSGFh\x01\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\x00\xcd\x01\x00\x00\xe2\xe9\xfdhM\xd9\xd7\x01\x01\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00A\x00\x00\x00http://industrial.softing.com/OpcUaNetToolkit/dataFEEDOpcUaClient\xff\xff\xff\xff\x02\x16\x00\x00\x00dataFEED OPC UA Client\x01\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x000\x00\x00\x00urn:URIKATZ64A2/Softing/dataFEED_SIS_OpcUaServer3\x00\x00\x00opc.tcp://127.0.0.1:4897/Softing/dataFEEDSIS/Server\x18\x00\x00\x00dataFEED OPC UA Client 2 \x00\x00\x00\xbd\xbbv\xc1[\xaa\xbb\xfa\x87\xe9{\x10\xda\x96\xd0\xa1\xf8\x1a<\x8e\xba\x04\x8e1\x95T\xd8v\xcad\xca\xa9\xff\xff\xff\xff\x00\x00\x00\x00\x00L\xed@\x00\x00@\x00'
SOFTING_ACTIVATE_SESSION = b'MSGF\x9c\x00\x00\x00\x06\x00\x00\x00\x01\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x01\x00\xd3\x01\x05\x00\x00 \x00\x00\x00\xab\xa4\xdb\xd8\xb2\xf19(\xa3*\xe8\x9cd1X\x8bi\xbb\x89;X\xc4C\xbeNj\xfa\x15C\xa2\xcah@0\x00\xbdP\xd9\xd7\x01\x02\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00en-US\x01\x00A\x01\x01\x14\x00\x00\x00\x10\x00\x00\x00Anonymous_Policy\xff\xff\xff\xff\xff\xff\xff\xff'
SOFTING_CLOSE_SESSION = b'\x4d\x53\x47\x46\x5f\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x4d\x00\x00\x00\x1b\x00\x00\x00\x01\x00\xd9\x01\x05\x00\x00\x20\x00\x00\x00\xe4\x74\xb6\xb8\x79\x84\x47\xbd\x59\x7f\xea\xc0\x2f\xf8\x34\x74\x13\x20\x6c\x08\x33\x2b\xed\x21\x85\xe3\x3a\x8e\x27\x51\x6f\x97\x1c\x7a\xfa\xd5\x80\xd5\xd7\x01\x5d\x42\x0f\x00\x00\x00\x00\x00\xff\xff\xff\xff\x10\x27\x00\x00\x00\x00\x00\x01'
SOFTING_CLOSE_CHANNEL = b'\x43\x4c\x4f\x46\x39\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x4e\x00\x00\x00\x1c\x00\x00\x00\x01\x00\xc4\x01\x00\x00\x1c\x7a\xfa\xd5\x80\xd5\xd7\x01\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00'
SOFTING_FUZZ = b'MSGF\x92\x00\x00\x00\x98\x08\x02\x00\x01\x00\x00\x00\x36\x00\x00\x00\x04\x00\x00\x00'
# Prosys Anonymous messages
PROSYS_HELLO_MSG = b'HELFP\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x01\x88\x13\x00\x004\x00\x00\x00opc.tcp://10.10.6.32:52520/OPCUA/SampleConsoleServer'
PROSYS_OPEN_SECURE_CHANNEL = b'OPNF\x85\x00\x00\x00\x00\x00\x00\x00/\x00\x00\x00http://opcfoundation.org/UA/SecurityPolicy#None\xff\xff\xff\xff\xff\xff\xff\xff3\x00\x00\x00\x01\x00\x00\x00\x01\x00\xbe\x01\x00\x00\x12\xbe2\x8a\xa4\xd4\xd7\x01\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\xe0\x93\x04\x00'
PROSYS_CREATE_SESSION = b"MSGF\x80\x01\x00\x00e\x04\x00\x00\x01\x00\x00\x004\x00\x00\x00\x02\x00\x00\x00\x01\x00\xcd\x01\x05\x00\x00 \x00\x00\x00\xeb\xb8\xcb\xfb\xce3\xba\xd9gn\xe9\xc9\xc3\xaf\x93!\x91\xf0c!\xb8\xcd+<\xbd\xfb\xe6\x1a\x08Z\xa8C \x07$\x8d\xa4\xd4\xd7\x01AB\x0f\x00\x00\x00\x00\x00\xff\xff\xff\xff\x10'\x00\x00\x00\x00\x00.\x00\x00\x00urn:DESKTOP-OOGRRNF:UnifiedAutomation:UaExpert\x1e\x00\x00\x00urn:UnifiedAutomation:UaExpert\x02\x1b\x00\x00\x00Unified Automation UaExpert\x01\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff0\x00\x00\x00opc.tcp://10.10.7.3:53530/OPCUA/SimulationServer.\x00\x00\x00urn:DESKTOP-OOGRRNF:UnifiedAutomation:UaExpert \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x80O2A\x00\x00\x00\x00"
PROSYS_ACTIVATE_SESSION = b"MSGF\x95\x00\x00\x00e\x04\x00\x00\x01\x00\x00\x005\x00\x00\x00\x03\x00\x00\x00\x01\x00\xd3\x01\x05\x00\x00 \x00\x00\x00\x03;t-;\xa1\x99\xc8g!O\x8a\xfe\x87*\x0f\xa0_\xc3s\xa0\xa6\xd6\x15i)\xf1v'=\xbc\x83 \x07$\x8d\xa4\xd4\xd7\x01BB\x0f\x00\x00\x00\x00\x00\xff\xff\xff\xff\x10'\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00en-US\x01\x00A\x01\x01\r\x00\x00\x00\t\x00\x00\x00anonymous\xff\xff\xff\xff\xff\xff\xff\xff"
PROSYS_CLOSE_SESSION = b"\x4d\x53\x47\x46\x5f\x00\x00\x00\x6e\x04\x00\x00\x01\x00\x00\x00\x52\x00\x00\x00\x20\x00\x00\x00\x01\x00\xd9\x01\x05\x00\x00\x20\x00\x00\x00\x33\x4a\x3d\x55\xd3\x97\xea\x11\xdf\x9b\xe0\xe1\xf7\x4a\x69\x43\x8c\x77\xab\xff\xe5\x71\x7f\x50\xcc\x90\x84\x3e\x9a\x1d\xdc\xea\x24\xaf\x59\x81\xa6\xd4\xd7\x01\x5f\x42\x0f\x00\x00\x00\x00\x00\xff\xff\xff\xff\x10\x27\x00\x00\x00\x00\x00\x01"
PROSYS_CLOSE_CHANNEL = b"\x43\x4c\x4f\x46\x39\x00\x00\x00\x40\x04\x00\x00\x01\x00\x00\x00\x55\x00\x00\x00\x23\x00\x00\x00\x01\x00\xc4\x01\x00\x00\xe3\xc8\xfc\xb9\x92\xd4\xd7\x01\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00"
# Kepware KEPServerEx server
KEPWARE_HELLO_MSG = b'HELF;\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x01\x88\x13\x00\x00\x1b\x00\x00\x00opc.tcp://10.10.6.248:49320'
KEPWARE_OPEN_SECURE_CHANNEL = b'OPNF\x85\x00\x00\x00\x00\x00\x00\x00/\x00\x00\x00http://opcfoundation.org/UA/SecurityPolicy#None\xff\xff\xff\xff\xff\xff\xff\xff3\x00\x00\x00\x01\x00\x00\x00\x01\x00\xbe\x01\x00\x00sq\xd3>Q\xd5\xd7\x01\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x80\xee6\x00'
KEPWARE_CREATE_SESSION = b"MSGFK\x01\x00\x00\t\x94\x85>\x01\x00\x00\x004\x00\x00\x00\x02\x00\x00\x00\x01\x00\xcd\x01\x02\x00\x00\x9a\xca\xd4~sq\xd3>Q\xd5\xd7\x01AB\x0f\x00\x00\x00\x00\x00\xff\xff\xff\xff\x10'\x00\x00\x00\x00\x00.\x00\x00\x00urn:DESKTOP-OOGRRNF:UnifiedAutomation:UaExpert\x1e\x00\x00\x00urn:UnifiedAutomation:UaExpert\x02\x1b\x00\x00\x00Unified Automation UaExpert\x01\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\x1b\x00\x00\x00opc.tcp://10.10.6.248:49320.\x00\x00\x00urn:DESKTOP-OOGRRNF:UnifiedAutomation:UaExpert \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x80O2A\x00\x00\x00\x01"
KEPWARE_ACTIVATE_SESSION = b"MSGFu\x00\x00\x00\t\x94\x85>\x01\x00\x00\x005\x00\x00\x00\x03\x00\x00\x00\x01\x00\xd3\x01\x02\x00\x00d\xf3\xa8%sq\xd3>Q\xd5\xd7\x01BB\x0f\x00\x00\x00\x00\x00\xff\xff\xff\xff\x10'\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00en-US\x01\x00A\x01\x01\r\x00\x00\x00\t\x00\x00\x00Anonymous\xff\xff\xff\xff\xff\xff\xff\xff"
KEPWARE_CLOSE_SESSION = b"\x4d\x53\x47\x46\x3f\x00\x00\x00\x09\x94\x85\x3e\x01\x00\x00\x00\x4a\x00\x00\x00\x18\x00\x00\x00\x01\x00\xd9\x01\x02\x00\x00\x64\xf3\xa8\x25\xa2\xc5\xd2\x41\x51\xd5\xd7\x01\x57\x42\x0f\x00\x00\x00\x00\x00\xff\xff\xff\xff\x10\x27\x00\x00\x00\x00\x00\x01"
KEPWARE_CLOSE_CHANNEL = b"\x43\x4c\x4f\x46\x39\x00\x00\x00\x09\x94\x85\x3e\x01\x00\x00\x00\x4b\x00\x00\x00\x19\x00\x00\x00\x01\x00\xc4\x01\x00\x00\xa2\xc5\xd2\x41\x51\xd5\xd7\x01\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00"
# Triangle Data Gateway
TRIANGLE_HELLO_MSG = b'HELF<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x01\x88\x13\x00\x00\x1c\x00\x00\x00opc.tcp://10.10.7.4:4885/SDG'
TRIANGLE_OPEN_SECURE_CHANNEL = b'OPNF\x85\x00\x00\x00\x00\x00\x00\x00/\x00\x00\x00http://opcfoundation.org/UA/SecurityPolicy#None\xff\xff\xff\xff\xff\xff\xff\xff3\x00\x00\x00\x01\x00\x00\x00\x01\x00\xbe\x01\x00\x00\xe3_\x91\xf0 \xd7\xd7\x01\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\xe0\x93\x04\x00'
TRIANGLE_CREATE_SESSION = b"MSGFG\x01\x00\x00\x04\x00\x00\x00\x01\x00\x00\x004\x00\x00\x00\x02\x00\x00\x00\x01\x00\xcd\x01\x00\x00\xc6\xaa\x94\xf0 \xd7\xd7\x01AB\x0f\x00\x00\x00\x00\x00\xff\xff\xff\xff\x10'\x00\x00\x00\x00\x00.\x00\x00\x00urn:DESKTOP-OOGRRNF:UnifiedAutomation:UaExpert\x1e\x00\x00\x00urn:UnifiedAutomation:UaExpert\x02\x1b\x00\x00\x00Unified Automation UaExpert\x01\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\x1c\x00\x00\x00opc.tcp://10.10.7.4:4885/SDG.\x00\x00\x00urn:DESKTOP-OOGRRNF:UnifiedAutomation:UaExpert \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00L\xdd@\x00\x00\x00\x01"
TRIANGLE_ACTIVATE_SESSION = b"MSGF\x9c\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x005\x00\x00\x00\x03\x00\x00\x00\x01\x00\xd3\x01\x05\x00\x00 \x00\x00\x00\x12h'g\xffSa>\xd3\x9dGy\xd7>d\xe7\xf9,ua\x03\xcd\x92\xf0\xbc\x14R\xe2\x89\xaf\x1c\x83\x83\x04\x97\xf0 \xd7\xd7\x01BB\x0f\x00\x00\x00\x00\x00\xff\xff\xff\xff\x10'\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00en-US\x01\x00A\x01\x01\x14\x00\x00\x00\x10\x00\x00\x00Anonymous_Policy\xff\xff\xff\xff\xff\xff\xff\xff"
TRIANGLE_CLOSE_SESSION = b"\x4d\x53\x47\x46\x5f\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x50\x00\x00\x00\x1e\x00\x00\x00\x01\x00\xd9\x01\x05\x00\x00\x20\x00\x00\x00\x12\x68\x27\x67\xff\x53\x61\x3e\xd3\x9d\x47\x79\xd7\x3e\x64\xe7\xf9\x2c\x75\x61\x03\xcd\x92\xf0\xbc\x14\x52\xe2\x89\xaf\x1c\x83\x99\xf1\xc9\xf2\x20\xd7\xd7\x01\x5d\x42\x0f\x00\x00\x00\x00\x00\xff\xff\xff\xff\x10\x27\x00\x00\x00\x00\x00\x01"
TRIANGLE_CLOSE_CHANNEL = b"\x43\x4c\x4f\x46\x39\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x51\x00\x00\x00\x1f\x00\x00\x00\x01\x00\xc4\x01\x00\x00\x23\x03\xca\xf2\x20\xd7\xd7\x01\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00"
# OPC UA .NET Stack
DOTNET_HELLO_MSG = b'HELF[\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x01\x88\x13\x00\x00;\x00\x00\x00opc.tcp://desktop-eq75855:62541/Quickstarts/ReferenceServer'
DOTNET_OPEN_SECURE_CHANNEL = b'OPNF\x85\x00\x00\x00\x00\x00\x00\x00/\x00\x00\x00http://opcfoundation.org/UA/SecurityPolicy#None\xff\xff\xff\xff\xff\xff\xff\xff3\x00\x00\x00\x01\x00\x00\x00\x01\x00\xbe\x01\x00\x00Z\xa9\x80\xf4a\xd9\xd7\x01\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\xe0\x93\x04\x00'
DOTNET_CREATE_SESSION = b"MSGFf\x01\x00\x002\xb6\x0c\x00\x01\x00\x00\x004\x00\x00\x00\x02\x00\x00\x00\x01\x00\xcd\x01\x00\x00Z\xa9\x80\xf4a\xd9\xd7\x01AB\x0f\x00\x00\x00\x00\x00\xff\xff\xff\xff\x10'\x00\x00\x00\x00\x00.\x00\x00\x00urn:DESKTOP-OOGRRNF:UnifiedAutomation:UaExpert\x1e\x00\x00\x00urn:UnifiedAutomation:UaExpert\x02\x1b\x00\x00\x00Unified Automation UaExpert\x01\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff;\x00\x00\x00opc.tcp://desktop-eq75855:62541/Quickstarts/ReferenceServer.\x00\x00\x00urn:DESKTOP-OOGRRNF:UnifiedAutomation:UaExpert \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00L\xdd@\x00\x00\x00\x01"
DOTNET_ACTIVATE_SESSION = b"MSGF\x8d\x00\x00\x002\xb6\x0c\x00\x01\x00\x00\x005\x00\x00\x00\x03\x00\x00\x00\x01\x00\xd3\x01\x05\x00\x00 \x00\x00\x00\x0bz\xe4\xac\xa2\xc5}\xf8J\x0c\xea\x11q\xe1A\xf0)q\xa5v^\xfa\xe6\xa5\xe3`\x8d\xb7\xfeN$\xc6\x10V\xb0\xf4a\xd9\xd7\x01BB\x0f\x00\x00\x00\x00\x00\xff\xff\xff\xff\x10'\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00en-US\x01\x00A\x01\x01\x05\x00\x00\x00\x01\x00\x00\x000\xff\xff\xff\xff\xff\xff\xff\xff"
# OPEN62541
OPEN62541_HELLO_MSG = b'\x48\x45\x4c\x46\x38\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x6f\x70\x63\x2e\x74\x63\x70\x3a\x2f\x2f\x6c\x6f\x63\x61\x6c\x68\x6f\x73\x74\x3a\x34\x38\x34\x30'
OPEN62541_OPEN_SECURE_CHANNEL = b'\x4f\x50\x4e\x46\x84\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x68\x74\x74\x70\x3a\x2f\x2f\x6f\x70\x63\x66\x6f\x75\x6e\x64\x61\x74\x69\x6f\x6e\x2e\x6f\x72\x67\x2f\x55\x41\x2f\x53\x65\x63\x75\x72\x69\x74\x79\x50\x6f\x6c\x69\x63\x79\x23\x4e\x6f\x6e\x65\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\xbe\x01\x00\x00\xa8\x5e\x22\x35\xe9\x65\xd8\x01\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\xff\xff\xff\xff\xc0\x27\x09\x00'
OPEN62541_CREATE_SESSION = b'\x4d\x53\x47\x46\xa6\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x01\x00\xcd\x01\x00\x00\x3a\x7c\x22\x35\xe9\x65\xd8\x01\x03\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x10\x27\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x75\x72\x6e\x3a\x75\x6e\x63\x6f\x6e\x66\x69\x67\x75\x72\x65\x64\x3a\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\xff\xff\xff\xff\x00\x01\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x18\x00\x00\x00\x6f\x70\x63\x2e\x74\x63\x70\x3a\x2f\x2f\x6c\x6f\x63\x61\x6c\x68\x6f\x73\x74\x3a\x34\x38\x34\x30\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x80\x4f\x32\x41\xff\xff\xff\x7f'
OPEN62541_ACTIVATE_SESSION = b'\x4d\x53\x47\x46\x89\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x01\x00\xd3\x01\x04\x01\x00\xd6\xe7\x62\x0e\x5e\x68\xad\x86\x04\xd0\x9d\xb9\xc9\xfc\x4f\xa4\x1c\x81\x22\x35\xe9\x65\xd8\x01\x05\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xc0\x27\x09\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x41\x01\x01\x1e\x00\x00\x00\x1a\x00\x00\x00\x6f\x70\x65\x6e\x36\x32\x35\x34\x31\x2d\x61\x6e\x6f\x6e\x79\x6d\x6f\x75\x73\x2d\x70\x6f\x6c\x69\x63\x79\xff\xff\xff\xff\xff\xff\xff\xff'
# Inductive Automation Ignition
IGNITION_HELLO_MSG = b'\x48\x45\x4c\x46\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x01\x88\x13\x00\x00\x1f\x00\x00\x00\x6f\x70\x63\x2e\x74\x63\x70\x3a\x2f\x2f\x44\x45\x53\x4b\x54\x4f\x50\x2d\x4e\x42\x51\x53\x52\x47\x34\x3a\x36\x32\x35\x34\x31'
IGNITION_OPEN_SECURE_CHANNEL = b'\x4f\x50\x4e\x46\x85\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x68\x74\x74\x70\x3a\x2f\x2f\x6f\x70\x63\x66\x6f\x75\x6e\x64\x61\x74\x69\x6f\x6e\x2e\x6f\x72\x67\x2f\x55\x41\x2f\x53\x65\x63\x75\x72\x69\x74\x79\x50\x6f\x6c\x69\x63\x79\x23\x4e\x6f\x6e\x65\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\xbe\x01\x00\x00\xfc\x76\x94\x2b\x6b\x68\xd8\x01\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x80\xee\x36\x00'
IGNITION_CREATE_SESSION = b'\x4d\x53\x47\x46\xbd\x05\x00\x00\x57\x00\x00\x00\x49\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x01\x00\xcd\x01\x05\x00\x00\x20\x00\x00\x00\x95\x02\x2e\xde\xd5\x47\x63\xb4\xaa\x0f\x2b\xab\xb3\xcf\x31\x33\x6e\xb7\x86\x8c\x0c\xd2\xf6\x29\x04\x30\x7b\xa5\x4f\xac\x16\x03\xfc\x76\x94\x2b\x6b\x68\xd8\x01\x41\x42\x0f\x00\x00\x00\x00\x00\xff\xff\xff\xff\x10\x27\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x75\x72\x6e\x3a\x44\x45\x53\x4b\x54\x4f\x50\x2d\x48\x4e\x30\x33\x54\x37\x4a\x3a\x55\x6e\x69\x66\x69\x65\x64\x41\x75\x74\x6f\x6d\x61\x74\x69\x6f\x6e\x3a\x55\x61\x45\x78\x70\x65\x72\x74\x1e\x00\x00\x00\x75\x72\x6e\x3a\x55\x6e\x69\x66\x69\x65\x64\x41\x75\x74\x6f\x6d\x61\x74\x69\x6f\x6e\x3a\x55\x61\x45\x78\x70\x65\x72\x74\x02\x18\x00\x00\x00\x55\x61\x45\x78\x70\x65\x72\x74\x40\x44\x45\x53\x4b\x54\x4f\x50\x2d\x48\x4e\x30\x33\x54\x37\x4a\x01\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\x1f\x00\x00\x00\x6f\x70\x63\x2e\x74\x63\x70\x3a\x2f\x2f\x44\x45\x53\x4b\x54\x4f\x50\x2d\x4e\x42\x51\x53\x52\x47\x34\x3a\x36\x32\x35\x34\x31\x2e\x00\x00\x00\x75\x72\x6e\x3a\x44\x45\x53\x4b\x54\x4f\x50\x2d\x48\x4e\x30\x33\x54\x37\x4a\x3a\x55\x6e\x69\x66\x69\x65\x64\x41\x75\x74\x6f\x6d\x61\x74\x69\x6f\x6e\x3a\x55\x61\x45\x78\x70\x65\x72\x74\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x04\x00\x00\x30\x82\x04\x4d\x30\x82\x03\x35\xa0\x03\x02\x01\x02\x02\x04\x62\x80\xfe\xf8\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x0b\x05\x00\x30\x33\x31\x0e\x30\x0c\x06\x03\x55\x04\x0a\x0c\x05\x6f\x70\x63\x75\x61\x31\x21\x30\x1f\x06\x03\x55\x04\x03\x0c\x18\x55\x61\x45\x78\x70\x65\x72\x74\x40\x44\x45\x53\x4b\x54\x4f\x50\x2d\x48\x4e\x30\x33\x54\x37\x4a\x30\x1e\x17\x0d\x32\x32\x30\x35\x31\x35\x31\x33\x32\x34\x30\x38\x5a\x17\x0d\x32\x37\x30\x35\x31\x34\x31\x33\x32\x34\x30\x38\x5a\x30\x33\x31\x0e\x30\x0c\x06\x03\x55\x04\x0a\x0c\x05\x6f\x70\x63\x75\x61\x31\x21\x30\x1f\x06\x03\x55\x04\x03\x0c\x18\x55\x61\x45\x78\x70\x65\x72\x74\x40\x44\x45\x53\x4b\x54\x4f\x50\x2d\x48\x4e\x30\x33\x54\x37\x4a\x30\x82\x01\x22\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x01\x05\x00\x03\x82\x01\x0f\x00\x30\x82\x01\x0a\x02\x82\x01\x01\x00\xc8\x11\x7f\x8f\x25\xd0\xc6\xdd\xfa\xf3\x05\xb4\xad\x47\x86\x75\x20\x85\x5f\x95\x89\x7c\xc3\x6b\x57\x33\x46\x18\x75\x14\x3e\xe2\x7c\x87\x3f\x3b\x54\x56\x9a\x26\x7f\x75\x96\xa5\x37\x98\x7d\x55\xe6\xfe\x07\x84\xc9\xb5\x64\x0f\xa1\x1b\x61\x4c\xc8\xe9\xb4\x9d\x55\x40\xea\x09\x44\x85\x25\x43\x60\x78\x83\x01\x2d\x4b\xfc\x66\x67\x88\xc6\x08\x16\x9b\x65\x89\x29\x96\x68\x56\x7a\xdf\xb7\xbc\xc0\x6c\xdf\x09\x0d\x25\x7f\x0b\x8a\x45\x3e\xb0\xb8\x2c\x51\xa6\xb3\xf9\xd4\x98\xfa\x49\xb0\x74\x61\x14\xe2\xf5\x6b\x3d\xb8\x4e\xfb\x39\x51\x53\x2a\xfb\xf9\x04\x65\x3e\xc8\x9b\xb0\xfe\x17\xd8\xe2\xbd\xb9\x2c\x43\x68\x59\x49\xfe\x07\x6b\xa9\x36\xbe\xa0\xa2\x53\x18\x20\x8b\x16\x71\x39\x8d\x9d\xe7\xa4\x52\x01\xc1\x03\x2e\x43\xa5\x85\x05\xf0\x66\x5a\xcf\x08\x82\x5d\x7a\x00\xb8\x33\x2a\x8e\x8a\x01\x51\xaa\x73\x42\x45\xec\x50\x9d\x32\xb8\x8d\x12\x45\x8e\xd2\xe1\x00\x52\x6c\xc3\x2e\x46\x5e\x8f\x9a\xfb\xb4\x37\x3e\x3d\x68\xb0\xa1\xe9\xf1\xf1\xaa\x8a\xd8\x6e\xc9\xb2\xf8\x98\xd1\x5c\x53\x84\xd9\x17\xbf\xbd\xfa\xf1\xd7\x5b\x94\x00\xe9\xcb\xd1\x02\x03\x01\x00\x01\xa3\x82\x01\x67\x30\x82\x01\x63\x30\x12\x06\x03\x55\x1d\x13\x01\x01\xff\x04\x08\x30\x06\x01\x01\xff\x02\x01\x00\x30\x50\x06\x09\x60\x86\x48\x01\x86\xf8\x42\x01\x0d\x04\x43\x16\x41\x22\x47\x65\x6e\x65\x72\x61\x74\x65\x64\x20\x77\x69\x74\x68\x20\x55\x6e\x69\x66\x69\x65\x64\x20\x41\x75\x74\x6f\x6d\x61\x74\x69\x6f\x6e\x20\x55\x41\x20\x42\x61\x73\x65\x20\x4c\x69\x62\x72\x61\x72\x79\x20\x75\x73\x69\x6e\x67\x20\x4f\x70\x65\x6e\x53\x53\x4c\x22\x30\x1d\x06\x03\x55\x1d\x0e\x04\x16\x04\x14\xde\x1f\x86\x39\x97\x15\x0e\xfa\xf6\x51\x10\xa9\xb8\x7a\xd5\xd0\x29\xb6\x6f\x9c\x30\x5e\x06\x03\x55\x1d\x23\x04\x57\x30\x55\x80\x14\xde\x1f\x86\x39\x97\x15\x0e\xfa\xf6\x51\x10\xa9\xb8\x7a\xd5\xd0\x29\xb6\x6f\x9c\xa1\x37\xa4\x35\x30\x33\x31\x0e\x30\x0c\x06\x03\x55\x04\x0a\x0c\x05\x6f\x70\x63\x75\x61\x31\x21\x30\x1f\x06\x03\x55\x04\x03\x0c\x18\x55\x61\x45\x78\x70\x65\x72\x74\x40\x44\x45\x53\x4b\x54\x4f\x50\x2d\x48\x4e\x30\x33\x54\x37\x4a\x82\x04\x62\x80\xfe\xf8\x30\x0e\x06\x03\x55\x1d\x0f\x01\x01\xff\x04\x04\x03\x02\x02\xf4\x30\x20\x06\x03\x55\x1d\x25\x01\x01\xff\x04\x16\x30\x14\x06\x08\x2b\x06\x01\x05\x05\x07\x03\x01\x06\x08\x2b\x06\x01\x05\x05\x07\x03\x02\x30\x4a\x06\x03\x55\x1d\x11\x04\x43\x30\x41\x86\x2e\x75\x72\x6e\x3a\x44\x45\x53\x4b\x54\x4f\x50\x2d\x48\x4e\x30\x33\x54\x37\x4a\x3a\x55\x6e\x69\x66\x69\x65\x64\x41\x75\x74\x6f\x6d\x61\x74\x69\x6f\x6e\x3a\x55\x61\x45\x78\x70\x65\x72\x74\x82\x0f\x44\x45\x53\x4b\x54\x4f\x50\x2d\x48\x4e\x30\x33\x54\x37\x4a\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x0b\x05\x00\x03\x82\x01\x01\x00\x95\xd7\x98\x27\x96\x57\x92\x0d\xde\x81\x05\x65\x35\x2a\x1a\xde\x60\x24\x14\xaf\x29\x45\x3c\xa6\x34\x57\x8d\xc4\x55\x5b\x5b\x3e\xec\x4c\x4e\x11\x20\x65\x9f\x84\x2f\xd4\xfa\x07\x9e\xc5\xf2\xb2\x5a\x31\x13\x09\x72\x57\xe8\xdf\x8c\xb4\x4c\xe8\xd8\x55\x1a\x1d\x48\x14\x94\xa5\x2a\x9f\x63\x4d\x6b\xd4\xfe\xcf\x00\x6f\x2a\x96\xb5\x8f\x4f\x8c\xdf\x9a\xa3\x1a\xaf\x1f\xaa\x90\x66\xad\x0d\x22\x9f\xbb\xad\x73\x78\x74\x5f\x9d\xc7\x26\x11\xf6\x62\x6f\x0b\x5a\x89\x6f\xee\x0f\x26\xb3\x7c\xd8\x73\x1f\x4e\x50\x64\x49\x9e\xd6\xc3\xe3\xe8\x7f\xc2\x6e\x5b\x4d\x24\xcc\x8e\xa3\xdf\x6c\x4b\x2c\xa3\x9e\x4e\xe9\xf1\x1c\xdd\xf0\x25\xd4\xd6\xc1\xe9\xce\x2b\xe6\x63\x35\xce\x1f\x02\xd0\xee\xc6\x9a\x28\x1c\x9d\x87\x81\x10\x5a\xf0\xc2\x17\x34\xef\x50\x38\xbc\x9b\x4c\x5d\xf9\x90\xf9\x48\xd1\xeb\x9a\xaa\x16\xb5\x7b\x89\x9c\x9e\x99\x86\xe6\x46\xdc\x0c\x4d\xe7\xb7\x76\xc8\x33\x40\x0a\xd9\xb0\xbf\xd0\x52\xdc\x97\x0b\x29\x8c\xd0\x6f\xed\xe3\xb7\x6f\xb4\xe6\x67\x80\x7d\xf4\x38\x60\xfe\x3d\x7f\x95\xd2\x10\x09\x19\x46\xfb\xc0\xec\xb5\xe0\xb7\x7c\xf2\x00\x00\x00\x00\x80\x4f\x32\x41\x00\x00\x00\x01'
IGNITION_ACTIVATE_SESSION = b'\x4d\x53\x47\x46\x95\x00\x00\x00\x57\x00\x00\x00\x49\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x01\x00\xd3\x01\x05\x00\x00\x20\x00\x00\x00\xe6\x15\x1e\x06\x8d\x9e\xd3\xeb\x86\x4f\x9a\x55\xcb\xdc\xc9\xbd\xf2\xe3\x1c\x4c\x90\xfd\xb9\xe8\xab\x76\x4a\x5a\xd5\x3a\x3e\x16\x4c\x44\x99\x2b\x6b\x68\xd8\x01\x42\x42\x0f\x00\x00\x00\x00\x00\xff\xff\xff\xff\x10\x27\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x65\x6e\x2d\x55\x53\x01\x00\x41\x01\x01\x0d\x00\x00\x00\x09\x00\x00\x00\x61\x6e\x6f\x6e\x79\x6d\x6f\x75\x73\xff\xff\xff\xff\xff\xff\xff\xff'
# Rust OPCUA
RUST_HELLO_MSG = b'\x48\x45\x4c\x46\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x01\x88\x13\x00\x00\x1b\x00\x00\x00\x6f\x70\x63\x2e\x74\x63\x70\x3a\x2f\x2f\x31\x30\x2e\x31\x30\x2e\x36\x2e\x32\x32\x37\x3a\x34\x38\x35\x35\x2f'
RUST_OPEN_SECURE_CHANNEL = b'\x4f\x50\x4e\x46\x85\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x68\x74\x74\x70\x3a\x2f\x2f\x6f\x70\x63\x66\x6f\x75\x6e\x64\x61\x74\x69\x6f\x6e\x2e\x6f\x72\x67\x2f\x55\x41\x2f\x53\x65\x63\x75\x72\x69\x74\x79\x50\x6f\x6c\x69\x63\x79\x23\x4e\x6f\x6e\x65\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\xbe\x01\x00\x00\x22\x50\xe1\xda\xcd\x6d\xd8\x01\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\xe0\x93\x04\x00'
RUST_CREATE_SESSION = b'\x4d\x53\x47\x46\x68\x01\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x01\x00\xcd\x01\x05\x00\x00\x20\x00\x00\x00\x1a\xa5\x72\x33\x1c\x2e\xc2\x22\x48\xcc\xae\x5b\xdc\xec\xe9\xb8\x04\x38\x30\x2f\x23\x8a\xe0\x91\x5d\xb6\xc0\x49\x4d\x1f\x13\x2a\x06\x38\x98\xdc\xcd\x6d\xd8\x01\x41\x42\x0f\x00\x00\x00\x00\x00\xff\xff\xff\xff\x10\x27\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x75\x72\x6e\x3a\x44\x45\x53\x4b\x54\x4f\x50\x2d\x48\x4e\x30\x33\x54\x37\x4a\x3a\x55\x6e\x69\x66\x69\x65\x64\x41\x75\x74\x6f\x6d\x61\x74\x69\x6f\x6e\x3a\x55\x61\x45\x78\x70\x65\x72\x74\x1e\x00\x00\x00\x75\x72\x6e\x3a\x55\x6e\x69\x66\x69\x65\x64\x41\x75\x74\x6f\x6d\x61\x74\x69\x6f\x6e\x3a\x55\x61\x45\x78\x70\x65\x72\x74\x02\x18\x00\x00\x00\x55\x61\x45\x78\x70\x65\x72\x74\x40\x44\x45\x53\x4b\x54\x4f\x50\x2d\x48\x4e\x30\x33\x54\x37\x4a\x01\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\x1b\x00\x00\x00\x6f\x70\x63\x2e\x74\x63\x70\x3a\x2f\x2f\x31\x30\x2e\x31\x30\x2e\x36\x2e\x32\x32\x37\x3a\x34\x38\x35\x35\x2f\x2e\x00\x00\x00\x75\x72\x6e\x3a\x44\x45\x53\x4b\x54\x4f\x50\x2d\x48\x4e\x30\x33\x54\x37\x4a\x3a\x55\x6e\x69\x66\x69\x65\x64\x41\x75\x74\x6f\x6d\x61\x74\x69\x6f\x6e\x3a\x55\x61\x45\x78\x70\x65\x72\x74\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x80\x4f\x32\x41\x00\x00\x00\x01'
RUST_ACTIVATE_SESSION = b'\x4d\x53\x47\x46\x95\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x01\x00\xd3\x01\x05\x00\x00\x20\x00\x00\x00\x86\xa1\xa7\x9a\x2d\xf4\xb2\xd5\xd7\x7d\x1c\x25\x19\x08\xcf\xfb\xbf\x31\xb8\xaf\x88\x31\xc1\x55\x64\x4f\x83\xe2\x85\x05\xa1\xef\x06\x38\x98\xdc\xcd\x6d\xd8\x01\x42\x42\x0f\x00\x00\x00\x00\x00\xff\xff\xff\xff\x10\x27\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x65\x6e\x2d\x55\x53\x01\x00\x41\x01\x01\x0d\x00\x00\x00\x09\x00\x00\x00\x61\x6e\x6f\x6e\x79\x6d\x6f\x75\x73\xff\xff\xff\xff\xff\xff\xff\xff'
# Python OPCUA
PYTHON_OPCUA_HELLO_MSG = b'HELFL\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\x7f\xff\xff\xff\x7f\x00\x00\x00\x00\x00\x00\x00\x00,\x00\x00\x00opc.tcp://10.10.6.126:4840/freeopcua/server/'
PYTHON_OPCUA_OPEN_SECURE_CHANNEL = b'OPNF\x84\x00\x00\x00\x00\x00\x00\x00/\x00\x00\x00http://opcfoundation.org/UA/SecurityPolicy#None\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\xbe\x01\x00\x00\x9e\xac\xe5\xbe\xf0\x99\xd9\x01\x01\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xe8\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x80\xee6\x00'
PYTHON_OPCUA_CREATE_SESSION = b'MSGF/\x01\x00\x00\x0e\x00\x00\x00\r\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x01\x00\xcd\x01\x00\x00$Q\xed\xbe\xf0\x99\xd9\x01\x02\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xa0\x0f\x00\x00\x00\x00\x00\x14\x00\x00\x00urn:freeopcua:client\x1e\x00\x00\x00urn:freeopcua.github.io:client\x02\x19\x00\x00\x00Pure Python Async. Client\x01\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff,\x00\x00\x00opc.tcp://10.10.6.126:4840/freeopcua/server/"\x00\x00\x00Pure Python Async. Client Session1 \x00\x00\x00+\xff2\xff\x81\xef`\x1c\xaco\x86\xcf<^2\xf2\x1f\x01\x03l\xb5\xbc$2\x03N\xe3_B\xda\x98i\xff\xff\xff\xff\x00\x00\x00\x00@wKA\x00\x00\x00\x00'
PYTHON_OPCUA_ACTIVATE_SESSION = b'MSGF\x99\x00\x00\x00\x0e\x00\x00\x00\r\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x01\x00\xd3\x01\x01\x00\xe9\x032\xff\xf4\xbe\xf0\x99\xd9\x01\x03\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xa0\x0f\x00\x00\x00\x00\x00*\x00\x00\x00http://www.w3.org/2000/09/xmldsig#rsa-sha1\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00en\x01\x00A\x01\x01\r\x00\x00\x00\t\x00\x00\x00anonymous\xff\xff\xff\xff\xff\xff\xff\xff'
# S2OPC anonymous messages
S2OPC_HELLO_MSG = b'\x48\x45\x4c\x46\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x01\x88\x13\x00\x00\x18\x00\x00\x00\x6f\x70\x63\x2e\x74\x63\x70\x3a\x2f\x2f\x6c\x6f\x63\x61\x6c\x68\x6f\x73\x74\x3a\x34\x38\x34\x31'
S2OPC_OPEN_SECURE_CHANNEL = b'\x4f\x50\x4e\x46\x85\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x00\x00\x68\x74\x74\x70\x3a\x2f\x2f\x6f\x70\x63\x66\x6f\x75\x6e\x64\x61\x74\x69\x6f\x6e\x2e\x6f\x72\x67\x2f\x55\x41\x2f\x53\x65\x63\x75\x72\x69\x74\x79\x50\x6f\x6c\x69\x63\x79\x23\x4e\x6f\x6e\x65\xff\xff\xff\xff\xff\xff\xff\xff\x33\x00\x00\x00\x01\x00\x00\x00\x01\x00\xbe\x01\x00\x00\x10\xc4\xf4\x42\xc2\x90\xd9\x01\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x80\xee\x36\x00'
S2OPC_CREATE_SESSION = b'\x4d\x53\x47\x46\x12\x01\x00\x00\x6e\x13\x02\x0c\xca\x95\x63\x71\x34\x00\x00\x00\x02\x00\x00\x00\x01\x00\xcd\x01\x02\x00\x00\xc0\xf2\xe1\x15\xf9\xd6\xf4\x42\xc2\x90\xd9\x01\x41\x42\x0f\x00\x00\x00\x00\x00\xff\xff\xff\xff\x10\x27\x00\x00\x00\x00\x00\x13\x00\x00\x00\x75\x72\x6e\x3a\x53\x32\x4f\x50\x43\x3a\x6c\x6f\x63\x61\x6c\x68\x6f\x73\x74\x1e\x00\x00\x00\x75\x72\x6e\x3a\x55\x6e\x69\x66\x69\x65\x64\x41\x75\x74\x6f\x6d\x61\x74\x69\x6f\x6e\x3a\x55\x61\x45\x78\x70\x65\x72\x74\x02\x1b\x00\x00\x00\x55\x6e\x69\x66\x69\x65\x64\x20\x41\x75\x74\x6f\x6d\x61\x74\x69\x6f\x6e\x20\x55\x61\x45\x78\x70\x65\x72\x74\x01\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\x18\x00\x00\x00\x6f\x70\x63\x2e\x74\x63\x70\x3a\x2f\x2f\x6c\x6f\x63\x61\x6c\x68\x6f\x73\x74\x3a\x34\x38\x34\x31\x13\x00\x00\x00\x75\x72\x6e\x3a\x53\x32\x4f\x50\x43\x3a\x6c\x6f\x63\x61\x6c\x68\x6f\x73\x74\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x80\x4f\x32\x41\xfb\xff\x04\x00'
S2OPC_ACTIVATE_SESSION = b'\x4d\x53\x47\x46\x70\x00\x00\x00\x6e\x13\x02\x0c\xca\x95\x63\x71\x35\x00\x00\x00\x03\x00\x00\x00\x01\x00\xd3\x01\x02\x00\x00\x6e\xcd\x5f\x1b\xb8\x0d\xf5\x42\xc2\x90\xd9\x01\x42\x42\x0f\x00\x00\x00\x00\x00\xff\xff\xff\xff\x10\x27\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x65\x6e\x2d\x55\x53\x01\x00\x41\x01\x01\x08\x00\x00\x00\x04\x00\x00\x00\x61\x6e\x6f\x6e\xff\xff\xff\xff\xff\xff\xff\xff'
S2OPC_CLOSE_SESSION = b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x45\x00\x00\x73\x10\x73\x40\x00\x40\x06\x2c\x10\x7f\x00\x00\x01\x7f\x00\x00\x01\xb9\xd8\x12\xe9\x0c\xb2\xed\x38\x28\x24\x58\xa3\x80\x18\x02\x00\xfe\x67\x00\x00\x01\x01\x08\x0a\x1e\xc5\xfa\x6f\x1e\xc5\xf3\x18\x4d\x53\x47\x46\x3f\x00\x00\x00\x6e\x13\x02\x0c\xca\x95\x63\x71\x4d\x00\x00\x00\x1b\x00\x00\x00\x01\x00\xd9\x01\x02\x00\x00\x6e\xcd\x5f\x1b\x09\x59\x1a\x44\xc2\x90\xd9\x01\x5a\x42\x0f\x00\x00\x00\x00\x00\xff\xff\xff\xff\x10\x27\x00\x00\x00\x00\x00\x01'
S2OPC_CLOSE_CHANNEL = b'\x43\x4c\x4f\x46\x39\x00\x00\x00\x6e\x13\x02\x0c\xca\x95\x63\x71\x4e\x00\x00\x00\x1c\x00\x00\x00\x01\x00\xc4\x01\x00\x00\x0d\x47\x1b\x44\xc2\x90\xd9\x01\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00'
def get_raw_open_session_messages(program_type):
if program_type == PROGRAM_NAME_SOFTING:
return SOFTING_HELLO_MSG, SOFTING_OPEN_SECURE_CHANNEL, SOFTING_CREATE_SESSION, SOFTING_ACTIVATE_SESSION
elif program_type == PROGRAM_NAME_UNIFIED:
return UNA_HELLO_MSG, UNA_OPEN_SECURE_CHANNEL, UNA_CREATE_SESSION, UNA_ACTIVATE_SESSION
elif program_type == PROGRAM_NAME_PROSYS:
return PROSYS_HELLO_MSG, PROSYS_OPEN_SECURE_CHANNEL, PROSYS_CREATE_SESSION, PROSYS_ACTIVATE_SESSION
elif program_type == PROGRAM_NAME_KEPWARE:
return KEPWARE_HELLO_MSG, KEPWARE_OPEN_SECURE_CHANNEL, KEPWARE_CREATE_SESSION, KEPWARE_ACTIVATE_SESSION
elif program_type == PROGRAM_NAME_TRIANGLE:
return TRIANGLE_HELLO_MSG, TRIANGLE_OPEN_SECURE_CHANNEL, TRIANGLE_CREATE_SESSION, TRIANGLE_ACTIVATE_SESSION
elif program_type == PROGRAM_NAME_DOTNET:
return DOTNET_HELLO_MSG, DOTNET_OPEN_SECURE_CHANNEL, DOTNET_CREATE_SESSION, DOTNET_ACTIVATE_SESSION
elif program_type == PROGRAM_NAME_OPEN62541:
return OPEN62541_HELLO_MSG, OPEN62541_OPEN_SECURE_CHANNEL, OPEN62541_CREATE_SESSION, OPEN62541_ACTIVATE_SESSION
elif program_type == PROGRAM_NAME_IGNITION:
return IGNITION_HELLO_MSG, IGNITION_OPEN_SECURE_CHANNEL, IGNITION_CREATE_SESSION, IGNITION_ACTIVATE_SESSION
elif program_type == PROGRAM_NAME_RUST:
return RUST_HELLO_MSG, RUST_OPEN_SECURE_CHANNEL, RUST_CREATE_SESSION, RUST_ACTIVATE_SESSION
elif program_type == PROGRAM_NAME_NODE_OPCUA:
return PROSYS_HELLO_MSG, PROSYS_OPEN_SECURE_CHANNEL, PROSYS_CREATE_SESSION, PROSYS_ACTIVATE_SESSION
elif program_type == PROGRAM_NAME_PYTHON_OPCUA:
return PYTHON_OPCUA_HELLO_MSG, PYTHON_OPCUA_OPEN_SECURE_CHANNEL, PYTHON_OPCUA_CREATE_SESSION, PYTHON_OPCUA_ACTIVATE_SESSION
elif program_type == PROGRAM_NAME_MILO:
return IGNITION_HELLO_MSG, IGNITION_OPEN_SECURE_CHANNEL, IGNITION_CREATE_SESSION, IGNITION_ACTIVATE_SESSION
if program_type == PROGRAM_NAME_S2OPC:
return S2OPC_HELLO_MSG, S2OPC_OPEN_SECURE_CHANNEL, S2OPC_CREATE_SESSION, S2OPC_ACTIVATE_SESSION
else:
raise NotImplementedError