atomicshop 2.17.3__py3-none-any.whl → 2.18.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of atomicshop might be problematic. Click here for more details.
- atomicshop/__init__.py +1 -1
- atomicshop/basics/ansi_escape_codes.py +3 -1
- atomicshop/file_io/docxs.py +26 -17
- atomicshop/http_parse.py +118 -77
- atomicshop/mitm/config_static.py +1 -1
- atomicshop/mitm/connection_thread_worker.py +387 -257
- atomicshop/mitm/engines/__parent/parser___parent.py +2 -2
- atomicshop/mitm/engines/__parent/recorder___parent.py +83 -24
- atomicshop/mitm/engines/__reference_general/recorder___reference_general.py +2 -2
- atomicshop/mitm/message.py +42 -15
- atomicshop/mitm/mitm_main.py +3 -2
- atomicshop/mitm/recs_files.py +2 -1
- atomicshop/system_resource_monitor.py +16 -3
- atomicshop/wrappers/socketw/base.py +17 -0
- atomicshop/wrappers/socketw/receiver.py +90 -100
- atomicshop/wrappers/socketw/sender.py +5 -8
- atomicshop/wrappers/socketw/sni.py +0 -1
- atomicshop/wrappers/socketw/socket_client.py +2 -2
- atomicshop/wrappers/socketw/statistics_csv.py +15 -6
- {atomicshop-2.17.3.dist-info → atomicshop-2.18.1.dist-info}/METADATA +1 -1
- {atomicshop-2.17.3.dist-info → atomicshop-2.18.1.dist-info}/RECORD +24 -24
- {atomicshop-2.17.3.dist-info → atomicshop-2.18.1.dist-info}/LICENSE.txt +0 -0
- {atomicshop-2.17.3.dist-info → atomicshop-2.18.1.dist-info}/WHEEL +0 -0
- {atomicshop-2.17.3.dist-info → atomicshop-2.18.1.dist-info}/top_level.txt +0 -0
|
@@ -13,10 +13,10 @@ class Sender:
|
|
|
13
13
|
def __init__(
|
|
14
14
|
self,
|
|
15
15
|
ssl_socket: ssl.SSLSocket,
|
|
16
|
-
class_message:
|
|
16
|
+
class_message: bytes,
|
|
17
17
|
logger: logging.Logger = None
|
|
18
18
|
):
|
|
19
|
-
self.class_message:
|
|
19
|
+
self.class_message: bytes = class_message
|
|
20
20
|
self.ssl_socket: ssl.SSLSocket = ssl_socket
|
|
21
21
|
|
|
22
22
|
if logger:
|
|
@@ -35,12 +35,11 @@ class Sender:
|
|
|
35
35
|
# The error string that will be returned by the function in case of error.
|
|
36
36
|
# If returned None then everything is fine.
|
|
37
37
|
# noinspection PyTypeChecker
|
|
38
|
-
|
|
38
|
+
error_message: str = None
|
|
39
|
+
|
|
39
40
|
# Current amount of bytes sent is 0, since we didn't start yet
|
|
40
41
|
total_sent_bytes = 0
|
|
41
42
|
|
|
42
|
-
# noinspection PyTypeChecker
|
|
43
|
-
error_message: str = None
|
|
44
43
|
try:
|
|
45
44
|
# Getting byte length of current message
|
|
46
45
|
current_message_length = len(self.class_message)
|
|
@@ -59,7 +58,6 @@ class Sender:
|
|
|
59
58
|
f"Sent {sent_bytes} bytes - connection is down... Could send only "
|
|
60
59
|
f"{total_sent_bytes} bytes out of {current_message_length}. Closing socket...")
|
|
61
60
|
self.logger.info(error_message)
|
|
62
|
-
function_result_error = error_message
|
|
63
61
|
break
|
|
64
62
|
|
|
65
63
|
# Adding amount of currently sent bytes to the total amount of bytes sent
|
|
@@ -97,6 +95,5 @@ class Sender:
|
|
|
97
95
|
|
|
98
96
|
if error_message:
|
|
99
97
|
print_api(error_message, logger=self.logger, logger_method='error')
|
|
100
|
-
function_result_error = error_message
|
|
101
98
|
|
|
102
|
-
return
|
|
99
|
+
return error_message
|
|
@@ -54,7 +54,6 @@ class SNISetup:
|
|
|
54
54
|
self.default_server_certificate_name = default_server_certificate_name
|
|
55
55
|
self.default_server_certificate_directory = default_server_certificate_directory
|
|
56
56
|
self.default_certificate_domain_list = default_certificate_domain_list
|
|
57
|
-
self.enable_sslkeylogfile_to_ssl_context: bool = enable_sslkeylogfile_to_ssl_context
|
|
58
57
|
self.sni_custom_callback_function: callable = sni_custom_callback_function
|
|
59
58
|
self.sni_use_default_callback_function: bool = sni_use_default_callback_function
|
|
60
59
|
self.sni_use_default_callback_function_extended: bool = sni_use_default_callback_function_extended
|
|
@@ -113,8 +113,8 @@ class SocketClient:
|
|
|
113
113
|
Function to establish connection to server
|
|
114
114
|
|
|
115
115
|
:return: Tuple with socket object and error string.
|
|
116
|
-
|
|
117
|
-
|
|
116
|
+
If connection was successful, the error string will be None.
|
|
117
|
+
If connection wasn't successful, the socket object will be None.
|
|
118
118
|
"""
|
|
119
119
|
# Check if socket to service domain exists.
|
|
120
120
|
# If not
|
|
@@ -6,8 +6,8 @@ from ..loggingw import loggingw
|
|
|
6
6
|
|
|
7
7
|
LOGGER_NAME: str = 'statistics'
|
|
8
8
|
STATISTICS_HEADER: str = (
|
|
9
|
-
'request_time_sent,thread_id,tls,protocol,host,path,command,status_code,request_size_bytes,
|
|
10
|
-
'process_cmd,error')
|
|
9
|
+
'request_time_sent,thread_id,tls,protocol,protocol2,protocol3,host,path,command,status_code,request_size_bytes,'
|
|
10
|
+
'response_size_bytes,file_path,process_cmd,action,error')
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
class StatisticsCSVWriter:
|
|
@@ -35,6 +35,8 @@ class StatisticsCSVWriter:
|
|
|
35
35
|
tls_type: str,
|
|
36
36
|
tls_version: str,
|
|
37
37
|
protocol: str,
|
|
38
|
+
protocol2: str,
|
|
39
|
+
protocol3: str,
|
|
38
40
|
path: str,
|
|
39
41
|
status_code: str,
|
|
40
42
|
command: str,
|
|
@@ -43,10 +45,11 @@ class StatisticsCSVWriter:
|
|
|
43
45
|
recorded_file_path: str = None,
|
|
44
46
|
process_cmd: str = None,
|
|
45
47
|
error: str = None,
|
|
46
|
-
|
|
48
|
+
action: str = None,
|
|
49
|
+
timestamp=None,
|
|
47
50
|
):
|
|
48
|
-
if not
|
|
49
|
-
|
|
51
|
+
if not timestamp:
|
|
52
|
+
timestamp = datetime.datetime.now()
|
|
50
53
|
|
|
51
54
|
if not tls_type and not tls_version:
|
|
52
55
|
tls_info = ''
|
|
@@ -54,10 +57,12 @@ class StatisticsCSVWriter:
|
|
|
54
57
|
tls_info = f'{tls_type}|{tls_version}'
|
|
55
58
|
|
|
56
59
|
escaped_line_string: str = csvs.escape_csv_line_to_string([
|
|
57
|
-
|
|
60
|
+
timestamp,
|
|
58
61
|
thread_id,
|
|
59
62
|
tls_info,
|
|
60
63
|
protocol,
|
|
64
|
+
protocol2,
|
|
65
|
+
protocol3,
|
|
61
66
|
host,
|
|
62
67
|
path,
|
|
63
68
|
command,
|
|
@@ -66,6 +71,7 @@ class StatisticsCSVWriter:
|
|
|
66
71
|
response_size_bytes,
|
|
67
72
|
recorded_file_path,
|
|
68
73
|
process_cmd,
|
|
74
|
+
action,
|
|
69
75
|
error
|
|
70
76
|
])
|
|
71
77
|
|
|
@@ -95,6 +101,8 @@ class StatisticsCSVWriter:
|
|
|
95
101
|
tls_type='',
|
|
96
102
|
tls_version='',
|
|
97
103
|
protocol='',
|
|
104
|
+
protocol2='',
|
|
105
|
+
protocol3='',
|
|
98
106
|
path='',
|
|
99
107
|
status_code='',
|
|
100
108
|
command='',
|
|
@@ -102,5 +110,6 @@ class StatisticsCSVWriter:
|
|
|
102
110
|
response_size_bytes='',
|
|
103
111
|
recorded_file_path='',
|
|
104
112
|
process_cmd=process_name,
|
|
113
|
+
action='client_accept',
|
|
105
114
|
error=error_message
|
|
106
115
|
)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
atomicshop/__init__.py,sha256=
|
|
1
|
+
atomicshop/__init__.py,sha256=sd-5MCzdxJLvLvlvBmT3hqetHRPabTPPEglAUqrWUSo,123
|
|
2
2
|
atomicshop/_basics_temp.py,sha256=6cu2dd6r2dLrd1BRNcVDKTHlsHs_26Gpw8QS6v32lQ0,3699
|
|
3
3
|
atomicshop/_create_pdf_demo.py,sha256=Yi-PGZuMg0RKvQmLqVeLIZYadqEZwUm-4A9JxBl_vYA,3713
|
|
4
4
|
atomicshop/_patch_import.py,sha256=ENp55sKVJ0e6-4lBvZnpz9PQCt3Otbur7F6aXDlyje4,6334
|
|
@@ -19,7 +19,7 @@ atomicshop/functions.py,sha256=pK8hoCE9z61PtWCxQJsda7YAphrLH1wxU5x-1QJP-sY,499
|
|
|
19
19
|
atomicshop/get_process_list.py,sha256=8cxb7gKe9sl4R6H2yMi8J6oe-RkonTvCdKjRFqi-Fs4,6075
|
|
20
20
|
atomicshop/get_process_name_cmd_dll.py,sha256=CtaSp3mgxxJKCCVW8BLx6BJNx4giCklU_T7USiCEwfc,5162
|
|
21
21
|
atomicshop/hashing.py,sha256=Le8qGFyt3_wX-zGTeQShz7L2HL_b6nVv9PnawjglyHo,3474
|
|
22
|
-
atomicshop/http_parse.py,sha256=
|
|
22
|
+
atomicshop/http_parse.py,sha256=1Tna9YbOM0rE3t6i_M-klBlwd1KNSA9skA_BqKGXDFc,11861
|
|
23
23
|
atomicshop/inspect_wrapper.py,sha256=sGRVQhrJovNygHTydqJj0hxES-aB2Eg9KbIk3G31apw,11429
|
|
24
24
|
atomicshop/ip_addresses.py,sha256=Hvi4TumEFoTEpKWaq5WNF-YzcRzt24IxmNgv-Mgax1s,1190
|
|
25
25
|
atomicshop/keyboard_press.py,sha256=1W5kRtOB75fulVx-uF2yarBhW0_IzdI1k73AnvXstk0,452
|
|
@@ -37,7 +37,7 @@ atomicshop/sound.py,sha256=tHiQQbFBk7EYN3pAfGNcxfF9oNsoYnZgu9z9iq8hxQE,24352
|
|
|
37
37
|
atomicshop/speech_recognize.py,sha256=55-dIjgkpF93mvJnJuxSFuft5H5eRvGNlUj9BeIOZxk,5903
|
|
38
38
|
atomicshop/ssh_remote.py,sha256=Mxixqs2-xGy1bhbcP0LKqjxKTNPz1Gmzz8PzO8aLB4c,17345
|
|
39
39
|
atomicshop/sys_functions.py,sha256=MTBxRve5bh58SPvhX3gMiGqHlSBuI_rdNN1NnnBBWqI,906
|
|
40
|
-
atomicshop/system_resource_monitor.py,sha256=
|
|
40
|
+
atomicshop/system_resource_monitor.py,sha256=yHdBU4mAVqoVS0Nn_SM_H42i4PgsgXDaXaMxfnL5CgA,14588
|
|
41
41
|
atomicshop/system_resources.py,sha256=iKUvVSaXR47inmr3cTYsgNfclT38dRia2oupnlhIpK4,9290
|
|
42
42
|
atomicshop/tempfiles.py,sha256=uq1ve2WlWehZ3NOTXJnpBBMt6HyCdBufqedF0HyzA6k,2517
|
|
43
43
|
atomicshop/timer.py,sha256=7Zw1KRV0acHCRATMnanyX2MLBb63Hc-6us3rCZ9dNlY,2345
|
|
@@ -83,7 +83,7 @@ atomicshop/archiver/sevenzs.py,sha256=5i_C50-deC1Cz_GQdMGofV2jeMPbbGWAvih-QnA72c
|
|
|
83
83
|
atomicshop/archiver/shutils.py,sha256=BomnK7zT-nQXA1z0i2R2aTv8eu88wPx7tf2HtOdbmEc,1280
|
|
84
84
|
atomicshop/archiver/zips.py,sha256=0Z_1MWs7YRiCBVpyaG8llnzRguHSO4R51KDMN3FJZt8,16984
|
|
85
85
|
atomicshop/basics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
86
|
-
atomicshop/basics/ansi_escape_codes.py,sha256=
|
|
86
|
+
atomicshop/basics/ansi_escape_codes.py,sha256=uGVRW01v2O052701sOfAdCaM_GLF_cu_jrssuYiPbzA,3216
|
|
87
87
|
atomicshop/basics/argparse_template.py,sha256=horwgSf3MX1ZgRnYxtmmQuz9OU_vKrKggF65gmjlmfg,5836
|
|
88
88
|
atomicshop/basics/booleans.py,sha256=V36NaMf8AffhCom_ovQeOZlYcdtGyIcQwWKki6h7O0M,1745
|
|
89
89
|
atomicshop/basics/bytes_arrays.py,sha256=tU7KF0UAFSErGNcan4Uz1GJxeIYVRuUu9sHVZHgyNnw,6542
|
|
@@ -118,33 +118,33 @@ atomicshop/etws/traces/trace_dns.py,sha256=WvOZm7KNdP4r6ofkZhUGi9WjtYlkV3mUp_yxi
|
|
|
118
118
|
atomicshop/etws/traces/trace_sysmon_process_creation.py,sha256=OM-bkK38uYMwWLZKNOTDa0Xdk3sO6sqsxoMUIiPvm5g,4656
|
|
119
119
|
atomicshop/file_io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
120
120
|
atomicshop/file_io/csvs.py,sha256=jBdm3_z5cMyvxLxJnGcybUAptHAbyL0r0tlLqY0sdTQ,9327
|
|
121
|
-
atomicshop/file_io/docxs.py,sha256=
|
|
121
|
+
atomicshop/file_io/docxs.py,sha256=Nyt3hSpzwqUKZEP5p5efqNpjFs9XqkK40Kp7BbbPo7E,6245
|
|
122
122
|
atomicshop/file_io/file_io.py,sha256=5Kl0P6vF4GQVdwew1lzHLb-db9qiMvDjTgccbi5P-zk,7167
|
|
123
123
|
atomicshop/file_io/jsons.py,sha256=q9ZU8slBKnHLrtn3TnbK1qxrRpj5ZvCm6AlsFzoANjo,5303
|
|
124
124
|
atomicshop/file_io/tomls.py,sha256=ol8EvQPf9sryTmZUf1v55BYSUQ6ml7HVVBHpNKbsIlA,9768
|
|
125
125
|
atomicshop/file_io/xlsxs.py,sha256=v_dyg9GD4LqgWi6wA1QuWRZ8zG4ZwB6Dz52ytdcmmmI,2184
|
|
126
126
|
atomicshop/file_io/xmls.py,sha256=zh3SuK-dNaFq2NDNhx6ivcf4GYCfGM8M10PcEwDSpxk,2104
|
|
127
127
|
atomicshop/mitm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
128
|
-
atomicshop/mitm/config_static.py,sha256=
|
|
128
|
+
atomicshop/mitm/config_static.py,sha256=HIzxyMEj7DZksYvJsN5VuKpB-_HSVvuR6U59ztS9gi0,7871
|
|
129
129
|
atomicshop/mitm/config_toml_editor.py,sha256=2p1CMcktWRR_NW-SmyDwylu63ad5e0-w1QPMa8ZLDBw,1635
|
|
130
|
-
atomicshop/mitm/connection_thread_worker.py,sha256=
|
|
130
|
+
atomicshop/mitm/connection_thread_worker.py,sha256=NHRa_f7k12JH9eDuGmr_-eCPRQVjO77RgCmLe9K2lWA,26073
|
|
131
131
|
atomicshop/mitm/import_config.py,sha256=0Ij14aISTllTOiWYJpIUMOWobQqGofD6uafui5uWllE,9272
|
|
132
132
|
atomicshop/mitm/initialize_engines.py,sha256=NWz0yBErSrYBn0xWkJDBcHStBJ-kcsv9VtorcSP9x5M,8258
|
|
133
|
-
atomicshop/mitm/message.py,sha256=
|
|
134
|
-
atomicshop/mitm/mitm_main.py,sha256=
|
|
135
|
-
atomicshop/mitm/recs_files.py,sha256=
|
|
133
|
+
atomicshop/mitm/message.py,sha256=mNo4Lphr_Jo6IlNX5mPJzABpogWGkjOhwI4meAivwHw,2987
|
|
134
|
+
atomicshop/mitm/mitm_main.py,sha256=AxmqUiDHgfzqmIF8v2GZxlEKth6_AMaYcqAxziWMG0U,23430
|
|
135
|
+
atomicshop/mitm/recs_files.py,sha256=ZAAD0twun-FtmbSniXe3XQhIlawvANNB_HxwbHj7kwI,3151
|
|
136
136
|
atomicshop/mitm/shared_functions.py,sha256=0lzeyINd44sVEfFbahJxQmz6KAMWbYrW5ou3UYfItvw,1777
|
|
137
137
|
atomicshop/mitm/statistic_analyzer.py,sha256=5_sAYGX2Xunzo_pS2W5WijNCwr_BlGJbbOO462y_wN4,27533
|
|
138
138
|
atomicshop/mitm/engines/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
139
139
|
atomicshop/mitm/engines/create_module_template.py,sha256=TAzsA4eLD2wYr7auuL4Nf_71iXqn-BOBXlSkNVrnYD4,5336
|
|
140
140
|
atomicshop/mitm/engines/create_module_template_example.py,sha256=X5xhvbV6-g9jU_bQVhf_crZmaH50LRWz3bS-faQ18ds,489
|
|
141
141
|
atomicshop/mitm/engines/__parent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
142
|
-
atomicshop/mitm/engines/__parent/parser___parent.py,sha256=
|
|
143
|
-
atomicshop/mitm/engines/__parent/recorder___parent.py,sha256=
|
|
142
|
+
atomicshop/mitm/engines/__parent/parser___parent.py,sha256=HHaCXhScl3OlPjz6eUxsDpJaZyk6BNuDMc9xCkeo2Ws,661
|
|
143
|
+
atomicshop/mitm/engines/__parent/recorder___parent.py,sha256=exfElkgOU57hupV6opRCeYPHw91GIkIZL6UY3f2OClM,5635
|
|
144
144
|
atomicshop/mitm/engines/__parent/responder___parent.py,sha256=7WQeR3UmMnN74bDwn-0nz2OfhXJ3-ClXpNGUFZ7wJUE,12004
|
|
145
145
|
atomicshop/mitm/engines/__reference_general/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
146
146
|
atomicshop/mitm/engines/__reference_general/parser___reference_general.py,sha256=57MEPZMAjTO6xBDZ-yt6lgGJyqRrP0Do5Gk_cgCiPns,2998
|
|
147
|
-
atomicshop/mitm/engines/__reference_general/recorder___reference_general.py,sha256=
|
|
147
|
+
atomicshop/mitm/engines/__reference_general/recorder___reference_general.py,sha256=El2_YHLoHUCiKfkAmGlXxtFpmSjsUFdsb8I1MvSAFaM,653
|
|
148
148
|
atomicshop/mitm/engines/__reference_general/responder___reference_general.py,sha256=IUyQYMPeEhIARfALWiKPFeXagSQD6lRzAxUdi4ZIT88,7010
|
|
149
149
|
atomicshop/mitm/statistic_analyzer_helper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
150
150
|
atomicshop/mitm/statistic_analyzer_helper/analyzer_helper.py,sha256=pk6L1t1ea1kvlBoR9QEJptOmaX-mumhwLsP2GCKukbk,5920
|
|
@@ -303,24 +303,24 @@ atomicshop/wrappers/pywin32w/wmis/win32networkadapter.py,sha256=9H9MdS__GDBMm8H-
|
|
|
303
303
|
atomicshop/wrappers/pywin32w/wmis/win32process.py,sha256=qMzXtJ5hBZ5ydAyqpDbSx0nO2RJQL95HdmV5SzNKMhk,6826
|
|
304
304
|
atomicshop/wrappers/socketw/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
305
305
|
atomicshop/wrappers/socketw/accepter.py,sha256=hZZKVYlF3LOHQJsSIEKXZUf6QXXWm-AtqXZevvaYigE,1732
|
|
306
|
-
atomicshop/wrappers/socketw/base.py,sha256=
|
|
306
|
+
atomicshop/wrappers/socketw/base.py,sha256=zYwFxiEzTcItFi1RZQCMxMTLBvECVUiKwivPYKcu44g,2713
|
|
307
307
|
atomicshop/wrappers/socketw/certificator.py,sha256=mtWPJ_ew3OSwt0-1W4jaoco1VIY4NRCrMv3mDUxb_Cc,12418
|
|
308
308
|
atomicshop/wrappers/socketw/creator.py,sha256=zMWLsOF07vX-xQZR720LeHQVndUT8q-ytdCrKF5tt9I,12835
|
|
309
309
|
atomicshop/wrappers/socketw/dns_server.py,sha256=RklzINNuoMQn4PGGQEI5hiAldprbVwwvikY6u9X-jTY,49067
|
|
310
310
|
atomicshop/wrappers/socketw/exception_wrapper.py,sha256=B-X5SHLSUIWToihH2MKnOB1F4A81_X0DpLLfnYKYbEc,7067
|
|
311
311
|
atomicshop/wrappers/socketw/get_process.py,sha256=aJC-_qFUv3NgWCSUzDI72E4z8_-VTZE9NVZ0CwUoNlM,5698
|
|
312
|
-
atomicshop/wrappers/socketw/receiver.py,sha256
|
|
313
|
-
atomicshop/wrappers/socketw/sender.py,sha256=
|
|
314
|
-
atomicshop/wrappers/socketw/sni.py,sha256=
|
|
315
|
-
atomicshop/wrappers/socketw/socket_client.py,sha256=
|
|
312
|
+
atomicshop/wrappers/socketw/receiver.py,sha256=LRQO-RIY0ZRjSMGVHLVJAXFTVO1zvjgIKSefEngPFfc,8186
|
|
313
|
+
atomicshop/wrappers/socketw/sender.py,sha256=aX_K8l_rHjd5AWb8bi5mt8-YTkMYVRDB6DnPqK_XDUE,4754
|
|
314
|
+
atomicshop/wrappers/socketw/sni.py,sha256=Nc8WMZZR21o5GXILQLVWbf7OzNPXAfE8trJY153e9Qk,17591
|
|
315
|
+
atomicshop/wrappers/socketw/socket_client.py,sha256=oa3GwS4OPgokrJE5_Oc4-5_wlXHxSH9J5f2DKebms8k,22035
|
|
316
316
|
atomicshop/wrappers/socketw/socket_server_tester.py,sha256=Qobmh4XV8ZxLUaw-eW4ESKAbeSLecCKn2OWFzMhadk0,6420
|
|
317
317
|
atomicshop/wrappers/socketw/socket_wrapper.py,sha256=WtylpezgIIBuz-A6PfM0hO1sm9Exd4j3qhDXcFc74-E,35567
|
|
318
318
|
atomicshop/wrappers/socketw/ssl_base.py,sha256=kmiif84kMhBr5yjQW17p935sfjR5JKG0LxIwBA4iVvU,2275
|
|
319
|
-
atomicshop/wrappers/socketw/statistics_csv.py,sha256=
|
|
319
|
+
atomicshop/wrappers/socketw/statistics_csv.py,sha256=fgMzDXI0cybwUEqAxprRmY3lqbh30KAV-jOpoFKT-m8,3395
|
|
320
320
|
atomicshop/wrappers/winregw/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
321
321
|
atomicshop/wrappers/winregw/winreg_network.py,sha256=zZQfps-CdODQaTUADbHAwKHr5RUg7BLafnKWBbKaLN4,8728
|
|
322
|
-
atomicshop-2.
|
|
323
|
-
atomicshop-2.
|
|
324
|
-
atomicshop-2.
|
|
325
|
-
atomicshop-2.
|
|
326
|
-
atomicshop-2.
|
|
322
|
+
atomicshop-2.18.1.dist-info/LICENSE.txt,sha256=lLU7EYycfYcK2NR_1gfnhnRC8b8ccOTElACYplgZN88,1094
|
|
323
|
+
atomicshop-2.18.1.dist-info/METADATA,sha256=udb7ZbArHpKHBqBMXmBZbJw4FBWF0EVZeWc3yVZHeak,10499
|
|
324
|
+
atomicshop-2.18.1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
|
325
|
+
atomicshop-2.18.1.dist-info/top_level.txt,sha256=EgKJB-7xcrAPeqTRF2laD_Np2gNGYkJkd4OyXqpJphA,11
|
|
326
|
+
atomicshop-2.18.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|