mirror of
https://github.com/opentffoundation/opentf.git
synced 2026-03-27 20:00:19 -04:00
Signed-off-by: StephanHCB <sbs_github_u43a@packetloss.de> Signed-off-by: Christian Mesh <christianmesh1@gmail.com> Signed-off-by: Janos <86970079+janosdebugs@users.noreply.github.com> Signed-off-by: James Humphries <james@james-humphries.co.uk> Co-authored-by: StephanHCB <sbs_github_u43a@packetloss.de> Co-authored-by: Janos <86970079+janosdebugs@users.noreply.github.com> Co-authored-by: Christian Mesh <christianmesh1@gmail.com>
38 lines
1.4 KiB
Go
38 lines
1.4 KiB
Go
// Copyright (c) The OpenTofu Authors
|
|
// SPDX-License-Identifier: MPL-2.0
|
|
// Copyright (c) 2023 HashiCorp, Inc.
|
|
// SPDX-License-Identifier: MPL-2.0
|
|
|
|
package method
|
|
|
|
type Config interface {
|
|
// Build takes the configuration and builds an encryption method.
|
|
Build() (Method, error)
|
|
}
|
|
|
|
type Descriptor interface {
|
|
// ID returns the unique identifier used when parsing HCL or JSON configs.
|
|
ID() ID
|
|
|
|
// ConfigStruct creates a new configuration struct annotated with hcl tags. The Build() receiver on
|
|
// this struct must be able to build a Method from the configuration.
|
|
//
|
|
// Common errors:
|
|
// - Returning a struct without a pointer
|
|
// - Returning a non-struct
|
|
ConfigStruct() Config
|
|
}
|
|
|
|
// Method is a low-level encryption method interface that is responsible for encrypting a binary blob of data. It should
|
|
// not try to interpret what kind of data it is encrypting.
|
|
type Method interface {
|
|
// Encrypt encrypts the specified data with the set configuration. This method should treat any data passed as
|
|
// opaque and should not try to interpret its contents. The interpretation is the job of the encryption.Encryption
|
|
// interface.
|
|
Encrypt(data []byte) ([]byte, error)
|
|
// Decrypt decrypts the specified data with the set configuration. This method should treat any data passed as
|
|
// opaque and should not try to interpret its contents. The interpretation is the job of the encryption.Encryption
|
|
// interface.
|
|
Decrypt(data []byte) ([]byte, error)
|
|
}
|