Tables


SchemaSpy Analysis of revokinator.public

Generated on Sun Nov 10 04:24 GMT 2024

XML Representation
Insertion Order Deletion Order
TABLES 40
VIEWS 7
COLUMNS 419
Constraints 25
Anomalies 1
Routines 136

Database Properties

Database Type: PostgreSQL - 16.4 (Debian 16.4-1.pgdg120+2)

Schema public

standard public schema

Tables

Table / View Children Parents Columns Rows Type Comments
revocation_candidates 16 2 10 -1 Table

A certificate becomes a revocation candidate by being identified as containing a pwned key. Every revocation candidate is a potential notification, but we only send a notification once per (issuer, key) pair, as issuers should automatically revoke all certificates for a given key once that key has been notified as having been compromised.

ocsp_responses_2025_12 0 0 3 -1 Table
ocsp_responses_2025_2 0 0 3 -1 Table
ocsp_responses_2025_1 0 0 3 -1 Table
ocsp_checks 0 1 18 -1 Table

Every time an OCSP check is made for a revocation candidate (that is, a certificate which is using a known-compromised key), a record is made for that attempt in this table. As you might expect, things can get pretty big.

Revocation status is checked on a per-candidate basis, rather than on a notification basis, to ensure that issuers are doing the right thing and revoking all certificates that use a key which they know to be compromised, even if a notification for that specific certificate was not received. This is in line with CABF BR requirements.

ocsp_checks_2024_12 0 1 18 100525 Table
revocation_request_emails 0 2 9 -1 Table

Emails (attempted to be) sent to issuers to request revocation.

ocsp_checks_2024_10 0 1 18 -1 Table
ocsp_checks_2025_8 0 1 18 -1 Table
ocsp_responses_2025_11 0 0 3 -1 Table
ocsp_checks_2024_11 0 1 18 97254 Table
ocsp_checks_2025_9 0 1 18 -1 Table
ocsp_responses_2025_10 0 0 3 -1 Table
ocsp_responses_2025_8 0 0 3 -1 Table
ocsp_responses_2025_7 0 0 3 -1 Table
ocsp_responses_2025_9 0 0 3 -1 Table
ocsp_responses_2025_4 0 0 3 -1 Table
ocsp_responses_2025_3 0 0 3 5126 Table
ocsp_responses_2025_6 0 0 3 -1 Table
ocsp_responses_2025_5 0 0 3 -1 Table
schema_migrations 0 0 1 -1 Table
revocation_request_pwnedkey_p10s 0 2 10 -1 Table

HTTP(S) requests made to provide a pwnedkeys-legacy format PKCS10 attestation of key compromise.

ocsp_checks_2025_10 0 1 18 -1 Table
issuer_contact_emails 1 1 3 -1 Table

E-mail addresses for CAs to which we can request revocation.

ocsp_responses_2024_12 0 0 3 100005 Table
issuer_contact_pwnedkey_p10s 1 1 3 -1 Table

HTTP(S) URL endpoints which will accept a POSTed PKCS10 (CSR) attestation of compromise in the older, pwnedkeys-specific format.

ocsp_responses_2024_11 0 0 3 97043 Table
ocsp_checks_2025_12 0 1 18 -1 Table
ocsp_responses_2024_10 0 0 3 -1 Table
ocsp_checks_2025_11 0 1 18 -1 Table
revocation_requests 3 1 3 -1 Table

Each (issuer, key) pair gets a single revocation request. Individual attempts to request revocation are recorded in the type-specific tables below. You might think you’d only need one attempt to request a revocation, but systems fail, so we keep a record of every attempt, for evidence of systemic attempts to avoid receive problem reports.

ocsp_checks_2025_6 0 1 18 -1 Table
ocsp_checks_2025_7 0 1 18 -1 Table
ocsp_checks_2025_4 0 1 18 37672 Table
ocsp_checks_2025_5 0 1 18 75221 Table
ocsp_responses 0 0 3 -1 Table

Stores the full OCSP responses received from OCSP servers. This is kept out of the main ocsp_checks table because OCSP responses generally change far less frequently than we make checks, thus saving us a lot of unnecessary disk space by making them a separate table.

ocsp_checks_2025_2 0 1 18 -1 Table
ocsp_checks_2025_3 0 1 18 5124 Table
ocsp_checks_2025_1 0 1 18 -1 Table
issuers 4 0 2 -1 Table

The set of issuers that we have contacts for. The “first” certificate in the chain that matches an entry in this table is getting the report.

most_recent_ocsp_checks 0 0 18 0 View

Provides the most recent successful (ie HTTP response was successful and the OCSP data was successfully validated) for every revocation candidate.

ocsp_response_publication_times 0 0 4 0 View

Provides an indication of when a particular OCSP response was first actually seen, which can be quite different from when the response metadata says it was created.

revocation_publication_time 0 0 2 0 View

Determine the time at which revocation is considered “published”, which we define as the last time we didn’t get a ‘revoked’ status in an OCSP response for that candidate (so as to give the issuer the benefit of the doubt).

successful_revocation_requests 0 0 2 0 View
revocation_publication_delay 0 0 8 0 View

Provides our best estimate of the interval it took for a revocation to be published, based on OCSP response times.

ocsp_history 0 0 3 0 View

Provides the history of OCSP responses for revocation candidates, with duplicate OCSP responses suppressed so it’s easier to see how an OCSP status changed over time.

revocation_status 0 0 5 0 View

Provides a consolidated view of the revocation status of all unexpired revocation candidates. Includes information on how long it took to revoke the certificate, based on the interval between notification and the first OCSP response indicating revocation.