Skip to content

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

cpp
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

cpp
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

Derived from the CEF C++ headers — © Marshall A. Greenblatt, Google Inc. & contributors (BSD-style license). Not an official CEF project.