code: def _walk_issuers(self, path, paths, failed_paths):
          
  
          if path.first.signature in self._ca_lookup:
              paths.append(path)
              return
  
          new_branches = 0
          for issuer in self._possible_issuers(path.first):
              try:
                  self._walk_issuers(path.copy().prepend(issuer), paths, failed_paths)
                  new_branches += 1
              except (DuplicateCertificateError):
                  pass
  
          if not new_branches:
              failed_paths.append(path)
docs: Recursively looks through the list of known certificates for the issuer
          of the certificate specified, stopping once the certificate in question
          is one contained within the CA certs list
  
          :param path:
              A ValidationPath object representing the current traversal of
              possible paths
  
          :param paths:
              A list of completed ValidationPath objects. This is mutated as
              results are found.
  
          :param failed_paths:
              A list of certvalidator.path.ValidationPath objects that failed due
              to no matching issuer before reaching a certificate from the CA
              certs list