repository

package
v0.0.0-...-d3b8ba1 Latest Latest
Warning

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

Go to latest
Published: Jun 7, 2023 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Bundle

type Bundle interface {
	X509CertificateRepository() X509CertificateRepository
	X509CertificateSubscriptionRepository() X509CertificateSubscriptionRepository
	X509PrivateKeyRepository() PrivateKeyRepository
	TransactionManager() TransactionManager
}

type PrivateKeyRepository

type PrivateKeyRepository interface {
	GetOrCreate(ctx context.Context, privKey *X509PrivateKeyDao) (*X509PrivateKeyDao, error)
	FindByIDs(ctx context.Context, ids []uuid.UUID) ([]*X509PrivateKeyDao, error)
	FindByPublicKeyHash(ctx context.Context, pubKeyHash []byte) (privKey *X509PrivateKeyDao, exists bool, err error)
}

type PrivateKeyType

type PrivateKeyType string
const (
	PrivateKeyTypeRSA     PrivateKeyType = "RSA"
	PrivateKeyTypeECDSA   PrivateKeyType = "ECDSA"
	PrivateKeyTypeED25519 PrivateKeyType = "ED25519"
)

Enum values for PrivateKeyType

type TransactionManager

type TransactionManager interface {
	BeginTx(ctx context.Context) (txCtx context.Context, err error)
	CommitTx(txCtx context.Context) error
	RollbackTx(txCtx context.Context) error
}

type X509CertificateDao

type X509CertificateDao struct {
	ID                  uuid.UUID
	CommonName          string
	SubjectAltNames     []string
	IssuerHash          []byte
	SubjectHash         []byte
	BytesHash           []byte
	Bytes               []byte
	PublicKeyHash       []byte
	ParentCertificateID *uuid.UUID
	PrivateKeyID        *uuid.UUID
	NotBefore           time.Time
	NotAfter            time.Time
	CreatedAt           time.Time
}

X509CertificateDao serves as an abstraction for all the different per database x509 cert structs.

func NewX509CertificateDao

func NewX509CertificateDao(ID uuid.UUID, commonName string, subjectAltNames []string, issuerHash []byte, subjectHash []byte, bytesHash []byte, bytes []byte, pubKeyHash []byte, parentCertID *uuid.UUID, privKeyID *uuid.UUID, notBefore time.Time, notAfter time.Time, createdAt time.Time) *X509CertificateDao

type X509CertificateRepository

type X509CertificateRepository interface {
	GetOrCreate(ctx context.Context, cert *X509CertificateDao) (*X509CertificateDao, error)
	Update(ctx context.Context, cert *X509CertificateDao) (updatedCert *X509CertificateDao, updated bool, err error)
	FindByIssuerHashAndNoParentSet(ctx context.Context, issuerHash []byte) ([]*X509CertificateDao, error)
	FindByPublicKeyHashAndNoPrivateKeySet(ctx context.Context, pubKeyHash []byte) ([]*X509CertificateDao, error)
	FindBySubjectHash(ctx context.Context, subjectHash []byte) ([]*X509CertificateDao, error)
	FindAllByByteHashes(ctx context.Context, byteHashes []*[]byte) ([]*X509CertificateDao, error)
	FindLatestActiveBySANsAndCreatedAtAfter(ctx context.Context, subjectAltNames []string, sinceAfter time.Time) ([]*X509CertificateDao, error)
	FindCertificateChain(ctx context.Context, startCertId uuid.UUID) ([]*X509CertificateDao, error)
}

type X509CertificateSubscriptionDao

type X509CertificateSubscriptionDao struct {
	ID                uuid.UUID `binding:"required" validate:"required" json:"id" toml:"id" yaml:"id"`
	SubjectAltNames   []string  `` /* 137-byte string literal not displayed */
	IncludePrivateKey bool      `binding:"required" validate:"required" json:"include_private_key" toml:"include_private_key" yaml:"include_private_key"`
	CreatedAt         time.Time `binding:"required" validate:"required" json:"created_at" toml:"created_at" yaml:"created_at"`
}

X509CertificateSubscriptionDao serves as an abstraction for all the different per database x509 Certificate subscription structs.

func NewX509CertificateSubscriptionDao

func NewX509CertificateSubscriptionDao(ID uuid.UUID, subjectAltNames []string, includePrivateKey bool, createdAt time.Time) *X509CertificateSubscriptionDao

type X509CertificateSubscriptionRepository

type X509CertificateSubscriptionRepository interface {
	Create(ctx context.Context, cert *X509CertificateSubscriptionDao) (*X509CertificateSubscriptionDao, error)
	FindByIDs(ctx context.Context, publicIDs []uuid.UUID) ([]*X509CertificateSubscriptionDao, error)
	Delete(ctx context.Context, subID uuid.UUID) (rowsDeleted int64, err error)
}

type X509PrivateKeyDao

type X509PrivateKeyDao struct {
	ID            uuid.UUID
	Type          PrivateKeyType
	PemBlockType  string
	BytesHash     []byte
	Bytes         []byte
	PublicKeyHash []byte
	CreatedAt     time.Time
}

X509PrivateKeyDao serves as an abstraction for all the different per database private key structs.

func NewX509PrivateKeyDao

func NewX509PrivateKeyDao(ID uuid.UUID, Type PrivateKeyType, pemBlockType string, bytesHash []byte, bytes []byte, pubKeyHash []byte, createdAt time.Time) *X509PrivateKeyDao

Jump to

Keyboard shortcuts

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