cert

package
v0.0.15 Latest Latest
Warning

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

Go to latest
Published: Mar 27, 2024 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const (
	PEMPrivateKeyBlockType = "PRIVATE KEY"
	PEMCertBlockType       = "CERTIFICATE"
)
View Source
const (
	DefaultScheme = "rajds"
)

Variables

View Source
var (
	ErrInvalidPEMBlockType = errors.New("invalid PEM block type")
	ErrNoPrivateKey        = errors.New("no private key to sign the certificate")
)

Functions

func GeneratePublicAndPrivateKeyPair

func GeneratePublicAndPrivateKeyPair() (publicKeyData KeyData, privateKeyData KeyData, err error)

func GetDefaultDomainName

func GetDefaultDomainName() string

func GetNodeIDFromCertificate

func GetNodeIDFromCertificate(cert *x509.Certificate) string

func IsSupportedPEMBlock

func IsSupportedPEMBlock(blockType string) bool

func LoadCertificate

func LoadCertificate(pemCertificateData []byte) ([]*x509.Certificate, error)

func LoadCertificatesFromFile

func LoadCertificatesFromFile(certificateFilePath string) ([]*x509.Certificate, error)

Types

type CACertificate

type CACertificate TLSCertificate

func ProvideCACertificate

func ProvideCACertificate(caCertificateConfig CACertificateConfig) (CACertificate, error)

type CACertificateConfig

type CACertificateConfig struct {
	CertificateFileLocation string
	PrivateKeyFileLocation  string
}

type CreateCertificateOptions

type CreateCertificateOptions struct {
	PublicKey            KeyData
	PrivateKey           KeyData
	ValidDuration        time.Duration
	CertificateSubject   pkix.Name
	ParentTLSCertificate TLSCertificate
	IsCA                 bool
	DNSName              []string
}

type KeyData

type KeyData interface {
	GetKeyX509Format() ([]byte, error)
	GetSHA1Hash() (string, error)
	GetKeyType() KeyType
	GetRawKeyData() any
}

func LoadKeyFromFile

func LoadKeyFromFile(privateKeyFilePath string) (KeyData, error)

func ParsePrivateKeyToKeyData

func ParsePrivateKeyToKeyData(unparsedPrivateKey []byte) (KeyData, error)

func ParsePublicKeyToKeyData

func ParsePublicKeyToKeyData(unparsedPublicKey any) (KeyData, error)

type KeyType

type KeyType string
const (
	PKIPublicKeyType  KeyType = "pki-public-key"
	PKIPrivateKeyType KeyType = "pki-private-key"
)

type RSAPrivateKeyData

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

func (*RSAPrivateKeyData) GetKeyType

func (r *RSAPrivateKeyData) GetKeyType() KeyType

func (*RSAPrivateKeyData) GetKeyX509Format

func (r *RSAPrivateKeyData) GetKeyX509Format() ([]byte, error)

func (*RSAPrivateKeyData) GetRawKeyData

func (r *RSAPrivateKeyData) GetRawKeyData() any

func (*RSAPrivateKeyData) GetSHA1Hash

func (r *RSAPrivateKeyData) GetSHA1Hash() (string, error)

type RSAPublicKeyData

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

func (*RSAPublicKeyData) GetKeyType

func (r *RSAPublicKeyData) GetKeyType() KeyType

func (*RSAPublicKeyData) GetKeyX509Format

func (r *RSAPublicKeyData) GetKeyX509Format() ([]byte, error)

func (*RSAPublicKeyData) GetRawKeyData

func (r *RSAPublicKeyData) GetRawKeyData() any

func (*RSAPublicKeyData) GetSHA1Hash

func (r *RSAPublicKeyData) GetSHA1Hash() (string, error)

type TLSCertificate

type TLSCertificate interface {
	IsCA() bool

	GetPublicKey() KeyData
	GetPrivateKey() KeyData
	GetCertificate() *x509.Certificate

	GetCACertificate() (*x509.Certificate, error)
	GetCertificateInPEM() ([]byte, error)
	GetCertificateChains(pemEncoded bool) [][]byte
	GetParentTLSCertificate() TLSCertificate

	CreateCertificateAndSign(certificateSubject pkix.Name, subjectPublicKey KeyData, validDuration time.Duration) (TLSCertificate, error)

	SaveCertificateToFile(certificateFilePath, privateKeyFilePath string) error
	GetCertificateSubjectSerialNumber() string

	ValidateSignature(underValidateCertificate *x509.Certificate) error

	GetNodeID() string
}

func ProvideTLSCertificate

func ProvideTLSCertificate(certificateChain []*x509.Certificate, privateKey KeyData, isCA bool) (TLSCertificate, error)

type TransportCertificate

type TransportCertificate TLSCertificate

func ProvideTransportCertificate

func ProvideTransportCertificate(transportCertificateConfig TransportCertificateConfig, caCertificate CACertificate) (TransportCertificate, error)

func ProvideWorkerNodeTransportCertificate

func ProvideWorkerNodeTransportCertificate(workerCertificateConfig WorkerNodeTransportCertificateConfig, controlPLaneClient proto.ControlPlaneClient) (TransportCertificate, error)

type TransportCertificateConfig

type TransportCertificateConfig struct {
	CertificateFileLocation string
	PrivateKeyFileLocation  string
	ValidDuration           time.Duration
	CommonName              string
	NodeID                  string
}

type WorkerNodeCACertificate

type WorkerNodeCACertificate TLSCertificate

type WorkerNodeCACertificateConfig

type WorkerNodeCACertificateConfig struct {
	CACertificateFilePath string
}

type WorkerNodeTransportCertificateConfig

type WorkerNodeTransportCertificateConfig struct {
	CertificateFileLocation string
	PrivateKeyFileLocation  string
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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