Skip to main content

The EVE API Client is a python class that allows interaction with the Exodus Vulnerability Enrichment (EVE): platform.

Welcome to the EVE API Client's documentation. Please get started by reading about how to use it and add it to your projects.

What's new

Patch

  • Fixes bug with HTTP proxy target.

Pre-requisites

  • An Exodus Intelligence account is required if you want to take advantage of the ful EVE platform.
  • Python 3.8 or newer is required.
  • The EVE platform provides an endpoint to deliver essential information about Common Vulnerabilities and Exposures CVE anonymously.

Getting started

Install EVE Client using pip:

   $ pip install eve-client

Using EVE Client Anonymously:

   import json
   from eve_client import eve
   exodus_api = eve.EVEClientAnonymous()
   cve = exodus_api.get_cve("CVE-2021-44228")
   print(json.dumps(cve, indent=3))

Output:

   {
      "data": {
         "attack_vector": "network",
         "product": "Apache Log4j2,Log4j2",
         ...
         "vendor": "Apache Software Foundation,Apache"
      },
      "ok": true
   }

Using EVE Client with Authentication:

   import json
   from eve_client import eve
   exodus_api = eve.EVEClient('abc@def.com', 'MyPassword', 'MYPRIVATEKEY')
   cve = exodus_api.get_vuln("CVE-2021-44228")
   print(json.dumps(cve, indent=3))

Output:

   {
      "data": {
         "attack_vector": "network",
         "product": "Apache Log4j2,Log4j2",
         ...
         "vendor": "Apache Software Foundation,Apache"
      },
      "ok": true
   }

You receive the anonymous fields, plus the fields in your account tier.

Classes and Methods Available

class eve.EVEClient(email, password, key, url, api_version, proxy_protocol, proxy_address, proxy_port)

Bases: object

Class EVEClient allows communication with the Exodus API.

Module to connect and interact with the Exodus Intelligence API.

  • Parameters
    • email (str) -- Email address registered with Exodus Intelligence.
    • password (str) -- User password
    • key (str*, *optional) -- Exodus Intelligence API key, defaults to None
    • url (*type**, *optional) -- Exodus Intelligence API domain, defaults to "https://eve.exodusintel.com"
    • api_version (str*, *optional) -- Version number ie: v1 or v2, defaults to "v1"
    • proxy_protocol (str*, *optional) -- Proxy protocol type, defaults to "http"
    • proxy_url (str*, *optional) -- Proxy Url, defaults to None
    • proxy_port (int*, *optional) -- Proxy Port, defaults to 3128

decrypt_bronco_in_report(report, bronco_public_key)

Decrypt the content of a report using a private and public key.

  • Parameters
    • report (object) -- The encrypted message.
    • bronco_public_key (str) -- The public key
  • Raises KeyError -- When Bronco Key is wrong.
  • Returns A dictionary object representing the report.
  • Return type dict

generate_key_pair()

Generate a public key pair .

  • Raises
    • exceptions.InvalidStateError -- Could not set the public key.
    • exceptions.InvalidStateError -- Could not confirm the public key.
  • Returns A key pair (sk, pk)
  • Return type tuple

get_access_token()

Obtain access token.

  • Raises requests.exceptions.ConnectionError -- API is Unavailable.
  • Returns A token
  • Return type str

get_bronco_public_key()

Get server public key.

  • Returns A string representation of a public key.
  • Return type str

get_recent_reports(reset: Optional[Union[int, datetime]] = None)

Get recent reports.

  • Parameters reset (int*, datetime, *optional) -- A number of days in the past to reset, defaults to 0
  • Returns Recent reports.
  • Return type dict

get_recent_vulns(reset: int = 0)

Get all vulnerabilities within 60 days of the user's stream marker; limit of 500 vulnerabilities can be returned.

  • Parameters reset (int*, *optional) -- Reset the stream maker to a number of days in the past, defaults to 0
  • Returns Returns recent vulnerabilities.
  • Return type dict

get_report(identifier: str)

Get a report by identifier .

  • Parameters identifier (str) -- String representation of report id.
  • Returns Returns report
  • Return type dict

get_vuln(identifier: str)

Get a Vulnerability by identifier or cve.

  • Parameters identifier (str) -- String representation of vulnerability id.

  • Returns A Vulnerability

  • Return type

    dict

get_vulns_by_day()

Get vulnerabilities by day .

  • Returns The number of vulnerabilities by day.
  • Return type dict

handle_reset_option(reset: Optional[Union[int, datetime]] = None)

Reset number of days.

  • Parameters reset (int) -- Number of days in the past to reset
  • Returns A date in ISO8601
  • Return type datetime

search(search_term: str)

Search specific term

  • Parameters search_term (str) -- Term to search for.
  • Returns Vulnerabilities containing search term
  • Return type dict

class eve.EVEClientAnonymous()

Bases: object This class allows to retrieve cve information anonymously from Exodus Intelligence API.

  • Returns: JSON Object: CVE information available to the anonymous user.

get_cve(identifier: str)

Retrieve a Common Vulnerabilities and Exposures identifier.

  • Parameters identifier (str) -- CVE identifier
  • Returns A dictionary containing fields for the anonymous tier.
  • Return type dict

Metadata

Release files for eve-client 2.0.16

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for eve-client 2.0.16
File Size Uploaded Provenance
eve_client-2.0.16.tar.gz 10.1 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for eve-client 2.0.16
File Interpreter ABI Platform
eve_client-2.0.16-py3-none-any.whl Python 3 none any Details

Total release size: 20.4 kB

Release files / eve_client-2.0.16.tar.gz

Download URL eve_client-2.0.16.tar.gz
Size 10.1 kB
Tags Source
SHA-256 checksum
How to use checksums
c7c02253029601d1939f1cf6e621374598c47cbf8eee5e9b205a0ee378e38eb0
BLAKE2b-256 checksum
How to use checksums
35a993b533b165f7b87df774337cfc4df624183ad86ef8e240bffb1f3e242fcd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.4.2 CPython/3.8.16 Linux/5.14.0-284.11.1.el9_2.x86_64

Release files / eve_client-2.0.16-py3-none-any.whl

Download URL eve_client-2.0.16-py3-none-any.whl
Size 10.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6375fddb779a2310067ebd172a80db07836114c1d3d87735d60913997c4a37a7
BLAKE2b-256 checksum
How to use checksums
af0293f65e3ef897e4aad63359c0479f8a6bee776ca217612599bd160f8f49c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.4.2 CPython/3.8.16 Linux/5.14.0-284.11.1.el9_2.x86_64

Security for eve-client 2.0.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page