assemblyline-core 4.6.1.dev44__tar.gz → 4.6.1.dev49__tar.gz
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.
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/PKG-INFO +1 -1
- assemblyline_core-4.6.1.dev49/assemblyline_core/VERSION +1 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/plumber/run_plumber.py +30 -42
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core.egg-info/PKG-INFO +1 -1
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/test/test_plumber.py +15 -3
- assemblyline_core-4.6.1.dev44/assemblyline_core/VERSION +0 -1
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/LICENCE.md +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/README.md +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/__init__.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/alerter/__init__.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/alerter/processing.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/alerter/run_alerter.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/archiver/__init__.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/archiver/run_archiver.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/badlist_client.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/dispatching/__init__.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/dispatching/__main__.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/dispatching/client.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/dispatching/dispatcher.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/dispatching/schedules.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/dispatching/timeout.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/expiry/__init__.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/expiry/run_expiry.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/ingester/__init__.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/ingester/__main__.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/ingester/constants.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/ingester/ingester.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/metrics/__init__.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/metrics/es_metrics.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/metrics/heartbeat_formatter.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/metrics/helper.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/metrics/metrics_server.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/metrics/run_heartbeat_manager.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/metrics/run_metrics_aggregator.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/metrics/run_statistics_aggregator.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/plumber/__init__.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/replay/__init__.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/replay/client.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/replay/creator/__init__.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/replay/creator/run.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/replay/creator/run_worker.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/replay/loader/__init__.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/replay/loader/run.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/replay/loader/run_worker.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/replay/replay.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/safelist_client.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/scaler/__init__.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/scaler/collection.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/scaler/controllers/__init__.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/scaler/controllers/docker_ctl.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/scaler/controllers/interface.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/scaler/controllers/kubernetes_ctl.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/scaler/run_scaler.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/scaler/scaler_server.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/server_base.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/signature_client.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/submission_client.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/tasking_client.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/updater/__init__.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/updater/helper.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/updater/run_updater.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/vacuum/__init__.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/vacuum/crawler.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/vacuum/department_map.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/vacuum/safelist.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/vacuum/stream_map.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/vacuum/worker.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/workflow/__init__.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/workflow/run_workflow.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core.egg-info/SOURCES.txt +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core.egg-info/dependency_links.txt +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core.egg-info/requires.txt +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core.egg-info/top_level.txt +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/setup.cfg +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/setup.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/test/test_alerter.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/test/test_badlist_client.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/test/test_dispatcher.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/test/test_expiry.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/test/test_replay.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/test/test_safelist_client.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/test/test_scaler.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/test/test_scheduler.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/test/test_signature_client.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/test/test_simulation.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/test/test_tasking_client.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/test/test_vacuum.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/test/test_worker_ingest.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/test/test_worker_submit.py +0 -0
- {assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/test/test_workflow.py +0 -0
@@ -0,0 +1 @@
|
|
1
|
+
4.6.1.dev49
|
@@ -200,55 +200,43 @@ class Plumber(CoreBase):
|
|
200
200
|
self.log.info(f"Done watching {service_name} service queue")
|
201
201
|
|
202
202
|
def user_apikey_cleanup(self):
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
total = 1
|
207
|
-
cur_total = 0
|
203
|
+
expiry_ts = None
|
204
|
+
if self.config.auth.apikey_max_dtl is not None:
|
205
|
+
expiry_ts = now_as_iso(self.config.auth.apikey_max_dtl * DAY_IN_SECONDS)
|
208
206
|
|
209
|
-
|
210
|
-
|
207
|
+
for user in self.datastore.user.stream_search(query="*", fl="*", as_obj=False):
|
208
|
+
uname = user['uname']
|
209
|
+
apikeys = user['apikeys']
|
211
210
|
|
212
|
-
|
211
|
+
for key in apikeys:
|
212
|
+
old_apikey = apikeys[key]
|
213
|
+
key_id = get_apikey_id(key, uname)
|
213
214
|
|
214
|
-
|
215
|
-
|
216
|
-
total = result.get('total', 0)
|
217
|
-
cur_total = cur_total + (result.get("count", total))
|
215
|
+
roles = None
|
216
|
+
if old_apikey['acl'] == ["C"]:
|
218
217
|
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
for u in users:
|
223
|
-
uname = u['uname']
|
224
|
-
user = self.datastore.user.get(uname)
|
225
|
-
apikeys = user.apikeys
|
226
|
-
|
227
|
-
for key in apikeys:
|
228
|
-
old_apikey = apikeys[key]
|
229
|
-
key_id = get_apikey_id(key, uname)
|
230
|
-
|
231
|
-
roles = None
|
232
|
-
if old_apikey['acl'] == ["C"]:
|
218
|
+
roles = [r for r in old_apikey['roles']
|
219
|
+
if r in load_roles(user['type'], user['roles'])]
|
233
220
|
|
234
|
-
|
235
|
-
|
221
|
+
else:
|
222
|
+
roles = [r for r in load_roles_form_acls(old_apikey['acl'], roles)
|
223
|
+
if r in load_roles(user['type'], user['roles'])]
|
224
|
+
new_apikey = {
|
225
|
+
"password": old_apikey['password'],
|
226
|
+
"acl": old_apikey['acl'],
|
227
|
+
"uname": uname,
|
228
|
+
"key_name": key,
|
229
|
+
"roles": roles,
|
230
|
+
"expiry_ts": expiry_ts
|
231
|
+
}
|
232
|
+
self.datastore.apikey.save(key_id, new_apikey)
|
236
233
|
|
237
|
-
|
238
|
-
|
239
|
-
if r in load_roles(user['type'], user['roles'])]
|
240
|
-
new_apikey = {
|
241
|
-
"password": old_apikey['password'],
|
242
|
-
"acl": old_apikey['acl'],
|
243
|
-
"uname": uname,
|
244
|
-
"key_name": key,
|
245
|
-
"roles": roles,
|
246
|
-
"expiry_ts": expiry_ts
|
247
|
-
}
|
248
|
-
self.datastore.apikey.save(key_id, new_apikey)
|
234
|
+
user['apikeys'] = {}
|
235
|
+
self.datastore.user.save(uname, user)
|
249
236
|
|
250
|
-
|
251
|
-
|
237
|
+
# Commit changes made to indices
|
238
|
+
self.datastore.user.commit()
|
239
|
+
self.datastore.apikey.commit()
|
252
240
|
|
253
241
|
def migrate_user_settings(self):
|
254
242
|
service_list = self.datastore.list_all_services(as_obj=False)
|
@@ -8,6 +8,7 @@ from redis import Redis
|
|
8
8
|
|
9
9
|
from assemblyline.odm.messages.task import Task
|
10
10
|
from assemblyline.odm.models.service import Service
|
11
|
+
from assemblyline.odm.models.user import ApiKey, User
|
11
12
|
from assemblyline.odm.random_data import random_model_obj
|
12
13
|
|
13
14
|
|
@@ -120,27 +121,38 @@ def test_user_setting_migrations(datastore_connection):
|
|
120
121
|
|
121
122
|
# Create a user with old settings (format prior to 4.6)
|
122
123
|
settings = {'classification': 'TLP:CLEAR', 'deep_scan': False, 'description': '', 'download_encoding': 'cart', 'default_external_sources': ['Malware Bazaar', 'VirusTotal'], 'default_zip_password': 'zippy', 'executive_summary': False, 'expand_min_score': 500, 'generate_alert': False, 'ignore_cache': False, 'ignore_dynamic_recursion_prevention': False, 'ignore_recursion_prevention': False, 'ignore_filtering': False, 'malicious': False, 'priority': 369, 'profile': False, 'service_spec': {'AVClass': {'include_malpedia_dataset': False}}, 'services': {'selected': ['Extraction', 'ConfigExtractor', 'YARA'], 'excluded': [], 'rescan': [], 'resubmit': [], 'runtime_excluded': []}, 'submission_view': 'report', 'ttl': 0}
|
124
|
+
|
125
|
+
user_account = random_model_obj(User, as_json=True)
|
126
|
+
user_account['uname'] = "admin"
|
127
|
+
user_account['apikeys'] = {'test': random_model_obj(ApiKey, as_json=True)}
|
123
128
|
datastore_connection.ds.client.index(index="user_settings", id="admin", document=settings)
|
129
|
+
datastore_connection.ds.client.index(index="user", id="admin", document=user_account)
|
130
|
+
|
124
131
|
datastore_connection.user_settings.commit()
|
132
|
+
datastore_connection.user.commit()
|
125
133
|
|
126
134
|
# Initiate the migration
|
135
|
+
plumber.user_apikey_cleanup()
|
127
136
|
plumber.migrate_user_settings()
|
128
137
|
|
129
138
|
# Check that the settings have been migrated
|
130
139
|
migrated_settings = datastore_connection.user_settings.get("admin", as_obj=False)
|
131
140
|
|
141
|
+
# Check to see if API keys for the user were transferred to the new index
|
142
|
+
assert datastore_connection.apikey.search('uname:admin', rows=0)['total'] > 0
|
143
|
+
|
132
144
|
# Deprecated settings should be removed
|
133
145
|
assert "ignore_dynamic_recursion_prevention" not in migrated_settings
|
134
146
|
|
135
147
|
# All former submission settings at the root-level should be moved to submission profiles
|
136
148
|
assert all([key not in migrated_settings for key in SubmissionProfileParams.fields().keys()] )
|
137
149
|
|
138
|
-
for
|
150
|
+
for settings in migrated_settings['submission_profiles'].values():
|
139
151
|
assert settings['classification'] == 'TLP:C'
|
140
152
|
assert settings['deep_scan'] is False
|
141
153
|
assert settings['generate_alert'] is False
|
142
154
|
assert settings['ignore_cache'] is False
|
143
155
|
assert settings['priority'] == 369
|
144
|
-
# Full service spec should be preserved in default profile
|
145
|
-
assert settings['service_spec'] == {
|
156
|
+
# Full service spec should be preserved in default profile (along with others by default if there's no restricted parameters)
|
157
|
+
assert settings['service_spec'] == {'AVClass': {'include_malpedia_dataset': False}}
|
146
158
|
assert settings['ttl'] == 0
|
@@ -1 +0,0 @@
|
|
1
|
-
4.6.1.dev44
|
File without changes
|
File without changes
|
{assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/badlist_client.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/expiry/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/metrics/helper.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/replay/__init__.py
RENAMED
File without changes
|
{assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/replay/client.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/replay/replay.py
RENAMED
File without changes
|
{assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/safelist_client.py
RENAMED
File without changes
|
{assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/scaler/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/server_base.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/tasking_client.py
RENAMED
File without changes
|
File without changes
|
{assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/updater/helper.py
RENAMED
File without changes
|
File without changes
|
{assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/vacuum/__init__.py
RENAMED
File without changes
|
{assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/vacuum/crawler.py
RENAMED
File without changes
|
File without changes
|
{assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/vacuum/safelist.py
RENAMED
File without changes
|
File without changes
|
{assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/assemblyline_core/vacuum/worker.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/test/test_safelist_client.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{assemblyline_core-4.6.1.dev44 → assemblyline_core-4.6.1.dev49}/test/test_signature_client.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|