Documentation
¶
Index ¶
- Variables
- func CloseProvider(provider KeyProvider)
- type AWSProvider
- func (a AWSProvider) Close(context.Context) error
- func (a AWSProvider) DecryptDataKey(ctx context.Context, encryptedKey []byte, _ DecryptOpts) ([]byte, error)
- func (a AWSProvider) GenerateDataKey(ctx context.Context, opts KeyGenOpts) (*DataKey, error)
- func (a AWSProvider) GetKeyMetadata(ctx context.Context, keyURI string) (*KeyMetadata, error)
- func (a AWSProvider) RotateDataKey(ctx context.Context, encryptedKey []byte, opts RotateOpts) (*DataKey, error)
- func (a AWSProvider) SignAuditEvent(context.Context, AuditEvent) error
- type AWSProviderConfig
- type AuditArchiver
- type AuditArchiverConfig
- type AuditEvent
- type AuditSigner
- type AzureProvider
- func (a AzureProvider) Close(context.Context) error
- func (a AzureProvider) DecryptDataKey(ctx context.Context, encryptedKey []byte, _ DecryptOpts) ([]byte, error)
- func (a AzureProvider) GenerateDataKey(ctx context.Context, opts KeyGenOpts) (*DataKey, error)
- func (a AzureProvider) GetKeyMetadata(ctx context.Context, keyURI string) (*KeyMetadata, error)
- func (a AzureProvider) RotateDataKey(ctx context.Context, encryptedKey []byte, opts RotateOpts) (*DataKey, error)
- func (a AzureProvider) SignAuditEvent(context.Context, AuditEvent) error
- type AzureProviderConfig
- type DataKey
- type DecryptOpts
- type FactoryConfig
- type GCPProvider
- func (p *GCPProvider) Close(context.Context) error
- func (p *GCPProvider) DecryptDataKey(ctx context.Context, encryptedKey []byte, _ DecryptOpts) ([]byte, error)
- func (p *GCPProvider) GenerateDataKey(ctx context.Context, opts KeyGenOpts) (*DataKey, error)
- func (p *GCPProvider) GetKeyMetadata(ctx context.Context, keyURI string) (*KeyMetadata, error)
- func (p *GCPProvider) RotateDataKey(ctx context.Context, encryptedKey []byte, opts RotateOpts) (*DataKey, error)
- func (p *GCPProvider) SignAuditEvent(context.Context, AuditEvent) error
- type GCPProviderConfig
- type KeyGenOpts
- type KeyMetadata
- type KeyProvider
- type LocalConfig
- type LocalProvider
- func (p *LocalProvider) Close(context.Context) error
- func (p *LocalProvider) DecryptDataKey(_ context.Context, encryptedKey []byte, _ DecryptOpts) ([]byte, error)
- func (p *LocalProvider) GenerateDataKey(_ context.Context, opts KeyGenOpts) (*DataKey, error)
- func (p *LocalProvider) GetKeyMetadata(_ context.Context, keyURI string) (*KeyMetadata, error)
- func (p *LocalProvider) RotateDataKey(ctx context.Context, encryptedKey []byte, opts RotateOpts) (*DataKey, error)
- func (p *LocalProvider) SignAuditEvent(context.Context, AuditEvent) error
- type NopAuditProvider
- type RotateOpts
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrUnsupportedProvider = errors.New("kms: unsupported provider") ErrInvalidConfig = errors.New("kms: invalid configuration") ErrKeyNotFound = errors.New("kms: key not found") ErrDecryptFailed = errors.New("kms: data key decrypt failed") ErrEncryptFailed = errors.New("kms: data key encrypt failed") ErrClosed = errors.New("kms: provider closed") )
Functions ¶
func CloseProvider ¶
func CloseProvider(provider KeyProvider)
Types ¶
type AWSProvider ¶
type AWSProvider struct {
// contains filtered or unexported fields
}
func NewAWSProvider ¶
func NewAWSProvider(ctx context.Context, cfg AWSProviderConfig) (*AWSProvider, error)
func (AWSProvider) DecryptDataKey ¶
func (AWSProvider) GenerateDataKey ¶
func (a AWSProvider) GenerateDataKey(ctx context.Context, opts KeyGenOpts) (*DataKey, error)
func (AWSProvider) GetKeyMetadata ¶
func (a AWSProvider) GetKeyMetadata(ctx context.Context, keyURI string) (*KeyMetadata, error)
func (AWSProvider) RotateDataKey ¶
func (AWSProvider) SignAuditEvent ¶
func (a AWSProvider) SignAuditEvent(context.Context, AuditEvent) error
type AWSProviderConfig ¶
type AuditArchiver ¶
type AuditArchiver struct {
// contains filtered or unexported fields
}
func NewAuditArchiver ¶
func NewAuditArchiver(cfg AuditArchiverConfig) (*AuditArchiver, error)
func (*AuditArchiver) Archive ¶
func (a *AuditArchiver) Archive(ctx context.Context, event AuditEvent) error
type AuditArchiverConfig ¶
type AuditEvent ¶
type AuditEvent struct {
EventType string `json:"event_type"`
KeyURI string `json:"key_uri,omitempty"`
Principal string `json:"principal,omitempty"`
Timestamp time.Time `json:"timestamp"`
Status string `json:"status"`
ErrorCode string `json:"error_code,omitempty"`
Metadata map[string]interface{} `json:"metadata,omitempty"`
Signature string `json:"signature,omitempty"`
ProviderID string `json:"provider_id,omitempty"`
}
type AuditSigner ¶
type AuditSigner struct {
// contains filtered or unexported fields
}
AuditSigner signs and verifies immutable KMS audit events.
func NewAuditSigner ¶
func NewAuditSigner(key []byte) *AuditSigner
func (*AuditSigner) Sign ¶
func (s *AuditSigner) Sign(event AuditEvent) (AuditEvent, error)
func (*AuditSigner) Verify ¶
func (s *AuditSigner) Verify(event AuditEvent) bool
type AzureProvider ¶
type AzureProvider struct {
// contains filtered or unexported fields
}
func NewAzureProvider ¶
func NewAzureProvider(ctx context.Context, cfg AzureProviderConfig) (*AzureProvider, error)
func (AzureProvider) DecryptDataKey ¶
func (AzureProvider) GenerateDataKey ¶
func (a AzureProvider) GenerateDataKey(ctx context.Context, opts KeyGenOpts) (*DataKey, error)
func (AzureProvider) GetKeyMetadata ¶
func (a AzureProvider) GetKeyMetadata(ctx context.Context, keyURI string) (*KeyMetadata, error)
func (AzureProvider) RotateDataKey ¶
func (AzureProvider) SignAuditEvent ¶
func (a AzureProvider) SignAuditEvent(context.Context, AuditEvent) error
type AzureProviderConfig ¶
type DataKey ¶
type DataKey struct {
KeyURI string
Ciphertext []byte
Plaintext []byte
Version uint32
CreatedAt time.Time
ExpiresAt time.Time
Algorithm string
}
DataKey is an encrypted DEK plus runtime metadata.
type DecryptOpts ¶
type DecryptOpts struct {
KeyURI string
}
type FactoryConfig ¶
type FactoryConfig struct {
Provider string
KeyURI string
MasterKey []byte
Archiver *AuditArchiver
ProviderID string
AWS AWSProviderConfig
Azure AzureProviderConfig
GCP GCPProviderConfig
}
type GCPProvider ¶
type GCPProvider struct {
// contains filtered or unexported fields
}
func (*GCPProvider) DecryptDataKey ¶
func (p *GCPProvider) DecryptDataKey(ctx context.Context, encryptedKey []byte, _ DecryptOpts) ([]byte, error)
func (*GCPProvider) GenerateDataKey ¶
func (p *GCPProvider) GenerateDataKey(ctx context.Context, opts KeyGenOpts) (*DataKey, error)
func (*GCPProvider) GetKeyMetadata ¶
func (p *GCPProvider) GetKeyMetadata(ctx context.Context, keyURI string) (*KeyMetadata, error)
func (*GCPProvider) RotateDataKey ¶
func (p *GCPProvider) RotateDataKey(ctx context.Context, encryptedKey []byte, opts RotateOpts) (*DataKey, error)
func (*GCPProvider) SignAuditEvent ¶
func (p *GCPProvider) SignAuditEvent(context.Context, AuditEvent) error
type GCPProviderConfig ¶
type KeyMetadata ¶
type KeyProvider ¶
type KeyProvider interface {
GenerateDataKey(ctx context.Context, opts KeyGenOpts) (*DataKey, error)
DecryptDataKey(ctx context.Context, encryptedKey []byte, opts DecryptOpts) ([]byte, error)
RotateDataKey(ctx context.Context, encryptedKey []byte, opts RotateOpts) (*DataKey, error)
GetKeyMetadata(ctx context.Context, keyURI string) (*KeyMetadata, error)
SignAuditEvent(ctx context.Context, event AuditEvent) error
Close(ctx context.Context) error
}
KeyProvider abstracts KMS/HSM implementations for envelope workflows.
func NewGCPProvider ¶
func NewGCPProvider(ctx context.Context, cfg GCPProviderConfig) (KeyProvider, error)
func NewProvider ¶
func NewProvider(cfg FactoryConfig) (KeyProvider, error)
func WithAudit ¶
func WithAudit(provider KeyProvider, archiver *AuditArchiver, providerID string) KeyProvider
type LocalConfig ¶
type LocalProvider ¶
type LocalProvider struct {
// contains filtered or unexported fields
}
LocalProvider provides a minimal software-only KEK wrapper. It is intended for local/dev and compatibility tests.
func NewLocalProvider ¶
func NewLocalProvider(cfg LocalConfig) (*LocalProvider, error)
func (*LocalProvider) DecryptDataKey ¶
func (p *LocalProvider) DecryptDataKey(_ context.Context, encryptedKey []byte, _ DecryptOpts) ([]byte, error)
func (*LocalProvider) GenerateDataKey ¶
func (p *LocalProvider) GenerateDataKey(_ context.Context, opts KeyGenOpts) (*DataKey, error)
func (*LocalProvider) GetKeyMetadata ¶
func (p *LocalProvider) GetKeyMetadata(_ context.Context, keyURI string) (*KeyMetadata, error)
func (*LocalProvider) RotateDataKey ¶
func (p *LocalProvider) RotateDataKey(ctx context.Context, encryptedKey []byte, opts RotateOpts) (*DataKey, error)
func (*LocalProvider) SignAuditEvent ¶
func (p *LocalProvider) SignAuditEvent(context.Context, AuditEvent) error
type NopAuditProvider ¶
type NopAuditProvider struct{}
NopAuditProvider can be embedded by providers that don't persist audit events.
func (NopAuditProvider) SignAuditEvent ¶
func (NopAuditProvider) SignAuditEvent(context.Context, AuditEvent) error
Click to show internal directories.
Click to hide internal directories.