code: def build_verified_certificate_chain(self, received_certificate_chain: List[Certificate]) -> List[Certificate]:
          
          # The certificates must have been sent in the correct order or we give up
          if not self._is_certificate_chain_order_valid(received_certificate_chain):
              raise InvalidCertificateChainOrderError()
  
          # TODO: OpenSSL 1.1.0 has SSL_get0_verified_chain() to do this directly
          verified_certificate_chain = []
          anchor_cert = None
          # Assume that the certificates were sent in the correct order or give up
          for cert in received_certificate_chain:
              anchor_cert = self._get_certificate_with_subject(cert.issuer)
              verified_certificate_chain.append(cert)
              if anchor_cert:
                  verified_certificate_chain.append(anchor_cert)
                  break
  
          if anchor_cert is None:
              # Could not build the verified chain
              raise AnchorCertificateNotInTrustStoreError()
  
          return verified_certificate_chain
docs: Try to figure out the verified chain by finding the anchor/root CA the received chain chains up to in the
          trust store.
  
          This will not clean the certificate chain if additional/invalid certificates were sent and the signatures and
          fields (notBefore, etc.) are not verified.