'Provides the key certificates for authorities with the given fingerprints.
If no fingerprints are provided then this returns all present key
certificates.
:param str authority_v3idents: fingerprint or list of fingerprints of the
authority keys, see `\'v3ident\' in tor\'s config.c
<https://gitweb.torproject.org/tor.git/tree/src/or/config.c#n819>`_
for the values.
:param query_args: additional arguments for the
:class:`~stem.descriptor.remote.Query` constructor
:returns: :class:`~stem.descriptor.remote.Query` for the key certificates
:raises: **ValueError** if we request more than 96 key certificates by
their identity fingerprints (this is due to a limit on the url length by
squid proxies).'

def get_key_certificates(self, authority_v3idents=None, **query_args):

    resource = '/tor/keys/all.z'
    if isinstance(authority_v3idents, str):
        authority_v3idents = [authority_v3idents]
    if authority_v3idents:
        if (len(authority_v3idents) > MAX_FINGERPRINTS):
            raise ValueError(('Unable    to    request    more    than    %i    key    certificates    at    a    time    by    their    identity    fingerprints' % MAX_FINGERPRINTS))
        resource = ('/tor/keys/fp/%s.z' % '+'.join(authority_v3idents))
    return self.query(resource, **query_args)
