Files
warmbly/internal/infrastructure/kms/encryption.go
T
2026-01-17 14:11:14 +00:00

22 lines
509 B
Go

package kms
import (
"context"
"encoding/base64"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/service/kms"
)
func (k *KMS) GenerateDataKey(ctx context.Context) ([]byte, string, error) {
dkOutput, err := k.c.GenerateDataKey(ctx, &kms.GenerateDataKeyInput{
KeyId: aws.String(k.MasterKey),
NumberOfBytes: aws.Int32(32), // AES-256
})
if err != nil {
return nil, "", err
}
return dkOutput.Plaintext, base64.StdEncoding.EncodeToString(dkOutput.CiphertextBlob), nil
}