Exemplo n.º 1
0
 def exists_hash(cls, api, hash_value, hash_type):
     return core.PolyswarmRequest(
         api,
         {
             'method': 'HEAD',
             'url': '{}/search/hash/{}'.format(api.uri, hash_type),
             'params': {
                 'hash': hash_value,
             },
         },
     ).execute()
Exemplo n.º 2
0
 def lookup_uuid(cls, api, submission_id):
     return core.PolyswarmRequest(
         api,
         {
             'method':
             'GET',
             'url':
             '{}/consumer/submission/{}/{}'.format(api.uri, api.community,
                                                   int(submission_id)),
         },
         result_parser=cls,
     ).execute()
Exemplo n.º 3
0
 def list_scans(cls, api, hash_value):
     return core.PolyswarmRequest(
         api,
         {
             'method': 'GET',
             'url': '{}/search/instances'.format(api.uri),
             'params': {
                 'hash': hash_value,
             },
         },
         result_parser=cls,
     ).execute()
Exemplo n.º 4
0
 def search_url(cls, api, url):
     return core.PolyswarmRequest(
         api,
         {
             'method': 'GET',
             'url': '{}/search/url'.format(api.uri),
             'params': {
                 'url': url,
             },
         },
         result_parser=cls,
     ).execute()
Exemplo n.º 5
0
 def search_hash(cls, api, hash_value, hash_type):
     return core.PolyswarmRequest(
         api,
         {
             'method': 'GET',
             'url': '{}/search/hash/{}'.format(api.uri, hash_type),
             'params': {
                 'hash': hash_value,
             },
         },
         result_parser=cls,
     ).execute()
Exemplo n.º 6
0
 def rescan_id(cls, api, submission_id, scan_config=None):
     parameters = {
         'method':
         'POST',
         'url':
         '{}/consumer/submission/{}/rescan/{}'.format(
             api.uri, api.community, int(submission_id)),
     }
     if scan_config:
         parameters.setdefault('data', {})['scan-config'] = scan_config
     return core.PolyswarmRequest(
         api,
         parameters,
         result_parser=cls,
     ).execute()
Exemplo n.º 7
0
 def metadata_rerun(cls, api, hashes, analyses=None, skip_es=None):
     parameters = {
         'method': 'POST',
         'url': '{}/consumer/metadata'.format(api.uri),
         'json': {
             'hashes': hashes
         },
     }
     if analyses:
         parameters['json']['analyses'] = analyses
     if skip_es:
         parameters['json']['skip_es'] = skip_es
     return core.PolyswarmRequest(
         api,
         parameters,
         result_parser=cls,
     ).execute()
Exemplo n.º 8
0
 def download(cls,
              api,
              hash_value,
              hash_type,
              handle=None,
              folder=None,
              artifact_name=None):
     return core.PolyswarmRequest(
         api,
         {
             'method': 'GET',
             'url': '{}/download/{}/{}'.format(api.uri, hash_type,
                                               hash_value),
             'stream': True,
         },
         result_parser=cls,
         handle=handle,
         folder=folder,
         artifact_name=artifact_name,
     ).execute()
Exemplo n.º 9
0
 def download_archive(cls,
                      api,
                      u,
                      handle=None,
                      folder=None,
                      artifact_name=None):
     """ This method is special, in that it is simply for downloading from S3 """
     return core.PolyswarmRequest(
         api,
         {
             'method': 'GET',
             'url': u,
             'stream': True,
             'headers': {
                 'Authorization': None
             }
         },
         result_parser=cls,
         handle=handle,
         folder=folder,
         artifact_name=artifact_name,
     ).execute()
Exemplo n.º 10
0
 def submit(cls,
            api,
            artifact,
            artifact_name,
            artifact_type,
            scan_config=None):
     parameters = {
         'method': 'POST',
         'url': '{}/consumer/submission/{}'.format(api.uri, api.community),
         'files': {
             'file': (artifact_name, artifact),
         },
         # very oddly, when included in files parameter this errors out
         'data': {
             'artifact-type': artifact_type,
         }
     }
     if scan_config:
         parameters['data']['scan-config'] = scan_config
     return core.PolyswarmRequest(
         api,
         parameters,
         result_parser=cls,
     ).execute()