core

package
v0.0.0-...-ec430c0 Latest Latest
Warning

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

Go to latest
Published: Jun 1, 2024 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ComputeCertificateFingerprint

func ComputeCertificateFingerprint(cert *x509.Certificate) dxo.Fingerprint

ComputeCertificateFingerprint ... 计算证书指纹

func ComputePublicKeyFingerprint

func ComputePublicKeyFingerprint(pk crypto.PublicKey) dxo.Fingerprint

ComputePublicKeyFingerprint ... 计算公钥指纹

Types

type CertificateContext

type CertificateContext struct {
	Parent *DomainContext

	CertFile   afs.Path
	Cert       *x509.Certificate
	Chain      []*x509.Certificate
	CertSigner crypto.Signer
}

CertificateContext ...

type ContainerContext

type ContainerContext struct {
	Parent *GitContext

	// files
	MainConfigFile afs.Path // at '.git/../acme.config'

	Config *vo.ContainerConfig

	// domains
	DomainList []*DomainListItem
	Domains    map[string]*DomainListItem

	// session
	UserName   string
	UserEmail  string
	UserSigner crypto.Signer

	// services
	KeyManager KeyManager

	// time
	Now             time.Time
	SessionTime     time.Time
	SessionInterval time.Duration
}

ContainerContext 包含关于一个证书仓库的上下文信息

type DomainContext

type DomainContext struct {
	Parent *ContainerContext

	DomainDirectory  afs.Path
	DomainConfigFile afs.Path // 'domain.config'
	CurrentFile      afs.Path
	LatestFile       afs.Path

	Config *vo.DomainConfig

	DomainName   dto.DomainName
	DomainSigner crypto.Signer
}

DomainContext 包含关于一个域名的上下文信息

func (*DomainContext) GetCurrentCertificateFile

func (inst *DomainContext) GetCurrentCertificateFile() (afs.Path, error)

GetCurrentCertificateFile ...

func (*DomainContext) GetLatestCertificateFile

func (inst *DomainContext) GetLatestCertificateFile() (afs.Path, error)

GetLatestCertificateFile ...

type DomainListItem

type DomainListItem struct {
	Raw     string
	Domain  string
	Enabled bool
}

DomainListItem ...

type GitContext

type GitContext struct {
	Parent   context.Context
	Layout   repositories.Layout
	WD       afs.Path
	Worktree afs.Path
}

GitContext 包含关于一个 git 仓库的上下文信息

type KeyHolder

type KeyHolder interface {
	Fingerprint() dxo.Fingerprint

	Signer() crypto.Signer

	Algorithm() string
}

KeyHolder ...

type KeyManager

type KeyManager interface {
	Exists(ctx *ContainerContext, fingerprint dxo.Fingerprint) bool

	Find(ctx *ContainerContext, fingerprint dxo.Fingerprint) (KeyHolder, error)

	CreateNew(ctx *ContainerContext) (KeyHolder, error)
}

KeyManager ...

type Service

type Service interface {
	LoadGitContext(c context.Context) (*GitContext, error)

	LoadContainerContext(c context.Context) (*ContainerContext, error)

	LoadDomainContext(c context.Context) (*DomainContext, error)

	LoadDomainContextWithConfigFile(c context.Context, cfg afs.Path) (*DomainContext, error)
}

Service 提供一组创建上下文的接口

Jump to

Keyboard shortcuts

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