Rebecca Chang Swee Fun fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
..
internal fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
pki fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
BUILD.gn fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
DIR_METADATA fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
OWNERS fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
README.md fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
asn1_util.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
asn1_util.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
caching_cert_verifier.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
caching_cert_verifier.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
caching_cert_verifier_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_and_ct_verifier.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_and_ct_verifier.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_and_ct_verifier_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_database.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_database.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_database_mac.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_net_fetcher.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_status_flags.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_status_flags.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_status_flags_list.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_type.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_verifier.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_verifier.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_verifier_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_verify_proc.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_verify_proc.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_verify_proc_android.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_verify_proc_android.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_verify_proc_android_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_verify_proc_blocklist.inc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_verify_proc_builtin.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_verify_proc_builtin.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_verify_proc_builtin_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_verify_proc_ios.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_verify_proc_ios.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_verify_proc_mac.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_verify_proc_mac.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_verify_proc_mac_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_verify_proc_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_verify_proc_win.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_verify_proc_win.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_verify_proc_win_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_verify_result.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
cert_verify_result.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
client_cert_verifier.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
coalescing_cert_verifier.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
coalescing_cert_verifier.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
coalescing_cert_verifier_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
crl_set.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
crl_set.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
crl_set_fuzzer.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
crl_set_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
ct_log_response_parser.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
ct_log_response_parser.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
ct_log_response_parser_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
ct_log_verifier.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
ct_log_verifier.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
ct_log_verifier_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
ct_log_verifier_util.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
ct_log_verifier_util.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
ct_objects_extractor.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
ct_objects_extractor.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
ct_objects_extractor_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
ct_policy_enforcer.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
ct_policy_enforcer.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
ct_policy_status.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
ct_sct_to_string.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
ct_sct_to_string.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
ct_serialization.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
ct_serialization.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
ct_serialization_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
ct_signed_certificate_timestamp_log_param.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
ct_signed_certificate_timestamp_log_param.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
ct_verifier.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
decode_signed_certificate_timestamp_fuzzer.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
do_nothing_ct_verifier.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
do_nothing_ct_verifier.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
ev_root_ca_metadata.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
ev_root_ca_metadata.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
ev_root_ca_metadata_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
known_roots.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
known_roots.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
known_roots_mac.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
known_roots_mac.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
known_roots_nss.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
known_roots_nss.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
known_roots_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
known_roots_win.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
known_roots_win.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
merkle_audit_proof.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
merkle_audit_proof.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
merkle_audit_proof_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
merkle_consistency_proof.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
merkle_consistency_proof.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
merkle_tree_leaf.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
merkle_tree_leaf.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
merkle_tree_leaf_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
mock_cert_net_fetcher.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
mock_cert_net_fetcher.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
mock_cert_verifier.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
mock_cert_verifier.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
mock_client_cert_verifier.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
mock_client_cert_verifier.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
multi_log_ct_verifier.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
multi_log_ct_verifier.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
multi_log_ct_verifier_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
multi_threaded_cert_verifier.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
multi_threaded_cert_verifier.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
multi_threaded_cert_verifier_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
nss_cert_database.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
nss_cert_database.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
nss_cert_database_chromeos.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
nss_cert_database_chromeos.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
nss_cert_database_chromeos_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
nss_cert_database_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
nss_profile_filter_chromeos.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
nss_profile_filter_chromeos.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
nss_profile_filter_chromeos_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
ocsp_revocation_status.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
ocsp_verify_result.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
ocsp_verify_result.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
pem.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
pem.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
pem_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
root_cert_list_generated.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
root_store.proto fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
scoped_nss_types.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
sct_auditing_delegate.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
sct_status_flags.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
sct_status_flags.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
signed_certificate_timestamp.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
signed_certificate_timestamp.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
signed_certificate_timestamp_and_status.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
signed_certificate_timestamp_and_status.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
signed_certificate_timestamp_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
signed_tree_head.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
signed_tree_head.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
symantec_certs.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
symantec_certs.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
symantec_certs_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
test_keychain_search_list_mac.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
test_keychain_search_list_mac.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
test_root_certs.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
test_root_certs.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
test_root_certs_android.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
test_root_certs_builtin.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
test_root_certs_mac.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
test_root_certs_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
test_root_certs_win.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
trial_comparison_cert_verifier.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
trial_comparison_cert_verifier.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
trial_comparison_cert_verifier_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
trial_comparison_cert_verifier_util.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
trial_comparison_cert_verifier_util.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
x509_cert_types.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
x509_cert_types.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
x509_cert_types_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
x509_certificate.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
x509_certificate.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
x509_certificate_net_log_param.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
x509_certificate_net_log_param.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
x509_certificate_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
x509_util.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
x509_util.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
x509_util_android.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
x509_util_apple.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
x509_util_apple.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
x509_util_apple_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
x509_util_mac.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
x509_util_mac.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
x509_util_nss.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
x509_util_nss.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
x509_util_nss_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
x509_util_unittest.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
x509_util_win.cc fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa
x509_util_win.h fea2a55e2a Publish chromium based on 107.0.5304.88 1 anno fa

README.md

Certificate verification

This directory contains the core code for verifying server certificates. Limited support is also included for verifying client certificates, but only to the extent they chain to a server-supplied set of issuers.

Server certificate verification emphasizes the standards/policy for publicly trusted certificates:

  • Basic X.509 digital certificates
  • RFC 5280
  • CA/Browser Forum Baseline Requirements
  • CRLSets
  • Certificate Transparency

The core logic of certificate verification is implemented synchronously, as it may need to integrate with synchronous OS-provided APIs. This synchronous implementation is performed through the CertVerifyProc interface, which is a thread-agnostic/thread-safe interface that can be used to verify certificates synchronously on arbitrary worker threads.

The top-level interface for verifying server certificates is the asynchronous CertVerifier.

MultiThreadedCertVerifier is an implementation of CertVerifier that executes CertVerifyProc synchronously on worker threads.

CertVerifyProcBuiltin is a cross-platform implementation which implements path building internally. It only relies on platform integrations for obtaining the trusted root certificates.

The other CertVerifyProc implementations are for integrating with the underlying platform’s certificate verification library. For example, CertVerifyProcWin delegates certificate verification to Windows’ CryptoAPI.

Browser-specific policy checks are applied even when using the platform’s certificate verifier. For instance, a certificate chain the OS deemed valid could ultimately be rejected by CertVerifyProc since it independently checks the chain for CRLSet revocation, use of weak keys, Baseline Requirements validity, name constraints, weak signature algorithms, and more.