certificate

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Jan 18, 2026 License: MIT Imports: 18 Imported by: 0

Documentation

Overview

Package certificate provides functionality for loading, parsing, and validating X.509 certificates and chains.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ExportCertificate

func ExportCertificate(cert *x509.Certificate, format string, filename string) error

ExportCertificate exports a certificate to a file

func FormatCertificateDetails added in v0.3.0

func FormatCertificateDetails(cert *Info) string

FormatCertificateDetails formats detailed certificate information

func FormatCertificateKeyInfo added in v0.3.0

func FormatCertificateKeyInfo(cert *Info) string

FormatCertificateKeyInfo formats information about the certificate's public key

func FormatCertificateList added in v0.3.0

func FormatCertificateList(certs []*Info) string

FormatCertificateList formats a list of certificates for display

func FormatCertificateSummary added in v0.3.0

func FormatCertificateSummary(cert *Info) string

FormatCertificateSummary formats a summary of certificate information

func FormatChainValidation

func FormatChainValidation(result *ValidationResult) string

FormatChainValidation formats the validation results

func FormatFingerprint

func FormatFingerprint(cert *x509.Certificate) string

FormatFingerprint formats certificate fingerprint

func FormatIssuer

func FormatIssuer(cert *x509.Certificate) string

FormatIssuer formats certificate issuer information

func FormatPublicKey

func FormatPublicKey(cert *x509.Certificate) string

FormatPublicKey formats public key information with detailed specifications

func FormatSAN

func FormatSAN(cert *x509.Certificate) string

FormatSAN formats Subject Alternative Names

func FormatSubject

func FormatSubject(cert *x509.Certificate) string

FormatSubject formats certificate subject information

func FormatValidity

func FormatValidity(cert *x509.Certificate) string

FormatValidity formats certificate validity information

func GenerateSelfSignedCert added in v0.3.0

func GenerateSelfSignedCert(host string, certFile, keyFile string) error

GenerateSelfSignedCert generates a self-signed certificate

func IsExpired

func IsExpired(cert *x509.Certificate) bool

IsExpired checks if certificate is expired

func IsExpiringSoon

func IsExpiringSoon(cert *x509.Certificate) bool

IsExpiringSoon checks if certificate expires within 30 days

func SortChain added in v0.4.0

func SortChain(certs []*x509.Certificate) ([]*x509.Certificate, error)

SortChain sorts certificates into valid chains [Leaf, Intermediate, Root]

func ValidateChain

func ValidateChain(certs []*x509.Certificate) (bool, error)

ValidateChain validates a certificate chain using x509.Verify

func ValidateChainLinks(certs []*Info)

ValidateChainLinks performs a detailed validation of each link in the certificate chain. It no longer assumes the certs are sorted.

Types

type ChainValidationResult

type ChainValidationResult struct {
	IsValid  bool
	Errors   []string
	Warnings []string
}

ChainValidationResult holds the result of chain validation

type Info added in v0.5.0

type Info struct {
	Certificate      *x509.Certificate
	Index            int
	Label            string
	ValidationStatus ValidationStatus
	ValidationError  error
}

Info holds certificate data and metadata

func LoadCertificates

func LoadCertificates(filename string) ([]*Info, error)

LoadCertificates loads certificates from a file or stdin

func ParseCertificates

func ParseCertificates(data []byte) ([]*Info, error)

ParseCertificates parses PEM blocks and extracts certificates

type ValidationResult added in v0.3.0

type ValidationResult struct {
	IsValid  bool
	Errors   []string
	Warnings []string
}

ValidationResult represents the result of certificate chain validation

type ValidationStatus added in v0.5.0

type ValidationStatus int

ValidationStatus represents the validation status of a single certificate in the chain.

const (
	// StatusUnknown represents an uninitialized or unknown status
	StatusUnknown ValidationStatus = iota
	// StatusValid represents a verified valid certificate
	StatusValid
	// StatusGood represents a certificate that is syntactically correct and not expired
	StatusGood
	// StatusWarning represents a potential issue (e.g., expiring soon)
	StatusWarning
	// StatusExpired represents an expired certificate
	StatusExpired
	// StatusRevoked represents a revoked certificate
	StatusRevoked
	// StatusMismatchedIssuer represents a chain link error where issuer doesn't match
	StatusMismatchedIssuer
	// StatusInvalidSignature represents a failed signature verification
	StatusInvalidSignature
)

Jump to

Keyboard shortcuts

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