ca

package
v0.45.0 Latest Latest
Warning

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

Go to latest
Published: Oct 30, 2026 License: Apache-2.0, Apache-2.0 Imports: 16 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidAuthentication = errors.New("invalid user authentication")
	ErrAccessDenied          = errors.New("access denied")
	ErrAuthorizationPending  = errors.New("authorization pending")
	ErrDependency            = errors.New("CA dependency failed")
	ErrInvalidPublicKey      = errors.New("invalid public key")
)

Error classes carry CA semantics independently of a private service's HTTP status. Wrapped diagnostics are for server logs, never public response bodies.

Functions

This section is empty.

Types

type AuditMetadata added in v0.31.0

type AuditMetadata struct {
	ID                string
	PolicyID          string
	DirectoryRevision string
}

AuditMetadata identifies the identity and optional directory revision used for issuance.

type CA

type CA struct {
	// contains filtered or unexported fields
}

CA performs CA operations.

func New

func New(privateKey sshcert.RawPrivateKey, evaluator PolicyEvaluator, options ...Option) (*CA, error)

New creates the issuing authority with its in-process policy evaluator.

func (*CA) FetchDiscovery added in v0.14.0

func (c *CA) FetchDiscovery(context.Context) (*wire.Discovery, error)

FetchDiscovery returns this CA's configured login information.

func (*CA) Issue added in v0.31.0

func (c *CA) Issue(ctx context.Context, token string, conn wire.Connection, publicKey sshcert.RawPublicKey) (*IssuedCertificate, error)

Issue obtains policy approval and signs the requested key using inventory facts and policy-provided limits. It returns a result only after signing succeeds; callers never handle intermediate authorization or signing parameters.

func (*CA) PublicKey

func (c *CA) PublicKey() sshcert.RawPublicKey

PublicKey returns the ssh on-disk format public key for the CA.

type IssuedCertificate added in v0.31.0

type IssuedCertificate struct {
	Certificate sshcert.RawCertificate
	Audit       AuditMetadata
}

IssuedCertificate contains a signed certificate and its private audit metadata. Audit metadata is for server-side logging and is not part of the client response.

type Option

type Option interface {
	// contains filtered or unexported methods
}

Option configures the CA.

func WithFacts added in v0.38.0

func WithFacts(directoryURL, inventoryURL string, identity oidc.ValidatorConfig, discovery wire.AuthConfig, cfg tlsconfig.Config) Option

WithFacts configures independent read providers and CA-owned OIDC validation.

func WithLogger added in v0.3.3

func WithLogger(logger *slog.Logger) Option

WithLogger configures the CA to use the specified logger.

type PolicyEvaluator added in v0.41.0

type PolicyEvaluator interface {
	Evaluate(context.Context, wire.Connection, *wire.PolicyFacts) (*wire.PolicyResponse, error)
}

PolicyEvaluator decides access using validated CA-owned authentication and current directory/host facts. It has no storage or transport responsibility. It returns a positive TTL, extensions, and an optional tighter deadline. CA always enforces the authentication lifetime as an additional ceiling.

Jump to

Keyboard shortcuts

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