Documentation ¶
Overview ¶
Package kms contains an implementation of the go.mozilla.org/sops/v3.MasterKey interface that encrypts and decrypts the data key using AWS KMS with the AWS Go SDK.
Index ¶
- func ParseKMSContext(in interface{}) map[string]*string
- type MasterKey
- func (key *MasterKey) Decrypt() ([]byte, error)
- func (key *MasterKey) Encrypt(dataKey []byte) error
- func (key *MasterKey) EncryptIfNeeded(dataKey []byte) error
- func (key *MasterKey) EncryptedDataKey() []byte
- func (key *MasterKey) NeedsRotation() bool
- func (key *MasterKey) SetEncryptedDataKey(enc []byte)
- func (key MasterKey) ToMap() map[string]interface{}
- func (key *MasterKey) ToString() string
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ParseKMSContext ¶
ParseKMSContext takes either a KMS context map or a comma-separated list of KMS context key:value pairs and returns a map
Types ¶
type MasterKey ¶
type MasterKey struct { Arn string Role string EncryptedKey string CreationDate time.Time EncryptionContext map[string]*string AwsProfile string }
MasterKey is a AWS KMS key used to encrypt and decrypt sops' data key.
func MasterKeysFromArnString ¶
func MasterKeysFromArnString(arn string, context map[string]*string, awsProfile string) []*MasterKey
MasterKeysFromArnString takes a comma separated list of AWS KMS ARNs and returns a slice of new MasterKeys for those ARNs
func NewMasterKey ¶
NewMasterKey creates a new MasterKey from an ARN, role and context, setting the creation date to the current date
func NewMasterKeyFromArn ¶
NewMasterKeyFromArn takes an ARN string and returns a new MasterKey for that ARN
func (*MasterKey) Decrypt ¶
Decrypt decrypts the EncryptedKey field with AWS KMS and returns the result.
func (*MasterKey) Encrypt ¶
Encrypt takes a sops data key, encrypts it with KMS and stores the result in the EncryptedKey field
func (*MasterKey) EncryptIfNeeded ¶
EncryptIfNeeded encrypts the provided sops' data key and encrypts it if it hasn't been encrypted yet
func (*MasterKey) EncryptedDataKey ¶
EncryptedDataKey returns the encrypted data key this master key holds
func (*MasterKey) NeedsRotation ¶
NeedsRotation returns whether the data key needs to be rotated or not.
func (*MasterKey) SetEncryptedDataKey ¶
SetEncryptedDataKey sets the encrypted data key for this master key