Files
opentf/internal/encryption/keyprovider/static/config.go

38 lines
938 B
Go

// Copyright (c) The OpenTofu Authors
// SPDX-License-Identifier: MPL-2.0
// Copyright (c) 2023 HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
package static
import (
"encoding/hex"
"github.com/opentofu/opentofu/internal/encryption/keyprovider"
)
// Config contains the configuration for this key provider supplied by the user. This struct must have hcl tags in order
// to function.
type Config struct {
Key string `hcl:"key"`
}
// Build will create the usable key provider.
func (c Config) Build() (keyprovider.KeyProvider, keyprovider.KeyMeta, error) {
if c.Key == "" {
return nil, nil, &keyprovider.ErrInvalidConfiguration{
Message: "Missing key",
}
}
decodedData, err := hex.DecodeString(c.Key)
if err != nil {
return nil, nil, &keyprovider.ErrInvalidConfiguration{
Message: "failed to hex-decode the provided key",
Cause: err,
}
}
return &staticKeyProvider{decodedData}, new(Metadata), nil
}