def _find_cert_in_list(cert, issuer, certificate_list, crl_issuer):
    revoked_certificates = certificate_list['tbs_cert_list']['revoked_certificates']
    cert_serial = cert.serial_number
    issuer_name = issuer.subject
    known_extensions = set([
        'crl_reason',
        'hold_instruction_code',
        'invalidity_date',
        'certificate_issuer'
    ])
    last_issuer_name = crl_issuer.subject
    for revoked_cert in revoked_certificates:
        if revoked_cert.critical_extensions - known_extensions:
            raise NotImplementedError()
        if revoked_cert.issuer_name and revoked_cert.issuer_name != last_issuer_name:
            last_issuer_name = revoked_cert.issuer_name
        if last_issuer_name != issuer_name:
            continue
        if revoked_cert['user_certificate'].native != cert_serial:
            continue
        if not revoked_cert.crl_reason_value:
            crl_reason = crl.CRLReason('unspecified')
        else:
            crl_reason = revoked_cert.crl_reason_value
        return (revoked_cert['revocation_date'], crl_reason)
    return (None, None)