Package: eve-client
The EVE API Client is a python class that allows interaction with theExodus 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 newPatchFixes bug with HTTP proxy target.Pre-requisitesAn Exodus Intelligence account is required if you want to take advantage of the ful EVE platform.Python3.8 or newer is required.The EVE platform provides an endpoint to deliver essential information about Common Vulnerabilities and Exposures CVE anonymously.Getting startedInstall EVE Client using pip:$pipinstalleve-clientUsing EVE Client Anonymously:importjsonfromeve_clientimporteveexodus_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:importjsonfromeve_clientimporteveexodus_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 Availableclasseve.EVEClient(email, password, key, url, api_version, proxy_protocol, proxy_address, proxy_port)Bases:objectClass EVEClient allows communication with the Exodus API.Module to connect and interact with the Exodus Intelligence API.Parametersemail(str) -- Email address registered with Exodus Intelligence.password(str) -- User passwordkey(str*, *optional) -- Exodus Intelligence API key, defaults to Noneurl(*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 Noneproxy_port(int*, *optional) -- Proxy Port, defaults to 3128decrypt_bronco_in_report(report, bronco_public_key)Decrypt the content of a report using a private and public key.Parametersreport(object) -- The encrypted message.bronco_public_key(str) -- The public keyRaisesKeyError-- When Bronco Key is wrong.ReturnsA dictionary object representing the report.Return typedictgenerate_key_pair()Generate a public key pair .Raisesexceptions.InvalidStateError-- Could not set the public key.exceptions.InvalidStateError-- Could not confirm the public key.ReturnsA key pair (sk, pk)Return typetupleget_access_token()Obtain access token.Raisesrequests.exceptions.ConnectionError-- API is Unavailable.ReturnsA tokenReturn typestrget_bronco_public_key()Get server public key.ReturnsA string representation of a public key.Return typestrget_recent_reports(reset: Optional[Union[int, datetime]] = None)Get recent reports.Parametersreset(int*,datetime, *optional) -- A number of days in the past to reset, defaults to 0ReturnsRecent reports.Return typedictget_recent_vulns(reset: int = 0)Get all vulnerabilities within 60 days of the user's stream marker;             limit of 500 vulnerabilities can be returned.Parametersreset(int*, *optional) -- Reset the stream maker to a number of days in the
past, defaults to 0ReturnsReturns recent vulnerabilities.Return typedictget_report(identifier: str)Get a report by identifier .Parametersidentifier(str) -- String representation of report id.ReturnsReturns reportReturn typedictget_vuln(identifier: str)Get a Vulnerability by identifier or cve.Parametersidentifier(str) -- String representation of vulnerability id.ReturnsA VulnerabilityReturn typedictget_vulns_by_day()Get vulnerabilities by day .ReturnsThe number of vulnerabilities by day.Return typedicthandle_reset_option(reset: Optional[Union[int, datetime]] = None)Reset number of days.Parametersreset(int) -- Number of days in the past to resetReturnsA date in ISO8601Return typedatetimesearch(search_term: str)Search specific termParameterssearch_term(str) -- Term to search for.ReturnsVulnerabilities containing search termReturn typedictclasseve.EVEClientAnonymous()Bases:objectThis 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.Parametersidentifier(str) -- CVE identifierReturnsA dictionary containing fields for the anonymous tier.Return typedict