Files
opentf/internal/encryption/method/errors.go
2025-01-31 12:13:18 -05:00

88 lines
2.0 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
import "fmt"
// ErrCryptoFailure indicates a generic cryptographic failure. This error should be embedded into
// ErrEncryptionFailed, ErrDecryptionFailed, or ErrInvalidConfiguration.
type ErrCryptoFailure struct {
Message string
Cause error
SupplementalData string
}
func (e ErrCryptoFailure) Error() string {
result := e.Message
if e.Cause != nil {
result += " (" + e.Cause.Error() + ")"
}
if e.SupplementalData != "" {
result += "\n-----\n" + e.SupplementalData
}
return result
}
func (e ErrCryptoFailure) Unwrap() error {
return e.Cause
}
// ErrEncryptionFailed indicates that encrypting a set of data failed.
type ErrEncryptionFailed struct {
Cause error
}
func (e ErrEncryptionFailed) Error() string {
if e.Cause != nil {
return fmt.Sprintf("encryption failed: %v", e.Cause)
}
return "encryption failed"
}
func (e ErrEncryptionFailed) Unwrap() error {
return e.Cause
}
// ErrDecryptionFailed indicates that decrypting a set of data failed.
type ErrDecryptionFailed struct {
Cause error
}
func (e ErrDecryptionFailed) Error() string {
if e.Cause != nil {
return fmt.Sprintf("decryption failed: %v", e.Cause)
}
return "decryption failed"
}
func (e ErrDecryptionFailed) Unwrap() error {
return e.Cause
}
// ErrDecryptionKeyUnavailable indicates that no decryption key is available.
type ErrDecryptionKeyUnavailable struct {
}
func (e ErrDecryptionKeyUnavailable) Error() string {
return "no decryption key available"
}
// ErrInvalidConfiguration indicates that the method configuration is incorrect.
type ErrInvalidConfiguration struct {
Cause error
}
func (e ErrInvalidConfiguration) Error() string {
if e.Cause != nil {
return fmt.Sprintf("invalid method configuration: %v", e.Cause)
}
return "invalid method configuration"
}
func (e ErrInvalidConfiguration) Unwrap() error {
return e.Cause
}