ctlint

package module
v0.0.0-...-cf78633 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 16, 2026 License: GPL-3.0 Imports: 16 Imported by: 1

README

ctlint

CT compliance linter

Intended uses

  • Certification Authorities: Pre-issuance linting of precertificates and certificates.

  • Interested Parties: Post-issuance conformance checking.

Features

  • Determines, using crtsh/ctloglists, which CT logs are currently or once approved for each CT Policy.

  • Audits certificates against the requirements of each applicable CT Policy, to ensure that embedded SCT lists contain a sufficient quantity and variety of SCTs from approved CT logs:

  • Identifies precertificate issuance from a Precertificate Signing CA beyond the sunset date in the TLS BRs.

  • Checks that certificates expire within the temporal intervals of the logs that supplied the precertificate SCTs embedded in those certificates.

  • Verifies signatures on precertificate SCTs embedded in certificates, using bundled CCADB data to determine each SCT's issuer_key_hash field.

  • Validates syntax and usage of RFC6962 X.509 extensions appearing in certificates and precertificates.

Why you need ctlint

Here are some real-world examples of CT-related mishaps that ctlint can detect:

Caveats

  • ctlint can only audit CT Policy compliance of SCTs embedded in certificates that have not yet expired, because the various log lists do not preserve details of historic log state transitions that may be relevant.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var OIDEKUBrandIndicatorforMessageIdentification asn1.ObjectIdentifier = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 31}
View Source
var OIDExtensionOCSPCTSCT = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 11129, 2, 4, 5}
View Source
var SC62EffectiveDate = time.Date(2023, time.September, 15, 0, 0, 0, 0, time.UTC)

Functions

func CheckCertificate

func CheckCertificate(cert *x509.Certificate, sha256IssuerSPKI *[sha256.Size]byte, policyGroup_optional ...CTPolicyGroup) []string

func CheckPrecertificate

func CheckPrecertificate(precert *x509.Certificate) []string

Types

type CTPolicyGroup

type CTPolicyGroup int
const (
	ServerAuthenticationCertificate CTPolicyGroup
	MarkCertificate
)

Directories

Path Synopsis
cmd
ctlint command

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL