CefX509Certificate
Header: cef_x509_certificate.h
Interfaces: CefX509CertPrincipal, CefX509Certificate
Category: Core APIs
Overview
Foundational interfaces: process bootstrap, browser lifecycle, frames, DOM, requests, and data objects.
CefX509CertPrincipal
Source File: include/cef_x509_certificate.h
Process / Thread Context: Threading not specified in header; obtained from CefX509Certificate accessors. Caller-side threading depends on the context in which the parent certificate was supplied.
Purpose: USER-CALLED library interface representing the issuer or subject field of an X.509 certificate. Provides structured access to certificate DN components.
Methods
CefString GetDisplayName()
Return Value: Returns a name usable for display. Tries, in order: Common Name (CN), Organization Name (O), Organizational Unit Name (OU); returns first non-empty.
Threading Constraint: Threading constraint not specified in source.
CefString GetCommonName()
Return Value: Returns CN.
Threading Constraint: Threading constraint not specified in source.
CefString GetLocalityName()
Return Value: Returns locality name (L).
Threading Constraint: Threading constraint not specified in source.
CefString GetStateOrProvinceName()
Return Value: Returns state or province (ST).
Threading Constraint: Threading constraint not specified in source.
CefString GetCountryName()
Return Value: Returns country name (C).
Threading Constraint: Threading constraint not specified in source.
void GetOrganizationNames(std::vector<CefString>& names)
Return Value: Appends all O values to names.
Threading Constraint: Threading constraint not specified in source.
void GetOrganizationUnitNames(std::vector<CefString>& names)
Return Value: Appends all OU values to names.
Threading Constraint: Threading constraint not specified in source.
Usage Example
CefRefPtr<CefX509Certificate> cert = sslInfo->GetX509Certificate();
CefRefPtr<CefX509CertPrincipal> subj = cert->GetSubject();
CefString display = subj->GetDisplayName();
CefString cn = subj->GetCommonName();
std::vector<CefString> orgs;
subj->GetOrganizationNames(orgs);CefX509Certificate
Source File: include/cef_x509_certificate.h
Process / Thread Context: Threading not specified in header. Obtained from CefSSLInfo::GetX509Certificate() or CefSSLStatus::GetX509Certificate().
Purpose: USER-CALLED library interface representing an X.509 certificate. Provides subject/issuer principals, serial number, validity dates, DER/PEM encoded forms, and the issuer chain.
Methods
CefRefPtr<CefX509CertPrincipal> GetSubject()
CefRefPtr<CefX509CertPrincipal> GetIssuer()
CefRefPtr<CefBinaryValue> GetSerialNumber()
CefBaseTime GetValidStart()
CefBaseTime GetValidExpiry()
CefRefPtr<CefBinaryValue> GetDEREncoded()
CefRefPtr<CefBinaryValue> GetPEMEncoded()
size_t GetIssuerChainSize()
void GetDEREncodedIssuerChain(IssuerChainBinaryList& chain)
void GetPEMEncodedIssuerChain(IssuerChainBinaryList& chain)
Usage Example
CefRefPtr<CefX509Certificate> cert = sslInfo->GetX509Certificate();
CefRefPtr<CefX509CertPrincipal> subj = cert->GetSubject();
CefString cn = subj->GetCommonName(); // expected to match hostname
CefRefPtr<CefBinaryValue> der = cert->GetDEREncoded();
size_t chain_size = cert->GetIssuerChainSize();
if (chain_size == 0) {
// self-signed
}
CefX509Certificate::IssuerChainBinaryList chain;
cert->GetPEMEncodedIssuerChain(chain); // for chain export