Source code for censys.certificates

"""
Interact with the Censys Search Certificate API.
"""

from typing import List

from censys.api import CensysSearchAPI


[docs]class CensysCertificates(CensysSearchAPI): """ Interacts with the Certificates index. """ INDEX_NAME = "certificates" """Name of Censys Index.""" MAX_PER_BULK_REQUEST = 50 """Max number of bulk requests.""" def __init__(self, *args, **kwargs): CensysSearchAPI.__init__(self, *args, **kwargs) self.bulk_path = f"/bulk/{self.INDEX_NAME}"
[docs] def bulk(self, fingerprints: List[str]) -> dict: """ Requests data in bulk. Args: fingerprints (List[str]): List of certificate SHA256 fingerprints. Returns: dict: Search results from an API query. """ result = dict() start = 0 end = self.MAX_PER_BULK_REQUEST while start < len(fingerprints): data = {"fingerprints": fingerprints[start:end]} result.update(self._post(self.bulk_path, data=data)) start = end end += self.MAX_PER_BULK_REQUEST return result